unipdf/model/model.go
2020-11-23 22:15:56 +00:00

2763 lines
667 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 (_bc "bufio";_cg "bytes";_ec "crypto/sha1";_c "crypto/x509";_ab "encoding/binary";_eb "encoding/hex";_fa "errors";_b "fmt";_adf "github.com/unidoc/pkcs7";_abe "github.com/unidoc/unipdf/v3/common";_cga "github.com/unidoc/unipdf/v3/common/license";_aef "github.com/unidoc/unipdf/v3/core";_db "github.com/unidoc/unipdf/v3/core/security";_cca "github.com/unidoc/unipdf/v3/core/security/crypt";_gg "github.com/unidoc/unipdf/v3/internal/cmap";_gb "github.com/unidoc/unipdf/v3/internal/imageutil";_ea "github.com/unidoc/unipdf/v3/internal/sampling";_be "github.com/unidoc/unipdf/v3/internal/textencoding";_ecf "github.com/unidoc/unipdf/v3/model/internal/fonts";_add "github.com/unidoc/unipdf/v3/model/sigutil";_ga "github.com/unidoc/unipdf/v3/ps";_ee "github.com/unidoc/unitype";_bb "golang.org/x/xerrors";_ae "image";_g "image/color";_ "image/gif";_ "image/png";_gfc "io";_eba "io/ioutil";_ad "math";_ebe "math/rand";_gf "os";_af "regexp";_eg "sort";_f "strconv";_dg "strings";_d "sync";_a "time";_cc "unicode";_eca "unicode/utf8";);
// ToPdfObject implements interface PdfModel.
func (_aabf *PdfAnnotation3D )ToPdfObject ()_aef .PdfObject {_aabf .PdfAnnotation .ToPdfObject ();_edda :=_aabf ._edc ;_gccd :=_edda .PdfObject .(*_aef .PdfObjectDictionary );_gccd .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_aef .MakeName ("\u0033\u0044"));_gccd .SetIfNotNil ("\u0033\u0044\u0044",_aabf .T3DD );_gccd .SetIfNotNil ("\u0033\u0044\u0056",_aabf .T3DV );_gccd .SetIfNotNil ("\u0033\u0044\u0041",_aabf .T3DA );_gccd .SetIfNotNil ("\u0033\u0044\u0049",_aabf .T3DI );_gccd .SetIfNotNil ("\u0033\u0044\u0042",_aabf .T3DB );return _edda ;};
// ColorToRGB converts a CalGray color to an RGB color.
func (_gcbb *PdfColorspaceCalGray )ColorToRGB (color PdfColor )(PdfColor ,error ){_afec ,_gcce :=color .(*PdfColorCalGray );if !_gcce {_abe .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 ,_fa .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};ANorm :=_afec .Val ();X :=_gcbb .WhitePoint [0]*_ad .Pow (ANorm ,_gcbb .Gamma );Y :=_gcbb .WhitePoint [1]*_ad .Pow (ANorm ,_gcbb .Gamma );Z :=_gcbb .WhitePoint [2]*_ad .Pow (ANorm ,_gcbb .Gamma );_debbd :=3.240479*X +-1.537150*Y +-0.498535*Z ;_addce :=-0.969256*X +1.875992*Y +0.041556*Z ;_edbg :=0.055648*X +-0.204043*Y +1.057311*Z ;_debbd =_ad .Min (_ad .Max (_debbd ,0),1.0);_addce =_ad .Min (_ad .Max (_addce ,0),1.0);_edbg =_ad .Min (_ad .Max (_edbg ,0),1.0);return NewPdfColorDeviceRGB (_debbd ,_addce ,_edbg ),nil ;};
// PdfAnnotationPolyLine represents PolyLine annotations.
// (Section 12.5.6.9).
type PdfAnnotationPolyLine struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Vertices _aef .PdfObject ;LE _aef .PdfObject ;BS _aef .PdfObject ;IC _aef .PdfObject ;BE _aef .PdfObject ;IT _aef .PdfObject ;Measure _aef .PdfObject ;};func (_cfeg *DSS )add (_cebb *[]*_aef .PdfObjectStream ,_caga map[string ]*_aef .PdfObjectStream ,_aefbg [][]byte )([]*_aef .PdfObjectStream ,error ){_cgbd :=make ([]*_aef .PdfObjectStream ,0,len (_aefbg ));for _ ,_gbfgf :=range _aefbg {_dbedb ,_ddgc :=_daed (_gbfgf );if _ddgc !=nil {return nil ,_ddgc ;};_acfc ,_daefa :=_caga [string (_dbedb )];if !_daefa {_acfc ,_ddgc =_aef .MakeStream (_gbfgf ,_aef .NewRawEncoder ());if _ddgc !=nil {return nil ,_ddgc ;};_caga [string (_dbedb )]=_acfc ;*_cebb =append (*_cebb ,_acfc );};_cgbd =append (_cgbd ,_acfc );};return _cgbd ,nil ;};func _gccc (_fegda _aef .PdfObject ,_cbeag *fontCommon )(*_gg .CMap ,error ){_dabac ,_ggge :=_aef .GetStream (_fegda );if !_ggge {_abe .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",_fegda );return nil ,_aef .ErrTypeError ;};_gfac ,_cbeae :=_aef .DecodeStream (_dabac );if _cbeae !=nil {return nil ,_cbeae ;};_dcagc ,_cbeae :=_gg .LoadCmapFromData (_gfac ,!_cbeag .isCIDFont ());if _cbeae !=nil {_abe .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",_dabac .ObjectNumber ,_cbeae );};return _dcagc ,_cbeae ;};func _begb (_eeedb _aef .PdfObject )(PdfFunction ,error ){_eeedb =_aef .ResolveReference (_eeedb );if _ebce ,_cfegf :=_eeedb .(*_aef .PdfObjectStream );_cfegf {_eeedbb :=_ebce .PdfObjectDictionary ;_ecgc ,_bbgb :=_eeedbb .Get ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065").(*_aef .PdfObjectInteger );if !_bbgb {_abe .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 ,_fa .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 *_ecgc ==0{return _cgde (_ebce );}else if *_ecgc ==4{return _gfecd (_ebce );}else {return nil ,_fa .New ("i\u006e\u0076\u0061\u006cid\u0020f\u0075\u006e\u0063\u0074\u0069o\u006e\u0020\u0074\u0079\u0070\u0065");};}else if _bdagc ,_fefe :=_eeedb .(*_aef .PdfIndirectObject );_fefe {_bbeb ,_cbdd :=_bdagc .PdfObject .(*_aef .PdfObjectDictionary );if !_cbdd {_abe .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 ,_fa .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");};_ffcbg ,_cbdd :=_bbeb .Get ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065").(*_aef .PdfObjectInteger );if !_cbdd {_abe .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 ,_fa .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 *_ffcbg ==2{return _gdegc (_bdagc );}else if *_ffcbg ==3{return _gaca (_bdagc );}else {return nil ,_fa .New ("i\u006e\u0076\u0061\u006cid\u0020f\u0075\u006e\u0063\u0074\u0069o\u006e\u0020\u0074\u0079\u0070\u0065");};}else if _afdec ,_gegce :=_eeedb .(*_aef .PdfObjectDictionary );_gegce {_defg ,_cfgdb :=_afdec .Get ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065").(*_aef .PdfObjectInteger );if !_cfgdb {_abe .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 ,_fa .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 *_defg ==2{return _gdegc (_afdec );}else if *_defg ==3{return _gaca (_afdec );}else {return nil ,_fa .New ("i\u006e\u0076\u0061\u006cid\u0020f\u0075\u006e\u0063\u0074\u0069o\u006e\u0020\u0074\u0079\u0070\u0065");};}else {_abe .Log .Debug ("\u0046u\u006e\u0063\u0074\u0069\u006f\u006e\u0020\u0054\u0079\u0070\u0065 \u0065\u0072\u0072\u006f\u0072\u003a\u0020\u0025\u0023\u0076",_eeedb );return nil ,_fa .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};};
// NewPdfAnnotationPopup returns a new popup annotation.
func NewPdfAnnotationPopup ()*PdfAnnotationPopup {_fge :=NewPdfAnnotation ();_eff :=&PdfAnnotationPopup {};_eff .PdfAnnotation =_fge ;_fge .SetContext (_eff );return _eff ;};
// GetCharMetrics returns the char metrics for character code `code`.
func (_ddec pdfFontType0 )GetCharMetrics (code _be .CharCode )(_ecf .CharMetrics ,bool ){if _ddec .DescendantFont ==nil {_abe .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",_ddec );return _ecf .CharMetrics {},false ;};return _ddec .DescendantFont .GetCharMetrics (code );};
// SetContext set the sub annotation (context).
func (_ceece *PdfShading )SetContext (ctx PdfModel ){_ceece ._egaca =ctx };
// 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 (_fbdbc *PdfAcroForm )FillWithAppearance (provider FieldValueProvider ,appGen FieldAppearanceGenerator )error {return _fbdbc .fill (provider ,appGen );};func (_dfgg *PdfReader )newPdfAnnotationMovieFromDict (_caba *_aef .PdfObjectDictionary )(*PdfAnnotationMovie ,error ){_fage :=PdfAnnotationMovie {};_fage .T =_caba .Get ("\u0054");_fage .Movie =_caba .Get ("\u004d\u006f\u0076i\u0065");_fage .A =_caba .Get ("\u0041");return &_fage ,nil ;};
// PdfShadingType5 is a Lattice-form Gouraud-shaded triangle mesh.
type PdfShadingType5 struct{*PdfShading ;BitsPerCoordinate *_aef .PdfObjectInteger ;BitsPerComponent *_aef .PdfObjectInteger ;VerticesPerRow *_aef .PdfObjectInteger ;Decode *_aef .PdfObjectArray ;Function []PdfFunction ;};
// NewPdfAppender creates a new Pdf appender from a Pdf reader.
func NewPdfAppender (reader *PdfReader )(*PdfAppender ,error ){_ddbd :=&PdfAppender {_dfgf :reader ._cced ,Reader :reader ,_egag :reader ._gdbbd ,_gfce :reader ._cadgb };_gedfg ,_fagfb :=_ddbd ._dfgf .Seek (0,_gfc .SeekEnd );if _fagfb !=nil {return nil ,_fagfb ;};_ddbd ._gadc =_gedfg ;if _ ,_fagfb =_ddbd ._dfgf .Seek (0,_gfc .SeekStart );_fagfb !=nil {return nil ,_fagfb ;};_ddbd ._fdd ,_fagfb =NewPdfReader (_ddbd ._dfgf );if _fagfb !=nil {return nil ,_fagfb ;};for _ ,_eeaeg :=range _ddbd .Reader .GetObjectNums (){if _ddbd ._gdbd < _eeaeg {_ddbd ._gdbd =_eeaeg ;};};_ddbd ._cdda =_ddbd ._egag .GetXrefTable ();_ddbd ._fccb =_ddbd ._egag .GetXrefOffset ();_ddbd ._ebegf =append (_ddbd ._ebegf ,_ddbd ._fdd .PageList ...);_ddbd ._abge =make (map[_aef .PdfObject ]struct{});_ddbd ._ddff =make (map[_aef .PdfObject ]int64 );_ddbd ._cbf =make (map[_aef .PdfObject ]struct{});_ddbd ._faga =_ddbd ._fdd .AcroForm ;_ddbd ._gcde =_ddbd ._fdd .DSS ;return _ddbd ,nil ;};func _gdegc (_adgdf _aef .PdfObject )(*PdfFunctionType2 ,error ){_dcgcf :=&PdfFunctionType2 {};var _gfege *_aef .PdfObjectDictionary ;if _gdaad ,_fcdb :=_adgdf .(*_aef .PdfIndirectObject );_fcdb {_ddcac ,_efgg :=_gdaad .PdfObject .(*_aef .PdfObjectDictionary );if !_efgg {return nil ,_fa .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_dcgcf ._fecc =_gdaad ;_gfege =_ddcac ;}else if _dbbca ,_dgdga :=_adgdf .(*_aef .PdfObjectDictionary );_dgdga {_gfege =_dbbca ;}else {return nil ,_fa .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_abe .Log .Trace ("\u0046U\u004e\u0043\u0032\u003a\u0020\u0025s",_gfege .String ());_dged ,_ddab :=_aef .TraceToDirectObject (_gfege .Get ("\u0044\u006f\u006d\u0061\u0069\u006e")).(*_aef .PdfObjectArray );if !_ddab {_abe .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_fa .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 _dged .Len ()< 0||_dged .Len ()%2!=0{_abe .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u0072\u0061\u006e\u0067e\u0020\u0069\u006e\u0076al\u0069\u0064");return nil ,_fa .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0064\u006f\u006da\u0069\u006e\u0020\u0072an\u0067\u0065");};_bacbd ,_cage :=_dged .ToFloat64Array ();if _cage !=nil {return nil ,_cage ;};_dcgcf .Domain =_bacbd ;_dged ,_ddab =_aef .TraceToDirectObject (_gfege .Get ("\u0052\u0061\u006eg\u0065")).(*_aef .PdfObjectArray );if _ddab {if _dged .Len ()< 0||_dged .Len ()%2!=0{return nil ,_fa .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0061\u006e\u0067\u0065");};_ddbfa ,_cgad :=_dged .ToFloat64Array ();if _cgad !=nil {return nil ,_cgad ;};_dcgcf .Range =_ddbfa ;};_dged ,_ddab =_aef .TraceToDirectObject (_gfege .Get ("\u0043\u0030")).(*_aef .PdfObjectArray );if _ddab {_gegga ,_aeddd :=_dged .ToFloat64Array ();if _aeddd !=nil {return nil ,_aeddd ;};_dcgcf .C0 =_gegga ;};_dged ,_ddab =_aef .TraceToDirectObject (_gfege .Get ("\u0043\u0031")).(*_aef .PdfObjectArray );if _ddab {_bfgd ,_dcbdb :=_dged .ToFloat64Array ();if _dcbdb !=nil {return nil ,_dcbdb ;};_dcgcf .C1 =_bfgd ;};if len (_dcgcf .C0 )!=len (_dcgcf .C1 ){_abe .Log .Error ("\u0043\u0030\u0020\u0061nd\u0020\u0043\u0031\u0020\u006e\u006f\u0074\u0020\u006d\u0061\u0074\u0063\u0068\u0069n\u0067");return nil ,_aef .ErrRangeError ;};N ,_cage :=_aef .GetNumberAsFloat (_aef .TraceToDirectObject (_gfege .Get ("\u004e")));if _cage !=nil {_abe .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",_gfege .String ());return nil ,_cage ;};_dcgcf .N =N ;return _dcgcf ,nil ;};
// NewPdfOutlineTree returns an initialized PdfOutline tree.
func NewPdfOutlineTree ()*PdfOutline {_geeb :=NewPdfOutline ();_geeb ._gdgaba =&_geeb ;return _geeb };
// ToPdfObject returns the PDF representation of the pattern.
func (_fdaad *PdfPattern )ToPdfObject ()_aef .PdfObject {_gfaeba :=_fdaad .getDict ();_gfaeba .Set ("\u0054\u0079\u0070\u0065",_aef .MakeName ("\u0050a\u0074\u0074\u0065\u0072\u006e"));_gfaeba .Set ("P\u0061\u0074\u0074\u0065\u0072\u006e\u0054\u0079\u0070\u0065",_aef .MakeInteger (_fdaad .PatternType ));return _fdaad ._fgbcde ;};
// ToPdfObject implements interface PdfModel.
func (_adb *PdfActionURI )ToPdfObject ()_aef .PdfObject {_adb .PdfAction .ToPdfObject ();_ddb :=_adb ._gc ;_fab :=_ddb .PdfObject .(*_aef .PdfObjectDictionary );_fab .SetIfNotNil ("\u0053",_aef .MakeName (string (ActionTypeURI )));_fab .SetIfNotNil ("\u0055\u0052\u0049",_adb .URI );_fab .SetIfNotNil ("\u0049\u0073\u004da\u0070",_adb .IsMap );return _ddb ;};
// HasXObjectByName checks if has XObject resource by name.
func (_fgdf *PdfPage )HasXObjectByName (name _aef .PdfObjectName )bool {_gdae ,_agaed :=_fgdf .Resources .XObject .(*_aef .PdfObjectDictionary );if !_agaed {return false ;};if _acdfe :=_gdae .Get (name );_acdfe !=nil {return true ;};return false ;};
// NewPdfAnnotationPrinterMark returns a new printermark annotation.
func NewPdfAnnotationPrinterMark ()*PdfAnnotationPrinterMark {_agfb :=NewPdfAnnotation ();_eea :=&PdfAnnotationPrinterMark {};_eea .PdfAnnotation =_agfb ;_agfb .SetContext (_eea );return _eea ;};func (_dcbe *PdfReader )newPdfActionGoTo3DViewFromDict (_faeb *_aef .PdfObjectDictionary )(*PdfActionGoTo3DView ,error ){return &PdfActionGoTo3DView {TA :_faeb .Get ("\u0054\u0041"),V :_faeb .Get ("\u0056")},nil ;};
// Write writes the Appender output to io.Writer.
// It can only be called once and further invocations will result in an error.
func (_dcdb *PdfAppender )Write (w _gfc .Writer )error {if _dcdb ._ebef {return _fa .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");};_aeff :=NewPdfWriter ();_gebf ,_fddg :=_aef .GetDict (_aeff ._gacae );if !_fddg {return _fa .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");};_dfcf ,_fddg :=_gebf .Get ("\u004b\u0069\u0064\u0073").(*_aef .PdfObjectArray );if !_fddg {return _fa .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");};_dcab ,_fddg :=_gebf .Get ("\u0043\u006f\u0075n\u0074").(*_aef .PdfObjectInteger );if !_fddg {return _fa .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");};_cgfa :=_dcdb ._fdd ._gdbbd ;_facb :=_cgfa .GetTrailer ();if _facb ==nil {return _fa .New ("\u006di\u0073s\u0069\u006e\u0067\u0020\u0074\u0072\u0061\u0069\u006c\u0065\u0072");};_ccf ,_fddg :=_aef .GetIndirect (_facb .Get ("\u0052\u006f\u006f\u0074"));if !_fddg {return _fa .New ("c\u0061\u0074\u0061\u006c\u006f\u0067 \u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0065\u0072 \u006e\u006f\u0074 \u0066o\u0075\u006e\u0064");};_dfda ,_fddg :=_aef .GetDict (_ccf );if !_fddg {_abe .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",_ccf ,*_facb );return _fa .New ("\u006di\u0073s\u0069\u006e\u0067\u0020\u0063\u0061\u0074\u0061\u006c\u006f\u0067");};for _ ,_edca :=range _dfda .Keys (){if _aeff ._abebc .Get (_edca )==nil {_dcbd :=_dfda .Get (_edca );_aeff ._abebc .Set (_edca ,_dcbd );};};if _dcdb ._faga !=nil {_aeff ._abebc .Set ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d",_dcdb ._faga .ToPdfObject ());_dcdb .updateObjectsDeep (_dcdb ._faga .ToPdfObject (),nil );};if _dcdb ._gcde !=nil {_dcdb .updateObjectsDeep (_dcdb ._gcde .ToPdfObject (),nil );_aeff ._abebc .Set ("\u0044\u0053\u0053",_dcdb ._gcde .GetContainingPdfObject ());};if _aeff ._cfebb < 2{_aeff .AddExtension ("\u0045\u0053\u0049\u0043","\u0031\u002e\u0037",5);_aeff .AddExtension ("\u0041\u0044\u0042\u0045","\u0031\u002e\u0037",8);};_dcdb .addNewObject (_aeff ._caefd );_dcdb .addNewObject (_aeff ._bdbdfg );_ggega :=false ;if len (_dcdb ._fdd .PageList )!=len (_dcdb ._ebegf ){_ggega =true ;}else {for _edfb :=range _dcdb ._fdd .PageList {switch {case _dcdb ._ebegf [_edfb ]==_dcdb ._fdd .PageList [_edfb ]:case _dcdb ._ebegf [_edfb ]==_dcdb .Reader .PageList [_edfb ]:default:_ggega =true ;};if _ggega {break ;};};};if _ggega {_dcdb .updateObjectsDeep (_aeff ._gacae ,nil );}else {_dcdb ._cbf [_aeff ._gacae ]=struct{}{};};_aeff ._gacae .ObjectNumber =_dcdb .Reader ._cbfdd .ObjectNumber ;_dcdb ._ddff [_aeff ._gacae ]=_dcdb .Reader ._cbfdd .ObjectNumber ;_accd :=[]_aef .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 _ ,_ddac :=range _dcdb ._ebegf {_ffde :=_ddac .ToPdfObject ();*_dcab =*_dcab +1;if _abcg ,_ggc :=_ffde .(*_aef .PdfIndirectObject );_ggc &&_abcg .GetParser ()==_dcdb ._fdd ._gdbbd {_dfcf .Append (&_abcg .PdfObjectReference );continue ;};if _eagf ,_fdce :=_aef .GetDict (_ffde );_fdce {_gaggc ,_agbd :=_eagf .Get ("\u0050\u0061\u0072\u0065\u006e\u0074").(*_aef .PdfIndirectObject );for _agbd {_abe .Log .Trace ("\u0050a\u0067e\u0020\u0050\u0061\u0072\u0065\u006e\u0074\u003a\u0020\u0025\u0054",_gaggc );_eaede ,_dfae :=_gaggc .PdfObject .(*_aef .PdfObjectDictionary );if !_dfae {return _fa .New ("i\u006e\u0076\u0061\u006cid\u0020P\u0061\u0072\u0065\u006e\u0074 \u006f\u0062\u006a\u0065\u0063\u0074");};for _ ,_gdg :=range _accd {_abe .Log .Trace ("\u0046\u0069\u0065\u006c\u0064\u0020\u0025\u0073",_gdg );if _eagf .Get (_gdg )!=nil {_abe .Log .Trace ("\u002d \u0070a\u0067\u0065\u0020\u0068\u0061s\u0020\u0061l\u0072\u0065\u0061\u0064\u0079");continue ;};if _gggb :=_eaede .Get (_gdg );_gggb !=nil {_abe .Log .Trace ("\u0049\u006e\u0068\u0065ri\u0074\u0069\u006e\u0067\u0020\u0066\u0069\u0065\u006c\u0064\u0020\u0025\u0073",_gdg );_eagf .Set (_gdg ,_gggb );};};_gaggc ,_agbd =_eaede .Get ("\u0050\u0061\u0072\u0065\u006e\u0074").(*_aef .PdfIndirectObject );_abe .Log .Trace ("\u004ee\u0078t\u0020\u0070\u0061\u0072\u0065\u006e\u0074\u003a\u0020\u0025\u0054",_eaede .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"));};_eagf .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_aeff ._gacae );};_dcdb .updateObjectsDeep (_ffde ,nil );_dfcf .Append (_ffde );};if _ ,_aaee :=_dcdb ._dfgf .Seek (0,_gfc .SeekStart );_aaee !=nil {return _aaee ;};_efff :=make (map[SignatureHandler ]_gfc .Writer );_cefeg :=_aef .MakeArray ();for _ ,_fgbea :=range _dcdb ._aeaaa {if _dacd ,_fdfd :=_aef .GetIndirect (_fgbea );_fdfd {if _agbb ,_ecfg :=_dacd .PdfObject .(*pdfSignDictionary );_ecfg {_eefb :=*_agbb ._gegee ;var _bdff error ;_efff [_eefb ],_bdff =_eefb .NewDigest (_agbb ._bebca );if _bdff !=nil {return _bdff ;};_cefeg .Append (_aef .MakeInteger (0xfffff),_aef .MakeInteger (0xfffff));};};};if _cefeg .Len ()> 0{_cefeg .Append (_aef .MakeInteger (0xfffff),_aef .MakeInteger (0xfffff));};for _ ,_egfe :=range _dcdb ._aeaaa {if _acaa ,_efeb :=_aef .GetIndirect (_egfe );_efeb {if _bfec ,_cafd :=_acaa .PdfObject .(*pdfSignDictionary );_cafd {_bfec .Set ("\u0042y\u0074\u0065\u0052\u0061\u006e\u0067e",_cefeg );};};};_fcbe :=len (_efff )> 0;var _eccb _gfc .Reader =_dcdb ._dfgf ;if _fcbe {_gaabf :=make ([]_gfc .Writer ,0,len (_efff ));for _ ,_cdff :=range _efff {_gaabf =append (_gaabf ,_cdff );};_eccb =_gfc .TeeReader (_dcdb ._dfgf ,_gfc .MultiWriter (_gaabf ...));};_dbbb ,_acga :=_gfc .Copy (w ,_eccb );if _acga !=nil {return _acga ;};if len (_dcdb ._aeaaa )==0{return nil ;};_aeff ._ccdaf =_dbbb ;_aeff .ObjNumOffset =_dcdb ._gdbd ;_aeff ._bcdd =true ;_aeff ._gdbde =_dcdb ._cdda ;_aeff ._bbbefb =_dcdb ._fccb ;_aeff ._bfagd =_dcdb ._gadc ;_aeff ._gbcce =_dcdb ._fdd .PdfVersion ().Minor ;_aeff ._bfeac =_dcdb ._ddff ;_bbac :=_dcdb ._egag .GetXrefType ();if _bbac !=nil {_fgfc :=*_bbac ==_aef .XrefTypeObjectStream ;_aeff ._ecfeg =&_fgfc ;};_aeff ._cafea =map[_aef .PdfObject ]struct{}{};_aeff ._aage =[]_aef .PdfObject {};for _ ,_dfaa :=range _dcdb ._aeaaa {if _ ,_bega :=_dcdb ._cbf [_dfaa ];_bega {continue ;};_aeff .addObject (_dfaa );};_edff :=w ;if _fcbe {_edff =_cg .NewBuffer (nil );};if _gdgf :=_aeff .Write (_edff );_gdgf !=nil {return _gdgf ;};if _fcbe {_bcbb :=_edff .(*_cg .Buffer ).Bytes ();_eadf :=_aef .MakeArray ();var _cbge []*pdfSignDictionary ;var _abgea int64 ;for _ ,_ffbc :=range _aeff ._aage {if _gccf ,_cbcc :=_aef .GetIndirect (_ffbc );_cbcc {if _bcef ,_ccg :=_gccf .PdfObject .(*pdfSignDictionary );_ccg {_cbge =append (_cbge ,_bcef );_cbgd :=_bcef ._ggbad +int64 (_bcef ._dfdbe );_eadf .Append (_aef .MakeInteger (_abgea ),_aef .MakeInteger (_cbgd -_abgea ));_abgea =_bcef ._ggbad +int64 (_bcef ._ffff );};};};_eadf .Append (_aef .MakeInteger (_abgea ),_aef .MakeInteger (_dbbb +int64 (len (_bcbb ))-_abgea ));_cbege :=[]byte (_eadf .WriteString ());for _ ,_cgcf :=range _cbge {_gegae :=int (_cgcf ._ggbad -_dbbb );for _babe :=_cgcf ._afebc ;_babe < _cgcf ._aceeb ;_babe ++{_bcbb [_gegae +_babe ]=' ';};_aggd :=_bcbb [_gegae +_cgcf ._afebc :_gegae +_cgcf ._aceeb ];copy (_aggd ,_cbege );};var _cceb int ;for _ ,_cbee :=range _cbge {_gaegf :=int (_cbee ._ggbad -_dbbb );_efgfg :=_bcbb [_cceb :_gaegf +_cbee ._dfdbe ];_gaege :=*_cbee ._gegee ;_efff [_gaege ].Write (_efgfg );_cceb =_gaegf +_cbee ._ffff ;};for _ ,_dbdg :=range _cbge {_dgge :=_bcbb [_cceb :];_bdea :=*_dbdg ._gegee ;_efff [_bdea ].Write (_dgge );};for _ ,_cacgg :=range _cbge {_fgcd :=int (_cacgg ._ggbad -_dbbb );_abfg :=*_cacgg ._gegee ;_faag :=_efff [_abfg ];if _eacg :=_abfg .Sign (_cacgg ._bebca ,_faag );_eacg !=nil {return _eacg ;};_cacgg ._bebca .ByteRange =_eadf ;_ffdd :=[]byte (_cacgg ._bebca .Contents .WriteString ());for _cfac :=_cacgg ._afebc ;_cfac < _cacgg ._aceeb ;_cfac ++{_bcbb [_fgcd +_cfac ]=' ';};for _adbfc :=_cacgg ._dfdbe ;_adbfc < _cacgg ._ffff ;_adbfc ++{_bcbb [_fgcd +_adbfc ]=' ';};_gcdfe :=_bcbb [_fgcd +_cacgg ._afebc :_fgcd +_cacgg ._aceeb ];copy (_gcdfe ,_cbege );_gcdfe =_bcbb [_fgcd +_cacgg ._dfdbe :_fgcd +_cacgg ._ffff ];copy (_gcdfe ,_ffdd );};_egba :=_cg .NewBuffer (_bcbb );_ ,_acga =_gfc .Copy (w ,_egba );if _acga !=nil {return _acga ;};};_dcdb ._ebef =true ;return nil ;};
// 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 };};
// PdfAnnotationText represents Text annotations.
// (Section 12.5.6.4 p. 402).
type PdfAnnotationText struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Open _aef .PdfObject ;Name _aef .PdfObject ;State _aef .PdfObject ;StateModel _aef .PdfObject ;};
// DecodeArray returns the range of color component values in CalGray colorspace.
func (_gggd *PdfColorspaceCalGray )DecodeArray ()[]float64 {return []float64 {0.0,1.0}};
// ToPdfObject returns a PDF object representation of the outline.
func (_dbdca *Outline )ToPdfObject ()_aef .PdfObject {return _dbdca .ToPdfOutline ().ToPdfObject ()};
// NewXObjectImage returns a new XObjectImage.
func NewXObjectImage ()*XObjectImage {_bfcd :=&XObjectImage {};_aggb :=&_aef .PdfObjectStream {};_aggb .PdfObjectDictionary =_aef .MakeDict ();_bfcd ._dcafe =_aggb ;return _bfcd ;};
// GetPageAsIndirectObject returns the page as a dictionary within an PdfIndirectObject.
func (_ebbd *PdfPage )GetPageAsIndirectObject ()*_aef .PdfIndirectObject {return _ebbd ._gfbbf };func _gagac (_cbbb *_aef .PdfObjectDictionary ,_edfge *fontCommon )(*pdfCIDFontType2 ,error ){if _edfge ._ababd !="\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032"{_abe .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",_edfge );return nil ,_aef .ErrRangeError ;};_faac :=_gadbg (_edfge );_cbagf ,_fggbg :=_aef .GetDict (_cbbb .Get ("\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f"));if !_fggbg {_abe .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",_edfge );return nil ,ErrRequiredAttributeMissing ;};_faac .CIDSystemInfo =_cbagf ;_faac .DW =_cbbb .Get ("\u0044\u0057");_faac .W =_cbbb .Get ("\u0057");_faac .DW2 =_cbbb .Get ("\u0044\u0057\u0032");_faac .W2 =_cbbb .Get ("\u0057\u0032");_faac .CIDToGIDMap =_cbbb .Get ("C\u0049\u0044\u0054\u006f\u0047\u0049\u0044\u004d\u0061\u0070");_faac ._efagd =1000.0;if _gaead ,_fgbag :=_aef .GetNumberAsFloat (_faac .DW );_fgbag ==nil {_faac ._efagd =_gaead ;};_dfgae ,_agba :=_bbaee (_faac .W );if _agba !=nil {return nil ,_agba ;};if _dfgae ==nil {_dfgae =map[_be .CharCode ]float64 {};};_faac ._gcfe =_dfgae ;return _faac ,nil ;};
// ColorFromPdfObjects returns a new PdfColor based on the input slice of color
// components. The slice should contain a single PdfObjectFloat element in
// range 0-1.
func (_aceb *PdfColorspaceDeviceGray )ColorFromPdfObjects (objects []_aef .PdfObject )(PdfColor ,error ){if len (objects )!=1{return nil ,_fa .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_ffbd ,_dage :=_aef .GetNumbersAsFloat (objects );if _dage !=nil {return nil ,_dage ;};return _aceb .ColorFromFloats (_ffbd );};var (CourierName =_ecf .CourierName ;CourierBoldName =_ecf .CourierBoldName ;CourierObliqueName =_ecf .CourierObliqueName ;CourierBoldObliqueName =_ecf .CourierBoldObliqueName ;HelveticaName =_ecf .HelveticaName ;HelveticaBoldName =_ecf .HelveticaBoldName ;HelveticaObliqueName =_ecf .HelveticaObliqueName ;HelveticaBoldObliqueName =_ecf .HelveticaBoldObliqueName ;SymbolName =_ecf .SymbolName ;ZapfDingbatsName =_ecf .ZapfDingbatsName ;TimesRomanName =_ecf .TimesRomanName ;TimesBoldName =_ecf .TimesBoldName ;TimesItalicName =_ecf .TimesItalicName ;TimesBoldItalicName =_ecf .TimesBoldItalicName ;);
// ToInteger convert to an integer format.
func (_gdddb *PdfColorCalRGB )ToInteger (bits int )[3]uint32 {_gaga :=_ad .Pow (2,float64 (bits ))-1;return [3]uint32 {uint32 (_gaga *_gdddb .A ()),uint32 (_gaga *_gdddb .B ()),uint32 (_gaga *_gdddb .C ())};};
// NewPdfAnnotationScreen returns a new screen annotation.
func NewPdfAnnotationScreen ()*PdfAnnotationScreen {_gcb :=NewPdfAnnotation ();_ceg :=&PdfAnnotationScreen {};_ceg .PdfAnnotation =_gcb ;_gcb .SetContext (_ceg );return _ceg ;};
// GetPrimitiveFromModel returns the primitive object corresponding to the input `model`.
func (_abeae *modelManager )GetPrimitiveFromModel (model PdfModel )_aef .PdfObject {_bcabf ,_dgafd :=_abeae ._gfdb [model ];if !_dgafd {return nil ;};return _bcabf ;};
// CustomKeys returns all custom info keys as list.
func (_daca *PdfInfo )CustomKeys ()[]string {if _daca ._ebcd ==nil {return nil ;};_abbd :=make ([]string ,len (_daca ._ebcd .Keys ()));for _ ,_dbgb :=range _daca ._ebcd .Keys (){_abbd =append (_abbd ,_dbgb .String ());};return _abbd ;};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););
// 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 (_gbfdf *Image )GetSamples ()[]uint32 {_fafaec :=_ea .ResampleBytes (_gbfdf .Data ,int (_gbfdf .BitsPerComponent ));if _gbfdf .BitsPerComponent < 8{_fafaec =_gbfdf .samplesTrimPadding (_fafaec );};_eacf :=int (_gbfdf .Width )*int (_gbfdf .Height )*_gbfdf .ColorComponents ;if len (_fafaec )< _eacf {_abe .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 (_fafaec ),_eacf );return _fafaec ;}else if len (_fafaec )> _eacf {_abe .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 (_fafaec ),_eacf );_fafaec =_fafaec [:_eacf ];};return _fafaec ;};func (_cedde *PdfReader )newPdfFieldFromIndirectObject (_acba *_aef .PdfIndirectObject ,_gbae *PdfField )(*PdfField ,error ){if _ggfd ,_fbcb :=_cedde ._fggbd .GetModelFromPrimitive (_acba ).(*PdfField );_fbcb {return _ggfd ,nil ;};_feaf ,_affb :=_aef .GetDict (_acba );if !_affb {return nil ,_b .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");};_cfga :=NewPdfField ();_cfga ._abebg =_acba ;_cfga ._abebg .PdfObject =_feaf ;if _gbab ,_caef :=_aef .GetName (_feaf .Get ("\u0046\u0054"));_caef {_cfga .FT =_gbab ;};if _gbae !=nil {_cfga .Parent =_gbae ;};_cfga .T ,_ =_feaf .Get ("\u0054").(*_aef .PdfObjectString );_cfga .TU ,_ =_feaf .Get ("\u0054\u0055").(*_aef .PdfObjectString );_cfga .TM ,_ =_feaf .Get ("\u0054\u004d").(*_aef .PdfObjectString );_cfga .Ff ,_ =_feaf .Get ("\u0046\u0066").(*_aef .PdfObjectInteger );_cfga .V =_feaf .Get ("\u0056");_cfga .DV =_feaf .Get ("\u0044\u0056");_cfga .AA =_feaf .Get ("\u0041\u0041");_fcabd :=_cfga .FT ;if _fcabd ==nil &&_gbae !=nil {_fcabd =_gbae .FT ;};if _fcabd !=nil {switch *_fcabd {case "\u0054\u0078":_eabe ,_cgfac :=_bgcf (_feaf );if _cgfac !=nil {return nil ,_cgfac ;};_eabe .PdfField =_cfga ;_cfga ._aafba =_eabe ;case "\u0043\u0068":_daegd ,_bgadd :=_agfdf (_feaf );if _bgadd !=nil {return nil ,_bgadd ;};_daegd .PdfField =_cfga ;_cfga ._aafba =_daegd ;case "\u0042\u0074\u006e":_dgcea ,_fgbba :=_gfab (_feaf );if _fgbba !=nil {return nil ,_fgbba ;};_dgcea .PdfField =_cfga ;_cfga ._aafba =_dgcea ;case "\u0053\u0069\u0067":_gfddf ,_bgde :=_cedde .newPdfFieldSignatureFromDict (_feaf );if _bgde !=nil {return nil ,_bgde ;};_gfddf .PdfField =_cfga ;_cfga ._aafba =_gfddf ;default:_abe .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",*_cfga .FT );return nil ,_fa .New ("\u0075\u006e\u0073\u0075pp\u006f\u0072\u0074\u0065\u0064\u0020\u0066\u0069\u0065\u006c\u0064\u0020\u0074\u0079p\u0065");};};if _gecdg ,_acfcg :=_aef .GetName (_feaf .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065"));_acfcg {if *_gecdg =="\u0057\u0069\u0064\u0067\u0065\u0074"{_cedf ,_fbg :=_cedde .newPdfAnnotationFromIndirectObject (_acba );if _fbg !=nil {return nil ,_fbg ;};_fgcgf ,_gcf :=_cedf .GetContext ().(*PdfAnnotationWidget );if !_gcf {return nil ,_fa .New ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0077\u0069\u0064\u0067e\u0074 \u0061n\u006e\u006f\u0074\u0061\u0074\u0069\u006fn");};_fgcgf ._ccc =_cfga ;_fgcgf .Parent =_cfga ._abebg ;_cfga .Annotations =append (_cfga .Annotations ,_fgcgf );return _cfga ,nil ;};};_fgdc :=true ;if _gbgc ,_ecbba :=_aef .GetArray (_feaf .Get ("\u004b\u0069\u0064\u0073"));_ecbba {_ccagf :=make ([]*_aef .PdfIndirectObject ,0,_gbgc .Len ());for _ ,_gdff :=range _gbgc .Elements (){_fdge ,_cabc :=_aef .GetIndirect (_gdff );if !_cabc {_gcga ,_bad :=_aef .GetStream (_gdff );if _bad &&_gcga .PdfObjectDictionary !=nil {_bfbad ,_gdaa :=_aef .GetNameVal (_gcga .Get ("\u0054\u0079\u0070\u0065"));if _gdaa &&_bfbad =="\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061"{_abe .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 ,_fa .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");};_cbga ,_gceab :=_aef .GetDict (_fdge );if !_gceab {return nil ,ErrTypeCheck ;};if _fgdc {_fgdc =!_bffeb (_cbga );};_ccagf =append (_ccagf ,_fdge );};for _ ,_ebca :=range _ccagf {if _fgdc {_abcf ,_fdbabb :=_cedde .newPdfAnnotationFromIndirectObject (_ebca );if _fdbabb !=nil {_abe .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",_fdbabb );return nil ,_fdbabb ;};_febg ,_bfbe :=_abcf ._eab .(*PdfAnnotationWidget );if !_bfbe {return nil ,ErrTypeCheck ;};_febg ._ccc =_cfga ;_cfga .Annotations =append (_cfga .Annotations ,_febg );}else {_bcfc ,_aedab :=_cedde .newPdfFieldFromIndirectObject (_ebca ,_cfga );if _aedab !=nil {_abe .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",_aedab );return nil ,_aedab ;};_cfga .Kids =append (_cfga .Kids ,_bcfc );};};};return _cfga ,nil ;};
// ColorFromFloats returns a new PdfColor based on the input slice of color
// components. The slice should contain a single element between 0 and 1.
func (_cbce *PdfColorspaceCalGray )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=1{return nil ,_fa .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_gafb :=vals [0];if _gafb < 0.0||_gafb > 1.0{return nil ,_fa .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_gacf :=NewPdfColorCalGray (_gafb );return _gacf ,nil ;};
// GetNumComponents returns the number of color components (1 for Indexed).
func (_aebfb *PdfColorspaceSpecialIndexed )GetNumComponents ()int {return 1};
// GetNumComponents returns the number of color components of the colorspace device.
// Returns 3 for a Lab device.
func (_abfc *PdfColorspaceLab )GetNumComponents ()int {return 3};
// PdfAnnotationProjection represents Projection annotations.
type PdfAnnotationProjection struct{*PdfAnnotation ;*PdfAnnotationMarkup ;};
// 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 (_cbdfe *PdfPage )AppendContentBytes (cs []byte ,wrapContents bool )error {_gfadc :=_cbdfe .GetContentStreamObjs ();wrapContents =wrapContents &&len (_gfadc )> 0;_efge :=_aef .NewFlateEncoder ();_ebaff :=_aef .MakeArray ();if wrapContents {_gcdd ,_befga :=_aef .MakeStream ([]byte ("\u0071\u000a"),_efge );if _befga !=nil {return _befga ;};_ebaff .Append (_gcdd );};_ebaff .Append (_gfadc ...);if wrapContents {_ccdbg ,_gefbc :=_aef .MakeStream ([]byte ("\u000a\u0051\u000a"),_efge );if _gefbc !=nil {return _gefbc ;};_ebaff .Append (_ccdbg );};_eecd ,_gddec :=_aef .MakeStream (cs ,_efge );if _gddec !=nil {return _gddec ;};_ebaff .Append (_eecd );_cbdfe .Contents =_ebaff ;return nil ;};
// PdfAnnotationMovie represents Movie annotations.
// (Section 12.5.6.17).
type PdfAnnotationMovie struct{*PdfAnnotation ;T _aef .PdfObject ;Movie _aef .PdfObject ;A _aef .PdfObject ;};
// ToJBIG2Image converts current image to the core.JBIG2Image.
func (_dddgc *Image )ToJBIG2Image ()(*_aef .JBIG2Image ,error ){_dcbcg ,_faba :=_dddgc .ToGoImage ();if _faba !=nil {return nil ,_faba ;};return _aef .GoImageToJBIG2 (_dcbcg ,_aef .JB2ImageAutoThreshold );};
// 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 (_acgbf *Image )Resample (targetBitsPerComponent int64 ){if _acgbf .BitsPerComponent ==targetBitsPerComponent {return ;};_beaef :=_acgbf .GetSamples ();if targetBitsPerComponent < _acgbf .BitsPerComponent {_gddee :=_acgbf .BitsPerComponent -targetBitsPerComponent ;for _bade :=range _beaef {_beaef [_bade ]>>=uint (_gddee );};}else if targetBitsPerComponent > _acgbf .BitsPerComponent {_ccad :=targetBitsPerComponent -_acgbf .BitsPerComponent ;for _fdcecf :=range _beaef {_beaef [_fdcecf ]<<=uint (_ccad );};};_acgbf .BitsPerComponent =targetBitsPerComponent ;if _acgbf .BitsPerComponent < 8{_acgbf .resampleLowBits (_beaef );return ;};_eefaf :=_gb .BytesPerLine (int (_acgbf .Width ),int (_acgbf .BitsPerComponent ),_acgbf .ColorComponents );_ebfge :=make ([]byte ,_eefaf *int (_acgbf .Height ));var (_bagee ,_dedf ,_bede ,_dfeed int ;_efcbe uint32 ;);for _bede =0;_bede < int (_acgbf .Height );_bede ++{_bagee =_bede *_eefaf ;_dedf =(_bede +1)*_eefaf -1;_befge :=_ea .ResampleUint32 (_beaef [_bagee :_dedf ],int (targetBitsPerComponent ),8);for _dfeed ,_efcbe =range _befge {_ebfge [_dfeed +_bagee ]=byte (_efcbe );};};_acgbf .Data =_ebfge ;};func (_baa *PdfReader )newPdfAnnotationPolyLineFromDict (_aca *_aef .PdfObjectDictionary )(*PdfAnnotationPolyLine ,error ){_bbag :=PdfAnnotationPolyLine {};_dba ,_bfee :=_baa .newPdfAnnotationMarkupFromDict (_aca );if _bfee !=nil {return nil ,_bfee ;};_bbag .PdfAnnotationMarkup =_dba ;_bbag .Vertices =_aca .Get ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073");_bbag .LE =_aca .Get ("\u004c\u0045");_bbag .BS =_aca .Get ("\u0042\u0053");_bbag .IC =_aca .Get ("\u0049\u0043");_bbag .BE =_aca .Get ("\u0042\u0045");_bbag .IT =_aca .Get ("\u0049\u0054");_bbag .Measure =_aca .Get ("\u004de\u0061\u0073\u0075\u0072\u0065");return &_bbag ,nil ;};func (_fcg *PdfColorspaceSpecialIndexed )String ()string {return "\u0049n\u0064\u0065\u0078\u0065\u0064";};
// AddPages adds pages to be appended to the end of the source PDF.
func (_gagd *PdfAppender )AddPages (pages ...*PdfPage ){for _ ,_bgaf :=range pages {_bgaf =_bgaf .Duplicate ();_bedgc (_bgaf );_gagd ._ebegf =append (_gagd ._ebegf ,_bgaf );};};func _afga (_fgbc *PdfPage )map[_aef .PdfObjectName ]_aef .PdfObject {_fagc :=make (map[_aef .PdfObjectName ]_aef .PdfObject );if _fgbc .Resources ==nil {return _fagc ;};if _fgbc .Resources .Font !=nil {if _fgbe ,_babdd :=_aef .GetDict (_fgbc .Resources .Font );_babdd {for _ ,_gcdbd :=range _fgbe .Keys (){_fagc [_gcdbd ]=_fgbe .Get (_gcdbd );};};};if _fgbc .Resources .ExtGState !=nil {if _gecdf ,_eage :=_aef .GetDict (_fgbc .Resources .ExtGState );_eage {for _ ,_aece :=range _gecdf .Keys (){_fagc [_aece ]=_gecdf .Get (_aece );};};};if _fgbc .Resources .XObject !=nil {if _fgbd ,_ccdd :=_aef .GetDict (_fgbc .Resources .XObject );_ccdd {for _ ,_gbbe :=range _fgbd .Keys (){_fagc [_gbbe ]=_fgbd .Get (_gbbe );};};};if _fgbc .Resources .Pattern !=nil {if _deag ,_acf :=_aef .GetDict (_fgbc .Resources .Pattern );_acf {for _ ,_eceed :=range _deag .Keys (){_fagc [_eceed ]=_deag .Get (_eceed );};};};if _fgbc .Resources .Shading !=nil {if _gega ,_gagg :=_aef .GetDict (_fgbc .Resources .Shading );_gagg {for _ ,_aad :=range _gega .Keys (){_fagc [_aad ]=_gega .Get (_aad );};};};if _fgbc .Resources .ProcSet !=nil {if _eaca ,_aebd :=_aef .GetDict (_fgbc .Resources .ProcSet );_aebd {for _ ,_dbac :=range _eaca .Keys (){_fagc [_dbac ]=_eaca .Get (_dbac );};};};if _fgbc .Resources .Properties !=nil {if _abeg ,_abag :=_aef .GetDict (_fgbc .Resources .Properties );_abag {for _ ,_adcf :=range _abeg .Keys (){_fagc [_adcf ]=_abeg .Get (_adcf );};};};return _fagc ;};
// ToPdfObject returns the PDF representation of the shading dictionary.
func (_degfd *PdfShadingType6 )ToPdfObject ()_aef .PdfObject {_degfd .PdfShading .ToPdfObject ();_ddafe ,_begcf :=_degfd .getShadingDict ();if _begcf !=nil {_abe .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 _degfd .BitsPerCoordinate !=nil {_ddafe .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065",_degfd .BitsPerCoordinate );};if _degfd .BitsPerComponent !=nil {_ddafe .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_degfd .BitsPerComponent );};if _degfd .BitsPerFlag !=nil {_ddafe .Set ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067",_degfd .BitsPerFlag );};if _degfd .Decode !=nil {_ddafe .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_degfd .Decode );};if _degfd .Function !=nil {if len (_degfd .Function )==1{_ddafe .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_degfd .Function [0].ToPdfObject ());}else {_dfbd :=_aef .MakeArray ();for _ ,_cfege :=range _degfd .Function {_dfbd .Append (_cfege .ToPdfObject ());};_ddafe .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_dfbd );};};return _degfd ._bbga ;};var _ pdfFont =(*pdfFontType0 )(nil );
// SetPdfTitle sets the Title attribute of the output PDF.
func SetPdfTitle (title string ){_abdcd .Lock ();defer _abdcd .Unlock ();_caceb =title };
// 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 ;_efbb *_aef .PdfIndirectObject ;};func (_ffce *PdfColorspaceICCBased )String ()string {return "\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064";};
// SetOptimizer sets the optimizer to optimize PDF before writing.
func (_dgbdd *PdfWriter )SetOptimizer (optimizer Optimizer ){_dgbdd ._ceag =optimizer };
// ValidateSignatures validates digital signatures in the document.
func (_ggfea *PdfReader )ValidateSignatures (handlers []SignatureHandler )([]SignatureValidationResult ,error ){if _ggfea .AcroForm ==nil {return nil ,nil ;};if _ggfea .AcroForm .Fields ==nil {return nil ,nil ;};type sigFieldPair struct{_bgga *PdfSignature ;_gffege *PdfField ;_ddebf SignatureHandler ;};var _aggcf []*sigFieldPair ;for _ ,_gfccf :=range _ggfea .AcroForm .AllFields (){if _gfccf .V ==nil {continue ;};if _gdbf ,_eddaf :=_aef .GetDict (_gfccf .V );_eddaf {if _bcea ,_gedbad :=_aef .GetNameVal (_gdbf .Get ("\u0054\u0079\u0070\u0065"));_gedbad &&_bcea =="\u0053\u0069\u0067"{_bebdd ,_acgcf :=_aef .GetIndirect (_gfccf .V );if !_acgcf {_abe .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 ;};_aafaa ,_bdbc :=_ggfea .newPdfSignatureFromIndirect (_bebdd );if _bdbc !=nil {return nil ,_bdbc ;};var _gggfc SignatureHandler ;for _ ,_begcb :=range handlers {if _begcb .IsApplicable (_aafaa ){_gggfc =_begcb ;break ;};};_aggcf =append (_aggcf ,&sigFieldPair {_bgga :_aafaa ,_gffege :_gfccf ,_ddebf :_gggfc });};};};var _cdgef []SignatureValidationResult ;for _ ,_abfgg :=range _aggcf {_cfca :=SignatureValidationResult {IsSigned :true ,Fields :[]*PdfField {_abfgg ._gffege }};if _abfgg ._ddebf ==nil {_cfca .Errors =append (_cfca .Errors ,"\u0068a\u006ed\u006c\u0065\u0072\u0020\u006e\u006f\u0074\u0020\u0073\u0065\u0074");_cdgef =append (_cdgef ,_cfca );continue ;};_egfbf ,_gffec :=_abfgg ._ddebf .NewDigest (_abfgg ._bgga );if _gffec !=nil {_cfca .Errors =append (_cfca .Errors ,"\u0064\u0069\u0067e\u0073\u0074\u0020\u0065\u0072\u0072\u006f\u0072",_gffec .Error ());_cdgef =append (_cdgef ,_cfca );continue ;};_efbbb :=_abfgg ._bgga .ByteRange ;if _efbbb ==nil {_cfca .Errors =append (_cfca .Errors ,"\u0042\u0079\u0074\u0065\u0052\u0061\u006e\u0067\u0065\u0020\u006e\u006ft\u0020\u0073\u0065\u0074");_cdgef =append (_cdgef ,_cfca );continue ;};for _geef :=0;_geef < _efbbb .Len ();_geef =_geef +2{_bcge ,_ :=_aef .GetNumberAsInt64 (_efbbb .Get (_geef ));_acbff ,_ :=_aef .GetIntVal (_efbbb .Get (_geef +1));if _ ,_debd :=_ggfea ._cced .Seek (_bcge ,_gfc .SeekStart );_debd !=nil {return nil ,_debd ;};_badf :=make ([]byte ,_acbff );if _ ,_ebcb :=_ggfea ._cced .Read (_badf );_ebcb !=nil {return nil ,_ebcb ;};_egfbf .Write (_badf );};_begfd ,_gffec :=_abfgg ._ddebf .Validate (_abfgg ._bgga ,_egfbf );if _gffec !=nil {return nil ,_gffec ;};_begfd .Name =_abfgg ._bgga .Name .Decoded ();_begfd .Reason =_abfgg ._bgga .Reason .Decoded ();if _abfgg ._bgga .M !=nil {_bdfae ,_ababf :=NewPdfDate (_abfgg ._bgga .M .String ());if _ababf !=nil {_begfd .Errors =append (_begfd .Errors ,_ababf .Error ());continue ;};_begfd .Date =_bdfae ;};_begfd .ContactInfo =_abfgg ._bgga .ContactInfo .Decoded ();_begfd .Location =_abfgg ._bgga .Location .Decoded ();_begfd .Fields =_cfca .Fields ;_cdgef =append (_cdgef ,_begfd );};return _cdgef ,nil ;};func _bfba (_daegf *_aef .PdfObjectDictionary )*VRI {_defad ,_ :=_aef .GetString (_daegf .Get ("\u0054\u0055"));_gadf ,_ :=_aef .GetString (_daegf .Get ("\u0054\u0053"));return &VRI {Cert :_cbbfg (_daegf .Get ("\u0043\u0065\u0072\u0074")),OCSP :_cbbfg (_daegf .Get ("\u004f\u0043\u0053\u0050")),CRL :_cbbfg (_daegf .Get ("\u0043\u0052\u004c")),TU :_defad ,TS :_gadf };};
// DefaultImageHandler is the default implementation of the ImageHandler using the standard go library.
type DefaultImageHandler struct{};
// 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 (_afeb *PdfColorspaceLab )ColorFromPdfObjects (objects []_aef .PdfObject )(PdfColor ,error ){if len (objects )!=3{return nil ,_fa .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_gbafb ,_cegd :=_aef .GetNumbersAsFloat (objects );if _cegd !=nil {return nil ,_cegd ;};return _afeb .ColorFromFloats (_gbafb );};func (_bcafgd *PdfWriter )updateObjectNumbers (){_fbdca :=_bcafgd .ObjNumOffset ;_abagf :=0;for _ ,_efffe :=range _bcafgd ._aage {_agcda :=int64 (_abagf +1+_fbdca );_dgebc :=true ;if _bcafgd ._bcdd {if _fedgf ,_ccbc :=_bcafgd ._bfeac [_efffe ];_ccbc {_agcda =_fedgf ;_dgebc =false ;};};switch _fbdcd :=_efffe .(type ){case *_aef .PdfIndirectObject :_fbdcd .ObjectNumber =_agcda ;_fbdcd .GenerationNumber =0;case *_aef .PdfObjectStream :_fbdcd .ObjectNumber =_agcda ;_fbdcd .GenerationNumber =0;case *_aef .PdfObjectStreams :_fbdcd .ObjectNumber =_agcda ;_fbdcd .GenerationNumber =0;default:_abe .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",_fbdcd );continue ;};if _dgebc {_abagf ++;};};_bbcdb :=func (_bcdag _aef .PdfObject )int64 {switch _cgede :=_bcdag .(type ){case *_aef .PdfIndirectObject :return _cgede .ObjectNumber ;case *_aef .PdfObjectStream :return _cgede .ObjectNumber ;case *_aef .PdfObjectStreams :return _cgede .ObjectNumber ;};return 0;};_eg .SliceStable (_bcafgd ._aage ,func (_fgegg ,_caefg int )bool {return _bbcdb (_bcafgd ._aage [_fgegg ])< _bbcdb (_bcafgd ._aage [_caefg ])});};
// ToPdfObject implements interface PdfModel.
func (_dgad *PdfAnnotationPrinterMark )ToPdfObject ()_aef .PdfObject {_dgad .PdfAnnotation .ToPdfObject ();_eggdf :=_dgad ._edc ;_fdgb :=_eggdf .PdfObject .(*_aef .PdfObjectDictionary );_fdgb .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_aef .MakeName ("P\u0072\u0069\u006e\u0074\u0065\u0072\u004d\u0061\u0072\u006b"));_fdgb .SetIfNotNil ("\u004d\u004e",_dgad .MN );return _eggdf ;};
// ToPdfObject implements interface PdfModel.
func (_caf *PdfActionRendition )ToPdfObject ()_aef .PdfObject {_caf .PdfAction .ToPdfObject ();_ecee :=_caf ._gc ;_ddc :=_ecee .PdfObject .(*_aef .PdfObjectDictionary );_ddc .SetIfNotNil ("\u0053",_aef .MakeName (string (ActionTypeRendition )));_ddc .SetIfNotNil ("\u0052",_caf .R );_ddc .SetIfNotNil ("\u0041\u004e",_caf .AN );_ddc .SetIfNotNil ("\u004f\u0050",_caf .OP );_ddc .SetIfNotNil ("\u004a\u0053",_caf .JS );return _ecee ;};func _fdgac ()string {return _abe .Version };
// DecodeArray returns the range of color component values in DeviceCMYK colorspace.
func (_ege *PdfColorspaceDeviceCMYK )DecodeArray ()[]float64 {return []float64 {0.0,1.0,0.0,1.0,0.0,1.0,0.0,1.0};};
// ToPdfObject implements interface PdfModel.
func (_dbf *PdfAnnotationMovie )ToPdfObject ()_aef .PdfObject {_dbf .PdfAnnotation .ToPdfObject ();_aabd :=_dbf ._edc ;_dfac :=_aabd .PdfObject .(*_aef .PdfObjectDictionary );_dfac .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_aef .MakeName ("\u004d\u006f\u0076i\u0065"));_dfac .SetIfNotNil ("\u0054",_dbf .T );_dfac .SetIfNotNil ("\u004d\u006f\u0076i\u0065",_dbf .Movie );_dfac .SetIfNotNil ("\u0041",_dbf .A );return _aabd ;};
// NewPdfColorspaceFromPdfObject loads a PdfColorspace from a PdfObject. Returns an error if there is
// a failure in loading.
func NewPdfColorspaceFromPdfObject (obj _aef .PdfObject )(PdfColorspace ,error ){var _cccd *_aef .PdfIndirectObject ;var _feff *_aef .PdfObjectName ;var _addae *_aef .PdfObjectArray ;if _gebc ,_eadfd :=obj .(*_aef .PdfIndirectObject );_eadfd {_cccd =_gebc ;};obj =_aef .TraceToDirectObject (obj );switch _gffc :=obj .(type ){case *_aef .PdfObjectArray :_addae =_gffc ;case *_aef .PdfObjectName :_feff =_gffc ;};if _feff !=nil {switch *_feff {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:_abe .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",*_feff );return nil ,_cbcgg ;};};if _addae !=nil &&_addae .Len ()> 0{var _ccff _aef .PdfObject =_cccd ;if _cccd ==nil {_ccff =_addae ;};if _eaef ,_cdgcb :=_aef .GetName (_addae .Get (0));_cdgcb {switch _eaef .String (){case "\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079":if _addae .Len ()==1{return NewPdfColorspaceDeviceGray (),nil ;};case "\u0044e\u0076\u0069\u0063\u0065\u0052\u0047B":if _addae .Len ()==1{return NewPdfColorspaceDeviceRGB (),nil ;};case "\u0044\u0065\u0076\u0069\u0063\u0065\u0043\u004d\u0059\u004b":if _addae .Len ()==1{return NewPdfColorspaceDeviceCMYK (),nil ;};case "\u0043a\u006c\u0047\u0072\u0061\u0079":return _dddc (_ccff );case "\u0043\u0061\u006c\u0052\u0047\u0042":return _ddg (_ccff );case "\u004c\u0061\u0062":return _afgd (_ccff );case "\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064":return _dfcc (_ccff );case "\u0050a\u0074\u0074\u0065\u0072\u006e":return _fccfg (_ccff );case "\u0049n\u0064\u0065\u0078\u0065\u0064":return _aedcd (_ccff );case "\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e":return _cgfcb (_ccff );case "\u0044e\u0076\u0069\u0063\u0065\u004e":return _cgcfd (_ccff );default:_abe .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",*_eaef );};};};_abe .Log .Debug ("\u0050\u0044\u0046\u0020\u0046i\u006c\u0065\u0020\u0045\u0072\u0072\u006f\u0072\u003a\u0020\u0043\u006f\u006co\u0072\u0073\u0070\u0061\u0063\u0065\u0020\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072\u003a\u0020\u0025\u0073",obj .String ());return nil ,ErrTypeCheck ;};func (_ggeg *PdfReader )newPdfAnnotationLinkFromDict (_gdfc *_aef .PdfObjectDictionary )(*PdfAnnotationLink ,error ){_cfee :=PdfAnnotationLink {};_cfee .A =_gdfc .Get ("\u0041");_cfee .Dest =_gdfc .Get ("\u0044\u0065\u0073\u0074");_cfee .H =_gdfc .Get ("\u0048");_cfee .PA =_gdfc .Get ("\u0050\u0041");_cfee .QuadPoints =_gdfc .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");_cfee .BS =_gdfc .Get ("\u0042\u0053");return &_cfee ,nil ;};
// ImageToRGB converts Lab colorspace image to RGB and returns the result.
func (_dfdc *PdfColorspaceLab )ImageToRGB (img Image )(Image ,error ){_dggc :=func (_egafd float64 )float64 {if _egafd >=6.0/29{return _egafd *_egafd *_egafd ;};return 108.0/841*(_egafd -4/29);};_dggg :=img ._fgafa ;if len (_dggg )!=6{_abe .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");_dggg =_dfdc .DecodeArray ();};_cdeg :=_ea .NewReader (img .getBase ());_cdbe :=_gb .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),3,nil ,img ._afge ,img ._fgafa );_fbcd :=_ea .NewWriter (_cdbe );_dcfb :=_ad .Pow (2,float64 (img .BitsPerComponent ))-1;_fegb :=make ([]uint32 ,3);var (_dffb error ;Ls ,As ,Bs ,L ,M ,N ,X ,Y ,Z ,_fbbab ,_gdge ,_fcfc float64 ;);for {_dffb =_cdeg .ReadSamples (_fegb );if _dffb ==_gfc .EOF {break ;}else if _dffb !=nil {return img ,_dffb ;};Ls =float64 (_fegb [0])/_dcfb ;As =float64 (_fegb [1])/_dcfb ;Bs =float64 (_fegb [2])/_dcfb ;Ls =_gb .LinearInterpolate (Ls ,0.0,1.0,_dggg [0],_dggg [1]);As =_gb .LinearInterpolate (As ,0.0,1.0,_dggg [2],_dggg [3]);Bs =_gb .LinearInterpolate (Bs ,0.0,1.0,_dggg [4],_dggg [5]);L =(Ls +16)/116+As /500;M =(Ls +16)/116;N =(Ls +16)/116-Bs /200;X =_dfdc .WhitePoint [0]*_dggc (L );Y =_dfdc .WhitePoint [1]*_dggc (M );Z =_dfdc .WhitePoint [2]*_dggc (N );_fbbab =3.240479*X +-1.537150*Y +-0.498535*Z ;_gdge =-0.969256*X +1.875992*Y +0.041556*Z ;_fcfc =0.055648*X +-0.204043*Y +1.057311*Z ;_fbbab =_ad .Min (_ad .Max (_fbbab ,0),1.0);_gdge =_ad .Min (_ad .Max (_gdge ,0),1.0);_fcfc =_ad .Min (_ad .Max (_fcfc ,0),1.0);_fegb [0]=uint32 (_fbbab *_dcfb );_fegb [1]=uint32 (_gdge *_dcfb );_fegb [2]=uint32 (_fcfc *_dcfb );if _dffb =_fbcd .WriteSamples (_fegb );_dffb !=nil {return img ,_dffb ;};};return _cbgdcg (&_cdbe ),nil ;};
// NewPdfActionGoToR returns a new "go to remote" action.
func NewPdfActionGoToR ()*PdfActionGoToR {_ece :=NewPdfAction ();_cda :=&PdfActionGoToR {};_cda .PdfAction =_ece ;_ece .SetContext (_cda );return _cda ;};
// SetPdfModifiedDate sets the ModDate attribute of the output PDF.
func SetPdfModifiedDate (modifiedDate _a .Time ){_abdcd .Lock ();defer _abdcd .Unlock ();_ecgff =modifiedDate ;};
// ImageToRGB converts ICCBased colorspace image to RGB and returns the result.
func (_ddag *PdfColorspaceICCBased )ImageToRGB (img Image )(Image ,error ){if _ddag .Alternate ==nil {_abe .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 _ddag .N ==1{_abe .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");_dcg :=NewPdfColorspaceDeviceGray ();return _dcg .ImageToRGB (img );}else if _ddag .N ==3{_abe .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 _ddag .N ==4{_abe .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");_edcc :=NewPdfColorspaceDeviceCMYK ();return _edcc .ImageToRGB (img );}else {return img ,_fa .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");};};_abe .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",_ddag );_cece ,_deeaa :=_ddag .Alternate .ImageToRGB (img );_abe .Log .Trace ("I\u0043C\u0020\u0049\u006e\u0070\u0075\u0074\u0020\u0069m\u0061\u0067\u0065\u003a %\u002b\u0076",img );_abe .Log .Trace ("I\u0043\u0043\u0020\u004fut\u0070u\u0074\u0020\u0069\u006d\u0061g\u0065\u003a\u0020\u0025\u002b\u0076",_cece );return _cece ,_deeaa ;};
// HasFontByName checks if has font resource by name.
func (_edbb *PdfPage )HasFontByName (name _aef .PdfObjectName )bool {_aggdee ,_edaee :=_edbb .Resources .Font .(*_aef .PdfObjectDictionary );if !_edaee {return false ;};if _gebb :=_aggdee .Get (name );_gebb !=nil {return true ;};return false ;};
// PdfAnnotationFreeText represents FreeText annotations.
// (Section 12.5.6.6).
type PdfAnnotationFreeText struct{*PdfAnnotation ;*PdfAnnotationMarkup ;DA _aef .PdfObject ;Q _aef .PdfObject ;RC _aef .PdfObject ;DS _aef .PdfObject ;CL _aef .PdfObject ;IT _aef .PdfObject ;BE _aef .PdfObject ;RD _aef .PdfObject ;BS _aef .PdfObject ;LE _aef .PdfObject ;};func _aegc (_bfab *_aef .PdfObjectDictionary )(*PdfShadingType7 ,error ){_fbedd :=PdfShadingType7 {};_fcea :=_bfab .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065");if _fcea ==nil {_abe .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 ;};_eacb ,_fadb :=_fcea .(*_aef .PdfObjectInteger );if !_fadb {_abe .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",_fcea );return nil ,_aef .ErrTypeError ;};_fbedd .BitsPerCoordinate =_eacb ;_fcea =_bfab .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074");if _fcea ==nil {_abe .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 ;};_eacb ,_fadb =_fcea .(*_aef .PdfObjectInteger );if !_fadb {_abe .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",_fcea );return nil ,_aef .ErrTypeError ;};_fbedd .BitsPerComponent =_eacb ;_fcea =_bfab .Get ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067");if _fcea ==nil {_abe .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 ;};_eacb ,_fadb =_fcea .(*_aef .PdfObjectInteger );if !_fadb {_abe .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",_fcea );return nil ,_aef .ErrTypeError ;};_fbedd .BitsPerComponent =_eacb ;_fcea =_bfab .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");if _fcea ==nil {_abe .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 ;};_ecaac ,_fadb :=_fcea .(*_aef .PdfObjectArray );if !_fadb {_abe .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",_fcea );return nil ,_aef .ErrTypeError ;};_fbedd .Decode =_ecaac ;if _gdeba :=_bfab .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");_gdeba !=nil {_fbedd .Function =[]PdfFunction {};if _cace ,_cggca :=_gdeba .(*_aef .PdfObjectArray );_cggca {for _ ,_cbbcc :=range _cace .Elements (){_acfag ,_effgg :=_begb (_cbbcc );if _effgg !=nil {_abe .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",_effgg );return nil ,_effgg ;};_fbedd .Function =append (_fbedd .Function ,_acfag );};}else {_dgede ,_geadf :=_begb (_gdeba );if _geadf !=nil {_abe .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",_geadf );return nil ,_geadf ;};_fbedd .Function =append (_fbedd .Function ,_dgede );};};return &_fbedd ,nil ;};func (_dgcec *PdfSignature )extractChainFromCert ()([]*_c .Certificate ,error ){var _fcbge *_aef .PdfObjectArray ;switch _ccecc :=_dgcec .Cert .(type ){case *_aef .PdfObjectString :_fcbge =_aef .MakeArray (_ccecc );case *_aef .PdfObjectArray :_fcbge =_ccecc ;default:return nil ,_b .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",_ccecc );};var _fbcfa _cg .Buffer ;for _ ,_bgfa :=range _fcbge .Elements (){_adbad ,_gcadf :=_aef .GetString (_bgfa );if !_gcadf {return nil ,_b .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",_bgfa );};if _ ,_fdffd :=_fbcfa .Write (_adbad .Bytes ());_fdffd !=nil {return nil ,_fdffd ;};};return _c .ParseCertificates (_fbcfa .Bytes ());};
// GetXObjectByName returns the XObject with the specified keyName and the object type.
func (_deeca *PdfPageResources )GetXObjectByName (keyName _aef .PdfObjectName )(*_aef .PdfObjectStream ,XObjectType ){if _deeca .XObject ==nil {return nil ,XObjectTypeUndefined ;};_baegd ,_gabbd :=_aef .TraceToDirectObject (_deeca .XObject ).(*_aef .PdfObjectDictionary );if !_gabbd {_abe .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",_aef .TraceToDirectObject (_deeca .XObject ));return nil ,XObjectTypeUndefined ;};if _dddcf :=_baegd .Get (keyName );_dddcf !=nil {_eeafe ,_fcaeg :=_aef .GetStream (_dddcf );if !_fcaeg {_abe .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",_dddcf );return nil ,XObjectTypeUndefined ;};_baeec :=_eeafe .PdfObjectDictionary ;_adccd ,_fcaeg :=_aef .TraceToDirectObject (_baeec .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065")).(*_aef .PdfObjectName );if !_fcaeg {_abe .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",_baeec .String ());return nil ,XObjectTypeUndefined ;};if *_adccd =="\u0049\u006d\u0061g\u0065"{return _eeafe ,XObjectTypeImage ;}else if *_adccd =="\u0046\u006f\u0072\u006d"{return _eeafe ,XObjectTypeForm ;}else if *_adccd =="\u0050\u0053"{return _eeafe ,XObjectTypePS ;}else {_abe .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",*_adccd );return nil ,XObjectTypeUndefined ;};}else {return nil ,XObjectTypeUndefined ;};};
// ToPdfObject converts the pdfCIDFontType0 to a PDF representation.
func (_cegc *pdfCIDFontType0 )ToPdfObject ()_aef .PdfObject {return _aef .MakeNull ()};func _fbea (_bffdf _aef .PdfObject )(*PdfFontDescriptor ,error ){_efecb :=&PdfFontDescriptor {};_bffdf =_aef .ResolveReference (_bffdf );if _dcacf ,_agdbc :=_bffdf .(*_aef .PdfIndirectObject );_agdbc {_efecb ._ecafc =_dcacf ;_bffdf =_dcacf .PdfObject ;};_eafb ,_agaca :=_aef .GetDict (_bffdf );if !_agaca {_abe .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",_bffdf );return nil ,_aef .ErrTypeError ;};if _ccba :=_eafb .Get ("\u0046\u006f\u006e\u0074\u004e\u0061\u006d\u0065");_ccba !=nil {_efecb .FontName =_ccba ;}else {_abe .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");};_ccdcb ,_ :=_aef .GetName (_efecb .FontName );if _cebcd :=_eafb .Get ("\u0054\u0079\u0070\u0065");_cebcd !=nil {_affcg ,_dfba :=_cebcd .(*_aef .PdfObjectName );if !_dfba ||string (*_affcg )!="\u0046\u006f\u006e\u0074\u0044\u0065\u0073\u0063\u0072i\u0070\u0074\u006f\u0072"{_abe .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",_cebcd ,_ccdcb ,_efecb .FontName );};}else {_abe .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",_ccdcb ,_efecb .FontName );};_efecb .FontFamily =_eafb .Get ("\u0046\u006f\u006e\u0074\u0046\u0061\u006d\u0069\u006c\u0079");_efecb .FontStretch =_eafb .Get ("F\u006f\u006e\u0074\u0053\u0074\u0072\u0065\u0074\u0063\u0068");_efecb .FontWeight =_eafb .Get ("\u0046\u006f\u006e\u0074\u0057\u0065\u0069\u0067\u0068\u0074");_efecb .Flags =_eafb .Get ("\u0046\u006c\u0061g\u0073");_efecb .FontBBox =_eafb .Get ("\u0046\u006f\u006e\u0074\u0042\u0042\u006f\u0078");_efecb .ItalicAngle =_eafb .Get ("I\u0074\u0061\u006c\u0069\u0063\u0041\u006e\u0067\u006c\u0065");_efecb .Ascent =_eafb .Get ("\u0041\u0073\u0063\u0065\u006e\u0074");_efecb .Descent =_eafb .Get ("\u0044e\u0073\u0063\u0065\u006e\u0074");_efecb .Leading =_eafb .Get ("\u004ce\u0061\u0064\u0069\u006e\u0067");_efecb .CapHeight =_eafb .Get ("\u0043a\u0070\u0048\u0065\u0069\u0067\u0068t");_efecb .XHeight =_eafb .Get ("\u0058H\u0065\u0069\u0067\u0068\u0074");_efecb .StemV =_eafb .Get ("\u0053\u0074\u0065m\u0056");_efecb .StemH =_eafb .Get ("\u0053\u0074\u0065m\u0048");_efecb .AvgWidth =_eafb .Get ("\u0041\u0076\u0067\u0057\u0069\u0064\u0074\u0068");_efecb .MaxWidth =_eafb .Get ("\u004d\u0061\u0078\u0057\u0069\u0064\u0074\u0068");_efecb .MissingWidth =_eafb .Get ("\u004d\u0069\u0073s\u0069\u006e\u0067\u0057\u0069\u0064\u0074\u0068");_efecb .FontFile =_eafb .Get ("\u0046\u006f\u006e\u0074\u0046\u0069\u006c\u0065");_efecb .FontFile2 =_eafb .Get ("\u0046o\u006e\u0074\u0046\u0069\u006c\u00652");_efecb .FontFile3 =_eafb .Get ("\u0046o\u006e\u0074\u0046\u0069\u006c\u00653");_efecb .CharSet =_eafb .Get ("\u0043h\u0061\u0072\u0053\u0065\u0074");_efecb .Style =_eafb .Get ("\u0053\u0074\u0079l\u0065");_efecb .Lang =_eafb .Get ("\u004c\u0061\u006e\u0067");_efecb .FD =_eafb .Get ("\u0046\u0044");_efecb .CIDSet =_eafb .Get ("\u0043\u0049\u0044\u0053\u0065\u0074");if _efecb .Flags !=nil {if _dbcb ,_acdf :=_aef .GetIntVal (_efecb .Flags );_acdf {_efecb ._eagd =_dbcb ;};};if _efecb .MissingWidth !=nil {if _egagg ,_edcb :=_aef .GetNumberAsFloat (_efecb .MissingWidth );_edcb ==nil {_efecb ._gbedb =_egagg ;};};if _efecb .FontFile !=nil {_dggb ,_dbde :=_cfeeg (_efecb .FontFile );if _dbde !=nil {return _efecb ,_dbde ;};_abe .Log .Trace ("f\u006f\u006e\u0074\u0046\u0069\u006c\u0065\u003d\u0025\u0073",_dggb );_efecb .fontFile =_dggb ;};if _efecb .FontFile2 !=nil {_cbeed ,_gdda :=_ecf .NewFontFile2FromPdfObject (_efecb .FontFile2 );if _gdda !=nil {return _efecb ,_gdda ;};_abe .Log .Trace ("\u0066\u006f\u006et\u0046\u0069\u006c\u0065\u0032\u003d\u0025\u0073",_cbeed .String ());_efecb ._gffcb =&_cbeed ;};return _efecb ,nil ;};
// ToPdfObject implements interface PdfModel.
func (_ccb *PdfAnnotationWatermark )ToPdfObject ()_aef .PdfObject {_ccb .PdfAnnotation .ToPdfObject ();_gdc :=_ccb ._edc ;_aeb :=_gdc .PdfObject .(*_aef .PdfObjectDictionary );_aeb .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_aef .MakeName ("\u0057a\u0074\u0065\u0072\u006d\u0061\u0072k"));_aeb .SetIfNotNil ("\u0046\u0069\u0078\u0065\u0064\u0050\u0072\u0069\u006e\u0074",_ccb .FixedPrint );return _gdc ;};
// SetXObjectFormByName adds the provided XObjectForm to the page resources.
// The added XObjectForm is identified by the specified name.
func (_eeggc *PdfPageResources )SetXObjectFormByName (keyName _aef .PdfObjectName ,xform *XObjectForm )error {_gbcaa :=xform .ToPdfObject ().(*_aef .PdfObjectStream );_cfgdd :=_eeggc .SetXObjectByName (keyName ,_gbcaa );return _cfgdd ;};func (_fgag *PdfReader )newPdfAnnotationSquareFromDict (_cde *_aef .PdfObjectDictionary )(*PdfAnnotationSquare ,error ){_bfbf :=PdfAnnotationSquare {};_bfea ,_fafb :=_fgag .newPdfAnnotationMarkupFromDict (_cde );if _fafb !=nil {return nil ,_fafb ;};_bfbf .PdfAnnotationMarkup =_bfea ;_bfbf .BS =_cde .Get ("\u0042\u0053");_bfbf .IC =_cde .Get ("\u0049\u0043");_bfbf .BE =_cde .Get ("\u0042\u0045");_bfbf .RD =_cde .Get ("\u0052\u0044");return &_bfbf ,nil ;};
// DefaultFont returns the default font, which is currently the built in Helvetica.
func DefaultFont ()*PdfFont {_bggbd ,_edbd :=_ecf .NewStdFontByName (HelveticaName );if !_edbd {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");};_cgdf :=_edbed (_bggbd );return &PdfFont {_dccga :&_cgdf };};
// NewPdfAnnotationUnderline returns a new text underline annotation.
func NewPdfAnnotationUnderline ()*PdfAnnotationUnderline {_fagf :=NewPdfAnnotation ();_age :=&PdfAnnotationUnderline {};_age .PdfAnnotation =_fagf ;_age .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_fagf .SetContext (_age );return _age ;};
// GetOutlineTree returns the outline tree.
func (_dbbe *PdfReader )GetOutlineTree ()*PdfOutlineTreeNode {return _dbbe ._gaad };
// GetAsShadingPattern returns a shading pattern. Check with IsShading() prior to using this.
func (_fbbg *PdfPattern )GetAsShadingPattern ()*PdfShadingPattern {return _fbbg ._dgagc .(*PdfShadingPattern );};
// NewPdfAnnotationWidget returns an initialized annotation widget.
func NewPdfAnnotationWidget ()*PdfAnnotationWidget {_gdb :=NewPdfAnnotation ();_cce :=&PdfAnnotationWidget {};_cce .PdfAnnotation =_gdb ;_gdb .SetContext (_cce );return _cce ;};
// ToPdfObject returns the PDF representation of the colorspace.
func (_cfad *PdfColorspaceDeviceCMYK )ToPdfObject ()_aef .PdfObject {return _aef .MakeName ("\u0044\u0065\u0076\u0069\u0063\u0065\u0043\u004d\u0059\u004b");};func _ffdac ()string {_abdcd .Lock ();defer _abdcd .Unlock ();return _fdfdc };
// StdFontName represents name of a standard font.
type StdFontName =_ecf .StdFontName ;
// PdfAnnotationSquare represents Square annotations.
// (Section 12.5.6.8).
type PdfAnnotationSquare struct{*PdfAnnotation ;*PdfAnnotationMarkup ;BS _aef .PdfObject ;IC _aef .PdfObject ;BE _aef .PdfObject ;RD _aef .PdfObject ;};func (_accdf *pdfFontSimple )addEncoding ()error {var (_dcefc string ;_bebc map[_be .CharCode ]_be .GlyphName ;_cbccd _be .SimpleEncoder ;);if _accdf .Encoder ()!=nil {_dfdca ,_baegg :=_accdf .Encoder ().(_be .SimpleEncoder );if _baegg &&_dfdca !=nil {_dcefc =_dfdca .BaseName ();};};if _accdf .Encoding !=nil {_adgf ,_dabb ,_egcdf :=_accdf .getFontEncoding ();if _egcdf !=nil {_abe .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",_accdf ._fegdg ,_accdf ._ababd ,_accdf .Encoding ,_accdf .Encoding ,_egcdf );return _egcdf ;};if _adgf !=""{_dcefc =_adgf ;};_bebc =_dabb ;_cbccd ,_egcdf =_be .NewSimpleTextEncoder (_dcefc ,_bebc );if _egcdf !=nil {return _egcdf ;};};if _cbccd ==nil {_afda :=_accdf ._bgfd ;if _afda !=nil {switch _accdf ._ababd {case "\u0054\u0079\u0070e\u0031":if _afda .fontFile !=nil &&_afda .fontFile ._dbadd !=nil {_abe .Log .Debug ("\u0055\u0073\u0069\u006e\u0067\u0020\u0066\u006f\u006et\u0046\u0069\u006c\u0065");_cbccd =_afda .fontFile ._dbadd ;};case "\u0054\u0072\u0075\u0065\u0054\u0079\u0070\u0065":if _afda ._gffcb !=nil {_abe .Log .Debug ("\u0055s\u0069n\u0067\u0020\u0046\u006f\u006e\u0074\u0046\u0069\u006c\u0065\u0032");_cgcc ,_fdcab :=_afda ._gffcb .MakeEncoder ();if _fdcab ==nil {_cbccd =_cgcc ;};};};};};if _cbccd !=nil {if _bebc !=nil {_abe .Log .Trace ("\u0064\u0069\u0066fe\u0072\u0065\u006e\u0063\u0065\u0073\u003d\u0025\u002b\u0076\u0020\u0066\u006f\u006e\u0074\u003d\u0025\u0073",_bebc ,_accdf .baseFields ());_cbccd =_be .ApplyDifferences (_cbccd ,_bebc );};_accdf .SetEncoder (_cbccd );};return nil ;};
// NewPdfFontFromPdfObject loads a PdfFont from the dictionary `fontObj`. If there is a problem an
// error is returned.
func NewPdfFontFromPdfObject (fontObj _aef .PdfObject )(*PdfFont ,error ){return _acfaf (fontObj ,true )};
// NewPdfActionURI returns a new "Uri" action.
func NewPdfActionURI ()*PdfActionURI {_dd :=NewPdfAction ();_fc :=&PdfActionURI {};_fc .PdfAction =_dd ;_dd .SetContext (_fc );return _fc ;};
// PdfBorderEffect represents a PDF border effect.
type PdfBorderEffect struct{S *BorderEffect ;I *float64 ;};
// Items returns all children outline items.
func (_ccbe *OutlineItem )Items ()[]*OutlineItem {return _ccbe .Entries };
// ToPdfObject implements interface PdfModel.
func (_cgbc *PdfAnnotationFileAttachment )ToPdfObject ()_aef .PdfObject {_cgbc .PdfAnnotation .ToPdfObject ();_aced :=_cgbc ._edc ;_bddg :=_aced .PdfObject .(*_aef .PdfObjectDictionary );_cgbc .PdfAnnotationMarkup .appendToPdfDictionary (_bddg );_bddg .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_aef .MakeName ("\u0046\u0069\u006c\u0065\u0041\u0074\u0074\u0061\u0063h\u006d\u0065\u006e\u0074"));_bddg .SetIfNotNil ("\u0046\u0053",_cgbc .FS );_bddg .SetIfNotNil ("\u004e\u0061\u006d\u0065",_cgbc .Name );return _aced ;};
// 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 _aef .PdfObject ;FontFamily _aef .PdfObject ;FontStretch _aef .PdfObject ;FontWeight _aef .PdfObject ;Flags _aef .PdfObject ;FontBBox _aef .PdfObject ;ItalicAngle _aef .PdfObject ;Ascent _aef .PdfObject ;Descent _aef .PdfObject ;Leading _aef .PdfObject ;CapHeight _aef .PdfObject ;XHeight _aef .PdfObject ;StemV _aef .PdfObject ;StemH _aef .PdfObject ;AvgWidth _aef .PdfObject ;MaxWidth _aef .PdfObject ;MissingWidth _aef .PdfObject ;FontFile _aef .PdfObject ;FontFile2 _aef .PdfObject ;FontFile3 _aef .PdfObject ;CharSet _aef .PdfObject ;_eagd int ;_gbedb float64 ;*fontFile ;_gffcb *_ecf .TtfType ;
// Additional entries for CIDFonts
Style _aef .PdfObject ;Lang _aef .PdfObject ;FD _aef .PdfObject ;CIDSet _aef .PdfObject ;_ecafc *_aef .PdfIndirectObject ;};func _cgde (_gbbd *_aef .PdfObjectStream )(*PdfFunctionType0 ,error ){_ebfgbf :=&PdfFunctionType0 {};_ebfgbf ._feeee =_gbbd ;_cecac :=_gbbd .PdfObjectDictionary ;_ccca ,_bafb :=_aef .TraceToDirectObject (_cecac .Get ("\u0044\u006f\u006d\u0061\u0069\u006e")).(*_aef .PdfObjectArray );if !_bafb {_abe .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_fa .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 _ccca .Len ()< 0||_ccca .Len ()%2!=0{_abe .Log .Error ("\u0044\u006f\u006d\u0061\u0069\u006e\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");return nil ,_fa .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0064\u006f\u006da\u0069\u006e\u0020\u0072an\u0067\u0065");};_ebfgbf .NumInputs =_ccca .Len ()/2;_bbfa ,_gcefb :=_ccca .ToFloat64Array ();if _gcefb !=nil {return nil ,_gcefb ;};_ebfgbf .Domain =_bbfa ;_ccca ,_bafb =_aef .TraceToDirectObject (_cecac .Get ("\u0052\u0061\u006eg\u0065")).(*_aef .PdfObjectArray );if !_bafb {_abe .Log .Error ("\u0052\u0061\u006e\u0067e \u006e\u006f\u0074\u0020\u0073\u0070\u0065\u0063\u0069\u0066\u0069\u0065\u0064");return nil ,_fa .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 _ccca .Len ()< 0||_ccca .Len ()%2!=0{return nil ,_fa .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0061\u006e\u0067\u0065");};_ebfgbf .NumOutputs =_ccca .Len ()/2;_aeagg ,_gcefb :=_ccca .ToFloat64Array ();if _gcefb !=nil {return nil ,_gcefb ;};_ebfgbf .Range =_aeagg ;_ccca ,_bafb =_aef .TraceToDirectObject (_cecac .Get ("\u0053\u0069\u007a\u0065")).(*_aef .PdfObjectArray );if !_bafb {_abe .Log .Error ("\u0053i\u007ae\u0020\u006e\u006f\u0074\u0020s\u0070\u0065c\u0069\u0066\u0069\u0065\u0064");return nil ,_fa .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");};_gffb ,_gcefb :=_ccca .ToIntegerArray ();if _gcefb !=nil {return nil ,_gcefb ;};if len (_gffb )!=_ebfgbf .NumInputs {_abe .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 ,_fa .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_ebfgbf .Size =_gffb ;_fcfdc ,_bafb :=_aef .TraceToDirectObject (_cecac .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0053\u0061\u006d\u0070\u006c\u0065")).(*_aef .PdfObjectInteger );if !_bafb {_abe .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 ,_fa .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 *_fcfdc !=1&&*_fcfdc !=2&&*_fcfdc !=4&&*_fcfdc !=8&&*_fcfdc !=12&&*_fcfdc !=16&&*_fcfdc !=24&&*_fcfdc !=32{_abe .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",*_fcfdc );return nil ,_fa .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_ebfgbf .BitsPerSample =int (*_fcfdc );_ebfgbf .Order =1;_acab ,_bafb :=_aef .TraceToDirectObject (_cecac .Get ("\u004f\u0072\u0064e\u0072")).(*_aef .PdfObjectInteger );if _bafb {if *_acab !=1&&*_acab !=3{_abe .Log .Error ("\u0049n\u0076a\u006c\u0069\u0064\u0020\u006fr\u0064\u0065r\u0020\u0028\u0025\u0064\u0029",*_acab );return nil ,_fa .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_ebfgbf .Order =int (*_acab );};_ccca ,_bafb =_aef .TraceToDirectObject (_cecac .Get ("\u0045\u006e\u0063\u006f\u0064\u0065")).(*_aef .PdfObjectArray );if _bafb {_eccbe ,_fafce :=_ccca .ToFloat64Array ();if _fafce !=nil {return nil ,_fafce ;};_ebfgbf .Encode =_eccbe ;};_ccca ,_bafb =_aef .TraceToDirectObject (_cecac .Get ("\u0044\u0065\u0063\u006f\u0064\u0065")).(*_aef .PdfObjectArray );if _bafb {_dgbd ,_ggdfb :=_ccca .ToFloat64Array ();if _ggdfb !=nil {return nil ,_ggdfb ;};_ebfgbf .Decode =_dgbd ;};_ageb ,_gcefb :=_aef .DecodeStream (_gbbd );if _gcefb !=nil {return nil ,_gcefb ;};_ebfgbf ._bdgaa =_ageb ;return _ebfgbf ,nil ;};
// GetContext returns the action context which contains the specific type-dependent context.
// The context represents the subaction.
func (_cgc *PdfAction )GetContext ()PdfModel {if _cgc ==nil {return nil ;};return _cgc ._ecb ;};
// NewPdfFilespec returns an initialized generic PDF filespec model.
func NewPdfFilespec ()*PdfFilespec {_gecaa :=&PdfFilespec {};_gecaa ._bgbda =_aef .MakeIndirectObject (_aef .MakeDict ());return _gecaa ;};
// Set applies flag fl to the flag's bitmask and returns the combined flag.
func (_ffag FieldFlag )Set (fl FieldFlag )FieldFlag {return FieldFlag (_ffag .Mask ()|fl .Mask ())};
// PdfShadingType3 is a Radial shading.
type PdfShadingType3 struct{*PdfShading ;Coords *_aef .PdfObjectArray ;Domain *_aef .PdfObjectArray ;Function []PdfFunction ;Extend *_aef .PdfObjectArray ;};func (_feda *PdfReader )lookupPageByObject (_eaecd _aef .PdfObject )(*PdfPage ,error ){return nil ,_fa .New ("\u0070\u0061\u0067\u0065\u0020\u006e\u006f\u0074\u0020f\u006f\u0075\u006e\u0064");};
// NewPdfColorLab returns a new Lab color.
func NewPdfColorLab (l ,a ,b float64 )*PdfColorLab {_edage :=PdfColorLab {l ,a ,b };return &_edage };
// PdfActionGoTo3DView represents a GoTo3DView action.
type PdfActionGoTo3DView struct{*PdfAction ;TA _aef .PdfObject ;V _aef .PdfObject ;};
// NewPdfAnnotationText returns a new text annotation.
func NewPdfAnnotationText ()*PdfAnnotationText {_aab :=NewPdfAnnotation ();_eda :=&PdfAnnotationText {};_eda .PdfAnnotation =_aab ;_eda .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_aab .SetContext (_eda );return _eda ;};
// NewPdfAnnotation returns an initialized generic PDF annotation model.
func NewPdfAnnotation ()*PdfAnnotation {_bgf :=&PdfAnnotation {};_bgf ._edc =_aef .MakeIndirectObject (_aef .MakeDict ());return _bgf ;};
// ColorToRGB converts gray -> rgb for a single color component.
func (_fcd *PdfColorspaceDeviceGray )ColorToRGB (color PdfColor )(PdfColor ,error ){_gbfg ,_fbbe :=color .(*PdfColorDeviceGray );if !_fbbe {_abe .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 ,_fa .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};return NewPdfColorDeviceRGB (float64 (*_gbfg ),float64 (*_gbfg ),float64 (*_gbfg )),nil ;};
// ToPdfObject implements interface PdfModel.
func (_bdaga *PdfAnnotationTrapNet )ToPdfObject ()_aef .PdfObject {_bdaga .PdfAnnotation .ToPdfObject ();_aacf :=_bdaga ._edc ;_bcf :=_aacf .PdfObject .(*_aef .PdfObjectDictionary );_bcf .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_aef .MakeName ("\u0054r\u0061\u0070\u004e\u0065\u0074"));return _aacf ;};
// IsCID returns true if the underlying font is CID.
func (_acda *PdfFont )IsCID ()bool {return _acda .baseFields ().isCIDFont ()};func (_dbc *PdfReader )newPdfAnnotationFreeTextFromDict (_bagff *_aef .PdfObjectDictionary )(*PdfAnnotationFreeText ,error ){_ebd :=PdfAnnotationFreeText {};_fdbf ,_eed :=_dbc .newPdfAnnotationMarkupFromDict (_bagff );if _eed !=nil {return nil ,_eed ;};_ebd .PdfAnnotationMarkup =_fdbf ;_ebd .DA =_bagff .Get ("\u0044\u0041");_ebd .Q =_bagff .Get ("\u0051");_ebd .RC =_bagff .Get ("\u0052\u0043");_ebd .DS =_bagff .Get ("\u0044\u0053");_ebd .CL =_bagff .Get ("\u0043\u004c");_ebd .IT =_bagff .Get ("\u0049\u0054");_ebd .BE =_bagff .Get ("\u0042\u0045");_ebd .RD =_bagff .Get ("\u0052\u0044");_ebd .BS =_bagff .Get ("\u0042\u0053");_ebd .LE =_bagff .Get ("\u004c\u0045");return &_ebd ,nil ;};var _gefa =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":{}};
// Insert adds a top level outline item in the outline,
// at the specified index.
func (_ecfcg *Outline )Insert (index uint ,item *OutlineItem ){_acfca :=uint (len (_ecfcg .Entries ));if index > _acfca {index =_acfca ;};_ecfcg .Entries =append (_ecfcg .Entries [:index ],append ([]*OutlineItem {item },_ecfcg .Entries [index :]...)...);};
// 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 ;
// ToPdfObject implements interface PdfModel.
func (_ded *PdfActionGoToR )ToPdfObject ()_aef .PdfObject {_ded .PdfAction .ToPdfObject ();_bd :=_ded ._gc ;_gbd :=_bd .PdfObject .(*_aef .PdfObjectDictionary );_gbd .SetIfNotNil ("\u0053",_aef .MakeName (string (ActionTypeGoToR )));if _ded .F !=nil {_gbd .Set ("\u0046",_ded .F .ToPdfObject ());};_gbd .SetIfNotNil ("\u0044",_ded .D );_gbd .SetIfNotNil ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw",_ded .NewWindow );return _bd ;};func (_deab *PdfColorspaceCalGray )String ()string {return "\u0043a\u006c\u0047\u0072\u0061\u0079"};
// ToPdfObject returns the PDF representation of the shading pattern.
func (_gaecf *PdfShadingPattern )ToPdfObject ()_aef .PdfObject {_gaecf .PdfPattern .ToPdfObject ();_dacdd :=_gaecf .getDict ();if _gaecf .Shading !=nil {_dacdd .Set ("\u0053h\u0061\u0064\u0069\u006e\u0067",_gaecf .Shading .ToPdfObject ());};if _gaecf .Matrix !=nil {_dacdd .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_gaecf .Matrix );};if _gaecf .ExtGState !=nil {_dacdd .Set ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e",_gaecf .ExtGState );};return _gaecf ._fgbcde ;};
// 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 (_agdbb *PdfColorspaceCalRGB )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=3{return nil ,_fa .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_ffa :=vals [0];if _ffa < 0.0||_ffa > 1.0{return nil ,_fa .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_abaac :=vals [1];if _abaac < 0.0||_abaac > 1.0{return nil ,_fa .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_aefd :=vals [2];if _aefd < 0.0||_aefd > 1.0{return nil ,_fa .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_egcbc :=NewPdfColorCalRGB (_ffa ,_abaac ,_aefd );return _egcbc ,nil ;};
// 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 (_gbc *PdfReader )FlattenFieldsWithOpts (appgen FieldAppearanceGenerator ,opts *FieldFlattenOpts )error {return _gbc .flattenFieldsWithOpts (false ,appgen ,opts );};
// ToPdfObject sets the common field elements.
// Note: Call the more field context's ToPdfObject to set both the generic and
// non-generic information.
func (_fadc *PdfField )ToPdfObject ()_aef .PdfObject {_effg :=_fadc ._abebg ;_gffdb :=_effg .PdfObject .(*_aef .PdfObjectDictionary );_aafc :=_aef .MakeArray ();for _ ,_aeed :=range _fadc .Kids {_aafc .Append (_aeed .ToPdfObject ());};for _ ,_abaff :=range _fadc .Annotations {if _abaff ._edc !=_fadc ._abebg {_aafc .Append (_abaff .GetContext ().ToPdfObject ());};};if _fadc .Parent !=nil {_gffdb .SetIfNotNil ("\u0050\u0061\u0072\u0065\u006e\u0074",_fadc .Parent .GetContainingPdfObject ());};if _aafc .Len ()> 0{_gffdb .Set ("\u004b\u0069\u0064\u0073",_aafc );};_gffdb .SetIfNotNil ("\u0046\u0054",_fadc .FT );_gffdb .SetIfNotNil ("\u0054",_fadc .T );_gffdb .SetIfNotNil ("\u0054\u0055",_fadc .TU );_gffdb .SetIfNotNil ("\u0054\u004d",_fadc .TM );_gffdb .SetIfNotNil ("\u0046\u0066",_fadc .Ff );_gffdb .SetIfNotNil ("\u0056",_fadc .V );_gffdb .SetIfNotNil ("\u0044\u0056",_fadc .DV );_gffdb .SetIfNotNil ("\u0041\u0041",_fadc .AA );return _effg ;};
// 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 ;
// GetAsTilingPattern returns a tiling pattern. Check with IsTiling() prior to using this.
func (_abdee *PdfPattern )GetAsTilingPattern ()*PdfTilingPattern {return _abdee ._dgagc .(*PdfTilingPattern );};
// PdfActionLaunch represents a launch action.
type PdfActionLaunch struct{*PdfAction ;F *PdfFilespec ;Win _aef .PdfObject ;Mac _aef .PdfObject ;Unix _aef .PdfObject ;NewWindow _aef .PdfObject ;};
// GetColorspaceByName returns the colorspace with the specified name from the page resources.
func (_gffbg *PdfPageResources )GetColorspaceByName (keyName _aef .PdfObjectName )(PdfColorspace ,bool ){_cfagg ,_defgc :=_gffbg .GetColorspaces ();if _defgc !=nil {_abe .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",_defgc );return nil ,false ;};if _cfagg ==nil {return nil ,false ;};_ebgdfb ,_cdegg :=_cfagg .Colorspaces [string (keyName )];if !_cdegg {return nil ,false ;};return _ebgdfb ,true ;};
// ToInteger convert to an integer format.
func (_gfeb *PdfColorDeviceCMYK )ToInteger (bits int )[4]uint32 {_caffb :=_ad .Pow (2,float64 (bits ))-1;return [4]uint32 {uint32 (_caffb *_gfeb .C ()),uint32 (_caffb *_gfeb .M ()),uint32 (_caffb *_gfeb .Y ()),uint32 (_caffb *_gfeb .K ())};};
// 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 *_aef .PdfObjectInteger ;TilingType *_aef .PdfObjectInteger ;BBox *PdfRectangle ;XStep *_aef .PdfObjectFloat ;YStep *_aef .PdfObjectFloat ;Resources *PdfPageResources ;Matrix *_aef .PdfObjectArray ;};func (_abd *PdfReader )newPdfActionSoundFromDict (_egcd *_aef .PdfObjectDictionary )(*PdfActionSound ,error ){return &PdfActionSound {Sound :_egcd .Get ("\u0053\u006f\u0075n\u0064"),Volume :_egcd .Get ("\u0056\u006f\u006c\u0075\u006d\u0065"),Synchronous :_egcd .Get ("S\u0079\u006e\u0063\u0068\u0072\u006f\u006e\u006f\u0075\u0073"),Repeat :_egcd .Get ("\u0052\u0065\u0070\u0065\u0061\u0074"),Mix :_egcd .Get ("\u004d\u0069\u0078")},nil ;};var ImageHandling ImageHandler =DefaultImageHandler {};func (_gde *PdfReader )newPdfAnnotationPopupFromDict (_egcf *_aef .PdfObjectDictionary )(*PdfAnnotationPopup ,error ){_ddf :=PdfAnnotationPopup {};_ddf .Parent =_egcf .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");_ddf .Open =_egcf .Get ("\u004f\u0070\u0065\u006e");return &_ddf ,nil ;};
// PdfActionMovie represents a movie action.
type PdfActionMovie struct{*PdfAction ;Annotation _aef .PdfObject ;T _aef .PdfObject ;Operation _aef .PdfObject ;};
// ToPdfObject returns the choice field dictionary within an indirect object (container).
func (_deceg *PdfFieldChoice )ToPdfObject ()_aef .PdfObject {_deceg .PdfField .ToPdfObject ();_dcbf :=_deceg ._abebg ;_abfa :=_dcbf .PdfObject .(*_aef .PdfObjectDictionary );_abfa .Set ("\u0046\u0054",_aef .MakeName ("\u0043\u0068"));if _deceg .Opt !=nil {_abfa .Set ("\u004f\u0070\u0074",_deceg .Opt );};if _deceg .TI !=nil {_abfa .Set ("\u0054\u0049",_deceg .TI );};if _deceg .I !=nil {_abfa .Set ("\u0049",_deceg .I );};return _dcbf ;};
// NewPdfColorDeviceRGB returns a new PdfColorDeviceRGB based on the r,g,b component values.
func NewPdfColorDeviceRGB (r ,g ,b float64 )*PdfColorDeviceRGB {_ffca :=PdfColorDeviceRGB {r ,g ,b };return &_ffca ;};
// AddContentStreamByString adds content stream by string. Puts the content
// string into a stream object and points the content stream towards it.
func (_fagg *PdfPage )AddContentStreamByString (contentStr string )error {_cbaeb ,_baafa :=_aef .MakeStream ([]byte (contentStr ),_aef .NewFlateEncoder ());if _baafa !=nil {return _baafa ;};if _fagg .Contents ==nil {_fagg .Contents =_cbaeb ;}else {_bgcd :=_aef .TraceToDirectObject (_fagg .Contents );_dfccbb ,_fdfec :=_bgcd .(*_aef .PdfObjectArray );if !_fdfec {_dfccbb =_aef .MakeArray (_bgcd );};_dfccbb .Append (_cbaeb );_fagg .Contents =_dfccbb ;};return nil ;};
// GetRuneMetrics returns the character metrics for the specified rune.
// A bool flag is returned to indicate whether or not the entry was found.
func (_ecbc pdfCIDFontType0 )GetRuneMetrics (r rune )(_ecf .CharMetrics ,bool ){return _ecf .CharMetrics {Wx :_ecbc ._egcdc },true ;};
// GetNumComponents returns the number of color components (1 for CalGray).
func (_bea *PdfColorCalGray )GetNumComponents ()int {return 1};func (_gegc PdfFont )actualFont ()pdfFont {if _gegc ._dccga ==nil {_abe .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",_gegc );};return _gegc ._dccga ;};
// NewPdfAnnotationFileAttachment returns a new file attachment annotation.
func NewPdfAnnotationFileAttachment ()*PdfAnnotationFileAttachment {_aceg :=NewPdfAnnotation ();_def :=&PdfAnnotationFileAttachment {};_def .PdfAnnotation =_aceg ;_def .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_aceg .SetContext (_def );return _def ;};
// PdfColorspaceDeviceCMYK represents a CMYK32 colorspace.
type PdfColorspaceDeviceCMYK struct{};
// ToPdfObject returns a PdfObject representation of PdfColorspaceDeviceNAttributes as a PdfObjectDictionary directly
// or indirectly within an indirect object container.
func (_ccec *PdfColorspaceDeviceNAttributes )ToPdfObject ()_aef .PdfObject {_affc :=_aef .MakeDict ();if _ccec .Subtype !=nil {_affc .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ccec .Subtype );};_affc .SetIfNotNil ("\u0043o\u006c\u006f\u0072\u0061\u006e\u0074s",_ccec .Colorants );_affc .SetIfNotNil ("\u0050r\u006f\u0063\u0065\u0073\u0073",_ccec .Process );_affc .SetIfNotNil ("M\u0069\u0078\u0069\u006e\u0067\u0048\u0069\u006e\u0074\u0073",_ccec .MixingHints );if _ccec ._ecgdd !=nil {_ccec ._ecgdd .PdfObject =_affc ;return _ccec ._ecgdd ;};return _affc ;};
// GetNumComponents returns the number of color components of the colorspace device.
// Returns 1 for a grayscale device.
func (_adgd *PdfColorspaceDeviceGray )GetNumComponents ()int {return 1};func (_ddfe *pdfFontType0 )baseFields ()*fontCommon {return &_ddfe .fontCommon };
// ColorToRGB converts a ICCBased color to an RGB color.
func (_dcef *PdfColorspaceICCBased )ColorToRGB (color PdfColor )(PdfColor ,error ){if _dcef .Alternate ==nil {_abe .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 _dcef .N ==1{_abe .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");_faabg :=NewPdfColorspaceDeviceGray ();return _faabg .ColorToRGB (color );}else if _dcef .N ==3{_abe .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 _dcef .N ==4{_abe .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");_cgdd :=NewPdfColorspaceDeviceCMYK ();return _cgdd .ColorToRGB (color );}else {return nil ,_fa .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");};};_abe .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",_dcef );return _dcef .Alternate .ColorToRGB (color );};
// NewPdfActionResetForm returns a new "reset form" action.
func NewPdfActionResetForm ()*PdfActionResetForm {_gcd :=NewPdfAction ();_dae :=&PdfActionResetForm {};_dae .PdfAction =_gcd ;_gcd .SetContext (_dae );return _dae ;};
// PdfActionURI represents an URI action.
type PdfActionURI struct{*PdfAction ;URI _aef .PdfObject ;IsMap _aef .PdfObject ;};
// DecodeArray returns the range of color component values in the Lab colorspace.
func (_eccbc *PdfColorspaceLab )DecodeArray ()[]float64 {_bdab :=[]float64 {0,100};if _eccbc .Range !=nil &&len (_eccbc .Range )==4{_bdab =append (_bdab ,_eccbc .Range ...);}else {_bdab =append (_bdab ,-100,100,-100,100);};return _bdab ;};func (_dgf *PdfReader )newPdfAnnotationWidgetFromDict (_gddd *_aef .PdfObjectDictionary )(*PdfAnnotationWidget ,error ){_edd :=PdfAnnotationWidget {};_edd .H =_gddd .Get ("\u0048");_edd .MK =_gddd .Get ("\u004d\u004b");_edd .A =_gddd .Get ("\u0041");_edd .AA =_gddd .Get ("\u0041\u0041");_edd .BS =_gddd .Get ("\u0042\u0053");_edd .Parent =_gddd .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");return &_edd ,nil ;};
// PdfColorspaceDeviceGray represents a grayscale colorspace.
type PdfColorspaceDeviceGray struct{};
// ToPdfObject implements interface PdfModel.
func (_fae *PdfActionGoTo )ToPdfObject ()_aef .PdfObject {_fae .PdfAction .ToPdfObject ();_cdc :=_fae ._gc ;_gdf :=_cdc .PdfObject .(*_aef .PdfObjectDictionary );_gdf .SetIfNotNil ("\u0053",_aef .MakeName (string (ActionTypeGoTo )));_gdf .SetIfNotNil ("\u0044",_fae .D );return _cdc ;};
// L returns the value of the L component of the color.
func (_ccfa *PdfColorLab )L ()float64 {return _ccfa [0]};
// GetContainingPdfObject returns the container of the PdfAcroForm (indirect object).
func (_dddg *PdfAcroForm )GetContainingPdfObject ()_aef .PdfObject {return _dddg ._aade };
// ToPdfObject return the CalGray colorspace as a PDF object (name dictionary).
func (_bgbb *PdfColorspaceCalGray )ToPdfObject ()_aef .PdfObject {_bfbc :=&_aef .PdfObjectArray {};_bfbc .Append (_aef .MakeName ("\u0043a\u006c\u0047\u0072\u0061\u0079"));_eeaee :=_aef .MakeDict ();if _bgbb .WhitePoint !=nil {_eeaee .Set ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074",_aef .MakeArray (_aef .MakeFloat (_bgbb .WhitePoint [0]),_aef .MakeFloat (_bgbb .WhitePoint [1]),_aef .MakeFloat (_bgbb .WhitePoint [2])));}else {_abe .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 _bgbb .BlackPoint !=nil {_eeaee .Set ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074",_aef .MakeArray (_aef .MakeFloat (_bgbb .BlackPoint [0]),_aef .MakeFloat (_bgbb .BlackPoint [1]),_aef .MakeFloat (_bgbb .BlackPoint [2])));};_eeaee .Set ("\u0047\u0061\u006dm\u0061",_aef .MakeFloat (_bgbb .Gamma ));_bfbc .Append (_eeaee );if _bgbb ._ggdc !=nil {_bgbb ._ggdc .PdfObject =_bfbc ;return _bgbb ._ggdc ;};return _bfbc ;};func _cbgcd (_aecgg *_aef .PdfObjectDictionary )(*PdfShadingType6 ,error ){_cbdbc :=PdfShadingType6 {};_fgced :=_aecgg .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065");if _fgced ==nil {_abe .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 ;};_cgbcb ,_bbgcg :=_fgced .(*_aef .PdfObjectInteger );if !_bbgcg {_abe .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",_fgced );return nil ,_aef .ErrTypeError ;};_cbdbc .BitsPerCoordinate =_cgbcb ;_fgced =_aecgg .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074");if _fgced ==nil {_abe .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 ;};_cgbcb ,_bbgcg =_fgced .(*_aef .PdfObjectInteger );if !_bbgcg {_abe .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",_fgced );return nil ,_aef .ErrTypeError ;};_cbdbc .BitsPerComponent =_cgbcb ;_fgced =_aecgg .Get ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067");if _fgced ==nil {_abe .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 ;};_cgbcb ,_bbgcg =_fgced .(*_aef .PdfObjectInteger );if !_bbgcg {_abe .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",_fgced );return nil ,_aef .ErrTypeError ;};_cbdbc .BitsPerComponent =_cgbcb ;_fgced =_aecgg .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");if _fgced ==nil {_abe .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 ;};_adeec ,_bbgcg :=_fgced .(*_aef .PdfObjectArray );if !_bbgcg {_abe .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",_fgced );return nil ,_aef .ErrTypeError ;};_cbdbc .Decode =_adeec ;if _afdf :=_aecgg .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");_afdf !=nil {_cbdbc .Function =[]PdfFunction {};if _bfef ,_gaecfg :=_afdf .(*_aef .PdfObjectArray );_gaecfg {for _ ,_defcf :=range _bfef .Elements (){_gfabb ,_fdffa :=_begb (_defcf );if _fdffa !=nil {_abe .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",_fdffa );return nil ,_fdffa ;};_cbdbc .Function =append (_cbdbc .Function ,_gfabb );};}else {_acaf ,_gaeef :=_begb (_afdf );if _gaeef !=nil {_abe .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",_gaeef );return nil ,_gaeef ;};_cbdbc .Function =append (_cbdbc .Function ,_acaf );};};return &_cbdbc ,nil ;};
// SetPdfKeywords sets the Keywords attribute of the output PDF.
func SetPdfKeywords (keywords string ){_abdcd .Lock ();defer _abdcd .Unlock ();_fdfdc =keywords };
// GetContainingPdfObject returns the XObject Form's containing object (indirect object).
func (_badaf *XObjectForm )GetContainingPdfObject ()_aef .PdfObject {return _badaf ._ebdad };
// 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 ;
// NewPdfFieldSignature returns an initialized signature field.
func NewPdfFieldSignature (signature *PdfSignature )*PdfFieldSignature {_acbfd :=&PdfFieldSignature {};_acbfd .PdfField =NewPdfField ();_acbfd .PdfField .SetContext (_acbfd );_acbfd .PdfAnnotationWidget =NewPdfAnnotationWidget ();_acbfd .PdfAnnotationWidget .SetContext (_acbfd );_acbfd .PdfAnnotationWidget ._edc =_acbfd .PdfField ._abebg ;_acbfd .T =_aef .MakeString ("");_acbfd .F =_aef .MakeInteger (132);_acbfd .V =signature ;return _acbfd ;};
// ToPdfObject returns the PDF representation of the shading dictionary.
func (_eedff *PdfShadingType3 )ToPdfObject ()_aef .PdfObject {_eedff .PdfShading .ToPdfObject ();_eegafb ,_fabe :=_eedff .getShadingDict ();if _fabe !=nil {_abe .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 _eedff .Coords !=nil {_eegafb .Set ("\u0043\u006f\u006f\u0072\u0064\u0073",_eedff .Coords );};if _eedff .Domain !=nil {_eegafb .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_eedff .Domain );};if _eedff .Function !=nil {if len (_eedff .Function )==1{_eegafb .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_eedff .Function [0].ToPdfObject ());}else {_gffed :=_aef .MakeArray ();for _ ,_cgbgf :=range _eedff .Function {_gffed .Append (_cgbgf .ToPdfObject ());};_eegafb .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_gffed );};};if _eedff .Extend !=nil {_eegafb .Set ("\u0045\u0078\u0074\u0065\u006e\u0064",_eedff .Extend );};return _eedff ._bbga ;};func _baca (_acaaa *fontCommon )*pdfFontType0 {return &pdfFontType0 {fontCommon :*_acaaa }};
// PdfAnnotationCaret represents Caret annotations.
// (Section 12.5.6.11).
type PdfAnnotationCaret struct{*PdfAnnotation ;*PdfAnnotationMarkup ;RD _aef .PdfObject ;Sy _aef .PdfObject ;};
// 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 ;_bdgaa []byte ;_ceeae []uint32 ;_feeee *_aef .PdfObjectStream ;};
// ColorAt returns the color of the image pixel specified by the x and y coordinates.
func (_adafd *Image )ColorAt (x ,y int )(_g .Color ,error ){_eddge :=_gb .BytesPerLine (int (_adafd .Width ),int (_adafd .BitsPerComponent ),_adafd .ColorComponents );switch _adafd .ColorComponents {case 1:return _gb .ColorAtGrayscale (x ,y ,int (_adafd .BitsPerComponent ),_eddge ,_adafd .Data ,_adafd ._fgafa );case 3:return _gb .ColorAtNRGBA (x ,y ,int (_adafd .Width ),_eddge ,int (_adafd .BitsPerComponent ),_adafd .Data ,_adafd ._afge ,_adafd ._fgafa );case 4:return _gb .ColorAtCMYK (x ,y ,int (_adafd .Width ),_adafd .Data ,_adafd ._fgafa );};_abe .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",_adafd .ColorComponents ,_adafd .BitsPerComponent );return nil ,_fa .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");};
// 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 (_cgbea pdfFontSimple )GetCharMetrics (code _be .CharCode )(_ecf .CharMetrics ,bool ){if _edde ,_cbeaeg :=_cgbea ._bacac [code ];_cbeaeg {return _ecf .CharMetrics {Wx :_edde },true ;};if _ecf .IsStdFont (_ecf .StdFontName (_cgbea ._fegdg )){return _ecf .CharMetrics {Wx :250},true ;};return _ecf .CharMetrics {},false ;};
// SetDecode sets the decode image float slice.
func (_ffeeag *Image )SetDecode (decode []float64 ){_ffeeag ._fgafa =decode };
// PdfFilespec represents a file specification which can either refer to an external or embedded file.
type PdfFilespec struct{Type _aef .PdfObject ;FS _aef .PdfObject ;F _aef .PdfObject ;UF _aef .PdfObject ;DOS _aef .PdfObject ;Mac _aef .PdfObject ;Unix _aef .PdfObject ;ID _aef .PdfObject ;V _aef .PdfObject ;EF _aef .PdfObject ;RF _aef .PdfObject ;Desc _aef .PdfObject ;CI _aef .PdfObject ;_bgbda _aef .PdfObject ;};
// SetPdfCreator sets the Creator attribute of the output PDF.
func SetPdfCreator (creator string ){_abdcd .Lock ();defer _abdcd .Unlock ();_defge =creator };
// DecodeArray returns the range of color component values in the ICCBased colorspace.
func (_gdfcd *PdfColorspaceICCBased )DecodeArray ()[]float64 {return _gdfcd .Range };func _abfgb ()string {_abdcd .Lock ();defer _abdcd .Unlock ();return _ffac };
// A returns the value of the A component of the color.
func (_deac *PdfColorCalRGB )A ()float64 {return _deac [0]};func _bgcf (_fedc *_aef .PdfObjectDictionary )(*PdfFieldText ,error ){_aedad :=&PdfFieldText {};_aedad .DA ,_ =_aef .GetString (_fedc .Get ("\u0044\u0041"));_aedad .Q ,_ =_aef .GetInt (_fedc .Get ("\u0051"));_aedad .DS ,_ =_aef .GetString (_fedc .Get ("\u0044\u0053"));_aedad .RV =_fedc .Get ("\u0052\u0056");_aedad .MaxLen ,_ =_aef .GetInt (_fedc .Get ("\u004d\u0061\u0078\u004c\u0065\u006e"));return _aedad ,nil ;};
// ToPdfObject returns the button field dictionary within an indirect object.
func (_ceeb *PdfFieldButton )ToPdfObject ()_aef .PdfObject {_ceeb .PdfField .ToPdfObject ();_egbc :=_ceeb ._abebg ;_bfbcf :=_egbc .PdfObject .(*_aef .PdfObjectDictionary );_bfbcf .Set ("\u0046\u0054",_aef .MakeName ("\u0042\u0074\u006e"));if _ceeb .Opt !=nil {_bfbcf .Set ("\u004f\u0070\u0074",_ceeb .Opt );};return _egbc ;};
// NewPdfColorDeviceGray returns a new grayscale color based on an input grayscale float value in range [0-1].
func NewPdfColorDeviceGray (grayVal float64 )*PdfColorDeviceGray {_bcfe :=PdfColorDeviceGray (grayVal );return &_bcfe ;};
// ToGoTime returns the date in time.Time format.
func (_gdcea PdfDate )ToGoTime ()_a .Time {_ccccg :=int (_gdcea ._bbccf *60*60+_gdcea ._debfg *60);switch _gdcea ._bggc {case '-':_ccccg =-_ccccg ;case 'Z':_ccccg =0;};_abcfg :=_b .Sprintf ("\u0055\u0054\u0043\u0025\u0063\u0025\u002e\u0032\u0064\u0025\u002e\u0032\u0064",_gdcea ._bggc ,_gdcea ._bbccf ,_gdcea ._debfg );_dgbb :=_a .FixedZone (_abcfg ,_ccccg );return _a .Date (int (_gdcea ._eacag ),_a .Month (_gdcea ._bfeaf ),int (_gdcea ._cecab ),int (_gdcea ._begfg ),int (_gdcea ._gdeaef ),int (_gdcea ._ebge ),0,_dgbb );};
// NewPdfAnnotationProjection returns a new projection annotation.
func NewPdfAnnotationProjection ()*PdfAnnotationProjection {_eeae :=NewPdfAnnotation ();_eec :=&PdfAnnotationProjection {};_eec .PdfAnnotation =_eeae ;_eec .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_eeae .SetContext (_eec );return _eec ;};
// GetContainingPdfObject implements interface PdfModel.
func (_egga *PdfAnnotation )GetContainingPdfObject ()_aef .PdfObject {return _egga ._edc };
// PdfFont represents an underlying font structure which can be of type:
// - Type0
// - Type1
// - TrueType
// etc.
type PdfFont struct{_dccga pdfFont };
// ToOutlineTree returns a low level PdfOutlineTreeNode object, based on
// the current instance.
func (_cbae *Outline )ToOutlineTree ()*PdfOutlineTreeNode {return &_cbae .ToPdfOutline ().PdfOutlineTreeNode ;};
// NewDSS returns a new DSS dictionary.
func NewDSS ()*DSS {return &DSS {_egdea :_aef .MakeIndirectObject (_aef .MakeDict ()),VRI :map[string ]*VRI {}};};func (_defa *PdfAnnotationMarkup )appendToPdfDictionary (_face *_aef .PdfObjectDictionary ){_face .SetIfNotNil ("\u0054",_defa .T );if _defa .Popup !=nil {_face .Set ("\u0050\u006f\u0070u\u0070",_defa .Popup .ToPdfObject ());};_face .SetIfNotNil ("\u0043\u0041",_defa .CA );_face .SetIfNotNil ("\u0052\u0043",_defa .RC );_face .SetIfNotNil ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065",_defa .CreationDate );_face .SetIfNotNil ("\u0049\u0052\u0054",_defa .IRT );_face .SetIfNotNil ("\u0053\u0075\u0062\u006a",_defa .Subj );_face .SetIfNotNil ("\u0052\u0054",_defa .RT );_face .SetIfNotNil ("\u0049\u0054",_defa .IT );_face .SetIfNotNil ("\u0045\u0078\u0044\u0061\u0074\u0061",_defa .ExData );};func _aafde (_acdgg StdFontName )(pdfFontSimple ,error ){_cgga ,_gebfb :=_ecf .NewStdFontByName (_acdgg );if !_gebfb {return pdfFontSimple {},ErrFontNotSupported ;};_babce :=_edbed (_cgga );return _babce ,nil ;};
// ColorToRGB converts a DeviceN color to an RGB color.
func (_egda *PdfColorspaceDeviceN )ColorToRGB (color PdfColor )(PdfColor ,error ){if _egda .AlternateSpace ==nil {return nil ,_fa .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 _egda .AlternateSpace .ColorToRGB (color );};func _dbdgg (_abgge *_aef .PdfObjectDictionary )(*PdfTilingPattern ,error ){_febfb :=&PdfTilingPattern {};_ggaac :=_abgge .Get ("\u0050a\u0069\u006e\u0074\u0054\u0079\u0070e");if _ggaac ==nil {_abe .Log .Debug ("\u0050\u0061\u0069\u006e\u0074\u0054\u0079\u0070\u0065\u0020\u006d\u0069s\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ;};_dadff ,_abbbe :=_ggaac .(*_aef .PdfObjectInteger );if !_abbbe {_abe .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",_ggaac );return nil ,_aef .ErrTypeError ;};_febfb .PaintType =_dadff ;_ggaac =_abgge .Get ("\u0054\u0069\u006c\u0069\u006e\u0067\u0054\u0079\u0070\u0065");if _ggaac ==nil {_abe .Log .Debug ("\u0054i\u006ci\u006e\u0067\u0054\u0079\u0070e\u0020\u006di\u0073\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ;};_aadf ,_abbbe :=_ggaac .(*_aef .PdfObjectInteger );if !_abbbe {_abe .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",_ggaac );return nil ,_aef .ErrTypeError ;};_febfb .TilingType =_aadf ;_ggaac =_abgge .Get ("\u0042\u0042\u006f\u0078");if _ggaac ==nil {_abe .Log .Debug ("\u0042\u0042\u006fx\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ;};_ggaac =_aef .TraceToDirectObject (_ggaac );_edcf ,_abbbe :=_ggaac .(*_aef .PdfObjectArray );if !_abbbe {_abe .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",_ggaac );return nil ,_aef .ErrTypeError ;};_adbaa ,_cgee :=NewPdfRectangle (*_edcf );if _cgee !=nil {_abe .Log .Debug ("\u0042\u0042\u006f\u0078\u0020\u0065\u0072\u0072\u006fr\u003a\u0020\u0025\u0076",_cgee );return nil ,_cgee ;};_febfb .BBox =_adbaa ;_ggaac =_abgge .Get ("\u0058\u0053\u0074e\u0070");if _ggaac ==nil {_abe .Log .Debug ("\u0058\u0053\u0074\u0065\u0070\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ;};_cegcg ,_cgee :=_aef .GetNumberAsFloat (_ggaac );if _cgee !=nil {_abe .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",_cegcg );return nil ,_cgee ;};_febfb .XStep =_aef .MakeFloat (_cegcg );_ggaac =_abgge .Get ("\u0059\u0053\u0074e\u0070");if _ggaac ==nil {_abe .Log .Debug ("\u0059\u0053\u0074\u0065\u0070\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ;};_dccfg ,_cgee :=_aef .GetNumberAsFloat (_ggaac );if _cgee !=nil {_abe .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",_dccfg );return nil ,_cgee ;};_febfb .YStep =_aef .MakeFloat (_dccfg );_ggaac =_abgge .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");if _ggaac ==nil {_abe .Log .Debug ("\u0052\u0065\u0073\u006f\u0075\u0072\u0063\u0065\u0073\u0020\u006d\u0069s\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ;};_abgge ,_abbbe =_aef .TraceToDirectObject (_ggaac ).(*_aef .PdfObjectDictionary );if !_abbbe {return nil ,_b .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",_ggaac );};_aabfb ,_cgee :=NewPdfPageResourcesFromDict (_abgge );if _cgee !=nil {return nil ,_cgee ;};_febfb .Resources =_aabfb ;if _egdfa :=_abgge .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");_egdfa !=nil {_gfbbc ,_fdgfg :=_egdfa .(*_aef .PdfObjectArray );if !_fdgfg {_abe .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",_egdfa );return nil ,_aef .ErrTypeError ;};_febfb .Matrix =_gfbbc ;};return _febfb ,nil ;};
// ImageToRGB converts CalRGB colorspace image to RGB and returns the result.
func (_ggdb *PdfColorspaceCalRGB )ImageToRGB (img Image )(Image ,error ){_gbea :=_ea .NewReader (img .getBase ());_ebfc :=_gb .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),3,nil ,nil ,nil );_ddcg :=_ea .NewWriter (_ebfc );_bfca :=_ad .Pow (2,float64 (img .BitsPerComponent ))-1;_cgcd :=make ([]uint32 ,3);var (_abae error ;_daef ,_bcae ,_dabad ,_aefba ,_ceded ,_aaef float64 ;);for {_abae =_gbea .ReadSamples (_cgcd );if _abae ==_gfc .EOF {break ;}else if _abae !=nil {return img ,_abae ;};_daef =float64 (_cgcd [0])/_bfca ;_bcae =float64 (_cgcd [1])/_bfca ;_dabad =float64 (_cgcd [2])/_bfca ;_aefba =_ggdb .Matrix [0]*_ad .Pow (_daef ,_ggdb .Gamma [0])+_ggdb .Matrix [3]*_ad .Pow (_bcae ,_ggdb .Gamma [1])+_ggdb .Matrix [6]*_ad .Pow (_dabad ,_ggdb .Gamma [2]);_ceded =_ggdb .Matrix [1]*_ad .Pow (_daef ,_ggdb .Gamma [0])+_ggdb .Matrix [4]*_ad .Pow (_bcae ,_ggdb .Gamma [1])+_ggdb .Matrix [7]*_ad .Pow (_dabad ,_ggdb .Gamma [2]);_aaef =_ggdb .Matrix [2]*_ad .Pow (_daef ,_ggdb .Gamma [0])+_ggdb .Matrix [5]*_ad .Pow (_bcae ,_ggdb .Gamma [1])+_ggdb .Matrix [8]*_ad .Pow (_dabad ,_ggdb .Gamma [2]);_daef =3.240479*_aefba +-1.537150*_ceded +-0.498535*_aaef ;_bcae =-0.969256*_aefba +1.875992*_ceded +0.041556*_aaef ;_dabad =0.055648*_aefba +-0.204043*_ceded +1.057311*_aaef ;_daef =_ad .Min (_ad .Max (_daef ,0),1.0);_bcae =_ad .Min (_ad .Max (_bcae ,0),1.0);_dabad =_ad .Min (_ad .Max (_dabad ,0),1.0);_cgcd [0]=uint32 (_daef *_bfca );_cgcd [1]=uint32 (_bcae *_bfca );_cgcd [2]=uint32 (_dabad *_bfca );if _abae =_ddcg .WriteSamples (_cgcd );_abae !=nil {return img ,_abae ;};};return _cbgdcg (&_ebfc ),nil ;};
// PdfActionHide represents a hide action.
type PdfActionHide struct{*PdfAction ;T _aef .PdfObject ;H _aef .PdfObject ;};func (_ffgg *LTV )getCRLs (_gfde []*_c .Certificate )([][]byte ,error ){_geggd :=make ([][]byte ,0,len (_gfde ));for _ ,_acbed :=range _gfde {for _ ,_bbdf :=range _acbed .CRLDistributionPoints {if _ffgg .CertClient .IsCA (_acbed ){continue ;};_cdcgf ,_adgcg :=_ffgg .CRLClient .MakeRequest (_bbdf ,_acbed );if _adgcg !=nil {_abe .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",_adgcg );continue ;};_geggd =append (_geggd ,_cdcgf );};};return _geggd ,nil ;};func (_cccc *PdfReader )newPdfAnnotationScreenFromDict (_dbgf *_aef .PdfObjectDictionary )(*PdfAnnotationScreen ,error ){_abdd :=PdfAnnotationScreen {};_abdd .T =_dbgf .Get ("\u0054");_abdd .MK =_dbgf .Get ("\u004d\u004b");_abdd .A =_dbgf .Get ("\u0041");_abdd .AA =_dbgf .Get ("\u0041\u0041");return &_abdd ,nil ;};
// GetOutlinesFlattened returns a flattened list of tree nodes and titles.
// NOTE: for most use cases, it is recommended to use the high-level GetOutlines
// method instead, which also provides information regarding the destination
// of the outline items.
func (_ffea *PdfReader )GetOutlinesFlattened ()([]*PdfOutlineTreeNode ,[]string ,error ){var _cdef []*PdfOutlineTreeNode ;var _dgccb []string ;var _afab func (*PdfOutlineTreeNode ,*[]*PdfOutlineTreeNode ,*[]string ,int );_afab =func (_aaff *PdfOutlineTreeNode ,_dccfgg *[]*PdfOutlineTreeNode ,_eggb *[]string ,_bgbe int ){if _aaff ==nil {return ;};if _aaff ._gdgaba ==nil {_abe .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 ;};_ccaec ,_bgbcg :=_aaff ._gdgaba .(*PdfOutlineItem );if _bgbcg {*_dccfgg =append (*_dccfgg ,&_ccaec .PdfOutlineTreeNode );_dgbca :=_dg .Repeat ("\u0020",_bgbe *2)+_ccaec .Title .Decoded ();*_eggb =append (*_eggb ,_dgbca );};if _aaff .First !=nil {_gbcbe :=_dg .Repeat ("\u0020",_bgbe *2)+"\u002b";*_eggb =append (*_eggb ,_gbcbe );_afab (_aaff .First ,_dccfgg ,_eggb ,_bgbe +1);};if _bgbcg &&_ccaec .Next !=nil {_afab (_ccaec .Next ,_dccfgg ,_eggb ,_bgbe );};};_afab (_ffea ._gaad ,&_cdef ,&_dgccb ,0);return _cdef ,_dgccb ,nil ;};
// 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 (_fdcb *PdfColorspaceDeviceCMYK )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=4{return nil ,_fa .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_bdbg :=vals [0];if _bdbg < 0.0||_bdbg > 1.0{return nil ,_fa .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_fagfa :=vals [1];if _fagfa < 0.0||_fagfa > 1.0{return nil ,_fa .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_eaa :=vals [2];if _eaa < 0.0||_eaa > 1.0{return nil ,_fa .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_dbbc :=vals [3];if _dbbc < 0.0||_dbbc > 1.0{return nil ,_fa .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_bafde :=NewPdfColorDeviceCMYK (_bdbg ,_fagfa ,_eaa ,_dbbc );return _bafde ,nil ;};
// Optimizer is the interface that performs optimization of PDF object structure for output writing.
//
// Optimize receives a slice of input `objects`, performs optimization, including removing, replacing objects and
// output the optimized slice of objects.
type Optimizer interface{Optimize (_fccfd []_aef .PdfObject )([]_aef .PdfObject ,error );};
// 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 (_aaebe *Image )ConvertToBinary ()error {if _aaebe .ColorComponents ==1&&_aaebe .BitsPerComponent ==1{return nil ;};_begc ,_gaaga :=_aaebe .ToGoImage ();if _gaaga !=nil {return _gaaga ;};_cfeefe ,_gaaga :=_gb .MonochromeConverter .Convert (_begc );if _gaaga !=nil {return _gaaga ;};_aaebe .BitsPerComponent =1;_aaebe .ColorComponents =1;_aaebe .Data =_cfeefe .Base ().Data ;return nil ;};
// GetAscent returns the Ascent of the font `descriptor`.
func (_efgdf *PdfFontDescriptor )GetAscent ()(float64 ,error ){return _aef .GetNumberAsFloat (_efgdf .Ascent );};
// Clear clears flag fl from the flag and returns the resulting flag.
func (_gagaf FieldFlag )Clear (fl FieldFlag )FieldFlag {return FieldFlag (_gagaf .Mask ()&^fl .Mask ())};
// ColorToRGB converts a color in Separation colorspace to RGB colorspace.
func (_fafe *PdfColorspaceSpecialSeparation )ColorToRGB (color PdfColor )(PdfColor ,error ){if _fafe .AlternateSpace ==nil {return nil ,_fa .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 _fafe .AlternateSpace .ColorToRGB (color );};var (_abdcd _d .Mutex ;_ffac ="";_ddea _a .Time ;_defge ="";_fdfdc ="";_ecgff _a .Time ;_ggdea ="";_afdfd ="";_caceb ="";);
// ColorFromPdfObjects returns a new PdfColor based on input color components. The input PdfObjects should
// be numeric.
func (_dccc *PdfColorspaceDeviceN )ColorFromPdfObjects (objects []_aef .PdfObject )(PdfColor ,error ){if len (objects )!=_dccc .GetNumComponents (){return nil ,_fa .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_ecgg ,_bcda :=_aef .GetNumbersAsFloat (objects );if _bcda !=nil {return nil ,_bcda ;};return _dccc .ColorFromFloats (_ecgg );};
// ToPdfObject implements interface PdfModel.
func (_cbb *PdfActionSubmitForm )ToPdfObject ()_aef .PdfObject {_cbb .PdfAction .ToPdfObject ();_acbc :=_cbb ._gc ;_egc :=_acbc .PdfObject .(*_aef .PdfObjectDictionary );_egc .SetIfNotNil ("\u0053",_aef .MakeName (string (ActionTypeSubmitForm )));if _cbb .F !=nil {_egc .Set ("\u0046",_cbb .F .ToPdfObject ());};_egc .SetIfNotNil ("\u0046\u0069\u0065\u006c\u0064\u0073",_cbb .Fields );_egc .SetIfNotNil ("\u0046\u006c\u0061g\u0073",_cbb .Flags );return _acbc ;};
// ToPdfObject returns the PDF representation of the shading dictionary.
func (_cfcggb *PdfShadingType1 )ToPdfObject ()_aef .PdfObject {_cfcggb .PdfShading .ToPdfObject ();_eaeeb ,_becdd :=_cfcggb .getShadingDict ();if _becdd !=nil {_abe .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 _cfcggb .Domain !=nil {_eaeeb .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_cfcggb .Domain );};if _cfcggb .Matrix !=nil {_eaeeb .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_cfcggb .Matrix );};if _cfcggb .Function !=nil {if len (_cfcggb .Function )==1{_eaeeb .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_cfcggb .Function [0].ToPdfObject ());}else {_adgg :=_aef .MakeArray ();for _ ,_fdbfa :=range _cfcggb .Function {_adgg .Append (_fdbfa .ToPdfObject ());};_eaeeb .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_adgg );};};return _cfcggb ._bbga ;};
// 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 ;_fecc *_aef .PdfIndirectObject ;};func _defag (_dafa []rune ,_abdgd map[rune ]int ,_aedfc map[rune ]_ecf .GID )*_aef .PdfObjectArray {_eedc :=&_aef .PdfObjectArray {};for _aafa :=0;_aafa < len (_dafa );{_aggeg :=_abdgd [_dafa [_aafa ]];_eecgf :=_aafa ;for _ecgf :=_aafa +1;_ecgf < len (_dafa );_ecgf ++{_ggga :=_abdgd [_dafa [_ecgf ]];if _aggeg ==_ggga {_eecgf =_ecgf ;}else {break ;};};_bafdc :=_aedfc [_dafa [_aafa ]];_bdada :=_aedfc [_dafa [_eecgf ]];_eedc .Append (_aef .MakeInteger (int64 (_bafdc )));_eedc .Append (_aef .MakeInteger (int64 (_bdada )));_eedc .Append (_aef .MakeInteger (int64 (_aggeg )));_aafa =_eecgf +1;};return _eedc ;};func _cfeba (_eggee _aef .PdfObject ){_abe .Log .Debug ("\u006f\u0062\u006a\u003a\u0020\u0025\u0054\u0020\u0025\u0073",_eggee ,_eggee .String ());if _edgdb ,_afcgb :=_eggee .(*_aef .PdfObjectStream );_afcgb {_geaba ,_efabf :=_aef .DecodeStream (_edgdb );if _efabf !=nil {_abe .Log .Debug ("\u0045r\u0072\u006f\u0072\u003a\u0020\u0025v",_efabf );return ;};_abe .Log .Debug ("D\u0065\u0063\u006f\u0064\u0065\u0064\u003a\u0020\u0025\u0073",_geaba );}else if _caded ,_cadee :=_eggee .(*_aef .PdfIndirectObject );_cadee {_abe .Log .Debug ("\u0025\u0054\u0020%\u0076",_caded .PdfObject ,_caded .PdfObject );_abe .Log .Debug ("\u0025\u0073",_caded .PdfObject .String ());};};func (_agg *PdfReader )newPdfAnnotation3DFromDict (_geca *_aef .PdfObjectDictionary )(*PdfAnnotation3D ,error ){_aace :=PdfAnnotation3D {};_aace .T3DD =_geca .Get ("\u0033\u0044\u0044");_aace .T3DV =_geca .Get ("\u0033\u0044\u0056");_aace .T3DA =_geca .Get ("\u0033\u0044\u0041");_aace .T3DI =_geca .Get ("\u0033\u0044\u0049");_aace .T3DB =_geca .Get ("\u0033\u0044\u0042");return &_aace ,nil ;};
// PdfShadingType4 is a Free-form Gouraud-shaded triangle mesh.
type PdfShadingType4 struct{*PdfShading ;BitsPerCoordinate *_aef .PdfObjectInteger ;BitsPerComponent *_aef .PdfObjectInteger ;BitsPerFlag *_aef .PdfObjectInteger ;Decode *_aef .PdfObjectArray ;Function []PdfFunction ;};
// NewPdfColorspaceCalGray returns a new CalGray colorspace object.
func NewPdfColorspaceCalGray ()*PdfColorspaceCalGray {_ggba :=&PdfColorspaceCalGray {};_ggba .BlackPoint =[]float64 {0.0,0.0,0.0};_ggba .Gamma =1;return _ggba ;};
// NewPdfPageResourcesColorspaces returns a new PdfPageResourcesColorspaces object.
func NewPdfPageResourcesColorspaces ()*PdfPageResourcesColorspaces {_eabcg :=&PdfPageResourcesColorspaces {};_eabcg .Names =[]string {};_eabcg .Colorspaces =map[string ]PdfColorspace {};_eabcg ._efbb =&_aef .PdfIndirectObject {};return _eabcg ;};
// ToPdfObject implements interface PdfModel.
func (_bbc *PdfActionMovie )ToPdfObject ()_aef .PdfObject {_bbc .PdfAction .ToPdfObject ();_dfg :=_bbc ._gc ;_fabf :=_dfg .PdfObject .(*_aef .PdfObjectDictionary );_fabf .SetIfNotNil ("\u0053",_aef .MakeName (string (ActionTypeMovie )));_fabf .SetIfNotNil ("\u0041\u006e\u006e\u006f\u0074\u0061\u0074\u0069\u006f\u006e",_bbc .Annotation );_fabf .SetIfNotNil ("\u0054",_bbc .T );_fabf .SetIfNotNil ("\u004fp\u0065\u0072\u0061\u0074\u0069\u006fn",_bbc .Operation );return _dfg ;};
// Fill populates `form` with values provided by `provider`.
func (_ceab *PdfAcroForm )Fill (provider FieldValueProvider )error {return _ceab .fill (provider ,nil )};
// 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 (_bacbb *PdfReader )Inspect ()(map[string ]int ,error ){return _bacbb ._gdbbd .Inspect ()};type pdfCIDFontType2 struct{fontCommon ;_cafb *_aef .PdfIndirectObject ;_gdfaa _be .TextEncoder ;
// Table 117 Entries in a CIDFont dictionary (page 269)
// Dictionary that defines the character collection of the CIDFont (required).
// See Table 116.
CIDSystemInfo *_aef .PdfObjectDictionary ;
// Glyph metrics fields (optional).
DW _aef .PdfObject ;W _aef .PdfObject ;DW2 _aef .PdfObject ;W2 _aef .PdfObject ;
// CIDs to glyph indices mapping (optional).
CIDToGIDMap _aef .PdfObject ;_gcfe map[_be .CharCode ]float64 ;_efagd float64 ;_bffbc map[rune ]int ;};func (_adaf *PdfColorspaceDeviceRGB )String ()string {return "\u0044e\u0076\u0069\u0063\u0065\u0052\u0047B";};
// ToPdfObject returns a PDF object representation of the outline destination.
func (_afeaa OutlineDest )ToPdfObject ()_aef .PdfObject {if (_afeaa .PageObj ==nil &&_afeaa .Page < 0)||_afeaa .Mode ==""{return _aef .MakeNull ();};_beeg :=_aef .MakeArray ();if _afeaa .PageObj !=nil {_beeg .Append (_afeaa .PageObj );}else {_beeg .Append (_aef .MakeInteger (_afeaa .Page ));};_beeg .Append (_aef .MakeName (_afeaa .Mode ));switch _afeaa .Mode {case "\u0046\u0069\u0074","\u0046\u0069\u0074\u0042":case "\u0046\u0069\u0074\u0048","\u0046\u0069\u0074B\u0048":_beeg .Append (_aef .MakeFloat (_afeaa .Y ));case "\u0046\u0069\u0074\u0056","\u0046\u0069\u0074B\u0056":_beeg .Append (_aef .MakeFloat (_afeaa .X ));case "\u0058\u0059\u005a":_beeg .Append (_aef .MakeFloat (_afeaa .X ));_beeg .Append (_aef .MakeFloat (_afeaa .Y ));_beeg .Append (_aef .MakeFloat (_afeaa .Zoom ));default:_beeg .Set (1,_aef .MakeName ("\u0046\u0069\u0074"));};return _beeg ;};
// DecodeArray returns the component range values for the Indexed colorspace.
func (_bedc *PdfColorspaceSpecialIndexed )DecodeArray ()[]float64 {return []float64 {0,float64 (_bedc .HiVal )};};
// GetSubFilter returns SubFilter value or empty string.
func (_ddaee *pdfSignDictionary )GetSubFilter ()string {_ccab :=_ddaee .Get ("\u0053u\u0062\u0046\u0069\u006c\u0074\u0065r");if _ccab ==nil {return "";};if _ffbef ,_beddc :=_aef .GetNameVal (_ccab );_beddc {return _ffbef ;};return "";};
// 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 (_bffec *PdfReader )FlattenFields (allannots bool ,appgen FieldAppearanceGenerator )error {return _bffec .flattenFieldsWithOpts (allannots ,appgen ,nil );};func (_cdadd *PdfShading )getShadingDict ()(*_aef .PdfObjectDictionary ,error ){_daddc :=_cdadd ._bbga ;if _defc ,_cafe :=_daddc .(*_aef .PdfIndirectObject );_cafe {_bebg ,_cdfg :=_defc .PdfObject .(*_aef .PdfObjectDictionary );if !_cdfg {return nil ,_aef .ErrTypeError ;};return _bebg ,nil ;}else if _bfdc ,_faed :=_daddc .(*_aef .PdfObjectStream );_faed {return _bfdc .PdfObjectDictionary ,nil ;}else if _abded ,_eeeda :=_daddc .(*_aef .PdfObjectDictionary );_eeeda {return _abded ,nil ;}else {_abe .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 ,_aef .ErrTypeError ;};};
// PdfAppender appends new PDF content to an existing PDF document via incremental updates.
type PdfAppender struct{_dfgf _gfc .ReadSeeker ;_egag *_aef .PdfParser ;_fdd *PdfReader ;Reader *PdfReader ;_ebegf []*PdfPage ;_faga *PdfAcroForm ;_gcde *DSS ;_cdda _aef .XrefTable ;_fccb int64 ;_gdbd int ;_aeaaa []_aef .PdfObject ;_abge map[_aef .PdfObject ]struct{};_ddff map[_aef .PdfObject ]int64 ;_cbf map[_aef .PdfObject ]struct{};_gfce map[_aef .PdfObject ]struct{};_gadc int64 ;_ebef bool ;};
// SetFilter sets compression filter. Decodes with current filter sets and
// encodes the data with the new filter.
func (_dgdd *XObjectImage )SetFilter (encoder _aef .StreamEncoder )error {_bbafd :=_dgdd .Stream ;_geafa ,_fgcedf :=_dgdd .Filter .DecodeBytes (_bbafd );if _fgcedf !=nil {return _fgcedf ;};_dgdd .Filter =encoder ;encoder .UpdateParams (_dgdd .getParamsDict ());_bbafd ,_fgcedf =encoder .EncodeBytes (_geafa );if _fgcedf !=nil {return _fgcedf ;};_dgdd .Stream =_bbafd ;return nil ;};
// NewPdfAnnotationStamp returns a new stamp annotation.
func NewPdfAnnotationStamp ()*PdfAnnotationStamp {_ebfd :=NewPdfAnnotation ();_gbf :=&PdfAnnotationStamp {};_gbf .PdfAnnotation =_ebfd ;_gbf .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_ebfd .SetContext (_gbf );return _gbf ;};
// NewPdfColorspaceSpecialPattern returns a new pattern color.
func NewPdfColorspaceSpecialPattern ()*PdfColorspaceSpecialPattern {return &PdfColorspaceSpecialPattern {};};
// GetContainingPdfObject returns the container of the outline tree node (indirect object).
func (_gbabb *PdfOutlineTreeNode )GetContainingPdfObject ()_aef .PdfObject {return _gbabb .GetContext ().GetContainingPdfObject ();};func (_dgdb *PdfReader )newPdfAnnotationWatermarkFromDict (_babd *_aef .PdfObjectDictionary )(*PdfAnnotationWatermark ,error ){_fee :=PdfAnnotationWatermark {};_fee .FixedPrint =_babd .Get ("\u0046\u0069\u0078\u0065\u0064\u0050\u0072\u0069\u006e\u0074");return &_fee ,nil ;};func (_agec *PdfColorspaceDeviceGray )String ()string {return "\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079";};
// ColorFromFloats returns a new PdfColor based on the input slice of color
// components.
func (_adged *PdfColorspaceICCBased )ColorFromFloats (vals []float64 )(PdfColor ,error ){if _adged .Alternate ==nil {if _adged .N ==1{_cdgg :=NewPdfColorspaceDeviceGray ();return _cdgg .ColorFromFloats (vals );}else if _adged .N ==3{_efefe :=NewPdfColorspaceDeviceRGB ();return _efefe .ColorFromFloats (vals );}else if _adged .N ==4{_ececc :=NewPdfColorspaceDeviceCMYK ();return _ececc .ColorFromFloats (vals );}else {return nil ,_fa .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 _adged .Alternate .ColorFromFloats (vals );};func (_fbae *PdfReader )newPdfAnnotationPolygonFromDict (_caeg *_aef .PdfObjectDictionary )(*PdfAnnotationPolygon ,error ){_geda :=PdfAnnotationPolygon {};_gbfd ,_eccf :=_fbae .newPdfAnnotationMarkupFromDict (_caeg );if _eccf !=nil {return nil ,_eccf ;};_geda .PdfAnnotationMarkup =_gbfd ;_geda .Vertices =_caeg .Get ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073");_geda .LE =_caeg .Get ("\u004c\u0045");_geda .BS =_caeg .Get ("\u0042\u0053");_geda .IC =_caeg .Get ("\u0049\u0043");_geda .BE =_caeg .Get ("\u0042\u0045");_geda .IT =_caeg .Get ("\u0049\u0054");_geda .Measure =_caeg .Get ("\u004de\u0061\u0073\u0075\u0072\u0065");return &_geda ,nil ;};
// GetParamsDict returns *core.PdfObjectDictionary with a set of basic image parameters.
func (_beaea *Image )GetParamsDict ()*_aef .PdfObjectDictionary {_efbd :=_aef .MakeDict ();_efbd .Set ("\u0057\u0069\u0064t\u0068",_aef .MakeInteger (_beaea .Width ));_efbd .Set ("\u0048\u0065\u0069\u0067\u0068\u0074",_aef .MakeInteger (_beaea .Height ));_efbd .Set ("\u0043o\u006co\u0072\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074\u0073",_aef .MakeInteger (int64 (_beaea .ColorComponents )));_efbd .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_aef .MakeInteger (_beaea .BitsPerComponent ));return _efbd ;};func _cgbda (_aadc *[]*PdfField ,_debc FieldFilterFunc ,_ceafg bool )[]*PdfField {if _aadc ==nil {return nil ;};_dedc :=*_aadc ;if len (*_aadc )==0{return nil ;};_acdfb :=_dedc [:0];if _debc ==nil {_debc =func (*PdfField )bool {return true };};var _cgdc []*PdfField ;for _ ,_gfbcg :=range _dedc {_bagfd :=_debc (_gfbcg );if _bagfd {_cgdc =append (_cgdc ,_gfbcg );if len (_gfbcg .Kids )> 0{_cgdc =append (_cgdc ,_cgbda (&_gfbcg .Kids ,_debc ,_ceafg )...);};};if !_ceafg ||!_bagfd ||len (_gfbcg .Kids )> 0{_acdfb =append (_acdfb ,_gfbcg );};};*_aadc =_acdfb ;return _cgdc ;};
// PdfAction represents an action in PDF (section 12.6 p. 412).
type PdfAction struct{_ecb PdfModel ;Type _aef .PdfObject ;S _aef .PdfObject ;Next _aef .PdfObject ;_gc *_aef .PdfIndirectObject ;};
// Evaluate runs the function on the passed in slice and returns the results.
func (_egabb *PdfFunctionType0 )Evaluate (x []float64 )([]float64 ,error ){if len (x )!=_egabb .NumInputs {_abe .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 ,_fa .New ("\u0072\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b\u0020e\u0072\u0072\u006f\u0072");};if _egabb ._ceeae ==nil {_fdde :=_egabb .processSamples ();if _fdde !=nil {return nil ,_fdde ;};};_bgcg :=_egabb .Encode ;if _bgcg ==nil {_bgcg =[]float64 {};for _ddfdg :=0;_ddfdg < len (_egabb .Size );_ddfdg ++{_bgcg =append (_bgcg ,0);_bgcg =append (_bgcg ,float64 (_egabb .Size [_ddfdg ]-1));};};_fgggc :=_egabb .Decode ;if _fgggc ==nil {_fgggc =_egabb .Range ;};_cecacc :=make ([]int ,len (x ));for _eacgfc :=0;_eacgfc < len (x );_eacgfc ++{_febgg :=x [_eacgfc ];_ddfb :=_ad .Min (_ad .Max (_febgg ,_egabb .Domain [2*_eacgfc ]),_egabb .Domain [2*_eacgfc +1]);_fccce :=_gb .LinearInterpolate (_ddfb ,_egabb .Domain [2*_eacgfc ],_egabb .Domain [2*_eacgfc +1],_bgcg [2*_eacgfc ],_bgcg [2*_eacgfc +1]);_cfcgg :=_ad .Min (_ad .Max (_fccce ,0),float64 (_egabb .Size [_eacgfc ]-1));_adagc :=int (_ad .Floor (_cfcgg +0.5));if _adagc < 0{_adagc =0;}else if _adagc > _egabb .Size [_eacgfc ]{_adagc =_egabb .Size [_eacgfc ]-1;};_cecacc [_eacgfc ]=_adagc ;};_deadg :=_cecacc [0];for _cgegf :=1;_cgegf < _egabb .NumInputs ;_cgegf ++{_ggaga :=_cecacc [_cgegf ];for _egee :=0;_egee < _cgegf ;_egee ++{_ggaga *=_egabb .Size [_egee ];};_deadg +=_ggaga ;};_deadg *=_egabb .NumOutputs ;var _dgaaa []float64 ;for _edfe :=0;_edfe < _egabb .NumOutputs ;_edfe ++{_bgedd :=_deadg +_edfe ;if _bgedd >=len (_egabb ._ceeae ){_abe .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 ;};_ggbb :=_egabb ._ceeae [_bgedd ];_cefc :=_gb .LinearInterpolate (float64 (_ggbb ),0,_ad .Pow (2,float64 (_egabb .BitsPerSample )),_fgggc [2*_edfe ],_fgggc [2*_edfe +1]);_gaag :=_ad .Min (_ad .Max (_cefc ,_egabb .Range [2*_edfe ]),_egabb .Range [2*_edfe +1]);_dgaaa =append (_dgaaa ,_gaag );};return _dgaaa ,nil ;};func _gfabd (_gaea *_aef .PdfObjectDictionary ,_bdce *fontCommon )(*pdfCIDFontType0 ,error ){if _bdce ._ababd !="\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0030"{_abe .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",_bdce );return nil ,_aef .ErrRangeError ;};_abca :=_acfce (_bdce );_bbced ,_defe :=_aef .GetDict (_gaea .Get ("\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f"));if !_defe {_abe .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",_bdce );return nil ,ErrRequiredAttributeMissing ;};_abca .CIDSystemInfo =_bbced ;_abca .DW =_gaea .Get ("\u0044\u0057");_abca .W =_gaea .Get ("\u0057");_abca .DW2 =_gaea .Get ("\u0044\u0057\u0032");_abca .W2 =_gaea .Get ("\u0057\u0032");_abca ._egcdc =1000.0;if _fbed ,_edfcc :=_aef .GetNumberAsFloat (_abca .DW );_edfcc ==nil {_abca ._egcdc =_fbed ;};_dgdbef ,_bdbdf :=_bbaee (_abca .W );if _bdbdf !=nil {return nil ,_bdbdf ;};if _dgdbef ==nil {_dgdbef =map[_be .CharCode ]float64 {};};_abca ._gfbff =_dgdbef ;return _abca ,nil ;};
// GetOCProperties returns the optional content properties PdfObject.
func (_bdgg *PdfReader )GetOCProperties ()(_aef .PdfObject ,error ){_eccfa :=_bdgg ._acae ;_cffbb :=_eccfa .Get ("\u004f\u0043\u0050r\u006f\u0070\u0065\u0072\u0074\u0069\u0065\u0073");_cffbb =_aef .ResolveReference (_cffbb );if !_bdgg ._afae {_cagg :=_bdgg .traverseObjectData (_cffbb );if _cagg !=nil {return nil ,_cagg ;};};return _cffbb ,nil ;};
// NewPdfAnnotationCircle returns a new circle annotation.
func NewPdfAnnotationCircle ()*PdfAnnotationCircle {_becg :=NewPdfAnnotation ();_dda :=&PdfAnnotationCircle {};_dda .PdfAnnotation =_becg ;_dda .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_becg .SetContext (_dda );return _dda ;};
// ToPdfObject implements interface PdfModel.
func (_bddc *PdfAnnotationFreeText )ToPdfObject ()_aef .PdfObject {_bddc .PdfAnnotation .ToPdfObject ();_fada :=_bddc ._edc ;_ffg :=_fada .PdfObject .(*_aef .PdfObjectDictionary );_bddc .PdfAnnotationMarkup .appendToPdfDictionary (_ffg );_ffg .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_aef .MakeName ("\u0046\u0072\u0065\u0065\u0054\u0065\u0078\u0074"));_ffg .SetIfNotNil ("\u0044\u0041",_bddc .DA );_ffg .SetIfNotNil ("\u0051",_bddc .Q );_ffg .SetIfNotNil ("\u0052\u0043",_bddc .RC );_ffg .SetIfNotNil ("\u0044\u0053",_bddc .DS );_ffg .SetIfNotNil ("\u0043\u004c",_bddc .CL );_ffg .SetIfNotNil ("\u0049\u0054",_bddc .IT );_ffg .SetIfNotNil ("\u0042\u0045",_bddc .BE );_ffg .SetIfNotNil ("\u0052\u0044",_bddc .RD );_ffg .SetIfNotNil ("\u0042\u0053",_bddc .BS );_ffg .SetIfNotNil ("\u004c\u0045",_bddc .LE );return _fada ;};
// GetContainingPdfObject returns the containing object for the PdfField, i.e. an indirect object
// containing the field dictionary.
func (_aecea *PdfField )GetContainingPdfObject ()_aef .PdfObject {return _aecea ._abebg };var (ErrRequiredAttributeMissing =_fa .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 =_fa .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0061\u0074\u0074\u0072i\u0062\u0075\u0074\u0065");ErrTypeCheck =_fa .New ("\u0074\u0079\u0070\u0065\u0020\u0063\u0068\u0065\u0063\u006b");_cbcgg =_fa .New ("\u0072\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b\u0020e\u0072\u0072\u006f\u0072");ErrEncrypted =_fa .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 =_fa .New ("\u0066\u006fn\u0074\u0020\u006eo\u0074\u0020\u0064\u0065\u0066\u0069\u006e\u0065\u0064");ErrFontNotSupported =_bb .Errorf ("u\u006e\u0073\u0075\u0070po\u0072t\u0065\u0064\u0020\u0066\u006fn\u0074\u0020\u0028\u0025\u0077\u0029",_aef .ErrNotSupported );ErrType1CFontNotSupported =_bb .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",_aef .ErrNotSupported );ErrType3FontNotSupported =_bb .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",_aef .ErrNotSupported );ErrTTCmapNotSupported =_bb .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",_aef .ErrNotSupported );ErrSignNotEnoughSpace =_bb .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 =_bb .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"););
// GetNumComponents returns the number of color components.
func (_deeb *PdfColorspaceICCBased )GetNumComponents ()int {return _deeb .N };
// BorderEffect represents a border effect (Table 167 p. 395).
type BorderEffect int ;
// Read reads an image and loads into a new Image object with an RGB
// colormap and 8 bits per component.
func (_dgccc DefaultImageHandler )Read (reader _gfc .Reader )(*Image ,error ){_fbcbb ,_ ,_bcdeg :=_ae .Decode (reader );if _bcdeg !=nil {_abe .Log .Debug ("\u0045\u0072\u0072or\u0020\u0064\u0065\u0063\u006f\u0064\u0069\u006e\u0067\u0020\u0066\u0069\u006c\u0065\u003a\u0020\u0025\u0073",_bcdeg );return nil ,_bcdeg ;};return _dgccc .NewImageFromGoImage (_fbcbb );};
// ReplacePage replaces the original page to a new page.
func (_fbaf *PdfAppender )ReplacePage (pageNum int ,page *PdfPage ){_aedb :=pageNum -1;for _bdcg :=range _fbaf ._ebegf {if _bdcg ==_aedb {_ecefe :=page .Duplicate ();_bedgc (_ecefe );_fbaf ._ebegf [_bdcg ]=_ecefe ;};};};
// ColorToRGB converts an Indexed color to an RGB color.
func (_gbgd *PdfColorspaceSpecialIndexed )ColorToRGB (color PdfColor )(PdfColor ,error ){if _gbgd .Base ==nil {return nil ,_fa .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 _gbgd .Base .ColorToRGB (color );};func (_bfbfea *DSS )addCRLs (_cedg [][]byte )([]*_aef .PdfObjectStream ,error ){return _bfbfea .add (&_bfbfea .CRLs ,_bfbfea ._gfbg ,_cedg );};type modelManager struct{_gfdb map[PdfModel ]_aef .PdfObject ;_bgbf map[_aef .PdfObject ]PdfModel ;};
// GetNumPages returns the number of pages in the document.
func (_ccbaa *PdfReader )GetNumPages ()(int ,error ){if _ccbaa ._gdbbd .GetCrypter ()!=nil &&!_ccbaa ._gdbbd .IsAuthenticated (){return 0,_b .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 (_ccbaa ._dbdgb ),nil ;};func _cfeeg (_gcbg _aef .PdfObject )(*fontFile ,error ){_abe .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",_gcbg );_dfgaec :=&fontFile {};_gcbg =_aef .TraceToDirectObject (_gcbg );_dfgad ,_fccfb :=_gcbg .(*_aef .PdfObjectStream );if !_fccfb {_abe .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",_gcbg );return nil ,_aef .ErrTypeError ;};_eddf :=_dfgad .PdfObjectDictionary ;_bged ,_cdbfg :=_aef .DecodeStream (_dfgad );if _cdbfg !=nil {return nil ,_cdbfg ;};_adeg ,_fccfb :=_aef .GetNameVal (_eddf .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065"));if !_fccfb {_dfgaec ._aacd =_adeg ;if _adeg =="\u0054\u0079\u0070\u0065\u0031\u0043"{_abe .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 ;};};_aagab ,_ :=_aef .GetIntVal (_eddf .Get ("\u004ce\u006e\u0067\u0074\u0068\u0031"));_gcbgg ,_ :=_aef .GetIntVal (_eddf .Get ("\u004ce\u006e\u0067\u0074\u0068\u0032"));if _aagab > len (_bged ){_aagab =len (_bged );};if _aagab +_gcbgg > len (_bged ){_gcbgg =len (_bged )-_aagab ;};_gggf :=_bged [:_aagab ];var _ebad []byte ;if _gcbgg > 0{_ebad =_bged [_aagab :_aagab +_gcbgg ];};if _aagab > 0&&_gcbgg > 0{_cbbgg :=_dfgaec .loadFromSegments (_gggf ,_ebad );if _cbbgg !=nil {return nil ,_cbbgg ;};};return _dfgaec ,nil ;};
// PdfActionSubmitForm represents a submitForm action.
type PdfActionSubmitForm struct{*PdfAction ;F *PdfFilespec ;Fields _aef .PdfObject ;Flags _aef .PdfObject ;};
// NewPdfActionImportData returns a new "import data" action.
func NewPdfActionImportData ()*PdfActionImportData {_ac :=NewPdfAction ();_gca :=&PdfActionImportData {};_gca .PdfAction =_ac ;_ac .SetContext (_gca );return _gca ;};
// ToGoImage converts the unidoc Image to a golang Image structure.
func (_gafdb *Image )ToGoImage ()(_ae .Image ,error ){_abe .Log .Trace ("\u0043\u006f\u006e\u0076er\u0074\u0069\u006e\u0067\u0020\u0074\u006f\u0020\u0067\u006f\u0020\u0069\u006d\u0061g\u0065");_befd ,_ffcfgd :=_gb .NewImage (int (_gafdb .Width ),int (_gafdb .Height ),int (_gafdb .BitsPerComponent ),_gafdb .ColorComponents ,_gafdb .Data ,_gafdb ._afge ,_gafdb ._fgafa );if _ffcfgd !=nil {return nil ,_ffcfgd ;};return _befd ,nil ;};func _bbaee (_eccdf _aef .PdfObject )(map[_be .CharCode ]float64 ,error ){if _eccdf ==nil {return nil ,nil ;};_bfaf ,_gecda :=_aef .GetArray (_eccdf );if !_gecda {return nil ,nil ;};_dcbee :=map[_be .CharCode ]float64 {};_gbcde :=_bfaf .Len ();for _aeffg :=0;_aeffg < _gbcde -1;_aeffg ++{_fabc :=_aef .TraceToDirectObject (_bfaf .Get (_aeffg ));_fegc ,_gada :=_aef .GetIntVal (_fabc );if !_gada {return nil ,_b .Errorf ("\u0042a\u0064\u0020\u0066\u006fn\u0074\u0020\u0057\u0020\u006fb\u006a0\u003a \u0069\u003d\u0025\u0064\u0020\u0025\u0023v",_aeffg ,_fabc );};_aeffg ++;if _aeffg > _gbcde -1{return nil ,_b .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",_bfaf );};_dddef :=_aef .TraceToDirectObject (_bfaf .Get (_aeffg ));switch _dddef .(type ){case *_aef .PdfObjectArray :_bbed ,_ :=_aef .GetArray (_dddef );if _gbeb ,_dffcf :=_bbed .ToFloat64Array ();_dffcf ==nil {for _agcf :=0;_agcf < len (_gbeb );_agcf ++{_dcbee [_be .CharCode (_fegc +_agcf )]=_gbeb [_agcf ];};}else {return nil ,_b .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",_aeffg ,_dddef );};case *_aef .PdfObjectInteger :_dbece ,_fdee :=_aef .GetIntVal (_dddef );if !_fdee {return nil ,_b .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",_aeffg ,_dddef );};_aeffg ++;if _aeffg > _gbcde -1{return nil ,_b .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",_bfaf );};_fbcc :=_bfaf .Get (_aeffg );_adgc ,_cagfb :=_aef .GetNumberAsFloat (_fbcc );if _cagfb !=nil {return nil ,_b .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",_aeffg ,_fbcc );};for _fcade :=_fegc ;_fcade <=_dbece ;_fcade ++{_dcbee [_be .CharCode (_fcade )]=_adgc ;};default:return nil ,_b .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",_aeffg ,_dddef );};};return _dcbee ,nil ;};func _beed ()*modelManager {_ebafba :=modelManager {};_ebafba ._gfdb =map[PdfModel ]_aef .PdfObject {};_ebafba ._bgbf =map[_aef .PdfObject ]PdfModel {};return &_ebafba ;};func (_adba *LTV )enable (_dcbcc ,_edaca []*_c .Certificate ,_cfbf string )error {_cbfeb ,_ddgf ,_feaba :=_adba .buildCertChain (_dcbcc ,_edaca );if _feaba !=nil {return _feaba ;};_effbb ,_feaba :=_adba .getCerts (_cbfeb );if _feaba !=nil {return _feaba ;};_fceec ,_feaba :=_adba .getOCSPs (_cbfeb ,_ddgf );if _feaba !=nil {return _feaba ;};_fcbb ,_feaba :=_adba .getCRLs (_cbfeb );if _feaba !=nil {return _feaba ;};_fddf :=_adba ._cbcf ;_dadg ,_feaba :=_fddf .addCerts (_effbb );if _feaba !=nil {return _feaba ;};_gddb ,_feaba :=_fddf .addOCSPs (_fceec );if _feaba !=nil {return _feaba ;};_fcfbgc ,_feaba :=_fddf .addCRLs (_fcbb );if _feaba !=nil {return _feaba ;};if _cfbf !=""{_fddf .VRI [_cfbf ]=&VRI {Cert :_dadg ,OCSP :_gddb ,CRL :_fcfbgc };};_adba ._bdabf .SetDSS (_fddf );return nil ;};
// SetPatternByName sets a pattern resource specified by keyName.
func (_effa *PdfPageResources )SetPatternByName (keyName _aef .PdfObjectName ,pattern _aef .PdfObject )error {if _effa .Pattern ==nil {_effa .Pattern =_aef .MakeDict ();};_abbfe ,_fagfe :=_effa .Pattern .(*_aef .PdfObjectDictionary );if !_fagfe {return _aef .ErrTypeError ;};_abbfe .Set (keyName ,pattern );return nil ;};
// SetPdfCreationDate sets the CreationDate attribute of the output PDF.
func SetPdfCreationDate (creationDate _a .Time ){_abdcd .Lock ();defer _abdcd .Unlock ();_ddea =creationDate ;};
// NewOutline returns a new outline instance.
func NewOutline ()*Outline {return &Outline {}};
// GetAction returns the PDF action for the annotation link.
func (_fbe *PdfAnnotationLink )GetAction ()(*PdfAction ,error ){if _fbe ._faec !=nil {return _fbe ._faec ,nil ;};if _fbe .A ==nil {return nil ,nil ;};if _fbe ._cfa ==nil {return nil ,nil ;};_cdae ,_dfc :=_fbe ._cfa .loadAction (_fbe .A );if _dfc !=nil {return nil ,_dfc ;};_fbe ._faec =_cdae ;return _fbe ._faec ,nil ;};
// ToPdfObject implements interface PdfModel.
func (_ggec *PdfAnnotationLink )ToPdfObject ()_aef .PdfObject {_ggec .PdfAnnotation .ToPdfObject ();_eaeb :=_ggec ._edc ;_bff :=_eaeb .PdfObject .(*_aef .PdfObjectDictionary );_bff .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_aef .MakeName ("\u004c\u0069\u006e\u006b"));if _ggec ._faec !=nil &&_ggec ._faec ._ecb !=nil {_bff .Set ("\u0041",_ggec ._faec ._ecb .ToPdfObject ());}else if _ggec .A !=nil {_bff .Set ("\u0041",_ggec .A );};_bff .SetIfNotNil ("\u0044\u0065\u0073\u0074",_ggec .Dest );_bff .SetIfNotNil ("\u0048",_ggec .H );_bff .SetIfNotNil ("\u0050\u0041",_ggec .PA );_bff .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_ggec .QuadPoints );_bff .SetIfNotNil ("\u0042\u0053",_ggec .BS );return _eaeb ;};
// ImageToRGB returns an error since an image cannot be defined in a pattern colorspace.
func (_efcgc *PdfColorspaceSpecialPattern )ImageToRGB (img Image )(Image ,error ){_abe .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 ,_fa .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");};
// SetNamedDestinations sets the Names entry in the PDF catalog.
// See section 12.3.2.3 "Named Destinations" (p. 367 PDF32000_2008).
func (_gaagd *PdfWriter )SetNamedDestinations (names _aef .PdfObject )error {if names ==nil {return nil ;};_abe .Log .Trace ("\u0053e\u0074\u0074\u0069\u006e\u0067\u0020\u0063\u0061\u0074\u0061\u006co\u0067\u0020\u004e\u0061\u006d\u0065\u0073\u002e\u002e\u002e");_gaagd ._abebc .Set ("\u004e\u0061\u006de\u0073",names );return _gaagd .addObjects (names );};
// PdfActionTrans represents a trans action.
type PdfActionTrans struct{*PdfAction ;Trans _aef .PdfObject ;};
// 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 ,_be .SimpleEncoder ,error ){_cabbc ,_gbfc :=_aafde (basefont );if _gbfc !=nil {return nil ,nil ,_gbfc ;};_eccef ,_aaga :=_cabbc .Encoder ().(_be .SimpleEncoder );if !_aaga {return nil ,nil ,_b .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",_cabbc .Encoder ());};_fbcf :=make (map[rune ]_be .GlyphName );for _gfbc :=range alphabet {if _ ,_dgda :=_eccef .RuneToCharcode (_gfbc );!_dgda {_ ,_gegb :=_cabbc ._gcbd [_gfbc ];if !_gegb {_abe .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",_gfbc ,_gfbc );continue ;};_bffb ,_gegb :=_be .RuneToGlyph (_gfbc );if !_gegb {_abe .Log .Debug ("\u006eo\u0020\u0067\u006c\u0079\u0070\u0068\u0020\u0066\u006f\u0072\u0020r\u0075\u006e\u0065\u0020\u0025\u0023\u0078\u003d\u0025\u0071",_gfbc ,_gfbc );continue ;};if len (_fbcf )>=255{return nil ,nil ,_fa .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");};_fbcf [_gfbc ]=_bffb ;};};var (_eagfa []_be .CharCode ;_gdef []_be .CharCode ;);for _gagcb :=_be .CharCode (1);_gagcb <=0xff;_gagcb ++{_gfcc ,_gadcg :=_eccef .CharcodeToRune (_gagcb );if !_gadcg {_eagfa =append (_eagfa ,_gagcb );continue ;};if _ ,_gadcg =alphabet [_gfcc ];!_gadcg {_gdef =append (_gdef ,_gagcb );};};_fefg :=append (_eagfa ,_gdef ...);if len (_fefg )< len (_fbcf ){return nil ,nil ,_b .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 (_fbcf ),len (_fefg ));};_adee :=make ([]rune ,0,len (_fbcf ));for _cdeb :=range _fbcf {_adee =append (_adee ,_cdeb );};_eg .Slice (_adee ,func (_eacgf ,_cgdb int )bool {return _adee [_eacgf ]< _adee [_cgdb ]});_bcaec :=make (map[_be .CharCode ]_be .GlyphName ,len (_adee ));for _ ,_acaae :=range _adee {_ffdf :=_fefg [0];_fefg =_fefg [1:];_bcaec [_ffdf ]=_fbcf [_acaae ];};_eccef =_be .ApplyDifferences (_eccef ,_bcaec );_cabbc .SetEncoder (_eccef );return &PdfFont {_dccga :&_cabbc },_eccef ,nil ;};
// SetContext sets the sub annotation (context).
func (_dcc *PdfAnnotation )SetContext (ctx PdfModel ){_dcc ._eab =ctx };
// PdfAcroForm represents the AcroForm dictionary used for representation of form data in PDF.
type PdfAcroForm struct{Fields *[]*PdfField ;NeedAppearances *_aef .PdfObjectBool ;SigFlags *_aef .PdfObjectInteger ;CO *_aef .PdfObjectArray ;DR *PdfPageResources ;DA *_aef .PdfObjectString ;Q *_aef .PdfObjectInteger ;XFA _aef .PdfObject ;_aade *_aef .PdfIndirectObject ;};
// ToPdfObject returns the PDF representation of the colorspace.
func (_gbff *PdfColorspaceSpecialSeparation )ToPdfObject ()_aef .PdfObject {_gaee :=_aef .MakeArray (_aef .MakeName ("\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e"));_gaee .Append (_gbff .ColorantName );_gaee .Append (_gbff .AlternateSpace .ToPdfObject ());_gaee .Append (_gbff .TintTransform .ToPdfObject ());if _gbff ._abfcb !=nil {_gbff ._abfcb .PdfObject =_gaee ;return _gbff ._abfcb ;};return _gaee ;};
// PdfPageResources is a Page resources model.
// Implements PdfModel.
type PdfPageResources struct{ExtGState _aef .PdfObject ;ColorSpace _aef .PdfObject ;Pattern _aef .PdfObject ;Shading _aef .PdfObject ;XObject _aef .PdfObject ;Font _aef .PdfObject ;ProcSet _aef .PdfObject ;Properties _aef .PdfObject ;_eede *_aef .PdfObjectDictionary ;_fcdfg *PdfPageResourcesColorspaces ;};func (_fdeg *pdfCIDFontType0 )baseFields ()*fontCommon {return &_fdeg .fontCommon };
// SetColorspaceByName adds the provided colorspace to the page resources.
func (_fgfcf *PdfPageResources )SetColorspaceByName (keyName _aef .PdfObjectName ,cs PdfColorspace )error {_cagag ,_agfbf :=_fgfcf .GetColorspaces ();if _agfbf !=nil {_abe .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",_agfbf );return _agfbf ;};if _cagag ==nil {_cagag =NewPdfPageResourcesColorspaces ();_fgfcf .SetColorSpace (_cagag );};_cagag .Set (keyName ,cs );return nil ;};
// ToPdfObject implements interface PdfModel.
func (_dgg *PdfAnnotationRichMedia )ToPdfObject ()_aef .PdfObject {_dgg .PdfAnnotation .ToPdfObject ();_adge :=_dgg ._edc ;_fbdd :=_adge .PdfObject .(*_aef .PdfObjectDictionary );_fbdd .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_aef .MakeName ("\u0052i\u0063\u0068\u004d\u0065\u0064\u0069a"));_fbdd .SetIfNotNil ("\u0052\u0069\u0063\u0068\u004d\u0065\u0064\u0069\u0061\u0053\u0065\u0074t\u0069\u006e\u0067\u0073",_dgg .RichMediaSettings );_fbdd .SetIfNotNil ("\u0052\u0069c\u0068\u004d\u0065d\u0069\u0061\u0043\u006f\u006e\u0074\u0065\u006e\u0074",_dgg .RichMediaContent );return _adge ;};
// GetContainingPdfObject implements interface PdfModel.
func (_fgba *PdfFilespec )GetContainingPdfObject ()_aef .PdfObject {return _fgba ._bgbda };func (_edabf *PdfWriter )addObjects (_aaggg _aef .PdfObject )error {_abe .Log .Trace ("\u0041d\u0064i\u006e\u0067\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0073\u0021");if _ffffa ,_adeb :=_aaggg .(*_aef .PdfIndirectObject );_adeb {_abe .Log .Trace ("\u0049\u006e\u0064\u0069\u0072\u0065\u0063\u0074");_abe .Log .Trace ("\u002d \u0025\u0073\u0020\u0028\u0025\u0070)",_aaggg ,_ffffa );_abe .Log .Trace ("\u002d\u0020\u0025\u0073",_ffffa .PdfObject );if _edabf .addObject (_ffffa ){_geade :=_edabf .addObjects (_ffffa .PdfObject );if _geade !=nil {return _geade ;};};return nil ;};if _adagd ,_gcccb :=_aaggg .(*_aef .PdfObjectStream );_gcccb {_abe .Log .Trace ("\u0053\u0074\u0072\u0065\u0061\u006d");_abe .Log .Trace ("\u002d \u0025\u0073\u0020\u0025\u0070",_aaggg ,_aaggg );if _edabf .addObject (_adagd ){_eacfe :=_edabf .addObjects (_adagd .PdfObjectDictionary );if _eacfe !=nil {return _eacfe ;};};return nil ;};if _dbegd ,_dacge :=_aaggg .(*_aef .PdfObjectDictionary );_dacge {_abe .Log .Trace ("\u0044\u0069\u0063\u0074");_abe .Log .Trace ("\u002d\u0020\u0025\u0073",_aaggg );for _ ,_cbad :=range _dbegd .Keys (){_aagfb :=_dbegd .Get (_cbad );if _degg ,_ggeag :=_aagfb .(*_aef .PdfObjectReference );_ggeag {_aagfb =_degg .Resolve ();_dbegd .Set (_cbad ,_aagfb );};if _cbad !="\u0050\u0061\u0072\u0065\u006e\u0074"{if _fefed :=_edabf .addObjects (_aagfb );_fefed !=nil {return _fefed ;};}else {if _ ,_cdaea :=_aagfb .(*_aef .PdfObjectNull );_cdaea {continue ;};if _fffaa :=_edabf .hasObject (_aagfb );!_fffaa {_abe .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",_aagfb ,_aagfb ,_aagfb );_edabf ._eabcf [_aagfb ]=append (_edabf ._eabcf [_aagfb ],_dbegd );};};};return nil ;};if _daad ,_affcb :=_aaggg .(*_aef .PdfObjectArray );_affcb {_abe .Log .Trace ("\u0041\u0072\u0072a\u0079");_abe .Log .Trace ("\u002d\u0020\u0025\u0073",_aaggg );if _daad ==nil {return _fa .New ("\u0061\u0072\u0072a\u0079\u0020\u0069\u0073\u0020\u006e\u0069\u006c");};for _cddfg ,_eacbb :=range _daad .Elements (){if _egcag ,_fdfbf :=_eacbb .(*_aef .PdfObjectReference );_fdfbf {_eacbb =_egcag .Resolve ();_daad .Set (_cddfg ,_eacbb );};if _adccf :=_edabf .addObjects (_eacbb );_adccf !=nil {return _adccf ;};};return nil ;};if _ ,_fgbca :=_aaggg .(*_aef .PdfObjectReference );_fgbca {_abe .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",_aaggg );return _fa .New ("r\u0065\u0066\u0065\u0072en\u0063e\u0020\u006e\u006f\u0074\u0020a\u006c\u006c\u006f\u0077\u0065\u0064");};return nil ;};
// GetExtGState gets the ExtGState specified by keyName. Returns a bool
// indicating whether it was found or not.
func (_agfbc *PdfPageResources )GetExtGState (keyName _aef .PdfObjectName )(_aef .PdfObject ,bool ){if _agfbc .ExtGState ==nil {return nil ,false ;};_egecg ,_feaed :=_aef .TraceToDirectObject (_agfbc .ExtGState ).(*_aef .PdfObjectDictionary );if !_feaed {_abe .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",_agfbc .ExtGState );return nil ,false ;};if _cfbbf :=_egecg .Get (keyName );_cfbbf !=nil {return _cfbbf ,true ;};return nil ,false ;};const (RC4_128bit =EncryptionAlgorithm (iota );AES_128bit ;AES_256bit ;);
// String returns a human readable description of `fontfile`.
func (_acdc *fontFile )String ()string {_aafg :="\u005b\u004e\u006f\u006e\u0065\u005d";if _acdc ._dbadd !=nil {_aafg =_acdc ._dbadd .String ();};return _b .Sprintf ("\u0046O\u004e\u0054\u0046\u0049\u004c\u0045\u007b\u0025\u0023\u0071\u0020e\u006e\u0063\u006f\u0064\u0065\u0072\u003d\u0025\u0073\u007d",_acdc ._gaed ,_aafg );};
// GetNumComponents returns the number of color components of the colorspace device.
// Returns 4 for a CMYK32 device.
func (_fgbf *PdfColorspaceDeviceCMYK )GetNumComponents ()int {return 4};
// GetContentStreamWithEncoder returns the pattern cell's content stream and its encoder
func (_dffaf *PdfTilingPattern )GetContentStreamWithEncoder ()([]byte ,_aef .StreamEncoder ,error ){_bccd ,_gbaa :=_dffaf ._fgbcde .(*_aef .PdfObjectStream );if !_gbaa {_abe .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",_dffaf ._fgbcde );return nil ,nil ,_aef .ErrTypeError ;};_dfad ,_dccba :=_aef .DecodeStream (_bccd );if _dccba !=nil {_abe .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",_dccba );return nil ,nil ,_dccba ;};_agfdb ,_dccba :=_aef .NewEncoderFromStream (_bccd );if _dccba !=nil {_abe .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",_dccba );return nil ,nil ,_dccba ;};return _dfad ,_agfdb ,nil ;};
// ToPdfObject returns colorspace in a PDF object format [name stream]
func (_edeb *PdfColorspaceICCBased )ToPdfObject ()_aef .PdfObject {_fagaf :=&_aef .PdfObjectArray {};_fagaf .Append (_aef .MakeName ("\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064"));var _gdgb *_aef .PdfObjectStream ;if _edeb ._bcdc !=nil {_gdgb =_edeb ._bcdc ;}else {_gdgb =&_aef .PdfObjectStream {};};_afbec :=_aef .MakeDict ();_afbec .Set ("\u004e",_aef .MakeInteger (int64 (_edeb .N )));if _edeb .Alternate !=nil {_afbec .Set ("\u0041l\u0074\u0065\u0072\u006e\u0061\u0074e",_edeb .Alternate .ToPdfObject ());};if _edeb .Metadata !=nil {_afbec .Set ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061",_edeb .Metadata );};if _edeb .Range !=nil {var _abecb []_aef .PdfObject ;for _ ,_cacgf :=range _edeb .Range {_abecb =append (_abecb ,_aef .MakeFloat (_cacgf ));};_afbec .Set ("\u0052\u0061\u006eg\u0065",_aef .MakeArray (_abecb ...));};_afbec .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_aef .MakeInteger (int64 (len (_edeb .Data ))));_gdgb .Stream =_edeb .Data ;_gdgb .PdfObjectDictionary =_afbec ;_fagaf .Append (_gdgb );if _edeb ._fcabc !=nil {_edeb ._fcabc .PdfObject =_fagaf ;return _edeb ._fcabc ;};return _fagaf ;};
// ImageToRGB converts an image with samples in Separation CS to an image with samples specified in
// DeviceRGB CS.
func (_dcdg *PdfColorspaceSpecialSeparation )ImageToRGB (img Image )(Image ,error ){_adfcc :=_ea .NewReader (img .getBase ());_deeab :=_gb .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),_dcdg .AlternateSpace .GetNumComponents (),nil ,img ._afge ,nil );_dggd :=_ea .NewWriter (_deeab );_aabe :=_ad .Pow (2,float64 (img .BitsPerComponent ))-1;_abe .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");_abe .Log .Trace ("\u0054i\u006et\u0054\u0072\u0061\u006e\u0073f\u006f\u0072m\u003a\u0020\u0025\u002b\u0076",_dcdg .TintTransform );_cge :=_dcdg .AlternateSpace .DecodeArray ();var (_gdgbfd uint32 ;_eadbc error ;);for {_gdgbfd ,_eadbc =_adfcc .ReadSample ();if _eadbc ==_gfc .EOF {break ;};if _eadbc !=nil {return img ,_eadbc ;};_ceca :=float64 (_gdgbfd )/_aabe ;_ecda ,_ecce :=_dcdg .TintTransform .Evaluate ([]float64 {_ceca });if _ecce !=nil {return img ,_ecce ;};for _cfbg ,_dgaag :=range _ecda {_cgfgg :=_gb .LinearInterpolate (_dgaag ,_cge [_cfbg *2],_cge [_cfbg *2+1],0,1);if _ecce =_dggd .WriteSample (uint32 (_cgfgg *_aabe ));_ecce !=nil {return img ,_ecce ;};};};return _dcdg .AlternateSpace .ImageToRGB (_cbgdcg (&_deeab ));};
// 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 *_aef .PdfObjectInteger ;ColorSpace PdfColorspace ;Background *_aef .PdfObjectArray ;BBox *PdfRectangle ;AntiAlias *_aef .PdfObjectBool ;_egaca PdfModel ;_bbga _aef .PdfObject ;};
// ToPdfObject converts rectangle to a PDF object.
func (_fbded *PdfRectangle )ToPdfObject ()_aef .PdfObject {return _aef .MakeArray (_aef .MakeFloat (_fbded .Llx ),_aef .MakeFloat (_fbded .Lly ),_aef .MakeFloat (_fbded .Urx ),_aef .MakeFloat (_fbded .Ury ));};
// NewPdfAnnotationSquare returns a new square annotation.
func NewPdfAnnotationSquare ()*PdfAnnotationSquare {_dff :=NewPdfAnnotation ();_dgc :=&PdfAnnotationSquare {};_dgc .PdfAnnotation =_dff ;_dgc .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_dff .SetContext (_dgc );return _dgc ;};
// 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 (_ebgf *PdfFont )CharcodesToUnicode (charcodes []_be .CharCode )[]rune {_cfbgc ,_ ,_ :=_ebgf .CharcodesToUnicodeWithStats (charcodes );return _cfbgc ;};
// SetImageHandler sets the image handler used by the package.
func SetImageHandler (imgHandling ImageHandler ){ImageHandling =imgHandling };
// GetPdfName returns the PDF name used to indicate the border style.
// (Table 166 p. 395).
func (_ffb *BorderStyle )GetPdfName ()string {switch *_ffb {case BorderStyleSolid :return "\u0053";case BorderStyleDashed :return "\u0044";case BorderStyleBeveled :return "\u0042";case BorderStyleInset :return "\u0049";case BorderStyleUnderline :return "\u0055";};return "";};func (_fcae *pdfFontType0 )bytesToCharcodes (_daec []byte )([]_be .CharCode ,bool ){if _fcae ._dcdab ==nil {return nil ,false ;};_dbbdc ,_acdab :=_fcae ._dcdab .BytesToCharcodes (_daec );if !_acdab {return nil ,false ;};_agdc :=make ([]_be .CharCode ,len (_dbbdc ));for _dafb ,_badg :=range _dbbdc {_agdc [_dafb ]=_be .CharCode (_badg );};return _agdc ,true ;};
// GetCustomInfo returns a custom info value for the specified name.
func (_cbea *PdfInfo )GetCustomInfo (name string )*_aef .PdfObjectString {var _ffgdf *_aef .PdfObjectString ;if _cbea ._ebcd ==nil {return _ffgdf ;};if _efbe ,_dfb :=_cbea ._ebcd .Get (*_aef .MakeName (name )).(*_aef .PdfObjectString );_dfb {_ffgdf =_efbe ;};return _ffgdf ;};func (_abeda *PdfFilespec )getDict ()*_aef .PdfObjectDictionary {if _gead ,_aagg :=_abeda ._bgbda .(*_aef .PdfIndirectObject );_aagg {_edgac ,_eeed :=_gead .PdfObject .(*_aef .PdfObjectDictionary );if !_eeed {return nil ;};return _edgac ;}else if _gggbd ,_dbafg :=_abeda ._bgbda .(*_aef .PdfObjectDictionary );_dbafg {return _gggbd ;}else {_abe .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",_abeda ._bgbda );return nil ;};};func (_abeec fontCommon )isCIDFont ()bool {if _abeec ._ababd ==""{_abe .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",_abeec );};_adfe :=false ;switch _abeec ._ababd {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":_adfe =true ;};_abe .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",_adfe ,_abeec );return _adfe ;};
// NewPdfActionThread returns a new "thread" action.
func NewPdfActionThread ()*PdfActionThread {_ag :=NewPdfAction ();_fb :=&PdfActionThread {};_fb .PdfAction =_ag ;_ag .SetContext (_fb );return _fb ;};func _fccfg (_bbcd _aef .PdfObject )(*PdfColorspaceSpecialPattern ,error ){_abe .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",_bbcd .String (),_bbcd );_bfbff :=NewPdfColorspaceSpecialPattern ();if _agee ,_aaeb :=_bbcd .(*_aef .PdfIndirectObject );_aaeb {_bfbff ._febfd =_agee ;};_bbcd =_aef .TraceToDirectObject (_bbcd );if _efd ,_faef :=_bbcd .(*_aef .PdfObjectName );_faef {if *_efd !="\u0050a\u0074\u0074\u0065\u0072\u006e"{return nil ,_b .Errorf ("\u0069\u006e\u0076a\u006c\u0069\u0064\u0020\u006e\u0061\u006d\u0065");};return _bfbff ,nil ;};_baag ,_gdgbf :=_bbcd .(*_aef .PdfObjectArray );if !_gdgbf {_abe .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",_bbcd );return nil ,_b .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0050\u0061\u0074\u0074e\u0072n\u0020C\u0053\u0020\u006f\u0062\u006a\u0065\u0063t");};if _baag .Len ()!=1&&_baag .Len ()!=2{_abe .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",_baag );return nil ,_b .Errorf ("\u0069n\u0076\u0061\u006c\u0069\u0064\u0020\u0050\u0061\u0074\u0074\u0065r\u006e\u0020\u0043\u0053\u0020\u0061\u0072\u0072\u0061\u0079");};_bbcd =_baag .Get (0);if _caaa ,_edae :=_bbcd .(*_aef .PdfObjectName );_edae {if *_caaa !="\u0050a\u0074\u0074\u0065\u0072\u006e"{_abe .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",_caaa );return nil ,_b .Errorf ("\u0069\u006e\u0076a\u006c\u0069\u0064\u0020\u006e\u0061\u006d\u0065");};};if _baag .Len ()> 1{_bbcd =_baag .Get (1);_bbcd =_aef .TraceToDirectObject (_bbcd );_eegfa ,_ececg :=NewPdfColorspaceFromPdfObject (_bbcd );if _ececg !=nil {return nil ,_ececg ;};_bfbff .UnderlyingCS =_eegfa ;};_abe .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",_bfbff .UnderlyingCS );return _bfbff ,nil ;};func (_cfead *PdfAppender )replaceObject (_bfcc ,_cgfe _aef .PdfObject ){switch _gfdd :=_bfcc .(type ){case *_aef .PdfIndirectObject :_cfead ._ddff [_cgfe ]=_gfdd .ObjectNumber ;case *_aef .PdfObjectStream :_cfead ._ddff [_cgfe ]=_gfdd .ObjectNumber ;};};
// 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 (_fcee *PdfAppender )Sign (pageNum int ,field *PdfFieldSignature )error {if field ==nil {return _fa .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");};_efae :=field .V ;if _efae ==nil {return _fa .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");};_afagf :=pageNum -1;if _afagf < 0||_afagf > len (_fcee ._ebegf )-1{return _b .Errorf ("\u0070\u0061\u0067\u0065\u0020\u0025\u0064\u0020\u006e\u006f\u0074\u0020f\u006f\u0075\u006e\u0064",pageNum );};_fggg :=_fcee .Reader .PageList [_afagf ];field .P =_fggg .ToPdfObject ();if field .T ==nil ||field .T .String ()==""{field .T =_aef .MakeString (_b .Sprintf ("\u0053\u0069\u0067n\u0061\u0074\u0075\u0072\u0065\u0020\u0025\u0064",pageNum ));};_fggg .AddAnnotation (field .PdfAnnotationWidget .PdfAnnotation );if _fcee ._faga ==_fcee ._fdd .AcroForm {_fcee ._faga =_fcee .Reader .AcroForm ;};_dcd :=_fcee ._faga ;if _dcd ==nil {_dcd =NewPdfAcroForm ();};_dcd .SigFlags =_aef .MakeInteger (3);_aefa :=append (_dcd .AllFields (),field .PdfField );_dcd .Fields =&_aefa ;_fcee .ReplaceAcroForm (_dcd );_fcee .UpdatePage (_fggg );_fcee ._ebegf [_afagf ]=_fggg ;return nil ;};
// FontDescriptor returns font's PdfFontDescriptor. This may be a builtin descriptor for standard 14
// fonts but must be an explicit descriptor for other fonts.
func (_edge *PdfFont )FontDescriptor ()*PdfFontDescriptor {if _edge .baseFields ()._bgfd !=nil {return _edge .baseFields ()._bgfd ;};if _beeag :=_edge ._dccga .getFontDescriptor ();_beeag !=nil {return _beeag ;};_abe .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",_edge );return nil ;};
// 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 (_egeaf *PdfReader )GetObjectNums ()[]int {return _egeaf ._gdbbd .GetObjectNums ()};
// SetPdfProducer sets the Producer attribute of the output PDF.
func SetPdfProducer (producer string ){_abdcd .Lock ();defer _abdcd .Unlock ();_ggdea =producer };
// NewPdfActionSetOCGState returns a new "named" action.
func NewPdfActionSetOCGState ()*PdfActionSetOCGState {_afa :=NewPdfAction ();_adfa :=&PdfActionSetOCGState {};_adfa .PdfAction =_afa ;_afa .SetContext (_adfa );return _adfa ;};
// AddCustomInfo adds a custom info into document info dictionary.
func (_accc *PdfInfo )AddCustomInfo (name string ,value string )error {if _accc ._ebcd ==nil {_accc ._ebcd =_aef .MakeDict ();};if _ ,_abdcg :=_gefa [name ];_abdcg {return _b .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 );};_accc ._ebcd .SetIfNotNil (*_aef .MakeName (name ),_aef .MakeString (value ));return nil ;};
// NewPdfColorspaceDeviceN returns an initialized PdfColorspaceDeviceN.
func NewPdfColorspaceDeviceN ()*PdfColorspaceDeviceN {_fbdb :=&PdfColorspaceDeviceN {};return _fbdb };func (_ebfgf *PdfAcroForm )fill (_ebeec FieldValueProvider ,_bbaga FieldAppearanceGenerator )error {if _ebfgf ==nil {return nil ;};_dabd ,_acebd :=_ebeec .FieldValues ();if _acebd !=nil {return _acebd ;};for _ ,_fgbcd :=range _ebfgf .AllFields (){_cdgb :=_fgbcd .PartialName ();_agdee ,_eefcg :=_dabd [_cdgb ];if !_eefcg {if _bdgcb ,_ddbee :=_fgbcd .FullName ();_ddbee ==nil {_agdee ,_eefcg =_dabd [_bdgcb ];};};if !_eefcg {_abe .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",_cdgb );continue ;};if _edgef :=_bfegb (_fgbcd ,_agdee );_edgef !=nil {return _edgef ;};if _bbaga ==nil {continue ;};for _ ,_cfdg :=range _fgbcd .Annotations {_adced ,_ddcd :=_bbaga .GenerateAppearanceDict (_ebfgf ,_fgbcd ,_cfdg );if _ddcd !=nil {return _ddcd ;};_cfdg .AP =_adced ;_cfdg .ToPdfObject ();};};return nil ;};
// GetMediaBox gets the inheritable media box value, either from the page
// or a higher up page/pages struct.
func (_adcdd *PdfPage )GetMediaBox ()(*PdfRectangle ,error ){if _adcdd .MediaBox !=nil {return _adcdd .MediaBox ,nil ;};_ggbfb :=_adcdd .Parent ;for _ggbfb !=nil {_cfde ,_egbca :=_aef .GetDict (_ggbfb );if !_egbca {return nil ,_fa .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 _gdeab :=_cfde .Get ("\u004d\u0065\u0064\u0069\u0061\u0042\u006f\u0078");_gdeab !=nil {_cgfag ,_cbaf :=_aef .GetArray (_gdeab );if !_cbaf {return nil ,_fa .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006d\u0065\u0064\u0069a\u0020\u0062\u006f\u0078");};_fbaa ,_agaee :=NewPdfRectangle (*_cgfag );if _agaee !=nil {return nil ,_agaee ;};return _fbaa ,nil ;};_ggbfb =_cfde .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");};return nil ,_fa .New ("m\u0065\u0064\u0069\u0061 b\u006fx\u0020\u006e\u006f\u0074\u0020d\u0065\u0066\u0069\u006e\u0065\u0064");};
// Has checks if flag fl is set in flag and returns true if so, false otherwise.
func (_cbbg FieldFlag )Has (fl FieldFlag )bool {return (_cbbg .Mask ()&fl .Mask ())> 0};
// ToInteger convert to an integer format.
func (_eeca *PdfColorCalGray )ToInteger (bits int )uint32 {_beag :=_ad .Pow (2,float64 (bits ))-1;return uint32 (_beag *_eeca .Val ());};
// 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 (_cdega *XObjectForm )SetContentStream (content []byte ,encoder _aef .StreamEncoder )error {_daaac :=content ;if encoder ==nil {if _cdega .Filter !=nil {encoder =_cdega .Filter ;}else {encoder =_aef .NewRawEncoder ();};};_cgbb ,_daea :=encoder .EncodeBytes (_daaac );if _daea !=nil {return _daea ;};_daaac =_cgbb ;_cdega .Stream =_daaac ;_cdega .Filter =encoder ;return nil ;};func (_gdbbe *PdfReader )newPdfFieldSignatureFromDict (_gage *_aef .PdfObjectDictionary )(*PdfFieldSignature ,error ){_bggg :=&PdfFieldSignature {};_bfeab ,_efde :=_aef .GetIndirect (_gage .Get ("\u0056"));if _efde {var _aadde error ;_bggg .V ,_aadde =_gdbbe .newPdfSignatureFromIndirect (_bfeab );if _aadde !=nil {return nil ,_aadde ;};};_bggg .Lock ,_ =_aef .GetIndirect (_gage .Get ("\u004c\u006f\u0063\u006b"));_bggg .SV ,_ =_aef .GetIndirect (_gage .Get ("\u0053\u0056"));return _bggg ,nil ;};
// NewPdfColorDeviceCMYK returns a new CMYK32 color.
func NewPdfColorDeviceCMYK (c ,m ,y ,k float64 )*PdfColorDeviceCMYK {_cacdf :=PdfColorDeviceCMYK {c ,m ,y ,k };return &_cacdf ;};func (_fgfdb *PdfReader )newPdfAnnotationStrikeOut (_fcbc *_aef .PdfObjectDictionary )(*PdfAnnotationStrikeOut ,error ){_gdfe :=PdfAnnotationStrikeOut {};_aaf ,_bdag :=_fgfdb .newPdfAnnotationMarkupFromDict (_fcbc );if _bdag !=nil {return nil ,_bdag ;};_gdfe .PdfAnnotationMarkup =_aaf ;_gdfe .QuadPoints =_fcbc .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");return &_gdfe ,nil ;};
// SetAnnotations sets the annotations list.
func (_dcgef *PdfPage )SetAnnotations (annotations []*PdfAnnotation ){_dcgef ._bcgfd =annotations };func (_gfbf *PdfFont )baseFields ()*fontCommon {if _gfbf ._dccga ==nil {_abe .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 _gfbf ._dccga .baseFields ();};
// Encoder returns the font's text encoder.
func (_dacag pdfCIDFontType0 )Encoder ()_be .TextEncoder {return _dacag ._bbbe };type pdfFont interface{_ecf .Font ;
// ToPdfObject returns a PDF representation of the font and implements interface Model.
ToPdfObject ()_aef .PdfObject ;getFontDescriptor ()*PdfFontDescriptor ;baseFields ()*fontCommon ;};
// GetNumComponents returns the number of color components of the colorspace device.
// Returns 3 for an RGB device.
func (_fbba *PdfColorspaceDeviceRGB )GetNumComponents ()int {return 3};
// Subtype returns the font's "Subtype" field.
func (_dffc *PdfFont )Subtype ()string {_ddcc :=_dffc .baseFields ()._ababd ;if _badbb ,_eccfb :=_dffc ._dccga .(*pdfFontType0 );_eccfb {_ddcc =_ddcc +"\u003a"+_badbb .DescendantFont .Subtype ();};return _ddcc ;};func (_gfcbf *PdfWriter )addObject (_fabb _aef .PdfObject )bool {_aacccf :=_gfcbf .hasObject (_fabb );if !_aacccf {_ffeec :=_aef .ResolveReferencesDeep (_fabb ,_gfcbf ._dfdcb );if _ffeec !=nil {_abe .Log .Debug ("E\u0052R\u004f\u0052\u003a\u0020\u0025\u0076\u0020\u002d \u0073\u006b\u0069\u0070pi\u006e\u0067",_ffeec );};_gfcbf ._aage =append (_gfcbf ._aage ,_fabb );_gfcbf ._cafea [_fabb ]=struct{}{};return true ;};return false ;};func _fbfg (_cadf _aef .PdfObject )(*_aef .PdfObjectDictionary ,*fontCommon ,error ){_gbcd :=&fontCommon {};if _accb ,_febc :=_cadf .(*_aef .PdfIndirectObject );_febc {_gbcd ._adfb =_accb .ObjectNumber ;};_cdba ,_ddad :=_aef .GetDict (_cadf );if !_ddad {_abe .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",_cadf );return nil ,nil ,ErrFontNotSupported ;};_gbcb ,_ddad :=_aef .GetNameVal (_cdba .Get ("\u0054\u0079\u0070\u0065"));if !_ddad {_abe .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 _gbcb !="\u0046\u006f\u006e\u0074"{_abe .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.",_gbcb ,"\u0046\u006f\u006e\u0074");return nil ,nil ,_aef .ErrTypeError ;};_abbf ,_ddad :=_aef .GetNameVal (_cdba .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065"));if !_ddad {_abe .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 ;};_gbcd ._ababd =_abbf ;_ecdf ,_ddad :=_aef .GetNameVal (_cdba .Get ("\u004e\u0061\u006d\u0065"));if _ddad {_gbcd ._cebc =_ecdf ;};if _abbf =="\u0054\u0079\u0070e\u0033"{_abe .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0054\u0079\u0070\u0065\u0020\u0033\u0020\u0066\u006f\u006e\u0074\u0020\u006e\u006f\u0074\u0020\u0073u\u0070\u0070\u006f\u0072\u0074e\u0064\u002e \u0064\u003d\u0025\u0073",_cdba );return _cdba ,_gbcd ,ErrType3FontNotSupported ;};_effc ,_ddad :=_aef .GetNameVal (_cdba .Get ("\u0042\u0061\u0073\u0065\u0046\u006f\u006e\u0074"));if !_ddad {_abe .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 _cdba ,_gbcd ,ErrRequiredAttributeMissing ;};_gbcd ._fegdg =_effc ;_bcff :=_cdba .Get ("\u0046\u006f\u006e\u0074\u0044\u0065\u0073\u0063\u0072i\u0070\u0074\u006f\u0072");if _bcff !=nil {_fdda ,_ceda :=_fbea (_bcff );if _ceda !=nil {_abe .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",_ceda );return _cdba ,_gbcd ,_ceda ;};_gbcd ._bgfd =_fdda ;};_gbce :=_cdba .Get ("\u0054o\u0055\u006e\u0069\u0063\u006f\u0064e");if _gbce !=nil {_gbcd ._ddcbd =_aef .TraceToDirectObject (_gbce );_bcgfc ,_cfgb :=_gccc (_gbcd ._ddcbd ,_gbcd );if _cfgb !=nil {return _cdba ,_gbcd ,_cfgb ;};_gbcd ._ecefd =_bcgfc ;}else if _abbf =="\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0030"||_abbf =="\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032"{_cacf ,_ccac :=_gg .NewCIDSystemInfo (_cdba .Get ("\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f"));if _ccac !=nil {return _cdba ,_gbcd ,_ccac ;};_aeeb :=_b .Sprintf ("\u0025\u0073\u002d\u0025\u0073\u002d\u0055\u0043\u0053\u0032",_cacf .Registry ,_cacf .Ordering );if _gg .IsPredefinedCMap (_aeeb ){_gbcd ._ecefd ,_ccac =_gg .LoadPredefinedCMap (_aeeb );if _ccac !=nil {_abe .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",_aeeb ,_ccac );};};};return _cdba ,_gbcd ,nil ;};
// GetNumComponents returns the number of color components (1 for grayscale).
func (_ecfge *PdfColorDeviceGray )GetNumComponents ()int {return 1};
// GetContentStreams returns the content stream as an array of strings.
func (_fgde *PdfPage )GetContentStreams ()([]string ,error ){_cggcea :=_fgde .GetContentStreamObjs ();var _dfgb []string ;for _ ,_dagfg :=range _cggcea {_gdffb ,_accdb :=_eebga (_dagfg );if _accdb !=nil {return nil ,_accdb ;};_dfgb =append (_dfgb ,_gdffb );};return _dfgb ,nil ;};
// NewPdfActionHide returns a new "hide" action.
func NewPdfActionHide ()*PdfActionHide {_aa :=NewPdfAction ();_afc :=&PdfActionHide {};_afc .PdfAction =_aa ;_aa .SetContext (_afc );return _afc ;};
// Val returns the value of the color.
func (_gaccg *PdfColorCalGray )Val ()float64 {return float64 (*_gaccg )};func (_fcbd *PdfReader )loadAction (_bfe _aef .PdfObject )(*PdfAction ,error ){if _bcbea ,_bcbd :=_aef .GetIndirect (_bfe );_bcbd {_gade ,_faea :=_fcbd .newPdfActionFromIndirectObject (_bcbea );if _faea !=nil {return nil ,_faea ;};return _gade ,nil ;}else if !_aef .IsNullObject (_bfe ){return nil ,_fa .New ("\u0061\u0063\u0074\u0069\u006fn\u0020\u0073\u0068\u006f\u0075\u006c\u0064\u0020\u0070\u006f\u0069\u006e\u0074 \u0074\u006f\u0020\u0061\u006e\u0020\u0069\u006e\u0064\u0069\u0072\u0065\u0063\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074");};return nil ,nil ;};func _ceaf (_fdbe *_aef .PdfObjectDictionary ,_fdbcb *fontCommon ,_bfad _be .TextEncoder )(*pdfFontSimple ,error ){_cfag :=_ccdb (_fdbcb );_cfag ._gbee =_bfad ;if _bfad ==nil {_edgf :=_fdbe .Get ("\u0046i\u0072\u0073\u0074\u0043\u0068\u0061r");if _edgf ==nil {_edgf =_aef .MakeInteger (0);};_cfag .FirstChar =_edgf ;_dbce ,_ffcaf :=_aef .GetIntVal (_edgf );if !_ffcaf {_abe .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",_edgf );return nil ,_aef .ErrTypeError ;};_gdea :=_be .CharCode (_dbce );_edgf =_fdbe .Get ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072");if _edgf ==nil {_edgf =_aef .MakeInteger (255);};_cfag .LastChar =_edgf ;_dbce ,_ffcaf =_aef .GetIntVal (_edgf );if !_ffcaf {_abe .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",_edgf );return nil ,_aef .ErrTypeError ;};_caeff :=_be .CharCode (_dbce );_cfag ._bacac =make (map[_be .CharCode ]float64 );_edgf =_fdbe .Get ("\u0057\u0069\u0064\u0074\u0068\u0073");if _edgf !=nil {_cfag .Widths =_edgf ;_bgaa ,_dbdeg :=_aef .GetArray (_edgf );if !_dbdeg {_abe .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",_edgf );return nil ,_aef .ErrTypeError ;};_cdcec ,_gccbf :=_bgaa .ToFloat64Array ();if _gccbf !=nil {_abe .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 ,_gccbf ;};if len (_cdcec )!=int (_caeff -_gdea +1){_abe .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",_caeff -_gdea +1,len (_cdcec ));return nil ,_aef .ErrRangeError ;};for _eefcb ,_fecg :=range _cdcec {_cfag ._bacac [_gdea +_be .CharCode (_eefcb )]=_fecg ;};};};_cfag .Encoding =_aef .TraceToDirectObject (_fdbe .Get ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067"));return _cfag ,nil ;};
// ToPdfObject implements interface PdfModel.
func (_ccef *PdfAnnotationSquiggly )ToPdfObject ()_aef .PdfObject {_ccef .PdfAnnotation .ToPdfObject ();_gaacf :=_ccef ._edc ;_efef :=_gaacf .PdfObject .(*_aef .PdfObjectDictionary );_ccef .PdfAnnotationMarkup .appendToPdfDictionary (_efef );_efef .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_aef .MakeName ("\u0053\u0071\u0075\u0069\u0067\u0067\u006c\u0079"));_efef .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_ccef .QuadPoints );return _gaacf ;};
// MergePageWith appends page content to source Pdf file page content.
func (_eggdd *PdfAppender )MergePageWith (pageNum int ,page *PdfPage )error {_agc :=pageNum -1;var _cdbb *PdfPage ;for _babbg ,_fef :=range _eggdd ._ebegf {if _babbg ==_agc {_cdbb =_fef ;};};if _cdbb ==nil {return _b .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 _cdbb ._gfbbf !=nil &&_cdbb ._gfbbf .GetParser ()==_eggdd ._fdd ._gdbbd {_cdbb =_cdbb .Duplicate ();_eggdd ._ebegf [_agc ]=_cdbb ;};page =page .Duplicate ();_bedgc (page );_feb :=_afga (_cdbb );_aafb :=_afga (page );_gee :=make (map[_aef .PdfObjectName ]_aef .PdfObjectName );for _bbcb :=range _aafb {if _ ,_fdaa :=_feb [_bbcb ];_fdaa {for _caag :=1;true ;_caag ++{_aaa :=_aef .PdfObjectName (string (_bbcb )+_f .Itoa (_caag ));if _ ,_gcdf :=_feb [_aaa ];!_gcdf {_gee [_bbcb ]=_aaa ;break ;};};};};_cbed ,_cbgc :=page .GetContentStreams ();if _cbgc !=nil {return _cbgc ;};_bfa ,_cbgc :=_cdbb .GetContentStreams ();if _cbgc !=nil {return _cbgc ;};for _dege ,_abcd :=range _cbed {for _eccg ,_gacc :=range _gee {_abcd =_dg .Replace (_abcd ,"\u002f"+string (_eccg ),"\u002f"+string (_gacc ),-1);};_cbed [_dege ]=_abcd ;};_bfa =append (_bfa ,_cbed ...);if _fdcf :=_cdbb .SetContentStreams (_bfa ,_aef .NewFlateEncoder ());_fdcf !=nil {return _fdcf ;};_cdbb ._bcgfd =append (_cdbb ._bcgfd ,page ._bcgfd ...);if _cdbb .Resources ==nil {_cdbb .Resources =NewPdfPageResources ();};if page .Resources !=nil {_cdbb .Resources .Font =_eggdd .mergeResources (_cdbb .Resources .Font ,page .Resources .Font ,_gee );_cdbb .Resources .XObject =_eggdd .mergeResources (_cdbb .Resources .XObject ,page .Resources .XObject ,_gee );_cdbb .Resources .Properties =_eggdd .mergeResources (_cdbb .Resources .Properties ,page .Resources .Properties ,_gee );if _cdbb .Resources .ProcSet ==nil {_cdbb .Resources .ProcSet =page .Resources .ProcSet ;};_cdbb .Resources .Shading =_eggdd .mergeResources (_cdbb .Resources .Shading ,page .Resources .Shading ,_gee );_cdbb .Resources .ExtGState =_eggdd .mergeResources (_cdbb .Resources .ExtGState ,page .Resources .ExtGState ,_gee );};_cfea ,_cbgc :=_cdbb .GetMediaBox ();if _cbgc !=nil {return _cbgc ;};_afbe ,_cbgc :=page .GetMediaBox ();if _cbgc !=nil {return _cbgc ;};var _cdca bool ;if _cfea .Llx > _afbe .Llx {_cfea .Llx =_afbe .Llx ;_cdca =true ;};if _cfea .Lly > _afbe .Lly {_cfea .Lly =_afbe .Lly ;_cdca =true ;};if _cfea .Urx < _afbe .Urx {_cfea .Urx =_afbe .Urx ;_cdca =true ;};if _cfea .Ury < _afbe .Ury {_cfea .Ury =_afbe .Ury ;_cdca =true ;};if _cdca {_cdbb .MediaBox =_cfea ;};return nil ;};
// PdfInfo holds document information that will overwrite
// document information global variables defined above.
type PdfInfo struct{Title *_aef .PdfObjectString ;Author *_aef .PdfObjectString ;Subject *_aef .PdfObjectString ;Keywords *_aef .PdfObjectString ;Creator *_aef .PdfObjectString ;Producer *_aef .PdfObjectString ;CreationDate *PdfDate ;ModifiedDate *PdfDate ;Trapped *_aef .PdfObjectName ;_ebcd *_aef .PdfObjectDictionary ;};
// GetNumComponents returns the number of color components (4 for CMYK32).
func (_egad *PdfColorDeviceCMYK )GetNumComponents ()int {return 4};func _bedgc (_ggce *PdfPage ){_egecf :=_cga .GetLicenseKey ();if _egecf !=nil &&_egecf .IsLicensed (){return ;};_efdgc :=_aef .PdfObjectName ("\u0055\u0046\u0031");if !_ggce .Resources .HasFontByName (_efdgc ){_ggce .Resources .SetFontByName (_efdgc ,DefaultFont ().ToPdfObject ());};var _cegce []string ;_cegce =append (_cegce ,"\u0071");_cegce =append (_cegce ,"\u0042\u0054");_cegce =append (_cegce ,_b .Sprintf ("\u002f%\u0073\u0020\u0031\u0034\u0020\u0054f",_efdgc .String ()));_cegce =append (_cegce ,"\u0031\u0020\u0030\u0020\u0030\u0020\u0072\u0067");_cegce =append (_cegce ,"\u0031\u0030\u0020\u0031\u0030\u0020\u0054\u0064");_fcgaa :="\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";_cegce =append (_cegce ,_b .Sprintf ("\u0028%\u0073\u0029\u0020\u0054\u006a",_fcgaa ));_cegce =append (_cegce ,"\u0045\u0054");_cegce =append (_cegce ,"\u0051");_cgfgf :=_dg .Join (_cegce ,"\u000a");_ggce .AddContentStreamByString (_cgfgf );_ggce .ToPdfObject ();};
// ToImage converts an object to an Image which can be transformed or saved out.
// The image data is decoded and the Image returned.
func (_ggebee *XObjectImage )ToImage ()(*Image ,error ){_bfagc :=&Image {};if _ggebee .Height ==nil {return nil ,_fa .New ("\u0068e\u0069\u0067\u0068\u0074\u0020\u0061\u0074\u0074\u0072\u0069\u0062u\u0074\u0065\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};_bfagc .Height =*_ggebee .Height ;if _ggebee .Width ==nil {return nil ,_fa .New ("\u0077\u0069\u0064th\u0020\u0061\u0074\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};_bfagc .Width =*_ggebee .Width ;if _ggebee .BitsPerComponent ==nil {return nil ,_fa .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");};_bfagc .BitsPerComponent =*_ggebee .BitsPerComponent ;_bfagc .ColorComponents =_ggebee .ColorSpace .GetNumComponents ();_ggebee ._dcafe .Set ("\u0043o\u006co\u0072\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074\u0073",_aef .MakeInteger (int64 (_bfagc .ColorComponents )));_gedef ,_dbbcf :=_aef .DecodeStream (_ggebee ._dcafe );if _dbbcf !=nil {return nil ,_dbbcf ;};_bfagc .Data =_gedef ;if _ggebee .Decode !=nil {_befbg ,_gffcc :=_ggebee .Decode .(*_aef .PdfObjectArray );if !_gffcc {_abe .Log .Debug ("I\u006e\u0076\u0061\u006cid\u0020D\u0065\u0063\u006f\u0064\u0065 \u006f\u0062\u006a\u0065\u0063\u0074");return nil ,_fa .New ("\u0069\u006e\u0076a\u006c\u0069\u0064\u0020\u0074\u0079\u0070\u0065");};_bfafg ,_babdf :=_befbg .ToFloat64Array ();if _babdf !=nil {return nil ,_babdf ;};_bfagc ._fgafa =_bfafg ;};return _bfagc ,nil ;};
// ColorFromFloats returns a new PdfColor based on input color components.
func (_dfggee *PdfColorspaceDeviceN )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=_dfggee .GetNumComponents (){return nil ,_fa .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_bfcf ,_abacc :=_dfggee .TintTransform .Evaluate (vals );if _abacc !=nil {return nil ,_abacc ;};_bcac ,_abacc :=_dfggee .AlternateSpace .ColorFromFloats (_bfcf );if _abacc !=nil {return nil ,_abacc ;};return _bcac ,nil ;};
// PdfReader represents a PDF file reader. It is a frontend to the lower level parsing mechanism and provides
// a higher level access to work with PDF structure and information, such as the page structure etc.
type PdfReader struct{_gdbbd *_aef .PdfParser ;_eebff _aef .PdfObject ;_cbfdd *_aef .PdfIndirectObject ;_fgbfc *_aef .PdfObjectDictionary ;_dbdgb []*_aef .PdfIndirectObject ;PageList []*PdfPage ;_bbccc int ;_acae *_aef .PdfObjectDictionary ;_gaad *PdfOutlineTreeNode ;AcroForm *PdfAcroForm ;DSS *DSS ;_fggbd *modelManager ;_afae bool ;_cadgb map[_aef .PdfObject ]struct{};_cced _gfc .ReadSeeker ;};
// PdfActionImportData represents a importData action.
type PdfActionImportData struct{*PdfAction ;F *PdfFilespec ;};
// AddFont adds a font dictionary to the Font resources.
func (_gaeeeb *PdfPage )AddFont (name _aef .PdfObjectName ,font _aef .PdfObject )error {if _gaeeeb .Resources ==nil {_gaeeeb .Resources =NewPdfPageResources ();};if _gaeeeb .Resources .Font ==nil {_gaeeeb .Resources .Font =_aef .MakeDict ();};_gdfceg ,_cdea :=_aef .TraceToDirectObject (_gaeeeb .Resources .Font ).(*_aef .PdfObjectDictionary );if !_cdea {_abe .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",_aef .TraceToDirectObject (_gaeeeb .Resources .Font ));return _fa .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_gdfceg .Set (name ,font );return nil ;};
// A returns the value of the A component of the color.
func (_afcb *PdfColorLab )A ()float64 {return _afcb [1]};
// 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 ;};
// NewLTV returns a new LTV client.
func NewLTV (appender *PdfAppender )(*LTV ,error ){_fccca :=appender .Reader .DSS ;if _fccca ==nil {_fccca =NewDSS ();};if _gaabd :=_fccca .generateHashMaps ();_gaabd !=nil {return nil ,_gaabd ;};return &LTV {CertClient :_add .NewCertClient (),OCSPClient :_add .NewOCSPClient (),CRLClient :_add .NewCRLClient (),SkipExisting :true ,_bdabf :appender ,_cbcf :_fccca },nil ;};
// AddExtGState add External Graphics State (GState). The gsDict can be specified
// either directly as a dictionary or an indirect object containing a dictionary.
func (_eged *PdfPageResources )AddExtGState (gsName _aef .PdfObjectName ,gsDict _aef .PdfObject )error {if _eged .ExtGState ==nil {_eged .ExtGState =_aef .MakeDict ();};_aecgd :=_eged .ExtGState ;_fbag ,_bgac :=_aef .TraceToDirectObject (_aecgd ).(*_aef .PdfObjectDictionary );if !_bgac {_abe .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",_aecgd ,_aef .TraceToDirectObject (_aecgd ));return _aef .ErrTypeError ;};_fbag .Set (gsName ,gsDict );return nil ;};
// GetContainingPdfObject returns the container of the pattern object (indirect object).
func (_bbdg *PdfPattern )GetContainingPdfObject ()_aef .PdfObject {return _bbdg ._fgbcde };
// ToPdfOutlineItem returns a low level PdfOutlineItem object,
// based on the current instance.
func (_addcd *OutlineItem )ToPdfOutlineItem ()(*PdfOutlineItem ,int64 ){_ecfdf :=NewPdfOutlineItem ();_ecfdf .Title =_aef .MakeEncodedString (_addcd .Title ,true );_ecfdf .Dest =_addcd .Dest .ToPdfObject ();var _fagef []*PdfOutlineItem ;var _aaddce int64 ;var _ggbaf *PdfOutlineItem ;for _ ,_cdbcb :=range _addcd .Entries {_ggef ,_dgee :=_cdbcb .ToPdfOutlineItem ();_ggef .Parent =&_ecfdf .PdfOutlineTreeNode ;if _ggbaf !=nil {_ggbaf .Next =&_ggef .PdfOutlineTreeNode ;_ggef .Prev =&_ggbaf .PdfOutlineTreeNode ;};_fagef =append (_fagef ,_ggef );_aaddce +=_dgee ;_ggbaf =_ggef ;};_dffbd :=len (_fagef );_aaddce +=int64 (_dffbd );if _dffbd > 0{_ecfdf .First =&_fagef [0].PdfOutlineTreeNode ;_ecfdf .Last =&_fagef [_dffbd -1].PdfOutlineTreeNode ;_ecfdf .Count =&_aaddce ;};return _ecfdf ,_aaddce ;};
// ToPdfObject implements interface PdfModel.
func (_bcbe *PdfActionSetOCGState )ToPdfObject ()_aef .PdfObject {_bcbe .PdfAction .ToPdfObject ();_faa :=_bcbe ._gc ;_gadb :=_faa .PdfObject .(*_aef .PdfObjectDictionary );_gadb .SetIfNotNil ("\u0053",_aef .MakeName (string (ActionTypeSetOCGState )));_gadb .SetIfNotNil ("\u0053\u0074\u0061t\u0065",_bcbe .State );_gadb .SetIfNotNil ("\u0050\u0072\u0065\u0073\u0065\u0072\u0076\u0065\u0052\u0042",_bcbe .PreserveRB );return _faa ;};
// NewPdfAnnotationPolygon returns a new polygon annotation.
func NewPdfAnnotationPolygon ()*PdfAnnotationPolygon {_edf :=NewPdfAnnotation ();_fbef :=&PdfAnnotationPolygon {};_fbef .PdfAnnotation =_edf ;_fbef .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_edf .SetContext (_fbef );return _fbef ;};
// B returns the value of the B component of the color.
func (_gfbe *PdfColorLab )B ()float64 {return _gfbe [2]};
// GetPatternByName gets the pattern specified by keyName. Returns nil if not existing.
// The bool flag indicated whether it was found or not.
func (_efbeb *PdfPageResources )GetPatternByName (keyName _aef .PdfObjectName )(*PdfPattern ,bool ){if _efbeb .Pattern ==nil {return nil ,false ;};_fdga ,_befbf :=_aef .TraceToDirectObject (_efbeb .Pattern ).(*_aef .PdfObjectDictionary );if !_befbf {_abe .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",_efbeb .Pattern );return nil ,false ;};if _cdbda :=_fdga .Get (keyName );_cdbda !=nil {_dddaa ,_cgedg :=_baaba (_cdbda );if _cgedg !=nil {_abe .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",_cgedg );return nil ,false ;};return _dddaa ,true ;};return nil ,false ;};
// FieldValueProvider provides field values from a data source such as FDF, JSON or any other.
type FieldValueProvider interface{FieldValues ()(map[string ]_aef .PdfObject ,error );};
// PdfAnnotationWatermark represents Watermark annotations.
// (Section 12.5.6.22).
type PdfAnnotationWatermark struct{*PdfAnnotation ;FixedPrint _aef .PdfObject ;};
// 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 (_ebfb *pdfFontSimple )updateStandard14Font (){_bbbee ,_bdde :=_ebfb .Encoder ().(_be .SimpleEncoder );if !_bdde {_abe .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",_ebfb .Encoder (),_ebfb );return ;};_abgba :=_bbbee .Charcodes ();_ebfb ._bacac =make (map[_be .CharCode ]float64 ,len (_abgba ));for _ ,_eceef :=range _abgba {_gggaa ,_ :=_bbbee .CharcodeToRune (_eceef );_ebfb ._bacac [_eceef ]=_ebfb ._gcbd [_gggaa ].Wx ;};};
// PdfOutline represents a PDF outline dictionary (Table 152 - p. 376).
type PdfOutline struct{PdfOutlineTreeNode ;Parent *PdfOutlineTreeNode ;Count *int64 ;_bcbc *_aef .PdfIndirectObject ;};func (_acc *PdfReader )newPdfAnnotationProjectionFromDict (_bdcb *_aef .PdfObjectDictionary )(*PdfAnnotationProjection ,error ){_egfbb :=&PdfAnnotationProjection {};_cgb ,_efa :=_acc .newPdfAnnotationMarkupFromDict (_bdcb );if _efa !=nil {return nil ,_efa ;};_egfbb .PdfAnnotationMarkup =_cgb ;return _egfbb ,nil ;};
// GetRuneMetrics returns the character metrics for the rune.
// A bool flag is returned to indicate whether or not the entry was found.
func (_fdgec pdfFontSimple )GetRuneMetrics (r rune )(_ecf .CharMetrics ,bool ){if _fdgec ._gcbd !=nil {_baagg ,_caab :=_fdgec ._gcbd [r ];if _caab {return _baagg ,true ;};};_bbcc :=_fdgec .Encoder ();if _bbcc ==nil {_abe .Log .Debug ("\u004e\u006f\u0020en\u0063\u006f\u0064\u0065\u0072\u0020\u0066\u006f\u0072\u0020\u0066\u006f\u006e\u0074\u0073\u003d\u0025\u0073",_fdgec );return _ecf .CharMetrics {},false ;};_cabgg ,_efagg :=_bbcc .RuneToCharcode (r );if !_efagg {if r !=' '{_abe .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 ,_fdgec );};return _ecf .CharMetrics {},false ;};_baaa ,_fcabdg :=_fdgec .GetCharMetrics (_cabgg );return _baaa ,_fcabdg ;};
// ToPdfObject implements interface PdfModel.
func (_dab *PdfActionLaunch )ToPdfObject ()_aef .PdfObject {_dab .PdfAction .ToPdfObject ();_dc :=_dab ._gc ;_ce :=_dc .PdfObject .(*_aef .PdfObjectDictionary );_ce .SetIfNotNil ("\u0053",_aef .MakeName (string (ActionTypeLaunch )));if _dab .F !=nil {_ce .Set ("\u0046",_dab .F .ToPdfObject ());};_ce .SetIfNotNil ("\u0057\u0069\u006e",_dab .Win );_ce .SetIfNotNil ("\u004d\u0061\u0063",_dab .Mac );_ce .SetIfNotNil ("\u0055\u006e\u0069\u0078",_dab .Unix );_ce .SetIfNotNil ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw",_dab .NewWindow );return _dc ;};
// GetNumComponents returns the number of color components of the underlying
// colorspace device.
func (_dbed *PdfColorspaceSpecialPattern )GetNumComponents ()int {return _dbed .UnderlyingCS .GetNumComponents ();};
// WriteString outputs the object as it is to be written to file.
func (_fdad *pdfSignDictionary )WriteString ()string {_fdad ._dfdbe =0;_fdad ._ffff =0;_fdad ._afebc =0;_fdad ._aceeb =0;_aadga :=_cg .NewBuffer (nil );_aadga .WriteString ("\u003c\u003c");for _ ,_dbaac :=range _fdad .Keys (){_ccege :=_fdad .Get (_dbaac );switch _dbaac {case "\u0042y\u0074\u0065\u0052\u0061\u006e\u0067e":_aadga .WriteString (_dbaac .WriteString ());_aadga .WriteString ("\u0020");_fdad ._afebc =_aadga .Len ();_aadga .WriteString (_ccege .WriteString ());_aadga .WriteString ("\u0020");_fdad ._aceeb =_aadga .Len ()-1;case "\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073":_aadga .WriteString (_dbaac .WriteString ());_aadga .WriteString ("\u0020");_fdad ._dfdbe =_aadga .Len ();_aadga .WriteString (_ccege .WriteString ());_aadga .WriteString ("\u0020");_fdad ._ffff =_aadga .Len ()-1;default:_aadga .WriteString (_dbaac .WriteString ());_aadga .WriteString ("\u0020");_aadga .WriteString (_ccege .WriteString ());};};_aadga .WriteString ("\u003e\u003e");return _aadga .String ();};
// ToPdfObject returns the PDF representation of the shading dictionary.
func (_afbda *PdfShadingType5 )ToPdfObject ()_aef .PdfObject {_afbda .PdfShading .ToPdfObject ();_fedcb ,_bdae :=_afbda .getShadingDict ();if _bdae !=nil {_abe .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 _afbda .BitsPerCoordinate !=nil {_fedcb .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065",_afbda .BitsPerCoordinate );};if _afbda .BitsPerComponent !=nil {_fedcb .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_afbda .BitsPerComponent );};if _afbda .VerticesPerRow !=nil {_fedcb .Set ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073\u0050e\u0072\u0052\u006f\u0077",_afbda .VerticesPerRow );};if _afbda .Decode !=nil {_fedcb .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_afbda .Decode );};if _afbda .Function !=nil {if len (_afbda .Function )==1{_fedcb .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_afbda .Function [0].ToPdfObject ());}else {_gdag :=_aef .MakeArray ();for _ ,_adgeb :=range _afbda .Function {_gdag .Append (_adgeb .ToPdfObject ());};_fedcb .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_gdag );};};return _afbda ._bbga ;};
// NewPdfAnnotationSound returns a new sound annotation.
func NewPdfAnnotationSound ()*PdfAnnotationSound {_cba :=NewPdfAnnotation ();_eabc :=&PdfAnnotationSound {};_eabc .PdfAnnotation =_cba ;_eabc .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_cba .SetContext (_eabc );return _eabc ;};
// 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 (_cbfe *PdfColorspaceCalGray )ColorFromPdfObjects (objects []_aef .PdfObject )(PdfColor ,error ){if len (objects )!=1{return nil ,_fa .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_befa ,_bded :=_aef .GetNumbersAsFloat (objects );if _bded !=nil {return nil ,_bded ;};return _cbfe .ColorFromFloats (_befa );};
// ToPdfObject implements interface PdfModel.
func (_bdca *PdfActionTrans )ToPdfObject ()_aef .PdfObject {_bdca .PdfAction .ToPdfObject ();_ed :=_bdca ._gc ;_dee :=_ed .PdfObject .(*_aef .PdfObjectDictionary );_dee .SetIfNotNil ("\u0053",_aef .MakeName (string (ActionTypeTrans )));_dee .SetIfNotNil ("\u0054\u0072\u0061n\u0073",_bdca .Trans );return _ed ;};
// NewPdfColorspaceCalRGB returns a new CalRGB colorspace object.
func NewPdfColorspaceCalRGB ()*PdfColorspaceCalRGB {_abgg :=&PdfColorspaceCalRGB {};_abgg .BlackPoint =[]float64 {0.0,0.0,0.0};_abgg .Gamma =[]float64 {1.0,1.0,1.0};_abgg .Matrix =[]float64 {1,0,0,0,1,0,0,0,1};return _abgg ;};
// SetDate sets the `M` field of the signature.
func (_ddaefg *PdfSignature )SetDate (date _a .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";};_ddaefg .M =_aef .MakeString (date .Format (format ));};
// 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 (_acgd _gfc .Reader )(*Image ,error );
// NewImageFromGoImage loads a NRGBA32 unidoc Image from a standard Go image structure.
NewImageFromGoImage (_fggaa _ae .Image )(*Image ,error );
// NewGrayImageFromGoImage loads a grayscale unidoc Image from a standard Go image structure.
NewGrayImageFromGoImage (_cgbfa _ae .Image )(*Image ,error );
// Compress an image.
Compress (_agcb *Image ,_bfceg int64 )(*Image ,error );};
// ColorFromFloats returns a new PdfColor based on the input slice of color
// components. The slice should contain a single element.
func (_bgage *PdfColorspaceSpecialSeparation )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=1{return nil ,_fa .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_ddgdga :=vals [0];_fde :=[]float64 {_ddgdga };_ggecg ,_fcca :=_bgage .TintTransform .Evaluate (_fde );if _fcca !=nil {_abe .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",_fcca );_abe .Log .Trace ("\u0054\u0069\u006e\u0074 t\u0072\u0061\u006e\u0073\u0066\u006f\u0072\u006d\u003a\u0020\u0025\u002b\u0076",_bgage .TintTransform );return nil ,_fcca ;};_abe .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",_ggecg ,_bgage .AlternateSpace );_acfb ,_fcca :=_bgage .AlternateSpace .ColorFromFloats (_ggecg );if _fcca !=nil {_abe .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",_fcca );return nil ,_fcca ;};return _acfb ,nil ;};func (_cecc *pdfCIDFontType0 )getFontDescriptor ()*PdfFontDescriptor {return _cecc ._bgfd };
// PdfActionType represents an action type in PDF (section 12.6.4 p. 417).
type PdfActionType string ;
// HasXObjectByName checks if an XObject with a specified keyName is defined.
func (_bfgcf *PdfPageResources )HasXObjectByName (keyName _aef .PdfObjectName )bool {_dbgbe ,_ :=_bfgcf .GetXObjectByName (keyName );return _dbgbe !=nil ;};func _daed (_fccaf []byte )([]byte ,error ){_bbfac :=_ec .New ();if _ ,_fegdac :=_gfc .Copy (_bbfac ,_cg .NewReader (_fccaf ));_fegdac !=nil {return nil ,_fegdac ;};return _bbfac .Sum (nil ),nil ;};func _gfab (_agbgd *_aef .PdfObjectDictionary )(*PdfFieldButton ,error ){_cbef :=&PdfFieldButton {};_cbef .Opt ,_ =_aef .GetArray (_agbgd .Get ("\u004f\u0070\u0074"));return _cbef ,nil ;};
// Encrypt encrypts the output file with a specified user/owner password.
func (_eegbff *PdfWriter )Encrypt (userPass ,ownerPass []byte ,options *EncryptOptions )error {_egdba :=RC4_128bit ;if options !=nil {_egdba =options .Algorithm ;};_dbgea :=_db .PermOwner ;if options !=nil {_dbgea =options .Permissions ;};var _bbada _cca .Filter ;switch _egdba {case RC4_128bit :_bbada =_cca .NewFilterV2 (16);case AES_128bit :_bbada =_cca .NewFilterAESV2 ();case AES_256bit :_bbada =_cca .NewFilterAESV3 ();default:return _b .Errorf ("\u0075n\u0073\u0075\u0070\u0070o\u0072\u0074\u0065\u0064\u0020a\u006cg\u006fr\u0069\u0074\u0068\u006d\u003a\u0020\u0025v",options .Algorithm );};_daebe ,_abacb ,_baada :=_aef .PdfCryptNewEncrypt (_bbada ,userPass ,ownerPass ,_dbgea );if _baada !=nil {return _baada ;};_eegbff ._ecfag =_daebe ;if _abacb .Major !=0{_eegbff .SetVersion (_abacb .Major ,_abacb .Minor );};_eegbff ._ebeb =_abacb .Encrypt ;_eegbff ._acddd =_aef .MakeArray (_aef .MakeHexString (_abacb .ID0 ),_aef .MakeHexString (_abacb .ID1 ));_degeg :=_aef .MakeIndirectObject (_abacb .Encrypt );_eegbff ._eebbg =_degeg ;_eegbff .addObject (_degeg );return nil ;};type pdfFontSimple struct{fontCommon ;_bcabb *_aef .PdfIndirectObject ;_bacac map[_be .CharCode ]float64 ;_bcbge _be .TextEncoder ;_gbee _be .TextEncoder ;_fggf *PdfFontDescriptor ;
// Encoding is subject to limitations that are described in 9.6.6, "Character Encoding".
// BaseFont is derived differently.
FirstChar _aef .PdfObject ;LastChar _aef .PdfObject ;Widths _aef .PdfObject ;Encoding _aef .PdfObject ;_gcbd map[rune ]_ecf .CharMetrics ;};
// 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 (_dgeb *PdfFont )GetRuneMetrics (r rune )(CharMetrics ,bool ){_fdfa :=_dgeb .actualFont ();if _fdfa ==nil {_abe .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",_dgeb ._dccga );return _ecf .CharMetrics {},false ;};if _facf ,_ddga :=_fdfa .GetRuneMetrics (r );_ddga {return _facf ,true ;};if _dcee ,_eecfd :=_dgeb .GetFontDescriptor ();_eecfd ==nil &&_dcee !=nil {return _ecf .CharMetrics {Wx :_dcee ._gbedb },true ;};_abe .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",_dgeb );return _ecf .CharMetrics {},false ;};
// 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 (_afeaac *PdfPageResources )GetFontByName (keyName _aef .PdfObjectName )(_aef .PdfObject ,bool ){if _afeaac .Font ==nil {return nil ,false ;};_gegcdb ,_ffbcf :=_aef .TraceToDirectObject (_afeaac .Font ).(*_aef .PdfObjectDictionary );if !_ffbcf {_abe .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",_aef .TraceToDirectObject (_afeaac .Font ));return nil ,false ;};if _baafe :=_gegcdb .Get (keyName );_baafe !=nil {return _baafe ,true ;};return nil ,false ;};
// SetName sets the `Name` field of the signature.
func (_bcbeg *PdfSignature )SetName (name string ){_bcbeg .Name =_aef .MakeString (name )};
// NewPdfAnnotation3D returns a new 3d annotation.
func NewPdfAnnotation3D ()*PdfAnnotation3D {_gdfg :=NewPdfAnnotation ();_fbdc :=&PdfAnnotation3D {};_fbdc .PdfAnnotation =_gdfg ;_gdfg .SetContext (_fbdc );return _fbdc ;};
// String returns the name of the colorspace (DeviceN).
func (_dcff *PdfColorspaceDeviceN )String ()string {return "\u0044e\u0076\u0069\u0063\u0065\u004e"};func _cdcdg (_gfbb []byte )bool {if len (_gfbb )< 4{return true ;};for _cdgd :=range _gfbb [:4]{_abadd :=rune (_cdgd );if !_cc .Is (_cc .ASCII_Hex_Digit ,_abadd )&&!_cc .IsSpace (_abadd ){return true ;};};return false ;};func (_cggc *PdfReader )newPdfActionMovieFromDict (_adce *_aef .PdfObjectDictionary )(*PdfActionMovie ,error ){return &PdfActionMovie {Annotation :_adce .Get ("\u0041\u006e\u006e\u006f\u0074\u0061\u0074\u0069\u006f\u006e"),T :_adce .Get ("\u0054"),Operation :_adce .Get ("\u004fp\u0065\u0072\u0061\u0074\u0069\u006fn")},nil ;};
// SubsetRegistered subsets the font to only the glyphs that have been registered by the encoder.
// NOTE: This only works on fonts that support subsetting. For unsupported fonts this is a no-op, although a debug
// message is emitted. Currently supported fonts are embedded Truetype CID fonts (type 0).
// NOTE: Make sure to call this soon before writing (once all needed runes have been registered).
// If using package creator, use its EnableFontSubsetting method instead.
func (_bbae *PdfFont )SubsetRegistered ()error {switch _egac :=_bbae ._dccga .(type ){case *pdfFontType0 :_cdbf :=_egac .subsetRegistered ();if _cdbf !=nil {_abe .Log .Debug ("\u0053\u0075b\u0073\u0065\u0074 \u0065\u0072\u0072\u006f\u0072\u003a\u0020\u0025\u0076",_cdbf );return _cdbf ;};if _egac ._abbb !=nil {if _egac ._eeag !=nil {_egac ._eeag .ToPdfObject ();};_egac .ToPdfObject ();};default:_abe .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",_egac );};return nil ;};func (_fggc *PdfAppender )addNewObject (_fcbdd _aef .PdfObject ){if _ ,_ffed :=_fggc ._abge [_fcbdd ];!_ffed {_fggc ._aeaaa =append (_fggc ._aeaaa ,_fcbdd );_fggc ._abge [_fcbdd ]=struct{}{};};};
// PdfVersion returns version of the PDF file.
func (_fbabc *PdfReader )PdfVersion ()_aef .Version {return _fbabc ._gdbbd .PdfVersion ()};
// Add appends a top level outline item to the outline.
func (_dgfaf *Outline )Add (item *OutlineItem ){_dgfaf .Entries =append (_dgfaf .Entries ,item )};
// NewPdfDateFromTime will create a PdfDate based on the given time
func NewPdfDateFromTime (timeObj _a .Time )(PdfDate ,error ){_eeggcb :=timeObj .Format ("\u002d\u0030\u0037\u003a\u0030\u0030");_bbaf ,_ :=_f .ParseInt (_eeggcb [1:3],10,32);_bcaa ,_ :=_f .ParseInt (_eeggcb [4:6],10,32);return PdfDate {_eacag :int64 (timeObj .Year ()),_bfeaf :int64 (timeObj .Month ()),_cecab :int64 (timeObj .Day ()),_begfg :int64 (timeObj .Hour ()),_gdeaef :int64 (timeObj .Minute ()),_ebge :int64 (timeObj .Second ()),_bggc :_eeggcb [0],_bbccf :_bbaf ,_debfg :_bcaa },nil ;};func _agfdf (_dbdc *_aef .PdfObjectDictionary )(*PdfFieldChoice ,error ){_aaab :=&PdfFieldChoice {};_aaab .Opt ,_ =_aef .GetArray (_dbdc .Get ("\u004f\u0070\u0074"));_aaab .TI ,_ =_aef .GetInt (_dbdc .Get ("\u0054\u0049"));_aaab .I ,_ =_aef .GetArray (_dbdc .Get ("\u0049"));return _aaab ,nil ;};
// ToPdfObject returns the PDF representation of the function.
func (_gcff *PdfFunctionType4 )ToPdfObject ()_aef .PdfObject {_cfeegb :=_gcff ._gegfd ;if _cfeegb ==nil {_gcff ._gegfd =&_aef .PdfObjectStream {};_cfeegb =_gcff ._gegfd ;};_ebgaed :=_aef .MakeDict ();_ebgaed .Set ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065",_aef .MakeInteger (4));_cgcfe :=&_aef .PdfObjectArray {};for _ ,_febcc :=range _gcff .Domain {_cgcfe .Append (_aef .MakeFloat (_febcc ));};_ebgaed .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_cgcfe );_aecd :=&_aef .PdfObjectArray {};for _ ,_dbgafg :=range _gcff .Range {_aecd .Append (_aef .MakeFloat (_dbgafg ));};_ebgaed .Set ("\u0052\u0061\u006eg\u0065",_aecd );if _gcff ._ccagg ==nil &&_gcff .Program !=nil {_gcff ._ccagg =[]byte (_gcff .Program .String ());};_ebgaed .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_aef .MakeInteger (int64 (len (_gcff ._ccagg ))));_cfeegb .Stream =_gcff ._ccagg ;_cfeegb .PdfObjectDictionary =_ebgaed ;return _cfeegb ;};func (_dbeaa *pdfFontSimple )getFontDescriptor ()*PdfFontDescriptor {if _adadb :=_dbeaa ._bgfd ;_adadb !=nil {return _adadb ;};return _dbeaa ._fggf ;};
// NewPdfColorspaceSpecialIndexed returns a new Indexed color.
func NewPdfColorspaceSpecialIndexed ()*PdfColorspaceSpecialIndexed {return &PdfColorspaceSpecialIndexed {HiVal :255};};
// SetDocInfo set document info.
// This will overwrite any globally declared document info.
func (_fdgc *PdfWriter )SetDocInfo (info *PdfInfo ){if _fdgc .hasObject (_fdgc ._caefd ){delete (_fdgc ._cafea ,_fdgc ._caefd );delete (_fdgc ._dfdcb ,_fdgc ._caefd );for _cfdag ,_faeca :=range _fdgc ._aage {if _faeca ==_fdgc ._caefd {copy (_fdgc ._aage [_cfdag :],_fdgc ._aage [_cfdag +1:]);_fdgc ._aage [len (_fdgc ._aage )-1]=nil ;_fdgc ._aage =_fdgc ._aage [:len (_fdgc ._aage )-1];break ;};};};_ccfe :=_aef .PdfIndirectObject {};_ccfe .PdfObject =info .ToPdfObject ();_fdgc ._caefd =&_ccfe ;_fdgc .addObject (&_ccfe );};
// ToPdfObject implements interface PdfModel.
func (_gfae *PdfAnnotationRedact )ToPdfObject ()_aef .PdfObject {_gfae .PdfAnnotation .ToPdfObject ();_acef :=_gfae ._edc ;_gcg :=_acef .PdfObject .(*_aef .PdfObjectDictionary );_gfae .PdfAnnotationMarkup .appendToPdfDictionary (_gcg );_gcg .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_aef .MakeName ("\u0052\u0065\u0064\u0061\u0063\u0074"));_gcg .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_gfae .QuadPoints );_gcg .SetIfNotNil ("\u0049\u0043",_gfae .IC );_gcg .SetIfNotNil ("\u0052\u004f",_gfae .RO );_gcg .SetIfNotNil ("O\u0076\u0065\u0072\u006c\u0061\u0079\u0054\u0065\u0078\u0074",_gfae .OverlayText );_gcg .SetIfNotNil ("\u0052\u0065\u0070\u0065\u0061\u0074",_gfae .Repeat );_gcg .SetIfNotNil ("\u0044\u0041",_gfae .DA );_gcg .SetIfNotNil ("\u0051",_gfae .Q );return _acef ;};func (_fdfg *PdfAcroForm )signatureFields ()[]*PdfFieldSignature {var _cdee []*PdfFieldSignature ;for _ ,_gadeg :=range _fdfg .AllFields (){switch _faaf :=_gadeg .GetContext ().(type ){case *PdfFieldSignature :_adcdb :=_faaf ;_cdee =append (_cdee ,_adcdb );};};return _cdee ;};
// PdfFunction interface represents the common methods of a function in PDF.
type PdfFunction interface{Evaluate ([]float64 )([]float64 ,error );ToPdfObject ()_aef .PdfObject ;};
// NewPdfAnnotationLine returns a new line annotation.
func NewPdfAnnotationLine ()*PdfAnnotationLine {_cbca :=NewPdfAnnotation ();_gedb :=&PdfAnnotationLine {};_gedb .PdfAnnotation =_cbca ;_gedb .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_cbca .SetContext (_gedb );return _gedb ;};
// ToPdfObject returns the PDF representation of the colorspace.
func (_eefgb *PdfColorspaceDeviceRGB )ToPdfObject ()_aef .PdfObject {return _aef .MakeName ("\u0044e\u0076\u0069\u0063\u0065\u0052\u0047B");};const (ButtonTypeCheckbox ButtonType =iota ;ButtonTypePush ButtonType =iota ;ButtonTypeRadio ButtonType =iota ;);func (_afecb *PdfWriter )copyObject (_acde _aef .PdfObject ,_dgab map[_aef .PdfObject ]_aef .PdfObject ,_faccd map[_aef .PdfObject ]struct{},_bgcee bool )_aef .PdfObject {_fgefg :=!_afecb ._bcdd &&_faccd !=nil ;if _dfca ,_fegf :=_dgab [_acde ];_fegf {if _fgefg &&!_bgcee {delete (_faccd ,_acde );};return _dfca ;};_ebagf :=_acde ;switch _gbabag :=_acde .(type ){case *_aef .PdfObjectArray :_accba :=_aef .MakeArray ();_ebagf =_accba ;_dgab [_acde ]=_ebagf ;for _ ,_adbb :=range _gbabag .Elements (){_accba .Append (_afecb .copyObject (_adbb ,_dgab ,_faccd ,_bgcee ));};case *_aef .PdfObjectStreams :_deagg :=&_aef .PdfObjectStreams {PdfObjectReference :_gbabag .PdfObjectReference };_ebagf =_deagg ;_dgab [_acde ]=_ebagf ;for _ ,_dddbc :=range _gbabag .Elements (){_deagg .Append (_afecb .copyObject (_dddbc ,_dgab ,_faccd ,_bgcee ));};case *_aef .PdfObjectStream :_bgdeg :=&_aef .PdfObjectStream {Stream :_gbabag .Stream ,PdfObjectReference :_gbabag .PdfObjectReference };_ebagf =_bgdeg ;_dgab [_acde ]=_ebagf ;_bgdeg .PdfObjectDictionary =_afecb .copyObject (_gbabag .PdfObjectDictionary ,_dgab ,_faccd ,_bgcee ).(*_aef .PdfObjectDictionary );case *_aef .PdfObjectDictionary :var _cggfa bool ;if _fgefg &&!_bgcee {if _ecdca ,_ :=_aef .GetNameVal (_gbabag .Get ("\u0054\u0079\u0070\u0065"));_ecdca =="\u0050\u0061\u0067\u0065"{_ ,_gbgde :=_afecb ._cggg [_gbabag ];_bgcee =!_gbgde ;_cggfa =_bgcee ;};};_dbfg :=_aef .MakeDict ();_ebagf =_dbfg ;_dgab [_acde ]=_ebagf ;for _ ,_gbgag :=range _gbabag .Keys (){_dbfg .Set (_gbgag ,_afecb .copyObject (_gbabag .Get (_gbgag ),_dgab ,_faccd ,_bgcee ));};if _cggfa {_ebagf =_aef .MakeNull ();_bgcee =false ;};case *_aef .PdfIndirectObject :_dfbf :=&_aef .PdfIndirectObject {PdfObjectReference :_gbabag .PdfObjectReference };_ebagf =_dfbf ;_dgab [_acde ]=_ebagf ;_dfbf .PdfObject =_afecb .copyObject (_gbabag .PdfObject ,_dgab ,_faccd ,_bgcee );case *_aef .PdfObjectString :_afgce :=*_gbabag ;_ebagf =&_afgce ;_dgab [_acde ]=_ebagf ;case *_aef .PdfObjectName :_fcafb :=*_gbabag ;_ebagf =&_fcafb ;_dgab [_acde ]=_ebagf ;case *_aef .PdfObjectNull :_ebagf =_aef .MakeNull ();_dgab [_acde ]=_ebagf ;case *_aef .PdfObjectInteger :_adede :=*_gbabag ;_ebagf =&_adede ;_dgab [_acde ]=_ebagf ;case *_aef .PdfObjectReference :_bfedf :=*_gbabag ;_ebagf =&_bfedf ;_dgab [_acde ]=_ebagf ;case *_aef .PdfObjectFloat :_gbgec :=*_gbabag ;_ebagf =&_gbgec ;_dgab [_acde ]=_ebagf ;case *_aef .PdfObjectBool :_fdgg :=*_gbabag ;_ebagf =&_fdgg ;_dgab [_acde ]=_ebagf ;case *pdfSignDictionary :_fgfae :=&pdfSignDictionary {PdfObjectDictionary :_aef .MakeDict (),_gegee :_gbabag ._gegee ,_bebca :_gbabag ._bebca };_ebagf =_fgfae ;_dgab [_acde ]=_ebagf ;for _ ,_gbfef :=range _gbabag .Keys (){_fgfae .Set (_gbfef ,_afecb .copyObject (_gbabag .Get (_gbfef ),_dgab ,_faccd ,_bgcee ));};default:_abe .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",_acde );};if _fgefg &&_bgcee {_faccd [_acde ]=struct{}{};};return _ebagf ;};
// BaseFont returns the font's "BaseFont" field.
func (_gbca *PdfFont )BaseFont ()string {return _gbca .baseFields ()._fegdg };
// PdfAnnotationCircle represents Circle annotations.
// (Section 12.5.6.8).
type PdfAnnotationCircle struct{*PdfAnnotation ;*PdfAnnotationMarkup ;BS _aef .PdfObject ;IC _aef .PdfObject ;BE _aef .PdfObject ;RD _aef .PdfObject ;};
// ToPdfObject implements interface PdfModel.
func (_bac *PdfActionThread )ToPdfObject ()_aef .PdfObject {_bac .PdfAction .ToPdfObject ();_gad :=_bac ._gc ;_bdc :=_gad .PdfObject .(*_aef .PdfObjectDictionary );_bdc .SetIfNotNil ("\u0053",_aef .MakeName (string (ActionTypeThread )));if _bac .F !=nil {_bdc .Set ("\u0046",_bac .F .ToPdfObject ());};_bdc .SetIfNotNil ("\u0044",_bac .D );_bdc .SetIfNotNil ("\u0042",_bac .B );return _gad ;};
// ImageToRGB convert 1-component grayscale data to 3-component RGB.
func (_gccg *PdfColorspaceDeviceGray )ImageToRGB (img Image )(Image ,error ){if img .ColorComponents !=1{return img ,_fa .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");};_fgbb ,_gcecc :=_gb .NewImage (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),img .ColorComponents ,img .Data ,img ._afge ,img ._fgafa );if _gcecc !=nil {return img ,_gcecc ;};_ddffc ,_gcecc :=_gb .NRGBAConverter .Convert (_fgbb );if _gcecc !=nil {return img ,_gcecc ;};_fdbg :=_cbgdcg (_ddffc .Base ());_abe .Log .Trace ("\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079\u0020\u002d>\u0020\u0052\u0047\u0042");_abe .Log .Trace ("s\u0061\u006d\u0070\u006c\u0065\u0073\u003a\u0020\u0025\u0076",img .Data );_abe .Log .Trace ("\u0052G\u0042 \u0073\u0061\u006d\u0070\u006c\u0065\u0073\u003a\u0020\u0025\u0076",_fdbg .Data );_abe .Log .Trace ("\u0025\u0076\u0020\u002d\u003e\u0020\u0025\u0076",img ,_fdbg );return _fdbg ,nil ;};func _bfegb (_cbgdc *PdfField ,_egdgd _aef .PdfObject )error {switch _cbgdc .GetContext ().(type ){case *PdfFieldText :switch _aagc :=_egdgd .(type ){case *_aef .PdfObjectName :_acfac :=_aagc ;_abe .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",_acfac .String ());_cbgdc .V =_aef .MakeEncodedString (_aagc .String (),true );case *_aef .PdfObjectString :_cbgdc .V =_aef .MakeEncodedString (_aagc .String (),true );default:_abe .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",_aagc ,_aagc );};case *PdfFieldButton :switch _egdgd .(type ){case *_aef .PdfObjectName :if len (_egdgd .String ())> 0{_cbgdc .V =_egdgd ;_gbgga (_cbgdc ,_egdgd );};case *_aef .PdfObjectString :if len (_egdgd .String ())> 0{_cbgdc .V =_aef .MakeName (_egdgd .String ());_gbgga (_cbgdc ,_cbgdc .V );};default:_abe .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",_cbgdc .PartialName (),_egdgd );_cbgdc .V =_egdgd ;};case *PdfFieldChoice :switch _egdgd .(type ){case *_aef .PdfObjectName :if len (_egdgd .String ())> 0{_cbgdc .V =_aef .MakeString (_egdgd .String ());_gbgga (_cbgdc ,_egdgd );};case *_aef .PdfObjectString :if len (_egdgd .String ())> 0{_cbgdc .V =_egdgd ;_gbgga (_cbgdc ,_aef .MakeName (_egdgd .String ()));};default:_abe .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",_cbgdc .PartialName (),_egdgd );_cbgdc .V =_egdgd ;};case *PdfFieldSignature :_abe .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",_cbgdc .PartialName (),_egdgd );};return nil ;};
// ToPdfObject returns the PDF representation of the colorspace.
func (_edbc *PdfColorspaceDeviceGray )ToPdfObject ()_aef .PdfObject {return _aef .MakeName ("\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079");};
// NewPdfOutlineItem returns an initialized PdfOutlineItem.
func NewPdfOutlineItem ()*PdfOutlineItem {_ffebc :=&PdfOutlineItem {_gdgba :_aef .MakeIndirectObject (_aef .MakeDict ())};_ffebc ._gdgaba =_ffebc ;return _ffebc ;};
// ToPdfObject implements interface PdfModel.
func (_cegf *PdfAnnotationPolyLine )ToPdfObject ()_aef .PdfObject {_cegf .PdfAnnotation .ToPdfObject ();_baee :=_cegf ._edc ;_fdgfb :=_baee .PdfObject .(*_aef .PdfObjectDictionary );_cegf .PdfAnnotationMarkup .appendToPdfDictionary (_fdgfb );_fdgfb .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_aef .MakeName ("\u0050\u006f\u006c\u0079\u004c\u0069\u006e\u0065"));_fdgfb .SetIfNotNil ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073",_cegf .Vertices );_fdgfb .SetIfNotNil ("\u004c\u0045",_cegf .LE );_fdgfb .SetIfNotNil ("\u0042\u0053",_cegf .BS );_fdgfb .SetIfNotNil ("\u0049\u0043",_cegf .IC );_fdgfb .SetIfNotNil ("\u0042\u0045",_cegf .BE );_fdgfb .SetIfNotNil ("\u0049\u0054",_cegf .IT );_fdgfb .SetIfNotNil ("\u004de\u0061\u0073\u0075\u0072\u0065",_cegf .Measure );return _baee ;};
// PartialName returns the partial name of the field.
func (_gfcda *PdfField )PartialName ()string {_ffbg :="";if _gfcda .T !=nil {_ffbg =_gfcda .T .Decoded ();}else {_abe .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 _ffbg ;};const (XObjectTypeUndefined XObjectType =iota ;XObjectTypeImage ;XObjectTypeForm ;XObjectTypePS ;XObjectTypeUnknown ;);
// 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 (_gfcdd *PdfSignature )bool ;Validate (_daafed *PdfSignature ,_ecdbg Hasher )(SignatureValidationResult ,error );
// InitSignature sets the PdfSignature parameters.
InitSignature (*PdfSignature )error ;NewDigest (_eaaa *PdfSignature )(Hasher ,error );Sign (_bbbgf *PdfSignature ,_dabfc Hasher )error ;};
// CharMetrics represents width and height metrics of a glyph.
type CharMetrics =_ecf .CharMetrics ;
// ToPdfObject implements interface PdfModel.
func (_gaa *PdfActionGoTo3DView )ToPdfObject ()_aef .PdfObject {_gaa .PdfAction .ToPdfObject ();_fbd :=_gaa ._gc ;_egcg :=_fbd .PdfObject .(*_aef .PdfObjectDictionary );_egcg .SetIfNotNil ("\u0053",_aef .MakeName (string (ActionTypeGoTo3DView )));_egcg .SetIfNotNil ("\u0054\u0041",_gaa .TA );_egcg .SetIfNotNil ("\u0056",_gaa .V );return _fbd ;};func (_dbg *PdfReader )newPdfActionGotoRFromDict (_faad *_aef .PdfObjectDictionary )(*PdfActionGoToR ,error ){_ddd ,_gec :=_bfc (_faad .Get ("\u0046"));if _gec !=nil {return nil ,_gec ;};return &PdfActionGoToR {D :_faad .Get ("\u0044"),NewWindow :_faad .Get ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw"),F :_ddd },nil ;};
// ToPdfObject returns the PDF representation of the colorspace.
func (_fdbgd *PdfColorspaceSpecialPattern )ToPdfObject ()_aef .PdfObject {if _fdbgd .UnderlyingCS ==nil {return _aef .MakeName ("\u0050a\u0074\u0074\u0065\u0072\u006e");};_bgge :=_aef .MakeArray (_aef .MakeName ("\u0050a\u0074\u0074\u0065\u0072\u006e"));_bgge .Append (_fdbgd .UnderlyingCS .ToPdfObject ());if _fdbgd ._febfd !=nil {_fdbgd ._febfd .PdfObject =_bgge ;return _fdbgd ._febfd ;};return _bgge ;};
// 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 _gfc .ReadSeeker )(*PdfReader ,error ){_edgdc :=&PdfReader {_cced :rs ,_cadgb :map[_aef .PdfObject ]struct{}{},_fggbd :_beed (),_afae :true };_cdge ,_dgaaf :=_aef .NewParser (rs );if _dgaaf !=nil {return nil ,_dgaaf ;};_edgdc ._gdbbd =_cdge ;_bdcda ,_dgaaf :=_edgdc .IsEncrypted ();if _dgaaf !=nil {return nil ,_dgaaf ;};if !_bdcda {_dgaaf =_edgdc .loadStructure ();if _dgaaf !=nil {return nil ,_dgaaf ;};};return _edgdc ,nil ;};func _acfaf (_eeec _aef .PdfObject ,_eeaec bool )(*PdfFont ,error ){_fbdeb ,_fgef ,_aacce :=_fbfg (_eeec );if _aacce !=nil {if _aacce ==ErrType3FontNotSupported ||_aacce ==ErrType1CFontNotSupported {_ddbe ,_dcda :=_ceaf (_fbdeb ,_fgef ,nil );if _dcda !=nil {_abe .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",_fgef ,_dcda );return nil ,_aacce ;};return &PdfFont {_dccga :_ddbe },_aacce ;};return nil ,_aacce ;};_edab :=&PdfFont {};switch _fgef ._ababd {case "\u0054\u0079\u0070e\u0030":if !_eeaec {_abe .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",_fgef );return nil ,_fa .New ("\u0063\u0079\u0063\u006cic\u0061\u006c\u0020\u0074\u0079\u0070\u0065\u0030\u0020\u006c\u006f\u0061\u0064\u0069n\u0067");};_ggdda ,_aecbf :=_bbeg (_fbdeb ,_fgef );if _aecbf !=nil {_abe .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",_fgef ,_aecbf );return nil ,_aecbf ;};_edab ._dccga =_ggdda ;case "\u0054\u0079\u0070e\u0031","\u0054\u0079\u0070e\u0033","\u004dM\u0054\u0079\u0070\u0065\u0031","\u0054\u0072\u0075\u0065\u0054\u0079\u0070\u0065":var _facee *pdfFontSimple ;_dfag ,_ddfd :=_ecf .NewStdFontByName (_ecf .StdFontName (_fgef ._fegdg ));if _ddfd {_gbdc :=_edbed (_dfag );_edab ._dccga =&_gbdc ;_egabe :=_aef .TraceToDirectObject (_gbdc .ToPdfObject ());_cafaf ,_dgdbe ,_agce :=_fbfg (_egabe );if _agce !=nil {_abe .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",_fgef ,_gbdc );return nil ,_agce ;};for _ ,_ffaeg :=range _fbdeb .Keys (){_cafaf .Set (_ffaeg ,_fbdeb .Get (_ffaeg ));};_facee ,_agce =_ceaf (_cafaf ,_dgdbe ,_gbdc ._gbee );if _agce !=nil {_abe .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",_fgef ,_gbdc );return nil ,_agce ;};_facee ._bacac =_gbdc ._bacac ;_facee ._gcbd =_gbdc ._gcbd ;}else {_facee ,_aacce =_ceaf (_fbdeb ,_fgef ,nil );if _aacce !=nil {_abe .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",_fgef ,_aacce );return nil ,_aacce ;};};_aacce =_facee .addEncoding ();if _aacce !=nil {return nil ,_aacce ;};if _ddfd {_facee .updateStandard14Font ();};if _ddfd &&_facee ._bcbge ==nil &&_facee ._gbee ==nil {_abe .Log .Error ("\u0073\u0069\u006d\u0070\u006c\u0065\u0066\u006f\u006e\u0074\u003d\u0025\u0073",_facee );_abe .Log .Error ("\u0066n\u0074\u003d\u0025\u002b\u0076",_dfag );};if len (_facee ._bacac )==0{_abe .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a \u004e\u006f\u0020\u0077\u0069d\u0074h\u0073.\u0020\u0066\u006f\u006e\u0074\u003d\u0025s",_facee );};_edab ._dccga =_facee ;case "\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0030":_adadf ,_abcdb :=_gfabd (_fbdeb ,_fgef );if _abcdb !=nil {_abe .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",_abcdb );return nil ,_abcdb ;};_edab ._dccga =_adadf ;case "\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032":_bdabe ,_aega :=_gagac (_fbdeb ,_fgef );if _aega !=nil {_abe .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",_fgef ,_aega );return nil ,_aega ;};_edab ._dccga =_bdabe ;default:_abe .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",_fgef );return nil ,_b .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",_fgef );};return _edab ,nil ;};
// Encoder returns the font's text encoder.
func (_gffaf pdfFontType0 )Encoder ()_be .TextEncoder {return _gffaf ._eeag };func (_afdag *PdfFunctionType0 )processSamples ()error {_cacc :=_ea .ResampleBytes (_afdag ._bdgaa ,_afdag .BitsPerSample );_afdag ._ceeae =_cacc ;return nil ;};
// SetXObjectByName adds the XObject from the passed in stream to the page resources.
// The added XObject is identified by the specified name.
func (_cabfc *PdfPageResources )SetXObjectByName (keyName _aef .PdfObjectName ,stream *_aef .PdfObjectStream )error {if _cabfc .XObject ==nil {_cabfc .XObject =_aef .MakeDict ();};_fdbfb :=_aef .TraceToDirectObject (_cabfc .XObject );_eadde ,_ccfde :=_fdbfb .(*_aef .PdfObjectDictionary );if !_ccfde {_abe .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",_cabfc .XObject ,_fdbfb );return _fa .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_eadde .Set (keyName ,stream );return nil ;};
// PdfShadingType2 is an Axial shading.
type PdfShadingType2 struct{*PdfShading ;Coords *_aef .PdfObjectArray ;Domain *_aef .PdfObjectArray ;Function []PdfFunction ;Extend *_aef .PdfObjectArray ;};
// PdfAnnotationPopup represents Popup annotations.
// (Section 12.5.6.14).
type PdfAnnotationPopup struct{*PdfAnnotation ;Parent _aef .PdfObject ;Open _aef .PdfObject ;};
// NewPdfAnnotationPolyLine returns a new polyline annotation.
func NewPdfAnnotationPolyLine ()*PdfAnnotationPolyLine {_fgb :=NewPdfAnnotation ();_dca :=&PdfAnnotationPolyLine {};_dca .PdfAnnotation =_fgb ;_dca .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_fgb .SetContext (_dca );return _dca ;};
// NewBorderStyle returns an initialized PdfBorderStyle.
func NewBorderStyle ()*PdfBorderStyle {_fgfa :=&PdfBorderStyle {};return _fgfa };func (_gdbca *PdfWriter )writeString (_afgdc string ){if _gdbca ._geac !=nil {return ;};_dgcfc ,_cgddbe :=_gdbca ._fcadd .WriteString (_afgdc );_gdbca ._dfdcd +=int64 (_dgcfc );_gdbca ._geac =_cgddbe ;};
// GetContainingPdfObject returns the container of the resources object (indirect object).
func (_fedge *PdfPageResources )GetContainingPdfObject ()_aef .PdfObject {return _fedge ._eede };
// NewPdfOutline returns an initialized PdfOutline.
func NewPdfOutline ()*PdfOutline {_eace :=&PdfOutline {_bcbc :_aef .MakeIndirectObject (_aef .MakeDict ())};_eace ._gdgaba =_eace ;return _eace ;};
// Normalize swaps (Llx,Urx) if Urx < Llx, and (Lly,Ury) if Ury < Lly.
func (_dcgd *PdfRectangle )Normalize (){if _dcgd .Llx > _dcgd .Urx {_dcgd .Llx ,_dcgd .Urx =_dcgd .Urx ,_dcgd .Llx ;};if _dcgd .Lly > _dcgd .Ury {_dcgd .Lly ,_dcgd .Ury =_dcgd .Ury ,_dcgd .Lly ;};};
// 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 (_fffa *PdfFieldButton )SetType (btype ButtonType ){_bdgc :=uint32 (0);if _fffa .Ff !=nil {_bdgc =uint32 (*_fffa .Ff );};switch btype {case ButtonTypePush :_bdgc |=FieldFlagPushbutton .Mask ();case ButtonTypeRadio :_bdgc |=FieldFlagRadio .Mask ();};_fffa .Ff =_aef .MakeInteger (int64 (_bdgc ));};
// Evaluate runs the function. Input is [x1 x2 x3].
func (_ccagc *PdfFunctionType4 )Evaluate (xVec []float64 )([]float64 ,error ){if _ccagc ._fgfac ==nil {_ccagc ._fgfac =_ga .NewPSExecutor (_ccagc .Program );};var _aedbd []_ga .PSObject ;for _ ,_ddffg :=range xVec {_aedbd =append (_aedbd ,_ga .MakeReal (_ddffg ));};_eagdd ,_bbad :=_ccagc ._fgfac .Execute (_aedbd );if _bbad !=nil {return nil ,_bbad ;};_gbdd ,_bbad :=_ga .PSObjectArrayToFloat64Array (_eagdd );if _bbad !=nil {return nil ,_bbad ;};return _gbdd ,nil ;};func _abacf (_abcfe _aef .PdfObject )(*PdfPageResourcesColorspaces ,error ){_gbcc :=&PdfPageResourcesColorspaces {};if _decf ,_agecd :=_abcfe .(*_aef .PdfIndirectObject );_agecd {_gbcc ._efbb =_decf ;_abcfe =_decf .PdfObject ;};_cebab ,_ggdfbe :=_aef .GetDict (_abcfe );if !_ggdfbe {return nil ,_fa .New ("\u0043\u0053\u0020at\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};_gbcc .Names =[]string {};_gbcc .Colorspaces =map[string ]PdfColorspace {};for _ ,_fdfgf :=range _cebab .Keys (){_gbcf :=_cebab .Get (_fdfgf );_gbcc .Names =append (_gbcc .Names ,string (_fdfgf ));_gbfeb ,_ceade :=NewPdfColorspaceFromPdfObject (_gbcf );if _ceade !=nil {return nil ,_ceade ;};_gbcc .Colorspaces [string (_fdfgf )]=_gbfeb ;};return _gbcc ,nil ;};
// ColorFromFloats returns a new PdfColor based on the input slice of color
// components. The slice should contain a single element between 0 and 1.
func (_cegb *PdfColorspaceDeviceGray )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=1{return nil ,_fa .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_bcaf :=vals [0];if _bcaf < 0.0||_bcaf > 1.0{_abe .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 _bcaf < 0.0{_bcaf =0.0;}else if _bcaf > 1.0{_bcaf =1.0;};return NewPdfColorDeviceGray (_bcaf ),nil ;};
// NewReaderForText makes a new PdfReader for an input PDF content string. For use in testing.
func NewReaderForText (txt string )*PdfReader {return &PdfReader {_cadgb :map[_aef .PdfObject ]struct{}{},_fggbd :_beed (),_gdbbd :_aef .NewParserFromString (txt )};};
// String returns a string that describes `font`.
func (_addec *PdfFont )String ()string {_fgda :="";if _addec ._dccga .Encoder ()!=nil {_fgda =_addec ._dccga .Encoder ().String ();};return _b .Sprintf ("\u0046\u004f\u004e\u0054\u007b\u0025\u0054\u0020\u0025s\u0020\u0025\u0073\u007d",_addec ._dccga ,_addec .baseFields ().coreString (),_fgda );};
// RemovePage removes a page by number.
func (_adab *PdfAppender )RemovePage (pageNum int ){_dgaf :=pageNum -1;_adab ._ebegf =append (_adab ._ebegf [0:_dgaf ],_adab ._ebegf [pageNum :]...);};
// SetImage updates XObject Image with new image data.
func (_bfcea *XObjectImage )SetImage (img *Image ,cs PdfColorspace )error {_bfcea .Filter .UpdateParams (img .GetParamsDict ());_bbbff ,_efee :=_bfcea .Filter .EncodeBytes (img .Data );if _efee !=nil {return _efee ;};_bfcea .Stream =_bbbff ;_acbee :=img .Width ;_bfcea .Width =&_acbee ;_aacbd :=img .Height ;_bfcea .Height =&_aacbd ;_fceea :=img .BitsPerComponent ;_bfcea .BitsPerComponent =&_fceea ;if cs ==nil {if img .ColorComponents ==1{_bfcea .ColorSpace =NewPdfColorspaceDeviceGray ();}else if img .ColorComponents ==3{_bfcea .ColorSpace =NewPdfColorspaceDeviceRGB ();}else if img .ColorComponents ==4{_bfcea .ColorSpace =NewPdfColorspaceDeviceCMYK ();}else {return _fa .New ("c\u006fl\u006f\u0072\u0073\u0070\u0061\u0063\u0065\u0020u\u006e\u0064\u0065\u0066in\u0065\u0064");};}else {_bfcea .ColorSpace =cs ;};return nil ;};
// B returns the value of the blue component of the color.
func (_afce *PdfColorDeviceRGB )B ()float64 {return _afce [2]};
// ToPdfObject implements interface PdfModel.
func (_dbab *PdfAnnotationWidget )ToPdfObject ()_aef .PdfObject {_dbab .PdfAnnotation .ToPdfObject ();_ffd :=_dbab ._edc ;_fdaf :=_ffd .PdfObject .(*_aef .PdfObjectDictionary );if _dbab ._eega {return _ffd ;};_dbab ._eega =true ;_fdaf .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_aef .MakeName ("\u0057\u0069\u0064\u0067\u0065\u0074"));_fdaf .SetIfNotNil ("\u0048",_dbab .H );_fdaf .SetIfNotNil ("\u004d\u004b",_dbab .MK );_fdaf .SetIfNotNil ("\u0041",_dbab .A );_fdaf .SetIfNotNil ("\u0041\u0041",_dbab .AA );_fdaf .SetIfNotNil ("\u0042\u0053",_dbab .BS );_ede :=_dbab .Parent ;if _dbab ._ccc !=nil {if _dbab ._ccc ._abebg ==_dbab ._edc {_dbab ._ccc .ToPdfObject ();};_ede =_dbab ._ccc .GetContainingPdfObject ();};if _ede !=_ffd {_fdaf .SetIfNotNil ("\u0050\u0061\u0072\u0065\u006e\u0074",_ede );};_dbab ._eega =false ;return _ffd ;};
// 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 (_gefda *PdfPageResources )GetColorspaces ()(*PdfPageResourcesColorspaces ,error ){if _gefda ._fcdfg !=nil {return _gefda ._fcdfg ,nil ;};if _gefda .ColorSpace ==nil {return nil ,nil ;};_aebbd ,_eaga :=_abacf (_gefda .ColorSpace );if _eaga !=nil {return nil ,_eaga ;};_gefda ._fcdfg =_aebbd ;return _gefda ._fcdfg ,nil ;};
// NewPdfColorspaceDeviceGray returns a new grayscale colorspace.
func NewPdfColorspaceDeviceGray ()*PdfColorspaceDeviceGray {return &PdfColorspaceDeviceGray {}};
// GetNumComponents returns the number of color components (3 for CalRGB).
func (_gaacb *PdfColorCalRGB )GetNumComponents ()int {return 3};func _bbeg (_agef *_aef .PdfObjectDictionary ,_cbgga *fontCommon )(*pdfFontType0 ,error ){_bacab ,_gfcgc :=_aef .GetArray (_agef .Get ("\u0044e\u0073c\u0065\u006e\u0064\u0061\u006e\u0074\u0046\u006f\u006e\u0074\u0073"));if !_gfcgc {_abe .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",_cbgga );return nil ,_aef .ErrRangeError ;};if _bacab .Len ()!=1{_abe .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",_bacab .Len ());return nil ,_aef .ErrRangeError ;};_fcebd ,_accbb :=_acfaf (_bacab .Get (0),false );if _accbb !=nil {_abe .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",_accbb ,_cbgga );return nil ,_accbb ;};_ffdfd :=_baca (_cbgga );_ffdfd .DescendantFont =_fcebd ;_dfee ,_gfcgc :=_aef .GetNameVal (_agef .Get ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067"));if _gfcgc {if _dfee =="\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079\u002d\u0048"||_dfee =="\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079\u002d\u0056"{_ffdfd ._eeag =_be .NewIdentityTextEncoder (_dfee );}else if _gg .IsPredefinedCMap (_dfee ){_ffdfd ._dcdab ,_accbb =_gg .LoadPredefinedCMap (_dfee );if _accbb !=nil {_abe .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",_dfee ,_accbb );};}else {_abe .Log .Debug ("\u0055\u006e\u0068\u0061\u006e\u0064\u006c\u0065\u0064\u0020\u0063\u006da\u0070\u0020\u0025\u0071",_dfee );};};if _ccfg :=_fcebd .baseFields ()._ecefd ;_ccfg !=nil {if _eaeg :=_ccfg .Name ();_eaeg =="\u0041d\u006fb\u0065\u002d\u0043\u004e\u0053\u0031\u002d\u0055\u0043\u0053\u0032"||_eaeg =="\u0041\u0064\u006f\u0062\u0065\u002d\u0047\u0042\u0031-\u0055\u0043\u0053\u0032"||_eaeg =="\u0041\u0064\u006f\u0062\u0065\u002d\u004a\u0061\u0070\u0061\u006e\u0031-\u0055\u0043\u0053\u0032"||_eaeg =="\u0041\u0064\u006f\u0062\u0065\u002d\u004b\u006f\u0072\u0065\u0061\u0031-\u0055\u0043\u0053\u0032"{_ffdfd ._eeag =_be .NewCMapEncoder (_dfee ,_ffdfd ._dcdab ,_ccfg );};};return _ffdfd ,nil ;};
// GetContentStream returns the XObject Form's content stream.
func (_gbdgd *XObjectForm )GetContentStream ()([]byte ,error ){_debbe ,_ffcedb :=_aef .DecodeStream (_gbdgd ._ebdad );if _ffcedb !=nil {return nil ,_ffcedb ;};return _debbe ,nil ;};
// NewPdfColorspaceDeviceCMYK returns a new CMYK32 colorspace object.
func NewPdfColorspaceDeviceCMYK ()*PdfColorspaceDeviceCMYK {return &PdfColorspaceDeviceCMYK {}};
// NewOutlineBookmark returns an initialized PdfOutlineItem for a given bookmark title and page.
func NewOutlineBookmark (title string ,page *_aef .PdfIndirectObject )*PdfOutlineItem {_fggea :=PdfOutlineItem {};_fggea ._gdgaba =&_fggea ;_fggea .Title =_aef .MakeString (title );_accbf :=_aef .MakeArray ();_accbf .Append (page );_accbf .Append (_aef .MakeName ("\u0046\u0069\u0074"));_fggea .Dest =_accbf ;return &_fggea ;};
// Decrypt decrypts the PDF file with a specified password. Also tries to
// decrypt with an empty password. Returns true if successful,
// false otherwise.
func (_dgdfe *PdfReader )Decrypt (password []byte )(bool ,error ){_gegcd ,_bagfa :=_dgdfe ._gdbbd .Decrypt (password );if _bagfa !=nil {return false ,_bagfa ;};if !_gegcd {return false ,nil ;};_bagfa =_dgdfe .loadStructure ();if _bagfa !=nil {_abe .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",_bagfa );return false ,_bagfa ;};return true ,nil ;};
// ToPdfObject implements interface PdfModel.
func (_eeea *PdfAnnotationStamp )ToPdfObject ()_aef .PdfObject {_eeea .PdfAnnotation .ToPdfObject ();_dfggb :=_eeea ._edc ;_cbdc :=_dfggb .PdfObject .(*_aef .PdfObjectDictionary );_eeea .PdfAnnotationMarkup .appendToPdfDictionary (_cbdc );_cbdc .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_aef .MakeName ("\u0053\u0074\u0061m\u0070"));_cbdc .SetIfNotNil ("\u004e\u0061\u006d\u0065",_eeea .Name );return _dfggb ;};
// 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 ()_aef .PdfObject ;GetContainingPdfObject ()_aef .PdfObject ;};func (_eae *PdfReader )newPdfActionRenditionFromDict (_dbd *_aef .PdfObjectDictionary )(*PdfActionRendition ,error ){return &PdfActionRendition {R :_dbd .Get ("\u0052"),AN :_dbd .Get ("\u0041\u004e"),OP :_dbd .Get ("\u004f\u0050"),JS :_dbd .Get ("\u004a\u0053")},nil ;};
// IsCheckbox returns true if the button field represents a checkbox, false otherwise.
func (_fggdc *PdfFieldButton )IsCheckbox ()bool {return _fggdc .GetType ()==ButtonTypeCheckbox };func (_gggg *PdfReader )buildOutlineTree (_fbaec _aef .PdfObject ,_aaebc *PdfOutlineTreeNode ,_gfaa *PdfOutlineTreeNode ,_afaf map[_aef .PdfObject ]struct{})(*PdfOutlineTreeNode ,*PdfOutlineTreeNode ,error ){if _afaf ==nil {_afaf =map[_aef .PdfObject ]struct{}{};};_afaf [_fbaec ]=struct{}{};_gbdddc ,_cgdbc :=_fbaec .(*_aef .PdfIndirectObject );if !_cgdbc {return nil ,nil ,_b .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",_fbaec );};_dcde ,_baea :=_gbdddc .PdfObject .(*_aef .PdfObjectDictionary );if !_baea {return nil ,nil ,_fa .New ("\u006e\u006f\u0074 a\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u0020\u006f\u0062\u006a\u0065\u0063\u0074");};_abe .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",_dcde ,_gbdddc ,_gbdddc );if _bacgg :=_dcde .Get ("\u0054\u0069\u0074l\u0065");_bacgg !=nil {_bdabeg ,_bgce :=_gggg .newPdfOutlineItemFromIndirectObject (_gbdddc );if _bgce !=nil {return nil ,nil ,_bgce ;};_bdabeg .Parent =_aaebc ;_bdabeg .Prev =_gfaa ;_efbg :=_aef .ResolveReference (_dcde .Get ("\u0046\u0069\u0072s\u0074"));if _ ,_fafge :=_afaf [_efbg ];_efbg !=nil &&_efbg !=_gbdddc &&!_fafge {if !_aef .IsNullObject (_efbg ){_cdecef ,_efdfb ,_acdcg :=_gggg .buildOutlineTree (_efbg ,&_bdabeg .PdfOutlineTreeNode ,nil ,_afaf );if _acdcg !=nil {_abe .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",_acdcg );}else {_bdabeg .First =_cdecef ;_bdabeg .Last =_efdfb ;};};};_ffgc :=_aef .ResolveReference (_dcde .Get ("\u004e\u0065\u0078\u0074"));if _ ,_daag :=_afaf [_ffgc ];_ffgc !=nil &&_ffgc !=_gbdddc &&!_daag {if !_aef .IsNullObject (_ffgc ){_ecdac ,_ggedg ,_gdeb :=_gggg .buildOutlineTree (_ffgc ,_aaebc ,&_bdabeg .PdfOutlineTreeNode ,_afaf );if _gdeb !=nil {_abe .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",_gdeb );}else {_bdabeg .Next =_ecdac ;return &_bdabeg .PdfOutlineTreeNode ,_ggedg ,nil ;};};};return &_bdabeg .PdfOutlineTreeNode ,&_bdabeg .PdfOutlineTreeNode ,nil ;};_gefd ,_aecgf :=_cggaf (_gbdddc );if _aecgf !=nil {return nil ,nil ,_aecgf ;};_gefd .Parent =_aaebc ;if _bfcae :=_dcde .Get ("\u0046\u0069\u0072s\u0074");_bfcae !=nil {_bfcae =_aef .ResolveReference (_bfcae );if _ ,_egeee :=_afaf [_bfcae ];_bfcae !=nil &&_bfcae !=_gbdddc &&!_egeee {_bagfb :=_aef .TraceToDirectObject (_bfcae );if _ ,_bbfaf :=_bagfb .(*_aef .PdfObjectNull );!_bbfaf &&_bagfb !=nil {_gceeaf ,_dbaeb ,_fcaa :=_gggg .buildOutlineTree (_bfcae ,&_gefd .PdfOutlineTreeNode ,nil ,_afaf );if _fcaa !=nil {_abe .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",_fcaa );}else {_gefd .First =_gceeaf ;_gefd .Last =_dbaeb ;};};};};return &_gefd .PdfOutlineTreeNode ,&_gefd .PdfOutlineTreeNode ,nil ;};
// NewPdfAnnotationFreeText returns a new free text annotation.
func NewPdfAnnotationFreeText ()*PdfAnnotationFreeText {_bba :=NewPdfAnnotation ();_abg :=&PdfAnnotationFreeText {};_abg .PdfAnnotation =_bba ;_abg .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_bba .SetContext (_abg );return _abg ;};
// ToPdfObject returns the PDF representation of the colorspace.
func (_gbbdb *PdfPageResourcesColorspaces )ToPdfObject ()_aef .PdfObject {_ebafff :=_aef .MakeDict ();for _ ,_fbcff :=range _gbbdb .Names {_ebafff .Set (_aef .PdfObjectName (_fbcff ),_gbbdb .Colorspaces [_fbcff ].ToPdfObject ());};if _gbbdb ._efbb !=nil {_gbbdb ._efbb .PdfObject =_ebafff ;return _gbbdb ._efbb ;};return _ebafff ;};
// ToPdfObject recursively builds the Outline tree PDF object.
func (_fgefd *PdfOutline )ToPdfObject ()_aef .PdfObject {_bbfca :=_fgefd ._bcbc ;_fegba :=_bbfca .PdfObject .(*_aef .PdfObjectDictionary );_fegba .Set ("\u0054\u0079\u0070\u0065",_aef .MakeName ("\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0073"));if _fgefd .First !=nil {_fegba .Set ("\u0046\u0069\u0072s\u0074",_fgefd .First .ToPdfObject ());};if _fgefd .Last !=nil {_fegba .Set ("\u004c\u0061\u0073\u0074",_fgefd .Last .GetContext ().GetContainingPdfObject ());};if _fgefd .Parent !=nil {_fegba .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_fgefd .Parent .GetContext ().GetContainingPdfObject ());};if _fgefd .Count !=nil {_fegba .Set ("\u0043\u006f\u0075n\u0074",_aef .MakeInteger (*_fgefd .Count ));};return _bbfca ;};func (_acegd *PdfColorspaceCalRGB )String ()string {return "\u0043\u0061\u006c\u0052\u0047\u0042"};
// NewPdfAnnotationStrikeOut returns a new text strikeout annotation.
func NewPdfAnnotationStrikeOut ()*PdfAnnotationStrikeOut {_egg :=NewPdfAnnotation ();_ggdf :=&PdfAnnotationStrikeOut {};_ggdf .PdfAnnotation =_egg ;_ggdf .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_egg .SetContext (_ggdf );return _ggdf ;};
// PdfFieldButton represents a button field which includes push buttons, checkboxes, and radio buttons.
type PdfFieldButton struct{*PdfField ;Opt *_aef .PdfObjectArray ;};
// SetBorderWidth sets the style's border width.
func (_eead *PdfBorderStyle )SetBorderWidth (width float64 ){_eead .W =&width };
// 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 _aef .PdfObject ;_abea []byte ;_aeca *_aef .PdfIndirectObject ;};
// Hasher is the interface that wraps the basic Write method.
type Hasher interface{Write (_adbab []byte )(_fbee int ,_bfdb error );};
// 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 ){_deaec ,_aaed :=_aafde (basefont );if _aaed !=nil {return nil ,_aaed ;};if basefont !=SymbolName &&basefont !=ZapfDingbatsName {_deaec ._bcbge =_be .NewWinAnsiEncoder ();};return &PdfFont {_dccga :&_deaec },nil ;};
// PdfActionRendition represents a Rendition action.
type PdfActionRendition struct{*PdfAction ;R _aef .PdfObject ;AN _aef .PdfObject ;OP _aef .PdfObject ;JS _aef .PdfObject ;};const (_gbfag =0x00001;_begf =0x00002;_adfea =0x00004;_bdaf =0x00008;_gegad =0x00020;_gdfcda =0x00040;_abad =0x10000;_gaeeb =0x20000;_cdec =0x40000;);
// ToPdfObject convert PdfInfo to pdf object.
func (_adag *PdfInfo )ToPdfObject ()_aef .PdfObject {_egdf :=_aef .MakeDict ();_egdf .SetIfNotNil ("\u0054\u0069\u0074l\u0065",_adag .Title );_egdf .SetIfNotNil ("\u0041\u0075\u0074\u0068\u006f\u0072",_adag .Author );_egdf .SetIfNotNil ("\u0053u\u0062\u006a\u0065\u0063\u0074",_adag .Subject );_egdf .SetIfNotNil ("\u004b\u0065\u0079\u0077\u006f\u0072\u0064\u0073",_adag .Keywords );_egdf .SetIfNotNil ("\u0043r\u0065\u0061\u0074\u006f\u0072",_adag .Creator );_egdf .SetIfNotNil ("\u0050\u0072\u006f\u0064\u0075\u0063\u0065\u0072",_adag .Producer );_egdf .SetIfNotNil ("\u0054r\u0061\u0070\u0070\u0065\u0064",_adag .Trapped );if _adag .CreationDate !=nil {_egdf .SetIfNotNil ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065",_adag .CreationDate .ToPdfObject ());};if _adag .ModifiedDate !=nil {_egdf .SetIfNotNil ("\u004do\u0064\u0044\u0061\u0074\u0065",_adag .ModifiedDate .ToPdfObject ());};for _ ,_gefc :=range _adag ._ebcd .Keys (){_egdf .SetIfNotNil (_gefc ,_adag ._ebcd .Get (_gefc ));};return _egdf ;};
// NewPdfAnnotationTrapNet returns a new trapnet annotation.
func NewPdfAnnotationTrapNet ()*PdfAnnotationTrapNet {_bga :=NewPdfAnnotation ();_gbfa :=&PdfAnnotationTrapNet {};_gbfa .PdfAnnotation =_bga ;_bga .SetContext (_gbfa );return _gbfa ;};func (_cdbd *PdfAppender )updateObjectsDeep (_gddcd _aef .PdfObject ,_caea map[_aef .PdfObject ]struct{}){if _caea ==nil {_caea =map[_aef .PdfObject ]struct{}{};};if _ ,_eeaa :=_caea [_gddcd ];_eeaa ||_gddcd ==nil {return ;};_caea [_gddcd ]=struct{}{};_cacg :=_aef .ResolveReferencesDeep (_gddcd ,_cdbd ._gfce );if _cacg !=nil {_abe .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_cacg );};switch _bbagg :=_gddcd .(type ){case *_aef .PdfIndirectObject :switch {case _bbagg .GetParser ()==_cdbd ._fdd ._gdbbd :return ;case _bbagg .GetParser ()==_cdbd .Reader ._gdbbd :_fggb ,_ :=_cdbd ._fdd .GetIndirectObjectByNumber (int (_bbagg .ObjectNumber ));_dfdf ,_bedd :=_fggb .(*_aef .PdfIndirectObject );if _bedd &&_dfdf !=nil {if _dfdf .PdfObject !=_bbagg .PdfObject &&_dfdf .PdfObject .WriteString ()!=_bbagg .PdfObject .WriteString (){_cdbd .addNewObject (_gddcd );_cdbd ._ddff [_gddcd ]=_bbagg .ObjectNumber ;};};default:_cdbd .addNewObject (_gddcd );};_cdbd .updateObjectsDeep (_bbagg .PdfObject ,_caea );case *_aef .PdfObjectArray :for _ ,_cbeg :=range _bbagg .Elements (){_cdbd .updateObjectsDeep (_cbeg ,_caea );};case *_aef .PdfObjectDictionary :for _ ,_dcbc :=range _bbagg .Keys (){_cdbd .updateObjectsDeep (_bbagg .Get (_dcbc ),_caea );};case *_aef .PdfObjectStreams :if _bbagg .GetParser ()!=_cdbd ._fdd ._gdbbd {for _ ,_ebegc :=range _bbagg .Elements (){_cdbd .updateObjectsDeep (_ebegc ,_caea );};};case *_aef .PdfObjectStream :switch {case _bbagg .GetParser ()==_cdbd ._fdd ._gdbbd :return ;case _bbagg .GetParser ()==_cdbd .Reader ._gdbbd :if _cgbf ,_egaa :=_cdbd ._fdd ._gdbbd .LookupByReference (_bbagg .PdfObjectReference );_egaa ==nil {var _ddca bool ;if _fgd ,_deaf :=_aef .GetStream (_cgbf );_deaf &&_cg .Equal (_fgd .Stream ,_bbagg .Stream ){_ddca =true ;};if _bfeg ,_bafd :=_aef .GetDict (_cgbf );_ddca &&_bafd {_ddca =_bfeg .WriteString ()==_bbagg .PdfObjectDictionary .WriteString ();};if _ddca {return ;};};if _bbagg .ObjectNumber !=0{_cdbd ._ddff [_gddcd ]=_bbagg .ObjectNumber ;};default:if _ ,_gcag :=_cdbd ._abge [_gddcd ];!_gcag {_cdbd .addNewObject (_gddcd );};};_cdbd .updateObjectsDeep (_bbagg .PdfObjectDictionary ,_caea );};};
// GetRuneMetrics returns the character metrics for the specified rune.
// A bool flag is returned to indicate whether or not the entry was found.
func (_ebee pdfFontType0 )GetRuneMetrics (r rune )(_ecf .CharMetrics ,bool ){if _ebee .DescendantFont ==nil {_abe .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",_ebee );return _ecf .CharMetrics {},false ;};return _ebee .DescendantFont .GetRuneMetrics (r );};func (_eegee *pdfFontSimple )baseFields ()*fontCommon {return &_eegee .fontCommon };func (_eecf *PdfReader )newPdfAnnotationCircleFromDict (_gcaf *_aef .PdfObjectDictionary )(*PdfAnnotationCircle ,error ){_gaf :=PdfAnnotationCircle {};_dgb ,_gaff :=_eecf .newPdfAnnotationMarkupFromDict (_gcaf );if _gaff !=nil {return nil ,_gaff ;};_gaf .PdfAnnotationMarkup =_dgb ;_gaf .BS =_gcaf .Get ("\u0042\u0053");_gaf .IC =_gcaf .Get ("\u0049\u0043");_gaf .BE =_gcaf .Get ("\u0042\u0045");_gaf .RD =_gcaf .Get ("\u0052\u0044");return &_gaf ,nil ;};
// BorderStyle defines border type, typically used for annotations.
type BorderStyle int ;
// GetBorderWidth returns the border style's width.
func (_bbce *PdfBorderStyle )GetBorderWidth ()float64 {if _bbce .W ==nil {return 1;};return *_bbce .W ;};func (_cagd *PdfReader )newPdfActionNamedFromDict (_fga *_aef .PdfObjectDictionary )(*PdfActionNamed ,error ){return &PdfActionNamed {N :_fga .Get ("\u004e")},nil ;};func _edcgd ()string {_abdcd .Lock ();defer _abdcd .Unlock ();return _afdfd };
// ToPdfObject implements interface PdfModel.
func (_beefd *PdfFilespec )ToPdfObject ()_aef .PdfObject {_babg :=_beefd .getDict ();_babg .Clear ();_babg .Set ("\u0054\u0079\u0070\u0065",_aef .MakeName ("\u0046\u0069\u006c\u0065\u0073\u0070\u0065\u0063"));_babg .SetIfNotNil ("\u0046\u0053",_beefd .FS );_babg .SetIfNotNil ("\u0046",_beefd .F );_babg .SetIfNotNil ("\u0055\u0046",_beefd .UF );_babg .SetIfNotNil ("\u0044\u004f\u0053",_beefd .DOS );_babg .SetIfNotNil ("\u004d\u0061\u0063",_beefd .Mac );_babg .SetIfNotNil ("\u0055\u006e\u0069\u0078",_beefd .Unix );_babg .SetIfNotNil ("\u0049\u0044",_beefd .ID );_babg .SetIfNotNil ("\u0056",_beefd .V );_babg .SetIfNotNil ("\u0045\u0046",_beefd .EF );_babg .SetIfNotNil ("\u0052\u0046",_beefd .RF );_babg .SetIfNotNil ("\u0044\u0065\u0073\u0063",_beefd .Desc );_babg .SetIfNotNil ("\u0043\u0049",_beefd .CI );return _beefd ._bgbda ;};
// SetContentStream sets the pattern cell's content stream.
func (_dcae *PdfTilingPattern )SetContentStream (content []byte ,encoder _aef .StreamEncoder )error {_fbge ,_caca :=_dcae ._fgbcde .(*_aef .PdfObjectStream );if !_caca {_abe .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",_dcae ._fgbcde );return _aef .ErrTypeError ;};if encoder ==nil {encoder =_aef .NewRawEncoder ();};_ddabg :=_fbge .PdfObjectDictionary ;_ebagc :=encoder .MakeStreamDict ();_ddabg .Merge (_ebagc );_gfbeb ,_adgcd :=encoder .EncodeBytes (content );if _adgcd !=nil {return _adgcd ;};_ddabg .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_aef .MakeInteger (int64 (len (_gfbeb ))));_fbge .Stream =_gfbeb ;return nil ;};
// GetNumComponents returns the number of input color components, i.e. that are input to the tint transform.
func (_afgc *PdfColorspaceDeviceN )GetNumComponents ()int {return _afgc .ColorantNames .Len ()};var _ pdfFont =(*pdfCIDFontType0 )(nil );
// GetEncryptionMethod returns a descriptive information string about the encryption method used.
func (_aeaed *PdfReader )GetEncryptionMethod ()string {_bcefa :=_aeaed ._gdbbd .GetCrypter ();return _bcefa .String ();};func (_aec *PdfReader )newPdfAnnotationRichMediaFromDict (_afbb *_aef .PdfObjectDictionary )(*PdfAnnotationRichMedia ,error ){_bgca :=&PdfAnnotationRichMedia {};_bgca .RichMediaSettings =_afbb .Get ("\u0052\u0069\u0063\u0068\u004d\u0065\u0064\u0069\u0061\u0053\u0065\u0074t\u0069\u006e\u0067\u0073");_bgca .RichMediaContent =_afbb .Get ("\u0052\u0069c\u0068\u004d\u0065d\u0069\u0061\u0043\u006f\u006e\u0074\u0065\u006e\u0074");return _bgca ,nil ;};
// PdfField contains the common attributes of a form field. The context object contains the specific field data
// which can represent a button, text, choice or signature.
// The PdfField is typically not used directly, but is encapsulated by the more specific field types such as
// PdfFieldButton etc (i.e. the context attribute).
type PdfField struct{_aafba PdfModel ;_abebg *_aef .PdfIndirectObject ;Parent *PdfField ;Annotations []*PdfAnnotationWidget ;Kids []*PdfField ;FT *_aef .PdfObjectName ;T *_aef .PdfObjectString ;TU *_aef .PdfObjectString ;TM *_aef .PdfObjectString ;Ff *_aef .PdfObjectInteger ;V _aef .PdfObject ;DV _aef .PdfObject ;AA _aef .PdfObject ;};
// ToPdfObject returns the PDF representation of the function.
func (_eaec *PdfFunctionType2 )ToPdfObject ()_aef .PdfObject {_ddae :=_aef .MakeDict ();_ddae .Set ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065",_aef .MakeInteger (2));_facdd :=&_aef .PdfObjectArray {};for _ ,_gfgd :=range _eaec .Domain {_facdd .Append (_aef .MakeFloat (_gfgd ));};_ddae .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_facdd );if _eaec .Range !=nil {_feeea :=&_aef .PdfObjectArray {};for _ ,_dfeb :=range _eaec .Range {_feeea .Append (_aef .MakeFloat (_dfeb ));};_ddae .Set ("\u0052\u0061\u006eg\u0065",_feeea );};if _eaec .C0 !=nil {_ggeef :=&_aef .PdfObjectArray {};for _ ,_gfcbc :=range _eaec .C0 {_ggeef .Append (_aef .MakeFloat (_gfcbc ));};_ddae .Set ("\u0043\u0030",_ggeef );};if _eaec .C1 !=nil {_efad :=&_aef .PdfObjectArray {};for _ ,_bfga :=range _eaec .C1 {_efad .Append (_aef .MakeFloat (_bfga ));};_ddae .Set ("\u0043\u0031",_efad );};_ddae .Set ("\u004e",_aef .MakeFloat (_eaec .N ));if _eaec ._fecc !=nil {_eaec ._fecc .PdfObject =_ddae ;return _eaec ._fecc ;};return _ddae ;};
// SetLocation sets the `Location` field of the signature.
func (_cbbd *PdfSignature )SetLocation (location string ){_cbbd .Location =_aef .MakeString (location )};
// ToPdfObject implements interface PdfModel.
func (_eabge *PdfAnnotationUnderline )ToPdfObject ()_aef .PdfObject {_eabge .PdfAnnotation .ToPdfObject ();_fdbc :=_eabge ._edc ;_gecd :=_fdbc .PdfObject .(*_aef .PdfObjectDictionary );_eabge .PdfAnnotationMarkup .appendToPdfDictionary (_gecd );_gecd .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_aef .MakeName ("\u0055n\u0064\u0065\u0072\u006c\u0069\u006ee"));_gecd .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_eabge .QuadPoints );return _fdbc ;};const (BorderStyleSolid BorderStyle =iota ;BorderStyleDashed BorderStyle =iota ;BorderStyleBeveled BorderStyle =iota ;BorderStyleInset BorderStyle =iota ;BorderStyleUnderline BorderStyle =iota ;);func (_bfgbd SignatureValidationResult )String ()string {var _edbcc _cg .Buffer ;_edbcc .WriteString (_b .Sprintf ("\u004ea\u006d\u0065\u003a\u0020\u0025\u0073\n",_bfgbd .Name ));if _bfgbd .Date ._eacag > 0{_edbcc .WriteString (_b .Sprintf ("\u0044a\u0074\u0065\u003a\u0020\u0025\u0073\n",_bfgbd .Date .ToGoTime ().String ()));}else {_edbcc .WriteString ("\u0044\u0061\u0074\u0065 n\u006f\u0074\u0020\u0073\u0070\u0065\u0063\u0069\u0066\u0069\u0065\u0064\u000a");};if len (_bfgbd .Reason )> 0{_edbcc .WriteString (_b .Sprintf ("R\u0065\u0061\u0073\u006f\u006e\u003a\u0020\u0025\u0073\u000a",_bfgbd .Reason ));}else {_edbcc .WriteString ("N\u006f \u0072\u0065\u0061\u0073\u006f\u006e\u0020\u0073p\u0065\u0063\u0069\u0066ie\u0064\u000a");};if len (_bfgbd .Location )> 0{_edbcc .WriteString (_b .Sprintf ("\u004c\u006f\u0063\u0061\u0074\u0069\u006f\u006e\u003a\u0020\u0025\u0073\u000a",_bfgbd .Location ));}else {_edbcc .WriteString ("\u004c\u006f\u0063at\u0069\u006f\u006e\u0020\u006e\u006f\u0074\u0020\u0073\u0070\u0065\u0063\u0069\u0066\u0069\u0065\u0064\u000a");};if len (_bfgbd .ContactInfo )> 0{_edbcc .WriteString (_b .Sprintf ("\u0043\u006f\u006e\u0074\u0061\u0063\u0074\u0020\u0049\u006e\u0066\u006f:\u0020\u0025\u0073\u000a",_bfgbd .ContactInfo ));}else {_edbcc .WriteString ("C\u006f\u006e\u0074\u0061\u0063\u0074 \u0069\u006e\u0066\u006f\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063i\u0066i\u0065\u0064\u000a");};_edbcc .WriteString (_b .Sprintf ("F\u0069\u0065\u006c\u0064\u0073\u003a\u0020\u0025\u0064\u000a",len (_bfgbd .Fields )));if _bfgbd .IsSigned {_edbcc .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 {_edbcc .WriteString ("\u0053\u0069\u0067\u006eed\u003a\u0020\u004e\u006f\u0074\u0020\u0073\u0069\u0067\u006e\u0065\u0064\u000a");};if _bfgbd .IsVerified {_edbcc .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 {_edbcc .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 _bfgbd .IsTrusted {_edbcc .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 {_edbcc .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 !_bfgbd .GeneralizedTime .IsZero (){_edbcc .WriteString (_b .Sprintf ("G\u0065n\u0065\u0072\u0061\u006c\u0069\u007a\u0065\u0064T\u0069\u006d\u0065\u003a %\u0073\u000a",_bfgbd .GeneralizedTime .String ()));};return _edbcc .String ();};
// GetNumComponents returns the number of color components of the colorspace device.
// Returns 3 for a CalRGB device.
func (_aecf *PdfColorspaceCalRGB )GetNumComponents ()int {return 3};type fontCommon struct{_fegdg string ;_ababd string ;_cebc string ;_ddcbd _aef .PdfObject ;_ecefd *_gg .CMap ;_bgfd *PdfFontDescriptor ;_adfb int64 ;};var _bbbga =false ;
// GenerateXObjectName generates an unused XObject name that can be used for
// adding new XObjects. Uses format XObj1, XObj2, ...
func (_fceg *PdfPageResources )GenerateXObjectName ()_aef .PdfObjectName {_fadf :=1;for {_fbbga :=_aef .MakeName (_b .Sprintf ("\u0058\u004f\u0062\u006a\u0025\u0064",_fadf ));if !_fceg .HasXObjectByName (*_fbbga ){return *_fbbga ;};_fadf ++;};};
// ToPdfObject implements interface PdfModel.
func (_ecc *PdfActionJavaScript )ToPdfObject ()_aef .PdfObject {_ecc .PdfAction .ToPdfObject ();_gcc :=_ecc ._gc ;_cea :=_gcc .PdfObject .(*_aef .PdfObjectDictionary );_cea .SetIfNotNil ("\u0053",_aef .MakeName (string (ActionTypeJavaScript )));_cea .SetIfNotNil ("\u004a\u0053",_ecc .JS );return _gcc ;};
// SetForms sets the Acroform for a PDF file.
func (_efccc *PdfWriter )SetForms (form *PdfAcroForm )error {_efccc ._feabe =form ;return nil };
// NewPdfAnnotationInk returns a new ink annotation.
func NewPdfAnnotationInk ()*PdfAnnotationInk {_cec :=NewPdfAnnotation ();_abed :=&PdfAnnotationInk {};_abed .PdfAnnotation =_cec ;_abed .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_cec .SetContext (_abed );return _abed ;};
// PdfActionGoToE represents a GoToE action.
type PdfActionGoToE struct{*PdfAction ;F *PdfFilespec ;D _aef .PdfObject ;NewWindow _aef .PdfObject ;T _aef .PdfObject ;};func (_eegc *pdfCIDFontType2 )getFontDescriptor ()*PdfFontDescriptor {return _eegc ._bgfd };
// GetContext returns a reference to the subshading entry as represented by PdfShadingType1-7.
func (_bfceb *PdfShading )GetContext ()PdfModel {return _bfceb ._egaca };func (_cafbb *PdfReader )loadAnnotations (_acfff _aef .PdfObject )([]*PdfAnnotation ,error ){_dfeac ,_gffeg :=_aef .GetArray (_acfff );if !_gffeg {return nil ,_b .Errorf ("\u0041\u006e\u006e\u006fts\u0020\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0061\u0072\u0072\u0061\u0079");};var _bgcga []*PdfAnnotation ;for _ ,_efdf :=range _dfeac .Elements (){_efdf =_aef .ResolveReference (_efdf );if _ ,_bfac :=_efdf .(*_aef .PdfObjectNull );_bfac {continue ;};_dccfac ,_gcdff :=_efdf .(*_aef .PdfObjectDictionary );_bfeea ,_cdcecg :=_efdf .(*_aef .PdfIndirectObject );if _gcdff {_bfeea =&_aef .PdfIndirectObject {};_bfeea .PdfObject =_dccfac ;}else {if !_cdcecg {return nil ,_b .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");};};_ddaac ,_gbdag :=_cafbb .newPdfAnnotationFromIndirectObject (_bfeea );if _gbdag !=nil {return nil ,_gbdag ;};switch _afcc :=_ddaac .GetContext ().(type ){case *PdfAnnotationWidget :for _ ,_cdggc :=range _cafbb .AcroForm .AllFields (){if _cdggc ._abebg ==_afcc .Parent {_afcc ._ccc =_cdggc ;break ;};};};if _ddaac !=nil {_bgcga =append (_bgcga ,_ddaac );};};return _bgcga ,nil ;};
// PdfAnnotationInk represents Ink annotations.
// (Section 12.5.6.13).
type PdfAnnotationInk struct{*PdfAnnotation ;*PdfAnnotationMarkup ;InkList _aef .PdfObject ;BS _aef .PdfObject ;};
// ToPdfObject implements interface PdfModel.
func (_bce *PdfAnnotationSquare )ToPdfObject ()_aef .PdfObject {_bce .PdfAnnotation .ToPdfObject ();_aee :=_bce ._edc ;_bdf :=_aee .PdfObject .(*_aef .PdfObjectDictionary );if _bce .PdfAnnotationMarkup !=nil {_bce .PdfAnnotationMarkup .appendToPdfDictionary (_bdf );};_bdf .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_aef .MakeName ("\u0053\u0071\u0075\u0061\u0072\u0065"));_bdf .SetIfNotNil ("\u0042\u0053",_bce .BS );_bdf .SetIfNotNil ("\u0049\u0043",_bce .IC );_bdf .SetIfNotNil ("\u0042\u0045",_bce .BE );_bdf .SetIfNotNil ("\u0052\u0044",_bce .RD );return _aee ;};func (_gcac *PdfAcroForm )filteredFields (_fgdg FieldFilterFunc ,_gcece bool )[]*PdfField {if _gcac ==nil {return nil ;};return _cgbda (_gcac .Fields ,_fgdg ,_gcece );};func (_gae *PdfReader )newPdfActionSubmitFormFromDict (_ace *_aef .PdfObjectDictionary )(*PdfActionSubmitForm ,error ){_fdb ,_aga :=_bfc (_ace .Get ("\u0046"));if _aga !=nil {return nil ,_aga ;};return &PdfActionSubmitForm {F :_fdb ,Fields :_ace .Get ("\u0046\u0069\u0065\u006c\u0064\u0073"),Flags :_ace .Get ("\u0046\u006c\u0061g\u0073")},nil ;};
// ToPdfObject implements interface PdfModel.
func (_ccccb *PdfAnnotationCircle )ToPdfObject ()_aef .PdfObject {_ccccb .PdfAnnotation .ToPdfObject ();_eabg :=_ccccb ._edc ;_eag :=_eabg .PdfObject .(*_aef .PdfObjectDictionary );_ccccb .PdfAnnotationMarkup .appendToPdfDictionary (_eag );_eag .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_aef .MakeName ("\u0043\u0069\u0072\u0063\u006c\u0065"));_eag .SetIfNotNil ("\u0042\u0053",_ccccb .BS );_eag .SetIfNotNil ("\u0049\u0043",_ccccb .IC );_eag .SetIfNotNil ("\u0042\u0045",_ccccb .BE );_eag .SetIfNotNil ("\u0052\u0044",_ccccb .RD );return _eabg ;};
// 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 *_aef .PdfObjectStream )(*XObjectImage ,error ){_gddbc :=&XObjectImage {};_gddbc ._dcafe =stream ;_fbeg :=*(stream .PdfObjectDictionary );_afee ,_ebdada :=_aef .NewEncoderFromStream (stream );if _ebdada !=nil {return nil ,_ebdada ;};_gddbc .Filter =_afee ;if _bgadf :=_aef .TraceToDirectObject (_fbeg .Get ("\u0057\u0069\u0064t\u0068"));_bgadf !=nil {_gfcde ,_agaeff :=_bgadf .(*_aef .PdfObjectInteger );if !_agaeff {return nil ,_fa .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");};_abeaf :=int64 (*_gfcde );_gddbc .Width =&_abeaf ;}else {return nil ,_fa .New ("\u0077\u0069\u0064\u0074\u0068\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};if _aaege :=_aef .TraceToDirectObject (_fbeg .Get ("\u0048\u0065\u0069\u0067\u0068\u0074"));_aaege !=nil {_eedfa ,_ddaeg :=_aaege .(*_aef .PdfObjectInteger );if !_ddaeg {return nil ,_fa .New ("i\u006e\u0076\u0061\u006c\u0069\u0064 \u0069\u006d\u0061\u0067\u0065\u0020\u0068\u0065\u0069g\u0068\u0074\u0020o\u0062j\u0065\u0063\u0074");};_gbdgf :=int64 (*_eedfa );_gddbc .Height =&_gbdgf ;}else {return nil ,_fa .New ("\u0068\u0065\u0069\u0067\u0068\u0074\u0020\u006d\u0069s\u0073\u0069\u006e\u0067");};if _dggf :=_aef .TraceToDirectObject (_fbeg .Get ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065"));_dggf !=nil {_fagae ,_gdgae :=NewPdfColorspaceFromPdfObject (_dggf );if _gdgae !=nil {return nil ,_gdgae ;};_gddbc .ColorSpace =_fagae ;}else {_abe .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");_gddbc .ColorSpace =NewPdfColorspaceDeviceGray ();};if _afdfe :=_aef .TraceToDirectObject (_fbeg .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074"));_afdfe !=nil {_eagfg ,_facgd :=_afdfe .(*_aef .PdfObjectInteger );if !_facgd {return nil ,_fa .New ("i\u006e\u0076\u0061\u006c\u0069\u0064 \u0069\u006d\u0061\u0067\u0065\u0020\u0068\u0065\u0069g\u0068\u0074\u0020o\u0062j\u0065\u0063\u0074");};_cddfd :=int64 (*_eagfg );_gddbc .BitsPerComponent =&_cddfd ;};_gddbc .Intent =_fbeg .Get ("\u0049\u006e\u0074\u0065\u006e\u0074");_gddbc .ImageMask =_fbeg .Get ("\u0049m\u0061\u0067\u0065\u004d\u0061\u0073k");_gddbc .Mask =_fbeg .Get ("\u004d\u0061\u0073\u006b");_gddbc .Decode =_fbeg .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");_gddbc .Interpolate =_fbeg .Get ("I\u006e\u0074\u0065\u0072\u0070\u006f\u006c\u0061\u0074\u0065");_gddbc .Alternatives =_fbeg .Get ("\u0041\u006c\u0074e\u0072\u006e\u0061\u0074\u0069\u0076\u0065\u0073");_gddbc .SMask =_fbeg .Get ("\u0053\u004d\u0061s\u006b");_gddbc .SMaskInData =_fbeg .Get ("S\u004d\u0061\u0073\u006b\u0049\u006e\u0044\u0061\u0074\u0061");_gddbc .Matte =_fbeg .Get ("\u004d\u0061\u0074t\u0065");_gddbc .Name =_fbeg .Get ("\u004e\u0061\u006d\u0065");_gddbc .StructParent =_fbeg .Get ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074");_gddbc .ID =_fbeg .Get ("\u0049\u0044");_gddbc .OPI =_fbeg .Get ("\u004f\u0050\u0049");_gddbc .Metadata =_fbeg .Get ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");_gddbc .OC =_fbeg .Get ("\u004f\u0043");_gddbc .Stream =stream .Stream ;return _gddbc ,nil ;};func _acfce (_eegfc *fontCommon )*pdfCIDFontType0 {return &pdfCIDFontType0 {fontCommon :*_eegfc }};
// 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 (_aefc *PdfFont )CharcodeBytesToUnicode (data []byte )(string ,int ,int ){_dagfa ,_ ,_eddg :=_aefc .CharcodesToUnicodeWithStats (_aefc .BytesToCharcodes (data ));_gcebd :=_be .ExpandLigatures (_dagfa );return _gcebd ,_eca .RuneCountInString (_gcebd ),_eddg ;};
// 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 (_ddfg byte )byte ;
// 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 *_aef .PdfIndirectObject ;SV *_aef .PdfIndirectObject ;};
// 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 {_eefcf ,_afcf :=NewStandard14Font (basefont );if _afcf !=nil {panic (_b .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 _eefcf ;};
// UpdatePage updates the `page` in the new revision if it has changed.
func (_fff *PdfAppender )UpdatePage (page *PdfPage ){_fff .updateObjectsDeep (page .ToPdfObject (),nil )};
// GetContainingPdfObject returns the container of the outline item (indirect object).
func (_gecad *PdfOutlineItem )GetContainingPdfObject ()_aef .PdfObject {return _gecad ._gdgba };func (_daf *PdfReader )newPdfActionTransFromDict (_daeg *_aef .PdfObjectDictionary )(*PdfActionTrans ,error ){return &PdfActionTrans {Trans :_daeg .Get ("\u0054\u0072\u0061n\u0073")},nil ;};
// AddWatermarkImage adds a watermark to the page.
func (_edea *PdfPage )AddWatermarkImage (ximg *XObjectImage ,opt WatermarkImageOptions )error {_dbgafd ,_geab :=_edea .GetMediaBox ();if _geab !=nil {return _geab ;};_bfcad :=_dbgafd .Urx -_dbgafd .Llx ;_bbabc :=_dbgafd .Ury -_dbgafd .Lly ;_ggfgf :=float64 (*ximg .Width );_bcdee :=(_bfcad -_ggfgf )/2;if opt .FitToWidth {_ggfgf =_bfcad ;_bcdee =0;};_bcbf :=_bbabc ;_gdbdb :=float64 (0);if opt .PreserveAspectRatio {_bcbf =_ggfgf *float64 (*ximg .Height )/float64 (*ximg .Width );_gdbdb =(_bbabc -_bcbf )/2;};if _edea .Resources ==nil {_edea .Resources =NewPdfPageResources ();};_agfgf :=0;_afccf :=_aef .PdfObjectName (_b .Sprintf ("\u0049\u006d\u0077%\u0064",_agfgf ));for _edea .Resources .HasXObjectByName (_afccf ){_agfgf ++;_afccf =_aef .PdfObjectName (_b .Sprintf ("\u0049\u006d\u0077%\u0064",_agfgf ));};_geab =_edea .AddImageResource (_afccf ,ximg );if _geab !=nil {return _geab ;};_agfgf =0;_egagb :=_aef .PdfObjectName (_b .Sprintf ("\u0047\u0053\u0025\u0064",_agfgf ));for _edea .HasExtGState (_egagb ){_agfgf ++;_egagb =_aef .PdfObjectName (_b .Sprintf ("\u0047\u0053\u0025\u0064",_agfgf ));};_acbbe :=_aef .MakeDict ();_acbbe .Set ("\u0042\u004d",_aef .MakeName ("\u004e\u006f\u0072\u006d\u0061\u006c"));_acbbe .Set ("\u0043\u0041",_aef .MakeFloat (opt .Alpha ));_acbbe .Set ("\u0063\u0061",_aef .MakeFloat (opt .Alpha ));_geab =_edea .AddExtGState (_egagb ,_acbbe );if _geab !=nil {return _geab ;};_gbfgb :=_b .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",_egagb ,_ggfgf ,_bcbf ,_bcdee ,_gdbdb ,_afccf );_edea .AddContentStreamByString (_gbfgb );return nil ;};
// 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 (_bfgg *Image )SetSamples (samples []uint32 ){if _bfgg .BitsPerComponent < 8{samples =_bfgg .samplesAddPadding (samples );};_gdad :=_ea .ResampleUint32 (samples ,int (_bfgg .BitsPerComponent ),8);_geegd :=make ([]byte ,len (_gdad ));for _gffg ,_afcfc :=range _gdad {_geegd [_gffg ]=byte (_afcfc );};_bfgg .Data =_geegd ;};func (_bebfg Image )getBase ()_gb .ImageBase {return _gb .NewImageBase (int (_bebfg .Width ),int (_bebfg .Height ),int (_bebfg .BitsPerComponent ),_bebfg .ColorComponents ,_bebfg .Data ,_bebfg ._afge ,_bebfg ._fgafa );};
// PdfAnnotationStrikeOut represents StrikeOut annotations.
// (Section 12.5.6.10).
type PdfAnnotationStrikeOut struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _aef .PdfObject ;};func _bdec (_cgfb *_aef .PdfObjectDictionary )(*PdfShadingType4 ,error ){_eegd :=PdfShadingType4 {};_fagaa :=_cgfb .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065");if _fagaa ==nil {_abe .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 ;};_aaecb ,_abfde :=_fagaa .(*_aef .PdfObjectInteger );if !_abfde {_abe .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",_fagaa );return nil ,_aef .ErrTypeError ;};_eegd .BitsPerCoordinate =_aaecb ;_fagaa =_cgfb .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074");if _fagaa ==nil {_abe .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 ;};_aaecb ,_abfde =_fagaa .(*_aef .PdfObjectInteger );if !_abfde {_abe .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",_fagaa );return nil ,_aef .ErrTypeError ;};_eegd .BitsPerComponent =_aaecb ;_fagaa =_cgfb .Get ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067");if _fagaa ==nil {_abe .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 ;};_aaecb ,_abfde =_fagaa .(*_aef .PdfObjectInteger );if !_abfde {_abe .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",_fagaa );return nil ,_aef .ErrTypeError ;};_eegd .BitsPerComponent =_aaecb ;_fagaa =_cgfb .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");if _fagaa ==nil {_abe .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 ;};_abcb ,_abfde :=_fagaa .(*_aef .PdfObjectArray );if !_abfde {_abe .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",_fagaa );return nil ,_aef .ErrTypeError ;};_eegd .Decode =_abcb ;_fagaa =_cgfb .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");if _fagaa ==nil {_abe .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 ;};_eegd .Function =[]PdfFunction {};if _dbdf ,_gfcf :=_fagaa .(*_aef .PdfObjectArray );_gfcf {for _ ,_bcbed :=range _dbdf .Elements (){_gcbbg ,_fgdga :=_begb (_bcbed );if _fgdga !=nil {_abe .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",_fgdga );return nil ,_fgdga ;};_eegd .Function =append (_eegd .Function ,_gcbbg );};}else {_bcbae ,_baecc :=_begb (_fagaa );if _baecc !=nil {_abe .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",_baecc );return nil ,_baecc ;};_eegd .Function =append (_eegd .Function ,_bcbae );};return &_eegd ,nil ;};func (_gcba *PdfPattern )getDict ()*_aef .PdfObjectDictionary {if _dbfd ,_gbddd :=_gcba ._fgbcde .(*_aef .PdfIndirectObject );_gbddd {_gfbcd ,_cbgf :=_dbfd .PdfObject .(*_aef .PdfObjectDictionary );if !_cbgf {return nil ;};return _gfbcd ;}else if _fcgbg ,_aeeg :=_gcba ._fgbcde .(*_aef .PdfObjectStream );_aeeg {return _fcgbg .PdfObjectDictionary ;}else {_abe .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",_gcba ._fgbcde );return nil ;};};func _cadc (_ecaf _aef .PdfObject )(*PdfBorderStyle ,error ){_fgc :=&PdfBorderStyle {};_fgc ._ggegf =_ecaf ;var _gcec *_aef .PdfObjectDictionary ;_ecaf =_aef .TraceToDirectObject (_ecaf );_gcec ,_fdc :=_ecaf .(*_aef .PdfObjectDictionary );if !_fdc {return nil ,_fa .New ("\u0074\u0079\u0070\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};if _bffe :=_gcec .Get ("\u0054\u0079\u0070\u0065");_bffe !=nil {_eddag ,_dfce :=_bffe .(*_aef .PdfObjectName );if !_dfce {_abe .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",_bffe );}else {if *_eddag !="\u0042\u006f\u0072\u0064\u0065\u0072"{_abe .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",*_eddag );};};};if _cfce :=_gcec .Get ("\u0057");_cfce !=nil {_cbab ,_bgdab :=_aef .GetNumberAsFloat (_cfce );if _bgdab !=nil {_abe .Log .Debug ("\u0045\u0072\u0072\u006fr \u0072\u0065\u0074\u0072\u0069\u0065\u0076\u0069\u006e\u0067\u0020\u0057\u003a\u0020%\u0076",_bgdab );return nil ,_bgdab ;};_fgc .W =&_cbab ;};if _efec :=_gcec .Get ("\u0053");_efec !=nil {_efgf ,_cbba :=_efec .(*_aef .PdfObjectName );if !_cbba {return nil ,_fa .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 _ebdd BorderStyle ;switch *_efgf {case "\u0053":_ebdd =BorderStyleSolid ;case "\u0044":_ebdd =BorderStyleDashed ;case "\u0042":_ebdd =BorderStyleBeveled ;case "\u0049":_ebdd =BorderStyleInset ;case "\u0055":_ebdd =BorderStyleUnderline ;default:_abe .Log .Debug ("I\u006e\u0076\u0061\u006cid\u0020s\u0074\u0079\u006c\u0065\u0020n\u0061\u006d\u0065\u0020\u0025\u0073",*_efgf );return nil ,_fa .New ("\u0073\u0074\u0079\u006ce \u0074\u0079\u0070\u0065\u0020\u0072\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065c\u006b");};_fgc .S =&_ebdd ;};if _dfgge :=_gcec .Get ("\u0044");_dfgge !=nil {_fbb ,_fbbd :=_dfgge .(*_aef .PdfObjectArray );if !_fbbd {_abe .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",_dfgge );return nil ,_fa .New ("\u0062o\u0072\u0064\u0065\u0072 \u0044\u0020\u0074\u0079\u0070e\u0020c\u0068e\u0063\u006b\u0020\u0065\u0072\u0072\u006fr");};_beba ,_gafd :=_fbb .ToIntegerArray ();if _gafd !=nil {_abe .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",_gafd );return nil ,_gafd ;};_fgc .D =&_beba ;};return _fgc ,nil ;};func _gfecd (_bfead *_aef .PdfObjectStream )(*PdfFunctionType4 ,error ){_edbdf :=&PdfFunctionType4 {};_edbdf ._gegfd =_bfead ;_agbbe :=_bfead .PdfObjectDictionary ;_dcddc ,_edgfe :=_aef .TraceToDirectObject (_agbbe .Get ("\u0044\u006f\u006d\u0061\u0069\u006e")).(*_aef .PdfObjectArray );if !_edgfe {_abe .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_fa .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 _dcddc .Len ()%2!=0{_abe .Log .Error ("\u0044\u006f\u006d\u0061\u0069\u006e\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");return nil ,_fa .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0064\u006f\u006da\u0069\u006e\u0020\u0072an\u0067\u0065");};_aebg ,_ggegag :=_dcddc .ToFloat64Array ();if _ggegag !=nil {return nil ,_ggegag ;};_edbdf .Domain =_aebg ;_dcddc ,_edgfe =_aef .TraceToDirectObject (_agbbe .Get ("\u0052\u0061\u006eg\u0065")).(*_aef .PdfObjectArray );if _edgfe {if _dcddc .Len ()< 0||_dcddc .Len ()%2!=0{return nil ,_fa .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0061\u006e\u0067\u0065");};_dbcg ,_ddgac :=_dcddc .ToFloat64Array ();if _ddgac !=nil {return nil ,_ddgac ;};_edbdf .Range =_dbcg ;};_egcfb ,_ggegag :=_aef .DecodeStream (_bfead );if _ggegag !=nil {return nil ,_ggegag ;};_edbdf ._ccagg =_egcfb ;_ffcgd :=_ga .NewPSParser (_egcfb );_edabab ,_ggegag :=_ffcgd .Parse ();if _ggegag !=nil {return nil ,_ggegag ;};_edbdf .Program =_edabab ;return _edbdf ,nil ;};
// NewPdfColorspaceLab returns a new Lab colorspace object.
func NewPdfColorspaceLab ()*PdfColorspaceLab {_eccdc :=&PdfColorspaceLab {};_eccdc .BlackPoint =[]float64 {0.0,0.0,0.0};_eccdc .Range =[]float64 {-100,100,-100,100};return _eccdc ;};
// ToPdfObject converts PdfAcroForm to a PdfObject, i.e. an indirect object containing the
// AcroForm dictionary.
func (_ecaa *PdfAcroForm )ToPdfObject ()_aef .PdfObject {_adga :=_ecaa ._aade ;_adedg :=_adga .PdfObject .(*_aef .PdfObjectDictionary );if _ecaa .Fields !=nil {_cebcc :=_aef .PdfObjectArray {};for _ ,_eedd :=range *_ecaa .Fields {_dceb :=_eedd .GetContext ();if _dceb !=nil {_cebcc .Append (_dceb .ToPdfObject ());}else {_cebcc .Append (_eedd .ToPdfObject ());};};_adedg .Set ("\u0046\u0069\u0065\u006c\u0064\u0073",&_cebcc );};if _ecaa .NeedAppearances !=nil {_adedg .Set ("\u004ee\u0065d\u0041\u0070\u0070\u0065\u0061\u0072\u0061\u006e\u0063\u0065\u0073",_ecaa .NeedAppearances );};if _ecaa .SigFlags !=nil {_adedg .Set ("\u0053\u0069\u0067\u0046\u006c\u0061\u0067\u0073",_ecaa .SigFlags );};if _ecaa .CO !=nil {_adedg .Set ("\u0043\u004f",_ecaa .CO );};if _ecaa .DR !=nil {_adedg .Set ("\u0044\u0052",_ecaa .DR .ToPdfObject ());};if _ecaa .DA !=nil {_adedg .Set ("\u0044\u0041",_ecaa .DA );};if _ecaa .Q !=nil {_adedg .Set ("\u0051",_ecaa .Q );};if _ecaa .XFA !=nil {_adedg .Set ("\u0058\u0046\u0041",_ecaa .XFA );};return _adga ;};
// GetContainingPdfObject returns the page as a dictionary within an PdfIndirectObject.
func (_ddda *PdfPage )GetContainingPdfObject ()_aef .PdfObject {return _ddda ._gfbbf };var _cbgcf =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"};
// NewPdfAnnotationHighlight returns a new text highlight annotation.
func NewPdfAnnotationHighlight ()*PdfAnnotationHighlight {_acbf :=NewPdfAnnotation ();_aac :=&PdfAnnotationHighlight {};_aac .PdfAnnotation =_acbf ;_aac .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_acbf .SetContext (_aac );return _aac ;};
// ToPdfObject implements interface PdfModel.
func (_fce *PdfActionSound )ToPdfObject ()_aef .PdfObject {_fce .PdfAction .ToPdfObject ();_ca :=_fce ._gc ;_cae :=_ca .PdfObject .(*_aef .PdfObjectDictionary );_cae .SetIfNotNil ("\u0053",_aef .MakeName (string (ActionTypeSound )));_cae .SetIfNotNil ("\u0053\u006f\u0075n\u0064",_fce .Sound );_cae .SetIfNotNil ("\u0056\u006f\u006c\u0075\u006d\u0065",_fce .Volume );_cae .SetIfNotNil ("S\u0079\u006e\u0063\u0068\u0072\u006f\u006e\u006f\u0075\u0073",_fce .Synchronous );_cae .SetIfNotNil ("\u0052\u0065\u0070\u0065\u0061\u0074",_fce .Repeat );_cae .SetIfNotNil ("\u004d\u0069\u0078",_fce .Mix );return _ca ;};
// NewPdfColorspaceICCBased returns a new ICCBased colorspace object.
func NewPdfColorspaceICCBased (N int )(*PdfColorspaceICCBased ,error ){_cgfc :=&PdfColorspaceICCBased {};if N !=1&&N !=3&&N !=4{return nil ,_b .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u004e\u0020\u0028\u0031/\u0033\u002f\u0034\u0029");};_cgfc .N =N ;return _cgfc ,nil ;};
// GetCerts returns the signature certificate chain.
func (_efafg *PdfSignature )GetCerts ()([]*_c .Certificate ,error ){var _aafbf []func ()([]*_c .Certificate ,error );switch _efcbeg ,_ :=_aef .GetNameVal (_efafg .SubFilter );_efcbeg {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":_aafbf =append (_aafbf ,_efafg .extractChainFromPKCS7 ,_efafg .extractChainFromCert );case "\u0061d\u0062e\u002e\u0078\u0035\u0030\u0039.\u0072\u0073a\u005f\u0073\u0068\u0061\u0031":_aafbf =append (_aafbf ,_efafg .extractChainFromCert );case "\u0045\u0054\u0053I\u002e\u0052\u0046\u0043\u0033\u0031\u0036\u0031":_aafbf =append (_aafbf ,_efafg .extractChainFromPKCS7 );default:return nil ,_b .Errorf ("\u0075n\u0073\u0075\u0070\u0070o\u0072\u0074\u0065\u0064\u0020S\u0075b\u0046i\u006c\u0074\u0065\u0072\u003a\u0020\u0025s",_efcbeg );};for _ ,_ccedb :=range _aafbf {_afbee ,_dacbc :=_ccedb ();if _dacbc !=nil {return nil ,_dacbc ;};if len (_afbee )> 0{return _afbee ,nil ;};};return nil ,ErrSignNoCertificates ;};
// GetXObjectByName gets XObject by name.
func (_fccg *PdfPage )GetXObjectByName (name _aef .PdfObjectName )(_aef .PdfObject ,bool ){_becaa ,_abcac :=_fccg .Resources .XObject .(*_aef .PdfObjectDictionary );if !_abcac {return nil ,false ;};if _eagc :=_becaa .Get (name );_eagc !=nil {return _eagc ,true ;};return nil ,false ;};
// 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 _aef .PdfObjectArray )(*PdfRectangle ,error ){_ddgdgb :=PdfRectangle {};if arr .Len ()!=4{return nil ,_fa .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 _ffced error ;_ddgdgb .Llx ,_ffced =_aef .GetNumberAsFloat (arr .Get (0));if _ffced !=nil {return nil ,_ffced ;};_ddgdgb .Lly ,_ffced =_aef .GetNumberAsFloat (arr .Get (1));if _ffced !=nil {return nil ,_ffced ;};_ddgdgb .Urx ,_ffced =_aef .GetNumberAsFloat (arr .Get (2));if _ffced !=nil {return nil ,_ffced ;};_ddgdgb .Ury ,_ffced =_aef .GetNumberAsFloat (arr .Get (3));if _ffced !=nil {return nil ,_ffced ;};return &_ddgdgb ,nil ;};
// ColorFromFloats returns a new PdfColor based on the input slice of color
// components. The slice should contain three elements representing the
// red, green and blue components of the color. The values of the elements
// should be between 0 and 1.
func (_fdaag *PdfColorspaceDeviceRGB )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=3{return nil ,_fa .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_gbga :=vals [0];if _gbga < 0.0||_gbga > 1.0{return nil ,_fa .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_fcfg :=vals [1];if _fcfg < 0.0||_fcfg > 1.0{return nil ,_fa .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_ecdc :=vals [2];if _ecdc < 0.0||_ecdc > 1.0{return nil ,_fa .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_facg :=NewPdfColorDeviceRGB (_gbga ,_fcfg ,_ecdc );return _facg ,nil ;};func _gbgga (_fgbae *PdfField ,_bbbef _aef .PdfObject ){for _ ,_cbfeg :=range _fgbae .Annotations {_cbfeg .AS =_bbbef ;_cbfeg .ToPdfObject ();};};
// C returns the value of the C component of the color.
func (_cadb *PdfColorCalRGB )C ()float64 {return _cadb [2]};func (_gaef *PdfReader )newPdfAnnotationSquigglyFromDict (_eefa *_aef .PdfObjectDictionary )(*PdfAnnotationSquiggly ,error ){_cecd :=PdfAnnotationSquiggly {};_fedf ,_egfb :=_gaef .newPdfAnnotationMarkupFromDict (_eefa );if _egfb !=nil {return nil ,_egfb ;};_cecd .PdfAnnotationMarkup =_fedf ;_cecd .QuadPoints =_eefa .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");return &_cecd ,nil ;};func _ecgdg ()string {_abdcd .Lock ();defer _abdcd .Unlock ();return _caceb };
// IsShading specifies if the pattern is a shading pattern.
func (_bdbec *PdfPattern )IsShading ()bool {return _bdbec .PatternType ==2};
// NewPdfWriter initializes a new PdfWriter.
func NewPdfWriter ()PdfWriter {_fadab :=PdfWriter {};_fadab ._cafea =map[_aef .PdfObject ]struct{}{};_fadab ._aage =[]_aef .PdfObject {};_fadab ._eabcf =map[_aef .PdfObject ][]*_aef .PdfObjectDictionary {};_fadab ._dfdcb =map[_aef .PdfObject ]struct{}{};_fadab ._cfebb =1;_fadab ._gbcce =3;_caad :=_aef .MakeDict ();_dfgec :=[]struct{_edacadg _aef .PdfObjectName ;_ddegf string ;}{{"\u0050\u0072\u006f\u0064\u0075\u0063\u0065\u0072",_cgdea ()},{"\u0043r\u0065\u0061\u0074\u006f\u0072",_daefg ()},{"\u0041\u0075\u0074\u0068\u006f\u0072",_abfgb ()},{"\u0053u\u0062\u006a\u0065\u0063\u0074",_edcgd ()},{"\u0054\u0069\u0074l\u0065",_ecgdg ()},{"\u004b\u0065\u0079\u0077\u006f\u0072\u0064\u0073",_ffdac ()}};for _ ,_cgbfd :=range _dfgec {if _cgbfd ._ddegf !=""{_caad .Set (_cgbfd ._edacadg ,_aef .MakeString (_cgbfd ._ddegf ));};};if _acbdg :=_bgcda ();!_acbdg .IsZero (){if _gbcdea ,_abef :=NewPdfDateFromTime (_acbdg );_abef ==nil {_caad .Set ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065",_gbcdea .ToPdfObject ());};};if _fdccc :=_dggdf ();!_fdccc .IsZero (){if _afbcb ,_ecece :=NewPdfDateFromTime (_fdccc );_ecece ==nil {_caad .Set ("\u004do\u0064\u0044\u0061\u0074\u0065",_afbcb .ToPdfObject ());};};_ggdae :=_aef .PdfIndirectObject {};_ggdae .PdfObject =_caad ;_fadab ._caefd =&_ggdae ;_fadab .addObject (&_ggdae );_fcga :=_aef .PdfIndirectObject {};_aadgb :=_aef .MakeDict ();_aadgb .Set ("\u0054\u0079\u0070\u0065",_aef .MakeName ("\u0043a\u0074\u0061\u006c\u006f\u0067"));_fcga .PdfObject =_aadgb ;_fadab ._bdbdfg =&_fcga ;_fadab .addObject (_fadab ._bdbdfg );_dffafb :=_aef .PdfIndirectObject {};_fcdea :=_aef .MakeDict ();_fcdea .Set ("\u0054\u0079\u0070\u0065",_aef .MakeName ("\u0050\u0061\u0067e\u0073"));_baeeca :=_aef .PdfObjectArray {};_fcdea .Set ("\u004b\u0069\u0064\u0073",&_baeeca );_fcdea .Set ("\u0043\u006f\u0075n\u0074",_aef .MakeInteger (0));_dffafb .PdfObject =_fcdea ;_fadab ._gacae =&_dffafb ;_fadab ._cggg =map[_aef .PdfObject ]struct{}{};_fadab .addObject (_fadab ._gacae );_aadgb .Set ("\u0050\u0061\u0067e\u0073",&_dffafb );_fadab ._abebc =_aadgb ;_abe .Log .Trace ("\u0043\u0061\u0074\u0061\u006c\u006f\u0067\u0020\u0025\u0073",_fcga );return _fadab ;};
// XObjectType represents the type of an XObject.
type XObjectType int ;func _aedcd (_dgfa _aef .PdfObject )(*PdfColorspaceSpecialIndexed ,error ){_edbgb :=NewPdfColorspaceSpecialIndexed ();if _cege ,_aebdb :=_dgfa .(*_aef .PdfIndirectObject );_aebdb {_edbgb ._aeca =_cege ;};_dgfa =_aef .TraceToDirectObject (_dgfa );_bdcd ,_bbfd :=_dgfa .(*_aef .PdfObjectArray );if !_bbfd {return nil ,_b .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _bdcd .Len ()!=4{return nil ,_b .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");};_dgfa =_bdcd .Get (0);_cada ,_bbfd :=_dgfa .(*_aef .PdfObjectName );if !_bbfd {return nil ,_b .Errorf ("\u0069n\u0064\u0065\u0078\u0065\u0064\u0020\u0043\u0053\u003a\u0020\u0069n\u0076\u0061\u006c\u0069\u0064\u0020\u006e\u0061\u006d\u0065");};if *_cada !="\u0049n\u0064\u0065\u0078\u0065\u0064"{return nil ,_b .Errorf ("\u0069\u006e\u0064\u0065xe\u0064\u0020\u0043\u0053\u003a\u0020\u0077\u0072\u006f\u006e\u0067\u0020\u006e\u0061m\u0065");};_dgfa =_bdcd .Get (1);_abab ,_daaa :=DetermineColorspaceNameFromPdfObject (_dgfa );if _daaa !=nil {return nil ,_daaa ;};if _abab =="\u0049n\u0064\u0065\u0078\u0065\u0064"||_abab =="\u0050a\u0074\u0074\u0065\u0072\u006e"{_abe .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",_abab );return nil ,_cbcgg ;};_dcdbe ,_daaa :=NewPdfColorspaceFromPdfObject (_dgfa );if _daaa !=nil {return nil ,_daaa ;};_edbgb .Base =_dcdbe ;_dgfa =_bdcd .Get (2);_cadd ,_daaa :=_aef .GetNumberAsInt64 (_dgfa );if _daaa !=nil {return nil ,_daaa ;};if _cadd > 255{return nil ,_b .Errorf ("\u0069n\u0064\u0065\u0078\u0065d\u0020\u0043\u0053\u003a\u0020I\u006ev\u0061l\u0069\u0064\u0020\u0068\u0069\u0076\u0061l");};_edbgb .HiVal =int (_cadd );_dgfa =_bdcd .Get (3);_edbgb .Lookup =_dgfa ;_dgfa =_aef .TraceToDirectObject (_dgfa );var _eabb []byte ;if _fadd ,_adaa :=_dgfa .(*_aef .PdfObjectString );_adaa {_eabb =_fadd .Bytes ();_abe .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",_eabb );}else if _faecc ,_faagc :=_dgfa .(*_aef .PdfObjectStream );_faagc {_abe .Log .Trace ("\u0049n\u0064e\u0078\u0065\u0064\u0020\u0073t\u0072\u0065a\u006d\u003a\u0020\u0025\u0073",_dgfa .String ());_abe .Log .Trace ("\u0045\u006e\u0063\u006fde\u0064\u0020\u0028\u0025\u0064\u0029\u0020\u003a\u0020\u0025\u0023\u0020\u0078",len (_faecc .Stream ),_faecc .Stream );_ebaf ,_ddeg :=_aef .DecodeStream (_faecc );if _ddeg !=nil {return nil ,_ddeg ;};_abe .Log .Trace ("\u0044e\u0063o\u0064\u0065\u0064\u0020\u0028%\u0064\u0029 \u003a\u0020\u0025\u0020\u0058",len (_ebaf ),_ebaf );_eabb =_ebaf ;}else {_abe .Log .Debug ("\u0054\u0079\u0070\u0065\u003a\u0020\u0025\u0054",_dgfa );return nil ,_b .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 (_eabb )< _edbgb .Base .GetNumComponents ()*(_edbgb .HiVal +1){_abe .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");_abe .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 (_eabb ),_edbgb .Base .GetNumComponents (),_edbgb .HiVal );}else {_eabb =_eabb [:_edbgb .Base .GetNumComponents ()*(_edbgb .HiVal +1)];};_edbgb ._abea =_eabb ;return _edbgb ,nil ;};
// Encoder returns the font's text encoder.
func (_aaceb *pdfFontSimple )Encoder ()_be .TextEncoder {if _aaceb ._bcbge !=nil {return _aaceb ._bcbge ;};if _aaceb ._gbee !=nil {return _aaceb ._gbee ;};_egdbd ,_ :=_be .NewSimpleTextEncoder ("\u0053\u0074a\u006e\u0064\u0061r\u0064\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",nil );return _egdbd ;};func _cbgdcg (_adaaf *_gb .ImageBase )(_bcga Image ){_bcga .Width =int64 (_adaaf .Width );_bcga .Height =int64 (_adaaf .Height );_bcga .BitsPerComponent =int64 (_adaaf .BitsPerComponent );_bcga .ColorComponents =_adaaf .ColorComponents ;_bcga .Data =_adaaf .Data ;_bcga ._fgafa =_adaaf .Decode ;_bcga ._afge =_adaaf .Alpha ;return _bcga ;};func _cfecc (_cbcd []byte )[]byte {const _bcba =52845;const _fgad =22719;_feab :=55665;for _ ,_acbe :=range _cbcd [:4]{_feab =(int (_acbe )+_feab )*_bcba +_fgad ;};_dabef :=make ([]byte ,len (_cbcd )-4);for _abggc ,_baaf :=range _cbcd [4:]{_dabef [_abggc ]=byte (int (_baaf )^_feab >>8);_feab =(int (_baaf )+_feab )*_bcba +_fgad ;};return _dabef ;};func (_dcad *LTV )buildCertChain (_bgdf ,_fbdbcg []*_c .Certificate )([]*_c .Certificate ,map[string ]*_c .Certificate ,error ){_fbdcg :=map[string ]*_c .Certificate {};for _ ,_cecae :=range _bgdf {_fbdcg [_cecae .Subject .CommonName ]=_cecae ;};_fdcd :=_bgdf ;for _ ,_gcffe :=range _fbdbcg {_gdgfe :=_gcffe .Subject .CommonName ;if _ ,_bggfg :=_fbdcg [_gdgfe ];_bggfg {continue ;};_fbdcg [_gdgfe ]=_gcffe ;_fdcd =append (_fdcd ,_gcffe );};if len (_fdcd )==0{return nil ,nil ,ErrSignNoCertificates ;};var _gbcba error ;for _cfcc :=_fdcd [0];_cfcc !=nil &&!_dcad .CertClient .IsCA (_cfcc );{_ffgfb ,_addg :=_fbdcg [_cfcc .Issuer .CommonName ];if !_addg {if _ffgfb ,_gbcba =_dcad .CertClient .GetIssuer (_cfcc );_gbcba !=nil {_abe .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",_gbcba );break ;};_fbdcg [_cfcc .Issuer .CommonName ]=_ffgfb ;_fdcd =append (_fdcd ,_ffgfb );};_cfcc =_ffgfb ;};return _fdcd ,_fbdcg ,nil ;};
// ContentStreamWrapper wraps the Page's contentstream into q ... Q blocks.
type ContentStreamWrapper interface{WrapContentStream (_eege *PdfPage )error ;};
// Encoder returns the font's text encoder.
func (_dcfgd pdfCIDFontType2 )Encoder ()_be .TextEncoder {return _dcfgd ._gdfaa };
// ImageToRGB converts an image in CMYK32 colorspace to an RGB image.
func (_fagd *PdfColorspaceDeviceCMYK )ImageToRGB (img Image )(Image ,error ){_abe .Log .Trace ("\u0043\u004d\u0059\u004b\u0033\u0032\u0020\u002d\u003e\u0020\u0052\u0047\u0042");_abe .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 );_abe .Log .Trace ("\u004c\u0065\u006e \u0064\u0061\u0074\u0061\u003a\u0020\u0025\u0064",len (img .Data ));_abe .Log .Trace ("H\u0065\u0069\u0067\u0068t:\u0020%\u0064\u002c\u0020\u0057\u0069d\u0074\u0068\u003a\u0020\u0025\u0064",img .Height ,img .Width );_cbeb ,_cdce :=_gb .NewImage (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),img .ColorComponents ,img .Data ,img ._afge ,img ._fgafa );if _cdce !=nil {return Image {},_cdce ;};_cgda ,_cdce :=_gb .NRGBAConverter .Convert (_cbeb );if _cdce !=nil {return Image {},_cdce ;};return _cbgdcg (_cgda .Base ()),nil ;};
// Enable LTV enables the specified signature. The signing certificate
// chain is extracted from the signature dictionary. Optionally, additional
// certificates can be specified through the `extraCerts` parameter.
// The LTV client attempts to build the certificate chain up to a trusted root
// by downloading any missing certificates.
func (_aaag *LTV )Enable (sig *PdfSignature ,extraCerts []*_c .Certificate )error {if _dfeg :=_aaag .validateSig (sig );_dfeg !=nil {return _dfeg ;};_bffdd ,_ebfbe :=_aaag .generateVRIKey (sig );if _ebfbe !=nil {return _ebfbe ;};if _ ,_gbgeg :=_aaag ._cbcf .VRI [_bffdd ];_gbgeg &&_aaag .SkipExisting {return nil ;};_cedfc ,_ebfbe :=sig .GetCerts ();if _ebfbe !=nil {return _ebfbe ;};return _aaag .enable (_cedfc ,extraCerts ,_bffdd );};
// ColorFromFloats returns a new PdfColor based on the input slice of color
// components. The slice should contain a single element.
func (_bccc *PdfColorspaceSpecialIndexed )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=1{return nil ,_fa .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};N :=_bccc .Base .GetNumComponents ();_cefeb :=int (vals [0])*N ;if _cefeb < 0||(_cefeb +N -1)>=len (_bccc ._abea ){return nil ,_fa .New ("\u006f\u0075\u0074\u0073\u0069\u0064\u0065\u0020\u0072\u0061\u006e\u0067\u0065");};_cfd :=_bccc ._abea [_cefeb :_cefeb +N ];var _fagb []float64 ;for _ ,_dccaa :=range _cfd {_fagb =append (_fagb ,float64 (_dccaa )/255.0);};_bafdd ,_eadb :=_bccc .Base .ColorFromFloats (_fagb );if _eadb !=nil {return nil ,_eadb ;};return _bafdd ,nil ;};func (_aacg *PdfReader )newPdfAnnotationLineFromDict (_agdd *_aef .PdfObjectDictionary )(*PdfAnnotationLine ,error ){_fced :=PdfAnnotationLine {};_ecac ,_fda :=_aacg .newPdfAnnotationMarkupFromDict (_agdd );if _fda !=nil {return nil ,_fda ;};_fced .PdfAnnotationMarkup =_ecac ;_fced .L =_agdd .Get ("\u004c");_fced .BS =_agdd .Get ("\u0042\u0053");_fced .LE =_agdd .Get ("\u004c\u0045");_fced .IC =_agdd .Get ("\u0049\u0043");_fced .LL =_agdd .Get ("\u004c\u004c");_fced .LLE =_agdd .Get ("\u004c\u004c\u0045");_fced .Cap =_agdd .Get ("\u0043\u0061\u0070");_fced .IT =_agdd .Get ("\u0049\u0054");_fced .LLO =_agdd .Get ("\u004c\u004c\u004f");_fced .CP =_agdd .Get ("\u0043\u0050");_fced .Measure =_agdd .Get ("\u004de\u0061\u0073\u0075\u0072\u0065");_fced .CO =_agdd .Get ("\u0043\u004f");return &_fced ,nil ;};
// Evaluate runs the function on the passed in slice and returns the results.
func (_cdadb *PdfFunctionType3 )Evaluate (x []float64 )([]float64 ,error ){if len (x )!=1{_abe .Log .Error ("\u004f\u006e\u006c\u0079 o\u006e\u0065\u0020\u0069\u006e\u0070\u0075\u0074\u0020\u0061\u006c\u006c\u006f\u0077e\u0064");return nil ,_fa .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};return nil ,_fa .New ("\u006e\u006f\u0074\u0020im\u0070\u006c\u0065\u006d\u0065\u006e\u0074\u0065\u0064\u0020\u0079\u0065\u0074");};
// 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 (_cgbga *PdfReader )AcroFormNeedsRepair ()(bool ,error ){var _efab []*PdfField ;if _cgbga .AcroForm !=nil {_efab =_cgbga .AcroForm .AllFields ();};_abffg :=make (map[*PdfField ]struct{},len (_efab ));for _ ,_facfb :=range _efab {_abffg [_facfb ]=struct{}{};};for _ ,_bfbdb :=range _cgbga .PageList {_dcfgb ,_dddb :=_bfbdb .GetAnnotations ();if _dddb !=nil {return false ,_dddb ;};for _ ,_afggf :=range _dcfgb {_ccefc ,_baed :=_afggf .GetContext ().(*PdfAnnotationWidget );if !_baed {continue ;};_dgaff :=_ccefc .Field ();if _dgaff ==nil {return true ,nil ;};if _ ,_cfgge :=_abffg [_dgaff ];!_cfgge {return true ,nil ;};};};return false ,nil ;};
// ToGray returns a PdfColorDeviceGray color based on the current RGB color.
func (_gcdg *PdfColorDeviceRGB )ToGray ()*PdfColorDeviceGray {_fbdg :=0.3*_gcdg .R ()+0.59*_gcdg .G ()+0.11*_gcdg .B ();_fbdg =_ad .Min (_ad .Max (_fbdg ,0.0),1.0);return NewPdfColorDeviceGray (_fbdg );};func (_aeggb *PdfReader )resolveReference (_gfabe *_aef .PdfObjectReference )(_aef .PdfObject ,bool ,error ){_cdaee ,_gadba :=_aeggb ._gdbbd .ObjCache [int (_gfabe .ObjectNumber )];if !_gadba {_abe .Log .Trace ("R\u0065\u0061\u0064\u0065r \u004co\u006f\u006b\u0075\u0070\u0020r\u0065\u0066\u003a\u0020\u0025\u0073",_gfabe );_aagf ,_cbccb :=_aeggb ._gdbbd .LookupByReference (*_gfabe );if _cbccb !=nil {return nil ,false ,_cbccb ;};_aeggb ._gdbbd .ObjCache [int (_gfabe .ObjectNumber )]=_aagf ;return _aagf ,false ,nil ;};return _cdaee ,true ,nil ;};
// PdfFunctionType3 defines stitching of the subdomains of several 1-input functions to produce
// a single new 1-input function.
type PdfFunctionType3 struct{Domain []float64 ;Range []float64 ;Functions []PdfFunction ;Bounds []float64 ;Encode []float64 ;_deaga *_aef .PdfIndirectObject ;};
// ToPdfObject returns the PDF representation of the tiling pattern.
func (_aafee *PdfTilingPattern )ToPdfObject ()_aef .PdfObject {_aafee .PdfPattern .ToPdfObject ();_fdgde :=_aafee .getDict ();if _aafee .PaintType !=nil {_fdgde .Set ("\u0050a\u0069\u006e\u0074\u0054\u0079\u0070e",_aafee .PaintType );};if _aafee .TilingType !=nil {_fdgde .Set ("\u0054\u0069\u006c\u0069\u006e\u0067\u0054\u0079\u0070\u0065",_aafee .TilingType );};if _aafee .BBox !=nil {_fdgde .Set ("\u0042\u0042\u006f\u0078",_aafee .BBox .ToPdfObject ());};if _aafee .XStep !=nil {_fdgde .Set ("\u0058\u0053\u0074e\u0070",_aafee .XStep );};if _aafee .YStep !=nil {_fdgde .Set ("\u0059\u0053\u0074e\u0070",_aafee .YStep );};if _aafee .Resources !=nil {_fdgde .Set ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s",_aafee .Resources .ToPdfObject ());};if _aafee .Matrix !=nil {_fdgde .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_aafee .Matrix );};return _aafee ._fgbcde ;};
// ToPdfOutline returns a low level PdfOutline object, based on the current
// instance.
func (_cfdf *Outline )ToPdfOutline ()*PdfOutline {_edcbg :=NewPdfOutline ();var _cacfc []*PdfOutlineItem ;var _edacad int64 ;var _aebfc *PdfOutlineItem ;for _ ,_fgebe :=range _cfdf .Entries {_bcgc ,_gaagf :=_fgebe .ToPdfOutlineItem ();_bcgc .Parent =&_edcbg .PdfOutlineTreeNode ;if _aebfc !=nil {_aebfc .Next =&_bcgc .PdfOutlineTreeNode ;_bcgc .Prev =&_aebfc .PdfOutlineTreeNode ;};_cacfc =append (_cacfc ,_bcgc );_edacad +=_gaagf ;_aebfc =_bcgc ;};_deedd :=int64 (len (_cacfc ));_edacad +=_deedd ;if _deedd > 0{_edcbg .First =&_cacfc [0].PdfOutlineTreeNode ;_edcbg .Last =&_cacfc [_deedd -1].PdfOutlineTreeNode ;_edcbg .Count =&_edacad ;};return _edcbg ;};
// String returns a string describing the font descriptor.
func (_eebccc *PdfFontDescriptor )String ()string {var _edace []string ;if _eebccc .FontName !=nil {_edace =append (_edace ,_eebccc .FontName .String ());};if _eebccc .FontFamily !=nil {_edace =append (_edace ,_eebccc .FontFamily .String ());};if _eebccc .fontFile !=nil {_edace =append (_edace ,_eebccc .fontFile .String ());};if _eebccc ._gffcb !=nil {_edace =append (_edace ,_eebccc ._gffcb .String ());};_edace =append (_edace ,_b .Sprintf ("\u0046\u006f\u006et\u0046\u0069\u006c\u0065\u0033\u003d\u0025\u0074",_eebccc .FontFile3 !=nil ));return _b .Sprintf ("\u0046\u004f\u004e\u0054_D\u0045\u0053\u0043\u0052\u0049\u0050\u0054\u004f\u0052\u007b\u0025\u0073\u007d",_dg .Join (_edace ,"\u002c\u0020"));};
// PdfAnnotationLink represents Link annotations.
// (Section 12.5.6.5 p. 403).
type PdfAnnotationLink struct{*PdfAnnotation ;A _aef .PdfObject ;Dest _aef .PdfObject ;H _aef .PdfObject ;PA _aef .PdfObject ;QuadPoints _aef .PdfObject ;BS _aef .PdfObject ;_faec *PdfAction ;_cfa *PdfReader ;};
// Items returns all children outline items.
func (_aaddc *Outline )Items ()[]*OutlineItem {return _aaddc .Entries };func (_bdgab *LTV )getOCSPs (_adcg []*_c .Certificate ,_egfaa map[string ]*_c .Certificate )([][]byte ,error ){_ggde :=make ([][]byte ,0,len (_adcg ));for _ ,_baaggf :=range _adcg {for _ ,_aaec :=range _baaggf .OCSPServer {if _bdgab .CertClient .IsCA (_baaggf ){continue ;};_ccded ,_deged :=_egfaa [_baaggf .Issuer .CommonName ];if !_deged {_abe .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 ;};_ ,_ccdda ,_abfaf :=_bdgab .OCSPClient .MakeRequest (_aaec ,_baaggf ,_ccded );if _abfaf !=nil {_abe .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",_abfaf );continue ;};_ggde =append (_ggde ,_ccdda );};};return _ggde ,nil ;};
// ToPdfObject implements interface PdfModel.
func (_agb *PdfAnnotationSound )ToPdfObject ()_aef .PdfObject {_agb .PdfAnnotation .ToPdfObject ();_aag :=_agb ._edc ;_cefe :=_aag .PdfObject .(*_aef .PdfObjectDictionary );_agb .PdfAnnotationMarkup .appendToPdfDictionary (_cefe );_cefe .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_aef .MakeName ("\u0053\u006f\u0075n\u0064"));_cefe .SetIfNotNil ("\u0053\u006f\u0075n\u0064",_agb .Sound );_cefe .SetIfNotNil ("\u004e\u0061\u006d\u0065",_agb .Name );return _aag ;};func (_beae *fontFile )loadFromSegments (_ffebd ,_ecdae []byte )error {_abe .Log .Trace ("\u006c\u006f\u0061dF\u0072\u006f\u006d\u0053\u0065\u0067\u006d\u0065\u006e\u0074\u0073\u003a\u0020\u0025\u0064\u0020\u0025\u0064",len (_ffebd ),len (_ecdae ));_befb :=_beae .parseASCIIPart (_ffebd );if _befb !=nil {return _befb ;};_abe .Log .Trace ("f\u006f\u006e\u0074\u0066\u0069\u006c\u0065\u003d\u0025\u0073",_beae );if len (_ecdae )==0{return nil ;};_abe .Log .Trace ("f\u006f\u006e\u0074\u0066\u0069\u006c\u0065\u003d\u0025\u0073",_beae );return nil ;};func (_fbfdf *pdfCIDFontType2 )baseFields ()*fontCommon {return &_fbfdf .fontCommon };func (_bbaa *DSS )generateHashMap (_gbed []*_aef .PdfObjectStream )(map[string ]*_aef .PdfObjectStream ,error ){_gfcb :=map[string ]*_aef .PdfObjectStream {};for _ ,_ffef :=range _gbed {_agaa ,_ebdb :=_aef .DecodeStream (_ffef );if _ebdb !=nil {return nil ,_ebdb ;};_bbbf ,_ebdb :=_daed (_agaa );if _ebdb !=nil {return nil ,_ebdb ;};_gfcb [string (_bbbf )]=_ffef ;};return _gfcb ,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 *_aef .PdfObjectStream ;Data []byte ;_fcabc *_aef .PdfIndirectObject ;_bcdc *_aef .PdfObjectStream ;};
// DecodeArray returns an empty slice as there are no components associated with pattern colorspace.
func (_abcde *PdfColorspaceSpecialPattern )DecodeArray ()[]float64 {return []float64 {}};
// ToPdfObject converts the pdfFontSimple to its PDF representation for outputting.
func (_begg *pdfFontSimple )ToPdfObject ()_aef .PdfObject {if _begg ._bcabb ==nil {_begg ._bcabb =&_aef .PdfIndirectObject {};};_abff :=_begg .baseFields ().asPdfObjectDictionary ("");_begg ._bcabb .PdfObject =_abff ;if _begg .FirstChar !=nil {_abff .Set ("\u0046i\u0072\u0073\u0074\u0043\u0068\u0061r",_begg .FirstChar );};if _begg .LastChar !=nil {_abff .Set ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072",_begg .LastChar );};if _begg .Widths !=nil {_abff .Set ("\u0057\u0069\u0064\u0074\u0068\u0073",_begg .Widths );};if _begg .Encoding !=nil {_abff .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_begg .Encoding );}else if _begg ._bcbge !=nil {_cgddg :=_begg ._bcbge .ToPdfObject ();if _cgddg !=nil {_abff .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_cgddg );};};return _begg ._bcabb ;};
// 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 _gfc .ReadSeeker )(*PdfReader ,error ){_eafdg :=&PdfReader {_cced :rs ,_cadgb :map[_aef .PdfObject ]struct{}{},_fggbd :_beed (),_afae :false };_cddbe ,_cdffe :=_aef .NewParser (rs );if _cdffe !=nil {return nil ,_cdffe ;};_eafdg ._gdbbd =_cddbe ;_dgeab ,_cdffe :=_eafdg .IsEncrypted ();if _cdffe !=nil {return nil ,_cdffe ;};if !_dgeab {_cdffe =_eafdg .loadStructure ();if _cdffe !=nil {return nil ,_cdffe ;};};return _eafdg ,nil ;};
// NewPdfActionGoTo returns a new "go to" action.
func NewPdfActionGoTo ()*PdfActionGoTo {_cd :=NewPdfAction ();_fag :=&PdfActionGoTo {};_fag .PdfAction =_cd ;_cd .SetContext (_fag );return _fag ;};
// 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 (_gfebc *LTV )EnableAll (extraCerts []*_c .Certificate )error {_ggbfe :=_gfebc ._bdabf ._fdd .AcroForm ;for _ ,_cbcde :=range _ggbfe .AllFields (){_fgeb ,_ :=_cbcde .GetContext ().(*PdfFieldSignature );if _fgeb ==nil {continue ;};_fccd :=_fgeb .V ;if _facga :=_gfebc .validateSig (_fccd );_facga !=nil {_abe .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",_facga );};if _cfeaf :=_gfebc .Enable (_fccd ,extraCerts );_cfeaf !=nil {return _cfeaf ;};};return nil ;};
// PdfActionResetForm represents a resetForm action.
type PdfActionResetForm struct{*PdfAction ;Fields _aef .PdfObject ;Flags _aef .PdfObject ;};
// NewPdfPage returns a new PDF page.
func NewPdfPage ()*PdfPage {_gddg :=PdfPage {};_gddg ._cbefa =_aef .MakeDict ();_gddg .Resources =NewPdfPageResources ();_efgag :=_aef .PdfIndirectObject {};_efgag .PdfObject =_gddg ._cbefa ;_gddg ._gfbbf =&_efgag ;return &_gddg ;};
// PdfActionJavaScript represents a javaScript action.
type PdfActionJavaScript struct{*PdfAction ;JS _aef .PdfObject ;};
// GetAlphabet returns a map of the runes in `text` and their frequencies.
func GetAlphabet (text string )map[rune ]int {_ccbb :=map[rune ]int {};for _ ,_caddb :=range text {_ccbb [_caddb ]++;};return _ccbb ;};func _eaac (_fcbbb *_aef .PdfObjectDictionary )(*PdfShadingPattern ,error ){_gfddca :=&PdfShadingPattern {};_dbecb :=_fcbbb .Get ("\u0053h\u0061\u0064\u0069\u006e\u0067");if _dbecb ==nil {_abe .Log .Debug ("\u0053h\u0061d\u0069\u006e\u0067\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ;};_gaec ,_afdg :=_cbdfa (_dbecb );if _afdg !=nil {_abe .Log .Debug ("\u0045r\u0072\u006f\u0072\u0020l\u006f\u0061\u0064\u0069\u006eg\u0020s\u0068a\u0064\u0069\u006e\u0067\u003a\u0020\u0025v",_afdg );return nil ,_afdg ;};_gfddca .Shading =_gaec ;if _babbd :=_fcbbb .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");_babbd !=nil {_aadb ,_fdafa :=_babbd .(*_aef .PdfObjectArray );if !_fdafa {_abe .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",_babbd );return nil ,_aef .ErrTypeError ;};_gfddca .Matrix =_aadb ;};if _cdbac :=_fcbbb .Get ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e");_cdbac !=nil {_gfddca .ExtGState =_cdbac ;};return _gfddca ,nil ;};
// IsTiling specifies if the pattern is a tiling pattern.
func (_befdg *PdfPattern )IsTiling ()bool {return _befdg .PatternType ==1};type crossReference struct{Type int ;
// Type 1
Offset int64 ;Generation int64 ;
// Type 2
ObjectNumber int ;Index int ;};
// 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 ){_fbedg ,_eadg :=_gf .Open (filePath );if _eadg !=nil {_abe .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",_eadg );return nil ,_eadg ;};defer _fbedg .Close ();return NewPdfFontFromTTF (_fbedg );};
// 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 (_agga PdfColor )(PdfColor ,error );
// GetNumComponents returns the number of components in the PdfColorspace.
GetNumComponents ()int ;
// ToPdfObject returns a PdfObject representation of the PdfColorspace.
ToPdfObject ()_aef .PdfObject ;
// ColorFromPdfObjects returns a PdfColor in the given PdfColorspace from an array of PdfObject where each
// PdfObject represents a numeric value.
ColorFromPdfObjects (_ffgf []_aef .PdfObject )(PdfColor ,error );
// ColorFromFloats returns a new PdfColor based on input color components for a given PdfColorspace.
ColorFromFloats (_gbdb []float64 )(PdfColor ,error );
// DecodeArray returns the Decode array for the PdfColorSpace, i.e. the range of each component.
DecodeArray ()[]float64 ;};
// NewGrayImageFromGoImage creates a new grayscale unidoc Image from a golang Image.
func (_cfgg DefaultImageHandler )NewGrayImageFromGoImage (goimg _ae .Image )(*Image ,error ){_adca :=goimg .Bounds ();_egdaa :=&Image {Width :int64 (_adca .Dx ()),Height :int64 (_adca .Dy ()),ColorComponents :1,BitsPerComponent :8};switch _ebcae :=goimg .(type ){case *_ae .Gray :if len (_ebcae .Pix )!=_adca .Dx ()*_adca .Dy (){_bedeb ,_feae :=_gb .GrayConverter .Convert (goimg );if _feae !=nil {return nil ,_feae ;};_egdaa .Data =_bedeb .Pix ();}else {_egdaa .Data =_ebcae .Pix ;};case *_ae .Gray16 :_egdaa .BitsPerComponent =16;if len (_ebcae .Pix )!=_adca .Dx ()*_adca .Dy ()*2{_afbd ,_cdfd :=_gb .Gray16Converter .Convert (goimg );if _cdfd !=nil {return nil ,_cdfd ;};_egdaa .Data =_afbd .Pix ();}else {_egdaa .Data =_ebcae .Pix ;};default:_bdafc ,_addeg :=_gb .GrayConverter .Convert (goimg );if _addeg !=nil {return nil ,_addeg ;};_egdaa .Data =_bdafc .Pix ();};return _egdaa ,nil ;};func (_agdb *PdfReader )newPdfAnnotationMarkupFromDict (_afgg *_aef .PdfObjectDictionary )(*PdfAnnotationMarkup ,error ){_cdcg :=&PdfAnnotationMarkup {};if _bgg :=_afgg .Get ("\u0054");_bgg !=nil {_cdcg .T =_bgg ;};if _bag :=_afgg .Get ("\u0050\u006f\u0070u\u0070");_bag !=nil {_dfa ,_abgb :=_bag .(*_aef .PdfIndirectObject );if !_abgb {if _ ,_dge :=_bag .(*_aef .PdfObjectNull );!_dge {return nil ,_fa .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 {_eegg ,_gaac :=_agdb .newPdfAnnotationFromIndirectObject (_dfa );if _gaac !=nil {return nil ,_gaac ;};if _eegg !=nil {_efcd ,_bagf :=_eegg ._eab .(*PdfAnnotationPopup );if !_bagf {return nil ,_fa .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");};_cdcg .Popup =_efcd ;};};};if _ddcf :=_afgg .Get ("\u0043\u0041");_ddcf !=nil {_cdcg .CA =_ddcf ;};if _dbbd :=_afgg .Get ("\u0052\u0043");_dbbd !=nil {_cdcg .RC =_dbbd ;};if _aedg :=_afgg .Get ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065");_aedg !=nil {_cdcg .CreationDate =_aedg ;};if _bef :=_afgg .Get ("\u0049\u0052\u0054");_bef !=nil {_cdcg .IRT =_bef ;};if _becec :=_afgg .Get ("\u0053\u0075\u0062\u006a");_becec !=nil {_cdcg .Subj =_becec ;};if _eggd :=_afgg .Get ("\u0052\u0054");_eggd !=nil {_cdcg .RT =_eggd ;};if _bacg :=_afgg .Get ("\u0049\u0054");_bacg !=nil {_cdcg .IT =_bacg ;};if _dac :=_afgg .Get ("\u0045\u0078\u0044\u0061\u0074\u0061");_dac !=nil {_cdcg .ExData =_dac ;};return _cdcg ,nil ;};
// GetContainingPdfObject returns the container of the outline (indirect object).
func (_bfbg *PdfOutline )GetContainingPdfObject ()_aef .PdfObject {return _bfbg ._bcbc };func _feefg (_agcd *_aef .PdfObjectDictionary )(*PdfShadingType5 ,error ){_gdgd :=PdfShadingType5 {};_gfaec :=_agcd .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065");if _gfaec ==nil {_abe .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 ;};_cefda ,_afbbec :=_gfaec .(*_aef .PdfObjectInteger );if !_afbbec {_abe .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",_gfaec );return nil ,_aef .ErrTypeError ;};_gdgd .BitsPerCoordinate =_cefda ;_gfaec =_agcd .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074");if _gfaec ==nil {_abe .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 ;};_cefda ,_afbbec =_gfaec .(*_aef .PdfObjectInteger );if !_afbbec {_abe .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",_gfaec );return nil ,_aef .ErrTypeError ;};_gdgd .BitsPerComponent =_cefda ;_gfaec =_agcd .Get ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073\u0050e\u0072\u0052\u006f\u0077");if _gfaec ==nil {_abe .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 ;};_cefda ,_afbbec =_gfaec .(*_aef .PdfObjectInteger );if !_afbbec {_abe .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",_gfaec );return nil ,_aef .ErrTypeError ;};_gdgd .VerticesPerRow =_cefda ;_gfaec =_agcd .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");if _gfaec ==nil {_abe .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 ;};_acefe ,_afbbec :=_gfaec .(*_aef .PdfObjectArray );if !_afbbec {_abe .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",_gfaec );return nil ,_aef .ErrTypeError ;};_gdgd .Decode =_acefe ;if _febca :=_agcd .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");_febca !=nil {_gdgd .Function =[]PdfFunction {};if _gfcdc ,_aaefc :=_febca .(*_aef .PdfObjectArray );_aaefc {for _ ,_fgec :=range _gfcdc .Elements (){_cbff ,_ddffa :=_begb (_fgec );if _ddffa !=nil {_abe .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",_ddffa );return nil ,_ddffa ;};_gdgd .Function =append (_gdgd .Function ,_cbff );};}else {_fead ,_dbdgc :=_begb (_febca );if _dbdgc !=nil {_abe .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",_dbdgc );return nil ,_dbdgc ;};_gdgd .Function =append (_gdgd .Function ,_fead );};};return &_gdgd ,nil ;};func (_gbg *PdfReader )newPdfAnnotationPrinterMarkFromDict (_bfcbg *_aef .PdfObjectDictionary )(*PdfAnnotationPrinterMark ,error ){_gaab :=PdfAnnotationPrinterMark {};_gaab .MN =_bfcbg .Get ("\u004d\u004e");return &_gaab ,nil ;};
// Insert adds an outline item as a child of the current outline item,
// at the specified index.
func (_gaeag *OutlineItem )Insert (index uint ,item *OutlineItem ){_gdfce :=uint (len (_gaeag .Entries ));if index > _gdfce {index =_gdfce ;};_gaeag .Entries =append (_gaeag .Entries [:index ],append ([]*OutlineItem {item },_gaeag .Entries [index :]...)...);};func (_aeee *PdfReader )loadForms ()(*PdfAcroForm ,error ){if _aeee ._gdbbd .GetCrypter ()!=nil &&!_aeee ._gdbbd .IsAuthenticated (){return nil ,_b .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");};_aaggbe :=_aeee ._acae ;_gfadd :=_aaggbe .Get ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d");if _gfadd ==nil {return nil ,nil ;};_eafge ,_ :=_aef .GetIndirect (_gfadd );_gfadd =_aef .TraceToDirectObject (_gfadd );if _aef .IsNullObject (_gfadd ){_abe .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 ;};_aabafa ,_agca :=_aef .GetDict (_gfadd );if !_agca {_abe .Log .Debug ("\u0049n\u0076\u0061\u006c\u0069d\u0020\u0041\u0063\u0072\u006fF\u006fr\u006d \u0065\u006e\u0074\u0072\u0079\u0020\u0025T",_gfadd );_abe .Log .Debug ("\u0044\u006f\u0065\u0073 n\u006f\u0074\u0020\u0068\u0061\u0076\u0065\u0020\u0066\u006f\u0072\u006d\u0073");return nil ,_b .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0061\u0063\u0072\u006ff\u006fr\u006d \u0065\u006e\u0074\u0072\u0079\u0020\u0025T",_gfadd );};_abe .Log .Trace ("\u0048\u0061\u0073\u0020\u0041\u0063\u0072\u006f\u0020f\u006f\u0072\u006d\u0073");_abe .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 !_aeee ._afae {_bcbcc :=_aeee .traverseObjectData (_aabafa );if _bcbcc !=nil {_abe .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",_bcbcc );return nil ,_bcbcc ;};};_bceg ,_badbe :=_aeee .newPdfAcroFormFromDict (_eafge ,_aabafa );if _badbe !=nil {return nil ,_badbe ;};return _bceg ,nil ;};func (_ebgfd *PdfWriter )hasObject (_becfc _aef .PdfObject )bool {_ ,_deadb :=_ebgfd ._cafea [_becfc ];return _deadb ;};func _afgd (_aff _aef .PdfObject )(*PdfColorspaceLab ,error ){_effea :=NewPdfColorspaceLab ();if _agde ,_becgb :=_aff .(*_aef .PdfIndirectObject );_becgb {_effea ._aagb =_agde ;};_aff =_aef .TraceToDirectObject (_aff );_aaad ,_dcac :=_aff .(*_aef .PdfObjectArray );if !_dcac {return nil ,_b .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _aaad .Len ()!=2{return nil ,_b .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0043\u0061\u006c\u0052G\u0042 \u0063o\u006c\u006f\u0072\u0073\u0070\u0061\u0063e");};_aff =_aef .TraceToDirectObject (_aaad .Get (0));_dfe ,_dcac :=_aff .(*_aef .PdfObjectName );if !_dcac {return nil ,_b .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 *_dfe !="\u004c\u0061\u0062"{return nil ,_b .Errorf ("n\u006ft\u0020\u0061\u0020\u004c\u0061\u0062\u0020\u0063o\u006c\u006f\u0072\u0073pa\u0063\u0065");};_aff =_aef .TraceToDirectObject (_aaad .Get (1));_gceb ,_dcac :=_aff .(*_aef .PdfObjectDictionary );if !_dcac {return nil ,_b .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");};_aff =_gceb .Get ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074");_aff =_aef .TraceToDirectObject (_aff );_dgag ,_dcac :=_aff .(*_aef .PdfObjectArray );if !_dcac {return nil ,_b .Errorf ("\u004c\u0061\u0062\u0020In\u0076\u0061\u006c\u0069\u0064\u0020\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069n\u0074");};if _dgag .Len ()!=3{return nil ,_b .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");};_caae ,_abac :=_dgag .GetAsFloat64Slice ();if _abac !=nil {return nil ,_abac ;};_effea .WhitePoint =_caae ;_aff =_gceb .Get ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074");if _aff !=nil {_aff =_aef .TraceToDirectObject (_aff );_bcdf ,_dedg :=_aff .(*_aef .PdfObjectArray );if !_dedg {return nil ,_b .Errorf ("\u004c\u0061\u0062: \u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074");};if _bcdf .Len ()!=3{return nil ,_b .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");};_ebbb ,_agbe :=_bcdf .GetAsFloat64Slice ();if _agbe !=nil {return nil ,_agbe ;};_effea .BlackPoint =_ebbb ;};_aff =_gceb .Get ("\u0052\u0061\u006eg\u0065");if _aff !=nil {_aff =_aef .TraceToDirectObject (_aff );_cafg ,_agfc :=_aff .(*_aef .PdfObjectArray );if !_agfc {_abe .Log .Error ("\u0052\u0061n\u0067\u0065\u0020t\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");return nil ,_b .Errorf ("\u004ca\u0062:\u0020\u0054\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _cafg .Len ()!=4{_abe .Log .Error ("\u0052\u0061\u006e\u0067\u0065\u0020\u0072\u0061\u006e\u0067\u0065\u0020e\u0072\u0072\u006f\u0072");return nil ,_b .Errorf ("\u004c\u0061b\u003a\u0020\u0052a\u006e\u0067\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};_ecdb ,_cbfd :=_cafg .GetAsFloat64Slice ();if _cbfd !=nil {return nil ,_cbfd ;};_effea .Range =_ecdb ;};return _effea ,nil ;};
// ToPdfObject converts date to a PDF string object.
func (_ecbcg *PdfDate )ToPdfObject ()_aef .PdfObject {_ffdfe :=_b .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",_ecbcg ._eacag ,_ecbcg ._bfeaf ,_ecbcg ._cecab ,_ecbcg ._begfg ,_ecbcg ._gdeaef ,_ecbcg ._ebge ,_ecbcg ._bggc ,_ecbcg ._bbccf ,_ecbcg ._debfg );return _aef .MakeString (_ffdfe );};
// GetXObjectImageByName returns the XObjectImage with the specified name from the
// page resources, if it exists.
func (_gbec *PdfPageResources )GetXObjectImageByName (keyName _aef .PdfObjectName )(*XObjectImage ,error ){_efaf ,_bfgec :=_gbec .GetXObjectByName (keyName );if _efaf ==nil {return nil ,nil ;};if _bfgec !=XObjectTypeImage {return nil ,_fa .New ("\u006e\u006f\u0074 \u0061\u006e\u0020\u0069\u006d\u0061\u0067\u0065");};_fdgff ,_cecbg :=NewXObjectImageFromStream (_efaf );if _cecbg !=nil {return nil ,_cecbg ;};return _fdgff ,nil ;};
// NewCompositePdfFontFromTTF loads a composite TTF font. Composite fonts can
// be used to represent unicode fonts which can have multi-byte character codes, representing a wide
// range of values. They are often used for symbolic languages, including Chinese, Japanese and Korean.
// It is represented by a Type0 Font with an underlying CIDFontType2 and an Identity-H encoding map.
// TODO: May be extended in the future to support a larger variety of CMaps and vertical fonts.
// NOTE: For simple fonts, use NewPdfFontFromTTF.
func NewCompositePdfFontFromTTF (r _gfc .ReadSeeker )(*PdfFont ,error ){_acge ,_bcee :=_eba .ReadAll (r );if _bcee !=nil {_abe .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",_bcee );return nil ,_bcee ;};_egagc ,_bcee :=_ecf .TtfParse (_cg .NewReader (_acge ));if _bcee !=nil {_abe .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",_bcee );return nil ,_bcee ;};_bgdabg :=&pdfCIDFontType2 {fontCommon :fontCommon {_ababd :"\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032"},CIDToGIDMap :_aef .MakeName ("\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079")};_aegb :=make ([]rune ,0,len (_egagc .Chars ));for _ebafb :=range _egagc .Chars {_aegb =append (_aegb ,_ebafb );};_eg .Slice (_aegb ,func (_gdfea ,_cedef int )bool {return _aegb [_gdfea ]< _aegb [_cedef ]});_ggddf :=1000.0/float64 (_egagc .UnitsPerEm );if len (_egagc .Widths )<=0{return nil ,_fa .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");};_dbacbb :=_ggddf *float64 (_egagc .Widths [0]);_eebd :=make (map[rune ]int );for _ ,_fggbe :=range _aegb {_ebea :=_egagc .Chars [_fggbe ];_ggafeg :=_ggddf *float64 (_egagc .Widths [_ebea ]);_eebd [_fggbe ]=int (_ggafeg );};_bgdabg ._bffbc =_eebd ;_bgdabg .DW =_aef .MakeInteger (int64 (_dbacbb ));_fdca :=_defag (_aegb ,_eebd ,_egagc .Chars );_bgdabg .W =_aef .MakeIndirectObject (_fdca );_eebfg :=_aef .MakeDict ();_eebfg .Set ("\u004f\u0072\u0064\u0065\u0072\u0069\u006e\u0067",_aef .MakeString ("\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079"));_eebfg .Set ("\u0052\u0065\u0067\u0069\u0073\u0074\u0072\u0079",_aef .MakeString ("\u0041\u0064\u006fb\u0065"));_eebfg .Set ("\u0053\u0075\u0070\u0070\u006c\u0065\u006d\u0065\u006e\u0074",_aef .MakeInteger (0));_bgdabg .CIDSystemInfo =_eebfg ;_dfef :=&PdfFontDescriptor {FontName :_aef .MakeName (_egagc .PostScriptName ),Ascent :_aef .MakeFloat (_ggddf *float64 (_egagc .TypoAscender )),Descent :_aef .MakeFloat (_ggddf *float64 (_egagc .TypoDescender )),CapHeight :_aef .MakeFloat (_ggddf *float64 (_egagc .CapHeight )),FontBBox :_aef .MakeArrayFromFloats ([]float64 {_ggddf *float64 (_egagc .Xmin ),_ggddf *float64 (_egagc .Ymin ),_ggddf *float64 (_egagc .Xmax ),_ggddf *float64 (_egagc .Ymax )}),ItalicAngle :_aef .MakeFloat (_egagc .ItalicAngle ),MissingWidth :_aef .MakeFloat (_ggddf *float64 (_egagc .Widths [0]))};_decb ,_bcee :=_aef .MakeStream (_acge ,_aef .NewFlateEncoder ());if _bcee !=nil {_abe .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",_bcee );return nil ,_bcee ;};_decb .PdfObjectDictionary .Set ("\u004ce\u006e\u0067\u0074\u0068\u0031",_aef .MakeInteger (int64 (len (_acge ))));_dfef .FontFile2 =_decb ;if _egagc .Bold {_dfef .StemV =_aef .MakeInteger (120);}else {_dfef .StemV =_aef .MakeInteger (70);};_edec :=_adfea ;if _egagc .IsFixedPitch {_edec |=_gbfag ;};if _egagc .ItalicAngle !=0{_edec |=_gdfcda ;};_dfef .Flags =_aef .MakeInteger (int64 (_edec ));_bgdabg ._fegdg =_egagc .PostScriptName ;_bgdabg ._bgfd =_dfef ;_cgcfc :=pdfFontType0 {fontCommon :fontCommon {_ababd :"\u0054\u0079\u0070e\u0030",_fegdg :_egagc .PostScriptName },DescendantFont :&PdfFont {_dccga :_bgdabg },Encoding :_aef .MakeName ("\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079\u002d\u0048"),_eeag :_egagc .NewEncoder ()};if len (_egagc .Chars )> 0{_dbgd :=make (map[_gg .CharCode ]rune ,len (_egagc .Chars ));for _gbdg ,_gbfcd :=range _egagc .Chars {_ebcc :=_gg .CharCode (_gbfcd );if _efage ,_abdg :=_dbgd [_ebcc ];!_abdg ||(_abdg &&_efage > _gbdg ){_dbgd [_ebcc ]=_gbdg ;};};_cgcfc ._ecefd =_gg .NewToUnicodeCMap (_dbgd );};_ggccf :=PdfFont {_dccga :&_cgcfc };return &_ggccf ,nil ;};var _ _aef .PdfObject =&pdfSignDictionary {};
// ToPdfObject implements interface PdfModel.
func (_ada *PdfAnnotationLine )ToPdfObject ()_aef .PdfObject {_ada .PdfAnnotation .ToPdfObject ();_ecfc :=_ada ._edc ;_eaed :=_ecfc .PdfObject .(*_aef .PdfObjectDictionary );_ada .PdfAnnotationMarkup .appendToPdfDictionary (_eaed );_eaed .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_aef .MakeName ("\u004c\u0069\u006e\u0065"));_eaed .SetIfNotNil ("\u004c",_ada .L );_eaed .SetIfNotNil ("\u0042\u0053",_ada .BS );_eaed .SetIfNotNil ("\u004c\u0045",_ada .LE );_eaed .SetIfNotNil ("\u0049\u0043",_ada .IC );_eaed .SetIfNotNil ("\u004c\u004c",_ada .LL );_eaed .SetIfNotNil ("\u004c\u004c\u0045",_ada .LLE );_eaed .SetIfNotNil ("\u0043\u0061\u0070",_ada .Cap );_eaed .SetIfNotNil ("\u0049\u0054",_ada .IT );_eaed .SetIfNotNil ("\u004c\u004c\u004f",_ada .LLO );_eaed .SetIfNotNil ("\u0043\u0050",_ada .CP );_eaed .SetIfNotNil ("\u004de\u0061\u0073\u0075\u0072\u0065",_ada .Measure );_eaed .SetIfNotNil ("\u0043\u004f",_ada .CO );return _ecfc ;};
// SetContext sets the sub pattern (context). Either PdfTilingPattern or PdfShadingPattern.
func (_bgefd *PdfPattern )SetContext (ctx PdfModel ){_bgefd ._dgagc =ctx };func _eebga (_bbdd _aef .PdfObject )(string ,error ){_bbdd =_aef .TraceToDirectObject (_bbdd );switch _ddadg :=_bbdd .(type ){case *_aef .PdfObjectString :return _ddadg .Str (),nil ;case *_aef .PdfObjectStream :_dgde ,_fgdge :=_aef .DecodeStream (_ddadg );if _fgdge !=nil {return "",_fgdge ;};return string (_dgde ),nil ;};return "",_b .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",_bbdd );};
// Evaluate runs the function on the passed in slice and returns the results.
func (_ddddf *PdfFunctionType2 )Evaluate (x []float64 )([]float64 ,error ){if len (x )!=1{_abe .Log .Error ("\u004f\u006e\u006c\u0079 o\u006e\u0065\u0020\u0069\u006e\u0070\u0075\u0074\u0020\u0061\u006c\u006c\u006f\u0077e\u0064");return nil ,_fa .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_bgab :=[]float64 {0.0};if _ddddf .C0 !=nil {_bgab =_ddddf .C0 ;};_fedfb :=[]float64 {1.0};if _ddddf .C1 !=nil {_fedfb =_ddddf .C1 ;};var _bbgcc []float64 ;for _gccfg :=0;_gccfg < len (_bgab );_gccfg ++{_fgcge :=_bgab [_gccfg ]+_ad .Pow (x [0],_ddddf .N )*(_fedfb [_gccfg ]-_bgab [_gccfg ]);_bbgcc =append (_bbgcc ,_fgcge );};return _bbgcc ,nil ;};
// NewPdfColorCalRGB returns a new CalRBG color.
func NewPdfColorCalRGB (a ,b ,c float64 )*PdfColorCalRGB {_dbecd :=PdfColorCalRGB {a ,b ,c };return &_dbecd ;};func (_ddfca fontCommon )asPdfObjectDictionary (_cffd string )*_aef .PdfObjectDictionary {if _cffd !=""&&_ddfca ._ababd !=""&&_cffd !=_ddfca ._ababd {_abe .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",_cffd ,_ddfca );}else if _cffd ==""&&_ddfca ._ababd ==""{_abe .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",_ddfca );}else if _ddfca ._ababd ==""{_ddfca ._ababd =_cffd ;};_aeaf :=_aef .MakeDict ();_aeaf .Set ("\u0054\u0079\u0070\u0065",_aef .MakeName ("\u0046\u006f\u006e\u0074"));_aeaf .Set ("\u0042\u0061\u0073\u0065\u0046\u006f\u006e\u0074",_aef .MakeName (_ddfca ._fegdg ));_aeaf .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_aef .MakeName (_ddfca ._ababd ));if _ddfca ._bgfd !=nil {_aeaf .Set ("\u0046\u006f\u006e\u0074\u0044\u0065\u0073\u0063\u0072i\u0070\u0074\u006f\u0072",_ddfca ._bgfd .ToPdfObject ());};if _ddfca ._ddcbd !=nil {_aeaf .Set ("\u0054o\u0055\u006e\u0069\u0063\u006f\u0064e",_ddfca ._ddcbd );}else if _ddfca ._ecefd !=nil {_fdffb ,_efag :=_ddfca ._ecefd .Stream ();if _efag !=nil {_abe .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",_efag );}else {_aeaf .Set ("\u0054o\u0055\u006e\u0069\u0063\u006f\u0064e",_fdffb );};};return _aeaf ;};
// Width returns the width of `rect`.
func (_bface *PdfRectangle )Width ()float64 {return _ad .Abs (_bface .Urx -_bface .Llx )};
// GetXObjectFormByName returns the XObjectForm with the specified name from the
// page resources, if it exists.
func (_cbbc *PdfPageResources )GetXObjectFormByName (keyName _aef .PdfObjectName )(*XObjectForm ,error ){_dgbfg ,_bgeg :=_cbbc .GetXObjectByName (keyName );if _dgbfg ==nil {return nil ,nil ;};if _bgeg !=XObjectTypeForm {return nil ,_fa .New ("\u006e\u006f\u0074\u0020\u0061\u0020\u0066\u006f\u0072\u006d");};_ebba ,_bdef :=NewXObjectFormFromStream (_dgbfg );if _bdef !=nil {return nil ,_bdef ;};return _ebba ,nil ;};
// ToPdfObject returns colorspace in a PDF object format [name dictionary]
func (_degd *PdfColorspaceLab )ToPdfObject ()_aef .PdfObject {_efcff :=_aef .MakeArray ();_efcff .Append (_aef .MakeName ("\u004c\u0061\u0062"));_gabb :=_aef .MakeDict ();if _degd .WhitePoint !=nil {_cabae :=_aef .MakeArray (_aef .MakeFloat (_degd .WhitePoint [0]),_aef .MakeFloat (_degd .WhitePoint [1]),_aef .MakeFloat (_degd .WhitePoint [2]));_gabb .Set ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074",_cabae );}else {_abe .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 _degd .BlackPoint !=nil {_ebag :=_aef .MakeArray (_aef .MakeFloat (_degd .BlackPoint [0]),_aef .MakeFloat (_degd .BlackPoint [1]),_aef .MakeFloat (_degd .BlackPoint [2]));_gabb .Set ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074",_ebag );};if _degd .Range !=nil {_fcbeg :=_aef .MakeArray (_aef .MakeFloat (_degd .Range [0]),_aef .MakeFloat (_degd .Range [1]),_aef .MakeFloat (_degd .Range [2]),_aef .MakeFloat (_degd .Range [3]));_gabb .Set ("\u0052\u0061\u006eg\u0065",_fcbeg );};_efcff .Append (_gabb );if _degd ._aagb !=nil {_degd ._aagb .PdfObject =_efcff ;return _degd ._aagb ;};return _efcff ;};
// ColorFromPdfObjects returns a new PdfColor based on the input slice of color
// components. The slice should contain a single PdfObjectFloat element.
func (_bcafd *PdfColorspaceSpecialIndexed )ColorFromPdfObjects (objects []_aef .PdfObject )(PdfColor ,error ){if len (objects )!=1{return nil ,_fa .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_dcaba ,_eafe :=_aef .GetNumbersAsFloat (objects );if _eafe !=nil {return nil ,_eafe ;};return _bcafd .ColorFromFloats (_dcaba );};
// PdfInfoTrapped specifies pdf trapped information.
type PdfInfoTrapped string ;
// PdfAnnotationHighlight represents Highlight annotations.
// (Section 12.5.6.10).
type PdfAnnotationHighlight struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _aef .PdfObject ;};
// PdfActionNamed represents a named action.
type PdfActionNamed struct{*PdfAction ;N _aef .PdfObject ;};
// Write writes out the PDF.
func (_fafbd *PdfWriter )Write (writer _gfc .Writer )error {_abe .Log .Trace ("\u0057r\u0069\u0074\u0065\u0028\u0029");_aaged :=_cga .GetLicenseKey ();if (_aaged ==nil ||!_aaged .IsLicensed ())&&!_bbbga {_b .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");_b .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 _fa .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 _fafbd ._aabdg !=nil {_abe .Log .Trace ("\u004f\u0075t\u006c\u0069\u006ee\u0054\u0072\u0065\u0065\u003a\u0020\u0025\u002b\u0076",_fafbd ._aabdg );_bdadg :=_fafbd ._aabdg .ToPdfObject ();_abe .Log .Trace ("\u004fu\u0074\u006c\u0069\u006e\u0065\u0073\u003a\u0020\u0025\u002b\u0076 \u0028\u0025\u0054\u002c\u0020\u0070\u003a\u0025\u0070\u0029",_bdadg ,_bdadg ,_bdadg );_fafbd ._abebc .Set ("\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0073",_bdadg );_eacef :=_fafbd .addObjects (_bdadg );if _eacef !=nil {return _eacef ;};};if _fafbd ._feabe !=nil {_abe .Log .Trace ("\u0057r\u0069t\u0069\u006e\u0067\u0020\u0061c\u0072\u006f \u0066\u006f\u0072\u006d\u0073");_efdca :=_fafbd ._feabe .ToPdfObject ();_abe .Log .Trace ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d\u003a\u0020\u0025\u002b\u0076",_efdca );_fafbd ._abebc .Set ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d",_efdca );_bdcf :=_fafbd .addObjects (_efdca );if _bdcf !=nil {return _bdcf ;};};for _bbegf ,_bdadc :=range _fafbd ._eabcf {if !_fafbd .hasObject (_bbegf ){_abe .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",_bbegf ,_bbegf ,_bbegf );for _ ,_cgbcbd :=range _bdadc {for _ ,_gbcec :=range _cgbcbd .Keys (){_dcfdc :=_cgbcbd .Get (_gbcec );if _dcfdc ==_bbegf {_abe .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");_cgbcbd .Set (_gbcec ,_aef .MakeNull ());break ;};};};};};_fafbd ._abebc .Set ("\u0056e\u0072\u0073\u0069\u006f\u006e",_aef .MakeName (_b .Sprintf ("\u0025\u0064\u002e%\u0064",_fafbd ._cfebb ,_fafbd ._gbcce )));_fafbd .copyObjects ();if _fafbd ._ceag !=nil {var _eeeac error ;_fafbd ._aage ,_eeeac =_fafbd ._ceag .Optimize (_fafbd ._aage );if _eeeac !=nil {return _eeeac ;};_bcaff :=make (map[_aef .PdfObject ]struct{},len (_fafbd ._aage ));for _ ,_edgce :=range _fafbd ._aage {_bcaff [_edgce ]=struct{}{};};_fafbd ._cafea =_bcaff ;};_fafbd ._dfdcd =_fafbd ._ccdaf ;_fafbd ._fcadd =_bc .NewWriter (writer );_abddf :=_fafbd ._cfebb > 1||(_fafbd ._cfebb ==1&&_fafbd ._gbcce > 4);if _fafbd ._ecfeg !=nil {_abddf =*_fafbd ._ecfeg ;};_dffea :=make (map[_aef .PdfObject ]bool );for _ ,_dfgab :=range _fafbd ._aage {if _ddffga ,_deff :=_dfgab .(*_aef .PdfObjectStreams );_deff {_abddf =true ;for _ ,_adbea :=range _ddffga .Elements (){_dffea [_adbea ]=true ;if _baegf ,_acccea :=_adbea .(*_aef .PdfIndirectObject );_acccea {_dffea [_baegf .PdfObject ]=true ;};};};};if _abddf &&_fafbd ._cfebb ==1&&_fafbd ._gbcce < 5{_fafbd ._gbcce =5;};if _fafbd ._bcdd {_fafbd .writeString ("\u000a");}else {_fafbd .writeString (_b .Sprintf ("\u0025\u0025\u0050D\u0046\u002d\u0025\u0064\u002e\u0025\u0064\u000a",_fafbd ._cfebb ,_fafbd ._gbcce ));_fafbd .writeString ("\u0025\u00e2\u00e3\u00cf\u00d3\u000a");};_fafbd .updateObjectNumbers ();_abe .Log .Trace ("\u0057\u0072\u0069\u0074\u0069\u006e\u0067\u0020\u0025d\u0020\u006f\u0062\u006a",len (_fafbd ._aage ));_fafbd ._ffede =make (map[int ]crossReference );_fafbd ._ffede [0]=crossReference {Type :0,ObjectNumber :0,Generation :0xFFFF};if _fafbd ._gdbde .ObjectMap !=nil {for _adbg ,_caafd :=range _fafbd ._gdbde .ObjectMap {if _adbg ==0{continue ;};if _caafd .XType ==_aef .XrefTypeObjectStream {_dfeaa :=crossReference {Type :2,ObjectNumber :_caafd .OsObjNumber ,Index :_caafd .OsObjIndex };_fafbd ._ffede [_adbg ]=_dfeaa ;};if _caafd .XType ==_aef .XrefTypeTableEntry {_befbc :=crossReference {Type :1,ObjectNumber :_caafd .ObjectNumber ,Offset :_caafd .Offset };_fafbd ._ffede [_adbg ]=_befbc ;};};};for _ ,_dgdad :=range _fafbd ._aage {if _aedee :=_dffea [_dgdad ];_aedee {continue ;};_egdd :=int64 (0);switch _ecead :=_dgdad .(type ){case *_aef .PdfIndirectObject :_egdd =_ecead .ObjectNumber ;case *_aef .PdfObjectStream :_egdd =_ecead .ObjectNumber ;case *_aef .PdfObjectStreams :_egdd =_ecead .ObjectNumber ;default:_abe .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",_dgdad );return ErrTypeCheck ;};if _fafbd ._ecfag !=nil &&_dgdad !=_fafbd ._eebbg {_dbaef :=_fafbd ._ecfag .Encrypt (_dgdad ,_egdd ,0);if _dbaef !=nil {_abe .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",_dbaef );return _dbaef ;};};_fafbd .writeObject (int (_egdd ),_dgdad );};_cbde :=_fafbd ._dfdcd ;var _bcbcg int ;for _dbacd :=range _fafbd ._ffede {if _dbacd > _bcbcg {_bcbcg =_dbacd ;};};if _abddf {_gece :=_bcbcg +1;_fafbd ._ffede [_gece ]=crossReference {Type :1,ObjectNumber :_gece ,Offset :_cbde };_gbebg :=_cg .NewBuffer (nil );_fdffbd :=_aef .MakeArray ();for _dceab :=0;_dceab <=_bcbcg ;{for ;_dceab <=_bcbcg ;_dceab ++{_bdafa ,_dffd :=_fafbd ._ffede [_dceab ];if _dffd &&(!_fafbd ._bcdd ||_fafbd ._bcdd &&(_bdafa .Type ==1&&_bdafa .Offset >=_fafbd ._bfagd ||_bdafa .Type ==0)){break ;};};var _dgcce int ;for _dgcce =_dceab +1;_dgcce <=_bcbcg ;_dgcce ++{_dafc ,_bgcaga :=_fafbd ._ffede [_dgcce ];if _bgcaga &&(!_fafbd ._bcdd ||_fafbd ._bcdd &&(_dafc .Type ==1&&_dafc .Offset > _fafbd ._bfagd )){continue ;};break ;};_fdffbd .Append (_aef .MakeInteger (int64 (_dceab )),_aef .MakeInteger (int64 (_dgcce -_dceab )));for _dcfaf :=_dceab ;_dcfaf < _dgcce ;_dcfaf ++{_bcdad :=_fafbd ._ffede [_dcfaf ];switch _bcdad .Type {case 0:_ab .Write (_gbebg ,_ab .BigEndian ,byte (0));_ab .Write (_gbebg ,_ab .BigEndian ,uint32 (0));_ab .Write (_gbebg ,_ab .BigEndian ,uint16 (0xFFFF));case 1:_ab .Write (_gbebg ,_ab .BigEndian ,byte (1));_ab .Write (_gbebg ,_ab .BigEndian ,uint32 (_bcdad .Offset ));_ab .Write (_gbebg ,_ab .BigEndian ,uint16 (_bcdad .Generation ));case 2:_ab .Write (_gbebg ,_ab .BigEndian ,byte (2));_ab .Write (_gbebg ,_ab .BigEndian ,uint32 (_bcdad .ObjectNumber ));_ab .Write (_gbebg ,_ab .BigEndian ,uint16 (_bcdad .Index ));};};_dceab =_dgcce +1;};_fcbf ,_efgb :=_aef .MakeStream (_gbebg .Bytes (),_aef .NewFlateEncoder ());if _efgb !=nil {return _efgb ;};_fcbf .ObjectNumber =int64 (_gece );_fcbf .PdfObjectDictionary .Set ("\u0054\u0079\u0070\u0065",_aef .MakeName ("\u0058\u0052\u0065\u0066"));_fcbf .PdfObjectDictionary .Set ("\u0057",_aef .MakeArray (_aef .MakeInteger (1),_aef .MakeInteger (4),_aef .MakeInteger (2)));_fcbf .PdfObjectDictionary .Set ("\u0049\u006e\u0064e\u0078",_fdffbd );_fcbf .PdfObjectDictionary .Set ("\u0053\u0069\u007a\u0065",_aef .MakeInteger (int64 (_gece +1)));_fcbf .PdfObjectDictionary .Set ("\u0049\u006e\u0066\u006f",_fafbd ._caefd );_fcbf .PdfObjectDictionary .Set ("\u0052\u006f\u006f\u0074",_fafbd ._bdbdfg );if _fafbd ._bcdd &&_fafbd ._bbbefb > 0{_fcbf .PdfObjectDictionary .Set ("\u0050\u0072\u0065\u0076",_aef .MakeInteger (_fafbd ._bbbefb ));};if _fafbd ._ecfag !=nil {_fcbf .Set ("\u0045n\u0063\u0072\u0079\u0070\u0074",_fafbd ._eebbg );_fcbf .Set ("\u0049\u0044",_fafbd ._acddd );_abe .Log .Trace ("\u0049d\u0073\u003a\u0020\u0025\u0073",_fafbd ._acddd );};_fafbd .writeObject (int (_fcbf .ObjectNumber ),_fcbf );}else {_fafbd .writeString ("\u0078\u0072\u0065\u0066\u000d\u000a");for _gcfa :=0;_gcfa <=_bcbcg ;{for ;_gcfa <=_bcbcg ;_gcfa ++{_bdcbf ,_gfcbg :=_fafbd ._ffede [_gcfa ];if _gfcbg &&(!_fafbd ._bcdd ||_fafbd ._bcdd &&(_bdcbf .Type ==1&&_bdcbf .Offset >=_fafbd ._bfagd ||_bdcbf .Type ==0)){break ;};};var _ggbe int ;for _ggbe =_gcfa +1;_ggbe <=_bcbcg ;_ggbe ++{_aeddf ,_dgdab :=_fafbd ._ffede [_ggbe ];if _dgdab &&(!_fafbd ._bcdd ||_fafbd ._bcdd &&(_aeddf .Type ==1&&_aeddf .Offset > _fafbd ._bfagd )){continue ;};break ;};_ecdcb :=_b .Sprintf ("\u0025d\u0020\u0025\u0064\u000d\u000a",_gcfa ,_ggbe -_gcfa );_fafbd .writeString (_ecdcb );for _afgeg :=_gcfa ;_afgeg < _ggbe ;_afgeg ++{_daeda :=_fafbd ._ffede [_afgeg ];switch _daeda .Type {case 0:_ecdcb =_b .Sprintf ("\u0025\u002e\u0031\u0030\u0064\u0020\u0025\u002e\u0035d\u0020\u0066\u000d\u000a",0,65535);_fafbd .writeString (_ecdcb );case 1:_ecdcb =_b .Sprintf ("\u0025\u002e\u0031\u0030\u0064\u0020\u0025\u002e\u0035d\u0020\u006e\u000d\u000a",_daeda .Offset ,0);_fafbd .writeString (_ecdcb );};};_gcfa =_ggbe +1;};_dbeag :=_aef .MakeDict ();_dbeag .Set ("\u0049\u006e\u0066\u006f",_fafbd ._caefd );_dbeag .Set ("\u0052\u006f\u006f\u0074",_fafbd ._bdbdfg );_dbeag .Set ("\u0053\u0069\u007a\u0065",_aef .MakeInteger (int64 (_bcbcg +1)));if _fafbd ._bcdd &&_fafbd ._bbbefb > 0{_dbeag .Set ("\u0050\u0072\u0065\u0076",_aef .MakeInteger (_fafbd ._bbbefb ));};if _fafbd ._ecfag !=nil {_dbeag .Set ("\u0045n\u0063\u0072\u0079\u0070\u0074",_fafbd ._eebbg );_dbeag .Set ("\u0049\u0044",_fafbd ._acddd );_abe .Log .Trace ("\u0049d\u0073\u003a\u0020\u0025\u0073",_fafbd ._acddd );};_fafbd .writeString ("\u0074\u0072\u0061\u0069\u006c\u0065\u0072\u000a");_fafbd .writeString (_dbeag .WriteString ());_fafbd .writeString ("\u000a");};_geceb :=_b .Sprintf ("\u0073\u0074\u0061\u0072\u0074\u0078\u0072\u0065\u0066\u000a\u0025\u0064\u000a",_cbde );_fafbd .writeString (_geceb );_fafbd .writeString ("\u0025\u0025\u0045\u004f\u0046\u000a");if _fafbd ._geac ==nil {_fafbd ._geac =_fafbd ._fcadd .Flush ();};return _fafbd ._geac ;};
// 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 ){_bdeb ,_adaga :=_gf .Open (filePath );if _adaga !=nil {_abe .Log .Debug ("\u0045\u0052\u0052OR\u003a\u0020\u006f\u0070\u0065\u006e\u0069\u006e\u0067\u0020\u0066\u0069\u006c\u0065\u003a\u0020\u0025\u0076",_adaga );return nil ,_adaga ;};defer _bdeb .Close ();return NewCompositePdfFontFromTTF (_bdeb );};
// ImageToRGB convert an indexed image to RGB.
func (_ggdd *PdfColorspaceSpecialIndexed )ImageToRGB (img Image )(Image ,error ){N :=_ggdd .Base .GetNumComponents ();if N < 1{return Image {},_b .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 );};_dcbdgb :=_gb .NewImageBase (int (img .Width ),int (img .Height ),8,N ,nil ,img ._afge ,img ._fgafa );_bbgc :=_ea .NewReader (img .getBase ());_gccgb :=_ea .NewWriter (_dcbdgb );var (_bebaa uint32 ;_dffg int ;_cgbe error ;);for {_bebaa ,_cgbe =_bbgc .ReadSample ();if _cgbe ==_gfc .EOF {break ;}else if _cgbe !=nil {return img ,_cgbe ;};_dffg =int (_bebaa );_abe .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",_dffg ,N ,len (_ggdd ._abea ));if (_dffg +1)*N > len (_ggdd ._abea ){_dffg =len (_ggdd ._abea )/N -1;_abe .Log .Trace ("C\u006c\u0069\u0070\u0070in\u0067 \u0074\u006f\u0020\u0069\u006ed\u0065\u0078\u003a\u0020\u0025\u0064",_dffg );if _dffg < 0{_abe .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 _aegf :=_dffg *N ;_aegf < (_dffg +1)*N ;_aegf ++{if _cgbe =_gccgb .WriteSample (uint32 (_ggdd ._abea [_aegf ]));_cgbe !=nil {return img ,_cgbe ;};};};return _ggdd .Base .ImageToRGB (_cbgdcg (&_dcbdgb ));};
// PdfAnnotationRichMedia represents Rich Media annotations.
type PdfAnnotationRichMedia struct{*PdfAnnotation ;RichMediaSettings _aef .PdfObject ;RichMediaContent _aef .PdfObject ;};
// ColorToRGB converts a Lab color to an RGB color.
func (_ecec *PdfColorspaceLab )ColorToRGB (color PdfColor )(PdfColor ,error ){_gdce :=func (_fbbdd float64 )float64 {if _fbbdd >=6.0/29{return _fbbdd *_fbbdd *_fbbdd ;};return 108.0/841*(_fbbdd -4/29);};_dabgg ,_ccdg :=color .(*PdfColorLab );if !_ccdg {_abe .Log .Debug ("\u0069\u006e\u0070\u0075t \u0063\u006f\u006c\u006f\u0072\u0020\u006e\u006f\u0074\u0020\u006c\u0061\u0062");return nil ,_fa .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};LStar :=_dabgg .L ();AStar :=_dabgg .A ();BStar :=_dabgg .B ();L :=(LStar +16)/116+AStar /500;M :=(LStar +16)/116;N :=(LStar +16)/116-BStar /200;X :=_ecec .WhitePoint [0]*_gdce (L );Y :=_ecec .WhitePoint [1]*_gdce (M );Z :=_ecec .WhitePoint [2]*_gdce (N );_cbgdd :=3.240479*X +-1.537150*Y +-0.498535*Z ;_bcbg :=-0.969256*X +1.875992*Y +0.041556*Z ;_gdde :=0.055648*X +-0.204043*Y +1.057311*Z ;_cbgdd =_ad .Min (_ad .Max (_cbgdd ,0),1.0);_bcbg =_ad .Min (_ad .Max (_bcbg ,0),1.0);_gdde =_ad .Min (_ad .Max (_gdde ,0),1.0);return NewPdfColorDeviceRGB (_cbgdd ,_bcbg ,_gdde ),nil ;};
// GetPage returns the PdfPage model for the specified page number.
func (_efgdb *PdfReader )GetPage (pageNumber int )(*PdfPage ,error ){if _efgdb ._gdbbd .GetCrypter ()!=nil &&!_efgdb ._gdbbd .IsAuthenticated (){return nil ,_b .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 (_efgdb ._dbdgb )< pageNumber {return nil ,_fa .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");};_deegg :=pageNumber -1;if _deegg < 0{return nil ,_b .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");};_feeef :=_efgdb .PageList [_deegg ];return _feeef ,nil ;};
// NewPdfFontFromTTF loads a TTF font and returns a PdfFont type that can be
// used in text styling functions.
// Uses a WinAnsiTextEncoder and loads only character codes 32-255.
// NOTE: For composite fonts such as used in symbolic languages, use NewCompositePdfFontFromTTF.
func NewPdfFontFromTTF (r _gfc .ReadSeeker )(*PdfFont ,error ){const _fcfd =_be .CharCode (32);const _afca =_be .CharCode (255);_dgba ,_gfddb :=_eba .ReadAll (r );if _gfddb !=nil {_abe .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",_gfddb );return nil ,_gfddb ;};_ccfge ,_gfddb :=_ecf .TtfParse (_cg .NewReader (_dgba ));if _gfddb !=nil {_abe .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",_gfddb );return nil ,_gfddb ;};_cecaa :=&pdfFontSimple {_bacac :make (map[_be .CharCode ]float64 ),fontCommon :fontCommon {_ababd :"\u0054\u0072\u0075\u0065\u0054\u0079\u0070\u0065"}};_cecaa ._bcbge =_be .NewWinAnsiEncoder ();_cecaa ._fegdg =_ccfge .PostScriptName ;_cecaa .FirstChar =_aef .MakeInteger (int64 (_fcfd ));_cecaa .LastChar =_aef .MakeInteger (int64 (_afca ));_gdga :=1000.0/float64 (_ccfge .UnitsPerEm );if len (_ccfge .Widths )<=0{return nil ,_fa .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");};_gdbbee :=_gdga *float64 (_ccfge .Widths [0]);_affa :=make ([]float64 ,0,_afca -_fcfd +1);for _dfdbd :=_fcfd ;_dfdbd <=_afca ;_dfdbd ++{_gfcgb ,_gbda :=_cecaa .Encoder ().CharcodeToRune (_dfdbd );if !_gbda {_abe .Log .Debug ("\u0052u\u006e\u0065\u0020\u006eo\u0074\u0020\u0066\u006f\u0075n\u0064 \u0028c\u006f\u0064\u0065\u003a\u0020\u0025\u0064)",_dfdbd );_affa =append (_affa ,_gdbbee );continue ;};_bfccg ,_cdfb :=_ccfge .Chars [_gfcgb ];if !_cdfb {_abe .Log .Debug ("R\u0075\u006e\u0065\u0020no\u0074 \u0069\u006e\u0020\u0054\u0054F\u0020\u0043\u0068\u0061\u0072\u0073");_affa =append (_affa ,_gdbbee );continue ;};_aafbd :=_gdga *float64 (_ccfge .Widths [_bfccg ]);_affa =append (_affa ,_aafbd );};_cecaa .Widths =_aef .MakeIndirectObject (_aef .MakeArrayFromFloats (_affa ));if len (_affa )< int (_afca -_fcfd +1){_abe .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 (_affa ),255-32+1);return nil ,_aef .ErrRangeError ;};for _fccc :=_fcfd ;_fccc <=_afca ;_fccc ++{_cecaa ._bacac [_fccc ]=_affa [_fccc -_fcfd ];};_cecaa .Encoding =_aef .MakeName ("\u0057i\u006eA\u006e\u0073\u0069\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067");_gdefa :=&PdfFontDescriptor {};_gdefa .FontName =_aef .MakeName (_ccfge .PostScriptName );_gdefa .Ascent =_aef .MakeFloat (_gdga *float64 (_ccfge .TypoAscender ));_gdefa .Descent =_aef .MakeFloat (_gdga *float64 (_ccfge .TypoDescender ));_gdefa .CapHeight =_aef .MakeFloat (_gdga *float64 (_ccfge .CapHeight ));_gdefa .FontBBox =_aef .MakeArrayFromFloats ([]float64 {_gdga *float64 (_ccfge .Xmin ),_gdga *float64 (_ccfge .Ymin ),_gdga *float64 (_ccfge .Xmax ),_gdga *float64 (_ccfge .Ymax )});_gdefa .ItalicAngle =_aef .MakeFloat (_ccfge .ItalicAngle );_gdefa .MissingWidth =_aef .MakeFloat (_gdga *float64 (_ccfge .Widths [0]));_ecfd ,_gfddb :=_aef .MakeStream (_dgba ,_aef .NewFlateEncoder ());if _gfddb !=nil {_abe .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",_gfddb );return nil ,_gfddb ;};_ecfd .PdfObjectDictionary .Set ("\u004ce\u006e\u0067\u0074\u0068\u0031",_aef .MakeInteger (int64 (len (_dgba ))));_gdefa .FontFile2 =_ecfd ;if _ccfge .Bold {_gdefa .StemV =_aef .MakeInteger (120);}else {_gdefa .StemV =_aef .MakeInteger (70);};_bfda :=_gegad ;if _ccfge .IsFixedPitch {_bfda |=_gbfag ;};if _ccfge .ItalicAngle !=0{_bfda |=_gdfcda ;};_gdefa .Flags =_aef .MakeInteger (int64 (_bfda ));_cecaa ._bgfd =_gdefa ;_adfd :=&PdfFont {_dccga :_cecaa };return _adfd ,nil ;};type pdfFontType0 struct{fontCommon ;_abbb *_aef .PdfIndirectObject ;_eeag _be .TextEncoder ;Encoding _aef .PdfObject ;DescendantFont *PdfFont ;_dcdab *_gg .CMap ;};
// GetPdfInfo returns the PDF info dictionary.
func (_bdac *PdfReader )GetPdfInfo ()(*PdfInfo ,error ){_aaafe :=PdfInfo {};_dfaeb ,_gecgf :=_bdac .GetTrailer ();if _gecgf !=nil {return nil ,_gecgf ;};var _gdeae *_aef .PdfObjectDictionary ;_ebcdd :=_dfaeb .Get ("\u0049\u006e\u0066\u006f");switch _dgfc :=_ebcdd .(type ){case *_aef .PdfObjectReference :_befe :=_dgfc ;_ebcdd ,_gecgf =_bdac .GetIndirectObjectByNumber (int (_befe .ObjectNumber ));_ebcdd =_aef .TraceToDirectObject (_ebcdd );if _gecgf !=nil {return nil ,_gecgf ;};_gdeae ,_ =_ebcdd .(*_aef .PdfObjectDictionary );case *_aef .PdfObjectDictionary :_gdeae =_dgfc ;};if _gdeae ==nil {return nil ,_fa .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 _ ,_afbbg :=range _gdeae .Keys (){switch _afbbg {case "\u0054\u0069\u0074l\u0065":_aaafe .Title ,_ =_aef .GetString (_gdeae .Get ("\u0054\u0069\u0074l\u0065"));case "\u0041\u0075\u0074\u0068\u006f\u0072":_aaafe .Author ,_ =_aef .GetString (_gdeae .Get ("\u0041\u0075\u0074\u0068\u006f\u0072"));case "\u0053u\u0062\u006a\u0065\u0063\u0074":_aaafe .Subject ,_ =_aef .GetString (_gdeae .Get ("\u0053u\u0062\u006a\u0065\u0063\u0074"));case "\u004b\u0065\u0079\u0077\u006f\u0072\u0064\u0073":_aaafe .Keywords ,_ =_aef .GetString (_gdeae .Get ("\u004b\u0065\u0079\u0077\u006f\u0072\u0064\u0073"));case "\u0043r\u0065\u0061\u0074\u006f\u0072":_aaafe .Creator ,_ =_aef .GetString (_gdeae .Get ("\u0043r\u0065\u0061\u0074\u006f\u0072"));case "\u0050\u0072\u006f\u0064\u0075\u0063\u0065\u0072":_aaafe .Producer ,_ =_aef .GetString (_gdeae .Get ("\u0050\u0072\u006f\u0064\u0075\u0063\u0065\u0072"));case "\u0054r\u0061\u0070\u0070\u0065\u0064":_aaafe .Trapped ,_ =_aef .GetName (_gdeae .Get ("\u0054r\u0061\u0070\u0070\u0065\u0064"));case "\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065":if _acgce ,_cbggb :=_aef .GetString (_gdeae .Get ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065"));_cbggb &&_acgce .String ()!=""{_eaafe ,_bdfe :=NewPdfDate (_acgce .String ());if _bdfe !=nil {return nil ,_bdfe ;};_aaafe .CreationDate =&_eaafe ;};case "\u004do\u0064\u0044\u0061\u0074\u0065":if _fcbcd ,_aacca :=_aef .GetString (_gdeae .Get ("\u004do\u0064\u0044\u0061\u0074\u0065"));_aacca &&_fcbcd .String ()!=""{_fbade ,_eecga :=NewPdfDate (_fcbcd .String ());if _eecga !=nil {return nil ,_eecga ;};_aaafe .ModifiedDate =&_fbade ;};default:_gadbf ,_ :=_aef .GetString (_gdeae .Get (_afbbg ));if _aaafe ._ebcd ==nil {_aaafe ._ebcd =_aef .MakeDict ();};_aaafe ._ebcd .Set (_afbbg ,_gadbf );};};return &_aaafe ,nil ;};func (_bgba *PdfField )inherit (_dgcd func (*PdfField )bool )(bool ,error ){_dccg :=map[*PdfField ]bool {};_edeg :=false ;_fgaf :=_bgba ;for _fgaf !=nil {if _ ,_gddda :=_dccg [_fgaf ];_gddda {return false ,_fa .New ("\u0072\u0065\u0063\u0075rs\u0069\u0076\u0065\u0020\u0074\u0072\u0061\u0076\u0065\u0072\u0073\u0061\u006c");};_eeggd :=_dgcd (_fgaf );if _eeggd {_edeg =true ;break ;};_dccg [_fgaf ]=true ;_fgaf =_fgaf .Parent ;};return _edeg ,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 (_ggfbe *LTV )EnableByName (name string ,extraCerts []*_c .Certificate )error {_dbbcae :=_ggfbe ._bdabf ._fdd .AcroForm ;for _ ,_dgbf :=range _dbbcae .AllFields (){_eafda ,_ :=_dgbf .GetContext ().(*PdfFieldSignature );if _eafda ==nil {continue ;};if _dgcb :=_eafda .PartialName ();_dgcb !=name {continue ;};return _ggfbe .Enable (_eafda .V ,extraCerts );};return nil ;};
// ImageToRGB converts image in CalGray color space to RGB (A, B, C -> X, Y, Z).
func (_ecfab *PdfColorspaceCalGray )ImageToRGB (img Image )(Image ,error ){_beea :=_ea .NewReader (img .getBase ());_bdbd :=_gb .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),3,nil ,nil ,nil );_fdcc :=_ea .NewWriter (_bdbd );_fgeg :=_ad .Pow (2,float64 (img .BitsPerComponent ))-1;_fggd :=make ([]uint32 ,3);var (_aeab uint32 ;ANorm ,X ,Y ,Z ,_eegb ,_fafc ,_fedb float64 ;_cade error ;);for {_aeab ,_cade =_beea .ReadSample ();if _cade ==_gfc .EOF {break ;}else if _cade !=nil {return img ,_cade ;};ANorm =float64 (_aeab )/_fgeg ;X =_ecfab .WhitePoint [0]*_ad .Pow (ANorm ,_ecfab .Gamma );Y =_ecfab .WhitePoint [1]*_ad .Pow (ANorm ,_ecfab .Gamma );Z =_ecfab .WhitePoint [2]*_ad .Pow (ANorm ,_ecfab .Gamma );_eegb =3.240479*X +-1.537150*Y +-0.498535*Z ;_fafc =-0.969256*X +1.875992*Y +0.041556*Z ;_fedb =0.055648*X +-0.204043*Y +1.057311*Z ;_eegb =_ad .Min (_ad .Max (_eegb ,0),1.0);_fafc =_ad .Min (_ad .Max (_fafc ,0),1.0);_fedb =_ad .Min (_ad .Max (_fedb ,0),1.0);_fggd [0]=uint32 (_eegb *_fgeg );_fggd [1]=uint32 (_fafc *_fgeg );_fggd [2]=uint32 (_fedb *_fgeg );if _cade =_fdcc .WriteSamples (_fggd );_cade !=nil {return img ,_cade ;};};return _cbgdcg (&_bdbd ),nil ;};
// PdfColor interface represents a generic color in PDF.
type PdfColor interface{};func (_bcdg *PdfReader )newPdfOutlineItemFromIndirectObject (_cbdb *_aef .PdfIndirectObject )(*PdfOutlineItem ,error ){_fdabc ,_abbbg :=_cbdb .PdfObject .(*_aef .PdfObjectDictionary );if !_abbbg {return nil ,_b .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");};_eece :=NewPdfOutlineItem ();_gfad :=_fdabc .Get ("\u0054\u0069\u0074l\u0065");if _gfad ==nil {return nil ,_b .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");};_cefd ,_ccce :=_aef .GetString (_gfad );if !_ccce {return nil ,_b .Errorf ("\u0074\u0069\u0074le\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0073\u0074\u0072\u0069\u006e\u0067\u0020\u0028\u0025\u0054\u0029",_gfad );};_eece .Title =_cefd ;if _gafbc :=_fdabc .Get ("\u0043\u006f\u0075n\u0074");_gafbc !=nil {_fddd ,_dgeca :=_gafbc .(*_aef .PdfObjectInteger );if !_dgeca {return nil ,_b .Errorf ("\u0063o\u0075\u006e\u0074\u0020n\u006f\u0074\u0020\u0061\u006e \u0069n\u0074e\u0067\u0065\u0072\u0020\u0028\u0025\u0054)",_gafbc );};_bcfd :=int64 (*_fddd );_eece .Count =&_bcfd ;};if _cbbeg :=_fdabc .Get ("\u0044\u0065\u0073\u0074");_cbbeg !=nil {_eece .Dest =_aef .ResolveReference (_cbbeg );if !_bcdg ._afae {_acfaa :=_bcdg .traverseObjectData (_eece .Dest );if _acfaa !=nil {return nil ,_acfaa ;};};};if _cgbfb :=_fdabc .Get ("\u0041");_cgbfb !=nil {_eece .A =_aef .ResolveReference (_cgbfb );if !_bcdg ._afae {_adcbc :=_bcdg .traverseObjectData (_eece .A );if _adcbc !=nil {return nil ,_adcbc ;};};};if _cfef :=_fdabc .Get ("\u0053\u0045");_cfef !=nil {_eece .SE =nil ;};if _ccaga :=_fdabc .Get ("\u0043");_ccaga !=nil {_eece .C =_aef .ResolveReference (_ccaga );};if _ceed :=_fdabc .Get ("\u0046");_ceed !=nil {_eece .F =_aef .ResolveReference (_ceed );};return _eece ,nil ;};
// ColorFromPdfObjects gets the color from a series of pdf objects (3 for rgb).
func (_ggebe *PdfColorspaceDeviceRGB )ColorFromPdfObjects (objects []_aef .PdfObject )(PdfColor ,error ){if len (objects )!=3{return nil ,_fa .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_babf ,_gcee :=_aef .GetNumbersAsFloat (objects );if _gcee !=nil {return nil ,_gcee ;};return _ggebe .ColorFromFloats (_babf );};
// ToPdfObject returns a *PdfIndirectObject containing a *PdfObjectArray representation of the DeviceN colorspace.
// Format: [/DeviceN names alternateSpace tintTransform]
// or: [/DeviceN names alternateSpace tintTransform attributes]
func (_dbaf *PdfColorspaceDeviceN )ToPdfObject ()_aef .PdfObject {_acfa :=_aef .MakeArray (_aef .MakeName ("\u0044e\u0076\u0069\u0063\u0065\u004e"));_acfa .Append (_dbaf .ColorantNames );_acfa .Append (_dbaf .AlternateSpace .ToPdfObject ());_acfa .Append (_dbaf .TintTransform .ToPdfObject ());if _dbaf .Attributes !=nil {_acfa .Append (_dbaf .Attributes .ToPdfObject ());};if _dbaf ._ggbg !=nil {_dbaf ._ggbg .PdfObject =_acfa ;return _dbaf ._ggbg ;};return _acfa ;};
// ToPdfObject returns the PDF representation of the function.
func (_cdceb *PdfFunctionType0 )ToPdfObject ()_aef .PdfObject {if _cdceb ._feeee ==nil {_cdceb ._feeee =&_aef .PdfObjectStream {};};_bdfc :=_aef .MakeDict ();_bdfc .Set ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065",_aef .MakeInteger (0));_fdgd :=&_aef .PdfObjectArray {};for _ ,_dbge :=range _cdceb .Domain {_fdgd .Append (_aef .MakeFloat (_dbge ));};_bdfc .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_fdgd );_ffab :=&_aef .PdfObjectArray {};for _ ,_gdeg :=range _cdceb .Range {_ffab .Append (_aef .MakeFloat (_gdeg ));};_bdfc .Set ("\u0052\u0061\u006eg\u0065",_ffab );_cfdcb :=&_aef .PdfObjectArray {};for _ ,_gabgg :=range _cdceb .Size {_cfdcb .Append (_aef .MakeInteger (int64 (_gabgg )));};_bdfc .Set ("\u0053\u0069\u007a\u0065",_cfdcb );_bdfc .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0053\u0061\u006d\u0070\u006c\u0065",_aef .MakeInteger (int64 (_cdceb .BitsPerSample )));if _cdceb .Order !=1{_bdfc .Set ("\u004f\u0072\u0064e\u0072",_aef .MakeInteger (int64 (_cdceb .Order )));};_bdfc .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_aef .MakeInteger (int64 (len (_cdceb ._bdgaa ))));_cdceb ._feeee .Stream =_cdceb ._bdgaa ;_cdceb ._feeee .PdfObjectDictionary =_bdfc ;return _cdceb ._feeee ;};
// 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 (_aabg *PdfColorspaceSpecialPattern )ColorFromPdfObjects (objects []_aef .PdfObject )(PdfColor ,error ){if len (objects )< 1{return nil ,_fa .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");};_efgd :=&PdfColorPattern {};_edgd ,_ccfd :=objects [len (objects )-1].(*_aef .PdfObjectName );if !_ccfd {_abe .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 ;};_efgd .PatternName =*_edgd ;if len (objects )> 1{_gafg :=objects [0:len (objects )-1];if _aabg .UnderlyingCS ==nil {_abe .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 ,_fa .New ("\u0075n\u0064\u0065\u0072\u006cy\u0069\u006e\u0067\u0020\u0043S\u0020n\u006ft\u0020\u0064\u0065\u0066\u0069\u006e\u0065d");};_fbaef ,_agbg :=_aabg .UnderlyingCS .ColorFromPdfObjects (_gafg );if _agbg !=nil {_abe .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",_agbg );return nil ,_agbg ;};_efgd .Color =_fbaef ;};return _efgd ,nil ;};
// RepairAcroForm attempts to rebuild the AcroForm fields using the widget
// annotations present in the document pages. Pass nil for the opts parameter
// in order to use the default options.
// NOTE: Currently, the opts parameter is declared in order to enable adding
// future options, but passing nil will always result in the default options
// being used.
func (_aeebd *PdfReader )RepairAcroForm (opts *AcroFormRepairOptions )error {var _bcbde []*PdfField ;_decba :=map[*_aef .PdfIndirectObject ]struct{}{};for _ ,_fggeae :=range _aeebd .PageList {_fbeaf ,_ceccf :=_fggeae .GetAnnotations ();if _ceccf !=nil {return _ceccf ;};for _ ,_cbgcfa :=range _fbeaf {var _egaga *PdfField ;switch _edada :=_cbgcfa .GetContext ().(type ){case *PdfAnnotationWidget :if _edada ._ccc !=nil {_egaga =_edada ._ccc ;break ;};if _fafgb ,_fcdd :=_aef .GetIndirect (_edada .Parent );_fcdd {_egaga ,_ceccf =_aeebd .newPdfFieldFromIndirectObject (_fafgb ,nil );if _ceccf ==nil {break ;};_abe .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",_fafgb ,_ceccf );};if _edada ._edc !=nil {_egaga ,_ceccf =_aeebd .newPdfFieldFromIndirectObject (_edada ._edc ,nil );if _ceccf ==nil {break ;};_abe .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",_edada ._edc ,_ceccf );};};if _egaga ==nil {continue ;};if _ ,_abaddd :=_decba [_egaga ._abebg ];_abaddd {continue ;};_decba [_egaga ._abebg ]=struct{}{};_bcbde =append (_bcbde ,_egaga );};};if len (_bcbde )==0{return nil ;};if _aeebd .AcroForm ==nil {_aeebd .AcroForm =NewPdfAcroForm ();};_aeebd .AcroForm .Fields =&_bcbde ;return nil ;};
// ToPdfObject implements interface PdfModel.
func (_abf *PdfAnnotationScreen )ToPdfObject ()_aef .PdfObject {_abf .PdfAnnotation .ToPdfObject ();_bfcec :=_abf ._edc ;_bfgc :=_bfcec .PdfObject .(*_aef .PdfObjectDictionary );_bfgc .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_aef .MakeName ("\u0053\u0063\u0072\u0065\u0065\u006e"));_bfgc .SetIfNotNil ("\u0054",_abf .T );_bfgc .SetIfNotNil ("\u004d\u004b",_abf .MK );_bfgc .SetIfNotNil ("\u0041",_abf .A );_bfgc .SetIfNotNil ("\u0041\u0041",_abf .AA );return _bfcec ;};
// 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 (_bgea *PdfFont )RunesToCharcodeBytes (data []rune )([]byte ,int ){var _cacdd []_be .TextEncoder ;if _bffda :=_bgea .baseFields ()._ecefd ;_bffda !=nil {_cacdd =append (_cacdd ,_be .NewCMapEncoder ("",nil ,_bffda ));};if _eafa :=_bgea .Encoder ();_eafa !=nil {_cacdd =append (_cacdd ,_eafa );};var _gfeg _cg .Buffer ;var _becf int ;for _ ,_cbbe :=range data {var _deee bool ;for _ ,_daff :=range _cacdd {if _baac :=_daff .Encode (string (_cbbe ));len (_baac )> 0{_gfeg .Write (_baac );_deee =true ;break ;};};if !_deee {_abe .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",_cbbe );_becf ++;};};if _becf !=0{_abe .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 ),_becf ,_bgea ,_cacdd );};return _gfeg .Bytes (),_becf ;};
// GetContext returns a reference to the subpattern entry: either PdfTilingPattern or PdfShadingPattern.
func (_fgaa *PdfPattern )GetContext ()PdfModel {return _fgaa ._dgagc };
// PdfFieldChoice represents a choice field which includes scrollable list boxes and combo boxes.
type PdfFieldChoice struct{*PdfField ;Opt *_aef .PdfObjectArray ;TI *_aef .PdfObjectInteger ;I *_aef .PdfObjectArray ;};
// GetAnnotations returns the list of page annotations for `page`. If not loaded attempts to load the
// annotations, otherwise returns the loaded list.
func (_daee *PdfPage )GetAnnotations ()([]*PdfAnnotation ,error ){if _daee ._bcgfd !=nil {return _daee ._bcgfd ,nil ;};if _daee .Annots ==nil {_daee ._bcgfd =[]*PdfAnnotation {};return nil ,nil ;};if _daee ._aggeb ==nil {_daee ._bcgfd =[]*PdfAnnotation {};return nil ,nil ;};_bcfg ,_efeba :=_daee ._aggeb .loadAnnotations (_daee .Annots );if _efeba !=nil {return nil ,_efeba ;};if _bcfg ==nil {_daee ._bcgfd =[]*PdfAnnotation {};};_daee ._bcgfd =_bcfg ;return _daee ._bcgfd ,nil ;};
// B returns the value of the B component of the color.
func (_bbe *PdfColorCalRGB )B ()float64 {return _bbe [1]};
// 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"`;};
// GetCharMetrics returns the char metrics for character code `code`.
func (_cfda pdfCIDFontType0 )GetCharMetrics (code _be .CharCode )(_ecf .CharMetrics ,bool ){_dgdgb :=_cfda ._egcdc ;if _bdga ,_ebfgb :=_cfda ._gfbff [code ];_ebfgb {_dgdgb =_bdga ;};return _ecf .CharMetrics {Wx :_dgdgb },true ;};func (_ceeag *pdfFontType0 )subsetRegistered ()error {_bcadd ,_dggcc :=_ceeag .DescendantFont ._dccga .(*pdfCIDFontType2 );if !_dggcc {_abe .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",_ceeag .DescendantFont );return nil ;};if _bcadd ==nil {return nil ;};if _bcadd ._bgfd ==nil {_abe .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 _ceeag ._eeag ==nil {_abe .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 ;};_egff ,_dggcc :=_aef .GetStream (_bcadd ._bgfd .FontFile2 );if !_dggcc {_abe .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 _fa .New ("\u0066\u006f\u006e\u0074fi\u006c\u0065\u0032\u0020\u006e\u006f\u0074\u0020\u0066\u006f\u0075\u006e\u0064");};_geeg ,_cdcc :=_aef .DecodeStream (_egff );if _cdcc !=nil {_abe .Log .Debug ("\u0044\u0065c\u006f\u0064\u0065 \u0065\u0072\u0072\u006f\u0072\u003a\u0020\u0025\u0076",_cdcc );return _cdcc ;};_fcdc ,_cdcc :=_ee .Parse (_cg .NewReader (_geeg ));if _cdcc !=nil {_abe .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 (_egff .Stream ));return _cdcc ;};var _abdfb []rune ;var _bgcag *_ee .Font ;switch _daefc :=_ceeag ._eeag .(type ){case *_be .TrueTypeFontEncoder :_abdfb =_daefc .RegisteredRunes ();_bgcag ,_cdcc =_fcdc .SubsetKeepRunes (_abdfb );if _cdcc !=nil {_abe .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_cdcc );return _cdcc ;};_daefc .SubsetRegistered ();case *_be .IdentityEncoder :_abdfb =_daefc .RegisteredRunes ();_gedg :=make ([]_ee .GlyphIndex ,len (_abdfb ));for _aaaf ,_gbaba :=range _abdfb {_gedg [_aaaf ]=_ee .GlyphIndex (_gbaba );};_bgcag ,_cdcc =_fcdc .SubsetKeepIndices (_gedg );if _cdcc !=nil {_abe .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_cdcc );return _cdcc ;};case _be .SimpleEncoder :_faade :=_daefc .Charcodes ();for _ ,_eggdfc :=range _faade {_acfg ,_debe :=_daefc .CharcodeToRune (_eggdfc );if !_debe {_abe .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",_eggdfc );continue ;};_abdfb =append (_abdfb ,_acfg );};default:return _b .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",_ceeag ._eeag );};var _gaae _cg .Buffer ;_cdcc =_bgcag .Write (&_gaae );if _cdcc !=nil {_abe .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_cdcc );return _cdcc ;};if _ceeag ._ecefd !=nil {_cgcg :=make (map[_gg .CharCode ]rune ,len (_abdfb ));for _ ,_bbaae :=range _abdfb {_adaff ,_ggdcg :=_ceeag ._eeag .RuneToCharcode (_bbaae );if !_ggdcg {continue ;};_cgcg [_gg .CharCode (_adaff )]=_bbaae ;};_ceeag ._ecefd =_gg .NewToUnicodeCMap (_cgcg );};_egff ,_cdcc =_aef .MakeStream (_gaae .Bytes (),_aef .NewFlateEncoder ());if _cdcc !=nil {_abe .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_cdcc );return _cdcc ;};_egff .Set ("\u004ce\u006e\u0067\u0074\u0068\u0031",_aef .MakeInteger (int64 (_gaae .Len ())));if _gdddg ,_abbg :=_aef .GetStream (_bcadd ._bgfd .FontFile2 );_abbg {*_gdddg =*_egff ;}else {_bcadd ._bgfd .FontFile2 =_egff ;};_eccc :=_dbef ();if len (_ceeag ._fegdg )> 0{_ceeag ._fegdg =_fgga (_ceeag ._fegdg ,_eccc );};if len (_bcadd ._fegdg )> 0{_bcadd ._fegdg =_fgga (_bcadd ._fegdg ,_eccc );};if len (_ceeag ._cebc )> 0{_ceeag ._cebc =_fgga (_ceeag ._cebc ,_eccc );};if _bcadd ._bgfd !=nil {_gdbbc ,_cedad :=_aef .GetName (_bcadd ._bgfd .FontName );if _cedad &&len (_gdbbc .String ())> 0{_eadd :=_fgga (_gdbbc .String (),_eccc );_bcadd ._bgfd .FontName =_aef .MakeName (_eadd );};};return nil ;};
// PdfAnnotationStamp represents Stamp annotations.
// (Section 12.5.6.12).
type PdfAnnotationStamp struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Name _aef .PdfObject ;};var _ pdfFont =(*pdfFontSimple )(nil );
// 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 ;_afge []byte ;_fgafa []float64 ;};func _eaae (_agaf _aef .PdfObject ,_bfaa *PdfReader )(*OutlineDest ,error ){_ddef ,_bbfg :=_aef .GetArray (_agaf );if !_bbfg {return nil ,_fa .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");};_fefa :=_ddef .Len ();if _fefa < 2{return nil ,_b .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",_fefa );};_gffba :=&OutlineDest {Mode :"\u0046\u0069\u0074"};_ecge :=_ddef .Get (0);if _ddba ,_gccca :=_aef .GetIndirect (_ecge );_gccca {if _ ,_eabfg ,_bbedf :=_bfaa .PageFromIndirectObject (_ddba );_bbedf ==nil {_gffba .Page =int64 (_eabfg -1);}else {_abe .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",_ddba );};_gffba .PageObj =_ddba ;}else if _ffggf ,_ageca :=_aef .GetIntVal (_ecge );_ageca {if _ffggf >=0&&_ffggf < len (_bfaa .PageList ){_gffba .PageObj =_bfaa .PageList [_ffggf ].GetPageAsIndirectObject ();}else {_abe .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",_ffggf );};_gffba .Page =int64 (_ffggf );}else {return nil ,_b .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",_ecge );};_bcfcf ,_bbfg :=_aef .GetNameVal (_ddef .Get (1));if !_bbfg {_abe .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",_ddef .Get (1));return _gffba ,nil ;};switch _bcfcf {case "\u0046\u0069\u0074","\u0046\u0069\u0074\u0042":case "\u0046\u0069\u0074\u0048","\u0046\u0069\u0074B\u0048":if _fefa > 2{_gffba .Y ,_ =_aef .GetNumberAsFloat (_aef .TraceToDirectObject (_ddef .Get (2)));};case "\u0046\u0069\u0074\u0056","\u0046\u0069\u0074B\u0056":if _fefa > 2{_gffba .X ,_ =_aef .GetNumberAsFloat (_aef .TraceToDirectObject (_ddef .Get (2)));};case "\u0058\u0059\u005a":if _fefa > 4{_gffba .X ,_ =_aef .GetNumberAsFloat (_aef .TraceToDirectObject (_ddef .Get (2)));_gffba .Y ,_ =_aef .GetNumberAsFloat (_aef .TraceToDirectObject (_ddef .Get (3)));_gffba .Zoom ,_ =_aef .GetNumberAsFloat (_aef .TraceToDirectObject (_ddef .Get (4)));};default:_bcfcf ="\u0046\u0069\u0074";};_gffba .Mode =_bcfcf ;return _gffba ,nil ;};
// 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 (_gda *PdfFieldButton )GetType ()ButtonType {_aegfc :=ButtonTypeCheckbox ;if _gda .Ff !=nil {if (uint32 (*_gda .Ff )&FieldFlagPushbutton .Mask ())> 0{_aegfc =ButtonTypePush ;}else if (uint32 (*_gda .Ff )&FieldFlagRadio .Mask ())> 0{_aegfc =ButtonTypeRadio ;};};return _aegfc ;};
// 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 (_eccbd *PdfFont )CharcodesToUnicodeWithStats (charcodes []_be .CharCode )(_bgfb []rune ,_bffg ,_cfff int ){_adac ,_bffg ,_cfff :=_eccbd .CharcodesToStrings (charcodes );return []rune (_dg .Join (_adac ,"")),_bffg ,_cfff ;};
// Initialize initializes the PdfSignature.
func (_gdeda *PdfSignature )Initialize ()error {if _gdeda .Handler ==nil {return _fa .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 _gdeda .Handler .InitSignature (_gdeda );};
// NewPdfActionSubmitForm returns a new "submit form" action.
func NewPdfActionSubmitForm ()*PdfActionSubmitForm {_ge :=NewPdfAction ();_gff :=&PdfActionSubmitForm {};_gff .PdfAction =_ge ;_ge .SetContext (_gff );return _gff ;};
// GetModelFromPrimitive returns the model corresponding to the `primitive` PdfObject.
func (_bfece *modelManager )GetModelFromPrimitive (primitive _aef .PdfObject )PdfModel {model ,_baacc :=_bfece ._bgbf [primitive ];if !_baacc {return nil ;};return model ;};
// 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 (_egec DefaultImageHandler )Compress (input *Image ,quality int64 )(*Image ,error ){return input ,nil ;};func _dgce (_gegf *_aef .PdfIndirectObject ,_agfd *_aef .PdfObjectDictionary )(*DSS ,error ){if _gegf ==nil {_gegf =_aef .MakeIndirectObject (nil );};_gegf .PdfObject =_aef .MakeDict ();_cdfe :=map[string ]*VRI {};if _debf ,_cbda :=_aef .GetDict (_agfd .Get ("\u0056\u0052\u0049"));_cbda {for _ ,_geee :=range _debf .Keys (){if _adad ,_gcbc :=_aef .GetDict (_debf .Get (_geee ));_gcbc {_cdfe [_dg .ToUpper (_geee .String ())]=_bfba (_adad );};};};return &DSS {Certs :_cbbfg (_agfd .Get ("\u0043\u0065\u0072t\u0073")),OCSPs :_cbbfg (_agfd .Get ("\u004f\u0043\u0053P\u0073")),CRLs :_cbbfg (_agfd .Get ("\u0043\u0052\u004c\u0073")),VRI :_cdfe ,_egdea :_gegf },nil ;};func _dbgaf (_cface *PdfField )[]*PdfField {_ebdeb :=[]*PdfField {_cface };for _ ,_fafbe :=range _cface .Kids {_ebdeb =append (_ebdeb ,_dbgaf (_fafbe )...);};return _ebdeb ;};
// ToUnicode returns the name of the font's "ToUnicode" field if there is one, or "" if there isn't.
func (_dffa *PdfFont )ToUnicode ()string {if _dffa .baseFields ()._ecefd ==nil {return "";};return _dffa .baseFields ()._ecefd .Name ();};
// ToPdfObject converts the pdfCIDFontType2 to a PDF representation.
func (_aggde *pdfCIDFontType2 )ToPdfObject ()_aef .PdfObject {if _aggde ._cafb ==nil {_aggde ._cafb =&_aef .PdfIndirectObject {};};_bfeca :=_aggde .baseFields ().asPdfObjectDictionary ("\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032");_aggde ._cafb .PdfObject =_bfeca ;if _aggde .CIDSystemInfo !=nil {_bfeca .Set ("\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f",_aggde .CIDSystemInfo );};if _aggde .DW !=nil {_bfeca .Set ("\u0044\u0057",_aggde .DW );};if _aggde .DW2 !=nil {_bfeca .Set ("\u0044\u0057\u0032",_aggde .DW2 );};if _aggde .W !=nil {_bfeca .Set ("\u0057",_aggde .W );};if _aggde .W2 !=nil {_bfeca .Set ("\u0057\u0032",_aggde .W2 );};if _aggde .CIDToGIDMap !=nil {_bfeca .Set ("C\u0049\u0044\u0054\u006f\u0047\u0049\u0044\u004d\u0061\u0070",_aggde .CIDToGIDMap );};return _aggde ._cafb ;};func _ddg (_cbec _aef .PdfObject )(*PdfColorspaceCalRGB ,error ){_gccb :=NewPdfColorspaceCalRGB ();if _fccf ,_ebfe :=_cbec .(*_aef .PdfIndirectObject );_ebfe {_gccb ._cdag =_fccf ;};_cbec =_aef .TraceToDirectObject (_cbec );_bgfe ,_gcgd :=_cbec .(*_aef .PdfObjectArray );if !_gcgd {return nil ,_b .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _bgfe .Len ()!=2{return nil ,_b .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0043\u0061\u006c\u0052G\u0042 \u0063o\u006c\u006f\u0072\u0073\u0070\u0061\u0063e");};_cbec =_aef .TraceToDirectObject (_bgfe .Get (0));_dcea ,_gcgd :=_cbec .(*_aef .PdfObjectName );if !_gcgd {return nil ,_b .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 *_dcea !="\u0043\u0061\u006c\u0052\u0047\u0042"{return nil ,_b .Errorf ("\u006e\u006f\u0074 a\u0020\u0043\u0061\u006c\u0052\u0047\u0042\u0020\u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063\u0065");};_cbec =_aef .TraceToDirectObject (_bgfe .Get (1));_efcc ,_gcgd :=_cbec .(*_aef .PdfObjectDictionary );if !_gcgd {return nil ,_b .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");};_cbec =_efcc .Get ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074");_cbec =_aef .TraceToDirectObject (_cbec );_cfceg ,_gcgd :=_cbec .(*_aef .PdfObjectArray );if !_gcgd {return nil ,_b .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 _cfceg .Len ()!=3{return nil ,_b .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");};_bfdd ,_bbd :=_cfceg .GetAsFloat64Slice ();if _bbd !=nil {return nil ,_bbd ;};_gccb .WhitePoint =_bfdd ;_cbec =_efcc .Get ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074");if _cbec !=nil {_cbec =_aef .TraceToDirectObject (_cbec );_ddfce ,_adde :=_cbec .(*_aef .PdfObjectArray );if !_adde {return nil ,_b .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 _ddfce .Len ()!=3{return nil ,_b .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");};_dbdge ,_bacb :=_ddfce .GetAsFloat64Slice ();if _bacb !=nil {return nil ,_bacb ;};_gccb .BlackPoint =_dbdge ;};_cbec =_efcc .Get ("\u0047\u0061\u006dm\u0061");if _cbec !=nil {_cbec =_aef .TraceToDirectObject (_cbec );_acefb ,_eccbf :=_cbec .(*_aef .PdfObjectArray );if !_eccbf {return nil ,_b .Errorf ("C\u0061\u006c\u0052\u0047B:\u0020I\u006e\u0076\u0061\u006c\u0069d\u0020\u0047\u0061\u006d\u006d\u0061");};if _acefb .Len ()!=3{return nil ,_b .Errorf ("C\u0061\u006c\u0052\u0047\u0042\u003a \u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0047a\u006d\u006d\u0061 \u0061r\u0072\u0061\u0079");};_dgef ,_gegg :=_acefb .GetAsFloat64Slice ();if _gegg !=nil {return nil ,_gegg ;};_gccb .Gamma =_dgef ;};_cbec =_efcc .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");if _cbec !=nil {_cbec =_aef .TraceToDirectObject (_cbec );_bfdf ,_fcfbg :=_cbec .(*_aef .PdfObjectArray );if !_fcfbg {return nil ,_b .Errorf ("\u0043\u0061\u006c\u0052GB\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u004d\u0061\u0074\u0072i\u0078");};if _bfdf .Len ()!=9{_abe .Log .Error ("\u004d\u0061t\u0072\u0069\u0078 \u0061\u0072\u0072\u0061\u0079\u003a\u0020\u0025\u0073",_bfdf .String ());return nil ,_b .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");};_fggcb ,_ebga :=_bfdf .GetAsFloat64Slice ();if _ebga !=nil {return nil ,_ebga ;};_gccb .Matrix =_fggcb ;};return _gccb ,nil ;};
// ToPdfObject converts the font to a PDF representation.
func (_aggc *pdfFontType0 )ToPdfObject ()_aef .PdfObject {if _aggc ._abbb ==nil {_aggc ._abbb =&_aef .PdfIndirectObject {};};_fdffc :=_aggc .baseFields ().asPdfObjectDictionary ("\u0054\u0079\u0070e\u0030");_aggc ._abbb .PdfObject =_fdffc ;if _aggc .Encoding !=nil {_fdffc .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_aggc .Encoding );}else if _aggc ._eeag !=nil {_fdffc .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_aggc ._eeag .ToPdfObject ());};if _aggc .DescendantFont !=nil {_fdffc .Set ("\u0044e\u0073c\u0065\u006e\u0064\u0061\u006e\u0074\u0046\u006f\u006e\u0074\u0073",_aef .MakeArray (_aggc .DescendantFont .ToPdfObject ()));};return _aggc ._abbb ;};func _gaca (_cfcd _aef .PdfObject )(*PdfFunctionType3 ,error ){_cgbg :=&PdfFunctionType3 {};var _egafdb *_aef .PdfObjectDictionary ;if _dgdf ,_cefec :=_cfcd .(*_aef .PdfIndirectObject );_cefec {_agae ,_fabfa :=_dgdf .PdfObject .(*_aef .PdfObjectDictionary );if !_fabfa {return nil ,_fa .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_cgbg ._deaga =_dgdf ;_egafdb =_agae ;}else if _egef ,_dafg :=_cfcd .(*_aef .PdfObjectDictionary );_dafg {_egafdb =_egef ;}else {return nil ,_fa .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_gdgab ,_afbece :=_aef .TraceToDirectObject (_egafdb .Get ("\u0044\u006f\u006d\u0061\u0069\u006e")).(*_aef .PdfObjectArray );if !_afbece {_abe .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_fa .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 _gdgab .Len ()!=2{_abe .Log .Error ("\u0044\u006f\u006d\u0061\u0069\u006e\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");return nil ,_fa .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0064\u006f\u006da\u0069\u006e\u0020\u0072an\u0067\u0065");};_fdded ,_dadbc :=_gdgab .ToFloat64Array ();if _dadbc !=nil {return nil ,_dadbc ;};_cgbg .Domain =_fdded ;_gdgab ,_afbece =_aef .TraceToDirectObject (_egafdb .Get ("\u0052\u0061\u006eg\u0065")).(*_aef .PdfObjectArray );if _afbece {if _gdgab .Len ()< 0||_gdgab .Len ()%2!=0{return nil ,_fa .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0061\u006e\u0067\u0065");};_faecf ,_baaae :=_gdgab .ToFloat64Array ();if _baaae !=nil {return nil ,_baaae ;};_cgbg .Range =_faecf ;};_gdgab ,_afbece =_aef .TraceToDirectObject (_egafdb .Get ("\u0046u\u006e\u0063\u0074\u0069\u006f\u006es")).(*_aef .PdfObjectArray );if !_afbece {_abe .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 ,_fa .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");};_cgbg .Functions =[]PdfFunction {};for _ ,_adbfa :=range _gdgab .Elements (){_afbg ,_fbgf :=_begb (_adbfa );if _fbgf !=nil {return nil ,_fbgf ;};_cgbg .Functions =append (_cgbg .Functions ,_afbg );};_gdgab ,_afbece =_aef .TraceToDirectObject (_egafdb .Get ("\u0042\u006f\u0075\u006e\u0064\u0073")).(*_aef .PdfObjectArray );if !_afbece {_abe .Log .Error ("B\u006fu\u006e\u0064\u0073\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_fa .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");};_acedg ,_dadbc :=_gdgab .ToFloat64Array ();if _dadbc !=nil {return nil ,_dadbc ;};_cgbg .Bounds =_acedg ;if len (_cgbg .Bounds )!=len (_cgbg .Functions )-1{_abe .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 (_cgbg .Bounds ),len (_cgbg .Functions ));return nil ,_fa .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_gdgab ,_afbece =_aef .TraceToDirectObject (_egafdb .Get ("\u0045\u006e\u0063\u006f\u0064\u0065")).(*_aef .PdfObjectArray );if !_afbece {_abe .Log .Error ("E\u006ec\u006f\u0064\u0065\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_fa .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");};_gged ,_dadbc :=_gdgab .ToFloat64Array ();if _dadbc !=nil {return nil ,_dadbc ;};_cgbg .Encode =_gged ;if len (_cgbg .Encode )!=2*len (_cgbg .Functions ){_abe .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 (_cgbg .Encode ),len (_cgbg .Functions ));return nil ,_fa .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};return _cgbg ,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 ){_ebaba :=PdfDate {};_ggdgc :=_aceda .FindAllStringSubmatch (dateStr ,1);if len (_ggdgc )< 1{return _ebaba ,_b .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 (_ggdgc [0])!=10{return _ebaba ,_fa .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");};_ebaba ._eacag ,_ =_f .ParseInt (_ggdgc [0][1],10,32);_ebaba ._bfeaf ,_ =_f .ParseInt (_ggdgc [0][2],10,32);_ebaba ._cecab ,_ =_f .ParseInt (_ggdgc [0][3],10,32);_ebaba ._begfg ,_ =_f .ParseInt (_ggdgc [0][4],10,32);_ebaba ._gdeaef ,_ =_f .ParseInt (_ggdgc [0][5],10,32);_ebaba ._ebge ,_ =_f .ParseInt (_ggdgc [0][6],10,32);if len (_ggdgc [0][7])> 0{_ebaba ._bggc =_ggdgc [0][7][0];}else {_ebaba ._bggc ='+';};if len (_ggdgc [0][8])> 0{_ebaba ._bbccf ,_ =_f .ParseInt (_ggdgc [0][8],10,32);}else {_ebaba ._bbccf =0;};if len (_ggdgc [0][9])> 0{_ebaba ._debfg ,_ =_f .ParseInt (_ggdgc [0][9],10,32);}else {_ebaba ._debfg =0;};return _ebaba ,nil ;};func (_bfbd *PdfAppender )mergeResources (_gdfed ,_cecf _aef .PdfObject ,_ddbf map[_aef .PdfObjectName ]_aef .PdfObjectName )_aef .PdfObject {if _cecf ==nil &&_gdfed ==nil {return nil ;};if _cecf ==nil {return _gdfed ;};_bfed ,_eccd :=_aef .GetDict (_cecf );if !_eccd {return _gdfed ;};if _gdfed ==nil {_fcfa :=_aef .MakeDict ();_fcfa .Merge (_bfed );return _cecf ;};_abgd ,_eccd :=_aef .GetDict (_gdfed );if !_eccd {_abe .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");_abgd =_aef .MakeDict ();};for _ ,_dadd :=range _bfed .Keys (){if _aebf ,_dade :=_ddbf [_dadd ];_dade {_abgd .Set (_aebf ,_bfed .Get (_dadd ));}else {_abgd .Set (_dadd ,_bfed .Get (_dadd ));};};return _abgd ;};type pdfSignDictionary struct{*_aef .PdfObjectDictionary ;_gegee *SignatureHandler ;_bebca *PdfSignature ;_ggbad int64 ;_dfdbe int ;_ffff int ;_afebc int ;_aceeb int ;};
// ToPdfObject implements interface PdfModel.
func (_efcdf *PdfAnnotationProjection )ToPdfObject ()_aef .PdfObject {_efcdf .PdfAnnotation .ToPdfObject ();_bbg :=_efcdf ._edc ;_ceea :=_bbg .PdfObject .(*_aef .PdfObjectDictionary );_efcdf .PdfAnnotationMarkup .appendToPdfDictionary (_ceea );return _bbg ;};func (_cfbgd *PdfWriter )seekByName (_effce _aef .PdfObject ,_afbbb []string ,_bgcc string )([]_aef .PdfObject ,error ){_abe .Log .Trace ("\u0053\u0065\u0065\u006b\u0020\u0062\u0079\u0020\u006e\u0061\u006d\u0065.\u002e\u0020\u0025\u0054",_effce );var _febcd []_aef .PdfObject ;if _egfbaf ,_fgffd :=_effce .(*_aef .PdfIndirectObject );_fgffd {return _cfbgd .seekByName (_egfbaf .PdfObject ,_afbbb ,_bgcc );};if _bbdfg ,_egabad :=_effce .(*_aef .PdfObjectStream );_egabad {return _cfbgd .seekByName (_bbdfg .PdfObjectDictionary ,_afbbb ,_bgcc );};if _dfafb ,_ggbaa :=_effce .(*_aef .PdfObjectDictionary );_ggbaa {_abe .Log .Trace ("\u0044\u0069\u0063\u0074");for _ ,_eacee :=range _dfafb .Keys (){_gccda :=_dfafb .Get (_eacee );if string (_eacee )==_bgcc {_febcd =append (_febcd ,_gccda );};for _ ,_abaee :=range _afbbb {if string (_eacee )==_abaee {_abe .Log .Trace ("\u0046\u006f\u006c\u006c\u006f\u0077\u0020\u006b\u0065\u0079\u0020\u0025\u0073",_abaee );_abcced ,_ccecf :=_cfbgd .seekByName (_gccda ,_afbbb ,_bgcc );if _ccecf !=nil {return _febcd ,_ccecf ;};_febcd =append (_febcd ,_abcced ...);break ;};};};return _febcd ,nil ;};return _febcd ,nil ;};
// PdfRectangle is a definition of a rectangle.
type PdfRectangle struct{Llx float64 ;Lly float64 ;Urx float64 ;Ury float64 ;};func (_deea *PdfReader )newPdfAnnotationUnderlineFromDict (_abeb *_aef .PdfObjectDictionary )(*PdfAnnotationUnderline ,error ){_fbab :=PdfAnnotationUnderline {};_acg ,_fgfd :=_deea .newPdfAnnotationMarkupFromDict (_abeb );if _fgfd !=nil {return nil ,_fgfd ;};_fbab .PdfAnnotationMarkup =_acg ;_fbab .QuadPoints =_abeb .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");return &_fbab ,nil ;};
// SetVersion sets the PDF version of the output file.
func (_eafc *PdfWriter )SetVersion (majorVersion ,minorVersion int ){_eafc ._cfebb =majorVersion ;_eafc ._gbcce =minorVersion ;};
// ToPdfObject implements interface PdfModel.
func (_bfce *PdfAnnotationHighlight )ToPdfObject ()_aef .PdfObject {_bfce .PdfAnnotation .ToPdfObject ();_abaa :=_bfce ._edc ;_adda :=_abaa .PdfObject .(*_aef .PdfObjectDictionary );_bfce .PdfAnnotationMarkup .appendToPdfDictionary (_adda );_adda .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_aef .MakeName ("\u0048i\u0067\u0068\u006c\u0069\u0067\u0068t"));_adda .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_bfce .QuadPoints );return _abaa ;};
// GetIndirectObjectByNumber retrieves and returns a specific PdfObject by object number.
func (_cdfcf *PdfReader )GetIndirectObjectByNumber (number int )(_aef .PdfObject ,error ){_dggeb ,_deadgc :=_cdfcf ._gdbbd .LookupByNumber (number );return _dggeb ,_deadgc ;};
// ToPdfObject returns colorspace in a PDF object format [name dictionary]
func (_cfbe *PdfColorspaceCalRGB )ToPdfObject ()_aef .PdfObject {_ffgd :=&_aef .PdfObjectArray {};_ffgd .Append (_aef .MakeName ("\u0043\u0061\u006c\u0052\u0047\u0042"));_ffcag :=_aef .MakeDict ();if _cfbe .WhitePoint !=nil {_dedd :=_aef .MakeArray (_aef .MakeFloat (_cfbe .WhitePoint [0]),_aef .MakeFloat (_cfbe .WhitePoint [1]),_aef .MakeFloat (_cfbe .WhitePoint [2]));_ffcag .Set ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074",_dedd );}else {_abe .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 _cfbe .BlackPoint !=nil {_cceg :=_aef .MakeArray (_aef .MakeFloat (_cfbe .BlackPoint [0]),_aef .MakeFloat (_cfbe .BlackPoint [1]),_aef .MakeFloat (_cfbe .BlackPoint [2]));_ffcag .Set ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074",_cceg );};if _cfbe .Gamma !=nil {_ddgd :=_aef .MakeArray (_aef .MakeFloat (_cfbe .Gamma [0]),_aef .MakeFloat (_cfbe .Gamma [1]),_aef .MakeFloat (_cfbe .Gamma [2]));_ffcag .Set ("\u0047\u0061\u006dm\u0061",_ddgd );};if _cfbe .Matrix !=nil {_bddfc :=_aef .MakeArray (_aef .MakeFloat (_cfbe .Matrix [0]),_aef .MakeFloat (_cfbe .Matrix [1]),_aef .MakeFloat (_cfbe .Matrix [2]),_aef .MakeFloat (_cfbe .Matrix [3]),_aef .MakeFloat (_cfbe .Matrix [4]),_aef .MakeFloat (_cfbe .Matrix [5]),_aef .MakeFloat (_cfbe .Matrix [6]),_aef .MakeFloat (_cfbe .Matrix [7]),_aef .MakeFloat (_cfbe .Matrix [8]));_ffcag .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_bddfc );};_ffgd .Append (_ffcag );if _cfbe ._cdag !=nil {_cfbe ._cdag .PdfObject =_ffgd ;return _cfbe ._cdag ;};return _ffgd ;};
// AddExtension adds the specified extension to the Extensions dictionary.
// See section 7.1.2 "Extensions Dictionary" (pp. 108-109 PDF32000_2008).
func (_geaad *PdfWriter )AddExtension (extName ,baseVersion string ,extLevel int ){_dafe ,_daffb :=_aef .GetDict (_geaad ._abebc .Get ("\u0045\u0078\u0074\u0065\u006e\u0073\u0069\u006f\u006e\u0073"));if !_daffb {_dafe =_aef .MakeDict ();_geaad ._abebc .Set ("\u0045\u0078\u0074\u0065\u006e\u0073\u0069\u006f\u006e\u0073",_dafe );};_eecad ,_daffb :=_aef .GetDict (_dafe .Get (_aef .PdfObjectName (extName )));if !_daffb {_eecad =_aef .MakeDict ();_dafe .Set (_aef .PdfObjectName (extName ),_eecad );};if _dagfb ,_ :=_aef .GetNameVal (_eecad .Get ("B\u0061\u0073\u0065\u0056\u0065\u0072\u0073\u0069\u006f\u006e"));_dagfb !=baseVersion {_eecad .Set ("B\u0061\u0073\u0065\u0056\u0065\u0072\u0073\u0069\u006f\u006e",_aef .MakeName (baseVersion ));};if _fagefe ,_ :=_aef .GetIntVal (_eecad .Get ("\u0045\u0078\u0074\u0065\u006e\u0073\u0069\u006f\u006eL\u0065\u0076\u0065\u006c"));_fagefe !=extLevel {_eecad .Set ("\u0045\u0078\u0074\u0065\u006e\u0073\u0069\u006f\u006eL\u0065\u0076\u0065\u006c",_aef .MakeInteger (int64 (extLevel )));};};func (_adgef *LTV )getCerts (_fdbee []*_c .Certificate )([][]byte ,error ){_fdcfg :=make ([][]byte ,0,len (_fdbee ));for _ ,_egacc :=range _fdbee {_fdcfg =append (_fdcfg ,_egacc .Raw );};return _fdcfg ,nil ;};func (_efg *PdfReader )newPdfAnnotationHighlightFromDict (_egaf *_aef .PdfObjectDictionary )(*PdfAnnotationHighlight ,error ){_cddb :=PdfAnnotationHighlight {};_bbfb ,_aba :=_efg .newPdfAnnotationMarkupFromDict (_egaf );if _aba !=nil {return nil ,_aba ;};_cddb .PdfAnnotationMarkup =_bbfb ;_cddb .QuadPoints =_egaf .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");return &_cddb ,nil ;};
// NewPdfActionLaunch returns a new "launch" action.
func NewPdfActionLaunch ()*PdfActionLaunch {_dag :=NewPdfAction ();_cf :=&PdfActionLaunch {};_cf .PdfAction =_dag ;_dag .SetContext (_cf );return _cf ;};
// GetContentStreamObjs returns a slice of PDF objects containing the content
// streams of the page.
func (_cccae *PdfPage )GetContentStreamObjs ()[]_aef .PdfObject {if _cccae .Contents ==nil {return nil ;};_cdagf :=_aef .TraceToDirectObject (_cccae .Contents );if _dacc ,_cggad :=_cdagf .(*_aef .PdfObjectArray );_cggad {return _dacc .Elements ();};return []_aef .PdfObject {_cdagf };};
// 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 (_ebcfa *PdfReader )CheckAccessRights (password []byte )(bool ,_db .Permissions ,error ){return _ebcfa ._gdbbd .CheckAccessRights (password );};
// PdfOutlineTreeNode contains common fields used by the outline and outline
// item objects.
type PdfOutlineTreeNode struct{_gdgaba interface{};First *PdfOutlineTreeNode ;Last *PdfOutlineTreeNode ;};
// Val returns the color value.
func (_ddfc *PdfColorDeviceGray )Val ()float64 {return float64 (*_ddfc )};
// Mask returns the uin32 bitmask for the specific flag.
func (_dcdd FieldFlag )Mask ()uint32 {return uint32 (_dcdd )};
// NewPdfAction returns an initialized generic PDF action model.
func NewPdfAction ()*PdfAction {_dga :=&PdfAction {};_dga ._gc =_aef .MakeIndirectObject (_aef .MakeDict ());return _dga ;};
// 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 (_eefbf *PdfPage )SetContentStreams (cStreams []string ,encoder _aef .StreamEncoder )error {if len (cStreams )==0{_eefbf .Contents =nil ;return nil ;};if encoder ==nil {encoder =_aef .NewRawEncoder ();};var _cggce []*_aef .PdfObjectStream ;for _ ,_gfecc :=range cStreams {_aabaf :=&_aef .PdfObjectStream {};_aaabg :=encoder .MakeStreamDict ();_afef ,_fefd :=encoder .EncodeBytes ([]byte (_gfecc ));if _fefd !=nil {return _fefd ;};_aaabg .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_aef .MakeInteger (int64 (len (_afef ))));_aabaf .PdfObjectDictionary =_aaabg ;_aabaf .Stream =_afef ;_cggce =append (_cggce ,_aabaf );};if len (_cggce )==1{_eefbf .Contents =_cggce [0];}else {_bfedb :=_aef .MakeArray ();for _ ,_bgede :=range _cggce {_bfedb .Append (_bgede );};_eefbf .Contents =_bfedb ;};return 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 (_ffcd *PdfColorspaceCalRGB )ColorFromPdfObjects (objects []_aef .PdfObject )(PdfColor ,error ){if len (objects )!=3{return nil ,_fa .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_dece ,_aafe :=_aef .GetNumbersAsFloat (objects );if _aafe !=nil {return nil ,_aafe ;};return _ffcd .ColorFromFloats (_dece );};func (_dcga *PdfReader )flattenFieldsWithOpts (_ggff bool ,_agge FieldAppearanceGenerator ,_dbeg *FieldFlattenOpts )error {if _dbeg ==nil {_dbeg =&FieldFlattenOpts {};};var _badd bool ;_eadfg :=map[*PdfAnnotation ]bool {};{var _dfaff []*PdfField ;_bbacd :=_dcga .AcroForm ;if _bbacd !=nil {if _dbeg .FilterFunc !=nil {_dfaff =_bbacd .filteredFields (_dbeg .FilterFunc ,true );_badd =_bbacd .Fields !=nil &&len (*_bbacd .Fields )> 0;}else {_dfaff =_bbacd .AllFields ();};};for _ ,_affbf :=range _dfaff {for _ ,_dcec :=range _affbf .Annotations {_eadfg [_dcec .PdfAnnotation ]=_affbf .V !=nil ;if _agge !=nil {_agfcc ,_dccad :=_agge .GenerateAppearanceDict (_bbacd ,_affbf ,_dcec );if _dccad !=nil {return _dccad ;};_dcec .AP =_agfcc ;};};};};if _ggff {for _ ,_gdfa :=range _dcga .PageList {_cacga ,_cfgd :=_gdfa .GetAnnotations ();if _cfgd !=nil {return _cfgd ;};for _ ,_cafge :=range _cacga {_eadfg [_cafge ]=true ;};};};for _ ,_bbbg :=range _dcga .PageList {var _cbccg []*PdfAnnotation ;if _agge !=nil {if _ecacb :=_agge .WrapContentStream (_bbbg );_ecacb !=nil {return _ecacb ;};};_aaeeb ,_aecba :=_bbbg .GetAnnotations ();if _aecba !=nil {return _aecba ;};for _ ,_cgddb :=range _aaeeb {_beac ,_badb :=_eadfg [_cgddb ];if !_badb {_cbccg =append (_cbccg ,_cgddb );continue ;};switch _cgddb .GetContext ().(type ){case *PdfAnnotationPopup :continue ;case *PdfAnnotationLink :continue ;case *PdfAnnotationProjection :continue ;};_gbbf ,_afgcd ,_gedba :=_fdef (_cgddb );if _gedba !=nil {if !_beac {_abe .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 ;};_abe .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",_gedba );continue ;};if _gbbf ==nil {continue ;};_debba :=_bbbg .Resources .GenerateXObjectName ();_bbbg .Resources .SetXObjectFormByName (_debba ,_gbbf );_ccfdd :=_ad .Min (_afgcd .Llx ,_afgcd .Urx );_efcdg :=_ad .Min (_afgcd .Lly ,_afgcd .Ury );var _bdge []string ;_bdge =append (_bdge ,"\u0071");_bdge =append (_bdge ,_b .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,_ccfdd ,_efcdg ));_bdge =append (_bdge ,_b .Sprintf ("\u002f\u0025\u0073\u0020\u0044\u006f",_debba .String ()));_bdge =append (_bdge ,"\u0051");_egdag :=_dg .Join (_bdge ,"\u000a");_gedba =_bbbg .AppendContentStream (_egdag );if _gedba !=nil {return _gedba ;};if _gbbf .Resources !=nil {_cbceb ,_cdcd :=_aef .GetDict (_gbbf .Resources .Font );if _cdcd {for _ ,_eabgg :=range _cbceb .Keys (){if !_bbbg .Resources .HasFontByName (_eabgg ){_bbbg .Resources .SetFontByName (_eabgg ,_cbceb .Get (_eabgg ));};};};};};if len (_cbccg )> 0{_bbbg ._bcgfd =_cbccg ;}else {_bbbg ._bcgfd =[]*PdfAnnotation {};};};if !_badd {_dcga .AcroForm =nil ;};return nil ;};
// PdfOutlineItem represents an outline item dictionary (Table 153 - pp. 376 - 377).
type PdfOutlineItem struct{PdfOutlineTreeNode ;Title *_aef .PdfObjectString ;Parent *PdfOutlineTreeNode ;Prev *PdfOutlineTreeNode ;Next *PdfOutlineTreeNode ;Count *int64 ;Dest _aef .PdfObject ;A _aef .PdfObject ;SE _aef .PdfObject ;C _aef .PdfObject ;F _aef .PdfObject ;_gdgba *_aef .PdfIndirectObject ;};func (_aegaf *PdfWriter )writeBytes (_egdffd []byte ){if _aegaf ._geac !=nil {return ;};_bgbfc ,_feccb :=_aegaf ._fcadd .Write (_egdffd );_aegaf ._dfdcd +=int64 (_bgbfc );_aegaf ._geac =_feccb ;};
// HasFontByName checks whether a font is defined by the specified keyName.
func (_eeaafd *PdfPageResources )HasFontByName (keyName _aef .PdfObjectName )bool {_ ,_caebe :=_eeaafd .GetFontByName (keyName );return _caebe ;};
// SetDSS sets the DSS dictionary (ETSI TS 102 778-4 V1.1.1) of the current
// document revision.
func (_becd *PdfAppender )SetDSS (dss *DSS ){if dss !=nil {_becd .updateObjectsDeep (dss .ToPdfObject (),nil );};_becd ._gcde =dss ;};func (_gfbffa *PdfReader )traverseObjectData (_aaffe _aef .PdfObject )error {return _aef .ResolveReferencesDeep (_aaffe ,_gfbffa ._cadgb );};func (_gfcaf *PdfReader )loadDSS ()(*DSS ,error ){if _gfcaf ._gdbbd .GetCrypter ()!=nil &&!_gfcaf ._gdbbd .IsAuthenticated (){return nil ,_b .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");};_dffbf :=_gfcaf ._acae .Get ("\u0044\u0053\u0053");if _dffbf ==nil {return nil ,nil ;};_eefgc ,_ :=_aef .GetIndirect (_dffbf );_dffbf =_aef .TraceToDirectObject (_dffbf );switch _eacfc :=_dffbf .(type ){case *_aef .PdfObjectNull :return nil ,nil ;case *_aef .PdfObjectDictionary :return _dgce (_eefgc ,_eacfc );};return nil ,_b .Errorf ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0044\u0053\u0053 \u0065\u006e\u0074\u0072y \u0025\u0054",_dffbf );};
// ImageToGray returns a new grayscale image based on the passed in RGB image.
func (_efca *PdfColorspaceDeviceRGB )ImageToGray (img Image )(Image ,error ){if img .ColorComponents !=3{return img ,_fa .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");};_fdaagf ,_ebgd :=_gb .NewImage (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),img .ColorComponents ,img .Data ,img ._afge ,img ._fgafa );if _ebgd !=nil {return img ,_ebgd ;};_eebf ,_ebgd :=_gb .GrayConverter .Convert (_fdaagf );if _ebgd !=nil {return img ,_ebgd ;};return _cbgdcg (_eebf .Base ()),nil ;};const (ActionTypeGoTo PdfActionType ="\u0047\u006f\u0054\u006f";ActionTypeGoTo3DView PdfActionType ="\u0047\u006f\u0054\u006f\u0033\u0044\u0056\u0069\u0065\u0077";ActionTypeGoToE PdfActionType ="\u0047\u006f\u0054o\u0045";ActionTypeGoToR PdfActionType ="\u0047\u006f\u0054o\u0052";ActionTypeHide PdfActionType ="\u0048\u0069\u0064\u0065";ActionTypeImportData PdfActionType ="\u0049\u006d\u0070\u006f\u0072\u0074\u0044\u0061\u0074\u0061";ActionTypeJavaScript PdfActionType ="\u004a\u0061\u0076\u0061\u0053\u0063\u0072\u0069\u0070\u0074";ActionTypeLaunch PdfActionType ="\u004c\u0061\u0075\u006e\u0063\u0068";ActionTypeMovie PdfActionType ="\u004d\u006f\u0076i\u0065";ActionTypeNamed PdfActionType ="\u004e\u0061\u006de\u0064";ActionTypeRendition PdfActionType ="\u0052e\u006e\u0064\u0069\u0074\u0069\u006fn";ActionTypeResetForm PdfActionType ="\u0052e\u0073\u0065\u0074\u0046\u006f\u0072m";ActionTypeSetOCGState PdfActionType ="S\u0065\u0074\u004f\u0043\u0047\u0053\u0074\u0061\u0074\u0065";ActionTypeSound PdfActionType ="\u0053\u006f\u0075n\u0064";ActionTypeSubmitForm PdfActionType ="\u0053\u0075\u0062\u006d\u0069\u0074\u0046\u006f\u0072\u006d";ActionTypeThread PdfActionType ="\u0054\u0068\u0072\u0065\u0061\u0064";ActionTypeTrans PdfActionType ="\u0054\u0072\u0061n\u0073";ActionTypeURI PdfActionType ="\u0055\u0052\u0049";);
// NewPdfAnnotationWatermark returns a new watermark annotation.
func NewPdfAnnotationWatermark ()*PdfAnnotationWatermark {_dde :=NewPdfAnnotation ();_cbgg :=&PdfAnnotationWatermark {};_cbgg .PdfAnnotation =_dde ;_dde .SetContext (_cbgg );return _cbgg ;};
// SetFontByName sets the font specified by keyName to the given object.
func (_dacce *PdfPageResources )SetFontByName (keyName _aef .PdfObjectName ,obj _aef .PdfObject )error {if _dacce .Font ==nil {_dacce .Font =_aef .MakeDict ();};_debbg ,_cgfeb :=_aef .TraceToDirectObject (_dacce .Font ).(*_aef .PdfObjectDictionary );if !_cgfeb {_abe .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",_aef .TraceToDirectObject (_dacce .Font ));return _aef .ErrTypeError ;};_debbg .Set (keyName ,obj );return nil ;};
// SetXObjectImageByName adds the provided XObjectImage to the page resources.
// The added XObjectImage is identified by the specified name.
func (_efbf *PdfPageResources )SetXObjectImageByName (keyName _aef .PdfObjectName ,ximg *XObjectImage )error {_dfffd :=ximg .ToPdfObject ().(*_aef .PdfObjectStream );_gbef :=_efbf .SetXObjectByName (keyName ,_dfffd );return _gbef ;};
// 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 (_bbcbb *PdfColorspaceLab )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=3{return nil ,_fa .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_fega :=vals [0];if _fega < 0.0||_fega > 100.0{_abe .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",_fega );return nil ,_fa .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_efb :=vals [1];_adbc :=float64 (-100);_cfeef :=float64 (100);if len (_bbcbb .Range )> 1{_adbc =_bbcbb .Range [0];_cfeef =_bbcbb .Range [1];};if _efb < _adbc ||_efb > _cfeef {_abe .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",_efb ,_adbc ,_cfeef );return nil ,_fa .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_gfebe :=vals [2];_eabf :=float64 (-100);_gfcea :=float64 (100);if len (_bbcbb .Range )> 3{_eabf =_bbcbb .Range [2];_gfcea =_bbcbb .Range [3];};if _gfebe < _eabf ||_gfebe > _gfcea {_abe .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",_gfebe ,_eabf ,_gfcea );return nil ,_fa .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_bccf :=NewPdfColorLab (_fega ,_efb ,_gfebe );return _bccf ,nil ;};
// ReplaceAcroForm replaces the acrobat form. It appends a new form to the Pdf which
// replaces the original AcroForm.
func (_dadb *PdfAppender )ReplaceAcroForm (acroForm *PdfAcroForm ){if acroForm !=nil {_dadb .updateObjectsDeep (acroForm .ToPdfObject (),nil );};_dadb ._faga =acroForm ;};
// 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 ;
// DecodeArray returns the component range values for the DeviceN colorspace.
// [0 1.0 0 1.0 ...] for each color component.
func (_bedg *PdfColorspaceDeviceN )DecodeArray ()[]float64 {var _acd []float64 ;for _eegbf :=0;_eegbf < _bedg .GetNumComponents ();_eegbf ++{_acd =append (_acd ,0.0,1.0);};return _acd ;};func (_fdf *PdfReader )newPdfActionURIFromDict (_aeda *_aef .PdfObjectDictionary )(*PdfActionURI ,error ){return &PdfActionURI {URI :_aeda .Get ("\u0055\u0052\u0049"),IsMap :_aeda .Get ("\u0049\u0073\u004da\u0070")},nil ;};
// PdfAnnotationPolygon represents Polygon annotations.
// (Section 12.5.6.9).
type PdfAnnotationPolygon struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Vertices _aef .PdfObject ;LE _aef .PdfObject ;BS _aef .PdfObject ;IC _aef .PdfObject ;BE _aef .PdfObject ;IT _aef .PdfObject ;Measure _aef .PdfObject ;};
// PdfColorspaceCalGray represents CalGray color space.
type PdfColorspaceCalGray struct{WhitePoint []float64 ;BlackPoint []float64 ;Gamma float64 ;_ggdc *_aef .PdfIndirectObject ;};
// PdfColorspaceSpecialPattern is a Pattern colorspace.
// Can be defined either as /Pattern or with an underlying colorspace [/Pattern cs].
type PdfColorspaceSpecialPattern struct{UnderlyingCS PdfColorspace ;_febfd *_aef .PdfIndirectObject ;};
// PdfAnnotation3D represents 3D annotations.
// (Section 13.6.2).
type PdfAnnotation3D struct{*PdfAnnotation ;T3DD _aef .PdfObject ;T3DV _aef .PdfObject ;T3DA _aef .PdfObject ;T3DI _aef .PdfObject ;T3DB _aef .PdfObject ;};
// GetShadingByName gets the shading specified by keyName. Returns nil if not existing.
// The bool flag indicated whether it was found or not.
func (_egfba *PdfPageResources )GetShadingByName (keyName _aef .PdfObjectName )(*PdfShading ,bool ){if _egfba .Shading ==nil {return nil ,false ;};_bfebge ,_fgega :=_aef .TraceToDirectObject (_egfba .Shading ).(*_aef .PdfObjectDictionary );if !_fgega {_abe .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",_egfba .Shading );return nil ,false ;};if _dede :=_bfebge .Get (keyName );_dede !=nil {_cbfdc ,_dgadc :=_cbdfa (_dede );if _dgadc !=nil {_abe .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",_dgadc );return nil ,false ;};return _cbfdc ,true ;};return nil ,false ;};func _cgcfd (_ccaa _aef .PdfObject )(*PdfColorspaceDeviceN ,error ){_dffe :=NewPdfColorspaceDeviceN ();if _ecag ,_dagd :=_ccaa .(*_aef .PdfIndirectObject );_dagd {_dffe ._ggbg =_ecag ;};_ccaa =_aef .TraceToDirectObject (_ccaa );_daafe ,_bdad :=_ccaa .(*_aef .PdfObjectArray );if !_bdad {return nil ,_b .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 _daafe .Len ()!=4&&_daafe .Len ()!=5{return nil ,_b .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");};_ccaa =_daafe .Get (0);_dbabe ,_bdad :=_ccaa .(*_aef .PdfObjectName );if !_bdad {return nil ,_b .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 *_dbabe !="\u0044e\u0076\u0069\u0063\u0065\u004e"{return nil ,_b .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");};_ccaa =_daafe .Get (1);_ccaa =_aef .TraceToDirectObject (_ccaa );_dcbdf ,_bdad :=_ccaa .(*_aef .PdfObjectArray );if !_bdad {return nil ,_b .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");};_dffe .ColorantNames =_dcbdf ;_ccaa =_daafe .Get (2);_dddf ,_fgfdf :=NewPdfColorspaceFromPdfObject (_ccaa );if _fgfdf !=nil {return nil ,_fgfdf ;};_dffe .AlternateSpace =_dddf ;_bbagc ,_fgfdf :=_begb (_daafe .Get (3));if _fgfdf !=nil {return nil ,_fgfdf ;};_dffe .TintTransform =_bbagc ;if _daafe .Len ()==5{_bfbfd ,_gcecf :=_gcad (_daafe .Get (4));if _gcecf !=nil {return nil ,_gcecf ;};_dffe .Attributes =_bfbfd ;};return _dffe ,nil ;};
// ToPdfObject implements interface PdfModel.
func (_gga *PdfActionNamed )ToPdfObject ()_aef .PdfObject {_gga .PdfAction .ToPdfObject ();_fca :=_gga ._gc ;_cbg :=_fca .PdfObject .(*_aef .PdfObjectDictionary );_cbg .SetIfNotNil ("\u0053",_aef .MakeName (string (ActionTypeNamed )));_cbg .SetIfNotNil ("\u004e",_gga .N );return _fca ;};
// NewPdfActionMovie returns a new "movie" action.
func NewPdfActionMovie ()*PdfActionMovie {_aefb :=NewPdfAction ();_cb :=&PdfActionMovie {};_cb .PdfAction =_aefb ;_aefb .SetContext (_cb );return _cb ;};
// NewOutlineItem returns a new outline item instance.
func NewOutlineItem (title string ,dest OutlineDest )*OutlineItem {return &OutlineItem {Title :title ,Dest :dest };};func _gcad (_ggbf _aef .PdfObject )(*PdfColorspaceDeviceNAttributes ,error ){_dbga :=&PdfColorspaceDeviceNAttributes {};var _cecag *_aef .PdfObjectDictionary ;if _dcfg ,_dfea :=_ggbf .(*_aef .PdfIndirectObject );_dfea {_dbga ._ecgdd =_dcfg ;var _acgge bool ;_cecag ,_acgge =_dcfg .PdfObject .(*_aef .PdfObjectDictionary );if !_acgge {_abe .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 ,_fa .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};}else if _beaa ,_bacd :=_ggbf .(*_aef .PdfObjectDictionary );_bacd {_cecag =_beaa ;}else {_abe .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 ,_fa .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _eegaf :=_cecag .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065");_eegaf !=nil {_dgfb ,_eefe :=_aef .TraceToDirectObject (_eegaf ).(*_aef .PdfObjectName );if !_eefe {_abe .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 ,_fa .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};_dbga .Subtype =_dgfb ;};if _gcef :=_cecag .Get ("\u0043o\u006c\u006f\u0072\u0061\u006e\u0074s");_gcef !=nil {_dbga .Colorants =_gcef ;};if _ccag :=_cecag .Get ("\u0050r\u006f\u0063\u0065\u0073\u0073");_ccag !=nil {_dbga .Process =_ccag ;};if _ccdc :=_cecag .Get ("M\u0069\u0078\u0069\u006e\u0067\u0048\u0069\u006e\u0074\u0073");_ccdc !=nil {_dbga .MixingHints =_ccdc ;};return _dbga ,nil ;};
// ToPdfObject implements interface PdfModel.
func (_gffd *PdfAnnotationStrikeOut )ToPdfObject ()_aef .PdfObject {_gffd .PdfAnnotation .ToPdfObject ();_dabab :=_gffd ._edc ;_gace :=_dabab .PdfObject .(*_aef .PdfObjectDictionary );_gffd .PdfAnnotationMarkup .appendToPdfDictionary (_gace );_gace .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_aef .MakeName ("\u0053t\u0072\u0069\u006b\u0065\u004f\u0075t"));_gace .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_gffd .QuadPoints );return _dabab ;};
// ColorToRGB converts a CMYK32 color to an RGB color.
func (_ddbg *PdfColorspaceDeviceCMYK )ColorToRGB (color PdfColor )(PdfColor ,error ){_ffbf ,_ffcf :=color .(*PdfColorDeviceCMYK );if !_ffcf {_abe .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 ,_fa .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_debb :=_ffbf .C ();_fddgc :=_ffbf .M ();_aaeg :=_ffbf .Y ();_cede :=_ffbf .K ();_debb =_debb *(1-_cede )+_cede ;_fddgc =_fddgc *(1-_cede )+_cede ;_aaeg =_aaeg *(1-_cede )+_cede ;_aabfd :=1-_debb ;_dgea :=1-_fddgc ;_eggg :=1-_aaeg ;return NewPdfColorDeviceRGB (_aabfd ,_dgea ,_eggg ),nil ;};
// PdfAnnotationMarkup represents additional fields for mark-up annotations.
// (Section 12.5.6.2 p. 399).
type PdfAnnotationMarkup struct{T _aef .PdfObject ;Popup *PdfAnnotationPopup ;CA _aef .PdfObject ;RC _aef .PdfObject ;CreationDate _aef .PdfObject ;IRT _aef .PdfObject ;Subj _aef .PdfObject ;RT _aef .PdfObject ;IT _aef .PdfObject ;ExData _aef .PdfObject ;};func (_ecfa *PdfReader )newPdfActionJavaScriptFromDict (_dea *_aef .PdfObjectDictionary )(*PdfActionJavaScript ,error ){return &PdfActionJavaScript {JS :_dea .Get ("\u004a\u0053")},nil ;};
// 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 (_ddbdc *pdfFontSimple )SetEncoder (encoder _be .TextEncoder ){_ddbdc ._bcbge =encoder };func _agcab (_ebeef []*_aef .PdfObjectStream )*_aef .PdfObjectArray {if len (_ebeef )==0{return nil ;};_aafgf :=make ([]_aef .PdfObject ,0,len (_ebeef ));for _ ,_edfgg :=range _ebeef {_aafgf =append (_aafgf ,_edfgg );};return _aef .MakeArray (_aafgf ...);};func _bfc (_cacd _aef .PdfObject )(*PdfFilespec ,error ){if _cacd ==nil {return nil ,nil ;};return NewPdfFilespecFromObj (_cacd );};
// GetCapHeight returns the CapHeight of the font `descriptor`.
func (_feeff *PdfFontDescriptor )GetCapHeight ()(float64 ,error ){return _aef .GetNumberAsFloat (_feeff .CapHeight );};
// PdfActionSound represents a sound action.
type PdfActionSound struct{*PdfAction ;Sound _aef .PdfObject ;Volume _aef .PdfObject ;Synchronous _aef .PdfObject ;Repeat _aef .PdfObject ;Mix _aef .PdfObject ;};
// NewPdfAnnotationLink returns a new link annotation.
func NewPdfAnnotationLink ()*PdfAnnotationLink {_bgb :=NewPdfAnnotation ();_afe :=&PdfAnnotationLink {};_afe .PdfAnnotation =_bgb ;_bgb .SetContext (_afe );return _afe ;};
// PdfBorderStyle represents a border style dictionary (12.5.4 Border Styles p. 394).
type PdfBorderStyle struct{W *float64 ;S *BorderStyle ;D *[]int ;_ggegf _aef .PdfObject ;};
// ImageToRGB returns the passed in image. Method exists in order to satisfy
// the PdfColorspace interface.
func (_fbde *PdfColorspaceDeviceRGB )ImageToRGB (img Image )(Image ,error ){return img ,nil };func (_cbd *PdfReader )newPdfAnnotationCaretFromDict (_fbad *_aef .PdfObjectDictionary )(*PdfAnnotationCaret ,error ){_baf :=PdfAnnotationCaret {};_deeg ,_dad :=_cbd .newPdfAnnotationMarkupFromDict (_fbad );if _dad !=nil {return nil ,_dad ;};_baf .PdfAnnotationMarkup =_deeg ;_baf .RD =_fbad .Get ("\u0052\u0044");_baf .Sy =_fbad .Get ("\u0053\u0079");return &_baf ,nil ;};func _gadbg (_abcad *fontCommon )*pdfCIDFontType2 {return &pdfCIDFontType2 {fontCommon :*_abcad }};func _fcdg (_cgbcg *_aef .PdfObjectDictionary )(*PdfShadingType2 ,error ){_aeebc :=PdfShadingType2 {};_cbdg :=_cgbcg .Get ("\u0043\u006f\u006f\u0072\u0064\u0073");if _cbdg ==nil {_abe .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 ;};_feebb ,_gggc :=_cbdg .(*_aef .PdfObjectArray );if !_gggc {_abe .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",_cbdg );return nil ,_fa .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};if _feebb .Len ()!=4{_abe .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",_feebb .Len ());return nil ,_fa .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0061\u0074\u0074\u0072i\u0062\u0075\u0074\u0065");};_aeebc .Coords =_feebb ;if _ebfbd :=_cgbcg .Get ("\u0044\u006f\u006d\u0061\u0069\u006e");_ebfbd !=nil {_ebfbd =_aef .TraceToDirectObject (_ebfbd );_gefbg ,_dgcac :=_ebfbd .(*_aef .PdfObjectArray );if !_dgcac {_abe .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",_ebfbd );return nil ,_fa .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_aeebc .Domain =_gefbg ;};_cbdg =_cgbcg .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");if _cbdg ==nil {_abe .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 ;};_aeebc .Function =[]PdfFunction {};if _bfbgd ,_dcddf :=_cbdg .(*_aef .PdfObjectArray );_dcddf {for _ ,_abage :=range _bfbgd .Elements (){_gaecg ,_cfdb :=_begb (_abage );if _cfdb !=nil {_abe .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",_cfdb );return nil ,_cfdb ;};_aeebc .Function =append (_aeebc .Function ,_gaecg );};}else {_baega ,_cfeb :=_begb (_cbdg );if _cfeb !=nil {_abe .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",_cfeb );return nil ,_cfeb ;};_aeebc .Function =append (_aeebc .Function ,_baega );};if _abcaf :=_cgbcg .Get ("\u0045\u0078\u0074\u0065\u006e\u0064");_abcaf !=nil {_abcaf =_aef .TraceToDirectObject (_abcaf );_bcfb ,_aabb :=_abcaf .(*_aef .PdfObjectArray );if !_aabb {_abe .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",_abcaf );return nil ,_aef .ErrTypeError ;};if _bcfb .Len ()!=2{_abe .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",_bcfb .Len ());return nil ,ErrInvalidAttribute ;};_aeebc .Extend =_bcfb ;};return &_aeebc ,nil ;};func _gfebg (_deaef *_aef .PdfObjectDictionary )(*PdfShadingType3 ,error ){_gdgg :=PdfShadingType3 {};_eeac :=_deaef .Get ("\u0043\u006f\u006f\u0072\u0064\u0073");if _eeac ==nil {_abe .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 ;};_gabge ,_cfbc :=_eeac .(*_aef .PdfObjectArray );if !_cfbc {_abe .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",_eeac );return nil ,_aef .ErrTypeError ;};if _gabge .Len ()!=6{_abe .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",_gabge .Len ());return nil ,ErrInvalidAttribute ;};_gdgg .Coords =_gabge ;if _cffc :=_deaef .Get ("\u0044\u006f\u006d\u0061\u0069\u006e");_cffc !=nil {_cffc =_aef .TraceToDirectObject (_cffc );_fdega ,_cgba :=_cffc .(*_aef .PdfObjectArray );if !_cgba {_abe .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",_cffc );return nil ,_aef .ErrTypeError ;};_gdgg .Domain =_fdega ;};_eeac =_deaef .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");if _eeac ==nil {_abe .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 ;};_gdgg .Function =[]PdfFunction {};if _cfgfa ,_gfda :=_eeac .(*_aef .PdfObjectArray );_gfda {for _ ,_aagga :=range _cfgfa .Elements (){_gbcad ,_afff :=_begb (_aagga );if _afff !=nil {_abe .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",_afff );return nil ,_afff ;};_gdgg .Function =append (_gdgg .Function ,_gbcad );};}else {_fcce ,_fdbgc :=_begb (_eeac );if _fdbgc !=nil {_abe .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",_fdbgc );return nil ,_fdbgc ;};_gdgg .Function =append (_gdgg .Function ,_fcce );};if _bgcff :=_deaef .Get ("\u0045\u0078\u0074\u0065\u006e\u0064");_bgcff !=nil {_bgcff =_aef .TraceToDirectObject (_bgcff );_ddgdf ,_cecef :=_bgcff .(*_aef .PdfObjectArray );if !_cecef {_abe .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",_bgcff );return nil ,_aef .ErrTypeError ;};if _ddgdf .Len ()!=2{_abe .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",_ddgdf .Len ());return nil ,ErrInvalidAttribute ;};_gdgg .Extend =_ddgdf ;};return &_gdgg ,nil ;};func (_edb *PdfReader )newPdfActionHideFromDict (_ecbe *_aef .PdfObjectDictionary )(*PdfActionHide ,error ){return &PdfActionHide {T :_ecbe .Get ("\u0054"),H :_ecbe .Get ("\u0048")},nil ;};
// NewPdfSignature creates a new PdfSignature object.
func NewPdfSignature (handler SignatureHandler )*PdfSignature {_ebbdc :=&PdfSignature {Type :_aef .MakeName ("\u0053\u0069\u0067"),Handler :handler };_addcge :=&pdfSignDictionary {PdfObjectDictionary :_aef .MakeDict (),_gegee :&handler ,_bebca :_ebbdc };_ebbdc ._cfcff =_aef .MakeIndirectObject (_addcge );return _ebbdc ;};func (_fefc *PdfColorspaceSpecialSeparation )String ()string {return "\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e";};
// Set sets the colorspace corresponding to key. Add to Names if not set.
func (_fcadee *PdfPageResourcesColorspaces )Set (key _aef .PdfObjectName ,val PdfColorspace ){if _ ,_cgaf :=_fcadee .Colorspaces [string (key )];!_cgaf {_fcadee .Names =append (_fcadee .Names ,string (key ));};_fcadee .Colorspaces [string (key )]=val ;};
// GetContainingPdfObject returns the container of the shading object (indirect object).
func (_ddbbc *PdfShading )GetContainingPdfObject ()_aef .PdfObject {return _ddbbc ._bbga };func (_cdfc *PdfReader )newPdfAnnotationFileAttachmentFromDict (_bfd *_aef .PdfObjectDictionary )(*PdfAnnotationFileAttachment ,error ){_cdgc :=PdfAnnotationFileAttachment {};_gfe ,_gffe :=_cdfc .newPdfAnnotationMarkupFromDict (_bfd );if _gffe !=nil {return nil ,_gffe ;};_cdgc .PdfAnnotationMarkup =_gfe ;_cdgc .FS =_bfd .Get ("\u0046\u0053");_cdgc .Name =_bfd .Get ("\u004e\u0061\u006d\u0065");return &_cdgc ,nil ;};
// SetColorSpace sets `r` colorspace object to `colorspace`.
func (_bcafg *PdfPageResources )SetColorSpace (colorspace *PdfPageResourcesColorspaces ){_bcafg ._fcdfg =colorspace ;};
// NewXObjectForm creates a brand new XObject Form. Creates a new underlying PDF object stream primitive.
func NewXObjectForm ()*XObjectForm {_bcgcc :=&XObjectForm {};_cabea :=&_aef .PdfObjectStream {};_cabea .PdfObjectDictionary =_aef .MakeDict ();_bcgcc ._ebdad =_cabea ;return _bcgcc ;};
// NewPdfAnnotationMovie returns a new movie annotation.
func NewPdfAnnotationMovie ()*PdfAnnotationMovie {_eef :=NewPdfAnnotation ();_acea :=&PdfAnnotationMovie {};_acea .PdfAnnotation =_eef ;_eef .SetContext (_acea );return _acea ;};
// ToPdfObject implements interface PdfModel.
func (_cee *PdfAnnotationText )ToPdfObject ()_aef .PdfObject {_cee .PdfAnnotation .ToPdfObject ();_ecef :=_cee ._edc ;_cecb :=_ecef .PdfObject .(*_aef .PdfObjectDictionary );if _cee .PdfAnnotationMarkup !=nil {_cee .PdfAnnotationMarkup .appendToPdfDictionary (_cecb );};_cecb .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_aef .MakeName ("\u0054\u0065\u0078\u0074"));_cecb .SetIfNotNil ("\u004f\u0070\u0065\u006e",_cee .Open );_cecb .SetIfNotNil ("\u004e\u0061\u006d\u0065",_cee .Name );_cecb .SetIfNotNil ("\u0053\u0074\u0061t\u0065",_cee .State );_cecb .SetIfNotNil ("\u0053\u0074\u0061\u0074\u0065\u004d\u006f\u0064\u0065\u006c",_cee .StateModel );return _ecef ;};
// PdfColorCalGray represents a CalGray colorspace.
type PdfColorCalGray float64 ;
// IsTerminal returns true for terminal fields, false otherwise.
// Terminal fields are fields whose descendants are only widget annotations.
func (_ebegce *PdfField )IsTerminal ()bool {return len (_ebegce .Kids )==0};
// ImageToRGB converts an Image in a given PdfColorspace to an RGB image.
func (_dddcc *PdfColorspaceDeviceN )ImageToRGB (img Image )(Image ,error ){_gcdgd :=_ea .NewReader (img .getBase ());_deec :=_gb .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),img .ColorComponents ,nil ,img ._afge ,img ._fgafa );_fffe :=_ea .NewWriter (_deec );_ccda :=_ad .Pow (2,float64 (img .BitsPerComponent ))-1;_cbegec :=_dddcc .GetNumComponents ();_dfdda :=make ([]uint32 ,_cbegec );_ffcfg :=make ([]float64 ,_cbegec );for {_ggfg :=_gcdgd .ReadSamples (_dfdda );if _ggfg ==_gfc .EOF {break ;}else if _ggfg !=nil {return img ,_ggfg ;};for _fceb :=0;_fceb < _cbegec ;_fceb ++{_fcde :=float64 (_dfdda [_fceb ])/_ccda ;_ffcfg [_fceb ]=_fcde ;};_cafa ,_ggfg :=_dddcc .TintTransform .Evaluate (_ffcfg );if _ggfg !=nil {return img ,_ggfg ;};for _ ,_efdc :=range _cafa {_efdc =_ad .Min (_ad .Max (0,_efdc ),1.0);if _ggfg =_fffe .WriteSample (uint32 (_efdc *_ccda ));_ggfg !=nil {return img ,_ggfg ;};};};return _dddcc .AlternateSpace .ImageToRGB (_cbgdcg (&_deec ));};
// IsColored specifies if the pattern is colored.
func (_gfaeb *PdfTilingPattern )IsColored ()bool {if _gfaeb .PaintType !=nil &&*_gfaeb .PaintType ==1{return true ;};return false ;};func (_aggg *PdfReader )buildPageList (_gfaad *_aef .PdfIndirectObject ,_egffe *_aef .PdfIndirectObject ,_efcfg map[_aef .PdfObject ]struct{})error {if _gfaad ==nil {return nil ;};if _ ,_dfdg :=_efcfg [_gfaad ];_dfdg {_abe .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",_gfaad .ObjectNumber );return nil ;};_efcfg [_gfaad ]=struct{}{};_cfgfg ,_ecefea :=_gfaad .PdfObject .(*_aef .PdfObjectDictionary );if !_ecefea {return _fa .New ("n\u006f\u0064\u0065\u0020no\u0074 \u0061\u0020\u0064\u0069\u0063t\u0069\u006f\u006e\u0061\u0072\u0079");};_fgffc ,_ecefea :=(*_cfgfg ).Get ("\u0054\u0079\u0070\u0065").(*_aef .PdfObjectName );if !_ecefea {if _cfgfg .Get ("\u004b\u0069\u0064\u0073")==nil {return _fa .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");};_abe .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.");_fgffc =_aef .MakeName ("\u0050\u0061\u0067e\u0073");_cfgfg .Set ("\u0054\u0079\u0070\u0065",_fgffc );};_abe .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",*_fgffc ,_gfaad );if *_fgffc =="\u0050\u0061\u0067\u0065"{_bdedcd ,_agabg :=_aggg .newPdfPageFromDict (_cfgfg );if _agabg !=nil {return _agabg ;};_bdedcd .setContainer (_gfaad );if _egffe !=nil {_cfgfg .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_egffe );};_aggg ._dbdgb =append (_aggg ._dbdgb ,_gfaad );_aggg .PageList =append (_aggg .PageList ,_bdedcd );return nil ;};if *_fgffc !="\u0050\u0061\u0067e\u0073"{_abe .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",_fgffc );return _fa .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 _egffe !=nil {_cfgfg .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_egffe );};if !_aggg ._afae {_dagdg :=_aggg .traverseObjectData (_gfaad );if _dagdg !=nil {return _dagdg ;};};_fcge ,_dabbc :=_aggg ._gdbbd .Resolve (_cfgfg .Get ("\u004b\u0069\u0064\u0073"));if _dabbc !=nil {_abe .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 _dabbc ;};var _fdec *_aef .PdfObjectArray ;_fdec ,_ecefea =_fcge .(*_aef .PdfObjectArray );if !_ecefea {_dgagcd ,_ecgdc :=_fcge .(*_aef .PdfIndirectObject );if !_ecgdc {return _fa .New ("\u0069\u006e\u0076\u0061li\u0064\u0020\u004b\u0069\u0064\u0073\u0020\u006f\u0062\u006a\u0065\u0063\u0074");};_fdec ,_ecefea =_dgagcd .PdfObject .(*_aef .PdfObjectArray );if !_ecefea {return _fa .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");};};_abe .Log .Trace ("\u004b\u0069\u0064\u0073\u003a\u0020\u0025\u0073",_fdec );for _facgg ,_dabag :=range _fdec .Elements (){_bfgge ,_ggcfa :=_aef .GetIndirect (_dabag );if !_ggcfa {_abe .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",_bfgge );return _fa .New ("\u0070a\u0067\u0065\u0020\u006e\u006f\u0074\u0020\u0069\u006e\u0064\u0069r\u0065\u0063\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074");};_fdec .Set (_facgg ,_bfgge );_dabbc =_aggg .buildPageList (_bfgge ,_gfaad ,_efcfg );if _dabbc !=nil {return _dabbc ;};};return 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 (_gaaaf *PdfOutlineTreeNode )GetContext ()PdfModel {if _baab ,_ddbbg :=_gaaaf ._gdgaba .(*PdfOutline );_ddbbg {return _baab ;};if _dacg ,_acgag :=_gaaaf ._gdgaba .(*PdfOutlineItem );_acgag {return _dacg ;};_abe .Log .Debug ("\u0045\u0052RO\u0052\u0020\u0049n\u0076\u0061\u006c\u0069d o\u0075tl\u0069\u006e\u0065\u0020\u0074\u0072\u0065e \u006e\u006f\u0064\u0065\u0020\u0069\u0074e\u006d");return nil ;};func _baaba (_ebbbb _aef .PdfObject )(*PdfPattern ,error ){_ccdf :=&PdfPattern {};var _aagdb *_aef .PdfObjectDictionary ;if _ffba ,_ecacbd :=_aef .GetIndirect (_ebbbb );_ecacbd {_ccdf ._fgbcde =_ffba ;_ggefg ,_deabc :=_ffba .PdfObject .(*_aef .PdfObjectDictionary );if !_deabc {_abe .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",_ffba .PdfObject );return nil ,_aef .ErrTypeError ;};_aagdb =_ggefg ;}else if _gagb ,_eeaaf :=_aef .GetStream (_ebbbb );_eeaaf {_ccdf ._fgbcde =_gagb ;_aagdb =_gagb .PdfObjectDictionary ;}else {_abe .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",_ebbbb );return nil ,_aef .ErrTypeError ;};_gfcga :=_aagdb .Get ("P\u0061\u0074\u0074\u0065\u0072\u006e\u0054\u0079\u0070\u0065");if _gfcga ==nil {_abe .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 ;};_fbbgd ,_aeae :=_gfcga .(*_aef .PdfObjectInteger );if !_aeae {_abe .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",_gfcga );return nil ,_aef .ErrTypeError ;};if *_fbbgd !=1&&*_fbbgd !=2{_abe .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",*_fbbgd );return nil ,_aef .ErrRangeError ;};_ccdf .PatternType =int64 (*_fbbgd );switch *_fbbgd {case 1:_fbfa ,_befdf :=_dbdgg (_aagdb );if _befdf !=nil {return nil ,_befdf ;};_fbfa .PdfPattern =_ccdf ;_ccdf ._dgagc =_fbfa ;return _ccdf ,nil ;case 2:_afbgd ,_dcfa :=_eaac (_aagdb );if _dcfa !=nil {return nil ,_dcfa ;};_afbgd .PdfPattern =_ccdf ;_ccdf ._dgagc =_afbgd ;return _ccdf ,nil ;};return nil ,_fa .New ("\u0075n\u006bn\u006f\u0077\u006e\u0020\u0070\u0061\u0074\u0074\u0065\u0072\u006e");};func _daefg ()string {_abdcd .Lock ();defer _abdcd .Unlock ();if len (_defge )> 0{return _defge ;};return "\u0055n\u0069\u0044\u006f\u0063 \u002d\u0020\u0068\u0074\u0074p\u003a/\u002fu\u006e\u0069\u0064\u006f\u0063\u002e\u0069o";};
// ToPdfObject returns the PDF representation of the DSS dictionary.
func (_ggcc *DSS )ToPdfObject ()_aef .PdfObject {_dcfe :=_ggcc ._egdea .PdfObject .(*_aef .PdfObjectDictionary );_dcfe .Clear ();_fgfe :=_aef .MakeDict ();for _eefee ,_gdcg :=range _ggcc .VRI {_fgfe .Set (*_aef .MakeName (_eefee ),_gdcg .ToPdfObject ());};_dcfe .SetIfNotNil ("\u0043\u0065\u0072t\u0073",_agcab (_ggcc .Certs ));_dcfe .SetIfNotNil ("\u004f\u0043\u0053P\u0073",_agcab (_ggcc .OCSPs ));_dcfe .SetIfNotNil ("\u0043\u0052\u004c\u0073",_agcab (_ggcc .CRLs ));_dcfe .Set ("\u0056\u0052\u0049",_fgfe );return _ggcc ._egdea ;};
// 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 (_ebaa *PdfColorspaceSpecialPattern )ColorToRGB (color PdfColor )(PdfColor ,error ){_eaaf ,_ddbdd :=color .(*PdfColorPattern );if !_ddbdd {_abe .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 _eaaf .Color ==nil {return color ,nil ;};if _ebaa .UnderlyingCS ==nil {return nil ,_fa .New ("\u0075n\u0064\u0065\u0072\u006cy\u0069\u006e\u0067\u0020\u0043S\u0020n\u006ft\u0020\u0064\u0065\u0066\u0069\u006e\u0065d");};return _ebaa .UnderlyingCS .ColorToRGB (_eaaf .Color );};
// ToPdfObject returns the text field dictionary within an indirect object (container).
func (_dead *PdfFieldText )ToPdfObject ()_aef .PdfObject {_dead .PdfField .ToPdfObject ();_egcfe :=_dead ._abebg ;_afeg :=_egcfe .PdfObject .(*_aef .PdfObjectDictionary );_afeg .Set ("\u0046\u0054",_aef .MakeName ("\u0054\u0078"));if _dead .DA !=nil {_afeg .Set ("\u0044\u0041",_dead .DA );};if _dead .Q !=nil {_afeg .Set ("\u0051",_dead .Q );};if _dead .DS !=nil {_afeg .Set ("\u0044\u0053",_dead .DS );};if _dead .RV !=nil {_afeg .Set ("\u0052\u0056",_dead .RV );};if _dead .MaxLen !=nil {_afeg .Set ("\u004d\u0061\u0078\u004c\u0065\u006e",_dead .MaxLen );};return _egcfe ;};
// ToPdfObject returns the PDF representation of the page resources.
func (_ccagge *PdfPageResources )ToPdfObject ()_aef .PdfObject {_dfadd :=_ccagge ._eede ;_dfadd .SetIfNotNil ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e",_ccagge .ExtGState );if _ccagge ._fcdfg !=nil {_ccagge .ColorSpace =_ccagge ._fcdfg .ToPdfObject ();};_dfadd .SetIfNotNil ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065",_ccagge .ColorSpace );_dfadd .SetIfNotNil ("\u0050a\u0074\u0074\u0065\u0072\u006e",_ccagge .Pattern );_dfadd .SetIfNotNil ("\u0053h\u0061\u0064\u0069\u006e\u0067",_ccagge .Shading );_dfadd .SetIfNotNil ("\u0058O\u0062\u006a\u0065\u0063\u0074",_ccagge .XObject );_dfadd .SetIfNotNil ("\u0046\u006f\u006e\u0074",_ccagge .Font );_dfadd .SetIfNotNil ("\u0050r\u006f\u0063\u0053\u0065\u0074",_ccagge .ProcSet );_dfadd .SetIfNotNil ("\u0050\u0072\u006f\u0070\u0065\u0072\u0074\u0069\u0065\u0073",_ccagge .Properties );return _dfadd ;};
// PdfAnnotationFileAttachment represents FileAttachment annotations.
// (Section 12.5.6.15).
type PdfAnnotationFileAttachment struct{*PdfAnnotation ;*PdfAnnotationMarkup ;FS _aef .PdfObject ;Name _aef .PdfObject ;};func _acaaae (_aadfc *_aef .PdfObjectArray )(float64 ,error ){_egeea ,_edagd :=_aadfc .ToFloat64Array ();if _edagd !=nil {_abe .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",_aadfc ,_edagd );};switch len (_egeea ){case 1:return _egeea [0],nil ;case 3:_gggdd :=PdfColorspaceDeviceRGB {};_edfce ,_gaage :=_gggdd .ColorFromFloats (_egeea );if _gaage !=nil {return 0.0,_gaage ;};return _edfce .(*PdfColorDeviceRGB ).ToGray ().Val (),nil ;case 4:_abfdf :=PdfColorspaceDeviceCMYK {};_cbdfc ,_ecga :=_abfdf .ColorFromFloats (_egeea );if _ecga !=nil {return 0.0,_ecga ;};_fcbfc ,_ecga :=_abfdf .ColorToRGB (_cbdfc .(*PdfColorDeviceCMYK ));if _ecga !=nil {return 0.0,_ecga ;};return _fcbfc .(*PdfColorDeviceRGB ).ToGray ().Val (),nil ;};_edagd =_fa .New ("\u0062a\u0064 \u004d\u0061\u0074\u0074\u0065\u0020\u0063\u006f\u006c\u006f\u0072");_abe .Log .Error ("\u0074\u006f\u0047ra\u0079\u003a\u0020\u006d\u0061\u0074\u0074\u0065\u003d\u0025\u0073\u0020\u0065\u0072\u0072\u003d\u0025\u0076",_aadfc ,_edagd );return 0.0,_edagd ;};
// GetDescent returns the Descent of the font `descriptor`.
func (_faadd *PdfFontDescriptor )GetDescent ()(float64 ,error ){return _aef .GetNumberAsFloat (_faadd .Descent );};
// DecodeArray returns the range of color component values in DeviceGray colorspace.
func (_fgcg *PdfColorspaceDeviceGray )DecodeArray ()[]float64 {return []float64 {0,1.0}};
// ToPdfObject returns a PDF object representation of the outline item.
func (_edgb *OutlineItem )ToPdfObject ()_aef .PdfObject {_eecfe ,_ :=_edgb .ToPdfOutlineItem ();return _eecfe .ToPdfObject ();};
// PdfShadingType7 is a Tensor-product patch mesh.
type PdfShadingType7 struct{*PdfShading ;BitsPerCoordinate *_aef .PdfObjectInteger ;BitsPerComponent *_aef .PdfObjectInteger ;BitsPerFlag *_aef .PdfObjectInteger ;Decode *_aef .PdfObjectArray ;Function []PdfFunction ;};func (_eee *PdfReader )newPdfAnnotationStampFromDict (_dfdb *_aef .PdfObjectDictionary )(*PdfAnnotationStamp ,error ){_cedd :=PdfAnnotationStamp {};_gbaf ,_dfff :=_eee .newPdfAnnotationMarkupFromDict (_dfdb );if _dfff !=nil {return nil ,_dfff ;};_cedd .PdfAnnotationMarkup =_gbaf ;_cedd .Name =_dfdb .Get ("\u004e\u0061\u006d\u0065");return &_cedd ,nil ;};
// PdfFieldText represents a text field where user can enter text.
type PdfFieldText struct{*PdfField ;DA *_aef .PdfObjectString ;Q *_aef .PdfObjectInteger ;DS *_aef .PdfObjectString ;RV _aef .PdfObject ;MaxLen *_aef .PdfObjectInteger ;};
// SetPdfAuthor sets the Author attribute of the output PDF.
func SetPdfAuthor (author string ){_abdcd .Lock ();defer _abdcd .Unlock ();_ffac =author };func _cgfcb (_ggag _aef .PdfObject )(*PdfColorspaceSpecialSeparation ,error ){_feeg :=NewPdfColorspaceSpecialSeparation ();if _acgc ,_caaeb :=_ggag .(*_aef .PdfIndirectObject );_caaeb {_feeg ._abfcb =_acgc ;};_ggag =_aef .TraceToDirectObject (_ggag );_abb ,_bdedc :=_ggag .(*_aef .PdfObjectArray );if !_bdedc {return nil ,_b .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 _abb .Len ()!=4{return nil ,_b .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");};_ggag =_abb .Get (0);_ecea ,_bdedc :=_ggag .(*_aef .PdfObjectName );if !_bdedc {return nil ,_b .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 *_ecea !="\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e"{return nil ,_b .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");};_ggag =_abb .Get (1);_ecea ,_bdedc =_ggag .(*_aef .PdfObjectName );if !_bdedc {return nil ,_b .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");};_feeg .ColorantName =_ecea ;_ggag =_abb .Get (2);_bfde ,_eeeaa :=NewPdfColorspaceFromPdfObject (_ggag );if _eeeaa !=nil {return nil ,_eeeaa ;};_feeg .AlternateSpace =_bfde ;_aefaa ,_eeeaa :=_begb (_abb .Get (3));if _eeeaa !=nil {return nil ,_eeeaa ;};_feeg .TintTransform =_aefaa ;return _feeg ,nil ;};
// PdfColorDeviceGray represents a grayscale color value that shall be represented by a single number in the
// range 0.0 to 1.0 where 0.0 corresponds to black and 1.0 to white.
type PdfColorDeviceGray float64 ;func _cgdea ()string {_abdcd .Lock ();defer _abdcd .Unlock ();_fecgf :=_cga .GetLicenseKey ();if len (_ggdea )> 0&&(_fecgf .IsLicensed ()||_bbbga ){return _ggdea ;};return _b .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",_fdgac (),_fecgf .TypeToString ());};func (_babb *PdfReader )newPdfAnnotationFromIndirectObject (_ggda *_aef .PdfIndirectObject )(*PdfAnnotation ,error ){_deef ,_aae :=_ggda .PdfObject .(*_aef .PdfObjectDictionary );if !_aae {return nil ,_b .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 :=_babb ._fggbd .GetModelFromPrimitive (_deef );model !=nil {_dccf ,_ccd :=model .(*PdfAnnotation );if !_ccd {return nil ,_b .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 _dccf ,nil ;};_dcbg :=&PdfAnnotation {};_dcbg ._edc =_ggda ;_babb ._fggbd .Register (_deef ,_dcbg );if _egf :=_deef .Get ("\u0054\u0079\u0070\u0065");_egf !=nil {_fcb ,_ebfg :=_egf .(*_aef .PdfObjectName );if !_ebfg {_abe .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",_egf );}else {if *_fcb !="\u0041\u006e\u006eo\u0074"{_abe .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",*_fcb );};};};if _bfg :=_deef .Get ("\u0052\u0065\u0063\u0074");_bfg !=nil {_dcbg .Rect =_bfg ;};if _ggeb :=_deef .Get ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073");_ggeb !=nil {_dcbg .Contents =_ggeb ;};if _egge :=_deef .Get ("\u0050");_egge !=nil {_dcbg .P =_egge ;};if _ecbb :=_deef .Get ("\u004e\u004d");_ecbb !=nil {_dcbg .NM =_ecbb ;};if _ebg :=_deef .Get ("\u004d");_ebg !=nil {_dcbg .M =_ebg ;};if _cdad :=_deef .Get ("\u0046");_cdad !=nil {_dcbg .F =_cdad ;};if _eebc :=_deef .Get ("\u0041\u0050");_eebc !=nil {_dcbg .AP =_eebc ;};if _cfe :=_deef .Get ("\u0041\u0053");_cfe !=nil {_dcbg .AS =_cfe ;};if _ggdg :=_deef .Get ("\u0042\u006f\u0072\u0064\u0065\u0072");_ggdg !=nil {_dcbg .Border =_ggdg ;};if _aedc :=_deef .Get ("\u0043");_aedc !=nil {_dcbg .C =_aedc ;};if _fgg :=_deef .Get ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074");_fgg !=nil {_dcbg .StructParent =_fgg ;};if _gbb :=_deef .Get ("\u004f\u0043");_gbb !=nil {_dcbg .OC =_gbb ;};_bgd :=_deef .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065");if _bgd ==nil {_abe .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");_dcbg ._eab =nil ;return _dcbg ,nil ;};_fea ,_bgda :=_bgd .(*_aef .PdfObjectName );if !_bgda {_abe .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",_bgd );return nil ,_b .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",_bgd );};switch *_fea {case "\u0054\u0065\u0078\u0074":_aeaa ,_egcb :=_babb .newPdfAnnotationTextFromDict (_deef );if _egcb !=nil {return nil ,_egcb ;};_aeaa .PdfAnnotation =_dcbg ;_dcbg ._eab =_aeaa ;return _dcbg ,nil ;case "\u004c\u0069\u006e\u006b":_fdg ,_caa :=_babb .newPdfAnnotationLinkFromDict (_deef );if _caa !=nil {return nil ,_caa ;};_fdg .PdfAnnotation =_dcbg ;_dcbg ._eab =_fdg ;return _dcbg ,nil ;case "\u0046\u0072\u0065\u0065\u0054\u0065\u0078\u0074":_eggc ,_agfbb :=_babb .newPdfAnnotationFreeTextFromDict (_deef );if _agfbb !=nil {return nil ,_agfbb ;};_eggc .PdfAnnotation =_dcbg ;_dcbg ._eab =_eggc ;return _dcbg ,nil ;case "\u004c\u0069\u006e\u0065":_cdd ,_bcc :=_babb .newPdfAnnotationLineFromDict (_deef );if _bcc !=nil {return nil ,_bcc ;};_cdd .PdfAnnotation =_dcbg ;_dcbg ._eab =_cdd ;_abe .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",_dcbg ,_dcbg );_abe .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",_cdd ,_cdd );_abe .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",_cdd .PdfAnnotationMarkup ,_cdd .PdfAnnotationMarkup );return _dcbg ,nil ;case "\u0053\u0071\u0075\u0061\u0072\u0065":_fcab ,_deg :=_babb .newPdfAnnotationSquareFromDict (_deef );if _deg !=nil {return nil ,_deg ;};_fcab .PdfAnnotation =_dcbg ;_dcbg ._eab =_fcab ;return _dcbg ,nil ;case "\u0043\u0069\u0072\u0063\u006c\u0065":_abc ,_ebb :=_babb .newPdfAnnotationCircleFromDict (_deef );if _ebb !=nil {return nil ,_ebb ;};_abc .PdfAnnotation =_dcbg ;_dcbg ._eab =_abc ;return _dcbg ,nil ;case "\u0050o\u006c\u0079\u0067\u006f\u006e":_fbdcb ,_gac :=_babb .newPdfAnnotationPolygonFromDict (_deef );if _gac !=nil {return nil ,_gac ;};_fbdcb .PdfAnnotation =_dcbg ;_dcbg ._eab =_fbdcb ;return _dcbg ,nil ;case "\u0050\u006f\u006c\u0079\u004c\u0069\u006e\u0065":_eecg ,_fed :=_babb .newPdfAnnotationPolyLineFromDict (_deef );if _fed !=nil {return nil ,_fed ;};_eecg .PdfAnnotation =_dcbg ;_dcbg ._eab =_eecg ;return _dcbg ,nil ;case "\u0048i\u0067\u0068\u006c\u0069\u0067\u0068t":_ecd ,_gbdf :=_babb .newPdfAnnotationHighlightFromDict (_deef );if _gbdf !=nil {return nil ,_gbdf ;};_ecd .PdfAnnotation =_dcbg ;_dcbg ._eab =_ecd ;return _dcbg ,nil ;case "\u0055n\u0064\u0065\u0072\u006c\u0069\u006ee":_fdba ,_dagf :=_babb .newPdfAnnotationUnderlineFromDict (_deef );if _dagf !=nil {return nil ,_dagf ;};_fdba .PdfAnnotation =_dcbg ;_dcbg ._eab =_fdba ;return _dcbg ,nil ;case "\u0053\u0071\u0075\u0069\u0067\u0067\u006c\u0079":_agd ,_geg :=_babb .newPdfAnnotationSquigglyFromDict (_deef );if _geg !=nil {return nil ,_geg ;};_agd .PdfAnnotation =_dcbg ;_dcbg ._eab =_agd ;return _dcbg ,nil ;case "\u0053t\u0072\u0069\u006b\u0065\u004f\u0075t":_fac ,_eaf :=_babb .newPdfAnnotationStrikeOut (_deef );if _eaf !=nil {return nil ,_eaf ;};_fac .PdfAnnotation =_dcbg ;_dcbg ._eab =_fac ;return _dcbg ,nil ;case "\u0043\u0061\u0072e\u0074":_dabg ,_effd :=_babb .newPdfAnnotationCaretFromDict (_deef );if _effd !=nil {return nil ,_effd ;};_dabg .PdfAnnotation =_dcbg ;_dcbg ._eab =_dabg ;return _dcbg ,nil ;case "\u0053\u0074\u0061m\u0070":_dgdg ,_gedf :=_babb .newPdfAnnotationStampFromDict (_deef );if _gedf !=nil {return nil ,_gedf ;};_dgdg .PdfAnnotation =_dcbg ;_dcbg ._eab =_dgdg ;return _dcbg ,nil ;case "\u0049\u006e\u006b":_gea ,_bge :=_babb .newPdfAnnotationInkFromDict (_deef );if _bge !=nil {return nil ,_bge ;};_gea .PdfAnnotation =_dcbg ;_dcbg ._eab =_gea ;return _dcbg ,nil ;case "\u0050\u006f\u0070u\u0070":_fdgf ,_gdbc :=_babb .newPdfAnnotationPopupFromDict (_deef );if _gdbc !=nil {return nil ,_gdbc ;};_fdgf .PdfAnnotation =_dcbg ;_dcbg ._eab =_fdgf ;return _dcbg ,nil ;case "\u0046\u0069\u006c\u0065\u0041\u0074\u0074\u0061\u0063h\u006d\u0065\u006e\u0074":_aedd ,_edfa :=_babb .newPdfAnnotationFileAttachmentFromDict (_deef );if _edfa !=nil {return nil ,_edfa ;};_aedd .PdfAnnotation =_dcbg ;_dcbg ._eab =_aedd ;return _dcbg ,nil ;case "\u0053\u006f\u0075n\u0064":_dgaa ,_eabd :=_babb .newPdfAnnotationSoundFromDict (_deef );if _eabd !=nil {return nil ,_eabd ;};_dgaa .PdfAnnotation =_dcbg ;_dcbg ._eab =_dgaa ;return _dcbg ,nil ;case "\u0052i\u0063\u0068\u004d\u0065\u0064\u0069a":_bdbe ,_efcb :=_babb .newPdfAnnotationRichMediaFromDict (_deef );if _efcb !=nil {return nil ,_efcb ;};_bdbe .PdfAnnotation =_dcbg ;_dcbg ._eab =_bdbe ;return _dcbg ,nil ;case "\u004d\u006f\u0076i\u0065":_fdbd ,_bfb :=_babb .newPdfAnnotationMovieFromDict (_deef );if _bfb !=nil {return nil ,_bfb ;};_fdbd .PdfAnnotation =_dcbg ;_dcbg ._eab =_fdbd ;return _dcbg ,nil ;case "\u0053\u0063\u0072\u0065\u0065\u006e":_addc ,_ebeg :=_babb .newPdfAnnotationScreenFromDict (_deef );if _ebeg !=nil {return nil ,_ebeg ;};_addc .PdfAnnotation =_dcbg ;_dcbg ._eab =_addc ;return _dcbg ,nil ;case "\u0057\u0069\u0064\u0067\u0065\u0074":_gfb ,_gfcd :=_babb .newPdfAnnotationWidgetFromDict (_deef );if _gfcd !=nil {return nil ,_gfcd ;};_gfb .PdfAnnotation =_dcbg ;_dcbg ._eab =_gfb ;return _dcbg ,nil ;case "P\u0072\u0069\u006e\u0074\u0065\u0072\u004d\u0061\u0072\u006b":_fec ,_adcb :=_babb .newPdfAnnotationPrinterMarkFromDict (_deef );if _adcb !=nil {return nil ,_adcb ;};_fec .PdfAnnotation =_dcbg ;_dcbg ._eab =_fec ;return _dcbg ,nil ;case "\u0054r\u0061\u0070\u004e\u0065\u0074":_bbb ,_cgfg :=_babb .newPdfAnnotationTrapNetFromDict (_deef );if _cgfg !=nil {return nil ,_cgfg ;};_bbb .PdfAnnotation =_dcbg ;_dcbg ._eab =_bbb ;return _dcbg ,nil ;case "\u0057a\u0074\u0065\u0072\u006d\u0061\u0072k":_fad ,_fcef :=_babb .newPdfAnnotationWatermarkFromDict (_deef );if _fcef !=nil {return nil ,_fcef ;};_fad .PdfAnnotation =_dcbg ;_dcbg ._eab =_fad ;return _dcbg ,nil ;case "\u0033\u0044":_cdg ,_dagb :=_babb .newPdfAnnotation3DFromDict (_deef );if _dagb !=nil {return nil ,_dagb ;};_cdg .PdfAnnotation =_dcbg ;_dcbg ._eab =_cdg ;return _dcbg ,nil ;case "\u0050\u0072\u006f\u006a\u0065\u0063\u0074\u0069\u006f\u006e":_ddaf ,_gaba :=_babb .newPdfAnnotationProjectionFromDict (_deef );if _gaba !=nil {return nil ,_gaba ;};_ddaf .PdfAnnotation =_dcbg ;_dcbg ._eab =_ddaf ;return _dcbg ,nil ;case "\u0052\u0065\u0064\u0061\u0063\u0074":_bfgb ,_adbf :=_babb .newPdfAnnotationRedactFromDict (_deef );if _adbf !=nil {return nil ,_adbf ;};_bfgb .PdfAnnotation =_dcbg ;_dcbg ._eab =_bfgb ;return _dcbg ,nil ;};_abe .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",*_fea );return nil ,nil ;};func (_eeb *PdfReader )newPdfActionThreadFromDict (_ddbb *_aef .PdfObjectDictionary )(*PdfActionThread ,error ){_fba ,_dbec :=_bfc (_ddbb .Get ("\u0046"));if _dbec !=nil {return nil ,_dbec ;};return &PdfActionThread {D :_ddbb .Get ("\u0044"),B :_ddbb .Get ("\u0042"),F :_fba },nil ;};
// PdfAnnotationSquiggly represents Squiggly annotations.
// (Section 12.5.6.10).
type PdfAnnotationSquiggly struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _aef .PdfObject ;};
// LTV represents an LTV (Long-Term Validation) client. It is used to LTV
// enable signatures by adding validation and revocation data (certificate,
// OCSP and CRL information) to the DSS dictionary of a PDF document.
//
// LTV is added through the DSS by:
// - Adding certificates, OCSP and CRL information in the global scope of the
// DSS. The global data is used for validating any of the signatures present
// in the document.
// - Adding certificates, OCSP and CRL information for a single signature,
// through an entry in the VRI dictionary of the DSS. The added data is used
// for validating that particular signature only. This is the recommended
// method for adding validation data for a signature. However, this is not
// is not possible in the same revision the signature is applied. Validation
// data for a signature is added based on the Contents entry of the signature,
// which is known only after the revision is written. Even if the Contents
// are known (e.g. when signing externally), updating the DSS at that point
// would invalidate the calculated signature. As a result, if adding LTV
// in the same revision is a requirement, use the first method.
// See LTV.EnableChain.
// The client applies both methods, when possible.
//
// If `LTV.SkipExisting` is set to true (the default), validations are
// not added for signatures which are already present in the VRI entry of the
// document's DSS dictionary.
type LTV struct{
// CertClient is the client used to retrieve certificates.
CertClient *_add .CertClient ;
// OCSPClient is the client used to retrieve OCSP validation information.
OCSPClient *_add .OCSPClient ;
// CRLClient is the client used to retrieve CRL validation information.
CRLClient *_add .CRLClient ;
// SkipExisting specifies whether existing signature validations
// should be skipped.
SkipExisting bool ;_bdabf *PdfAppender ;_cbcf *DSS ;};
// 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 _aef .StreamEncoder )(*XObjectImage ,error ){_fadaf :=NewXObjectImage ();return UpdateXObjectImageFromImage (_fadaf ,img ,cs ,encoder );};func (_ffcb *fontFile )parseASCIIPart (_dadea []byte )error {if len (_dadea )< 2||string (_dadea [:2])!="\u0025\u0021"{return _fa .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");};_ffcfgf ,_aeaaab ,_daefb :=_fbcg (_dadea );if _daefb !=nil {return _daefb ;};_acbcb :=_caaf (_ffcfgf );_ffcb ._gaed =_acbcb ["\u0046\u006f\u006e\u0074\u004e\u0061\u006d\u0065"];if _ffcb ._gaed ==""{_abe .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 _aeaaab !=""{_cbaba ,_baage :=_aaac (_aeaaab );if _baage !=nil {return _baage ;};_adbd ,_baage :=_be .NewCustomSimpleTextEncoder (_cbaba ,nil );if _baage !=nil {_abe .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",_baage );return nil ;};_ffcb ._dbadd =_adbd ;};return nil ;};
// ToPdfObject implements interface PdfModel.
func (_feee *PdfAnnotationCaret )ToPdfObject ()_aef .PdfObject {_feee .PdfAnnotation .ToPdfObject ();_bgag :=_feee ._edc ;_fcc :=_bgag .PdfObject .(*_aef .PdfObjectDictionary );_feee .PdfAnnotationMarkup .appendToPdfDictionary (_fcc );_fcc .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_aef .MakeName ("\u0043\u0061\u0072e\u0074"));_fcc .SetIfNotNil ("\u0052\u0044",_feee .RD );_fcc .SetIfNotNil ("\u0053\u0079",_feee .Sy );return _bgag ;};
// PdfActionGoToR represents a GoToR action.
type PdfActionGoToR struct{*PdfAction ;F *PdfFilespec ;D _aef .PdfObject ;NewWindow _aef .PdfObject ;};const (BorderEffectNoEffect BorderEffect =iota ;BorderEffectCloudy BorderEffect =iota ;);
// Encoder returns the font's text encoder.
func (_efcga *PdfFont )Encoder ()_be .TextEncoder {_ddde :=_efcga .actualFont ();if _ddde ==nil {_abe .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",_efcga ._dccga );return nil ;};return _ddde .Encoder ();};
// Duplicate creates a duplicate page based on the current one and returns it.
func (_fcgg *PdfPage )Duplicate ()*PdfPage {_cdfa :=*_fcgg ;_cdfa ._cbefa =_aef .MakeDict ();_cdfa ._gfbbf =_aef .MakeIndirectObject (_cdfa ._cbefa );return &_cdfa ;};
// ToPdfObject implements interface PdfModel.
func (_bg *PdfActionImportData )ToPdfObject ()_aef .PdfObject {_bg .PdfAction .ToPdfObject ();_dbe :=_bg ._gc ;_afbc :=_dbe .PdfObject .(*_aef .PdfObjectDictionary );_afbc .SetIfNotNil ("\u0053",_aef .MakeName (string (ActionTypeImportData )));if _bg .F !=nil {_afbc .Set ("\u0046",_bg .F .ToPdfObject ());};return _dbe ;};
// ToPdfObject returns the PDF representation of the function.
func (_fcbcg *PdfFunctionType3 )ToPdfObject ()_aef .PdfObject {_ddcab :=_aef .MakeDict ();_ddcab .Set ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065",_aef .MakeInteger (3));_dgac :=&_aef .PdfObjectArray {};for _ ,_cbdf :=range _fcbcg .Domain {_dgac .Append (_aef .MakeFloat (_cbdf ));};_ddcab .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_dgac );if _fcbcg .Range !=nil {_dfagf :=&_aef .PdfObjectArray {};for _ ,_aebe :=range _fcbcg .Range {_dfagf .Append (_aef .MakeFloat (_aebe ));};_ddcab .Set ("\u0052\u0061\u006eg\u0065",_dfagf );};if _fcbcg .Functions !=nil {_eaafg :=&_aef .PdfObjectArray {};for _ ,_dgdaa :=range _fcbcg .Functions {_eaafg .Append (_dgdaa .ToPdfObject ());};_ddcab .Set ("\u0046u\u006e\u0063\u0074\u0069\u006f\u006es",_eaafg );};if _fcbcg .Bounds !=nil {_ebgae :=&_aef .PdfObjectArray {};for _ ,_fdeeg :=range _fcbcg .Bounds {_ebgae .Append (_aef .MakeFloat (_fdeeg ));};_ddcab .Set ("\u0042\u006f\u0075\u006e\u0064\u0073",_ebgae );};if _fcbcg .Encode !=nil {_aaegb :=&_aef .PdfObjectArray {};for _ ,_dfccg :=range _fcbcg .Encode {_aaegb .Append (_aef .MakeFloat (_dfccg ));};_ddcab .Set ("\u0045\u006e\u0063\u006f\u0064\u0065",_aaegb );};if _fcbcg ._deaga !=nil {_fcbcg ._deaga .PdfObject =_ddcab ;return _fcbcg ._deaga ;};return _ddcab ;};
// ToPdfObject converts colorspace to a PDF object. [/Indexed base hival lookup]
func (_ebaga *PdfColorspaceSpecialIndexed )ToPdfObject ()_aef .PdfObject {_befc :=_aef .MakeArray (_aef .MakeName ("\u0049n\u0064\u0065\u0078\u0065\u0064"));_befc .Append (_ebaga .Base .ToPdfObject ());_befc .Append (_aef .MakeInteger (int64 (_ebaga .HiVal )));_befc .Append (_ebaga .Lookup );if _ebaga ._aeca !=nil {_ebaga ._aeca .PdfObject =_befc ;return _ebaga ._aeca ;};return _befc ;};
// ToPdfObject returns the PDF representation of the shading dictionary.
func (_bdeeg *PdfShadingType2 )ToPdfObject ()_aef .PdfObject {_bdeeg .PdfShading .ToPdfObject ();_ebcef ,_caddc :=_bdeeg .getShadingDict ();if _caddc !=nil {_abe .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 _ebcef ==nil {_abe .Log .Error ("\u0053\u0068\u0061\u0064in\u0067\u0020\u0064\u0069\u0063\u0074\u0020\u0069\u0073\u0020\u006e\u0069\u006c");return nil ;};if _bdeeg .Coords !=nil {_ebcef .Set ("\u0043\u006f\u006f\u0072\u0064\u0073",_bdeeg .Coords );};if _bdeeg .Domain !=nil {_ebcef .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_bdeeg .Domain );};if _bdeeg .Function !=nil {if len (_bdeeg .Function )==1{_ebcef .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_bdeeg .Function [0].ToPdfObject ());}else {_dcafa :=_aef .MakeArray ();for _ ,_deega :=range _bdeeg .Function {_dcafa .Append (_deega .ToPdfObject ());};_ebcef .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_dcafa );};};if _bdeeg .Extend !=nil {_ebcef .Set ("\u0045\u0078\u0074\u0065\u006e\u0064",_bdeeg .Extend );};return _bdeeg ._bbga ;};
// ToPdfObject implements interface PdfModel.
func (_afcd *PdfBorderStyle )ToPdfObject ()_aef .PdfObject {_eefg :=_aef .MakeDict ();if _afcd ._ggegf !=nil {if _faeg ,_ebc :=_afcd ._ggegf .(*_aef .PdfIndirectObject );_ebc {_faeg .PdfObject =_eefg ;};};_eefg .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_aef .MakeName ("\u0042\u006f\u0072\u0064\u0065\u0072"));if _afcd .W !=nil {_eefg .Set ("\u0057",_aef .MakeFloat (*_afcd .W ));};if _afcd .S !=nil {_eefg .Set ("\u0053",_aef .MakeName (_afcd .S .GetPdfName ()));};if _afcd .D !=nil {_eefg .Set ("\u0044",_aef .MakeArrayFromIntegers (*_afcd .D ));};if _afcd ._ggegf !=nil {return _afcd ._ggegf ;};return _eefg ;};
// ToInteger convert to an integer format.
func (_bcad *PdfColorDeviceRGB )ToInteger (bits int )[3]uint32 {_acbg :=_ad .Pow (2,float64 (bits ))-1;return [3]uint32 {uint32 (_acbg *_bcad .R ()),uint32 (_acbg *_bcad .G ()),uint32 (_acbg *_bcad .B ())};};
// 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 ;_dgagc PdfModel ;_fgbcde _aef .PdfObject ;};func (_efc *PdfReader )newPdfActionFromIndirectObject (_fafa *_aef .PdfIndirectObject )(*PdfAction ,error ){_bdb ,_fabfe :=_fafa .PdfObject .(*_aef .PdfObjectDictionary );if !_fabfe {return nil ,_b .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 :=_efc ._fggbd .GetModelFromPrimitive (_bdb );model !=nil {_bbf ,_beg :=model .(*PdfAction );if !_beg {return nil ,_b .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 _bbf ,nil ;};_feg :=&PdfAction {};_feg ._gc =_fafa ;_efc ._fggbd .Register (_bdb ,_feg );if _eeg :=_bdb .Get ("\u0054\u0079\u0070\u0065");_eeg !=nil {_dcb ,_faab :=_eeg .(*_aef .PdfObjectName );if !_faab {_abe .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",_eeg );}else {if *_dcb !="\u0041\u0063\u0074\u0069\u006f\u006e"{_abe .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",*_dcb );};_feg .Type =_dcb ;};};if _fd :=_bdb .Get ("\u004e\u0065\u0078\u0074");_fd !=nil {_feg .Next =_fd ;};if _efe :=_bdb .Get ("\u0053");_efe !=nil {_feg .S =_efe ;};_ade ,_cac :=_feg .S .(*_aef .PdfObjectName );if !_cac {_abe .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",_feg .S );return nil ,_b .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",_feg .S );};_bde :=PdfActionType (_ade .String ());switch _bde {case ActionTypeGoTo :_cgd ,_dfd :=_efc .newPdfActionGotoFromDict (_bdb );if _dfd !=nil {return nil ,_dfd ;};_cgd .PdfAction =_feg ;_feg ._ecb =_cgd ;return _feg ,nil ;case ActionTypeGoToR :_gdd ,_ggaf :=_efc .newPdfActionGotoRFromDict (_bdb );if _ggaf !=nil {return nil ,_ggaf ;};_gdd .PdfAction =_feg ;_feg ._ecb =_gdd ;return _feg ,nil ;case ActionTypeGoToE :_beb ,_acbca :=_efc .newPdfActionGotoEFromDict (_bdb );if _acbca !=nil {return nil ,_acbca ;};_beb .PdfAction =_feg ;_feg ._ecb =_beb ;return _feg ,nil ;case ActionTypeLaunch :_ggbc ,_dabf :=_efc .newPdfActionLaunchFromDict (_bdb );if _dabf !=nil {return nil ,_dabf ;};_ggbc .PdfAction =_feg ;_feg ._ecb =_ggbc ;return _feg ,nil ;case ActionTypeThread :_ega ,_cdb :=_efc .newPdfActionThreadFromDict (_bdb );if _cdb !=nil {return nil ,_cdb ;};_ega .PdfAction =_feg ;_feg ._ecb =_ega ;return _feg ,nil ;case ActionTypeURI :_ged ,_cbe :=_efc .newPdfActionURIFromDict (_bdb );if _cbe !=nil {return nil ,_cbe ;};_ged .PdfAction =_feg ;_feg ._ecb =_ged ;return _feg ,nil ;case ActionTypeSound :_ff ,_cef :=_efc .newPdfActionSoundFromDict (_bdb );if _cef !=nil {return nil ,_cef ;};_ff .PdfAction =_feg ;_feg ._ecb =_ff ;return _feg ,nil ;case ActionTypeMovie :_fcf ,_afg :=_efc .newPdfActionMovieFromDict (_bdb );if _afg !=nil {return nil ,_afg ;};_fcf .PdfAction =_feg ;_feg ._ecb =_fcf ;return _feg ,nil ;case ActionTypeHide :_aedf ,_deb :=_efc .newPdfActionHideFromDict (_bdb );if _deb !=nil {return nil ,_deb ;};_aedf .PdfAction =_feg ;_feg ._ecb =_aedf ;return _feg ,nil ;case ActionTypeNamed :_gddc ,_cag :=_efc .newPdfActionNamedFromDict (_bdb );if _cag !=nil {return nil ,_cag ;};_gddc .PdfAction =_feg ;_feg ._ecb =_gddc ;return _feg ,nil ;case ActionTypeSubmitForm :_cgfd ,_gba :=_efc .newPdfActionSubmitFormFromDict (_bdb );if _gba !=nil {return nil ,_gba ;};_cgfd .PdfAction =_feg ;_feg ._ecb =_cgfd ;return _feg ,nil ;case ActionTypeResetForm :_edg ,_adg :=_efc .newPdfActionResetFormFromDict (_bdb );if _adg !=nil {return nil ,_adg ;};_edg .PdfAction =_feg ;_feg ._ecb =_edg ;return _feg ,nil ;case ActionTypeImportData :_fbc ,_bab :=_efc .newPdfActionImportDataFromDict (_bdb );if _bab !=nil {return nil ,_bab ;};_fbc .PdfAction =_feg ;_feg ._ecb =_fbc ;return _feg ,nil ;case ActionTypeSetOCGState :_gaaa ,_bf :=_efc .newPdfActionSetOCGStateFromDict (_bdb );if _bf !=nil {return nil ,_bf ;};_gaaa .PdfAction =_feg ;_feg ._ecb =_gaaa ;return _feg ,nil ;case ActionTypeRendition :_bda ,_ced :=_efc .newPdfActionRenditionFromDict (_bdb );if _ced !=nil {return nil ,_ced ;};_bda .PdfAction =_feg ;_feg ._ecb =_bda ;return _feg ,nil ;case ActionTypeTrans :_adc ,_cab :=_efc .newPdfActionTransFromDict (_bdb );if _cab !=nil {return nil ,_cab ;};_adc .PdfAction =_feg ;_feg ._ecb =_adc ;return _feg ,nil ;case ActionTypeGoTo3DView :_dfdd ,_cgg :=_efc .newPdfActionGoTo3DViewFromDict (_bdb );if _cgg !=nil {return nil ,_cgg ;};_dfdd .PdfAction =_feg ;_feg ._ecb =_dfdd ;return _feg ,nil ;case ActionTypeJavaScript :_gede ,_edga :=_efc .newPdfActionJavaScriptFromDict (_bdb );if _edga !=nil {return nil ,_edga ;};_gede .PdfAction =_feg ;_feg ._ecb =_gede ;return _feg ,nil ;};_abe .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",_bde );return nil ,nil ;};
// HasExtGState checks if ExtGState name is available.
func (_cfaa *PdfPage )HasExtGState (name _aef .PdfObjectName )bool {if _cfaa .Resources ==nil {return false ;};if _cfaa .Resources .ExtGState ==nil {return false ;};_fbcac ,_dbfe :=_aef .TraceToDirectObject (_cfaa .Resources .ExtGState ).(*_aef .PdfObjectDictionary );if !_dbfe {_abe .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",_aef .TraceToDirectObject (_cfaa .Resources .ExtGState ));return false ;};_aggda :=_fbcac .Get (name );_ddeea :=_aggda !=nil ;return _ddeea ;};
// ToPdfObject returns the PDF representation of the VRI dictionary.
func (_gfddc *VRI )ToPdfObject ()*_aef .PdfObjectDictionary {_faeag :=_aef .MakeDict ();_faeag .SetIfNotNil (_aef .PdfObjectName ("\u0043\u0065\u0072\u0074"),_agcab (_gfddc .Cert ));_faeag .SetIfNotNil (_aef .PdfObjectName ("\u004f\u0043\u0053\u0050"),_agcab (_gfddc .OCSP ));_faeag .SetIfNotNil (_aef .PdfObjectName ("\u0043\u0052\u004c"),_agcab (_gfddc .CRL ));_faeag .SetIfNotNil ("\u0054\u0055",_gfddc .TU );_faeag .SetIfNotNil ("\u0054\u0053",_gfddc .TS );return _faeag ;};
// PdfAnnotationTrapNet represents TrapNet annotations.
// (Section 12.5.6.21).
type PdfAnnotationTrapNet struct{*PdfAnnotation };
// PdfColorspaceCalRGB stores A, B, C components
type PdfColorspaceCalRGB struct{WhitePoint []float64 ;BlackPoint []float64 ;Gamma []float64 ;Matrix []float64 ;_dce *_aef .PdfObjectDictionary ;_cdag *_aef .PdfIndirectObject ;};
// Height returns the height of `rect`.
func (_bfddb *PdfRectangle )Height ()float64 {return _ad .Abs (_bfddb .Ury -_bfddb .Lly )};func (_abegg *pdfFontType0 )getFontDescriptor ()*PdfFontDescriptor {if _abegg ._bgfd ==nil &&_abegg .DescendantFont !=nil {return _abegg .DescendantFont .FontDescriptor ();};return _abegg ._bgfd ;};
// ColorToRGB converts a CalRGB color to an RGB color.
func (_bcde *PdfColorspaceCalRGB )ColorToRGB (color PdfColor )(PdfColor ,error ){_aeg ,_aeaab :=color .(*PdfColorCalRGB );if !_aeaab {_abe .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 ,_fa .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_geag :=_aeg .A ();_aefbe :=_aeg .B ();_gagc :=_aeg .C ();X :=_bcde .Matrix [0]*_ad .Pow (_geag ,_bcde .Gamma [0])+_bcde .Matrix [3]*_ad .Pow (_aefbe ,_bcde .Gamma [1])+_bcde .Matrix [6]*_ad .Pow (_gagc ,_bcde .Gamma [2]);Y :=_bcde .Matrix [1]*_ad .Pow (_geag ,_bcde .Gamma [0])+_bcde .Matrix [4]*_ad .Pow (_aefbe ,_bcde .Gamma [1])+_bcde .Matrix [7]*_ad .Pow (_gagc ,_bcde .Gamma [2]);Z :=_bcde .Matrix [2]*_ad .Pow (_geag ,_bcde .Gamma [0])+_bcde .Matrix [5]*_ad .Pow (_aefbe ,_bcde .Gamma [1])+_bcde .Matrix [8]*_ad .Pow (_gagc ,_bcde .Gamma [2]);_dcca :=3.240479*X +-1.537150*Y +-0.498535*Z ;_febf :=-0.969256*X +1.875992*Y +0.041556*Z ;_abda :=0.055648*X +-0.204043*Y +1.057311*Z ;_dcca =_ad .Min (_ad .Max (_dcca ,0),1.0);_febf =_ad .Min (_ad .Max (_febf ,0),1.0);_abda =_ad .Min (_ad .Max (_abda ,0),1.0);return NewPdfColorDeviceRGB (_dcca ,_febf ,_abda ),nil ;};func (_fdcbc *PdfColorspaceLab )String ()string {return "\u004c\u0061\u0062"};
// PdfAnnotationRedact represents Redact annotations.
// (Section 12.5.6.23).
type PdfAnnotationRedact struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _aef .PdfObject ;IC _aef .PdfObject ;RO _aef .PdfObject ;OverlayText _aef .PdfObject ;Repeat _aef .PdfObject ;DA _aef .PdfObject ;Q _aef .PdfObject ;};func (_fgge *PdfColorspaceDeviceCMYK )String ()string {return "\u0044\u0065\u0076\u0069\u0063\u0065\u0043\u004d\u0059\u004b";};func (_fcbda *PdfReader )newPdfAnnotationTrapNetFromDict (_cfae *_aef .PdfObjectDictionary )(*PdfAnnotationTrapNet ,error ){_gcaff :=PdfAnnotationTrapNet {};return &_gcaff ,nil ;};
// ToPdfObject implements interface PdfModel.
func (_eebcc *PdfAnnotationPolygon )ToPdfObject ()_aef .PdfObject {_eebcc .PdfAnnotation .ToPdfObject ();_cddf :=_eebcc ._edc ;_eac :=_cddf .PdfObject .(*_aef .PdfObjectDictionary );_eebcc .PdfAnnotationMarkup .appendToPdfDictionary (_eac );_eac .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_aef .MakeName ("\u0050o\u006c\u0079\u0067\u006f\u006e"));_eac .SetIfNotNil ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073",_eebcc .Vertices );_eac .SetIfNotNil ("\u004c\u0045",_eebcc .LE );_eac .SetIfNotNil ("\u0042\u0053",_eebcc .BS );_eac .SetIfNotNil ("\u0049\u0043",_eebcc .IC );_eac .SetIfNotNil ("\u0042\u0045",_eebcc .BE );_eac .SetIfNotNil ("\u0049\u0054",_eebcc .IT );_eac .SetIfNotNil ("\u004de\u0061\u0073\u0075\u0072\u0065",_eebcc .Measure );return _cddf ;};
// PdfAnnotationSound represents Sound annotations.
// (Section 12.5.6.16).
type PdfAnnotationSound struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Sound _aef .PdfObject ;Name _aef .PdfObject ;};func (_eafd *Image )samplesAddPadding (_abfef []uint32 )[]uint32 {_ceec :=_gb .BytesPerLine (int (_eafd .Width ),int (_eafd .BitsPerComponent ),_eafd .ColorComponents )*(8/int (_eafd .BitsPerComponent ));_gedea :=_ceec *int (_eafd .Height );if len (_abfef )==_gedea {return _abfef ;};_cgfgc :=make ([]uint32 ,_gedea );_aaaa :=int (_eafd .Width )*_eafd .ColorComponents ;for _gacg :=0;_gacg < int (_eafd .Height );_gacg ++{_cfbgf :=_gacg *int (_eafd .Width );_dggce :=_gacg *_ceec ;for _cdbaf :=0;_cdbaf < _aaaa ;_cdbaf ++{_cgfgc [_dggce +_cdbaf ]=_abfef [_cfbgf +_cdbaf ];};};return _cgfgc ;};
// 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 *_aef .PdfObjectArray ;ExtGState _aef .PdfObject ;};
// SetPdfSubject sets the Subject attribute of the output PDF.
func SetPdfSubject (subject string ){_abdcd .Lock ();defer _abdcd .Unlock ();_afdfd =subject };
// PdfActionSetOCGState represents a SetOCGState action.
type PdfActionSetOCGState struct{*PdfAction ;State _aef .PdfObject ;PreserveRB _aef .PdfObject ;};
// ColorToRGB verifies that the input color is an RGB color. Method exists in
// order to satisfy the PdfColorspace interface.
func (_abce *PdfColorspaceDeviceRGB )ColorToRGB (color PdfColor )(PdfColor ,error ){_adfc ,_dgbc :=color .(*PdfColorDeviceRGB );if !_dgbc {_abe .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 ,_fa .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};return _adfc ,nil ;};func _edbed (_fbcbe _ecf .StdFont )pdfFontSimple {_bdage :=_fbcbe .Descriptor ();return pdfFontSimple {fontCommon :fontCommon {_ababd :"\u0054\u0079\u0070e\u0031",_fegdg :_fbcbe .Name ()},_gcbd :_fbcbe .GetMetricsTable (),_fggf :&PdfFontDescriptor {FontName :_aef .MakeName (string (_bdage .Name )),FontFamily :_aef .MakeName (_bdage .Family ),FontWeight :_aef .MakeFloat (float64 (_bdage .Weight )),Flags :_aef .MakeInteger (int64 (_bdage .Flags )),FontBBox :_aef .MakeArrayFromFloats (_bdage .BBox [:]),ItalicAngle :_aef .MakeFloat (_bdage .ItalicAngle ),Ascent :_aef .MakeFloat (_bdage .Ascent ),Descent :_aef .MakeFloat (_bdage .Descent ),CapHeight :_aef .MakeFloat (_bdage .CapHeight ),XHeight :_aef .MakeFloat (_bdage .XHeight ),StemV :_aef .MakeFloat (_bdage .StemV ),StemH :_aef .MakeFloat (_bdage .StemH )},_gbee :_fbcbe .Encoder ()};};
// PdfDate represents a date, which is a PDF string of the form:
// (D:YYYYMMDDHHmmSSOHH'mm)
type PdfDate struct{_eacag int64 ;_bfeaf int64 ;_cecab int64 ;_begfg int64 ;_gdeaef int64 ;_ebge int64 ;_bggc byte ;_bbccf int64 ;_debfg int64 ;};
// PdfAnnotationPrinterMark represents PrinterMark annotations.
// (Section 12.5.6.20).
type PdfAnnotationPrinterMark struct{*PdfAnnotation ;MN _aef .PdfObject ;};
// FullName returns the full name of the field as in rootname.parentname.partialname.
func (_dfdfd *PdfField )FullName ()(string ,error ){var _cffb _cg .Buffer ;_ddbba :=[]string {};if _dfdfd .T !=nil {_ddbba =append (_ddbba ,_dfdfd .T .Decoded ());};_fdbab :=map[*PdfField ]bool {};_fdbab [_dfdfd ]=true ;_ecacf :=_dfdfd .Parent ;for _ecacf !=nil {if _ ,_dbae :=_fdbab [_ecacf ];_dbae {return _cffb .String (),_fa .New ("\u0072\u0065\u0063\u0075rs\u0069\u0076\u0065\u0020\u0074\u0072\u0061\u0076\u0065\u0072\u0073\u0061\u006c");};if _ecacf .T ==nil {return _cffb .String (),_fa .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");};_ddbba =append (_ddbba ,_ecacf .T .Decoded ());_fdbab [_ecacf ]=true ;_ecacf =_ecacf .Parent ;};for _aeaac :=len (_ddbba )-1;_aeaac >=0;_aeaac --{_cffb .WriteString (_ddbba [_aeaac ]);if _aeaac > 0{_cffb .WriteString ("\u002e");};};return _cffb .String (),nil ;};
// ToPdfObject returns the PdfFontDescriptor as a PDF dictionary inside an indirect object.
func (_ggee *PdfFontDescriptor )ToPdfObject ()_aef .PdfObject {_aaae :=_aef .MakeDict ();if _ggee ._ecafc ==nil {_ggee ._ecafc =&_aef .PdfIndirectObject {};};_ggee ._ecafc .PdfObject =_aaae ;_aaae .Set ("\u0054\u0079\u0070\u0065",_aef .MakeName ("\u0046\u006f\u006e\u0074\u0044\u0065\u0073\u0063\u0072i\u0070\u0074\u006f\u0072"));if _ggee .FontName !=nil {_aaae .Set ("\u0046\u006f\u006e\u0074\u004e\u0061\u006d\u0065",_ggee .FontName );};if _ggee .FontFamily !=nil {_aaae .Set ("\u0046\u006f\u006e\u0074\u0046\u0061\u006d\u0069\u006c\u0079",_ggee .FontFamily );};if _ggee .FontStretch !=nil {_aaae .Set ("F\u006f\u006e\u0074\u0053\u0074\u0072\u0065\u0074\u0063\u0068",_ggee .FontStretch );};if _ggee .FontWeight !=nil {_aaae .Set ("\u0046\u006f\u006e\u0074\u0057\u0065\u0069\u0067\u0068\u0074",_ggee .FontWeight );};if _ggee .Flags !=nil {_aaae .Set ("\u0046\u006c\u0061g\u0073",_ggee .Flags );};if _ggee .FontBBox !=nil {_aaae .Set ("\u0046\u006f\u006e\u0074\u0042\u0042\u006f\u0078",_ggee .FontBBox );};if _ggee .ItalicAngle !=nil {_aaae .Set ("I\u0074\u0061\u006c\u0069\u0063\u0041\u006e\u0067\u006c\u0065",_ggee .ItalicAngle );};if _ggee .Ascent !=nil {_aaae .Set ("\u0041\u0073\u0063\u0065\u006e\u0074",_ggee .Ascent );};if _ggee .Descent !=nil {_aaae .Set ("\u0044e\u0073\u0063\u0065\u006e\u0074",_ggee .Descent );};if _ggee .Leading !=nil {_aaae .Set ("\u004ce\u0061\u0064\u0069\u006e\u0067",_ggee .Leading );};if _ggee .CapHeight !=nil {_aaae .Set ("\u0043a\u0070\u0048\u0065\u0069\u0067\u0068t",_ggee .CapHeight );};if _ggee .XHeight !=nil {_aaae .Set ("\u0058H\u0065\u0069\u0067\u0068\u0074",_ggee .XHeight );};if _ggee .StemV !=nil {_aaae .Set ("\u0053\u0074\u0065m\u0056",_ggee .StemV );};if _ggee .StemH !=nil {_aaae .Set ("\u0053\u0074\u0065m\u0048",_ggee .StemH );};if _ggee .AvgWidth !=nil {_aaae .Set ("\u0041\u0076\u0067\u0057\u0069\u0064\u0074\u0068",_ggee .AvgWidth );};if _ggee .MaxWidth !=nil {_aaae .Set ("\u004d\u0061\u0078\u0057\u0069\u0064\u0074\u0068",_ggee .MaxWidth );};if _ggee .MissingWidth !=nil {_aaae .Set ("\u004d\u0069\u0073s\u0069\u006e\u0067\u0057\u0069\u0064\u0074\u0068",_ggee .MissingWidth );};if _ggee .FontFile !=nil {_aaae .Set ("\u0046\u006f\u006e\u0074\u0046\u0069\u006c\u0065",_ggee .FontFile );};if _ggee .FontFile2 !=nil {_aaae .Set ("\u0046o\u006e\u0074\u0046\u0069\u006c\u00652",_ggee .FontFile2 );};if _ggee .FontFile3 !=nil {_aaae .Set ("\u0046o\u006e\u0074\u0046\u0069\u006c\u00653",_ggee .FontFile3 );};if _ggee .CharSet !=nil {_aaae .Set ("\u0043h\u0061\u0072\u0053\u0065\u0074",_ggee .CharSet );};if _ggee .Style !=nil {_aaae .Set ("\u0046\u006f\u006e\u0074\u004e\u0061\u006d\u0065",_ggee .FontName );};if _ggee .Lang !=nil {_aaae .Set ("\u004c\u0061\u006e\u0067",_ggee .Lang );};if _ggee .FD !=nil {_aaae .Set ("\u0046\u0044",_ggee .FD );};if _ggee .CIDSet !=nil {_aaae .Set ("\u0043\u0049\u0044\u0053\u0065\u0074",_ggee .CIDSet );};return _ggee ._ecafc ;};
// ColorFromFloats returns a new PdfColor based on the input slice of color
// components.
func (_ddgdg *PdfColorspaceSpecialPattern )ColorFromFloats (vals []float64 )(PdfColor ,error ){if _ddgdg .UnderlyingCS ==nil {return nil ,_fa .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 _ddgdg .UnderlyingCS .ColorFromFloats (vals );};var (_dcfbb =_af .MustCompile ("\u005cd\u002b\u0020\u0064\u0069c\u0074\u005c\u0073\u002b\u0028d\u0075p\u005cs\u002b\u0029\u003f\u0062\u0065\u0067\u0069n");_afgca =_af .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");_aaggb =_af .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");_gdee ="\u002f\u0045\u006e\u0063od\u0069\u006e\u0067\u0020\u0032\u0035\u0036\u0020\u0061\u0072\u0072\u0061\u0079";_affbc ="\u0072\u0065\u0061d\u006f\u006e\u006c\u0079\u0020\u0064\u0065\u0066";_egfg ="\u0063\u0075\u0072\u0072\u0065\u006e\u0074\u0066\u0069\u006c\u0065\u0020e\u0065\u0078\u0065\u0063";);
// GetFontDescriptor returns the font descriptor for `font`.
func (_dadf PdfFont )GetFontDescriptor ()(*PdfFontDescriptor ,error ){return _dadf ._dccga .getFontDescriptor (),nil ;};
// PdfAnnotationWidget represents Widget annotations.
// Note: Widget annotations are used to display form fields.
// (Section 12.5.6.19).
type PdfAnnotationWidget struct{*PdfAnnotation ;H _aef .PdfObject ;MK _aef .PdfObject ;A _aef .PdfObject ;AA _aef .PdfObject ;BS _aef .PdfObject ;Parent _aef .PdfObject ;_ccc *PdfField ;_eega bool ;};func _dfcc (_dccfa _aef .PdfObject )(*PdfColorspaceICCBased ,error ){_ebfcg :=&PdfColorspaceICCBased {};if _befab ,_ceba :=_dccfa .(*_aef .PdfIndirectObject );_ceba {_ebfcg ._fcabc =_befab ;};_dccfa =_aef .TraceToDirectObject (_dccfa );_gcgc ,_bfgf :=_dccfa .(*_aef .PdfObjectArray );if !_bfgf {return nil ,_b .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _gcgc .Len ()!=2{return nil ,_b .Errorf ("i\u006e\u0076\u0061\u006c\u0069\u0064 \u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064\u0020c\u006f\u006c\u006fr\u0073p\u0061\u0063\u0065");};_dccfa =_aef .TraceToDirectObject (_gcgc .Get (0));_eefgg ,_bfgf :=_dccfa .(*_aef .PdfObjectName );if !_bfgf {return nil ,_b .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 *_eefgg !="\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064"{return nil ,_b .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");};_dccfa =_gcgc .Get (1);_aded ,_bfgf :=_aef .GetStream (_dccfa );if !_bfgf {_abe .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",_dccfa );return nil ,_b .Errorf ("\u0049\u0043\u0043Ba\u0073\u0065\u0064\u0020\u0073\u0074\u0072\u0065\u0061\u006d\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064");};_fegg :=_aded .PdfObjectDictionary ;_cff ,_bfgf :=_fegg .Get ("\u004e").(*_aef .PdfObjectInteger );if !_bfgf {return nil ,_b .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 *_cff !=1&&*_cff !=3&&*_cff !=4{return nil ,_b .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");};_ebfcg .N =int (*_cff );if _ccge :=_fegg .Get ("\u0041l\u0074\u0065\u0072\u006e\u0061\u0074e");_ccge !=nil {_adea ,_feef :=NewPdfColorspaceFromPdfObject (_ccge );if _feef !=nil {return nil ,_feef ;};_ebfcg .Alternate =_adea ;};if _ggafe :=_fegg .Get ("\u0052\u0061\u006eg\u0065");_ggafe !=nil {_ggafe =_aef .TraceToDirectObject (_ggafe );_cabb ,_dbecdg :=_ggafe .(*_aef .PdfObjectArray );if !_dbecdg {return nil ,_b .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 _cabb .Len ()!=2*_ebfcg .N {return nil ,_b .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");};_ffeea ,_bbab :=_cabb .GetAsFloat64Slice ();if _bbab !=nil {return nil ,_bbab ;};_ebfcg .Range =_ffeea ;}else {_ebfcg .Range =make ([]float64 ,2*_ebfcg .N );for _egdb :=0;_egdb < _ebfcg .N ;_egdb ++{_ebfcg .Range [2*_egdb ]=0.0;_ebfcg .Range [2*_egdb +1]=1.0;};};if _acgg :=_fegg .Get ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");_acgg !=nil {_deae ,_cbaa :=_acgg .(*_aef .PdfObjectStream );if !_cbaa {return nil ,_b .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");};_ebfcg .Metadata =_deae ;};_acca ,_cadg :=_aef .DecodeStream (_aded );if _cadg !=nil {return nil ,_cadg ;};_ebfcg .Data =_acca ;_ebfcg ._bcdc =_aded ;return _ebfcg ,nil ;};
// GetCharMetrics returns the char metrics for character code `code`.
func (_bcffe pdfCIDFontType2 )GetCharMetrics (code _be .CharCode )(_ecf .CharMetrics ,bool ){if _fdcec ,_egfa :=_bcffe ._gcfe [code ];_egfa {return _ecf .CharMetrics {Wx :_fdcec },true ;};_beaf :=rune (code );_gafa ,_adcd :=_bcffe ._bffbc [_beaf ];if !_adcd {_gafa =int (_bcffe ._efagd );};return _ecf .CharMetrics {Wx :float64 (_gafa )},true ;};
// NewPdfFilespecFromObj creates and returns a new PdfFilespec object.
func NewPdfFilespecFromObj (obj _aef .PdfObject )(*PdfFilespec ,error ){_aacfg :=&PdfFilespec {};var _bfdde *_aef .PdfObjectDictionary ;if _acbb ,_aecb :=_aef .GetIndirect (obj );_aecb {_aacfg ._bgbda =_acbb ;_feaa ,_baga :=_aef .GetDict (_acbb .PdfObject );if !_baga {_abe .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 ,_aef .ErrTypeError ;};_bfdde =_feaa ;}else if _edcd ,_fgaga :=_aef .GetDict (obj );_fgaga {_aacfg ._bgbda =_edcd ;_bfdde =_edcd ;}else {_abe .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 ,_aef .ErrTypeError ;};if _bfdde ==nil {_abe .Log .Debug ("\u0044i\u0063t\u0069\u006f\u006e\u0061\u0072y\u0020\u006di\u0073\u0073\u0069\u006e\u0067");return nil ,_fa .New ("\u0064\u0069\u0063t\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};if _gaeee :=_bfdde .Get ("\u0054\u0079\u0070\u0065");_gaeee !=nil {_ddee ,_dcgc :=_gaeee .(*_aef .PdfObjectName );if !_dcgc {_abe .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",_gaeee );}else {if *_ddee !="\u0046\u0069\u006c\u0065\u0073\u0070\u0065\u0063"{_abe .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",*_ddee );};};};if _acdg :=_bfdde .Get ("\u0046\u0053");_acdg !=nil {_aacfg .FS =_acdg ;};if _abgf :=_bfdde .Get ("\u0046");_abgf !=nil {_aacfg .F =_abgf ;};if _cadgg :=_bfdde .Get ("\u0055\u0046");_cadgg !=nil {_aacfg .UF =_cadgg ;};if _dgefb :=_bfdde .Get ("\u0044\u004f\u0053");_dgefb !=nil {_aacfg .DOS =_dgefb ;};if _ffda :=_bfdde .Get ("\u004d\u0061\u0063");_ffda !=nil {_aacfg .Mac =_ffda ;};if _egea :=_bfdde .Get ("\u0055\u006e\u0069\u0078");_egea !=nil {_aacfg .Unix =_egea ;};if _aacc :=_bfdde .Get ("\u0049\u0044");_aacc !=nil {_aacfg .ID =_aacc ;};if _cgdde :=_bfdde .Get ("\u0056");_cgdde !=nil {_aacfg .V =_cgdde ;};if _dfdba :=_bfdde .Get ("\u0045\u0046");_dfdba !=nil {_aacfg .EF =_dfdba ;};if _cefg :=_bfdde .Get ("\u0052\u0046");_cefg !=nil {_aacfg .RF =_cefg ;};if _dcge :=_bfdde .Get ("\u0044\u0065\u0073\u0063");_dcge !=nil {_aacfg .Desc =_dcge ;};if _effda :=_bfdde .Get ("\u0043\u0049");_effda !=nil {_aacfg .CI =_effda ;};return _aacfg ,nil ;};
// DecodeArray returns the range of color component values in CalRGB colorspace.
func (_cbebb *PdfColorspaceCalRGB )DecodeArray ()[]float64 {return []float64 {0.0,1.0,0.0,1.0,0.0,1.0};};func (_caff *PdfReader )newPdfActionGotoFromDict (_bee *_aef .PdfObjectDictionary )(*PdfActionGoTo ,error ){return &PdfActionGoTo {D :_bee .Get ("\u0044")},nil ;};
// AppendContentStream adds content stream by string. Appends to the last
// contentstream instance if many.
func (_baggf *PdfPage )AppendContentStream (contentStr string )error {_cacce ,_dffac :=_baggf .GetContentStreams ();if _dffac !=nil {return _dffac ;};if len (_cacce )==0{_cacce =[]string {contentStr };return _baggf .SetContentStreams (_cacce ,_aef .NewFlateEncoder ());};var _dfcbb _cg .Buffer ;_dfcbb .WriteString (_cacce [len (_cacce )-1]);_dfcbb .WriteString ("\u000a");_dfcbb .WriteString (contentStr );_cacce [len (_cacce )-1]=_dfcbb .String ();return _baggf .SetContentStreams (_cacce ,_aef .NewFlateEncoder ());};
// Flags returns the field flags for the field accounting for any inherited flags.
func (_dgeg *PdfField )Flags ()FieldFlag {var _dgfdg FieldFlag ;_fddge ,_fbdf :=_dgeg .inherit (func (_dcdbf *PdfField )bool {if _dcdbf .Ff !=nil {_dgfdg =FieldFlag (*_dgeg .Ff );return true ;};return false ;});if _fbdf !=nil {_abe .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",_fbdf );};if !_fddge {_abe .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 _dgfdg ;};
// ToPdfObject implements interface PdfModel.
func (_cefb *PdfSignature )ToPdfObject ()_aef .PdfObject {_acgca :=_cefb ._cfcff ;var _gbbfc *_aef .PdfObjectDictionary ;if _dagae ,_ecccb :=_acgca .PdfObject .(*pdfSignDictionary );_ecccb {_gbbfc =_dagae .PdfObjectDictionary ;}else {_gbbfc =_acgca .PdfObject .(*_aef .PdfObjectDictionary );};_gbbfc .SetIfNotNil ("\u0054\u0079\u0070\u0065",_cefb .Type );_gbbfc .SetIfNotNil ("\u0046\u0069\u006c\u0074\u0065\u0072",_cefb .Filter );_gbbfc .SetIfNotNil ("\u0053u\u0062\u0046\u0069\u006c\u0074\u0065r",_cefb .SubFilter );_gbbfc .SetIfNotNil ("\u0042y\u0074\u0065\u0052\u0061\u006e\u0067e",_cefb .ByteRange );_gbbfc .SetIfNotNil ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073",_cefb .Contents );_gbbfc .SetIfNotNil ("\u0043\u0065\u0072\u0074",_cefb .Cert );_gbbfc .SetIfNotNil ("\u004e\u0061\u006d\u0065",_cefb .Name );_gbbfc .SetIfNotNil ("\u0052\u0065\u0061\u0073\u006f\u006e",_cefb .Reason );_gbbfc .SetIfNotNil ("\u004d",_cefb .M );_gbbfc .SetIfNotNil ("\u0052e\u0066\u0065\u0072\u0065\u006e\u0063e",_cefb .Reference );_gbbfc .SetIfNotNil ("\u0043h\u0061\u006e\u0067\u0065\u0073",_cefb .Changes );_gbbfc .SetIfNotNil ("C\u006f\u006e\u0074\u0061\u0063\u0074\u0049\u006e\u0066\u006f",_cefb .ContactInfo );return _acgca ;};
// PdfColorspaceLab is a L*, a*, b* 3 component colorspace.
type PdfColorspaceLab struct{WhitePoint []float64 ;BlackPoint []float64 ;Range []float64 ;_aagb *_aef .PdfIndirectObject ;};
// GetNumComponents returns the number of color components (1 for Separation).
func (_gggbg *PdfColorspaceSpecialSeparation )GetNumComponents ()int {return 1};
// PdfAnnotationLine represents Line annotations.
// (Section 12.5.6.7).
type PdfAnnotationLine struct{*PdfAnnotation ;*PdfAnnotationMarkup ;L _aef .PdfObject ;BS _aef .PdfObject ;LE _aef .PdfObject ;IC _aef .PdfObject ;LL _aef .PdfObject ;LLE _aef .PdfObject ;Cap _aef .PdfObject ;IT _aef .PdfObject ;LLO _aef .PdfObject ;CP _aef .PdfObject ;Measure _aef .PdfObject ;CO _aef .PdfObject ;};func (_ecbce *LTV )validateSig (_gedga *PdfSignature )error {if _gedga ==nil ||_gedga .Contents ==nil ||len (_gedga .Contents .Bytes ())==0{return _b .Errorf ("i\u006e\u0076\u0061\u006c\u0069\u0064 \u0073\u0069\u0067\u006e\u0061\u0074\u0075\u0072\u0065 \u0066\u0069\u0065l\u0064:\u0020\u0025\u0076",_gedga );};return nil ;};
// PdfActionGoTo represents a GoTo action.
type PdfActionGoTo struct{*PdfAction ;D _aef .PdfObject ;};
// PdfActionThread represents a thread action.
type PdfActionThread struct{*PdfAction ;F *PdfFilespec ;D _aef .PdfObject ;B _aef .PdfObject ;};
// AcroFormRepairOptions contains options for rebuilding the AcroForm.
type AcroFormRepairOptions struct{};
// NewPdfField returns an initialized PdfField.
func NewPdfField ()*PdfField {return &PdfField {_abebg :_aef .MakeIndirectObject (_aef .MakeDict ())}};
// GetContext returns the annotation context which contains the specific type-dependent context.
// The context represents the subannotation.
func (_gaeg *PdfAnnotation )GetContext ()PdfModel {if _gaeg ==nil {return nil ;};return _gaeg ._eab ;};
// ToPdfObject implements interface PdfModel.
func (_gcaa *PdfActionHide )ToPdfObject ()_aef .PdfObject {_gcaa .PdfAction .ToPdfObject ();_gfff :=_gcaa ._gc ;_ggb :=_gfff .PdfObject .(*_aef .PdfObjectDictionary );_ggb .SetIfNotNil ("\u0053",_aef .MakeName (string (ActionTypeHide )));_ggb .SetIfNotNil ("\u0054",_gcaa .T );_ggb .SetIfNotNil ("\u0048",_gcaa .H );return _gfff ;};
// 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 (_ebde *PdfFont )StringToCharcodeBytes (str string )([]byte ,int ){return _ebde .RunesToCharcodeBytes ([]rune (str ));};
// 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 *_aef .PdfIndirectObject `json:"-"`;Page int64 `json:"page"`;Mode string `json:"mode"`;X float64 `json:"x"`;Y float64 `json:"y"`;Zoom float64 `json:"zoom"`;};
// WriteToFile writes the Appender output to file specified by path.
func (_agac *PdfAppender )WriteToFile (outputPath string )error {_bfeb ,_bca :=_gf .Create (outputPath );if _bca !=nil {return _bca ;};defer _bfeb .Close ();return _agac .Write (_bfeb );};
// NewPdfActionGoTo3DView returns a new "goTo3DView" action.
func NewPdfActionGoTo3DView ()*PdfActionGoTo3DView {_ba :=NewPdfAction ();_eceg :=&PdfActionGoTo3DView {};_eceg .PdfAction =_ba ;_ba .SetContext (_eceg );return _eceg ;};
// 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 *_aef .PdfObjectName ;AlternateSpace PdfColorspace ;TintTransform PdfFunction ;_abfcb *_aef .PdfIndirectObject ;};
// String returns a string that describes `base`.
func (_agdf fontCommon )String ()string {return _b .Sprintf ("\u0046\u004f\u004e\u0054\u007b\u0025\u0073\u007d",_agdf .coreString ());};
// 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 (_fgf *PdfAnnotationWidget )Field ()*PdfField {return _fgf ._ccc };
// ToPdfObject converts the PdfPage to a dictionary within an indirect object container.
func (_caeffd *PdfPage )ToPdfObject ()_aef .PdfObject {_ffeee :=_caeffd ._gfbbf ;_caeffd .GetPageDict ();return _ffeee ;};func (_bfag *PdfPage )getParentResources ()(*PdfPageResources ,error ){_cbbgeb :=_bfag .Parent ;for _cbbgeb !=nil {_accce ,_bdbba :=_aef .GetDict (_cbbgeb );if !_bdbba {_abe .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 ,_fa .New ("i\u006e\u0076\u0061\u006cid\u0020p\u0061\u0072\u0065\u006e\u0074 \u006f\u0062\u006a\u0065\u0063\u0074");};if _gccba :=_accce .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");_gccba !=nil {_edfaf ,_bcacd :=_aef .GetDict (_gccba );if !_bcacd {return nil ,_fa .New ("i\u006e\u0076\u0061\u006cid\u0020r\u0065\u0073\u006f\u0075\u0072c\u0065\u0020\u0064\u0069\u0063\u0074");};_gabc ,_dcdga :=NewPdfPageResourcesFromDict (_edfaf );if _dcdga !=nil {return nil ,_dcdga ;};return _gabc ,nil ;};_cbbgeb =_accce .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");};return nil ,nil ;};const (TrappedUnknown PdfInfoTrapped ="\u0055n\u006b\u006e\u006f\u0077\u006e";TrappedTrue PdfInfoTrapped ="\u0054\u0072\u0075\u0065";TrappedFalse PdfInfoTrapped ="\u0046\u0061\u006cs\u0065";);func (_egd *PdfReader )newPdfActionResetFormFromDict (_gag *_aef .PdfObjectDictionary )(*PdfActionResetForm ,error ){return &PdfActionResetForm {Fields :_gag .Get ("\u0046\u0069\u0065\u006c\u0064\u0073"),Flags :_gag .Get ("\u0046\u006c\u0061g\u0073")},nil ;};var _aceda =_af .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");func (_eefaa *PdfReader )newPdfAcroFormFromDict (_fede *_aef .PdfIndirectObject ,_gbbb *_aef .PdfObjectDictionary )(*PdfAcroForm ,error ){_abcca :=NewPdfAcroForm ();if _fede !=nil {_abcca ._aade =_fede ;_fede .PdfObject =_aef .MakeDict ();};if _abcga :=_gbbb .Get ("\u0046\u0069\u0065\u006c\u0064\u0073");_abcga !=nil {_ecba ,_cdcee :=_aef .GetArray (_abcga );if !_cdcee {return nil ,_b .Errorf ("\u0066i\u0065\u006c\u0064\u0073\u0020\u006e\u006f\u0074\u0020\u0061\u006e \u0061\u0072\u0072\u0061\u0079\u0020\u0028\u0025\u0054\u0029",_abcga );};var _added []*PdfField ;for _ ,_aada :=range _ecba .Elements (){_gcbggg ,_afcg :=_aef .GetIndirect (_aada );if !_afcg {if _ ,_edba :=_aada .(*_aef .PdfObjectNull );_edba {_abe .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 ;};_abe .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",_aada );return nil ,_b .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");};_aegbc ,_ebbe :=_eefaa .newPdfFieldFromIndirectObject (_gcbggg ,nil );if _ebbe !=nil {return nil ,_ebbe ;};_abe .Log .Trace ("\u0041\u0063\u0072\u006fFo\u0072\u006d\u0020\u0046\u0069\u0065\u006c\u0064\u003a\u0020\u0025\u002b\u0076",*_aegbc );_added =append (_added ,_aegbc );};_abcca .Fields =&_added ;};if _fdffg :=_gbbb .Get ("\u004ee\u0065d\u0041\u0070\u0070\u0065\u0061\u0072\u0061\u006e\u0063\u0065\u0073");_fdffg !=nil {_eebg ,_dgcf :=_aef .GetBool (_fdffg );if _dgcf {_abcca .NeedAppearances =_eebg ;}else {_abe .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",_fdffg );};};if _dcbgf :=_gbbb .Get ("\u0053\u0069\u0067\u0046\u006c\u0061\u0067\u0073");_dcbgf !=nil {_beca ,_befcc :=_aef .GetInt (_dcbgf );if _befcc {_abcca .SigFlags =_beca ;}else {_abe .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",_dcbgf );};};if _dfdcg :=_gbbb .Get ("\u0043\u004f");_dfdcg !=nil {_dfffg ,_bdeed :=_aef .GetArray (_dfdcg );if _bdeed {_abcca .CO =_dfffg ;}else {_abe .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",_dfdcg );};};if _effb :=_gbbb .Get ("\u0044\u0052");_effb !=nil {if _aecc ,_eeaf :=_aef .GetDict (_effb );_eeaf {_abdb ,_aefcc :=NewPdfPageResourcesFromDict (_aecc );if _aefcc !=nil {_abe .Log .Error ("\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0044R\u003a\u0020\u0025\u0076",_aefcc );return nil ,_aefcc ;};_abcca .DR =_abdb ;}else {_abe .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",_effb );};};if _ffdab :=_gbbb .Get ("\u0044\u0041");_ffdab !=nil {_cafgag ,_acegeb :=_aef .GetString (_ffdab );if _acegeb {_abcca .DA =_cafgag ;}else {_abe .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",_ffdab );};};if _edaba :=_gbbb .Get ("\u0051");_edaba !=nil {_feed ,_dfgc :=_aef .GetInt (_edaba );if _dfgc {_abcca .Q =_feed ;}else {_abe .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a \u0051\u0020\u0069\u006e\u0076a\u006ci\u0064 \u0028\u0067\u006f\u0074\u0020\u0025\u0054)",_edaba );};};if _caage :=_gbbb .Get ("\u0058\u0046\u0041");_caage !=nil {_abcca .XFA =_caage ;};return _abcca ,nil ;};func _geage (_dfacc *_aef .PdfObjectDictionary )(*PdfShadingType1 ,error ){_dfed :=PdfShadingType1 {};if _debed :=_dfacc .Get ("\u0044\u006f\u006d\u0061\u0069\u006e");_debed !=nil {_debed =_aef .TraceToDirectObject (_debed );_ecfgb ,_aecdb :=_debed .(*_aef .PdfObjectArray );if !_aecdb {_abe .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",_debed );return nil ,_fa .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_dfed .Domain =_ecfgb ;};if _fdgeb :=_dfacc .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");_fdgeb !=nil {_fdgeb =_aef .TraceToDirectObject (_fdgeb );_agdec ,_cgge :=_fdgeb .(*_aef .PdfObjectArray );if !_cgge {_abe .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",_fdgeb );return nil ,_fa .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_dfed .Matrix =_agdec ;};_cdgaa :=_dfacc .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");if _cdgaa ==nil {_abe .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 ;};_dfed .Function =[]PdfFunction {};if _cfeae ,_beaae :=_cdgaa .(*_aef .PdfObjectArray );_beaae {for _ ,_aaedd :=range _cfeae .Elements (){_beggd ,_accf :=_begb (_aaedd );if _accf !=nil {_abe .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",_accf );return nil ,_accf ;};_dfed .Function =append (_dfed .Function ,_beggd );};}else {_abedc ,_deege :=_begb (_cdgaa );if _deege !=nil {_abe .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",_deege );return nil ,_deege ;};_dfed .Function =append (_dfed .Function ,_abedc );};return &_dfed ,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 _aef .StreamEncoder ;Intent _aef .PdfObject ;ImageMask _aef .PdfObject ;Mask _aef .PdfObject ;Matte _aef .PdfObject ;Decode _aef .PdfObject ;Interpolate _aef .PdfObject ;Alternatives _aef .PdfObject ;SMask _aef .PdfObject ;SMaskInData _aef .PdfObject ;Name _aef .PdfObject ;StructParent _aef .PdfObject ;ID _aef .PdfObject ;OPI _aef .PdfObject ;Metadata _aef .PdfObject ;OC _aef .PdfObject ;Stream []byte ;_dcafe *_aef .PdfObjectStream ;};
// ToPdfObject returns a stream object.
func (_dceca *XObjectImage )ToPdfObject ()_aef .PdfObject {_dabeg :=_dceca ._dcafe ;_gadce :=_dabeg .PdfObjectDictionary ;if _dceca .Filter !=nil {_gadce =_dceca .Filter .MakeStreamDict ();_dabeg .PdfObjectDictionary =_gadce ;};_gadce .Set ("\u0054\u0079\u0070\u0065",_aef .MakeName ("\u0058O\u0062\u006a\u0065\u0063\u0074"));_gadce .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_aef .MakeName ("\u0049\u006d\u0061g\u0065"));_gadce .Set ("\u0057\u0069\u0064t\u0068",_aef .MakeInteger (*(_dceca .Width )));_gadce .Set ("\u0048\u0065\u0069\u0067\u0068\u0074",_aef .MakeInteger (*(_dceca .Height )));if _dceca .BitsPerComponent !=nil {_gadce .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_aef .MakeInteger (*(_dceca .BitsPerComponent )));};if _dceca .ColorSpace !=nil {_gadce .SetIfNotNil ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065",_dceca .ColorSpace .ToPdfObject ());};_gadce .SetIfNotNil ("\u0049\u006e\u0074\u0065\u006e\u0074",_dceca .Intent );_gadce .SetIfNotNil ("\u0049m\u0061\u0067\u0065\u004d\u0061\u0073k",_dceca .ImageMask );_gadce .SetIfNotNil ("\u004d\u0061\u0073\u006b",_dceca .Mask );_gadce .SetIfNotNil ("\u0044\u0065\u0063\u006f\u0064\u0065",_dceca .Decode );_gadce .SetIfNotNil ("I\u006e\u0074\u0065\u0072\u0070\u006f\u006c\u0061\u0074\u0065",_dceca .Interpolate );_gadce .SetIfNotNil ("\u0041\u006c\u0074e\u0072\u006e\u0061\u0074\u0069\u0076\u0065\u0073",_dceca .Alternatives );_gadce .SetIfNotNil ("\u0053\u004d\u0061s\u006b",_dceca .SMask );_gadce .SetIfNotNil ("S\u004d\u0061\u0073\u006b\u0049\u006e\u0044\u0061\u0074\u0061",_dceca .SMaskInData );_gadce .SetIfNotNil ("\u004d\u0061\u0074t\u0065",_dceca .Matte );_gadce .SetIfNotNil ("\u004e\u0061\u006d\u0065",_dceca .Name );_gadce .SetIfNotNil ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074",_dceca .StructParent );_gadce .SetIfNotNil ("\u0049\u0044",_dceca .ID );_gadce .SetIfNotNil ("\u004f\u0050\u0049",_dceca .OPI );_gadce .SetIfNotNil ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061",_dceca .Metadata );_gadce .SetIfNotNil ("\u004f\u0043",_dceca .OC );_gadce .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_aef .MakeInteger (int64 (len (_dceca .Stream ))));_dabeg .Stream =_dceca .Stream ;return _dabeg ;};
// NewPdfAnnotationSquiggly returns a new text squiggly annotation.
func NewPdfAnnotationSquiggly ()*PdfAnnotationSquiggly {_bece :=NewPdfAnnotation ();_gce :=&PdfAnnotationSquiggly {};_gce .PdfAnnotation =_bece ;_gce .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_bece .SetContext (_gce );return _gce ;};
// AllFields returns a flattened list of all fields in the form.
func (_fcaf *PdfAcroForm )AllFields ()[]*PdfField {if _fcaf ==nil {return nil ;};var _cecbd []*PdfField ;if _fcaf .Fields !=nil {for _ ,_efce :=range *_fcaf .Fields {_cecbd =append (_cecbd ,_dbgaf (_efce )...);};};return _cecbd ;};
// GetPageDict converts the Page to a PDF object dictionary.
func (_becff *PdfPage )GetPageDict ()*_aef .PdfObjectDictionary {_gaccd :=_becff ._cbefa ;_gaccd .Clear ();_gaccd .Set ("\u0054\u0079\u0070\u0065",_aef .MakeName ("\u0050\u0061\u0067\u0065"));_gaccd .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_becff .Parent );if _becff .LastModified !=nil {_gaccd .Set ("\u004c\u0061\u0073t\u004d\u006f\u0064\u0069\u0066\u0069\u0065\u0064",_becff .LastModified .ToPdfObject ());};if _becff .Resources !=nil {_gaccd .Set ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s",_becff .Resources .ToPdfObject ());};if _becff .CropBox !=nil {_gaccd .Set ("\u0043r\u006f\u0070\u0042\u006f\u0078",_becff .CropBox .ToPdfObject ());};if _becff .MediaBox !=nil {_gaccd .Set ("\u004d\u0065\u0064\u0069\u0061\u0042\u006f\u0078",_becff .MediaBox .ToPdfObject ());};if _becff .BleedBox !=nil {_gaccd .Set ("\u0042\u006c\u0065\u0065\u0064\u0042\u006f\u0078",_becff .BleedBox .ToPdfObject ());};if _becff .TrimBox !=nil {_gaccd .Set ("\u0054r\u0069\u006d\u0042\u006f\u0078",_becff .TrimBox .ToPdfObject ());};if _becff .ArtBox !=nil {_gaccd .Set ("\u0041\u0072\u0074\u0042\u006f\u0078",_becff .ArtBox .ToPdfObject ());};_gaccd .SetIfNotNil ("\u0042\u006f\u0078C\u006f\u006c\u006f\u0072\u0049\u006e\u0066\u006f",_becff .BoxColorInfo );_gaccd .SetIfNotNil ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073",_becff .Contents );if _becff .Rotate !=nil {_gaccd .Set ("\u0052\u006f\u0074\u0061\u0074\u0065",_aef .MakeInteger (*_becff .Rotate ));};_gaccd .SetIfNotNil ("\u0047\u0072\u006fu\u0070",_becff .Group );_gaccd .SetIfNotNil ("\u0054\u0068\u0075m\u0062",_becff .Thumb );_gaccd .SetIfNotNil ("\u0042",_becff .B );_gaccd .SetIfNotNil ("\u0044\u0075\u0072",_becff .Dur );_gaccd .SetIfNotNil ("\u0054\u0072\u0061n\u0073",_becff .Trans );_gaccd .SetIfNotNil ("\u0041\u0041",_becff .AA );_gaccd .SetIfNotNil ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061",_becff .Metadata );_gaccd .SetIfNotNil ("\u0050i\u0065\u0063\u0065\u0049\u006e\u0066o",_becff .PieceInfo );_gaccd .SetIfNotNil ("\u0053\u0074\u0072\u0075\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074\u0073",_becff .StructParents );_gaccd .SetIfNotNil ("\u0049\u0044",_becff .ID );_gaccd .SetIfNotNil ("\u0050\u005a",_becff .PZ );_gaccd .SetIfNotNil ("\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006fn\u0049\u006e\u0066\u006f",_becff .SeparationInfo );_gaccd .SetIfNotNil ("\u0054\u0061\u0062\u0073",_becff .Tabs );_gaccd .SetIfNotNil ("T\u0065m\u0070\u006c\u0061\u0074\u0065\u0049\u006e\u0073t\u0061\u006e\u0074\u0069at\u0065\u0064",_becff .TemplateInstantiated );_gaccd .SetIfNotNil ("\u0050r\u0065\u0073\u0053\u0074\u0065\u0070s",_becff .PresSteps );_gaccd .SetIfNotNil ("\u0055\u0073\u0065\u0072\u0055\u006e\u0069\u0074",_becff .UserUnit );_gaccd .SetIfNotNil ("\u0056\u0050",_becff .VP );if _becff ._bcgfd !=nil {_dddge :=_aef .MakeArray ();for _ ,_feafe :=range _becff ._bcgfd {if _gbac :=_feafe .GetContext ();_gbac !=nil {_dddge .Append (_gbac .ToPdfObject ());}else {_dddge .Append (_feafe .ToPdfObject ());};};if _dddge .Len ()> 0{_gaccd .Set ("\u0041\u006e\u006e\u006f\u0074\u0073",_dddge );};}else if _becff .Annots !=nil {_gaccd .SetIfNotNil ("\u0041\u006e\u006e\u006f\u0074\u0073",_becff .Annots );};return _gaccd ;};
// NewPdfPageResources returns a new PdfPageResources object.
func NewPdfPageResources ()*PdfPageResources {_bffbf :=&PdfPageResources {};_bffbf ._eede =_aef .MakeDict ();return _bffbf ;};
// SetPageLabels sets the PageLabels entry in the PDF catalog.
// See section 12.4.2 "Page Labels" (p. 382 PDF32000_2008).
func (_gfegc *PdfWriter )SetPageLabels (pageLabels _aef .PdfObject )error {if pageLabels ==nil {return nil ;};_abe .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");_gfegc ._abebc .Set ("\u0050\u0061\u0067\u0065\u004c\u0061\u0062\u0065\u006c\u0073",pageLabels );return _gfegc .addObjects (pageLabels );};
// PdfColorPattern represents a pattern color.
type PdfColorPattern struct{Color PdfColor ;PatternName _aef .PdfObjectName ;};
// ToPdfObject implements interface PdfModel.
func (_effe *PdfAnnotationPopup )ToPdfObject ()_aef .PdfObject {_effe .PdfAnnotation .ToPdfObject ();_gef :=_effe ._edc ;_ggaa :=_gef .PdfObject .(*_aef .PdfObjectDictionary );_ggaa .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_aef .MakeName ("\u0050\u006f\u0070u\u0070"));_ggaa .SetIfNotNil ("\u0050\u0061\u0072\u0065\u006e\u0074",_effe .Parent );_ggaa .SetIfNotNil ("\u004f\u0070\u0065\u006e",_effe .Open );return _gef ;};
// ColorFromPdfObjects gets the color from a series of pdf objects (4 for cmyk).
func (_fbfc *PdfColorspaceDeviceCMYK )ColorFromPdfObjects (objects []_aef .PdfObject )(PdfColor ,error ){if len (objects )!=4{return nil ,_fa .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_dcbdg ,_dcf :=_aef .GetNumbersAsFloat (objects );if _dcf !=nil {return nil ,_dcf ;};return _fbfc .ColorFromFloats (_dcbdg );};func _cbdfa (_gaagag _aef .PdfObject )(*PdfShading ,error ){_aebdd :=&PdfShading {};var _caagb *_aef .PdfObjectDictionary ;if _geaac ,_ddadgc :=_aef .GetIndirect (_gaagag );_ddadgc {_aebdd ._bbga =_geaac ;_eggbc ,_ccfgd :=_geaac .PdfObject .(*_aef .PdfObjectDictionary );if !_ccfgd {_abe .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 ,_aef .ErrTypeError ;};_caagb =_eggbc ;}else if _eaecc ,_affaf :=_aef .GetStream (_gaagag );_affaf {_aebdd ._bbga =_eaecc ;_caagb =_eaecc .PdfObjectDictionary ;}else if _cebcb ,_daac :=_aef .GetDict (_gaagag );_daac {_aebdd ._bbga =_cebcb ;_caagb =_cebcb ;}else {_abe .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",_gaagag );return nil ,_aef .ErrTypeError ;};if _caagb ==nil {_abe .Log .Debug ("\u0044i\u0063t\u0069\u006f\u006e\u0061\u0072y\u0020\u006di\u0073\u0073\u0069\u006e\u0067");return nil ,_fa .New ("\u0064\u0069\u0063t\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};_gaagag =_caagb .Get ("S\u0068\u0061\u0064\u0069\u006e\u0067\u0054\u0079\u0070\u0065");if _gaagag ==nil {_abe .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 ;};_gaagag =_aef .TraceToDirectObject (_gaagag );_efadf ,_gddgd :=_gaagag .(*_aef .PdfObjectInteger );if !_gddgd {_abe .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",_gaagag );return nil ,_aef .ErrTypeError ;};if *_efadf < 1||*_efadf > 7{_abe .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",*_efadf );return nil ,_aef .ErrTypeError ;};_aebdd .ShadingType =_efadf ;_gaagag =_caagb .Get ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065");if _gaagag ==nil {_abe .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 ;};_dabee ,_gdcb :=NewPdfColorspaceFromPdfObject (_gaagag );if _gdcb !=nil {_abe .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",_gdcb );return nil ,_gdcb ;};_aebdd .ColorSpace =_dabee ;_gaagag =_caagb .Get ("\u0042\u0061\u0063\u006b\u0067\u0072\u006f\u0075\u006e\u0064");if _gaagag !=nil {_gaagag =_aef .TraceToDirectObject (_gaagag );_dgeae ,_efdea :=_gaagag .(*_aef .PdfObjectArray );if !_efdea {_abe .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)",_gaagag );return nil ,_aef .ErrTypeError ;};_aebdd .Background =_dgeae ;};_gaagag =_caagb .Get ("\u0042\u0042\u006f\u0078");if _gaagag !=nil {_gaagag =_aef .TraceToDirectObject (_gaagag );_aagfe ,_ffdc :=_gaagag .(*_aef .PdfObjectArray );if !_ffdc {_abe .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)",_gaagag );return nil ,_aef .ErrTypeError ;};_gabe ,_aacb :=NewPdfRectangle (*_aagfe );if _aacb !=nil {_abe .Log .Debug ("\u0042\u0042\u006f\u0078\u0020\u0065\u0072\u0072\u006fr\u003a\u0020\u0025\u0076",_aacb );return nil ,_aacb ;};_aebdd .BBox =_gabe ;};_gaagag =_caagb .Get ("\u0041n\u0074\u0069\u0041\u006c\u0069\u0061s");if _gaagag !=nil {_gaagag =_aef .TraceToDirectObject (_gaagag );_bdbgc ,_ffdg :=_gaagag .(*_aef .PdfObjectBool );if !_ffdg {_abe .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",_gaagag );return nil ,_aef .ErrTypeError ;};_aebdd .AntiAlias =_bdbgc ;};switch *_efadf {case 1:_fcaege ,_cafab :=_geage (_caagb );if _cafab !=nil {return nil ,_cafab ;};_fcaege .PdfShading =_aebdd ;_aebdd ._egaca =_fcaege ;return _aebdd ,nil ;case 2:_abfgd ,_ffbcb :=_fcdg (_caagb );if _ffbcb !=nil {return nil ,_ffbcb ;};_abfgd .PdfShading =_aebdd ;_aebdd ._egaca =_abfgd ;return _aebdd ,nil ;case 3:_feffb ,_fcfcb :=_gfebg (_caagb );if _fcfcb !=nil {return nil ,_fcfcb ;};_feffb .PdfShading =_aebdd ;_aebdd ._egaca =_feffb ;return _aebdd ,nil ;case 4:_aefea ,_acgde :=_bdec (_caagb );if _acgde !=nil {return nil ,_acgde ;};_aefea .PdfShading =_aebdd ;_aebdd ._egaca =_aefea ;return _aebdd ,nil ;case 5:_cdgae ,_caeae :=_feefg (_caagb );if _caeae !=nil {return nil ,_caeae ;};_cdgae .PdfShading =_aebdd ;_aebdd ._egaca =_cdgae ;return _aebdd ,nil ;case 6:_egbb ,_cccb :=_cbgcd (_caagb );if _cccb !=nil {return nil ,_cccb ;};_egbb .PdfShading =_aebdd ;_aebdd ._egaca =_egbb ;return _aebdd ,nil ;case 7:_febgb ,_bdgb :=_aegc (_caagb );if _bdgb !=nil {return nil ,_bdgb ;};_febgb .PdfShading =_aebdd ;_aebdd ._egaca =_febgb ;return _aebdd ,nil ;};return nil ,_fa .New ("u\u006ek\u006e\u006f\u0077\u006e\u0020\u0073\u0068\u0061d\u0069\u006e\u0067\u0020ty\u0070\u0065");};
// 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 (_gbba *LTV )EnableChain (chain []*_c .Certificate )error {return _gbba .enable (nil ,chain ,"")};
// ColorFromPdfObjects returns a new PdfColor based on the input slice of color
// component PDF objects.
func (_ecgd *PdfColorspaceICCBased )ColorFromPdfObjects (objects []_aef .PdfObject )(PdfColor ,error ){if _ecgd .Alternate ==nil {if _ecgd .N ==1{_efcg :=NewPdfColorspaceDeviceGray ();return _efcg .ColorFromPdfObjects (objects );}else if _ecgd .N ==3{_bffd :=NewPdfColorspaceDeviceRGB ();return _bffd .ColorFromPdfObjects (objects );}else if _ecgd .N ==4{_eebe :=NewPdfColorspaceDeviceCMYK ();return _eebe .ColorFromPdfObjects (objects );}else {return nil ,_fa .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 _ecgd .Alternate .ColorFromPdfObjects (objects );};func (_eedf *PdfReader )loadStructure ()error {if _eedf ._gdbbd .GetCrypter ()!=nil &&!_eedf ._gdbbd .IsAuthenticated (){return _b .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");};_cegg :=_eedf ._gdbbd .GetTrailer ();if _cegg ==nil {return _b .Errorf ("\u006di\u0073s\u0069\u006e\u0067\u0020\u0074\u0072\u0061\u0069\u006c\u0065\u0072");};_fcdee ,_dabgb :=_cegg .Get ("\u0052\u006f\u006f\u0074").(*_aef .PdfObjectReference );if !_dabgb {return _b .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",_cegg );};_afefe ,_cceca :=_eedf ._gdbbd .LookupByReference (*_fcdee );if _cceca !=nil {_abe .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",_cceca );return _cceca ;};_efaggb ,_dabgb :=_afefe .(*_aef .PdfIndirectObject );if !_dabgb {_abe .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",_afefe ,*_cegg );return _fa .New ("\u006di\u0073s\u0069\u006e\u0067\u0020\u0063\u0061\u0074\u0061\u006c\u006f\u0067");};_edbf ,_dabgb :=(*_efaggb ).PdfObject .(*_aef .PdfObjectDictionary );if !_dabgb {_abe .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",_efaggb .PdfObject );return _fa .New ("\u0069n\u0076a\u006c\u0069\u0064\u0020\u0063\u0061\u0074\u0061\u006c\u006f\u0067");};_abe .Log .Trace ("C\u0061\u0074\u0061\u006c\u006f\u0067\u003a\u0020\u0025\u0073",_edbf );_fbac ,_dabgb :=_edbf .Get ("\u0050\u0061\u0067e\u0073").(*_aef .PdfObjectReference );if !_dabgb {return _fa .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");};_dgca ,_cceca :=_eedf ._gdbbd .LookupByReference (*_fbac );if _cceca !=nil {_abe .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 _cceca ;};_beede ,_dabgb :=_dgca .(*_aef .PdfIndirectObject );if !_dabgb {_abe .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");_abe .Log .Debug ("\u006f\u0070\u003a\u0020\u0025\u0070",_beede );return _fa .New ("p\u0061g\u0065\u0073\u0020\u006f\u0062\u006a\u0065\u0063t\u0020\u0069\u006e\u0076al\u0069\u0064");};_efda ,_dabgb :=_beede .PdfObject .(*_aef .PdfObjectDictionary );if !_dabgb {_abe .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",_beede );return _fa .New ("p\u0061g\u0065\u0073\u0020\u006f\u0062\u006a\u0065\u0063t\u0020\u0069\u006e\u0076al\u0069\u0064");};_fbccd ,_dabgb :=_aef .GetInt (_efda .Get ("\u0043\u006f\u0075n\u0074"));if !_dabgb {_abe .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 _fa .New ("\u0070\u0061\u0067\u0065s \u0063\u006f\u0075\u006e\u0074\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064");};if _ ,_dabgb =_aef .GetName (_efda .Get ("\u0054\u0079\u0070\u0065"));!_dabgb {_abe .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");_efda .Set ("\u0054\u0079\u0070\u0065",_aef .MakeName ("\u0050\u0061\u0067e\u0073"));};_eedf ._eebff =_fcdee ;_eedf ._acae =_edbf ;_eedf ._fgbfc =_efda ;_eedf ._cbfdd =_beede ;_eedf ._bbccc =int (*_fbccd );_eedf ._dbdgb =[]*_aef .PdfIndirectObject {};_ffeeb :=map[_aef .PdfObject ]struct{}{};_cceca =_eedf .buildPageList (_beede ,nil ,_ffeeb );if _cceca !=nil {return _cceca ;};_abe .Log .Trace ("\u002d\u002d\u002d");_abe .Log .Trace ("\u0054\u004f\u0043");_abe .Log .Trace ("\u0050\u0061\u0067e\u0073");_abe .Log .Trace ("\u0025\u0064\u003a\u0020\u0025\u0073",len (_eedf ._dbdgb ),_eedf ._dbdgb );_eedf ._gaad ,_cceca =_eedf .loadOutlines ();if _cceca !=nil {_abe .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",_cceca );return _cceca ;};_eedf .AcroForm ,_cceca =_eedf .loadForms ();if _cceca !=nil {return _cceca ;};_eedf .DSS ,_cceca =_eedf .loadDSS ();if _cceca !=nil {return _cceca ;};return nil ;};var _ pdfFont =(*pdfCIDFontType2 )(nil );func _fgga (_cfadf ,_ebcg string )string {if _dg .Contains (_cfadf ,"\u002b"){_ggagd :=_dg .Split (_cfadf ,"\u002b");if len (_ggagd )==2{_cfadf =_ggagd [1];};};return _ebcg +"\u002b"+_cfadf ;};func (_afag *PdfReader )newPdfActionGotoEFromDict (_ffe *_aef .PdfObjectDictionary )(*PdfActionGoToE ,error ){_cfb ,_gab :=_bfc (_ffe .Get ("\u0046"));if _gab !=nil {return nil ,_gab ;};return &PdfActionGoToE {D :_ffe .Get ("\u0044"),NewWindow :_ffe .Get ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw"),T :_ffe .Get ("\u0054"),F :_cfb },nil ;};
// SetFlag sets the flag for the field.
func (_gagafe *PdfField )SetFlag (flag FieldFlag ){_gagafe .Ff =_aef .MakeInteger (int64 (flag ))};func _fbcg (_fbfcbe []byte )(_bcfcc ,_feaga string ,_cggf error ){_abe .Log .Trace ("g\u0065\u0074\u0041\u0053CI\u0049S\u0065\u0063\u0074\u0069\u006fn\u0073\u003a\u0020\u0025\u0064\u0020",len (_fbfcbe ));_dgec :=_dcfbb .FindIndex (_fbfcbe );if _dgec ==nil {_abe .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 "","",_aef .ErrTypeError ;};_gdgca :=_dgec [1];_dface :=_dg .Index (string (_fbfcbe [_gdgca :]),_gdee );if _dface < 0{_bcfcc =string (_fbfcbe [_gdgca :]);return _bcfcc ,"",nil ;};_faacf :=_gdgca +_dface ;_bcfcc =string (_fbfcbe [_gdgca :_faacf ]);_ccde :=_faacf ;_dface =_dg .Index (string (_fbfcbe [_ccde :]),_affbc );if _dface < 0{_abe .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",_cggf );return "","",_aef .ErrTypeError ;};_gabg :=_ccde +_dface ;_feaga =string (_fbfcbe [_ccde :_gabg ]);return _bcfcc ,_feaga ,nil ;};func _fdef (_bggf *PdfAnnotation )(*XObjectForm ,*PdfRectangle ,error ){_eebbb ,_agab :=_aef .GetDict (_bggf .AP );if !_agab {return nil ,nil ,_fa .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 _eebbb ==nil {return nil ,nil ,nil ;};_fbfcb ,_agab :=_aef .GetArray (_bggf .Rect );if !_agab ||_fbfcb .Len ()!=4{return nil ,nil ,_fa .New ("\u0072\u0065\u0063t\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064");};_bggb ,_babcg :=NewPdfRectangle (*_fbfcb );if _babcg !=nil {return nil ,nil ,_babcg ;};_adaba :=_aef .TraceToDirectObject (_eebbb .Get ("\u004e"));switch _ecde :=_adaba .(type ){case *_aef .PdfObjectStream :_acdgf :=_ecde ;_agfg ,_aefda :=NewXObjectFormFromStream (_acdgf );return _agfg ,_bggb ,_aefda ;case *_aef .PdfObjectDictionary :_cfgf :=_ecde ;_eedg ,_bedbgb :=_aef .GetName (_bggf .AS );if !_bedbgb {return nil ,nil ,nil ;};if _cfgf .Get (*_eedg )==nil {_abe .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 ;};_gcda ,_bedbgb :=_aef .GetStream (_cfgf .Get (*_eedg ));if !_bedbgb {_abe .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",_eedg );return nil ,nil ,_fa .New ("\u0073\u0074\u0072\u0065\u0061\u006d\u0020\u006d\u0069s\u0073\u0069\u006e\u0067");};_abgef ,_egab :=NewXObjectFormFromStream (_gcda );return _abgef ,_bggb ,_egab ;};_abe .Log .Debug ("\u0049\u006e\u0076\u0061li\u0064\u0020\u0074\u0079\u0070\u0065\u0020\u0066\u006f\u0072\u0020\u004e\u003a\u0020%\u0054",_adaba );return nil ,nil ,_fa .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};
// PdfShadingType6 is a Coons patch mesh.
type PdfShadingType6 struct{*PdfShading ;BitsPerCoordinate *_aef .PdfObjectInteger ;BitsPerComponent *_aef .PdfObjectInteger ;BitsPerFlag *_aef .PdfObjectInteger ;Decode *_aef .PdfObjectArray ;Function []PdfFunction ;};func (_gcdab *PdfReader )loadOutlines ()(*PdfOutlineTreeNode ,error ){if _gcdab ._gdbbd .GetCrypter ()!=nil &&!_gcdab ._gdbbd .IsAuthenticated (){return nil ,_b .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");};_ebfbb :=_gcdab ._acae ;_cgac :=_ebfbb .Get ("\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0073");if _cgac ==nil {return nil ,nil ;};_abe .Log .Trace ("\u002d\u0048\u0061\u0073\u0020\u006f\u0075\u0074\u006c\u0069\u006e\u0065\u0073");_gaecd :=_aef .ResolveReference (_cgac );_abe .Log .Trace ("\u004f\u0075t\u006c\u0069\u006ee\u0020\u0072\u006f\u006f\u0074\u003a\u0020\u0025\u0076",_gaecd );if _abcgc :=_aef .IsNullObject (_gaecd );_abcgc {_abe .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 ;};_cfdef ,_aadg :=_gaecd .(*_aef .PdfIndirectObject );if !_aadg {if _ ,_babec :=_aef .GetDict (_gaecd );!_babec {_abe .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 ;};_abe .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");_cfdef =_aef .MakeIndirectObject (_gaecd );};_afcag ,_aadg :=_cfdef .PdfObject .(*_aef .PdfObjectDictionary );if !_aadg {return nil ,_fa .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");};_abe .Log .Trace ("O\u0075\u0074\u006c\u0069ne\u0020r\u006f\u006f\u0074\u0020\u0064i\u0063\u0074\u003a\u0020\u0025\u0076",_afcag );_gcdba ,_ ,_acbaa :=_gcdab .buildOutlineTree (_cfdef ,nil ,nil ,nil );if _acbaa !=nil {return nil ,_acbaa ;};_abe .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",_gcdba );return _gcdba ,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 _a .Time ;};
// GetTrailer returns the PDF's trailer dictionary.
func (_bfbb *PdfReader )GetTrailer ()(*_aef .PdfObjectDictionary ,error ){_abedg :=_bfbb ._gdbbd .GetTrailer ();if _abedg ==nil {return nil ,_fa .New ("\u0074r\u0061i\u006c\u0065\u0072\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};return _abedg ,nil ;};
// ButtonType represents the subtype of a button field, can be one of:
// - Checkbox (ButtonTypeCheckbox)
// - PushButton (ButtonTypePushButton)
// - RadioButton (ButtonTypeRadioButton)
type ButtonType int ;func _dggdf ()_a .Time {_abdcd .Lock ();defer _abdcd .Unlock ();return _ecgff };
// NewPdfActionRendition returns a new "rendition" action.
func NewPdfActionRendition ()*PdfActionRendition {_bcd :=NewPdfAction ();_fg :=&PdfActionRendition {};_fg .PdfAction =_bcd ;_bcd .SetContext (_fg );return _fg ;};
// HasExtGState checks whether a font is defined by the specified keyName.
func (_adeac *PdfPageResources )HasExtGState (keyName _aef .PdfObjectName )bool {_ ,_gcbf :=_adeac .GetFontByName (keyName );return _gcbf ;};
// ToPdfObject returns the PDF representation of the shading dictionary.
func (_eeba *PdfShading )ToPdfObject ()_aef .PdfObject {_gecc :=_eeba ._bbga ;_efgab ,_abebb :=_eeba .getShadingDict ();if _abebb !=nil {_abe .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 _eeba .ShadingType !=nil {_efgab .Set ("S\u0068\u0061\u0064\u0069\u006e\u0067\u0054\u0079\u0070\u0065",_eeba .ShadingType );};if _eeba .ColorSpace !=nil {_efgab .Set ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065",_eeba .ColorSpace .ToPdfObject ());};if _eeba .Background !=nil {_efgab .Set ("\u0042\u0061\u0063\u006b\u0067\u0072\u006f\u0075\u006e\u0064",_eeba .Background );};if _eeba .BBox !=nil {_efgab .Set ("\u0042\u0042\u006f\u0078",_eeba .BBox .ToPdfObject ());};if _eeba .AntiAlias !=nil {_efgab .Set ("\u0041n\u0074\u0069\u0041\u006c\u0069\u0061s",_eeba .AntiAlias );};return _gecc ;};
// SetContext sets the specific fielddata type, e.g. would be PdfFieldButton for a button field.
func (_cbfa *PdfField )SetContext (ctx PdfModel ){_cbfa ._aafba =ctx };
// 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 *_aef .PdfObjectArray ;AlternateSpace PdfColorspace ;TintTransform PdfFunction ;Attributes *PdfColorspaceDeviceNAttributes ;_ggbg *_aef .PdfIndirectObject ;};func _caaf (_gceef string )map[string ]string {_cegda :=_afaa .Split (_gceef ,-1);_aaba :=map[string ]string {};for _ ,_bbfc :=range _cegda {_abdca :=_afgca .FindStringSubmatch (_bbfc );if _abdca ==nil {continue ;};_eaab ,_dfccb :=_abdca [1],_abdca [2];_aaba [_eaab ]=_dfccb ;};return _aaba ;};
// ColorFromPdfObjects returns a new PdfColor based on the input slice of color
// components. The slice should contain a single PdfObjectFloat element.
func (_dgged *PdfColorspaceSpecialSeparation )ColorFromPdfObjects (objects []_aef .PdfObject )(PdfColor ,error ){if len (objects )!=1{return nil ,_fa .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_ffae ,_eeefd :=_aef .GetNumbersAsFloat (objects );if _eeefd !=nil {return nil ,_eeefd ;};return _dgged .ColorFromFloats (_ffae );};
// NewPdfActionJavaScript returns a new "javaScript" action.
func NewPdfActionJavaScript ()*PdfActionJavaScript {_ecg :=NewPdfAction ();_geb :=&PdfActionJavaScript {};_geb .PdfAction =_ecg ;_ecg .SetContext (_geb );return _geb ;};
// NewPdfActionSound returns a new "sound" action.
func NewPdfActionSound ()*PdfActionSound {_ef :=NewPdfAction ();_gd :=&PdfActionSound {};_gd .PdfAction =_ef ;_ef .SetContext (_gd );return _gd ;};
// GetOutlines returns a high-level Outline object, based on the outline tree
// of the reader.
func (_ggfgb *PdfReader )GetOutlines ()(*Outline ,error ){if _ggfgb ==nil {return nil ,_fa .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");};_egdff :=_ggfgb .GetOutlineTree ();if _egdff ==nil {return nil ,_fa .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 _fgdee func (_aefaf *PdfOutlineTreeNode ,_bcaddb *[]*OutlineItem );_fgdee =func (_bada *PdfOutlineTreeNode ,_aebge *[]*OutlineItem ){if _bada ==nil {return ;};if _bada ._gdgaba ==nil {_abe .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 _cabgf *OutlineItem ;if _bcbfd ,_afaca :=_bada ._gdgaba .(*PdfOutlineItem );_afaca {_bedga :=_bcbfd .Dest ;if (_bedga ==nil ||_aef .IsNullObject (_bedga ))&&_bcbfd .A !=nil {if _egefe ,_effbe :=_aef .GetDict (_bcbfd .A );_effbe {_bedga ,_ =_aef .GetArray (_egefe .Get ("\u0044"));};};var _edfba OutlineDest ;if _bedga !=nil &&!_aef .IsNullObject (_bedga ){if _aaddb ,_effbf :=_eaae (_bedga ,_ggfgb );_effbf ==nil {_edfba =*_aaddb ;}else {_abe .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",_bedga ,_effbf );};};_cabgf =NewOutlineItem (_bcbfd .Title .Decoded (),_edfba );*_aebge =append (*_aebge ,_cabgf );if _bcbfd .Next !=nil {_fgdee (_bcbfd .Next ,_aebge );};};if _bada .First !=nil {if _cabgf !=nil {_aebge =&_cabgf .Entries ;};_fgdee (_bada .First ,_aebge );};};_ecfcf :=NewOutline ();_fgdee (_egdff ,&_ecfcf .Entries );return _ecfcf ,nil ;};
// HasColorspaceByName checks if the colorspace with the specified name exists in the page resources.
func (_fegdf *PdfPageResources )HasColorspaceByName (keyName _aef .PdfObjectName )bool {_gfaaf ,_gcab :=_fegdf .GetColorspaces ();if _gcab !=nil {_abe .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",_gcab );return false ;};if _gfaaf ==nil {return false ;};_ ,_fdaba :=_gfaaf .Colorspaces [string (keyName )];return _fdaba ;};
// ToPdfObject implements interface PdfModel.
// Note: Call the sub-annotation's ToPdfObject to set both the generic and non-generic information.
func (_dacb *PdfAnnotation )ToPdfObject ()_aef .PdfObject {_fbf :=_dacb ._edc ;_afbbe :=_fbf .PdfObject .(*_aef .PdfObjectDictionary );_afbbe .Clear ();_afbbe .Set ("\u0054\u0079\u0070\u0065",_aef .MakeName ("\u0041\u006e\u006eo\u0074"));_afbbe .SetIfNotNil ("\u0052\u0065\u0063\u0074",_dacb .Rect );_afbbe .SetIfNotNil ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073",_dacb .Contents );_afbbe .SetIfNotNil ("\u0050",_dacb .P );_afbbe .SetIfNotNil ("\u004e\u004d",_dacb .NM );_afbbe .SetIfNotNil ("\u004d",_dacb .M );_afbbe .SetIfNotNil ("\u0046",_dacb .F );_afbbe .SetIfNotNil ("\u0041\u0050",_dacb .AP );_afbbe .SetIfNotNil ("\u0041\u0053",_dacb .AS );_afbbe .SetIfNotNil ("\u0042\u006f\u0072\u0064\u0065\u0072",_dacb .Border );_afbbe .SetIfNotNil ("\u0043",_dacb .C );_afbbe .SetIfNotNil ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074",_dacb .StructParent );_afbbe .SetIfNotNil ("\u004f\u0043",_dacb .OC );return _fbf ;};func _geefb (_ecega *XObjectImage )error {if _ecega .SMask ==nil {return nil ;};_babcd ,_gebcc :=_ecega .SMask .(*_aef .PdfObjectStream );if !_gebcc {_abe .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 _aef .ErrTypeError ;};_cbbab :=_babcd .PdfObjectDictionary ;_fecdc :=_cbbab .Get ("\u004d\u0061\u0074t\u0065");if _fecdc ==nil {return nil ;};_abaed ,_adeea :=_acaaae (_fecdc .(*_aef .PdfObjectArray ));if _adeea !=nil {return _adeea ;};_cefge :=_aef .MakeArrayFromFloats ([]float64 {_abaed });_cbbab .SetIfNotNil ("\u004d\u0061\u0074t\u0065",_cefge );return nil ;};func (_bcege *XObjectImage )getParamsDict ()*_aef .PdfObjectDictionary {_acec :=_aef .MakeDict ();_acec .Set ("\u0057\u0069\u0064t\u0068",_aef .MakeInteger (*_bcege .Width ));_acec .Set ("\u0048\u0065\u0069\u0067\u0068\u0074",_aef .MakeInteger (*_bcege .Height ));_acec .Set ("\u0043o\u006co\u0072\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074\u0073",_aef .MakeInteger (int64 (_bcege .ColorSpace .GetNumComponents ())));_acec .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_aef .MakeInteger (*_bcege .BitsPerComponent ));return _acec ;};
// NewPdfActionTrans returns a new "trans" action.
func NewPdfActionTrans ()*PdfActionTrans {_dec :=NewPdfAction ();_acb :=&PdfActionTrans {};_acb .PdfAction =_dec ;_dec .SetContext (_acb );return _acb ;};
// GetContentStream returns the pattern cell's content stream
func (_eddcg *PdfTilingPattern )GetContentStream ()([]byte ,error ){_fafg ,_ ,_ffga :=_eddcg .GetContentStreamWithEncoder ();return _fafg ,_ffga ;};
// EncryptOptions represents encryption options for an output PDF.
type EncryptOptions struct{Permissions _db .Permissions ;Algorithm EncryptionAlgorithm ;};
// ToPdfObject returns an indirect object containing the signature field dictionary.
func (_bfebg *PdfFieldSignature )ToPdfObject ()_aef .PdfObject {if _bfebg .PdfAnnotationWidget !=nil {_bfebg .PdfAnnotationWidget .ToPdfObject ();};_bfebg .PdfField .ToPdfObject ();_deddb :=_bfebg ._abebg ;_abcc :=_deddb .PdfObject .(*_aef .PdfObjectDictionary );_abcc .SetIfNotNil ("\u0046\u0054",_aef .MakeName ("\u0053\u0069\u0067"));_abcc .SetIfNotNil ("\u004c\u006f\u0063\u006b",_bfebg .Lock );_abcc .SetIfNotNil ("\u0053\u0056",_bfebg .SV );if _bfebg .V !=nil {_abcc .SetIfNotNil ("\u0056",_bfebg .V .ToPdfObject ());};return _deddb ;};func (_dgafb fontCommon )fontFlags ()int {if _dgafb ._bgfd ==nil {return 0;};return _dgafb ._bgfd ._eagd ;};
// PdfFunctionType4 is a Postscript calculator functions.
type PdfFunctionType4 struct{Domain []float64 ;Range []float64 ;Program *_ga .PSProgram ;_fgfac *_ga .PSExecutor ;_ccagg []byte ;_gegfd *_aef .PdfObjectStream ;};
// ToPdfObject recursively builds the Outline tree PDF object.
func (_gbead *PdfOutlineItem )ToPdfObject ()_aef .PdfObject {_dedfd :=_gbead ._gdgba ;_cbfb :=_dedfd .PdfObject .(*_aef .PdfObjectDictionary );_cbfb .Set ("\u0054\u0069\u0074l\u0065",_gbead .Title );if _gbead .A !=nil {_cbfb .Set ("\u0041",_gbead .A );};if _aefe :=_cbfb .Get ("\u0053\u0045");_aefe !=nil {_cbfb .Remove ("\u0053\u0045");};if _gbead .C !=nil {_cbfb .Set ("\u0043",_gbead .C );};if _gbead .Dest !=nil {_cbfb .Set ("\u0044\u0065\u0073\u0074",_gbead .Dest );};if _gbead .F !=nil {_cbfb .Set ("\u0046",_gbead .F );};if _gbead .Count !=nil {_cbfb .Set ("\u0043\u006f\u0075n\u0074",_aef .MakeInteger (*_gbead .Count ));};if _gbead .Next !=nil {_cbfb .Set ("\u004e\u0065\u0078\u0074",_gbead .Next .ToPdfObject ());};if _gbead .First !=nil {_cbfb .Set ("\u0046\u0069\u0072s\u0074",_gbead .First .ToPdfObject ());};if _gbead .Prev !=nil {_cbfb .Set ("\u0050\u0072\u0065\u0076",_gbead .Prev .GetContext ().GetContainingPdfObject ());};if _gbead .Last !=nil {_cbfb .Set ("\u004c\u0061\u0073\u0074",_gbead .Last .GetContext ().GetContainingPdfObject ());};if _gbead .Parent !=nil {_cbfb .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_gbead .Parent .GetContext ().GetContainingPdfObject ());};return _dedfd ;};
// GetRuneMetrics returns the character metrics for the specified rune.
// A bool flag is returned to indicate whether or not the entry was found.
func (_ffddf pdfCIDFontType2 )GetRuneMetrics (r rune )(_ecf .CharMetrics ,bool ){_debbc ,_ebcf :=_ffddf ._bffbc [r ];if !_ebcf {_eafg ,_afgaa :=_aef .GetInt (_ffddf .DW );if !_afgaa {return _ecf .CharMetrics {},false ;};_debbc =int (*_eafg );};return _ecf .CharMetrics {Wx :float64 (_debbc )},true ;};
// IsRadio returns true if the button field represents a radio button, false otherwise.
func (_cagff *PdfFieldButton )IsRadio ()bool {return _cagff .GetType ()==ButtonTypeRadio };
// DecodeArray returns the component range values for the Separation colorspace.
func (_fdab *PdfColorspaceSpecialSeparation )DecodeArray ()[]float64 {return []float64 {0,1.0}};func _bgcda ()_a .Time {_abdcd .Lock ();defer _abdcd .Unlock ();return _ddea };
// 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 *_aef .PdfObjectName ;Colorants _aef .PdfObject ;Process _aef .PdfObject ;MixingHints _aef .PdfObject ;_ecgdd *_aef .PdfIndirectObject ;};
// NewPdfColorspaceDeviceRGB returns a new RGB colorspace object.
func NewPdfColorspaceDeviceRGB ()*PdfColorspaceDeviceRGB {return &PdfColorspaceDeviceRGB {}};
// ToPdfObject returns the PDF representation of the shading dictionary.
func (_bfcbgf *PdfShadingType4 )ToPdfObject ()_aef .PdfObject {_bfcbgf .PdfShading .ToPdfObject ();_dacca ,_defgb :=_bfcbgf .getShadingDict ();if _defgb !=nil {_abe .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 _bfcbgf .BitsPerCoordinate !=nil {_dacca .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065",_bfcbgf .BitsPerCoordinate );};if _bfcbgf .BitsPerComponent !=nil {_dacca .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_bfcbgf .BitsPerComponent );};if _bfcbgf .BitsPerFlag !=nil {_dacca .Set ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067",_bfcbgf .BitsPerFlag );};if _bfcbgf .Decode !=nil {_dacca .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_bfcbgf .Decode );};if _bfcbgf .Function !=nil {if len (_bfcbgf .Function )==1{_dacca .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_bfcbgf .Function [0].ToPdfObject ());}else {_cgdae :=_aef .MakeArray ();for _ ,_fbcdd :=range _bfcbgf .Function {_cgdae .Append (_fbcdd .ToPdfObject ());};_dacca .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_cgdae );};};return _bfcbgf ._bbga ;};
// GetContainingPdfObject returns the container of the DSS (indirect object).
func (_gbfdc *DSS )GetContainingPdfObject ()_aef .PdfObject {return _gbfdc ._egdea };
// 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 ;_cfcff *_aef .PdfIndirectObject ;
// Type: Sig/DocTimeStamp
Type *_aef .PdfObjectName ;Filter *_aef .PdfObjectName ;SubFilter *_aef .PdfObjectName ;Contents *_aef .PdfObjectString ;Cert _aef .PdfObject ;ByteRange *_aef .PdfObjectArray ;Reference *_aef .PdfObjectArray ;Changes *_aef .PdfObjectArray ;Name *_aef .PdfObjectString ;M *_aef .PdfObjectString ;Location *_aef .PdfObjectString ;Reason *_aef .PdfObjectString ;ContactInfo *_aef .PdfObjectString ;R *_aef .PdfObjectInteger ;V *_aef .PdfObjectInteger ;PropBuild *_aef .PdfObjectDictionary ;PropAuthTime *_aef .PdfObjectInteger ;PropAuthType *_aef .PdfObjectName ;};
// ToInteger convert to an integer format.
func (_eegf *PdfColorDeviceGray )ToInteger (bits int )uint32 {_ddaa :=_ad .Pow (2,float64 (bits ))-1;return uint32 (_ddaa *_eegf .Val ());};func (_cbc *PdfReader )newPdfActionLaunchFromDict (_ccaf *_aef .PdfObjectDictionary )(*PdfActionLaunch ,error ){_deed ,_gcdb :=_bfc (_ccaf .Get ("\u0046"));if _gcdb !=nil {return nil ,_gcdb ;};return &PdfActionLaunch {Win :_ccaf .Get ("\u0057\u0069\u006e"),Mac :_ccaf .Get ("\u004d\u0061\u0063"),Unix :_ccaf .Get ("\u0055\u006e\u0069\u0078"),NewWindow :_ccaf .Get ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw"),F :_deed },nil ;};func (_bgc *PdfReader )newPdfActionSetOCGStateFromDict (_bec *_aef .PdfObjectDictionary )(*PdfActionSetOCGState ,error ){return &PdfActionSetOCGState {State :_bec .Get ("\u0053\u0074\u0061t\u0065"),PreserveRB :_bec .Get ("\u0050\u0072\u0065\u0073\u0065\u0072\u0076\u0065\u0052\u0042")},nil ;};
// GetContainingPdfObject implements interface PdfModel.
func (_deddc *PdfSignature )GetContainingPdfObject ()_aef .PdfObject {return _deddc ._cfcff };
// SetReason sets the `Reason` field of the signature.
func (_ecfbg *PdfSignature )SetReason (reason string ){_ecfbg .Reason =_aef .MakeString (reason )};
// 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 _aef .PdfObject )(_aef .PdfObjectName ,error ){var _fcad *_aef .PdfObjectName ;var _efea *_aef .PdfObjectArray ;if _cfcg ,_faff :=obj .(*_aef .PdfIndirectObject );_faff {if _dfcb ,_bgagd :=_cfcg .PdfObject .(*_aef .PdfObjectArray );_bgagd {_efea =_dfcb ;}else if _ffc ,_ebab :=_cfcg .PdfObject .(*_aef .PdfObjectName );_ebab {_fcad =_ffc ;};}else if _fabg ,_babba :=obj .(*_aef .PdfObjectArray );_babba {_efea =_fabg ;}else if _gdbb ,_dgcc :=obj .(*_aef .PdfObjectName );_dgcc {_fcad =_gdbb ;};if _fcad !=nil {switch *_fcad {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 *_fcad ,nil ;case "\u0050a\u0074\u0074\u0065\u0072\u006e":return *_fcad ,nil ;};};if _efea !=nil &&_efea .Len ()> 0{if _aead ,_acege :=_efea .Get (0).(*_aef .PdfObjectName );_acege {switch *_aead {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 _efea .Len ()==1{return *_aead ,nil ;};case "\u0043a\u006c\u0047\u0072\u0061\u0079","\u0043\u0061\u006c\u0052\u0047\u0042","\u004c\u0061\u0062":return *_aead ,nil ;case "\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064","\u0050a\u0074\u0074\u0065\u0072\u006e","\u0049n\u0064\u0065\u0078\u0065\u0064":return *_aead ,nil ;case "\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e","\u0044e\u0076\u0069\u0063\u0065\u004e":return *_aead ,nil ;};};};return "",nil ;};
// M returns the value of the magenta component of the color.
func (_baec *PdfColorDeviceCMYK )M ()float64 {return _baec [1]};
// NewPdfAcroForm returns a new PdfAcroForm with an intialized container (indirect object).
func NewPdfAcroForm ()*PdfAcroForm {return &PdfAcroForm {Fields :&[]*PdfField {},_aade :_aef .MakeIndirectObject (_aef .MakeDict ())};};func _ccdb (_eefbc *fontCommon )*pdfFontSimple {return &pdfFontSimple {fontCommon :*_eefbc }};
// WatermarkImageOptions contains options for configuring the watermark process.
type WatermarkImageOptions struct{Alpha float64 ;FitToWidth bool ;PreserveAspectRatio bool ;};
// 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{_egdea *_aef .PdfIndirectObject ;Certs []*_aef .PdfObjectStream ;OCSPs []*_aef .PdfObjectStream ;CRLs []*_aef .PdfObjectStream ;VRI map[string ]*VRI ;_ccagd map[string ]*_aef .PdfObjectStream ;_beef map[string ]*_aef .PdfObjectStream ;_gfbg map[string ]*_aef .PdfObjectStream ;};
// AddImageResource adds an image to the XObject resources.
func (_edgbf *PdfPage )AddImageResource (name _aef .PdfObjectName ,ximg *XObjectImage )error {var _ddbfc *_aef .PdfObjectDictionary ;if _edgbf .Resources .XObject ==nil {_ddbfc =_aef .MakeDict ();_edgbf .Resources .XObject =_ddbfc ;}else {var _gcagg bool ;_ddbfc ,_gcagg =(_edgbf .Resources .XObject ).(*_aef .PdfObjectDictionary );if !_gcagg {return _fa .New ("\u0069\u006e\u0076\u0061li\u0064\u0020\u0078\u0072\u0065\u0073\u0020\u0064\u0069\u0063\u0074\u0020\u0074\u0079p\u0065");};};_ddbfc .Set (name ,ximg .ToPdfObject ());return nil ;};
// UpdateObject marks `obj` as updated and to be included in the following revision.
func (_ggg *PdfAppender )UpdateObject (obj _aef .PdfObject ){_ggg .replaceObject (obj ,obj );if _ ,_gabac :=_ggg ._abge [obj ];!_gabac {_ggg ._aeaaa =append (_ggg ._aeaaa ,obj );_ggg ._abge [obj ]=struct{}{};};};
// NewPdfColorCalGray returns a new CalGray color.
func NewPdfColorCalGray (grayVal float64 )*PdfColorCalGray {_baeg :=PdfColorCalGray (grayVal );return &_baeg ;};
// BytesToCharcodes converts the bytes in a PDF string to character codes.
func (_bcab *PdfFont )BytesToCharcodes (data []byte )[]_be .CharCode {_abe .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 _adadfd ,_bbdb :=_bcab ._dccga .(*pdfFontType0 );_bbdb &&_adadfd ._dcdab !=nil {if _facd ,_afed :=_adadfd .bytesToCharcodes (data );_afed {return _facd ;};};_ddgdgd :=make ([]_be .CharCode ,0,len (data )+len (data )%2);if _bcab .baseFields ().isCIDFont (){if len (data )==1{data =[]byte {0,data [0]};};if len (data )%2!=0{_abe .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 _dgbcf :=0;_dgbcf < len (data );_dgbcf +=2{_bgcb :=uint16 (data [_dgbcf ])<<8|uint16 (data [_dgbcf +1]);_ddgdgd =append (_ddgdgd ,_be .CharCode (_bgcb ));};}else {for _ ,_cdcgd :=range data {_ddgdgd =append (_ddgdgd ,_be .CharCode (_cdcgd ));};};return _ddgdgd ;};
// String returns a string representation of what flags are set.
func (_fcag FieldFlag )String ()string {_fbfce :="";if _fcag ==FieldFlagClear {_fbfce ="\u0043\u006c\u0065a\u0072";return _fbfce ;};if _fcag &FieldFlagReadOnly > 0{_fbfce +="\u007cR\u0065\u0061\u0064\u004f\u006e\u006cy";};if _fcag &FieldFlagRequired > 0{_fbfce +="\u007cR\u0065\u0061\u0064\u004f\u006e\u006cy";};if _fcag &FieldFlagNoExport > 0{_fbfce +="\u007cN\u006f\u0045\u0078\u0070\u006f\u0072t";};if _fcag &FieldFlagNoToggleToOff > 0{_fbfce +="\u007c\u004e\u006f\u0054\u006f\u0067\u0067\u006c\u0065T\u006f\u004f\u0066\u0066";};if _fcag &FieldFlagRadio > 0{_fbfce +="\u007c\u0052\u0061\u0064\u0069\u006f";};if _fcag &FieldFlagPushbutton > 0{_fbfce +="|\u0050\u0075\u0073\u0068\u0062\u0075\u0074\u0074\u006f\u006e";};if _fcag &FieldFlagRadiosInUnision > 0{_fbfce +="\u007c\u0052a\u0064\u0069\u006fs\u0049\u006e\u0055\u006e\u0069\u0073\u0069\u006f\u006e";};if _fcag &FieldFlagMultiline > 0{_fbfce +="\u007c\u004d\u0075\u006c\u0074\u0069\u006c\u0069\u006e\u0065";};if _fcag &FieldFlagPassword > 0{_fbfce +="\u007cP\u0061\u0073\u0073\u0077\u006f\u0072d";};if _fcag &FieldFlagFileSelect > 0{_fbfce +="|\u0046\u0069\u006c\u0065\u0053\u0065\u006c\u0065\u0063\u0074";};if _fcag &FieldFlagDoNotScroll > 0{_fbfce +="\u007c\u0044\u006fN\u006f\u0074\u0053\u0063\u0072\u006f\u006c\u006c";};if _fcag &FieldFlagComb > 0{_fbfce +="\u007c\u0043\u006fm\u0062";};if _fcag &FieldFlagRichText > 0{_fbfce +="\u007cR\u0069\u0063\u0068\u0054\u0065\u0078t";};if _fcag &FieldFlagDoNotSpellCheck > 0{_fbfce +="\u007c\u0044o\u004e\u006f\u0074S\u0070\u0065\u006c\u006c\u0043\u0068\u0065\u0063\u006b";};if _fcag &FieldFlagCombo > 0{_fbfce +="\u007c\u0043\u006f\u006d\u0062\u006f";};if _fcag &FieldFlagEdit > 0{_fbfce +="\u007c\u0045\u0064i\u0074";};if _fcag &FieldFlagSort > 0{_fbfce +="\u007c\u0053\u006fr\u0074";};if _fcag &FieldFlagMultiSelect > 0{_fbfce +="\u007c\u004d\u0075l\u0074\u0069\u0053\u0065\u006c\u0065\u0063\u0074";};if _fcag &FieldFlagCommitOnSelChange > 0{_fbfce +="\u007cC\u006fm\u006d\u0069\u0074\u004f\u006eS\u0065\u006cC\u0068\u0061\u006e\u0067\u0065";};return _dg .Trim (_fbfce ,"\u007c");};
// PdfPage represents a page in a PDF document. (7.7.3.3 - Table 30).
type PdfPage struct{Parent _aef .PdfObject ;LastModified *PdfDate ;Resources *PdfPageResources ;CropBox *PdfRectangle ;MediaBox *PdfRectangle ;BleedBox *PdfRectangle ;TrimBox *PdfRectangle ;ArtBox *PdfRectangle ;BoxColorInfo _aef .PdfObject ;Contents _aef .PdfObject ;Rotate *int64 ;Group _aef .PdfObject ;Thumb _aef .PdfObject ;B _aef .PdfObject ;Dur _aef .PdfObject ;Trans _aef .PdfObject ;AA _aef .PdfObject ;Metadata _aef .PdfObject ;PieceInfo _aef .PdfObject ;StructParents _aef .PdfObject ;ID _aef .PdfObject ;PZ _aef .PdfObject ;SeparationInfo _aef .PdfObject ;Tabs _aef .PdfObject ;TemplateInstantiated _aef .PdfObject ;PresSteps _aef .PdfObject ;UserUnit _aef .PdfObject ;VP _aef .PdfObject ;Annots _aef .PdfObject ;_bcgfd []*PdfAnnotation ;_cbefa *_aef .PdfObjectDictionary ;_gfbbf *_aef .PdfIndirectObject ;_aggeb *PdfReader ;};
// GetContainingPdfObject returns the container of the image object (indirect object).
func (_cdbgbb *XObjectImage )GetContainingPdfObject ()_aef .PdfObject {return _cdbgbb ._dcafe };
// XObjectForm (Table 95 in 8.10.2).
type XObjectForm struct{Filter _aef .StreamEncoder ;FormType _aef .PdfObject ;BBox _aef .PdfObject ;Matrix _aef .PdfObject ;Resources *PdfPageResources ;Group _aef .PdfObject ;Ref _aef .PdfObject ;MetaData _aef .PdfObject ;PieceInfo _aef .PdfObject ;LastModified _aef .PdfObject ;StructParent _aef .PdfObject ;StructParents _aef .PdfObject ;OPI _aef .PdfObject ;OC _aef .PdfObject ;Name _aef .PdfObject ;
// Stream data.
Stream []byte ;_ebdad *_aef .PdfObjectStream ;};
// ToPdfObject returns the PDF representation of the shading dictionary.
func (_bedef *PdfShadingType7 )ToPdfObject ()_aef .PdfObject {_bedef .PdfShading .ToPdfObject ();_eeefdg ,_aadcg :=_bedef .getShadingDict ();if _aadcg !=nil {_abe .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 _bedef .BitsPerCoordinate !=nil {_eeefdg .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065",_bedef .BitsPerCoordinate );};if _bedef .BitsPerComponent !=nil {_eeefdg .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_bedef .BitsPerComponent );};if _bedef .BitsPerFlag !=nil {_eeefdg .Set ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067",_bedef .BitsPerFlag );};if _bedef .Decode !=nil {_eeefdg .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_bedef .Decode );};if _bedef .Function !=nil {if len (_bedef .Function )==1{_eeefdg .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_bedef .Function [0].ToPdfObject ());}else {_dggga :=_aef .MakeArray ();for _ ,_ecfae :=range _bedef .Function {_dggga .Append (_ecfae .ToPdfObject ());};_eeefdg .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_dggga );};};return _bedef ._bbga ;};
// ToPdfObject implements interface PdfModel.
func (_ccae *PdfAnnotationInk )ToPdfObject ()_aef .PdfObject {_ccae .PdfAnnotation .ToPdfObject ();_aafd :=_ccae ._edc ;_gbgg :=_aafd .PdfObject .(*_aef .PdfObjectDictionary );_ccae .PdfAnnotationMarkup .appendToPdfDictionary (_gbgg );_gbgg .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_aef .MakeName ("\u0049\u006e\u006b"));_gbgg .SetIfNotNil ("\u0049n\u006b\u004c\u0069\u0073\u0074",_ccae .InkList );_gbgg .SetIfNotNil ("\u0042\u0053",_ccae .BS );return _aafd ;};
// ToPdfObject implements interface PdfModel.
func (_ggea *PdfActionResetForm )ToPdfObject ()_aef .PdfObject {_ggea .PdfAction .ToPdfObject ();_cgf :=_ggea ._gc ;_bcb :=_cgf .PdfObject .(*_aef .PdfObjectDictionary );_bcb .SetIfNotNil ("\u0053",_aef .MakeName (string (ActionTypeResetForm )));_bcb .SetIfNotNil ("\u0046\u0069\u0065\u006c\u0064\u0073",_ggea .Fields );_bcb .SetIfNotNil ("\u0046\u006c\u0061g\u0073",_ggea .Flags );return _cgf ;};func (_fgfb *Image )resampleLowBits (_edfec []uint32 ){_bbdc :=_gb .BytesPerLine (int (_fgfb .Width ),int (_fgfb .BitsPerComponent ),_fgfb .ColorComponents );_eeff :=make ([]byte ,_fgfb .ColorComponents *_bbdc *int (_fgfb .Height ));_dcdf :=int (_fgfb .BitsPerComponent )*_fgfb .ColorComponents *int (_fgfb .Width );_fdeb :=uint8 (8);var (_cbac ,_fbfb int ;_badba uint32 ;);for _effga :=0;_effga < int (_fgfb .Height );_effga ++{_fbfb =_effga *_bbdc ;for _febge :=0;_febge < _dcdf ;_febge ++{_badba =_edfec [_cbac ];_fdeb -=uint8 (_fgfb .BitsPerComponent );_eeff [_fbfb ]|=byte (_badba )<<_fdeb ;if _fdeb ==0{_fdeb =8;_fbfb ++;};_cbac ++;};};_fgfb .Data =_eeff ;};
// NewImageFromGoImage creates a new NRGBA32 unidoc Image from a golang Image.
// If `goimg` is grayscale (*goimage.Gray8) then calls NewGrayImageFromGoImage instead.
func (_dceaa DefaultImageHandler )NewImageFromGoImage (goimg _ae .Image )(*Image ,error ){_bbaeb ,_fcgb :=_gb .FromGoImage (goimg );if _fcgb !=nil {return nil ,_fcgb ;};_dfdff :=_cbgdcg (_bbaeb .Base ());return &_dfdff ,nil ;};
// AlphaMap performs mapping of alpha data for transformations. Allows custom filtering of alpha data etc.
func (_fbdgg *Image )AlphaMap (mapFunc AlphaMapFunc ){for _ddfbg ,_dceee :=range _fbdgg ._afge {_fbdgg ._afge [_ddfbg ]=mapFunc (_dceee );};};func (_bdgbf *PdfWriter )copyObjects (){_aaegbe :=make (map[_aef .PdfObject ]_aef .PdfObject );_badc :=make ([]_aef .PdfObject ,0,len (_bdgbf ._aage ));_cabe :=make (map[_aef .PdfObject ]struct{},len (_bdgbf ._aage ));_cgbge :=make (map[_aef .PdfObject ]struct{});for _ ,_cadge :=range _bdgbf ._aage {_aacge :=_bdgbf .copyObject (_cadge ,_aaegbe ,_cgbge ,false );if _ ,_fegcc :=_cgbge [_cadge ];_fegcc {continue ;};_badc =append (_badc ,_aacge );_cabe [_aacge ]=struct{}{};};_bdgbf ._aage =_badc ;_bdgbf ._cafea =_cabe ;_bdgbf ._caefd =_bdgbf .copyObject (_bdgbf ._caefd ,_aaegbe ,nil ,false ).(*_aef .PdfIndirectObject );_bdgbf ._bdbdfg =_bdgbf .copyObject (_bdgbf ._bdbdfg ,_aaegbe ,nil ,false ).(*_aef .PdfIndirectObject );if _bdgbf ._eebbg !=nil {_bdgbf ._eebbg =_bdgbf .copyObject (_bdgbf ._eebbg ,_aaegbe ,nil ,false ).(*_aef .PdfIndirectObject );};if _bdgbf ._bcdd {_deebg :=make (map[_aef .PdfObject ]int64 );for _dgfed ,_caeffa :=range _bdgbf ._bfeac {if _geaf ,_afgef :=_aaegbe [_dgfed ];_afgef {_deebg [_geaf ]=_caeffa ;}else {_abe .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");};};_bdgbf ._bfeac =_deebg ;};};
// PageFromIndirectObject returns the PdfPage and page number for a given indirect object.
func (_gbbba *PdfReader )PageFromIndirectObject (ind *_aef .PdfIndirectObject )(*PdfPage ,int ,error ){if len (_gbbba .PageList )!=len (_gbbba ._dbdgb ){return nil ,0,_fa .New ("\u0070\u0061\u0067\u0065\u0020\u006c\u0069\u0073\u0074\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");};for _cgec ,_gbfb :=range _gbbba ._dbdgb {if _gbfb ==ind {return _gbbba .PageList [_cgec ],_cgec +1,nil ;};};return nil ,0,_fa .New ("\u0070\u0061\u0067\u0065\u0020\u006e\u006f\u0074\u0020f\u006f\u0075\u006e\u0064");};func _cbbfg (_gbaag _aef .PdfObject )[]*_aef .PdfObjectStream {if _gbaag ==nil {return nil ;};_edgg ,_cbdag :=_aef .GetArray (_gbaag );if !_cbdag ||_edgg .Len ()==0{return nil ;};_cdab :=make ([]*_aef .PdfObjectStream ,0,_edgg .Len ());for _ ,_facfg :=range _edgg .Elements (){if _eadbcf ,_faabb :=_aef .GetStream (_facfg );_faabb {_cdab =append (_cdab ,_eadbcf );};};return _cdab ;};
// AddPage adds a page to the PDF file. The new page should be an indirect object.
func (_aggaf *PdfWriter )AddPage (page *PdfPage )error {_bedgc (page );_bdffc :=page .ToPdfObject ();_abe .Log .Trace ("\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d");_abe .Log .Trace ("\u0041p\u0070\u0065\u006e\u0064i\u006e\u0067\u0020\u0074\u006f \u0070a\u0067e\u0020\u006c\u0069\u0073\u0074\u0020\u0025T",_bdffc );_ceeg ,_bbbd :=_aef .GetIndirect (_bdffc );if !_bbbd {return _fa .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");};_abe .Log .Trace ("\u0025\u0073",_ceeg );_abe .Log .Trace ("\u0025\u0073",_ceeg .PdfObject );_ddgfg ,_bbbd :=_aef .GetDict (_ceeg .PdfObject );if !_bbbd {return _fa .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");};_adbbd ,_bbbd :=_aef .GetName (_ddgfg .Get ("\u0054\u0079\u0070\u0065"));if !_bbbd {return _b .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",_ddgfg .Get ("\u0054\u0079\u0070\u0065"));};if _adbbd .String ()!="\u0050\u0061\u0067\u0065"{return _fa .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");};_cdcf :=[]_aef .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"};_dfbfb ,_eafae :=_aef .GetIndirect (_ddgfg .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"));_abe .Log .Trace ("P\u0061g\u0065\u0020\u0050\u0061\u0072\u0065\u006e\u0074:\u0020\u0025\u0054\u0020(%\u0076\u0029",_ddgfg .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"),_eafae );for _eafae {_abe .Log .Trace ("\u0050a\u0067e\u0020\u0050\u0061\u0072\u0065\u006e\u0074\u003a\u0020\u0025\u0054",_dfbfb );_eegea ,_fcccg :=_aef .GetDict (_dfbfb .PdfObject );if !_fcccg {return _fa .New ("i\u006e\u0076\u0061\u006cid\u0020P\u0061\u0072\u0065\u006e\u0074 \u006f\u0062\u006a\u0065\u0063\u0074");};for _ ,_ebgaea :=range _cdcf {_abe .Log .Trace ("\u0046\u0069\u0065\u006c\u0064\u0020\u0025\u0073",_ebgaea );if _ddgfg .Get (_ebgaea )!=nil {_abe .Log .Trace ("\u002d \u0070a\u0067\u0065\u0020\u0068\u0061s\u0020\u0061l\u0072\u0065\u0061\u0064\u0079");continue ;};if _bdda :=_eegea .Get (_ebgaea );_bdda !=nil {_abe .Log .Trace ("\u0049\u006e\u0068\u0065ri\u0074\u0069\u006e\u0067\u0020\u0066\u0069\u0065\u006c\u0064\u0020\u0025\u0073",_ebgaea );_ddgfg .Set (_ebgaea ,_bdda );};};_dfbfb ,_eafae =_aef .GetIndirect (_eegea .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"));_abe .Log .Trace ("\u004ee\u0078t\u0020\u0070\u0061\u0072\u0065\u006e\u0074\u003a\u0020\u0025\u0054",_eegea .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"));};_abe .Log .Trace ("\u0054\u0072\u0061\u0076\u0065\u0072\u0073\u0061\u006c \u0064\u006f\u006e\u0065");_ddgfg .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_aggaf ._gacae );_ceeg .PdfObject =_ddgfg ;_gabab ,_bbbd :=_aef .GetDict (_aggaf ._gacae .PdfObject );if !_bbbd {return _fa .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");};_deaeg ,_bbbd :=_aef .GetArray (_gabab .Get ("\u004b\u0069\u0064\u0073"));if !_bbbd {return _fa .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");};_deaeg .Append (_ceeg );_aggaf ._cggg [_ddgfg ]=struct{}{};_eagb ,_bbbd :=_aef .GetInt (_gabab .Get ("\u0043\u006f\u0075n\u0074"));if !_bbbd {return _fa .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");};*_eagb =*_eagb +1;_aggaf .addObject (_ceeg );_ageg :=_aggaf .addObjects (_ddgfg );if _ageg !=nil {return _ageg ;};return nil ;};
// GetNumComponents returns the number of color components (3 for Lab).
func (_dfga *PdfColorLab )GetNumComponents ()int {return 3};func _aaac (_acdff string )(map[_be .CharCode ]_be .GlyphName ,error ){_cfdd :=_dg .Split (_acdff ,"\u000a");_ddbbe :=make (map[_be .CharCode ]_be .GlyphName );for _ ,_cfcf :=range _cfdd {_aggad :=_aaggb .FindStringSubmatch (_cfcf );if _aggad ==nil {continue ;};_gceea ,_dddd :=_aggad [1],_aggad [2];_gbad ,_gfec :=_f .Atoi (_gceea );if _gfec !=nil {_abe .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",_cfcf );return nil ,_aef .ErrTypeError ;};_ddbbe [_be .CharCode (_gbad )]=_be .GlyphName (_dddd );};_abe .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",_ddbbe );return _ddbbe ,nil ;};
// String returns a string representation of the field.
func (_abdea *PdfField )String ()string {if _deda ,_adec :=_abdea .ToPdfObject ().(*_aef .PdfIndirectObject );_adec {return _b .Sprintf ("\u0025\u0054\u003a\u0020\u0025\u0073",_abdea ._aafba ,_deda .PdfObject .String ());};return "";};func (_fcac *PdfReader )newPdfSignatureFromIndirect (_addea *_aef .PdfIndirectObject )(*PdfSignature ,error ){_egca ,_egdee :=_addea .PdfObject .(*_aef .PdfObjectDictionary );if !_egdee {_abe .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 _acbce ,_edcce :=_fcac ._fggbd .GetModelFromPrimitive (_addea ).(*PdfSignature );_edcce {return _acbce ,nil ;};_fegae :=&PdfSignature {};_fegae ._cfcff =_addea ;_fegae .Type ,_ =_aef .GetName (_egca .Get ("\u0054\u0079\u0070\u0065"));_fegae .Filter ,_egdee =_aef .GetName (_egca .Get ("\u0046\u0069\u006c\u0074\u0065\u0072"));if !_egdee {_abe .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 ;};_fegae .SubFilter ,_ =_aef .GetName (_egca .Get ("\u0053u\u0062\u0046\u0069\u006c\u0074\u0065r"));_fegae .Contents ,_egdee =_aef .GetString (_egca .Get ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073"));if !_egdee {_abe .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 ;};_fegae .Cert =_egca .Get ("\u0043\u0065\u0072\u0074");_fegae .ByteRange ,_ =_aef .GetArray (_egca .Get ("\u0042y\u0074\u0065\u0052\u0061\u006e\u0067e"));_fegae .Reference ,_ =_aef .GetArray (_egca .Get ("\u0052e\u0066\u0065\u0072\u0065\u006e\u0063e"));_fegae .Changes ,_ =_aef .GetArray (_egca .Get ("\u0043h\u0061\u006e\u0067\u0065\u0073"));_fegae .Name ,_ =_aef .GetString (_egca .Get ("\u004e\u0061\u006d\u0065"));_fegae .M ,_ =_aef .GetString (_egca .Get ("\u004d"));_fegae .Location ,_ =_aef .GetString (_egca .Get ("\u004c\u006f\u0063\u0061\u0074\u0069\u006f\u006e"));_fegae .Reason ,_ =_aef .GetString (_egca .Get ("\u0052\u0065\u0061\u0073\u006f\u006e"));_fegae .ContactInfo ,_ =_aef .GetString (_egca .Get ("C\u006f\u006e\u0074\u0061\u0063\u0074\u0049\u006e\u0066\u006f"));_fegae .R ,_ =_aef .GetInt (_egca .Get ("\u0052"));_fegae .V ,_ =_aef .GetInt (_egca .Get ("\u0056"));_fegae .PropBuild ,_ =_aef .GetDict (_egca .Get ("\u0050\u0072\u006f\u0070\u005f\u0042\u0075\u0069\u006c\u0064"));_fegae .PropAuthTime ,_ =_aef .GetInt (_egca .Get ("\u0050\u0072\u006f\u0070\u005f\u0041\u0075\u0074\u0068\u0054\u0069\u006d\u0065"));_fegae .PropAuthType ,_ =_aef .GetName (_egca .Get ("\u0050\u0072\u006f\u0070\u005f\u0041\u0075\u0074\u0068\u0054\u0079\u0070\u0065"));return _fegae ,nil ;};
// ToPdfObject returns a stream object.
func (_bbdbc *XObjectForm )ToPdfObject ()_aef .PdfObject {_bdbbf :=_bbdbc ._ebdad ;_ccbf :=_bdbbf .PdfObjectDictionary ;if _bbdbc .Filter !=nil {_ccbf =_bbdbc .Filter .MakeStreamDict ();_bdbbf .PdfObjectDictionary =_ccbf ;};_ccbf .Set ("\u0054\u0079\u0070\u0065",_aef .MakeName ("\u0058O\u0062\u006a\u0065\u0063\u0074"));_ccbf .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_aef .MakeName ("\u0046\u006f\u0072\u006d"));_ccbf .SetIfNotNil ("\u0046\u006f\u0072\u006d\u0054\u0079\u0070\u0065",_bbdbc .FormType );_ccbf .SetIfNotNil ("\u0042\u0042\u006f\u0078",_bbdbc .BBox );_ccbf .SetIfNotNil ("\u004d\u0061\u0074\u0072\u0069\u0078",_bbdbc .Matrix );if _bbdbc .Resources !=nil {_ccbf .SetIfNotNil ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s",_bbdbc .Resources .ToPdfObject ());};_ccbf .SetIfNotNil ("\u0047\u0072\u006fu\u0070",_bbdbc .Group );_ccbf .SetIfNotNil ("\u0052\u0065\u0066",_bbdbc .Ref );_ccbf .SetIfNotNil ("\u004d\u0065\u0074\u0061\u0044\u0061\u0074\u0061",_bbdbc .MetaData );_ccbf .SetIfNotNil ("\u0050i\u0065\u0063\u0065\u0049\u006e\u0066o",_bbdbc .PieceInfo );_ccbf .SetIfNotNil ("\u004c\u0061\u0073t\u004d\u006f\u0064\u0069\u0066\u0069\u0065\u0064",_bbdbc .LastModified );_ccbf .SetIfNotNil ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074",_bbdbc .StructParent );_ccbf .SetIfNotNil ("\u0053\u0074\u0072\u0075\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074\u0073",_bbdbc .StructParents );_ccbf .SetIfNotNil ("\u004f\u0050\u0049",_bbdbc .OPI );_ccbf .SetIfNotNil ("\u004f\u0043",_bbdbc .OC );_ccbf .SetIfNotNil ("\u004e\u0061\u006d\u0065",_bbdbc .Name );_ccbf .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_aef .MakeInteger (int64 (len (_bbdbc .Stream ))));_bdbbf .Stream =_bbdbc .Stream ;return _bdbbf ;};
// GetNumComponents returns the number of color components (3 for RGB).
func (_gfcg *PdfColorDeviceRGB )GetNumComponents ()int {return 3};
// AddOutlineTree adds outlines to a PDF file.
func (_gacff *PdfWriter )AddOutlineTree (outlineTree *PdfOutlineTreeNode ){_gacff ._aabdg =outlineTree };
// SetShadingByName sets a shading resource specified by keyName.
func (_aabcf *PdfPageResources )SetShadingByName (keyName _aef .PdfObjectName ,shadingObj _aef .PdfObject )error {if _aabcf .Shading ==nil {_aabcf .Shading =_aef .MakeDict ();};_ecbea ,_gceba :=_aabcf .Shading .(*_aef .PdfObjectDictionary );if !_gceba {return _aef .ErrTypeError ;};_ecbea .Set (keyName ,shadingObj );return nil ;};func _cggaf (_gbfe *_aef .PdfIndirectObject )(*PdfOutline ,error ){_ceee ,_ddeca :=_gbfe .PdfObject .(*_aef .PdfObjectDictionary );if !_ddeca {return nil ,_b .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");};_cddc :=NewPdfOutline ();if _afegf :=_ceee .Get ("\u0054\u0079\u0070\u0065");_afegf !=nil {_bdabg ,_cbgeb :=_afegf .(*_aef .PdfObjectName );if _cbgeb {if *_bdabg !="\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0073"{_abe .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",*_bdabg );};};};if _adfac :=_ceee .Get ("\u0043\u006f\u0075n\u0074");_adfac !=nil {_ebac ,_dagg :=_aef .GetNumberAsInt64 (_adfac );if _dagg !=nil {return nil ,_dagg ;};_cddc .Count =&_ebac ;};return _cddc ,nil ;};
// NewXObjectFormFromStream builds the Form XObject from a stream object.
// TODO: Should this be exposed? Consider different access points.
func NewXObjectFormFromStream (stream *_aef .PdfObjectStream )(*XObjectForm ,error ){_degc :=&XObjectForm {};_degc ._ebdad =stream ;_dbbbc :=*(stream .PdfObjectDictionary );_gedc ,_gaeb :=_aef .NewEncoderFromStream (stream );if _gaeb !=nil {return nil ,_gaeb ;};_degc .Filter =_gedc ;if _ccgg :=_dbbbc .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065");_ccgg !=nil {_gggcg ,_cbagfa :=_ccgg .(*_aef .PdfObjectName );if !_cbagfa {return nil ,_fa .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if *_gggcg !="\u0046\u006f\u0072\u006d"{_abe .Log .Debug ("I\u006ev\u0061\u006c\u0069\u0064\u0020\u0066\u006f\u0072m\u0020\u0073\u0075\u0062ty\u0070\u0065");return nil ,_fa .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0066\u006f\u0072m\u0020\u0073\u0075\u0062ty\u0070\u0065");};};if _gfcaff :=_dbbbc .Get ("\u0046\u006f\u0072\u006d\u0054\u0079\u0070\u0065");_gfcaff !=nil {_degc .FormType =_gfcaff ;};if _faeac :=_dbbbc .Get ("\u0042\u0042\u006f\u0078");_faeac !=nil {_degc .BBox =_faeac ;};if _bafa :=_dbbbc .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");_bafa !=nil {_degc .Matrix =_bafa ;};if _dcbfe :=_dbbbc .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");_dcbfe !=nil {_dcbfe =_aef .TraceToDirectObject (_dcbfe );_ffdgc ,_bfaee :=_dcbfe .(*_aef .PdfObjectDictionary );if !_bfaee {_abe .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 ,_aef .ErrTypeError ;};_cdddg ,_abcfef :=NewPdfPageResourcesFromDict (_ffdgc );if _abcfef !=nil {_abe .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 ,_abcfef ;};_degc .Resources =_cdddg ;_abe .Log .Trace ("\u0046\u006f\u0072\u006d r\u0065\u0073\u006f\u0075\u0072\u0063\u0065\u0073\u003a\u0020\u0025\u0023\u0076",_degc .Resources );};_degc .Group =_dbbbc .Get ("\u0047\u0072\u006fu\u0070");_degc .Ref =_dbbbc .Get ("\u0052\u0065\u0066");_degc .MetaData =_dbbbc .Get ("\u004d\u0065\u0074\u0061\u0044\u0061\u0074\u0061");_degc .PieceInfo =_dbbbc .Get ("\u0050i\u0065\u0063\u0065\u0049\u006e\u0066o");_degc .LastModified =_dbbbc .Get ("\u004c\u0061\u0073t\u004d\u006f\u0064\u0069\u0066\u0069\u0065\u0064");_degc .StructParent =_dbbbc .Get ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074");_degc .StructParents =_dbbbc .Get ("\u0053\u0074\u0072\u0075\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074\u0073");_degc .OPI =_dbbbc .Get ("\u004f\u0050\u0049");_degc .OC =_dbbbc .Get ("\u004f\u0043");_degc .Name =_dbbbc .Get ("\u004e\u0061\u006d\u0065");_degc .Stream =stream .Stream ;return _degc ,nil ;};
// ToPdfObject converts the PdfFont object to its PDF representation.
func (_cbbf *PdfFont )ToPdfObject ()_aef .PdfObject {if _cbbf ._dccga ==nil {_abe .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 _aef .MakeNull ();};return _cbbf ._dccga .ToPdfObject ();};
// ToPdfObject implements interface PdfModel.
func (_fe *PdfActionGoToE )ToPdfObject ()_aef .PdfObject {_fe .PdfAction .ToPdfObject ();_agf :=_fe ._gc ;_bedb :=_agf .PdfObject .(*_aef .PdfObjectDictionary );_bedb .SetIfNotNil ("\u0053",_aef .MakeName (string (ActionTypeGoToE )));if _fe .F !=nil {_bedb .Set ("\u0046",_fe .F .ToPdfObject ());};_bedb .SetIfNotNil ("\u0044",_fe .D );_bedb .SetIfNotNil ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw",_fe .NewWindow );_bedb .SetIfNotNil ("\u0054",_fe .T );return _agf ;};
// 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 _aef .StreamEncoder )(*XObjectImage ,error ){if encoder ==nil {encoder =_aef .NewRawEncoder ();};encoder .UpdateParams (img .GetParamsDict ());_afaff ,_edgbb :=encoder .EncodeBytes (img .Data );if _edgbb !=nil {_abe .Log .Debug ("\u0045\u0072\u0072or\u0020\u0077\u0069\u0074\u0068\u0020\u0065\u006e\u0063\u006f\u0064\u0069\u006e\u0067\u003a\u0020\u0025\u0076",_edgbb );return nil ,_edgbb ;};_bfbaa :=NewXObjectImage ();_eegbe :=img .Width ;_ecdba :=img .Height ;_bfbaa .Width =&_eegbe ;_bfbaa .Height =&_ecdba ;_bcdcb :=img .BitsPerComponent ;_bfbaa .BitsPerComponent =&_bcdcb ;_bfbaa .Filter =encoder ;_bfbaa .Stream =_afaff ;if cs ==nil {if img .ColorComponents ==1{_bfbaa .ColorSpace =NewPdfColorspaceDeviceGray ();}else if img .ColorComponents ==3{_bfbaa .ColorSpace =NewPdfColorspaceDeviceRGB ();}else if img .ColorComponents ==4{_bfbaa .ColorSpace =NewPdfColorspaceDeviceCMYK ();}else {return nil ,_fa .New ("c\u006fl\u006f\u0072\u0073\u0070\u0061\u0063\u0065\u0020u\u006e\u0064\u0065\u0066in\u0065\u0064");};}else {_bfbaa .ColorSpace =cs ;};if len (img ._afge )!=0{_gdefd :=NewXObjectImage ();_gdefd .Filter =encoder ;_ebcgg ,_cedb :=encoder .EncodeBytes (img ._afge );if _cedb !=nil {_abe .Log .Debug ("\u0045\u0072\u0072or\u0020\u0077\u0069\u0074\u0068\u0020\u0065\u006e\u0063\u006f\u0064\u0069\u006e\u0067\u003a\u0020\u0025\u0076",_cedb );return nil ,_cedb ;};_gdefd .Stream =_ebcgg ;_gdefd .BitsPerComponent =_bfbaa .BitsPerComponent ;_gdefd .Width =&img .Width ;_gdefd .Height =&img .Height ;_gdefd .ColorSpace =NewPdfColorspaceDeviceGray ();_bfbaa .SMask =_gdefd .ToPdfObject ();}else {_bfbaa .SMask =xobjIn .SMask ;_bfbaa .ImageMask =xobjIn .ImageMask ;if _bfbaa .ColorSpace .GetNumComponents ()==1{_geefb (_bfbaa );};};return _bfbaa ,nil ;};
// NewPdfActionGoToE returns a new "go to embedded" action.
func NewPdfActionGoToE ()*PdfActionGoToE {_afb :=NewPdfAction ();_gge :=&PdfActionGoToE {};_gge .PdfAction =_afb ;_afb .SetContext (_gge );return _gge ;};func (_gdgec *Image )samplesTrimPadding (_ageee []uint32 )[]uint32 {_gbaef :=_gdgec .ColorComponents *int (_gdgec .Width )*int (_gdgec .Height );if len (_ageee )==_gbaef {return _ageee ;};_gbge :=make ([]uint32 ,_gbaef );_bbec :=int (_gdgec .Width )*_gdgec .ColorComponents ;var _fecd ,_gdfga ,_caaee ,_gecb int ;_gdbcg :=_gb .BytesPerLine (int (_gdgec .Width ),int (_gdgec .BitsPerComponent ),_gdgec .ColorComponents );for _fecd =0;_fecd < int (_gdgec .Height );_fecd ++{_gdfga =_fecd *int (_gdgec .Width );_caaee =_fecd *_gdbcg ;for _gecb =0;_gecb < _bbec ;_gecb ++{_gbge [_gdfga +_gecb ]=_ageee [_caaee +_gecb ];};};return _gbge ;};
// G returns the value of the green component of the color.
func (_egdg *PdfColorDeviceRGB )G ()float64 {return _egdg [1]};
// GetContainingPdfObject implements interface PdfModel.
func (_aed *PdfAction )GetContainingPdfObject ()_aef .PdfObject {return _aed ._gc };
// NewPdfPageResourcesFromDict creates and returns a new PdfPageResources object
// from the input dictionary.
func NewPdfPageResourcesFromDict (dict *_aef .PdfObjectDictionary )(*PdfPageResources ,error ){_gcca :=NewPdfPageResources ();if _ecdcf :=dict .Get ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e");_ecdcf !=nil {_gcca .ExtGState =_ecdcf ;};if _cedefg :=dict .Get ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065");_cedefg !=nil &&!_aef .IsNullObject (_cedefg ){_gcca .ColorSpace =_cedefg ;};if _gbace :=dict .Get ("\u0050a\u0074\u0074\u0065\u0072\u006e");_gbace !=nil {_gcca .Pattern =_gbace ;};if _geaae :=dict .Get ("\u0053h\u0061\u0064\u0069\u006e\u0067");_geaae !=nil {_gcca .Shading =_geaae ;};if _cdgeb :=dict .Get ("\u0058O\u0062\u006a\u0065\u0063\u0074");_cdgeb !=nil {_gcca .XObject =_cdgeb ;};if _aecac :=_aef .ResolveReference (dict .Get ("\u0046\u006f\u006e\u0074"));_aecac !=nil {_gcca .Font =_aecac ;};if _acdd :=dict .Get ("\u0050r\u006f\u0063\u0053\u0065\u0074");_acdd !=nil {_gcca .ProcSet =_acdd ;};if _gcfgd :=dict .Get ("\u0050\u0072\u006f\u0070\u0065\u0072\u0074\u0069\u0065\u0073");_gcfgd !=nil {_gcca .Properties =_gcfgd ;};return _gcca ,nil ;};
// IsPush returns true if the button field represents a push button, false otherwise.
func (_dfde *PdfFieldButton )IsPush ()bool {return _dfde .GetType ()==ButtonTypePush };func (_egb *PdfReader )newPdfAnnotationRedactFromDict (_aabc *_aef .PdfObjectDictionary )(*PdfAnnotationRedact ,error ){_gfa :=PdfAnnotationRedact {};_addcg ,_edfc :=_egb .newPdfAnnotationMarkupFromDict (_aabc );if _edfc !=nil {return nil ,_edfc ;};_gfa .PdfAnnotationMarkup =_addcg ;_gfa .QuadPoints =_aabc .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");_gfa .IC =_aabc .Get ("\u0049\u0043");_gfa .RO =_aabc .Get ("\u0052\u004f");_gfa .OverlayText =_aabc .Get ("O\u0076\u0065\u0072\u006c\u0061\u0079\u0054\u0065\u0078\u0074");_gfa .Repeat =_aabc .Get ("\u0052\u0065\u0070\u0065\u0061\u0074");_gfa .DA =_aabc .Get ("\u0044\u0041");_gfa .Q =_aabc .Get ("\u0051");return &_gfa ,nil ;};func (_afd *PdfReader )newPdfAnnotationInkFromDict (_gbe *_aef .PdfObjectDictionary )(*PdfAnnotationInk ,error ){_cdbc :=PdfAnnotationInk {};_bae ,_bcgf :=_afd .newPdfAnnotationMarkupFromDict (_gbe );if _bcgf !=nil {return nil ,_bcgf ;};_cdbc .PdfAnnotationMarkup =_bae ;_cdbc .InkList =_gbe .Get ("\u0049n\u006b\u004c\u0069\u0073\u0074");_cdbc .BS =_gbe .Get ("\u0042\u0053");return &_cdbc ,nil ;};
// SetContext sets the sub action (context).
func (_gfd *PdfAction )SetContext (ctx PdfModel ){_gfd ._ecb =ctx };func (_fdff *PdfReader )newPdfAnnotationSoundFromDict (_bfcb *_aef .PdfObjectDictionary )(*PdfAnnotationSound ,error ){_ecfb :=PdfAnnotationSound {};_egfc ,_bdee :=_fdff .newPdfAnnotationMarkupFromDict (_bfcb );if _bdee !=nil {return nil ,_bdee ;};_ecfb .PdfAnnotationMarkup =_egfc ;_ecfb .Name =_bfcb .Get ("\u004e\u0061\u006d\u0065");_ecfb .Sound =_bfcb .Get ("\u0053\u006f\u0075n\u0064");return &_ecfb ,nil ;};
// NewPdfColorspaceSpecialSeparation returns a new separation color.
func NewPdfColorspaceSpecialSeparation ()*PdfColorspaceSpecialSeparation {_cbcg :=&PdfColorspaceSpecialSeparation {};return _cbcg ;};
// R returns the value of the red component of the color.
func (_edac *PdfColorDeviceRGB )R ()float64 {return _edac [0]};type fontFile struct{_gaed string ;_aacd string ;_dbadd _be .SimpleEncoder ;};
// Add appends an outline item as a child of the current outline item.
func (_ebfbg *OutlineItem )Add (item *OutlineItem ){_ebfbg .Entries =append (_ebfbg .Entries ,item )};
// PdfAnnotationScreen represents Screen annotations.
// (Section 12.5.6.18).
type PdfAnnotationScreen struct{*PdfAnnotation ;T _aef .PdfObject ;MK _aef .PdfObject ;A _aef .PdfObject ;AA _aef .PdfObject ;};func (_ddddc *PdfSignature )extractChainFromPKCS7 ()([]*_c .Certificate ,error ){_cdecd ,_dbbbb :=_adf .Parse (_ddddc .Contents .Bytes ());if _dbbbb !=nil {return nil ,_dbbbb ;};return _cdecd .Certificates ,nil ;};
// GetOptimizer returns current PDF optimizer.
func (_fadg *PdfWriter )GetOptimizer ()Optimizer {return _fadg ._ceag };
// GetContext returns the PdfField context which is the more specific field data type, e.g. PdfFieldButton
// for a button field.
func (_efcgf *PdfField )GetContext ()PdfModel {return _efcgf ._aafba };
// ToPdfObject returns the PDF representation of the outline tree node.
func (_acabd *PdfOutlineTreeNode )ToPdfObject ()_aef .PdfObject {return _acabd .GetContext ().ToPdfObject ();};
// DecodeArray returns the range of color component values in DeviceRGB colorspace.
func (_deefg *PdfColorspaceDeviceRGB )DecodeArray ()[]float64 {return []float64 {0.0,1.0,0.0,1.0,0.0,1.0};};func (_fcgd *DSS )addOCSPs (_gbag [][]byte )([]*_aef .PdfObjectStream ,error ){return _fcgd .add (&_fcgd .OCSPs ,_fcgd ._beef ,_gbag );};var _gedfb =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":{}};var _afaa =_af .MustCompile ("\u005b\\\u006e\u005c\u0072\u005d\u002b");func _dbef ()string {_ggcf :="\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 _ceef _cg .Buffer ;for _cgeg :=0;_cgeg < 6;_cgeg ++{_ceef .WriteRune (rune (_ggcf [_ebe .Intn (len (_ggcf ))]));};return _ceef .String ();};
// AddAnnotation appends `annot` to the list of page annotations.
func (_abcdf *PdfPage )AddAnnotation (annot *PdfAnnotation ){if _abcdf ._bcgfd ==nil {_abcdf .GetAnnotations ();};_abcdf ._bcgfd =append (_abcdf ._bcgfd ,annot );};
// ToPdfObject implements interface PdfModel.
func (_dgd *PdfAction )ToPdfObject ()_aef .PdfObject {_ggf :=_dgd ._gc ;_aea :=_ggf .PdfObject .(*_aef .PdfObjectDictionary );_aea .Clear ();_aea .Set ("\u0054\u0079\u0070\u0065",_aef .MakeName ("\u0041\u0063\u0074\u0069\u006f\u006e"));_aea .SetIfNotNil ("\u0053",_dgd .S );_aea .SetIfNotNil ("\u004e\u0065\u0078\u0074",_dgd .Next );return _ggf ;};
// NewPdfActionNamed returns a new "named" action.
func NewPdfActionNamed ()*PdfActionNamed {_bed :=NewPdfAction ();_faf :=&PdfActionNamed {};_faf .PdfAction =_bed ;_bed .SetContext (_faf );return _faf ;};func (_febfda *PdfColorspaceSpecialPattern )String ()string {return "\u0050a\u0074\u0074\u0065\u0072\u006e";};func (_abaf *DSS )addCerts (_aecaf [][]byte )([]*_aef .PdfObjectStream ,error ){return _abaf .add (&_abaf .Certs ,_abaf ._ccagd ,_aecaf );};func (_aede *PdfReader )newPdfPageFromDict (_egeec *_aef .PdfObjectDictionary )(*PdfPage ,error ){_befad :=NewPdfPage ();_befad ._cbefa =_egeec ;_agdbg :=*_egeec ;_gacd ,_fgae :=_agdbg .Get ("\u0054\u0079\u0070\u0065").(*_aef .PdfObjectName );if !_fgae {return nil ,_fa .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 *_gacd !="\u0050\u0061\u0067\u0065"{return nil ,_fa .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 _ebceg :=_agdbg .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");_ebceg !=nil {_befad .Parent =_ebceg ;};if _egaba :=_agdbg .Get ("\u004c\u0061\u0073t\u004d\u006f\u0064\u0069\u0066\u0069\u0065\u0064");_egaba !=nil {_dcgga ,_bbbeec :=_aef .GetString (_egaba );if !_bbbeec {return nil ,_fa .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");};_ecged ,_ffaef :=NewPdfDate (_dcgga .Str ());if _ffaef !=nil {return nil ,_ffaef ;};_befad .LastModified =&_ecged ;};if _dcfd :=_agdbg .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");_dcfd !=nil &&!_aef .IsNullObject (_dcfd ){_abcge ,_fabfb :=_aef .GetDict (_dcfd );if !_fabfb {return nil ,_b .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",_dcfd );};var _abeee error ;_befad .Resources ,_abeee =NewPdfPageResourcesFromDict (_abcge );if _abeee !=nil {return nil ,_abeee ;};}else {_cead ,_eecee :=_befad .getParentResources ();if _eecee !=nil {return nil ,_eecee ;};if _cead ==nil {_cead =NewPdfPageResources ();};_befad .Resources =_cead ;};if _afaaa :=_agdbg .Get ("\u004d\u0065\u0064\u0069\u0061\u0042\u006f\u0078");_afaaa !=nil {_dedb ,_gfbcb :=_aef .GetArray (_afaaa );if !_gfbcb {return nil ,_fa .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 _geeeg error ;_befad .MediaBox ,_geeeg =NewPdfRectangle (*_dedb );if _geeeg !=nil {return nil ,_geeeg ;};};if _gfdg :=_agdbg .Get ("\u0043r\u006f\u0070\u0042\u006f\u0078");_gfdg !=nil {_edbad ,_geaa :=_aef .GetArray (_gfdg );if !_geaa {return nil ,_fa .New ("\u0070a\u0067\u0065\u0020\u0043r\u006f\u0070\u0042\u006f\u0078 \u006eo\u0074 \u0061\u006e\u0020\u0061\u0072\u0072\u0061y");};var _cdaf error ;_befad .CropBox ,_cdaf =NewPdfRectangle (*_edbad );if _cdaf !=nil {return nil ,_cdaf ;};};if _eaff :=_agdbg .Get ("\u0042\u006c\u0065\u0065\u0064\u0042\u006f\u0078");_eaff !=nil {_cbcga ,_fgff :=_aef .GetArray (_eaff );if !_fgff {return nil ,_fa .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 _efagb error ;_befad .BleedBox ,_efagb =NewPdfRectangle (*_cbcga );if _efagb !=nil {return nil ,_efagb ;};};if _dfaad :=_agdbg .Get ("\u0054r\u0069\u006d\u0042\u006f\u0078");_dfaad !=nil {_ddabe ,_bgfef :=_aef .GetArray (_dfaad );if !_bgfef {return nil ,_fa .New ("\u0070a\u0067\u0065\u0020\u0054r\u0069\u006d\u0042\u006f\u0078 \u006eo\u0074 \u0061\u006e\u0020\u0061\u0072\u0072\u0061y");};var _defec error ;_befad .TrimBox ,_defec =NewPdfRectangle (*_ddabe );if _defec !=nil {return nil ,_defec ;};};if _fdbcd :=_agdbg .Get ("\u0041\u0072\u0074\u0042\u006f\u0078");_fdbcd !=nil {_fgfba ,_becaf :=_aef .GetArray (_fdbcd );if !_becaf {return nil ,_fa .New ("\u0070a\u0067\u0065\u0020\u0041\u0072\u0074\u0042\u006f\u0078\u0020\u006eo\u0074\u0020\u0061\u006e\u0020\u0061\u0072\u0072\u0061\u0079");};var _bfecdg error ;_befad .ArtBox ,_bfecdg =NewPdfRectangle (*_fgfba );if _bfecdg !=nil {return nil ,_bfecdg ;};};if _aagd :=_agdbg .Get ("\u0042\u006f\u0078C\u006f\u006c\u006f\u0072\u0049\u006e\u0066\u006f");_aagd !=nil {_befad .BoxColorInfo =_aagd ;};if _ffdb :=_agdbg .Get ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073");_ffdb !=nil {_befad .Contents =_ffdb ;};if _fbdbcd :=_agdbg .Get ("\u0052\u006f\u0074\u0061\u0074\u0065");_fbdbcd !=nil {_cdfdb ,_abgeg :=_aef .GetInt (_fbdbcd );if !_abgeg {return nil ,_fa .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");};_addf :=int64 (*_cdfdb );_befad .Rotate =&_addf ;};if _gaefd :=_agdbg .Get ("\u0047\u0072\u006fu\u0070");_gaefd !=nil {_befad .Group =_gaefd ;};if _edgc :=_agdbg .Get ("\u0054\u0068\u0075m\u0062");_edgc !=nil {_befad .Thumb =_edgc ;};if _aaccc :=_agdbg .Get ("\u0042");_aaccc !=nil {_befad .B =_aaccc ;};if _cecg :=_agdbg .Get ("\u0044\u0075\u0072");_cecg !=nil {_befad .Dur =_cecg ;};if _aecg :=_agdbg .Get ("\u0054\u0072\u0061n\u0073");_aecg !=nil {_befad .Trans =_aecg ;};if _fdfe :=_agdbg .Get ("\u0041\u0041");_fdfe !=nil {_befad .AA =_fdfe ;};if _caeb :=_agdbg .Get ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");_caeb !=nil {_befad .Metadata =_caeb ;};if _cged :=_agdbg .Get ("\u0050i\u0065\u0063\u0065\u0049\u006e\u0066o");_cged !=nil {_befad .PieceInfo =_cged ;};if _dggcg :=_agdbg .Get ("\u0053\u0074\u0072\u0075\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074\u0073");_dggcg !=nil {_befad .StructParents =_dggcg ;};if _eaeab :=_agdbg .Get ("\u0049\u0044");_eaeab !=nil {_befad .ID =_eaeab ;};if _bddeg :=_agdbg .Get ("\u0050\u005a");_bddeg !=nil {_befad .PZ =_bddeg ;};if _cdga :=_agdbg .Get ("\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006fn\u0049\u006e\u0066\u006f");_cdga !=nil {_befad .SeparationInfo =_cdga ;};if _decg :=_agdbg .Get ("\u0054\u0061\u0062\u0073");_decg !=nil {_befad .Tabs =_decg ;};if _adcc :=_agdbg .Get ("T\u0065m\u0070\u006c\u0061\u0074\u0065\u0049\u006e\u0073t\u0061\u006e\u0074\u0069at\u0065\u0064");_adcc !=nil {_befad .TemplateInstantiated =_adcc ;};if _ffgb :=_agdbg .Get ("\u0050r\u0065\u0073\u0053\u0074\u0065\u0070s");_ffgb !=nil {_befad .PresSteps =_ffgb ;};if _dcdfe :=_agdbg .Get ("\u0055\u0073\u0065\u0072\u0055\u006e\u0069\u0074");_dcdfe !=nil {_befad .UserUnit =_dcdfe ;};if _cdece :=_agdbg .Get ("\u0056\u0050");_cdece !=nil {_befad .VP =_cdece ;};if _bcca :=_agdbg .Get ("\u0041\u006e\u006e\u006f\u0074\u0073");_bcca !=nil {_befad .Annots =_bcca ;};_befad ._aggeb =_aede ;return _befad ,nil ;};
// FieldAppearanceGenerator generates appearance stream for a given field.
type FieldAppearanceGenerator interface{ContentStreamWrapper ;GenerateAppearanceDict (_dcfef *PdfAcroForm ,_abfe *PdfField ,_ecbd *PdfAnnotationWidget )(*_aef .PdfObjectDictionary ,error );};func _bffeb (_bbde *_aef .PdfObjectDictionary )bool {for _ ,_befgb :=range _bbde .Keys (){if _ ,_ebfa :=_gedfb [_befgb .String ()];_ebfa {return true ;};};return false ;};
// GetAllContentStreams gets all the content streams for a page as one string.
func (_beega *PdfPage )GetAllContentStreams ()(string ,error ){_aeef ,_cddd :=_beega .GetContentStreams ();if _cddd !=nil {return "",_cddd ;};return _dg .Join (_aeef ,"\u0020"),nil ;};
// NewPdfAnnotationRichMedia returns a new rich media annotation.
func NewPdfAnnotationRichMedia ()*PdfAnnotationRichMedia {_abdc :=NewPdfAnnotation ();_ggbd :=&PdfAnnotationRichMedia {};_ggbd .PdfAnnotation =_abdc ;_abdc .SetContext (_ggbd );return _ggbd ;};
// GetNamedDestinations returns the Names entry in the PDF catalog.
// See section 12.3.2.3 "Named Destinations" (p. 367 PDF32000_2008).
func (_cbbec *PdfReader )GetNamedDestinations ()(_aef .PdfObject ,error ){_deadc :=_aef .ResolveReference (_cbbec ._acae .Get ("\u004e\u0061\u006de\u0073"));if _deadc ==nil {return nil ,nil ;};if !_cbbec ._afae {_geded :=_cbbec .traverseObjectData (_deadc );if _geded !=nil {return nil ,_geded ;};};return _deadc ,nil ;};
// NewPdfAnnotationRedact returns a new redact annotation.
func NewPdfAnnotationRedact ()*PdfAnnotationRedact {_cdf :=NewPdfAnnotation ();_cad :=&PdfAnnotationRedact {};_cad .PdfAnnotation =_cdf ;_cad .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_cdf .SetContext (_cad );return _cad ;};
// ToInteger convert to an integer format.
func (_dfaf *PdfColorLab )ToInteger (bits int )[3]uint32 {_fdfb :=_ad .Pow (2,float64 (bits ))-1;return [3]uint32 {uint32 (_fdfb *_dfaf .L ()),uint32 (_fdfb *_dfaf .A ()),uint32 (_fdfb *_dfaf .B ())};};
// 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 (_efdg *PdfFont )CharcodesToStrings (charcodes []_be .CharCode )([]string ,int ,int ){_fcdf :=_efdg .baseFields ();_ffcg :=make ([]string ,0,len (charcodes ));_gcbbc :=0;for _ ,_gecf :=range charcodes {if _fcdf ._ecefd !=nil {if _efga ,_dbcd :=_fcdf ._ecefd .CharcodeToUnicode (_gg .CharCode (_gecf ));_dbcd {_ffcg =append (_ffcg ,_efga );continue ;};};_bcccd :=_efdg .Encoder ();if _bcccd !=nil {if _acbd ,_aaabc :=_bcccd .CharcodeToRune (_gecf );_aaabc {_ffcg =append (_ffcg ,string (_acbd ));continue ;};};_abe .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",_gecf ,charcodes ,_fcdf .isCIDFont (),_efdg ,_bcccd );_gcbbc ++;_ffcg =append (_ffcg ,_gg .MissingCodeString );};if _gcbbc !=0{_abe .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 ),_gcbbc ,_efdg );};return _ffcg ,len (_ffcg ),_gcbbc ;};
// GetPageLabels returns the PageLabels entry in the PDF catalog.
// See section 12.4.2 "Page Labels" (p. 382 PDF32000_2008).
func (_dbaed *PdfReader )GetPageLabels ()(_aef .PdfObject ,error ){_feeb :=_aef .ResolveReference (_dbaed ._acae .Get ("\u0050\u0061\u0067\u0065\u004c\u0061\u0062\u0065\u006c\u0073"));if _feeb ==nil {return nil ,nil ;};if !_dbaed ._afae {_aabdc :=_dbaed .traverseObjectData (_feeb );if _aabdc !=nil {return nil ,_aabdc ;};};return _feeb ,nil ;};
// SetAction sets the PDF action for the annotation link.
func (_fbca *PdfAnnotationLink )SetAction (action *PdfAction ){_fbca ._faec =action ;if action ==nil {_fbca .A =nil ;};};func (_cfg *PdfAnnotation )String ()string {_dbb :="";_dgdc ,_bdd :=_cfg .ToPdfObject ().(*_aef .PdfIndirectObject );if _bdd {_dbb =_b .Sprintf ("\u0025\u0054\u003a\u0020\u0025\u0073",_cfg ._eab ,_dgdc .PdfObject .String ());};return _dbb ;};
// EncryptionAlgorithm is used in EncryptOptions to change the default algorithm used to encrypt the document.
type EncryptionAlgorithm int ;func (_ddgad fontCommon )coreString ()string {_eabgd :="";if _ddgad ._bgfd !=nil {_eabgd =_ddgad ._bgfd .String ();};return _b .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",_ddgad ._ababd ,_ddgad ._fegdg ,_ddgad ._cebc ,_ddgad ._adfb ,_ddgad ._ddcbd !=nil ,_ddgad .fontFlags (),_eabgd );};
// 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 ;
// PdfWriter handles outputing PDF content.
type PdfWriter struct{_bdbdfg *_aef .PdfIndirectObject ;_gacae *_aef .PdfIndirectObject ;_cggg map[_aef .PdfObject ]struct{};_aage []_aef .PdfObject ;_cafea map[_aef .PdfObject ]struct{};_fgada []*_aef .PdfIndirectObject ;_aabdg *PdfOutlineTreeNode ;_abebc *_aef .PdfObjectDictionary ;_bacacb []_aef .PdfObject ;_caefd *_aef .PdfIndirectObject ;_fcadd *_bc .Writer ;_dfdcd int64 ;_geac error ;_ecfag *_aef .PdfCrypt ;_ebeb *_aef .PdfObjectDictionary ;_eebbg *_aef .PdfIndirectObject ;_acddd *_aef .PdfObjectArray ;_cfebb int ;_gbcce int ;_ecfeg *bool ;_eabcf map[_aef .PdfObject ][]*_aef .PdfObjectDictionary ;_feabe *PdfAcroForm ;_ceag Optimizer ;_ffede map[int ]crossReference ;_ccdaf int64 ;ObjNumOffset int ;_bcdd bool ;_gdbde _aef .XrefTable ;_bbbefb int64 ;_bfagd int64 ;_bfeac map[_aef .PdfObject ]int64 ;_dfdcb map[_aef .PdfObject ]struct{};};
// GetNumComponents returns the number of color components of the colorspace device.
// Returns 1 for a CalGray device.
func (_ffeb *PdfColorspaceCalGray )GetNumComponents ()int {return 1};
// K returns the value of the key component of the color.
func (_bddf *PdfColorDeviceCMYK )K ()float64 {return _bddf [3]};func (_dace *DSS )generateHashMaps ()error {_gdgc ,_bfecd :=_dace .generateHashMap (_dace .Certs );if _bfecd !=nil {return _bfecd ;};_bfbfe ,_bfecd :=_dace .generateHashMap (_dace .OCSPs );if _bfecd !=nil {return _bfecd ;};_fgegd ,_bfecd :=_dace .generateHashMap (_dace .CRLs );if _bfecd !=nil {return _bfecd ;};_dace ._ccagd =_gdgc ;_dace ._beef =_bfbfe ;_dace ._gfbg =_fgegd ;return nil ;};func (_agbdf *pdfFontSimple )getFontEncoding ()(_dcgg string ,_eaea map[_be .CharCode ]_be .GlyphName ,_cfec error ){_dcgg ="\u0053\u0074a\u006e\u0064\u0061r\u0064\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067";if _dbaa ,_afac :=_cbgcf [_agbdf ._fegdg ];_afac {_dcgg =_dbaa ;}else if _agbdf .fontFlags ()&_adfea !=0{for _eggab ,_dbcf :=range _cbgcf {if _dg .Contains (_agbdf ._fegdg ,_eggab ){_dcgg =_dbcf ;break ;};};};if _agbdf .Encoding ==nil {return _dcgg ,nil ,nil ;};switch _bgdd :=_agbdf .Encoding .(type ){case *_aef .PdfObjectName :return string (*_bgdd ),nil ,nil ;case *_aef .PdfObjectDictionary :_bbcea ,_ebefb :=_aef .GetName (_bgdd .Get ("\u0042\u0061\u0073e\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067"));if _ebefb {_dcgg =_bbcea .String ();};if _cafga :=_bgdd .Get ("D\u0069\u0066\u0066\u0065\u0072\u0065\u006e\u0063\u0065\u0073");_cafga !=nil {_caee ,_acedf :=_aef .GetArray (_cafga );if !_acedf {_abe .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",_bgdd ,_bgdd .Get ("D\u0069\u0066\u0066\u0065\u0072\u0065\u006e\u0063\u0065\u0073"));return "",nil ,_aef .ErrTypeError ;};_eaea ,_cfec =_be .FromFontDifferences (_caee );};return _dcgg ,_eaea ,_cfec ;default:_abe .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",_agbdf .Encoding ,_agbdf .Encoding );return "",nil ,_aef .ErrTypeError ;};};type pdfCIDFontType0 struct{fontCommon ;_edbgg *_aef .PdfIndirectObject ;_bbbe _be .TextEncoder ;
// Table 117 Entries in a CIDFont dictionary (page 269)
// (Required) Dictionary that defines the character collection of the CIDFont.
// See Table 116.
CIDSystemInfo *_aef .PdfObjectDictionary ;
// Glyph metrics fields (optional).
DW _aef .PdfObject ;W _aef .PdfObject ;DW2 _aef .PdfObject ;W2 _aef .PdfObject ;_gfbff map[_be .CharCode ]float64 ;_egcdc float64 ;};
// SetOCProperties sets the optional content properties.
func (_bddbc *PdfWriter )SetOCProperties (ocProperties _aef .PdfObject )error {_bgbaf :=_bddbc ._abebc ;if ocProperties !=nil {_abe .Log .Trace ("\u0053e\u0074\u0074\u0069\u006e\u0067\u0020\u004f\u0043\u0020\u0050\u0072o\u0070\u0065\u0072\u0074\u0069\u0065\u0073\u002e\u002e\u002e");_bgbaf .Set ("\u004f\u0043\u0050r\u006f\u0070\u0065\u0072\u0074\u0069\u0065\u0073",ocProperties );return _bddbc .addObjects (ocProperties );};return nil ;};func (_ebabb *LTV )generateVRIKey (_fgce *PdfSignature )(string ,error ){_dagc ,_aaaeg :=_daed (_fgce .Contents .Bytes ());if _aaaeg !=nil {return "",_aaaeg ;};return _dg .ToUpper (_eb .EncodeToString (_dagc )),nil ;};
// NewPdfAnnotationCaret returns a new caret annotation.
func NewPdfAnnotationCaret ()*PdfAnnotationCaret {_bebf :=NewPdfAnnotation ();_beda :=&PdfAnnotationCaret {};_beda .PdfAnnotation =_bebf ;_beda .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_bebf .SetContext (_beda );return _beda ;};
// PdfColorspaceDeviceRGB represents an RGB colorspace.
type PdfColorspaceDeviceRGB struct{};func _dddc (_bbgd _aef .PdfObject )(*PdfColorspaceCalGray ,error ){_daeb :=NewPdfColorspaceCalGray ();if _bddb ,_bedbg :=_bbgd .(*_aef .PdfIndirectObject );_bedbg {_daeb ._ggdc =_bddb ;};_bbgd =_aef .TraceToDirectObject (_bbgd );_gacb ,_fgcc :=_bbgd .(*_aef .PdfObjectArray );if !_fgcc {return nil ,_b .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _gacb .Len ()!=2{return nil ,_b .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");};_bbgd =_aef .TraceToDirectObject (_gacb .Get (0));_accde ,_fgcc :=_bbgd .(*_aef .PdfObjectName );if !_fgcc {return nil ,_b .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 *_accde !="\u0043a\u006c\u0047\u0072\u0061\u0079"{return nil ,_b .Errorf ("\u006eo\u0074\u0020\u0061\u0020\u0043\u0061\u006c\u0047\u0072\u0061\u0079 \u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063\u0065");};_bbgd =_aef .TraceToDirectObject (_gacb .Get (1));_afdd ,_fgcc :=_bbgd .(*_aef .PdfObjectDictionary );if !_fgcc {return nil ,_b .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");};_bbgd =_afdd .Get ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074");_bbgd =_aef .TraceToDirectObject (_bbgd );_bgbc ,_fgcc :=_bbgd .(*_aef .PdfObjectArray );if !_fgcc {return nil ,_b .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 _bgbc .Len ()!=3{return nil ,_b .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");};_gebg ,_gegd :=_bgbc .GetAsFloat64Slice ();if _gegd !=nil {return nil ,_gegd ;};_daeb .WhitePoint =_gebg ;_bbgd =_afdd .Get ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074");if _bbgd !=nil {_bbgd =_aef .TraceToDirectObject (_bbgd );_cded ,_daaf :=_bbgd .(*_aef .PdfObjectArray );if !_daaf {return nil ,_b .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 _cded .Len ()!=3{return nil ,_b .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");};_adabe ,_febb :=_cded .GetAsFloat64Slice ();if _febb !=nil {return nil ,_febb ;};_daeb .BlackPoint =_adabe ;};_bbgd =_afdd .Get ("\u0047\u0061\u006dm\u0061");if _bbgd !=nil {_bbgd =_aef .TraceToDirectObject (_bbgd );_egafb ,_bbgg :=_aef .GetNumberAsFloat (_bbgd );if _bbgg !=nil {return nil ,_b .Errorf ("C\u0061\u006c\u0047\u0072\u0061\u0079:\u0020\u0067\u0061\u006d\u006d\u0061\u0020\u006e\u006ft\u0020\u0061\u0020n\u0075m\u0062\u0065\u0072");};_daeb .Gamma =_egafb ;};return _daeb ,nil ;};func (_aedef *PdfWriter )writeObject (_gbgecf int ,_cgbeae _aef .PdfObject ){_abe .Log .Trace ("\u0057\u0072\u0069\u0074\u0065\u0020\u006f\u0062\u006a \u0023\u0025\u0064\u000a",_gbgecf );if _gadd ,_edecg :=_cgbeae .(*_aef .PdfIndirectObject );_edecg {_aedef ._ffede [_gbgecf ]=crossReference {Type :1,Offset :_aedef ._dfdcd ,Generation :_gadd .GenerationNumber };_eecaf :=_b .Sprintf ("\u0025d\u0020\u0030\u0020\u006f\u0062\u006a\n",_gbgecf );if _gedfd ,_egfgf :=_gadd .PdfObject .(*pdfSignDictionary );_egfgf {_gedfd ._ggbad =_aedef ._dfdcd +int64 (len (_eecaf ));};if _gadd .PdfObject ==nil {_abe .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");_gadd .PdfObject =_aef .MakeNull ();};_eecaf +=_gadd .PdfObject .WriteString ();_eecaf +="\u000a\u0065\u006e\u0064\u006f\u0062\u006a\u000a";_aedef .writeString (_eecaf );return ;};if _ggeba ,_dabga :=_cgbeae .(*_aef .PdfObjectStream );_dabga {_aedef ._ffede [_gbgecf ]=crossReference {Type :1,Offset :_aedef ._dfdcd ,Generation :_ggeba .GenerationNumber };_bbge :=_b .Sprintf ("\u0025d\u0020\u0030\u0020\u006f\u0062\u006a\n",_gbgecf );_bbge +=_ggeba .PdfObjectDictionary .WriteString ();_bbge +="\u000a\u0073\u0074\u0072\u0065\u0061\u006d\u000a";_aedef .writeString (_bbge );_aedef .writeBytes (_ggeba .Stream );_aedef .writeString ("\u000ae\u006ed\u0073\u0074\u0072\u0065\u0061m\u000a\u0065n\u0064\u006f\u0062\u006a\u000a");return ;};if _adfda ,_dgadd :=_cgbeae .(*_aef .PdfObjectStreams );_dgadd {_aedef ._ffede [_gbgecf ]=crossReference {Type :1,Offset :_aedef ._dfdcd ,Generation :_adfda .GenerationNumber };_ffcab :=_b .Sprintf ("\u0025d\u0020\u0030\u0020\u006f\u0062\u006a\n",_gbgecf );var _abbbc []string ;var _cddfb string ;var _cdbgb int64 ;for _gaaf ,_gefde :=range _adfda .Elements (){_ffeff ,_eeged :=_gefde .(*_aef .PdfIndirectObject );if !_eeged {_abe .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",_gbgecf ,_gefde );continue ;};_ebfed :=_ffeff .PdfObject .WriteString ()+"\u0020";_cddfb =_cddfb +_ebfed ;_abbbc =append (_abbbc ,_b .Sprintf ("\u0025\u0064\u0020%\u0064",_ffeff .ObjectNumber ,_cdbgb ));_aedef ._ffede [int (_ffeff .ObjectNumber )]=crossReference {Type :2,ObjectNumber :_gbgecf ,Index :_gaaf };_cdbgb =_cdbgb +int64 (len ([]byte (_ebfed )));};_eddfg :=_dg .Join (_abbbc ,"\u0020")+"\u0020";_dggcgb :=_aef .NewFlateEncoder ();_dgfad :=_dggcgb .MakeStreamDict ();_dgfad .Set (_aef .PdfObjectName ("\u0054\u0079\u0070\u0065"),_aef .MakeName ("\u004f\u0062\u006a\u0053\u0074\u006d"));_eegbfb :=int64 (_adfda .Len ());_dgfad .Set (_aef .PdfObjectName ("\u004e"),_aef .MakeInteger (_eegbfb ));_fcgdg :=int64 (len (_eddfg ));_dgfad .Set (_aef .PdfObjectName ("\u0046\u0069\u0072s\u0074"),_aef .MakeInteger (_fcgdg ));_ddeff ,_ :=_dggcgb .EncodeBytes ([]byte (_eddfg +_cddfb ));_geggdf :=int64 (len (_ddeff ));_dgfad .Set (_aef .PdfObjectName ("\u004c\u0065\u006e\u0067\u0074\u0068"),_aef .MakeInteger (_geggdf ));_ffcab +=_dgfad .WriteString ();_ffcab +="\u000a\u0073\u0074\u0072\u0065\u0061\u006d\u000a";_aedef .writeString (_ffcab );_aedef .writeBytes (_ddeff );_aedef .writeString ("\u000ae\u006ed\u0073\u0074\u0072\u0065\u0061m\u000a\u0065n\u0064\u006f\u0062\u006a\u000a");return ;};_aedef .writeString (_cgbeae .WriteString ());};
// Register registers (caches) a model to primitive object relationship.
func (_edaf *modelManager )Register (primitive _aef .PdfObject ,model PdfModel ){_edaf ._gfdb [model ]=primitive ;_edaf ._bgbf [primitive ]=model ;};func (_dbea *PdfReader )newPdfAnnotationTextFromDict (_ead *_aef .PdfObjectDictionary )(*PdfAnnotationText ,error ){_abdf :=PdfAnnotationText {};_daba ,_efeg :=_dbea .newPdfAnnotationMarkupFromDict (_ead );if _efeg !=nil {return nil ,_efeg ;};_abdf .PdfAnnotationMarkup =_daba ;_abdf .Open =_ead .Get ("\u004f\u0070\u0065\u006e");_abdf .Name =_ead .Get ("\u004e\u0061\u006d\u0065");_abdf .State =_ead .Get ("\u0053\u0074\u0061t\u0065");_abdf .StateModel =_ead .Get ("\u0053\u0074\u0061\u0074\u0065\u004d\u006f\u0064\u0065\u006c");return &_abdf ,nil ;};
// PdfAnnotation represents an annotation in PDF (section 12.5 p. 389).
type PdfAnnotation struct{_eab PdfModel ;Rect _aef .PdfObject ;Contents _aef .PdfObject ;P _aef .PdfObject ;NM _aef .PdfObject ;M _aef .PdfObject ;F _aef .PdfObject ;AP _aef .PdfObject ;AS _aef .PdfObject ;Border _aef .PdfObject ;C _aef .PdfObject ;StructParent _aef .PdfObject ;OC _aef .PdfObject ;_edc *_aef .PdfIndirectObject ;};
// IsEncrypted returns true if the PDF file is encrypted.
func (_fgdgf *PdfReader )IsEncrypted ()(bool ,error ){return _fgdgf ._gdbbd .IsEncrypted ()};
// Y returns the value of the yellow component of the color.
func (_abde *PdfColorDeviceCMYK )Y ()float64 {return _abde [2]};
// 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 (_cgca *PdfFont )GetCharMetrics (code _be .CharCode )(CharMetrics ,bool ){var _aebb _ecf .CharMetrics ;switch _dgfe :=_cgca ._dccga .(type ){case *pdfFontSimple :if _fdbae ,_cfdc :=_dgfe .GetCharMetrics (code );_cfdc {return _fdbae ,_cfdc ;};case *pdfFontType0 :if _ffbe ,_bdfa :=_dgfe .GetCharMetrics (code );_bdfa {return _ffbe ,_bdfa ;};case *pdfCIDFontType0 :if _gfbd ,_cegfc :=_dgfe .GetCharMetrics (code );_cegfc {return _gfbd ,_cegfc ;};case *pdfCIDFontType2 :if _acag ,_gcfg :=_dgfe .GetCharMetrics (code );_gcfg {return _acag ,_gcfg ;};default:_abe .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",_cgca ._dccga );return _aebb ,false ;};if _fgagae ,_afea :=_cgca .GetFontDescriptor ();_afea ==nil &&_fgagae !=nil {return _ecf .CharMetrics {Wx :_fgagae ._gbedb },true ;};_abe .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",_cgca );return _aebb ,false ;};func (_ddaad *PdfPage )setContainer (_bfae *_aef .PdfIndirectObject ){_bfae .PdfObject =_ddaad ._cbefa ;_ddaad ._gfbbf =_bfae ;};
// 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"`;};
// String implements interface PdfObject.
func (_de *PdfAction )String ()string {_ecfe ,_ebf :=_de .ToPdfObject ().(*_aef .PdfIndirectObject );if _ebf {return _b .Sprintf ("\u0025\u0054\u003a\u0020\u0025\u0073",_de ._ecb ,_ecfe .PdfObject .String ());};return "";};
// AddExtGState adds a graphics state to the XObject resources.
func (_bdedf *PdfPage )AddExtGState (name _aef .PdfObjectName ,egs *_aef .PdfObjectDictionary )error {if _bdedf .Resources ==nil {_bdedf .Resources =NewPdfPageResources ();};if _bdedf .Resources .ExtGState ==nil {_bdedf .Resources .ExtGState =_aef .MakeDict ();};_ddaef ,_dabbd :=_aef .TraceToDirectObject (_bdedf .Resources .ExtGState ).(*_aef .PdfObjectDictionary );if !_dabbd {_abe .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",_aef .TraceToDirectObject (_bdedf .Resources .ExtGState ));return _fa .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_ddaef .Set (name ,egs );return nil ;};
// C returns the value of the cyan component of the color.
func (_faged *PdfColorDeviceCMYK )C ()float64 {return _faged [0]};
// PdfAnnotationUnderline represents Underline annotations.
// (Section 12.5.6.10).
type PdfAnnotationUnderline struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _aef .PdfObject ;};
// PdfShadingType1 is a Function-based shading.
type PdfShadingType1 struct{*PdfShading ;Domain *_aef .PdfObjectArray ;Matrix *_aef .PdfObjectArray ;Function []PdfFunction ;};
// 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 []*_aef .PdfObjectStream ;OCSP []*_aef .PdfObjectStream ;CRL []*_aef .PdfObjectStream ;TU *_aef .PdfObjectString ;TS *_aef .PdfObjectString ;};func (_ggd *PdfReader )newPdfActionImportDataFromDict (_egde *_aef .PdfObjectDictionary )(*PdfActionImportData ,error ){_bbcg ,_bdg :=_bfc (_egde .Get ("\u0046"));if _bdg !=nil {return nil ,_bdg ;};return &PdfActionImportData {F :_bbcg },nil ;};