unipdf/model/model.go
2020-09-14 09:32:45 +00:00

2612 lines
635 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

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

//
// Copyright 2020 FoxyUtils ehf. All rights reserved.
//
// This is a commercial product and requires a license to operate.
// A trial license can be obtained at https://unidoc.io
//
// DO NOT EDIT: generated by unitwist Go source code obfuscator.
//
// Use of this source code is governed by the UniDoc End User License Agreement
// terms that can be accessed at https://unidoc.io/eula/
// Package model provides an interface for working with high-level objects (models) in PDF files, including
// reading and writing documents.
//
// The document structure of a PDF is constructed of a hierarchy of data models, representing a tree
// of information starting from the Document catalog (Figure 5 p. 80).
// It is based on the core package which handles core functionality such as file i/o, parsing and
// handling of primitive PDF objects (core.PdfObject).
//
// As an example of the interface, the following snippet can read the PDF and output the number of pages:
//
// f, err := os.Open(inputPath)
// if err != nil {
// return nil, err
// }
// defer f.Close()
// pdfReader, err := unipdf.NewPdfReader(f)
// if err != nil {
// fmt.Printf("Failed to read PDF file: %v\n", err)
// os.Exit(1)
// }
// numPages, err := pdfReader.GetNumPages()
// if err != nil {
// fmt.Printf("Failed to get number of pages: %v\n", err)
// os.Exit(1)
// }
// fmt.Printf("The PDF file has %d pages\n", numPages)
//
// For more examples, see the unidoc-examples repository on GitHub: https://github.com/unidoc/unidoc-examples
package model ;import (_g "bufio";_f "bytes";_e "encoding/binary";_gd "errors";_c "fmt";_ebg "github.com/unidoc/unipdf/v3/common";_ea "github.com/unidoc/unipdf/v3/common/license";_ce "github.com/unidoc/unipdf/v3/core";_ab "github.com/unidoc/unipdf/v3/core/security";_bc "github.com/unidoc/unipdf/v3/core/security/crypt";_fa "github.com/unidoc/unipdf/v3/internal/cmap";_age "github.com/unidoc/unipdf/v3/internal/imageutil";_ac "github.com/unidoc/unipdf/v3/internal/sampling";_cce "github.com/unidoc/unipdf/v3/internal/textencoding";_cc "github.com/unidoc/unipdf/v3/model/internal/fonts";_ef "github.com/unidoc/unipdf/v3/ps";_af "github.com/unidoc/unitype";_eg "image";_aa "image/color";_ "image/gif";_ "image/png";_cg "io";_dd "io/ioutil";_ag "math";_dg "math/rand";_baa "os";_ed "regexp";_ba "sort";_bd "strconv";_aga "strings";_a "time";_ee "unicode";_gg "unicode/utf8";);
// Val returns the value of the color.
func (_abbc *PdfColorCalGray )Val ()float64 {return float64 (*_abbc )};func _bbcea (_ccgaa _ce .PdfObject ){_ebg .Log .Debug ("\u006f\u0062\u006a\u003a\u0020\u0025\u0054\u0020\u0025\u0073",_ccgaa ,_ccgaa .String ());if _gbdgb ,_gcedd :=_ccgaa .(*_ce .PdfObjectStream );_gcedd {_dcabb ,_bfcbd :=_ce .DecodeStream (_gbdgb );if _bfcbd !=nil {_ebg .Log .Debug ("\u0045r\u0072\u006f\u0072\u003a\u0020\u0025v",_bfcbd );return ;};_ebg .Log .Debug ("D\u0065\u0063\u006f\u0064\u0065\u0064\u003a\u0020\u0025\u0073",_dcabb );}else if _afgc ,_afdcb :=_ccgaa .(*_ce .PdfIndirectObject );_afdcb {_ebg .Log .Debug ("\u0025\u0054\u0020%\u0076",_afgc .PdfObject ,_afgc .PdfObject );_ebg .Log .Debug ("\u0025\u0073",_afgc .PdfObject .String ());};};
// ToPdfObject implements interface PdfModel.
func (_cecg *PdfActionGoTo )ToPdfObject ()_ce .PdfObject {_cecg .PdfAction .ToPdfObject ();_fb :=_cecg ._bdf ;_bbb :=_fb .PdfObject .(*_ce .PdfObjectDictionary );_bbb .SetIfNotNil ("\u0053",_ce .MakeName (string (ActionTypeGoTo )));_bbb .SetIfNotNil ("\u0044",_cecg .D );return _fb ;};
// PdfAnnotationPolygon represents Polygon annotations.
// (Section 12.5.6.9).
type PdfAnnotationPolygon struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Vertices _ce .PdfObject ;LE _ce .PdfObject ;BS _ce .PdfObject ;IC _ce .PdfObject ;BE _ce .PdfObject ;IT _ce .PdfObject ;Measure _ce .PdfObject ;};
// GetContentStream returns the XObject Form's content stream.
func (_ccabdg *XObjectForm )GetContentStream ()([]byte ,error ){_gdgag ,_dggad :=_ce .DecodeStream (_ccabdg ._gcaa );if _dggad !=nil {return nil ,_dggad ;};return _gdgag ,nil ;};
// NewPdfDateFromTime will create a PdfDate based on the given time
func NewPdfDateFromTime (timeObj _a .Time )(PdfDate ,error ){_ddaad :=timeObj .Format ("\u002d\u0030\u0037\u003a\u0030\u0030");_adccc ,_ :=_bd .ParseInt (_ddaad [1:3],10,32);_cccdd ,_ :=_bd .ParseInt (_ddaad [4:6],10,32);return PdfDate {_ddacdb :int64 (timeObj .Year ()),_aegabg :int64 (timeObj .Month ()),_bded :int64 (timeObj .Day ()),_deefg :int64 (timeObj .Hour ()),_gbgg :int64 (timeObj .Minute ()),_eabcf :int64 (timeObj .Second ()),_agbae :_ddaad [0],_dfgga :_adccc ,_aabaf :_cccdd },nil ;};
// NewPdfColorspaceCalGray returns a new CalGray colorspace object.
func NewPdfColorspaceCalGray ()*PdfColorspaceCalGray {_ged :=&PdfColorspaceCalGray {};_ged .BlackPoint =[]float64 {0.0,0.0,0.0};_ged .Gamma =1;return _ged ;};
// ToPdfObject returns a PDF object representation of the outline item.
func (_bgede *OutlineItem )ToPdfObject ()_ce .PdfObject {_accb ,_ :=_bgede .ToPdfOutlineItem ();return _accb .ToPdfObject ();};
// HasFontByName checks if has font resource by name.
func (_bceb *PdfPage )HasFontByName (name _ce .PdfObjectName )bool {_faded ,_gacc :=_bceb .Resources .Font .(*_ce .PdfObjectDictionary );if !_gacc {return false ;};if _ffgbd :=_faded .Get (name );_ffgbd !=nil {return true ;};return false ;};
// NewPdfAnnotationStamp returns a new stamp annotation.
func NewPdfAnnotationStamp ()*PdfAnnotationStamp {_dff :=NewPdfAnnotation ();_decc :=&PdfAnnotationStamp {};_decc .PdfAnnotation =_dff ;_decc .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_dff .SetContext (_decc );return _decc ;};func (_cdecd *pdfCIDFontType0 )getFontDescriptor ()*PdfFontDescriptor {return _cdecd ._adae };
// 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 ;
// DecodeArray returns the range of color component values in CalRGB colorspace.
func (_ebaf *PdfColorspaceCalRGB )DecodeArray ()[]float64 {return []float64 {0.0,1.0,0.0,1.0,0.0,1.0};};
// IsShading specifies if the pattern is a shading pattern.
func (_debga *PdfPattern )IsShading ()bool {return _debga .PatternType ==2};
// NewPdfFilespecFromObj creates and returns a new PdfFilespec object.
func NewPdfFilespecFromObj (obj _ce .PdfObject )(*PdfFilespec ,error ){_dfccf :=&PdfFilespec {};var _fcbc *_ce .PdfObjectDictionary ;if _begc ,_dfbdb :=_ce .GetIndirect (obj );_dfbdb {_dfccf ._ddfgf =_begc ;_ddgbg ,_cecge :=_ce .GetDict (_begc .PdfObject );if !_cecge {_ebg .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 ,_ce .ErrTypeError ;};_fcbc =_ddgbg ;}else if _bbfdd ,_gdaea :=_ce .GetDict (obj );_gdaea {_dfccf ._ddfgf =_bbfdd ;_fcbc =_bbfdd ;}else {_ebg .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 ,_ce .ErrTypeError ;};if _fcbc ==nil {_ebg .Log .Debug ("\u0044i\u0063t\u0069\u006f\u006e\u0061\u0072y\u0020\u006di\u0073\u0073\u0069\u006e\u0067");return nil ,_gd .New ("\u0064\u0069\u0063t\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};if _bgcg :=_fcbc .Get ("\u0054\u0079\u0070\u0065");_bgcg !=nil {_ebee ,_fdgb :=_bgcg .(*_ce .PdfObjectName );if !_fdgb {_ebg .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",_bgcg );}else {if *_ebee !="\u0046\u0069\u006c\u0065\u0073\u0070\u0065\u0063"{_ebg .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",*_ebee );};};};if _babc :=_fcbc .Get ("\u0046\u0053");_babc !=nil {_dfccf .FS =_babc ;};if _dcea :=_fcbc .Get ("\u0046");_dcea !=nil {_dfccf .F =_dcea ;};if _bfddbd :=_fcbc .Get ("\u0055\u0046");_bfddbd !=nil {_dfccf .UF =_bfddbd ;};if _acb :=_fcbc .Get ("\u0044\u004f\u0053");_acb !=nil {_dfccf .DOS =_acb ;};if _ggbc :=_fcbc .Get ("\u004d\u0061\u0063");_ggbc !=nil {_dfccf .Mac =_ggbc ;};if _bdgg :=_fcbc .Get ("\u0055\u006e\u0069\u0078");_bdgg !=nil {_dfccf .Unix =_bdgg ;};if _fega :=_fcbc .Get ("\u0049\u0044");_fega !=nil {_dfccf .ID =_fega ;};if _gedb :=_fcbc .Get ("\u0056");_gedb !=nil {_dfccf .V =_gedb ;};if _egbbb :=_fcbc .Get ("\u0045\u0046");_egbbb !=nil {_dfccf .EF =_egbbb ;};if _efegd :=_fcbc .Get ("\u0052\u0046");_efegd !=nil {_dfccf .RF =_efegd ;};if _feag :=_fcbc .Get ("\u0044\u0065\u0073\u0063");_feag !=nil {_dfccf .Desc =_feag ;};if _efafa :=_fcbc .Get ("\u0043\u0049");_efafa !=nil {_dfccf .CI =_efafa ;};return _dfccf ,nil ;};
// NewOutlineItem returns a new outline item instance.
func NewOutlineItem (title string ,dest OutlineDest )*OutlineItem {return &OutlineItem {Title :title ,Dest :dest };};func (_bad *PdfReader )newPdfActionFromIndirectObject (_aece *_ce .PdfIndirectObject )(*PdfAction ,error ){_abb ,_cac :=_aece .PdfObject .(*_ce .PdfObjectDictionary );if !_cac {return nil ,_c .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 :=_bad ._cbdfb .GetModelFromPrimitive (_abb );model !=nil {_cfg ,_gdg :=model .(*PdfAction );if !_gdg {return nil ,_c .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 _cfg ,nil ;};_bga :=&PdfAction {};_bga ._bdf =_aece ;_bad ._cbdfb .Register (_abb ,_bga );if _acd :=_abb .Get ("\u0054\u0079\u0070\u0065");_acd !=nil {_cbe ,_dcb :=_acd .(*_ce .PdfObjectName );if !_dcb {_ebg .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",_acd );}else {if *_cbe !="\u0041\u0063\u0074\u0069\u006f\u006e"{_ebg .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",*_cbe );};_bga .Type =_cbe ;};};if _gff :=_abb .Get ("\u004e\u0065\u0078\u0074");_gff !=nil {_bga .Next =_gff ;};if _fcg :=_abb .Get ("\u0053");_fcg !=nil {_bga .S =_fcg ;};_fda ,_cef :=_bga .S .(*_ce .PdfObjectName );if !_cef {_ebg .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",_bga .S );return nil ,_c .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",_bga .S );};_fec :=PdfActionType (_fda .String ());switch _fec {case ActionTypeGoTo :_gfe ,_dcg :=_bad .newPdfActionGotoFromDict (_abb );if _dcg !=nil {return nil ,_dcg ;};_gfe .PdfAction =_bga ;_bga ._cga =_gfe ;return _bga ,nil ;case ActionTypeGoToR :_eefb ,_agb :=_bad .newPdfActionGotoRFromDict (_abb );if _agb !=nil {return nil ,_agb ;};_eefb .PdfAction =_bga ;_bga ._cga =_eefb ;return _bga ,nil ;case ActionTypeGoToE :_egg ,_bgac :=_bad .newPdfActionGotoEFromDict (_abb );if _bgac !=nil {return nil ,_bgac ;};_egg .PdfAction =_bga ;_bga ._cga =_egg ;return _bga ,nil ;case ActionTypeLaunch :_agf ,_bdeb :=_bad .newPdfActionLaunchFromDict (_abb );if _bdeb !=nil {return nil ,_bdeb ;};_agf .PdfAction =_bga ;_bga ._cga =_agf ;return _bga ,nil ;case ActionTypeThread :_dcd ,_cfd :=_bad .newPdfActionThreadFromDict (_abb );if _cfd !=nil {return nil ,_cfd ;};_dcd .PdfAction =_bga ;_bga ._cga =_dcd ;return _bga ,nil ;case ActionTypeURI :_adfg ,_ead :=_bad .newPdfActionURIFromDict (_abb );if _ead !=nil {return nil ,_ead ;};_adfg .PdfAction =_bga ;_bga ._cga =_adfg ;return _bga ,nil ;case ActionTypeSound :_eag ,_ade :=_bad .newPdfActionSoundFromDict (_abb );if _ade !=nil {return nil ,_ade ;};_eag .PdfAction =_bga ;_bga ._cga =_eag ;return _bga ,nil ;case ActionTypeMovie :_cgf ,_aac :=_bad .newPdfActionMovieFromDict (_abb );if _aac !=nil {return nil ,_aac ;};_cgf .PdfAction =_bga ;_bga ._cga =_cgf ;return _bga ,nil ;case ActionTypeHide :_fde ,_eab :=_bad .newPdfActionHideFromDict (_abb );if _eab !=nil {return nil ,_eab ;};_fde .PdfAction =_bga ;_bga ._cga =_fde ;return _bga ,nil ;case ActionTypeNamed :_fcgg ,_abcf :=_bad .newPdfActionNamedFromDict (_abb );if _abcf !=nil {return nil ,_abcf ;};_fcgg .PdfAction =_bga ;_bga ._cga =_fcgg ;return _bga ,nil ;case ActionTypeSubmitForm :_ece ,_cefg :=_bad .newPdfActionSubmitFormFromDict (_abb );if _cefg !=nil {return nil ,_cefg ;};_ece .PdfAction =_bga ;_bga ._cga =_ece ;return _bga ,nil ;case ActionTypeResetForm :_fcce ,_ddfe :=_bad .newPdfActionResetFormFromDict (_abb );if _ddfe !=nil {return nil ,_ddfe ;};_fcce .PdfAction =_bga ;_bga ._cga =_fcce ;return _bga ,nil ;case ActionTypeImportData :_gbf ,_ebeb :=_bad .newPdfActionImportDataFromDict (_abb );if _ebeb !=nil {return nil ,_ebeb ;};_gbf .PdfAction =_bga ;_bga ._cga =_gbf ;return _bga ,nil ;case ActionTypeSetOCGState :_dca ,_dbe :=_bad .newPdfActionSetOCGStateFromDict (_abb );if _dbe !=nil {return nil ,_dbe ;};_dca .PdfAction =_bga ;_bga ._cga =_dca ;return _bga ,nil ;case ActionTypeRendition :_faf ,_ge :=_bad .newPdfActionRenditionFromDict (_abb );if _ge !=nil {return nil ,_ge ;};_faf .PdfAction =_bga ;_bga ._cga =_faf ;return _bga ,nil ;case ActionTypeTrans :_ada ,_bcg :=_bad .newPdfActionTransFromDict (_abb );if _bcg !=nil {return nil ,_bcg ;};_ada .PdfAction =_bga ;_bga ._cga =_ada ;return _bga ,nil ;case ActionTypeGoTo3DView :_bgg ,_eabb :=_bad .newPdfActionGoTo3DViewFromDict (_abb );if _eabb !=nil {return nil ,_eabb ;};_bgg .PdfAction =_bga ;_bga ._cga =_bgg ;return _bga ,nil ;case ActionTypeJavaScript :_aba ,_gbab :=_bad .newPdfActionJavaScriptFromDict (_abb );if _gbab !=nil {return nil ,_gbab ;};_aba .PdfAction =_bga ;_bga ._cga =_aba ;return _bga ,nil ;};_ebg .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",_fec );return nil ,nil ;};
// NewPdfActionHide returns a new "hide" action.
func NewPdfActionHide ()*PdfActionHide {_fgf :=NewPdfAction ();_cbg :=&PdfActionHide {};_cbg .PdfAction =_fgf ;_fgf .SetContext (_cbg );return _cbg ;};
// BaseFont returns the font's "BaseFont" field.
func (_ddeef *PdfFont )BaseFont ()string {return _ddeef .baseFields ()._agcagf };
// ToPdfOutline returns a low level PdfOutline object, based on the current
// instance.
func (_gfdcb *Outline )ToPdfOutline ()*PdfOutline {_bbfea :=NewPdfOutline ();var _gegda []*PdfOutlineItem ;var _dcfag int64 ;var _afbbd *PdfOutlineItem ;for _ ,_cfee :=range _gfdcb .Entries {_fead ,_ffadf :=_cfee .ToPdfOutlineItem ();_fead .Parent =&_bbfea .PdfOutlineTreeNode ;if _afbbd !=nil {_afbbd .Next =&_fead .PdfOutlineTreeNode ;_fead .Prev =&_afbbd .PdfOutlineTreeNode ;};_gegda =append (_gegda ,_fead );_dcfag +=_ffadf ;_afbbd =_fead ;};_bbeff :=int64 (len (_gegda ));_dcfag +=int64 (_bbeff );if _bbeff > 0{_bbfea .First =&_gegda [0].PdfOutlineTreeNode ;_bbfea .Last =&_gegda [_bbeff -1].PdfOutlineTreeNode ;_bbfea .Count =&_dcfag ;};return _bbfea ;};func _cgefg ()string {return _gedg };
// GetContainingPdfObject implements interface PdfModel.
func (_dc *PdfAction )GetContainingPdfObject ()_ce .PdfObject {return _dc ._bdf };
// ToGray returns a PdfColorDeviceGray color based on the current RGB color.
func (_fabc *PdfColorDeviceRGB )ToGray ()*PdfColorDeviceGray {_aegf :=0.3*_fabc .R ()+0.59*_fabc .G ()+0.11*_fabc .B ();_aegf =_ag .Min (_ag .Max (_aegf ,0.0),1.0);return NewPdfColorDeviceGray (_aegf );};
// 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 (_fbeec *PdfFont )RunesToCharcodeBytes (data []rune )([]byte ,int ){var _ecaf []_cce .TextEncoder ;if _ddbg :=_fbeec .baseFields ()._fefb ;_ddbg !=nil {_ecaf =append (_ecaf ,_cce .NewCMapEncoder ("",nil ,_ddbg ));};if _adge :=_fbeec .Encoder ();_adge !=nil {_ecaf =append (_ecaf ,_adge );};var _bcdd _f .Buffer ;var _cbegc int ;for _ ,_efebf :=range data {var _beda bool ;for _ ,_dfee :=range _ecaf {if _gegd :=_dfee .Encode (string (_efebf ));len (_gegd )> 0{_bcdd .Write (_gegd );_beda =true ;break ;};};if !_beda {_ebg .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",_efebf );_cbegc ++;};};if _cbegc !=0{_ebg .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 ),_cbegc ,_fbeec ,_ecaf );};return _bcdd .Bytes (),_cbegc ;};
// 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 (_efdc *PdfAcroForm )FillWithAppearance (provider FieldValueProvider ,appGen FieldAppearanceGenerator )error {return _efdc .fill (provider ,appGen );};
// UpdatePage updates the `page` in the new revision if it has changed.
func (_fccd *PdfAppender )UpdatePage (page *PdfPage ){_fccd .updateObjectsDeep (page .ToPdfObject (),nil )};
// PdfShadingType7 is a Tensor-product patch mesh.
type PdfShadingType7 struct{*PdfShading ;BitsPerCoordinate *_ce .PdfObjectInteger ;BitsPerComponent *_ce .PdfObjectInteger ;BitsPerFlag *_ce .PdfObjectInteger ;Decode *_ce .PdfObjectArray ;Function []PdfFunction ;};
// HasXObjectByName checks if has XObject resource by name.
func (_edddf *PdfPage )HasXObjectByName (name _ce .PdfObjectName )bool {_gfaa ,_eedf :=_edddf .Resources .XObject .(*_ce .PdfObjectDictionary );if !_eedf {return false ;};if _gcggc :=_gfaa .Get (name );_gcggc !=nil {return true ;};return false ;};
// IsCID returns true if the underlying font is CID.
func (_gccb *PdfFont )IsCID ()bool {return _gccb .baseFields ().isCIDFont ()};
// ToPdfObject implements interface PdfModel.
func (_eff *PdfAction )ToPdfObject ()_ce .PdfObject {_ad :=_eff ._bdf ;_edf :=_ad .PdfObject .(*_ce .PdfObjectDictionary );_edf .Clear ();_edf .Set ("\u0054\u0079\u0070\u0065",_ce .MakeName ("\u0041\u0063\u0074\u0069\u006f\u006e"));_edf .SetIfNotNil ("\u0053",_eff .S );_edf .SetIfNotNil ("\u004e\u0065\u0078\u0074",_eff .Next );return _ad ;};
// ToPdfObject converts colorspace to a PDF object. [/Indexed base hival lookup]
func (_faec *PdfColorspaceSpecialIndexed )ToPdfObject ()_ce .PdfObject {_ddcbc :=_ce .MakeArray (_ce .MakeName ("\u0049n\u0064\u0065\u0078\u0065\u0064"));_ddcbc .Append (_faec .Base .ToPdfObject ());_ddcbc .Append (_ce .MakeInteger (int64 (_faec .HiVal )));_ddcbc .Append (_faec .Lookup );if _faec ._deeae !=nil {_faec ._deeae .PdfObject =_ddcbc ;return _faec ._deeae ;};return _ddcbc ;};
// GetRuneMetrics returns the character metrics for the specified rune.
// A bool flag is returned to indicate whether or not the entry was found.
func (_fcabg pdfCIDFontType0 )GetRuneMetrics (r rune )(_cc .CharMetrics ,bool ){return _cc .CharMetrics {Wx :_fcabg ._ccff },true ;};
// GetCharMetrics returns the char metrics for character code `code`.
func (_eeabe pdfFontType0 )GetCharMetrics (code _cce .CharCode )(_cc .CharMetrics ,bool ){if _eeabe .DescendantFont ==nil {_ebg .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",_eeabe );return _cc .CharMetrics {},false ;};return _eeabe .DescendantFont .GetCharMetrics (code );};
// PdfFieldChoice represents a choice field which includes scrollable list boxes and combo boxes.
type PdfFieldChoice struct{*PdfField ;Opt *_ce .PdfObjectArray ;TI *_ce .PdfObjectInteger ;I *_ce .PdfObjectArray ;};
// Insert adds a top level outline item in the outline,
// at the specified index.
func (_eebbd *Outline )Insert (index uint ,item *OutlineItem ){_fefc :=uint (len (_eebbd .Entries ));if index > _fefc {index =_fefc ;};_eebbd .Entries =append (_eebbd .Entries [:index ],append ([]*OutlineItem {item },_eebbd .Entries [index :]...)...);};func _gebbf ()string {_fbgba :=_ea .GetLicenseKey ();if len (_gdaaef )> 0&&(_fbgba .IsLicensed ()||_aggac ){return _gdaaef ;};return _c .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",_fgeee (),_fbgba .TypeToString ());};
// ToPdfObject implements interface PdfModel.
func (_gdb *PdfActionURI )ToPdfObject ()_ce .PdfObject {_gdb .PdfAction .ToPdfObject ();_abd :=_gdb ._bdf ;_adg :=_abd .PdfObject .(*_ce .PdfObjectDictionary );_adg .SetIfNotNil ("\u0053",_ce .MakeName (string (ActionTypeURI )));_adg .SetIfNotNil ("\u0055\u0052\u0049",_gdb .URI );_adg .SetIfNotNil ("\u0049\u0073\u004da\u0070",_gdb .IsMap );return _abd ;};
// GetPageAsIndirectObject returns the page as a dictionary within an PdfIndirectObject.
func (_bebfc *PdfPage )GetPageAsIndirectObject ()*_ce .PdfIndirectObject {return _bebfc ._adcebd };
// 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 ;};
// PdfActionThread represents a thread action.
type PdfActionThread struct{*PdfAction ;F *PdfFilespec ;D _ce .PdfObject ;B _ce .PdfObject ;};func _ggac ()string {if len (_gbaa )> 0{return _gbaa ;};return "\u0055n\u0069\u0044\u006f\u0063 \u002d\u0020\u0068\u0074\u0074p\u003a/\u002fu\u006e\u0069\u0064\u006f\u0063\u002e\u0069o";};
// NewPdfActionGoTo3DView returns a new "goTo3DView" action.
func NewPdfActionGoTo3DView ()*PdfActionGoTo3DView {_gb :=NewPdfAction ();_fceb :=&PdfActionGoTo3DView {};_fceb .PdfAction =_gb ;_gb .SetContext (_fceb );return _fceb ;};func _faeb (_dbde _ce .PdfObject )(*fontFile ,error ){_ebg .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",_dbde );_fbbb :=&fontFile {};_dbde =_ce .TraceToDirectObject (_dbde );_deec ,_fbcaa :=_dbde .(*_ce .PdfObjectStream );if !_fbcaa {_ebg .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",_dbde );return nil ,_ce .ErrTypeError ;};_cdagd :=_deec .PdfObjectDictionary ;_afcgd ,_adceb :=_ce .DecodeStream (_deec );if _adceb !=nil {return nil ,_adceb ;};_bfdg ,_fbcaa :=_ce .GetNameVal (_cdagd .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065"));if !_fbcaa {_fbbb ._fgfbg =_bfdg ;if _bfdg =="\u0054\u0079\u0070\u0065\u0031\u0043"{_ebg .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 ;};};_ffgca ,_ :=_ce .GetIntVal (_cdagd .Get ("\u004ce\u006e\u0067\u0074\u0068\u0031"));_fbdag ,_ :=_ce .GetIntVal (_cdagd .Get ("\u004ce\u006e\u0067\u0074\u0068\u0032"));if _ffgca > len (_afcgd ){_ffgca =len (_afcgd );};if _ffgca +_fbdag > len (_afcgd ){_fbdag =len (_afcgd )-_ffgca ;};_dabfe :=_afcgd [:_ffgca ];var _cbbcd []byte ;if _fbdag > 0{_cbbcd =_afcgd [_ffgca :_ffgca +_fbdag ];};if _ffgca > 0&&_fbdag > 0{_eafgb :=_fbbb .loadFromSegments (_dabfe ,_cbbcd );if _eafgb !=nil {return nil ,_eafgb ;};};return _fbbb ,nil ;};
// DecodeArray returns the range of color component values in the Lab colorspace.
func (_cbde *PdfColorspaceLab )DecodeArray ()[]float64 {_dbfa :=[]float64 {0,100};if _cbde .Range !=nil &&len (_cbde .Range )==4{_dbfa =append (_dbfa ,_cbde .Range ...);}else {_dbfa =append (_dbfa ,-100,100,-100,100);};return _dbfa ;};func (_gfgf *PdfReader )newPdfAnnotationSquareFromDict (_geb *_ce .PdfObjectDictionary )(*PdfAnnotationSquare ,error ){_bggg :=PdfAnnotationSquare {};_debbb ,_agba :=_gfgf .newPdfAnnotationMarkupFromDict (_geb );if _agba !=nil {return nil ,_agba ;};_bggg .PdfAnnotationMarkup =_debbb ;_bggg .BS =_geb .Get ("\u0042\u0053");_bggg .IC =_geb .Get ("\u0049\u0043");_bggg .BE =_geb .Get ("\u0042\u0045");_bggg .RD =_geb .Get ("\u0052\u0044");return &_bggg ,nil ;};
// ToUnicode returns the name of the font's "ToUnicode" field if there is one, or "" if there isn't.
func (_bgegf *PdfFont )ToUnicode ()string {if _bgegf .baseFields ()._fefb ==nil {return "";};return _bgegf .baseFields ()._fefb .Name ();};
// AppendContentStream adds content stream by string. Appends to the last
// contentstream instance if many.
func (_deaae *PdfPage )AppendContentStream (contentStr string )error {_bgggb ,_fdeda :=_deaae .GetContentStreams ();if _fdeda !=nil {return _fdeda ;};if len (_bgggb )==0{_bgggb =[]string {contentStr };return _deaae .SetContentStreams (_bgggb ,_ce .NewFlateEncoder ());};var _gaffe _f .Buffer ;_gaffe .WriteString (_bgggb [len (_bgggb )-1]);_gaffe .WriteString ("\u000a");_gaffe .WriteString (contentStr );_bgggb [len (_bgggb )-1]=_gaffe .String ();return _deaae .SetContentStreams (_bgggb ,_ce .NewFlateEncoder ());};
// AddImageResource adds an image to the XObject resources.
func (_ggbf *PdfPage )AddImageResource (name _ce .PdfObjectName ,ximg *XObjectImage )error {var _ddcae *_ce .PdfObjectDictionary ;if _ggbf .Resources .XObject ==nil {_ddcae =_ce .MakeDict ();_ggbf .Resources .XObject =_ddcae ;}else {var _bacfa bool ;_ddcae ,_bacfa =(_ggbf .Resources .XObject ).(*_ce .PdfObjectDictionary );if !_bacfa {return _gd .New ("\u0069\u006e\u0076\u0061li\u0064\u0020\u0078\u0072\u0065\u0073\u0020\u0064\u0069\u0063\u0074\u0020\u0074\u0079p\u0065");};};_ddcae .Set (name ,ximg .ToPdfObject ());return nil ;};
// ToPdfObject return the CalGray colorspace as a PDF object (name dictionary).
func (_ccdd *PdfColorspaceCalGray )ToPdfObject ()_ce .PdfObject {_feeb :=&_ce .PdfObjectArray {};_feeb .Append (_ce .MakeName ("\u0043a\u006c\u0047\u0072\u0061\u0079"));_baga :=_ce .MakeDict ();if _ccdd .WhitePoint !=nil {_baga .Set ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074",_ce .MakeArray (_ce .MakeFloat (_ccdd .WhitePoint [0]),_ce .MakeFloat (_ccdd .WhitePoint [1]),_ce .MakeFloat (_ccdd .WhitePoint [2])));}else {_ebg .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 _ccdd .BlackPoint !=nil {_baga .Set ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074",_ce .MakeArray (_ce .MakeFloat (_ccdd .BlackPoint [0]),_ce .MakeFloat (_ccdd .BlackPoint [1]),_ce .MakeFloat (_ccdd .BlackPoint [2])));};_baga .Set ("\u0047\u0061\u006dm\u0061",_ce .MakeFloat (_ccdd .Gamma ));_feeb .Append (_baga );if _ccdd ._bcbf !=nil {_ccdd ._bcbf .PdfObject =_feeb ;return _ccdd ._bcbf ;};return _feeb ;};func (_aeba *PdfReader )newPdfActionLaunchFromDict (_gfd *_ce .PdfObjectDictionary )(*PdfActionLaunch ,error ){_dgbe ,_egb :=_cbc (_gfd .Get ("\u0046"));if _egb !=nil {return nil ,_egb ;};return &PdfActionLaunch {Win :_gfd .Get ("\u0057\u0069\u006e"),Mac :_gfd .Get ("\u004d\u0061\u0063"),Unix :_gfd .Get ("\u0055\u006e\u0069\u0078"),NewWindow :_gfd .Get ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw"),F :_dgbe },nil ;};
// Sign signs a specific page with a digital signature.
// The signature field parameter must have a valid signature dictionary
// specified by its V field.
func (_caa *PdfAppender )Sign (pageNum int ,field *PdfFieldSignature )error {if field ==nil {return _gd .New ("\u0073\u0069g\u006e\u0061\u0074\u0075\u0072\u0065\u0020\u0066\u0069\u0065\u006c\u0064\u0020\u0063\u0061\u006e\u006e\u006f\u0074\u0020\u0062\u0065 n\u0069\u006c");};_ebd :=field .V ;if _ebd ==nil {return _gd .New ("\u0073\u0069\u0067na\u0074\u0075\u0072\u0065\u0020\u0064\u0069\u0063\u0074i\u006fn\u0061r\u0079 \u0063\u0061\u006e\u006e\u006f\u0074\u0020\u0062\u0065\u0020\u006e\u0069\u006c");};_baaac :=pageNum -1;if _baaac < 0||_baaac > len (_caa ._fdef )-1{return _c .Errorf ("\u0070\u0061\u0067\u0065\u0020\u0025\u0064\u0020\u006e\u006f\u0074\u0020f\u006f\u0075\u006e\u0064",pageNum );};_dagg :=_caa .Reader .PageList [_baaac ];field .P =_dagg .ToPdfObject ();if field .T ==nil ||field .T .String ()==""{field .T =_ce .MakeString (_c .Sprintf ("\u0053\u0069\u0067n\u0061\u0074\u0075\u0072\u0065\u0020\u0025\u0064",pageNum ));};_dagg .AddAnnotation (field .PdfAnnotationWidget .PdfAnnotation );if _caa ._dba ==_caa ._aega .AcroForm {_caa ._dba =_caa .Reader .AcroForm ;};_bced :=_caa ._dba ;if _bced ==nil {_bced =NewPdfAcroForm ();};_bced .SigFlags =_ce .MakeInteger (3);_gebb :=append (_bced .AllFields (),field .PdfField );_bced .Fields =&_gebb ;_caa .ReplaceAcroForm (_bced );_caa .UpdatePage (_dagg );_caa ._fdef [_baaac ]=_dagg ;return nil ;};func _cbc (_gfaf _ce .PdfObject )(*PdfFilespec ,error ){if _gfaf ==nil {return nil ,nil ;};return NewPdfFilespecFromObj (_gfaf );};
// ColorToRGB converts gray -> rgb for a single color component.
func (_bega *PdfColorspaceDeviceGray )ColorToRGB (color PdfColor )(PdfColor ,error ){_acfb ,_gfed :=color .(*PdfColorDeviceGray );if !_gfed {_ebg .Log .Debug ("\u0049\u006e\u0070\u0075\u0074\u0020\u0063\u006f\u006c\u006fr\u0020\u006e\u006f\u0074\u0020\u0064\u0065v\u0069\u0063\u0065\u0020\u0067\u0072\u0061\u0079\u0020\u0025\u0054",color );return nil ,_gd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};return NewPdfColorDeviceRGB (float64 (*_acfb ),float64 (*_acfb ),float64 (*_acfb )),nil ;};func (_eda *PdfReader )newPdfAnnotationRedactFromDict (_ddfd *_ce .PdfObjectDictionary )(*PdfAnnotationRedact ,error ){_bed :=PdfAnnotationRedact {};_agca ,_bagc :=_eda .newPdfAnnotationMarkupFromDict (_ddfd );if _bagc !=nil {return nil ,_bagc ;};_bed .PdfAnnotationMarkup =_agca ;_bed .QuadPoints =_ddfd .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");_bed .IC =_ddfd .Get ("\u0049\u0043");_bed .RO =_ddfd .Get ("\u0052\u004f");_bed .OverlayText =_ddfd .Get ("O\u0076\u0065\u0072\u006c\u0061\u0079\u0054\u0065\u0078\u0074");_bed .Repeat =_ddfd .Get ("\u0052\u0065\u0070\u0065\u0061\u0074");_bed .DA =_ddfd .Get ("\u0044\u0041");_bed .Q =_ddfd .Get ("\u0051");return &_bed ,nil ;};func (_fdbff *pdfFontSimple )addEncoding ()error {var (_dgea string ;_eaebd map[_cce .CharCode ]_cce .GlyphName ;_fagc _cce .SimpleEncoder ;);if _fdbff .Encoder ()!=nil {_ddde ,_dfaf :=_fdbff .Encoder ().(_cce .SimpleEncoder );if _dfaf &&_ddde !=nil {_dgea =_ddde .BaseName ();};};if _fdbff .Encoding !=nil {_abef ,_cdbb ,_bgdcd :=_fdbff .getFontEncoding ();if _bgdcd !=nil {_ebg .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",_fdbff ._agcagf ,_fdbff ._dbbag ,_fdbff .Encoding ,_fdbff .Encoding ,_bgdcd );return _bgdcd ;};if _abef !=""{_dgea =_abef ;};_fagc ,_bgdcd =_cce .NewSimpleTextEncoder (_dgea ,_cdbb );if _bgdcd !=nil {return _bgdcd ;};};if _fagc ==nil {_dacec :=_fdbff ._adae ;if _dacec !=nil {switch _fdbff ._dbbag {case "\u0054\u0079\u0070e\u0031":if _dacec .fontFile !=nil &&_dacec .fontFile ._fbabb !=nil {_ebg .Log .Debug ("\u0055\u0073\u0069\u006e\u0067\u0020\u0066\u006f\u006et\u0046\u0069\u006c\u0065");_fagc =_dacec .fontFile ._fbabb ;};case "\u0054\u0072\u0075\u0065\u0054\u0079\u0070\u0065":if _dacec ._ggefa !=nil {_ebg .Log .Debug ("\u0055s\u0069n\u0067\u0020\u0046\u006f\u006e\u0074\u0046\u0069\u006c\u0065\u0032");_cgcbg ,_cbdea :=_dacec ._ggefa .MakeEncoder ();if _cbdea ==nil {_fagc =_cgcbg ;};};};};};if _fagc !=nil {if _eaebd !=nil {_ebg .Log .Trace ("\u0064\u0069\u0066fe\u0072\u0065\u006e\u0063\u0065\u0073\u003d\u0025\u002b\u0076\u0020\u0066\u006f\u006e\u0074\u003d\u0025\u0073",_eaebd ,_fdbff .baseFields ());_fagc =_cce .ApplyDifferences (_fagc ,_eaebd );};_fdbff .SetEncoder (_fagc );};return nil ;};func (_bbbfd *PdfWriter )addObjects (_aafba _ce .PdfObject )error {_ebg .Log .Trace ("\u0041d\u0064i\u006e\u0067\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0073\u0021");if _aefde ,_bgddg :=_aafba .(*_ce .PdfIndirectObject );_bgddg {_ebg .Log .Trace ("\u0049\u006e\u0064\u0069\u0072\u0065\u0063\u0074");_ebg .Log .Trace ("\u002d \u0025\u0073\u0020\u0028\u0025\u0070)",_aafba ,_aefde );_ebg .Log .Trace ("\u002d\u0020\u0025\u0073",_aefde .PdfObject );if _bbbfd .addObject (_aefde ){_fbcd :=_bbbfd .addObjects (_aefde .PdfObject );if _fbcd !=nil {return _fbcd ;};};return nil ;};if _ceace ,_bfdbe :=_aafba .(*_ce .PdfObjectStream );_bfdbe {_ebg .Log .Trace ("\u0053\u0074\u0072\u0065\u0061\u006d");_ebg .Log .Trace ("\u002d \u0025\u0073\u0020\u0025\u0070",_aafba ,_aafba );if _bbbfd .addObject (_ceace ){_ffdcd :=_bbbfd .addObjects (_ceace .PdfObjectDictionary );if _ffdcd !=nil {return _ffdcd ;};};return nil ;};if _cgeb ,_eadag :=_aafba .(*_ce .PdfObjectDictionary );_eadag {_ebg .Log .Trace ("\u0044\u0069\u0063\u0074");_ebg .Log .Trace ("\u002d\u0020\u0025\u0073",_aafba );for _ ,_dbgbd :=range _cgeb .Keys (){_gcefe :=_cgeb .Get (_dbgbd );if _eaege ,_adeee :=_gcefe .(*_ce .PdfObjectReference );_adeee {_gcefe =_eaege .Resolve ();_cgeb .Set (_dbgbd ,_gcefe );};if _dbgbd !="\u0050\u0061\u0072\u0065\u006e\u0074"{if _bcffe :=_bbbfd .addObjects (_gcefe );_bcffe !=nil {return _bcffe ;};}else {if _ ,_ggecf :=_gcefe .(*_ce .PdfObjectNull );_ggecf {continue ;};if _febb :=_bbbfd .hasObject (_gcefe );!_febb {_ebg .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",_gcefe ,_gcefe ,_gcefe );_bbbfd ._ggdc [_gcefe ]=append (_bbbfd ._ggdc [_gcefe ],_cgeb );};};};return nil ;};if _ddcbg ,_fafd :=_aafba .(*_ce .PdfObjectArray );_fafd {_ebg .Log .Trace ("\u0041\u0072\u0072a\u0079");_ebg .Log .Trace ("\u002d\u0020\u0025\u0073",_aafba );if _ddcbg ==nil {return _gd .New ("\u0061\u0072\u0072a\u0079\u0020\u0069\u0073\u0020\u006e\u0069\u006c");};for _bccca ,_dfadda :=range _ddcbg .Elements (){if _cfeec ,_afgbc :=_dfadda .(*_ce .PdfObjectReference );_afgbc {_dfadda =_cfeec .Resolve ();_ddcbg .Set (_bccca ,_dfadda );};if _gfabd :=_bbbfd .addObjects (_dfadda );_gfabd !=nil {return _gfabd ;};};return nil ;};if _ ,_afcec :=_aafba .(*_ce .PdfObjectReference );_afcec {_ebg .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",_aafba );return _gd .New ("r\u0065\u0066\u0065\u0072en\u0063e\u0020\u006e\u006f\u0074\u0020a\u006c\u006c\u006f\u0077\u0065\u0064");};return nil ;};
// ColorFromFloats returns a new PdfColor based on the input slice of color
// components.
func (_ffcc *PdfColorspaceSpecialPattern )ColorFromFloats (vals []float64 )(PdfColor ,error ){if _ffcc .UnderlyingCS ==nil {return nil ,_gd .New ("u\u006e\u0064\u0065\u0072\u006c\u0079i\u006e\u0067\u0020\u0043\u0053\u0020\u006e\u006f\u0074 \u0073\u0070\u0065c\u0069f\u0069\u0065\u0064");};return _ffcc .UnderlyingCS .ColorFromFloats (vals );};func (_dcf *PdfReader )newPdfAnnotationMovieFromDict (_egcb *_ce .PdfObjectDictionary )(*PdfAnnotationMovie ,error ){_bcfg :=PdfAnnotationMovie {};_bcfg .T =_egcb .Get ("\u0054");_bcfg .Movie =_egcb .Get ("\u004d\u006f\u0076i\u0065");_bcfg .A =_egcb .Get ("\u0041");return &_bcfg ,nil ;};
// PdfAnnotationCircle represents Circle annotations.
// (Section 12.5.6.8).
type PdfAnnotationCircle struct{*PdfAnnotation ;*PdfAnnotationMarkup ;BS _ce .PdfObject ;IC _ce .PdfObject ;BE _ce .PdfObject ;RD _ce .PdfObject ;};
// EncryptOptions represents encryption options for an output PDF.
type EncryptOptions struct{Permissions _ab .Permissions ;Algorithm EncryptionAlgorithm ;};
// NewPdfAnnotation3D returns a new 3d annotation.
func NewPdfAnnotation3D ()*PdfAnnotation3D {_dde :=NewPdfAnnotation ();_gbec :=&PdfAnnotation3D {};_gbec .PdfAnnotation =_dde ;_dde .SetContext (_gbec );return _gbec ;};
// NewPdfAnnotationLine returns a new line annotation.
func NewPdfAnnotationLine ()*PdfAnnotationLine {_bcgg :=NewPdfAnnotation ();_gaaf :=&PdfAnnotationLine {};_gaaf .PdfAnnotation =_bcgg ;_gaaf .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_bcgg .SetContext (_gaaf );return _gaaf ;};type pdfFont interface{_cc .Font ;
// ToPdfObject returns a PDF representation of the font and implements interface Model.
ToPdfObject ()_ce .PdfObject ;getFontDescriptor ()*PdfFontDescriptor ;baseFields ()*fontCommon ;};
// SetColorSpace sets `r` colorspace object to `colorspace`.
func (_gcec *PdfPageResources )SetColorSpace (colorspace *PdfPageResourcesColorspaces ){_gcec ._gddae =colorspace ;};func _cfcg (_cbca _ce .PdfObject )(*PdfColorspaceSpecialSeparation ,error ){_ddeaf :=NewPdfColorspaceSpecialSeparation ();if _bdde ,_eeag :=_cbca .(*_ce .PdfIndirectObject );_eeag {_ddeaf ._bedf =_bdde ;};_cbca =_ce .TraceToDirectObject (_cbca );_edgg ,_ecdfgb :=_cbca .(*_ce .PdfObjectArray );if !_ecdfgb {return nil ,_c .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 _edgg .Len ()!=4{return nil ,_c .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");};_cbca =_edgg .Get (0);_fafae ,_ecdfgb :=_cbca .(*_ce .PdfObjectName );if !_ecdfgb {return nil ,_c .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 *_fafae !="\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e"{return nil ,_c .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");};_cbca =_edgg .Get (1);_fafae ,_ecdfgb =_cbca .(*_ce .PdfObjectName );if !_ecdfgb {return nil ,_c .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");};_ddeaf .ColorantName =_fafae ;_cbca =_edgg .Get (2);_bbgee ,_baag :=NewPdfColorspaceFromPdfObject (_cbca );if _baag !=nil {return nil ,_baag ;};_ddeaf .AlternateSpace =_bbgee ;_aacd ,_baag :=_edddda (_edgg .Get (3));if _baag !=nil {return nil ,_baag ;};_ddeaf .TintTransform =_aacd ;return _ddeaf ,nil ;};
// NewPdfAnnotationStrikeOut returns a new text strikeout annotation.
func NewPdfAnnotationStrikeOut ()*PdfAnnotationStrikeOut {_ebcd :=NewPdfAnnotation ();_gffd :=&PdfAnnotationStrikeOut {};_gffd .PdfAnnotation =_ebcd ;_gffd .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_ebcd .SetContext (_gffd );return _gffd ;};
// SetPdfSubject sets the Subject attribute of the output PDF.
func SetPdfSubject (subject string ){_gedg =subject };func _eada (_bdga ,_aeed string )string {if _aga .Contains (_bdga ,"\u002b"){_gfae :=_aga .Split (_bdga ,"\u002b");if len (_gfae )==2{_bdga =_gfae [1];};};return _aeed +"\u002b"+_bdga ;};func (_dafa *PdfWriter )copyObjects (){_geaee :=make (map[_ce .PdfObject ]_ce .PdfObject );_fddb :=make ([]_ce .PdfObject ,0,len (_dafa ._agacd ));_fdbfg :=make (map[_ce .PdfObject ]struct{},len (_dafa ._agacd ));_acagc :=make (map[_ce .PdfObject ]struct{});for _ ,_gfgeff :=range _dafa ._agacd {_afcgdg :=_dafa .copyObject (_gfgeff ,_geaee ,_acagc ,false );if _ ,_acaf :=_acagc [_gfgeff ];_acaf {continue ;};_fddb =append (_fddb ,_afcgdg );_fdbfg [_afcgdg ]=struct{}{};};_dafa ._agacd =_fddb ;_dafa ._gdbdce =_fdbfg ;_dafa ._aagfa =_dafa .copyObject (_dafa ._aagfa ,_geaee ,nil ,false ).(*_ce .PdfIndirectObject );_dafa ._gedca =_dafa .copyObject (_dafa ._gedca ,_geaee ,nil ,false ).(*_ce .PdfIndirectObject );if _dafa ._gfdaf !=nil {_dafa ._gfdaf =_dafa .copyObject (_dafa ._gfdaf ,_geaee ,nil ,false ).(*_ce .PdfIndirectObject );};if _dafa ._cfgfc {_geebg :=make (map[_ce .PdfObject ]int64 );for _cgfae ,_fccf :=range _dafa ._dfgaa {if _agcfa ,_dagebe :=_geaee [_cgfae ];_dagebe {_geebg [_agcfa ]=_fccf ;}else {_ebg .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");};};_dafa ._dfgaa =_geebg ;};};
// Outline represents a PDF outline dictionary (Table 152 - p. 376).
// Currently, the Outline object can only be used to construct PDF outlines.
type Outline struct{Entries []*OutlineItem `json:"entries,omitempty"`;};func (_cfcge *PdfWriter )seekByName (_daeee _ce .PdfObject ,_degea []string ,_egcbg string )([]_ce .PdfObject ,error ){_ebg .Log .Trace ("\u0053\u0065\u0065\u006b\u0020\u0062\u0079\u0020\u006e\u0061\u006d\u0065.\u002e\u0020\u0025\u0054",_daeee );var _accae []_ce .PdfObject ;if _bbefd ,_gacaed :=_daeee .(*_ce .PdfIndirectObject );_gacaed {return _cfcge .seekByName (_bbefd .PdfObject ,_degea ,_egcbg );};if _fdgba ,_adfdd :=_daeee .(*_ce .PdfObjectStream );_adfdd {return _cfcge .seekByName (_fdgba .PdfObjectDictionary ,_degea ,_egcbg );};if _cgagc ,_gcdcd :=_daeee .(*_ce .PdfObjectDictionary );_gcdcd {_ebg .Log .Trace ("\u0044\u0069\u0063\u0074");for _ ,_ebdgb :=range _cgagc .Keys (){_ffbd :=_cgagc .Get (_ebdgb );if string (_ebdgb )==_egcbg {_accae =append (_accae ,_ffbd );};for _ ,_ddcaa :=range _degea {if string (_ebdgb )==_ddcaa {_ebg .Log .Trace ("\u0046\u006f\u006c\u006c\u006f\u0077\u0020\u006b\u0065\u0079\u0020\u0025\u0073",_ddcaa );_gfaec ,_gdfbc :=_cfcge .seekByName (_ffbd ,_degea ,_egcbg );if _gdfbc !=nil {return _accae ,_gdfbc ;};for _ ,_cdaad :=range _gfaec {_accae =append (_accae ,_cdaad );};break ;};};};return _accae ,nil ;};return _accae ,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 (_afbb *Image )SetSamples (samples []uint32 ){if _afbb .BitsPerComponent < 8{samples =_afbb .samplesAddPadding (samples );};_ccacf :=_ac .ResampleUint32 (samples ,int (_afbb .BitsPerComponent ),8);_fbed :=make ([]byte ,len (_ccacf ));for _cagef ,_acgg :=range _ccacf {_fbed [_cagef ]=byte (_acgg );};_afbb .Data =_fbed ;};
// C returns the value of the C component of the color.
func (_cadg *PdfColorCalRGB )C ()float64 {return float64 (_cadg [2])};
// ToPdfObject implements interface PdfModel.
func (_afbd *PdfAnnotationProjection )ToPdfObject ()_ce .PdfObject {_afbd .PdfAnnotation .ToPdfObject ();_fcf :=_afbd ._bda ;_beac :=_fcf .PdfObject .(*_ce .PdfObjectDictionary );_afbd .PdfAnnotationMarkup .appendToPdfDictionary (_beac );return _fcf ;};
// PdfAppender appends new PDF content to an existing PDF document via incremental updates.
type PdfAppender struct{_cbdd _cg .ReadSeeker ;_agbe *_ce .PdfParser ;_aega *PdfReader ;Reader *PdfReader ;_fdef []*PdfPage ;_dba *PdfAcroForm ;_bbbg _ce .XrefTable ;_afga int64 ;_beacf int ;_fadd []_ce .PdfObject ;_adba map[_ce .PdfObject ]struct{};_daea map[_ce .PdfObject ]int64 ;_gbfa map[_ce .PdfObject ]struct{};_bceec map[_ce .PdfObject ]struct{};_aeaa int64 ;_dgda bool ;};
// GetNumComponents returns the number of color components (1 for Separation).
func (_defa *PdfColorspaceSpecialSeparation )GetNumComponents ()int {return 1};func (_cfa *PdfColorspaceCalGray )String ()string {return "\u0043a\u006c\u0047\u0072\u0061\u0079"};
// R returns the value of the red component of the color.
func (_efac *PdfColorDeviceRGB )R ()float64 {return float64 (_efac [0])};
// ToPdfObject implements interface PdfModel.
func (_dabf *PdfAnnotationLink )ToPdfObject ()_ce .PdfObject {_dabf .PdfAnnotation .ToPdfObject ();_eecc :=_dabf ._bda ;_bbge :=_eecc .PdfObject .(*_ce .PdfObjectDictionary );_bbge .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ce .MakeName ("\u004c\u0069\u006e\u006b"));if _dabf ._eddb !=nil &&_dabf ._eddb ._cga !=nil {_bbge .Set ("\u0041",_dabf ._eddb ._cga .ToPdfObject ());}else if _dabf .A !=nil {_bbge .Set ("\u0041",_dabf .A );};_bbge .SetIfNotNil ("\u0044\u0065\u0073\u0074",_dabf .Dest );_bbge .SetIfNotNil ("\u0048",_dabf .H );_bbge .SetIfNotNil ("\u0050\u0041",_dabf .PA );_bbge .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_dabf .QuadPoints );_bbge .SetIfNotNil ("\u0042\u0053",_dabf .BS );return _eecc ;};
// ToPdfObject returns the PDF representation of the page resources.
func (_bbbe *PdfPageResources )ToPdfObject ()_ce .PdfObject {_dcgfb :=_bbbe ._eebf ;_dcgfb .SetIfNotNil ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e",_bbbe .ExtGState );if _bbbe ._gddae !=nil {_bbbe .ColorSpace =_bbbe ._gddae .ToPdfObject ();};_dcgfb .SetIfNotNil ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065",_bbbe .ColorSpace );_dcgfb .SetIfNotNil ("\u0050a\u0074\u0074\u0065\u0072\u006e",_bbbe .Pattern );_dcgfb .SetIfNotNil ("\u0053h\u0061\u0064\u0069\u006e\u0067",_bbbe .Shading );_dcgfb .SetIfNotNil ("\u0058O\u0062\u006a\u0065\u0063\u0074",_bbbe .XObject );_dcgfb .SetIfNotNil ("\u0046\u006f\u006e\u0074",_bbbe .Font );_dcgfb .SetIfNotNil ("\u0050r\u006f\u0063\u0053\u0065\u0074",_bbbe .ProcSet );_dcgfb .SetIfNotNil ("\u0050\u0072\u006f\u0070\u0065\u0072\u0074\u0069\u0065\u0073",_bbbe .Properties );return _dcgfb ;};
// ToPdfObject returns the PDF representation of the shading dictionary.
func (_efdfb *PdfShadingType5 )ToPdfObject ()_ce .PdfObject {_efdfb .PdfShading .ToPdfObject ();_ccggd ,_gbadf :=_efdfb .getShadingDict ();if _gbadf !=nil {_ebg .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 _efdfb .BitsPerCoordinate !=nil {_ccggd .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065",_efdfb .BitsPerCoordinate );};if _efdfb .BitsPerComponent !=nil {_ccggd .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_efdfb .BitsPerComponent );};if _efdfb .VerticesPerRow !=nil {_ccggd .Set ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073\u0050e\u0072\u0052\u006f\u0077",_efdfb .VerticesPerRow );};if _efdfb .Decode !=nil {_ccggd .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_efdfb .Decode );};if _efdfb .Function !=nil {if len (_efdfb .Function )==1{_ccggd .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_efdfb .Function [0].ToPdfObject ());}else {_acccd :=_ce .MakeArray ();for _ ,_aegab :=range _efdfb .Function {_acccd .Append (_aegab .ToPdfObject ());};_ccggd .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_acccd );};};return _efdfb ._efbab ;};
// SetShadingByName sets a shading resource specified by keyName.
func (_dedba *PdfPageResources )SetShadingByName (keyName _ce .PdfObjectName ,shadingObj _ce .PdfObject )error {if _dedba .Shading ==nil {_dedba .Shading =_ce .MakeDict ();};_ddfec ,_daafa :=_dedba .Shading .(*_ce .PdfObjectDictionary );if !_daafa {return _ce .ErrTypeError ;};_ddfec .Set (keyName ,shadingObj );return nil ;};func (_ggg *PdfReader )newPdfAnnotationStrikeOut (_beaa *_ce .PdfObjectDictionary )(*PdfAnnotationStrikeOut ,error ){_agbb :=PdfAnnotationStrikeOut {};_geeg ,_agcd :=_ggg .newPdfAnnotationMarkupFromDict (_beaa );if _agcd !=nil {return nil ,_agcd ;};_agbb .PdfAnnotationMarkup =_geeg ;_agbb .QuadPoints =_beaa .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");return &_agbb ,nil ;};func _fdcgd (_bage *_ce .PdfObjectDictionary )(*PdfFieldText ,error ){_edba :=&PdfFieldText {};_edba .DA ,_ =_ce .GetString (_bage .Get ("\u0044\u0041"));_edba .Q ,_ =_ce .GetInt (_bage .Get ("\u0051"));_edba .DS ,_ =_ce .GetString (_bage .Get ("\u0044\u0053"));_edba .RV =_bage .Get ("\u0052\u0056");_edba .MaxLen ,_ =_ce .GetInt (_bage .Get ("\u004d\u0061\u0078\u004c\u0065\u006e"));return _edba ,nil ;};
// NewBorderStyle returns an initialized PdfBorderStyle.
func NewBorderStyle ()*PdfBorderStyle {_cddd :=&PdfBorderStyle {};return _cddd };
// Subtype returns the font's "Subtype" field.
func (_geedc *PdfFont )Subtype ()string {_ebfaf :=_geedc .baseFields ()._dbbag ;if _gcdf ,_bdgf :=_geedc ._decac .(*pdfFontType0 );_bdgf {_ebfaf =_ebfaf +"\u003a"+_gcdf .DescendantFont .Subtype ();};return _ebfaf ;};
// ToPdfObject converts the pdfCIDFontType0 to a PDF representation.
func (_gcddb *pdfCIDFontType0 )ToPdfObject ()_ce .PdfObject {return _ce .MakeNull ()};
// ToPdfObject implements interface PdfModel.
func (_eef *PdfActionImportData )ToPdfObject ()_ce .PdfObject {_eef .PdfAction .ToPdfObject ();_agcc :=_eef ._bdf ;_bg :=_agcc .PdfObject .(*_ce .PdfObjectDictionary );_bg .SetIfNotNil ("\u0053",_ce .MakeName (string (ActionTypeImportData )));if _eef .F !=nil {_bg .Set ("\u0046",_eef .F .ToPdfObject ());};return _agcc ;};
// ToPdfObject returns the PDF representation of the shading pattern.
func (_bddd *PdfShadingPattern )ToPdfObject ()_ce .PdfObject {_bddd .PdfPattern .ToPdfObject ();_faace :=_bddd .getDict ();if _bddd .Shading !=nil {_faace .Set ("\u0053h\u0061\u0064\u0069\u006e\u0067",_bddd .Shading .ToPdfObject ());};if _bddd .Matrix !=nil {_faace .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_bddd .Matrix );};if _bddd .ExtGState !=nil {_faace .Set ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e",_bddd .ExtGState );};return _bddd ._efabe ;};
// 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 (_gedea *PdfReader )AcroFormNeedsRepair ()(bool ,error ){var _ggaad []*PdfField ;if _gedea .AcroForm !=nil {_ggaad =_gedea .AcroForm .AllFields ();};_aggec :=make (map[*PdfField ]struct{},len (_ggaad ));for _ ,_abcec :=range _ggaad {_aggec [_abcec ]=struct{}{};};for _ ,_bdceb :=range _gedea .PageList {_gcfa ,_bacea :=_bdceb .GetAnnotations ();if _bacea !=nil {return false ,_bacea ;};for _ ,_acaab :=range _gcfa {_eegec ,_ecbac :=_acaab .GetContext ().(*PdfAnnotationWidget );if !_ecbac {continue ;};_edcf :=_eegec .Field ();if _edcf ==nil {return true ,nil ;};if _ ,_fbded :=_aggec [_edcf ];!_fbded {return true ,nil ;};};};return false ,nil ;};
// ToPdfObject returns the PDF representation of the shading dictionary.
func (_fbcagf *PdfShading )ToPdfObject ()_ce .PdfObject {_dfabd :=_fbcagf ._efbab ;_eaddg ,_aeaac :=_fbcagf .getShadingDict ();if _aeaac !=nil {_ebg .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 _fbcagf .ShadingType !=nil {_eaddg .Set ("S\u0068\u0061\u0064\u0069\u006e\u0067\u0054\u0079\u0070\u0065",_fbcagf .ShadingType );};if _fbcagf .ColorSpace !=nil {_eaddg .Set ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065",_fbcagf .ColorSpace .ToPdfObject ());};if _fbcagf .Background !=nil {_eaddg .Set ("\u0042\u0061\u0063\u006b\u0067\u0072\u006f\u0075\u006e\u0064",_fbcagf .Background );};if _fbcagf .BBox !=nil {_eaddg .Set ("\u0042\u0042\u006f\u0078",_fbcagf .BBox .ToPdfObject ());};if _fbcagf .AntiAlias !=nil {_eaddg .Set ("\u0041n\u0074\u0069\u0041\u006c\u0069\u0061s",_fbcagf .AntiAlias );};return _dfabd ;};func _eafc (_cbdfd _ce .PdfObject ,_egfa *fontCommon )(*_fa .CMap ,error ){_agfa ,_gbaed :=_ce .GetStream (_cbdfd );if !_gbaed {_ebg .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",_cbdfd );return nil ,_ce .ErrTypeError ;};_geca ,_fcgge :=_ce .DecodeStream (_agfa );if _fcgge !=nil {return nil ,_fcgge ;};_eedee ,_fcgge :=_fa .LoadCmapFromData (_geca ,!_egfa .isCIDFont ());if _fcgge !=nil {_ebg .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",_agfa .ObjectNumber ,_fcgge );};return _eedee ,_fcgge ;};
// GetNumComponents returns the number of color components of the colorspace device.
// Returns 3 for an RGB device.
func (_gbfe *PdfColorspaceDeviceRGB )GetNumComponents ()int {return 3};
// 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 _cg .ReadSeeker )(*PdfReader ,error ){_bdacc :=&PdfReader {_dafg :rs ,_acfdf :map[_ce .PdfObject ]struct{}{},_cbdfb :_accg (),_ebegg :true };_edbbeb ,_abfa :=_ce .NewParser (rs );if _abfa !=nil {return nil ,_abfa ;};_bdacc ._dbfe =_edbbeb ;_ecbbe ,_abfa :=_bdacc .IsEncrypted ();if _abfa !=nil {return nil ,_abfa ;};if !_ecbbe {_abfa =_bdacc .loadStructure ();if _abfa !=nil {return nil ,_abfa ;};};return _bdacc ,nil ;};
// IsEncrypted returns true if the PDF file is encrypted.
func (_dfeaf *PdfReader )IsEncrypted ()(bool ,error ){return _dfeaf ._dbfe .IsEncrypted ()};
// GetNumComponents returns the number of color components (3 for CalRGB).
func (_fcbdb *PdfColorCalRGB )GetNumComponents ()int {return 3};
// GetNumComponents returns the number of color components of the underlying
// colorspace device.
func (_afce *PdfColorspaceSpecialPattern )GetNumComponents ()int {return _afce .UnderlyingCS .GetNumComponents ();};
// ReplacePage replaces the original page to a new page.
func (_gbgbd *PdfAppender )ReplacePage (pageNum int ,page *PdfPage ){_aged :=pageNum -1;for _fdbdc :=range _gbgbd ._fdef {if _fdbdc ==_aged {_dcbg :=page .Duplicate ();_begee (_dcbg );_gbgbd ._fdef [_fdbdc ]=_dcbg ;};};};
// NewPdfFontFromPdfObject loads a PdfFont from the dictionary `fontObj`. If there is a problem an
// error is returned.
func NewPdfFontFromPdfObject (fontObj _ce .PdfObject )(*PdfFont ,error ){return _efef (fontObj ,true )};
// GetAsShadingPattern returns a shading pattern. Check with IsShading() prior to using this.
func (_acdcg *PdfPattern )GetAsShadingPattern ()*PdfShadingPattern {return _acdcg ._gdge .(*PdfShadingPattern );};
// ToPdfObject implements interface PdfModel.
func (_adecbb *PdfSignature )ToPdfObject ()_ce .PdfObject {_cfbca :=_adecbb ._aefg ;var _baaaef *_ce .PdfObjectDictionary ;if _bcda ,_gdbfc :=_cfbca .PdfObject .(*pdfSignDictionary );_gdbfc {_baaaef =_bcda .PdfObjectDictionary ;}else {_baaaef =_cfbca .PdfObject .(*_ce .PdfObjectDictionary );};_baaaef .SetIfNotNil ("\u0054\u0079\u0070\u0065",_adecbb .Type );_baaaef .SetIfNotNil ("\u0046\u0069\u006c\u0074\u0065\u0072",_adecbb .Filter );_baaaef .SetIfNotNil ("\u0053u\u0062\u0046\u0069\u006c\u0074\u0065r",_adecbb .SubFilter );_baaaef .SetIfNotNil ("\u0042y\u0074\u0065\u0052\u0061\u006e\u0067e",_adecbb .ByteRange );_baaaef .SetIfNotNil ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073",_adecbb .Contents );_baaaef .SetIfNotNil ("\u0043\u0065\u0072\u0074",_adecbb .Cert );_baaaef .SetIfNotNil ("\u004e\u0061\u006d\u0065",_adecbb .Name );_baaaef .SetIfNotNil ("\u0052\u0065\u0061\u0073\u006f\u006e",_adecbb .Reason );_baaaef .SetIfNotNil ("\u004d",_adecbb .M );_baaaef .SetIfNotNil ("\u0052e\u0066\u0065\u0072\u0065\u006e\u0063e",_adecbb .Reference );_baaaef .SetIfNotNil ("\u0043h\u0061\u006e\u0067\u0065\u0073",_adecbb .Changes );_baaaef .SetIfNotNil ("C\u006f\u006e\u0074\u0061\u0063\u0074\u0049\u006e\u0066\u006f",_adecbb .ContactInfo );return _cfbca ;};
// ToInteger convert to an integer format.
func (_aefa *PdfColorDeviceCMYK )ToInteger (bits int )[4]uint32 {_bbecf :=_ag .Pow (2,float64 (bits ))-1;return [4]uint32 {uint32 (_bbecf *_aefa .C ()),uint32 (_bbecf *_aefa .M ()),uint32 (_bbecf *_aefa .Y ()),uint32 (_bbecf *_aefa .K ())};};
// PdfAnnotationCaret represents Caret annotations.
// (Section 12.5.6.11).
type PdfAnnotationCaret struct{*PdfAnnotation ;*PdfAnnotationMarkup ;RD _ce .PdfObject ;Sy _ce .PdfObject ;};
// 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 ;_gdge PdfModel ;_efabe _ce .PdfObject ;};func (_gadg *PdfAnnotationMarkup )appendToPdfDictionary (_ecca *_ce .PdfObjectDictionary ){_ecca .SetIfNotNil ("\u0054",_gadg .T );if _gadg .Popup !=nil {_ecca .Set ("\u0050\u006f\u0070u\u0070",_gadg .Popup .ToPdfObject ());};_ecca .SetIfNotNil ("\u0043\u0041",_gadg .CA );_ecca .SetIfNotNil ("\u0052\u0043",_gadg .RC );_ecca .SetIfNotNil ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065",_gadg .CreationDate );_ecca .SetIfNotNil ("\u0049\u0052\u0054",_gadg .IRT );_ecca .SetIfNotNil ("\u0053\u0075\u0062\u006a",_gadg .Subj );_ecca .SetIfNotNil ("\u0052\u0054",_gadg .RT );_ecca .SetIfNotNil ("\u0049\u0054",_gadg .IT );_ecca .SetIfNotNil ("\u0045\u0078\u0044\u0061\u0074\u0061",_gadg .ExData );};
// PdfAnnotationInk represents Ink annotations.
// (Section 12.5.6.13).
type PdfAnnotationInk struct{*PdfAnnotation ;*PdfAnnotationMarkup ;InkList _ce .PdfObject ;BS _ce .PdfObject ;};
// ImageToRGB returns an error since an image cannot be defined in a pattern colorspace.
func (_gagf *PdfColorspaceSpecialPattern )ImageToRGB (img Image )(Image ,error ){_ebg .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u003a\u0020\u0049\u006d\u0061\u0067\u0065\u0020\u0063\u0061n\u006e\u006f\u0074\u0020\u0062\u0065\u0020\u0073\u0070\u0065\u0063\u0069\u0066i\u0065\u0064\u0020\u0069\u006e\u0020\u0050\u0061\u0074\u0074\u0065\u0072n \u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063\u0065");return img ,_gd .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063\u0065\u0020\u0066\u006f\u0072\u0020\u0069m\u0061\u0067\u0065\u0020\u0028p\u0061\u0074t\u0065\u0072\u006e\u0029");};
// ToPdfObject returns the PDF representation of the shading dictionary.
func (_fbegd *PdfShadingType6 )ToPdfObject ()_ce .PdfObject {_fbegd .PdfShading .ToPdfObject ();_bedba ,_aceab :=_fbegd .getShadingDict ();if _aceab !=nil {_ebg .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 _fbegd .BitsPerCoordinate !=nil {_bedba .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065",_fbegd .BitsPerCoordinate );};if _fbegd .BitsPerComponent !=nil {_bedba .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_fbegd .BitsPerComponent );};if _fbegd .BitsPerFlag !=nil {_bedba .Set ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067",_fbegd .BitsPerFlag );};if _fbegd .Decode !=nil {_bedba .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_fbegd .Decode );};if _fbegd .Function !=nil {if len (_fbegd .Function )==1{_bedba .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_fbegd .Function [0].ToPdfObject ());}else {_cedga :=_ce .MakeArray ();for _ ,_ebadc :=range _fbegd .Function {_cedga .Append (_ebadc .ToPdfObject ());};_bedba .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_cedga );};};return _fbegd ._efbab ;};
// ToPdfObject implements interface PdfModel.
func (_db *PdfActionSetOCGState )ToPdfObject ()_ce .PdfObject {_db .PdfAction .ToPdfObject ();_ageg :=_db ._bdf ;_beb :=_ageg .PdfObject .(*_ce .PdfObjectDictionary );_beb .SetIfNotNil ("\u0053",_ce .MakeName (string (ActionTypeSetOCGState )));_beb .SetIfNotNil ("\u0053\u0074\u0061t\u0065",_db .State );_beb .SetIfNotNil ("\u0050\u0072\u0065\u0073\u0065\u0072\u0076\u0065\u0052\u0042",_db .PreserveRB );return _ageg ;};
// NewPdfActionSetOCGState returns a new "named" action.
func NewPdfActionSetOCGState ()*PdfActionSetOCGState {_edg :=NewPdfAction ();_ecd :=&PdfActionSetOCGState {};_ecd .PdfAction =_edg ;_edg .SetContext (_ecd );return _ecd ;};
// ToPdfObject returns the PDF representation of the function.
func (_baeda *PdfFunctionType0 )ToPdfObject ()_ce .PdfObject {if _baeda ._dbfgb ==nil {_baeda ._dbfgb =&_ce .PdfObjectStream {};};_edacc :=_ce .MakeDict ();_edacc .Set ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065",_ce .MakeInteger (0));_acbgc :=&_ce .PdfObjectArray {};for _ ,_dcef :=range _baeda .Domain {_acbgc .Append (_ce .MakeFloat (_dcef ));};_edacc .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_acbgc );_cgdf :=&_ce .PdfObjectArray {};for _ ,_egae :=range _baeda .Range {_cgdf .Append (_ce .MakeFloat (_egae ));};_edacc .Set ("\u0052\u0061\u006eg\u0065",_cgdf );_bfef :=&_ce .PdfObjectArray {};for _ ,_ecba :=range _baeda .Size {_bfef .Append (_ce .MakeInteger (int64 (_ecba )));};_edacc .Set ("\u0053\u0069\u007a\u0065",_bfef );_edacc .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0053\u0061\u006d\u0070\u006c\u0065",_ce .MakeInteger (int64 (_baeda .BitsPerSample )));if _baeda .Order !=1{_edacc .Set ("\u004f\u0072\u0064e\u0072",_ce .MakeInteger (int64 (_baeda .Order )));};_edacc .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_ce .MakeInteger (int64 (len (_baeda ._abaa ))));_baeda ._dbfgb .Stream =_baeda ._abaa ;_baeda ._dbfgb .PdfObjectDictionary =_edacc ;return _baeda ._dbfgb ;};var _fbdc ="";
// ToPdfObject implements interface PdfModel.
func (_dgac *PdfActionJavaScript )ToPdfObject ()_ce .PdfObject {_dgac .PdfAction .ToPdfObject ();_beg :=_dgac ._bdf ;_cbgf :=_beg .PdfObject .(*_ce .PdfObjectDictionary );_cbgf .SetIfNotNil ("\u0053",_ce .MakeName (string (ActionTypeJavaScript )));_cbgf .SetIfNotNil ("\u004a\u0053",_dgac .JS );return _beg ;};
// Flags returns the field flags for the field accounting for any inherited flags.
func (_afdcf *PdfField )Flags ()FieldFlag {var _gfge FieldFlag ;_febfb ,_bccbb :=_afdcf .inherit (func (_cefc *PdfField )bool {if _cefc .Ff !=nil {_gfge =FieldFlag (*_afdcf .Ff );return true ;};return false ;});if _bccbb !=nil {_ebg .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",_bccbb );};if !_febfb {_ebg .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 _gfge ;};
// ToPdfObject implements interface PdfModel.
func (_agd *PdfActionThread )ToPdfObject ()_ce .PdfObject {_agd .PdfAction .ToPdfObject ();_deg :=_agd ._bdf ;_cba :=_deg .PdfObject .(*_ce .PdfObjectDictionary );_cba .SetIfNotNil ("\u0053",_ce .MakeName (string (ActionTypeThread )));if _agd .F !=nil {_cba .Set ("\u0046",_agd .F .ToPdfObject ());};_cba .SetIfNotNil ("\u0044",_agd .D );_cba .SetIfNotNil ("\u0042",_agd .B );return _deg ;};
// 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 *_ce .PdfObjectArray ;AlternateSpace PdfColorspace ;TintTransform PdfFunction ;Attributes *PdfColorspaceDeviceNAttributes ;_baceb *_ce .PdfIndirectObject ;};
// 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 ;
// PdfColorPattern represents a pattern color.
type PdfColorPattern struct{Color PdfColor ;PatternName _ce .PdfObjectName ;};func (_bbc *PdfReader )newPdfActionSoundFromDict (_agbf *_ce .PdfObjectDictionary )(*PdfActionSound ,error ){return &PdfActionSound {Sound :_agbf .Get ("\u0053\u006f\u0075n\u0064"),Volume :_agbf .Get ("\u0056\u006f\u006c\u0075\u006d\u0065"),Synchronous :_agbf .Get ("S\u0079\u006e\u0063\u0068\u0072\u006f\u006e\u006f\u0075\u0073"),Repeat :_agbf .Get ("\u0052\u0065\u0070\u0065\u0061\u0074"),Mix :_agbf .Get ("\u004d\u0069\u0078")},nil ;};
// ToPdfObject implements interface PdfModel.
func (_ebc *PdfActionGoTo3DView )ToPdfObject ()_ce .PdfObject {_ebc .PdfAction .ToPdfObject ();_adf :=_ebc ._bdf ;_ebe :=_adf .PdfObject .(*_ce .PdfObjectDictionary );_ebe .SetIfNotNil ("\u0053",_ce .MakeName (string (ActionTypeGoTo3DView )));_ebe .SetIfNotNil ("\u0054\u0041",_ebc .TA );_ebe .SetIfNotNil ("\u0056",_ebc .V );return _adf ;};const (BorderStyleSolid BorderStyle =iota ;BorderStyleDashed BorderStyle =iota ;BorderStyleBeveled BorderStyle =iota ;BorderStyleInset BorderStyle =iota ;BorderStyleUnderline BorderStyle =iota ;);
// 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 (_egbeb *PdfPageResources )GetColorspaces ()(*PdfPageResourcesColorspaces ,error ){if _egbeb ._gddae !=nil {return _egbeb ._gddae ,nil ;};if _egbeb .ColorSpace ==nil {return nil ,nil ;};_bebbf ,_gfacf :=_cdba (_egbeb .ColorSpace );if _gfacf !=nil {return nil ,_gfacf ;};_egbeb ._gddae =_bebbf ;return _egbeb ._gddae ,nil ;};
// Mask returns the uin32 bitmask for the specific flag.
func (_gbabf FieldFlag )Mask ()uint32 {return uint32 (_gbabf )};
// AddPages adds pages to be appended to the end of the source PDF.
func (_cfed *PdfAppender )AddPages (pages ...*PdfPage ){for _ ,_cacf :=range pages {_cacf =_cacf .Duplicate ();_begee (_cacf );_cfed ._fdef =append (_cfed ._fdef ,_cacf );};return ;};
// IsTerminal returns true for terminal fields, false otherwise.
// Terminal fields are fields whose descendants are only widget annotations.
func (_cfeg *PdfField )IsTerminal ()bool {return len (_cfeg .Kids )==0};
// PdfActionType represents an action type in PDF (section 12.6.4 p. 417).
type PdfActionType string ;
// NewPdfAnnotationFreeText returns a new free text annotation.
func NewPdfAnnotationFreeText ()*PdfAnnotationFreeText {_ded :=NewPdfAnnotation ();_bbdd :=&PdfAnnotationFreeText {};_bbdd .PdfAnnotation =_ded ;_bbdd .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_ded .SetContext (_bbdd );return _bbdd ;};
// 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 (_ceebb *PdfFont )StringToCharcodeBytes (str string )([]byte ,int ){return _ceebb .RunesToCharcodeBytes ([]rune (str ));};
// A returns the value of the A component of the color.
func (_efae *PdfColorCalRGB )A ()float64 {return float64 (_efae [0])};func (_fdd *PdfReader )newPdfActionGoTo3DViewFromDict (_dfg *_ce .PdfObjectDictionary )(*PdfActionGoTo3DView ,error ){return &PdfActionGoTo3DView {TA :_dfg .Get ("\u0054\u0041"),V :_dfg .Get ("\u0056")},nil ;};func (_bbadd Image )getBase ()_age .ImageBase {return _age .NewImageBase (int (_bbadd .Width ),int (_bbadd .Height ),int (_bbadd .BitsPerComponent ),_bbadd .ColorComponents ,_bbadd .Data ,_bbadd ._fdcac ,_bbadd ._cddaa );};
// PdfFieldText represents a text field where user can enter text.
type PdfFieldText struct{*PdfField ;DA *_ce .PdfObjectString ;Q *_ce .PdfObjectInteger ;DS *_ce .PdfObjectString ;RV _ce .PdfObject ;MaxLen *_ce .PdfObjectInteger ;};
// NewPdfAnnotationSquare returns a new square annotation.
func NewPdfAnnotationSquare ()*PdfAnnotationSquare {_fcde :=NewPdfAnnotation ();_faac :=&PdfAnnotationSquare {};_faac .PdfAnnotation =_fcde ;_faac .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_fcde .SetContext (_faac );return _faac ;};func (_ggad *pdfFontSimple )getFontEncoding ()(_gfded string ,_eefd map[_cce .CharCode ]_cce .GlyphName ,_ebcb error ){_gfded ="\u0053\u0074a\u006e\u0064\u0061r\u0064\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067";if _eceba ,_deeb :=_bcfed [_ggad ._agcagf ];_deeb {_gfded =_eceba ;}else if _ggad .fontFlags ()&_begeb !=0{for _cgfa ,_edbgc :=range _bcfed {if _aga .Contains (_ggad ._agcagf ,_cgfa ){_gfded =_edbgc ;break ;};};};if _ggad .Encoding ==nil {return _gfded ,nil ,nil ;};switch _bbbcd :=_ggad .Encoding .(type ){case *_ce .PdfObjectName :return string (*_bbbcd ),nil ,nil ;case *_ce .PdfObjectDictionary :_efdgd ,_eefde :=_ce .GetName (_bbbcd .Get ("\u0042\u0061\u0073e\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067"));if _eefde {_gfded =_efdgd .String ();};if _ebgf :=_bbbcd .Get ("D\u0069\u0066\u0066\u0065\u0072\u0065\u006e\u0063\u0065\u0073");_ebgf !=nil {_agfcd ,_fdbgb :=_ce .GetArray (_ebgf );if !_fdbgb {_ebg .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",_bbbcd ,_bbbcd .Get ("D\u0069\u0066\u0066\u0065\u0072\u0065\u006e\u0063\u0065\u0073"));return "",nil ,_ce .ErrTypeError ;};_eefd ,_ebcb =_cce .FromFontDifferences (_agfcd );};return _gfded ,_eefd ,_ebcb ;default:_ebg .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",_ggad .Encoding ,_ggad .Encoding );return "",nil ,_ce .ErrTypeError ;};};
// NewPdfAnnotationRichMedia returns a new rich media annotation.
func NewPdfAnnotationRichMedia ()*PdfAnnotationRichMedia {_feb :=NewPdfAnnotation ();_fga :=&PdfAnnotationRichMedia {};_fga .PdfAnnotation =_feb ;_feb .SetContext (_fga );return _fga ;};
// ToPdfObject converts the PdfPage to a dictionary within an indirect object container.
func (_abdfe *PdfPage )ToPdfObject ()_ce .PdfObject {_ebga :=_abdfe ._adcebd ;_abdfe .GetPageDict ();return _ebga ;};
// IsCheckbox returns true if the button field represents a checkbox, false otherwise.
func (_eeeed *PdfFieldButton )IsCheckbox ()bool {return _eeeed .GetType ()==ButtonTypeCheckbox };
// NewPdfColorspaceSpecialPattern returns a new pattern color.
func NewPdfColorspaceSpecialPattern ()*PdfColorspaceSpecialPattern {return &PdfColorspaceSpecialPattern {};};
// ToPdfObject implements interface PdfModel.
func (_fccc *PdfAnnotationRedact )ToPdfObject ()_ce .PdfObject {_fccc .PdfAnnotation .ToPdfObject ();_dddg :=_fccc ._bda ;_fdbe :=_dddg .PdfObject .(*_ce .PdfObjectDictionary );_fccc .PdfAnnotationMarkup .appendToPdfDictionary (_fdbe );_fdbe .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ce .MakeName ("\u0052\u0065\u0064\u0061\u0063\u0074"));_fdbe .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_fccc .QuadPoints );_fdbe .SetIfNotNil ("\u0049\u0043",_fccc .IC );_fdbe .SetIfNotNil ("\u0052\u004f",_fccc .RO );_fdbe .SetIfNotNil ("O\u0076\u0065\u0072\u006c\u0061\u0079\u0054\u0065\u0078\u0074",_fccc .OverlayText );_fdbe .SetIfNotNil ("\u0052\u0065\u0070\u0065\u0061\u0074",_fccc .Repeat );_fdbe .SetIfNotNil ("\u0044\u0041",_fccc .DA );_fdbe .SetIfNotNil ("\u0051",_fccc .Q );return _dddg ;};
// ImageToRGB converts ICCBased colorspace image to RGB and returns the result.
func (_ccfb *PdfColorspaceICCBased )ImageToRGB (img Image )(Image ,error ){if _ccfb .Alternate ==nil {_ebg .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 _ccfb .N ==1{_ebg .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");_ddfa :=NewPdfColorspaceDeviceGray ();return _ddfa .ImageToRGB (img );}else if _ccfb .N ==3{_ebg .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 _ccfb .N ==4{_ebg .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");_gffa :=NewPdfColorspaceDeviceCMYK ();return _gffa .ImageToRGB (img );}else {return img ,_gd .New ("I\u0043\u0043\u0020\u0042\u0061\u0073\u0065\u0064\u0020\u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063e\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u0061lt\u0065\u0072\u006ea\u0074i\u0076\u0065");};};_ebg .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",_ccfb );_deaa ,_afcg :=_ccfb .Alternate .ImageToRGB (img );_ebg .Log .Trace ("I\u0043C\u0020\u0049\u006e\u0070\u0075\u0074\u0020\u0069m\u0061\u0067\u0065\u003a %\u002b\u0076",img );_ebg .Log .Trace ("I\u0043\u0043\u0020\u004fut\u0070u\u0074\u0020\u0069\u006d\u0061g\u0065\u003a\u0020\u0025\u002b\u0076",_deaa );return _deaa ,_afcg ;};
// NewPdfFieldSignature returns an initialized signature field.
func NewPdfFieldSignature (signature *PdfSignature )*PdfFieldSignature {_bebg :=&PdfFieldSignature {};_bebg .PdfField =NewPdfField ();_bebg .PdfField .SetContext (_bebg );_bebg .PdfAnnotationWidget =NewPdfAnnotationWidget ();_bebg .PdfAnnotationWidget .SetContext (_bebg );_bebg .PdfAnnotationWidget ._bda =_bebg .PdfField ._gfeec ;_bebg .T =_ce .MakeString ("");_bebg .F =_ce .MakeInteger (132);_bebg .V =signature ;return _bebg ;};
// 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 (_adcec *Image )GetSamples ()[]uint32 {_beefa :=_ac .ResampleBytes (_adcec .Data ,int (_adcec .BitsPerComponent ));if _adcec .BitsPerComponent < 8{_beefa =_adcec .samplesTrimPadding (_beefa );};_ecge :=int (_adcec .Width )*int (_adcec .Height )*_adcec .ColorComponents ;if len (_beefa )< _ecge {_ebg .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 (_beefa ),_ecge );return _beefa ;}else if len (_beefa )> _ecge {_ebg .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 (_beefa ),_ecge );_beefa =_beefa [:_ecge ];};return _beefa ;};
// PdfShadingType1 is a Function-based shading.
type PdfShadingType1 struct{*PdfShading ;Domain *_ce .PdfObjectArray ;Matrix *_ce .PdfObjectArray ;Function []PdfFunction ;};
// ToInteger convert to an integer format.
func (_egcfa *PdfColorCalRGB )ToInteger (bits int )[3]uint32 {_cdab :=_ag .Pow (2,float64 (bits ))-1;return [3]uint32 {uint32 (_cdab *_egcfa .A ()),uint32 (_cdab *_egcfa .B ()),uint32 (_cdab *_egcfa .C ())};};
// 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 ;_gfefa *_ce .PdfIndirectObject ;};func _gaadf (_bgbg []rune ,_fcga map[rune ]int ,_gcggg map[rune ]_cc .GID )*_ce .PdfObjectArray {_cfdae :=&_ce .PdfObjectArray {};for _effd :=0;_effd < len (_bgbg );{_ecebc :=_fcga [_bgbg [_effd ]];_edcg :=_effd ;for _geegc :=_effd +1;_geegc < len (_bgbg );_geegc ++{_cefeg :=_fcga [_bgbg [_geegc ]];if _ecebc ==_cefeg {_edcg =_geegc ;}else {break ;};};_gbcg :=_gcggg [_bgbg [_effd ]];_fggg :=_gcggg [_bgbg [_edcg ]];_cfdae .Append (_ce .MakeInteger (int64 (_gbcg )));_cfdae .Append (_ce .MakeInteger (int64 (_fggg )));_cfdae .Append (_ce .MakeInteger (int64 (_ecebc )));_effd =_edcg +1;};return _cfdae ;};
// NewPdfAnnotationWidget returns an initialized annotation widget.
func NewPdfAnnotationWidget ()*PdfAnnotationWidget {_fddf :=NewPdfAnnotation ();_edgc :=&PdfAnnotationWidget {};_edgc .PdfAnnotation =_fddf ;_fddf .SetContext (_edgc );return _edgc ;};
// NewPdfActionTrans returns a new "trans" action.
func NewPdfActionTrans ()*PdfActionTrans {_aeb :=NewPdfAction ();_fd :=&PdfActionTrans {};_fd .PdfAction =_aeb ;_aeb .SetContext (_fd );return _fd ;};
// ToPdfObject implements interface PdfModel.
func (_ggcg *PdfAnnotationInk )ToPdfObject ()_ce .PdfObject {_ggcg .PdfAnnotation .ToPdfObject ();_cfdg :=_ggcg ._bda ;_ddbb :=_cfdg .PdfObject .(*_ce .PdfObjectDictionary );_ggcg .PdfAnnotationMarkup .appendToPdfDictionary (_ddbb );_ddbb .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ce .MakeName ("\u0049\u006e\u006b"));_ddbb .SetIfNotNil ("\u0049n\u006b\u004c\u0069\u0073\u0074",_ggcg .InkList );_ddbb .SetIfNotNil ("\u0042\u0053",_ggcg .BS );return _cfdg ;};
// GetNumComponents returns the number of color components of the colorspace device.
// Returns 1 for a grayscale device.
func (_gcda *PdfColorspaceDeviceGray )GetNumComponents ()int {return 1};
// ToImage converts an object to an Image which can be transformed or saved out.
// The image data is decoded and the Image returned.
func (_bdee *XObjectImage )ToImage ()(*Image ,error ){_eecad :=&Image {};if _bdee .Height ==nil {return nil ,_gd .New ("\u0068e\u0069\u0067\u0068\u0074\u0020\u0061\u0074\u0074\u0072\u0069\u0062u\u0074\u0065\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};_eecad .Height =*_bdee .Height ;if _bdee .Width ==nil {return nil ,_gd .New ("\u0077\u0069\u0064th\u0020\u0061\u0074\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};_eecad .Width =*_bdee .Width ;if _bdee .BitsPerComponent ==nil {return nil ,_gd .New ("\u0062\u0069\u0074\u0073\u0020\u0070\u0065\u0072\u0020\u0063\u006fm\u0070\u006f\u006e\u0065\u006e\u0074\u0020\u006d\u0069\u0073s\u0069\u006e\u0067");};_eecad .BitsPerComponent =*_bdee .BitsPerComponent ;_eecad .ColorComponents =_bdee .ColorSpace .GetNumComponents ();_bdee ._gfag .Set ("\u0043o\u006co\u0072\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074\u0073",_ce .MakeInteger (int64 (_eecad .ColorComponents )));_eacdc ,_bbdbg :=_ce .DecodeStream (_bdee ._gfag );if _bbdbg !=nil {return nil ,_bbdbg ;};_eecad .Data =_eacdc ;if _bdee .Decode !=nil {_edgfa ,_faegf :=_bdee .Decode .(*_ce .PdfObjectArray );if !_faegf {_ebg .Log .Debug ("I\u006e\u0076\u0061\u006cid\u0020D\u0065\u0063\u006f\u0064\u0065 \u006f\u0062\u006a\u0065\u0063\u0074");return nil ,_gd .New ("\u0069\u006e\u0076a\u006c\u0069\u0064\u0020\u0074\u0079\u0070\u0065");};_cbgee ,_aaac :=_edgfa .ToFloat64Array ();if _aaac !=nil {return nil ,_aaac ;};_eecad ._cddaa =_cbgee ;};return _eecad ,nil ;};func (_adea *PdfReader )newPdfAnnotationWatermarkFromDict (_gbea *_ce .PdfObjectDictionary )(*PdfAnnotationWatermark ,error ){_aad :=PdfAnnotationWatermark {};_aad .FixedPrint =_gbea .Get ("\u0046\u0069\u0078\u0065\u0064\u0050\u0072\u0069\u006e\u0074");return &_aad ,nil ;};
// ButtonType represents the subtype of a button field, can be one of:
// - Checkbox (ButtonTypeCheckbox)
// - PushButton (ButtonTypePushButton)
// - RadioButton (ButtonTypeRadioButton)
type ButtonType int ;
// ToPdfObject returns a PDF object representation of the outline destination.
func (_deffg OutlineDest )ToPdfObject ()_ce .PdfObject {if (_deffg .PageObj ==nil &&_deffg .Page < 0)||_deffg .Mode ==""{return _ce .MakeNull ();};_cdeff :=_ce .MakeArray ();if _deffg .PageObj !=nil {_cdeff .Append (_deffg .PageObj );}else {_cdeff .Append (_ce .MakeInteger (_deffg .Page ));};_cdeff .Append (_ce .MakeName (_deffg .Mode ));switch _deffg .Mode {case "\u0046\u0069\u0074","\u0046\u0069\u0074\u0042":case "\u0046\u0069\u0074\u0048","\u0046\u0069\u0074B\u0048":_cdeff .Append (_ce .MakeFloat (_deffg .Y ));case "\u0046\u0069\u0074\u0056","\u0046\u0069\u0074B\u0056":_cdeff .Append (_ce .MakeFloat (_deffg .X ));case "\u0058\u0059\u005a":_cdeff .Append (_ce .MakeFloat (_deffg .X ));_cdeff .Append (_ce .MakeFloat (_deffg .Y ));_cdeff .Append (_ce .MakeFloat (_deffg .Zoom ));default:_cdeff .Set (1,_ce .MakeName ("\u0046\u0069\u0074"));};return _cdeff ;};
// NewPdfActionRendition returns a new "rendition" action.
func NewPdfActionRendition ()*PdfActionRendition {_cd :=NewPdfAction ();_be :=&PdfActionRendition {};_be .PdfAction =_cd ;_cd .SetContext (_be );return _be ;};
// ToPdfObject implements interface PdfModel.
func (_dfa *PdfAnnotationPolygon )ToPdfObject ()_ce .PdfObject {_dfa .PdfAnnotation .ToPdfObject ();_adfc :=_dfa ._bda ;_ggc :=_adfc .PdfObject .(*_ce .PdfObjectDictionary );_dfa .PdfAnnotationMarkup .appendToPdfDictionary (_ggc );_ggc .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ce .MakeName ("\u0050o\u006c\u0079\u0067\u006f\u006e"));_ggc .SetIfNotNil ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073",_dfa .Vertices );_ggc .SetIfNotNil ("\u004c\u0045",_dfa .LE );_ggc .SetIfNotNil ("\u0042\u0053",_dfa .BS );_ggc .SetIfNotNil ("\u0049\u0043",_dfa .IC );_ggc .SetIfNotNil ("\u0042\u0045",_dfa .BE );_ggc .SetIfNotNil ("\u0049\u0054",_dfa .IT );_ggc .SetIfNotNil ("\u004de\u0061\u0073\u0075\u0072\u0065",_dfa .Measure );return _adfc ;};
// ToPdfObject returns the PDF representation of the function.
func (_dada *PdfFunctionType4 )ToPdfObject ()_ce .PdfObject {_ggbd :=_dada ._agefg ;if _ggbd ==nil {_dada ._agefg =&_ce .PdfObjectStream {};_ggbd =_dada ._agefg ;};_cfec :=_ce .MakeDict ();_cfec .Set ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065",_ce .MakeInteger (4));_gacb :=&_ce .PdfObjectArray {};for _ ,_bgbdd :=range _dada .Domain {_gacb .Append (_ce .MakeFloat (_bgbdd ));};_cfec .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_gacb );_fgda :=&_ce .PdfObjectArray {};for _ ,_dgfcc :=range _dada .Range {_fgda .Append (_ce .MakeFloat (_dgfcc ));};_cfec .Set ("\u0052\u0061\u006eg\u0065",_fgda );if _dada ._fdaf ==nil &&_dada .Program !=nil {_dada ._fdaf =[]byte (_dada .Program .String ());};_cfec .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_ce .MakeInteger (int64 (len (_dada ._fdaf ))));_ggbd .Stream =_dada ._fdaf ;_ggbd .PdfObjectDictionary =_cfec ;return _ggbd ;};
// ToPdfObject returns the PDF representation of the colorspace.
func (_bcgeg *PdfPageResourcesColorspaces )ToPdfObject ()_ce .PdfObject {_abedg :=_ce .MakeDict ();for _ ,_dafcb :=range _bcgeg .Names {_abedg .Set (_ce .PdfObjectName (_dafcb ),_bcgeg .Colorspaces [_dafcb ].ToPdfObject ());};if _bcgeg ._facbb !=nil {_bcgeg ._facbb .PdfObject =_abedg ;return _bcgeg ._facbb ;};return _abedg ;};
// SetPdfKeywords sets the Keywords attribute of the output PDF.
func SetPdfKeywords (keywords string ){_fbdc =keywords };
// PdfOutline represents a PDF outline dictionary (Table 152 - p. 376).
type PdfOutline struct{PdfOutlineTreeNode ;Parent *PdfOutlineTreeNode ;Count *int64 ;_cdgg *_ce .PdfIndirectObject ;};
// PdfFilespec represents a file specification which can either refer to an external or embedded file.
type PdfFilespec struct{Type _ce .PdfObject ;FS _ce .PdfObject ;F _ce .PdfObject ;UF _ce .PdfObject ;DOS _ce .PdfObject ;Mac _ce .PdfObject ;Unix _ce .PdfObject ;ID _ce .PdfObject ;V _ce .PdfObject ;EF _ce .PdfObject ;RF _ce .PdfObject ;Desc _ce .PdfObject ;CI _ce .PdfObject ;_ddfgf _ce .PdfObject ;};func _accg ()*modelManager {_cgcced :=modelManager {};_cgcced ._cfgag =map[PdfModel ]_ce .PdfObject {};_cgcced ._efgef =map[_ce .PdfObject ]PdfModel {};return &_cgcced ;};func (_abdd *fontFile )parseASCIIPart (_eegb []byte )error {if len (_eegb )< 2||string (_eegb [:2])!="\u0025\u0021"{return _gd .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0073\u0074a\u0072\u0074\u0020\u006f\u0066\u0020\u0041S\u0043\u0049\u0049\u0020\u0073\u0065\u0067\u006d\u0065\u006e\u0074");};_bgcc ,_dbdcb ,_ecbf :=_dbcf (_eegb );if _ecbf !=nil {return _ecbf ;};_aeda :=_abeda (_bgcc );_abdd ._fdac =_aeda ["\u0046\u006f\u006e\u0074\u004e\u0061\u006d\u0065"];if _abdd ._fdac ==""{_ebg .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 _dbdcb !=""{_faab ,_ffgg :=_fbbeg (_dbdcb );if _ffgg !=nil {return _ffgg ;};_agbbf ,_ffgg :=_cce .NewCustomSimpleTextEncoder (_faab ,nil );if _ffgg !=nil {_ebg .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",_ffgg );return nil ;};_abdd ._fbabb =_agbbf ;};return nil ;};
// ToPdfObject implements interface PdfModel.
func (_eea *PdfAnnotationPopup )ToPdfObject ()_ce .PdfObject {_eea .PdfAnnotation .ToPdfObject ();_gaga :=_eea ._bda ;_gadf :=_gaga .PdfObject .(*_ce .PdfObjectDictionary );_gadf .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ce .MakeName ("\u0050\u006f\u0070u\u0070"));_gadf .SetIfNotNil ("\u0050\u0061\u0072\u0065\u006e\u0074",_eea .Parent );_gadf .SetIfNotNil ("\u004f\u0070\u0065\u006e",_eea .Open );return _gaga ;};
// B returns the value of the blue component of the color.
func (_bfea *PdfColorDeviceRGB )B ()float64 {return float64 (_bfea [2])};func _edbbd (_daacd *fontCommon )*pdfCIDFontType2 {return &pdfCIDFontType2 {fontCommon :*_daacd }};
// PdfColorspaceLab is a L*, a*, b* 3 component colorspace.
type PdfColorspaceLab struct{WhitePoint []float64 ;BlackPoint []float64 ;Range []float64 ;_afdc *_ce .PdfIndirectObject ;};func _efeaf (_dgbc *_age .ImageBase )(_gegf Image ){_gegf .Width =int64 (_dgbc .Width );_gegf .Height =int64 (_dgbc .Height );_gegf .BitsPerComponent =int64 (_dgbc .BitsPerComponent );_gegf .ColorComponents =_dgbc .ColorComponents ;_gegf .Data =_dgbc .Data ;_gegf ._cddaa =_dgbc .Decode ;_gegf ._fdcac =_dgbc .Alpha ;return _gegf ;};
// 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 (_aded *PdfReader )GetOutlinesFlattened ()([]*PdfOutlineTreeNode ,[]string ,error ){var _gdgda []*PdfOutlineTreeNode ;var _acbcg []string ;var _eedb func (*PdfOutlineTreeNode ,*[]*PdfOutlineTreeNode ,*[]string ,int );_eedb =func (_fbcac *PdfOutlineTreeNode ,_dfaa *[]*PdfOutlineTreeNode ,_ddgdd *[]string ,_dege int ){if _fbcac ==nil {return ;};if _fbcac ._edggc ==nil {_ebg .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 ;};_aefbd ,_decgd :=_fbcac ._edggc .(*PdfOutlineItem );if _decgd {*_dfaa =append (*_dfaa ,&_aefbd .PdfOutlineTreeNode );_bcfba :=_aga .Repeat ("\u0020",_dege *2)+_aefbd .Title .Decoded ();*_ddgdd =append (*_ddgdd ,_bcfba );};if _fbcac .First !=nil {_dbdgd :=_aga .Repeat ("\u0020",_dege *2)+"\u002b";*_ddgdd =append (*_ddgdd ,_dbdgd );_eedb (_fbcac .First ,_dfaa ,_ddgdd ,_dege +1);};if _decgd &&_aefbd .Next !=nil {_eedb (_aefbd .Next ,_dfaa ,_ddgdd ,_dege );};};_eedb (_aded ._feebe ,&_gdgda ,&_acbcg ,0);return _gdgda ,_acbcg ,nil ;};func _baeca (_geef *PdfField ,_bgafa _ce .PdfObject )error {switch _geef .GetContext ().(type ){case *PdfFieldText :switch _adbecb :=_bgafa .(type ){case *_ce .PdfObjectName :_cgcdb :=_adbecb ;_ebg .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",_cgcdb .String ());_geef .V =_ce .MakeEncodedString (_adbecb .String (),true );case *_ce .PdfObjectString :_geef .V =_ce .MakeEncodedString (_adbecb .String (),true );default:_ebg .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",_adbecb ,_adbecb );};case *PdfFieldButton :switch _bgafa .(type ){case *_ce .PdfObjectName :if len (_bgafa .String ())> 0{_geef .V =_bgafa ;_fbbbc (_geef ,_bgafa );};case *_ce .PdfObjectString :if len (_bgafa .String ())> 0{_geef .V =_ce .MakeName (_bgafa .String ());_fbbbc (_geef ,_geef .V );};default:_ebg .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",_geef .PartialName (),_bgafa );_geef .V =_bgafa ;};case *PdfFieldChoice :switch _bgafa .(type ){case *_ce .PdfObjectName :if len (_bgafa .String ())> 0{_geef .V =_ce .MakeString (_bgafa .String ());_fbbbc (_geef ,_bgafa );};case *_ce .PdfObjectString :if len (_bgafa .String ())> 0{_geef .V =_bgafa ;_fbbbc (_geef ,_ce .MakeName (_bgafa .String ()));};default:_ebg .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",_geef .PartialName (),_bgafa );_geef .V =_bgafa ;};case *PdfFieldSignature :_ebg .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",_geef .PartialName (),_bgafa );};return nil ;};
// ToPdfObject implements interface PdfModel.
func (_cceg *PdfActionSound )ToPdfObject ()_ce .PdfObject {_cceg .PdfAction .ToPdfObject ();_bce :=_cceg ._bdf ;_gfg :=_bce .PdfObject .(*_ce .PdfObjectDictionary );_gfg .SetIfNotNil ("\u0053",_ce .MakeName (string (ActionTypeSound )));_gfg .SetIfNotNil ("\u0053\u006f\u0075n\u0064",_cceg .Sound );_gfg .SetIfNotNil ("\u0056\u006f\u006c\u0075\u006d\u0065",_cceg .Volume );_gfg .SetIfNotNil ("S\u0079\u006e\u0063\u0068\u0072\u006f\u006e\u006f\u0075\u0073",_cceg .Synchronous );_gfg .SetIfNotNil ("\u0052\u0065\u0070\u0065\u0061\u0074",_cceg .Repeat );_gfg .SetIfNotNil ("\u004d\u0069\u0078",_cceg .Mix );return _bce ;};func _agfcge (_facg *_ce .PdfObjectDictionary )(*PdfShadingType7 ,error ){_fbdf :=PdfShadingType7 {};_bfgca :=_facg .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065");if _bfgca ==nil {_ebg .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 ;};_cdfe ,_egecc :=_bfgca .(*_ce .PdfObjectInteger );if !_egecc {_ebg .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",_bfgca );return nil ,_ce .ErrTypeError ;};_fbdf .BitsPerCoordinate =_cdfe ;_bfgca =_facg .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074");if _bfgca ==nil {_ebg .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 ;};_cdfe ,_egecc =_bfgca .(*_ce .PdfObjectInteger );if !_egecc {_ebg .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",_bfgca );return nil ,_ce .ErrTypeError ;};_fbdf .BitsPerComponent =_cdfe ;_bfgca =_facg .Get ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067");if _bfgca ==nil {_ebg .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 ;};_cdfe ,_egecc =_bfgca .(*_ce .PdfObjectInteger );if !_egecc {_ebg .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",_bfgca );return nil ,_ce .ErrTypeError ;};_fbdf .BitsPerComponent =_cdfe ;_bfgca =_facg .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");if _bfgca ==nil {_ebg .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 ;};_aabgb ,_egecc :=_bfgca .(*_ce .PdfObjectArray );if !_egecc {_ebg .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",_bfgca );return nil ,_ce .ErrTypeError ;};_fbdf .Decode =_aabgb ;if _dcee :=_facg .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");_dcee !=nil {_fbdf .Function =[]PdfFunction {};if _dgfbb ,_ceag :=_dcee .(*_ce .PdfObjectArray );_ceag {for _ ,_eeedg :=range _dgfbb .Elements (){_dagebb ,_ggegf :=_edddda (_eeedg );if _ggegf !=nil {_ebg .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",_ggegf );return nil ,_ggegf ;};_fbdf .Function =append (_fbdf .Function ,_dagebb );};}else {_ddfgg ,_cgcag :=_edddda (_dcee );if _cgcag !=nil {_ebg .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",_cgcag );return nil ,_cgcag ;};_fbdf .Function =append (_fbdf .Function ,_ddfgg );};};return &_fbdf ,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 (_bedfa *pdfFontSimple )SetEncoder (encoder _cce .TextEncoder ){_bedfa ._bged =encoder };
// PdfFunctionType4 is a Postscript calculator functions.
type PdfFunctionType4 struct{Domain []float64 ;Range []float64 ;Program *_ef .PSProgram ;_dfca *_ef .PSExecutor ;_fdaf []byte ;_agefg *_ce .PdfObjectStream ;};func (_dfggg SignatureValidationResult )String ()string {var _dcfc _f .Buffer ;_dcfc .WriteString (_c .Sprintf ("\u004ea\u006d\u0065\u003a\u0020\u0025\u0073\n",_dfggg .Name ));if _dfggg .Date ._ddacdb > 0{_dcfc .WriteString (_c .Sprintf ("\u0044a\u0074\u0065\u003a\u0020\u0025\u0073\n",_dfggg .Date .ToGoTime ().String ()));}else {_dcfc .WriteString ("\u0044\u0061\u0074\u0065 n\u006f\u0074\u0020\u0073\u0070\u0065\u0063\u0069\u0066\u0069\u0065\u0064\u000a");};if len (_dfggg .Reason )> 0{_dcfc .WriteString (_c .Sprintf ("R\u0065\u0061\u0073\u006f\u006e\u003a\u0020\u0025\u0073\u000a",_dfggg .Reason ));}else {_dcfc .WriteString ("N\u006f \u0072\u0065\u0061\u0073\u006f\u006e\u0020\u0073p\u0065\u0063\u0069\u0066ie\u0064\u000a");};if len (_dfggg .Location )> 0{_dcfc .WriteString (_c .Sprintf ("\u004c\u006f\u0063\u0061\u0074\u0069\u006f\u006e\u003a\u0020\u0025\u0073\u000a",_dfggg .Location ));}else {_dcfc .WriteString ("\u004c\u006f\u0063at\u0069\u006f\u006e\u0020\u006e\u006f\u0074\u0020\u0073\u0070\u0065\u0063\u0069\u0066\u0069\u0065\u0064\u000a");};if len (_dfggg .ContactInfo )> 0{_dcfc .WriteString (_c .Sprintf ("\u0043\u006f\u006e\u0074\u0061\u0063\u0074\u0020\u0049\u006e\u0066\u006f:\u0020\u0025\u0073\u000a",_dfggg .ContactInfo ));}else {_dcfc .WriteString ("C\u006f\u006e\u0074\u0061\u0063\u0074 \u0069\u006e\u0066\u006f\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063i\u0066i\u0065\u0064\u000a");};_dcfc .WriteString (_c .Sprintf ("F\u0069\u0065\u006c\u0064\u0073\u003a\u0020\u0025\u0064\u000a",len (_dfggg .Fields )));if _dfggg .IsSigned {_dcfc .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 {_dcfc .WriteString ("\u0053\u0069\u0067\u006eed\u003a\u0020\u004e\u006f\u0074\u0020\u0073\u0069\u0067\u006e\u0065\u0064\u000a");};if _dfggg .IsVerified {_dcfc .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 {_dcfc .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 _dfggg .IsTrusted {_dcfc .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 {_dcfc .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 !_dfggg .GeneralizedTime .IsZero (){_dcfc .WriteString (_c .Sprintf ("G\u0065n\u0065\u0072\u0061\u006c\u0069\u007a\u0065\u0064T\u0069\u006d\u0065\u003a %\u0073\u000a",_dfggg .GeneralizedTime .String ()));};return _dcfc .String ();};func (_fcdff *PdfAppender )replaceObject (_fcbd ,_fdcg _ce .PdfObject ){switch _aggb :=_fcbd .(type ){case *_ce .PdfIndirectObject :_fcdff ._daea [_fdcg ]=_aggb .ObjectNumber ;case *_ce .PdfObjectStream :_fcdff ._daea [_fdcg ]=_aggb .ObjectNumber ;};};
// 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 (_dfcd *PdfColorspaceCalGray )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=1{return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_gaed :=vals [0];if _gaed < 0.0||_gaed > 1.0{return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_bgaf :=NewPdfColorCalGray (_gaed );return _bgaf ,nil ;};var _ pdfFont =(*pdfCIDFontType0 )(nil );
// PdfColorspace interface defines the common methods of a PDF colorspace.
// The colorspace defines the data storage format for each color and color representation.
//
// Device based colorspace, specified by name
// - /DeviceGray
// - /DeviceRGB
// - /DeviceCMYK
//
// CIE based colorspace specified by [name, dictionary]
// - [/CalGray dict]
// - [/CalRGB dict]
// - [/Lab dict]
// - [/ICCBased dict]
//
// Special colorspaces
// - /Pattern
// - /Indexed
// - /Separation
// - /DeviceN
//
// Work is in progress to support all colorspaces. At the moment ICCBased color spaces fall back to the alternate
// colorspace which works OK in most cases. For full color support, will need fully featured ICC support.
type PdfColorspace interface{
// String returns the PdfColorspace's name.
String ()string ;
// ImageToRGB converts an Image in a given PdfColorspace to an RGB image.
ImageToRGB (Image )(Image ,error );
// ColorToRGB converts a single color in a given PdfColorspace to an RGB color.
ColorToRGB (_daec PdfColor )(PdfColor ,error );
// GetNumComponents returns the number of components in the PdfColorspace.
GetNumComponents ()int ;
// ToPdfObject returns a PdfObject representation of the PdfColorspace.
ToPdfObject ()_ce .PdfObject ;
// ColorFromPdfObjects returns a PdfColor in the given PdfColorspace from an array of PdfObject where each
// PdfObject represents a numeric value.
ColorFromPdfObjects (_cdg []_ce .PdfObject )(PdfColor ,error );
// ColorFromFloats returns a new PdfColor based on input color components for a given PdfColorspace.
ColorFromFloats (_eecee []float64 )(PdfColor ,error );
// DecodeArray returns the Decode array for the PdfColorSpace, i.e. the range of each component.
DecodeArray ()[]float64 ;};
// NewPdfAnnotationSquiggly returns a new text squiggly annotation.
func NewPdfAnnotationSquiggly ()*PdfAnnotationSquiggly {_ccb :=NewPdfAnnotation ();_dac :=&PdfAnnotationSquiggly {};_dac .PdfAnnotation =_ccb ;_dac .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_ccb .SetContext (_dac );return _dac ;};
// GetContext returns the PdfField context which is the more specific field data type, e.g. PdfFieldButton
// for a button field.
func (_adbc *PdfField )GetContext ()PdfModel {return _adbc ._eedcb };
// ColorFromPdfObjects gets the color from a series of pdf objects (3 for rgb).
func (_dfdg *PdfColorspaceDeviceRGB )ColorFromPdfObjects (objects []_ce .PdfObject )(PdfColor ,error ){if len (objects )!=3{return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_cbdg ,_ccf :=_ce .GetNumbersAsFloat (objects );if _ccf !=nil {return nil ,_ccf ;};return _dfdg .ColorFromFloats (_cbdg );};func _fgeee ()string {return _ebg .Version };
// 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 ;
// PartialName returns the partial name of the field.
func (_fgcd *PdfField )PartialName ()string {_bagbd :="";if _fgcd .T !=nil {_bagbd =_fgcd .T .Decoded ();}else {_ebg .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 _bagbd ;};
// ToPdfObject implements interface PdfModel.
func (_fea *PdfAnnotationPolyLine )ToPdfObject ()_ce .PdfObject {_fea .PdfAnnotation .ToPdfObject ();_aaea :=_fea ._bda ;_abae :=_aaea .PdfObject .(*_ce .PdfObjectDictionary );_fea .PdfAnnotationMarkup .appendToPdfDictionary (_abae );_abae .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ce .MakeName ("\u0050\u006f\u006c\u0079\u004c\u0069\u006e\u0065"));_abae .SetIfNotNil ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073",_fea .Vertices );_abae .SetIfNotNil ("\u004c\u0045",_fea .LE );_abae .SetIfNotNil ("\u0042\u0053",_fea .BS );_abae .SetIfNotNil ("\u0049\u0043",_fea .IC );_abae .SetIfNotNil ("\u0042\u0045",_fea .BE );_abae .SetIfNotNil ("\u0049\u0054",_fea .IT );_abae .SetIfNotNil ("\u004de\u0061\u0073\u0075\u0072\u0065",_fea .Measure );return _aaea ;};
// ToPdfObject implements interface PdfModel.
func (_cbdf *PdfAnnotationSquiggly )ToPdfObject ()_ce .PdfObject {_cbdf .PdfAnnotation .ToPdfObject ();_bfaf :=_cbdf ._bda ;_adbfd :=_bfaf .PdfObject .(*_ce .PdfObjectDictionary );_cbdf .PdfAnnotationMarkup .appendToPdfDictionary (_adbfd );_adbfd .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ce .MakeName ("\u0053\u0071\u0075\u0069\u0067\u0067\u006c\u0079"));_adbfd .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_cbdf .QuadPoints );return _bfaf ;};
// ToPdfObject returns colorspace in a PDF object format [name dictionary]
func (_bfbc *PdfColorspaceLab )ToPdfObject ()_ce .PdfObject {_gca :=_ce .MakeArray ();_gca .Append (_ce .MakeName ("\u004c\u0061\u0062"));_bede :=_ce .MakeDict ();if _bfbc .WhitePoint !=nil {_fdgf :=_ce .MakeArray (_ce .MakeFloat (_bfbc .WhitePoint [0]),_ce .MakeFloat (_bfbc .WhitePoint [1]),_ce .MakeFloat (_bfbc .WhitePoint [2]));_bede .Set ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074",_fdgf );}else {_ebg .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 _bfbc .BlackPoint !=nil {_fdea :=_ce .MakeArray (_ce .MakeFloat (_bfbc .BlackPoint [0]),_ce .MakeFloat (_bfbc .BlackPoint [1]),_ce .MakeFloat (_bfbc .BlackPoint [2]));_bede .Set ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074",_fdea );};if _bfbc .Range !=nil {_eedg :=_ce .MakeArray (_ce .MakeFloat (_bfbc .Range [0]),_ce .MakeFloat (_bfbc .Range [1]),_ce .MakeFloat (_bfbc .Range [2]),_ce .MakeFloat (_bfbc .Range [3]));_bede .Set ("\u0052\u0061\u006eg\u0065",_eedg );};_gca .Append (_bede );if _bfbc ._afdc !=nil {_bfbc ._afdc .PdfObject =_gca ;return _bfbc ._afdc ;};return _gca ;};
// ToPdfOutlineItem returns a low level PdfOutlineItem object,
// based on the current instance.
func (_ggcgd *OutlineItem )ToPdfOutlineItem ()(*PdfOutlineItem ,int64 ){_adbce :=NewPdfOutlineItem ();_adbce .Title =_ce .MakeEncodedString (_ggcgd .Title ,true );_adbce .Dest =_ggcgd .Dest .ToPdfObject ();var _gdgdd []*PdfOutlineItem ;var _gbeee int64 ;var _cabag *PdfOutlineItem ;for _ ,_ffeca :=range _ggcgd .Entries {_dfab ,_bagbg :=_ffeca .ToPdfOutlineItem ();_dfab .Parent =&_adbce .PdfOutlineTreeNode ;if _cabag !=nil {_cabag .Next =&_dfab .PdfOutlineTreeNode ;_dfab .Prev =&_cabag .PdfOutlineTreeNode ;};_gdgdd =append (_gdgdd ,_dfab );_gbeee +=_bagbg ;_cabag =_dfab ;};_gcac :=len (_gdgdd );_gbeee +=int64 (_gcac );if _gcac > 0{_adbce .First =&_gdgdd [0].PdfOutlineTreeNode ;_adbce .Last =&_gdgdd [_gcac -1].PdfOutlineTreeNode ;_adbce .Count =&_gbeee ;};return _adbce ,_gbeee ;};
// PdfActionURI represents an URI action.
type PdfActionURI struct{*PdfAction ;URI _ce .PdfObject ;IsMap _ce .PdfObject ;};
// ImageToRGB converts Lab colorspace image to RGB and returns the result.
func (_dbcg *PdfColorspaceLab )ImageToRGB (img Image )(Image ,error ){_dcdc :=func (_egee float64 )float64 {if _egee >=6.0/29{return _egee *_egee *_egee ;};return 108.0/841*(_egee -4/29);};_dgcb :=img ._cddaa ;if len (_dgcb )!=6{_ebg .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");_dgcb =_dbcg .DecodeArray ();};_ecae :=_ac .NewReader (img .getBase ());_cbga :=_age .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),3,nil ,img ._fdcac ,img ._cddaa );_eabg :=_ac .NewWriter (_cbga );_cbcfe :=_ag .Pow (2,float64 (img .BitsPerComponent ))-1;_cdaa :=make ([]uint32 ,3);var (_fdfb error ;Ls ,As ,Bs ,L ,M ,N ,X ,Y ,Z ,_gcae ,_egbd ,_bcga float64 ;);for {_fdfb =_ecae .ReadSamples (_cdaa );if _fdfb ==_cg .EOF {break ;}else if _fdfb !=nil {return img ,_fdfb ;};Ls =float64 (_cdaa [0])/_cbcfe ;As =float64 (_cdaa [1])/_cbcfe ;Bs =float64 (_cdaa [2])/_cbcfe ;Ls =_age .LinearInterpolate (Ls ,0.0,1.0,_dgcb [0],_dgcb [1]);As =_age .LinearInterpolate (As ,0.0,1.0,_dgcb [2],_dgcb [3]);Bs =_age .LinearInterpolate (Bs ,0.0,1.0,_dgcb [4],_dgcb [5]);L =(Ls +16)/116+As /500;M =(Ls +16)/116;N =(Ls +16)/116-Bs /200;X =_dbcg .WhitePoint [0]*_dcdc (L );Y =_dbcg .WhitePoint [1]*_dcdc (M );Z =_dbcg .WhitePoint [2]*_dcdc (N );_gcae =3.240479*X +-1.537150*Y +-0.498535*Z ;_egbd =-0.969256*X +1.875992*Y +0.041556*Z ;_bcga =0.055648*X +-0.204043*Y +1.057311*Z ;_gcae =_ag .Min (_ag .Max (_gcae ,0),1.0);_egbd =_ag .Min (_ag .Max (_egbd ,0),1.0);_bcga =_ag .Min (_ag .Max (_bcga ,0),1.0);_cdaa [0]=uint32 (_gcae *_cbcfe );_cdaa [1]=uint32 (_egbd *_cbcfe );_cdaa [2]=uint32 (_bcga *_cbcfe );if _fdfb =_eabg .WriteSamples (_cdaa );_fdfb !=nil {return img ,_fdfb ;};};return _efeaf (&_cbga ),nil ;};
// GetAlphabet returns a map of the runes in `text` and their frequencies.
func GetAlphabet (text string )map[rune ]int {_ddbcb :=map[rune ]int {};for _ ,_baaf :=range text {_ddbcb [_baaf ]++;};return _ddbcb ;};func (_deadg *pdfFontType0 )getFontDescriptor ()*PdfFontDescriptor {if _deadg ._adae ==nil &&_deadg .DescendantFont !=nil {return _deadg .DescendantFont .FontDescriptor ();};return _deadg ._adae ;};
// NewPdfColorDeviceCMYK returns a new CMYK32 color.
func NewPdfColorDeviceCMYK (c ,m ,y ,k float64 )*PdfColorDeviceCMYK {_egca :=PdfColorDeviceCMYK {c ,m ,y ,k };return &_egca ;};
// PdfAnnotationSound represents Sound annotations.
// (Section 12.5.6.16).
type PdfAnnotationSound struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Sound _ce .PdfObject ;Name _ce .PdfObject ;};
// GetNumComponents returns the number of color components of the colorspace device.
// Returns 3 for a CalRGB device.
func (_dgcg *PdfColorspaceCalRGB )GetNumComponents ()int {return 3};
// String returns a string describing the font descriptor.
func (_afgff *PdfFontDescriptor )String ()string {var _ecdc []string ;if _afgff .FontName !=nil {_ecdc =append (_ecdc ,_afgff .FontName .String ());};if _afgff .FontFamily !=nil {_ecdc =append (_ecdc ,_afgff .FontFamily .String ());};if _afgff .fontFile !=nil {_ecdc =append (_ecdc ,_afgff .fontFile .String ());};if _afgff ._ggefa !=nil {_ecdc =append (_ecdc ,_afgff ._ggefa .String ());};_ecdc =append (_ecdc ,_c .Sprintf ("\u0046\u006f\u006et\u0046\u0069\u006c\u0065\u0033\u003d\u0025\u0074",_afgff .FontFile3 !=nil ));return _c .Sprintf ("\u0046\u004f\u004e\u0054_D\u0045\u0053\u0043\u0052\u0049\u0050\u0054\u004f\u0052\u007b\u0025\u0073\u007d",_aga .Join (_ecdc ,"\u002c\u0020"));};
// GetContentStream returns the pattern cell's content stream
func (_aageg *PdfTilingPattern )GetContentStream ()([]byte ,error ){_deafb ,_ ,_cddc :=_aageg .GetContentStreamWithEncoder ();return _deafb ,_cddc ;};
// Hasher is the interface that wraps the basic Write method.
type Hasher interface{Write (_fbgfd []byte )(_fgfaf int ,_dfgc error );};func _fgdf (_bbbfc _ce .PdfObject )(*PdfColorspaceICCBased ,error ){_edeb :=&PdfColorspaceICCBased {};if _dbgac ,_bbab :=_bbbfc .(*_ce .PdfIndirectObject );_bbab {_edeb ._cecc =_dbgac ;};_bbbfc =_ce .TraceToDirectObject (_bbbfc );_ccfga ,_ffca :=_bbbfc .(*_ce .PdfObjectArray );if !_ffca {return nil ,_c .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _ccfga .Len ()!=2{return nil ,_c .Errorf ("i\u006e\u0076\u0061\u006c\u0069\u0064 \u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064\u0020c\u006f\u006c\u006fr\u0073p\u0061\u0063\u0065");};_bbbfc =_ce .TraceToDirectObject (_ccfga .Get (0));_adce ,_ffca :=_bbbfc .(*_ce .PdfObjectName );if !_ffca {return nil ,_c .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 *_adce !="\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064"{return nil ,_c .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");};_bbbfc =_ccfga .Get (1);_cdf ,_ffca :=_ce .GetStream (_bbbfc );if !_ffca {_ebg .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",_bbbfc );return nil ,_c .Errorf ("\u0049\u0043\u0043Ba\u0073\u0065\u0064\u0020\u0073\u0074\u0072\u0065\u0061\u006d\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064");};_dgbf :=_cdf .PdfObjectDictionary ;_cadf ,_ffca :=_dgbf .Get ("\u004e").(*_ce .PdfObjectInteger );if !_ffca {return nil ,_c .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 *_cadf !=1&&*_cadf !=3&&*_cadf !=4{return nil ,_c .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");};_edeb .N =int (*_cadf );if _dgdd :=_dgbf .Get ("\u0041l\u0074\u0065\u0072\u006e\u0061\u0074e");_dgdd !=nil {_fefd ,_dfbe :=NewPdfColorspaceFromPdfObject (_dgdd );if _dfbe !=nil {return nil ,_dfbe ;};_edeb .Alternate =_fefd ;};if _bggd :=_dgbf .Get ("\u0052\u0061\u006eg\u0065");_bggd !=nil {_bggd =_ce .TraceToDirectObject (_bggd );_eabbf ,_fbccc :=_bggd .(*_ce .PdfObjectArray );if !_fbccc {return nil ,_c .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 _eabbf .Len ()!=2*_edeb .N {return nil ,_c .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");};_daff ,_fed :=_eabbf .GetAsFloat64Slice ();if _fed !=nil {return nil ,_fed ;};_edeb .Range =_daff ;}else {_edeb .Range =make ([]float64 ,2*_edeb .N );for _baffe :=0;_baffe < _edeb .N ;_baffe ++{_edeb .Range [2*_baffe ]=0.0;_edeb .Range [2*_baffe +1]=1.0;};};if _edded :=_dgbf .Get ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");_edded !=nil {_dddc ,_efde :=_edded .(*_ce .PdfObjectStream );if !_efde {return nil ,_c .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");};_edeb .Metadata =_dddc ;};_efe ,_begab :=_ce .DecodeStream (_cdf );if _begab !=nil {return nil ,_begab ;};_edeb .Data =_efe ;_edeb ._bddg =_cdf ;return _edeb ,nil ;};
// GetNumComponents returns the number of color components (1 for CalGray).
func (_gbeda *PdfColorCalGray )GetNumComponents ()int {return 1};
// ToPdfObject returns a PDF object representation of the outline.
func (_gfgcc *Outline )ToPdfObject ()_ce .PdfObject {return _gfgcc .ToPdfOutline ().ToPdfObject ()};
// 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 _ce .PdfObject ;_agff []byte ;_deeae *_ce .PdfIndirectObject ;};
// PdfActionRendition represents a Rendition action.
type PdfActionRendition struct{*PdfAction ;R _ce .PdfObject ;AN _ce .PdfObject ;OP _ce .PdfObject ;JS _ce .PdfObject ;};
// GetXObjectByName returns the XObject with the specified keyName and the object type.
func (_gbdda *PdfPageResources )GetXObjectByName (keyName _ce .PdfObjectName )(*_ce .PdfObjectStream ,XObjectType ){if _gbdda .XObject ==nil {return nil ,XObjectTypeUndefined ;};_edgcd ,_ddfcb :=_ce .TraceToDirectObject (_gbdda .XObject ).(*_ce .PdfObjectDictionary );if !_ddfcb {_ebg .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",_ce .TraceToDirectObject (_gbdda .XObject ));return nil ,XObjectTypeUndefined ;};if _dgebf :=_edgcd .Get (keyName );_dgebf !=nil {_bggb ,_bbedb :=_ce .GetStream (_dgebf );if !_bbedb {_ebg .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",_dgebf );return nil ,XObjectTypeUndefined ;};_abcag :=_bggb .PdfObjectDictionary ;_afffe ,_bbedb :=_ce .TraceToDirectObject (_abcag .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065")).(*_ce .PdfObjectName );if !_bbedb {_ebg .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",_abcag .String ());return nil ,XObjectTypeUndefined ;};if *_afffe =="\u0049\u006d\u0061g\u0065"{return _bggb ,XObjectTypeImage ;}else if *_afffe =="\u0046\u006f\u0072\u006d"{return _bggb ,XObjectTypeForm ;}else if *_afffe =="\u0050\u0053"{return _bggb ,XObjectTypePS ;}else {_ebg .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",*_afffe );return nil ,XObjectTypeUndefined ;};}else {return nil ,XObjectTypeUndefined ;};};
// PdfFieldButton represents a button field which includes push buttons, checkboxes, and radio buttons.
type PdfFieldButton struct{*PdfField ;Opt *_ce .PdfObjectArray ;};
// ToPdfObject implements interface PdfModel.
func (_gbed *PdfAnnotationHighlight )ToPdfObject ()_ce .PdfObject {_gbed .PdfAnnotation .ToPdfObject ();_cda :=_gbed ._bda ;_dbcd :=_cda .PdfObject .(*_ce .PdfObjectDictionary );_gbed .PdfAnnotationMarkup .appendToPdfDictionary (_dbcd );_dbcd .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ce .MakeName ("\u0048i\u0067\u0068\u006c\u0069\u0067\u0068t"));_dbcd .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_gbed .QuadPoints );return _cda ;};
// ToPdfObject implements interface PdfModel.
func (_daaa *PdfAnnotationTrapNet )ToPdfObject ()_ce .PdfObject {_daaa .PdfAnnotation .ToPdfObject ();_afg :=_daaa ._bda ;_dbed :=_afg .PdfObject .(*_ce .PdfObjectDictionary );_dbed .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ce .MakeName ("\u0054r\u0061\u0070\u004e\u0065\u0074"));return _afg ;};
// RemovePage removes a page by number.
func (_gdgd *PdfAppender )RemovePage (pageNum int ){_dbgg :=pageNum -1;_gdgd ._fdef =append (_gdgd ._fdef [0:_dbgg ],_gdgd ._fdef [pageNum :]...);};
// Add appends an outline item as a child of the current outline item.
func (_dbada *OutlineItem )Add (item *OutlineItem ){_dbada .Entries =append (_dbada .Entries ,item )};func (_fcfgb *PdfReader )newPdfFieldSignatureFromDict (_dfbc *_ce .PdfObjectDictionary )(*PdfFieldSignature ,error ){_bfcc :=&PdfFieldSignature {};_acgb ,_dddd :=_ce .GetIndirect (_dfbc .Get ("\u0056"));if _dddd {var _adgd error ;_bfcc .V ,_adgd =_fcfgb .newPdfSignatureFromIndirect (_acgb );if _adgd !=nil {return nil ,_adgd ;};};_bfcc .Lock ,_ =_ce .GetIndirect (_dfbc .Get ("\u004c\u006f\u0063\u006b"));_bfcc .SV ,_ =_ce .GetIndirect (_dfbc .Get ("\u0053\u0056"));return _bfcc ,nil ;};
// ToPdfObject returns the PDF representation of the colorspace.
func (_bcgd *PdfColorspaceDeviceGray )ToPdfObject ()_ce .PdfObject {return _ce .MakeName ("\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079");};
// ToPdfObject returns the PDF representation of the shading dictionary.
func (_geedgg *PdfShadingType7 )ToPdfObject ()_ce .PdfObject {_geedgg .PdfShading .ToPdfObject ();_bfedc ,_dabc :=_geedgg .getShadingDict ();if _dabc !=nil {_ebg .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 _geedgg .BitsPerCoordinate !=nil {_bfedc .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065",_geedgg .BitsPerCoordinate );};if _geedgg .BitsPerComponent !=nil {_bfedc .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_geedgg .BitsPerComponent );};if _geedgg .BitsPerFlag !=nil {_bfedc .Set ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067",_geedgg .BitsPerFlag );};if _geedgg .Decode !=nil {_bfedc .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_geedgg .Decode );};if _geedgg .Function !=nil {if len (_geedgg .Function )==1{_bfedc .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_geedgg .Function [0].ToPdfObject ());}else {_cbgfc :=_ce .MakeArray ();for _ ,_dfadf :=range _geedgg .Function {_cbgfc .Append (_dfadf .ToPdfObject ());};_bfedc .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_cbgfc );};};return _geedgg ._efbab ;};
// GetNumComponents returns the number of color components of the colorspace device.
// Returns 4 for a CMYK32 device.
func (_gbdd *PdfColorspaceDeviceCMYK )GetNumComponents ()int {return 4};
// GetContainingPdfObject returns the container of the resources object (indirect object).
func (_cdaeg *PdfPageResources )GetContainingPdfObject ()_ce .PdfObject {return _cdaeg ._eebf };func (_dae *PdfReader )newPdfActionJavaScriptFromDict (_dbd *_ce .PdfObjectDictionary )(*PdfActionJavaScript ,error ){return &PdfActionJavaScript {JS :_dbd .Get ("\u004a\u0053")},nil ;};
// String implements interface PdfObject.
func (_agc *PdfAction )String ()string {_cb ,_fce :=_agc .ToPdfObject ().(*_ce .PdfIndirectObject );if _fce {return _c .Sprintf ("\u0025\u0054\u003a\u0020\u0025\u0073",_agc ._cga ,_cb .PdfObject .String ());};return "";};
// NewPdfOutline returns an initialized PdfOutline.
func NewPdfOutline ()*PdfOutline {_afedee :=&PdfOutline {_cdgg :_ce .MakeIndirectObject (_ce .MakeDict ())};_afedee ._edggc =_afedee ;return _afedee ;};
// 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 (_eabga pdfFontSimple )GetCharMetrics (code _cce .CharCode )(_cc .CharMetrics ,bool ){if _fegf ,_cgeaed :=_eabga ._bgdcb [code ];_cgeaed {return _cc .CharMetrics {Wx :_fegf },true ;};if _cc .IsStdFont (_cc .StdFontName (_eabga ._agcagf )){return _cc .CharMetrics {Wx :250},true ;};return _cc .CharMetrics {},false ;};
// PdfOutlineTreeNode contains common fields used by the outline and outline
// item objects.
type PdfOutlineTreeNode struct{_edggc interface{};First *PdfOutlineTreeNode ;Last *PdfOutlineTreeNode ;};
// NewPdfColorspaceCalRGB returns a new CalRGB colorspace object.
func NewPdfColorspaceCalRGB ()*PdfColorspaceCalRGB {_ecfeb :=&PdfColorspaceCalRGB {};_ecfeb .BlackPoint =[]float64 {0.0,0.0,0.0};_ecfeb .Gamma =[]float64 {1.0,1.0,1.0};_ecfeb .Matrix =[]float64 {1,0,0,0,1,0,0,0,1};return _ecfeb ;};func (_geebc *PdfReader )newPdfOutlineItemFromIndirectObject (_bacga *_ce .PdfIndirectObject )(*PdfOutlineItem ,error ){_aggea ,_cgbag :=_bacga .PdfObject .(*_ce .PdfObjectDictionary );if !_cgbag {return nil ,_c .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");};_ebbg :=NewPdfOutlineItem ();_afegc :=_aggea .Get ("\u0054\u0069\u0074l\u0065");if _afegc ==nil {return nil ,_c .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");};_ffbee ,_gbbb :=_ce .GetString (_afegc );if !_gbbb {return nil ,_c .Errorf ("\u0074\u0069\u0074le\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0073\u0074\u0072\u0069\u006e\u0067\u0020\u0028\u0025\u0054\u0029",_afegc );};_ebbg .Title =_ffbee ;if _bcccb :=_aggea .Get ("\u0043\u006f\u0075n\u0074");_bcccb !=nil {_deac ,_gegc :=_bcccb .(*_ce .PdfObjectInteger );if !_gegc {return nil ,_c .Errorf ("\u0063o\u0075\u006e\u0074\u0020n\u006f\u0074\u0020\u0061\u006e \u0069n\u0074e\u0067\u0065\u0072\u0020\u0028\u0025\u0054)",_bcccb );};_gadfc :=int64 (*_deac );_ebbg .Count =&_gadfc ;};if _efcaf :=_aggea .Get ("\u0044\u0065\u0073\u0074");_efcaf !=nil {_ebbg .Dest =_ce .ResolveReference (_efcaf );if !_geebc ._ebegg {_dcba :=_geebc .traverseObjectData (_ebbg .Dest );if _dcba !=nil {return nil ,_dcba ;};};};if _acccf :=_aggea .Get ("\u0041");_acccf !=nil {_ebbg .A =_ce .ResolveReference (_acccf );if !_geebc ._ebegg {_bgde :=_geebc .traverseObjectData (_ebbg .A );if _bgde !=nil {return nil ,_bgde ;};};};if _afgdf :=_aggea .Get ("\u0053\u0045");_afgdf !=nil {_ebbg .SE =nil ;};if _cedeg :=_aggea .Get ("\u0043");_cedeg !=nil {_ebbg .C =_ce .ResolveReference (_cedeg );};if _fdagc :=_aggea .Get ("\u0046");_fdagc !=nil {_ebbg .F =_ce .ResolveReference (_fdagc );};return _ebbg ,nil ;};func (_gdaa *PdfReader )newPdfAnnotationPopupFromDict (_decg *_ce .PdfObjectDictionary )(*PdfAnnotationPopup ,error ){_agadd :=PdfAnnotationPopup {};_agadd .Parent =_decg .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");_agadd .Open =_decg .Get ("\u004f\u0070\u0065\u006e");return &_agadd ,nil ;};
// PdfFont represents an underlying font structure which can be of type:
// - Type0
// - Type1
// - TrueType
// etc.
type PdfFont struct{_decac pdfFont };func (_fgag *pdfFontType0 )subsetRegistered ()error {_cdae ,_fcae :=_fgag .DescendantFont ._decac .(*pdfCIDFontType2 );if !_fcae {_ebg .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",_fgag .DescendantFont );return nil ;};if _cdae ==nil {return nil ;};if _cdae ._adae ==nil {_ebg .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 _fgag ._gedcf ==nil {_ebg .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 ;};_aeaf ,_fcae :=_ce .GetStream (_cdae ._adae .FontFile2 );if !_fcae {_ebg .Log .Debug ("\u0045\u006d\u0062\u0065\u0064\u0064\u0065\u0064\u0020\u0066\u006f\u006e\u0074\u0020\u006f\u0062\u006a\u0065c\u0074\u0020\u006e\u006f\u0074\u0020\u0066o\u0075\u006e\u0064\u0020\u002d\u002d\u0020\u0041\u0042\u004f\u0052T\u0020\u0073\u0075\u0062\u0073\u0065\u0074\u0074\u0069\u006e\u0067");return _gd .New ("\u0066\u006f\u006e\u0074fi\u006c\u0065\u0032\u0020\u006e\u006f\u0074\u0020\u0066\u006f\u0075\u006e\u0064");};_fbba ,_adca :=_ce .DecodeStream (_aeaf );if _adca !=nil {_ebg .Log .Debug ("\u0044\u0065c\u006f\u0064\u0065 \u0065\u0072\u0072\u006f\u0072\u003a\u0020\u0025\u0076",_adca );return _adca ;};_acea ,_adca :=_af .Parse (_f .NewReader (_fbba ));if _adca !=nil {_ebg .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 (_aeaf .Stream ));return _adca ;};var _deccf []rune ;var _geba *_af .Font ;switch _egdc :=_fgag ._gedcf .(type ){case *_cce .TrueTypeFontEncoder :_deccf =_egdc .RegisteredRunes ();_geba ,_adca =_acea .SubsetKeepRunes (_deccf );if _adca !=nil {_ebg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_adca );return _adca ;};_egdc .SubsetRegistered ();case *_cce .IdentityEncoder :_deccf =_egdc .RegisteredRunes ();_abedf :=make ([]_af .GlyphIndex ,len (_deccf ));for _bebbb ,_afgda :=range _deccf {_abedf [_bebbb ]=_af .GlyphIndex (_afgda );};_geba ,_adca =_acea .SubsetKeepIndices (_abedf );if _adca !=nil {_ebg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_adca );return _adca ;};case _cce .SimpleEncoder :_gbgfc :=_egdc .Charcodes ();for _ ,_gdece :=range _gbgfc {_gdaf ,_befb :=_egdc .CharcodeToRune (_gdece );if !_befb {_ebg .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",_gdece );continue ;};_deccf =append (_deccf ,_gdaf );};default:return _c .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",_fgag ._gedcf );};var _aegc _f .Buffer ;_adca =_geba .Write (&_aegc );if _adca !=nil {_ebg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_adca );return _adca ;};if _fgag ._fefb !=nil {_cecee :=make (map[_fa .CharCode ]rune ,len (_deccf ));for _ ,_bfcb :=range _deccf {_fcace ,_egeffb :=_fgag ._gedcf .RuneToCharcode (_bfcb );if !_egeffb {continue ;};_cecee [_fa .CharCode (_fcace )]=_bfcb ;};_fgag ._fefb =_fa .NewToUnicodeCMap (_cecee );};_aeaf ,_adca =_ce .MakeStream (_aegc .Bytes (),_ce .NewFlateEncoder ());if _adca !=nil {_ebg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_adca );return _adca ;};_aeaf .Set ("\u004ce\u006e\u0067\u0074\u0068\u0031",_ce .MakeInteger (int64 (_aegc .Len ())));if _gfdda ,_cagd :=_ce .GetStream (_cdae ._adae .FontFile2 );_cagd {*_gfdda =*_aeaf ;}else {_cdae ._adae .FontFile2 =_aeaf ;};_dedc :=_abab ();if len (_fgag ._agcagf )> 0{_fgag ._agcagf =_eada (_fgag ._agcagf ,_dedc );};if len (_cdae ._agcagf )> 0{_cdae ._agcagf =_eada (_cdae ._agcagf ,_dedc );};if len (_fgag ._effed )> 0{_fgag ._effed =_eada (_fgag ._effed ,_dedc );};if _cdae ._adae !=nil {_gaegb ,_dbbgc :=_ce .GetName (_cdae ._adae .FontName );if _dbbgc &&len (_gaegb .String ())> 0{_cedc :=_eada (_gaegb .String (),_dedc );_cdae ._adae .FontName =_ce .MakeName (_cedc );};};return nil ;};
// SetContentStream sets the pattern cell's content stream.
func (_dedg *PdfTilingPattern )SetContentStream (content []byte ,encoder _ce .StreamEncoder )error {_fgdd ,_fcbeda :=_dedg ._efabe .(*_ce .PdfObjectStream );if !_fcbeda {_ebg .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",_dedg ._efabe );return _ce .ErrTypeError ;};if encoder ==nil {encoder =_ce .NewRawEncoder ();};_egcd :=_fgdd .PdfObjectDictionary ;_bgcbb :=encoder .MakeStreamDict ();_egcd .Merge (_bgcbb );_adgca ,_ecega :=encoder .EncodeBytes (content );if _ecega !=nil {return _ecega ;};_egcd .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_ce .MakeInteger (int64 (len (_adgca ))));_fgdd .Stream =[]byte (_adgca );return nil ;};func (_dabd *pdfFontType0 )baseFields ()*fontCommon {return &_dabd .fontCommon };
// PdfColorspaceCalGray represents CalGray color space.
type PdfColorspaceCalGray struct{WhitePoint []float64 ;BlackPoint []float64 ;Gamma float64 ;_bcbf *_ce .PdfIndirectObject ;};func (_cgccg *pdfFontType0 )bytesToCharcodes (_acbc []byte )([]_cce .CharCode ,bool ){if _cgccg ._fgbdd ==nil {return nil ,false ;};_cfedg ,_cabaa :=_cgccg ._fgbdd .BytesToCharcodes (_acbc );if !_cabaa {return nil ,false ;};_cecef :=make ([]_cce .CharCode ,len (_cfedg ));for _fgbe ,_geccc :=range _cfedg {_cecef [_fgbe ]=_cce .CharCode (_geccc );};return _cecef ,true ;};func (_dbac *PdfReader )loadStructure ()error {if _dbac ._dbfe .GetCrypter ()!=nil &&!_dbac ._dbfe .IsAuthenticated (){return _c .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");};_dggf :=_dbac ._dbfe .GetTrailer ();if _dggf ==nil {return _c .Errorf ("\u006di\u0073s\u0069\u006e\u0067\u0020\u0074\u0072\u0061\u0069\u006c\u0065\u0072");};_defd ,_aggcg :=_dggf .Get ("\u0052\u006f\u006f\u0074").(*_ce .PdfObjectReference );if !_aggcg {return _c .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",_dggf );};_cdecf ,_eddae :=_dbac ._dbfe .LookupByReference (*_defd );if _eddae !=nil {_ebg .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",_eddae );return _eddae ;};_bfcfg ,_aggcg :=_cdecf .(*_ce .PdfIndirectObject );if !_aggcg {_ebg .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",_cdecf ,*_dggf );return _gd .New ("\u006di\u0073s\u0069\u006e\u0067\u0020\u0063\u0061\u0074\u0061\u006c\u006f\u0067");};_geefc ,_aggcg :=(*_bfcfg ).PdfObject .(*_ce .PdfObjectDictionary );if !_aggcg {_ebg .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",_bfcfg .PdfObject );return _gd .New ("\u0069n\u0076a\u006c\u0069\u0064\u0020\u0063\u0061\u0074\u0061\u006c\u006f\u0067");};_ebg .Log .Trace ("C\u0061\u0074\u0061\u006c\u006f\u0067\u003a\u0020\u0025\u0073",_geefc );_egbed ,_aggcg :=_geefc .Get ("\u0050\u0061\u0067e\u0073").(*_ce .PdfObjectReference );if !_aggcg {return _gd .New ("\u0070\u0061\u0067\u0065\u0073\u0020\u0069\u006e\u0020\u0063\u0061\u0074\u0061\u006c\u006f\u0067\u0020\u0073\u0068\u006f\u0075\u006c\u0064\u0020b\u0065\u0020\u0061\u0020\u0072e\u0066\u0065r\u0065\u006e\u0063\u0065");};_cbcgb ,_eddae :=_dbac ._dbfe .LookupByReference (*_egbed );if _eddae !=nil {_ebg .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 _eddae ;};_bgbfg ,_aggcg :=_cbcgb .(*_ce .PdfIndirectObject );if !_aggcg {_ebg .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");_ebg .Log .Debug ("\u006f\u0070\u003a\u0020\u0025\u0070",_bgbfg );return _gd .New ("p\u0061g\u0065\u0073\u0020\u006f\u0062\u006a\u0065\u0063t\u0020\u0069\u006e\u0076al\u0069\u0064");};_cgdbd ,_aggcg :=_bgbfg .PdfObject .(*_ce .PdfObjectDictionary );if !_aggcg {_ebg .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",_bgbfg );return _gd .New ("p\u0061g\u0065\u0073\u0020\u006f\u0062\u006a\u0065\u0063t\u0020\u0069\u006e\u0076al\u0069\u0064");};_dcgaf ,_aggcg :=_ce .GetInt (_cgdbd .Get ("\u0043\u006f\u0075n\u0074"));if !_aggcg {_ebg .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a \u0050\u0061\u0067\u0065\u0073\u0020\u0063\u006f\u0075\u006e\u0074\u0020\u006fb\u006a\u0065\u0063\u0074\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");return _gd .New ("\u0070\u0061\u0067\u0065s \u0063\u006f\u0075\u006e\u0074\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064");};if _ ,_aggcg =_ce .GetName (_cgdbd .Get ("\u0054\u0079\u0070\u0065"));!_aggcg {_ebg .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");_cgdbd .Set ("\u0054\u0079\u0070\u0065",_ce .MakeName ("\u0050\u0061\u0067e\u0073"));};_dbac ._ccbac =_defd ;_dbac ._gaadd =_geefc ;_dbac ._gdfcbg =_cgdbd ;_dbac ._acfe =_bgbfg ;_dbac ._bbfa =int (*_dcgaf );_dbac ._gggg =[]*_ce .PdfIndirectObject {};_becag :=map[_ce .PdfObject ]struct{}{};_eddae =_dbac .buildPageList (_bgbfg ,nil ,_becag );if _eddae !=nil {return _eddae ;};_ebg .Log .Trace ("\u002d\u002d\u002d");_ebg .Log .Trace ("\u0054\u004f\u0043");_ebg .Log .Trace ("\u0050\u0061\u0067e\u0073");_ebg .Log .Trace ("\u0025\u0064\u003a\u0020\u0025\u0073",len (_dbac ._gggg ),_dbac ._gggg );_dbac ._feebe ,_eddae =_dbac .loadOutlines ();if _eddae !=nil {_ebg .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",_eddae );return _eddae ;};_dbac .AcroForm ,_eddae =_dbac .loadForms ();if _eddae !=nil {return _eddae ;};return nil ;};
// ToPdfObject returns the PDF representation of the outline tree node.
func (_aeee *PdfOutlineTreeNode )ToPdfObject ()_ce .PdfObject {return _aeee .GetContext ().ToPdfObject ()};
// ToPdfObject converts PdfAcroForm to a PdfObject, i.e. an indirect object containing the
// AcroForm dictionary.
func (_ddda *PdfAcroForm )ToPdfObject ()_ce .PdfObject {_cedgd :=_ddda ._adfcd ;_debbbc :=_cedgd .PdfObject .(*_ce .PdfObjectDictionary );if _ddda .Fields !=nil {_caafg :=_ce .PdfObjectArray {};for _ ,_fcfa :=range *_ddda .Fields {_ffbf :=_fcfa .GetContext ();if _ffbf !=nil {_caafg .Append (_ffbf .ToPdfObject ());}else {_caafg .Append (_fcfa .ToPdfObject ());};};_debbbc .Set ("\u0046\u0069\u0065\u006c\u0064\u0073",&_caafg );};if _ddda .NeedAppearances !=nil {_debbbc .Set ("\u004ee\u0065d\u0041\u0070\u0070\u0065\u0061\u0072\u0061\u006e\u0063\u0065\u0073",_ddda .NeedAppearances );};if _ddda .SigFlags !=nil {_debbbc .Set ("\u0053\u0069\u0067\u0046\u006c\u0061\u0067\u0073",_ddda .SigFlags );};if _ddda .CO !=nil {_debbbc .Set ("\u0043\u004f",_ddda .CO );};if _ddda .DR !=nil {_debbbc .Set ("\u0044\u0052",_ddda .DR .ToPdfObject ());};if _ddda .DA !=nil {_debbbc .Set ("\u0044\u0041",_ddda .DA );};if _ddda .Q !=nil {_debbbc .Set ("\u0051",_ddda .Q );};if _ddda .XFA !=nil {_debbbc .Set ("\u0058\u0046\u0041",_ddda .XFA );};return _cedgd ;};
// NewXObjectImage returns a new XObjectImage.
func NewXObjectImage ()*XObjectImage {_edadg :=&XObjectImage {};_bggcc :=&_ce .PdfObjectStream {};_bggcc .PdfObjectDictionary =_ce .MakeDict ();_edadg ._gfag =_bggcc ;return _edadg ;};func _cbge (_gddc *_ce .PdfObjectDictionary )(*PdfFieldButton ,error ){_dbfgc :=&PdfFieldButton {};_dbfgc .Opt ,_ =_ce .GetArray (_gddc .Get ("\u004f\u0070\u0074"));return _dbfgc ,nil ;};
// GetCharMetrics returns the char metrics for character code `code`.
func (_cfceb pdfCIDFontType0 )GetCharMetrics (code _cce .CharCode )(_cc .CharMetrics ,bool ){_egfbc :=_cfceb ._ccff ;if _dabe ,_aagf :=_cfceb ._fcfd [code ];_aagf {_egfbc =_dabe ;};return _cc .CharMetrics {Wx :_egfbc },true ;};
// PdfAnnotationTrapNet represents TrapNet annotations.
// (Section 12.5.6.21).
type PdfAnnotationTrapNet struct{*PdfAnnotation };func _fbbe (_befee *_ce .PdfObjectDictionary ,_gaegba *fontCommon ,_dcaeg _cce .TextEncoder )(*pdfFontSimple ,error ){_gddcc :=_bbafg (_gaegba );_gddcc ._edbbe =_dcaeg ;if _dcaeg ==nil {_eccdf :=_befee .Get ("\u0046i\u0072\u0073\u0074\u0043\u0068\u0061r");if _eccdf ==nil {_eccdf =_ce .MakeInteger (0);};_gddcc .FirstChar =_eccdf ;_dccc ,_fbff :=_ce .GetIntVal (_eccdf );if !_fbff {_ebg .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",_eccdf );return nil ,_ce .ErrTypeError ;};_fbab :=_cce .CharCode (_dccc );_eccdf =_befee .Get ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072");if _eccdf ==nil {_eccdf =_ce .MakeInteger (255);};_gddcc .LastChar =_eccdf ;_dccc ,_fbff =_ce .GetIntVal (_eccdf );if !_fbff {_ebg .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",_eccdf );return nil ,_ce .ErrTypeError ;};_ebcdc :=_cce .CharCode (_dccc );_gddcc ._bgdcb =make (map[_cce .CharCode ]float64 );_eccdf =_befee .Get ("\u0057\u0069\u0064\u0074\u0068\u0073");if _eccdf !=nil {_gddcc .Widths =_eccdf ;_aacb ,_dbabf :=_ce .GetArray (_eccdf );if !_dbabf {_ebg .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",_eccdf );return nil ,_ce .ErrTypeError ;};_eedeg ,_aeedg :=_aacb .ToFloat64Array ();if _aeedg !=nil {_ebg .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 ,_aeedg ;};if len (_eedeg )!=int (_ebcdc -_fbab +1){_ebg .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",_ebcdc -_fbab +1,len (_eedeg ));return nil ,_ce .ErrRangeError ;};for _bfda ,_fged :=range _eedeg {_gddcc ._bgdcb [_fbab +_cce .CharCode (_bfda )]=_fged ;};};};_gddcc .Encoding =_ce .TraceToDirectObject (_befee .Get ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067"));return _gddcc ,nil ;};
// PdfColorspaceSpecialPattern is a Pattern colorspace.
// Can be defined either as /Pattern or with an underlying colorspace [/Pattern cs].
type PdfColorspaceSpecialPattern struct{UnderlyingCS PdfColorspace ;_edbdd *_ce .PdfIndirectObject ;};
// GetContainingPdfObject returns the container of the outline item (indirect object).
func (_fdaca *PdfOutlineItem )GetContainingPdfObject ()_ce .PdfObject {return _fdaca ._cfgdb };func (_efba *PdfReader )loadAction (_cgfb _ce .PdfObject )(*PdfAction ,error ){if _abe ,_cbcf :=_ce .GetIndirect (_cgfb );_cbcf {_aea ,_dbda :=_efba .newPdfActionFromIndirectObject (_abe );if _dbda !=nil {return nil ,_dbda ;};return _aea ,nil ;}else if !_ce .IsNullObject (_cgfb ){return nil ,_gd .New ("\u0061\u0063\u0074\u0069\u006fn\u0020\u0073\u0068\u006f\u0075\u006c\u0064\u0020\u0070\u006f\u0069\u006e\u0074 \u0074\u006f\u0020\u0061\u006e\u0020\u0069\u006e\u0064\u0069\u0072\u0065\u0063\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074");};return nil ,nil ;};
// ToPdfObject implements interface PdfModel.
func (_gbgb *PdfAnnotationStamp )ToPdfObject ()_ce .PdfObject {_gbgb .PdfAnnotation .ToPdfObject ();_fgac :=_gbgb ._bda ;_bafc :=_fgac .PdfObject .(*_ce .PdfObjectDictionary );_gbgb .PdfAnnotationMarkup .appendToPdfDictionary (_bafc );_bafc .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ce .MakeName ("\u0053\u0074\u0061m\u0070"));_bafc .SetIfNotNil ("\u004e\u0061\u006d\u0065",_gbgb .Name );return _fgac ;};func _cgbc (_afad *_ce .PdfObjectDictionary )(*PdfShadingType6 ,error ){_fggdbf :=PdfShadingType6 {};_fegcg :=_afad .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065");if _fegcg ==nil {_ebg .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 ;};_fadf ,_bcada :=_fegcg .(*_ce .PdfObjectInteger );if !_bcada {_ebg .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",_fegcg );return nil ,_ce .ErrTypeError ;};_fggdbf .BitsPerCoordinate =_fadf ;_fegcg =_afad .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074");if _fegcg ==nil {_ebg .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 ;};_fadf ,_bcada =_fegcg .(*_ce .PdfObjectInteger );if !_bcada {_ebg .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",_fegcg );return nil ,_ce .ErrTypeError ;};_fggdbf .BitsPerComponent =_fadf ;_fegcg =_afad .Get ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067");if _fegcg ==nil {_ebg .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 ;};_fadf ,_bcada =_fegcg .(*_ce .PdfObjectInteger );if !_bcada {_ebg .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",_fegcg );return nil ,_ce .ErrTypeError ;};_fggdbf .BitsPerComponent =_fadf ;_fegcg =_afad .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");if _fegcg ==nil {_ebg .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 ;};_dfegg ,_bcada :=_fegcg .(*_ce .PdfObjectArray );if !_bcada {_ebg .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",_fegcg );return nil ,_ce .ErrTypeError ;};_fggdbf .Decode =_dfegg ;if _eega :=_afad .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");_eega !=nil {_fggdbf .Function =[]PdfFunction {};if _dcdee ,_cbccc :=_eega .(*_ce .PdfObjectArray );_cbccc {for _ ,_aaada :=range _dcdee .Elements (){_bgagb ,_fecea :=_edddda (_aaada );if _fecea !=nil {_ebg .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",_fecea );return nil ,_fecea ;};_fggdbf .Function =append (_fggdbf .Function ,_bgagb );};}else {_bdacb ,_bcdfd :=_edddda (_eega );if _bcdfd !=nil {_ebg .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",_bcdfd );return nil ,_bcdfd ;};_fggdbf .Function =append (_fggdbf .Function ,_bdacb );};};return &_fggdbf ,nil ;};
// GetNumComponents returns the number of color components of the colorspace device.
// Returns 1 for a CalGray device.
func (_gggag *PdfColorspaceCalGray )GetNumComponents ()int {return 1};
// GetContext returns a reference to the subpattern entry: either PdfTilingPattern or PdfShadingPattern.
func (_cdbaa *PdfPattern )GetContext ()PdfModel {return _cdbaa ._gdge };
// ToGoImage converts the unidoc Image to a golang Image structure.
func (_bccf *Image )ToGoImage ()(_eg .Image ,error ){_ebg .Log .Trace ("\u0043\u006f\u006e\u0076er\u0074\u0069\u006e\u0067\u0020\u0074\u006f\u0020\u0067\u006f\u0020\u0069\u006d\u0061g\u0065");_bacb ,_cffbbg :=_age .NewImage (int (_bccf .Width ),int (_bccf .Height ),int (_bccf .BitsPerComponent ),_bccf .ColorComponents ,_bccf .Data ,_bccf ._fdcac ,_bccf ._cddaa );if _cffbbg !=nil {return nil ,_cffbbg ;};return _bacb ,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 };};func (_fbbea *PdfAcroForm )signatureFields ()[]*PdfFieldSignature {var _edfb []*PdfFieldSignature ;for _ ,_aaddg :=range _fbbea .AllFields (){switch _dagb :=_aaddg .GetContext ().(type ){case *PdfFieldSignature :_eefeeb :=_dagb ;_edfb =append (_edfb ,_eefeeb );};};return _edfb ;};
// ColorToRGB converts a color in Separation colorspace to RGB colorspace.
func (_fcab *PdfColorspaceSpecialSeparation )ColorToRGB (color PdfColor )(PdfColor ,error ){if _fcab .AlternateSpace ==nil {return nil ,_gd .New ("\u0061\u006c\u0074\u0065\u0072\u006e\u0061\u0074\u0065\u0020c\u006f\u006c\u006f\u0072\u0073\u0070\u0061c\u0065\u0020\u0075\u006e\u0064\u0065\u0066\u0069\u006e\u0065\u0064");};return _fcab .AlternateSpace .ColorToRGB (color );};
// 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 (_gbgfff *PdfSignature )bool ;Validate (_aedae *PdfSignature ,_eacd Hasher )(SignatureValidationResult ,error );
// InitSignature sets the PdfSignature parameters.
InitSignature (*PdfSignature )error ;NewDigest (_ebbb *PdfSignature )(Hasher ,error );Sign (_cdcd *PdfSignature ,_ggeab Hasher )error ;};
// GetNumComponents returns the number of color components (4 for CMYK32).
func (_gfgg *PdfColorDeviceCMYK )GetNumComponents ()int {return 4};func _cdba (_abdga _ce .PdfObject )(*PdfPageResourcesColorspaces ,error ){_ddedc :=&PdfPageResourcesColorspaces {};if _ffede ,_ebfb :=_abdga .(*_ce .PdfIndirectObject );_ebfb {_ddedc ._facbb =_ffede ;_abdga =_ffede .PdfObject ;};_cgfbg ,_agdc :=_ce .GetDict (_abdga );if !_agdc {return nil ,_gd .New ("\u0043\u0053\u0020at\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};_ddedc .Names =[]string {};_ddedc .Colorspaces =map[string ]PdfColorspace {};for _ ,_bfcf :=range _cgfbg .Keys (){_dfbac :=_cgfbg .Get (_bfcf );_ddedc .Names =append (_ddedc .Names ,string (_bfcf ));_feca ,_eabda :=NewPdfColorspaceFromPdfObject (_dfbac );if _eabda !=nil {return nil ,_eabda ;};_ddedc .Colorspaces [string (_bfcf )]=_feca ;};return _ddedc ,nil ;};
// SetContext sets the sub pattern (context). Either PdfTilingPattern or PdfShadingPattern.
func (_feffg *PdfPattern )SetContext (ctx PdfModel ){_feffg ._gdge =ctx };
// PdfAnnotationRichMedia represents Rich Media annotations.
type PdfAnnotationRichMedia struct{*PdfAnnotation ;RichMediaSettings _ce .PdfObject ;RichMediaContent _ce .PdfObject ;};
// PdfPageResources is a Page resources model.
// Implements PdfModel.
type PdfPageResources struct{ExtGState _ce .PdfObject ;ColorSpace _ce .PdfObject ;Pattern _ce .PdfObject ;Shading _ce .PdfObject ;XObject _ce .PdfObject ;Font _ce .PdfObject ;ProcSet _ce .PdfObject ;Properties _ce .PdfObject ;_eebf *_ce .PdfObjectDictionary ;_gddae *PdfPageResourcesColorspaces ;};func (_eadf *PdfReader )newPdfAnnotationTextFromDict (_fdadf *_ce .PdfObjectDictionary )(*PdfAnnotationText ,error ){_eefg :=PdfAnnotationText {};_dab ,_edde :=_eadf .newPdfAnnotationMarkupFromDict (_fdadf );if _edde !=nil {return nil ,_edde ;};_eefg .PdfAnnotationMarkup =_dab ;_eefg .Open =_fdadf .Get ("\u004f\u0070\u0065\u006e");_eefg .Name =_fdadf .Get ("\u004e\u0061\u006d\u0065");_eefg .State =_fdadf .Get ("\u0053\u0074\u0061t\u0065");_eefg .StateModel =_fdadf .Get ("\u0053\u0074\u0061\u0074\u0065\u004d\u006f\u0064\u0065\u006c");return &_eefg ,nil ;};type pdfFontSimple struct{fontCommon ;_dagd *_ce .PdfIndirectObject ;_bgdcb map[_cce .CharCode ]float64 ;_bged _cce .TextEncoder ;_edbbe _cce .TextEncoder ;_cdgc *PdfFontDescriptor ;
// Encoding is subject to limitations that are described in 9.6.6, "Character Encoding".
// BaseFont is derived differently.
FirstChar _ce .PdfObject ;LastChar _ce .PdfObject ;Widths _ce .PdfObject ;Encoding _ce .PdfObject ;_eegg map[rune ]_cc .CharMetrics ;};
// NewPdfActionGoTo returns a new "go to" action.
func NewPdfActionGoTo ()*PdfActionGoTo {_fcd :=NewPdfAction ();_bb :=&PdfActionGoTo {};_bb .PdfAction =_fcd ;_fcd .SetContext (_bb );return _bb ;};
// PdfActionGoToE represents a GoToE action.
type PdfActionGoToE struct{*PdfAction ;F *PdfFilespec ;D _ce .PdfObject ;NewWindow _ce .PdfObject ;T _ce .PdfObject ;};
// ColorToRGB converts a CalGray color to an RGB color.
func (_eead *PdfColorspaceCalGray )ColorToRGB (color PdfColor )(PdfColor ,error ){_gef ,_deba :=color .(*PdfColorCalGray );if !_deba {_ebg .Log .Debug ("\u0049n\u0070\u0075\u0074\u0020\u0063\u006f\u006c\u006f\u0072\u0020\u006eo\u0074\u0020\u0063\u0061\u006c\u0020\u0067\u0072\u0061\u0079");return nil ,_gd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};ANorm :=_gef .Val ();X :=_eead .WhitePoint [0]*_ag .Pow (ANorm ,_eead .Gamma );Y :=_eead .WhitePoint [1]*_ag .Pow (ANorm ,_eead .Gamma );Z :=_eead .WhitePoint [2]*_ag .Pow (ANorm ,_eead .Gamma );_agec :=3.240479*X +-1.537150*Y +-0.498535*Z ;_eaf :=-0.969256*X +1.875992*Y +0.041556*Z ;_abda :=0.055648*X +-0.204043*Y +1.057311*Z ;_agec =_ag .Min (_ag .Max (_agec ,0),1.0);_eaf =_ag .Min (_ag .Max (_eaf ,0),1.0);_abda =_ag .Min (_ag .Max (_abda ,0),1.0);return NewPdfColorDeviceRGB (_agec ,_eaf ,_abda ),nil ;};
// ColorToRGB converts a CMYK32 color to an RGB color.
func (_dbbe *PdfColorspaceDeviceCMYK )ColorToRGB (color PdfColor )(PdfColor ,error ){_gcfe ,_dgbde :=color .(*PdfColorDeviceCMYK );if !_dgbde {_ebg .Log .Debug ("I\u006e\u0070\u0075\u0074\u0020\u0063o\u006c\u006f\u0072\u0020\u006e\u006f\u0074\u0020\u0064e\u0076\u0069\u0063e\u0020c\u006d\u0079\u006b");return nil ,_gd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_face :=_gcfe .C ();_bbege :=_gcfe .M ();_abag :=_gcfe .Y ();_dfe :=_gcfe .K ();_face =_face *(1-_dfe )+_dfe ;_bbege =_bbege *(1-_dfe )+_dfe ;_abag =_abag *(1-_dfe )+_dfe ;_effb :=1-_face ;_ffgc :=1-_bbege ;_fagd :=1-_abag ;return NewPdfColorDeviceRGB (_effb ,_ffgc ,_fagd ),nil ;};
// PdfFunctionType0 uses a sequence of sample values (contained in a stream) to provide an approximation
// for functions whose domains and ranges are bounded. The samples are organized as an m-dimensional
// table in which each entry has n components
type PdfFunctionType0 struct{Domain []float64 ;Range []float64 ;NumInputs int ;NumOutputs int ;Size []int ;BitsPerSample int ;Order int ;Encode []float64 ;Decode []float64 ;_abaa []byte ;_aaccb []uint32 ;_dbfgb *_ce .PdfObjectStream ;};
// Y returns the value of the yellow component of the color.
func (_adccb *PdfColorDeviceCMYK )Y ()float64 {return float64 (_adccb [2])};
// A returns the value of the A component of the color.
func (_gdbfg *PdfColorLab )A ()float64 {return float64 (_gdbfg [1])};
// 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 (_gaa *PdfAnnotationWidget )Field ()*PdfField {return _gaa ._dgg };
// NewPdfOutlineTree returns an initialized PdfOutline tree.
func NewPdfOutlineTree ()*PdfOutline {_feeg :=NewPdfOutline ();_feeg ._edggc =&_feeg ;return _feeg };func (_cabab *PdfReader )newPdfAnnotationWidgetFromDict (_bfae *_ce .PdfObjectDictionary )(*PdfAnnotationWidget ,error ){_dfde :=PdfAnnotationWidget {};_dfde .H =_bfae .Get ("\u0048");_dfde .MK =_bfae .Get ("\u004d\u004b");_dfde .A =_bfae .Get ("\u0041");_dfde .AA =_bfae .Get ("\u0041\u0041");_dfde .BS =_bfae .Get ("\u0042\u0053");_dfde .Parent =_bfae .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");return &_dfde ,nil ;};
// GetContainingPdfObject returns the container of the outline tree node (indirect object).
func (_gffeg *PdfOutlineTreeNode )GetContainingPdfObject ()_ce .PdfObject {return _gffeg .GetContext ().GetContainingPdfObject ();};func _aggff (_ggfge _ce .PdfObject )(*PdfShading ,error ){_bbddc :=&PdfShading {};var _gcgef *_ce .PdfObjectDictionary ;if _cgfbe ,_aecd :=_ce .GetIndirect (_ggfge );_aecd {_bbddc ._efbab =_cgfbe ;_ccabc ,_aeea :=_cgfbe .PdfObject .(*_ce .PdfObjectDictionary );if !_aeea {_ebg .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 ,_ce .ErrTypeError ;};_gcgef =_ccabc ;}else if _aggfff ,_dgede :=_ce .GetStream (_ggfge );_dgede {_bbddc ._efbab =_aggfff ;_gcgef =_aggfff .PdfObjectDictionary ;}else if _bfbcc ,_agaaed :=_ce .GetDict (_ggfge );_agaaed {_bbddc ._efbab =_bfbcc ;_gcgef =_bfbcc ;}else {_ebg .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",_ggfge );return nil ,_ce .ErrTypeError ;};if _gcgef ==nil {_ebg .Log .Debug ("\u0044i\u0063t\u0069\u006f\u006e\u0061\u0072y\u0020\u006di\u0073\u0073\u0069\u006e\u0067");return nil ,_gd .New ("\u0064\u0069\u0063t\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};_ggfge =_gcgef .Get ("S\u0068\u0061\u0064\u0069\u006e\u0067\u0054\u0079\u0070\u0065");if _ggfge ==nil {_ebg .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 ;};_ggfge =_ce .TraceToDirectObject (_ggfge );_cgdac ,_fggc :=_ggfge .(*_ce .PdfObjectInteger );if !_fggc {_ebg .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",_ggfge );return nil ,_ce .ErrTypeError ;};if *_cgdac < 1||*_cgdac > 7{_ebg .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",*_cgdac );return nil ,_ce .ErrTypeError ;};_bbddc .ShadingType =_cgdac ;_ggfge =_gcgef .Get ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065");if _ggfge ==nil {_ebg .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 ;};_gceda ,_fcaeb :=NewPdfColorspaceFromPdfObject (_ggfge );if _fcaeb !=nil {_ebg .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",_fcaeb );return nil ,_fcaeb ;};_bbddc .ColorSpace =_gceda ;_ggfge =_gcgef .Get ("\u0042\u0061\u0063\u006b\u0067\u0072\u006f\u0075\u006e\u0064");if _ggfge !=nil {_ggfge =_ce .TraceToDirectObject (_ggfge );_gcab ,_bcfge :=_ggfge .(*_ce .PdfObjectArray );if !_bcfge {_ebg .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)",_ggfge );return nil ,_ce .ErrTypeError ;};_bbddc .Background =_gcab ;};_ggfge =_gcgef .Get ("\u0042\u0042\u006f\u0078");if _ggfge !=nil {_ggfge =_ce .TraceToDirectObject (_ggfge );_bccdf ,_dfega :=_ggfge .(*_ce .PdfObjectArray );if !_dfega {_ebg .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)",_ggfge );return nil ,_ce .ErrTypeError ;};_egaf ,_deeea :=NewPdfRectangle (*_bccdf );if _deeea !=nil {_ebg .Log .Debug ("\u0042\u0042\u006f\u0078\u0020\u0065\u0072\u0072\u006fr\u003a\u0020\u0025\u0076",_deeea );return nil ,_deeea ;};_bbddc .BBox =_egaf ;};_ggfge =_gcgef .Get ("\u0041n\u0074\u0069\u0041\u006c\u0069\u0061s");if _ggfge !=nil {_ggfge =_ce .TraceToDirectObject (_ggfge );_bdffa ,_befd :=_ggfge .(*_ce .PdfObjectBool );if !_befd {_ebg .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",_ggfge );return nil ,_ce .ErrTypeError ;};_bbddc .AntiAlias =_bdffa ;};switch *_cgdac {case 1:_bcgef ,_fegaa :=_adgaa (_gcgef );if _fegaa !=nil {return nil ,_fegaa ;};_bcgef .PdfShading =_bbddc ;_bbddc ._aadde =_bcgef ;return _bbddc ,nil ;case 2:_feegg ,_efcd :=_gbfga (_gcgef );if _efcd !=nil {return nil ,_efcd ;};_feegg .PdfShading =_bbddc ;_bbddc ._aadde =_feegg ;return _bbddc ,nil ;case 3:_babbe ,_agfbe :=_ggfb (_gcgef );if _agfbe !=nil {return nil ,_agfbe ;};_babbe .PdfShading =_bbddc ;_bbddc ._aadde =_babbe ;return _bbddc ,nil ;case 4:_gfdbc ,_bdafg :=_dfbae (_gcgef );if _bdafg !=nil {return nil ,_bdafg ;};_gfdbc .PdfShading =_bbddc ;_bbddc ._aadde =_gfdbc ;return _bbddc ,nil ;case 5:_cdeea ,_fgcdc :=_aagbd (_gcgef );if _fgcdc !=nil {return nil ,_fgcdc ;};_cdeea .PdfShading =_bbddc ;_bbddc ._aadde =_cdeea ;return _bbddc ,nil ;case 6:_ceae ,_dgcce :=_cgbc (_gcgef );if _dgcce !=nil {return nil ,_dgcce ;};_ceae .PdfShading =_bbddc ;_bbddc ._aadde =_ceae ;return _bbddc ,nil ;case 7:_fefdf ,_daed :=_agfcge (_gcgef );if _daed !=nil {return nil ,_daed ;};_fefdf .PdfShading =_bbddc ;_bbddc ._aadde =_fefdf ;return _bbddc ,nil ;};return nil ,_gd .New ("u\u006ek\u006e\u006f\u0077\u006e\u0020\u0073\u0068\u0061d\u0069\u006e\u0067\u0020ty\u0070\u0065");};
// ToInteger convert to an integer format.
func (_gcegd *PdfColorDeviceGray )ToInteger (bits int )uint32 {_fgc :=_ag .Pow (2,float64 (bits ))-1;return uint32 (_fgc *_gcegd .Val ());};
// ToPdfObject implements interface PdfModel.
func (_caf *PdfActionGoToE )ToPdfObject ()_ce .PdfObject {_caf .PdfAction .ToPdfObject ();_fgd :=_caf ._bdf ;_gba :=_fgd .PdfObject .(*_ce .PdfObjectDictionary );_gba .SetIfNotNil ("\u0053",_ce .MakeName (string (ActionTypeGoToE )));if _caf .F !=nil {_gba .Set ("\u0046",_caf .F .ToPdfObject ());};_gba .SetIfNotNil ("\u0044",_caf .D );_gba .SetIfNotNil ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw",_caf .NewWindow );_gba .SetIfNotNil ("\u0054",_caf .T );return _fgd ;};
// 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"`;};
// PdfAnnotationHighlight represents Highlight annotations.
// (Section 12.5.6.10).
type PdfAnnotationHighlight struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _ce .PdfObject ;};func (_afe *PdfReader )newPdfActionTransFromDict (_agaf *_ce .PdfObjectDictionary )(*PdfActionTrans ,error ){return &PdfActionTrans {Trans :_agaf .Get ("\u0054\u0072\u0061n\u0073")},nil ;};
// GetExtGState gets the ExtGState specified by keyName. Returns a bool
// indicating whether it was found or not.
func (_ccdga *PdfPageResources )GetExtGState (keyName _ce .PdfObjectName )(_ce .PdfObject ,bool ){if _ccdga .ExtGState ==nil {return nil ,false ;};_dccece ,_bcedc :=_ce .TraceToDirectObject (_ccdga .ExtGState ).(*_ce .PdfObjectDictionary );if !_bcedc {_ebg .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",_ccdga .ExtGState );return nil ,false ;};if _bfcfa :=_dccece .Get (keyName );_bfcfa !=nil {return _bfcfa ,true ;};return nil ,false ;};
// PdfShadingType6 is a Coons patch mesh.
type PdfShadingType6 struct{*PdfShading ;BitsPerCoordinate *_ce .PdfObjectInteger ;BitsPerComponent *_ce .PdfObjectInteger ;BitsPerFlag *_ce .PdfObjectInteger ;Decode *_ce .PdfObjectArray ;Function []PdfFunction ;};
// NewPdfActionJavaScript returns a new "javaScript" action.
func NewPdfActionJavaScript ()*PdfActionJavaScript {_dgb :=NewPdfAction ();_gdd :=&PdfActionJavaScript {};_gdd .PdfAction =_dgb ;_dgb .SetContext (_gdd );return _gdd ;};func (_bggf *PdfReader )newPdfActionThreadFromDict (_egaa *_ce .PdfObjectDictionary )(*PdfActionThread ,error ){_cab ,_gce :=_cbc (_egaa .Get ("\u0046"));if _gce !=nil {return nil ,_gce ;};return &PdfActionThread {D :_egaa .Get ("\u0044"),B :_egaa .Get ("\u0042"),F :_cab },nil ;};var _ebgad _a .Time ;
// ColorAt returns the color of the image pixel specified by the x and y coordinates.
func (_gfdgf *Image )ColorAt (x ,y int )(_aa .Color ,error ){_fdaac :=_age .BytesPerLine (int (_gfdgf .Width ),int (_gfdgf .BitsPerComponent ),_gfdgf .ColorComponents );switch _gfdgf .ColorComponents {case 1:return _age .ColorAtGrayscale (x ,y ,int (_gfdgf .BitsPerComponent ),_fdaac ,_gfdgf .Data ,_gfdgf ._cddaa );case 3:return _age .ColorAtNRGBA (x ,y ,int (_gfdgf .Width ),_fdaac ,int (_gfdgf .BitsPerComponent ),_gfdgf .Data ,_gfdgf ._fdcac ,_gfdgf ._cddaa );case 4:return _age .ColorAtCMYK (x ,y ,int (_gfdgf .Width ),_gfdgf .Data ,_gfdgf ._cddaa );};_ebg .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",_gfdgf .ColorComponents ,_gfdgf .BitsPerComponent );return nil ,_gd .New ("\u0075\u006e\u0073\u0075p\u0070\u006f\u0072\u0074\u0065\u0064\u0020\u0069\u006d\u0061g\u0065 \u0063\u006f\u006c\u006f\u0072\u0073\u0070a\u0063\u0065");};
// ColorToRGB converts a ICCBased color to an RGB color.
func (_cbdb *PdfColorspaceICCBased )ColorToRGB (color PdfColor )(PdfColor ,error ){if _cbdb .Alternate ==nil {_ebg .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 _cbdb .N ==1{_ebg .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");_afeb :=NewPdfColorspaceDeviceGray ();return _afeb .ColorToRGB (color );}else if _cbdb .N ==3{_ebg .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 _cbdb .N ==4{_ebg .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");_debbd :=NewPdfColorspaceDeviceCMYK ();return _debbd .ColorToRGB (color );}else {return nil ,_gd .New ("I\u0043\u0043\u0020\u0042\u0061\u0073\u0065\u0064\u0020\u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063e\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u0061lt\u0065\u0072\u006ea\u0074i\u0076\u0065");};};_ebg .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",_cbdb );return _cbdb .Alternate .ColorToRGB (color );};func (_cedb *PdfReader )newPdfFieldFromIndirectObject (_fgaca *_ce .PdfIndirectObject ,_bcfef *PdfField )(*PdfField ,error ){if _fffa ,_dbdff :=_cedb ._cbdfb .GetModelFromPrimitive (_fgaca ).(*PdfField );_dbdff {return _fffa ,nil ;};_bece ,_ecce :=_ce .GetDict (_fgaca );if !_ecce {return nil ,_c .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");};_afcf :=NewPdfField ();_afcf ._gfeec =_fgaca ;_afcf ._gfeec .PdfObject =_bece ;_bbccd :=false ;if _dbaa ,_geea :=_ce .GetName (_bece .Get ("\u0046\u0054"));_geea {_afcf .FT =_dbaa ;_bbccd =true ;};_afcf ._fdbf =&_bbccd ;_afcf .T ,_ =_bece .Get ("\u0054").(*_ce .PdfObjectString );_afcf .TU ,_ =_bece .Get ("\u0054\u0055").(*_ce .PdfObjectString );_afcf .TM ,_ =_bece .Get ("\u0054\u004d").(*_ce .PdfObjectString );_afcf .Ff ,_ =_bece .Get ("\u0046\u0066").(*_ce .PdfObjectInteger );_afcf .V =_bece .Get ("\u0056");_afcf .DV =_bece .Get ("\u0044\u0056");_afcf .AA =_bece .Get ("\u0041\u0041");if _afcf .FT !=nil {switch *_afcf .FT {case "\u0054\u0078":_cgcb ,_geae :=_fdcgd (_bece );if _geae !=nil {return nil ,_geae ;};_cgcb .PdfField =_afcf ;_afcf ._eedcb =_cgcb ;case "\u0043\u0068":_gcfcc ,_ccfec :=_dgec (_bece );if _ccfec !=nil {return nil ,_ccfec ;};_gcfcc .PdfField =_afcf ;_afcf ._eedcb =_gcfcc ;case "\u0042\u0074\u006e":_cafe ,_gceb :=_cbge (_bece );if _gceb !=nil {return nil ,_gceb ;};_cafe .PdfField =_afcf ;_afcf ._eedcb =_cafe ;case "\u0053\u0069\u0067":_efaf ,_gfde :=_cedb .newPdfFieldSignatureFromDict (_bece );if _gfde !=nil {return nil ,_gfde ;};_efaf .PdfField =_afcf ;_afcf ._eedcb =_efaf ;default:_ebg .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",*_afcf .FT );return nil ,_gd .New ("\u0075\u006e\u0073\u0075pp\u006f\u0072\u0074\u0065\u0064\u0020\u0066\u0069\u0065\u006c\u0064\u0020\u0074\u0079p\u0065");};};if _bcfef !=nil {_afcf .Parent =_bcfef ;};_afcf .Annotations =[]*PdfAnnotationWidget {};if _adbd ,_accef :=_ce .GetName (_bece .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065"));_accef {if *_adbd =="\u0057\u0069\u0064\u0067\u0065\u0074"{_ffad ,_gbge :=_cedb .newPdfAnnotationFromIndirectObject (_fgaca );if _gbge !=nil {return nil ,_gbge ;};_ecedc ,_acceb :=_ffad .GetContext ().(*PdfAnnotationWidget );if !_acceb {return nil ,_gd .New ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0077\u0069\u0064\u0067e\u0074 \u0061n\u006e\u006f\u0074\u0061\u0074\u0069\u006fn");};_ecedc ._dgg =_afcf ;_ecedc .Parent =_afcf ._gfeec ;_afcf .Annotations =append (_afcf .Annotations ,_ecedc );return _afcf ,nil ;};};if _agcf ,_bdaf :=_ce .GetArray (_bece .Get ("\u004b\u0069\u0064\u0073"));_bdaf {_afcf .Kids =[]*PdfField {};for _ ,_efeg :=range _agcf .Elements (){_fbdg ,_feefg :=_ce .GetIndirect (_efeg );if !_feefg {_ccfa ,_gaaea :=_ce .GetStream (_efeg );if _gaaea &&_ccfa .PdfObjectDictionary !=nil {_eacae ,_eabd :=_ce .GetNameVal (_ccfa .Get ("\u0054\u0079\u0070\u0065"));if _eabd &&_eacae =="\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061"{_ebg .Log .Debug ("E\u0052RO\u0052:\u0020f\u006f\u0072\u006d\u0020\u0066i\u0065\u006c\u0064 \u004b\u0069\u0064\u0073\u0020a\u0072\u0072\u0061y\u0020\u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0073\u0020\u0069n\u0076\u0061\u006cid \u004d\u0065\u0074\u0061\u0064\u0061t\u0061\u0020\u0073\u0074\u0072\u0065\u0061\u006d\u002e\u0020\u0053\u006bi\u0070p\u0069\u006e\u0067\u002e");continue ;};};return nil ,_gd .New ("n\u006f\u0074\u0020\u0061\u006e\u0020i\u006e\u0064\u0069\u0072\u0065\u0063t\u0020\u006f\u0062\u006a\u0065\u0063\u0074 \u0028\u0066\u006f\u0072\u006d\u0020\u0066\u0069\u0065\u006cd\u0029");};_cadge ,_efce :=_ce .GetDict (_fbdg );if !_efce {return nil ,ErrTypeCheck ;};_ ,_gbgbda :=_ce .GetName (_cadge .Get ("\u0046\u0054"));if _afed ,_cggfc :=_ce .GetName (_cadge .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065"));_cggfc &&!_gbgbda &&*_afed =="\u0057\u0069\u0064\u0067\u0065\u0074"{_efdga ,_ebafg :=_cedb .newPdfAnnotationFromIndirectObject (_fbdg );if _ebafg !=nil {_ebg .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",_ebafg );return nil ,_ebafg ;};_eeec ,_gcaf :=_efdga ._aff .(*PdfAnnotationWidget );if !_gcaf {return nil ,ErrTypeCheck ;};_eeec ._dgg =_afcf ;_afcf .Annotations =append (_afcf .Annotations ,_eeec );}else {_aacga ,_gffge :=_cedb .newPdfFieldFromIndirectObject (_fbdg ,_afcf );if _gffge !=nil {_ebg .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",_gffge );return nil ,_gffge ;};_afcf .Kids =append (_afcf .Kids ,_aacga );};};};return _afcf ,nil ;};
// NewPdfActionSubmitForm returns a new "submit form" action.
func NewPdfActionSubmitForm ()*PdfActionSubmitForm {_bba :=NewPdfAction ();_ae :=&PdfActionSubmitForm {};_ae .PdfAction =_bba ;_bba .SetContext (_ae );return _ae ;};
// NewPdfColorspaceDeviceGray returns a new grayscale colorspace.
func NewPdfColorspaceDeviceGray ()*PdfColorspaceDeviceGray {return &PdfColorspaceDeviceGray {}};
// 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 *_ce .PdfObjectInteger ;ColorSpace PdfColorspace ;Background *_ce .PdfObjectArray ;BBox *PdfRectangle ;AntiAlias *_ce .PdfObjectBool ;_aadde PdfModel ;_efbab _ce .PdfObject ;};
// GetModelFromPrimitive returns the model corresponding to the `primitive` PdfObject.
func (_bgafd *modelManager )GetModelFromPrimitive (primitive _ce .PdfObject )PdfModel {model ,_gbgbde :=_bgafd ._efgef [primitive ];if !_gbgbde {return nil ;};return model ;};
// SetLocation sets the `Location` field of the signature.
func (_ceabeb *PdfSignature )SetLocation (location string ){_ceabeb .Location =_ce .MakeString (location );};
// ToPdfObject implements interface PdfModel.
func (_afef *PdfAnnotationStrikeOut )ToPdfObject ()_ce .PdfObject {_afef .PdfAnnotation .ToPdfObject ();_ccdf :=_afef ._bda ;_decd :=_ccdf .PdfObject .(*_ce .PdfObjectDictionary );_afef .PdfAnnotationMarkup .appendToPdfDictionary (_decd );_decd .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ce .MakeName ("\u0053t\u0072\u0069\u006b\u0065\u004f\u0075t"));_decd .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_afef .QuadPoints );return _ccdf ;};
// DecodeArray returns the range of color component values in the ICCBased colorspace.
func (_abaf *PdfColorspaceICCBased )DecodeArray ()[]float64 {return _abaf .Range };
// ToPdfObject converts the PdfFont object to its PDF representation.
func (_fdag *PdfFont )ToPdfObject ()_ce .PdfObject {if _fdag ._decac ==nil {_ebg .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 _ce .MakeNull ();};return _fdag ._decac .ToPdfObject ();};
// GetEncryptionMethod returns a descriptive information string about the encryption method used.
func (_beceb *PdfReader )GetEncryptionMethod ()string {_cedbf :=_beceb ._dbfe .GetCrypter ();return _cedbf .String ();};func _ecgb (_ebfgb _ce .PdfObject )(string ,error ){_ebfgb =_ce .TraceToDirectObject (_ebfgb );switch _dfgd :=_ebfgb .(type ){case *_ce .PdfObjectString :return _dfgd .Str (),nil ;case *_ce .PdfObjectStream :_aabc ,_ebdeb :=_ce .DecodeStream (_dfgd );if _ebdeb !=nil {return "",_ebdeb ;};return string (_aabc ),nil ;};return "",_c .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",_ebfgb );};
// NewPdfActionGoToE returns a new "go to embedded" action.
func NewPdfActionGoToE ()*PdfActionGoToE {_agaa :=NewPdfAction ();_cec :=&PdfActionGoToE {};_cec .PdfAction =_agaa ;_agaa .SetContext (_cec );return _cec ;};
// 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 (_dfbcd *PdfFont )GetRuneMetrics (r rune )(CharMetrics ,bool ){_eggfa :=_dfbcd .actualFont ();if _eggfa ==nil {_ebg .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",_dfbcd ._decac );return _cc .CharMetrics {},false ;};if _bdab ,_dadg :=_eggfa .GetRuneMetrics (r );_dadg {return _bdab ,true ;};if _bgfbc ,_ffcb :=_dfbcd .GetFontDescriptor ();_ffcb ==nil &&_bgfbc !=nil {return _cc .CharMetrics {Wx :_bgfbc ._gcfg },true ;};_ebg .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",_dfbcd );return _cc .CharMetrics {},false ;};
// 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 (_dafdg *PdfFont )CharcodesToUnicode (charcodes []_cce .CharCode )[]rune {_gfac ,_ ,_ :=_dafdg .CharcodesToUnicodeWithStats (charcodes );return _gfac ;};
// SetAction sets the PDF action for the annotation link.
func (_bcd *PdfAnnotationLink )SetAction (action *PdfAction ){_bcd ._eddb =action ;if action ==nil {_bcd .A =nil ;};};func _begee (_gcegg *PdfPage ){_bdabe :=_ea .GetLicenseKey ();if _bdabe !=nil &&_bdabe .IsLicensed (){return ;};_agbag :=_ce .PdfObjectName ("\u0055\u0046\u0031");if !_gcegg .Resources .HasFontByName (_agbag ){_gcegg .Resources .SetFontByName (_agbag ,DefaultFont ().ToPdfObject ());};var _abagd []string ;_abagd =append (_abagd ,"\u0071");_abagd =append (_abagd ,"\u0042\u0054");_abagd =append (_abagd ,_c .Sprintf ("\u002f%\u0073\u0020\u0031\u0034\u0020\u0054f",_agbag .String ()));_abagd =append (_abagd ,"\u0031\u0020\u0030\u0020\u0030\u0020\u0072\u0067");_abagd =append (_abagd ,"\u0031\u0030\u0020\u0031\u0030\u0020\u0054\u0064");_adcgg :="\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";_abagd =append (_abagd ,_c .Sprintf ("\u0028%\u0073\u0029\u0020\u0054\u006a",_adcgg ));_abagd =append (_abagd ,"\u0045\u0054");_abagd =append (_abagd ,"\u0051");_fddcb :=_aga .Join (_abagd ,"\u000a");_gcegg .AddContentStreamByString (_fddcb );_gcegg .ToPdfObject ();};
// Evaluate runs the function on the passed in slice and returns the results.
func (_cdebe *PdfFunctionType3 )Evaluate (x []float64 )([]float64 ,error ){if len (x )!=1{_ebg .Log .Error ("\u004f\u006e\u006c\u0079 o\u006e\u0065\u0020\u0069\u006e\u0070\u0075\u0074\u0020\u0061\u006c\u006c\u006f\u0077e\u0064");return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};return nil ,_gd .New ("\u006e\u006f\u0074\u0020im\u0070\u006c\u0065\u006d\u0065\u006e\u0074\u0065\u0064\u0020\u0079\u0065\u0074");};
// 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 _ce .StreamEncoder )(*XObjectImage ,error ){_dfbdd :=NewXObjectImage ();return UpdateXObjectImageFromImage (_dfbdd ,img ,cs ,encoder );};
// PdfActionSound represents a sound action.
type PdfActionSound struct{*PdfAction ;Sound _ce .PdfObject ;Volume _ce .PdfObject ;Synchronous _ce .PdfObject ;Repeat _ce .PdfObject ;Mix _ce .PdfObject ;};
// K returns the value of the key component of the color.
func (_abdeb *PdfColorDeviceCMYK )K ()float64 {return float64 (_abdeb [3])};
// PdfAnnotationText represents Text annotations.
// (Section 12.5.6.4 p. 402).
type PdfAnnotationText struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Open _ce .PdfObject ;Name _ce .PdfObject ;State _ce .PdfObject ;StateModel _ce .PdfObject ;};func (_feaf *Image )samplesTrimPadding (_cgbbe []uint32 )[]uint32 {_eccc :=_feaf .ColorComponents *int (_feaf .Width )*int (_feaf .Height );if len (_cgbbe )==_eccc {return _cgbbe ;};_cbcab :=make ([]uint32 ,_eccc );_bbag :=int (_feaf .Width )*_feaf .ColorComponents ;var _dgegb ,_bbbfce ,_gfbc ,_agdag int ;_babcbc :=_age .BytesPerLine (int (_feaf .Width ),int (_feaf .BitsPerComponent ),_feaf .ColorComponents );for _dgegb =0;_dgegb < int (_feaf .Height );_dgegb ++{_bbbfce =_dgegb *int (_feaf .Width );_gfbc =_dgegb *_babcbc ;for _agdag =0;_agdag < _bbag ;_agdag ++{_cbcab [_bbbfce +_agdag ]=_cgbbe [_gfbc +_agdag ];};};return _cbcab ;};func (_efgb *PdfColorspaceLab )String ()string {return "\u004c\u0061\u0062"};
// PdfAnnotationPolyLine represents PolyLine annotations.
// (Section 12.5.6.9).
type PdfAnnotationPolyLine struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Vertices _ce .PdfObject ;LE _ce .PdfObject ;BS _ce .PdfObject ;IC _ce .PdfObject ;BE _ce .PdfObject ;IT _ce .PdfObject ;Measure _ce .PdfObject ;};
// ToPdfObject implements interface PdfModel.
func (_bbde *PdfAnnotationWidget )ToPdfObject ()_ce .PdfObject {_bbde .PdfAnnotation .ToPdfObject ();_ceca :=_bbde ._bda ;_fdca :=_ceca .PdfObject .(*_ce .PdfObjectDictionary );if _bbde ._abdg {return _ceca ;};_bbde ._abdg =true ;_fdca .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ce .MakeName ("\u0057\u0069\u0064\u0067\u0065\u0074"));_fdca .SetIfNotNil ("\u0048",_bbde .H );_fdca .SetIfNotNil ("\u004d\u004b",_bbde .MK );_fdca .SetIfNotNil ("\u0041",_bbde .A );_fdca .SetIfNotNil ("\u0041\u0041",_bbde .AA );_fdca .SetIfNotNil ("\u0042\u0053",_bbde .BS );_fdce :=_bbde .Parent ;if _bbde ._dgg !=nil {if _bbde ._dgg ._gfeec ==_bbde ._bda {_bbde ._dgg .ToPdfObject ();};_fdce =_bbde ._dgg .GetContainingPdfObject ();};if _fdce !=_ceca {_fdca .SetIfNotNil ("\u0050\u0061\u0072\u0065\u006e\u0074",_fdce );};_bbde ._abdg =false ;return _ceca ;};func (_cedcd *PdfWriter )writeObject (_cdbae int ,_aebbg _ce .PdfObject ){_ebg .Log .Trace ("\u0057\u0072\u0069\u0074\u0065\u0020\u006f\u0062\u006a \u0023\u0025\u0064\u000a",_cdbae );if _dbaba ,_ffga :=_aebbg .(*_ce .PdfIndirectObject );_ffga {_cedcd ._fdadg [_cdbae ]=crossReference {Type :1,Offset :_cedcd ._agfff ,Generation :_dbaba .GenerationNumber };_dbcef :=_c .Sprintf ("\u0025d\u0020\u0030\u0020\u006f\u0062\u006a\n",_cdbae );if _adfddb ,_adacb :=_dbaba .PdfObject .(*pdfSignDictionary );_adacb {_adfddb ._gfeca =_cedcd ._agfff +int64 (len (_dbcef ));};if _dbaba .PdfObject ==nil {_ebg .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");_dbaba .PdfObject =_ce .MakeNull ();};_dbcef +=_dbaba .PdfObject .WriteString ();_dbcef +="\u000a\u0065\u006e\u0064\u006f\u0062\u006a\u000a";_cedcd .writeString (_dbcef );return ;};if _dbgag ,_gdedb :=_aebbg .(*_ce .PdfObjectStream );_gdedb {_cedcd ._fdadg [_cdbae ]=crossReference {Type :1,Offset :_cedcd ._agfff ,Generation :_dbgag .GenerationNumber };_ebgfc :=_c .Sprintf ("\u0025d\u0020\u0030\u0020\u006f\u0062\u006a\n",_cdbae );_ebgfc +=_dbgag .PdfObjectDictionary .WriteString ();_ebgfc +="\u000a\u0073\u0074\u0072\u0065\u0061\u006d\u000a";_cedcd .writeString (_ebgfc );_cedcd .writeBytes (_dbgag .Stream );_cedcd .writeString ("\u000ae\u006ed\u0073\u0074\u0072\u0065\u0061m\u000a\u0065n\u0064\u006f\u0062\u006a\u000a");return ;};if _ecebgf ,_afggc :=_aebbg .(*_ce .PdfObjectStreams );_afggc {_cedcd ._fdadg [_cdbae ]=crossReference {Type :1,Offset :_cedcd ._agfff ,Generation :_ecebgf .GenerationNumber };_ceccd :=_c .Sprintf ("\u0025d\u0020\u0030\u0020\u006f\u0062\u006a\n",_cdbae );var _edgcb []string ;var _bdgde string ;var _eeaa int64 ;for _feae ,_gbdc :=range _ecebgf .Elements (){_dbggc ,_dffeeg :=_gbdc .(*_ce .PdfIndirectObject );if !_dffeeg {_ebg .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",_cdbae ,_gbdc );continue ;};_becfe :=_dbggc .PdfObject .WriteString ()+"\u0020";_bdgde =_bdgde +_becfe ;_edgcb =append (_edgcb ,_c .Sprintf ("\u0025\u0064\u0020%\u0064",_dbggc .ObjectNumber ,_eeaa ));_cedcd ._fdadg [int (_dbggc .ObjectNumber )]=crossReference {Type :2,ObjectNumber :_cdbae ,Index :_feae };_eeaa =_eeaa +int64 (len ([]byte (_becfe )));};_abgf :=_aga .Join (_edgcb ,"\u0020")+"\u0020";_gcbae :=_ce .NewFlateEncoder ();_aeeec :=_gcbae .MakeStreamDict ();_aeeec .Set (_ce .PdfObjectName ("\u0054\u0079\u0070\u0065"),_ce .MakeName ("\u004f\u0062\u006a\u0053\u0074\u006d"));_gccge :=int64 (_ecebgf .Len ());_aeeec .Set (_ce .PdfObjectName ("\u004e"),_ce .MakeInteger (_gccge ));_dbacg :=int64 (len (_abgf ));_aeeec .Set (_ce .PdfObjectName ("\u0046\u0069\u0072s\u0074"),_ce .MakeInteger (_dbacg ));_adcef ,_ :=_gcbae .EncodeBytes ([]byte (_abgf +_bdgde ));_gdag :=int64 (len (_adcef ));_aeeec .Set (_ce .PdfObjectName ("\u004c\u0065\u006e\u0067\u0074\u0068"),_ce .MakeInteger (_gdag ));_ceccd +=_aeeec .WriteString ();_ceccd +="\u000a\u0073\u0074\u0072\u0065\u0061\u006d\u000a";_cedcd .writeString (_ceccd );_cedcd .writeBytes (_adcef );_cedcd .writeString ("\u000ae\u006ed\u0073\u0074\u0072\u0065\u0061m\u000a\u0065n\u0064\u006f\u0062\u006a\u000a");return ;};_cedcd .writeString (_aebbg .WriteString ());};
// GetDescent returns the Descent of the font `descriptor`.
func (_eccd *PdfFontDescriptor )GetDescent ()(float64 ,error ){return _ce .GetNumberAsFloat (_eccd .Descent );};func _ebba (_eadb _ce .PdfObject )(map[_cce .CharCode ]float64 ,error ){if _eadb ==nil {return nil ,nil ;};_bdad ,_gdeb :=_ce .GetArray (_eadb );if !_gdeb {return nil ,nil ;};_bfeag :=map[_cce .CharCode ]float64 {};_efaec :=_bdad .Len ();for _ddggc :=0;_ddggc < _efaec -1;_ddggc ++{_gdfd :=_ce .TraceToDirectObject (_bdad .Get (_ddggc ));_cgafb ,_gfggd :=_ce .GetIntVal (_gdfd );if !_gfggd {return nil ,_c .Errorf ("\u0042a\u0064\u0020\u0066\u006fn\u0074\u0020\u0057\u0020\u006fb\u006a0\u003a \u0069\u003d\u0025\u0064\u0020\u0025\u0023v",_ddggc ,_gdfd );};_ddggc ++;if _ddggc > _efaec -1{return nil ,_c .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",_bdad );};_adbeb :=_ce .TraceToDirectObject (_bdad .Get (_ddggc ));switch _adbeb .(type ){case *_ce .PdfObjectArray :_ffcbe ,_ :=_ce .GetArray (_adbeb );if _fgdfg ,_ggaab :=_ffcbe .ToFloat64Array ();_ggaab ==nil {for _cage :=0;_cage < len (_fgdfg );_cage ++{_bfeag [_cce .CharCode (_cgafb +_cage )]=_fgdfg [_cage ];};}else {return nil ,_c .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",_ddggc ,_adbeb );};case *_ce .PdfObjectInteger :_cebcf ,_gcba :=_ce .GetIntVal (_adbeb );if !_gcba {return nil ,_c .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",_ddggc ,_adbeb );};_ddggc ++;if _ddggc > _efaec -1{return nil ,_c .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",_bdad );};_eebc :=_bdad .Get (_ddggc );_bdeg ,_gcefb :=_ce .GetNumberAsFloat (_eebc );if _gcefb !=nil {return nil ,_c .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",_ddggc ,_eebc );};for _gffcgc :=_cgafb ;_gffcgc <=_cebcf ;_gffcgc ++{_bfeag [_cce .CharCode (_gffcgc )]=_bdeg ;};default:return nil ,_c .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",_ddggc ,_adbeb );};};return _bfeag ,nil ;};var _dbff =_ed .MustCompile ("\u005b\\\u006e\u005c\u0072\u005d\u002b");func (_cgaf *PdfReader )newPdfAnnotationFromIndirectObject (_agcg *_ce .PdfIndirectObject )(*PdfAnnotation ,error ){_gag ,_gaac :=_agcg .PdfObject .(*_ce .PdfObjectDictionary );if !_gaac {return nil ,_c .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 :=_cgaf ._cbdfb .GetModelFromPrimitive (_gag );model !=nil {_ddfc ,_cbd :=model .(*PdfAnnotation );if !_cbd {return nil ,_c .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 _ddfc ,nil ;};_gaag :=&PdfAnnotation {};_gaag ._bda =_agcg ;_cgaf ._cbdfb .Register (_gag ,_gaag );if _cefga :=_gag .Get ("\u0054\u0079\u0070\u0065");_cefga !=nil {_efa ,_ecde :=_cefga .(*_ce .PdfObjectName );if !_ecde {_ebg .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",_cefga );}else {if *_efa !="\u0041\u006e\u006eo\u0074"{_ebg .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",*_efa );};};};if _bbcd :=_gag .Get ("\u0052\u0065\u0063\u0074");_bbcd !=nil {_gaag .Rect =_bbcd ;};if _aed :=_gag .Get ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073");_aed !=nil {_gaag .Contents =_aed ;};if _dcbc :=_gag .Get ("\u0050");_dcbc !=nil {_gaag .P =_dcbc ;};if _bea :=_gag .Get ("\u004e\u004d");_bea !=nil {_gaag .NM =_bea ;};if _fee :=_gag .Get ("\u004d");_fee !=nil {_gaag .M =_fee ;};if _dcbce :=_gag .Get ("\u0046");_dcbce !=nil {_gaag .F =_dcbce ;};if _deee :=_gag .Get ("\u0041\u0050");_deee !=nil {_gaag .AP =_deee ;};if _acff :=_gag .Get ("\u0041\u0053");_acff !=nil {_gaag .AS =_acff ;};if _gad :=_gag .Get ("\u0042\u006f\u0072\u0064\u0065\u0072");_gad !=nil {_gaag .Border =_gad ;};if _fad :=_gag .Get ("\u0043");_fad !=nil {_gaag .C =_fad ;};if _gagc :=_gag .Get ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074");_gagc !=nil {_gaag .StructParent =_gagc ;};if _adgc :=_gag .Get ("\u004f\u0043");_adgc !=nil {_gaag .OC =_adgc ;};_gdf :=_gag .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065");if _gdf ==nil {_ebg .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");_gaag ._aff =nil ;return _gaag ,nil ;};_eca ,_add :=_gdf .(*_ce .PdfObjectName );if !_add {_ebg .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",_gdf );return nil ,_c .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",_gdf );};switch *_eca {case "\u0054\u0065\u0078\u0074":_fdae ,_debb :=_cgaf .newPdfAnnotationTextFromDict (_gag );if _debb !=nil {return nil ,_debb ;};_fdae .PdfAnnotation =_gaag ;_gaag ._aff =_fdae ;return _gaag ,nil ;case "\u004c\u0069\u006e\u006b":_gbd ,_afeg :=_cgaf .newPdfAnnotationLinkFromDict (_gag );if _afeg !=nil {return nil ,_afeg ;};_gbd .PdfAnnotation =_gaag ;_gaag ._aff =_gbd ;return _gaag ,nil ;case "\u0046\u0072\u0065\u0065\u0054\u0065\u0078\u0074":_egfb ,_acfc :=_cgaf .newPdfAnnotationFreeTextFromDict (_gag );if _acfc !=nil {return nil ,_acfc ;};_egfb .PdfAnnotation =_gaag ;_gaag ._aff =_egfb ;return _gaag ,nil ;case "\u004c\u0069\u006e\u0065":_ebfa ,_bace :=_cgaf .newPdfAnnotationLineFromDict (_gag );if _bace !=nil {return nil ,_bace ;};_ebfa .PdfAnnotation =_gaag ;_gaag ._aff =_ebfa ;_ebg .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",_gaag ,_gaag );_ebg .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",_ebfa ,_ebfa );_ebg .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",_ebfa .PdfAnnotationMarkup ,_ebfa .PdfAnnotationMarkup );return _gaag ,nil ;case "\u0053\u0071\u0075\u0061\u0072\u0065":_efd ,_bgag :=_cgaf .newPdfAnnotationSquareFromDict (_gag );if _bgag !=nil {return nil ,_bgag ;};_efd .PdfAnnotation =_gaag ;_gaag ._aff =_efd ;return _gaag ,nil ;case "\u0043\u0069\u0072\u0063\u006c\u0065":_bfd ,_adag :=_cgaf .newPdfAnnotationCircleFromDict (_gag );if _adag !=nil {return nil ,_adag ;};_bfd .PdfAnnotation =_gaag ;_gaag ._aff =_bfd ;return _gaag ,nil ;case "\u0050o\u006c\u0079\u0067\u006f\u006e":_dacb ,_ceaf :=_cgaf .newPdfAnnotationPolygonFromDict (_gag );if _ceaf !=nil {return nil ,_ceaf ;};_dacb .PdfAnnotation =_gaag ;_gaag ._aff =_dacb ;return _gaag ,nil ;case "\u0050\u006f\u006c\u0079\u004c\u0069\u006e\u0065":_dbgd ,_gbg :=_cgaf .newPdfAnnotationPolyLineFromDict (_gag );if _gbg !=nil {return nil ,_gbg ;};_dbgd .PdfAnnotation =_gaag ;_gaag ._aff =_dbgd ;return _gaag ,nil ;case "\u0048i\u0067\u0068\u006c\u0069\u0067\u0068t":_ecfg ,_abg :=_cgaf .newPdfAnnotationHighlightFromDict (_gag );if _abg !=nil {return nil ,_abg ;};_ecfg .PdfAnnotation =_gaag ;_gaag ._aff =_ecfg ;return _gaag ,nil ;case "\u0055n\u0064\u0065\u0072\u006c\u0069\u006ee":_gec ,_efg :=_cgaf .newPdfAnnotationUnderlineFromDict (_gag );if _efg !=nil {return nil ,_efg ;};_gec .PdfAnnotation =_gaag ;_gaag ._aff =_gec ;return _gaag ,nil ;case "\u0053\u0071\u0075\u0069\u0067\u0067\u006c\u0079":_ceb ,_dag :=_cgaf .newPdfAnnotationSquigglyFromDict (_gag );if _dag !=nil {return nil ,_dag ;};_ceb .PdfAnnotation =_gaag ;_gaag ._aff =_ceb ;return _gaag ,nil ;case "\u0053t\u0072\u0069\u006b\u0065\u004f\u0075t":_bgea ,_gdgb :=_cgaf .newPdfAnnotationStrikeOut (_gag );if _gdgb !=nil {return nil ,_gdgb ;};_bgea .PdfAnnotation =_gaag ;_gaag ._aff =_bgea ;return _gaag ,nil ;case "\u0043\u0061\u0072e\u0074":_ecg ,_cdd :=_cgaf .newPdfAnnotationCaretFromDict (_gag );if _cdd !=nil {return nil ,_cdd ;};_ecg .PdfAnnotation =_gaag ;_gaag ._aff =_ecg ;return _gaag ,nil ;case "\u0053\u0074\u0061m\u0070":_ebb ,_bgf :=_cgaf .newPdfAnnotationStampFromDict (_gag );if _bgf !=nil {return nil ,_bgf ;};_ebb .PdfAnnotation =_gaag ;_gaag ._aff =_ebb ;return _gaag ,nil ;case "\u0049\u006e\u006b":_gbdb ,_bfa :=_cgaf .newPdfAnnotationInkFromDict (_gag );if _bfa !=nil {return nil ,_bfa ;};_gbdb .PdfAnnotation =_gaag ;_gaag ._aff =_gbdb ;return _gaag ,nil ;case "\u0050\u006f\u0070u\u0070":_agee ,_gbda :=_cgaf .newPdfAnnotationPopupFromDict (_gag );if _gbda !=nil {return nil ,_gbda ;};_agee .PdfAnnotation =_gaag ;_gaag ._aff =_agee ;return _gaag ,nil ;case "\u0046\u0069\u006c\u0065\u0041\u0074\u0074\u0061\u0063h\u006d\u0065\u006e\u0074":_bbda ,_eed :=_cgaf .newPdfAnnotationFileAttachmentFromDict (_gag );if _eed !=nil {return nil ,_eed ;};_bbda .PdfAnnotation =_gaag ;_gaag ._aff =_bbda ;return _gaag ,nil ;case "\u0053\u006f\u0075n\u0064":_dgc ,_cgb :=_cgaf .newPdfAnnotationSoundFromDict (_gag );if _cgb !=nil {return nil ,_cgb ;};_dgc .PdfAnnotation =_gaag ;_gaag ._aff =_dgc ;return _gaag ,nil ;case "\u0052i\u0063\u0068\u004d\u0065\u0064\u0069a":_bbg ,_bgbf :=_cgaf .newPdfAnnotationRichMediaFromDict (_gag );if _bgbf !=nil {return nil ,_bgbf ;};_bbg .PdfAnnotation =_gaag ;_gaag ._aff =_bbg ;return _gaag ,nil ;case "\u004d\u006f\u0076i\u0065":_gda ,_begg :=_cgaf .newPdfAnnotationMovieFromDict (_gag );if _begg !=nil {return nil ,_begg ;};_gda .PdfAnnotation =_gaag ;_gaag ._aff =_gda ;return _gaag ,nil ;case "\u0053\u0063\u0072\u0065\u0065\u006e":_fadc ,_dcgb :=_cgaf .newPdfAnnotationScreenFromDict (_gag );if _dcgb !=nil {return nil ,_dcgb ;};_fadc .PdfAnnotation =_gaag ;_gaag ._aff =_fadc ;return _gaag ,nil ;case "\u0057\u0069\u0064\u0067\u0065\u0074":_adc ,_effc :=_cgaf .newPdfAnnotationWidgetFromDict (_gag );if _effc !=nil {return nil ,_effc ;};_adc .PdfAnnotation =_gaag ;_gaag ._aff =_adc ;return _gaag ,nil ;case "P\u0072\u0069\u006e\u0074\u0065\u0072\u004d\u0061\u0072\u006b":_gcc ,_bab :=_cgaf .newPdfAnnotationPrinterMarkFromDict (_gag );if _bab !=nil {return nil ,_bab ;};_gcc .PdfAnnotation =_gaag ;_gaag ._aff =_gcc ;return _gaag ,nil ;case "\u0054r\u0061\u0070\u004e\u0065\u0074":_fdad ,_eaea :=_cgaf .newPdfAnnotationTrapNetFromDict (_gag );if _eaea !=nil {return nil ,_eaea ;};_fdad .PdfAnnotation =_gaag ;_gaag ._aff =_fdad ;return _gaag ,nil ;case "\u0057a\u0074\u0065\u0072\u006d\u0061\u0072k":_bcee ,_gfdd :=_cgaf .newPdfAnnotationWatermarkFromDict (_gag );if _gfdd !=nil {return nil ,_gfdd ;};_bcee .PdfAnnotation =_gaag ;_gaag ._aff =_bcee ;return _gaag ,nil ;case "\u0033\u0044":_agda ,_bfc :=_cgaf .newPdfAnnotation3DFromDict (_gag );if _bfc !=nil {return nil ,_bfc ;};_agda .PdfAnnotation =_gaag ;_gaag ._aff =_agda ;return _gaag ,nil ;case "\u0050\u0072\u006f\u006a\u0065\u0063\u0074\u0069\u006f\u006e":_bcb ,_gbef :=_cgaf .newPdfAnnotationProjectionFromDict (_gag );if _gbef !=nil {return nil ,_gbef ;};_bcb .PdfAnnotation =_gaag ;_gaag ._aff =_bcb ;return _gaag ,nil ;case "\u0052\u0065\u0064\u0061\u0063\u0074":_gde ,_bfb :=_cgaf .newPdfAnnotationRedactFromDict (_gag );if _bfb !=nil {return nil ,_bfb ;};_gde .PdfAnnotation =_gaag ;_gaag ._aff =_gde ;return _gaag ,nil ;};_ebg .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",*_eca );return nil ,nil ;};
// 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 (_eeeb *PdfColorspaceLab )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=3{return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_adafb :=vals [0];if _adafb < 0.0||_adafb > 100.0{_ebg .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",_adafb );return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_bdgbd :=vals [1];_egbg :=float64 (-100);_fcee :=float64 (100);if len (_eeeb .Range )> 1{_egbg =_eeeb .Range [0];_fcee =_eeeb .Range [1];};if _bdgbd < _egbg ||_bdgbd > _fcee {_ebg .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",_bdgbd ,_egbg ,_fcee );return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_gea :=vals [2];_bgeag :=float64 (-100);_cccf :=float64 (100);if len (_eeeb .Range )> 3{_bgeag =_eeeb .Range [2];_cccf =_eeeb .Range [3];};if _gea < _bgeag ||_gea > _cccf {_ebg .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",_gea ,_bgeag ,_cccf );return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_fbga :=NewPdfColorLab (_adafb ,_bdgbd ,_gea );return _fbga ,nil ;};func _eeafc (_bdffd *_ce .PdfObjectArray )(float64 ,error ){_gebeg ,_fbfegc :=_bdffd .ToFloat64Array ();if _fbfegc !=nil {_ebg .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",_bdffd ,_fbfegc );};switch len (_gebeg ){case 1:return _gebeg [0],nil ;case 3:_dgbac :=PdfColorspaceDeviceRGB {};_egeed ,_cfedba :=_dgbac .ColorFromFloats (_gebeg );if _cfedba !=nil {return 0.0,_cfedba ;};return _egeed .(*PdfColorDeviceRGB ).ToGray ().Val (),nil ;case 4:_bdgaa :=PdfColorspaceDeviceCMYK {};_bccaf ,_gaccf :=_bdgaa .ColorFromFloats (_gebeg );if _gaccf !=nil {return 0.0,_gaccf ;};_cbege ,_gaccf :=_bdgaa .ColorToRGB (_bccaf .(*PdfColorDeviceCMYK ));if _gaccf !=nil {return 0.0,_gaccf ;};return _cbege .(*PdfColorDeviceRGB ).ToGray ().Val (),nil ;};_fbfegc =_gd .New ("\u0062a\u0064 \u004d\u0061\u0074\u0074\u0065\u0020\u0063\u006f\u006c\u006f\u0072");_ebg .Log .Error ("\u0074\u006f\u0047ra\u0079\u003a\u0020\u006d\u0061\u0074\u0074\u0065\u003d\u0025\u0073\u0020\u0065\u0072\u0072\u003d\u0025\u0076",_bdffd ,_fbfegc );return 0.0,_fbfegc ;};
// 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 _cg .ReadSeeker )(*PdfFont ,error ){_fgfd ,_befe :=_dd .ReadAll (r );if _befe !=nil {_ebg .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",_befe );return nil ,_befe ;};_acad ,_befe :=_cc .TtfParse (_f .NewReader (_fgfd ));if _befe !=nil {_ebg .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",_befe );return nil ,_befe ;};_daece :=&pdfCIDFontType2 {fontCommon :fontCommon {_dbbag :"\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032"},CIDToGIDMap :_ce .MakeName ("\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079")};_cbfb :=make ([]rune ,0,len (_acad .Chars ));for _ddeec :=range _acad .Chars {_cbfb =append (_cbfb ,rune (_ddeec ));};_ba .Slice (_cbfb ,func (_ffeg ,_cbfa int )bool {return _cbfb [_ffeg ]< _cbfb [_cbfa ]});_cgeae :=1000.0/float64 (_acad .UnitsPerEm );if len (_acad .Widths )<=0{return nil ,_gd .New ("\u0045\u0052\u0052O\u0052\u003a\u0020\u004d\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u0072\u0065\u0071\u0075\u0069\u0072\u0065\u0064\u0020\u0061\u0074\u0074\u0072\u0069\u0062\u0075\u0074\u0065 \u0028\u0057\u0069\u0064\u0074\u0068\u0073\u0029");};_aeafb :=_cgeae *float64 (_acad .Widths [0]);_ffcce :=make (map[rune ]int );for _ ,_fffc :=range _cbfb {_gfegd :=_acad .Chars [_fffc ];_dgbfb :=_cgeae *float64 (_acad .Widths [_gfegd ]);_ffcce [_fffc ]=int (_dgbfb );};_daece ._fabd =_ffcce ;_daece .DW =_ce .MakeInteger (int64 (_aeafb ));_eeadd :=_gaadf (_cbfb ,_ffcce ,_acad .Chars );_daece .W =_ce .MakeIndirectObject (_eeadd );_ccfc :=_ce .MakeDict ();_ccfc .Set ("\u004f\u0072\u0064\u0065\u0072\u0069\u006e\u0067",_ce .MakeString ("\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079"));_ccfc .Set ("\u0052\u0065\u0067\u0069\u0073\u0074\u0072\u0079",_ce .MakeString ("\u0041\u0064\u006fb\u0065"));_ccfc .Set ("\u0053\u0075\u0070\u0070\u006c\u0065\u006d\u0065\u006e\u0074",_ce .MakeInteger (0));_daece .CIDSystemInfo =_ccfc ;_dbafb :=&PdfFontDescriptor {FontName :_ce .MakeName (_acad .PostScriptName ),Ascent :_ce .MakeFloat (_cgeae *float64 (_acad .TypoAscender )),Descent :_ce .MakeFloat (_cgeae *float64 (_acad .TypoDescender )),CapHeight :_ce .MakeFloat (_cgeae *float64 (_acad .CapHeight )),FontBBox :_ce .MakeArrayFromFloats ([]float64 {_cgeae *float64 (_acad .Xmin ),_cgeae *float64 (_acad .Ymin ),_cgeae *float64 (_acad .Xmax ),_cgeae *float64 (_acad .Ymax )}),ItalicAngle :_ce .MakeFloat (float64 (_acad .ItalicAngle )),MissingWidth :_ce .MakeFloat (_cgeae *float64 (_acad .Widths [0]))};_ffdf ,_befe :=_ce .MakeStream (_fgfd ,_ce .NewFlateEncoder ());if _befe !=nil {_ebg .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",_befe );return nil ,_befe ;};_ffdf .PdfObjectDictionary .Set ("\u004ce\u006e\u0067\u0074\u0068\u0031",_ce .MakeInteger (int64 (len (_fgfd ))));_dbafb .FontFile2 =_ffdf ;if _acad .Bold {_dbafb .StemV =_ce .MakeInteger (120);}else {_dbafb .StemV =_ce .MakeInteger (70);};_ccbed :=_begeb ;if _acad .IsFixedPitch {_ccbed |=_fgae ;};if _acad .ItalicAngle !=0{_ccbed |=_cccc ;};_dbafb .Flags =_ce .MakeInteger (int64 (_ccbed ));_daece ._agcagf =_acad .PostScriptName ;_daece ._adae =_dbafb ;_dfgg :=pdfFontType0 {fontCommon :fontCommon {_dbbag :"\u0054\u0079\u0070e\u0030",_agcagf :_acad .PostScriptName },DescendantFont :&PdfFont {_decac :_daece },Encoding :_ce .MakeName ("\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079\u002d\u0048"),_gedcf :_acad .NewEncoder ()};if len (_acad .Chars )> 0{_dadd :=make (map[_fa .CharCode ]rune ,len (_acad .Chars ));for _gged ,_afdge :=range _acad .Chars {_egfc :=_fa .CharCode (_afdge );if _deab ,_aacfd :=_dadd [_egfc ];!_aacfd ||(_aacfd &&_deab > _gged ){_dadd [_egfc ]=_gged ;};};_dfgg ._fefb =_fa .NewToUnicodeCMap (_dadd );};_dcfdc :=PdfFont {_decac :&_dfgg };return &_dcfdc ,nil ;};func (_bffag *PdfReader )buildPageList (_fcfdg *_ce .PdfIndirectObject ,_ggbfd *_ce .PdfIndirectObject ,_cbafg map[_ce .PdfObject ]struct{})error {if _fcfdg ==nil {return nil ;};if _ ,_deaag :=_cbafg [_fcfdg ];_deaag {_ebg .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",_fcfdg .ObjectNumber );return nil ;};_cbafg [_fcfdg ]=struct{}{};_ggbdd ,_ceegb :=_fcfdg .PdfObject .(*_ce .PdfObjectDictionary );if !_ceegb {return _gd .New ("n\u006f\u0064\u0065\u0020no\u0074 \u0061\u0020\u0064\u0069\u0063t\u0069\u006f\u006e\u0061\u0072\u0079");};_dedgg ,_ceegb :=(*_ggbdd ).Get ("\u0054\u0079\u0070\u0065").(*_ce .PdfObjectName );if !_ceegb {if _ggbdd .Get ("\u004b\u0069\u0064\u0073")==nil {return _gd .New ("\u006e\u006f\u0064\u0065 \u006d\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u0054\u0079p\u0065 \u0028\u0052\u0065\u0071\u0075\u0069\u0072e\u0064\u0029");};_ebg .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.");_dedgg =_ce .MakeName ("\u0050\u0061\u0067e\u0073");_ggbdd .Set ("\u0054\u0079\u0070\u0065",_dedgg );};_ebg .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",*_dedgg ,_fcfdg );if *_dedgg =="\u0050\u0061\u0067\u0065"{_edae ,_gbeba :=_bffag .newPdfPageFromDict (_ggbdd );if _gbeba !=nil {return _gbeba ;};_edae .setContainer (_fcfdg );if _ggbfd !=nil {_ggbdd .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_ggbfd );};_bffag ._gggg =append (_bffag ._gggg ,_fcfdg );_bffag .PageList =append (_bffag .PageList ,_edae );return nil ;};if *_dedgg !="\u0050\u0061\u0067e\u0073"{_ebg .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",_dedgg );return _gd .New ("\u0074\u0061\u0062\u006c\u0065\u0020o\u0066\u0020\u0063\u006f\u006e\u0074\u0065\u006e\u0074\u0020\u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0069\u006e\u0067 \u006e\u006f\u006e\u0020\u0050\u0061\u0067\u0065\u002f\u0050\u0061\u0067\u0065\u0073 \u006fb\u006a\u0065\u0063\u0074");};if _ggbfd !=nil {_ggbdd .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_ggbfd );};if !_bffag ._ebegg {_aafa :=_bffag .traverseObjectData (_fcfdg );if _aafa !=nil {return _aafa ;};};_ecfc ,_cfbbd :=_bffag ._dbfe .Resolve (_ggbdd .Get ("\u004b\u0069\u0064\u0073"));if _cfbbd !=nil {_ebg .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 _cfbbd ;};var _gcbbb *_ce .PdfObjectArray ;_gcbbb ,_ceegb =_ecfc .(*_ce .PdfObjectArray );if !_ceegb {_eaae ,_abfgb :=_ecfc .(*_ce .PdfIndirectObject );if !_abfgb {return _gd .New ("\u0069\u006e\u0076\u0061li\u0064\u0020\u004b\u0069\u0064\u0073\u0020\u006f\u0062\u006a\u0065\u0063\u0074");};_gcbbb ,_ceegb =_eaae .PdfObject .(*_ce .PdfObjectArray );if !_ceegb {return _gd .New ("\u0069\u006e\u0076\u0061l\u0069\u0064\u0020\u004b\u0069\u0064\u0073\u0020\u0069\u006ed\u0069r\u0065\u0063\u0074\u0020\u006f\u0062\u006ae\u0063\u0074");};};_ebg .Log .Trace ("\u004b\u0069\u0064\u0073\u003a\u0020\u0025\u0073",_gcbbb );for _edcca ,_aecg :=range _gcbbb .Elements (){_fedc ,_begae :=_ce .GetIndirect (_aecg );if !_begae {_ebg .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",_fedc );return _gd .New ("\u0070a\u0067\u0065\u0020\u006e\u006f\u0074\u0020\u0069\u006e\u0064\u0069r\u0065\u0063\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074");};_gcbbb .Set (_edcca ,_fedc );_cfbbd =_bffag .buildPageList (_fedc ,_fcfdg ,_cbafg );if _cfbbd !=nil {return _cfbbd ;};};return nil ;};var _babd ="";func (_bge *PdfReader )newPdfActionSubmitFormFromDict (_dbc *_ce .PdfObjectDictionary )(*PdfActionSubmitForm ,error ){_cgff ,_ddg :=_cbc (_dbc .Get ("\u0046"));if _ddg !=nil {return nil ,_ddg ;};return &PdfActionSubmitForm {F :_cgff ,Fields :_dbc .Get ("\u0046\u0069\u0065\u006c\u0064\u0073"),Flags :_dbc .Get ("\u0046\u006c\u0061g\u0073")},nil ;};
// NewPdfColorspaceFromPdfObject loads a PdfColorspace from a PdfObject. Returns an error if there is
// a failure in loading.
func NewPdfColorspaceFromPdfObject (obj _ce .PdfObject )(PdfColorspace ,error ){var _adbag *_ce .PdfIndirectObject ;var _bbfce *_ce .PdfObjectName ;var _dbgaf *_ce .PdfObjectArray ;if _gccc ,_faagd :=obj .(*_ce .PdfIndirectObject );_faagd {_adbag =_gccc ;};obj =_ce .TraceToDirectObject (obj );switch _gcgcb :=obj .(type ){case *_ce .PdfObjectArray :_dbgaf =_gcgcb ;case *_ce .PdfObjectName :_bbfce =_gcgcb ;};if _bbfce !=nil {switch *_bbfce {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:_ebg .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",*_bbfce );return nil ,_dage ;};};if _dbgaf !=nil &&_dbgaf .Len ()> 0{var _fegd _ce .PdfObject =_adbag ;if _adbag ==nil {_fegd =_dbgaf ;};if _dcagb ,_afbf :=_ce .GetName (_dbgaf .Get (0));_afbf {switch _dcagb .String (){case "\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079":if _dbgaf .Len ()==1{return NewPdfColorspaceDeviceGray (),nil ;};case "\u0044e\u0076\u0069\u0063\u0065\u0052\u0047B":if _dbgaf .Len ()==1{return NewPdfColorspaceDeviceRGB (),nil ;};case "\u0044\u0065\u0076\u0069\u0063\u0065\u0043\u004d\u0059\u004b":if _dbgaf .Len ()==1{return NewPdfColorspaceDeviceCMYK (),nil ;};case "\u0043a\u006c\u0047\u0072\u0061\u0079":return _cbcc (_fegd );case "\u0043\u0061\u006c\u0052\u0047\u0042":return _ccfg (_fegd );case "\u004c\u0061\u0062":return _eccga (_fegd );case "\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064":return _fgdf (_fegd );case "\u0050a\u0074\u0074\u0065\u0072\u006e":return _dbce (_fegd );case "\u0049n\u0064\u0065\u0078\u0065\u0064":return _egbdb (_fegd );case "\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e":return _cfcg (_fegd );case "\u0044e\u0076\u0069\u0063\u0065\u004e":return _eafb (_fegd );default:_ebg .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",*_dcagb );};};};_ebg .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 ;};
// ToPdfObject returns the PdfFontDescriptor as a PDF dictionary inside an indirect object.
func (_fbfda *PdfFontDescriptor )ToPdfObject ()_ce .PdfObject {_dfdae :=_ce .MakeDict ();if _fbfda ._ddbce ==nil {_fbfda ._ddbce =&_ce .PdfIndirectObject {};};_fbfda ._ddbce .PdfObject =_dfdae ;_dfdae .Set ("\u0054\u0079\u0070\u0065",_ce .MakeName ("\u0046\u006f\u006e\u0074\u0044\u0065\u0073\u0063\u0072i\u0070\u0074\u006f\u0072"));if _fbfda .FontName !=nil {_dfdae .Set ("\u0046\u006f\u006e\u0074\u004e\u0061\u006d\u0065",_fbfda .FontName );};if _fbfda .FontFamily !=nil {_dfdae .Set ("\u0046\u006f\u006e\u0074\u0046\u0061\u006d\u0069\u006c\u0079",_fbfda .FontFamily );};if _fbfda .FontStretch !=nil {_dfdae .Set ("F\u006f\u006e\u0074\u0053\u0074\u0072\u0065\u0074\u0063\u0068",_fbfda .FontStretch );};if _fbfda .FontWeight !=nil {_dfdae .Set ("\u0046\u006f\u006e\u0074\u0057\u0065\u0069\u0067\u0068\u0074",_fbfda .FontWeight );};if _fbfda .Flags !=nil {_dfdae .Set ("\u0046\u006c\u0061g\u0073",_fbfda .Flags );};if _fbfda .FontBBox !=nil {_dfdae .Set ("\u0046\u006f\u006e\u0074\u0042\u0042\u006f\u0078",_fbfda .FontBBox );};if _fbfda .ItalicAngle !=nil {_dfdae .Set ("I\u0074\u0061\u006c\u0069\u0063\u0041\u006e\u0067\u006c\u0065",_fbfda .ItalicAngle );};if _fbfda .Ascent !=nil {_dfdae .Set ("\u0041\u0073\u0063\u0065\u006e\u0074",_fbfda .Ascent );};if _fbfda .Descent !=nil {_dfdae .Set ("\u0044e\u0073\u0063\u0065\u006e\u0074",_fbfda .Descent );};if _fbfda .Leading !=nil {_dfdae .Set ("\u004ce\u0061\u0064\u0069\u006e\u0067",_fbfda .Leading );};if _fbfda .CapHeight !=nil {_dfdae .Set ("\u0043a\u0070\u0048\u0065\u0069\u0067\u0068t",_fbfda .CapHeight );};if _fbfda .XHeight !=nil {_dfdae .Set ("\u0058H\u0065\u0069\u0067\u0068\u0074",_fbfda .XHeight );};if _fbfda .StemV !=nil {_dfdae .Set ("\u0053\u0074\u0065m\u0056",_fbfda .StemV );};if _fbfda .StemH !=nil {_dfdae .Set ("\u0053\u0074\u0065m\u0048",_fbfda .StemH );};if _fbfda .AvgWidth !=nil {_dfdae .Set ("\u0041\u0076\u0067\u0057\u0069\u0064\u0074\u0068",_fbfda .AvgWidth );};if _fbfda .MaxWidth !=nil {_dfdae .Set ("\u004d\u0061\u0078\u0057\u0069\u0064\u0074\u0068",_fbfda .MaxWidth );};if _fbfda .MissingWidth !=nil {_dfdae .Set ("\u004d\u0069\u0073s\u0069\u006e\u0067\u0057\u0069\u0064\u0074\u0068",_fbfda .MissingWidth );};if _fbfda .FontFile !=nil {_dfdae .Set ("\u0046\u006f\u006e\u0074\u0046\u0069\u006c\u0065",_fbfda .FontFile );};if _fbfda .FontFile2 !=nil {_dfdae .Set ("\u0046o\u006e\u0074\u0046\u0069\u006c\u00652",_fbfda .FontFile2 );};if _fbfda .FontFile3 !=nil {_dfdae .Set ("\u0046o\u006e\u0074\u0046\u0069\u006c\u00653",_fbfda .FontFile3 );};if _fbfda .CharSet !=nil {_dfdae .Set ("\u0043h\u0061\u0072\u0053\u0065\u0074",_fbfda .CharSet );};if _fbfda .Style !=nil {_dfdae .Set ("\u0046\u006f\u006e\u0074\u004e\u0061\u006d\u0065",_fbfda .FontName );};if _fbfda .Lang !=nil {_dfdae .Set ("\u004c\u0061\u006e\u0067",_fbfda .Lang );};if _fbfda .FD !=nil {_dfdae .Set ("\u0046\u0044",_fbfda .FD );};if _fbfda .CIDSet !=nil {_dfdae .Set ("\u0043\u0049\u0044\u0053\u0065\u0074",_fbfda .CIDSet );};return _fbfda ._ddbce ;};
// PdfAnnotationRedact represents Redact annotations.
// (Section 12.5.6.23).
type PdfAnnotationRedact struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _ce .PdfObject ;IC _ce .PdfObject ;RO _ce .PdfObject ;OverlayText _ce .PdfObject ;Repeat _ce .PdfObject ;DA _ce .PdfObject ;Q _ce .PdfObject ;};
// NewPdfColorCalRGB returns a new CalRBG color.
func NewPdfColorCalRGB (a ,b ,c float64 )*PdfColorCalRGB {_edfd :=PdfColorCalRGB {a ,b ,c };return &_edfd ;};
// 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 (_bacf *PdfReader )FlattenFields (allannots bool ,appgen FieldAppearanceGenerator )error {return _bacf .flattenFieldsWithOpts (allannots ,appgen ,nil );};
// SetName sets the `Name` field of the signature.
func (_gdafb *PdfSignature )SetName (name string ){_gdafb .Name =_ce .MakeString (name )};func _dbce (_eagea _ce .PdfObject )(*PdfColorspaceSpecialPattern ,error ){_ebg .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",_eagea .String (),_eagea );_daecd :=NewPdfColorspaceSpecialPattern ();if _dacea ,_agdd :=_eagea .(*_ce .PdfIndirectObject );_agdd {_daecd ._edbdd =_dacea ;};_eagea =_ce .TraceToDirectObject (_eagea );if _agbac ,_dbfb :=_eagea .(*_ce .PdfObjectName );_dbfb {if *_agbac !="\u0050a\u0074\u0074\u0065\u0072\u006e"{return nil ,_c .Errorf ("\u0069\u006e\u0076a\u006c\u0069\u0064\u0020\u006e\u0061\u006d\u0065");};return _daecd ,nil ;};_bdfbg ,_gfadd :=_eagea .(*_ce .PdfObjectArray );if !_gfadd {_ebg .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",_eagea );return nil ,_c .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0050\u0061\u0074\u0074e\u0072n\u0020C\u0053\u0020\u006f\u0062\u006a\u0065\u0063t");};if _bdfbg .Len ()!=1&&_bdfbg .Len ()!=2{_ebg .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",_bdfbg );return nil ,_c .Errorf ("\u0069n\u0076\u0061\u006c\u0069\u0064\u0020\u0050\u0061\u0074\u0074\u0065r\u006e\u0020\u0043\u0053\u0020\u0061\u0072\u0072\u0061\u0079");};_eagea =_bdfbg .Get (0);if _gbdaf ,_fegc :=_eagea .(*_ce .PdfObjectName );_fegc {if *_gbdaf !="\u0050a\u0074\u0074\u0065\u0072\u006e"{_ebg .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",_gbdaf );return nil ,_c .Errorf ("\u0069\u006e\u0076a\u006c\u0069\u0064\u0020\u006e\u0061\u006d\u0065");};};if _bdfbg .Len ()> 1{_eagea =_bdfbg .Get (1);_eagea =_ce .TraceToDirectObject (_eagea );_adff ,_cfcdg :=NewPdfColorspaceFromPdfObject (_eagea );if _cfcdg !=nil {return nil ,_cfcdg ;};_daecd .UnderlyingCS =_adff ;};_ebg .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",_daecd .UnderlyingCS );return _daecd ,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 *_ce .PdfObjectStream ;Data []byte ;_cecc *_ce .PdfIndirectObject ;_bddg *_ce .PdfObjectStream ;};func (_cfb *PdfReader )newPdfAnnotationFileAttachmentFromDict (_ddbc *_ce .PdfObjectDictionary )(*PdfAnnotationFileAttachment ,error ){_gfff :=PdfAnnotationFileAttachment {};_aeg ,_fgbgd :=_cfb .newPdfAnnotationMarkupFromDict (_ddbc );if _fgbgd !=nil {return nil ,_fgbgd ;};_gfff .PdfAnnotationMarkup =_aeg ;_gfff .FS =_ddbc .Get ("\u0046\u0053");_gfff .Name =_ddbc .Get ("\u004e\u0061\u006d\u0065");return &_gfff ,nil ;};
// ToPdfObject sets the common field elements.
// Note: Call the more field context's ToPdfObject to set both the generic and
// non-generic information.
func (_cccbf *PdfField )ToPdfObject ()_ce .PdfObject {_beae :=_cccbf ._gfeec ;_bada :=_beae .PdfObject .(*_ce .PdfObjectDictionary );_bgadb :=_ce .MakeArray ();for _ ,_gab :=range _cccbf .Kids {_bgadb .Append (_gab .ToPdfObject ());};for _ ,_gbff :=range _cccbf .Annotations {if _gbff ._bda !=_cccbf ._gfeec {_bgadb .Append (_gbff .GetContext ().ToPdfObject ());};};if _cccbf .Parent !=nil {_bada .SetIfNotNil ("\u0050\u0061\u0072\u0065\u006e\u0074",_cccbf .Parent .GetContainingPdfObject ());};if _bgadb .Len ()> 0{_bada .Set ("\u004b\u0069\u0064\u0073",_bgadb );};_bada .SetIfNotNil ("\u0046\u0054",_cccbf .FT );_bada .SetIfNotNil ("\u0054",_cccbf .T );_bada .SetIfNotNil ("\u0054\u0055",_cccbf .TU );_bada .SetIfNotNil ("\u0054\u004d",_cccbf .TM );_bada .SetIfNotNil ("\u0046\u0066",_cccbf .Ff );_bada .SetIfNotNil ("\u0056",_cccbf .V );_bada .SetIfNotNil ("\u0044\u0056",_cccbf .DV );_bada .SetIfNotNil ("\u0041\u0041",_cccbf .AA );return _beae ;};
// PdfAnnotationSquiggly represents Squiggly annotations.
// (Section 12.5.6.10).
type PdfAnnotationSquiggly struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _ce .PdfObject ;};
// NewXObjectImageFromStream builds the image xobject from a stream object.
// An image dictionary is the dictionary portion of a stream object representing an image XObject.
func NewXObjectImageFromStream (stream *_ce .PdfObjectStream )(*XObjectImage ,error ){_febff :=&XObjectImage {};_febff ._gfag =stream ;_eeaddd :=*(stream .PdfObjectDictionary );_cdefg ,_aedcb :=_ce .NewEncoderFromStream (stream );if _aedcb !=nil {return nil ,_aedcb ;};_febff .Filter =_cdefg ;if _deaed :=_ce .TraceToDirectObject (_eeaddd .Get ("\u0057\u0069\u0064t\u0068"));_deaed !=nil {_aedcg ,_ebda :=_deaed .(*_ce .PdfObjectInteger );if !_ebda {return nil ,_gd .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0069\u006d\u0061g\u0065\u0020\u0077\u0069\u0064\u0074\u0068\u0020\u006f\u0062j\u0065\u0063\u0074");};_bbba :=int64 (*_aedcg );_febff .Width =&_bbba ;}else {return nil ,_gd .New ("\u0077\u0069\u0064\u0074\u0068\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};if _bfgbb :=_ce .TraceToDirectObject (_eeaddd .Get ("\u0048\u0065\u0069\u0067\u0068\u0074"));_bfgbb !=nil {_bdcea ,_dbfge :=_bfgbb .(*_ce .PdfObjectInteger );if !_dbfge {return nil ,_gd .New ("i\u006e\u0076\u0061\u006c\u0069\u0064 \u0069\u006d\u0061\u0067\u0065\u0020\u0068\u0065\u0069g\u0068\u0074\u0020o\u0062j\u0065\u0063\u0074");};_fdaag :=int64 (*_bdcea );_febff .Height =&_fdaag ;}else {return nil ,_gd .New ("\u0068\u0065\u0069\u0067\u0068\u0074\u0020\u006d\u0069s\u0073\u0069\u006e\u0067");};if _cdgcf :=_ce .TraceToDirectObject (_eeaddd .Get ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065"));_cdgcf !=nil {_caceg ,_fgcda :=NewPdfColorspaceFromPdfObject (_cdgcf );if _fgcda !=nil {return nil ,_fgcda ;};_febff .ColorSpace =_caceg ;}else {_ebg .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");_febff .ColorSpace =NewPdfColorspaceDeviceGray ();};if _afaba :=_ce .TraceToDirectObject (_eeaddd .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074"));_afaba !=nil {_gaabgc ,_dffeb :=_afaba .(*_ce .PdfObjectInteger );if !_dffeb {return nil ,_gd .New ("i\u006e\u0076\u0061\u006c\u0069\u0064 \u0069\u006d\u0061\u0067\u0065\u0020\u0068\u0065\u0069g\u0068\u0074\u0020o\u0062j\u0065\u0063\u0074");};_geaag :=int64 (*_gaabgc );_febff .BitsPerComponent =&_geaag ;};_febff .Intent =_eeaddd .Get ("\u0049\u006e\u0074\u0065\u006e\u0074");_febff .ImageMask =_eeaddd .Get ("\u0049m\u0061\u0067\u0065\u004d\u0061\u0073k");_febff .Mask =_eeaddd .Get ("\u004d\u0061\u0073\u006b");_febff .Decode =_eeaddd .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");_febff .Interpolate =_eeaddd .Get ("I\u006e\u0074\u0065\u0072\u0070\u006f\u006c\u0061\u0074\u0065");_febff .Alternatives =_eeaddd .Get ("\u0041\u006c\u0074e\u0072\u006e\u0061\u0074\u0069\u0076\u0065\u0073");_febff .SMask =_eeaddd .Get ("\u0053\u004d\u0061s\u006b");_febff .SMaskInData =_eeaddd .Get ("S\u004d\u0061\u0073\u006b\u0049\u006e\u0044\u0061\u0074\u0061");_febff .Matte =_eeaddd .Get ("\u004d\u0061\u0074t\u0065");_febff .Name =_eeaddd .Get ("\u004e\u0061\u006d\u0065");_febff .StructParent =_eeaddd .Get ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074");_febff .ID =_eeaddd .Get ("\u0049\u0044");_febff .OPI =_eeaddd .Get ("\u004f\u0050\u0049");_febff .Metadata =_eeaddd .Get ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");_febff .OC =_eeaddd .Get ("\u004f\u0043");_febff .Stream =stream .Stream ;return _febff ,nil ;};const (FieldFlagClear FieldFlag =0;FieldFlagReadOnly FieldFlag =1;FieldFlagRequired FieldFlag =(1<<1);FieldFlagNoExport FieldFlag =(2<<1);FieldFlagNoToggleToOff FieldFlag =(1<<14);FieldFlagRadio FieldFlag =(1<<15);FieldFlagPushbutton FieldFlag =(1<<16);FieldFlagRadiosInUnision FieldFlag =(1<<25);FieldFlagMultiline FieldFlag =(1<<12);FieldFlagPassword FieldFlag =(1<<13);FieldFlagFileSelect FieldFlag =(1<<20);FieldFlagDoNotScroll FieldFlag =(1<<23);FieldFlagComb FieldFlag =(1<<24);FieldFlagRichText FieldFlag =(1<<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););type crossReference struct{Type int ;
// Type 1
Offset int64 ;Generation int64 ;
// Type 2
ObjectNumber int ;Index int ;};
// 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 (_ccdad _cg .Reader )(*Image ,error );
// NewImageFromGoImage loads a NRGBA32 unidoc Image from a standard Go image structure.
NewImageFromGoImage (_cgdd _eg .Image )(*Image ,error );
// NewGrayImageFromGoImage loads a grayscale unidoc Image from a standard Go image structure.
NewGrayImageFromGoImage (_eefa _eg .Image )(*Image ,error );
// Compress an image.
Compress (_aceg *Image ,_daga int64 )(*Image ,error );};func (_ddca *PdfFilespec )getDict ()*_ce .PdfObjectDictionary {if _cfbb ,_dede :=_ddca ._ddfgf .(*_ce .PdfIndirectObject );_dede {_edda ,_cfggg :=_cfbb .PdfObject .(*_ce .PdfObjectDictionary );if !_cfggg {return nil ;};return _edda ;}else if _fefff ,_ebgd :=_ddca ._ddfgf .(*_ce .PdfObjectDictionary );_ebgd {return _fefff ;}else {_ebg .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",_ddca ._ddfgf );return nil ;};};
// 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 _ce .PdfObject ;FontFamily _ce .PdfObject ;FontStretch _ce .PdfObject ;FontWeight _ce .PdfObject ;Flags _ce .PdfObject ;FontBBox _ce .PdfObject ;ItalicAngle _ce .PdfObject ;Ascent _ce .PdfObject ;Descent _ce .PdfObject ;Leading _ce .PdfObject ;CapHeight _ce .PdfObject ;XHeight _ce .PdfObject ;StemV _ce .PdfObject ;StemH _ce .PdfObject ;AvgWidth _ce .PdfObject ;MaxWidth _ce .PdfObject ;MissingWidth _ce .PdfObject ;FontFile _ce .PdfObject ;FontFile2 _ce .PdfObject ;FontFile3 _ce .PdfObject ;CharSet _ce .PdfObject ;_fcfce int ;_gcfg float64 ;*fontFile ;_ggefa *_cc .TtfType ;
// Additional entries for CIDFonts
Style _ce .PdfObject ;Lang _ce .PdfObject ;FD _ce .PdfObject ;CIDSet _ce .PdfObject ;_ddbce *_ce .PdfIndirectObject ;};func (_eefee *pdfFontSimple )updateStandard14Font (){_bccd ,_faee :=_eefee .Encoder ().(_cce .SimpleEncoder );if !_faee {_ebg .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",_eefee .Encoder (),_eefee );return ;};_gcbg :=_bccd .Charcodes ();_eefee ._bgdcb =make (map[_cce .CharCode ]float64 ,len (_gcbg ));for _ ,_ccdeb :=range _gcbg {_dbdfd ,_ :=_bccd .CharcodeToRune (_ccdeb );_eefee ._bgdcb [_ccdeb ]=_eefee ._eegg [_dbdfd ].Wx ;};};
// Evaluate runs the function on the passed in slice and returns the results.
func (_cbcb *PdfFunctionType2 )Evaluate (x []float64 )([]float64 ,error ){if len (x )!=1{_ebg .Log .Error ("\u004f\u006e\u006c\u0079 o\u006e\u0065\u0020\u0069\u006e\u0070\u0075\u0074\u0020\u0061\u006c\u006c\u006f\u0077e\u0064");return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_ebcc :=[]float64 {0.0};if _cbcb .C0 !=nil {_ebcc =_cbcb .C0 ;};_aade :=[]float64 {1.0};if _cbcb .C1 !=nil {_aade =_cbcb .C1 ;};var _fgfdf []float64 ;for _ecdeg :=0;_ecdeg < len (_ebcc );_ecdeg ++{_fcfag :=_ebcc [_ecdeg ]+_ag .Pow (x [0],_cbcb .N )*(_aade [_ecdeg ]-_ebcc [_ecdeg ]);_fgfdf =append (_fgfdf ,_fcfag );};return _fgfdf ,nil ;};
// ToPdfObject returns colorspace in a PDF object format [name stream]
func (_beacfg *PdfColorspaceICCBased )ToPdfObject ()_ce .PdfObject {_edgbe :=&_ce .PdfObjectArray {};_edgbe .Append (_ce .MakeName ("\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064"));var _begef *_ce .PdfObjectStream ;if _beacfg ._bddg !=nil {_begef =_beacfg ._bddg ;}else {_begef =&_ce .PdfObjectStream {};};_dbcdf :=_ce .MakeDict ();_dbcdf .Set ("\u004e",_ce .MakeInteger (int64 (_beacfg .N )));if _beacfg .Alternate !=nil {_dbcdf .Set ("\u0041l\u0074\u0065\u0072\u006e\u0061\u0074e",_beacfg .Alternate .ToPdfObject ());};if _beacfg .Metadata !=nil {_dbcdf .Set ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061",_beacfg .Metadata );};if _beacfg .Range !=nil {var _cgge []_ce .PdfObject ;for _ ,_efag :=range _beacfg .Range {_cgge =append (_cgge ,_ce .MakeFloat (_efag ));};_dbcdf .Set ("\u0052\u0061\u006eg\u0065",_ce .MakeArray (_cgge ...));};_dbcdf .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_ce .MakeInteger (int64 (len (_beacfg .Data ))));_begef .Stream =_beacfg .Data ;_begef .PdfObjectDictionary =_dbcdf ;_edgbe .Append (_begef );if _beacfg ._cecc !=nil {_beacfg ._cecc .PdfObject =_edgbe ;return _beacfg ._cecc ;};return _edgbe ;};func _edbea (_adaff *_ce .PdfObjectDictionary ,_gaba *fontCommon )(*pdfFontType0 ,error ){_efee ,_fbcag :=_ce .GetArray (_adaff .Get ("\u0044e\u0073c\u0065\u006e\u0064\u0061\u006e\u0074\u0046\u006f\u006e\u0074\u0073"));if !_fbcag {_ebg .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",_gaba );return nil ,_ce .ErrRangeError ;};if _efee .Len ()!=1{_ebg .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",_efee .Len ());return nil ,_ce .ErrRangeError ;};_cgded ,_fgbed :=_efef (_efee .Get (0),false );if _fgbed !=nil {_ebg .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",_fgbed ,_gaba );return nil ,_fgbed ;};_edfdg :=_gfadb (_gaba );_edfdg .DescendantFont =_cgded ;_ccgda ,_fbcag :=_ce .GetNameVal (_adaff .Get ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067"));if _fbcag {if _ccgda =="\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079\u002d\u0048"||_ccgda =="\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079\u002d\u0056"{_edfdg ._gedcf =_cce .NewIdentityTextEncoder (_ccgda );}else if _fa .IsPredefinedCMap (_ccgda ){_edfdg ._fgbdd ,_fgbed =_fa .LoadPredefinedCMap (_ccgda );if _fgbed !=nil {_ebg .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",_ccgda ,_fgbed );};}else {_ebg .Log .Debug ("\u0055\u006e\u0068\u0061\u006e\u0064\u006c\u0065\u0064\u0020\u0063\u006da\u0070\u0020\u0025\u0071",_ccgda );};};if _egedff :=_cgded .baseFields ()._fefb ;_egedff !=nil {if _fadg :=_egedff .Name ();_fadg =="\u0041d\u006fb\u0065\u002d\u0043\u004e\u0053\u0031\u002d\u0055\u0043\u0053\u0032"||_fadg =="\u0041\u0064\u006f\u0062\u0065\u002d\u0047\u0042\u0031-\u0055\u0043\u0053\u0032"||_fadg =="\u0041\u0064\u006f\u0062\u0065\u002d\u004a\u0061\u0070\u0061\u006e\u0031-\u0055\u0043\u0053\u0032"||_fadg =="\u0041\u0064\u006f\u0062\u0065\u002d\u004b\u006f\u0072\u0065\u0061\u0031-\u0055\u0043\u0053\u0032"{_edfdg ._gedcf =_cce .NewCMapEncoder (_ccgda ,_edfdg ._fgbdd ,_egedff );};};return _edfdg ,nil ;};
// SetImage updates XObject Image with new image data.
func (_gafb *XObjectImage )SetImage (img *Image ,cs PdfColorspace )error {_gafb .Filter .UpdateParams (img .GetParamsDict ());_eedag ,_eaebc :=_gafb .Filter .EncodeBytes (img .Data );if _eaebc !=nil {return _eaebc ;};_gafb .Stream =_eedag ;_accf :=img .Width ;_gafb .Width =&_accf ;_dgdaf :=img .Height ;_gafb .Height =&_dgdaf ;_gceab :=img .BitsPerComponent ;_gafb .BitsPerComponent =&_gceab ;if cs ==nil {if img .ColorComponents ==1{_gafb .ColorSpace =NewPdfColorspaceDeviceGray ();}else if img .ColorComponents ==3{_gafb .ColorSpace =NewPdfColorspaceDeviceRGB ();}else if img .ColorComponents ==4{_gafb .ColorSpace =NewPdfColorspaceDeviceCMYK ();}else {return _gd .New ("c\u006fl\u006f\u0072\u0073\u0070\u0061\u0063\u0065\u0020u\u006e\u0064\u0065\u0066in\u0065\u0064");};}else {_gafb .ColorSpace =cs ;};return nil ;};
// GetContainingPdfObject returns the container of the image object (indirect object).
func (_bfecg *XObjectImage )GetContainingPdfObject ()_ce .PdfObject {return _bfecg ._gfag };
// 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 *_ce .PdfObjectName ;Colorants _ce .PdfObject ;Process _ce .PdfObject ;MixingHints _ce .PdfObject ;_gac *_ce .PdfIndirectObject ;};
// Register registers (caches) a model to primitive object relationship.
func (_cedf *modelManager )Register (primitive _ce .PdfObject ,model PdfModel ){_cedf ._cfgag [model ]=primitive ;_cedf ._efgef [primitive ]=model ;};func _eccga (_cace _ce .PdfObject )(*PdfColorspaceLab ,error ){_eeee :=NewPdfColorspaceLab ();if _efgbg ,_ebce :=_cace .(*_ce .PdfIndirectObject );_ebce {_eeee ._afdc =_efgbg ;};_cace =_ce .TraceToDirectObject (_cace );_abdff ,_ddbe :=_cace .(*_ce .PdfObjectArray );if !_ddbe {return nil ,_c .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _abdff .Len ()!=2{return nil ,_c .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0043\u0061\u006c\u0052G\u0042 \u0063o\u006c\u006f\u0072\u0073\u0070\u0061\u0063e");};_cace =_ce .TraceToDirectObject (_abdff .Get (0));_debc ,_ddbe :=_cace .(*_ce .PdfObjectName );if !_ddbe {return nil ,_c .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 *_debc !="\u004c\u0061\u0062"{return nil ,_c .Errorf ("n\u006ft\u0020\u0061\u0020\u004c\u0061\u0062\u0020\u0063o\u006c\u006f\u0072\u0073pa\u0063\u0065");};_cace =_ce .TraceToDirectObject (_abdff .Get (1));_ccdg ,_ddbe :=_cace .(*_ce .PdfObjectDictionary );if !_ddbe {return nil ,_c .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");};_cace =_ccdg .Get ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074");_cace =_ce .TraceToDirectObject (_cace );_bagb ,_ddbe :=_cace .(*_ce .PdfObjectArray );if !_ddbe {return nil ,_c .Errorf ("\u004c\u0061\u0062\u0020In\u0076\u0061\u006c\u0069\u0064\u0020\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069n\u0074");};if _bagb .Len ()!=3{return nil ,_c .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");};_dddb ,_eddgb :=_bagb .GetAsFloat64Slice ();if _eddgb !=nil {return nil ,_eddgb ;};_eeee .WhitePoint =_dddb ;_cace =_ccdg .Get ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074");if _cace !=nil {_cace =_ce .TraceToDirectObject (_cace );_gafd ,_fcdeg :=_cace .(*_ce .PdfObjectArray );if !_fcdeg {return nil ,_c .Errorf ("\u004c\u0061\u0062: \u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074");};if _gafd .Len ()!=3{return nil ,_c .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");};_fcgb ,_cbccb :=_gafd .GetAsFloat64Slice ();if _cbccb !=nil {return nil ,_cbccb ;};_eeee .BlackPoint =_fcgb ;};_cace =_ccdg .Get ("\u0052\u0061\u006eg\u0065");if _cace !=nil {_cace =_ce .TraceToDirectObject (_cace );_bfgb ,_facd :=_cace .(*_ce .PdfObjectArray );if !_facd {_ebg .Log .Error ("\u0052\u0061n\u0067\u0065\u0020t\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");return nil ,_c .Errorf ("\u004ca\u0062:\u0020\u0054\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _bfgb .Len ()!=4{_ebg .Log .Error ("\u0052\u0061\u006e\u0067\u0065\u0020\u0072\u0061\u006e\u0067\u0065\u0020e\u0072\u0072\u006f\u0072");return nil ,_c .Errorf ("\u004c\u0061b\u003a\u0020\u0052a\u006e\u0067\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};_cdeed ,_dgca :=_bfgb .GetAsFloat64Slice ();if _dgca !=nil {return nil ,_dgca ;};_eeee .Range =_cdeed ;};return _eeee ,nil ;};
// ToPdfObject returns the PDF representation of the colorspace.
func (_bffb *PdfColorspaceSpecialPattern )ToPdfObject ()_ce .PdfObject {if _bffb .UnderlyingCS ==nil {return _ce .MakeName ("\u0050a\u0074\u0074\u0065\u0072\u006e");};_ecded :=_ce .MakeArray (_ce .MakeName ("\u0050a\u0074\u0074\u0065\u0072\u006e"));_ecded .Append (_bffb .UnderlyingCS .ToPdfObject ());if _bffb ._edbdd !=nil {_bffb ._edbdd .PdfObject =_ecded ;return _bffb ._edbdd ;};return _ecded ;};
// 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 ;
// PdfAnnotation represents an annotation in PDF (section 12.5 p. 389).
type PdfAnnotation struct{_aff PdfModel ;Rect _ce .PdfObject ;Contents _ce .PdfObject ;P _ce .PdfObject ;NM _ce .PdfObject ;M _ce .PdfObject ;F _ce .PdfObject ;AP _ce .PdfObject ;AS _ce .PdfObject ;Border _ce .PdfObject ;C _ce .PdfObject ;StructParent _ce .PdfObject ;OC _ce .PdfObject ;_bda *_ce .PdfIndirectObject ;};func (_adbf *PdfReader )newPdfAnnotationFreeTextFromDict (_bbgb *_ce .PdfObjectDictionary )(*PdfAnnotationFreeText ,error ){_adgg :=PdfAnnotationFreeText {};_adcf ,_abea :=_adbf .newPdfAnnotationMarkupFromDict (_bbgb );if _abea !=nil {return nil ,_abea ;};_adgg .PdfAnnotationMarkup =_adcf ;_adgg .DA =_bbgb .Get ("\u0044\u0041");_adgg .Q =_bbgb .Get ("\u0051");_adgg .RC =_bbgb .Get ("\u0052\u0043");_adgg .DS =_bbgb .Get ("\u0044\u0053");_adgg .CL =_bbgb .Get ("\u0043\u004c");_adgg .IT =_bbgb .Get ("\u0049\u0054");_adgg .BE =_bbgb .Get ("\u0042\u0045");_adgg .RD =_bbgb .Get ("\u0052\u0044");_adgg .BS =_bbgb .Get ("\u0042\u0053");_adgg .LE =_bbgb .Get ("\u004c\u0045");return &_adgg ,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 (_fcgf *PdfColorspaceDeviceGray )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=1{return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_bege :=vals [0];if _bege < 0.0||_bege > 1.0{_ebg .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 _bege < 0.0{_bege =0.0;}else if _bege > 1.0{_bege =1.0;};return NewPdfColorDeviceGray (_bege ),nil ;};
// ColorToRGB converts an Indexed color to an RGB color.
func (_ggfe *PdfColorspaceSpecialIndexed )ColorToRGB (color PdfColor )(PdfColor ,error ){if _ggfe .Base ==nil {return nil ,_gd .New ("\u0069\u006e\u0064\u0065\u0078\u0065d\u0020\u0062\u0061\u0073\u0065\u0020\u0063\u006f\u006c\u006f\u0072\u0073\u0070a\u0063\u0065\u0020\u0075\u006e\u0064\u0065f\u0069\u006e\u0065\u0064");};return _ggfe .Base .ColorToRGB (color );};
// IsPush returns true if the button field represents a push button, false otherwise.
func (_eaeb *PdfFieldButton )IsPush ()bool {return _eaeb .GetType ()==ButtonTypePush };
// HasColorspaceByName checks if the colorspace with the specified name exists in the page resources.
func (_fbcbg *PdfPageResources )HasColorspaceByName (keyName _ce .PdfObjectName )bool {_aebc ,_fdabg :=_fbcbg .GetColorspaces ();if _fdabg !=nil {_ebg .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",_fdabg );return false ;};if _aebc ==nil {return false ;};_ ,_bbagg :=_aebc .Colorspaces [string (keyName )];return _bbagg ;};
// GetOutlineTree returns the outline tree.
func (_fffcb *PdfReader )GetOutlineTree ()*PdfOutlineTreeNode {return _fffcb ._feebe };
// NewPdfAcroForm returns a new PdfAcroForm with an intialized container (indirect object).
func NewPdfAcroForm ()*PdfAcroForm {return &PdfAcroForm {Fields :&[]*PdfField {},_adfcd :_ce .MakeIndirectObject (_ce .MakeDict ())};};
// ToPdfObject implements interface PdfModel.
func (_dace *PdfAnnotationFreeText )ToPdfObject ()_ce .PdfObject {_dace .PdfAnnotation .ToPdfObject ();_cebd :=_dace ._bda ;_fdbd :=_cebd .PdfObject .(*_ce .PdfObjectDictionary );_dace .PdfAnnotationMarkup .appendToPdfDictionary (_fdbd );_fdbd .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ce .MakeName ("\u0046\u0072\u0065\u0065\u0054\u0065\u0078\u0074"));_fdbd .SetIfNotNil ("\u0044\u0041",_dace .DA );_fdbd .SetIfNotNil ("\u0051",_dace .Q );_fdbd .SetIfNotNil ("\u0052\u0043",_dace .RC );_fdbd .SetIfNotNil ("\u0044\u0053",_dace .DS );_fdbd .SetIfNotNil ("\u0043\u004c",_dace .CL );_fdbd .SetIfNotNil ("\u0049\u0054",_dace .IT );_fdbd .SetIfNotNil ("\u0042\u0045",_dace .BE );_fdbd .SetIfNotNil ("\u0052\u0044",_dace .RD );_fdbd .SetIfNotNil ("\u0042\u0053",_dace .BS );_fdbd .SetIfNotNil ("\u004c\u0045",_dace .LE );return _cebd ;};func (_egeee *PdfReader )lookupPageByObject (_edge _ce .PdfObject )(*PdfPage ,error ){return nil ,_gd .New ("\u0070\u0061\u0067\u0065\u0020\u006e\u006f\u0074\u0020f\u006f\u0075\u006e\u0064");};func (_fgbg *PdfReader )newPdfActionResetFormFromDict (_egf *_ce .PdfObjectDictionary )(*PdfActionResetForm ,error ){return &PdfActionResetForm {Fields :_egf .Get ("\u0046\u0069\u0065\u006c\u0064\u0073"),Flags :_egf .Get ("\u0046\u006c\u0061g\u0073")},nil ;};
// SetXObjectFormByName adds the provided XObjectForm to the page resources.
// The added XObjectForm is identified by the specified name.
func (_bedc *PdfPageResources )SetXObjectFormByName (keyName _ce .PdfObjectName ,xform *XObjectForm )error {_aeaabf :=xform .ToPdfObject ().(*_ce .PdfObjectStream );_eggbd :=_bedc .SetXObjectByName (keyName ,_aeaabf );return _eggbd ;};
// AddWatermarkImage adds a watermark to the page.
func (_fabg *PdfPage )AddWatermarkImage (ximg *XObjectImage ,opt WatermarkImageOptions )error {_eadgb ,_dcff :=_fabg .GetMediaBox ();if _dcff !=nil {return _dcff ;};_bbfega :=_eadgb .Urx -_eadgb .Llx ;_eedebd :=_eadgb .Ury -_eadgb .Lly ;_gadb :=float64 (*ximg .Width );_fefda :=(float64 (_bbfega )-float64 (_gadb ))/2;if opt .FitToWidth {_gadb =_bbfega ;_fefda =0;};_edfdf :=_eedebd ;_gedfa :=float64 (0);if opt .PreserveAspectRatio {_edfdf =_gadb *float64 (*ximg .Height )/float64 (*ximg .Width );_gedfa =(_eedebd -_edfdf )/2;};if _fabg .Resources ==nil {_fabg .Resources =NewPdfPageResources ();};_caef :=0;_dcgff :=_ce .PdfObjectName (_c .Sprintf ("\u0049\u006d\u0077%\u0064",_caef ));for _fabg .Resources .HasXObjectByName (_dcgff ){_caef ++;_dcgff =_ce .PdfObjectName (_c .Sprintf ("\u0049\u006d\u0077%\u0064",_caef ));};_dcff =_fabg .AddImageResource (_dcgff ,ximg );if _dcff !=nil {return _dcff ;};_caef =0;_fdaeb :=_ce .PdfObjectName (_c .Sprintf ("\u0047\u0053\u0025\u0064",_caef ));for _fabg .HasExtGState (_fdaeb ){_caef ++;_fdaeb =_ce .PdfObjectName (_c .Sprintf ("\u0047\u0053\u0025\u0064",_caef ));};_ecgeg :=_ce .MakeDict ();_ecgeg .Set ("\u0042\u004d",_ce .MakeName ("\u004e\u006f\u0072\u006d\u0061\u006c"));_ecgeg .Set ("\u0043\u0041",_ce .MakeFloat (opt .Alpha ));_ecgeg .Set ("\u0063\u0061",_ce .MakeFloat (opt .Alpha ));_dcff =_fabg .AddExtGState (_fdaeb ,_ecgeg );if _dcff !=nil {return _dcff ;};_baafg :=_c .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",_fdaeb ,_gadb ,_edfdf ,_fefda ,_gedfa ,_dcgff );_fabg .AddContentStreamByString (_baafg );return nil ;};
// ColorFromFloats returns a new PdfColor based on the input slice of color
// components. The slice should contain three elements representing the
// A, B and C components of the color. The values of the elements should be
// between 0 and 1.
func (_bbgg *PdfColorspaceCalRGB )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=3{return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_acfd :=vals [0];if _acfd < 0.0||_acfd > 1.0{return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_eeed :=vals [1];if _eeed < 0.0||_eeed > 1.0{return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_eaaa :=vals [2];if _eaaa < 0.0||_eaaa > 1.0{return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_dcgbf :=NewPdfColorCalRGB (_acfd ,_eeed ,_eaaa );return _dcgbf ,nil ;};const (_fgae =0x00001;_cfgb =0x00002;_begeb =0x00004;_ffec =0x00008;_gadfa =0x00020;_cccc =0x00040;_dggb =0x10000;_dfff =0x20000;_ffeb =0x40000;);
// ToPdfObject converts rectangle to a PDF object.
func (_gbgd *PdfRectangle )ToPdfObject ()_ce .PdfObject {return _ce .MakeArray (_ce .MakeFloat (_gbgd .Llx ),_ce .MakeFloat (_gbgd .Lly ),_ce .MakeFloat (_gbgd .Urx ),_ce .MakeFloat (_gbgd .Ury ));};func (_dgfc *PdfAppender )addNewObject (_ebbc _ce .PdfObject ){if _ ,_aagc :=_dgfc ._adba [_ebbc ];!_aagc {_dgfc ._fadd =append (_dgfc ._fadd ,_ebbc );_dgfc ._adba [_ebbc ]=struct{}{};};};
// GetContainingPdfObject returns the containing object for the PdfField, i.e. an indirect object
// containing the field dictionary.
func (_eccad *PdfField )GetContainingPdfObject ()_ce .PdfObject {return _eccad ._gfeec };
// GetNumComponents returns the number of input color components, i.e. that are input to the tint transform.
func (_gdec *PdfColorspaceDeviceN )GetNumComponents ()int {return _gdec .ColorantNames .Len ()};
// ToPdfObject returns the PDF representation of the function.
func (_aabg *PdfFunctionType3 )ToPdfObject ()_ce .PdfObject {_aaeae :=_ce .MakeDict ();_aaeae .Set ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065",_ce .MakeInteger (3));_ffgb :=&_ce .PdfObjectArray {};for _ ,_eagc :=range _aabg .Domain {_ffgb .Append (_ce .MakeFloat (_eagc ));};_aaeae .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_ffgb );if _aabg .Range !=nil {_gecag :=&_ce .PdfObjectArray {};for _ ,_dfbfg :=range _aabg .Range {_gecag .Append (_ce .MakeFloat (_dfbfg ));};_aaeae .Set ("\u0052\u0061\u006eg\u0065",_gecag );};if _aabg .Functions !=nil {_bddgb :=&_ce .PdfObjectArray {};for _ ,_fecf :=range _aabg .Functions {_bddgb .Append (_fecf .ToPdfObject ());};_aaeae .Set ("\u0046u\u006e\u0063\u0074\u0069\u006f\u006es",_bddgb );};if _aabg .Bounds !=nil {_ebfea :=&_ce .PdfObjectArray {};for _ ,_dbfaa :=range _aabg .Bounds {_ebfea .Append (_ce .MakeFloat (_dbfaa ));};_aaeae .Set ("\u0042\u006f\u0075\u006e\u0064\u0073",_ebfea );};if _aabg .Encode !=nil {_ccgdf :=&_ce .PdfObjectArray {};for _ ,_eeba :=range _aabg .Encode {_ccgdf .Append (_ce .MakeFloat (_eeba ));};_aaeae .Set ("\u0045\u006e\u0063\u006f\u0064\u0065",_ccgdf );};if _aabg ._fbcbe !=nil {_aabg ._fbcbe .PdfObject =_aaeae ;return _aabg ._fbcbe ;};return _aaeae ;};func _eafb (_bfce _ce .PdfObject )(*PdfColorspaceDeviceN ,error ){_fegg :=NewPdfColorspaceDeviceN ();if _bcbb ,_cbace :=_bfce .(*_ce .PdfIndirectObject );_cbace {_fegg ._baceb =_bcbb ;};_bfce =_ce .TraceToDirectObject (_bfce );_geed ,_gbbad :=_bfce .(*_ce .PdfObjectArray );if !_gbbad {return nil ,_c .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 _geed .Len ()!=4&&_geed .Len ()!=5{return nil ,_c .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");};_bfce =_geed .Get (0);_geagg ,_gbbad :=_bfce .(*_ce .PdfObjectName );if !_gbbad {return nil ,_c .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 *_geagg !="\u0044e\u0076\u0069\u0063\u0065\u004e"{return nil ,_c .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");};_bfce =_geed .Get (1);_bfce =_ce .TraceToDirectObject (_bfce );_gcfc ,_gbbad :=_bfce .(*_ce .PdfObjectArray );if !_gbbad {return nil ,_c .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");};_fegg .ColorantNames =_gcfc ;_bfce =_geed .Get (2);_ccaf ,_ggdad :=NewPdfColorspaceFromPdfObject (_bfce );if _ggdad !=nil {return nil ,_ggdad ;};_fegg .AlternateSpace =_ccaf ;_ccfe ,_ggdad :=_edddda (_geed .Get (3));if _ggdad !=nil {return nil ,_ggdad ;};_fegg .TintTransform =_ccfe ;if _geed .Len ()==5{_ggea ,_fagb :=_fgfc (_geed .Get (4));if _fagb !=nil {return nil ,_fagb ;};_fegg .Attributes =_ggea ;};return _fegg ,nil ;};func (_cgbf *PdfFunctionType0 )processSamples ()error {_ccbef :=_ac .ResampleBytes (_cgbf ._abaa ,_cgbf .BitsPerSample );_cgbf ._aaccb =_ccbef ;return nil ;};func _fgaaf (_aacgfb *XObjectImage )error {if _aacgfb .SMask ==nil {return nil ;};_dgaeg ,_cgggd :=_aacgfb .SMask .(*_ce .PdfObjectStream );if !_cgggd {_ebg .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 _ce .ErrTypeError ;};_cefggc :=_dgaeg .PdfObjectDictionary ;_gcffaf :=_cefggc .Get ("\u004d\u0061\u0074t\u0065");if _gcffaf ==nil {return nil ;};_bbgeee ,_egacg :=_eeafc (_gcffaf .(*_ce .PdfObjectArray ));if _egacg !=nil {return _egacg ;};_bfcec :=_ce .MakeArrayFromFloats ([]float64 {_bbgeee });_cefggc .SetIfNotNil ("\u004d\u0061\u0074t\u0065",_bfcec );return nil ;};func (_accd *PdfReader )newPdfAnnotationSoundFromDict (_fgfe *_ce .PdfObjectDictionary )(*PdfAnnotationSound ,error ){_bcfb :=PdfAnnotationSound {};_afc ,_fbb :=_accd .newPdfAnnotationMarkupFromDict (_fgfe );if _fbb !=nil {return nil ,_fbb ;};_bcfb .PdfAnnotationMarkup =_afc ;_bcfb .Name =_fgfe .Get ("\u004e\u0061\u006d\u0065");_bcfb .Sound =_fgfe .Get ("\u0053\u006f\u0075n\u0064");return &_bcfb ,nil ;};
// ToPdfObject returns the PDF representation of the pattern.
func (_gfgge *PdfPattern )ToPdfObject ()_ce .PdfObject {_acgbg :=_gfgge .getDict ();_acgbg .Set ("\u0054\u0079\u0070\u0065",_ce .MakeName ("\u0050a\u0074\u0074\u0065\u0072\u006e"));_acgbg .Set ("P\u0061\u0074\u0074\u0065\u0072\u006e\u0054\u0079\u0070\u0065",_ce .MakeInteger (_gfgge .PatternType ));return _gfgge ._efabe ;};
// 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 ;_fdcac []byte ;_fdga bool ;_cddaa []float64 ;};
// ColorFromPdfObjects returns a new PdfColor based on the input slice of color
// component PDF objects.
func (_cgbb *PdfColorspaceICCBased )ColorFromPdfObjects (objects []_ce .PdfObject )(PdfColor ,error ){if _cgbb .Alternate ==nil {if _cgbb .N ==1{_ddfcg :=NewPdfColorspaceDeviceGray ();return _ddfcg .ColorFromPdfObjects (objects );}else if _cgbb .N ==3{_dgfb :=NewPdfColorspaceDeviceRGB ();return _dgfb .ColorFromPdfObjects (objects );}else if _cgbb .N ==4{_faaf :=NewPdfColorspaceDeviceCMYK ();return _faaf .ColorFromPdfObjects (objects );}else {return nil ,_gd .New ("I\u0043\u0043\u0020\u0042\u0061\u0073\u0065\u0064\u0020\u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063e\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u0061lt\u0065\u0072\u006ea\u0074i\u0076\u0065");};};return _cgbb .Alternate .ColorFromPdfObjects (objects );};
// GetMediaBox gets the inheritable media box value, either from the page
// or a higher up page/pages struct.
func (_agaag *PdfPage )GetMediaBox ()(*PdfRectangle ,error ){if _agaag .MediaBox !=nil {return _agaag .MediaBox ,nil ;};_faage :=_agaag .Parent ;for _faage !=nil {_beagb ,_dffb :=_ce .GetDict (_faage );if !_dffb {return nil ,_gd .New ("\u0069\u006e\u0076\u0061\u006c\u0069d\u0020\u0070\u0061\u0072\u0065\u006e\u0074\u0020\u006f\u0062\u006a\u0065\u0063t\u0073\u0020\u0064\u0069\u0063\u0074\u0069o\u006e\u0061\u0072\u0079");};if _ggdbc :=_beagb .Get ("\u004d\u0065\u0064\u0069\u0061\u0042\u006f\u0078");_ggdbc !=nil {_beabg ,_fegcad :=_ce .GetArray (_ggdbc );if !_fegcad {return nil ,_gd .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006d\u0065\u0064\u0069a\u0020\u0062\u006f\u0078");};_bcaab ,_efgbf :=NewPdfRectangle (*_beabg );if _efgbf !=nil {return nil ,_efgbf ;};return _bcaab ,nil ;};_faage =_beagb .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");};return nil ,_gd .New ("m\u0065\u0064\u0069\u0061 b\u006fx\u0020\u006e\u006f\u0074\u0020d\u0065\u0066\u0069\u006e\u0065\u0064");};
// BytesToCharcodes converts the bytes in a PDF string to character codes.
func (_eebg *PdfFont )BytesToCharcodes (data []byte )[]_cce .CharCode {_ebg .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 _ebfd ,_egbc :=_eebg ._decac .(*pdfFontType0 );_egbc &&_ebfd ._fgbdd !=nil {if _cede ,_bdfg :=_ebfd .bytesToCharcodes (data );_bdfg {return _cede ;};};_aage :=make ([]_cce .CharCode ,0,len (data )+len (data )%2);if _eebg .baseFields ().isCIDFont (){if len (data )==1{data =[]byte {0,data [0]};};if len (data )%2!=0{_ebg .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 _ccba :=0;_ccba < len (data );_ccba +=2{_dfef :=uint16 (data [_ccba ])<<8|uint16 (data [_ccba +1]);_aage =append (_aage ,_cce .CharCode (_dfef ));};}else {for _ ,_gcca :=range data {_aage =append (_aage ,_cce .CharCode (_gcca ));};};return _aage ;};
// GetContext returns the action context which contains the specific type-dependent context.
// The context represents the subaction.
func (_fc *PdfAction )GetContext ()PdfModel {if _fc ==nil {return nil ;};return _fc ._cga ;};
// NewOutlineBookmark returns an initialized PdfOutlineItem for a given bookmark title and page.
func NewOutlineBookmark (title string ,page *_ce .PdfIndirectObject )*PdfOutlineItem {_dgce :=PdfOutlineItem {};_dgce ._edggc =&_dgce ;_dgce .Title =_ce .MakeString (title );_cbgga :=_ce .MakeArray ();_cbgga .Append (page );_cbgga .Append (_ce .MakeName ("\u0046\u0069\u0074"));_dgce .Dest =_cbgga ;return &_dgce ;};
// PdfActionGoToR represents a GoToR action.
type PdfActionGoToR struct{*PdfAction ;F *PdfFilespec ;D _ce .PdfObject ;NewWindow _ce .PdfObject ;};
// 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 ;_fbcbe *_ce .PdfIndirectObject ;};func (_cdaef *PdfPage )setContainer (_bedfaa *_ce .PdfIndirectObject ){_bedfaa .PdfObject =_cdaef ._dfbdag ;_cdaef ._adcebd =_bedfaa ;};
// SetOptimizer sets the optimizer to optimize PDF before writing.
func (_faff *PdfWriter )SetOptimizer (optimizer Optimizer ){_faff ._dccdc =optimizer };
// DefaultImageHandler is the default implementation of the ImageHandler using the standard go library.
type DefaultImageHandler struct{};
// PdfAnnotationWatermark represents Watermark annotations.
// (Section 12.5.6.22).
type PdfAnnotationWatermark struct{*PdfAnnotation ;FixedPrint _ce .PdfObject ;};
// PdfAnnotationFreeText represents FreeText annotations.
// (Section 12.5.6.6).
type PdfAnnotationFreeText struct{*PdfAnnotation ;*PdfAnnotationMarkup ;DA _ce .PdfObject ;Q _ce .PdfObject ;RC _ce .PdfObject ;DS _ce .PdfObject ;CL _ce .PdfObject ;IT _ce .PdfObject ;BE _ce .PdfObject ;RD _ce .PdfObject ;BS _ce .PdfObject ;LE _ce .PdfObject ;};
// GetContext returns the annotation context which contains the specific type-dependent context.
// The context represents the subannotation.
func (_ede *PdfAnnotation )GetContext ()PdfModel {if _ede ==nil {return nil ;};return _ede ._aff ;};
// ColorFromPdfObjects returns a new PdfColor based on the input slice of color
// components. The slice should contain a single PdfObjectFloat element.
func (_eedc *PdfColorspaceSpecialIndexed )ColorFromPdfObjects (objects []_ce .PdfObject )(PdfColor ,error ){if len (objects )!=1{return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_faaa ,_bacd :=_ce .GetNumbersAsFloat (objects );if _bacd !=nil {return nil ,_bacd ;};return _eedc .ColorFromFloats (_faaa );};
// GetCapHeight returns the CapHeight of the font `descriptor`.
func (_cebe *PdfFontDescriptor )GetCapHeight ()(float64 ,error ){return _ce .GetNumberAsFloat (_cebe .CapHeight );};const (BorderEffectNoEffect BorderEffect =iota ;BorderEffectCloudy BorderEffect =iota ;);
// 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 (_cefbb *Image )ConvertToBinary ()error {if _cefbb .ColorComponents ==1&&_cefbb .BitsPerComponent ==1{return nil ;};_aebdgb ,_gbbf :=_cefbb .ToGoImage ();if _gbbf !=nil {return _gbbf ;};_gbeeg ,_gbbf :=_age .MonochromeConverter .Convert (_aebdgb );if _gbbf !=nil {return _gbbf ;};_cefbb .BitsPerComponent =1;_cefbb .ColorComponents =1;_cefbb .Data =_gbeeg .Base ().Data ;return nil ;};
// ToPdfObject implements interface PdfModel.
func (_dgae *PdfAnnotationSound )ToPdfObject ()_ce .PdfObject {_dgae .PdfAnnotation .ToPdfObject ();_edddd :=_dgae ._bda ;_cgd :=_edddd .PdfObject .(*_ce .PdfObjectDictionary );_dgae .PdfAnnotationMarkup .appendToPdfDictionary (_cgd );_cgd .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ce .MakeName ("\u0053\u006f\u0075n\u0064"));_cgd .SetIfNotNil ("\u0053\u006f\u0075n\u0064",_dgae .Sound );_cgd .SetIfNotNil ("\u004e\u0061\u006d\u0065",_dgae .Name );return _edddd ;};func (_afdb *PdfReader )newPdfAnnotationTrapNetFromDict (_dacbd *_ce .PdfObjectDictionary )(*PdfAnnotationTrapNet ,error ){_cdcb :=PdfAnnotationTrapNet {};return &_cdcb ,nil ;};
// NewPdfAnnotationInk returns a new ink annotation.
func NewPdfAnnotationInk ()*PdfAnnotationInk {_dgf :=NewPdfAnnotation ();_eagg :=&PdfAnnotationInk {};_eagg .PdfAnnotation =_dgf ;_eagg .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_dgf .SetContext (_eagg );return _eagg ;};
// ToPdfObject converts the pdfFontSimple to its PDF representation for outputting.
func (_cgefa *pdfFontSimple )ToPdfObject ()_ce .PdfObject {if _cgefa ._dagd ==nil {_cgefa ._dagd =&_ce .PdfIndirectObject {};};_afcb :=_cgefa .baseFields ().asPdfObjectDictionary ("");_cgefa ._dagd .PdfObject =_afcb ;if _cgefa .FirstChar !=nil {_afcb .Set ("\u0046i\u0072\u0073\u0074\u0043\u0068\u0061r",_cgefa .FirstChar );};if _cgefa .LastChar !=nil {_afcb .Set ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072",_cgefa .LastChar );};if _cgefa .Widths !=nil {_afcb .Set ("\u0057\u0069\u0064\u0074\u0068\u0073",_cgefa .Widths );};if _cgefa .Encoding !=nil {_afcb .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_cgefa .Encoding );}else if _cgefa ._bged !=nil {_gegb :=_cgefa ._bged .ToPdfObject ();if _gegb !=nil {_afcb .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_gegb );};};return _cgefa ._dagd ;};
// GetFontDescriptor returns the font descriptor for `font`.
func (_ffcf PdfFont )GetFontDescriptor ()(*PdfFontDescriptor ,error ){return _ffcf ._decac .getFontDescriptor (),nil ;};
// GetOutlines returns a high-level Outline object, based on the outline tree
// of the reader.
func (_dgbfff *PdfReader )GetOutlines ()(*Outline ,error ){if _dgbfff ==nil {return nil ,_gd .New ("\u0063\u0061n\u006e\u006f\u0074\u0020c\u0072\u0065a\u0074\u0065\u0020\u006f\u0075\u0074\u006c\u0069n\u0065\u0020\u0066\u0072\u006f\u006d\u0020\u006e\u0069\u006c\u0020\u0072e\u0061\u0064\u0065\u0072");};_ecffd :=_dgbfff .GetOutlineTree ();if _ecffd ==nil {return nil ,_gd .New ("\u0074\u0068\u0065\u0020\u0073\u0070\u0065\u0063\u0069\u0066\u0069\u0065\u0064\u0020\u0072\u0065\u0061\u0064e\u0072\u0020\u0064\u006f\u0065\u0073\u0020n\u006f\u0074\u0020\u0068\u0061\u0076\u0065\u0020\u0061\u006e\u0020o\u0075\u0074\u006c\u0069\u006e\u0065\u0020\u0074\u0072\u0065\u0065");};var _ebgaa func (_efbb *PdfOutlineTreeNode ,_baecc *[]*OutlineItem );_ebgaa =func (_dabeg *PdfOutlineTreeNode ,_bfad *[]*OutlineItem ){if _dabeg ==nil {return ;};if _dabeg ._edggc ==nil {_ebg .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 _bcbg *OutlineItem ;if _bcgac ,_ccbf :=_dabeg ._edggc .(*PdfOutlineItem );_ccbf {_gdecb :=_bcgac .Dest ;if (_gdecb ==nil ||_ce .IsNullObject (_gdecb ))&&_bcgac .A !=nil {if _fddfba ,_cdfc :=_ce .GetDict (_bcgac .A );_cdfc {_gdecb ,_ =_ce .GetArray (_fddfba .Get ("\u0044"));};};var _dfcdc OutlineDest ;if _gdecb !=nil &&!_ce .IsNullObject (_gdecb ){if _gfabe ,_dfffe :=_fegcd (_gdecb ,_dgbfff );_dfffe ==nil {_dfcdc =*_gfabe ;}else {_ebg .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",_gdecb ,_dfffe );};};_bcbg =NewOutlineItem (_bcgac .Title .Decoded (),_dfcdc );*_bfad =append (*_bfad ,_bcbg );if _bcgac .Next !=nil {_ebgaa (_bcgac .Next ,_bfad );};};if _dabeg .First !=nil {if _bcbg !=nil {_bfad =&_bcbg .Entries ;};_ebgaa (_dabeg .First ,_bfad );};};_aabd :=NewOutline ();_ebgaa (_ecffd ,&_aabd .Entries );return _aabd ,nil ;};
// ToPdfObject implements interface PdfModel.
func (_cfe *PdfAnnotationRichMedia )ToPdfObject ()_ce .PdfObject {_cfe .PdfAnnotation .ToPdfObject ();_gade :=_cfe ._bda ;_ddbff :=_gade .PdfObject .(*_ce .PdfObjectDictionary );_ddbff .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ce .MakeName ("\u0052i\u0063\u0068\u004d\u0065\u0064\u0069a"));_ddbff .SetIfNotNil ("\u0052\u0069\u0063\u0068\u004d\u0065\u0064\u0069\u0061\u0053\u0065\u0074t\u0069\u006e\u0067\u0073",_cfe .RichMediaSettings );_ddbff .SetIfNotNil ("\u0052\u0069c\u0068\u004d\u0065d\u0069\u0061\u0043\u006f\u006e\u0074\u0065\u006e\u0074",_cfe .RichMediaContent );return _gade ;};var _gedg ="";func _gbfga (_bgccd *_ce .PdfObjectDictionary )(*PdfShadingType2 ,error ){_ddcc :=PdfShadingType2 {};_ggcb :=_bgccd .Get ("\u0043\u006f\u006f\u0072\u0064\u0073");if _ggcb ==nil {_ebg .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 ;};_ffea ,_bgfbg :=_ggcb .(*_ce .PdfObjectArray );if !_bgfbg {_ebg .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",_ggcb );return nil ,_gd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};if _ffea .Len ()!=4{_ebg .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",_ffea .Len ());return nil ,_gd .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0061\u0074\u0074\u0072i\u0062\u0075\u0074\u0065");};_ddcc .Coords =_ffea ;if _cacdb :=_bgccd .Get ("\u0044\u006f\u006d\u0061\u0069\u006e");_cacdb !=nil {_cacdb =_ce .TraceToDirectObject (_cacdb );_gceag ,_adfb :=_cacdb .(*_ce .PdfObjectArray );if !_adfb {_ebg .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",_cacdb );return nil ,_gd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_ddcc .Domain =_gceag ;};_ggcb =_bgccd .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");if _ggcb ==nil {_ebg .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 ;};_ddcc .Function =[]PdfFunction {};if _aabe ,_agbfe :=_ggcb .(*_ce .PdfObjectArray );_agbfe {for _ ,_egda :=range _aabe .Elements (){_fbafb ,_cafee :=_edddda (_egda );if _cafee !=nil {_ebg .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",_cafee );return nil ,_cafee ;};_ddcc .Function =append (_ddcc .Function ,_fbafb );};}else {_bbbfcb ,_decbe :=_edddda (_ggcb );if _decbe !=nil {_ebg .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",_decbe );return nil ,_decbe ;};_ddcc .Function =append (_ddcc .Function ,_bbbfcb );};if _egbbbe :=_bgccd .Get ("\u0045\u0078\u0074\u0065\u006e\u0064");_egbbbe !=nil {_egbbbe =_ce .TraceToDirectObject (_egbbbe );_dbddf ,_eeccd :=_egbbbe .(*_ce .PdfObjectArray );if !_eeccd {_ebg .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",_egbbbe );return nil ,_ce .ErrTypeError ;};if _dbddf .Len ()!=2{_ebg .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",_dbddf .Len ());return nil ,ErrInvalidAttribute ;};_ddcc .Extend =_dbddf ;};return &_ddcc ,nil ;};
// PdfActionGoTo3DView represents a GoTo3DView action.
type PdfActionGoTo3DView struct{*PdfAction ;TA _ce .PdfObject ;V _ce .PdfObject ;};
// 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 (_gcef *PdfColorspaceLab )ColorFromPdfObjects (objects []_ce .PdfObject )(PdfColor ,error ){if len (objects )!=3{return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_cafda ,_beeg :=_ce .GetNumbersAsFloat (objects );if _beeg !=nil {return nil ,_beeg ;};return _gcef .ColorFromFloats (_cafda );};
// ToPdfObject implements interface PdfModel.
func (_gbeb *PdfAnnotationWatermark )ToPdfObject ()_ce .PdfObject {_gbeb .PdfAnnotation .ToPdfObject ();_fbad :=_gbeb ._bda ;_abdf :=_fbad .PdfObject .(*_ce .PdfObjectDictionary );_abdf .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ce .MakeName ("\u0057a\u0074\u0065\u0072\u006d\u0061\u0072k"));_abdf .SetIfNotNil ("\u0046\u0069\u0078\u0065\u0064\u0050\u0072\u0069\u006e\u0074",_gbeb .FixedPrint );return _fbad ;};
// PdfShadingType2 is an Axial shading.
type PdfShadingType2 struct{*PdfShading ;Coords *_ce .PdfObjectArray ;Domain *_ce .PdfObjectArray ;Function []PdfFunction ;Extend *_ce .PdfObjectArray ;};
// PdfBorderStyle represents a border style dictionary (12.5.4 Border Styles p. 394).
type PdfBorderStyle struct{W *float64 ;S *BorderStyle ;D *[]int ;_febe _ce .PdfObject ;};
// Encoder returns the font's text encoder.
func (_gadcb pdfFontType0 )Encoder ()_cce .TextEncoder {return _gadcb ._gedcf };
// PdfFunction interface represents the common methods of a function in PDF.
type PdfFunction interface{Evaluate ([]float64 )([]float64 ,error );ToPdfObject ()_ce .PdfObject ;};type pdfCIDFontType0 struct{fontCommon ;_ccge *_ce .PdfIndirectObject ;_gdac _cce .TextEncoder ;
// Table 117 Entries in a CIDFont dictionary (page 269)
// (Required) Dictionary that defines the character collection of the CIDFont.
// See Table 116.
CIDSystemInfo *_ce .PdfObjectDictionary ;
// Glyph metrics fields (optional).
DW _ce .PdfObject ;W _ce .PdfObject ;DW2 _ce .PdfObject ;W2 _ce .PdfObject ;_fcfd map[_cce .CharCode ]float64 ;_ccff float64 ;};func _fcgde (_fagf *_ce .PdfObjectDictionary ,_afdg *fontCommon )(*pdfCIDFontType2 ,error ){if _afdg ._dbbag !="\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032"{_ebg .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",_afdg );return nil ,_ce .ErrRangeError ;};_eedeb :=_edbbd (_afdg );_eafg ,_baaeb :=_ce .GetDict (_fagf .Get ("\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f"));if !_baaeb {_ebg .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",_afdg );return nil ,ErrRequiredAttributeMissing ;};_eedeb .CIDSystemInfo =_eafg ;_eedeb .DW =_fagf .Get ("\u0044\u0057");_eedeb .W =_fagf .Get ("\u0057");_eedeb .DW2 =_fagf .Get ("\u0044\u0057\u0032");_eedeb .W2 =_fagf .Get ("\u0057\u0032");_eedeb .CIDToGIDMap =_fagf .Get ("C\u0049\u0044\u0054\u006f\u0047\u0049\u0044\u004d\u0061\u0070");_eedeb ._badc =1000.0;if _fefg ,_eadd :=_ce .GetNumberAsFloat (_eedeb .DW );_eadd ==nil {_eedeb ._badc =_fefg ;};_fcccf ,_abdebd :=_ebba (_eedeb .W );if _abdebd !=nil {return nil ,_abdebd ;};if _fcccf ==nil {_fcccf =map[_cce .CharCode ]float64 {};};_eedeb ._ggaa =_fcccf ;return _eedeb ,nil ;};
// ToPdfObject implements interface PdfModel.
func (_ggd *PdfActionLaunch )ToPdfObject ()_ce .PdfObject {_ggd .PdfAction .ToPdfObject ();_da :=_ggd ._bdf ;_daa :=_da .PdfObject .(*_ce .PdfObjectDictionary );_daa .SetIfNotNil ("\u0053",_ce .MakeName (string (ActionTypeLaunch )));if _ggd .F !=nil {_daa .Set ("\u0046",_ggd .F .ToPdfObject ());};_daa .SetIfNotNil ("\u0057\u0069\u006e",_ggd .Win );_daa .SetIfNotNil ("\u004d\u0061\u0063",_ggd .Mac );_daa .SetIfNotNil ("\u0055\u006e\u0069\u0078",_ggd .Unix );_daa .SetIfNotNil ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw",_ggd .NewWindow );return _da ;};func _fgfg (_addd _cc .StdFont )pdfFontSimple {_adab :=_addd .Descriptor ();return pdfFontSimple {fontCommon :fontCommon {_dbbag :"\u0054\u0079\u0070e\u0031",_agcagf :_addd .Name ()},_eegg :_addd .GetMetricsTable (),_cdgc :&PdfFontDescriptor {FontName :_ce .MakeName (string (_adab .Name )),FontFamily :_ce .MakeName (_adab .Family ),FontWeight :_ce .MakeFloat (float64 (_adab .Weight )),Flags :_ce .MakeInteger (int64 (_adab .Flags )),FontBBox :_ce .MakeArrayFromFloats (_adab .BBox [:]),ItalicAngle :_ce .MakeFloat (_adab .ItalicAngle ),Ascent :_ce .MakeFloat (_adab .Ascent ),Descent :_ce .MakeFloat (_adab .Descent ),CapHeight :_ce .MakeFloat (_adab .CapHeight ),XHeight :_ce .MakeFloat (_adab .XHeight ),StemV :_ce .MakeFloat (_adab .StemV ),StemH :_ce .MakeFloat (_adab .StemH )},_edbbe :_addd .Encoder ()};};func _abab ()string {_cffbb :="\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 _aggef _f .Buffer ;for _fgeb :=0;_fgeb < 6;_fgeb ++{_aggef .WriteRune (rune (_cffbb [_dg .Intn (len (_cffbb ))]));};return _aggef .String ();};
// 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 (_ggfc *XObjectForm )SetContentStream (content []byte ,encoder _ce .StreamEncoder )error {_debbbe :=content ;if encoder ==nil {if _ggfc .Filter !=nil {encoder =_ggfc .Filter ;}else {encoder =_ce .NewRawEncoder ();};};_cbeag ,_aead :=encoder .EncodeBytes (_debbbe );if _aead !=nil {return _aead ;};_debbbe =_cbeag ;_ggfc .Stream =_debbbe ;_ggfc .Filter =encoder ;return nil ;};func _dfgaf (_fegbg _ce .PdfObject )(*PdfPattern ,error ){_bgacb :=&PdfPattern {};var _bdbed *_ce .PdfObjectDictionary ;if _eceag ,_bdecg :=_ce .GetIndirect (_fegbg );_bdecg {_bgacb ._efabe =_eceag ;_dfeg ,_aacdf :=_eceag .PdfObject .(*_ce .PdfObjectDictionary );if !_aacdf {_ebg .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",_eceag .PdfObject );return nil ,_ce .ErrTypeError ;};_bdbed =_dfeg ;}else if _ggab ,_bbagc :=_ce .GetStream (_fegbg );_bbagc {_bgacb ._efabe =_ggab ;_bdbed =_ggab .PdfObjectDictionary ;}else {_ebg .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",_fegbg );return nil ,_ce .ErrTypeError ;};_gggcf :=_bdbed .Get ("P\u0061\u0074\u0074\u0065\u0072\u006e\u0054\u0079\u0070\u0065");if _gggcf ==nil {_ebg .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 ;};_dbeaf ,_deabb :=_gggcf .(*_ce .PdfObjectInteger );if !_deabb {_ebg .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",_gggcf );return nil ,_ce .ErrTypeError ;};if *_dbeaf !=1&&*_dbeaf !=2{_ebg .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",*_dbeaf );return nil ,_ce .ErrRangeError ;};_bgacb .PatternType =int64 (*_dbeaf );switch *_dbeaf {case 1:_dcgc ,_ddfcc :=_cadgg (_bdbed );if _ddfcc !=nil {return nil ,_ddfcc ;};_dcgc .PdfPattern =_bgacb ;_bgacb ._gdge =_dcgc ;return _bgacb ,nil ;case 2:_fbfac ,_cbega :=_dbbge (_bdbed );if _cbega !=nil {return nil ,_cbega ;};_fbfac .PdfPattern =_bgacb ;_bgacb ._gdge =_fbfac ;return _bgacb ,nil ;};return nil ,_gd .New ("\u0075n\u006bn\u006f\u0077\u006e\u0020\u0070\u0061\u0074\u0074\u0065\u0072\u006e");};func _dcebc (_ffece *_ce .PdfObjectDictionary ,_fede *fontCommon )(*pdfCIDFontType0 ,error ){if _fede ._dbbag !="\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0030"{_ebg .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",_fede );return nil ,_ce .ErrRangeError ;};_bebf :=_cfabg (_fede );_cgda ,_cgca :=_ce .GetDict (_ffece .Get ("\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f"));if !_cgca {_ebg .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",_fede );return nil ,ErrRequiredAttributeMissing ;};_bebf .CIDSystemInfo =_cgda ;_bebf .DW =_ffece .Get ("\u0044\u0057");_bebf .W =_ffece .Get ("\u0057");_bebf .DW2 =_ffece .Get ("\u0044\u0057\u0032");_bebf .W2 =_ffece .Get ("\u0057\u0032");_bebf ._ccff =1000.0;if _bfdf ,_gcffg :=_ce .GetNumberAsFloat (_bebf .DW );_gcffg ==nil {_bebf ._ccff =_bfdf ;};_eaee ,_cecbg :=_ebba (_bebf .W );if _cecbg !=nil {return nil ,_cecbg ;};if _eaee ==nil {_eaee =map[_cce .CharCode ]float64 {};};_bebf ._fcfd =_eaee ;return _bebf ,nil ;};
// XObjectForm (Table 95 in 8.10.2).
type XObjectForm struct{Filter _ce .StreamEncoder ;FormType _ce .PdfObject ;BBox _ce .PdfObject ;Matrix _ce .PdfObject ;Resources *PdfPageResources ;Group _ce .PdfObject ;Ref _ce .PdfObject ;MetaData _ce .PdfObject ;PieceInfo _ce .PdfObject ;LastModified _ce .PdfObject ;StructParent _ce .PdfObject ;StructParents _ce .PdfObject ;OPI _ce .PdfObject ;OC _ce .PdfObject ;Name _ce .PdfObject ;
// Stream data.
Stream []byte ;_gcaa *_ce .PdfObjectStream ;};
// ToPdfObject converts the pdfCIDFontType2 to a PDF representation.
func (_bafa *pdfCIDFontType2 )ToPdfObject ()_ce .PdfObject {if _bafa ._adbec ==nil {_bafa ._adbec =&_ce .PdfIndirectObject {};};_gbee :=_bafa .baseFields ().asPdfObjectDictionary ("\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032");_bafa ._adbec .PdfObject =_gbee ;if _bafa .CIDSystemInfo !=nil {_gbee .Set ("\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f",_bafa .CIDSystemInfo );};if _bafa .DW !=nil {_gbee .Set ("\u0044\u0057",_bafa .DW );};if _bafa .DW2 !=nil {_gbee .Set ("\u0044\u0057\u0032",_bafa .DW2 );};if _bafa .W !=nil {_gbee .Set ("\u0057",_bafa .W );};if _bafa .W2 !=nil {_gbee .Set ("\u0057\u0032",_bafa .W2 );};if _bafa .CIDToGIDMap !=nil {_gbee .Set ("C\u0049\u0044\u0054\u006f\u0047\u0049\u0044\u004d\u0061\u0070",_bafa .CIDToGIDMap );};return _bafa ._adbec ;};
// PdfAnnotationPrinterMark represents PrinterMark annotations.
// (Section 12.5.6.20).
type PdfAnnotationPrinterMark struct{*PdfAnnotation ;MN _ce .PdfObject ;};
// NewPdfActionGoToR returns a new "go to remote" action.
func NewPdfActionGoToR ()*PdfActionGoToR {_gf :=NewPdfAction ();_abc :=&PdfActionGoToR {};_abc .PdfAction =_gf ;_gf .SetContext (_abc );return _abc ;};func (_acef *PdfReader )traverseObjectData (_eaega _ce .PdfObject )error {return _ce .ResolveReferencesDeep (_eaega ,_acef ._acfdf );};func (_fafba *PdfReader )loadOutlines ()(*PdfOutlineTreeNode ,error ){if _fafba ._dbfe .GetCrypter ()!=nil &&!_fafba ._dbfe .IsAuthenticated (){return nil ,_c .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");};_aabga :=_fafba ._gaadd ;_ggcff :=_aabga .Get ("\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0073");if _ggcff ==nil {return nil ,nil ;};_ebg .Log .Trace ("\u002d\u0048\u0061\u0073\u0020\u006f\u0075\u0074\u006c\u0069\u006e\u0065\u0073");_edggb :=_ce .ResolveReference (_ggcff );_ebg .Log .Trace ("\u004f\u0075t\u006c\u0069\u006ee\u0020\u0072\u006f\u006f\u0074\u003a\u0020\u0025\u0076",_edggb );if _cfbbgg :=_ce .IsNullObject (_edggb );_cfbbgg {_ebg .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 ;};_debdd ,_cded :=_edggb .(*_ce .PdfIndirectObject );if !_cded {if _ ,_afffc :=_ce .GetDict (_edggb );!_afffc {_ebg .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 ;};_ebg .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");_debdd =_ce .MakeIndirectObject (_edggb );};_bgedbd ,_cded :=_debdd .PdfObject .(*_ce .PdfObjectDictionary );if !_cded {return nil ,_gd .New ("\u006f\u0075\u0074\u006c\u0069n\u0065\u0020\u0069\u006e\u0064\u0069\u0072\u0065\u0063\u0074\u0020\u006f\u0062j\u0065\u0063\u0074\u0020\u0073\u0068\u006f\u0075\u006c\u0064\u0020\u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0020\u0061\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072y");};_ebg .Log .Trace ("O\u0075\u0074\u006c\u0069ne\u0020r\u006f\u006f\u0074\u0020\u0064i\u0063\u0074\u003a\u0020\u0025\u0076",_bgedbd );_babac ,_ ,_aagb :=_fafba .buildOutlineTree (_debdd ,nil ,nil ,nil );if _aagb !=nil {return nil ,_aagb ;};_ebg .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",_babac );return _babac ,nil ;};
// PdfActionMovie represents a movie action.
type PdfActionMovie struct{*PdfAction ;Annotation _ce .PdfObject ;T _ce .PdfObject ;Operation _ce .PdfObject ;};func (_aggc *PdfColorspaceCalRGB )String ()string {return "\u0043\u0061\u006c\u0052\u0047\u0042"};
// NewPdfAnnotationTrapNet returns a new trapnet annotation.
func NewPdfAnnotationTrapNet ()*PdfAnnotationTrapNet {_fbc :=NewPdfAnnotation ();_ebfg :=&PdfAnnotationTrapNet {};_ebfg .PdfAnnotation =_fbc ;_fbc .SetContext (_ebfg );return _ebfg ;};
// ToPdfObject implements interface PdfModel.
func (_ddf *PdfActionHide )ToPdfObject ()_ce .PdfObject {_ddf .PdfAction .ToPdfObject ();_cbgd :=_ddf ._bdf ;_dga :=_cbgd .PdfObject .(*_ce .PdfObjectDictionary );_dga .SetIfNotNil ("\u0053",_ce .MakeName (string (ActionTypeHide )));_dga .SetIfNotNil ("\u0054",_ddf .T );_dga .SetIfNotNil ("\u0048",_ddf .H );return _cbgd ;};func (_afec *PdfWriter )updateObjectNumbers (){_fdfdb :=_afec .ObjNumOffset ;_ceabb :=0;for _ ,_eacga :=range _afec ._agacd {_caac :=int64 (_ceabb +1+_fdfdb );_eeca :=true ;if _afec ._cfgfc {if _ffag ,_gbbg :=_afec ._dfgaa [_eacga ];_gbbg {_caac =_ffag ;_eeca =false ;};};switch _ebccc :=_eacga .(type ){case *_ce .PdfIndirectObject :_ebccc .ObjectNumber =_caac ;_ebccc .GenerationNumber =0;case *_ce .PdfObjectStream :_ebccc .ObjectNumber =_caac ;_ebccc .GenerationNumber =0;case *_ce .PdfObjectStreams :_ebccc .ObjectNumber =_caac ;_ebccc .GenerationNumber =0;default:_ebg .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",_ebccc );continue ;};if _eeca {_ceabb ++;};};_dfdeg :=func (_accbg _ce .PdfObject )int64 {switch _egdbaa :=_accbg .(type ){case *_ce .PdfIndirectObject :return _egdbaa .ObjectNumber ;case *_ce .PdfObjectStream :return _egdbaa .ObjectNumber ;case *_ce .PdfObjectStreams :return _egdbaa .ObjectNumber ;};return 0;};_ba .SliceStable (_afec ._agacd ,func (_deaga ,_aagge int )bool {return _dfdeg (_afec ._agacd [_deaga ])< _dfdeg (_afec ._agacd [_aagge ])});};
// DecodeArray returns the component range values for the Separation colorspace.
func (_ggbg *PdfColorspaceSpecialSeparation )DecodeArray ()[]float64 {return []float64 {0,1.0}};func _gbdab (_fdcd *PdfPage )map[_ce .PdfObjectName ]_ce .PdfObject {_dcdb :=make (map[_ce .PdfObjectName ]_ce .PdfObject );if _fdcd .Resources ==nil {return _dcdb ;};if _fdcd .Resources .Font !=nil {if _ecfd ,_afbe :=_ce .GetDict (_fdcd .Resources .Font );_afbe {for _ ,_ffe :=range _ecfd .Keys (){_dcdb [_ffe ]=_ecfd .Get (_ffe );};};};if _fdcd .Resources .ExtGState !=nil {if _cced ,_fgba :=_ce .GetDict (_fdcd .Resources .ExtGState );_fgba {for _ ,_eged :=range _cced .Keys (){_dcdb [_eged ]=_cced .Get (_eged );};};};if _fdcd .Resources .XObject !=nil {if _bgcb ,_aaec :=_ce .GetDict (_fdcd .Resources .XObject );_aaec {for _ ,_dfge :=range _bgcb .Keys (){_dcdb [_dfge ]=_bgcb .Get (_dfge );};};};if _fdcd .Resources .Pattern !=nil {if _gfgfd ,_fcff :=_ce .GetDict (_fdcd .Resources .Pattern );_fcff {for _ ,_bgcbc :=range _gfgfd .Keys (){_dcdb [_bgcbc ]=_gfgfd .Get (_bgcbc );};};};if _fdcd .Resources .Shading !=nil {if _bbdf ,_eeae :=_ce .GetDict (_fdcd .Resources .Shading );_eeae {for _ ,_afcd :=range _bbdf .Keys (){_dcdb [_afcd ]=_bbdf .Get (_afcd );};};};if _fdcd .Resources .ProcSet !=nil {if _deea ,_ddgg :=_ce .GetDict (_fdcd .Resources .ProcSet );_ddgg {for _ ,_ffa :=range _deea .Keys (){_dcdb [_ffa ]=_deea .Get (_ffa );};};};if _fdcd .Resources .Properties !=nil {if _agge ,_cadc :=_ce .GetDict (_fdcd .Resources .Properties );_cadc {for _ ,_cff :=range _agge .Keys (){_dcdb [_cff ]=_agge .Get (_cff );};};};return _dcdb ;};
// 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 {_fbfd ,_gedd :=NewStandard14Font (basefont );if _gedd !=nil {panic (_c .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 _fbfd ;};
// Decrypt decrypts the PDF file with a specified password. Also tries to
// decrypt with an empty password. Returns true if successful,
// false otherwise.
func (_daaef *PdfReader )Decrypt (password []byte )(bool ,error ){_cbecd ,_fffb :=_daaef ._dbfe .Decrypt (password );if _fffb !=nil {return false ,_fffb ;};if !_cbecd {return false ,nil ;};_fffb =_daaef .loadStructure ();if _fffb !=nil {_ebg .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",_fffb );return false ,_fffb ;};return true ,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 (_eccfa *PdfFont )SubsetRegistered ()error {switch _bggfc :=_eccfa ._decac .(type ){case *pdfFontType0 :_fcbcb :=_bggfc .subsetRegistered ();if _fcbcb !=nil {_ebg .Log .Debug ("\u0053\u0075b\u0073\u0065\u0074 \u0065\u0072\u0072\u006f\u0072\u003a\u0020\u0025\u0076",_fcbcb );return _fcbcb ;};if _bggfc ._caga !=nil {if _bggfc ._gedcf !=nil {_bggfc ._gedcf .ToPdfObject ();};_bggfc .ToPdfObject ();};default:_ebg .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",_bggfc );};return nil ;};
// NewPdfAnnotationProjection returns a new projection annotation.
func NewPdfAnnotationProjection ()*PdfAnnotationProjection {_bgc :=NewPdfAnnotation ();_abdc :=&PdfAnnotationProjection {};_abdc .PdfAnnotation =_bgc ;_abdc .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_bgc .SetContext (_abdc );return _abdc ;};
// DecodeArray returns the component range values for the Indexed colorspace.
func (_dbfg *PdfColorspaceSpecialIndexed )DecodeArray ()[]float64 {return []float64 {0,float64 (_dbfg .HiVal )};};func (_abca *PdfReader )loadAnnotations (_fafef _ce .PdfObject )([]*PdfAnnotation ,error ){_gefd ,_adgec :=_ce .GetArray (_fafef );if !_adgec {return nil ,_c .Errorf ("\u0041\u006e\u006e\u006fts\u0020\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0061\u0072\u0072\u0061\u0079");};var _gbeeeg []*PdfAnnotation ;for _ ,_aggab :=range _gefd .Elements (){_aggab =_ce .ResolveReference (_aggab );if _ ,_bgadba :=_aggab .(*_ce .PdfObjectNull );_bgadba {continue ;};_beff ,_gfddg :=_aggab .(*_ce .PdfObjectDictionary );_bdcd ,_cgcdf :=_aggab .(*_ce .PdfIndirectObject );if _gfddg {_bdcd =&_ce .PdfIndirectObject {};_bdcd .PdfObject =_beff ;}else {if !_cgcdf {return nil ,_c .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");};};_bfeae ,_dcgda :=_abca .newPdfAnnotationFromIndirectObject (_bdcd );if _dcgda !=nil {return nil ,_dcgda ;};switch _daae :=_bfeae .GetContext ().(type ){case *PdfAnnotationWidget :for _ ,_ceac :=range _abca .AcroForm .AllFields (){if _ceac ._gfeec ==_daae .Parent {_daae ._dgg =_ceac ;break ;};};};if _bfeae !=nil {_gbeeeg =append (_gbeeeg ,_bfeae );};};return _gbeeeg ,nil ;};
// GetAscent returns the Ascent of the font `descriptor`.
func (_gbegc *PdfFontDescriptor )GetAscent ()(float64 ,error ){return _ce .GetNumberAsFloat (_gbegc .Ascent );};func (_cdeg *PdfReader )newPdfAnnotationSquigglyFromDict (_efbd *_ce .PdfObjectDictionary )(*PdfAnnotationSquiggly ,error ){_efab :=PdfAnnotationSquiggly {};_efge ,_gee :=_cdeg .newPdfAnnotationMarkupFromDict (_efbd );if _gee !=nil {return nil ,_gee ;};_efab .PdfAnnotationMarkup =_efge ;_efab .QuadPoints =_efbd .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");return &_efab ,nil ;};func (_egea *PdfReader )newPdfSignatureFromIndirect (_bggec *_ce .PdfIndirectObject )(*PdfSignature ,error ){_cbgb ,_dcaegc :=_bggec .PdfObject .(*_ce .PdfObjectDictionary );if !_dcaegc {_ebg .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 _agffg ,_cdfg :=_egea ._cbdfb .GetModelFromPrimitive (_bggec ).(*PdfSignature );_cdfg {return _agffg ,nil ;};_egece :=&PdfSignature {};_egece ._aefg =_bggec ;_egece .Type ,_ =_ce .GetName (_cbgb .Get ("\u0054\u0079\u0070\u0065"));_egece .Filter ,_dcaegc =_ce .GetName (_cbgb .Get ("\u0046\u0069\u006c\u0074\u0065\u0072"));if !_dcaegc {_ebg .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 ;};_egece .SubFilter ,_ =_ce .GetName (_cbgb .Get ("\u0053u\u0062\u0046\u0069\u006c\u0074\u0065r"));_egece .Contents ,_dcaegc =_ce .GetString (_cbgb .Get ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073"));if !_dcaegc {_ebg .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 ;};_egece .Cert =_cbgb .Get ("\u0043\u0065\u0072\u0074");_egece .ByteRange ,_ =_ce .GetArray (_cbgb .Get ("\u0042y\u0074\u0065\u0052\u0061\u006e\u0067e"));_egece .Reference ,_ =_ce .GetArray (_cbgb .Get ("\u0052e\u0066\u0065\u0072\u0065\u006e\u0063e"));_egece .Changes ,_ =_ce .GetArray (_cbgb .Get ("\u0043h\u0061\u006e\u0067\u0065\u0073"));_egece .Name ,_ =_ce .GetString (_cbgb .Get ("\u004e\u0061\u006d\u0065"));_egece .M ,_ =_ce .GetString (_cbgb .Get ("\u004d"));_egece .Location ,_ =_ce .GetString (_cbgb .Get ("\u004c\u006f\u0063\u0061\u0074\u0069\u006f\u006e"));_egece .Reason ,_ =_ce .GetString (_cbgb .Get ("\u0052\u0065\u0061\u0073\u006f\u006e"));_egece .ContactInfo ,_ =_ce .GetString (_cbgb .Get ("C\u006f\u006e\u0074\u0061\u0063\u0074\u0049\u006e\u0066\u006f"));_egece .R ,_ =_ce .GetInt (_cbgb .Get ("\u0052"));_egece .V ,_ =_ce .GetInt (_cbgb .Get ("\u0056"));_egece .PropBuild ,_ =_ce .GetDict (_cbgb .Get ("\u0050\u0072\u006f\u0070\u005f\u0042\u0075\u0069\u006c\u0064"));_egece .PropAuthTime ,_ =_ce .GetInt (_cbgb .Get ("\u0050\u0072\u006f\u0070\u005f\u0041\u0075\u0074\u0068\u0054\u0069\u006d\u0065"));_egece .PropAuthType ,_ =_ce .GetName (_cbgb .Get ("\u0050\u0072\u006f\u0070\u005f\u0041\u0075\u0074\u0068\u0054\u0079\u0070\u0065"));return _egece ,nil ;};func (_ddgba *PdfFont )baseFields ()*fontCommon {if _ddgba ._decac ==nil {_ebg .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 _ddgba ._decac .baseFields ();};var (ErrRequiredAttributeMissing =_gd .New ("\u0072\u0065\u0071\u0075\u0069\u0072\u0065\u0064\u0020\u0061\u0074t\u0072\u0069\u0062\u0075\u0074\u0065\u0020\u006d\u0069\u0073s\u0069\u006e\u0067");ErrInvalidAttribute =_gd .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0061\u0074\u0074\u0072i\u0062\u0075\u0074\u0065");ErrTypeCheck =_gd .New ("\u0074\u0079\u0070\u0065\u0020\u0063\u0068\u0065\u0063\u006b");_dage =_gd .New ("\u0072\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b\u0020e\u0072\u0072\u006f\u0072");ErrEncrypted =_gd .New ("\u0066\u0069\u006c\u0065\u0020\u006e\u0065\u0065\u0064\u0073\u0020\u0074\u006f\u0020\u0062e\u0020d\u0065\u0063\u0072\u0079\u0070\u0074\u0065\u0064\u0020\u0066\u0069\u0072\u0073\u0074");ErrNoFont =_gd .New ("\u0066\u006fn\u0074\u0020\u006eo\u0074\u0020\u0064\u0065\u0066\u0069\u006e\u0065\u0064");ErrFontNotSupported =_c .Errorf ("u\u006e\u0073\u0075\u0070po\u0072t\u0065\u0064\u0020\u0066\u006fn\u0074\u0020\u0028\u0025\u0076\u0029",_ce .ErrNotSupported );ErrType1CFontNotSupported =_c .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\u0076\u0029",_ce .ErrNotSupported );ErrType3FontNotSupported =_c .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%\u0076\u0029",_ce .ErrNotSupported );ErrTTCmapNotSupported =_c .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\u0076\u0029",_ce .ErrNotSupported ););
// SetPdfCreationDate sets the CreationDate attribute of the output PDF.
func SetPdfCreationDate (creationDate _a .Time ){_ebgad =creationDate };func _fbbbc (_fgde *PdfField ,_ebcbb _ce .PdfObject ){for _ ,_ecdbd :=range _fgde .Annotations {_ecdbd .AS =_ebcbb ;_ecdbd .ToPdfObject ();};};
// Has checks if flag fl is set in flag and returns true if so, false otherwise.
func (_gfcg FieldFlag )Has (fl FieldFlag )bool {return (_gfcg .Mask ()&fl .Mask ())> 0};
// ToPdfObject implements interface PdfModel.
func (_dced *PdfAnnotation3D )ToPdfObject ()_ce .PdfObject {_dced .PdfAnnotation .ToPdfObject ();_dcdf :=_dced ._bda ;_acdc :=_dcdf .PdfObject .(*_ce .PdfObjectDictionary );_acdc .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ce .MakeName ("\u0033\u0044"));_acdc .SetIfNotNil ("\u0033\u0044\u0044",_dced .T3DD );_acdc .SetIfNotNil ("\u0033\u0044\u0056",_dced .T3DV );_acdc .SetIfNotNil ("\u0033\u0044\u0041",_dced .T3DA );_acdc .SetIfNotNil ("\u0033\u0044\u0049",_dced .T3DI );_acdc .SetIfNotNil ("\u0033\u0044\u0042",_dced .T3DB );return _dcdf ;};
// ToPdfObject implements interface PdfModel.
func (_egaad *PdfAnnotationUnderline )ToPdfObject ()_ce .PdfObject {_egaad .PdfAnnotation .ToPdfObject ();_ddbf :=_egaad ._bda ;_baac :=_ddbf .PdfObject .(*_ce .PdfObjectDictionary );_egaad .PdfAnnotationMarkup .appendToPdfDictionary (_baac );_baac .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ce .MakeName ("\u0055n\u0064\u0065\u0072\u006c\u0069\u006ee"));_baac .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_egaad .QuadPoints );return _ddbf ;};type pdfCIDFontType2 struct{fontCommon ;_adbec *_ce .PdfIndirectObject ;_egbdd _cce .TextEncoder ;
// Table 117 Entries in a CIDFont dictionary (page 269)
// Dictionary that defines the character collection of the CIDFont (required).
// See Table 116.
CIDSystemInfo *_ce .PdfObjectDictionary ;
// Glyph metrics fields (optional).
DW _ce .PdfObject ;W _ce .PdfObject ;DW2 _ce .PdfObject ;W2 _ce .PdfObject ;
// CIDs to glyph indices mapping (optional).
CIDToGIDMap _ce .PdfObject ;_ggaa map[_cce .CharCode ]float64 ;_badc float64 ;_fabd map[rune ]int ;};
// ValidateSignatures validates digital signatures in the document.
func (_cebbc *PdfReader )ValidateSignatures (handlers []SignatureHandler )([]SignatureValidationResult ,error ){if _cebbc .AcroForm ==nil {return nil ,nil ;};if _cebbc .AcroForm .Fields ==nil {return nil ,nil ;};type sigFieldPair struct{_edfe *PdfSignature ;_cfgbg *PdfField ;_degc SignatureHandler ;};var _ggecg []*sigFieldPair ;for _ ,_gbafc :=range _cebbc .AcroForm .AllFields (){if _gbafc .V ==nil {continue ;};if _gdfcbb ,_gfggde :=_ce .GetDict (_gbafc .V );_gfggde {if _baccf ,_deeaa :=_ce .GetNameVal (_gdfcbb .Get ("\u0054\u0079\u0070\u0065"));_deeaa &&_baccf =="\u0053\u0069\u0067"{_acga ,_gbdg :=_ce .GetIndirect (_gbafc .V );if !_gbdg {_ebg .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 ;};_caeg ,_fcega :=_cebbc .newPdfSignatureFromIndirect (_acga );if _fcega !=nil {return nil ,_fcega ;};var _efegbc SignatureHandler ;for _ ,_cccac :=range handlers {if _cccac .IsApplicable (_caeg ){_efegbc =_cccac ;break ;};};_ggecg =append (_ggecg ,&sigFieldPair {_edfe :_caeg ,_cfgbg :_gbafc ,_degc :_efegbc });};};};var _cafdf []SignatureValidationResult ;for _ ,_dgbfd :=range _ggecg {_afccd :=SignatureValidationResult {IsSigned :true ,Fields :[]*PdfField {_dgbfd ._cfgbg }};if _dgbfd ._degc ==nil {_afccd .Errors =append (_afccd .Errors ,"\u0068a\u006ed\u006c\u0065\u0072\u0020\u006e\u006f\u0074\u0020\u0073\u0065\u0074");_cafdf =append (_cafdf ,_afccd );continue ;};_gafdbb ,_gfeea :=_dgbfd ._degc .NewDigest (_dgbfd ._edfe );if _gfeea !=nil {_afccd .Errors =append (_afccd .Errors ,"\u0064\u0069\u0067e\u0073\u0074\u0020\u0065\u0072\u0072\u006f\u0072",_gfeea .Error ());_cafdf =append (_cafdf ,_afccd );continue ;};_baffeb :=_dgbfd ._edfe .ByteRange ;if _baffeb ==nil {_afccd .Errors =append (_afccd .Errors ,"\u0042\u0079\u0074\u0065\u0052\u0061\u006e\u0067\u0065\u0020\u006e\u006ft\u0020\u0073\u0065\u0074");_cafdf =append (_cafdf ,_afccd );continue ;};for _bebc :=0;_bebc < _baffeb .Len ();_bebc =_bebc +2{_ffddd ,_ :=_ce .GetNumberAsInt64 (_baffeb .Get (_bebc ));_cfaee ,_ :=_ce .GetIntVal (_baffeb .Get (_bebc +1));if _ ,_gcfd :=_cebbc ._dafg .Seek (_ffddd ,_cg .SeekStart );_gcfd !=nil {return nil ,_gcfd ;};_gdabe :=make ([]byte ,_cfaee );if _ ,_gbdga :=_cebbc ._dafg .Read (_gdabe );_gbdga !=nil {return nil ,_gbdga ;};_gafdbb .Write (_gdabe );};_eggec ,_gfeea :=_dgbfd ._degc .Validate (_dgbfd ._edfe ,_gafdbb );if _gfeea !=nil {return nil ,_gfeea ;};_eggec .Name =_dgbfd ._edfe .Name .Decoded ();_eggec .Reason =_dgbfd ._edfe .Reason .Decoded ();if _dgbfd ._edfe .M !=nil {_gfefc ,_cfaa :=NewPdfDate (_dgbfd ._edfe .M .String ());if _cfaa !=nil {_eggec .Errors =append (_eggec .Errors ,_cfaa .Error ());continue ;};_eggec .Date =_gfefc ;};_eggec .ContactInfo =_dgbfd ._edfe .ContactInfo .Decoded ();_eggec .Location =_dgbfd ._edfe .Location .Decoded ();_eggec .Fields =_afccd .Fields ;_cafdf =append (_cafdf ,_eggec );};return _cafdf ,nil ;};
// SetPdfCreator sets the Creator attribute of the output PDF.
func SetPdfCreator (creator string ){_gbaa =creator };func (_egc *PdfReader )newPdfAnnotationLinkFromDict (_gcge *_ce .PdfObjectDictionary )(*PdfAnnotationLink ,error ){_fbca :=PdfAnnotationLink {};_fbca .A =_gcge .Get ("\u0041");_fbca .Dest =_gcge .Get ("\u0044\u0065\u0073\u0074");_fbca .H =_gcge .Get ("\u0048");_fbca .PA =_gcge .Get ("\u0050\u0041");_fbca .QuadPoints =_gcge .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");_fbca .BS =_gcge .Get ("\u0042\u0053");return &_fbca ,nil ;};
// PdfShadingType5 is a Lattice-form Gouraud-shaded triangle mesh.
type PdfShadingType5 struct{*PdfShading ;BitsPerCoordinate *_ce .PdfObjectInteger ;BitsPerComponent *_ce .PdfObjectInteger ;VerticesPerRow *_ce .PdfObjectInteger ;Decode *_ce .PdfObjectArray ;Function []PdfFunction ;};
// NewPdfAnnotationPrinterMark returns a new printermark annotation.
func NewPdfAnnotationPrinterMark ()*PdfAnnotationPrinterMark {_bacc :=NewPdfAnnotation ();_dgdc :=&PdfAnnotationPrinterMark {};_dgdc .PdfAnnotation =_bacc ;_bacc .SetContext (_dgdc );return _dgdc ;};func _dfbae (_gbegf *_ce .PdfObjectDictionary )(*PdfShadingType4 ,error ){_dbafc :=PdfShadingType4 {};_fbae :=_gbegf .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065");if _fbae ==nil {_ebg .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 ;};_ffdd ,_beaf :=_fbae .(*_ce .PdfObjectInteger );if !_beaf {_ebg .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",_fbae );return nil ,_ce .ErrTypeError ;};_dbafc .BitsPerCoordinate =_ffdd ;_fbae =_gbegf .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074");if _fbae ==nil {_ebg .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 ;};_ffdd ,_beaf =_fbae .(*_ce .PdfObjectInteger );if !_beaf {_ebg .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",_fbae );return nil ,_ce .ErrTypeError ;};_dbafc .BitsPerComponent =_ffdd ;_fbae =_gbegf .Get ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067");if _fbae ==nil {_ebg .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 ;};_ffdd ,_beaf =_fbae .(*_ce .PdfObjectInteger );if !_beaf {_ebg .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",_fbae );return nil ,_ce .ErrTypeError ;};_dbafc .BitsPerComponent =_ffdd ;_fbae =_gbegf .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");if _fbae ==nil {_ebg .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 ;};_babcd ,_beaf :=_fbae .(*_ce .PdfObjectArray );if !_beaf {_ebg .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",_fbae );return nil ,_ce .ErrTypeError ;};_dbafc .Decode =_babcd ;_fbae =_gbegf .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");if _fbae ==nil {_ebg .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 ;};_dbafc .Function =[]PdfFunction {};if _bdecd ,_acdaf :=_fbae .(*_ce .PdfObjectArray );_acdaf {for _ ,_eefda :=range _bdecd .Elements (){_gdbec ,_cbgfe :=_edddda (_eefda );if _cbgfe !=nil {_ebg .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",_cbgfe );return nil ,_cbgfe ;};_dbafc .Function =append (_dbafc .Function ,_gdbec );};}else {_geaga ,_ebegd :=_edddda (_fbae );if _ebegd !=nil {_ebg .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",_ebegd );return nil ,_ebegd ;};_dbafc .Function =append (_dbafc .Function ,_geaga );};return &_dbafc ,nil ;};
// IsRadio returns true if the button field represents a radio button, false otherwise.
func (_dbee *PdfFieldButton )IsRadio ()bool {return _dbee .GetType ()==ButtonTypeRadio };
// Items returns all children outline items.
func (_bfacc *OutlineItem )Items ()[]*OutlineItem {return _bfacc .Entries };
// PdfRectangle is a definition of a rectangle.
type PdfRectangle struct{Llx float64 ;Lly float64 ;Urx float64 ;Ury float64 ;};
// GetIndirectObjectByNumber retrieves and returns a specific PdfObject by object number.
func (_ccccf *PdfReader )GetIndirectObjectByNumber (number int )(_ce .PdfObject ,error ){_gcffe ,_ebeae :=_ccccf ._dbfe .LookupByNumber (number );return _gcffe ,_ebeae ;};
// GetPage returns the PdfPage model for the specified page number.
func (_befa *PdfReader )GetPage (pageNumber int )(*PdfPage ,error ){if _befa ._dbfe .GetCrypter ()!=nil &&!_befa ._dbfe .IsAuthenticated (){return nil ,_c .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 (_befa ._gggg )< pageNumber {return nil ,_gd .New ("\u0069\u006e\u0076a\u006c\u0069\u0064\u0020\u0070\u0061\u0067\u0065\u0020\u006e\u0075\u006d\u0062\u0065\u0072\u0020\u0028\u0070\u0061\u0067\u0065\u0020\u0063\u006f\u0075\u006e\u0074\u0020\u0074o\u006f\u0020\u0073\u0068\u006f\u0072\u0074\u0029");};_fgaf :=pageNumber -1;if _fgaf < 0{return nil ,_c .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");};_cddb :=_befa .PageList [_fgaf ];return _cddb ,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 (_dcad *PdfReader )FlattenFieldsWithOpts (appgen FieldAppearanceGenerator ,opts *FieldFlattenOpts )error {return _dcad .flattenFieldsWithOpts (false ,appgen ,opts );};
// ToPdfObject returns a PdfObject representation of PdfColorspaceDeviceNAttributes as a PdfObjectDictionary directly
// or indirectly within an indirect object container.
func (_eebe *PdfColorspaceDeviceNAttributes )ToPdfObject ()_ce .PdfObject {_fdfg :=_ce .MakeDict ();if _eebe .Subtype !=nil {_fdfg .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eebe .Subtype );};_fdfg .SetIfNotNil ("\u0043o\u006c\u006f\u0072\u0061\u006e\u0074s",_eebe .Colorants );_fdfg .SetIfNotNil ("\u0050r\u006f\u0063\u0065\u0073\u0073",_eebe .Process );_fdfg .SetIfNotNil ("M\u0069\u0078\u0069\u006e\u0067\u0048\u0069\u006e\u0074\u0073",_eebe .MixingHints );if _eebe ._gac !=nil {_eebe ._gac .PdfObject =_fdfg ;return _eebe ._gac ;};return _fdfg ;};
// 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 (_acagf DefaultImageHandler )Compress (input *Image ,quality int64 )(*Image ,error ){return input ,nil ;};var _gbaa ="";func _dbbge (_gdgc *_ce .PdfObjectDictionary )(*PdfShadingPattern ,error ){_affef :=&PdfShadingPattern {};_begac :=_gdgc .Get ("\u0053h\u0061\u0064\u0069\u006e\u0067");if _begac ==nil {_ebg .Log .Debug ("\u0053h\u0061d\u0069\u006e\u0067\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ;};_dgeb ,_eeaf :=_aggff (_begac );if _eeaf !=nil {_ebg .Log .Debug ("\u0045r\u0072\u006f\u0072\u0020l\u006f\u0061\u0064\u0069\u006eg\u0020s\u0068a\u0064\u0069\u006e\u0067\u003a\u0020\u0025v",_eeaf );return nil ,_eeaf ;};_affef .Shading =_dgeb ;if _cbcg :=_gdgc .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");_cbcg !=nil {_dbcfa ,_efgeff :=_cbcg .(*_ce .PdfObjectArray );if !_efgeff {_ebg .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",_cbcg );return nil ,_ce .ErrTypeError ;};_affef .Matrix =_dbcfa ;};if _aege :=_gdgc .Get ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e");_aege !=nil {_affef .ExtGState =_aege ;};return _affef ,nil ;};func (_bdg *PdfReader )newPdfAnnotationScreenFromDict (_fae *_ce .PdfObjectDictionary )(*PdfAnnotationScreen ,error ){_dbf :=PdfAnnotationScreen {};_dbf .T =_fae .Get ("\u0054");_dbf .MK =_fae .Get ("\u004d\u004b");_dbf .A =_fae .Get ("\u0041");_dbf .AA =_fae .Get ("\u0041\u0041");return &_dbf ,nil ;};
// PdfAnnotationFileAttachment represents FileAttachment annotations.
// (Section 12.5.6.15).
type PdfAnnotationFileAttachment struct{*PdfAnnotation ;*PdfAnnotationMarkup ;FS _ce .PdfObject ;Name _ce .PdfObject ;};
// NewPdfColorspaceSpecialIndexed returns a new Indexed color.
func NewPdfColorspaceSpecialIndexed ()*PdfColorspaceSpecialIndexed {return &PdfColorspaceSpecialIndexed {HiVal :255};};
// SetNamedDestinations sets the Names entry in the PDF catalog.
// See section 12.3.2.3 "Named Destinations" (p. 367 PDF32000_2008).
func (_dcdg *PdfWriter )SetNamedDestinations (names _ce .PdfObject )error {if names ==nil {return nil ;};_ebg .Log .Trace ("\u0053e\u0074\u0074\u0069\u006e\u0067\u0020\u0063\u0061\u0074\u0061\u006co\u0067\u0020\u004e\u0061\u006d\u0065\u0073\u002e\u002e\u002e");_dcdg ._ddaae .Set ("\u004e\u0061\u006de\u0073",names );return _dcdg .addObjects (names );};
// GetContentStreams returns the content stream as an array of strings.
func (_egage *PdfPage )GetContentStreams ()([]string ,error ){if _egage .Contents ==nil {return nil ,nil ;};_bdgfg :=_ce .TraceToDirectObject (_egage .Contents );var _eeabee []_ce .PdfObject ;if _acde ,_aadca :=_bdgfg .(*_ce .PdfObjectArray );_aadca {_eeabee =_acde .Elements ();}else {_eeabee =[]_ce .PdfObject {_bdgfg };};var _adfac []string ;for _ ,_bcge :=range _eeabee {_fggdb ,_eagde :=_ecgb (_bcge );if _eagde !=nil {return nil ,_eagde ;};_adfac =append (_adfac ,_fggdb );};return _adfac ,nil ;};var ImageHandling ImageHandler =DefaultImageHandler {};func (_efgec *PdfReader )newPdfAnnotation3DFromDict (_bbf *_ce .PdfObjectDictionary )(*PdfAnnotation3D ,error ){_dded :=PdfAnnotation3D {};_dded .T3DD =_bbf .Get ("\u0033\u0044\u0044");_dded .T3DV =_bbf .Get ("\u0033\u0044\u0056");_dded .T3DA =_bbf .Get ("\u0033\u0044\u0041");_dded .T3DI =_bbf .Get ("\u0033\u0044\u0049");_dded .T3DB =_bbf .Get ("\u0033\u0044\u0042");return &_dded ,nil ;};
// XObjectType represents the type of an XObject.
type XObjectType int ;
// GetAnnotations returns the list of page annotations for `page`. If not loaded attempts to load the
// annotations, otherwise returns the loaded list.
func (_gggc *PdfPage )GetAnnotations ()([]*PdfAnnotation ,error ){if _gggc ._bdcg !=nil {return _gggc ._bdcg ,nil ;};if _gggc .Annots ==nil {_gggc ._bdcg =[]*PdfAnnotation {};return nil ,nil ;};if _gggc ._fabb ==nil {_gggc ._bdcg =[]*PdfAnnotation {};return nil ,nil ;};_aaage ,_bccg :=_gggc ._fabb .loadAnnotations (_gggc .Annots );if _bccg !=nil {return nil ,_bccg ;};if _aaage ==nil {_gggc ._bdcg =[]*PdfAnnotation {};};_gggc ._bdcg =_aaage ;return _gggc ._bdcg ,nil ;};func (_fcegb fontCommon )asPdfObjectDictionary (_afceb string )*_ce .PdfObjectDictionary {if _afceb !=""&&_fcegb ._dbbag !=""&&_afceb !=_fcegb ._dbbag {_ebg .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",_afceb ,_fcegb );}else if _afceb ==""&&_fcegb ._dbbag ==""{_ebg .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",_fcegb );}else if _fcegb ._dbbag ==""{_fcegb ._dbbag =_afceb ;};_eede :=_ce .MakeDict ();_eede .Set ("\u0054\u0079\u0070\u0065",_ce .MakeName ("\u0046\u006f\u006e\u0074"));_eede .Set ("\u0042\u0061\u0073\u0065\u0046\u006f\u006e\u0074",_ce .MakeName (_fcegb ._agcagf ));_eede .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ce .MakeName (_fcegb ._dbbag ));if _fcegb ._adae !=nil {_eede .Set ("\u0046\u006f\u006e\u0074\u0044\u0065\u0073\u0063\u0072i\u0070\u0074\u006f\u0072",_fcegb ._adae .ToPdfObject ());};if _fcegb ._gbcf !=nil {_eede .Set ("\u0054o\u0055\u006e\u0069\u0063\u006f\u0064e",_fcegb ._gbcf );}else if _fcegb ._fefb !=nil {_dfeec ,_dbdg :=_fcegb ._fefb .Stream ();if _dbdg !=nil {_ebg .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",_dbdg );}else {_eede .Set ("\u0054o\u0055\u006e\u0069\u0063\u006f\u0064e",_dfeec );};};return _eede ;};
// IsColored specifies if the pattern is colored.
func (_bcbc *PdfTilingPattern )IsColored ()bool {if _bcbc .PaintType !=nil &&*_bcbc .PaintType ==1{return true ;};return false ;};func (_ecbg PdfFont )actualFont ()pdfFont {if _ecbg ._decac ==nil {_ebg .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",_ecbg );};return _ecbg ._decac ;};
// ToPdfObject implements interface PdfModel.
func (_bgfd *PdfAnnotationMovie )ToPdfObject ()_ce .PdfObject {_bgfd .PdfAnnotation .ToPdfObject ();_ffd :=_bgfd ._bda ;_cbbb :=_ffd .PdfObject .(*_ce .PdfObjectDictionary );_cbbb .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ce .MakeName ("\u004d\u006f\u0076i\u0065"));_cbbb .SetIfNotNil ("\u0054",_bgfd .T );_cbbb .SetIfNotNil ("\u004d\u006f\u0076i\u0065",_bgfd .Movie );_cbbb .SetIfNotNil ("\u0041",_bgfd .A );return _ffd ;};func _efef (_abba _ce .PdfObject ,_gfdbe bool )(*PdfFont ,error ){_fgad ,_fcfc ,_bfdc :=_gedc (_abba );if _bfdc !=nil {if _bfdc ==ErrType3FontNotSupported ||_bfdc ==ErrType1CFontNotSupported {_eaba ,_gfdf :=_fbbe (_fgad ,_fcfc ,nil );if _gfdf !=nil {_ebg .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",_fcfc ,_gfdf );return nil ,_bfdc ;};return &PdfFont {_decac :_eaba },_bfdc ;};return nil ,_bfdc ;};_afea :=&PdfFont {};switch _fcfc ._dbbag {case "\u0054\u0079\u0070e\u0030":if !_gfdbe {_ebg .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",_fcfc );return nil ,_gd .New ("\u0063\u0079\u0063\u006cic\u0061\u006c\u0020\u0074\u0079\u0070\u0065\u0030\u0020\u006c\u006f\u0061\u0064\u0069n\u0067");};_fdfc ,_dfad :=_edbea (_fgad ,_fcfc );if _dfad !=nil {_ebg .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",_fcfc ,_dfad );return nil ,_dfad ;};_afea ._decac =_fdfc ;case "\u0054\u0079\u0070e\u0031","\u0054\u0079\u0070e\u0033","\u004dM\u0054\u0079\u0070\u0065\u0031","\u0054\u0072\u0075\u0065\u0054\u0079\u0070\u0065":var _fcbed *pdfFontSimple ;_debg ,_gfga :=_cc .NewStdFontByName (_cc .StdFontName (_fcfc ._agcagf ));if _gfga {_baed :=_fgfg (_debg );_afea ._decac =&_baed ;_aadd :=_ce .TraceToDirectObject (_baed .ToPdfObject ());_fbgae ,_ebbe ,_fbac :=_gedc (_aadd );if _fbac !=nil {_ebg .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",_fcfc ,_baed );return nil ,_fbac ;};for _ ,_dgbdg :=range _fgad .Keys (){_fbgae .Set (_dgbdg ,_fgad .Get (_dgbdg ));};_fcbed ,_fbac =_fbbe (_fbgae ,_ebbe ,_baed ._edbbe );if _fbac !=nil {_ebg .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",_fcfc ,_baed );return nil ,_fbac ;};_fcbed ._bgdcb =_baed ._bgdcb ;_fcbed ._eegg =_baed ._eegg ;}else {_fcbed ,_bfdc =_fbbe (_fgad ,_fcfc ,nil );if _bfdc !=nil {_ebg .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",_fcfc ,_bfdc );return nil ,_bfdc ;};};_bfdc =_fcbed .addEncoding ();if _bfdc !=nil {return nil ,_bfdc ;};if _gfga {_fcbed .updateStandard14Font ();};if _gfga &&_fcbed ._bged ==nil &&_fcbed ._edbbe ==nil {_ebg .Log .Error ("\u0073\u0069\u006d\u0070\u006c\u0065\u0066\u006f\u006e\u0074\u003d\u0025\u0073",_fcbed );_ebg .Log .Error ("\u0066n\u0074\u003d\u0025\u002b\u0076",_debg );};if len (_fcbed ._bgdcb )==0{_ebg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a \u004e\u006f\u0020\u0077\u0069d\u0074h\u0073.\u0020\u0066\u006f\u006e\u0074\u003d\u0025s",_fcbed );};_afea ._decac =_fcbed ;case "\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0030":_fcabb ,_ecegg :=_dcebc (_fgad ,_fcfc );if _ecegg !=nil {_ebg .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",_ecegg );return nil ,_ecegg ;};_afea ._decac =_fcabb ;case "\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032":_cbgfb ,_eadg :=_fcgde (_fgad ,_fcfc );if _eadg !=nil {_ebg .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",_fcfc ,_eadg );return nil ,_eadg ;};_afea ._decac =_cbgfb ;default:_ebg .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",_fcfc );return nil ,_c .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",_fcfc );};return _afea ,nil ;};
// NewPdfAnnotationPolyLine returns a new polyline annotation.
func NewPdfAnnotationPolyLine ()*PdfAnnotationPolyLine {_agad :=NewPdfAnnotation ();_bca :=&PdfAnnotationPolyLine {};_bca .PdfAnnotation =_agad ;_bca .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_agad .SetContext (_bca );return _bca ;};
// ToOutlineTree returns a low level PdfOutlineTreeNode object, based on
// the current instance.
func (_fafg *Outline )ToOutlineTree ()*PdfOutlineTreeNode {return &_fafg .ToPdfOutline ().PdfOutlineTreeNode ;};type modelManager struct{_cfgag map[PdfModel ]_ce .PdfObject ;_efgef map[_ce .PdfObject ]PdfModel ;};
// Read reads an image and loads into a new Image object with an RGB
// colormap and 8 bits per component.
func (_cdddg DefaultImageHandler )Read (reader _cg .Reader )(*Image ,error ){_bbgc ,_ ,_fbbc :=_eg .Decode (reader );if _fbbc !=nil {_ebg .Log .Debug ("\u0045\u0072\u0072or\u0020\u0064\u0065\u0063\u006f\u0064\u0069\u006e\u0067\u0020\u0066\u0069\u006c\u0065\u003a\u0020\u0025\u0073",_fbbc );return nil ,_fbbc ;};return _cdddg .NewImageFromGoImage (_bbgc );};
// 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 (_gaage *PdfFont )GetCharMetrics (code _cce .CharCode )(CharMetrics ,bool ){var _gcdde _cc .CharMetrics ;switch _bffa :=_gaage ._decac .(type ){case *pdfFontSimple :if _gdce ,_gfefb :=_bffa .GetCharMetrics (code );_gfefb {return _gdce ,_gfefb ;};case *pdfFontType0 :if _ffge ,_bacfd :=_bffa .GetCharMetrics (code );_bacfd {return _ffge ,_bacfd ;};case *pdfCIDFontType0 :if _gdaaee ,_dcga :=_bffa .GetCharMetrics (code );_dcga {return _gdaaee ,_dcga ;};case *pdfCIDFontType2 :if _cffe ,_cead :=_bffa .GetCharMetrics (code );_cead {return _cffe ,_cead ;};default:_ebg .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",_gaage ._decac );return _gcdde ,false ;};if _fdba ,_ccabd :=_gaage .GetFontDescriptor ();_ccabd ==nil &&_fdba !=nil {return _cc .CharMetrics {Wx :_fdba ._gcfg },true ;};_ebg .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",_gaage );return _gcdde ,false ;};
// NewPdfActionLaunch returns a new "launch" action.
func NewPdfActionLaunch ()*PdfActionLaunch {_cf :=NewPdfAction ();_bbe :=&PdfActionLaunch {};_bbe .PdfAction =_cf ;_cf .SetContext (_bbe );return _bbe ;};
// PdfAnnotationLink represents Link annotations.
// (Section 12.5.6.5 p. 403).
type PdfAnnotationLink struct{*PdfAnnotation ;A _ce .PdfObject ;Dest _ce .PdfObject ;H _ce .PdfObject ;PA _ce .PdfObject ;QuadPoints _ce .PdfObject ;BS _ce .PdfObject ;_eddb *PdfAction ;_bdfc *PdfReader ;};
// PdfShadingType3 is a Radial shading.
type PdfShadingType3 struct{*PdfShading ;Coords *_ce .PdfObjectArray ;Domain *_ce .PdfObjectArray ;Function []PdfFunction ;Extend *_ce .PdfObjectArray ;};
// GetPdfName returns the PDF name used to indicate the border style.
// (Table 166 p. 395).
func (_eccb *BorderStyle )GetPdfName ()string {switch *_eccb {case BorderStyleSolid :return "\u0053";case BorderStyleDashed :return "\u0044";case BorderStyleBeveled :return "\u0042";case BorderStyleInset :return "\u0049";case BorderStyleUnderline :return "\u0055";};return "";};
// 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 ;};
// ToPdfObject returns the PDF representation of the shading dictionary.
func (_bcde *PdfShadingType2 )ToPdfObject ()_ce .PdfObject {_bcde .PdfShading .ToPdfObject ();_dcfgd ,_cecf :=_bcde .getShadingDict ();if _cecf !=nil {_ebg .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 _dcfgd ==nil {_ebg .Log .Error ("\u0053\u0068\u0061\u0064in\u0067\u0020\u0064\u0069\u0063\u0074\u0020\u0069\u0073\u0020\u006e\u0069\u006c");return nil ;};if _bcde .Coords !=nil {_dcfgd .Set ("\u0043\u006f\u006f\u0072\u0064\u0073",_bcde .Coords );};if _bcde .Domain !=nil {_dcfgd .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_bcde .Domain );};if _bcde .Function !=nil {if len (_bcde .Function )==1{_dcfgd .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_bcde .Function [0].ToPdfObject ());}else {_gdcbb :=_ce .MakeArray ();for _ ,_cafc :=range _bcde .Function {_gdcbb .Append (_cafc .ToPdfObject ());};_dcfgd .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_gdcbb );};};if _bcde .Extend !=nil {_dcfgd .Set ("\u0045\u0078\u0074\u0065\u006e\u0064",_bcde .Extend );};return _bcde ._efbab ;};
// NewPdfField returns an initialized PdfField.
func NewPdfField ()*PdfField {return &PdfField {_gfeec :_ce .MakeIndirectObject (_ce .MakeDict ())}};
// ImageToRGB convert 1-component grayscale data to 3-component RGB.
func (_gdbe *PdfColorspaceDeviceGray )ImageToRGB (img Image )(Image ,error ){if img .ColorComponents !=1{return img ,_gd .New ("\u0074\u0068e \u0070\u0072\u006fv\u0069\u0064\u0065\u0064 im\u0061ge\u0020\u0069\u0073\u0020\u006e\u006f\u0074 g\u0072\u0061\u0079\u0020\u0073\u0063\u0061l\u0065");};_gcb ,_becg :=_age .NewImage (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),img .ColorComponents ,img .Data ,img ._fdcac ,img ._cddaa );if _becg !=nil {return img ,_becg ;};_fggd ,_becg :=_age .NRGBAConverter .Convert (_gcb );if _becg !=nil {return img ,_becg ;};_agac :=_efeaf (_fggd .Base ());_ebg .Log .Trace ("\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079\u0020\u002d>\u0020\u0052\u0047\u0042");_ebg .Log .Trace ("s\u0061\u006d\u0070\u006c\u0065\u0073\u003a\u0020\u0025\u0076",img .Data );_ebg .Log .Trace ("\u0052G\u0042 \u0073\u0061\u006d\u0070\u006c\u0065\u0073\u003a\u0020\u0025\u0076",_agac .Data );_ebg .Log .Trace ("\u0025\u0076\u0020\u002d\u003e\u0020\u0025\u0076",img ,_agac );return _agac ,nil ;};
// PdfColorspaceDeviceRGB represents an RGB colorspace.
type PdfColorspaceDeviceRGB struct{};
// NewPdfAnnotationWatermark returns a new watermark annotation.
func NewPdfAnnotationWatermark ()*PdfAnnotationWatermark {_gcee :=NewPdfAnnotation ();_bbbf :=&PdfAnnotationWatermark {};_bbbf .PdfAnnotation =_gcee ;_gcee .SetContext (_bbbf );return _bbbf ;};func (_cfge *PdfWriter )hasObject (_edee _ce .PdfObject )bool {_ ,_cgffaa :=_cfge ._gdbdce [_edee ];return _cgffaa ;};func (_df *PdfReader )newPdfActionNamedFromDict (_acca *_ce .PdfObjectDictionary )(*PdfActionNamed ,error ){return &PdfActionNamed {N :_acca .Get ("\u004e")},nil ;};
// String returns a string that describes `font`.
func (_dcbb *PdfFont )String ()string {_gadff :="";if _dcbb ._decac .Encoder ()!=nil {_gadff =_dcbb ._decac .Encoder ().String ();};return _c .Sprintf ("\u0046\u004f\u004e\u0054\u007b\u0025\u0054\u0020\u0025s\u0020\u0025\u0073\u007d",_dcbb ._decac ,_dcbb .baseFields ().coreString (),_gadff );};
// PdfActionSetOCGState represents a SetOCGState action.
type PdfActionSetOCGState struct{*PdfAction ;State _ce .PdfObject ;PreserveRB _ce .PdfObject ;};
// GetAsTilingPattern returns a tiling pattern. Check with IsTiling() prior to using this.
func (_eeeg *PdfPattern )GetAsTilingPattern ()*PdfTilingPattern {return _eeeg ._gdge .(*PdfTilingPattern );};
// PdfActionImportData represents a importData action.
type PdfActionImportData struct{*PdfAction ;F *PdfFilespec ;};
// PdfDate represents a date, which is a PDF string of the form:
// (D:YYYYMMDDHHmmSSOHH'mm)
type PdfDate struct{_ddacdb int64 ;_aegabg int64 ;_bded int64 ;_deefg int64 ;_gbgg int64 ;_eabcf int64 ;_agbae byte ;_dfgga int64 ;_aabaf int64 ;};func _aefeg (_bffd *[]*PdfField ,_fgfec FieldFilterFunc ,_gbgfe bool )[]*PdfField {if _bffd ==nil {return nil ;};_ceccb :=*_bffd ;if len (*_bffd )==0{return nil ;};_gabb :=_ceccb [:0];if _fgfec ==nil {_fgfec =func (*PdfField )bool {return true };};var _baeg []*PdfField ;for _ ,_gcffa :=range _ceccb {_feee :=_fgfec (_gcffa );if _feee {_baeg =append (_baeg ,_gcffa );if len (_gcffa .Kids )> 0{_baeg =append (_baeg ,_aefeg (&_gcffa .Kids ,_fgfec ,_gbgfe )...);};};if !_gbgfe ||!_feee ||len (_gcffa .Kids )> 0{_gabb =append (_gabb ,_gcffa );};};*_bffd =_gabb ;return _baeg ;};
// String returns the name of the colorspace (DeviceN).
func (_afgd *PdfColorspaceDeviceN )String ()string {return "\u0044e\u0076\u0069\u0063\u0065\u004e"};
// GetPageDict converts the Page to a PDF object dictionary.
func (_gefdd *PdfPage )GetPageDict ()*_ce .PdfObjectDictionary {_bgebg :=_gefdd ._dfbdag ;_bgebg .Clear ();_bgebg .Set ("\u0054\u0079\u0070\u0065",_ce .MakeName ("\u0050\u0061\u0067\u0065"));_bgebg .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_gefdd .Parent );if _gefdd .LastModified !=nil {_bgebg .Set ("\u004c\u0061\u0073t\u004d\u006f\u0064\u0069\u0066\u0069\u0065\u0064",_gefdd .LastModified .ToPdfObject ());};if _gefdd .Resources !=nil {_bgebg .Set ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s",_gefdd .Resources .ToPdfObject ());};if _gefdd .CropBox !=nil {_bgebg .Set ("\u0043r\u006f\u0070\u0042\u006f\u0078",_gefdd .CropBox .ToPdfObject ());};if _gefdd .MediaBox !=nil {_bgebg .Set ("\u004d\u0065\u0064\u0069\u0061\u0042\u006f\u0078",_gefdd .MediaBox .ToPdfObject ());};if _gefdd .BleedBox !=nil {_bgebg .Set ("\u0042\u006c\u0065\u0065\u0064\u0042\u006f\u0078",_gefdd .BleedBox .ToPdfObject ());};if _gefdd .TrimBox !=nil {_bgebg .Set ("\u0054r\u0069\u006d\u0042\u006f\u0078",_gefdd .TrimBox .ToPdfObject ());};if _gefdd .ArtBox !=nil {_bgebg .Set ("\u0041\u0072\u0074\u0042\u006f\u0078",_gefdd .ArtBox .ToPdfObject ());};_bgebg .SetIfNotNil ("\u0042\u006f\u0078C\u006f\u006c\u006f\u0072\u0049\u006e\u0066\u006f",_gefdd .BoxColorInfo );_bgebg .SetIfNotNil ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073",_gefdd .Contents );if _gefdd .Rotate !=nil {_bgebg .Set ("\u0052\u006f\u0074\u0061\u0074\u0065",_ce .MakeInteger (*_gefdd .Rotate ));};_bgebg .SetIfNotNil ("\u0047\u0072\u006fu\u0070",_gefdd .Group );_bgebg .SetIfNotNil ("\u0054\u0068\u0075m\u0062",_gefdd .Thumb );_bgebg .SetIfNotNil ("\u0042",_gefdd .B );_bgebg .SetIfNotNil ("\u0044\u0075\u0072",_gefdd .Dur );_bgebg .SetIfNotNil ("\u0054\u0072\u0061n\u0073",_gefdd .Trans );_bgebg .SetIfNotNil ("\u0041\u0041",_gefdd .AA );_bgebg .SetIfNotNil ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061",_gefdd .Metadata );_bgebg .SetIfNotNil ("\u0050i\u0065\u0063\u0065\u0049\u006e\u0066o",_gefdd .PieceInfo );_bgebg .SetIfNotNil ("\u0053\u0074\u0072\u0075\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074\u0073",_gefdd .StructParents );_bgebg .SetIfNotNil ("\u0049\u0044",_gefdd .ID );_bgebg .SetIfNotNil ("\u0050\u005a",_gefdd .PZ );_bgebg .SetIfNotNil ("\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006fn\u0049\u006e\u0066\u006f",_gefdd .SeparationInfo );_bgebg .SetIfNotNil ("\u0054\u0061\u0062\u0073",_gefdd .Tabs );_bgebg .SetIfNotNil ("T\u0065m\u0070\u006c\u0061\u0074\u0065\u0049\u006e\u0073t\u0061\u006e\u0074\u0069at\u0065\u0064",_gefdd .TemplateInstantiated );_bgebg .SetIfNotNil ("\u0050r\u0065\u0073\u0053\u0074\u0065\u0070s",_gefdd .PresSteps );_bgebg .SetIfNotNil ("\u0055\u0073\u0065\u0072\u0055\u006e\u0069\u0074",_gefdd .UserUnit );_bgebg .SetIfNotNil ("\u0056\u0050",_gefdd .VP );if _gefdd ._bdcg !=nil {_bdfgb :=_ce .MakeArray ();for _ ,_cebgg :=range _gefdd ._bdcg {if _acdcc :=_cebgg .GetContext ();_acdcc !=nil {_bdfgb .Append (_acdcc .ToPdfObject ());}else {_bdfgb .Append (_cebgg .ToPdfObject ());};};if _bdfgb .Len ()> 0{_bgebg .Set ("\u0041\u006e\u006e\u006f\u0074\u0073",_bdfgb );};}else if _gefdd .Annots !=nil {_bgebg .SetIfNotNil ("\u0041\u006e\u006e\u006f\u0074\u0073",_gefdd .Annots );};return _bgebg ;};var _bcfed =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"};func _fbbeg (_bccc string )(map[_cce .CharCode ]_cce .GlyphName ,error ){_fafac :=_aga .Split (_bccc ,"\u000a");_dbgb :=make (map[_cce .CharCode ]_cce .GlyphName );for _ ,_abaeg :=range _fafac {_bbcfb :=_ddfea .FindStringSubmatch (_abaeg );if _bbcfb ==nil {continue ;};_gagbg ,_aacfe :=_bbcfb [1],_bbcfb [2];_ccgdc ,_fbgf :=_bd .Atoi (_gagbg );if _fbgf !=nil {_ebg .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",_abaeg );return nil ,_ce .ErrTypeError ;};_dbgb [_cce .CharCode (_ccgdc )]=_cce .GlyphName (_aacfe );};_ebg .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",_dbgb );return _dbgb ,nil ;};
// FullName returns the full name of the field as in rootname.parentname.partialname.
func (_gecd *PdfField )FullName ()(string ,error ){var _gbfcb _f .Buffer ;if _gecd .T ==nil {return _gbfcb .String (),_gd .New ("\u0066\u0069el\u0064\u0020\u0070a\u0072\u0074\u0069\u0061l n\u0061me\u0020\u0028\u0054\u0029\u0020\u006e\u006ft \u0073\u0070\u0065\u0063\u0069\u0066\u0069e\u0064");};_edaf :=[]string {_gecd .T .Decoded ()};_badg :=map[*PdfField ]bool {};_badg [_gecd ]=true ;_dcgbg :=_gecd .Parent ;for _dcgbg !=nil {if _ ,_efed :=_badg [_dcgbg ];_efed {return _gbfcb .String (),_gd .New ("\u0072\u0065\u0063\u0075rs\u0069\u0076\u0065\u0020\u0074\u0072\u0061\u0076\u0065\u0072\u0073\u0061\u006c");};if _dcgbg .T ==nil {return _gbfcb .String (),_gd .New ("\u0066\u0069el\u0064\u0020\u0070a\u0072\u0074\u0069\u0061l n\u0061me\u0020\u0028\u0054\u0029\u0020\u006e\u006ft \u0073\u0070\u0065\u0063\u0069\u0066\u0069e\u0064");};_edaf =append (_edaf ,_dcgbg .T .Decoded ());_badg [_dcgbg ]=true ;_dcgbg =_dcgbg .Parent ;};for _aecce :=len (_edaf )-1;_aecce >=0;_aecce --{_gbfcb .WriteString (_edaf [_aecce ]);if _aecce > 0{_gbfcb .WriteString ("\u002e");};};return _gbfcb .String (),nil ;};
// ToPdfObject returns a stream object.
func (_bdade *XObjectForm )ToPdfObject ()_ce .PdfObject {_gdacc :=_bdade ._gcaa ;_beaefd :=_gdacc .PdfObjectDictionary ;if _bdade .Filter !=nil {_beaefd =_bdade .Filter .MakeStreamDict ();_gdacc .PdfObjectDictionary =_beaefd ;};_beaefd .Set ("\u0054\u0079\u0070\u0065",_ce .MakeName ("\u0058O\u0062\u006a\u0065\u0063\u0074"));_beaefd .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ce .MakeName ("\u0046\u006f\u0072\u006d"));_beaefd .SetIfNotNil ("\u0046\u006f\u0072\u006d\u0054\u0079\u0070\u0065",_bdade .FormType );_beaefd .SetIfNotNil ("\u0042\u0042\u006f\u0078",_bdade .BBox );_beaefd .SetIfNotNil ("\u004d\u0061\u0074\u0072\u0069\u0078",_bdade .Matrix );if _bdade .Resources !=nil {_beaefd .SetIfNotNil ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s",_bdade .Resources .ToPdfObject ());};_beaefd .SetIfNotNil ("\u0047\u0072\u006fu\u0070",_bdade .Group );_beaefd .SetIfNotNil ("\u0052\u0065\u0066",_bdade .Ref );_beaefd .SetIfNotNil ("\u004d\u0065\u0074\u0061\u0044\u0061\u0074\u0061",_bdade .MetaData );_beaefd .SetIfNotNil ("\u0050i\u0065\u0063\u0065\u0049\u006e\u0066o",_bdade .PieceInfo );_beaefd .SetIfNotNil ("\u004c\u0061\u0073t\u004d\u006f\u0064\u0069\u0066\u0069\u0065\u0064",_bdade .LastModified );_beaefd .SetIfNotNil ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074",_bdade .StructParent );_beaefd .SetIfNotNil ("\u0053\u0074\u0072\u0075\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074\u0073",_bdade .StructParents );_beaefd .SetIfNotNil ("\u004f\u0050\u0049",_bdade .OPI );_beaefd .SetIfNotNil ("\u004f\u0043",_bdade .OC );_beaefd .SetIfNotNil ("\u004e\u0061\u006d\u0065",_bdade .Name );_beaefd .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_ce .MakeInteger (int64 (len (_bdade .Stream ))));_gdacc .Stream =_bdade .Stream ;return _gdacc ;};func _ggfb (_fcbec *_ce .PdfObjectDictionary )(*PdfShadingType3 ,error ){_agfd :=PdfShadingType3 {};_gfeeg :=_fcbec .Get ("\u0043\u006f\u006f\u0072\u0064\u0073");if _gfeeg ==nil {_ebg .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 ;};_fdaaf ,_fgebc :=_gfeeg .(*_ce .PdfObjectArray );if !_fgebc {_ebg .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",_gfeeg );return nil ,_ce .ErrTypeError ;};if _fdaaf .Len ()!=6{_ebg .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",_fdaaf .Len ());return nil ,ErrInvalidAttribute ;};_agfd .Coords =_fdaaf ;if _bgec :=_fcbec .Get ("\u0044\u006f\u006d\u0061\u0069\u006e");_bgec !=nil {_bgec =_ce .TraceToDirectObject (_bgec );_bgafac ,_bdag :=_bgec .(*_ce .PdfObjectArray );if !_bdag {_ebg .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",_bgec );return nil ,_ce .ErrTypeError ;};_agfd .Domain =_bgafac ;};_gfeeg =_fcbec .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");if _gfeeg ==nil {_ebg .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 ;};_agfd .Function =[]PdfFunction {};if _feadd ,_eagcg :=_gfeeg .(*_ce .PdfObjectArray );_eagcg {for _ ,_bdba :=range _feadd .Elements (){_fagcf ,_eeea :=_edddda (_bdba );if _eeea !=nil {_ebg .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",_eeea );return nil ,_eeea ;};_agfd .Function =append (_agfd .Function ,_fagcf );};}else {_eddbg ,_fccge :=_edddda (_gfeeg );if _fccge !=nil {_ebg .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",_fccge );return nil ,_fccge ;};_agfd .Function =append (_agfd .Function ,_eddbg );};if _ffcecf :=_fcbec .Get ("\u0045\u0078\u0074\u0065\u006e\u0064");_ffcecf !=nil {_ffcecf =_ce .TraceToDirectObject (_ffcecf );_effda ,_febeg :=_ffcecf .(*_ce .PdfObjectArray );if !_febeg {_ebg .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",_ffcecf );return nil ,_ce .ErrTypeError ;};if _effda .Len ()!=2{_ebg .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",_effda .Len ());return nil ,ErrInvalidAttribute ;};_agfd .Extend =_effda ;};return &_agfd ,nil ;};var _ pdfFont =(*pdfFontSimple )(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 (_efca *PdfColorspaceDeviceCMYK )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=4{return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_eedd :=vals [0];if _eedd < 0.0||_eedd > 1.0{return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_aacg :=vals [1];if _aacg < 0.0||_aacg > 1.0{return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_deef :=vals [2];if _deef < 0.0||_deef > 1.0{return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_aacf :=vals [3];if _aacf < 0.0||_aacf > 1.0{return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_gaea :=NewPdfColorDeviceCMYK (_eedd ,_aacg ,_deef ,_aacf );return _gaea ,nil ;};
// ToPdfObject implements interface PdfModel.
func (_dcc *PdfActionResetForm )ToPdfObject ()_ce .PdfObject {_dcc .PdfAction .ToPdfObject ();_gdbc :=_dcc ._bdf ;_ecf :=_gdbc .PdfObject .(*_ce .PdfObjectDictionary );_ecf .SetIfNotNil ("\u0053",_ce .MakeName (string (ActionTypeResetForm )));_ecf .SetIfNotNil ("\u0046\u0069\u0065\u006c\u0064\u0073",_dcc .Fields );_ecf .SetIfNotNil ("\u0046\u006c\u0061g\u0073",_dcc .Flags );return _gdbc ;};type pdfFontType0 struct{fontCommon ;_caga *_ce .PdfIndirectObject ;_gedcf _cce .TextEncoder ;Encoding _ce .PdfObject ;DescendantFont *PdfFont ;_fgbdd *_fa .CMap ;};func (_aeef *PdfField )inherit (_gcbf func (*PdfField )bool )(bool ,error ){_cbgac :=map[*PdfField ]bool {};_cgef :=false ;_fbgad :=_aeef ;for _fbgad !=nil {if _ ,_gcgg :=_cbgac [_fbgad ];_gcgg {return false ,_gd .New ("\u0072\u0065\u0063\u0075rs\u0069\u0076\u0065\u0020\u0074\u0072\u0061\u0076\u0065\u0072\u0073\u0061\u006c");};_begd :=_gcbf (_fbgad );if _begd {_cgef =true ;break ;};_cbgac [_fbgad ]=true ;_fbgad =_fbgad .Parent ;};return _cgef ,nil ;};
// OutlineDest represents the destination of an outline item.
// It holds the page and the position on the page an outline item points to.
type OutlineDest struct{PageObj *_ce .PdfIndirectObject `json:"-"`;Page int64 `json:"page"`;Mode string `json:"mode"`;X float64 `json:"x"`;Y float64 `json:"y"`;Zoom float64 `json:"zoom"`;};
// 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 ){_bbfab :=PdfDate {};_bgbdaa :=_ebac .FindAllStringSubmatch (dateStr ,1);if len (_bgbdaa )< 1{return _bbfab ,_c .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 (_bgbdaa [0])!=10{return _bbfab ,_gd .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");};_bbfab ._ddacdb ,_ =_bd .ParseInt (_bgbdaa [0][1],10,32);_bbfab ._aegabg ,_ =_bd .ParseInt (_bgbdaa [0][2],10,32);_bbfab ._bded ,_ =_bd .ParseInt (_bgbdaa [0][3],10,32);_bbfab ._deefg ,_ =_bd .ParseInt (_bgbdaa [0][4],10,32);_bbfab ._gbgg ,_ =_bd .ParseInt (_bgbdaa [0][5],10,32);_bbfab ._eabcf ,_ =_bd .ParseInt (_bgbdaa [0][6],10,32);if len (_bgbdaa [0][7])> 0{_bbfab ._agbae =_bgbdaa [0][7][0];}else {_bbfab ._agbae ='+';};if len (_bgbdaa [0][8])> 0{_bbfab ._dfgga ,_ =_bd .ParseInt (_bgbdaa [0][8],10,32);}else {_bbfab ._dfgga =0;};if len (_bgbdaa [0][9])> 0{_bbfab ._aabaf ,_ =_bd .ParseInt (_bgbdaa [0][9],10,32);}else {_bbfab ._aabaf =0;};return _bbfab ,nil ;};func _abgcc (_aggcb StdFontName )(pdfFontSimple ,error ){_caae ,_efgdf :=_cc .NewStdFontByName (_aggcb );if !_efgdf {return pdfFontSimple {},ErrFontNotSupported ;};_cfab :=_fgfg (_caae );return _cfab ,nil ;};
// ReplaceAcroForm replaces the acrobat form. It appends a new form to the Pdf which
// replaces the original AcroForm.
func (_dged *PdfAppender )ReplaceAcroForm (acroForm *PdfAcroForm ){if acroForm !=nil {_dged .updateObjectsDeep (acroForm .ToPdfObject (),nil );};_dged ._dba =acroForm ;};func (_febdb *XObjectImage )getParamsDict ()*_ce .PdfObjectDictionary {_cbddf :=_ce .MakeDict ();_cbddf .Set ("\u0057\u0069\u0064t\u0068",_ce .MakeInteger (*_febdb .Width ));_cbddf .Set ("\u0048\u0065\u0069\u0067\u0068\u0074",_ce .MakeInteger (*_febdb .Height ));_cbddf .Set ("\u0043o\u006co\u0072\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074\u0073",_ce .MakeInteger (int64 (_febdb .ColorSpace .GetNumComponents ())));_cbddf .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_ce .MakeInteger (*_febdb .BitsPerComponent ));return _cbddf ;};
// GetNumComponents returns the number of color components (1 for Indexed).
func (_cbgg *PdfColorspaceSpecialIndexed )GetNumComponents ()int {return 1};func (_gfdc *PdfReader )newPdfActionURIFromDict (_acc *_ce .PdfObjectDictionary )(*PdfActionURI ,error ){return &PdfActionURI {URI :_acc .Get ("\u0055\u0052\u0049"),IsMap :_acc .Get ("\u0049\u0073\u004da\u0070")},nil ;};
// NewPdfActionURI returns a new "Uri" action.
func NewPdfActionURI ()*PdfActionURI {_ega :=NewPdfAction ();_gfa :=&PdfActionURI {};_gfa .PdfAction =_ega ;_ega .SetContext (_gfa );return _gfa ;};
// NewImageFromGoImage creates a new NRGBA32 unidoc Image from a golang Image.
// If `goimg` is grayscale (*goimage.Gray8) then calls NewGrayImageFromGoImage instead.
func (_addbb DefaultImageHandler )NewImageFromGoImage (goimg _eg .Image )(*Image ,error ){_ffcec ,_fada :=_age .FromGoImage (goimg );if _fada !=nil {return nil ,_fada ;};_eace :=_efeaf (_ffcec .Base ());return &_eace ,nil ;};
// GetXObjectImageByName returns the XObjectImage with the specified name from the
// page resources, if it exists.
func (_febd *PdfPageResources )GetXObjectImageByName (keyName _ce .PdfObjectName )(*XObjectImage ,error ){_cacd ,_bcba :=_febd .GetXObjectByName (keyName );if _cacd ==nil {return nil ,nil ;};if _bcba !=XObjectTypeImage {return nil ,_gd .New ("\u006e\u006f\u0074 \u0061\u006e\u0020\u0069\u006d\u0061\u0067\u0065");};_ddfdf ,_efdf :=NewXObjectImageFromStream (_cacd );if _efdf !=nil {return nil ,_efdf ;};return _ddfdf ,nil ;};
// ToPdfObject returns a *PdfIndirectObject containing a *PdfObjectArray representation of the DeviceN colorspace.
// Format: [/DeviceN names alternateSpace tintTransform]
// or: [/DeviceN names alternateSpace tintTransform attributes]
func (_dcgf *PdfColorspaceDeviceN )ToPdfObject ()_ce .PdfObject {_fcdb :=_ce .MakeArray (_ce .MakeName ("\u0044e\u0076\u0069\u0063\u0065\u004e"));_fcdb .Append (_dcgf .ColorantNames );_fcdb .Append (_dcgf .AlternateSpace .ToPdfObject ());_fcdb .Append (_dcgf .TintTransform .ToPdfObject ());if _dcgf .Attributes !=nil {_fcdb .Append (_dcgf .Attributes .ToPdfObject ());};if _dcgf ._baceb !=nil {_dcgf ._baceb .PdfObject =_fcdb ;return _dcgf ._baceb ;};return _fcdb ;};
// Duplicate creates a duplicate page based on the current one and returns it.
func (_fdbc *PdfPage )Duplicate ()*PdfPage {var _bbgd PdfPage ;_bbgd =*_fdbc ;_bbgd ._dfbdag =_ce .MakeDict ();_bbgd ._adcebd =_ce .MakeIndirectObject (_bbgd ._dfbdag );return &_bbgd ;};func (_bdgfa *pdfFontSimple )getFontDescriptor ()*PdfFontDescriptor {if _dbdgc :=_bdgfa ._adae ;_dbdgc !=nil {return _dbdgc ;};return _bdgfa ._cdgc ;};
// ColorFromFloats returns a new PdfColor based on the input slice of color
// components.
func (_acda *PdfColorspaceICCBased )ColorFromFloats (vals []float64 )(PdfColor ,error ){if _acda .Alternate ==nil {if _acda .N ==1{_afgf :=NewPdfColorspaceDeviceGray ();return _afgf .ColorFromFloats (vals );}else if _acda .N ==3{_cgee :=NewPdfColorspaceDeviceRGB ();return _cgee .ColorFromFloats (vals );}else if _acda .N ==4{_cece :=NewPdfColorspaceDeviceCMYK ();return _cece .ColorFromFloats (vals );}else {return nil ,_gd .New ("I\u0043\u0043\u0020\u0042\u0061\u0073\u0065\u0064\u0020\u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063e\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u0061lt\u0065\u0072\u006ea\u0074i\u0076\u0065");};};return _acda .Alternate .ColorFromFloats (vals );};func (_dadb *PdfReader )newPdfPageFromDict (_afedb *_ce .PdfObjectDictionary )(*PdfPage ,error ){_bddeg :=NewPdfPage ();_bddeg ._dfbdag =_afedb ;_agacc :=*_afedb ;_fadb ,_fgea :=_agacc .Get ("\u0054\u0079\u0070\u0065").(*_ce .PdfObjectName );if !_fgea {return nil ,_gd .New ("\u006d\u0069ss\u0069\u006e\u0067/\u0069\u006e\u0076\u0061lid\u0020Pa\u0067\u0065\u0020\u0064\u0069\u0063\u0074io\u006e\u0061\u0072\u0079\u0020\u0054\u0079p\u0065");};if *_fadb !="\u0050\u0061\u0067\u0065"{return nil ,_gd .New ("\u0070\u0061\u0067\u0065 \u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079 \u0054y\u0070\u0065\u0020\u0021\u003d\u0020\u0050a\u0067\u0065");};if _bgcd :=_agacc .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");_bgcd !=nil {_bddeg .Parent =_bgcd ;};if _badfb :=_agacc .Get ("\u004c\u0061\u0073t\u004d\u006f\u0064\u0069\u0066\u0069\u0065\u0064");_badfb !=nil {_eeda ,_edag :=_ce .GetString (_badfb );if !_edag {return nil ,_gd .New ("\u0070\u0061\u0067\u0065\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u0020\u004c\u0061\u0073\u0074\u004d\u006f\u0064\u0069f\u0069\u0065\u0064\u0020\u0021=\u0020\u0073t\u0072\u0069\u006e\u0067");};_cdad ,_daab :=NewPdfDate (_eeda .Str ());if _daab !=nil {return nil ,_daab ;};_bddeg .LastModified =&_cdad ;};if _beec :=_agacc .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");_beec !=nil &&!_ce .IsNullObject (_beec ){_aaag ,_edeg :=_ce .GetDict (_beec );if !_edeg {return nil ,_c .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",_beec );};var _dgbff error ;_bddeg .Resources ,_dgbff =NewPdfPageResourcesFromDict (_aaag );if _dgbff !=nil {return nil ,_dgbff ;};}else {_dagbb ,_ceea :=_bddeg .getParentResources ();if _ceea !=nil {return nil ,_ceea ;};if _dagbb ==nil {_dagbb =NewPdfPageResources ();};_bddeg .Resources =_dagbb ;};if _bgedd :=_agacc .Get ("\u004d\u0065\u0064\u0069\u0061\u0042\u006f\u0078");_bgedd !=nil {_cccdg ,_cggff :=_ce .GetArray (_bgedd );if !_cggff {return nil ,_gd .New ("\u0070\u0061\u0067\u0065\u0020\u004d\u0065\u0064\u0069\u0061\u0042o\u0078\u0020\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0061r\u0072\u0061\u0079");};var _egbec error ;_bddeg .MediaBox ,_egbec =NewPdfRectangle (*_cccdg );if _egbec !=nil {return nil ,_egbec ;};};if _fggdf :=_agacc .Get ("\u0043r\u006f\u0070\u0042\u006f\u0078");_fggdf !=nil {_beca ,_gdfcf :=_ce .GetArray (_fggdf );if !_gdfcf {return nil ,_gd .New ("\u0070a\u0067\u0065\u0020\u0043r\u006f\u0070\u0042\u006f\u0078 \u006eo\u0074 \u0061\u006e\u0020\u0061\u0072\u0072\u0061y");};var _debff error ;_bddeg .CropBox ,_debff =NewPdfRectangle (*_beca );if _debff !=nil {return nil ,_debff ;};};if _ddaf :=_agacc .Get ("\u0042\u006c\u0065\u0065\u0064\u0042\u006f\u0078");_ddaf !=nil {_dcagd ,_ebff :=_ce .GetArray (_ddaf );if !_ebff {return nil ,_gd .New ("\u0070\u0061\u0067\u0065\u0020\u0042\u006c\u0065\u0065\u0064\u0042o\u0078\u0020\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0061r\u0072\u0061\u0079");};var _gfbgg error ;_bddeg .BleedBox ,_gfbgg =NewPdfRectangle (*_dcagd );if _gfbgg !=nil {return nil ,_gfbgg ;};};if _befc :=_agacc .Get ("\u0054r\u0069\u006d\u0042\u006f\u0078");_befc !=nil {_ffged ,_daafba :=_ce .GetArray (_befc );if !_daafba {return nil ,_gd .New ("\u0070a\u0067\u0065\u0020\u0054r\u0069\u006d\u0042\u006f\u0078 \u006eo\u0074 \u0061\u006e\u0020\u0061\u0072\u0072\u0061y");};var _adefe error ;_bddeg .TrimBox ,_adefe =NewPdfRectangle (*_ffged );if _adefe !=nil {return nil ,_adefe ;};};if _ebde :=_agacc .Get ("\u0041\u0072\u0074\u0042\u006f\u0078");_ebde !=nil {_bfacf ,_faceb :=_ce .GetArray (_ebde );if !_faceb {return nil ,_gd .New ("\u0070a\u0067\u0065\u0020\u0041\u0072\u0074\u0042\u006f\u0078\u0020\u006eo\u0074\u0020\u0061\u006e\u0020\u0061\u0072\u0072\u0061\u0079");};var _ffdg error ;_bddeg .ArtBox ,_ffdg =NewPdfRectangle (*_bfacf );if _ffdg !=nil {return nil ,_ffdg ;};};if _bebba :=_agacc .Get ("\u0042\u006f\u0078C\u006f\u006c\u006f\u0072\u0049\u006e\u0066\u006f");_bebba !=nil {_bddeg .BoxColorInfo =_bebba ;};if _dgeac :=_agacc .Get ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073");_dgeac !=nil {_bddeg .Contents =_dgeac ;};if _bdcgd :=_agacc .Get ("\u0052\u006f\u0074\u0061\u0074\u0065");_bdcgd !=nil {_ebdd ,_gaeb :=_ce .GetInt (_bdcgd );if !_gaeb {return nil ,_gd .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0050\u0061\u0067e\u0020\u0052\u006f\u0074\u0061\u0074\u0065\u0020\u006f\u0062j\u0065\u0063\u0074");};_eebea :=int64 (*_ebdd );_bddeg .Rotate =&_eebea ;};if _dgbeg :=_agacc .Get ("\u0047\u0072\u006fu\u0070");_dgbeg !=nil {_bddeg .Group =_dgbeg ;};if _daacf :=_agacc .Get ("\u0054\u0068\u0075m\u0062");_daacf !=nil {_bddeg .Thumb =_daacf ;};if _fbbdc :=_agacc .Get ("\u0042");_fbbdc !=nil {_bddeg .B =_fbbdc ;};if _ggeg :=_agacc .Get ("\u0044\u0075\u0072");_ggeg !=nil {_bddeg .Dur =_ggeg ;};if _babff :=_agacc .Get ("\u0054\u0072\u0061n\u0073");_babff !=nil {_bddeg .Trans =_babff ;};if _gdda :=_agacc .Get ("\u0041\u0041");_gdda !=nil {_bddeg .AA =_gdda ;};if _aebe :=_agacc .Get ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");_aebe !=nil {_bddeg .Metadata =_aebe ;};if _gebee :=_agacc .Get ("\u0050i\u0065\u0063\u0065\u0049\u006e\u0066o");_gebee !=nil {_bddeg .PieceInfo =_gebee ;};if _gaeff :=_agacc .Get ("\u0053\u0074\u0072\u0075\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074\u0073");_gaeff !=nil {_bddeg .StructParents =_gaeff ;};if _bacbe :=_agacc .Get ("\u0049\u0044");_bacbe !=nil {_bddeg .ID =_bacbe ;};if _gfbba :=_agacc .Get ("\u0050\u005a");_gfbba !=nil {_bddeg .PZ =_gfbba ;};if _becc :=_agacc .Get ("\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006fn\u0049\u006e\u0066\u006f");_becc !=nil {_bddeg .SeparationInfo =_becc ;};if _cedbe :=_agacc .Get ("\u0054\u0061\u0062\u0073");_cedbe !=nil {_bddeg .Tabs =_cedbe ;};if _gfcb :=_agacc .Get ("T\u0065m\u0070\u006c\u0061\u0074\u0065\u0049\u006e\u0073t\u0061\u006e\u0074\u0069at\u0065\u0064");_gfcb !=nil {_bddeg .TemplateInstantiated =_gfcb ;};if _agfb :=_agacc .Get ("\u0050r\u0065\u0073\u0053\u0074\u0065\u0070s");_agfb !=nil {_bddeg .PresSteps =_agfb ;};if _decdef :=_agacc .Get ("\u0055\u0073\u0065\u0072\u0055\u006e\u0069\u0074");_decdef !=nil {_bddeg .UserUnit =_decdef ;};if _cgdag :=_agacc .Get ("\u0056\u0050");_cgdag !=nil {_bddeg .VP =_cgdag ;};if _ceceg :=_agacc .Get ("\u0041\u006e\u006e\u006f\u0074\u0073");_ceceg !=nil {_bddeg .Annots =_ceceg ;};_bddeg ._fabb =_dadb ;return _bddeg ,nil ;};
// PdfColorspaceSpecialSeparation is a Separation colorspace.
// At the moment the colour space is set to a Separation space, the conforming reader shall determine whether the
// device has an available colorant (e.g. dye) corresponding to the name of the requested space. If so, the conforming
// reader shall ignore the alternateSpace and tintTransform parameters; subsequent painting operations within the
// space shall apply the designated colorant directly, according to the tint values supplied.
//
// Format: [/Separation name alternateSpace tintTransform]
type PdfColorspaceSpecialSeparation struct{ColorantName *_ce .PdfObjectName ;AlternateSpace PdfColorspace ;TintTransform PdfFunction ;_bedf *_ce .PdfIndirectObject ;};
// ColorFromFloats returns a new PdfColor based on the input slice of color
// components. The slice should contain a single element.
func (_fcdegb *PdfColorspaceSpecialIndexed )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=1{return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};N :=_fcdegb .Base .GetNumComponents ();_beef :=int (vals [0])*N ;if _beef < 0||(_beef +N -1)>=len (_fcdegb ._agff ){return nil ,_gd .New ("\u006f\u0075\u0074\u0073\u0069\u0064\u0065\u0020\u0072\u0061\u006e\u0067\u0065");};_gaad :=_fcdegb ._agff [_beef :_beef +N ];var _dgaa []float64 ;for _ ,_bgadd :=range _gaad {_dgaa =append (_dgaa ,float64 (_bgadd )/255.0);};_dbdf ,_bbcgb :=_fcdegb .Base .ColorFromFloats (_dgaa );if _bbcgb !=nil {return nil ,_bbcgb ;};return _dbdf ,nil ;};func (_ggbb *PdfReader )loadForms ()(*PdfAcroForm ,error ){if _ggbb ._dbfe .GetCrypter ()!=nil &&!_ggbb ._dbfe .IsAuthenticated (){return nil ,_c .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");};_bffg :=_ggbb ._gaadd ;_dggcb :=_bffg .Get ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d");if _dggcb ==nil {return nil ,nil ;};_afgdb ,_ :=_ce .GetIndirect (_dggcb );_dggcb =_ce .TraceToDirectObject (_dggcb );if _ce .IsNullObject (_dggcb ){_ebg .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 ;};_gece ,_fdff :=_ce .GetDict (_dggcb );if !_fdff {_ebg .Log .Debug ("\u0049n\u0076\u0061\u006c\u0069d\u0020\u0041\u0063\u0072\u006fF\u006fr\u006d \u0065\u006e\u0074\u0072\u0079\u0020\u0025T",_dggcb );_ebg .Log .Debug ("\u0044\u006f\u0065\u0073 n\u006f\u0074\u0020\u0068\u0061\u0076\u0065\u0020\u0066\u006f\u0072\u006d\u0073");return nil ,_c .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0061\u0063\u0072\u006ff\u006fr\u006d \u0065\u006e\u0074\u0072\u0079\u0020\u0025T",_dggcb );};_ebg .Log .Trace ("\u0048\u0061\u0073\u0020\u0041\u0063\u0072\u006f\u0020f\u006f\u0072\u006d\u0073");_ebg .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 !_ggbb ._ebegg {_daddf :=_ggbb .traverseObjectData (_gece );if _daddf !=nil {_ebg .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",_daddf );return nil ,_daddf ;};};_gebba ,_afcc :=_ggbb .newPdfAcroFormFromDict (_afgdb ,_gece );if _afcc !=nil {return nil ,_afcc ;};return _gebba ,nil ;};
// PdfFieldSignature signature field represents digital signatures and optional data for authenticating
// the name of the signer and verifying document contents.
type PdfFieldSignature struct{*PdfField ;*PdfAnnotationWidget ;V *PdfSignature ;Lock *_ce .PdfIndirectObject ;SV *_ce .PdfIndirectObject ;};
// Encrypt encrypts the output file with a specified user/owner password.
func (_efaca *PdfWriter )Encrypt (userPass ,ownerPass []byte ,options *EncryptOptions )error {_begdc :=RC4_128bit ;if options !=nil {_begdc =options .Algorithm ;};_dbbdg :=_ab .PermOwner ;if options !=nil {_dbbdg =options .Permissions ;};var _cffed _bc .Filter ;switch _begdc {case RC4_128bit :_cffed =_bc .NewFilterV2 (16);case AES_128bit :_cffed =_bc .NewFilterAESV2 ();case AES_256bit :_cffed =_bc .NewFilterAESV3 ();default:return _c .Errorf ("\u0075n\u0073\u0075\u0070\u0070o\u0072\u0074\u0065\u0064\u0020a\u006cg\u006fr\u0069\u0074\u0068\u006d\u003a\u0020\u0025v",options .Algorithm );};_bbcag ,_ccbb ,_gbag :=_ce .PdfCryptNewEncrypt (_cffed ,userPass ,ownerPass ,_dbbdg );if _gbag !=nil {return _gbag ;};_efaca ._ageed =_bbcag ;if _ccbb .Major !=0{_efaca .SetVersion (_ccbb .Major ,_ccbb .Minor );};_efaca ._bbgda =_ccbb .Encrypt ;_efaca ._acgd =_ce .MakeArray (_ce .MakeHexString (_ccbb .ID0 ),_ce .MakeHexString (_ccbb .ID1 ));_defg :=_ce .MakeIndirectObject (_ccbb .Encrypt );_efaca ._gfdaf =_defg ;_efaca .addObject (_defg );return nil ;};
// PdfActionHide represents a hide action.
type PdfActionHide struct{*PdfAction ;T _ce .PdfObject ;H _ce .PdfObject ;};
// ImageToRGB converts an image with samples in Separation CS to an image with samples specified in
// DeviceRGB CS.
func (_becge *PdfColorspaceSpecialSeparation )ImageToRGB (img Image )(Image ,error ){_geec :=_ac .NewReader (img .getBase ());_gdgga :=_age .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),_becge .AlternateSpace .GetNumComponents (),nil ,img ._fdcac ,nil );_dgfe :=_ac .NewWriter (_gdgga );_gbabgb :=_ag .Pow (2,float64 (img .BitsPerComponent ))-1;_ebg .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");_ebg .Log .Trace ("\u0054i\u006et\u0054\u0072\u0061\u006e\u0073f\u006f\u0072m\u003a\u0020\u0025\u002b\u0076",_becge .TintTransform );_cbeg :=_becge .AlternateSpace .DecodeArray ();var (_abdb uint32 ;_eacag error ;);for {_abdb ,_eacag =_geec .ReadSample ();if _eacag ==_cg .EOF {break ;};if _eacag !=nil {return img ,_eacag ;};_cdgf :=float64 (_abdb )/_gbabgb ;_beega ,_feff :=_becge .TintTransform .Evaluate ([]float64 {_cdgf });if _feff !=nil {return img ,_feff ;};for _bef ,_ecage :=range _beega {_efeb :=_age .LinearInterpolate (_ecage ,_cbeg [_bef *2],_cbeg [_bef *2+1],0,1);if _feff =_dgfe .WriteSample (uint32 (_efeb *_gbabgb ));_feff !=nil {return img ,_feff ;};};};return _becge .AlternateSpace .ImageToRGB (_efeaf (&_gdgga ));};
// GetAction returns the PDF action for the annotation link.
func (_decf *PdfAnnotationLink )GetAction ()(*PdfAction ,error ){if _decf ._eddb !=nil {return _decf ._eddb ,nil ;};if _decf .A ==nil {return nil ,nil ;};if _decf ._bdfc ==nil {return nil ,nil ;};_cfga ,_bgbd :=_decf ._bdfc .loadAction (_decf .A );if _bgbd !=nil {return nil ,_bgbd ;};_decf ._eddb =_cfga ;return _decf ._eddb ,nil ;};
// AddFont adds a font dictionary to the Font resources.
func (_cdga *PdfPage )AddFont (name _ce .PdfObjectName ,font _ce .PdfObject )error {if _cdga .Resources ==nil {_cdga .Resources =NewPdfPageResources ();};if _cdga .Resources .Font ==nil {_cdga .Resources .Font =_ce .MakeDict ();};_fgadf ,_dfbec :=_ce .TraceToDirectObject (_cdga .Resources .Font ).(*_ce .PdfObjectDictionary );if !_dfbec {_ebg .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",_ce .TraceToDirectObject (_cdga .Resources .Font ));return _gd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_fgadf .Set (name ,font );return nil ;};func (_egcf *PdfReader )newPdfAnnotationLineFromDict (_gga *_ce .PdfObjectDictionary )(*PdfAnnotationLine ,error ){_cgc :=PdfAnnotationLine {};_cggf ,_ege :=_egcf .newPdfAnnotationMarkupFromDict (_gga );if _ege !=nil {return nil ,_ege ;};_cgc .PdfAnnotationMarkup =_cggf ;_cgc .L =_gga .Get ("\u004c");_cgc .BS =_gga .Get ("\u0042\u0053");_cgc .LE =_gga .Get ("\u004c\u0045");_cgc .IC =_gga .Get ("\u0049\u0043");_cgc .LL =_gga .Get ("\u004c\u004c");_cgc .LLE =_gga .Get ("\u004c\u004c\u0045");_cgc .Cap =_gga .Get ("\u0043\u0061\u0070");_cgc .IT =_gga .Get ("\u0049\u0054");_cgc .LLO =_gga .Get ("\u004c\u004c\u004f");_cgc .CP =_gga .Get ("\u0043\u0050");_cgc .Measure =_gga .Get ("\u004de\u0061\u0073\u0075\u0072\u0065");_cgc .CO =_gga .Get ("\u0043\u004f");return &_cgc ,nil ;};
// Evaluate runs the function. Input is [x1 x2 x3].
func (_agddf *PdfFunctionType4 )Evaluate (xVec []float64 )([]float64 ,error ){if _agddf ._dfca ==nil {_agddf ._dfca =_ef .NewPSExecutor (_agddf .Program );};var _afdbf []_ef .PSObject ;for _ ,_cebea :=range xVec {_afdbf =append (_afdbf ,_ef .MakeReal (_cebea ));};_dggc ,_afgb :=_agddf ._dfca .Execute (_afdbf );if _afgb !=nil {return nil ,_afgb ;};_fegae ,_afgb :=_ef .PSObjectArrayToFloat64Array (_dggc );if _afgb !=nil {return nil ,_afgb ;};return _fegae ,nil ;};
// GetShadingByName gets the shading specified by keyName. Returns nil if not existing.
// The bool flag indicated whether it was found or not.
func (_bfgcd *PdfPageResources )GetShadingByName (keyName _ce .PdfObjectName )(*PdfShading ,bool ){if _bfgcd .Shading ==nil {return nil ,false ;};_bdbc ,_dagc :=_ce .TraceToDirectObject (_bfgcd .Shading ).(*_ce .PdfObjectDictionary );if !_dagc {_ebg .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",_bfgcd .Shading );return nil ,false ;};if _dagdd :=_bdbc .Get (keyName );_dagdd !=nil {_fdgaf ,_ebbcc :=_aggff (_dagdd );if _ebbcc !=nil {_ebg .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",_ebbcc );return nil ,false ;};return _fdgaf ,true ;};return nil ,false ;};
// String returns a human readable description of `fontfile`.
func (_cfgf *fontFile )String ()string {_cebcg :="\u005b\u004e\u006f\u006e\u0065\u005d";if _cfgf ._fbabb !=nil {_cebcg =_cfgf ._fbabb .String ();};return _c .Sprintf ("\u0046O\u004e\u0054\u0046\u0049\u004c\u0045\u007b\u0025\u0023\u0071\u0020e\u006e\u0063\u006f\u0064\u0065\u0072\u003d\u0025\u0073\u007d",_cfgf ._fdac ,_cebcg );};func (_edd *PdfAnnotation )String ()string {_dgbd :="";_bgad ,_baf :=_edd .ToPdfObject ().(*_ce .PdfIndirectObject );if _baf {_dgbd =_c .Sprintf ("\u0025\u0054\u003a\u0020\u0025\u0073",_edd ._aff ,_bgad .PdfObject .String ());};return _dgbd ;};func (_badb *pdfCIDFontType0 )baseFields ()*fontCommon {return &_badb .fontCommon };func (_fab *PdfReader )newPdfActionHideFromDict (_bdef *_ce .PdfObjectDictionary )(*PdfActionHide ,error ){return &PdfActionHide {T :_bdef .Get ("\u0054"),H :_bdef .Get ("\u0048")},nil ;};
// ToPdfObject returns the choice field dictionary within an indirect object (container).
func (_cgfd *PdfFieldChoice )ToPdfObject ()_ce .PdfObject {_cgfd .PdfField .ToPdfObject ();_acab :=_cgfd ._gfeec ;_cbad :=_acab .PdfObject .(*_ce .PdfObjectDictionary );_cbad .Set ("\u0046\u0054",_ce .MakeName ("\u0043\u0068"));if _cgfd .Opt !=nil {_cbad .Set ("\u004f\u0070\u0074",_cgfd .Opt );};if _cgfd .TI !=nil {_cbad .Set ("\u0054\u0049",_cgfd .TI );};if _cgfd .I !=nil {_cbad .Set ("\u0049",_cgfd .I );};return _acab ;};
// C returns the value of the cyan component of the color.
func (_bfag *PdfColorDeviceCMYK )C ()float64 {return float64 (_bfag [0])};
// ImageToRGB converts an image in CMYK32 colorspace to an RGB image.
func (_bdfa *PdfColorspaceDeviceCMYK )ImageToRGB (img Image )(Image ,error ){_ebg .Log .Trace ("\u0043\u004d\u0059\u004b\u0033\u0032\u0020\u002d\u003e\u0020\u0052\u0047\u0042");_ebg .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 );_ebg .Log .Trace ("\u004c\u0065\u006e \u0064\u0061\u0074\u0061\u003a\u0020\u0025\u0064",len (img .Data ));_ebg .Log .Trace ("H\u0065\u0069\u0067\u0068t:\u0020%\u0064\u002c\u0020\u0057\u0069d\u0074\u0068\u003a\u0020\u0025\u0064",img .Height ,img .Width );_egedf ,_ecff :=_age .NewImage (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),img .ColorComponents ,img .Data ,img ._fdcac ,img ._cddaa );if _ecff !=nil {return Image {},_ecff ;};_eee ,_ecff :=_age .NRGBAConverter .Convert (_egedf );if _ecff !=nil {return Image {},_ecff ;};return _efeaf (_eee .Base ()),nil ;};
// NewPdfColorspaceDeviceN returns an initialized PdfColorspaceDeviceN.
func NewPdfColorspaceDeviceN ()*PdfColorspaceDeviceN {_gdfff :=&PdfColorspaceDeviceN {};return _gdfff ;};func (_afb *PdfReader )newPdfAnnotationPrinterMarkFromDict (_fafb *_ce .PdfObjectDictionary )(*PdfAnnotationPrinterMark ,error ){_ccec :=PdfAnnotationPrinterMark {};_ccec .MN =_fafb .Get ("\u004d\u004e");return &_ccec ,nil ;};
// SetContext sets the specific fielddata type, e.g. would be PdfFieldButton for a button field.
func (_cfba *PdfField )SetContext (ctx PdfModel ){_cfba ._eedcb =ctx };
// 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 (_fded byte )byte ;
// BorderStyle defines border type, typically used for annotations.
type BorderStyle int ;
// NewPdfAnnotationSound returns a new sound annotation.
func NewPdfAnnotationSound ()*PdfAnnotationSound {_ccdc :=NewPdfAnnotation ();_ff :=&PdfAnnotationSound {};_ff .PdfAnnotation =_ccdc ;_ff .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_ccdc .SetContext (_ff );return _ff ;};
// ToPdfObject implements interface PdfModel.
func (_ace *PdfFilespec )ToPdfObject ()_ce .PdfObject {_bbaa :=_ace .getDict ();_bbaa .Clear ();_bbaa .Set ("\u0054\u0079\u0070\u0065",_ce .MakeName ("\u0046\u0069\u006c\u0065\u0073\u0070\u0065\u0063"));_bbaa .SetIfNotNil ("\u0046\u0053",_ace .FS );_bbaa .SetIfNotNil ("\u0046",_ace .F );_bbaa .SetIfNotNil ("\u0055\u0046",_ace .UF );_bbaa .SetIfNotNil ("\u0044\u004f\u0053",_ace .DOS );_bbaa .SetIfNotNil ("\u004d\u0061\u0063",_ace .Mac );_bbaa .SetIfNotNil ("\u0055\u006e\u0069\u0078",_ace .Unix );_bbaa .SetIfNotNil ("\u0049\u0044",_ace .ID );_bbaa .SetIfNotNil ("\u0056",_ace .V );_bbaa .SetIfNotNil ("\u0045\u0046",_ace .EF );_bbaa .SetIfNotNil ("\u0052\u0046",_ace .RF );_bbaa .SetIfNotNil ("\u0044\u0065\u0073\u0063",_ace .Desc );_bbaa .SetIfNotNil ("\u0043\u0049",_ace .CI );return _ace ._ddfgf ;};
// 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 (_gaaa *PdfColorspaceCalGray )ColorFromPdfObjects (objects []_ce .PdfObject )(PdfColor ,error ){if len (objects )!=1{return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_gcgdd ,_dabfd :=_ce .GetNumbersAsFloat (objects );if _dabfd !=nil {return nil ,_dabfd ;};return _gaaa .ColorFromFloats (_gcgdd );};func (_dfgb *PdfReader )flattenFieldsWithOpts (_cadce bool ,_fcbg FieldAppearanceGenerator ,_ggec *FieldFlattenOpts )error {if _ggec ==nil {_ggec =&FieldFlattenOpts {};};var _ecbb bool ;_gffcg :=map[*PdfAnnotation ]bool {};{var _afegf []*PdfField ;_cgfg :=_dfgb .AcroForm ;if _cgfg !=nil {if _ggec .FilterFunc !=nil {_afegf =_cgfg .filteredFields (_ggec .FilterFunc ,true );_ecbb =_cgfg .Fields !=nil &&len (*_cgfg .Fields )> 0;}else {_afegf =_cgfg .AllFields ();};};for _ ,_fdecg :=range _afegf {for _ ,_bfgf :=range _fdecg .Annotations {_gffcg [_bfgf .PdfAnnotation ]=_fdecg .V !=nil ;if _fcbg !=nil {_gddga ,_efea :=_fcbg .GenerateAppearanceDict (_cgfg ,_fdecg ,_bfgf );if _efea !=nil {return _efea ;};_bfgf .AP =_gddga ;};};};};if _cadce {for _ ,_cceea :=range _dfgb .PageList {_dacd ,_beag :=_cceea .GetAnnotations ();if _beag !=nil {return _beag ;};for _ ,_cgea :=range _dacd {_gffcg [_cgea ]=true ;};};};for _ ,_fafe :=range _dfgb .PageList {var _fbgd []*PdfAnnotation ;if _fcbg !=nil {if _adbfa :=_fcbg .WrapContentStream (_fafe );_adbfa !=nil {return _adbfa ;};};_gaaeb ,_gfdac :=_fafe .GetAnnotations ();if _gfdac !=nil {return _gfdac ;};for _ ,_acfbb :=range _gaaeb {_gcgb ,_fabfe :=_gffcg [_acfbb ];if !_fabfe {_fbgd =append (_fbgd ,_acfbb );continue ;};switch _acfbb .GetContext ().(type ){case *PdfAnnotationPopup :continue ;case *PdfAnnotationLink :continue ;case *PdfAnnotationProjection :continue ;};_cdgd ,_dfea ,_aaadc :=_bdfd (_acfbb );if _aaadc !=nil {if !_gcgb {_ebg .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 ;};_ebg .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",_aaadc );continue ;};if _cdgd ==nil {continue ;};_cdge :=_fafe .Resources .GenerateXObjectName ();_fafe .Resources .SetXObjectFormByName (_cdge ,_cdgd );_fceg :=_ag .Min (_dfea .Llx ,_dfea .Urx );_fge :=_ag .Min (_dfea .Lly ,_dfea .Ury );var _aebbd []string ;_aebbd =append (_aebbd ,"\u0071");_aebbd =append (_aebbd ,_c .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,_fceg ,_fge ));_aebbd =append (_aebbd ,_c .Sprintf ("\u002f\u0025\u0073\u0020\u0044\u006f",_cdge .String ()));_aebbd =append (_aebbd ,"\u0051");_abcb :=_aga .Join (_aebbd ,"\u000a");_aaadc =_fafe .AppendContentStream (_abcb );if _aaadc !=nil {return _aaadc ;};if _cdgd .Resources !=nil {_gaab ,_ddbfb :=_ce .GetDict (_cdgd .Resources .Font );if _ddbfb {for _ ,_dfdf :=range _gaab .Keys (){if !_fafe .Resources .HasFontByName (_dfdf ){_fafe .Resources .SetFontByName (_dfdf ,_gaab .Get (_dfdf ));};};};};};if len (_fbgd )> 0{_fafe ._bdcg =_fbgd ;}else {_fafe ._bdcg =[]*PdfAnnotation {};};};if !_ecbb {_dfgb .AcroForm =nil ;};return nil ;};
// NewPdfPageResourcesColorspaces returns a new PdfPageResourcesColorspaces object.
func NewPdfPageResourcesColorspaces ()*PdfPageResourcesColorspaces {_bcff :=&PdfPageResourcesColorspaces {};_bcff .Names =[]string {};_bcff .Colorspaces =map[string ]PdfColorspace {};_bcff ._facbb =&_ce .PdfIndirectObject {};return _bcff ;};
// L returns the value of the L component of the color.
func (_bbdb *PdfColorLab )L ()float64 {return float64 (_bbdb [0])};
// PdfColorDeviceCMYK is a CMYK32 color, where each component is defined in the range 0.0 - 1.0 where 1.0 is the primary intensity.
type PdfColorDeviceCMYK [4]float64 ;func (_cabe *PdfAppender )updateObjectsDeep (_gdbca _ce .PdfObject ,_abed map[_ce .PdfObject ]struct{}){if _abed ==nil {_abed =map[_ce .PdfObject ]struct{}{};};if _ ,_baff :=_abed [_gdbca ];_baff ||_gdbca ==nil {return ;};_abed [_gdbca ]=struct{}{};_cccd :=_ce .ResolveReferencesDeep (_gdbca ,_cabe ._bceec );if _cccd !=nil {_ebg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_cccd );};switch _cacg :=_gdbca .(type ){case *_ce .PdfIndirectObject :switch {case _cacg .GetParser ()==_cabe ._aega ._dbfe :return ;case _cacg .GetParser ()==_cabe .Reader ._dbfe :_edgb ,_ :=_cabe ._aega .GetIndirectObjectByNumber (int (_cacg .ObjectNumber ));_cefd ,_effab :=_edgb .(*_ce .PdfIndirectObject );if _effab &&_cefd !=nil {if _cefd .PdfObject !=_cacg .PdfObject &&_cefd .PdfObject .WriteString ()!=_cacg .PdfObject .WriteString (){_cabe .addNewObject (_gdbca );_cabe ._daea [_gdbca ]=_cacg .ObjectNumber ;};};default:_cabe .addNewObject (_gdbca );};_cabe .updateObjectsDeep (_cacg .PdfObject ,_abed );case *_ce .PdfObjectArray :for _ ,_geee :=range _cacg .Elements (){_cabe .updateObjectsDeep (_geee ,_abed );};case *_ce .PdfObjectDictionary :for _ ,_faeg :=range _cacg .Keys (){_cabe .updateObjectsDeep (_cacg .Get (_faeg ),_abed );};case *_ce .PdfObjectStreams :if _cacg .GetParser ()!=_cabe ._aega ._dbfe {for _ ,_abdcf :=range _cacg .Elements (){_cabe .updateObjectsDeep (_abdcf ,_abed );};};case *_ce .PdfObjectStream :switch {case _cacg .GetParser ()==_cabe ._aega ._dbfe :return ;case _cacg .GetParser ()==_cabe .Reader ._dbfe :if _fdg ,_dcec :=_cabe ._aega ._dbfe .LookupByReference (_cacg .PdfObjectReference );_dcec ==nil {var _abce bool ;if _gdff ,_gffe :=_ce .GetStream (_fdg );_gffe &&_f .Equal (_gdff .Stream ,_cacg .Stream ){_abce =true ;};if _becf ,_dceb :=_ce .GetDict (_fdg );_abce &&_dceb {_abce =_becf .WriteString ()==_cacg .PdfObjectDictionary .WriteString ();};if _abce {return ;};};if _cacg .ObjectNumber !=0{_cabe ._daea [_gdbca ]=_cacg .ObjectNumber ;};default:if _ ,_ggcf :=_cabe ._adba [_gdbca ];!_ggcf {_cabe .addNewObject (_gdbca );};};_cabe .updateObjectsDeep (_cacg .PdfObjectDictionary ,_abed );};};
// UpdateXObjectImageFromImage creates a new XObject Image from an
// Image object `img` and default masks from xobjIn.
// The default masks are overriden if img.hasAlpha
// If `encoder` is nil, uses raw encoding (none).
func UpdateXObjectImageFromImage (xobjIn *XObjectImage ,img *Image ,cs PdfColorspace ,encoder _ce .StreamEncoder )(*XObjectImage ,error ){if encoder ==nil {encoder =_ce .NewRawEncoder ();};encoder .UpdateParams (img .GetParamsDict ());_bcebf ,_dfaba :=encoder .EncodeBytes (img .Data );if _dfaba !=nil {_ebg .Log .Debug ("\u0045\u0072\u0072or\u0020\u0077\u0069\u0074\u0068\u0020\u0065\u006e\u0063\u006f\u0064\u0069\u006e\u0067\u003a\u0020\u0025\u0076",_dfaba );return nil ,_dfaba ;};_fdbag :=NewXObjectImage ();_fdfga :=img .Width ;_ggcd :=img .Height ;_fdbag .Width =&_fdfga ;_fdbag .Height =&_ggcd ;_fgge :=img .BitsPerComponent ;_fdbag .BitsPerComponent =&_fgge ;_fdbag .Filter =encoder ;_fdbag .Stream =_bcebf ;if cs ==nil {if img .ColorComponents ==1{_fdbag .ColorSpace =NewPdfColorspaceDeviceGray ();}else if img .ColorComponents ==3{_fdbag .ColorSpace =NewPdfColorspaceDeviceRGB ();}else if img .ColorComponents ==4{_fdbag .ColorSpace =NewPdfColorspaceDeviceCMYK ();}else {return nil ,_gd .New ("c\u006fl\u006f\u0072\u0073\u0070\u0061\u0063\u0065\u0020u\u006e\u0064\u0065\u0066in\u0065\u0064");};}else {_fdbag .ColorSpace =cs ;};if img ._fdga {_edacdf :=NewXObjectImage ();_edacdf .Filter =encoder ;_dfcac ,_ecgc :=encoder .EncodeBytes (img ._fdcac );if _ecgc !=nil {_ebg .Log .Debug ("\u0045\u0072\u0072or\u0020\u0077\u0069\u0074\u0068\u0020\u0065\u006e\u0063\u006f\u0064\u0069\u006e\u0067\u003a\u0020\u0025\u0076",_ecgc );return nil ,_ecgc ;};_edacdf .Stream =_dfcac ;_edacdf .BitsPerComponent =_fdbag .BitsPerComponent ;_edacdf .Width =&img .Width ;_edacdf .Height =&img .Height ;_edacdf .ColorSpace =NewPdfColorspaceDeviceGray ();_fdbag .SMask =_edacdf .ToPdfObject ();}else {_fdbag .SMask =xobjIn .SMask ;_fdbag .ImageMask =xobjIn .ImageMask ;if _fdbag .ColorSpace .GetNumComponents ()==1{_fgaaf (_fdbag );};};return _fdbag ,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{_dbfe *_ce .PdfParser ;_ccbac _ce .PdfObject ;_acfe *_ce .PdfIndirectObject ;_gdfcbg *_ce .PdfObjectDictionary ;_gggg []*_ce .PdfIndirectObject ;PageList []*PdfPage ;_bbfa int ;_gaadd *_ce .PdfObjectDictionary ;_feebe *PdfOutlineTreeNode ;AcroForm *PdfAcroForm ;_cbdfb *modelManager ;_ebegg bool ;_acfdf map[_ce .PdfObject ]struct{};_dafg _cg .ReadSeeker ;};
// NewGrayImageFromGoImage creates a new grayscale unidoc Image from a golang Image.
func (_adcaf DefaultImageHandler )NewGrayImageFromGoImage (goimg _eg .Image )(*Image ,error ){_ggdde :=goimg .Bounds ();_egcg :=&Image {Width :int64 (_ggdde .Dx ()),Height :int64 (_ggdde .Dy ()),ColorComponents :1,BitsPerComponent :8};switch _beaae :=goimg .(type ){case *_eg .Gray :if len (_beaae .Pix )!=_ggdde .Dx ()*_ggdde .Dy (){_bgbc ,_gagg :=_age .GrayConverter .Convert (goimg );if _gagg !=nil {return nil ,_gagg ;};_egcg .Data =_bgbc .Pix ();}else {_egcg .Data =_beaae .Pix ;};case *_eg .Gray16 :_egcg .BitsPerComponent =16;if len (_beaae .Pix )!=_ggdde .Dx ()*_ggdde .Dy ()*2{_gcga ,_bbce :=_age .Gray16Converter .Convert (goimg );if _bbce !=nil {return nil ,_bbce ;};_egcg .Data =_gcga .Pix ();}else {_egcg .Data =_beaae .Pix ;};default:_gcede ,_fcdffb :=_age .GrayConverter .Convert (goimg );if _fcdffb !=nil {return nil ,_fcdffb ;};_egcg .Data =_gcede .Pix ();};return _egcg ,nil ;};func _adgaa (_gfbf *_ce .PdfObjectDictionary )(*PdfShadingType1 ,error ){_gcffb :=PdfShadingType1 {};if _adefc :=_gfbf .Get ("\u0044\u006f\u006d\u0061\u0069\u006e");_adefc !=nil {_adefc =_ce .TraceToDirectObject (_adefc );_feab ,_gcdc :=_adefc .(*_ce .PdfObjectArray );if !_gcdc {_ebg .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",_adefc );return nil ,_gd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_gcffb .Domain =_feab ;};if _eagdg :=_gfbf .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");_eagdg !=nil {_eagdg =_ce .TraceToDirectObject (_eagdg );_cdfbc ,_aebaf :=_eagdg .(*_ce .PdfObjectArray );if !_aebaf {_ebg .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",_eagdg );return nil ,_gd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_gcffb .Matrix =_cdfbc ;};_afbfeg :=_gfbf .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");if _afbfeg ==nil {_ebg .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 ;};_gcffb .Function =[]PdfFunction {};if _ccfac ,_abbca :=_afbfeg .(*_ce .PdfObjectArray );_abbca {for _ ,_dgddg :=range _ccfac .Elements (){_dbgab ,_dfag :=_edddda (_dgddg );if _dfag !=nil {_ebg .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",_dfag );return nil ,_dfag ;};_gcffb .Function =append (_gcffb .Function ,_dbgab );};}else {_dddaa ,_gbac :=_edddda (_afbfeg );if _gbac !=nil {_ebg .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",_gbac );return nil ,_gbac ;};_gcffb .Function =append (_gcffb .Function ,_dddaa );};return &_gcffb ,nil ;};func _dgec (_dacfb *_ce .PdfObjectDictionary )(*PdfFieldChoice ,error ){_bfcd :=&PdfFieldChoice {};_bfcd .Opt ,_ =_ce .GetArray (_dacfb .Get ("\u004f\u0070\u0074"));_bfcd .TI ,_ =_ce .GetInt (_dacfb .Get ("\u0054\u0049"));_bfcd .I ,_ =_ce .GetArray (_dacfb .Get ("\u0049"));return _bfcd ,nil ;};
// 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 (_becfb *PdfFont )CharcodesToStrings (charcodes []_cce .CharCode )([]string ,int ,int ){_fcfge :=_becfb .baseFields ();_abagb :=make ([]string ,0,len (charcodes ));_gdab :=0;for _ ,_daebe :=range charcodes {if _fcfge ._fefb !=nil {if _fbgb ,_dbaf :=_fcfge ._fefb .CharcodeToUnicode (_fa .CharCode (_daebe ));_dbaf {_abagb =append (_abagb ,_fbgb );continue ;};};_beaee :=_becfb .Encoder ();if _beaee !=nil {if _gccd ,_fgcb :=_beaee .CharcodeToRune (_daebe );_fgcb {_abagb =append (_abagb ,string (_gccd ));continue ;};};_ebg .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",_daebe ,charcodes ,_fcfge .isCIDFont (),_becfb ,_beaee );_gdab ++;_abagb =append (_abagb ,_fa .MissingCodeString );};if _gdab !=0{_ebg .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a \u0043\u006f\u0075\u006c\u0064\u006e\u0027\u0074\u0020\u0063\u006f\u006e\u0076\u0065\u0072\u0074\u0020\u0074\u006f\u0020u\u006e\u0069\u0063\u006f\u0064\u0065\u002e\u0020\u0055\u0073\u0069\u006e\u0067\u0020i\u006ep\u0075\u0074\u002e\u000a"+"\u0009\u006e\u0075\u006d\u0043\u0068\u0061\u0072\u0073\u003d\u0025d\u0020\u006e\u0075\u006d\u004d\u0069\u0073\u0073\u0065\u0073=\u0025\u0064\u000a"+"\u0009\u0066\u006f\u006e\u0074\u003d\u0025\u0073",len (charcodes ),_gdab ,_becfb );};return _abagb ,len (_abagb ),_gdab ;};func (_feaa *fontFile )loadFromSegments (_bcfbe ,_gagag []byte )error {_ebg .Log .Trace ("\u006c\u006f\u0061dF\u0072\u006f\u006d\u0053\u0065\u0067\u006d\u0065\u006e\u0074\u0073\u003a\u0020\u0025\u0064\u0020\u0025\u0064",len (_bcfbe ),len (_gagag ));_cabad :=_feaa .parseASCIIPart (_bcfbe );if _cabad !=nil {return _cabad ;};_ebg .Log .Trace ("f\u006f\u006e\u0074\u0066\u0069\u006c\u0065\u003d\u0025\u0073",_feaa );if len (_gagag )==0{return nil ;};_ebg .Log .Trace ("f\u006f\u006e\u0074\u0066\u0069\u006c\u0065\u003d\u0025\u0073",_feaa );return nil ;};
// SetImageHandler sets the image handler used by the package.
func SetImageHandler (imgHandling ImageHandler ){ImageHandling =imgHandling };
// GetContainingPdfObject returns the page as a dictionary within an PdfIndirectObject.
func (_begca *PdfPage )GetContainingPdfObject ()_ce .PdfObject {return _begca ._adcebd };
// PageFromIndirectObject returns the PdfPage and page number for a given indirect object.
func (_ddba *PdfReader )PageFromIndirectObject (ind *_ce .PdfIndirectObject )(*PdfPage ,int ,error ){if len (_ddba .PageList )!=len (_ddba ._gggg ){return nil ,0,_gd .New ("\u0070\u0061\u0067\u0065\u0020\u006c\u0069\u0073\u0074\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");};for _ffffg ,_eaaae :=range _ddba ._gggg {if _eaaae ==ind {return _ddba .PageList [_ffffg ],_ffffg +1,nil ;};};return nil ,0,_gd .New ("\u0070\u0061\u0067\u0065\u0020\u006e\u006f\u0074\u0020f\u006f\u0075\u006e\u0064");};
// ContentStreamWrapper wraps the Page's contentstream into q ... Q blocks.
type ContentStreamWrapper interface{WrapContentStream (_cfag *PdfPage )error ;};
// ColorToRGB converts a DeviceN color to an RGB color.
func (_gadge *PdfColorspaceDeviceN )ColorToRGB (color PdfColor )(PdfColor ,error ){if _gadge .AlternateSpace ==nil {return nil ,_gd .New ("\u0044\u0065\u0076\u0069\u0063\u0065N\u0020\u0061\u006c\u0074\u0065\u0072\u006e\u0061\u0074\u0065\u0020\u0073\u0070a\u0063\u0065\u0020\u0075\u006e\u0064\u0065f\u0069\u006e\u0065\u0064");};return _gadge .AlternateSpace .ColorToRGB (color );};
// 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 (_aabb *PdfReader )RepairAcroForm (opts *AcroFormRepairOptions )error {var _efgbd []*PdfField ;_ecebg :=map[*_ce .PdfIndirectObject ]struct{}{};for _ ,_eeecf :=range _aabb .PageList {_gbcfb ,_gbbff :=_eeecf .GetAnnotations ();if _gbbff !=nil {return _gbbff ;};for _ ,_ggega :=range _gbcfb {var _egecdf *PdfField ;switch _cedeb :=_ggega .GetContext ().(type ){case *PdfAnnotationWidget :if _cedeb ._dgg !=nil {_egecdf =_cedeb ._dgg ;break ;};if _bagcg ,_beaef :=_ce .GetIndirect (_cedeb .Parent );_beaef {_egecdf ,_gbbff =_aabb .newPdfFieldFromIndirectObject (_bagcg ,nil );if _gbbff ==nil {break ;};_ebg .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",_bagcg ,_gbbff );};if _cedeb ._bda !=nil {_egecdf ,_gbbff =_aabb .newPdfFieldFromIndirectObject (_cedeb ._bda ,nil );if _gbbff ==nil {break ;};_ebg .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",_cedeb ._bda ,_gbbff );};};if _egecdf ==nil {continue ;};if _ ,_faba :=_ecebg [_egecdf ._gfeec ];_faba {continue ;};_ecebg [_egecdf ._gfeec ]=struct{}{};_efgbd =append (_efgbd ,_egecdf );};};if len (_efgbd )==0{return nil ;};if _aabb .AcroForm ==nil {_aabb .AcroForm =NewPdfAcroForm ();};_aabb .AcroForm .Fields =&_efgbd ;return nil ;};func _dcaeb (_eeef _ce .PdfObject )(*PdfFunctionType3 ,error ){_dddcd :=&PdfFunctionType3 {};var _geedg *_ce .PdfObjectDictionary ;if _fdgd ,_cgdba :=_eeef .(*_ce .PdfIndirectObject );_cgdba {_gegg ,_cbda :=_fdgd .PdfObject .(*_ce .PdfObjectDictionary );if !_cbda {return nil ,_gd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_dddcd ._fbcbe =_fdgd ;_geedg =_gegg ;}else if _babe ,_efegf :=_eeef .(*_ce .PdfObjectDictionary );_efegf {_geedg =_babe ;}else {return nil ,_gd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_fgfcf ,_cbfc :=_ce .TraceToDirectObject (_geedg .Get ("\u0044\u006f\u006d\u0061\u0069\u006e")).(*_ce .PdfObjectArray );if !_cbfc {_ebg .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_gd .New ("\u0072\u0065q\u0075\u0069\u0072\u0065d\u0020\u0061t\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020m\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u006f\u0072\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");};if _fgfcf .Len ()!=2{_ebg .Log .Error ("\u0044\u006f\u006d\u0061\u0069\u006e\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");return nil ,_gd .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0064\u006f\u006da\u0069\u006e\u0020\u0072an\u0067\u0065");};_efbg ,_gacg :=_fgfcf .ToFloat64Array ();if _gacg !=nil {return nil ,_gacg ;};_dddcd .Domain =_efbg ;_fgfcf ,_cbfc =_ce .TraceToDirectObject (_geedg .Get ("\u0052\u0061\u006eg\u0065")).(*_ce .PdfObjectArray );if _cbfc {if _fgfcf .Len ()< 0||_fgfcf .Len ()%2!=0{return nil ,_gd .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0061\u006e\u0067\u0065");};_bgagc ,_egbe :=_fgfcf .ToFloat64Array ();if _egbe !=nil {return nil ,_egbe ;};_dddcd .Range =_bgagc ;};_fgfcf ,_cbfc =_ce .TraceToDirectObject (_geedg .Get ("\u0046u\u006e\u0063\u0074\u0069\u006f\u006es")).(*_ce .PdfObjectArray );if !_cbfc {_ebg .Log .Error ("\u0046\u0075\u006ect\u0069\u006f\u006e\u0073\u0020\u006e\u006f\u0074\u0020\u0073\u0070\u0065\u0063\u0069\u0066\u0069\u0065\u0064");return nil ,_gd .New ("\u0072\u0065q\u0075\u0069\u0072\u0065d\u0020\u0061t\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020m\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u006f\u0072\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");};_dddcd .Functions =[]PdfFunction {};for _ ,_bdaba :=range _fgfcf .Elements (){_ccega ,_dgaaa :=_edddda (_bdaba );if _dgaaa !=nil {return nil ,_dgaaa ;};_dddcd .Functions =append (_dddcd .Functions ,_ccega );};_fgfcf ,_cbfc =_ce .TraceToDirectObject (_geedg .Get ("\u0042\u006f\u0075\u006e\u0064\u0073")).(*_ce .PdfObjectArray );if !_cbfc {_ebg .Log .Error ("B\u006fu\u006e\u0064\u0073\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_gd .New ("\u0072\u0065q\u0075\u0069\u0072\u0065d\u0020\u0061t\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020m\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u006f\u0072\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");};_abdag ,_gacg :=_fgfcf .ToFloat64Array ();if _gacg !=nil {return nil ,_gacg ;};_dddcd .Bounds =_abdag ;if len (_dddcd .Bounds )!=len (_dddcd .Functions )-1{_ebg .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 (_dddcd .Bounds ),len (_dddcd .Functions ));return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_fgfcf ,_cbfc =_ce .TraceToDirectObject (_geedg .Get ("\u0045\u006e\u0063\u006f\u0064\u0065")).(*_ce .PdfObjectArray );if !_cbfc {_ebg .Log .Error ("E\u006ec\u006f\u0064\u0065\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_gd .New ("\u0072\u0065q\u0075\u0069\u0072\u0065d\u0020\u0061t\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020m\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u006f\u0072\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");};_bgce ,_gacg :=_fgfcf .ToFloat64Array ();if _gacg !=nil {return nil ,_gacg ;};_dddcd .Encode =_bgce ;if len (_dddcd .Encode )!=2*len (_dddcd .Functions ){_ebg .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 (_dddcd .Encode ),len (_dddcd .Functions ));return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};return _dddcd ,nil ;};
// NewPdfAnnotationCaret returns a new caret annotation.
func NewPdfAnnotationCaret ()*PdfAnnotationCaret {_fdb :=NewPdfAnnotation ();_feg :=&PdfAnnotationCaret {};_feg .PdfAnnotation =_fdb ;_feg .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_fdb .SetContext (_feg );return _feg ;};
// 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 (_addbg *PdfColorspaceSpecialPattern )ColorFromPdfObjects (objects []_ce .PdfObject )(PdfColor ,error ){if len (objects )< 1{return nil ,_gd .New ("\u0069\u006e\u0076\u0061l\u0069\u0064\u0020\u006e\u0075\u006d\u0062\u0065\u0072\u0020o\u0066 \u0070\u0061\u0072\u0061\u006d\u0065\u0074e\u0072\u0073");};_agbef :=&PdfColorPattern {};_dbcde ,_dafd :=objects [len (objects )-1].(*_ce .PdfObjectName );if !_dafd {_ebg .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 ;};_agbef .PatternName =*_dbcde ;if len (objects )> 1{_cgec :=objects [0:len (objects )-1];if _addbg .UnderlyingCS ==nil {_ebg .Log .Debug ("P\u0061\u0074t\u0065\u0072\u006e\u0020\u0063\u006f\u006c\u006f\u0072\u0020\u0077\u0069\u0074\u0068\u0020\u0064\u0065\u0066\u0069\u006ee\u0064\u0020\u0063\u006f\u006c\u006f\u0072\u0020\u0063\u006f\u006d\u0070\u006f\u006e\u0065\u006et\u0073\u0020\u0062\u0075\u0074\u0020\u0075\u006e\u0064\u0065\u0072\u006c\u0079i\u006e\u0067\u0020\u0063\u0073\u0020\u006d\u0069\u0073\u0073\u0069n\u0067");return nil ,_gd .New ("\u0075n\u0064\u0065\u0072\u006cy\u0069\u006e\u0067\u0020\u0043S\u0020n\u006ft\u0020\u0064\u0065\u0066\u0069\u006e\u0065d");};_gdae ,_gbecc :=_addbg .UnderlyingCS .ColorFromPdfObjects (_cgec );if _gbecc !=nil {_ebg .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",_gbecc );return nil ,_gbecc ;};_agbef .Color =_gdae ;};return _agbef ,nil ;};func (_cbaf *PdfReader )newPdfActionMovieFromDict (_efb *_ce .PdfObjectDictionary )(*PdfActionMovie ,error ){return &PdfActionMovie {Annotation :_efb .Get ("\u0041\u006e\u006e\u006f\u0074\u0061\u0074\u0069\u006f\u006e"),T :_efb .Get ("\u0054"),Operation :_efb .Get ("\u004fp\u0065\u0072\u0061\u0074\u0069\u006fn")},nil ;};
// HasExtGState checks whether a font is defined by the specified keyName.
func (_gaabg *PdfPageResources )HasExtGState (keyName _ce .PdfObjectName )bool {_ ,_gfea :=_gaabg .GetFontByName (keyName );return _gfea ;};func (_gdgdc *PdfReader )newPdfAcroFormFromDict (_cegf *_ce .PdfIndirectObject ,_abeff *_ce .PdfObjectDictionary )(*PdfAcroForm ,error ){_fgcf :=NewPdfAcroForm ();if _cegf !=nil {_fgcf ._adfcd =_cegf ;_cegf .PdfObject =_ce .MakeDict ();};if _ffef :=_abeff .Get ("\u0046\u0069\u0065\u006c\u0064\u0073");_ffef !=nil {_ecdff ,_bdaa :=_ce .GetArray (_ffef );if !_bdaa {return nil ,_c .Errorf ("\u0066i\u0065\u006c\u0064\u0073\u0020\u006e\u006f\u0074\u0020\u0061\u006e \u0061\u0072\u0072\u0061\u0079\u0020\u0028\u0025\u0054\u0029",_ffef );};var _fbeg []*PdfField ;for _ ,_effaf :=range _ecdff .Elements (){_abfgc ,_dddbe :=_ce .GetIndirect (_effaf );if !_dddbe {if _ ,_cbcd :=_effaf .(*_ce .PdfObjectNull );_cbcd {_ebg .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 ;};_ebg .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",_effaf );return nil ,_c .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");};_efegb ,_cefgb :=_gdgdc .newPdfFieldFromIndirectObject (_abfgc ,nil );if _cefgb !=nil {return nil ,_cefgb ;};_ebg .Log .Trace ("\u0041\u0063\u0072\u006fFo\u0072\u006d\u0020\u0046\u0069\u0065\u006c\u0064\u003a\u0020\u0025\u002b\u0076",*_efegb );_fbeg =append (_fbeg ,_efegb );};_fgcf .Fields =&_fbeg ;};if _abbg :=_abeff .Get ("\u004ee\u0065d\u0041\u0070\u0070\u0065\u0061\u0072\u0061\u006e\u0063\u0065\u0073");_abbg !=nil {_dgedf ,_bbef :=_ce .GetBool (_abbg );if _bbef {_fgcf .NeedAppearances =_dgedf ;}else {_ebg .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",_abbg );};};if _dfgbe :=_abeff .Get ("\u0053\u0069\u0067\u0046\u006c\u0061\u0067\u0073");_dfgbe !=nil {_caag ,_dfec :=_ce .GetInt (_dfgbe );if _dfec {_fgcf .SigFlags =_caag ;}else {_ebg .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",_dfgbe );};};if _eebd :=_abeff .Get ("\u0043\u004f");_eebd !=nil {_fcaee ,_dbae :=_ce .GetArray (_eebd );if _dbae {_fgcf .CO =_fcaee ;}else {_ebg .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",_eebd );};};if _gabf :=_abeff .Get ("\u0044\u0052");_gabf !=nil {if _ccgfa ,_eagb :=_ce .GetDict (_gabf );_eagb {_ecedg ,_baggd :=NewPdfPageResourcesFromDict (_ccgfa );if _baggd !=nil {_ebg .Log .Error ("\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0044R\u003a\u0020\u0025\u0076",_baggd );return nil ,_baggd ;};_fgcf .DR =_ecedg ;}else {_ebg .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",_gabf );};};if _cgfca :=_abeff .Get ("\u0044\u0041");_cgfca !=nil {_bgbb ,_bfddca :=_ce .GetString (_cgfca );if _bfddca {_fgcf .DA =_bgbb ;}else {_ebg .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",_cgfca );};};if _edfg :=_abeff .Get ("\u0051");_edfg !=nil {_ecgdg ,_bafcf :=_ce .GetInt (_edfg );if _bafcf {_fgcf .Q =_ecgdg ;}else {_ebg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a \u0051\u0020\u0069\u006e\u0076a\u006ci\u0064 \u0028\u0067\u006f\u0074\u0020\u0025\u0054)",_edfg );};};if _gacf :=_abeff .Get ("\u0058\u0046\u0041");_gacf !=nil {_fgcf .XFA =_gacf ;};return _fgcf ,nil ;};
// ToPdfObject returns colorspace in a PDF object format [name dictionary]
func (_gcff *PdfColorspaceCalRGB )ToPdfObject ()_ce .PdfObject {_eggeb :=&_ce .PdfObjectArray {};_eggeb .Append (_ce .MakeName ("\u0043\u0061\u006c\u0052\u0047\u0042"));_aecf :=_ce .MakeDict ();if _gcff .WhitePoint !=nil {_beba :=_ce .MakeArray (_ce .MakeFloat (_gcff .WhitePoint [0]),_ce .MakeFloat (_gcff .WhitePoint [1]),_ce .MakeFloat (_gcff .WhitePoint [2]));_aecf .Set ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074",_beba );}else {_ebg .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 _gcff .BlackPoint !=nil {_bgba :=_ce .MakeArray (_ce .MakeFloat (_gcff .BlackPoint [0]),_ce .MakeFloat (_gcff .BlackPoint [1]),_ce .MakeFloat (_gcff .BlackPoint [2]));_aecf .Set ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074",_bgba );};if _gcff .Gamma !=nil {_bdgb :=_ce .MakeArray (_ce .MakeFloat (_gcff .Gamma [0]),_ce .MakeFloat (_gcff .Gamma [1]),_ce .MakeFloat (_gcff .Gamma [2]));_aecf .Set ("\u0047\u0061\u006dm\u0061",_bdgb );};if _gcff .Matrix !=nil {_fdec :=_ce .MakeArray (_ce .MakeFloat (_gcff .Matrix [0]),_ce .MakeFloat (_gcff .Matrix [1]),_ce .MakeFloat (_gcff .Matrix [2]),_ce .MakeFloat (_gcff .Matrix [3]),_ce .MakeFloat (_gcff .Matrix [4]),_ce .MakeFloat (_gcff .Matrix [5]),_ce .MakeFloat (_gcff .Matrix [6]),_ce .MakeFloat (_gcff .Matrix [7]),_ce .MakeFloat (_gcff .Matrix [8]));_aecf .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_fdec );};_eggeb .Append (_aecf );if _gcff ._gcbc !=nil {_gcff ._gcbc .PdfObject =_eggeb ;return _gcff ._gcbc ;};return _eggeb ;};
// PdfColorspaceCalRGB stores A, B, C components
type PdfColorspaceCalRGB struct{WhitePoint []float64 ;BlackPoint []float64 ;Gamma []float64 ;Matrix []float64 ;_bbfe *_ce .PdfObjectDictionary ;_gcbc *_ce .PdfIndirectObject ;};
// GetNamedDestinations returns the Names entry in the PDF catalog.
// See section 12.3.2.3 "Named Destinations" (p. 367 PDF32000_2008).
func (_bgfgc *PdfReader )GetNamedDestinations ()(_ce .PdfObject ,error ){_gfgef :=_ce .ResolveReference (_bgfgc ._gaadd .Get ("\u004e\u0061\u006de\u0073"));if _gfgef ==nil {return nil ,nil ;};if !_bgfgc ._ebegg {_bdgdf :=_bgfgc .traverseObjectData (_gfgef );if _bdgdf !=nil {return nil ,_bdgdf ;};};return _gfgef ,nil ;};func (_gcggf *Image )resampleLowBits (_fbbaf []uint32 ){_afaa :=_age .BytesPerLine (int (_gcggf .Width ),int (_gcggf .BitsPerComponent ),_gcggf .ColorComponents );_dfcdf :=make ([]byte ,_gcggf .ColorComponents *_afaa *int (_gcggf .Height ));_cafea :=int (_gcggf .BitsPerComponent )*_gcggf .ColorComponents *int (_gcggf .Width );_gdfa :=uint8 (8);var (_becd ,_cgfgf int ;_aedda uint32 ;);for _faabg :=0;_faabg < int (_gcggf .Height );_faabg ++{_cgfgf =_faabg *_afaa ;for _egba :=0;_egba < _cafea ;_egba ++{_aedda =_fbbaf [_becd ];_gdfa -=uint8 (_gcggf .BitsPerComponent );_dfcdf [_cgfgf ]|=byte (_aedda )<<_gdfa ;if _gdfa ==0{_gdfa =8;_cgfgf ++;};_becd ++;};};_gcggf .Data =_dfcdf ;};
// GetNumComponents returns the number of color components of the colorspace device.
// Returns 3 for a Lab device.
func (_dddgb *PdfColorspaceLab )GetNumComponents ()int {return 3};
// NewPdfAnnotationRedact returns a new redact annotation.
func NewPdfAnnotationRedact ()*PdfAnnotationRedact {_gcgc :=NewPdfAnnotation ();_bebb :=&PdfAnnotationRedact {};_bebb .PdfAnnotation =_gcgc ;_bebb .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_gcgc .SetContext (_bebb );return _bebb ;};
// ToPdfObject implements interface PdfModel.
func (_fcc *PdfActionGoToR )ToPdfObject ()_ce .PdfObject {_fcc .PdfAction .ToPdfObject ();_de :=_fcc ._bdf ;_bfg :=_de .PdfObject .(*_ce .PdfObjectDictionary );_bfg .SetIfNotNil ("\u0053",_ce .MakeName (string (ActionTypeGoToR )));if _fcc .F !=nil {_bfg .Set ("\u0046",_fcc .F .ToPdfObject ());};_bfg .SetIfNotNil ("\u0044",_fcc .D );_bfg .SetIfNotNil ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw",_fcc .NewWindow );return _de ;};func (_eec *PdfReader )newPdfActionGotoFromDict (_agbg *_ce .PdfObjectDictionary )(*PdfActionGoTo ,error ){return &PdfActionGoTo {D :_agbg .Get ("\u0044")},nil ;};
// Set applies flag fl to the flag's bitmask and returns the combined flag.
func (_ccca FieldFlag )Set (fl FieldFlag )FieldFlag {return FieldFlag (_ccca .Mask ()|fl .Mask ())};
// GetSubFilter returns SubFilter value or empty string.
func (_facge *pdfSignDictionary )GetSubFilter ()string {_gcfgd :=_facge .Get ("\u0053u\u0062\u0046\u0069\u006c\u0074\u0065r");if _gcfgd ==nil {return "";};if _egdbd ,_dceef :=_ce .GetNameVal (_gcfgd );_dceef {return _egdbd ;};return "";};
// PdfOutlineItem represents an outline item dictionary (Table 153 - pp. 376 - 377).
type PdfOutlineItem struct{PdfOutlineTreeNode ;Title *_ce .PdfObjectString ;Parent *PdfOutlineTreeNode ;Prev *PdfOutlineTreeNode ;Next *PdfOutlineTreeNode ;Count *int64 ;Dest _ce .PdfObject ;A _ce .PdfObject ;SE _ce .PdfObject ;C _ce .PdfObject ;F _ce .PdfObject ;_cfgdb *_ce .PdfIndirectObject ;};
// PdfActionNamed represents a named action.
type PdfActionNamed struct{*PdfAction ;N _ce .PdfObject ;};
// ColorFromFloats returns a new PdfColor based on input color components.
func (_dgbee *PdfColorspaceDeviceN )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=_dgbee .GetNumComponents (){return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_bbbge ,_aaa :=_dgbee .TintTransform .Evaluate (vals );if _aaa !=nil {return nil ,_aaa ;};_cfbf ,_aaa :=_dgbee .AlternateSpace .ColorFromFloats (_bbbge );if _aaa !=nil {return nil ,_aaa ;};return _cfbf ,nil ;};
// SetVersion sets the PDF version of the output file.
func (_eggea *PdfWriter )SetVersion (majorVersion ,minorVersion int ){_eggea ._cgbgf =majorVersion ;_eggea ._cacc =minorVersion ;};
// 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 ;_aefg *_ce .PdfIndirectObject ;
// Type: Sig/DocTimeStamp
Type *_ce .PdfObjectName ;Filter *_ce .PdfObjectName ;SubFilter *_ce .PdfObjectName ;Contents *_ce .PdfObjectString ;Cert _ce .PdfObject ;ByteRange *_ce .PdfObjectArray ;Reference *_ce .PdfObjectArray ;Changes *_ce .PdfObjectArray ;Name *_ce .PdfObjectString ;M *_ce .PdfObjectString ;Location *_ce .PdfObjectString ;Reason *_ce .PdfObjectString ;ContactInfo *_ce .PdfObjectString ;R *_ce .PdfObjectInteger ;V *_ce .PdfObjectInteger ;PropBuild *_ce .PdfObjectDictionary ;PropAuthTime *_ce .PdfObjectInteger ;PropAuthType *_ce .PdfObjectName ;};
// ToPdfObject returns the text field dictionary within an indirect object (container).
func (_aedd *PdfFieldText )ToPdfObject ()_ce .PdfObject {_aedd .PdfField .ToPdfObject ();_fegdc :=_aedd ._gfeec ;_fcbdc :=_fegdc .PdfObject .(*_ce .PdfObjectDictionary );_fcbdc .Set ("\u0046\u0054",_ce .MakeName ("\u0054\u0078"));if _aedd .DA !=nil {_fcbdc .Set ("\u0044\u0041",_aedd .DA );};if _aedd .Q !=nil {_fcbdc .Set ("\u0051",_aedd .Q );};if _aedd .DS !=nil {_fcbdc .Set ("\u0044\u0053",_aedd .DS );};if _aedd .RV !=nil {_fcbdc .Set ("\u0052\u0056",_aedd .RV );};if _aedd .MaxLen !=nil {_fcbdc .Set ("\u004d\u0061\u0078\u004c\u0065\u006e",_aedd .MaxLen );};return _fegdc ;};
// ImageToRGB converts CalRGB colorspace image to RGB and returns the result.
func (_gede *PdfColorspaceCalRGB )ImageToRGB (img Image )(Image ,error ){_gfcc :=_ac .NewReader (img .getBase ());_cegc :=_age .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),3,nil ,nil ,nil );_agaae :=_ac .NewWriter (_cegc );_cbedf :=_ag .Pow (2,float64 (img .BitsPerComponent ))-1;_gbc :=make ([]uint32 ,3);var (_ffbab error ;_ggcge ,_gbdad ,_egd ,_dbgf ,_fccg ,_gddd float64 ;);for {_ffbab =_gfcc .ReadSamples (_gbc );if _ffbab ==_cg .EOF {break ;}else if _ffbab !=nil {return img ,_ffbab ;};_ggcge =float64 (_gbc [0])/_cbedf ;_gbdad =float64 (_gbc [1])/_cbedf ;_egd =float64 (_gbc [2])/_cbedf ;_dbgf =_gede .Matrix [0]*_ag .Pow (_ggcge ,_gede .Gamma [0])+_gede .Matrix [3]*_ag .Pow (_gbdad ,_gede .Gamma [1])+_gede .Matrix [6]*_ag .Pow (_egd ,_gede .Gamma [2]);_fccg =_gede .Matrix [1]*_ag .Pow (_ggcge ,_gede .Gamma [0])+_gede .Matrix [4]*_ag .Pow (_gbdad ,_gede .Gamma [1])+_gede .Matrix [7]*_ag .Pow (_egd ,_gede .Gamma [2]);_gddd =_gede .Matrix [2]*_ag .Pow (_ggcge ,_gede .Gamma [0])+_gede .Matrix [5]*_ag .Pow (_gbdad ,_gede .Gamma [1])+_gede .Matrix [8]*_ag .Pow (_egd ,_gede .Gamma [2]);_ggcge =3.240479*_dbgf +-1.537150*_fccg +-0.498535*_gddd ;_gbdad =-0.969256*_dbgf +1.875992*_fccg +0.041556*_gddd ;_egd =0.055648*_dbgf +-0.204043*_fccg +1.057311*_gddd ;_ggcge =_ag .Min (_ag .Max (_ggcge ,0),1.0);_gbdad =_ag .Min (_ag .Max (_gbdad ,0),1.0);_egd =_ag .Min (_ag .Max (_egd ,0),1.0);_gbc [0]=uint32 (_ggcge *_cbedf );_gbc [1]=uint32 (_gbdad *_cbedf );_gbc [2]=uint32 (_egd *_cbedf );if _ffbab =_agaae .WriteSamples (_gbc );_ffbab !=nil {return img ,_ffbab ;};};return _efeaf (&_cegc ),nil ;};
// NewPdfActionNamed returns a new "named" action.
func NewPdfActionNamed ()*PdfActionNamed {_effe :=NewPdfAction ();_ca :=&PdfActionNamed {};_ca .PdfAction =_effe ;_effe .SetContext (_ca );return _ca ;};
// SetXObjectImageByName adds the provided XObjectImage to the page resources.
// The added XObjectImage is identified by the specified name.
func (_bcfc *PdfPageResources )SetXObjectImageByName (keyName _ce .PdfObjectName ,ximg *XObjectImage )error {_bbfda :=ximg .ToPdfObject ().(*_ce .PdfObjectStream );_gaccg :=_bcfc .SetXObjectByName (keyName ,_bbfda );return _gaccg ;};
// SetAnnotations sets the annotations list.
func (_agcge *PdfPage )SetAnnotations (annotations []*PdfAnnotation ){_agcge ._bdcg =annotations };
// ImageToRGB convert an indexed image to RGB.
func (_cbccf *PdfColorspaceSpecialIndexed )ImageToRGB (img Image )(Image ,error ){N :=_cbccf .Base .GetNumComponents ();if N < 1{return Image {},_c .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 );};_fefe :=_age .NewImageBase (int (img .Width ),int (img .Height ),8,N ,nil ,img ._fdcac ,img ._cddaa );_cecb :=_ac .NewReader (img .getBase ());_fagg :=_ac .NewWriter (_fefe );var (_bafe uint32 ;_gbfc int ;_bfdb error ;);for {_bafe ,_bfdb =_cecb .ReadSample ();if _bfdb ==_cg .EOF {break ;}else if _bfdb !=nil {return img ,_bfdb ;};_gbfc =int (_bafe );_ebg .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",_gbfc ,N ,len (_cbccf ._agff ));if (_gbfc +1)*N > len (_cbccf ._agff ){_gbfc =len (_cbccf ._agff )/N -1;_ebg .Log .Trace ("C\u006c\u0069\u0070\u0070in\u0067 \u0074\u006f\u0020\u0069\u006ed\u0065\u0078\u003a\u0020\u0025\u0064",_gbfc );if _gbfc < 0{_ebg .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 _gdbg :=_gbfc *N ;_gdbg < (_gbfc +1)*N ;_gdbg ++{if _bfdb =_fagg .WriteSample (uint32 (_cbccf ._agff [_gdbg ]));_bfdb !=nil {return img ,_bfdb ;};};};return _cbccf .Base .ImageToRGB (_efeaf (&_fefe ));};
// Write writes the Appender output to io.Writer.
// It can only be called once and further invocations will result in an error.
func (_ggdea *PdfAppender )Write (w _cg .Writer )error {if _ggdea ._dgda {return _gd .New ("\u0061\u0070\u0070\u0065\u006e\u0064\u0065\u0072\u0020\u0077\u0072\u0069\u0074e\u0020\u0063\u0061\u006e\u0020\u006fn\u006c\u0079\u0020\u0062\u0065\u0020\u0069\u006e\u0076\u006f\u006b\u0065\u0064 \u006f\u006e\u0063\u0065");};_fbbf :=NewPdfWriter ();_cdee ,_dceg :=_ce .GetDict (_fbbf ._eegga );if !_dceg {return _gd .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0050\u0061g\u0065\u0073\u0020\u006f\u0062\u006a\u0020(\u006e\u006f\u0074\u0020\u0061\u0020\u0064\u0069\u0063\u0074\u0029");};_egff ,_dceg :=_cdee .Get ("\u004b\u0069\u0064\u0073").(*_ce .PdfObjectArray );if !_dceg {return _gd .New ("\u0069\u006ev\u0061\u006c\u0069\u0064 \u0050\u0061g\u0065\u0073\u0020\u004b\u0069\u0064\u0073\u0020o\u0062\u006a\u0020\u0028\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0061r\u0072\u0061\u0079\u0029");};_agcag ,_dceg :=_cdee .Get ("\u0043\u006f\u0075n\u0074").(*_ce .PdfObjectInteger );if !_dceg {return _gd .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064 \u0050\u0061\u0067e\u0073\u0020\u0043\u006fu\u006e\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0020\u0028\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0069\u006e\u0074\u0065\u0067\u0065\u0072\u0029");};_ddea :=_ggdea ._aega ._dbfe ;_gfeg :=_ddea .GetTrailer ();if _gfeg ==nil {return _gd .New ("\u006di\u0073s\u0069\u006e\u0067\u0020\u0074\u0072\u0061\u0069\u006c\u0065\u0072");};_bdb ,_dceg :=_ce .GetIndirect (_gfeg .Get ("\u0052\u006f\u006f\u0074"));if !_dceg {return _gd .New ("c\u0061\u0074\u0061\u006c\u006f\u0067 \u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0065\u0072 \u006e\u006f\u0074 \u0066o\u0075\u006e\u0064");};_debd ,_dceg :=_ce .GetDict (_bdb );if !_dceg {_ebg .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",_bdb ,*_gfeg );return _gd .New ("\u006di\u0073s\u0069\u006e\u0067\u0020\u0063\u0061\u0074\u0061\u006c\u006f\u0067");};for _ ,_eddg :=range _debd .Keys (){if _fbbf ._ddaae .Get (_eddg )==nil {_ddfg :=_debd .Get (_eddg );_fbbf ._ddaae .Set (_eddg ,_ddfg );};};if _ggdea ._dba !=nil {_fbbf ._ddaae .Set ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d",_ggdea ._dba .ToPdfObject ());_ggdea .updateObjectsDeep (_ggdea ._dba .ToPdfObject (),nil );};_ggdea .addNewObject (_fbbf ._aagfa );_ggdea .addNewObject (_fbbf ._gedca );_cebc :=false ;if len (_ggdea ._aega .PageList )!=len (_ggdea ._fdef ){_cebc =true ;}else {for _cgag :=range _ggdea ._aega .PageList {switch {case _ggdea ._fdef [_cgag ]==_ggdea ._aega .PageList [_cgag ]:case _ggdea ._fdef [_cgag ]==_ggdea .Reader .PageList [_cgag ]:default:_cebc =true ;};if _cebc {break ;};};};if _cebc {_ggdea .updateObjectsDeep (_fbbf ._eegga ,nil );}else {_ggdea ._gbfa [_fbbf ._eegga ]=struct{}{};};_fbbf ._eegga .ObjectNumber =_ggdea .Reader ._acfe .ObjectNumber ;_ggdea ._daea [_fbbf ._eegga ]=_ggdea .Reader ._acfe .ObjectNumber ;_cdaf :=[]_ce .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 _ ,_abgc :=range _ggdea ._fdef {_bbcc :=_abgc .ToPdfObject ();*_agcag =*_agcag +1;if _eccg ,_beab :=_bbcc .(*_ce .PdfIndirectObject );_beab &&_eccg .GetParser ()==_ggdea ._aega ._dbfe {_egff .Append (&_eccg .PdfObjectReference );continue ;};if _acag ,_fdda :=_ce .GetDict (_bbcc );_fdda {_ggb ,_bcaa :=_acag .Get ("\u0050\u0061\u0072\u0065\u006e\u0074").(*_ce .PdfIndirectObject );for _bcaa {_ebg .Log .Trace ("\u0050a\u0067e\u0020\u0050\u0061\u0072\u0065\u006e\u0074\u003a\u0020\u0025\u0054",_ggb );_cgccb ,_ddc :=_ggb .PdfObject .(*_ce .PdfObjectDictionary );if !_ddc {return _gd .New ("i\u006e\u0076\u0061\u006cid\u0020P\u0061\u0072\u0065\u006e\u0074 \u006f\u0062\u006a\u0065\u0063\u0074");};for _ ,_gada :=range _cdaf {_ebg .Log .Trace ("\u0046\u0069\u0065\u006c\u0064\u0020\u0025\u0073",_gada );if _acag .Get (_gada )!=nil {_ebg .Log .Trace ("\u002d \u0070a\u0067\u0065\u0020\u0068\u0061s\u0020\u0061l\u0072\u0065\u0061\u0064\u0079");continue ;};if _cege :=_cgccb .Get (_gada );_cege !=nil {_ebg .Log .Trace ("\u0049\u006e\u0068\u0065ri\u0074\u0069\u006e\u0067\u0020\u0066\u0069\u0065\u006c\u0064\u0020\u0025\u0073",_gada );_acag .Set (_gada ,_cege );};};_ggb ,_bcaa =_cgccb .Get ("\u0050\u0061\u0072\u0065\u006e\u0074").(*_ce .PdfIndirectObject );_ebg .Log .Trace ("\u004ee\u0078t\u0020\u0070\u0061\u0072\u0065\u006e\u0074\u003a\u0020\u0025\u0054",_cgccb .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"));};_acag .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_fbbf ._eegga );};_ggdea .updateObjectsDeep (_bbcc ,nil );_egff .Append (_bbcc );};if _ ,_abcg :=_ggdea ._cbdd .Seek (0,_cg .SeekStart );_abcg !=nil {return _abcg ;};_gfegc :=make (map[SignatureHandler ]_cg .Writer );_fddd :=_ce .MakeArray ();for _ ,_adcc :=range _ggdea ._fadd {if _ffb ,_bee :=_ce .GetIndirect (_adcc );_bee {if _fbg ,_bcad :=_ffb .PdfObject .(*pdfSignDictionary );_bcad {_gbbd :=*_fbg ._ecbgc ;var _baba error ;_gfegc [_gbbd ],_baba =_gbbd .NewDigest (_fbg ._abdde );if _baba !=nil {return _baba ;};_fddd .Append (_ce .MakeInteger (0xfffff),_ce .MakeInteger (0xfffff));};};};if _fddd .Len ()> 0{_fddd .Append (_ce .MakeInteger (0xfffff),_ce .MakeInteger (0xfffff));};for _ ,_ecdf :=range _ggdea ._fadd {if _bfed ,_fafa :=_ce .GetIndirect (_ecdf );_fafa {if _ceeb ,_efgca :=_bfed .PdfObject .(*pdfSignDictionary );_efgca {_ceeb .Set ("\u0042y\u0074\u0065\u0052\u0061\u006e\u0067e",_fddd );};};};_cggg :=len (_gfegc )> 0;var _affb _cg .Reader =_ggdea ._cbdd ;if _cggg {_dfbd :=make ([]_cg .Writer ,0,len (_gfegc ));for _ ,_dbdcc :=range _gfegc {_dfbd =append (_dfbd ,_dbdcc );};_affb =_cg .TeeReader (_ggdea ._cbdd ,_cg .MultiWriter (_dfbd ...));};_bfec ,_cfef :=_cg .Copy (w ,_affb );if _cfef !=nil {return _cfef ;};if len (_ggdea ._fadd )==0{return nil ;};_fbbf ._dabegf =_bfec ;_fbbf .ObjNumOffset =_ggdea ._beacf ;_fbbf ._cfgfc =true ;_fbbf ._bbbca =_ggdea ._bbbg ;_fbbf ._ccdag =_ggdea ._afga ;_fbbf ._cgad =_ggdea ._aeaa ;_fbbf ._cacc =_ggdea ._aega .PdfVersion ().Minor ;_fbbf ._dfgaa =_ggdea ._daea ;_efbcd :=_ggdea ._agbe .GetXrefType ();if _efbcd !=nil {_dcfa :=*_efbcd ==_ce .XrefTypeObjectStream ;_fbbf ._bfge =&_dcfa ;};_fbbf ._gdbdce =map[_ce .PdfObject ]struct{}{};_fbbf ._agacd =[]_ce .PdfObject {};for _ ,_daac :=range _ggdea ._fadd {if _ ,_cafd :=_ggdea ._gbfa [_daac ];_cafd {continue ;};_fbbf .addObject (_daac );};_abfe :=w ;if _cggg {_abfe =_f .NewBuffer (nil );};if _bdefc :=_fbbf .Write (_abfe );_bdefc !=nil {return _bdefc ;};if _cggg {_gdef :=_abfe .(*_f .Buffer ).Bytes ();_cfbg :=_ce .MakeArray ();var _bcfee []*pdfSignDictionary ;var _bff int64 ;for _ ,_bedd :=range _fbbf ._agacd {if _baec ,_cegg :=_ce .GetIndirect (_bedd );_cegg {if _cca ,_geeb :=_baec .PdfObject .(*pdfSignDictionary );_geeb {_bcfee =append (_bcfee ,_cca );_ggdd :=_cca ._gfeca +int64 (_cca ._deeee );_cfbg .Append (_ce .MakeInteger (_bff ),_ce .MakeInteger (_ggdd -_bff ));_bff =_cca ._gfeca +int64 (_cca ._adee );};};};_cfbg .Append (_ce .MakeInteger (_bff ),_ce .MakeInteger (_bfec +int64 (len (_gdef ))-_bff ));_aafc :=[]byte (_cfbg .WriteString ());for _ ,_ebfab :=range _bcfee {_fbee :=int (_ebfab ._gfeca -_bfec );for _cebb :=_ebfab ._cdcf ;_cebb < _ebfab ._bbca ;_cebb ++{_gdef [_fbee +_cebb ]=' ';};_eecd :=_gdef [_fbee +_ebfab ._cdcf :_fbee +_ebfab ._bbca ];copy (_eecd ,_aafc );};var _eddf int ;for _ ,_gcd :=range _bcfee {_aafe :=int (_gcd ._gfeca -_bfec );_ccgg :=_gdef [_eddf :_aafe +_gcd ._deeee ];_fabf :=*_gcd ._ecbgc ;_gfegc [_fabf ].Write (_ccgg );_eddf =_aafe +_gcd ._adee ;};for _ ,_bcag :=range _bcfee {_edbb :=_gdef [_eddf :];_bggc :=*_bcag ._ecbgc ;_gfegc [_bggc ].Write (_edbb );};for _ ,_cae :=range _bcfee {_cbea :=int (_cae ._gfeca -_bfec );_ccee :=*_cae ._ecbgc ;_dbdd :=_gfegc [_ccee ];if _abced :=_ccee .Sign (_cae ._abdde ,_dbdd );_abced !=nil {return _abced ;};_cae ._abdde .ByteRange =_cfbg ;_bbdec :=[]byte (_cae ._abdde .Contents .WriteString ());for _gcf :=_cae ._cdcf ;_gcf < _cae ._bbca ;_gcf ++{_gdef [_cbea +_gcf ]=' ';};for _bbcg :=_cae ._deeee ;_bbcg < _cae ._adee ;_bbcg ++{_gdef [_cbea +_bbcg ]=' ';};_ccdb :=_gdef [_cbea +_cae ._cdcf :_cbea +_cae ._bbca ];copy (_ccdb ,_aafc );_ccdb =_gdef [_cbea +_cae ._deeee :_cbea +_cae ._adee ];copy (_ccdb ,_bbdec );};_abfc :=_f .NewBuffer (_gdef );_ ,_cfef =_cg .Copy (w ,_abfc );if _cfef !=nil {return _cfef ;};};_ggdea ._dgda =true ;return nil ;};func _bbdba (_dfdfg *PdfField )[]*PdfField {_debf :=[]*PdfField {_dfdfg };for _ ,_dabdb :=range _dfdfg .Kids {_debf =append (_debf ,_bbdba (_dabdb )...);};return _debf ;};
// SetOCProperties sets the optional content properties.
func (_ceade *PdfWriter )SetOCProperties (ocProperties _ce .PdfObject )error {_edbfa :=_ceade ._ddaae ;if ocProperties !=nil {_ebg .Log .Trace ("\u0053e\u0074\u0074\u0069\u006e\u0067\u0020\u004f\u0043\u0020\u0050\u0072o\u0070\u0065\u0072\u0074\u0069\u0065\u0073\u002e\u002e\u002e");_edbfa .Set ("\u004f\u0043\u0050r\u006f\u0070\u0065\u0072\u0074\u0069\u0065\u0073",ocProperties );return _ceade .addObjects (ocProperties );};return nil ;};
// SetColorspaceByName adds the provided colorspace to the page resources.
func (_abbaf *PdfPageResources )SetColorspaceByName (keyName _ce .PdfObjectName ,cs PdfColorspace )error {_cdfb ,_cagc :=_abbaf .GetColorspaces ();if _cagc !=nil {_ebg .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",_cagc );return _cagc ;};if _cdfb ==nil {_cdfb =NewPdfPageResourcesColorspaces ();_abbaf .SetColorSpace (_cdfb );};_cdfb .Set (keyName ,cs );return nil ;};
// PdfActionLaunch represents a launch action.
type PdfActionLaunch struct{*PdfAction ;F *PdfFilespec ;Win _ce .PdfObject ;Mac _ce .PdfObject ;Unix _ce .PdfObject ;NewWindow _ce .PdfObject ;};func (_gdbff *PdfColorspaceSpecialPattern )String ()string {return "\u0050a\u0074\u0074\u0065\u0072\u006e";};
// PdfWriter handles outputing PDF content.
type PdfWriter struct{_gedca *_ce .PdfIndirectObject ;_eegga *_ce .PdfIndirectObject ;_dedf map[_ce .PdfObject ]struct{};_agacd []_ce .PdfObject ;_gdbdce map[_ce .PdfObject ]struct{};_gaedf []*_ce .PdfIndirectObject ;_ffgga *PdfOutlineTreeNode ;_ddaae *_ce .PdfObjectDictionary ;_fdfba []_ce .PdfObject ;_aagfa *_ce .PdfIndirectObject ;_egeaa *_g .Writer ;_agfff int64 ;_cegedc error ;_ageed *_ce .PdfCrypt ;_bbgda *_ce .PdfObjectDictionary ;_gfdaf *_ce .PdfIndirectObject ;_acgd *_ce .PdfObjectArray ;_cgbgf int ;_cacc int ;_bfge *bool ;_ggdc map[_ce .PdfObject ][]*_ce .PdfObjectDictionary ;_cebggd *PdfAcroForm ;_dccdc Optimizer ;_fdadg map[int ]crossReference ;_dabegf int64 ;ObjNumOffset int ;_cfgfc bool ;_bbbca _ce .XrefTable ;_ccdag int64 ;_cgad int64 ;_dfgaa map[_ce .PdfObject ]int64 ;_eebde map[_ce .PdfObject ]struct{};};
// 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 ,_cce .SimpleEncoder ,error ){_fdbee ,_egecd :=_abgcc (basefont );if _egecd !=nil {return nil ,nil ,_egecd ;};_caeb ,_bcabd :=_fdbee .Encoder ().(_cce .SimpleEncoder );if !_bcabd {return nil ,nil ,_c .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",_fdbee .Encoder ());};_fegb :=make (map[rune ]_cce .GlyphName );for _afede :=range alphabet {if _ ,_gbfg :=_caeb .RuneToCharcode (_afede );!_gbfg {_ ,_fdbbg :=_fdbee ._eegg [_afede ];if !_fdbbg {_ebg .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",_afede ,_afede );continue ;};_bebd ,_fdbbg :=_cce .RuneToGlyph (_afede );if !_fdbbg {_ebg .Log .Debug ("\u006eo\u0020\u0067\u006c\u0079\u0070\u0068\u0020\u0066\u006f\u0072\u0020r\u0075\u006e\u0065\u0020\u0025\u0023\u0078\u003d\u0025\u0071",_afede ,_afede );continue ;};if len (_fegb )>=255{return nil ,nil ,_gd .New ("\u0074\u006f\u006f\u0020\u006d\u0061\u006e\u0079\u0020\u0063\u0068\u0061\u0072a\u0063\u0074\u0065\u0072\u0073\u0020f\u006f\u0072\u0020\u0073\u0069\u006d\u0070\u006c\u0065\u0020\u0065\u006e\u0063o\u0064\u0069\u006e\u0067");};_fegb [_afede ]=_bebd ;};};var (_ecea []_cce .CharCode ;_aecca []_cce .CharCode ;);for _egag :=_cce .CharCode (1);_egag <=0xff;_egag ++{_babcb ,_fbfb :=_caeb .CharcodeToRune (_egag );if !_fbfb {_ecea =append (_ecea ,_egag );continue ;};if _ ,_fbfb =alphabet [_babcb ];!_fbfb {_aecca =append (_aecca ,_egag );};};_cgcf :=append (_ecea ,_aecca ...);if len (_cgcf )< len (_fegb ){return nil ,nil ,_c .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 (_fegb ),len (_cgcf ));};_decb :=make ([]rune ,0,len (_fegb ));for _ebad :=range _fegb {_decb =append (_decb ,_ebad );};_ba .Slice (_decb ,func (_fagee ,_ebeg int )bool {return _decb [_fagee ]< _decb [_ebeg ]});_baad :=make (map[_cce .CharCode ]_cce .GlyphName ,len (_decb ));for _ ,_abacg :=range _decb {_bcca :=_cgcf [0];_cgcf =_cgcf [1:];_baad [_bcca ]=_fegb [_abacg ];};_caeb =_cce .ApplyDifferences (_caeb ,_baad );_fdbee .SetEncoder (_caeb );return &PdfFont {_decac :&_fdbee },_caeb ,nil ;};
// ColorFromPdfObjects returns a new PdfColor based on the input slice of color
// components. The slice should contain a single PdfObjectFloat element.
func (_deff *PdfColorspaceSpecialSeparation )ColorFromPdfObjects (objects []_ce .PdfObject )(PdfColor ,error ){if len (objects )!=1{return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_fcea ,_gbae :=_ce .GetNumbersAsFloat (objects );if _gbae !=nil {return nil ,_gbae ;};return _deff .ColorFromFloats (_fcea );};
// Insert adds an outline item as a child of the current outline item,
// at the specified index.
func (_aaae *OutlineItem )Insert (index uint ,item *OutlineItem ){_badaf :=uint (len (_aaae .Entries ));if index > _badaf {index =_badaf ;};_aaae .Entries =append (_aaae .Entries [:index ],append ([]*OutlineItem {item },_aaae .Entries [index :]...)...);};
// GetNumComponents returns the number of color components.
func (_fbda *PdfColorspaceICCBased )GetNumComponents ()int {return _fbda .N };func (_faegg *PdfShading )getShadingDict ()(*_ce .PdfObjectDictionary ,error ){_dfbbd :=_faegg ._efbab ;if _egfga ,_fffg :=_dfbbd .(*_ce .PdfIndirectObject );_fffg {_efgde ,_bbgcg :=_egfga .PdfObject .(*_ce .PdfObjectDictionary );if !_bbgcg {return nil ,_ce .ErrTypeError ;};return _efgde ,nil ;}else if _gcafc ,_cbgdg :=_dfbbd .(*_ce .PdfObjectStream );_cbgdg {return _gcafc .PdfObjectDictionary ,nil ;}else if _dgdaaf ,_fabec :=_dfbbd .(*_ce .PdfObjectDictionary );_fabec {return _dgdaaf ,nil ;}else {_ebg .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 ,_ce .ErrTypeError ;};};
// ColorToRGB converts a CalRGB color to an RGB color.
func (_ggdg *PdfColorspaceCalRGB )ColorToRGB (color PdfColor )(PdfColor ,error ){_fbcc ,_gfbe :=color .(*PdfColorCalRGB );if !_gfbe {_ebg .Log .Debug ("\u0049\u006e\u0070ut\u0020\u0063\u006f\u006c\u006f\u0072\u0020\u006e\u006f\u0074\u0020\u0063\u0061\u006c\u0020\u0072\u0067\u0062");return nil ,_gd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_gdbd :=_fbcc .A ();_gbeca :=_fbcc .B ();_eced :=_fbcc .C ();X :=_ggdg .Matrix [0]*_ag .Pow (_gdbd ,_ggdg .Gamma [0])+_ggdg .Matrix [3]*_ag .Pow (_gbeca ,_ggdg .Gamma [1])+_ggdg .Matrix [6]*_ag .Pow (_eced ,_ggdg .Gamma [2]);Y :=_ggdg .Matrix [1]*_ag .Pow (_gdbd ,_ggdg .Gamma [0])+_ggdg .Matrix [4]*_ag .Pow (_gbeca ,_ggdg .Gamma [1])+_ggdg .Matrix [7]*_ag .Pow (_eced ,_ggdg .Gamma [2]);Z :=_ggdg .Matrix [2]*_ag .Pow (_gdbd ,_ggdg .Gamma [0])+_ggdg .Matrix [5]*_ag .Pow (_gbeca ,_ggdg .Gamma [1])+_ggdg .Matrix [8]*_ag .Pow (_eced ,_ggdg .Gamma [2]);_bbac :=3.240479*X +-1.537150*Y +-0.498535*Z ;_adeab :=-0.969256*X +1.875992*Y +0.041556*Z ;_bdec :=0.055648*X +-0.204043*Y +1.057311*Z ;_bbac =_ag .Min (_ag .Max (_bbac ,0),1.0);_adeab =_ag .Min (_ag .Max (_adeab ,0),1.0);_bdec =_ag .Min (_ag .Max (_bdec ,0),1.0);return NewPdfColorDeviceRGB (_bbac ,_adeab ,_bdec ),nil ;};
// MergePageWith appends page content to source Pdf file page content.
func (_egfd *PdfAppender )MergePageWith (pageNum int ,page *PdfPage )error {_ggef :=pageNum -1;var _feef *PdfPage ;for _ecb ,_eeg :=range _egfd ._fdef {if _ecb ==_ggef {_feef =_eeg ;};};if _feef ==nil {return _c .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 _feef ._adcebd !=nil &&_feef ._adcebd .GetParser ()==_egfd ._aega ._dbfe {_feef =_feef .Duplicate ();_egfd ._fdef [_ggef ]=_feef ;};page =page .Duplicate ();_begee (page );_dabfb :=_gbdab (_feef );_eggf :=_gbdab (page );_fdf :=make (map[_ce .PdfObjectName ]_ce .PdfObjectName );for _cdcc :=range _eggf {if _ ,_adaf :=_dabfb [_cdcc ];_adaf {for _daaf :=1;true ;_daaf ++{_cfda :=_ce .PdfObjectName (string (_cdcc )+_bd .Itoa (_daaf ));if _ ,_eceg :=_dabfb [_cfda ];!_eceg {_fdf [_cdcc ]=_cfda ;break ;};};};};_dgagf ,_ccde :=page .GetContentStreams ();if _ccde !=nil {return _ccde ;};_bbcf ,_ccde :=_feef .GetContentStreams ();if _ccde !=nil {return _ccde ;};for _agfc ,_ecga :=range _dgagf {for _dfga ,_gecc :=range _fdf {_ecga =_aga .Replace (_ecga ,"\u002f"+string (_dfga ),"\u002f"+string (_gecc ),-1);};_dgagf [_agfc ]=_ecga ;};_bbcf =append (_bbcf ,_dgagf ...);if _ddbbd :=_feef .SetContentStreams (_bbcf ,_ce .NewFlateEncoder ());_ddbbd !=nil {return _ddbbd ;};for _ ,_deag :=range page ._bdcg {_feef ._bdcg =append (_feef ._bdcg ,_deag );};if _feef .Resources ==nil {_feef .Resources =NewPdfPageResources ();};if page .Resources !=nil {_feef .Resources .Font =_egfd .mergeResources (_feef .Resources .Font ,page .Resources .Font ,_fdf );_feef .Resources .XObject =_egfd .mergeResources (_feef .Resources .XObject ,page .Resources .XObject ,_fdf );_feef .Resources .Properties =_egfd .mergeResources (_feef .Resources .Properties ,page .Resources .Properties ,_fdf );if _feef .Resources .ProcSet ==nil {_feef .Resources .ProcSet =page .Resources .ProcSet ;};_feef .Resources .Shading =_egfd .mergeResources (_feef .Resources .Shading ,page .Resources .Shading ,_fdf );_feef .Resources .ExtGState =_egfd .mergeResources (_feef .Resources .ExtGState ,page .Resources .ExtGState ,_fdf );};_decde ,_ccde :=_feef .GetMediaBox ();if _ccde !=nil {return _ccde ;};_bagg ,_ccde :=page .GetMediaBox ();if _ccde !=nil {return _ccde ;};var _gccg bool ;if _decde .Llx > _bagg .Llx {_decde .Llx =_bagg .Llx ;_gccg =true ;};if _decde .Lly > _bagg .Lly {_decde .Lly =_bagg .Lly ;_gccg =true ;};if _decde .Urx < _bagg .Urx {_decde .Urx =_bagg .Urx ;_gccg =true ;};if _decde .Ury < _bagg .Ury {_decde .Ury =_bagg .Ury ;_gccg =true ;};if _gccg {_feef .MediaBox =_decde ;};return nil ;};
// ImageToGray returns a new grayscale image based on the passed in RGB image.
func (_gagd *PdfColorspaceDeviceRGB )ImageToGray (img Image )(Image ,error ){if img .ColorComponents !=3{return img ,_gd .New ("\u0070\u0072\u006f\u0076\u0069\u0064e\u0064\u0020\u0069\u006d\u0061\u0067\u0065\u0020\u0069\u0073\u0020\u006e\u006ft\u0020\u0061\u0020\u0044\u0065\u0076\u0069c\u0065\u0052\u0047\u0042");};_bcab ,_adeag :=_age .NewImage (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),img .ColorComponents ,img .Data ,img ._fdcac ,img ._cddaa );if _adeag !=nil {return img ,_adeag ;};_cebg ,_adeag :=_age .GrayConverter .Convert (_bcab );if _adeag !=nil {return img ,_adeag ;};return _efeaf (_cebg .Base ()),nil ;};
// SetContext sets the sub action (context).
func (_ec *PdfAction )SetContext (ctx PdfModel ){_ec ._cga =ctx };func (_eebb *pdfCIDFontType2 )getFontDescriptor ()*PdfFontDescriptor {return _eebb ._adae };
// Write writes out the PDF.
func (_ecee *PdfWriter )Write (writer _cg .Writer )error {_ebg .Log .Trace ("\u0057r\u0069\u0074\u0065\u0028\u0029");_dadgb :=_ea .GetLicenseKey ();if (_dadgb ==nil ||!_dadgb .IsLicensed ())&&!_aggac {_c .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");_c .Println ("-\u0020\u0047\u0065\u0074\u0020\u0061\u0020\u0066\u0072e\u0065\u0020\u0074\u0072\u0069\u0061\u006c l\u0069\u0063\u0065\u006es\u0065\u0020\u006f\u006e\u0020\u0068\u0074\u0074\u0070s:\u002f\u002fu\u006e\u0069\u0064\u006f\u0063\u002e\u0069\u006f");return _gd .New ("\u0075\u006e\u0069\u0070d\u0066\u0020\u006c\u0069\u0063\u0065\u006e\u0073\u0065\u0020c\u006fd\u0065\u0020\u0072\u0065\u0071\u0075\u0069r\u0065\u0064");};if _ecee ._ffgga !=nil {_ebg .Log .Trace ("\u004f\u0075t\u006c\u0069\u006ee\u0054\u0072\u0065\u0065\u003a\u0020\u0025\u002b\u0076",_ecee ._ffgga );_aabae :=_ecee ._ffgga .ToPdfObject ();_ebg .Log .Trace ("\u004fu\u0074\u006c\u0069\u006e\u0065\u0073\u003a\u0020\u0025\u002b\u0076 \u0028\u0025\u0054\u002c\u0020\u0070\u003a\u0025\u0070\u0029",_aabae ,_aabae ,_aabae );_ecee ._ddaae .Set ("\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0073",_aabae );_abfd :=_ecee .addObjects (_aabae );if _abfd !=nil {return _abfd ;};};if _ecee ._cebggd !=nil {_ebg .Log .Trace ("\u0057r\u0069t\u0069\u006e\u0067\u0020\u0061c\u0072\u006f \u0066\u006f\u0072\u006d\u0073");_bcbbg :=_ecee ._cebggd .ToPdfObject ();_ebg .Log .Trace ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d\u003a\u0020\u0025\u002b\u0076",_bcbbg );_ecee ._ddaae .Set ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d",_bcbbg );_gbfea :=_ecee .addObjects (_bcbbg );if _gbfea !=nil {return _gbfea ;};};for _dbabad ,_deaee :=range _ecee ._ggdc {if !_ecee .hasObject (_dbabad ){_ebg .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",_dbabad ,_dbabad ,_dbabad );for _ ,_ebacd :=range _deaee {for _ ,_acaec :=range _ebacd .Keys (){_adcbb :=_ebacd .Get (_acaec );if _adcbb ==_dbabad {_ebg .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");_ebacd .Set (_acaec ,_ce .MakeNull ());break ;};};};};};_ecee ._ddaae .Set ("\u0056e\u0072\u0073\u0069\u006f\u006e",_ce .MakeName (_c .Sprintf ("\u0025\u0064\u002e%\u0064",_ecee ._cgbgf ,_ecee ._cacc )));_ecee .copyObjects ();if _ecee ._dccdc !=nil {var _gfdff error ;_ecee ._agacd ,_gfdff =_ecee ._dccdc .Optimize (_ecee ._agacd );if _gfdff !=nil {return _gfdff ;};_facgc :=make (map[_ce .PdfObject ]struct{},len (_ecee ._agacd ));for _ ,_aaddgg :=range _ecee ._agacd {_facgc [_aaddgg ]=struct{}{};};_ecee ._gdbdce =_facgc ;};_ecee ._agfff =_ecee ._dabegf ;_ecee ._egeaa =_g .NewWriter (writer );_adfbe :=_ecee ._cgbgf > 1||(_ecee ._cgbgf ==1&&_ecee ._cacc > 4);if _ecee ._bfge !=nil {_adfbe =*_ecee ._bfge ;};_bddc :=make (map[_ce .PdfObject ]bool );for _ ,_ffdb :=range _ecee ._agacd {if _cbdad ,_cfcdc :=_ffdb .(*_ce .PdfObjectStreams );_cfcdc {_adfbe =true ;for _ ,_fbbg :=range _cbdad .Elements (){_bddc [_fbbg ]=true ;if _gdad ,_faaaf :=_fbbg .(*_ce .PdfIndirectObject );_faaaf {_bddc [_gdad .PdfObject ]=true ;};};};};if _adfbe &&_ecee ._cgbgf ==1&&_ecee ._cacc < 5{_ecee ._cacc =5;};if _ecee ._cfgfc {_ecee .writeString ("\u000a");}else {_ecee .writeString (_c .Sprintf ("\u0025\u0025\u0050D\u0046\u002d\u0025\u0064\u002e\u0025\u0064\u000a",_ecee ._cgbgf ,_ecee ._cacc ));_ecee .writeString ("\u0025\u00e2\u00e3\u00cf\u00d3\u000a");};_ecee .updateObjectNumbers ();_ebg .Log .Trace ("\u0057\u0072\u0069\u0074\u0069\u006e\u0067\u0020\u0025d\u0020\u006f\u0062\u006a",len (_ecee ._agacd ));_ecee ._fdadg =make (map[int ]crossReference );_ecee ._fdadg [0]=crossReference {Type :0,ObjectNumber :0,Generation :0xFFFF};if _ecee ._bbbca .ObjectMap !=nil {for _bbedf ,_dagebg :=range _ecee ._bbbca .ObjectMap {if _bbedf ==0{continue ;};if _dagebg .XType ==_ce .XrefTypeObjectStream {_gafe :=crossReference {Type :2,ObjectNumber :_dagebg .OsObjNumber ,Index :_dagebg .OsObjIndex };_ecee ._fdadg [_bbedf ]=_gafe ;};if _dagebg .XType ==_ce .XrefTypeTableEntry {_ggacd :=crossReference {Type :1,ObjectNumber :_dagebg .ObjectNumber ,Offset :_dagebg .Offset };_ecee ._fdadg [_bbedf ]=_ggacd ;};};};for _ ,_baccg :=range _ecee ._agacd {if _dbgge :=_bddc [_baccg ];_dbgge {continue ;};_acdb :=int64 (0);switch _ggbbf :=_baccg .(type ){case *_ce .PdfIndirectObject :_acdb =_ggbbf .ObjectNumber ;case *_ce .PdfObjectStream :_acdb =_ggbbf .ObjectNumber ;case *_ce .PdfObjectStreams :_acdb =_ggbbf .ObjectNumber ;default:_ebg .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",_baccg );return ErrTypeCheck ;};if _ecee ._ageed !=nil &&_baccg !=_ecee ._gfdaf {_efcda :=_ecee ._ageed .Encrypt (_baccg ,int64 (_acdb ),0);if _efcda !=nil {_ebg .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",_efcda );return _efcda ;};};_ecee .writeObject (int (_acdb ),_baccg );};_fbagf :=_ecee ._agfff ;var _fddg int ;for _eeceeg :=range _ecee ._fdadg {if _eeceeg > _fddg {_fddg =_eeceeg ;};};if _adfbe {_afag :=_fddg +1;_ecee ._fdadg [_afag ]=crossReference {Type :1,ObjectNumber :_afag ,Offset :_fbagf };_fgdg :=_f .NewBuffer (nil );_fbcg :=_ce .MakeArray ();for _fgfag :=0;_fgfag <=_fddg ;{for ;_fgfag <=_fddg ;_fgfag ++{_affc ,_ddbee :=_ecee ._fdadg [_fgfag ];if _ddbee &&(!_ecee ._cfgfc ||_ecee ._cfgfc &&(_affc .Type ==1&&_affc .Offset >=_ecee ._cgad ||_affc .Type ==0)){break ;};};var _gecdg int ;for _gecdg =_fgfag +1;_gecdg <=_fddg ;_gecdg ++{_fbgfc ,_adbg :=_ecee ._fdadg [_gecdg ];if _adbg &&(!_ecee ._cfgfc ||_ecee ._cfgfc &&(_fbgfc .Type ==1&&_fbgfc .Offset > _ecee ._cgad )){continue ;};break ;};_fbcg .Append (_ce .MakeInteger (int64 (_fgfag )),_ce .MakeInteger (int64 (_gecdg -_fgfag )));for _bgecb :=_fgfag ;_bgecb < _gecdg ;_bgecb ++{_aafbb :=_ecee ._fdadg [_bgecb ];switch _aafbb .Type {case 0:_e .Write (_fgdg ,_e .BigEndian ,byte (0));_e .Write (_fgdg ,_e .BigEndian ,uint32 (0));_e .Write (_fgdg ,_e .BigEndian ,uint16 (0xFFFF));case 1:_e .Write (_fgdg ,_e .BigEndian ,byte (1));_e .Write (_fgdg ,_e .BigEndian ,uint32 (_aafbb .Offset ));_e .Write (_fgdg ,_e .BigEndian ,uint16 (_aafbb .Generation ));case 2:_e .Write (_fgdg ,_e .BigEndian ,byte (2));_e .Write (_fgdg ,_e .BigEndian ,uint32 (_aafbb .ObjectNumber ));_e .Write (_fgdg ,_e .BigEndian ,uint16 (_aafbb .Index ));};};_fgfag =_gecdg +1;};_cbcfg ,_geabb :=_ce .MakeStream (_fgdg .Bytes (),_ce .NewFlateEncoder ());if _geabb !=nil {return _geabb ;};_cbcfg .ObjectNumber =int64 (_afag );_cbcfg .PdfObjectDictionary .Set ("\u0054\u0079\u0070\u0065",_ce .MakeName ("\u0058\u0052\u0065\u0066"));_cbcfg .PdfObjectDictionary .Set ("\u0057",_ce .MakeArray (_ce .MakeInteger (1),_ce .MakeInteger (4),_ce .MakeInteger (2)));_cbcfg .PdfObjectDictionary .Set ("\u0049\u006e\u0064e\u0078",_fbcg );_cbcfg .PdfObjectDictionary .Set ("\u0053\u0069\u007a\u0065",_ce .MakeInteger (int64 (_afag +1)));_cbcfg .PdfObjectDictionary .Set ("\u0049\u006e\u0066\u006f",_ecee ._aagfa );_cbcfg .PdfObjectDictionary .Set ("\u0052\u006f\u006f\u0074",_ecee ._gedca );if _ecee ._cfgfc &&_ecee ._ccdag > 0{_cbcfg .PdfObjectDictionary .Set ("\u0050\u0072\u0065\u0076",_ce .MakeInteger (_ecee ._ccdag ));};if _ecee ._ageed !=nil {_cbcfg .Set ("\u0045n\u0063\u0072\u0079\u0070\u0074",_ecee ._gfdaf );_cbcfg .Set ("\u0049\u0044",_ecee ._acgd );_ebg .Log .Trace ("\u0049d\u0073\u003a\u0020\u0025\u0073",_ecee ._acgd );};_ecee .writeObject (int (_cbcfg .ObjectNumber ),_cbcfg );}else {_ecee .writeString ("\u0078\u0072\u0065\u0066\u000d\u000a");for _bfca :=0;_bfca <=_fddg ;{for ;_bfca <=_fddg ;_bfca ++{_bdcf ,_gbagf :=_ecee ._fdadg [_bfca ];if _gbagf &&(!_ecee ._cfgfc ||_ecee ._cfgfc &&(_bdcf .Type ==1&&_bdcf .Offset >=_ecee ._cgad ||_bdcf .Type ==0)){break ;};};var _begcc int ;for _begcc =_bfca +1;_begcc <=_fddg ;_begcc ++{_dbgdbd ,_befac :=_ecee ._fdadg [_begcc ];if _befac &&(!_ecee ._cfgfc ||_ecee ._cfgfc &&(_dbgdbd .Type ==1&&_dbgdbd .Offset > _ecee ._cgad )){continue ;};break ;};_efeafb :=_c .Sprintf ("\u0025d\u0020\u0025\u0064\u000d\u000a",_bfca ,_begcc -_bfca );_ecee .writeString (_efeafb );for _eeeab :=_bfca ;_eeeab < _begcc ;_eeeab ++{_cgbe :=_ecee ._fdadg [_eeeab ];switch _cgbe .Type {case 0:_efeafb =_c .Sprintf ("\u0025\u002e\u0031\u0030\u0064\u0020\u0025\u002e\u0035d\u0020\u0066\u000d\u000a",0,65535);_ecee .writeString (_efeafb );case 1:_efeafb =_c .Sprintf ("\u0025\u002e\u0031\u0030\u0064\u0020\u0025\u002e\u0035d\u0020\u006e\u000d\u000a",_cgbe .Offset ,0);_ecee .writeString (_efeafb );};};_bfca =_begcc +1;};_fefdae :=_ce .MakeDict ();_fefdae .Set ("\u0049\u006e\u0066\u006f",_ecee ._aagfa );_fefdae .Set ("\u0052\u006f\u006f\u0074",_ecee ._gedca );_fefdae .Set ("\u0053\u0069\u007a\u0065",_ce .MakeInteger (int64 (_fddg +1)));if _ecee ._cfgfc &&_ecee ._ccdag > 0{_fefdae .Set ("\u0050\u0072\u0065\u0076",_ce .MakeInteger (_ecee ._ccdag ));};if _ecee ._ageed !=nil {_fefdae .Set ("\u0045n\u0063\u0072\u0079\u0070\u0074",_ecee ._gfdaf );_fefdae .Set ("\u0049\u0044",_ecee ._acgd );_ebg .Log .Trace ("\u0049d\u0073\u003a\u0020\u0025\u0073",_ecee ._acgd );};_ecee .writeString ("\u0074\u0072\u0061\u0069\u006c\u0065\u0072\u000a");_ecee .writeString (_fefdae .WriteString ());_ecee .writeString ("\u000a");};_bffe :=_c .Sprintf ("\u0073\u0074\u0061\u0072\u0074\u0078\u0072\u0065\u0066\u000a\u0025\u0064\u000a",_fbagf );_ecee .writeString (_bffe );_ecee .writeString ("\u0025\u0025\u0045\u004f\u0046\u000a");if _ecee ._cegedc ==nil {_ecee ._cegedc =_ecee ._egeaa .Flush ();};return _ecee ._cegedc ;};
// SetFontByName sets the font specified by keyName to the given object.
func (_affefd *PdfPageResources )SetFontByName (keyName _ce .PdfObjectName ,obj _ce .PdfObject )error {if _affefd .Font ==nil {_affefd .Font =_ce .MakeDict ();};_afba ,_edccaa :=_ce .TraceToDirectObject (_affefd .Font ).(*_ce .PdfObjectDictionary );if !_edccaa {_ebg .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",_ce .TraceToDirectObject (_affefd .Font ));return _ce .ErrTypeError ;};_afba .Set (keyName ,obj );return nil ;};
// NewPdfColorspaceSpecialSeparation returns a new separation color.
func NewPdfColorspaceSpecialSeparation ()*PdfColorspaceSpecialSeparation {_bdgbb :=&PdfColorspaceSpecialSeparation {};return _bdgbb ;};
// Val returns the color value.
func (_dfcc *PdfColorDeviceGray )Val ()float64 {return float64 (*_dfcc )};
// NewPdfAnnotationLink returns a new link annotation.
func NewPdfAnnotationLink ()*PdfAnnotationLink {_bgd :=NewPdfAnnotation ();_aae :=&PdfAnnotationLink {};_aae .PdfAnnotation =_bgd ;_bgd .SetContext (_aae );return _aae ;};
// GetContainingPdfObject implements interface PdfModel.
func (_caebe *PdfSignature )GetContainingPdfObject ()_ce .PdfObject {return _caebe ._aefg };var _gdaaef ="";
// ToPdfObject returns the PDF representation of the colorspace.
func (_gbba *PdfColorspaceDeviceCMYK )ToPdfObject ()_ce .PdfObject {return _ce .MakeName ("\u0044\u0065\u0076\u0069\u0063\u0065\u0043\u004d\u0059\u004b");};
// ToPdfObject implements interface PdfModel.
// Note: Call the sub-annotation's ToPdfObject to set both the generic and non-generic information.
func (_gaff *PdfAnnotation )ToPdfObject ()_ce .PdfObject {_gcea :=_gaff ._bda ;_bfdd :=_gcea .PdfObject .(*_ce .PdfObjectDictionary );_bfdd .Clear ();_bfdd .Set ("\u0054\u0079\u0070\u0065",_ce .MakeName ("\u0041\u006e\u006eo\u0074"));_bfdd .SetIfNotNil ("\u0052\u0065\u0063\u0074",_gaff .Rect );_bfdd .SetIfNotNil ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073",_gaff .Contents );_bfdd .SetIfNotNil ("\u0050",_gaff .P );_bfdd .SetIfNotNil ("\u004e\u004d",_gaff .NM );_bfdd .SetIfNotNil ("\u004d",_gaff .M );_bfdd .SetIfNotNil ("\u0046",_gaff .F );_bfdd .SetIfNotNil ("\u0041\u0050",_gaff .AP );_bfdd .SetIfNotNil ("\u0041\u0053",_gaff .AS );_bfdd .SetIfNotNil ("\u0042\u006f\u0072\u0064\u0065\u0072",_gaff .Border );_bfdd .SetIfNotNil ("\u0043",_gaff .C );_bfdd .SetIfNotNil ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074",_gaff .StructParent );_bfdd .SetIfNotNil ("\u004f\u0043",_gaff .OC );return _gcea ;};
// SetDate sets the `M` field of the signature.
func (_ceabe *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";};_ceabe .M =_ce .MakeString (date .Format (format ));};
// PdfColor interface represents a generic color in PDF.
type PdfColor interface{};
// NewPdfActionThread returns a new "thread" action.
func NewPdfActionThread ()*PdfActionThread {_afd :=NewPdfAction ();_bf :=&PdfActionThread {};_bf .PdfAction =_afd ;_afd .SetContext (_bf );return _bf ;};
// SetPatternByName sets a pattern resource specified by keyName.
func (_cdebc *PdfPageResources )SetPatternByName (keyName _ce .PdfObjectName ,pattern _ce .PdfObject )error {if _cdebc .Pattern ==nil {_cdebc .Pattern =_ce .MakeDict ();};_ebgaac ,_ggfg :=_cdebc .Pattern .(*_ce .PdfObjectDictionary );if !_ggfg {return _ce .ErrTypeError ;};_ebgaac .Set (keyName ,pattern );return nil ;};
// NewPdfColorspaceDeviceRGB returns a new RGB colorspace object.
func NewPdfColorspaceDeviceRGB ()*PdfColorspaceDeviceRGB {return &PdfColorspaceDeviceRGB {}};var _beeab ="";
// SetPdfModifiedDate sets the ModDate attribute of the output PDF.
func SetPdfModifiedDate (modifiedDate _a .Time ){_ebgad =modifiedDate };
// NewPdfAnnotationScreen returns a new screen annotation.
func NewPdfAnnotationScreen ()*PdfAnnotationScreen {_effg :=NewPdfAnnotation ();_cecd :=&PdfAnnotationScreen {};_cecd .PdfAnnotation =_effg ;_effg .SetContext (_cecd );return _cecd ;};
// IsTiling specifies if the pattern is a tiling pattern.
func (_acdf *PdfPattern )IsTiling ()bool {return _acdf .PatternType ==1};
// ToPdfObject returns the PDF representation of the colorspace.
func (_fdbb *PdfColorspaceSpecialSeparation )ToPdfObject ()_ce .PdfObject {_fegca :=_ce .MakeArray (_ce .MakeName ("\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e"));_fegca .Append (_fdbb .ColorantName );_fegca .Append (_fdbb .AlternateSpace .ToPdfObject ());_fegca .Append (_fdbb .TintTransform .ToPdfObject ());if _fdbb ._bedf !=nil {_fdbb ._bedf .PdfObject =_fegca ;return _fdbb ._bedf ;};return _fegca ;};
// GetContainingPdfObject implements interface PdfModel.
func (_ffccd *PdfFilespec )GetContainingPdfObject ()_ce .PdfObject {return _ffccd ._ddfgf };
// PdfAnnotationWidget represents Widget annotations.
// Note: Widget annotations are used to display form fields.
// (Section 12.5.6.19).
type PdfAnnotationWidget struct{*PdfAnnotation ;H _ce .PdfObject ;MK _ce .PdfObject ;A _ce .PdfObject ;AA _ce .PdfObject ;BS _ce .PdfObject ;Parent _ce .PdfObject ;_dgg *PdfField ;_abdg bool ;};
// ToJBIG2Image converts current image to the core.JBIG2Image.
func (_bgfe *Image )ToJBIG2Image ()(*_ce .JBIG2Image ,error ){_egfac ,_bagac :=_bgfe .ToGoImage ();if _bagac !=nil {return nil ,_bagac ;};return _ce .GoImageToJBIG2 (_egfac ,_ce .JB2ImageAutoThreshold );};
// ToPdfObject returns a stream object.
func (_caff *XObjectImage )ToPdfObject ()_ce .PdfObject {_fddgf :=_caff ._gfag ;_gbfeg :=_fddgf .PdfObjectDictionary ;if _caff .Filter !=nil {_gbfeg =_caff .Filter .MakeStreamDict ();_fddgf .PdfObjectDictionary =_gbfeg ;};_gbfeg .Set ("\u0054\u0079\u0070\u0065",_ce .MakeName ("\u0058O\u0062\u006a\u0065\u0063\u0074"));_gbfeg .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ce .MakeName ("\u0049\u006d\u0061g\u0065"));_gbfeg .Set ("\u0057\u0069\u0064t\u0068",_ce .MakeInteger (*(_caff .Width )));_gbfeg .Set ("\u0048\u0065\u0069\u0067\u0068\u0074",_ce .MakeInteger (*(_caff .Height )));if _caff .BitsPerComponent !=nil {_gbfeg .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_ce .MakeInteger (*(_caff .BitsPerComponent )));};if _caff .ColorSpace !=nil {_gbfeg .SetIfNotNil ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065",_caff .ColorSpace .ToPdfObject ());};_gbfeg .SetIfNotNil ("\u0049\u006e\u0074\u0065\u006e\u0074",_caff .Intent );_gbfeg .SetIfNotNil ("\u0049m\u0061\u0067\u0065\u004d\u0061\u0073k",_caff .ImageMask );_gbfeg .SetIfNotNil ("\u004d\u0061\u0073\u006b",_caff .Mask );_gbfeg .SetIfNotNil ("\u0044\u0065\u0063\u006f\u0064\u0065",_caff .Decode );_gbfeg .SetIfNotNil ("I\u006e\u0074\u0065\u0072\u0070\u006f\u006c\u0061\u0074\u0065",_caff .Interpolate );_gbfeg .SetIfNotNil ("\u0041\u006c\u0074e\u0072\u006e\u0061\u0074\u0069\u0076\u0065\u0073",_caff .Alternatives );_gbfeg .SetIfNotNil ("\u0053\u004d\u0061s\u006b",_caff .SMask );_gbfeg .SetIfNotNil ("S\u004d\u0061\u0073\u006b\u0049\u006e\u0044\u0061\u0074\u0061",_caff .SMaskInData );_gbfeg .SetIfNotNil ("\u004d\u0061\u0074t\u0065",_caff .Matte );_gbfeg .SetIfNotNil ("\u004e\u0061\u006d\u0065",_caff .Name );_gbfeg .SetIfNotNil ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074",_caff .StructParent );_gbfeg .SetIfNotNil ("\u0049\u0044",_caff .ID );_gbfeg .SetIfNotNil ("\u004f\u0050\u0049",_caff .OPI );_gbfeg .SetIfNotNil ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061",_caff .Metadata );_gbfeg .SetIfNotNil ("\u004f\u0043",_caff .OC );_gbfeg .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_ce .MakeInteger (int64 (len (_caff .Stream ))));_fddgf .Stream =_caff .Stream ;return _fddgf ;};func _cfabg (_gdaff *fontCommon )*pdfCIDFontType0 {return &pdfCIDFontType0 {fontCommon :*_gdaff }};func _gdafg ()string {return _beeab };
// GetNumPages returns the number of pages in the document.
func (_daef *PdfReader )GetNumPages ()(int ,error ){if _daef ._dbfe .GetCrypter ()!=nil &&!_daef ._dbfe .IsAuthenticated (){return 0,_c .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 (_daef ._gggg ),nil ;};
// M returns the value of the magenta component of the color.
func (_cefgg *PdfColorDeviceCMYK )M ()float64 {return float64 (_cefgg [1])};
// 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 ;_facbb *_ce .PdfIndirectObject ;};
// Width returns the width of `rect`.
func (_bagf *PdfRectangle )Width ()float64 {return _ag .Abs (_bagf .Urx -_bagf .Llx )};func (_geg *PdfReader )newPdfAnnotationStampFromDict (_addf *_ce .PdfObjectDictionary )(*PdfAnnotationStamp ,error ){_affe :=PdfAnnotationStamp {};_degg ,_cge :=_geg .newPdfAnnotationMarkupFromDict (_addf );if _cge !=nil {return nil ,_cge ;};_affe .PdfAnnotationMarkup =_degg ;_affe .Name =_addf .Get ("\u004e\u0061\u006d\u0065");return &_affe ,nil ;};func _aagbd (_bebdf *_ce .PdfObjectDictionary )(*PdfShadingType5 ,error ){_dgcbg :=PdfShadingType5 {};_bafec :=_bebdf .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065");if _bafec ==nil {_ebg .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 ;};_bggge ,_aabcc :=_bafec .(*_ce .PdfObjectInteger );if !_aabcc {_ebg .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",_bafec );return nil ,_ce .ErrTypeError ;};_dgcbg .BitsPerCoordinate =_bggge ;_bafec =_bebdf .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074");if _bafec ==nil {_ebg .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 ;};_bggge ,_aabcc =_bafec .(*_ce .PdfObjectInteger );if !_aabcc {_ebg .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",_bafec );return nil ,_ce .ErrTypeError ;};_dgcbg .BitsPerComponent =_bggge ;_bafec =_bebdf .Get ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073\u0050e\u0072\u0052\u006f\u0077");if _bafec ==nil {_ebg .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 ;};_bggge ,_aabcc =_bafec .(*_ce .PdfObjectInteger );if !_aabcc {_ebg .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",_bafec );return nil ,_ce .ErrTypeError ;};_dgcbg .VerticesPerRow =_bggge ;_bafec =_bebdf .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");if _bafec ==nil {_ebg .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 ;};_fedg ,_aabcc :=_bafec .(*_ce .PdfObjectArray );if !_aabcc {_ebg .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",_bafec );return nil ,_ce .ErrTypeError ;};_dgcbg .Decode =_fedg ;if _aeccb :=_bebdf .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");_aeccb !=nil {_dgcbg .Function =[]PdfFunction {};if _fceed ,_fddc :=_aeccb .(*_ce .PdfObjectArray );_fddc {for _ ,_fcdfg :=range _fceed .Elements (){_gbeea ,_ebdfd :=_edddda (_fcdfg );if _ebdfd !=nil {_ebg .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",_ebdfd );return nil ,_ebdfd ;};_dgcbg .Function =append (_dgcbg .Function ,_gbeea );};}else {_aaef ,_eecg :=_edddda (_aeccb );if _eecg !=nil {_ebg .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",_eecg );return nil ,_eecg ;};_dgcbg .Function =append (_dgcbg .Function ,_aaef );};};return &_dgcbg ,nil ;};
// AddOutlineTree adds outlines to a PDF file.
func (_dfdeb *PdfWriter )AddOutlineTree (outlineTree *PdfOutlineTreeNode ){_dfdeb ._ffgga =outlineTree };
// ToPdfObject returns the button field dictionary within an indirect object.
func (_bggga *PdfFieldButton )ToPdfObject ()_ce .PdfObject {_bggga .PdfField .ToPdfObject ();_eeac :=_bggga ._gfeec ;_cgafe :=_eeac .PdfObject .(*_ce .PdfObjectDictionary );_cgafe .Set ("\u0046\u0054",_ce .MakeName ("\u0042\u0074\u006e"));if _bggga .Opt !=nil {_cgafe .Set ("\u004f\u0070\u0074",_bggga .Opt );};return _eeac ;};
// GetContext returns a reference to the subshading entry as represented by PdfShadingType1-7.
func (_egfe *PdfShading )GetContext ()PdfModel {return _egfe ._aadde };
// PdfColorspaceDeviceGray represents a grayscale colorspace.
type PdfColorspaceDeviceGray struct{};
// GetContainingPdfObject returns the container of the shading object (indirect object).
func (_ecdbf *PdfShading )GetContainingPdfObject ()_ce .PdfObject {return _ecdbf ._efbab };
// 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 (_agfcg *PdfFieldButton )GetType ()ButtonType {_efagf :=ButtonTypeCheckbox ;if _agfcg .Ff !=nil {if (uint32 (*_agfcg .Ff )&FieldFlagPushbutton .Mask ())> 0{_efagf =ButtonTypePush ;}else if (uint32 (*_agfcg .Ff )&FieldFlagRadio .Mask ())> 0{_efagf =ButtonTypeRadio ;};};return _efagf ;};func (_bfdbg *PdfWriter )copyObject (_bafea _ce .PdfObject ,_bfgfd map[_ce .PdfObject ]_ce .PdfObject ,_aedg map[_ce .PdfObject ]struct{},_fgcfb bool )_ce .PdfObject {_gefce :=!_bfdbg ._cfgfc &&_aedg !=nil ;if _gacae ,_gcfae :=_bfgfd [_bafea ];_gcfae {if _gefce &&!_fgcfb {delete (_aedg ,_bafea );};return _gacae ;};_ggbbc :=_bafea ;switch _eaaaeb :=_bafea .(type ){case *_ce .PdfObjectArray :_cfcef :=_ce .MakeArray ();_ggbbc =_cfcef ;_bfgfd [_bafea ]=_ggbbc ;for _ ,_begdb :=range _eaaaeb .Elements (){_cfcef .Append (_bfdbg .copyObject (_begdb ,_bfgfd ,_aedg ,_fgcfb ));};case *_ce .PdfObjectStreams :_addfa :=&_ce .PdfObjectStreams {PdfObjectReference :_eaaaeb .PdfObjectReference };_ggbbc =_addfa ;_bfgfd [_bafea ]=_ggbbc ;for _ ,_ceaae :=range _eaaaeb .Elements (){_addfa .Append (_bfdbg .copyObject (_ceaae ,_bfgfd ,_aedg ,_fgcfb ));};case *_ce .PdfObjectStream :_agdg :=&_ce .PdfObjectStream {Stream :_eaaaeb .Stream ,PdfObjectReference :_eaaaeb .PdfObjectReference };_ggbbc =_agdg ;_bfgfd [_bafea ]=_ggbbc ;_agdg .PdfObjectDictionary =_bfdbg .copyObject (_eaaaeb .PdfObjectDictionary ,_bfgfd ,_aedg ,_fgcfb ).(*_ce .PdfObjectDictionary );case *_ce .PdfObjectDictionary :var _edacd bool ;if _gefce &&!_fgcfb {if _bafeab ,_ :=_ce .GetNameVal (_eaaaeb .Get ("\u0054\u0079\u0070\u0065"));_bafeab =="\u0050\u0061\u0067\u0065"{_ ,_ddbfg :=_bfdbg ._dedf [_eaaaeb ];_fgcfb =!_ddbfg ;_edacd =_fgcfb ;};};_egbef :=_ce .MakeDict ();_ggbbc =_egbef ;_bfgfd [_bafea ]=_ggbbc ;for _ ,_efgecb :=range _eaaaeb .Keys (){_egbef .Set (_efgecb ,_bfdbg .copyObject (_eaaaeb .Get (_efgecb ),_bfgfd ,_aedg ,_fgcfb ));};if _edacd {_ggbbc =_ce .MakeNull ();_fgcfb =false ;};case *_ce .PdfIndirectObject :_deafa :=&_ce .PdfIndirectObject {PdfObjectReference :_eaaaeb .PdfObjectReference };_ggbbc =_deafa ;_bfgfd [_bafea ]=_ggbbc ;_deafa .PdfObject =_bfdbg .copyObject (_eaaaeb .PdfObject ,_bfgfd ,_aedg ,_fgcfb );case *_ce .PdfObjectString :_baffc :=*_eaaaeb ;_ggbbc =&_baffc ;_bfgfd [_bafea ]=_ggbbc ;case *_ce .PdfObjectName :_agcdd :=_ce .PdfObjectName (*_eaaaeb );_ggbbc =&_agcdd ;_bfgfd [_bafea ]=_ggbbc ;case *_ce .PdfObjectNull :_ggbbc =_ce .MakeNull ();_bfgfd [_bafea ]=_ggbbc ;case *_ce .PdfObjectInteger :_cfcba :=_ce .PdfObjectInteger (*_eaaaeb );_ggbbc =&_cfcba ;_bfgfd [_bafea ]=_ggbbc ;case *_ce .PdfObjectReference :_bfdfb :=_ce .PdfObjectReference (*_eaaaeb );_ggbbc =&_bfdfb ;_bfgfd [_bafea ]=_ggbbc ;case *_ce .PdfObjectFloat :_bdabg :=_ce .PdfObjectFloat (*_eaaaeb );_ggbbc =&_bdabg ;_bfgfd [_bafea ]=_ggbbc ;case *_ce .PdfObjectBool :_ccbae :=_ce .PdfObjectBool (*_eaaaeb );_ggbbc =&_ccbae ;_bfgfd [_bafea ]=_ggbbc ;case *pdfSignDictionary :_aagca :=&pdfSignDictionary {PdfObjectDictionary :_ce .MakeDict (),_ecbgc :_eaaaeb ._ecbgc ,_abdde :_eaaaeb ._abdde };_ggbbc =_aagca ;_bfgfd [_bafea ]=_ggbbc ;for _ ,_ecbfg :=range _eaaaeb .Keys (){_aagca .Set (_ecbfg ,_bfdbg .copyObject (_eaaaeb .Get (_ecbfg ),_bfgfd ,_aedg ,_fgcfb ));};default:_ebg .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",_bafea );};if _gefce &&_fgcfb {_aedg [_bafea ]=struct{}{};};return _ggbbc ;};
// ImageToRGB returns the passed in image. Method exists in order to satisfy
// the PdfColorspace interface.
func (_fcfg *PdfColorspaceDeviceRGB )ImageToRGB (img Image )(Image ,error ){return img ,nil };
// AddAnnotation appends `annot` to the list of page annotations.
func (_ecbfe *PdfPage )AddAnnotation (annot *PdfAnnotation ){if _ecbfe ._bdcg ==nil {_ecbfe .GetAnnotations ();};_ecbfe ._bdcg =append (_ecbfe ._bdcg ,annot );};
// NewPdfColorspaceDeviceCMYK returns a new CMYK32 colorspace object.
func NewPdfColorspaceDeviceCMYK ()*PdfColorspaceDeviceCMYK {return &PdfColorspaceDeviceCMYK {}};
// GetXObjectByName gets XObject by name.
func (_fccef *PdfPage )GetXObjectByName (name _ce .PdfObjectName )(_ce .PdfObject ,bool ){_dgaac ,_dbfbb :=_fccef .Resources .XObject .(*_ce .PdfObjectDictionary );if !_dbfbb {return nil ,false ;};if _faafc :=_dgaac .Get (name );_faafc !=nil {return _faafc ,true ;};return nil ,false ;};func (_eege fontCommon )coreString ()string {_ebdg :="";if _eege ._adae !=nil {_ebdg =_eege ._adae .String ();};return _c .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",_eege ._dbbag ,_eege ._agcagf ,_eege ._effed ,_eege ._cfae ,_eege ._gbcf !=nil ,_eege .fontFlags (),_ebdg );};func (_ddac *PdfColorspaceDeviceRGB )String ()string {return "\u0044e\u0076\u0069\u0063\u0065\u0052\u0047B";};
// PdfAnnotationScreen represents Screen annotations.
// (Section 12.5.6.18).
type PdfAnnotationScreen struct{*PdfAnnotation ;T _ce .PdfObject ;MK _ce .PdfObject ;A _ce .PdfObject ;AA _ce .PdfObject ;};
// NewPdfColorspaceICCBased returns a new ICCBased colorspace object.
func NewPdfColorspaceICCBased (N int )(*PdfColorspaceICCBased ,error ){_ffcg :=&PdfColorspaceICCBased {};if N !=1&&N !=3&&N !=4{return nil ,_c .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u004e\u0020\u0028\u0031/\u0033\u002f\u0034\u0029");};_ffcg .N =N ;return _ffcg ,nil ;};
// SetReason sets the `Reason` field of the signature.
func (_fgadb *PdfSignature )SetReason (reason string ){_fgadb .Reason =_ce .MakeString (reason )};
// GetContainingPdfObject returns the container of the PdfAcroForm (indirect object).
func (_dfged *PdfAcroForm )GetContainingPdfObject ()_ce .PdfObject {return _dfged ._adfcd };
// 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 _cg .ReadSeeker )(*PdfFont ,error ){const _geaec =_cce .CharCode (32);const _febed =_cce .CharCode (255);_ddgad ,_ggfea :=_dd .ReadAll (r );if _ggfea !=nil {_ebg .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",_ggfea );return nil ,_ggfea ;};_effea ,_ggfea :=_cc .TtfParse (_f .NewReader (_ddgad ));if _ggfea !=nil {_ebg .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",_ggfea );return nil ,_ggfea ;};_cbbbd :=&pdfFontSimple {_bgdcb :make (map[_cce .CharCode ]float64 ),fontCommon :fontCommon {_dbbag :"\u0054\u0072\u0075\u0065\u0054\u0079\u0070\u0065"}};_cbbbd ._bged =_cce .NewWinAnsiEncoder ();_cbbbd ._agcagf =_effea .PostScriptName ;_cbbbd .FirstChar =_ce .MakeInteger (int64 (_geaec ));_cbbbd .LastChar =_ce .MakeInteger (int64 (_febed ));_cabaag :=1000.0/float64 (_effea .UnitsPerEm );if len (_effea .Widths )<=0{return nil ,_gd .New ("\u0045\u0052\u0052O\u0052\u003a\u0020\u004d\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u0072\u0065\u0071\u0075\u0069\u0072\u0065\u0064\u0020\u0061\u0074\u0074\u0072\u0069\u0062\u0075\u0074\u0065 \u0028\u0057\u0069\u0064\u0074\u0068\u0073\u0029");};_aafb :=_cabaag *float64 (_effea .Widths [0]);_bdc :=make ([]float64 ,0,_febed -_geaec +1);for _agfaa :=_geaec ;_agfaa <=_febed ;_agfaa ++{_dgcc ,_abbcg :=_cbbbd .Encoder ().CharcodeToRune (_agfaa );if !_abbcg {_ebg .Log .Debug ("\u0052u\u006e\u0065\u0020\u006eo\u0074\u0020\u0066\u006f\u0075n\u0064 \u0028c\u006f\u0064\u0065\u003a\u0020\u0025\u0064)",_agfaa );_bdc =append (_bdc ,_aafb );continue ;};_cgfc ,_gcdeg :=_effea .Chars [_dgcc ];if !_gcdeg {_ebg .Log .Debug ("R\u0075\u006e\u0065\u0020no\u0074 \u0069\u006e\u0020\u0054\u0054F\u0020\u0043\u0068\u0061\u0072\u0073");_bdc =append (_bdc ,_aafb );continue ;};_gfgcd :=_cabaag *float64 (_effea .Widths [_cgfc ]);_bdc =append (_bdc ,_gfgcd );};_cbbbd .Widths =_ce .MakeIndirectObject (_ce .MakeArrayFromFloats (_bdc ));if len (_bdc )< int (_febed -_geaec +1){_ebg .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 (_bdc ),255-32+1);return nil ,_ce .ErrRangeError ;};for _bafce :=_cce .CharCode (_geaec );_bafce <=_febed ;_bafce ++{_cbbbd ._bgdcb [_bafce ]=_bdc [_bafce -_geaec ];};_cbbbd .Encoding =_ce .MakeName ("\u0057i\u006eA\u006e\u0073\u0069\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067");_edac :=&PdfFontDescriptor {};_edac .FontName =_ce .MakeName (_effea .PostScriptName );_edac .Ascent =_ce .MakeFloat (_cabaag *float64 (_effea .TypoAscender ));_edac .Descent =_ce .MakeFloat (_cabaag *float64 (_effea .TypoDescender ));_edac .CapHeight =_ce .MakeFloat (_cabaag *float64 (_effea .CapHeight ));_edac .FontBBox =_ce .MakeArrayFromFloats ([]float64 {_cabaag *float64 (_effea .Xmin ),_cabaag *float64 (_effea .Ymin ),_cabaag *float64 (_effea .Xmax ),_cabaag *float64 (_effea .Ymax )});_edac .ItalicAngle =_ce .MakeFloat (float64 (_effea .ItalicAngle ));_edac .MissingWidth =_ce .MakeFloat (_cabaag *float64 (_effea .Widths [0]));_gbefd ,_ggfea :=_ce .MakeStream (_ddgad ,_ce .NewFlateEncoder ());if _ggfea !=nil {_ebg .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",_ggfea );return nil ,_ggfea ;};_gbefd .PdfObjectDictionary .Set ("\u004ce\u006e\u0067\u0074\u0068\u0031",_ce .MakeInteger (int64 (len (_ddgad ))));_edac .FontFile2 =_gbefd ;if _effea .Bold {_edac .StemV =_ce .MakeInteger (120);}else {_edac .StemV =_ce .MakeInteger (70);};_eaaaf :=_gadfa ;if _effea .IsFixedPitch {_eaaaf |=_fgae ;};if _effea .ItalicAngle !=0{_eaaaf |=_cccc ;};_edac .Flags =_ce .MakeInteger (int64 (_eaaaf ));_cbbbd ._adae =_edac ;_ecfb :=&PdfFont {_decac :_cbbbd };return _ecfb ,nil ;};
// AlphaMap performs mapping of alpha data for transformations. Allows custom filtering of alpha data etc.
func (_eebac *Image )AlphaMap (mapFunc AlphaMapFunc ){for _efegc ,_gaef :=range _eebac ._fdcac {_eebac ._fdcac [_efegc ]=mapFunc (_gaef );};};
// BorderEffect represents a border effect (Table 167 p. 395).
type BorderEffect int ;
// GetRuneMetrics returns the character metrics for the rune.
// A bool flag is returned to indicate whether or not the entry was found.
func (_cabaab pdfFontSimple )GetRuneMetrics (r rune )(_cc .CharMetrics ,bool ){if _cabaab ._eegg !=nil {_gfdg ,_gdbdc :=_cabaab ._eegg [r ];if _gdbdc {return _gfdg ,true ;};};_daced :=_cabaab .Encoder ();if _daced ==nil {_ebg .Log .Debug ("\u004e\u006f\u0020en\u0063\u006f\u0064\u0065\u0072\u0020\u0066\u006f\u0072\u0020\u0066\u006f\u006e\u0074\u0073\u003d\u0025\u0073",_cabaab );return _cc .CharMetrics {},false ;};_gfegf ,_cdfa :=_daced .RuneToCharcode (r );if !_cdfa {if r !=' '{_ebg .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 ,_cabaab );};return _cc .CharMetrics {},false ;};_gefec ,_bbbb :=_cabaab .GetCharMetrics (_gfegf );return _gefec ,_bbbb ;};
// GetContainingPdfObject returns the container of the outline (indirect object).
func (_ffcfb *PdfOutline )GetContainingPdfObject ()_ce .PdfObject {return _ffcfb ._cdgg };
// PdfColorspaceDeviceCMYK represents a CMYK32 colorspace.
type PdfColorspaceDeviceCMYK struct{};
// B returns the value of the B component of the color.
func (_baaae *PdfColorLab )B ()float64 {return float64 (_baaae [2])};
// AcroFormRepairOptions contains options for rebuilding the AcroForm.
type AcroFormRepairOptions struct{};
// SetFilter sets compression filter. Decodes with current filter sets and
// encodes the data with the new filter.
func (_ebeaf *XObjectImage )SetFilter (encoder _ce .StreamEncoder )error {_gbfeag :=_ebeaf .Stream ;_fcgdd ,_fbgdc :=_ebeaf .Filter .DecodeBytes (_gbfeag );if _fbgdc !=nil {return _fbgdc ;};_ebeaf .Filter =encoder ;encoder .UpdateParams (_ebeaf .getParamsDict ());_gbfeag ,_fbgdc =encoder .EncodeBytes (_fcgdd );if _fbgdc !=nil {return _fbgdc ;};_ebeaf .Stream =_gbfeag ;return nil ;};
// PdfColorLab represents a color in the L*, a*, b* 3 component colorspace.
// Each component is defined in the range 0.0 - 1.0 where 1.0 is the primary intensity.
type PdfColorLab [3]float64 ;
// AllFields returns a flattened list of all fields in the form.
func (_cdbe *PdfAcroForm )AllFields ()[]*PdfField {if _cdbe ==nil {return nil ;};var _cdgb []*PdfField ;if _cdbe .Fields !=nil {for _ ,_aace :=range *_cdbe .Fields {_cdgb =append (_cdgb ,_bbdba (_aace )...);};};return _cdgb ;};
// NewPdfAppender creates a new Pdf appender from a Pdf reader.
func NewPdfAppender (reader *PdfReader )(*PdfAppender ,error ){_decdb :=&PdfAppender {_cbdd :reader ._dafg ,Reader :reader ,_agbe :reader ._dbfe ,_bceec :reader ._acfdf };if _bbfd ,_ggdb :=_decdb ._cbdd .Seek (0,_cg .SeekEnd );_ggdb !=nil {return nil ,_ggdb ;}else {_decdb ._aeaa =_bbfd ;};if _ ,_cdag :=_decdb ._cbdd .Seek (0,_cg .SeekStart );_cdag !=nil {return nil ,_cdag ;};var _agbfd error ;_decdb ._aega ,_agbfd =NewPdfReader (_decdb ._cbdd );if _agbfd !=nil {return nil ,_agbfd ;};for _ ,_begga :=range _decdb .Reader .GetObjectNums (){if _decdb ._beacf < _begga {_decdb ._beacf =_begga ;};};_decdb ._bbbg =_decdb ._agbe .GetXrefTable ();_decdb ._afga =_decdb ._agbe .GetXrefOffset ();_decdb ._adba =make (map[_ce .PdfObject ]struct{});for _ ,_cbec :=range _decdb ._aega .PageList {_decdb ._fdef =append (_decdb ._fdef ,_cbec );};_decdb ._daea =make (map[_ce .PdfObject ]int64 );_decdb ._gbfa =make (map[_ce .PdfObject ]struct{});_decdb ._dba =_decdb ._aega .AcroForm ;return _decdb ,nil ;};
// NewPdfAnnotationCircle returns a new circle annotation.
func NewPdfAnnotationCircle ()*PdfAnnotationCircle {_eac :=NewPdfAnnotation ();_abf :=&PdfAnnotationCircle {};_abf .PdfAnnotation =_eac ;_abf .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_eac .SetContext (_abf );return _abf ;};
// SetPdfTitle sets the Title attribute of the output PDF.
func SetPdfTitle (title string ){_babd =title };func (_bdcec *PdfWriter )writeString (_dedaa string ){if _bdcec ._cegedc !=nil {return ;};_edad ,_faaag :=_bdcec ._egeaa .WriteString (_dedaa );_bdcec ._agfff +=int64 (_edad );_bdcec ._cegedc =_faaag ;};
// Encoder returns the font's text encoder.
func (_bedb *pdfFontSimple )Encoder ()_cce .TextEncoder {if _bedb ._bged !=nil {return _bedb ._bged ;};if _bedb ._edbbe !=nil {return _bedb ._edbbe ;};_aacge ,_ :=_cce .NewSimpleTextEncoder ("\u0053\u0074a\u006e\u0064\u0061r\u0064\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",nil );return _aacge ;};func (_fabfa *PdfAcroForm )filteredFields (_bcdf FieldFilterFunc ,_ffgcb bool )[]*PdfField {if _fabfa ==nil {return nil ;};return _aefeg (_fabfa .Fields ,_bcdf ,_ffgcb );};
// NewPdfAction returns an initialized generic PDF action model.
func NewPdfAction ()*PdfAction {_fg :=&PdfAction {};_fg ._bdf =_ce .MakeIndirectObject (_ce .MakeDict ());return _fg ;};
// NewPdfAnnotationUnderline returns a new text underline annotation.
func NewPdfAnnotationUnderline ()*PdfAnnotationUnderline {_daeb :=NewPdfAnnotation ();_ggde :=&PdfAnnotationUnderline {};_ggde .PdfAnnotation =_daeb ;_ggde .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_daeb .SetContext (_ggde );return _ggde ;};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";);
// HasXObjectByName checks if an XObject with a specified keyName is defined.
func (_gdca *PdfPageResources )HasXObjectByName (keyName _ce .PdfObjectName )bool {_cbfef ,_ :=_gdca .GetXObjectByName (keyName );return _cbfef !=nil ;};
// NewOutline returns a new outline instance.
func NewOutline ()*Outline {return &Outline {}};
// PdfAnnotation3D represents 3D annotations.
// (Section 13.6.2).
type PdfAnnotation3D struct{*PdfAnnotation ;T3DD _ce .PdfObject ;T3DV _ce .PdfObject ;T3DA _ce .PdfObject ;T3DI _ce .PdfObject ;T3DB _ce .PdfObject ;};
// NewPdfAnnotationPolygon returns a new polygon annotation.
func NewPdfAnnotationPolygon ()*PdfAnnotationPolygon {_ccd :=NewPdfAnnotation ();_eecf :=&PdfAnnotationPolygon {};_eecf .PdfAnnotation =_ccd ;_eecf .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_ccd .SetContext (_eecf );return _eecf ;};
// PdfActionTrans represents a trans action.
type PdfActionTrans struct{*PdfAction ;Trans _ce .PdfObject ;};func (_ebf *PdfReader )newPdfActionGotoRFromDict (_aca *_ce .PdfObjectDictionary )(*PdfActionGoToR ,error ){_dcce ,_afa :=_cbc (_aca .Get ("\u0046"));if _afa !=nil {return nil ,_afa ;};return &PdfActionGoToR {D :_aca .Get ("\u0044"),NewWindow :_aca .Get ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw"),F :_dcce },nil ;};func (_ddgb *PdfReader )newPdfAnnotationMarkupFromDict (_edb *_ce .PdfObjectDictionary )(*PdfAnnotationMarkup ,error ){_abac :=&PdfAnnotationMarkup {};if _bcf :=_edb .Get ("\u0054");_bcf !=nil {_abac .T =_bcf ;};if _ecag :=_edb .Get ("\u0050\u006f\u0070u\u0070");_ecag !=nil {_bgeg ,_fdc :=_ecag .(*_ce .PdfIndirectObject );if !_fdc {if _ ,_ecc :=_ecag .(*_ce .PdfObjectNull );!_ecc {return nil ,_gd .New ("p\u006f\u0070\u0075\u0070\u0020\u0073\u0068\u006f\u0075\u006c\u0064\u0020\u0070\u006f\u0069\u006e\u0074\u0020t\u006f\u0020\u0061\u006e\u0020\u0069\u006e\u0064\u0069\u0072ec\u0074\u0020\u006fb\u006ae\u0063\u0074");};}else {_bfe ,_fgfb :=_ddgb .newPdfAnnotationFromIndirectObject (_bgeg );if _fgfb !=nil {return nil ,_fgfb ;};if _bfe !=nil {_cgffa ,_cee :=_bfe ._aff .(*PdfAnnotationPopup );if !_cee {return nil ,_gd .New ("\u006f\u0062\u006ae\u0063\u0074\u0020\u006e\u006f\u0074\u0020\u0072\u0065\u0066\u0065\u0072\u0072\u0069\u006e\u0067\u0020\u0074\u006f\u0020\u0061\u0020\u0070\u006f\u0070\u0075\u0070\u0020\u0061n\u006e\u006f\u0074\u0061\u0074\u0069\u006f\u006e");};_abac .Popup =_cgffa ;};};};if _gfad :=_edb .Get ("\u0043\u0041");_gfad !=nil {_abac .CA =_gfad ;};if _deca :=_edb .Get ("\u0052\u0043");_deca !=nil {_abac .RC =_deca ;};if _eece :=_edb .Get ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065");_eece !=nil {_abac .CreationDate =_eece ;};if _baae :=_edb .Get ("\u0049\u0052\u0054");_baae !=nil {_abac .IRT =_baae ;};if _dfd :=_edb .Get ("\u0053\u0075\u0062\u006a");_dfd !=nil {_abac .Subj =_dfd ;};if _fcbf :=_edb .Get ("\u0052\u0054");_fcbf !=nil {_abac .RT =_fcbf ;};if _fba :=_edb .Get ("\u0049\u0054");_fba !=nil {_abac .IT =_fba ;};if _aaf :=_edb .Get ("\u0045\u0078\u0044\u0061\u0074\u0061");_aaf !=nil {_abac .ExData =_aaf ;};return _abac ,nil ;};
// PdfAnnotationUnderline represents Underline annotations.
// (Section 12.5.6.10).
type PdfAnnotationUnderline struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _ce .PdfObject ;};
// 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 (_effad *PdfPage )SetContentStreams (cStreams []string ,encoder _ce .StreamEncoder )error {if len (cStreams )==0{_effad .Contents =nil ;return nil ;};if encoder ==nil {encoder =_ce .NewRawEncoder ();};var _deae []*_ce .PdfObjectStream ;for _ ,_abgd :=range cStreams {_daeg :=&_ce .PdfObjectStream {};_fafed :=encoder .MakeStreamDict ();_ebbd ,_dfcb :=encoder .EncodeBytes ([]byte (_abgd ));if _dfcb !=nil {return _dfcb ;};_fafed .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_ce .MakeInteger (int64 (len (_ebbd ))));_daeg .PdfObjectDictionary =_fafed ;_daeg .Stream =[]byte (_ebbd );_deae =append (_deae ,_daeg );};if len (_deae )==1{_effad .Contents =_deae [0];}else {_cbfe :=_ce .MakeArray ();for _ ,_bgdee :=range _deae {_cbfe .Append (_bgdee );};_effad .Contents =_cbfe ;};return nil ;};var _ pdfFont =(*pdfCIDFontType2 )(nil );
// ToInteger convert to an integer format.
func (_aecc *PdfColorDeviceRGB )ToInteger (bits int )[3]uint32 {_ecbd :=_ag .Pow (2,float64 (bits ))-1;return [3]uint32 {uint32 (_ecbd *_aecc .R ()),uint32 (_ecbd *_aecc .G ()),uint32 (_ecbd *_aecc .B ())};};
// EncryptionAlgorithm is used in EncryptOptions to change the default algorithm used to encrypt the document.
type EncryptionAlgorithm int ;
// PdfVersion returns version of the PDF file.
func (_eabf *PdfReader )PdfVersion ()_ce .Version {return _eabf ._dbfe .PdfVersion ()};
// ToPdfObject returns the PDF representation of the shading dictionary.
func (_aaba *PdfShadingType3 )ToPdfObject ()_ce .PdfObject {_aaba .PdfShading .ToPdfObject ();_dfdgb ,_fbabf :=_aaba .getShadingDict ();if _fbabf !=nil {_ebg .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 _aaba .Coords !=nil {_dfdgb .Set ("\u0043\u006f\u006f\u0072\u0064\u0073",_aaba .Coords );};if _aaba .Domain !=nil {_dfdgb .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_aaba .Domain );};if _aaba .Function !=nil {if len (_aaba .Function )==1{_dfdgb .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_aaba .Function [0].ToPdfObject ());}else {_ebddf :=_ce .MakeArray ();for _ ,_eeacg :=range _aaba .Function {_ebddf .Append (_eeacg .ToPdfObject ());};_dfdgb .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_ebddf );};};if _aaba .Extend !=nil {_dfdgb .Set ("\u0045\u0078\u0074\u0065\u006e\u0064",_aaba .Extend );};return _aaba ._efbab ;};
// NewPdfColorspaceLab returns a new Lab colorspace object.
func NewPdfColorspaceLab ()*PdfColorspaceLab {_fddfb :=&PdfColorspaceLab {};_fddfb .BlackPoint =[]float64 {0.0,0.0,0.0};_fddfb .Range =[]float64 {-100,100,-100,100};return _fddfb ;};func (_ga *PdfReader )newPdfActionGotoEFromDict (_bac *_ce .PdfObjectDictionary )(*PdfActionGoToE ,error ){_cdc ,_gbe :=_cbc (_bac .Get ("\u0046"));if _gbe !=nil {return nil ,_gbe ;};return &PdfActionGoToE {D :_bac .Get ("\u0044"),NewWindow :_bac .Get ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw"),T :_bac .Get ("\u0054"),F :_cdc },nil ;};func (_ecdfg *PdfColorspaceSpecialIndexed )String ()string {return "\u0049n\u0064\u0065\u0078\u0065\u0064";};
// PdfActionResetForm represents a resetForm action.
type PdfActionResetForm struct{*PdfAction ;Fields _ce .PdfObject ;Flags _ce .PdfObject ;};
// 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 ){_ffdcg ,_cbbc :=_abgcc (basefont );if _cbbc !=nil {return nil ,_cbbc ;};if basefont !=SymbolName &&basefont !=ZapfDingbatsName {_ffdcg ._bged =_cce .NewWinAnsiEncoder ();};return &PdfFont {_decac :&_ffdcg },nil ;};
// PdfAnnotationSquare represents Square annotations.
// (Section 12.5.6.8).
type PdfAnnotationSquare struct{*PdfAnnotation ;*PdfAnnotationMarkup ;BS _ce .PdfObject ;IC _ce .PdfObject ;BE _ce .PdfObject ;RD _ce .PdfObject ;};func (_gfc *PdfReader )newPdfAnnotationHighlightFromDict (_fgg *_ce .PdfObjectDictionary )(*PdfAnnotationHighlight ,error ){_fcdf :=PdfAnnotationHighlight {};_cgab ,_bcdc :=_gfc .newPdfAnnotationMarkupFromDict (_fgg );if _bcdc !=nil {return nil ,_bcdc ;};_fcdf .PdfAnnotationMarkup =_cgab ;_fcdf .QuadPoints =_fgg .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");return &_fcdf ,nil ;};
// Initialize initializes the PdfSignature.
func (_adcee *PdfSignature )Initialize ()error {if _adcee .Handler ==nil {return _gd .New ("\u0073\u0069\u0067n\u0061\u0074\u0075\u0072e\u0020\u0068\u0061\u006e\u0064\u006c\u0065r\u0020\u0063\u0061\u006e\u006e\u006f\u0074\u0020\u0062\u0065\u0020\u006e\u0069\u006c");};return _adcee .Handler .InitSignature (_adcee );};type fontFile struct{_fdac string ;_fgfbg string ;_fbabb _cce .SimpleEncoder ;};
// B returns the value of the B component of the color.
func (_afbfc *PdfColorCalRGB )B ()float64 {return float64 (_afbfc [1])};
// 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 (_fff *PdfColorspaceDeviceRGB )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=3{return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_fggf :=vals [0];if _fggf < 0.0||_fggf > 1.0{return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_ccac :=vals [1];if _ccac < 0.0||_ccac > 1.0{return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_gfee :=vals [2];if _gfee < 0.0||_gfee > 1.0{return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_cfgg :=NewPdfColorDeviceRGB (_fggf ,_ccac ,_gfee );return _cfgg ,nil ;};
// Evaluate runs the function on the passed in slice and returns the results.
func (_abacge *PdfFunctionType0 )Evaluate (x []float64 )([]float64 ,error ){if len (x )!=_abacge .NumInputs {_ebg .Log .Error ("\u004eu\u006d\u0062e\u0072\u0020\u006f\u0066 \u0069\u006e\u0070u\u0074\u0073\u0020\u006e\u006f\u0074\u0020\u006d\u0061tc\u0068\u0069\u006eg\u0020\u0077h\u0061\u0074\u0020\u0069\u0073\u0020n\u0065\u0065d\u0065\u0064");return nil ,_gd .New ("\u0072\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b\u0020e\u0072\u0072\u006f\u0072");};if _abacge ._aaccb ==nil {_bedbe :=_abacge .processSamples ();if _bedbe !=nil {return nil ,_bedbe ;};};_ccgdg :=_abacge .Encode ;if _ccgdg ==nil {_ccgdg =[]float64 {};for _dafcf :=0;_dafcf < len (_abacge .Size );_dafcf ++{_ccgdg =append (_ccgdg ,0);_ccgdg =append (_ccgdg ,float64 (_abacge .Size [_dafcf ]-1));};};_efga :=_abacge .Decode ;if _efga ==nil {_efga =_abacge .Range ;};_bdgga :=make ([]int ,len (x ));for _dddbd :=0;_dddbd < len (x );_dddbd ++{_cbfd :=x [_dddbd ];_feda :=_ag .Min (_ag .Max (_cbfd ,_abacge .Domain [2*_dddbd ]),_abacge .Domain [2*_dddbd +1]);_gded :=_age .LinearInterpolate (_feda ,_abacge .Domain [2*_dddbd ],_abacge .Domain [2*_dddbd +1],_ccgdg [2*_dddbd ],_ccgdg [2*_dddbd +1]);_cegb :=_ag .Min (_ag .Max (_gded ,0),float64 (_abacge .Size [_dddbd ]-1));_fcfed :=int (_ag .Floor (_cegb +0.5));if _fcfed < 0{_fcfed =0;}else if _fcfed > _abacge .Size [_dddbd ]{_fcfed =_abacge .Size [_dddbd ]-1;};_bdgga [_dddbd ]=_fcfed ;};_feffc :=_bdgga [0];for _adgcd :=1;_adgcd < _abacge .NumInputs ;_adgcd ++{_bccde :=_bdgga [_adgcd ];for _bgege :=0;_bgege < _adgcd ;_bgege ++{_bccde *=_abacge .Size [_bgege ];};_feffc +=_bccde ;};_feffc *=_abacge .NumOutputs ;var _efcf []float64 ;for _gega :=0;_gega < _abacge .NumOutputs ;_gega ++{_dfefg :=_feffc +_gega ;if _dfefg >=len (_abacge ._aaccb ){_ebg .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 ;};_cgcce :=_abacge ._aaccb [_dfefg ];_cbeb :=_age .LinearInterpolate (float64 (_cgcce ),0,_ag .Pow (2,float64 (_abacge .BitsPerSample )),_efga [2*_gega ],_efga [2*_gega +1]);_ccda :=_ag .Min (_ag .Max (_cbeb ,_abacge .Range [2*_gega ]),_abacge .Range [2*_gega +1]);_efcf =append (_efcf ,_ccda );};return _efcf ,nil ;};func _cbcc (_facf _ce .PdfObject )(*PdfColorspaceCalGray ,error ){_eaa :=NewPdfColorspaceCalGray ();if _agfe ,_cada :=_facf .(*_ce .PdfIndirectObject );_cada {_eaa ._bcbf =_agfe ;};_facf =_ce .TraceToDirectObject (_facf );_dffd ,_gadc :=_facf .(*_ce .PdfObjectArray );if !_gadc {return nil ,_c .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _dffd .Len ()!=2{return nil ,_c .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");};_facf =_ce .TraceToDirectObject (_dffd .Get (0));_gbbc ,_gadc :=_facf .(*_ce .PdfObjectName );if !_gadc {return nil ,_c .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 *_gbbc !="\u0043a\u006c\u0047\u0072\u0061\u0079"{return nil ,_c .Errorf ("\u006eo\u0074\u0020\u0061\u0020\u0043\u0061\u006c\u0047\u0072\u0061\u0079 \u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063\u0065");};_facf =_ce .TraceToDirectObject (_dffd .Get (1));_gcdd ,_gadc :=_facf .(*_ce .PdfObjectDictionary );if !_gadc {return nil ,_c .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");};_facf =_gcdd .Get ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074");_facf =_ce .TraceToDirectObject (_facf );_cfcd ,_gadc :=_facf .(*_ce .PdfObjectArray );if !_gadc {return nil ,_c .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 _cfcd .Len ()!=3{return nil ,_c .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");};_bddb ,_ddcb :=_cfcd .GetAsFloat64Slice ();if _ddcb !=nil {return nil ,_ddcb ;};_eaa .WhitePoint =_bddb ;_facf =_gcdd .Get ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074");if _facf !=nil {_facf =_ce .TraceToDirectObject (_facf );_cgffg ,_fgcg :=_facf .(*_ce .PdfObjectArray );if !_fgcg {return nil ,_c .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 _cgffg .Len ()!=3{return nil ,_c .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");};_ffff ,_dfdgf :=_cgffg .GetAsFloat64Slice ();if _dfdgf !=nil {return nil ,_dfdgf ;};_eaa .BlackPoint =_ffff ;};_facf =_gcdd .Get ("\u0047\u0061\u006dm\u0061");if _facf !=nil {_facf =_ce .TraceToDirectObject (_facf );_eba ,_eaeg :=_ce .GetNumberAsFloat (_facf );if _eaeg !=nil {return nil ,_c .Errorf ("C\u0061\u006c\u0047\u0072\u0061\u0079:\u0020\u0067\u0061\u006d\u006d\u0061\u0020\u006e\u006ft\u0020\u0061\u0020n\u0075m\u0062\u0065\u0072");};_eaa .Gamma =_eba ;};return _eaa ,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 (_gdggf *PdfReader )Inspect ()(map[string ]int ,error ){return _gdggf ._dbfe .Inspect ()};
// 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 ()_ce .PdfObject ;GetContainingPdfObject ()_ce .PdfObject ;};type fontCommon struct{_agcagf string ;_dbbag string ;_effed string ;_gbcf _ce .PdfObject ;_fefb *_fa .CMap ;_adae *PdfFontDescriptor ;_cfae int64 ;};
// ToPdfObject implements interface PdfModel.
func (_deb *PdfActionNamed )ToPdfObject ()_ce .PdfObject {_deb .PdfAction .ToPdfObject ();_acg :=_deb ._bdf ;_bbbc :=_acg .PdfObject .(*_ce .PdfObjectDictionary );_bbbc .SetIfNotNil ("\u0053",_ce .MakeName (string (ActionTypeNamed )));_bbbc .SetIfNotNil ("\u004e",_deb .N );return _acg ;};
// 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 *_ce .PdfObjectInteger ;TilingType *_ce .PdfObjectInteger ;BBox *PdfRectangle ;XStep *_ce .PdfObjectFloat ;YStep *_ce .PdfObjectFloat ;Resources *PdfPageResources ;Matrix *_ce .PdfObjectArray ;};
// String returns a string representation of the field.
func (_cbee *PdfField )String ()string {if _beed ,_ggcga :=_cbee .ToPdfObject ().(*_ce .PdfIndirectObject );_ggcga {return _c .Sprintf ("\u0025\u0054\u003a\u0020\u0025\u0073",_cbee ._eedcb ,_beed .PdfObject .String ());};return "";};
// 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 (_edfc *PdfReader )GetObjectNums ()[]int {return _edfc ._dbfe .GetObjectNums ()};
// PdfShadingType4 is a Free-form Gouraud-shaded triangle mesh.
type PdfShadingType4 struct{*PdfShading ;BitsPerCoordinate *_ce .PdfObjectInteger ;BitsPerComponent *_ce .PdfObjectInteger ;BitsPerFlag *_ce .PdfObjectInteger ;Decode *_ce .PdfObjectArray ;Function []PdfFunction ;};var _ pdfFont =(*pdfFontType0 )(nil );
// NewXObjectFormFromStream builds the Form XObject from a stream object.
// TODO: Should this be exposed? Consider different access points.
func NewXObjectFormFromStream (stream *_ce .PdfObjectStream )(*XObjectForm ,error ){_dgege :=&XObjectForm {};_dgege ._gcaa =stream ;_cfbgb :=*(stream .PdfObjectDictionary );_fccfd ,_cadb :=_ce .NewEncoderFromStream (stream );if _cadb !=nil {return nil ,_cadb ;};_dgege .Filter =_fccfd ;if _dgba :=_cfbgb .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065");_dgba !=nil {_affd ,_defbf :=_dgba .(*_ce .PdfObjectName );if !_defbf {return nil ,_gd .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if *_affd !="\u0046\u006f\u0072\u006d"{_ebg .Log .Debug ("I\u006ev\u0061\u006c\u0069\u0064\u0020\u0066\u006f\u0072m\u0020\u0073\u0075\u0062ty\u0070\u0065");return nil ,_gd .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0066\u006f\u0072m\u0020\u0073\u0075\u0062ty\u0070\u0065");};};if _fcef :=_cfbgb .Get ("\u0046\u006f\u0072\u006d\u0054\u0079\u0070\u0065");_fcef !=nil {_dgege .FormType =_fcef ;};if _fagdd :=_cfbgb .Get ("\u0042\u0042\u006f\u0078");_fagdd !=nil {_dgege .BBox =_fagdd ;};if _fddafe :=_cfbgb .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");_fddafe !=nil {_dgege .Matrix =_fddafe ;};if _gcggb :=_cfbgb .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");_gcggb !=nil {_gcggb =_ce .TraceToDirectObject (_gcggb );_agde ,_gbfbc :=_gcggb .(*_ce .PdfObjectDictionary );if !_gbfbc {_ebg .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 ,_ce .ErrTypeError ;};_edgf ,_fadfg :=NewPdfPageResourcesFromDict (_agde );if _fadfg !=nil {_ebg .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 ,_fadfg ;};_dgege .Resources =_edgf ;_ebg .Log .Trace ("\u0046\u006f\u0072\u006d r\u0065\u0073\u006f\u0075\u0072\u0063\u0065\u0073\u003a\u0020\u0025\u0023\u0076",_dgege .Resources );};_dgege .Group =_cfbgb .Get ("\u0047\u0072\u006fu\u0070");_dgege .Ref =_cfbgb .Get ("\u0052\u0065\u0066");_dgege .MetaData =_cfbgb .Get ("\u004d\u0065\u0074\u0061\u0044\u0061\u0074\u0061");_dgege .PieceInfo =_cfbgb .Get ("\u0050i\u0065\u0063\u0065\u0049\u006e\u0066o");_dgege .LastModified =_cfbgb .Get ("\u004c\u0061\u0073t\u004d\u006f\u0064\u0069\u0066\u0069\u0065\u0064");_dgege .StructParent =_cfbgb .Get ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074");_dgege .StructParents =_cfbgb .Get ("\u0053\u0074\u0072\u0075\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074\u0073");_dgege .OPI =_cfbgb .Get ("\u004f\u0050\u0049");_dgege .OC =_cfbgb .Get ("\u004f\u0043");_dgege .Name =_cfbgb .Get ("\u004e\u0061\u006d\u0065");_dgege .Stream =stream .Stream ;return _dgege ,nil ;};
// GetContainingPdfObject returns the XObject Form's containing object (indirect object).
func (_fecfa *XObjectForm )GetContainingPdfObject ()_ce .PdfObject {return _fecfa ._gcaa };
// StdFontName represents name of a standard font.
type StdFontName =_cc .StdFontName ;
// NewPdfWriter initializes a new PdfWriter.
func NewPdfWriter ()PdfWriter {_ffccdc :=PdfWriter {};_ffccdc ._gdbdce =map[_ce .PdfObject ]struct{}{};_ffccdc ._agacd =[]_ce .PdfObject {};_ffccdc ._ggdc =map[_ce .PdfObject ][]*_ce .PdfObjectDictionary {};_ffccdc ._eebde =map[_ce .PdfObject ]struct{}{};_ffccdc ._cgbgf =1;_ffccdc ._cacc =3;_bcdca :=_ce .MakeDict ();_ggadc :=[]struct{_degfd _ce .PdfObjectName ;_deccd string ;}{{"\u0050\u0072\u006f\u0064\u0075\u0063\u0065\u0072",_gebbf ()},{"\u0043r\u0065\u0061\u0074\u006f\u0072",_ggac ()},{"\u0041\u0075\u0074\u0068\u006f\u0072",_gdafg ()},{"\u0053u\u0062\u006a\u0065\u0063\u0074",_cgefg ()},{"\u0054\u0069\u0074l\u0065",_dgdea ()},{"\u004b\u0065\u0079\u0077\u006f\u0072\u0064\u0073",_cdbd ()}};for _ ,_cebdb :=range _ggadc {if _cebdb ._deccd !=""{_bcdca .Set (_cebdb ._degfd ,_ce .MakeString (_cebdb ._deccd ));};};if _dadgd :=_edfcg ();!_dadgd .IsZero (){if _fedab ,_cbdee :=NewPdfDateFromTime (_dadgd );_cbdee ==nil {_bcdca .Set ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065",_fedab .ToPdfObject ());};};if _dcbe :=_ecffe ();!_dcbe .IsZero (){if _bcade ,_fggca :=NewPdfDateFromTime (_dcbe );_fggca ==nil {_bcdca .Set ("\u004do\u0064\u0044\u0061\u0074\u0065",_bcade .ToPdfObject ());};};_fcbeeg :=_ce .PdfIndirectObject {};_fcbeeg .PdfObject =_bcdca ;_ffccdc ._aagfa =&_fcbeeg ;_ffccdc .addObject (&_fcbeeg );_caecd :=_ce .PdfIndirectObject {};_aafec :=_ce .MakeDict ();_aafec .Set ("\u0054\u0079\u0070\u0065",_ce .MakeName ("\u0043a\u0074\u0061\u006c\u006f\u0067"));_caecd .PdfObject =_aafec ;_ffccdc ._gedca =&_caecd ;_ffccdc .addObject (_ffccdc ._gedca );_fccca :=_ce .PdfIndirectObject {};_bcec :=_ce .MakeDict ();_bcec .Set ("\u0054\u0079\u0070\u0065",_ce .MakeName ("\u0050\u0061\u0067e\u0073"));_bdgcf :=_ce .PdfObjectArray {};_bcec .Set ("\u004b\u0069\u0064\u0073",&_bdgcf );_bcec .Set ("\u0043\u006f\u0075n\u0074",_ce .MakeInteger (0));_fccca .PdfObject =_bcec ;_ffccdc ._eegga =&_fccca ;_ffccdc ._dedf =map[_ce .PdfObject ]struct{}{};_ffccdc .addObject (_ffccdc ._eegga );_aafec .Set ("\u0050\u0061\u0067e\u0073",&_fccca );_ffccdc ._ddaae =_aafec ;_ebg .Log .Trace ("\u0043\u0061\u0074\u0061\u006c\u006f\u0067\u0020\u0025\u0073",_caecd );return _ffccdc ;};
// GenerateXObjectName generates an unused XObject name that can be used for
// adding new XObjects. Uses format XObj1, XObj2, ...
func (_gecgd *PdfPageResources )GenerateXObjectName ()_ce .PdfObjectName {_gabe :=1;for {_efage :=_ce .MakeName (_c .Sprintf ("\u0058\u004f\u0062\u006a\u0025\u0064",_gabe ));if !_gecgd .HasXObjectByName (*_efage ){return *_efage ;};_gabe ++;};};
// NewPdfAnnotationHighlight returns a new text highlight annotation.
func NewPdfAnnotationHighlight ()*PdfAnnotationHighlight {_aebd :=NewPdfAnnotation ();_agfg :=&PdfAnnotationHighlight {};_agfg .PdfAnnotation =_aebd ;_agfg .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_aebd .SetContext (_agfg );return _agfg ;};func _egbdb (_efdg _ce .PdfObject )(*PdfColorspaceSpecialIndexed ,error ){_dbcda :=NewPdfColorspaceSpecialIndexed ();if _aegfb ,_cbeda :=_efdg .(*_ce .PdfIndirectObject );_cbeda {_dbcda ._deeae =_aegfb ;};_efdg =_ce .TraceToDirectObject (_efdg );_cacbe ,_gaeg :=_efdg .(*_ce .PdfObjectArray );if !_gaeg {return nil ,_c .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _cacbe .Len ()!=4{return nil ,_c .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");};_efdg =_cacbe .Get (0);_geag ,_gaeg :=_efdg .(*_ce .PdfObjectName );if !_gaeg {return nil ,_c .Errorf ("\u0069n\u0064\u0065\u0078\u0065\u0064\u0020\u0043\u0053\u003a\u0020\u0069n\u0076\u0061\u006c\u0069\u0064\u0020\u006e\u0061\u006d\u0065");};if *_geag !="\u0049n\u0064\u0065\u0078\u0065\u0064"{return nil ,_c .Errorf ("\u0069\u006e\u0064\u0065xe\u0064\u0020\u0043\u0053\u003a\u0020\u0077\u0072\u006f\u006e\u0067\u0020\u006e\u0061m\u0065");};_efdg =_cacbe .Get (1);_ecgf ,_fdab :=DetermineColorspaceNameFromPdfObject (_efdg );if _ecgf =="\u0049n\u0064\u0065\u0078\u0065\u0064"||_ecgf =="\u0050a\u0074\u0074\u0065\u0072\u006e"{_ebg .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",_ecgf );return nil ,_dage ;};_bcgad ,_fdab :=NewPdfColorspaceFromPdfObject (_efdg );if _fdab !=nil {return nil ,_fdab ;};_dbcda .Base =_bcgad ;_efdg =_cacbe .Get (2);_bcgdb ,_fdab :=_ce .GetNumberAsInt64 (_efdg );if _fdab !=nil {return nil ,_fdab ;};if _bcgdb > 255{return nil ,_c .Errorf ("\u0069n\u0064\u0065\u0078\u0065d\u0020\u0043\u0053\u003a\u0020I\u006ev\u0061l\u0069\u0064\u0020\u0068\u0069\u0076\u0061l");};_dbcda .HiVal =int (_bcgdb );_efdg =_cacbe .Get (3);_dbcda .Lookup =_efdg ;_efdg =_ce .TraceToDirectObject (_efdg );var _deage []byte ;if _aefb ,_defc :=_efdg .(*_ce .PdfObjectString );_defc {_deage =_aefb .Bytes ();_ebg .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",_deage );}else if _dbcga ,_agafd :=_efdg .(*_ce .PdfObjectStream );_agafd {_ebg .Log .Trace ("\u0049n\u0064e\u0078\u0065\u0064\u0020\u0073t\u0072\u0065a\u006d\u003a\u0020\u0025\u0073",_efdg .String ());_ebg .Log .Trace ("\u0045\u006e\u0063\u006fde\u0064\u0020\u0028\u0025\u0064\u0029\u0020\u003a\u0020\u0025\u0023\u0020\u0078",len (_dbcga .Stream ),_dbcga .Stream );_cedd ,_cacea :=_ce .DecodeStream (_dbcga );if _cacea !=nil {return nil ,_cacea ;};_ebg .Log .Trace ("\u0044e\u0063o\u0064\u0065\u0064\u0020\u0028%\u0064\u0029 \u003a\u0020\u0025\u0020\u0058",len (_cedd ),_cedd );_deage =_cedd ;}else {_ebg .Log .Debug ("\u0054\u0079\u0070\u0065\u003a\u0020\u0025\u0054",_efdg );return nil ,_c .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 (_deage )< _dbcda .Base .GetNumComponents ()*(_dbcda .HiVal +1){_ebg .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");_ebg .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 (_deage ),_dbcda .Base .GetNumComponents (),_dbcda .HiVal );}else {_deage =_deage [:_dbcda .Base .GetNumComponents ()*(_dbcda .HiVal +1)];};_dbcda ._agff =_deage ;return _dbcda ,nil ;};
// PdfPage represents a page in a PDF document. (7.7.3.3 - Table 30).
type PdfPage struct{Parent _ce .PdfObject ;LastModified *PdfDate ;Resources *PdfPageResources ;CropBox *PdfRectangle ;MediaBox *PdfRectangle ;BleedBox *PdfRectangle ;TrimBox *PdfRectangle ;ArtBox *PdfRectangle ;BoxColorInfo _ce .PdfObject ;Contents _ce .PdfObject ;Rotate *int64 ;Group _ce .PdfObject ;Thumb _ce .PdfObject ;B _ce .PdfObject ;Dur _ce .PdfObject ;Trans _ce .PdfObject ;AA _ce .PdfObject ;Metadata _ce .PdfObject ;PieceInfo _ce .PdfObject ;StructParents _ce .PdfObject ;ID _ce .PdfObject ;PZ _ce .PdfObject ;SeparationInfo _ce .PdfObject ;Tabs _ce .PdfObject ;TemplateInstantiated _ce .PdfObject ;PresSteps _ce .PdfObject ;UserUnit _ce .PdfObject ;VP _ce .PdfObject ;Annots _ce .PdfObject ;_bdcg []*PdfAnnotation ;_dfbdag *_ce .PdfObjectDictionary ;_adcebd *_ce .PdfIndirectObject ;_fabb *PdfReader ;};var _aggac =false ;
// ToPdfObject returns an indirect object containing the signature field dictionary.
func (_edbe *PdfFieldSignature )ToPdfObject ()_ce .PdfObject {if _edbe .PdfAnnotationWidget !=nil {_edbe .PdfAnnotationWidget .ToPdfObject ();};_edbe .PdfField .ToPdfObject ();_fgff :=_edbe ._gfeec ;_ddef :=_fgff .PdfObject .(*_ce .PdfObjectDictionary );_ddef .SetIfNotNil ("\u0046\u0054",_ce .MakeName ("\u0053\u0069\u0067"));_ddef .SetIfNotNil ("\u004c\u006f\u0063\u006b",_edbe .Lock );_ddef .SetIfNotNil ("\u0053\u0056",_edbe .SV );if _edbe .V !=nil {_ddef .SetIfNotNil ("\u0056",_edbe .V .ToPdfObject ());};return _fgff ;};
// PdfActionJavaScript represents a javaScript action.
type PdfActionJavaScript struct{*PdfAction ;JS _ce .PdfObject ;};const (ButtonTypeCheckbox ButtonType =iota ;ButtonTypePush ButtonType =iota ;ButtonTypeRadio ButtonType =iota ;);func (_fdbaa *Image )samplesAddPadding (_adecb []uint32 )[]uint32 {_dgde :=_age .BytesPerLine (int (_fdbaa .Width ),int (_fdbaa .BitsPerComponent ),_fdbaa .ColorComponents )*(8/int (_fdbaa .BitsPerComponent ));_fgcde :=_dgde *int (_fdbaa .Height );if len (_adecb )==_fgcde {return _adecb ;};_cbdag :=make ([]uint32 ,_fgcde );_ddgd :=int (_fdbaa .Width )*_fdbaa .ColorComponents ;for _abff :=0;_abff < int (_fdbaa .Height );_abff ++{_aebf :=_abff *int (_fdbaa .Width );_dfbb :=_abff *_dgde ;for _bdce :=0;_bdce < _ddgd ;_bdce ++{_cbdag [_dfbb +_bdce ]=_adecb [_aebf +_bdce ];};};return _cbdag ;};
// HasFontByName checks whether a font is defined by the specified keyName.
func (_dacge *PdfPageResources )HasFontByName (keyName _ce .PdfObjectName )bool {_ ,_ggcfa :=_dacge .GetFontByName (keyName );return _ggcfa ;};
// Clear clears flag fl from the flag and returns the resulting flag.
func (_gfec FieldFlag )Clear (fl FieldFlag )FieldFlag {return FieldFlag (_gfec .Mask ()&^fl .Mask ())};func _bdfd (_dcae *PdfAnnotation )(*XObjectForm ,*PdfRectangle ,error ){_dgad ,_dfcf :=_ce .GetDict (_dcae .AP );if !_dfcf {return nil ,nil ,_gd .New ("f\u0069\u0065\u006c\u0064\u0020\u006di\u0073\u0073\u0069\u006e\u0067\u0020\u0041\u0050\u0020d\u0069\u0063\u0074i\u006fn\u0061\u0072\u0079");};if _dgad ==nil {return nil ,nil ,nil ;};_afdbc ,_dfcf :=_ce .GetArray (_dcae .Rect );if !_dfcf ||_afdbc .Len ()!=4{return nil ,nil ,_gd .New ("\u0072\u0065\u0063t\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064");};_gagb ,_fbcca :=NewPdfRectangle (*_afdbc );if _fbcca !=nil {return nil ,nil ,_fbcca ;};_ddaa :=_ce .TraceToDirectObject (_dgad .Get ("\u004e"));switch _gggb :=_ddaa .(type ){case *_ce .PdfObjectStream :_ffcd :=_gggb ;_gagad ,_bead :=NewXObjectFormFromStream (_ffcd );return _gagad ,_gagb ,_bead ;case *_ce .PdfObjectDictionary :_adbeg :=_gggb ;_adfcc ,_abdac :=_ce .GetName (_dcae .AS );if !_abdac {return nil ,nil ,nil ;};if _adbeg .Get (*_adfcc )==nil {_ebg .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 ;};_dfba ,_abdac :=_ce .GetStream (_adbeg .Get (*_adfcc ));if !_abdac {_ebg .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",_adfcc );return nil ,nil ,_gd .New ("\u0073\u0074\u0072\u0065\u0061\u006d\u0020\u006d\u0069s\u0073\u0069\u006e\u0067");};_ffbc ,_eefc :=NewXObjectFormFromStream (_dfba );return _ffbc ,_gagb ,_eefc ;};_ebg .Log .Debug ("\u0049\u006e\u0076\u0061li\u0064\u0020\u0074\u0079\u0070\u0065\u0020\u0066\u006f\u0072\u0020\u004e\u003a\u0020%\u0054",_ddaa );return nil ,nil ,_gd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};
// Encoder returns the font's text encoder.
func (_afgfe pdfCIDFontType2 )Encoder ()_cce .TextEncoder {return _afgfe ._egbdd };
// DefaultFont returns the default font, which is currently the built in Helvetica.
func DefaultFont ()*PdfFont {_eeebe ,_deaf :=_cc .NewStdFontByName (HelveticaName );if !_deaf {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");};_dfda :=_fgfg (_eeebe );return &PdfFont {_decac :&_dfda };};func (_bae *PdfReader )newPdfAnnotationInkFromDict (_fag *_ce .PdfObjectDictionary )(*PdfAnnotationInk ,error ){_adef :=PdfAnnotationInk {};_ddga ,_gge :=_bae .newPdfAnnotationMarkupFromDict (_fag );if _gge !=nil {return nil ,_gge ;};_adef .PdfAnnotationMarkup =_ddga ;_adef .InkList =_fag .Get ("\u0049n\u006b\u004c\u0069\u0073\u0074");_adef .BS =_fag .Get ("\u0042\u0053");return &_adef ,nil ;};
// NewPdfActionImportData returns a new "import data" action.
func NewPdfActionImportData ()*PdfActionImportData {_faa :=NewPdfAction ();_bbad :=&PdfActionImportData {};_bbad .PdfAction =_faa ;_faa .SetContext (_bbad );return _bbad ;};
// ImageToRGB converts image in CalGray color space to RGB (A, B, C -> X, Y, Z).
func (_bbed *PdfColorspaceCalGray )ImageToRGB (img Image )(Image ,error ){_baacf :=_ac .NewReader (img .getBase ());_bdgc :=_age .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),3,nil ,nil ,nil );_dfdb :=_ac .NewWriter (_bdgc );_cdce :=_ag .Pow (2,float64 (img .BitsPerComponent ))-1;_ecfe :=make ([]uint32 ,3);var (_dbea uint32 ;ANorm ,X ,Y ,Z ,_dacg ,_fbadb ,_cbgda float64 ;_edff error ;);for {_dbea ,_edff =_baacf .ReadSample ();if _edff ==_cg .EOF {break ;}else if _edff !=nil {return img ,_edff ;};ANorm =float64 (_dbea )/_cdce ;X =_bbed .WhitePoint [0]*_ag .Pow (ANorm ,_bbed .Gamma );Y =_bbed .WhitePoint [1]*_ag .Pow (ANorm ,_bbed .Gamma );Z =_bbed .WhitePoint [2]*_ag .Pow (ANorm ,_bbed .Gamma );_dacg =3.240479*X +-1.537150*Y +-0.498535*Z ;_fbadb =-0.969256*X +1.875992*Y +0.041556*Z ;_cbgda =0.055648*X +-0.204043*Y +1.057311*Z ;_dacg =_ag .Min (_ag .Max (_dacg ,0),1.0);_fbadb =_ag .Min (_ag .Max (_fbadb ,0),1.0);_cbgda =_ag .Min (_ag .Max (_cbgda ,0),1.0);_ecfe [0]=uint32 (_dacg *_cdce );_ecfe [1]=uint32 (_fbadb *_cdce );_ecfe [2]=uint32 (_cbgda *_cdce );if _edff =_dfdb .WriteSamples (_ecfe );_edff !=nil {return img ,_edff ;};};return _efeaf (&_bdgc ),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 (_cffb *PdfFont )FontDescriptor ()*PdfFontDescriptor {if _cffb .baseFields ()._adae !=nil {return _cffb .baseFields ()._adae ;};if _fdddc :=_cffb ._decac .getFontDescriptor ();_fdddc !=nil {return _fdddc ;};_ebg .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",_cffb );return nil ;};
// String returns a string representation of what flags are set.
func (_ecfa FieldFlag )String ()string {_dcac :="";if _ecfa ==FieldFlagClear {_dcac ="\u0043\u006c\u0065a\u0072";return _dcac ;};if _ecfa &FieldFlagReadOnly > 0{_dcac +="\u007cR\u0065\u0061\u0064\u004f\u006e\u006cy";};if _ecfa &FieldFlagRequired > 0{_dcac +="\u007cR\u0065\u0061\u0064\u004f\u006e\u006cy";};if _ecfa &FieldFlagNoExport > 0{_dcac +="\u007cN\u006f\u0045\u0078\u0070\u006f\u0072t";};if _ecfa &FieldFlagNoToggleToOff > 0{_dcac +="\u007c\u004e\u006f\u0054\u006f\u0067\u0067\u006c\u0065T\u006f\u004f\u0066\u0066";};if _ecfa &FieldFlagRadio > 0{_dcac +="\u007c\u0052\u0061\u0064\u0069\u006f";};if _ecfa &FieldFlagPushbutton > 0{_dcac +="|\u0050\u0075\u0073\u0068\u0062\u0075\u0074\u0074\u006f\u006e";};if _ecfa &FieldFlagRadiosInUnision > 0{_dcac +="\u007c\u0052a\u0064\u0069\u006fs\u0049\u006e\u0055\u006e\u0069\u0073\u0069\u006f\u006e";};if _ecfa &FieldFlagMultiline > 0{_dcac +="\u007c\u004d\u0075\u006c\u0074\u0069\u006c\u0069\u006e\u0065";};if _ecfa &FieldFlagPassword > 0{_dcac +="\u007cP\u0061\u0073\u0073\u0077\u006f\u0072d";};if _ecfa &FieldFlagFileSelect > 0{_dcac +="|\u0046\u0069\u006c\u0065\u0053\u0065\u006c\u0065\u0063\u0074";};if _ecfa &FieldFlagDoNotScroll > 0{_dcac +="\u007c\u0044\u006fN\u006f\u0074\u0053\u0063\u0072\u006f\u006c\u006c";};if _ecfa &FieldFlagComb > 0{_dcac +="\u007c\u0043\u006fm\u0062";};if _ecfa &FieldFlagRichText > 0{_dcac +="\u007cR\u0069\u0063\u0068\u0054\u0065\u0078t";};if _ecfa &FieldFlagDoNotSpellCheck > 0{_dcac +="\u007c\u0044o\u004e\u006f\u0074S\u0070\u0065\u006c\u006c\u0043\u0068\u0065\u0063\u006b";};if _ecfa &FieldFlagCombo > 0{_dcac +="\u007c\u0043\u006f\u006d\u0062\u006f";};if _ecfa &FieldFlagEdit > 0{_dcac +="\u007c\u0045\u0064i\u0074";};if _ecfa &FieldFlagSort > 0{_dcac +="\u007c\u0053\u006fr\u0074";};if _ecfa &FieldFlagMultiSelect > 0{_dcac +="\u007c\u004d\u0075l\u0074\u0069\u0053\u0065\u006c\u0065\u0063\u0074";};if _ecfa &FieldFlagCommitOnSelChange > 0{_dcac +="\u007cC\u006fm\u006d\u0069\u0074\u004f\u006eS\u0065\u006cC\u0068\u0061\u006e\u0067\u0065";};return _aga .Trim (_dcac ,"\u007c");};var (CourierName =_cc .CourierName ;CourierBoldName =_cc .CourierBoldName ;CourierObliqueName =_cc .CourierObliqueName ;CourierBoldObliqueName =_cc .CourierBoldObliqueName ;HelveticaName =_cc .HelveticaName ;HelveticaBoldName =_cc .HelveticaBoldName ;HelveticaObliqueName =_cc .HelveticaObliqueName ;HelveticaBoldObliqueName =_cc .HelveticaBoldObliqueName ;SymbolName =_cc .SymbolName ;ZapfDingbatsName =_cc .ZapfDingbatsName ;TimesRomanName =_cc .TimesRomanName ;TimesBoldName =_cc .TimesBoldName ;TimesItalicName =_cc .TimesItalicName ;TimesBoldItalicName =_cc .TimesBoldItalicName ;);
// GetColorspaceByName returns the colorspace with the specified name from the page resources.
func (_dccb *PdfPageResources )GetColorspaceByName (keyName _ce .PdfObjectName )(PdfColorspace ,bool ){_afcca ,_caed :=_dccb .GetColorspaces ();if _caed !=nil {_ebg .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",_caed );return nil ,false ;};if _afcca ==nil {return nil ,false ;};_gfccf ,_fafga :=_afcca .Colorspaces [string (keyName )];if !_fafga {return nil ,false ;};return _gfccf ,true ;};
// ToPdfObject converts date to a PDF string object.
func (_fgdee *PdfDate )ToPdfObject ()_ce .PdfObject {_adcg :=_c .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",_fgdee ._ddacdb ,_fgdee ._aegabg ,_fgdee ._bded ,_fgdee ._deefg ,_fgdee ._gbgg ,_fgdee ._eabcf ,_fgdee ._agbae ,_fgdee ._dfgga ,_fgdee ._aabaf );return _ce .MakeString (_adcg );};
// SetPdfAuthor sets the Author attribute of the output PDF.
func SetPdfAuthor (author string ){_beeab =author };
// NewPdfAnnotation returns an initialized generic PDF annotation model.
func NewPdfAnnotation ()*PdfAnnotation {_cggb :=&PdfAnnotation {};_cggb ._bda =_ce .MakeIndirectObject (_ce .MakeDict ());return _cggb ;};
// GetRuneMetrics returns the character metrics for the specified rune.
// A bool flag is returned to indicate whether or not the entry was found.
func (_fece pdfCIDFontType2 )GetRuneMetrics (r rune )(_cc .CharMetrics ,bool ){_cebgd ,_dbfga :=_fece ._fabd [r ];if !_dbfga {_eaed ,_fefa :=_ce .GetInt (_fece .DW );if !_fefa {return _cc .CharMetrics {},false ;};_cebgd =int (*_eaed );};return _cc .CharMetrics {Wx :float64 (_cebgd )},true ;};
// ToGoTime returns the date in time.Time format.
func (_gacgg PdfDate )ToGoTime ()_a .Time {_bfdff :=int (_gacgg ._dfgga *60*60+_gacgg ._aabaf *60);switch _gacgg ._agbae {case '-':_bfdff =-_bfdff ;case 'Z':_bfdff =0;};_bfcbe :=_c .Sprintf ("\u0055\u0054\u0043\u0025\u0063\u0025\u002e\u0032\u0064\u0025\u002e\u0032\u0064",_gacgg ._agbae ,_gacgg ._dfgga ,_gacgg ._aabaf );_bfccg :=_a .FixedZone (_bfcbe ,_bfdff );return _a .Date (int (_gacgg ._ddacdb ),_a .Month (_gacgg ._aegabg ),int (_gacgg ._bded ),int (_gacgg ._deefg ),int (_gacgg ._gbgg ),int (_gacgg ._eabcf ),0,_bfccg );};func (_agccc *PdfColorspaceDeviceGray )String ()string {return "\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079";};
// WriteToFile writes the Appender output to file specified by path.
func (_dbba *PdfAppender )WriteToFile (outputPath string )error {_bbfc ,_dgeg :=_baa .Create (outputPath );if _dgeg !=nil {return _dgeg ;};defer _bbfc .Close ();return _dbba .Write (_bbfc );};
// PdfAnnotationProjection represents Projection annotations.
type PdfAnnotationProjection struct{*PdfAnnotation ;*PdfAnnotationMarkup ;};func _ecffe ()_a .Time {return _ggfac };func (_gagge *PdfWriter )writeBytes (_dggce []byte ){if _gagge ._cegedc !=nil {return ;};_edea ,_agaff :=_gagge ._egeaa .Write (_dggce );_gagge ._agfff +=int64 (_edea );_gagge ._cegedc =_agaff ;};func _edfcg ()_a .Time {return _ebgad };
// 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 _facb (_adbcd []byte )[]byte {const _cgba =52845;const _bgeaa =22719;_dcdbf :=55665;for _ ,_gbdf :=range _adbcd [:4]{_dcdbf =(int (_gbdf )+_dcdbf )*_cgba +_bgeaa ;};_dfbda :=make ([]byte ,len (_adbcd )-4);for _geaf ,_dbfbe :=range _adbcd [4:]{_dfbda [_geaf ]=byte (int (_dbfbe )^_dcdbf >>8);_dcdbf =(int (_dbfbe )+_dcdbf )*_cgba +_bgeaa ;};return _dfbda ;};
// FieldValueProvider provides field values from a data source such as FDF, JSON or any other.
type FieldValueProvider interface{FieldValues ()(map[string ]_ce .PdfObject ,error );};func (_adec *PdfReader )newPdfAnnotationCircleFromDict (_aefc *_ce .PdfObjectDictionary )(*PdfAnnotationCircle ,error ){_gaagf :=PdfAnnotationCircle {};_dbdc ,_egge :=_adec .newPdfAnnotationMarkupFromDict (_aefc );if _egge !=nil {return nil ,_egge ;};_gaagf .PdfAnnotationMarkup =_dbdc ;_gaagf .BS =_aefc .Get ("\u0042\u0053");_gaagf .IC =_aefc .Get ("\u0049\u0043");_gaagf .BE =_aefc .Get ("\u0042\u0045");_gaagf .RD =_aefc .Get ("\u0052\u0044");return &_gaagf ,nil ;};
// 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 (_cfbfc *Image )Resample (targetBitsPerComponent int64 ){if _cfbfc .BitsPerComponent ==targetBitsPerComponent {return ;};_geagf :=_cfbfc .GetSamples ();if targetBitsPerComponent < _cfbfc .BitsPerComponent {_dbfc :=_cfbfc .BitsPerComponent -targetBitsPerComponent ;for _dddga :=range _geagf {_geagf [_dddga ]>>=uint (_dbfc );};}else if targetBitsPerComponent > _cfbfc .BitsPerComponent {_bacg :=targetBitsPerComponent -_cfbfc .BitsPerComponent ;for _fgdeb :=range _geagf {_geagf [_fgdeb ]<<=uint (_bacg );};};_cfbfc .BitsPerComponent =targetBitsPerComponent ;if _cfbfc .BitsPerComponent < 8{_cfbfc .resampleLowBits (_geagf );return ;};_aaedg :=_age .BytesPerLine (int (_cfbfc .Width ),int (_cfbfc .BitsPerComponent ),_cfbfc .ColorComponents );_beadb :=make ([]byte ,_aaedg *int (_cfbfc .Height ));var (_bgedb ,_gecg ,_fcdg ,_cedec int ;_fbag uint32 ;);for _fcdg =0;_fcdg < int (_cfbfc .Height );_fcdg ++{_bgedb =_fcdg *_aaedg ;_gecg =(_fcdg +1)*_aaedg -1;_gddca :=_ac .ResampleUint32 (_geagf [_bgedb :_gecg ],int (targetBitsPerComponent ),8);for _cedec ,_fbag =range _gddca {_beadb [_cedec +_bgedb ]=byte (_fbag );};};_cfbfc .Data =_beadb ;};
// NewPdfColorDeviceGray returns a new grayscale color based on an input grayscale float value in range [0-1].
func NewPdfColorDeviceGray (grayVal float64 )*PdfColorDeviceGray {_bgeae :=PdfColorDeviceGray (grayVal );return &_bgeae ;};
// GetPatternByName gets the pattern specified by keyName. Returns nil if not existing.
// The bool flag indicated whether it was found or not.
func (_feadg *PdfPageResources )GetPatternByName (keyName _ce .PdfObjectName )(*PdfPattern ,bool ){if _feadg .Pattern ==nil {return nil ,false ;};_cbbe ,_ggag :=_ce .TraceToDirectObject (_feadg .Pattern ).(*_ce .PdfObjectDictionary );if !_ggag {_ebg .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",_feadg .Pattern );return nil ,false ;};if _dbgc :=_cbbe .Get (keyName );_dbgc !=nil {_aefca ,_fafc :=_dfgaf (_dbgc );if _fafc !=nil {_ebg .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",_fafc );return nil ,false ;};return _aefca ,true ;};return nil ,false ;};
// WriteString outputs the object as it is to be written to file.
func (_efeee *pdfSignDictionary )WriteString ()string {_efeee ._deeee =0;_efeee ._adee =0;_efeee ._cdcf =0;_efeee ._bbca =0;_cdfaf :=_f .NewBuffer (nil );_cdfaf .WriteString ("\u003c\u003c");for _ ,_dbfd :=range _efeee .Keys (){_ggegb :=_efeee .Get (_dbfd );switch _dbfd {case "\u0042y\u0074\u0065\u0052\u0061\u006e\u0067e":_cdfaf .WriteString (_dbfd .WriteString ());_cdfaf .WriteString ("\u0020");_efeee ._cdcf =_cdfaf .Len ();_cdfaf .WriteString (_ggegb .WriteString ());_cdfaf .WriteString ("\u0020");_efeee ._bbca =_cdfaf .Len ()-1;case "\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073":_cdfaf .WriteString (_dbfd .WriteString ());_cdfaf .WriteString ("\u0020");_efeee ._deeee =_cdfaf .Len ();_cdfaf .WriteString (_ggegb .WriteString ());_cdfaf .WriteString ("\u0020");_efeee ._adee =_cdfaf .Len ()-1;default:_cdfaf .WriteString (_dbfd .WriteString ());_cdfaf .WriteString ("\u0020");_cdfaf .WriteString (_ggegb .WriteString ());};};_cdfaf .WriteString ("\u003e\u003e");return _cdfaf .String ();};
// SetFlag sets the flag for the field.
func (_dead *PdfField )SetFlag (flag FieldFlag ){_dead .Ff =_ce .MakeInteger (int64 (flag ))};
// PdfActionSubmitForm represents a submitForm action.
type PdfActionSubmitForm struct{*PdfAction ;F *PdfFilespec ;Fields _ce .PdfObject ;Flags _ce .PdfObject ;};
// ToPdfObject returns the PDF representation of the colorspace.
func (_aafd *PdfColorspaceDeviceRGB )ToPdfObject ()_ce .PdfObject {return _ce .MakeName ("\u0044e\u0076\u0069\u0063\u0065\u0052\u0047B");};
// ToPdfObject implements interface PdfModel.
func (_cega *PdfBorderStyle )ToPdfObject ()_ce .PdfObject {_aefe :=_ce .MakeDict ();if _cega ._febe !=nil {if _dbbg ,_cgbd :=_cega ._febe .(*_ce .PdfIndirectObject );_cgbd {_dbbg .PdfObject =_aefe ;};};_aefe .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ce .MakeName ("\u0042\u006f\u0072\u0064\u0065\u0072"));if _cega .W !=nil {_aefe .Set ("\u0057",_ce .MakeFloat (*_cega .W ));};if _cega .S !=nil {_aefe .Set ("\u0053",_ce .MakeName (_cega .S .GetPdfName ()));};if _cega .D !=nil {_aefe .Set ("\u0044",_ce .MakeArrayFromIntegers (*_cega .D ));};if _cega ._febe !=nil {return _cega ._febe ;};return _aefe ;};
// PdfAnnotationLine represents Line annotations.
// (Section 12.5.6.7).
type PdfAnnotationLine struct{*PdfAnnotation ;*PdfAnnotationMarkup ;L _ce .PdfObject ;BS _ce .PdfObject ;LE _ce .PdfObject ;IC _ce .PdfObject ;LL _ce .PdfObject ;LLE _ce .PdfObject ;Cap _ce .PdfObject ;IT _ce .PdfObject ;LLO _ce .PdfObject ;CP _ce .PdfObject ;Measure _ce .PdfObject ;CO _ce .PdfObject ;};func (_eegf fontCommon )fontFlags ()int {if _eegf ._adae ==nil {return 0;};return _eegf ._adae ._fcfce ;};
// 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 (_cbf *PdfColorspaceSpecialPattern )ColorToRGB (color PdfColor )(PdfColor ,error ){_dbeae ,_bgdg :=color .(*PdfColorPattern );if !_bgdg {_ebg .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 _dbeae .Color ==nil {return color ,nil ;};if _cbf .UnderlyingCS ==nil {return nil ,_gd .New ("\u0075n\u0064\u0065\u0072\u006cy\u0069\u006e\u0067\u0020\u0043S\u0020n\u006ft\u0020\u0064\u0065\u0066\u0069\u006e\u0065d");};return _cbf .UnderlyingCS .ColorToRGB (_dbeae .Color );};func (_cde *PdfReader )newPdfAnnotationUnderlineFromDict (_gaf *_ce .PdfObjectDictionary )(*PdfAnnotationUnderline ,error ){_ceba :=PdfAnnotationUnderline {};_cacbc ,_dfc :=_cde .newPdfAnnotationMarkupFromDict (_gaf );if _dfc !=nil {return nil ,_dfc ;};_ceba .PdfAnnotationMarkup =_cacbc ;_ceba .QuadPoints =_gaf .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");return &_ceba ,nil ;};
// Items returns all children outline items.
func (_dcgg *Outline )Items ()[]*OutlineItem {return _dcgg .Entries };const (RC4_128bit =EncryptionAlgorithm (iota );AES_128bit ;AES_256bit ;);
// GetBorderWidth returns the border style's width.
func (_dda *PdfBorderStyle )GetBorderWidth ()float64 {if _dda .W ==nil {return 1;};return *_dda .W ;};
// SetForms sets the Acroform for a PDF file.
func (_cegcb *PdfWriter )SetForms (form *PdfAcroForm )error {_cegcb ._cebggd =form ;return nil };var _ggfac _a .Time ;func (_degcc *PdfWriter )addObject (_aafeb _ce .PdfObject )bool {_affbe :=_degcc .hasObject (_aafeb );if !_affbe {_feba :=_ce .ResolveReferencesDeep (_aafeb ,_degcc ._eebde );if _feba !=nil {_ebg .Log .Debug ("E\u0052R\u004f\u0052\u003a\u0020\u0025\u0076\u0020\u002d \u0073\u006b\u0069\u0070pi\u006e\u0067",_feba );};_degcc ._agacd =append (_degcc ._agacd ,_aafeb );_degcc ._gdbdce [_aafeb ]=struct{}{};return true ;};return false ;};
// SetContext sets the sub annotation (context).
func (_abde *PdfAnnotation )SetContext (ctx PdfModel ){_abde ._aff =ctx };
// 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 _ce .PdfObject )(_ce .PdfObjectName ,error ){var _efbdc *_ce .PdfObjectName ;var _gcde *_ce .PdfObjectArray ;if _bccb ,_cged :=obj .(*_ce .PdfIndirectObject );_cged {if _ceeg ,_gbga :=_bccb .PdfObject .(*_ce .PdfObjectArray );_gbga {_gcde =_ceeg ;}else if _ggba ,_ddee :=_bccb .PdfObject .(*_ce .PdfObjectName );_ddee {_efbdc =_ggba ;};}else if _abfec ,_cfgd :=obj .(*_ce .PdfObjectArray );_cfgd {_gcde =_abfec ;}else if _bbbfe ,_fcgd :=obj .(*_ce .PdfObjectName );_fcgd {_efbdc =_bbbfe ;};if _efbdc !=nil {switch *_efbdc {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 *_efbdc ,nil ;case "\u0050a\u0074\u0074\u0065\u0072\u006e":return *_efbdc ,nil ;};};if _gcde !=nil &&_gcde .Len ()> 0{if _dgdae ,_cffg :=_gcde .Get (0).(*_ce .PdfObjectName );_cffg {switch *_dgdae {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 _gcde .Len ()==1{return *_dgdae ,nil ;};case "\u0043a\u006c\u0047\u0072\u0061\u0079","\u0043\u0061\u006c\u0052\u0047\u0042","\u004c\u0061\u0062":return *_dgdae ,nil ;case "\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064","\u0050a\u0074\u0074\u0065\u0072\u006e","\u0049n\u0064\u0065\u0078\u0065\u0064":return *_dgdae ,nil ;case "\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e","\u0044e\u0076\u0069\u0063\u0065\u004e":return *_dgdae ,nil ;};};};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 (_gfda *PdfColorspaceCalRGB )ColorFromPdfObjects (objects []_ce .PdfObject )(PdfColor ,error ){if len (objects )!=3{return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_gbaf ,_daba :=_ce .GetNumbersAsFloat (objects );if _daba !=nil {return nil ,_daba ;};return _gfda .ColorFromFloats (_gbaf );};
// ToInteger convert to an integer format.
func (_ebdc *PdfColorLab )ToInteger (bits int )[3]uint32 {_fgaa :=_ag .Pow (2,float64 (bits ))-1;return [3]uint32 {uint32 (_fgaa *_ebdc .L ()),uint32 (_fgaa *_ebdc .A ()),uint32 (_fgaa *_ebdc .B ())};};func (_faacf *PdfReader )resolveReference (_dacfe *_ce .PdfObjectReference )(_ce .PdfObject ,bool ,error ){_efabg ,_gcdg :=_faacf ._dbfe .ObjCache [int (_dacfe .ObjectNumber )];if !_gcdg {_ebg .Log .Trace ("R\u0065\u0061\u0064\u0065r \u004co\u006f\u006b\u0075\u0070\u0020r\u0065\u0066\u003a\u0020\u0025\u0073",_dacfe );_ecgbe ,_beacd :=_faacf ._dbfe .LookupByReference (*_dacfe );if _beacd !=nil {return nil ,false ,_beacd ;};_faacf ._dbfe .ObjCache [int (_dacfe .ObjectNumber )]=_ecgbe ;return _ecgbe ,false ,nil ;};return _efabg ,true ,nil ;};
// AddContentStreamByString adds content stream by string. Puts the content
// string into a stream object and points the content stream towards it.
func (_ebfabf *PdfPage )AddContentStreamByString (contentStr string )error {_ccbc ,_baggb :=_ce .MakeStream ([]byte (contentStr ),_ce .NewFlateEncoder ());if _baggb !=nil {return _baggb ;};if _ebfabf .Contents ==nil {_ebfabf .Contents =_ccbc ;}else {_dcagbd :=_ce .TraceToDirectObject (_ebfabf .Contents );_geab ,_dbbfc :=_dcagbd .(*_ce .PdfObjectArray );if !_dbbfc {_geab =_ce .MakeArray (_dcagbd );};_geab .Append (_ccbc );_ebfabf .Contents =_geab ;};return nil ;};
// ToPdfObject implements interface PdfModel.
func (_fe *PdfActionSubmitForm )ToPdfObject ()_ce .PdfObject {_fe .PdfAction .ToPdfObject ();_aag :=_fe ._bdf ;_gcg :=_aag .PdfObject .(*_ce .PdfObjectDictionary );_gcg .SetIfNotNil ("\u0053",_ce .MakeName (string (ActionTypeSubmitForm )));if _fe .F !=nil {_gcg .Set ("\u0046",_fe .F .ToPdfObject ());};_gcg .SetIfNotNil ("\u0046\u0069\u0065\u006c\u0064\u0073",_fe .Fields );_gcg .SetIfNotNil ("\u0046\u006c\u0061g\u0073",_fe .Flags );return _aag ;};func _fegcd (_fdecd _ce .PdfObject ,_cgfe *PdfReader )(*OutlineDest ,error ){_fgee ,_fdfcb :=_ce .GetArray (_fdecd );if !_fdfcb {return nil ,_gd .New ("\u006f\u0075\u0074\u006c\u0069\u006e\u0065 \u0064\u0065\u0073t\u0069\u006e\u0061\u0074i\u006f\u006e\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0020\u006d\u0075\u0073\u0074\u0020\u0062\u0065\u0020\u0061\u006e\u0020\u0061\u0072\u0072\u0061\u0079");};_dedef :=_fgee .Len ();if _dedef < 2{return nil ,_c .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",_dedef );};_afcde :=&OutlineDest {Mode :"\u0046\u0069\u0074"};_bdea :=_fgee .Get (0);if _adac ,_adgcf :=_ce .GetIndirect (_bdea );_adgcf {if _ ,_gfab ,_fadgb :=_cgfe .PageFromIndirectObject (_adac );_fadgb ==nil {_afcde .Page =int64 (_gfab -1);}else {_ebg .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",_adac );};_afcde .PageObj =_adac ;}else if _eaegg ,_aaga :=_ce .GetIntVal (_bdea );_aaga {if _eaegg >=0&&_eaegg < len (_cgfe .PageList ){_afcde .PageObj =_cgfe .PageList [_eaegg ].GetPageAsIndirectObject ();}else {_ebg .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",_eaegg );};_afcde .Page =int64 (_eaegg );}else {return nil ,_c .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",_bdea );};_aggg ,_fdfcb :=_ce .GetNameVal (_fgee .Get (1));if !_fdfcb {_ebg .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",_fgee .Get (1));return _afcde ,nil ;};switch _aggg {case "\u0046\u0069\u0074","\u0046\u0069\u0074\u0042":case "\u0046\u0069\u0074\u0048","\u0046\u0069\u0074B\u0048":if _dedef > 2{_afcde .Y ,_ =_ce .GetNumberAsFloat (_ce .TraceToDirectObject (_fgee .Get (2)));};case "\u0046\u0069\u0074\u0056","\u0046\u0069\u0074B\u0056":if _dedef > 2{_afcde .X ,_ =_ce .GetNumberAsFloat (_ce .TraceToDirectObject (_fgee .Get (2)));};case "\u0058\u0059\u005a":if _dedef > 4{_afcde .X ,_ =_ce .GetNumberAsFloat (_ce .TraceToDirectObject (_fgee .Get (2)));_afcde .Y ,_ =_ce .GetNumberAsFloat (_ce .TraceToDirectObject (_fgee .Get (3)));_afcde .Zoom ,_ =_ce .GetNumberAsFloat (_ce .TraceToDirectObject (_fgee .Get (4)));};default:_aggg ="\u0046\u0069\u0074";};_afcde .Mode =_aggg ;return _afcde ,nil ;};func (_adb *PdfReader )newPdfActionImportDataFromDict (_ddb *_ce .PdfObjectDictionary )(*PdfActionImportData ,error ){_ddgf ,_aef :=_cbc (_ddb .Get ("\u0046"));if _aef !=nil {return nil ,_aef ;};return &PdfActionImportData {F :_ddgf },nil ;};
// ToPdfObject returns the PDF representation of the shading dictionary.
func (_geeaf *PdfShadingType4 )ToPdfObject ()_ce .PdfObject {_geeaf .PdfShading .ToPdfObject ();_adfgd ,_agbc :=_geeaf .getShadingDict ();if _agbc !=nil {_ebg .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 _geeaf .BitsPerCoordinate !=nil {_adfgd .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065",_geeaf .BitsPerCoordinate );};if _geeaf .BitsPerComponent !=nil {_adfgd .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_geeaf .BitsPerComponent );};if _geeaf .BitsPerFlag !=nil {_adfgd .Set ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067",_geeaf .BitsPerFlag );};if _geeaf .Decode !=nil {_adfgd .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_geeaf .Decode );};if _geeaf .Function !=nil {if len (_geeaf .Function )==1{_adfgd .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_geeaf .Function [0].ToPdfObject ());}else {_cbcgbb :=_ce .MakeArray ();for _ ,_dcaa :=range _geeaf .Function {_cbcgbb .Append (_dcaa .ToPdfObject ());};_adfgd .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_cbcgbb );};};return _geeaf ._efbab ;};
// SetContext set the sub annotation (context).
func (_cdcac *PdfShading )SetContext (ctx PdfModel ){_cdcac ._aadde =ctx };
// GetNumComponents returns the number of color components (3 for RGB).
func (_abacd *PdfColorDeviceRGB )GetNumComponents ()int {return 3};
// 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{_eedcb PdfModel ;_gfeec *_ce .PdfIndirectObject ;_fdbf *bool ;Parent *PdfField ;Annotations []*PdfAnnotationWidget ;Kids []*PdfField ;FT *_ce .PdfObjectName ;T *_ce .PdfObjectString ;TU *_ce .PdfObjectString ;TM *_ce .PdfObjectString ;Ff *_ce .PdfObjectInteger ;V _ce .PdfObject ;DV _ce .PdfObject ;AA _ce .PdfObject ;};func _bfddf (_adefa *_ce .PdfObjectStream )(*PdfFunctionType0 ,error ){_bcagd :=&PdfFunctionType0 {};_bcagd ._dbfgb =_adefa ;_cabd :=_adefa .PdfObjectDictionary ;_eaeeg ,_fgebb :=_ce .TraceToDirectObject (_cabd .Get ("\u0044\u006f\u006d\u0061\u0069\u006e")).(*_ce .PdfObjectArray );if !_fgebb {_ebg .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_gd .New ("\u0072\u0065q\u0075\u0069\u0072\u0065d\u0020\u0061t\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020m\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u006f\u0072\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");};if _eaeeg .Len ()< 0||_eaeeg .Len ()%2!=0{_ebg .Log .Error ("\u0044\u006f\u006d\u0061\u0069\u006e\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");return nil ,_gd .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0064\u006f\u006da\u0069\u006e\u0020\u0072an\u0067\u0065");};_bcagd .NumInputs =_eaeeg .Len ()/2;_cdeb ,_agef :=_eaeeg .ToFloat64Array ();if _agef !=nil {return nil ,_agef ;};_bcagd .Domain =_cdeb ;_eaeeg ,_fgebb =_ce .TraceToDirectObject (_cabd .Get ("\u0052\u0061\u006eg\u0065")).(*_ce .PdfObjectArray );if !_fgebb {_ebg .Log .Error ("\u0052\u0061\u006e\u0067e \u006e\u006f\u0074\u0020\u0073\u0070\u0065\u0063\u0069\u0066\u0069\u0065\u0064");return nil ,_gd .New ("\u0072\u0065q\u0075\u0069\u0072\u0065d\u0020\u0061t\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020m\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u006f\u0072\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");};if _eaeeg .Len ()< 0||_eaeeg .Len ()%2!=0{return nil ,_gd .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0061\u006e\u0067\u0065");};_bcagd .NumOutputs =_eaeeg .Len ()/2;_babf ,_agef :=_eaeeg .ToFloat64Array ();if _agef !=nil {return nil ,_agef ;};_bcagd .Range =_babf ;_eaeeg ,_fgebb =_ce .TraceToDirectObject (_cabd .Get ("\u0053\u0069\u007a\u0065")).(*_ce .PdfObjectArray );if !_fgebb {_ebg .Log .Error ("\u0053i\u007ae\u0020\u006e\u006f\u0074\u0020s\u0070\u0065c\u0069\u0066\u0069\u0065\u0064");return nil ,_gd .New ("\u0072\u0065q\u0075\u0069\u0072\u0065d\u0020\u0061t\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020m\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u006f\u0072\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");};_ddcge ,_agef :=_eaeeg .ToIntegerArray ();if _agef !=nil {return nil ,_agef ;};if len (_ddcge )!=_bcagd .NumInputs {_ebg .Log .Error ("T\u0061\u0062\u006c\u0065\u0020\u0073\u0069\u007a\u0065\u0020\u006e\u006f\u0074\u0020\u006d\u0061\u0074\u0063h\u0069\u006e\u0067\u0020\u006e\u0075\u006d\u0062\u0065\u0072 o\u0066\u0020\u0069n\u0070u\u0074\u0073");return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_bcagd .Size =_ddcge ;_fggga ,_fgebb :=_ce .TraceToDirectObject (_cabd .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0053\u0061\u006d\u0070\u006c\u0065")).(*_ce .PdfObjectInteger );if !_fgebb {_ebg .Log .Error ("B\u0069\u0074\u0073\u0050\u0065\u0072S\u0061\u006d\u0070\u006c\u0065\u0020\u006e\u006f\u0074 \u0073\u0070\u0065c\u0069f\u0069\u0065\u0064");return nil ,_gd .New ("\u0072\u0065q\u0075\u0069\u0072\u0065d\u0020\u0061t\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020m\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u006f\u0072\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");};if *_fggga !=1&&*_fggga !=2&&*_fggga !=4&&*_fggga !=8&&*_fggga !=12&&*_fggga !=16&&*_fggga !=24&&*_fggga !=32{_ebg .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",*_fggga );return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_bcagd .BitsPerSample =int (*_fggga );_bcagd .Order =1;_dcgd ,_fgebb :=_ce .TraceToDirectObject (_cabd .Get ("\u004f\u0072\u0064e\u0072")).(*_ce .PdfObjectInteger );if _fgebb {if *_dcgd !=1&&*_dcgd !=3{_ebg .Log .Error ("\u0049n\u0076a\u006c\u0069\u0064\u0020\u006fr\u0064\u0065r\u0020\u0028\u0025\u0064\u0029",*_dcgd );return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_bcagd .Order =int (*_dcgd );};_eaeeg ,_fgebb =_ce .TraceToDirectObject (_cabd .Get ("\u0045\u006e\u0063\u006f\u0064\u0065")).(*_ce .PdfObjectArray );if _fgebb {_dedb ,_gdfb :=_eaeeg .ToFloat64Array ();if _gdfb !=nil {return nil ,_gdfb ;};_bcagd .Encode =_dedb ;};_eaeeg ,_fgebb =_ce .TraceToDirectObject (_cabd .Get ("\u0044\u0065\u0063\u006f\u0064\u0065")).(*_ce .PdfObjectArray );if _fgebb {_gdcbfd ,_ceged :=_eaeeg .ToFloat64Array ();if _ceged !=nil {return nil ,_ceged ;};_bcagd .Decode =_gdcbfd ;};_egeef ,_agef :=_ce .DecodeStream (_adefa );if _agef !=nil {return nil ,_agef ;};_bcagd ._abaa =_egeef ;return _bcagd ,nil ;};
// SetPageLabels sets the PageLabels entry in the PDF catalog.
// See section 12.4.2 "Page Labels" (p. 382 PDF32000_2008).
func (_ecdega *PdfWriter )SetPageLabels (pageLabels _ce .PdfObject )error {if pageLabels ==nil {return nil ;};_ebg .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");_ecdega ._ddaae .Set ("\u0050\u0061\u0067\u0065\u004c\u0061\u0062\u0065\u006c\u0073",pageLabels );return _ecdega .addObjects (pageLabels );};
// AddExtGState adds a graphics state to the XObject resources.
func (_fcbeb *PdfPage )AddExtGState (name _ce .PdfObjectName ,egs *_ce .PdfObjectDictionary )error {if _fcbeb .Resources ==nil {_fcbeb .Resources =NewPdfPageResources ();};if _fcbeb .Resources .ExtGState ==nil {_fcbeb .Resources .ExtGState =_ce .MakeDict ();};_gcdff ,_egdbf :=_ce .TraceToDirectObject (_fcbeb .Resources .ExtGState ).(*_ce .PdfObjectDictionary );if !_egdbf {_ebg .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",_ce .TraceToDirectObject (_fcbeb .Resources .ExtGState ));return _gd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_gcdff .Set (name ,egs );return nil ;};func (_cdca *PdfAppender )mergeResources (_dcag ,_cfbc _ce .PdfObject ,_bafg map[_ce .PdfObjectName ]_ce .PdfObjectName )_ce .PdfObject {if _cfbc ==nil &&_dcag ==nil {return nil ;};if _cfbc ==nil {return _dcag ;};_gdc ,_edbd :=_ce .GetDict (_cfbc );if !_edbd {return _dcag ;};if _dcag ==nil {_aegag :=_ce .MakeDict ();_aegag .Merge (_gdc );return _cfbc ;};_efbc ,_edbd :=_ce .GetDict (_dcag );if !_edbd {_ebg .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");_efbc =_ce .MakeDict ();};for _ ,_ggda :=range _gdc .Keys (){if _eeab ,_dcece :=_bafg [_ggda ];_dcece {_efbc .Set (_eeab ,_gdc .Get (_ggda ));}else {_efbc .Set (_ggda ,_gdc .Get (_ggda ));};};return _efbc ;};
// GetOptimizer returns current PDF optimizer.
func (_ddadf *PdfWriter )GetOptimizer ()Optimizer {return _ddadf ._dccdc };
// ColorFromPdfObjects gets the color from a series of pdf objects (4 for cmyk).
func (_gffg *PdfColorspaceDeviceCMYK )ColorFromPdfObjects (objects []_ce .PdfObject )(PdfColor ,error ){if len (objects )!=4{return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_ggf ,_cbac :=_ce .GetNumbersAsFloat (objects );if _cbac !=nil {return nil ,_cbac ;};return _gffg .ColorFromFloats (_ggf );};
// ColorFromFloats returns a new PdfColor based on the input slice of color
// components. The slice should contain a single element.
func (_adcd *PdfColorspaceSpecialSeparation )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=1{return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_ggdf :=vals [0];_eggfb :=[]float64 {_ggdf };_gcbb ,_bdgd :=_adcd .TintTransform .Evaluate (_eggfb );if _bdgd !=nil {_ebg .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",_bdgd );_ebg .Log .Trace ("\u0054\u0069\u006e\u0074 t\u0072\u0061\u006e\u0073\u0066\u006f\u0072\u006d\u003a\u0020\u0025\u002b\u0076",_adcd .TintTransform );return nil ,_bdgd ;};_ebg .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",_gcbb ,_adcd .AlternateSpace );_egeff ,_bdgd :=_adcd .AlternateSpace .ColorFromFloats (_gcbb );if _bdgd !=nil {_ebg .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",_bdgd );return nil ,_bdgd ;};return _egeff ,nil ;};
// GetPageLabels returns the PageLabels entry in the PDF catalog.
// See section 12.4.2 "Page Labels" (p. 382 PDF32000_2008).
func (_gebc *PdfReader )GetPageLabels ()(_ce .PdfObject ,error ){_ccfecd :=_ce .ResolveReference (_gebc ._gaadd .Get ("\u0050\u0061\u0067\u0065\u004c\u0061\u0062\u0065\u006c\u0073"));if _ccfecd ==nil {return nil ,nil ;};if !_gebc ._ebegg {_dfafb :=_gebc .traverseObjectData (_ccfecd );if _dfafb !=nil {return nil ,_dfafb ;};};return _ccfecd ,nil ;};func (_fabfd *PdfPattern )getDict ()*_ce .PdfObjectDictionary {if _bagca ,_cagf :=_fabfd ._efabe .(*_ce .PdfIndirectObject );_cagf {_egdd ,_eddef :=_bagca .PdfObject .(*_ce .PdfObjectDictionary );if !_eddef {return nil ;};return _egdd ;}else if _faeea ,_gbgff :=_fabfd ._efabe .(*_ce .PdfObjectStream );_gbgff {return _faeea .PdfObjectDictionary ;}else {_ebg .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",_fabfd ._efabe );return nil ;};};func _gedc (_daad _ce .PdfObject )(*_ce .PdfObjectDictionary ,*fontCommon ,error ){_bcef :=&fontCommon {};if _agga ,_fddde :=_daad .(*_ce .PdfIndirectObject );_fddde {_bcef ._cfae =_agga .ObjectNumber ;};_dfbf ,_cfedb :=_ce .GetDict (_daad );if !_cfedb {_ebg .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",_daad );return nil ,nil ,ErrFontNotSupported ;};_gfgc ,_cfedb :=_ce .GetNameVal (_dfbf .Get ("\u0054\u0079\u0070\u0065"));if !_cfedb {_ebg .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 _gfgc !="\u0046\u006f\u006e\u0074"{_ebg .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.",_gfgc ,"\u0046\u006f\u006e\u0074");return nil ,nil ,_ce .ErrTypeError ;};_fdgbf ,_cfedb :=_ce .GetNameVal (_dfbf .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065"));if !_cfedb {_ebg .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 ;};_bcef ._dbbag =_fdgbf ;_bgfdg ,_cfedb :=_ce .GetNameVal (_dfbf .Get ("\u004e\u0061\u006d\u0065"));if _cfedb {_bcef ._effed =_bgfdg ;};if _fdgbf =="\u0054\u0079\u0070e\u0033"{_ebg .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",_dfbf );return _dfbf ,_bcef ,ErrType3FontNotSupported ;};_gefe ,_cfedb :=_ce .GetNameVal (_dfbf .Get ("\u0042\u0061\u0073\u0065\u0046\u006f\u006e\u0074"));if !_cfedb {_ebg .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 _dfbf ,_bcef ,ErrRequiredAttributeMissing ;};_bcef ._agcagf =_gefe ;_gefg :=_dfbf .Get ("\u0046\u006f\u006e\u0074\u0044\u0065\u0073\u0063\u0072i\u0070\u0074\u006f\u0072");if _gefg !=nil {_egfg ,_efbe :=_cdcg (_gefg );if _efbe !=nil {_ebg .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",_efbe );return _dfbf ,_bcef ,_efbe ;};_bcef ._adae =_egfg ;};_ebagc :=_dfbf .Get ("\u0054o\u0055\u006e\u0069\u0063\u006f\u0064e");if _ebagc !=nil {_bcef ._gbcf =_ce .TraceToDirectObject (_ebagc );_dgcag ,_dbab :=_eafc (_bcef ._gbcf ,_bcef );if _dbab !=nil {return _dfbf ,_bcef ,_dbab ;};_bcef ._fefb =_dgcag ;}else if _fdgbf =="\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0030"||_fdgbf =="\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032"{_fdfd ,_dfbcdg :=_fa .NewCIDSystemInfo (_dfbf .Get ("\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f"));if _dfbcdg !=nil {return _dfbf ,_bcef ,_dfbcdg ;};_eedgf :=_c .Sprintf ("\u0025\u0073\u002d\u0025\u0073\u002d\u0055\u0043\u0053\u0032",_fdfd .Registry ,_fdfd .Ordering );if _fa .IsPredefinedCMap (_eedgf ){_bcef ._fefb ,_dfbcdg =_fa .LoadPredefinedCMap (_eedgf );if _dfbcdg !=nil {_ebg .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",_eedgf ,_dfbcdg );};};};return _dfbf ,_bcef ,nil ;};
// NewPdfActionMovie returns a new "movie" action.
func NewPdfActionMovie ()*PdfActionMovie {_bbd :=NewPdfAction ();_bde :=&PdfActionMovie {};_bde .PdfAction =_bbd ;_bbd .SetContext (_bde );return _bde ;};
// Fill populates `form` with values provided by `provider`.
func (_aebdg *PdfAcroForm )Fill (provider FieldValueProvider )error {return _aebdg .fill (provider ,nil )};func (_cccfb *PdfReader )buildOutlineTree (_eegfa _ce .PdfObject ,_eecfc *PdfOutlineTreeNode ,_eaff *PdfOutlineTreeNode ,_deebe map[_ce .PdfObject ]struct{})(*PdfOutlineTreeNode ,*PdfOutlineTreeNode ,error ){if _deebe ==nil {_deebe =map[_ce .PdfObject ]struct{}{};};_deebe [_eegfa ]=struct{}{};_dbacb ,_eefeb :=_eegfa .(*_ce .PdfIndirectObject );if !_eefeb {return nil ,nil ,_c .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",_eegfa );};_ccbcee ,_ffaf :=_dbacb .PdfObject .(*_ce .PdfObjectDictionary );if !_ffaf {return nil ,nil ,_gd .New ("\u006e\u006f\u0074 a\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u0020\u006f\u0062\u006a\u0065\u0063\u0074");};_ebg .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",_ccbcee ,_dbacb ,_dbacb );if _bgee :=_ccbcee .Get ("\u0054\u0069\u0074l\u0065");_bgee !=nil {_afgfb ,_cdbaf :=_cccfb .newPdfOutlineItemFromIndirectObject (_dbacb );if _cdbaf !=nil {return nil ,nil ,_cdbaf ;};_afgfb .Parent =_eecfc ;_afgfb .Prev =_eaff ;_gafg :=_ce .ResolveReference (_ccbcee .Get ("\u0046\u0069\u0072s\u0074"));if _ ,_bbbbd :=_deebe [_gafg ];_gafg !=nil &&_gafg !=_dbacb &&!_bbbbd {if !_ce .IsNullObject (_gafg ){_caabb ,_dgfg ,_bgacbb :=_cccfb .buildOutlineTree (_gafg ,&_afgfb .PdfOutlineTreeNode ,nil ,_deebe );if _bgacbb !=nil {_ebg .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",_bgacbb );}else {_afgfb .First =_caabb ;_afgfb .Last =_dgfg ;};};};_dcde :=_ce .ResolveReference (_ccbcee .Get ("\u004e\u0065\u0078\u0074"));if _ ,_eabae :=_deebe [_dcde ];_dcde !=nil &&_dcde !=_dbacb &&!_eabae {if !_ce .IsNullObject (_dcde ){_afbfe ,_ebffc ,_gddf :=_cccfb .buildOutlineTree (_dcde ,_eecfc ,&_afgfb .PdfOutlineTreeNode ,_deebe );if _gddf !=nil {_ebg .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",_gddf );}else {_afgfb .Next =_afbfe ;return &_afgfb .PdfOutlineTreeNode ,_ebffc ,nil ;};};};return &_afgfb .PdfOutlineTreeNode ,&_afgfb .PdfOutlineTreeNode ,nil ;};_gfcd ,_gdga :=_cacgd (_dbacb );if _gdga !=nil {return nil ,nil ,_gdga ;};_gfcd .Parent =_eecfc ;if _cfcbc :=_ccbcee .Get ("\u0046\u0069\u0072s\u0074");_cfcbc !=nil {_cfcbc =_ce .ResolveReference (_cfcbc );_eeaec :=_ce .TraceToDirectObject (_cfcbc );if _ ,_gcegc :=_eeaec .(*_ce .PdfObjectNull );!_gcegc &&_eeaec !=nil {_dgcab ,_aeddc ,_afgdc :=_cccfb .buildOutlineTree (_cfcbc ,&_gfcd .PdfOutlineTreeNode ,nil ,_deebe );if _afgdc !=nil {_ebg .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",_afgdc );}else {_gfcd .First =_dgcab ;_gfcd .Last =_aeddc ;};};};return &_gfcd .PdfOutlineTreeNode ,&_gfcd .PdfOutlineTreeNode ,nil ;};
// 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 *_ce .PdfObjectArray ;ExtGState _ce .PdfObject ;};
// NewPdfColorLab returns a new Lab color.
func NewPdfColorLab (l ,a ,b float64 )*PdfColorLab {_eabea :=PdfColorLab {l ,a ,b };return &_eabea };func (_bfde *PdfReader )newPdfAnnotationProjectionFromDict (_bag *_ce .PdfObjectDictionary )(*PdfAnnotationProjection ,error ){_def :=&PdfAnnotationProjection {};_bgdf ,_ccef :=_bfde .newPdfAnnotationMarkupFromDict (_bag );if _ccef !=nil {return nil ,_ccef ;};_def .PdfAnnotationMarkup =_bgdf ;return _def ,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 (_gaaee *PdfOutlineTreeNode )GetContext ()PdfModel {if _cade ,_bdbe :=_gaaee ._edggc .(*PdfOutline );_bdbe {return _cade ;};if _fagef ,_dabb :=_gaaee ._edggc .(*PdfOutlineItem );_dabb {return _fagef ;};_ebg .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 ;};
// GetRuneMetrics returns the character metrics for the specified rune.
// A bool flag is returned to indicate whether or not the entry was found.
func (_adda pdfFontType0 )GetRuneMetrics (r rune )(_cc .CharMetrics ,bool ){if _adda .DescendantFont ==nil {_ebg .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",_adda );return _cc .CharMetrics {},false ;};return _adda .DescendantFont .GetRuneMetrics (r );};
// 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 (_ccbe *PdfFont )CharcodesToUnicodeWithStats (charcodes []_cce .CharCode )(_dffe []rune ,_ggdeaf ,_ecfaf int ){_daebb ,_ggdeaf ,_ecfaf :=_ccbe .CharcodesToStrings (charcodes );return []rune (_aga .Join (_daebb ,"")),_ggdeaf ,_ecfaf ;};
// 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 _cg .ReadSeeker )(*PdfReader ,error ){_fgfa :=&PdfReader {_dafg :rs ,_acfdf :map[_ce .PdfObject ]struct{}{},_cbdfb :_accg (),_ebegg :false };_ebdf ,_bfdad :=_ce .NewParser (rs );if _bfdad !=nil {return nil ,_bfdad ;};_fgfa ._dbfe =_ebdf ;_fbdaa ,_bfdad :=_fgfa .IsEncrypted ();if _bfdad !=nil {return nil ,_bfdad ;};if !_fbdaa {_bfdad =_fgfa .loadStructure ();if _bfdad !=nil {return nil ,_bfdad ;};};return _fgfa ,nil ;};
// PdfAnnotationPopup represents Popup annotations.
// (Section 12.5.6.14).
type PdfAnnotationPopup struct{*PdfAnnotation ;Parent _ce .PdfObject ;Open _ce .PdfObject ;};
// DecodeArray returns the range of color component values in CalGray colorspace.
func (_gdcb *PdfColorspaceCalGray )DecodeArray ()[]float64 {return []float64 {0.0,1.0}};func _dedd (_dccf []byte )bool {if len (_dccf )< 4{return true ;};for _edcc :=range _dccf [:4]{_caaf :=rune (_edcc );if !_ee .Is (_ee .ASCII_Hex_Digit ,_caaf )&&!_ee .IsSpace (_caaf ){return true ;};};return false ;};
// 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 _ce .StreamEncoder ;Intent _ce .PdfObject ;ImageMask _ce .PdfObject ;Mask _ce .PdfObject ;Matte _ce .PdfObject ;Decode _ce .PdfObject ;Interpolate _ce .PdfObject ;Alternatives _ce .PdfObject ;SMask _ce .PdfObject ;SMaskInData _ce .PdfObject ;Name _ce .PdfObject ;StructParent _ce .PdfObject ;ID _ce .PdfObject ;OPI _ce .PdfObject ;Metadata _ce .PdfObject ;OC _ce .PdfObject ;Stream []byte ;_gfag *_ce .PdfObjectStream ;};
// SetPdfProducer sets the Producer attribute of the output PDF.
func SetPdfProducer (producer string ){_gdaaef =producer };func _cadgg (_gaega *_ce .PdfObjectDictionary )(*PdfTilingPattern ,error ){_aegca :=&PdfTilingPattern {};_fffe :=_gaega .Get ("\u0050a\u0069\u006e\u0074\u0054\u0079\u0070e");if _fffe ==nil {_ebg .Log .Debug ("\u0050\u0061\u0069\u006e\u0074\u0054\u0079\u0070\u0065\u0020\u006d\u0069s\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ;};_baee ,_bbage :=_fffe .(*_ce .PdfObjectInteger );if !_bbage {_ebg .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",_fffe );return nil ,_ce .ErrTypeError ;};_aegca .PaintType =_baee ;_fffe =_gaega .Get ("\u0054\u0069\u006c\u0069\u006e\u0067\u0054\u0079\u0070\u0065");if _fffe ==nil {_ebg .Log .Debug ("\u0054i\u006ci\u006e\u0067\u0054\u0079\u0070e\u0020\u006di\u0073\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ;};_bgcba ,_bbage :=_fffe .(*_ce .PdfObjectInteger );if !_bbage {_ebg .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",_fffe );return nil ,_ce .ErrTypeError ;};_aegca .TilingType =_bgcba ;_fffe =_gaega .Get ("\u0042\u0042\u006f\u0078");if _fffe ==nil {_ebg .Log .Debug ("\u0042\u0042\u006fx\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ;};_fffe =_ce .TraceToDirectObject (_fffe );_dgdad ,_bbage :=_fffe .(*_ce .PdfObjectArray );if !_bbage {_ebg .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",_fffe );return nil ,_ce .ErrTypeError ;};_cdcbf ,_bbadda :=NewPdfRectangle (*_dgdad );if _bbadda !=nil {_ebg .Log .Debug ("\u0042\u0042\u006f\u0078\u0020\u0065\u0072\u0072\u006fr\u003a\u0020\u0025\u0076",_bbadda );return nil ,_bbadda ;};_aegca .BBox =_cdcbf ;_fffe =_gaega .Get ("\u0058\u0053\u0074e\u0070");if _fffe ==nil {_ebg .Log .Debug ("\u0058\u0053\u0074\u0065\u0070\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ;};_egac ,_bbadda :=_ce .GetNumberAsFloat (_fffe );if _bbadda !=nil {_ebg .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",_egac );return nil ,_bbadda ;};_aegca .XStep =_ce .MakeFloat (_egac );_fffe =_gaega .Get ("\u0059\u0053\u0074e\u0070");if _fffe ==nil {_ebg .Log .Debug ("\u0059\u0053\u0074\u0065\u0070\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ;};_fegac ,_bbadda :=_ce .GetNumberAsFloat (_fffe );if _bbadda !=nil {_ebg .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",_fegac );return nil ,_bbadda ;};_aegca .YStep =_ce .MakeFloat (_fegac );_fffe =_gaega .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");if _fffe ==nil {_ebg .Log .Debug ("\u0052\u0065\u0073\u006f\u0075\u0072\u0063\u0065\u0073\u0020\u006d\u0069s\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ;};_gaega ,_bbage =_ce .TraceToDirectObject (_fffe ).(*_ce .PdfObjectDictionary );if !_bbage {return nil ,_c .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",_fffe );};_dffbc ,_bbadda :=NewPdfPageResourcesFromDict (_gaega );if _bbadda !=nil {return nil ,_bbadda ;};_aegca .Resources =_dffbc ;if _afff :=_gaega .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");_afff !=nil {_fgcdd ,_egecb :=_afff .(*_ce .PdfObjectArray );if !_egecb {_ebg .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",_afff );return nil ,_ce .ErrTypeError ;};_aegca .Matrix =_fgcdd ;};return _aegca ,nil ;};
// ToInteger convert to an integer format.
func (_dafe *PdfColorCalGray )ToInteger (bits int )uint32 {_fbd :=_ag .Pow (2,float64 (bits ))-1;return uint32 (_fbd *_dafe .Val ());};func (_ecad *PdfReader )newPdfAnnotationPolyLineFromDict (_gceg *_ce .PdfObjectDictionary )(*PdfAnnotationPolyLine ,error ){_ecdb :=PdfAnnotationPolyLine {};_egef ,_gced :=_ecad .newPdfAnnotationMarkupFromDict (_gceg );if _gced !=nil {return nil ,_gced ;};_ecdb .PdfAnnotationMarkup =_egef ;_ecdb .Vertices =_gceg .Get ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073");_ecdb .LE =_gceg .Get ("\u004c\u0045");_ecdb .BS =_gceg .Get ("\u0042\u0053");_ecdb .IC =_gceg .Get ("\u0049\u0043");_ecdb .BE =_gceg .Get ("\u0042\u0045");_ecdb .IT =_gceg .Get ("\u0049\u0054");_ecdb .Measure =_gceg .Get ("\u004de\u0061\u0073\u0075\u0072\u0065");return &_ecdb ,nil ;};
// Add appends a top level outline item to the outline.
func (_dggca *Outline )Add (item *OutlineItem ){_dggca .Entries =append (_dggca .Entries ,item )};
// ToPdfObject returns the PDF representation of the tiling pattern.
func (_dafcc *PdfTilingPattern )ToPdfObject ()_ce .PdfObject {_dafcc .PdfPattern .ToPdfObject ();_bfbd :=_dafcc .getDict ();if _dafcc .PaintType !=nil {_bfbd .Set ("\u0050a\u0069\u006e\u0074\u0054\u0079\u0070e",_dafcc .PaintType );};if _dafcc .TilingType !=nil {_bfbd .Set ("\u0054\u0069\u006c\u0069\u006e\u0067\u0054\u0079\u0070\u0065",_dafcc .TilingType );};if _dafcc .BBox !=nil {_bfbd .Set ("\u0042\u0042\u006f\u0078",_dafcc .BBox .ToPdfObject ());};if _dafcc .XStep !=nil {_bfbd .Set ("\u0058\u0053\u0074e\u0070",_dafcc .XStep );};if _dafcc .YStep !=nil {_bfbd .Set ("\u0059\u0053\u0074e\u0070",_dafcc .YStep );};if _dafcc .Resources !=nil {_bfbd .Set ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s",_dafcc .Resources .ToPdfObject ());};if _dafcc .Matrix !=nil {_bfbd .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_dafcc .Matrix );};return _dafcc ._efabe ;};var _ _ce .PdfObject =&pdfSignDictionary {};
// ToPdfObject implements interface PdfModel.
func (_efgc *PdfAnnotationLine )ToPdfObject ()_ce .PdfObject {_efgc .PdfAnnotation .ToPdfObject ();_cad :=_efgc ._bda ;_fgbgb :=_cad .PdfObject .(*_ce .PdfObjectDictionary );_efgc .PdfAnnotationMarkup .appendToPdfDictionary (_fgbgb );_fgbgb .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ce .MakeName ("\u004c\u0069\u006e\u0065"));_fgbgb .SetIfNotNil ("\u004c",_efgc .L );_fgbgb .SetIfNotNil ("\u0042\u0053",_efgc .BS );_fgbgb .SetIfNotNil ("\u004c\u0045",_efgc .LE );_fgbgb .SetIfNotNil ("\u0049\u0043",_efgc .IC );_fgbgb .SetIfNotNil ("\u004c\u004c",_efgc .LL );_fgbgb .SetIfNotNil ("\u004c\u004c\u0045",_efgc .LLE );_fgbgb .SetIfNotNil ("\u0043\u0061\u0070",_efgc .Cap );_fgbgb .SetIfNotNil ("\u0049\u0054",_efgc .IT );_fgbgb .SetIfNotNil ("\u004c\u004c\u004f",_efgc .LLO );_fgbgb .SetIfNotNil ("\u0043\u0050",_efgc .CP );_fgbgb .SetIfNotNil ("\u004de\u0061\u0073\u0075\u0072\u0065",_efgc .Measure );_fgbgb .SetIfNotNil ("\u0043\u004f",_efgc .CO );return _cad ;};const (XObjectTypeUndefined XObjectType =iota ;XObjectTypeImage ;XObjectTypeForm ;XObjectTypePS ;XObjectTypeUnknown ;);func _ccfg (_ced _ce .PdfObject )(*PdfColorspaceCalRGB ,error ){_eabc :=NewPdfColorspaceCalRGB ();if _fca ,_dfdgd :=_ced .(*_ce .PdfIndirectObject );_dfdgd {_eabc ._gcbc =_fca ;};_ced =_ce .TraceToDirectObject (_ced );_bcea ,_fddac :=_ced .(*_ce .PdfObjectArray );if !_fddac {return nil ,_c .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _bcea .Len ()!=2{return nil ,_c .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0043\u0061\u006c\u0052G\u0042 \u0063o\u006c\u006f\u0072\u0073\u0070\u0061\u0063e");};_ced =_ce .TraceToDirectObject (_bcea .Get (0));_dbag ,_fddac :=_ced .(*_ce .PdfObjectName );if !_fddac {return nil ,_c .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 *_dbag !="\u0043\u0061\u006c\u0052\u0047\u0042"{return nil ,_c .Errorf ("\u006e\u006f\u0074 a\u0020\u0043\u0061\u006c\u0052\u0047\u0042\u0020\u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063\u0065");};_ced =_ce .TraceToDirectObject (_bcea .Get (1));_ccae ,_fddac :=_ced .(*_ce .PdfObjectDictionary );if !_fddac {return nil ,_c .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");};_ced =_ccae .Get ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074");_ced =_ce .TraceToDirectObject (_ced );_abcd ,_fddac :=_ced .(*_ce .PdfObjectArray );if !_fddac {return nil ,_c .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 _abcd .Len ()!=3{return nil ,_c .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");};_eecec ,_ffda :=_abcd .GetAsFloat64Slice ();if _ffda !=nil {return nil ,_ffda ;};_eabc .WhitePoint =_eecec ;_ced =_ccae .Get ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074");if _ced !=nil {_ced =_ce .TraceToDirectObject (_ced );_eccf ,_cdec :=_ced .(*_ce .PdfObjectArray );if !_cdec {return nil ,_c .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 _eccf .Len ()!=3{return nil ,_c .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");};_cgede ,_bbfeg :=_eccf .GetAsFloat64Slice ();if _bbfeg !=nil {return nil ,_bbfeg ;};_eabc .BlackPoint =_cgede ;};_ced =_ccae .Get ("\u0047\u0061\u006dm\u0061");if _ced !=nil {_ced =_ce .TraceToDirectObject (_ced );_cbed ,_fbbd :=_ced .(*_ce .PdfObjectArray );if !_fbbd {return nil ,_c .Errorf ("C\u0061\u006c\u0052\u0047B:\u0020I\u006e\u0076\u0061\u006c\u0069d\u0020\u0047\u0061\u006d\u006d\u0061");};if _cbed .Len ()!=3{return nil ,_c .Errorf ("C\u0061\u006c\u0052\u0047\u0042\u003a \u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0047a\u006d\u006d\u0061 \u0061r\u0072\u0061\u0079");};_gbdbg ,_eaca :=_cbed .GetAsFloat64Slice ();if _eaca !=nil {return nil ,_eaca ;};_eabc .Gamma =_gbdbg ;};_ced =_ccae .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");if _ced !=nil {_ced =_ce .TraceToDirectObject (_ced );_ddad ,_abec :=_ced .(*_ce .PdfObjectArray );if !_abec {return nil ,_c .Errorf ("\u0043\u0061\u006c\u0052GB\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u004d\u0061\u0074\u0072i\u0078");};if _ddad .Len ()!=9{_ebg .Log .Error ("\u004d\u0061t\u0072\u0069\u0078 \u0061\u0072\u0072\u0061\u0079\u003a\u0020\u0025\u0073",_ddad .String ());return nil ,_c .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");};_deda ,_gddg :=_ddad .GetAsFloat64Slice ();if _gddg !=nil {return nil ,_gddg ;};_eabc .Matrix =_deda ;};return _eabc ,nil ;};
// Height returns the height of `rect`.
func (_fbfbe *PdfRectangle )Height ()float64 {return _ag .Abs (_fbfbe .Ury -_fbfbe .Lly )};
// ToPdfObject implements interface PdfModel.
func (_fcbe *PdfAnnotationScreen )ToPdfObject ()_ce .PdfObject {_fcbe .PdfAnnotation .ToPdfObject ();_adbe :=_fcbe ._bda ;_fbcb :=_adbe .PdfObject .(*_ce .PdfObjectDictionary );_fbcb .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ce .MakeName ("\u0053\u0063\u0072\u0065\u0065\u006e"));_fbcb .SetIfNotNil ("\u0054",_fcbe .T );_fbcb .SetIfNotNil ("\u004d\u004b",_fcbe .MK );_fbcb .SetIfNotNil ("\u0041",_fcbe .A );_fbcb .SetIfNotNil ("\u0041\u0041",_fcbe .AA );return _adbe ;};
// 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 (_ecafb *PdfReader )CheckAccessRights (password []byte )(bool ,_ab .Permissions ,error ){return _ecafb ._dbfe .CheckAccessRights (password );};func (_egbb *PdfReader )newPdfActionSetOCGStateFromDict (_dbb *_ce .PdfObjectDictionary )(*PdfActionSetOCGState ,error ){return &PdfActionSetOCGState {State :_dbb .Get ("\u0053\u0074\u0061t\u0065"),PreserveRB :_dbb .Get ("\u0050\u0072\u0065\u0073\u0065\u0072\u0076\u0065\u0052\u0042")},nil ;};
// NewPdfActionResetForm returns a new "reset form" action.
func NewPdfActionResetForm ()*PdfActionResetForm {_gc :=NewPdfAction ();_eae :=&PdfActionResetForm {};_eae .PdfAction =_gc ;_gc .SetContext (_eae );return _eae ;};
// PdfAcroForm represents the AcroForm dictionary used for representation of form data in PDF.
type PdfAcroForm struct{Fields *[]*PdfField ;NeedAppearances *_ce .PdfObjectBool ;SigFlags *_ce .PdfObjectInteger ;CO *_ce .PdfObjectArray ;DR *PdfPageResources ;DA *_ce .PdfObjectString ;Q *_ce .PdfObjectInteger ;XFA _ce .PdfObject ;_adfcd *_ce .PdfIndirectObject ;};func _edddda (_aefae _ce .PdfObject )(PdfFunction ,error ){_aefae =_ce .ResolveReference (_aefae );if _cbef ,_baabf :=_aefae .(*_ce .PdfObjectStream );_baabf {_eafa :=_cbef .PdfObjectDictionary ;_dgedc ,_fbfbf :=_eafa .Get ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065").(*_ce .PdfObjectInteger );if !_fbfbf {_ebg .Log .Error ("F\u0075\u006e\u0063\u0074\u0069\u006fn\u0054\u0079\u0070\u0065\u0020\u006e\u0075\u006d\u0062e\u0072\u0020\u006di\u0073s\u0069\u006e\u0067");return nil ,_gd .New ("\u0069\u006e\u0076\u0061l\u0069\u0064\u0020\u0070\u0061\u0072\u0061\u006d\u0065\u0074e\u0072 \u006f\u0072\u0020\u006d\u0069\u0073\u0073i\u006e\u0067");};if *_dgedc ==0{return _bfddf (_cbef );}else if *_dgedc ==4{return _fecc (_cbef );}else {return nil ,_gd .New ("i\u006e\u0076\u0061\u006cid\u0020f\u0075\u006e\u0063\u0074\u0069o\u006e\u0020\u0074\u0079\u0070\u0065");};}else if _gdaac ,_dcedc :=_aefae .(*_ce .PdfIndirectObject );_dcedc {_effaa ,_aafdg :=_gdaac .PdfObject .(*_ce .PdfObjectDictionary );if !_aafdg {_ebg .Log .Error ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e\u0020\u0049\u006e\u0064\u0069\u0072\u0065\u0063\u0074\u0020o\u0062\u006a\u0065\u0063\u0074\u0020\u006eo\u0074\u0020\u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0069\u006eg\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079");return nil ,_gd .New ("\u0069\u006e\u0076\u0061l\u0069\u0064\u0020\u0070\u0061\u0072\u0061\u006d\u0065\u0074e\u0072 \u006f\u0072\u0020\u006d\u0069\u0073\u0073i\u006e\u0067");};_geaff ,_aafdg :=_effaa .Get ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065").(*_ce .PdfObjectInteger );if !_aafdg {_ebg .Log .Error ("F\u0075\u006e\u0063\u0074\u0069\u006fn\u0054\u0079\u0070\u0065\u0020\u006e\u0075\u006d\u0062e\u0072\u0020\u006di\u0073s\u0069\u006e\u0067");return nil ,_gd .New ("\u0069\u006e\u0076\u0061l\u0069\u0064\u0020\u0070\u0061\u0072\u0061\u006d\u0065\u0074e\u0072 \u006f\u0072\u0020\u006d\u0069\u0073\u0073i\u006e\u0067");};if *_geaff ==2{return _fabe (_gdaac );}else if *_geaff ==3{return _dcaeb (_gdaac );}else {return nil ,_gd .New ("i\u006e\u0076\u0061\u006cid\u0020f\u0075\u006e\u0063\u0074\u0069o\u006e\u0020\u0074\u0079\u0070\u0065");};}else if _gcbff ,_efgcg :=_aefae .(*_ce .PdfObjectDictionary );_efgcg {_agbab ,_bafab :=_gcbff .Get ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065").(*_ce .PdfObjectInteger );if !_bafab {_ebg .Log .Error ("F\u0075\u006e\u0063\u0074\u0069\u006fn\u0054\u0079\u0070\u0065\u0020\u006e\u0075\u006d\u0062e\u0072\u0020\u006di\u0073s\u0069\u006e\u0067");return nil ,_gd .New ("\u0069\u006e\u0076\u0061l\u0069\u0064\u0020\u0070\u0061\u0072\u0061\u006d\u0065\u0074e\u0072 \u006f\u0072\u0020\u006d\u0069\u0073\u0073i\u006e\u0067");};if *_agbab ==2{return _fabe (_gcbff );}else if *_agbab ==3{return _dcaeb (_gcbff );}else {return nil ,_gd .New ("i\u006e\u0076\u0061\u006cid\u0020f\u0075\u006e\u0063\u0074\u0069o\u006e\u0020\u0074\u0079\u0070\u0065");};}else {_ebg .Log .Debug ("\u0046u\u006e\u0063\u0074\u0069\u006f\u006e\u0020\u0054\u0079\u0070\u0065 \u0065\u0072\u0072\u006f\u0072\u003a\u0020\u0025\u0023\u0076",_aefae );return nil ,_gd .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};};
// GetCharMetrics returns the char metrics for character code `code`.
func (_dcgag pdfCIDFontType2 )GetCharMetrics (code _cce .CharCode )(_cc .CharMetrics ,bool ){if _cecga ,_eacc :=_dcgag ._ggaa [code ];_eacc {return _cc .CharMetrics {Wx :float64 (_cecga )},true ;};_febfg :=rune (code );_cdgdf ,_ggfa :=_dcgag ._fabd [_febfg ];if !_ggfa {_cdgdf =int (_dcgag ._badc );};return _cc .CharMetrics {Wx :float64 (_cdgdf )},true ;};func _fgfc (_egdb _ce .PdfObject )(*PdfColorspaceDeviceNAttributes ,error ){_edce :=&PdfColorspaceDeviceNAttributes {};var _ffdc *_ce .PdfObjectDictionary ;if _eeabd ,_bdbdd :=_egdb .(*_ce .PdfIndirectObject );_bdbdd {_edce ._gac =_eeabd ;var _gafdb bool ;_ffdc ,_gafdb =_eeabd .PdfObject .(*_ce .PdfObjectDictionary );if !_gafdb {_ebg .Log .Error ("\u0044\u0065\u0076\u0069c\u0065\u004e\u0020\u0061\u0074\u0074\u0072\u0069\u0062\u0075t\u0065 \u0074\u0079\u0070\u0065\u0020\u0065\u0072r\u006f\u0072");return nil ,_gd .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};}else if _abafg ,_eeagb :=_egdb .(*_ce .PdfObjectDictionary );_eeagb {_ffdc =_abafg ;}else {_ebg .Log .Error ("\u0044\u0065\u0076\u0069c\u0065\u004e\u0020\u0061\u0074\u0074\u0072\u0069\u0062\u0075t\u0065 \u0074\u0079\u0070\u0065\u0020\u0065\u0072r\u006f\u0072");return nil ,_gd .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _cdegc :=_ffdc .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065");_cdegc !=nil {_dad ,_ccgd :=_ce .TraceToDirectObject (_cdegc ).(*_ce .PdfObjectName );if !_ccgd {_ebg .Log .Error ("\u0044\u0065vi\u0063\u0065\u004e \u0061\u0074\u0074\u0072ibu\u0074e \u0053\u0075\u0062\u0074\u0079\u0070\u0065 t\u0079\u0070\u0065\u0020\u0065\u0072\u0072o\u0072");return nil ,_gd .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};_edce .Subtype =_dad ;};if _egeb :=_ffdc .Get ("\u0043o\u006c\u006f\u0072\u0061\u006e\u0074s");_egeb !=nil {_edce .Colorants =_egeb ;};if _abfg :=_ffdc .Get ("\u0050r\u006f\u0063\u0065\u0073\u0073");_abfg !=nil {_edce .Process =_abfg ;};if _dgfaf :=_ffdc .Get ("M\u0069\u0078\u0069\u006e\u0067\u0048\u0069\u006e\u0074\u0073");_dgfaf !=nil {_edce .MixingHints =_dgfaf ;};return _edce ,nil ;};
// NewPdfAnnotationMovie returns a new movie annotation.
func NewPdfAnnotationMovie ()*PdfAnnotationMovie {_ceg :=NewPdfAnnotation ();_gfb :=&PdfAnnotationMovie {};_gfb .PdfAnnotation =_ceg ;_ceg .SetContext (_gfb );return _gfb ;};func _abeda (_bdfdg string )map[string ]string {_cebdd :=_dbff .Split (_bdfdg ,-1);_agbfc :=map[string ]string {};for _ ,_cgbg :=range _cebdd {_aaed :=_gfdfe .FindStringSubmatch (_cgbg );if _aaed ==nil {continue ;};_gdcbf ,_efaga :=_aaed [1],_aaed [2];_agbfc [_gdcbf ]=_efaga ;};return _agbfc ;};
// DecodeArray returns the range of color component values in DeviceRGB colorspace.
func (_bfddb *PdfColorspaceDeviceRGB )DecodeArray ()[]float64 {return []float64 {0.0,1.0,0.0,1.0,0.0,1.0};};
// NewReaderForText makes a new PdfReader for an input PDF content string. For use in testing.
func NewReaderForText (txt string )*PdfReader {return &PdfReader {_acfdf :map[_ce .PdfObject ]struct{}{},_cbdfb :_accg (),_dbfe :_ce .NewParserFromString (txt )};};func (_efafe *PdfAcroForm )fill (_ffbe FieldValueProvider ,_dageb FieldAppearanceGenerator )error {if _efafe ==nil {return nil ;};_edbf ,_acbg :=_ffbe .FieldValues ();if _acbg !=nil {return _acbg ;};for _ ,_dabef :=range _efafe .AllFields (){_bfgd :=_dabef .PartialName ();_cddf ,_bgfgd :=_edbf [_bfgd ];if !_bgfgd {if _dccd ,_fcgbc :=_dabef .FullName ();_fcgbc ==nil {_cddf ,_bgfgd =_edbf [_dccd ];};};if !_bgfgd {_ebg .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",_bfgd );continue ;};if _ffcge :=_baeca (_dabef ,_cddf );_ffcge !=nil {return _ffcge ;};if _dageb ==nil {continue ;};for _ ,_daafb :=range _dabef .Annotations {_adde ,_gdfgg :=_dageb .GenerateAppearanceDict (_efafe ,_dabef ,_daafb );if _gdfgg !=nil {return _gdfgg ;};_daafb .AP =_adde ;_daafb .ToPdfObject ();};};return nil ;};
// ToPdfObject returns the PDF representation of the shading dictionary.
func (_gcdaf *PdfShadingType1 )ToPdfObject ()_ce .PdfObject {_gcdaf .PdfShading .ToPdfObject ();_gagca ,_acfee :=_gcdaf .getShadingDict ();if _acfee !=nil {_ebg .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 _gcdaf .Domain !=nil {_gagca .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_gcdaf .Domain );};if _gcdaf .Matrix !=nil {_gagca .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_gcdaf .Matrix );};if _gcdaf .Function !=nil {if len (_gcdaf .Function )==1{_gagca .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_gcdaf .Function [0].ToPdfObject ());}else {_ecdbfe :=_ce .MakeArray ();for _ ,_dagea :=range _gcdaf .Function {_ecdbfe .Append (_dagea .ToPdfObject ());};_gagca .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_ecdbfe );};};return _gcdaf ._efbab ;};
// ToPdfObject converts the font to a PDF representation.
func (_afca *pdfFontType0 )ToPdfObject ()_ce .PdfObject {if _afca ._caga ==nil {_afca ._caga =&_ce .PdfIndirectObject {};};_fdegf :=_afca .baseFields ().asPdfObjectDictionary ("\u0054\u0079\u0070e\u0030");_afca ._caga .PdfObject =_fdegf ;if _afca .Encoding !=nil {_fdegf .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_afca .Encoding );}else if _afca ._gedcf !=nil {_fdegf .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_afca ._gedcf .ToPdfObject ());};if _afca .DescendantFont !=nil {_fdegf .Set ("\u0044e\u0073c\u0065\u006e\u0064\u0061\u006e\u0074\u0046\u006f\u006e\u0074\u0073",_ce .MakeArray (_afca .DescendantFont .ToPdfObject ()));};return _afca ._caga ;};func _dgdea ()string {return _babd };func (_cacb *PdfReader )newPdfAnnotationPolygonFromDict (_fbe *_ce .PdfObjectDictionary )(*PdfAnnotationPolygon ,error ){_eddd :=PdfAnnotationPolygon {};_ecgd ,_agg :=_cacb .newPdfAnnotationMarkupFromDict (_fbe );if _agg !=nil {return nil ,_agg ;};_eddd .PdfAnnotationMarkup =_ecgd ;_eddd .Vertices =_fbe .Get ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073");_eddd .LE =_fbe .Get ("\u004c\u0045");_eddd .BS =_fbe .Get ("\u0042\u0053");_eddd .IC =_fbe .Get ("\u0049\u0043");_eddd .BE =_fbe .Get ("\u0042\u0045");_eddd .IT =_fbe .Get ("\u0049\u0054");_eddd .Measure =_fbe .Get ("\u004de\u0061\u0073\u0075\u0072\u0065");return &_eddd ,nil ;};
// ToPdfObject implements interface PdfModel.
func (_gae *PdfAnnotationCaret )ToPdfObject ()_ce .PdfObject {_gae .PdfAnnotation .ToPdfObject ();_ggga :=_gae ._bda ;_bfgc :=_ggga .PdfObject .(*_ce .PdfObjectDictionary );_gae .PdfAnnotationMarkup .appendToPdfDictionary (_bfgc );_bfgc .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ce .MakeName ("\u0043\u0061\u0072e\u0074"));_bfgc .SetIfNotNil ("\u0052\u0044",_gae .RD );_bfgc .SetIfNotNil ("\u0053\u0079",_gae .Sy );return _ggga ;};
// AddExtGState add External Graphics State (GState). The gsDict can be specified
// either directly as a dictionary or an indirect object containing a dictionary.
func (_eddc *PdfPageResources )AddExtGState (gsName _ce .PdfObjectName ,gsDict _ce .PdfObject )error {if _eddc .ExtGState ==nil {_eddc .ExtGState =_ce .MakeDict ();};_egeeb :=_eddc .ExtGState ;_agcfe ,_aedc :=_ce .TraceToDirectObject (_egeeb ).(*_ce .PdfObjectDictionary );if !_aedc {_ebg .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",_egeeb ,_ce .TraceToDirectObject (_egeeb ));return _ce .ErrTypeError ;};_agcfe .Set (gsName ,gsDict );return nil ;};
// ToPdfObject recursively builds the Outline tree PDF object.
func (_eabaa *PdfOutlineItem )ToPdfObject ()_ce .PdfObject {_affbg :=_eabaa ._cfgdb ;_efbf :=_affbg .PdfObject .(*_ce .PdfObjectDictionary );_efbf .Set ("\u0054\u0069\u0074l\u0065",_eabaa .Title );if _eabaa .A !=nil {_efbf .Set ("\u0041",_eabaa .A );};if _ceaa :=_efbf .Get ("\u0053\u0045");_ceaa !=nil {_efbf .Remove ("\u0053\u0045");};if _eabaa .C !=nil {_efbf .Set ("\u0043",_eabaa .C );};if _eabaa .Dest !=nil {_efbf .Set ("\u0044\u0065\u0073\u0074",_eabaa .Dest );};if _eabaa .F !=nil {_efbf .Set ("\u0046",_eabaa .F );};if _eabaa .Count !=nil {_efbf .Set ("\u0043\u006f\u0075n\u0074",_ce .MakeInteger (*_eabaa .Count ));};if _eabaa .Next !=nil {_efbf .Set ("\u004e\u0065\u0078\u0074",_eabaa .Next .ToPdfObject ());};if _eabaa .First !=nil {_efbf .Set ("\u0046\u0069\u0072s\u0074",_eabaa .First .ToPdfObject ());};if _eabaa .Prev !=nil {_efbf .Set ("\u0050\u0072\u0065\u0076",_eabaa .Prev .GetContext ().GetContainingPdfObject ());};if _eabaa .Last !=nil {_efbf .Set ("\u004c\u0061\u0073\u0074",_eabaa .Last .GetContext ().GetContainingPdfObject ());};if _eabaa .Parent !=nil {_efbf .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_eabaa .Parent .GetContext ().GetContainingPdfObject ());};return _affbg ;};
// ToPdfObject implements interface PdfModel.
func (_bec *PdfAnnotationText )ToPdfObject ()_ce .PdfObject {_bec .PdfAnnotation .ToPdfObject ();_ffc :=_bec ._bda ;_cdef :=_ffc .PdfObject .(*_ce .PdfObjectDictionary );if _bec .PdfAnnotationMarkup !=nil {_bec .PdfAnnotationMarkup .appendToPdfDictionary (_cdef );};_cdef .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ce .MakeName ("\u0054\u0065\u0078\u0074"));_cdef .SetIfNotNil ("\u004f\u0070\u0065\u006e",_bec .Open );_cdef .SetIfNotNil ("\u004e\u0061\u006d\u0065",_bec .Name );_cdef .SetIfNotNil ("\u0053\u0074\u0061t\u0065",_bec .State );_cdef .SetIfNotNil ("\u0053\u0074\u0061\u0074\u0065\u004d\u006f\u0064\u0065\u006c",_bec .StateModel );return _ffc ;};
// ToPdfObject implements interface PdfModel.
func (_faag *PdfActionMovie )ToPdfObject ()_ce .PdfObject {_faag .PdfAction .ToPdfObject ();_aec :=_faag ._bdf ;_dec :=_aec .PdfObject .(*_ce .PdfObjectDictionary );_dec .SetIfNotNil ("\u0053",_ce .MakeName (string (ActionTypeMovie )));_dec .SetIfNotNil ("\u0041\u006e\u006e\u006f\u0074\u0061\u0074\u0069\u006f\u006e",_faag .Annotation );_dec .SetIfNotNil ("\u0054",_faag .T );_dec .SetIfNotNil ("\u004fp\u0065\u0072\u0061\u0074\u0069\u006fn",_faag .Operation );return _aec ;};
// GetTrailer returns the PDF's trailer dictionary.
func (_cebf *PdfReader )GetTrailer ()(*_ce .PdfObjectDictionary ,error ){_afgg :=_cebf ._dbfe .GetTrailer ();if _afgg ==nil {return nil ,_gd .New ("\u0074r\u0061i\u006c\u0065\u0072\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};return _afgg ,nil ;};
// NewPdfOutlineItem returns an initialized PdfOutlineItem.
func NewPdfOutlineItem ()*PdfOutlineItem {_acaa :=&PdfOutlineItem {_cfgdb :_ce .MakeIndirectObject (_ce .MakeDict ())};_acaa ._edggc =_acaa ;return _acaa ;};
// PdfColorCalGray represents a CalGray colorspace.
type PdfColorCalGray float64 ;func (_ffdge *PdfPage )getParentResources ()(*PdfPageResources ,error ){_efddb :=_ffdge .Parent ;for _efddb !=nil {_gaca ,_dbbeb :=_ce .GetDict (_efddb );if !_dbbeb {_ebg .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0069\u006e\u0076\u0061l\u0069\u0064\u0020\u0070\u0061\u0072\u0065\u006e\u0074\u0020n\u006f\u0064\u0065");return nil ,_gd .New ("i\u006e\u0076\u0061\u006cid\u0020p\u0061\u0072\u0065\u006e\u0074 \u006f\u0062\u006a\u0065\u0063\u0074");};if _aggcbd :=_gaca .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");_aggcbd !=nil {_adcb ,_cgddd :=_ce .GetDict (_aggcbd );if !_cgddd {return nil ,_gd .New ("i\u006e\u0076\u0061\u006cid\u0020r\u0065\u0073\u006f\u0075\u0072c\u0065\u0020\u0064\u0069\u0063\u0074");};_cdfae ,_edaa :=NewPdfPageResourcesFromDict (_adcb );if _edaa !=nil {return nil ,_edaa ;};return _cdfae ,nil ;};_efddb =_gaca .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");};return nil ,nil ;};
// SetXObjectByName adds the XObject from the passed in stream to the page resources.
// The added XObject is identified by the specified name.
func (_bcdb *PdfPageResources )SetXObjectByName (keyName _ce .PdfObjectName ,stream *_ce .PdfObjectStream )error {if _bcdb .XObject ==nil {_bcdb .XObject =_ce .MakeDict ();};_egagc :=_ce .TraceToDirectObject (_bcdb .XObject );_gccab ,_dcacb :=_egagc .(*_ce .PdfObjectDictionary );if !_dcacb {_ebg .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",_bcdb .XObject ,_egagc );return _gd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_gccab .Set (keyName ,stream );return nil ;};
// NewPdfAnnotationFileAttachment returns a new file attachment annotation.
func NewPdfAnnotationFileAttachment ()*PdfAnnotationFileAttachment {_ddd :=NewPdfAnnotation ();_acce :=&PdfAnnotationFileAttachment {};_acce .PdfAnnotation =_ddd ;_acce .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_ddd .SetContext (_acce );return _acce ;};
// DecodeArray returns the range of color component values in DeviceCMYK colorspace.
func (_bdfb *PdfColorspaceDeviceCMYK )DecodeArray ()[]float64 {return []float64 {0.0,1.0,0.0,1.0,0.0,1.0,0.0,1.0};};
// AddPage adds a page to the PDF file. The new page should be an indirect object.
func (_ddgfd *PdfWriter )AddPage (page *PdfPage )error {_begee (page );_ddae :=page .ToPdfObject ();_ebg .Log .Trace ("\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d");_ebg .Log .Trace ("\u0041p\u0070\u0065\u006e\u0064i\u006e\u0067\u0020\u0074\u006f \u0070a\u0067e\u0020\u006c\u0069\u0073\u0074\u0020\u0025T",_ddae );_ceebc ,_efabf :=_ce .GetIndirect (_ddae );if !_efabf {return _gd .New ("\u0070\u0061\u0067\u0065\u0020\u0073h\u006f\u0075\u006c\u0064\u0020\u0062\u0065\u0020\u0061\u006e\u0020\u0069\u006ed\u0069\u0072\u0065\u0063\u0074\u0020\u006fb\u006a\u0065\u0063\u0074");};_ebg .Log .Trace ("\u0025\u0073",_ceebc );_ebg .Log .Trace ("\u0025\u0073",_ceebc .PdfObject );_dbgdb ,_efabf :=_ce .GetDict (_ceebc .PdfObject );if !_efabf {return _gd .New ("\u0070\u0061\u0067e \u006f\u0062\u006a\u0065\u0063\u0074\u0020\u0073\u0068o\u0075l\u0064 \u0062e\u0020\u0061\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079");};_efgg ,_efabf :=_ce .GetName (_dbgdb .Get ("\u0054\u0079\u0070\u0065"));if !_efabf {return _c .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",_dbgdb .Get ("\u0054\u0079\u0070\u0065"));};if _efgg .String ()!="\u0050\u0061\u0067\u0065"{return _gd .New ("\u0066\u0069e\u006c\u0064\u0020\u0054\u0079\u0070\u0065\u0020\u0021\u003d\u0020\u0050\u0061\u0067\u0065\u0020\u0028\u0052\u0065\u0071\u0075\u0069re\u0064\u0029");};_daadc :=[]_ce .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"};_cafa ,_cedege :=_ce .GetIndirect (_dbgdb .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"));_ebg .Log .Trace ("P\u0061g\u0065\u0020\u0050\u0061\u0072\u0065\u006e\u0074:\u0020\u0025\u0054\u0020(%\u0076\u0029",_dbgdb .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"),_cedege );for _cedege {_ebg .Log .Trace ("\u0050a\u0067e\u0020\u0050\u0061\u0072\u0065\u006e\u0074\u003a\u0020\u0025\u0054",_cafa );_gbgee ,_bfbge :=_ce .GetDict (_cafa .PdfObject );if !_bfbge {return _gd .New ("i\u006e\u0076\u0061\u006cid\u0020P\u0061\u0072\u0065\u006e\u0074 \u006f\u0062\u006a\u0065\u0063\u0074");};for _ ,_aabaa :=range _daadc {_ebg .Log .Trace ("\u0046\u0069\u0065\u006c\u0064\u0020\u0025\u0073",_aabaa );if _dbgdb .Get (_aabaa )!=nil {_ebg .Log .Trace ("\u002d \u0070a\u0067\u0065\u0020\u0068\u0061s\u0020\u0061l\u0072\u0065\u0061\u0064\u0079");continue ;};if _ceddd :=_gbgee .Get (_aabaa );_ceddd !=nil {_ebg .Log .Trace ("\u0049\u006e\u0068\u0065ri\u0074\u0069\u006e\u0067\u0020\u0066\u0069\u0065\u006c\u0064\u0020\u0025\u0073",_aabaa );_dbgdb .Set (_aabaa ,_ceddd );};};_cafa ,_cedege =_ce .GetIndirect (_gbgee .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"));_ebg .Log .Trace ("\u004ee\u0078t\u0020\u0070\u0061\u0072\u0065\u006e\u0074\u003a\u0020\u0025\u0054",_gbgee .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"));};_ebg .Log .Trace ("\u0054\u0072\u0061\u0076\u0065\u0072\u0073\u0061\u006c \u0064\u006f\u006e\u0065");_dbgdb .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_ddgfd ._eegga );_ceebc .PdfObject =_dbgdb ;_cbcad ,_efabf :=_ce .GetDict (_ddgfd ._eegga .PdfObject );if !_efabf {return _gd .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0050\u0061g\u0065\u0073\u0020\u006f\u0062\u006a\u0020(\u006e\u006f\u0074\u0020\u0061\u0020\u0064\u0069\u0063\u0074\u0029");};_acbf ,_efabf :=_ce .GetArray (_cbcad .Get ("\u004b\u0069\u0064\u0073"));if !_efabf {return _gd .New ("\u0069\u006ev\u0061\u006c\u0069\u0064 \u0050\u0061g\u0065\u0073\u0020\u004b\u0069\u0064\u0073\u0020o\u0062\u006a\u0020\u0028\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0061r\u0072\u0061\u0079\u0029");};_acbf .Append (_ceebc );_ddgfd ._dedf [_dbgdb ]=struct{}{};_ffcff ,_efabf :=_ce .GetInt (_cbcad .Get ("\u0043\u006f\u0075n\u0074"));if !_efabf {return _gd .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064 \u0050\u0061\u0067e\u0073\u0020\u0043\u006fu\u006e\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0020\u0028\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0069\u006e\u0074\u0065\u0067\u0065\u0072\u0029");};*_ffcff =*_ffcff +1;_ddgfd .addObject (_ceebc );_cefega :=_ddgfd .addObjects (_dbgdb );if _cefega !=nil {return _cefega ;};return nil ;};
// GetAllContentStreams gets all the content streams for a page as one string.
func (_bbdbe *PdfPage )GetAllContentStreams ()(string ,error ){_cgbfd ,_dbcgf :=_bbdbe .GetContentStreams ();if _dbcgf !=nil {return "",_dbcgf ;};return _aga .Join (_cgbfd ,"\u0020"),nil ;};func _adfa (_dfb _ce .PdfObject )(*PdfBorderStyle ,error ){_bfbg :=&PdfBorderStyle {};_bfbg ._febe =_dfb ;var _ffce *_ce .PdfObjectDictionary ;_dfb =_ce .TraceToDirectObject (_dfb );_ffce ,_eceb :=_dfb .(*_ce .PdfObjectDictionary );if !_eceb {return nil ,_gd .New ("\u0074\u0079\u0070\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};if _dgag :=_ffce .Get ("\u0054\u0079\u0070\u0065");_dgag !=nil {_gbb ,_dggg :=_dgag .(*_ce .PdfObjectName );if !_dggg {_ebg .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",_dgag );}else {if *_gbb !="\u0042\u006f\u0072\u0064\u0065\u0072"{_ebg .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",*_gbb );};};};if _cgdb :=_ffce .Get ("\u0057");_cgdb !=nil {_fgbge ,_ccc :=_ce .GetNumberAsFloat (_cgdb );if _ccc !=nil {_ebg .Log .Debug ("\u0045\u0072\u0072\u006fr \u0072\u0065\u0074\u0072\u0069\u0065\u0076\u0069\u006e\u0067\u0020\u0057\u003a\u0020%\u0076",_ccc );return nil ,_ccc ;};_bfbg .W =&_fgbge ;};if _affed :=_ffce .Get ("\u0053");_affed !=nil {_ffg ,_gffc :=_affed .(*_ce .PdfObjectName );if !_gffc {return nil ,_gd .New ("\u0062\u006f\u0072\u0064\u0065\u0072\u0020\u0053\u0020\u006e\u006ft\u0020\u0061\u0020\u006e\u0061\u006d\u0065\u0020\u006f\u0062j\u0065\u0063\u0074");};var _dgaed BorderStyle ;switch *_ffg {case "\u0053":_dgaed =BorderStyleSolid ;case "\u0044":_dgaed =BorderStyleDashed ;case "\u0042":_dgaed =BorderStyleBeveled ;case "\u0049":_dgaed =BorderStyleInset ;case "\u0055":_dgaed =BorderStyleUnderline ;default:_ebg .Log .Debug ("I\u006e\u0076\u0061\u006cid\u0020s\u0074\u0079\u006c\u0065\u0020n\u0061\u006d\u0065\u0020\u0025\u0073",*_ffg );return nil ,_gd .New ("\u0073\u0074\u0079\u006ce \u0074\u0079\u0070\u0065\u0020\u0072\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065c\u006b");};_bfbg .S =&_dgaed ;};if _efgd :=_ffce .Get ("\u0044");_efgd !=nil {_dgbec ,_ccg :=_efgd .(*_ce .PdfObjectArray );if !_ccg {_ebg .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",_efgd );return nil ,_gd .New ("\u0062o\u0072\u0064\u0065\u0072 \u0044\u0020\u0074\u0079\u0070e\u0020c\u0068e\u0063\u006b\u0020\u0065\u0072\u0072\u006fr");};_ecef ,_dge :=_dgbec .ToIntegerArray ();if _dge !=nil {_ebg .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",_dge );return nil ,_dge ;};_bfbg .D =&_ecef ;};return _bfbg ,nil ;};
// PdfAnnotationStrikeOut represents StrikeOut annotations.
// (Section 12.5.6.10).
type PdfAnnotationStrikeOut struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _ce .PdfObject ;};func (_ggcfe *pdfFontSimple )baseFields ()*fontCommon {return &_ggcfe .fontCommon };
// ToPdfObject implements interface PdfModel.
func (_fgb *PdfActionTrans )ToPdfObject ()_ce .PdfObject {_fgb .PdfAction .ToPdfObject ();_cfc :=_fgb ._bdf ;_cbb :=_cfc .PdfObject .(*_ce .PdfObjectDictionary );_cbb .SetIfNotNil ("\u0053",_ce .MakeName (string (ActionTypeTrans )));_cbb .SetIfNotNil ("\u0054\u0072\u0061n\u0073",_fgb .Trans );return _cfc ;};
// ToPdfObject implements interface PdfModel.
func (_fdbg *PdfAnnotationPrinterMark )ToPdfObject ()_ce .PdfObject {_fdbg .PdfAnnotation .ToPdfObject ();_aaeaa :=_fdbg ._bda ;_acgf :=_aaeaa .PdfObject .(*_ce .PdfObjectDictionary );_acgf .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ce .MakeName ("P\u0072\u0069\u006e\u0074\u0065\u0072\u004d\u0061\u0072\u006b"));_acgf .SetIfNotNil ("\u004d\u004e",_fdbg .MN );return _aaeaa ;};
// FieldAppearanceGenerator generates appearance stream for a given field.
type FieldAppearanceGenerator interface{ContentStreamWrapper ;GenerateAppearanceDict (_defe *PdfAcroForm ,_cfce *PdfField ,_degf *PdfAnnotationWidget )(*_ce .PdfObjectDictionary ,error );};
// SetBorderWidth sets the style's border width.
func (_dcfd *PdfBorderStyle )SetBorderWidth (width float64 ){_dcfd .W =&width };func (_dffee fontCommon )isCIDFont ()bool {if _dffee ._dbbag ==""{_ebg .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",_dffee );};_fbfe :=false ;switch _dffee ._dbbag {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":_fbfe =true ;};_ebg .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",_fbfe ,_dffee );return _fbfe ;};
// String returns a string that describes `base`.
func (_egbcc fontCommon )String ()string {return _c .Sprintf ("\u0046\u004f\u004e\u0054\u007b\u0025\u0073\u007d",_egbcc .coreString ());};
// DecodeArray returns the range of color component values in DeviceGray colorspace.
func (_bdd *PdfColorspaceDeviceGray )DecodeArray ()[]float64 {return []float64 {0,1.0}};
// NewPdfAnnotationPopup returns a new popup annotation.
func NewPdfAnnotationPopup ()*PdfAnnotationPopup {_fcebf :=NewPdfAnnotation ();_dbga :=&PdfAnnotationPopup {};_dbga .PdfAnnotation =_fcebf ;_fcebf .SetContext (_dbga );return _dbga ;};func _fabe (_gebg _ce .PdfObject )(*PdfFunctionType2 ,error ){_bedbc :=&PdfFunctionType2 {};var _acae *_ce .PdfObjectDictionary ;if _gebgg ,_debdb :=_gebg .(*_ce .PdfIndirectObject );_debdb {_ccbee ,_ffab :=_gebgg .PdfObject .(*_ce .PdfObjectDictionary );if !_ffab {return nil ,_gd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_bedbc ._gfefa =_gebgg ;_acae =_ccbee ;}else if _cagea ,_babg :=_gebg .(*_ce .PdfObjectDictionary );_babg {_acae =_cagea ;}else {return nil ,_gd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_ebg .Log .Trace ("\u0046U\u004e\u0043\u0032\u003a\u0020\u0025s",_acae .String ());_gedf ,_dgcae :=_ce .TraceToDirectObject (_acae .Get ("\u0044\u006f\u006d\u0061\u0069\u006e")).(*_ce .PdfObjectArray );if !_dgcae {_ebg .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_gd .New ("\u0072\u0065q\u0075\u0069\u0072\u0065d\u0020\u0061t\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020m\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u006f\u0072\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");};if _gedf .Len ()< 0||_gedf .Len ()%2!=0{_ebg .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u0072\u0061\u006e\u0067e\u0020\u0069\u006e\u0076al\u0069\u0064");return nil ,_gd .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0064\u006f\u006da\u0069\u006e\u0020\u0072an\u0067\u0065");};_cdff ,_eggb :=_gedf .ToFloat64Array ();if _eggb !=nil {return nil ,_eggb ;};_bedbc .Domain =_cdff ;_gedf ,_dgcae =_ce .TraceToDirectObject (_acae .Get ("\u0052\u0061\u006eg\u0065")).(*_ce .PdfObjectArray );if _dgcae {if _gedf .Len ()< 0||_gedf .Len ()%2!=0{return nil ,_gd .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0061\u006e\u0067\u0065");};_bbcce ,_gfede :=_gedf .ToFloat64Array ();if _gfede !=nil {return nil ,_gfede ;};_bedbc .Range =_bbcce ;};_gedf ,_dgcae =_ce .TraceToDirectObject (_acae .Get ("\u0043\u0030")).(*_ce .PdfObjectArray );if _dgcae {_acdd ,_fabea :=_gedf .ToFloat64Array ();if _fabea !=nil {return nil ,_fabea ;};_bedbc .C0 =_acdd ;};_gedf ,_dgcae =_ce .TraceToDirectObject (_acae .Get ("\u0043\u0031")).(*_ce .PdfObjectArray );if _dgcae {_cbedb ,_gdfba :=_gedf .ToFloat64Array ();if _gdfba !=nil {return nil ,_gdfba ;};_bedbc .C1 =_cbedb ;};if len (_bedbc .C0 )!=len (_bedbc .C1 ){_ebg .Log .Error ("\u0043\u0030\u0020\u0061nd\u0020\u0043\u0031\u0020\u006e\u006f\u0074\u0020\u006d\u0061\u0074\u0063\u0068\u0069n\u0067");return nil ,_ce .ErrRangeError ;};N ,_eggb :=_ce .GetNumberAsFloat (_ce .TraceToDirectObject (_acae .Get ("\u004e")));if _eggb !=nil {_ebg .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",_acae .String ());return nil ,_eggb ;};_bedbc .N =N ;return _bedbc ,nil ;};
// PdfAnnotationMovie represents Movie annotations.
// (Section 12.5.6.17).
type PdfAnnotationMovie struct{*PdfAnnotation ;T _ce .PdfObject ;Movie _ce .PdfObject ;A _ce .PdfObject ;};
// 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 (_bacdc *PdfFont )CharcodeBytesToUnicode (data []byte )(string ,int ,int ){_agdab ,_ ,_cag :=_bacdc .CharcodesToUnicodeWithStats (_bacdc .BytesToCharcodes (data ));_bgda :=_cce .ExpandLigatures (_agdab );return _bgda ,_gg .RuneCountInString (_bgda ),_cag ;};
// DecodeArray returns an empty slice as there are no components associated with pattern colorspace.
func (_dbbf *PdfColorspaceSpecialPattern )DecodeArray ()[]float64 {return []float64 {}};func _gfadb (_bbaf *fontCommon )*pdfFontType0 {return &pdfFontType0 {fontCommon :*_bbaf }};
// UpdateObject marks `obj` as updated and to be included in the following revision.
func (_aebb *PdfAppender )UpdateObject (obj _ce .PdfObject ){_aebb .replaceObject (obj ,obj );if _ ,_ffed :=_aebb ._adba [obj ];!_ffed {_aebb ._fadd =append (_aebb ._fadd ,obj );_aebb ._adba [obj ]=struct{}{};};};
// ToPdfObject recursively builds the Outline tree PDF object.
func (_badga *PdfOutline )ToPdfObject ()_ce .PdfObject {_badd :=_badga ._cdgg ;_ceda :=_badd .PdfObject .(*_ce .PdfObjectDictionary );_ceda .Set ("\u0054\u0079\u0070\u0065",_ce .MakeName ("\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0073"));if _badga .First !=nil {_ceda .Set ("\u0046\u0069\u0072s\u0074",_badga .First .ToPdfObject ());};if _badga .Last !=nil {_ceda .Set ("\u004c\u0061\u0073\u0074",_badga .Last .GetContext ().GetContainingPdfObject ());};if _badga .Parent !=nil {_ceda .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_badga .Parent .GetContext ().GetContainingPdfObject ());};if _badga .Count !=nil {_ceda .Set ("\u0043\u006f\u0075n\u0074",_ce .MakeInteger (*_badga .Count ));};return _badd ;};
// GetParamsDict returns *core.PdfObjectDictionary with a set of basic image parameters.
func (_egdba *Image )GetParamsDict ()*_ce .PdfObjectDictionary {_efafb :=_ce .MakeDict ();_efafb .Set ("\u0057\u0069\u0064t\u0068",_ce .MakeInteger (_egdba .Width ));_efafb .Set ("\u0048\u0065\u0069\u0067\u0068\u0074",_ce .MakeInteger (_egdba .Height ));_efafb .Set ("\u0043o\u006co\u0072\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074\u0073",_ce .MakeInteger (int64 (_egdba .ColorComponents )));_efafb .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_ce .MakeInteger (_egdba .BitsPerComponent ));return _efafb ;};
// GetContainingPdfObject returns the container of the pattern object (indirect object).
func (_cebed *PdfPattern )GetContainingPdfObject ()_ce .PdfObject {return _cebed ._efabe };
// GetOCProperties returns the optional content properties PdfObject.
func (_cdedg *PdfReader )GetOCProperties ()(_ce .PdfObject ,error ){_cedde :=_cdedg ._gaadd ;_gecbb :=_cedde .Get ("\u004f\u0043\u0050r\u006f\u0070\u0065\u0072\u0074\u0069\u0065\u0073");_gecbb =_ce .ResolveReference (_gecbb );if !_cdedg ._ebegg {_fgbec :=_cdedg .traverseObjectData (_gecbb );if _fgbec !=nil {return nil ,_fgbec ;};};return _gecbb ,nil ;};
// GetContentStreamWithEncoder returns the pattern cell's content stream and its encoder
func (_dabdg *PdfTilingPattern )GetContentStreamWithEncoder ()([]byte ,_ce .StreamEncoder ,error ){_caecg ,_gdfcb :=_dabdg ._efabe .(*_ce .PdfObjectStream );if !_gdfcb {_ebg .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",_dabdg ._efabe );return nil ,nil ,_ce .ErrTypeError ;};_fcdd ,_gebbb :=_ce .DecodeStream (_caecg );if _gebbb !=nil {_ebg .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",_gebbb );return nil ,nil ,_gebbb ;};_gfggb ,_gebbb :=_ce .NewEncoderFromStream (_caecg );if _gebbb !=nil {_ebg .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",_gebbb );return nil ,nil ,_gebbb ;};return _fcdd ,_gfggb ,nil ;};
// PdfActionGoTo represents a GoTo action.
type PdfActionGoTo struct{*PdfAction ;D _ce .PdfObject ;};
// ToPdfObject implements interface PdfModel.
func (_bgb *PdfActionRendition )ToPdfObject ()_ce .PdfObject {_bgb .PdfAction .ToPdfObject ();_dbg :=_bgb ._bdf ;_fcb :=_dbg .PdfObject .(*_ce .PdfObjectDictionary );_fcb .SetIfNotNil ("\u0053",_ce .MakeName (string (ActionTypeRendition )));_fcb .SetIfNotNil ("\u0052",_bgb .R );_fcb .SetIfNotNil ("\u0041\u004e",_bgb .AN );_fcb .SetIfNotNil ("\u004f\u0050",_bgb .OP );_fcb .SetIfNotNil ("\u004a\u0053",_bgb .JS );return _dbg ;};
// ImageToRGB converts an Image in a given PdfColorspace to an RGB image.
func (_afgab *PdfColorspaceDeviceN )ImageToRGB (img Image )(Image ,error ){_beea :=_ac .NewReader (img .getBase ());_efdd :=_age .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),img .ColorComponents ,nil ,img ._fdcac ,img ._cddaa );_agce :=_ac .NewWriter (_efdd );_fbcf :=_ag .Pow (2,float64 (img .BitsPerComponent ))-1;_fbde :=_afgab .GetNumComponents ();_ecefa :=make ([]uint32 ,_fbde );_gaae :=make ([]float64 ,_fbde );for {_cdb :=_beea .ReadSamples (_ecefa );if _cdb ==_cg .EOF {break ;}else if _cdb !=nil {return img ,_cdb ;};for _adga :=0;_adga < _fbde ;_adga ++{_fbf :=float64 (_ecefa [_adga ])/_fbcf ;_gaae [_adga ]=_fbf ;};_gaeac ,_cdb :=_afgab .TintTransform .Evaluate (_gaae );if _cdb !=nil {return img ,_cdb ;};for _ ,_gbaff :=range _gaeac {_gbaff =_ag .Min (_ag .Max (0,_gbaff ),1.0);if _cdb =_agce .WriteSample (uint32 (_gbaff *_fbcf ));_cdb !=nil {return img ,_cdb ;};};};return _afgab .AlternateSpace .ImageToRGB (_efeaf (&_efdd ));};
// ToPdfObject returns the PDF representation of the function.
func (_cdda *PdfFunctionType2 )ToPdfObject ()_ce .PdfObject {_agfgc :=_ce .MakeDict ();_agfgc .Set ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065",_ce .MakeInteger (2));_dccca :=&_ce .PdfObjectArray {};for _ ,_acdae :=range _cdda .Domain {_dccca .Append (_ce .MakeFloat (_acdae ));};_agfgc .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_dccca );if _cdda .Range !=nil {_bfac :=&_ce .PdfObjectArray {};for _ ,_ffcdg :=range _cdda .Range {_bfac .Append (_ce .MakeFloat (_ffcdg ));};_agfgc .Set ("\u0052\u0061\u006eg\u0065",_bfac );};if _cdda .C0 !=nil {_bebgg :=&_ce .PdfObjectArray {};for _ ,_eagd :=range _cdda .C0 {_bebgg .Append (_ce .MakeFloat (_eagd ));};_agfgc .Set ("\u0043\u0030",_bebgg );};if _cdda .C1 !=nil {_bcgf :=&_ce .PdfObjectArray {};for _ ,_cfbcf :=range _cdda .C1 {_bcgf .Append (_ce .MakeFloat (_cfbcf ));};_agfgc .Set ("\u0043\u0031",_bcgf );};_agfgc .Set ("\u004e",_ce .MakeFloat (_cdda .N ));if _cdda ._gfefa !=nil {_cdda ._gfefa .PdfObject =_agfgc ;return _cdda ._gfefa ;};return _agfgc ;};func _cdcg (_abafe _ce .PdfObject )(*PdfFontDescriptor ,error ){_fcac :=&PdfFontDescriptor {};_abafe =_ce .ResolveReference (_abafe );if _ddcg ,_abbcc :=_abafe .(*_ce .PdfIndirectObject );_abbcc {_fcac ._ddbce =_ddcg ;_abafe =_ddcg .PdfObject ;};_cfaeg ,_cdcaa :=_ce .GetDict (_abafe );if !_cdcaa {_ebg .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",_abafe );return nil ,_ce .ErrTypeError ;};if _gdfc :=_cfaeg .Get ("\u0046\u006f\u006e\u0074\u004e\u0061\u006d\u0065");_gdfc !=nil {_fcac .FontName =_gdfc ;}else {_ebg .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");};_egcfc ,_ :=_ce .GetName (_fcac .FontName );if _ggbab :=_cfaeg .Get ("\u0054\u0079\u0070\u0065");_ggbab !=nil {_ecgfb ,_ecgfe :=_ggbab .(*_ce .PdfObjectName );if !_ecgfe ||string (*_ecgfb )!="\u0046\u006f\u006e\u0074\u0044\u0065\u0073\u0063\u0072i\u0070\u0074\u006f\u0072"{_ebg .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",_ggbab ,_egcfc ,_fcac .FontName );};}else {_ebg .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",_egcfc ,_fcac .FontName );};_fcac .FontFamily =_cfaeg .Get ("\u0046\u006f\u006e\u0074\u0046\u0061\u006d\u0069\u006c\u0079");_fcac .FontStretch =_cfaeg .Get ("F\u006f\u006e\u0074\u0053\u0074\u0072\u0065\u0074\u0063\u0068");_fcac .FontWeight =_cfaeg .Get ("\u0046\u006f\u006e\u0074\u0057\u0065\u0069\u0067\u0068\u0074");_fcac .Flags =_cfaeg .Get ("\u0046\u006c\u0061g\u0073");_fcac .FontBBox =_cfaeg .Get ("\u0046\u006f\u006e\u0074\u0042\u0042\u006f\u0078");_fcac .ItalicAngle =_cfaeg .Get ("I\u0074\u0061\u006c\u0069\u0063\u0041\u006e\u0067\u006c\u0065");_fcac .Ascent =_cfaeg .Get ("\u0041\u0073\u0063\u0065\u006e\u0074");_fcac .Descent =_cfaeg .Get ("\u0044e\u0073\u0063\u0065\u006e\u0074");_fcac .Leading =_cfaeg .Get ("\u004ce\u0061\u0064\u0069\u006e\u0067");_fcac .CapHeight =_cfaeg .Get ("\u0043a\u0070\u0048\u0065\u0069\u0067\u0068t");_fcac .XHeight =_cfaeg .Get ("\u0058H\u0065\u0069\u0067\u0068\u0074");_fcac .StemV =_cfaeg .Get ("\u0053\u0074\u0065m\u0056");_fcac .StemH =_cfaeg .Get ("\u0053\u0074\u0065m\u0048");_fcac .AvgWidth =_cfaeg .Get ("\u0041\u0076\u0067\u0057\u0069\u0064\u0074\u0068");_fcac .MaxWidth =_cfaeg .Get ("\u004d\u0061\u0078\u0057\u0069\u0064\u0074\u0068");_fcac .MissingWidth =_cfaeg .Get ("\u004d\u0069\u0073s\u0069\u006e\u0067\u0057\u0069\u0064\u0074\u0068");_fcac .FontFile =_cfaeg .Get ("\u0046\u006f\u006e\u0074\u0046\u0069\u006c\u0065");_fcac .FontFile2 =_cfaeg .Get ("\u0046o\u006e\u0074\u0046\u0069\u006c\u00652");_fcac .FontFile3 =_cfaeg .Get ("\u0046o\u006e\u0074\u0046\u0069\u006c\u00653");_fcac .CharSet =_cfaeg .Get ("\u0043h\u0061\u0072\u0053\u0065\u0074");_fcac .Style =_cfaeg .Get ("\u0053\u0074\u0079l\u0065");_fcac .Lang =_cfaeg .Get ("\u004c\u0061\u006e\u0067");_fcac .FD =_cfaeg .Get ("\u0046\u0044");_fcac .CIDSet =_cfaeg .Get ("\u0043\u0049\u0044\u0053\u0065\u0074");if _fcac .Flags !=nil {if _gbece ,_edbg :=_ce .GetIntVal (_fcac .Flags );_edbg {_fcac ._fcfce =_gbece ;};};if _fcac .MissingWidth !=nil {if _ddcd ,_bfeda :=_ce .GetNumberAsFloat (_fcac .MissingWidth );_bfeda ==nil {_fcac ._gcfg =_ddcd ;};};if _fcac .FontFile !=nil {_ccgf ,_aab :=_faeb (_fcac .FontFile );if _aab !=nil {return _fcac ,_aab ;};_ebg .Log .Trace ("f\u006f\u006e\u0074\u0046\u0069\u006c\u0065\u003d\u0025\u0073",_ccgf );_fcac .fontFile =_ccgf ;};if _fcac .FontFile2 !=nil {_dbcdad ,_baab :=_cc .NewFontFile2FromPdfObject (_fcac .FontFile2 );if _baab !=nil {return _fcac ,_baab ;};_ebg .Log .Trace ("\u0066\u006f\u006et\u0046\u0069\u006c\u0065\u0032\u003d\u0025\u0073",_dbcdad .String ());_fcac ._ggefa =&_dbcdad ;};return _fcac ,nil ;};
// NewPdfPageResourcesFromDict creates and returns a new PdfPageResources object
// from the input dictionary.
func NewPdfPageResourcesFromDict (dict *_ce .PdfObjectDictionary )(*PdfPageResources ,error ){_acgc :=NewPdfPageResources ();if _fdbga :=dict .Get ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e");_fdbga !=nil {_acgc .ExtGState =_fdbga ;};if _dddbc :=dict .Get ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065");_dddbc !=nil &&!_ce .IsNullObject (_dddbc ){_acgc .ColorSpace =_dddbc ;};if _ebcba :=dict .Get ("\u0050a\u0074\u0074\u0065\u0072\u006e");_ebcba !=nil {_acgc .Pattern =_ebcba ;};if _cbeae :=dict .Get ("\u0053h\u0061\u0064\u0069\u006e\u0067");_cbeae !=nil {_acgc .Shading =_cbeae ;};if _gbgc :=dict .Get ("\u0058O\u0062\u006a\u0065\u0063\u0074");_gbgc !=nil {_acgc .XObject =_gbgc ;};if _abgg :=_ce .ResolveReference (dict .Get ("\u0046\u006f\u006e\u0074"));_abgg !=nil {_acgc .Font =_abgg ;};if _fbffd :=dict .Get ("\u0050r\u006f\u0063\u0053\u0065\u0074");_fbffd !=nil {_acgc .ProcSet =_fbffd ;};if _cbdab :=dict .Get ("\u0050\u0072\u006f\u0070\u0065\u0072\u0074\u0069\u0065\u0073");_cbdab !=nil {_acgc .Properties =_cbdab ;};return _acgc ,nil ;};
// PdfBorderEffect represents a PDF border effect.
type PdfBorderEffect struct{S *BorderEffect ;I *float64 ;};func (_gdea *PdfColorspaceDeviceCMYK )String ()string {return "\u0044\u0065\u0076\u0069\u0063\u0065\u0043\u004d\u0059\u004b";};func (_agdf *pdfCIDFontType2 )baseFields ()*fontCommon {return &_agdf .fontCommon };var (_baagb =_ed .MustCompile ("\u005cd\u002b\u0020\u0064\u0069c\u0074\u005c\u0073\u002b\u0028d\u0075p\u005cs\u002b\u0029\u003f\u0062\u0065\u0067\u0069n");_gfdfe =_ed .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");_ddfea =_ed .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");_eaef ="\u002f\u0045\u006e\u0063od\u0069\u006e\u0067\u0020\u0032\u0035\u0036\u0020\u0061\u0072\u0072\u0061\u0079";_geeba ="\u0072\u0065\u0061d\u006f\u006e\u006c\u0079\u0020\u0064\u0065\u0066";_bgfde ="\u0063\u0075\u0072\u0072\u0065\u006e\u0074\u0066\u0069\u006c\u0065\u0020e\u0065\u0078\u0065\u0063";);
// ToPdfObject implements interface PdfModel.
func (_gfdb *PdfAnnotationCircle )ToPdfObject ()_ce .PdfObject {_gfdb .PdfAnnotation .ToPdfObject ();_aefd :=_gfdb ._bda ;_cefe :=_aefd .PdfObject .(*_ce .PdfObjectDictionary );_gfdb .PdfAnnotationMarkup .appendToPdfDictionary (_cefe );_cefe .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ce .MakeName ("\u0043\u0069\u0072\u0063\u006c\u0065"));_cefe .SetIfNotNil ("\u0042\u0053",_gfdb .BS );_cefe .SetIfNotNil ("\u0049\u0043",_gfdb .IC );_cefe .SetIfNotNil ("\u0042\u0045",_gfdb .BE );_cefe .SetIfNotNil ("\u0052\u0044",_gfdb .RD );return _aefd ;};var _ebac =_ed .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");
// ColorToRGB converts a Lab color to an RGB color.
func (_gdfgc *PdfColorspaceLab )ColorToRGB (color PdfColor )(PdfColor ,error ){_fbaf :=func (_gbad float64 )float64 {if _gbad >=6.0/29{return _gbad *_gbad *_gbad ;};return 108.0/841*(_gbad -4/29);};_fddaf ,_bfddd :=color .(*PdfColorLab );if !_bfddd {_ebg .Log .Debug ("\u0069\u006e\u0070\u0075t \u0063\u006f\u006c\u006f\u0072\u0020\u006e\u006f\u0074\u0020\u006c\u0061\u0062");return nil ,_gd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};LStar :=_fddaf .L ();AStar :=_fddaf .A ();BStar :=_fddaf .B ();L :=(LStar +16)/116+AStar /500;M :=(LStar +16)/116;N :=(LStar +16)/116-BStar /200;X :=_gdfgc .WhitePoint [0]*_fbaf (L );Y :=_gdfgc .WhitePoint [1]*_fbaf (M );Z :=_gdfgc .WhitePoint [2]*_fbaf (N );_dgfcb :=3.240479*X +-1.537150*Y +-0.498535*Z ;_gdaae :=-0.969256*X +1.875992*Y +0.041556*Z ;_ebag :=0.055648*X +-0.204043*Y +1.057311*Z ;_dgfcb =_ag .Min (_ag .Max (_dgfcb ,0),1.0);_gdaae =_ag .Min (_ag .Max (_gdaae ,0),1.0);_ebag =_ag .Min (_ag .Max (_ebag ,0),1.0);return NewPdfColorDeviceRGB (_dgfcb ,_gdaae ,_ebag ),nil ;};
// G returns the value of the green component of the color.
func (_bdfe *PdfColorDeviceRGB )G ()float64 {return float64 (_bdfe [1])};
// 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 _ce .PdfObjectArray )(*PdfRectangle ,error ){_ecebf :=PdfRectangle {};if arr .Len ()!=4{return nil ,_gd .New ("\u0069\u006e\u0076\u0061\u006c\u0069d\u0020\u0072\u0065\u0063\u0074\u0061\u006e\u0067\u006c\u0065\u0020\u0061\u0072r\u0061\u0079\u002c\u0020\u006c\u0065\u006e \u0021\u003d\u0020\u0034");};var _dgecf error ;_ecebf .Llx ,_dgecf =_ce .GetNumberAsFloat (arr .Get (0));if _dgecf !=nil {return nil ,_dgecf ;};_ecebf .Lly ,_dgecf =_ce .GetNumberAsFloat (arr .Get (1));if _dgecf !=nil {return nil ,_dgecf ;};_ecebf .Urx ,_dgecf =_ce .GetNumberAsFloat (arr .Get (2));if _dgecf !=nil {return nil ,_dgecf ;};_ecebf .Ury ,_dgecf =_ce .GetNumberAsFloat (arr .Get (3));if _dgecf !=nil {return nil ,_dgecf ;};return &_ecebf ,nil ;};
// NewPdfAnnotationText returns a new text annotation.
func NewPdfAnnotationText ()*PdfAnnotationText {_dee :=NewPdfAnnotation ();_acf :=&PdfAnnotationText {};_acf .PdfAnnotation =_dee ;_acf .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_dee .SetContext (_acf );return _acf ;};func _bbafg (_eeggg *fontCommon )*pdfFontSimple {return &pdfFontSimple {fontCommon :*_eeggg }};
// PdfAction represents an action in PDF (section 12.6 p. 412).
type PdfAction struct{_cga PdfModel ;Type _ce .PdfObject ;S _ce .PdfObject ;Next _ce .PdfObject ;_bdf *_ce .PdfIndirectObject ;};
// GetContainingPdfObject implements interface PdfModel.
func (_gdfe *PdfAnnotation )GetContainingPdfObject ()_ce .PdfObject {return _gdfe ._bda };
// GetXObjectFormByName returns the XObjectForm with the specified name from the
// page resources, if it exists.
func (_gdged *PdfPageResources )GetXObjectFormByName (keyName _ce .PdfObjectName )(*XObjectForm ,error ){_befg ,_ggefg :=_gdged .GetXObjectByName (keyName );if _befg ==nil {return nil ,nil ;};if _ggefg !=XObjectTypeForm {return nil ,_gd .New ("\u006e\u006f\u0074\u0020\u0061\u0020\u0066\u006f\u0072\u006d");};_acfeg ,_febdf :=NewXObjectFormFromStream (_befg );if _febdf !=nil {return nil ,_febdf ;};return _acfeg ,nil ;};
// CharMetrics represents width and height metrics of a glyph.
type CharMetrics =_cc .CharMetrics ;
// 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 ){_ecffc ,_caec :=_baa .Open (filePath );if _caec !=nil {_ebg .Log .Debug ("\u0045\u0052\u0052OR\u003a\u0020\u006f\u0070\u0065\u006e\u0069\u006e\u0067\u0020\u0066\u0069\u006c\u0065\u003a\u0020\u0025\u0076",_caec );return nil ,_caec ;};defer _ecffc .Close ();return NewCompositePdfFontFromTTF (_ecffc );};
// DecodeArray returns the component range values for the DeviceN colorspace.
// [0 1.0 0 1.0 ...] for each color component.
func (_dafec *PdfColorspaceDeviceN )DecodeArray ()[]float64 {var _afdd []float64 ;for _gecb :=0;_gecb < _dafec .GetNumComponents ();_gecb ++{_afdd =append (_afdd ,0.0,1.0);};return _afdd ;};
// 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 (_baedb []_ce .PdfObject )([]_ce .PdfObject ,error );};func _cdbd ()string {return _fbdc };func (_daf *PdfReader )newPdfActionRenditionFromDict (_cgg *_ce .PdfObjectDictionary )(*PdfActionRendition ,error ){return &PdfActionRendition {R :_cgg .Get ("\u0052"),AN :_cgg .Get ("\u0041\u004e"),OP :_cgg .Get ("\u004f\u0050"),JS :_cgg .Get ("\u004a\u0053")},nil ;};
// NewXObjectForm creates a brand new XObject Form. Creates a new underlying PDF object stream primitive.
func NewXObjectForm ()*XObjectForm {_gdcc :=&XObjectForm {};_afee :=&_ce .PdfObjectStream {};_afee .PdfObjectDictionary =_ce .MakeDict ();_gdcc ._gcaa =_afee ;return _gdcc ;};
// 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 ){_eecbb ,_dfadd :=_baa .Open (filePath );if _dfadd !=nil {_ebg .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",_dfadd );return nil ,_dfadd ;};defer _eecbb .Close ();return NewPdfFontFromTTF (_eecbb );};
// 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 (_dgceb *PdfPageResources )GetFontByName (keyName _ce .PdfObjectName )(_ce .PdfObject ,bool ){if _dgceb .Font ==nil {return nil ,false ;};_cdddgb ,_faced :=_ce .TraceToDirectObject (_dgceb .Font ).(*_ce .PdfObjectDictionary );if !_faced {_ebg .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",_ce .TraceToDirectObject (_dgceb .Font ));return nil ,false ;};if _gegge :=_cdddgb .Get (keyName );_gegge !=nil {return _gegge ,true ;};return nil ,false ;};
// ToPdfObject implements interface PdfModel.
func (_cbbf *PdfAnnotationFileAttachment )ToPdfObject ()_ce .PdfObject {_cbbf .PdfAnnotation .ToPdfObject ();_bcfe :=_cbbf ._bda ;_aee :=_bcfe .PdfObject .(*_ce .PdfObjectDictionary );_cbbf .PdfAnnotationMarkup .appendToPdfDictionary (_aee );_aee .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ce .MakeName ("\u0046\u0069\u006c\u0065\u0041\u0074\u0074\u0061\u0063h\u006d\u0065\u006e\u0074"));_aee .SetIfNotNil ("\u0046\u0053",_cbbf .FS );_aee .SetIfNotNil ("\u004e\u0061\u006d\u0065",_cbbf .Name );return _bcfe ;};
// GetPrimitiveFromModel returns the primitive object corresponding to the input `model`.
func (_edeba *modelManager )GetPrimitiveFromModel (model PdfModel )_ce .PdfObject {_aeac ,_feccd :=_edeba ._cfgag [model ];if !_feccd {return nil ;};return _aeac ;};
// ToPdfObject implements interface PdfModel.
func (_baaa *PdfAnnotationSquare )ToPdfObject ()_ce .PdfObject {_baaa .PdfAnnotation .ToPdfObject ();_dce :=_baaa ._bda ;_afda :=_dce .PdfObject .(*_ce .PdfObjectDictionary );if _baaa .PdfAnnotationMarkup !=nil {_baaa .PdfAnnotationMarkup .appendToPdfDictionary (_afda );};_afda .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ce .MakeName ("\u0053\u0071\u0075\u0061\u0072\u0065"));_afda .SetIfNotNil ("\u0042\u0053",_baaa .BS );_afda .SetIfNotNil ("\u0049\u0043",_baaa .IC );_afda .SetIfNotNil ("\u0042\u0045",_baaa .BE );_afda .SetIfNotNil ("\u0052\u0044",_baaa .RD );return _dce ;};
// NewPdfColorCalGray returns a new CalGray color.
func NewPdfColorCalGray (grayVal float64 )*PdfColorCalGray {_bdac :=PdfColorCalGray (grayVal );return &_bdac ;};func _fecc (_cbdgc *_ce .PdfObjectStream )(*PdfFunctionType4 ,error ){_eacg :=&PdfFunctionType4 {};_eacg ._agefg =_cbdgc ;_bcfgg :=_cbdgc .PdfObjectDictionary ;_geaa ,_cefdb :=_ce .TraceToDirectObject (_bcfgg .Get ("\u0044\u006f\u006d\u0061\u0069\u006e")).(*_ce .PdfObjectArray );if !_cefdb {_ebg .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_gd .New ("\u0072\u0065q\u0075\u0069\u0072\u0065d\u0020\u0061t\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020m\u0069\u0073\u0073\u0069\u006e\u0067\u0020\u006f\u0072\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");};if _geaa .Len ()%2!=0{_ebg .Log .Error ("\u0044\u006f\u006d\u0061\u0069\u006e\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");return nil ,_gd .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0064\u006f\u006da\u0069\u006e\u0020\u0072an\u0067\u0065");};_bffbf ,_cdegf :=_geaa .ToFloat64Array ();if _cdegf !=nil {return nil ,_cdegf ;};_eacg .Domain =_bffbf ;_geaa ,_cefdb =_ce .TraceToDirectObject (_bcfgg .Get ("\u0052\u0061\u006eg\u0065")).(*_ce .PdfObjectArray );if _cefdb {if _geaa .Len ()< 0||_geaa .Len ()%2!=0{return nil ,_gd .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0061\u006e\u0067\u0065");};_ggae ,_ccefg :=_geaa .ToFloat64Array ();if _ccefg !=nil {return nil ,_ccefg ;};_eacg .Range =_ggae ;};_fgab ,_cdegf :=_ce .DecodeStream (_cbdgc );if _cdegf !=nil {return nil ,_cdegf ;};_eacg ._fdaf =_fgab ;_bcbd :=_ef .NewPSParser ([]byte (_fgab ));_agcgd ,_cdegf :=_bcbd .Parse ();if _cdegf !=nil {return nil ,_cdegf ;};_eacg .Program =_agcgd ;return _eacg ,nil ;};
// GetNumComponents returns the number of color components (1 for grayscale).
func (_fef *PdfColorDeviceGray )GetNumComponents ()int {return 1};func (_bcfd *PdfColorspaceSpecialSeparation )String ()string {return "\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e";};func (_dea *PdfReader )newPdfAnnotationCaretFromDict (_gdbb *_ce .PdfObjectDictionary )(*PdfAnnotationCaret ,error ){_bgff :=PdfAnnotationCaret {};_effa ,_caba :=_dea .newPdfAnnotationMarkupFromDict (_gdbb );if _caba !=nil {return nil ,_caba ;};_bgff .PdfAnnotationMarkup =_effa ;_bgff .RD =_gdbb .Get ("\u0052\u0044");_bgff .Sy =_gdbb .Get ("\u0053\u0079");return &_bgff ,nil ;};
// NewPdfFilespec returns an initialized generic PDF filespec model.
func NewPdfFilespec ()*PdfFilespec {_decgg :=&PdfFilespec {};_decgg ._ddfgf =_ce .MakeIndirectObject (_ce .MakeDict ());return _decgg ;};
// Encoder returns the font's text encoder.
func (_eeeca *PdfFont )Encoder ()_cce .TextEncoder {_bdfca :=_eeeca .actualFont ();if _bdfca ==nil {_ebg .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",_eeeca ._decac );return nil ;};return _bdfca .Encoder ();};
// PdfAnnotationMarkup represents additional fields for mark-up annotations.
// (Section 12.5.6.2 p. 399).
type PdfAnnotationMarkup struct{T _ce .PdfObject ;Popup *PdfAnnotationPopup ;CA _ce .PdfObject ;RC _ce .PdfObject ;CreationDate _ce .PdfObject ;IRT _ce .PdfObject ;Subj _ce .PdfObject ;RT _ce .PdfObject ;IT _ce .PdfObject ;ExData _ce .PdfObject ;};
// Set sets the colorspace corresponding to key. Add to Names if not set.
func (_cbff *PdfPageResourcesColorspaces )Set (key _ce .PdfObjectName ,val PdfColorspace ){if _ ,_babb :=_cbff .Colorspaces [string (key )];!_babb {_cbff .Names =append (_cbff .Names ,string (key ));};_cbff .Colorspaces [string (key )]=val ;};
// PdfAnnotationStamp represents Stamp annotations.
// (Section 12.5.6.12).
type PdfAnnotationStamp struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Name _ce .PdfObject ;};
// 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 (_fgbb *PdfFieldButton )SetType (btype ButtonType ){_fgfbf :=uint32 (0);if _fgbb .Ff !=nil {_fgfbf =uint32 (*_fgbb .Ff );};switch btype {case ButtonTypePush :_fgfbf |=FieldFlagPushbutton .Mask ();case ButtonTypeRadio :_fgfbf |=FieldFlagRadio .Mask ();};_fgbb .Ff =_ce .MakeInteger (int64 (_fgfbf ));};func (_cgcd *PdfColorspaceICCBased )String ()string {return "\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064";};
// NewPdfActionSound returns a new "sound" action.
func NewPdfActionSound ()*PdfActionSound {_cea :=NewPdfAction ();_dgd :=&PdfActionSound {};_dgd .PdfAction =_cea ;_cea .SetContext (_dgd );return _dgd ;};func _cacgd (_abcda *_ce .PdfIndirectObject )(*PdfOutline ,error ){_dccec ,_dcccg :=_abcda .PdfObject .(*_ce .PdfObjectDictionary );if !_dcccg {return nil ,_c .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");};_ggeeg :=NewPdfOutline ();if _bgeb :=_dccec .Get ("\u0054\u0079\u0070\u0065");_bgeb !=nil {_dcfac ,_fgef :=_bgeb .(*_ce .PdfObjectName );if _fgef {if *_dcfac !="\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0073"{_ebg .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",*_dcfac );};};};if _fdbab :=_dccec .Get ("\u0043\u006f\u0075n\u0074");_fdbab !=nil {_aggge ,_cggfa :=_ce .GetNumberAsInt64 (_fdbab );if _cggfa !=nil {return nil ,_cggfa ;};_ggeeg .Count =&_aggge ;};return _ggeeg ,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 (_edc *PdfColorspaceDeviceGray )ColorFromPdfObjects (objects []_ce .PdfObject )(PdfColor ,error ){if len (objects )!=1{return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_cccb ,_fcbee :=_ce .GetNumbersAsFloat (objects );if _fcbee !=nil {return nil ,_fcbee ;};return _edc .ColorFromFloats (_cccb );};func (_eabe *PdfReader )newPdfAnnotationRichMediaFromDict (_cgcc *_ce .PdfObjectDictionary )(*PdfAnnotationRichMedia ,error ){_fdeg :=&PdfAnnotationRichMedia {};_fdeg .RichMediaSettings =_cgcc .Get ("\u0052\u0069\u0063\u0068\u004d\u0065\u0064\u0069\u0061\u0053\u0065\u0074t\u0069\u006e\u0067\u0073");_fdeg .RichMediaContent =_cgcc .Get ("\u0052\u0069c\u0068\u004d\u0065d\u0069\u0061\u0043\u006f\u006e\u0074\u0065\u006e\u0074");return _fdeg ,nil ;};
// ColorFromPdfObjects returns a new PdfColor based on input color components. The input PdfObjects should
// be numeric.
func (_bfdee *PdfColorspaceDeviceN )ColorFromPdfObjects (objects []_ce .PdfObject )(PdfColor ,error ){if len (objects )!=_bfdee .GetNumComponents (){return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_ccab ,_cedg :=_ce .GetNumbersAsFloat (objects );if _cedg !=nil {return nil ,_cedg ;};return _bfdee .ColorFromFloats (_ccab );};
// HasExtGState checks if ExtGState name is available.
func (_eggebf *PdfPage )HasExtGState (name _ce .PdfObjectName )bool {if _eggebf .Resources ==nil {return false ;};if _eggebf .Resources .ExtGState ==nil {return false ;};_cfdac ,_decfg :=_ce .TraceToDirectObject (_eggebf .Resources .ExtGState ).(*_ce .PdfObjectDictionary );if !_decfg {_ebg .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",_ce .TraceToDirectObject (_eggebf .Resources .ExtGState ));return false ;};_aadc :=_cfdac .Get (name );_gbfb :=_aadc !=nil ;return _gbfb ;};
// NewPdfPageResources returns a new PdfPageResources object.
func NewPdfPageResources ()*PdfPageResources {_cabagc :=&PdfPageResources {};_cabagc ._eebf =_ce .MakeDict ();return _cabagc ;};type pdfSignDictionary struct{*_ce .PdfObjectDictionary ;_ecbgc *SignatureHandler ;_abdde *PdfSignature ;_gfeca int64 ;_deeee int ;_adee int ;_cdcf int ;_bbca int ;};
// WatermarkImageOptions contains options for configuring the watermark process.
type WatermarkImageOptions struct{Alpha float64 ;FitToWidth bool ;PreserveAspectRatio bool ;};
// SetDecode sets the decode image float slice.
func (_ggbdg *Image )SetDecode (decode []float64 ){_ggbdg ._cddaa =decode };func _dbcf (_bgeab []byte )(_badff ,_egde string ,_dbbd error ){_ebg .Log .Trace ("g\u0065\u0074\u0041\u0053CI\u0049S\u0065\u0063\u0074\u0069\u006fn\u0073\u003a\u0020\u0025\u0064\u0020",len (_bgeab ));_egab :=_baagb .FindIndex (_bgeab );if _egab ==nil {_ebg .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 "","",_ce .ErrTypeError ;};_dafc :=_egab [1];_aacda :=_aga .Index (string (_bgeab [_dafc :]),_eaef );if _aacda < 0{_badff =string (_bgeab [_dafc :]);return _badff ,"",nil ;};_beegb :=_dafc +_aacda ;_badff =string (_bgeab [_dafc :_beegb ]);_ecefe :=_beegb ;_aacda =_aga .Index (string (_bgeab [_ecefe :]),_geeba );if _aacda < 0{_ebg .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",_dbbd );return "","",_ce .ErrTypeError ;};_efedc :=_ecefe +_aacda ;_egde =string (_bgeab [_ecefe :_efedc ]);return _badff ,_egde ,nil ;};
// ColorToRGB verifies that the input color is an RGB color. Method exists in
// order to satisfy the PdfColorspace interface.
func (_edca *PdfColorspaceDeviceRGB )ColorToRGB (color PdfColor )(PdfColor ,error ){_ddec ,_dcab :=color .(*PdfColorDeviceRGB );if !_dcab {_ebg .Log .Debug ("\u0049\u006e\u0070\u0075\u0074\u0020\u0063\u006f\u006c\u006f\u0072 \u006e\u006f\u0074\u0020\u0064\u0065\u0076\u0069\u0063\u0065 \u0052\u0047\u0042");return nil ,_gd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};return _ddec ,nil ;};
// NewPdfColorDeviceRGB returns a new PdfColorDeviceRGB based on the r,g,b component values.
func NewPdfColorDeviceRGB (r ,g ,b float64 )*PdfColorDeviceRGB {_efff :=PdfColorDeviceRGB {r ,g ,b };return &_efff ;};
// NewPdfSignature creates a new PdfSignature object.
func NewPdfSignature (handler SignatureHandler )*PdfSignature {_abcdf :=&PdfSignature {Type :_ce .MakeName ("\u0053\u0069\u0067"),Handler :handler };_daacg :=&pdfSignDictionary {PdfObjectDictionary :_ce .MakeDict (),_ecbgc :&handler ,_abdde :_abcdf };_abcdf ._aefg =_ce .MakeIndirectObject (_daacg );return _abcdf ;};
// Encoder returns the font's text encoder.
func (_cfbbg pdfCIDFontType0 )Encoder ()_cce .TextEncoder {return _cfbbg ._gdac };
// NewPdfPage returns a new PDF page.
func NewPdfPage ()*PdfPage {_eadga :=PdfPage {};_eadga ._dfbdag =_ce .MakeDict ();_eadga .Resources =NewPdfPageResources ();_fdfa :=_ce .PdfIndirectObject {};_fdfa .PdfObject =_eadga ._dfbdag ;_eadga ._adcebd =&_fdfa ;return &_eadga ;};
// GetNumComponents returns the number of color components (3 for Lab).
func (_eefe *PdfColorLab )GetNumComponents ()int {return 3};