unipdf/model/model.go
2020-09-21 01:20:10 +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 (_f "bufio";_bbb "bytes";_aa "encoding/binary";_bc "errors";_c "fmt";_dbe "github.com/unidoc/unipdf/v3/common";_da "github.com/unidoc/unipdf/v3/common/license";_cb "github.com/unidoc/unipdf/v3/core";_gg "github.com/unidoc/unipdf/v3/core/security";_cc "github.com/unidoc/unipdf/v3/core/security/crypt";_gb "github.com/unidoc/unipdf/v3/internal/cmap";_ac "github.com/unidoc/unipdf/v3/internal/imageutil";_cf "github.com/unidoc/unipdf/v3/internal/sampling";_ccb "github.com/unidoc/unipdf/v3/internal/textencoding";_af "github.com/unidoc/unipdf/v3/model/internal/fonts";_cg "github.com/unidoc/unipdf/v3/ps";_ae "github.com/unidoc/unitype";_ca "image";_db "image/color";_ "image/gif";_ "image/png";_bb "io";_bf "io/ioutil";_ag "math";_b "math/rand";_ce "os";_e "regexp";_gf "sort";_eb "strconv";_fe "strings";_d "time";_g "unicode";_ff "unicode/utf8";);func _fgfdf (_eaad _cb .PdfObject )(*PdfColorspaceSpecialSeparation ,error ){_edec :=NewPdfColorspaceSpecialSeparation ();if _dadc ,_adff :=_eaad .(*_cb .PdfIndirectObject );_adff {_edec ._ccba =_dadc ;};_eaad =_cb .TraceToDirectObject (_eaad );_cadb ,_cecbe :=_eaad .(*_cb .PdfObjectArray );if !_cecbe {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 _cadb .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");};_eaad =_cadb .Get (0);_dece ,_cecbe :=_eaad .(*_cb .PdfObjectName );if !_cecbe {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 *_dece !="\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");};_eaad =_cadb .Get (1);_dece ,_cecbe =_eaad .(*_cb .PdfObjectName );if !_cecbe {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");};_edec .ColorantName =_dece ;_eaad =_cadb .Get (2);_ggcc ,_cffc :=NewPdfColorspaceFromPdfObject (_eaad );if _cffc !=nil {return nil ,_cffc ;};_edec .AlternateSpace =_ggcc ;_gadf ,_cffc :=_abcgd (_cadb .Get (3));if _cffc !=nil {return nil ,_cffc ;};_edec .TintTransform =_gadf ;return _edec ,nil ;};
// 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 ,_ccb .SimpleEncoder ,error ){_fcdaa ,_dbbba :=_eegd (basefont );if _dbbba !=nil {return nil ,nil ,_dbbba ;};_gecbbc ,_gfaac :=_fcdaa .Encoder ().(_ccb .SimpleEncoder );if !_gfaac {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",_fcdaa .Encoder ());};_ffcbb :=make (map[rune ]_ccb .GlyphName );for _cafe :=range alphabet {if _ ,_effeg :=_gecbbc .RuneToCharcode (_cafe );!_effeg {_ ,_ceecf :=_fcdaa ._egdg [_cafe ];if !_ceecf {_dbe .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",_cafe ,_cafe );continue ;};_dcdg ,_ceecf :=_ccb .RuneToGlyph (_cafe );if !_ceecf {_dbe .Log .Debug ("\u006eo\u0020\u0067\u006c\u0079\u0070\u0068\u0020\u0066\u006f\u0072\u0020r\u0075\u006e\u0065\u0020\u0025\u0023\u0078\u003d\u0025\u0071",_cafe ,_cafe );continue ;};if len (_ffcbb )>=255{return nil ,nil ,_bc .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");};_ffcbb [_cafe ]=_dcdg ;};};var (_degdb []_ccb .CharCode ;_egcdb []_ccb .CharCode ;);for _fdebgd :=_ccb .CharCode (1);_fdebgd <=0xff;_fdebgd ++{_fadb ,_agbbf :=_gecbbc .CharcodeToRune (_fdebgd );if !_agbbf {_degdb =append (_degdb ,_fdebgd );continue ;};if _ ,_agbbf =alphabet [_fadb ];!_agbbf {_egcdb =append (_egcdb ,_fdebgd );};};_fded :=append (_degdb ,_egcdb ...);if len (_fded )< len (_ffcbb ){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 (_ffcbb ),len (_fded ));};_ebdd :=make ([]rune ,0,len (_ffcbb ));for _egbe :=range _ffcbb {_ebdd =append (_ebdd ,_egbe );};_gf .Slice (_ebdd ,func (_ccgf ,_dagg int )bool {return _ebdd [_ccgf ]< _ebdd [_dagg ]});_bdec :=make (map[_ccb .CharCode ]_ccb .GlyphName ,len (_ebdd ));for _ ,_degba :=range _ebdd {_dfgdd :=_fded [0];_fded =_fded [1:];_bdec [_dfgdd ]=_ffcbb [_degba ];};_gecbbc =_ccb .ApplyDifferences (_gecbbc ,_bdec );_fcdaa .SetEncoder (_gecbbc );return &PdfFont {_cdfe :&_fcdaa },_gecbbc ,nil ;};
// CharcodesToUnicode converts the character codes `charcodes` to a slice of runes.
// How it works:
// 1) Use the ToUnicode CMap if there is one.
// 2) Use the underlying font's encoding.
func (_ceac *PdfFont )CharcodesToUnicode (charcodes []_ccb .CharCode )[]rune {_acfa ,_ ,_ :=_ceac .CharcodesToUnicodeWithStats (charcodes );return _acfa ;};
// ToPdfObject returns the PDF representation of the shading pattern.
func (_ccdcg *PdfShadingPattern )ToPdfObject ()_cb .PdfObject {_ccdcg .PdfPattern .ToPdfObject ();_gdcd :=_ccdcg .getDict ();if _ccdcg .Shading !=nil {_gdcd .Set ("\u0053h\u0061\u0064\u0069\u006e\u0067",_ccdcg .Shading .ToPdfObject ());};if _ccdcg .Matrix !=nil {_gdcd .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_ccdcg .Matrix );};if _ccdcg .ExtGState !=nil {_gdcd .Set ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e",_ccdcg .ExtGState );};return _ccdcg ._gbdd ;};
// String returns a string that describes `font`.
func (_cdbd *PdfFont )String ()string {_bgbdd :="";if _cdbd ._cdfe .Encoder ()!=nil {_bgbdd =_cdbd ._cdfe .Encoder ().String ();};return _c .Sprintf ("\u0046\u004f\u004e\u0054\u007b\u0025\u0054\u0020\u0025s\u0020\u0025\u0073\u007d",_cdbd ._cdfe ,_cdbd .baseFields ().coreString (),_bgbdd );};
// L returns the value of the L component of the color.
func (_cebffe *PdfColorLab )L ()float64 {return float64 (_cebffe [0])};func (_ceagc *PdfColorspaceCalGray )String ()string {return "\u0043a\u006c\u0047\u0072\u0061\u0079"};
// SetAction sets the PDF action for the annotation link.
func (_fad *PdfAnnotationLink )SetAction (action *PdfAction ){_fad ._afb =action ;if action ==nil {_fad .A =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 (_decba *Image )SetSamples (samples []uint32 ){if _decba .BitsPerComponent < 8{samples =_decba .samplesAddPadding (samples );};_accgad :=_cf .ResampleUint32 (samples ,int (_decba .BitsPerComponent ),8);_bcaca :=make ([]byte ,len (_accgad ));for _bcff ,_cfddb :=range _accgad {_bcaca [_bcff ]=byte (_cfddb );};_decba .Data =_bcaca ;};func (_ggeba *PdfPattern )getDict ()*_cb .PdfObjectDictionary {if _dgacf ,_bfacd :=_ggeba ._gbdd .(*_cb .PdfIndirectObject );_bfacd {_fffgb ,_fdddge :=_dgacf .PdfObject .(*_cb .PdfObjectDictionary );if !_fdddge {return nil ;};return _fffgb ;}else if _adbfd ,_dcffd :=_ggeba ._gbdd .(*_cb .PdfObjectStream );_dcffd {return _adbfd .PdfObjectDictionary ;}else {_dbe .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",_ggeba ._gbdd );return nil ;};};func _bbffe (_fbcaa _cb .PdfObject )(*PdfFunctionType3 ,error ){_fabf :=&PdfFunctionType3 {};var _afab *_cb .PdfObjectDictionary ;if _aebbd ,_ffcdc :=_fbcaa .(*_cb .PdfIndirectObject );_ffcdc {_agfbb ,_dbfcb :=_aebbd .PdfObject .(*_cb .PdfObjectDictionary );if !_dbfcb {return nil ,_bc .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_fabf ._gbbec =_aebbd ;_afab =_agfbb ;}else if _fadcb ,_dgdad :=_fbcaa .(*_cb .PdfObjectDictionary );_dgdad {_afab =_fadcb ;}else {return nil ,_bc .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_begcg ,_agbcac :=_cb .TraceToDirectObject (_afab .Get ("\u0044\u006f\u006d\u0061\u0069\u006e")).(*_cb .PdfObjectArray );if !_agbcac {_dbe .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_bc .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 _begcg .Len ()!=2{_dbe .Log .Error ("\u0044\u006f\u006d\u0061\u0069\u006e\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");return nil ,_bc .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0064\u006f\u006da\u0069\u006e\u0020\u0072an\u0067\u0065");};_cgefe ,_gadbd :=_begcg .ToFloat64Array ();if _gadbd !=nil {return nil ,_gadbd ;};_fabf .Domain =_cgefe ;_begcg ,_agbcac =_cb .TraceToDirectObject (_afab .Get ("\u0052\u0061\u006eg\u0065")).(*_cb .PdfObjectArray );if _agbcac {if _begcg .Len ()< 0||_begcg .Len ()%2!=0{return nil ,_bc .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0061\u006e\u0067\u0065");};_bccbc ,_bagd :=_begcg .ToFloat64Array ();if _bagd !=nil {return nil ,_bagd ;};_fabf .Range =_bccbc ;};_begcg ,_agbcac =_cb .TraceToDirectObject (_afab .Get ("\u0046u\u006e\u0063\u0074\u0069\u006f\u006es")).(*_cb .PdfObjectArray );if !_agbcac {_dbe .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 ,_bc .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");};_fabf .Functions =[]PdfFunction {};for _ ,_gadef :=range _begcg .Elements (){_daegf ,_decbd :=_abcgd (_gadef );if _decbd !=nil {return nil ,_decbd ;};_fabf .Functions =append (_fabf .Functions ,_daegf );};_begcg ,_agbcac =_cb .TraceToDirectObject (_afab .Get ("\u0042\u006f\u0075\u006e\u0064\u0073")).(*_cb .PdfObjectArray );if !_agbcac {_dbe .Log .Error ("B\u006fu\u006e\u0064\u0073\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_bc .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");};_cabgb ,_gadbd :=_begcg .ToFloat64Array ();if _gadbd !=nil {return nil ,_gadbd ;};_fabf .Bounds =_cabgb ;if len (_fabf .Bounds )!=len (_fabf .Functions )-1{_dbe .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 (_fabf .Bounds ),len (_fabf .Functions ));return nil ,_bc .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_begcg ,_agbcac =_cb .TraceToDirectObject (_afab .Get ("\u0045\u006e\u0063\u006f\u0064\u0065")).(*_cb .PdfObjectArray );if !_agbcac {_dbe .Log .Error ("E\u006ec\u006f\u0064\u0065\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_bc .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");};_aebd ,_gadbd :=_begcg .ToFloat64Array ();if _gadbd !=nil {return nil ,_gadbd ;};_fabf .Encode =_aebd ;if len (_fabf .Encode )!=2*len (_fabf .Functions ){_dbe .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 (_fabf .Encode ),len (_fabf .Functions ));return nil ,_bc .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};return _fabf ,nil ;};func (_abcc *PdfReader )newPdfActionImportDataFromDict (_fcf *_cb .PdfObjectDictionary )(*PdfActionImportData ,error ){_bec ,_eeac :=_bgcc (_fcf .Get ("\u0046"));if _eeac !=nil {return nil ,_eeac ;};return &PdfActionImportData {F :_bec },nil ;};
// SetFlag sets the flag for the field.
func (_gegfb *PdfField )SetFlag (flag FieldFlag ){_gegfb .Ff =_cb .MakeInteger (int64 (flag ))};
// NewPdfAnnotationCaret returns a new caret annotation.
func NewPdfAnnotationCaret ()*PdfAnnotationCaret {_aggc :=NewPdfAnnotation ();_cagfe :=&PdfAnnotationCaret {};_cagfe .PdfAnnotation =_aggc ;_cagfe .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_aggc .SetContext (_cagfe );return _cagfe ;};
// 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 ){_gadc :=PdfDate {};_efff :=_ebcd .FindAllStringSubmatch (dateStr ,1);if len (_efff )< 1{return _gadc ,_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 (_efff [0])!=10{return _gadc ,_bc .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");};_gadc ._dbbc ,_ =_eb .ParseInt (_efff [0][1],10,32);_gadc ._cddf ,_ =_eb .ParseInt (_efff [0][2],10,32);_gadc ._ffdac ,_ =_eb .ParseInt (_efff [0][3],10,32);_gadc ._cfgca ,_ =_eb .ParseInt (_efff [0][4],10,32);_gadc ._fcgbe ,_ =_eb .ParseInt (_efff [0][5],10,32);_gadc ._aegfed ,_ =_eb .ParseInt (_efff [0][6],10,32);if len (_efff [0][7])> 0{_gadc ._bbbbg =_efff [0][7][0];}else {_gadc ._bbbbg ='+';};if len (_efff [0][8])> 0{_gadc ._bbee ,_ =_eb .ParseInt (_efff [0][8],10,32);}else {_gadc ._bbee =0;};if len (_efff [0][9])> 0{_gadc ._caccb ,_ =_eb .ParseInt (_efff [0][9],10,32);}else {_gadc ._caccb =0;};return _gadc ,nil ;};
// Encrypt encrypts the output file with a specified user/owner password.
func (_ecec *PdfWriter )Encrypt (userPass ,ownerPass []byte ,options *EncryptOptions )error {_afbcc :=RC4_128bit ;if options !=nil {_afbcc =options .Algorithm ;};_cbcbb :=_gg .PermOwner ;if options !=nil {_cbcbb =options .Permissions ;};var _begeb _cc .Filter ;switch _afbcc {case RC4_128bit :_begeb =_cc .NewFilterV2 (16);case AES_128bit :_begeb =_cc .NewFilterAESV2 ();case AES_256bit :_begeb =_cc .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 );};_eaee ,_dcdbb ,_agff :=_cb .PdfCryptNewEncrypt (_begeb ,userPass ,ownerPass ,_cbcbb );if _agff !=nil {return _agff ;};_ecec ._ccaec =_eaee ;if _dcdbb .Major !=0{_ecec .SetVersion (_dcdbb .Major ,_dcdbb .Minor );};_ecec ._fbffb =_dcdbb .Encrypt ;_ecec ._efab =_cb .MakeArray (_cb .MakeHexString (_dcdbb .ID0 ),_cb .MakeHexString (_dcdbb .ID1 ));_gcfgc :=_cb .MakeIndirectObject (_dcdbb .Encrypt );_ecec ._fggd =_gcfgc ;_ecec .addObject (_gcfgc );return nil ;};
// GetModelFromPrimitive returns the model corresponding to the `primitive` PdfObject.
func (_befb *modelManager )GetModelFromPrimitive (primitive _cb .PdfObject )PdfModel {model ,_fbgee :=_befb ._dcff [primitive ];if !_fbgee {return nil ;};return model ;};func (_cce *PdfReader )newPdfActionSetOCGStateFromDict (_gaa *_cb .PdfObjectDictionary )(*PdfActionSetOCGState ,error ){return &PdfActionSetOCGState {State :_gaa .Get ("\u0053\u0074\u0061t\u0065"),PreserveRB :_gaa .Get ("\u0050\u0072\u0065\u0073\u0065\u0072\u0076\u0065\u0052\u0042")},nil ;};
// ColorToRGB converts an Indexed color to an RGB color.
func (_gfde *PdfColorspaceSpecialIndexed )ColorToRGB (color PdfColor )(PdfColor ,error ){if _gfde .Base ==nil {return nil ,_bc .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 _gfde .Base .ColorToRGB (color );};func _adgdg (_gceb *PdfField ,_gfcd _cb .PdfObject ){for _ ,_cdbcc :=range _gceb .Annotations {_cdbcc .AS =_gfcd ;_cdbcc .ToPdfObject ();};};
// ColorToRGB converts a color in Separation colorspace to RGB colorspace.
func (_ageb *PdfColorspaceSpecialSeparation )ColorToRGB (color PdfColor )(PdfColor ,error ){if _ageb .AlternateSpace ==nil {return nil ,_bc .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 _ageb .AlternateSpace .ColorToRGB (color );};
// PdfActionGoTo3DView represents a GoTo3DView action.
type PdfActionGoTo3DView struct{*PdfAction ;TA _cb .PdfObject ;V _cb .PdfObject ;};
// NewPdfAnnotationProjection returns a new projection annotation.
func NewPdfAnnotationProjection ()*PdfAnnotationProjection {_dgff :=NewPdfAnnotation ();_adda :=&PdfAnnotationProjection {};_adda .PdfAnnotation =_dgff ;_adda .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_dgff .SetContext (_adda );return _adda ;};
// XObjectType represents the type of an XObject.
type XObjectType int ;
// NewPdfFontFromPdfObject loads a PdfFont from the dictionary `fontObj`. If there is a problem an
// error is returned.
func NewPdfFontFromPdfObject (fontObj _cb .PdfObject )(*PdfFont ,error ){return _gacea (fontObj ,true )};
// Mask returns the uin32 bitmask for the specific flag.
func (_eddf FieldFlag )Mask ()uint32 {return uint32 (_eddf )};
// ToPdfOutline returns a low level PdfOutline object, based on the current
// instance.
func (_fgffb *Outline )ToPdfOutline ()*PdfOutline {_caaa :=NewPdfOutline ();var _ccga []*PdfOutlineItem ;var _ebbcd int64 ;var _ccgef *PdfOutlineItem ;for _ ,_bcbeb :=range _fgffb .Entries {_gbbd ,_cgacb :=_bcbeb .ToPdfOutlineItem ();_gbbd .Parent =&_caaa .PdfOutlineTreeNode ;if _ccgef !=nil {_ccgef .Next =&_gbbd .PdfOutlineTreeNode ;_gbbd .Prev =&_ccgef .PdfOutlineTreeNode ;};_ccga =append (_ccga ,_gbbd );_ebbcd +=_cgacb ;_ccgef =_gbbd ;};_babef :=int64 (len (_ccga ));_ebbcd +=int64 (_babef );if _babef > 0{_caaa .First =&_ccga [0].PdfOutlineTreeNode ;_caaa .Last =&_ccga [_babef -1].PdfOutlineTreeNode ;_caaa .Count =&_ebbcd ;};return _caaa ;};
// NewPdfAnnotationLine returns a new line annotation.
func NewPdfAnnotationLine ()*PdfAnnotationLine {_eac :=NewPdfAnnotation ();_effb :=&PdfAnnotationLine {};_effb .PdfAnnotation =_eac ;_effb .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_eac .SetContext (_effb );return _effb ;};
// ToPdfObject converts colorspace to a PDF object. [/Indexed base hival lookup]
func (_bdge *PdfColorspaceSpecialIndexed )ToPdfObject ()_cb .PdfObject {_dgccc :=_cb .MakeArray (_cb .MakeName ("\u0049n\u0064\u0065\u0078\u0065\u0064"));_dgccc .Append (_bdge .Base .ToPdfObject ());_dgccc .Append (_cb .MakeInteger (int64 (_bdge .HiVal )));_dgccc .Append (_bdge .Lookup );if _bdge ._fdbb !=nil {_bdge ._fdbb .PdfObject =_dgccc ;return _bdge ._fdbb ;};return _dgccc ;};
// GetContainingPdfObject implements interface PdfModel.
func (_defc *PdfAnnotation )GetContainingPdfObject ()_cb .PdfObject {return _defc ._efd };
// IsColored specifies if the pattern is colored.
func (_ebdcb *PdfTilingPattern )IsColored ()bool {if _ebdcb .PaintType !=nil &&*_ebdcb .PaintType ==1{return true ;};return false ;};
// NewPdfActionHide returns a new "hide" action.
func NewPdfActionHide ()*PdfActionHide {_ddb :=NewPdfAction ();_cd :=&PdfActionHide {};_cd .PdfAction =_ddb ;_ddb .SetContext (_cd );return _cd ;};
// GetExtGState gets the ExtGState specified by keyName. Returns a bool
// indicating whether it was found or not.
func (_feaa *PdfPageResources )GetExtGState (keyName _cb .PdfObjectName )(_cb .PdfObject ,bool ){if _feaa .ExtGState ==nil {return nil ,false ;};_dbccaa ,_facfe :=_cb .TraceToDirectObject (_feaa .ExtGState ).(*_cb .PdfObjectDictionary );if !_facfe {_dbe .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",_feaa .ExtGState );return nil ,false ;};if _dccea :=_dbccaa .Get (keyName );_dccea !=nil {return _dccea ,true ;};return nil ,false ;};
// ToPdfObject converts the font to a PDF representation.
func (_afeca *pdfFontType0 )ToPdfObject ()_cb .PdfObject {if _afeca ._ggbe ==nil {_afeca ._ggbe =&_cb .PdfIndirectObject {};};_ddde :=_afeca .baseFields ().asPdfObjectDictionary ("\u0054\u0079\u0070e\u0030");_afeca ._ggbe .PdfObject =_ddde ;if _afeca .Encoding !=nil {_ddde .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_afeca .Encoding );}else if _afeca ._ggdg !=nil {_ddde .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_afeca ._ggdg .ToPdfObject ());};if _afeca .DescendantFont !=nil {_ddde .Set ("\u0044e\u0073c\u0065\u006e\u0064\u0061\u006e\u0074\u0046\u006f\u006e\u0074\u0073",_cb .MakeArray (_afeca .DescendantFont .ToPdfObject ()));};return _afeca ._ggbe ;};
// PdfFunctionType4 is a Postscript calculator functions.
type PdfFunctionType4 struct{Domain []float64 ;Range []float64 ;Program *_cg .PSProgram ;_gfcf *_cg .PSExecutor ;_eefa []byte ;_bdbff *_cb .PdfObjectStream ;};func _fcccb ()string {_dffg :=_da .GetLicenseKey ();if len (_cgafc )> 0&&(_dffg .IsLicensed ()||_fgfg ){return _cgafc ;};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",_cebeb (),_dffg .TypeToString ());};
// 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 (_eeeff _bb .Reader )(*Image ,error );
// NewImageFromGoImage loads a NRGBA32 unidoc Image from a standard Go image structure.
NewImageFromGoImage (_acbg _ca .Image )(*Image ,error );
// NewGrayImageFromGoImage loads a grayscale unidoc Image from a standard Go image structure.
NewGrayImageFromGoImage (_bbfa _ca .Image )(*Image ,error );
// Compress an image.
Compress (_cddgd *Image ,_fadaa int64 )(*Image ,error );};func _acccf (_fcba *_cb .PdfObjectDictionary ,_afgf *fontCommon )(*pdfFontType0 ,error ){_bbfb ,_gfcge :=_cb .GetArray (_fcba .Get ("\u0044e\u0073c\u0065\u006e\u0064\u0061\u006e\u0074\u0046\u006f\u006e\u0074\u0073"));if !_gfcge {_dbe .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",_afgf );return nil ,_cb .ErrRangeError ;};if _bbfb .Len ()!=1{_dbe .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",_bbfb .Len ());return nil ,_cb .ErrRangeError ;};_bcbed ,_cfeb :=_gacea (_bbfb .Get (0),false );if _cfeb !=nil {_dbe .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",_cfeb ,_afgf );return nil ,_cfeb ;};_efad :=_baagg (_afgf );_efad .DescendantFont =_bcbed ;_afbfe ,_gfcge :=_cb .GetNameVal (_fcba .Get ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067"));if _gfcge {if _afbfe =="\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079\u002d\u0048"||_afbfe =="\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079\u002d\u0056"{_efad ._ggdg =_ccb .NewIdentityTextEncoder (_afbfe );}else if _gb .IsPredefinedCMap (_afbfe ){_efad ._cebae ,_cfeb =_gb .LoadPredefinedCMap (_afbfe );if _cfeb !=nil {_dbe .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",_afbfe ,_cfeb );};}else {_dbe .Log .Debug ("\u0055\u006e\u0068\u0061\u006e\u0064\u006c\u0065\u0064\u0020\u0063\u006da\u0070\u0020\u0025\u0071",_afbfe );};};if _aeee :=_bcbed .baseFields ()._agag ;_aeee !=nil {if _bgaf :=_aeee .Name ();_bgaf =="\u0041d\u006fb\u0065\u002d\u0043\u004e\u0053\u0031\u002d\u0055\u0043\u0053\u0032"||_bgaf =="\u0041\u0064\u006f\u0062\u0065\u002d\u0047\u0042\u0031-\u0055\u0043\u0053\u0032"||_bgaf =="\u0041\u0064\u006f\u0062\u0065\u002d\u004a\u0061\u0070\u0061\u006e\u0031-\u0055\u0043\u0053\u0032"||_bgaf =="\u0041\u0064\u006f\u0062\u0065\u002d\u004b\u006f\u0072\u0065\u0061\u0031-\u0055\u0043\u0053\u0032"{_efad ._ggdg =_ccb .NewCMapEncoder (_afbfe ,_efad ._cebae ,_aeee );};};return _efad ,nil ;};
// NewPdfActionSubmitForm returns a new "submit form" action.
func NewPdfActionSubmitForm ()*PdfActionSubmitForm {_dbga :=NewPdfAction ();_ba :=&PdfActionSubmitForm {};_ba .PdfAction =_dbga ;_dbga .SetContext (_ba );return _ba ;};
// ImageToRGB converts an Image in a given PdfColorspace to an RGB image.
func (_bcgge *PdfColorspaceDeviceN )ImageToRGB (img Image )(Image ,error ){_gdadd :=_cf .NewReader (img .getBase ());_cggd :=_ac .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),img .ColorComponents ,nil ,img ._ddffb ,img ._cceeg );_dfbf :=_cf .NewWriter (_cggd );_caccc :=_ag .Pow (2,float64 (img .BitsPerComponent ))-1;_fddd :=_bcgge .GetNumComponents ();_fcea :=make ([]uint32 ,_fddd );_ffad :=make ([]float64 ,_fddd );for {_aageb :=_gdadd .ReadSamples (_fcea );if _aageb ==_bb .EOF {break ;}else if _aageb !=nil {return img ,_aageb ;};for _gggf :=0;_gggf < _fddd ;_gggf ++{_dfbge :=float64 (_fcea [_gggf ])/_caccc ;_ffad [_gggf ]=_dfbge ;};_fcag ,_aageb :=_bcgge .TintTransform .Evaluate (_ffad );if _aageb !=nil {return img ,_aageb ;};for _ ,_gbea :=range _fcag {_gbea =_ag .Min (_ag .Max (0,_gbea ),1.0);if _aageb =_dfbf .WriteSample (uint32 (_gbea *_caccc ));_aageb !=nil {return img ,_aageb ;};};};return _bcgge .AlternateSpace .ImageToRGB (_ecdg (&_cggd ));};
// NewPdfActionGoToE returns a new "go to embedded" action.
func NewPdfActionGoToE ()*PdfActionGoToE {_dd :=NewPdfAction ();_bef :=&PdfActionGoToE {};_bef .PdfAction =_dd ;_dd .SetContext (_bef );return _bef ;};
// Flags returns the field flags for the field accounting for any inherited flags.
func (_cbgf *PdfField )Flags ()FieldFlag {var _efed FieldFlag ;_egddd ,_efbd :=_cbgf .inherit (func (_ccebg *PdfField )bool {if _ccebg .Ff !=nil {_efed =FieldFlag (*_cbgf .Ff );return true ;};return false ;});if _efbd !=nil {_dbe .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",_efbd );};if !_egddd {_dbe .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 _efed ;};
// ToPdfObject returns the PDF representation of the shading dictionary.
func (_edgd *PdfShadingType5 )ToPdfObject ()_cb .PdfObject {_edgd .PdfShading .ToPdfObject ();_ggcee ,_ebdga :=_edgd .getShadingDict ();if _ebdga !=nil {_dbe .Log .Error ("\u0055\u006ea\u0062\u006c\u0065\u0020\u0074\u006f\u0020\u0061\u0063\u0063\u0065\u0073\u0073\u0020\u0073\u0068\u0061\u0064\u0069\u006e\u0067\u0020di\u0063\u0074");return nil ;};if _edgd .BitsPerCoordinate !=nil {_ggcee .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065",_edgd .BitsPerCoordinate );};if _edgd .BitsPerComponent !=nil {_ggcee .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_edgd .BitsPerComponent );};if _edgd .VerticesPerRow !=nil {_ggcee .Set ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073\u0050e\u0072\u0052\u006f\u0077",_edgd .VerticesPerRow );};if _edgd .Decode !=nil {_ggcee .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_edgd .Decode );};if _edgd .Function !=nil {if len (_edgd .Function )==1{_ggcee .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_edgd .Function [0].ToPdfObject ());}else {_dded :=_cb .MakeArray ();for _ ,_ggea :=range _edgd .Function {_dded .Append (_ggea .ToPdfObject ());};_ggcee .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_dded );};};return _edgd ._gfdg ;};
// 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 (_eabb *PdfColorspaceDeviceGray )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=1{return nil ,_bc .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_bdeg :=vals [0];if _bdeg < 0.0||_bdeg > 1.0{_dbe .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 _bdeg < 0.0{_bdeg =0.0;}else if _bdeg > 1.0{_bdeg =1.0;};return NewPdfColorDeviceGray (_bdeg ),nil ;};
// GetPdfName returns the PDF name used to indicate the border style.
// (Table 166 p. 395).
func (_bce *BorderStyle )GetPdfName ()string {switch *_bce {case BorderStyleSolid :return "\u0053";case BorderStyleDashed :return "\u0044";case BorderStyleBeveled :return "\u0042";case BorderStyleInset :return "\u0049";case BorderStyleUnderline :return "\u0055";};return "";};
// 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 ){_gdba ,_gccgf :=_ce .Open (filePath );if _gccgf !=nil {_dbe .Log .Debug ("\u0045\u0052\u0052OR\u003a\u0020\u006f\u0070\u0065\u006e\u0069\u006e\u0067\u0020\u0066\u0069\u006c\u0065\u003a\u0020\u0025\u0076",_gccgf );return nil ,_gccgf ;};defer _gdba .Close ();return NewCompositePdfFontFromTTF (_gdba );};func (_cgcee *PdfReader )newPdfAcroFormFromDict (_daaaa *_cb .PdfIndirectObject ,_bfbd *_cb .PdfObjectDictionary )(*PdfAcroForm ,error ){_egcc :=NewPdfAcroForm ();if _daaaa !=nil {_egcc ._dfgeb =_daaaa ;_daaaa .PdfObject =_cb .MakeDict ();};if _cdfff :=_bfbd .Get ("\u0046\u0069\u0065\u006c\u0064\u0073");_cdfff !=nil {_aedaa ,_cgaf :=_cb .GetArray (_cdfff );if !_cgaf {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",_cdfff );};var _efae []*PdfField ;for _ ,_egfag :=range _aedaa .Elements (){_cfgcb ,_beeagg :=_cb .GetIndirect (_egfag );if !_beeagg {if _ ,_dbae :=_egfag .(*_cb .PdfObjectNull );_dbae {_dbe .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 ;};_dbe .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",_egfag );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");};_bfce ,_eccgg :=_cgcee .newPdfFieldFromIndirectObject (_cfgcb ,nil );if _eccgg !=nil {return nil ,_eccgg ;};_dbe .Log .Trace ("\u0041\u0063\u0072\u006fFo\u0072\u006d\u0020\u0046\u0069\u0065\u006c\u0064\u003a\u0020\u0025\u002b\u0076",*_bfce );_efae =append (_efae ,_bfce );};_egcc .Fields =&_efae ;};if _aggd :=_bfbd .Get ("\u004ee\u0065d\u0041\u0070\u0070\u0065\u0061\u0072\u0061\u006e\u0063\u0065\u0073");_aggd !=nil {_bbcdf ,_deef :=_cb .GetBool (_aggd );if _deef {_egcc .NeedAppearances =_bbcdf ;}else {_dbe .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",_aggd );};};if _ggaae :=_bfbd .Get ("\u0053\u0069\u0067\u0046\u006c\u0061\u0067\u0073");_ggaae !=nil {_dabb ,_cgac :=_cb .GetInt (_ggaae );if _cgac {_egcc .SigFlags =_dabb ;}else {_dbe .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",_ggaae );};};if _afgd :=_bfbd .Get ("\u0043\u004f");_afgd !=nil {_fggff ,_gbbe :=_cb .GetArray (_afgd );if _gbbe {_egcc .CO =_fggff ;}else {_dbe .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",_afgd );};};if _fbgd :=_bfbd .Get ("\u0044\u0052");_fbgd !=nil {if _dcbd ,_egfe :=_cb .GetDict (_fbgd );_egfe {_ffdd ,_adab :=NewPdfPageResourcesFromDict (_dcbd );if _adab !=nil {_dbe .Log .Error ("\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0044R\u003a\u0020\u0025\u0076",_adab );return nil ,_adab ;};_egcc .DR =_ffdd ;}else {_dbe .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",_fbgd );};};if _dadg :=_bfbd .Get ("\u0044\u0041");_dadg !=nil {_bead ,_cdbaa :=_cb .GetString (_dadg );if _cdbaa {_egcc .DA =_bead ;}else {_dbe .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",_dadg );};};if _eeaaa :=_bfbd .Get ("\u0051");_eeaaa !=nil {_bgca ,_fagd :=_cb .GetInt (_eeaaa );if _fagd {_egcc .Q =_bgca ;}else {_dbe .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a \u0051\u0020\u0069\u006e\u0076a\u006ci\u0064 \u0028\u0067\u006f\u0074\u0020\u0025\u0054)",_eeaaa );};};if _bbgaf :=_bfbd .Get ("\u0058\u0046\u0041");_bbgaf !=nil {_egcc .XFA =_bbgaf ;};return _egcc ,nil ;};
// ToPdfObject returns the button field dictionary within an indirect object.
func (_baff *PdfFieldButton )ToPdfObject ()_cb .PdfObject {_baff .PdfField .ToPdfObject ();_afdcf :=_baff ._addef ;_egee :=_afdcf .PdfObject .(*_cb .PdfObjectDictionary );_egee .Set ("\u0046\u0054",_cb .MakeName ("\u0042\u0074\u006e"));if _baff .Opt !=nil {_egee .Set ("\u004f\u0070\u0074",_baff .Opt );};return _afdcf ;};
// NewBorderStyle returns an initialized PdfBorderStyle.
func NewBorderStyle ()*PdfBorderStyle {_eaf :=&PdfBorderStyle {};return _eaf };
// GetNumComponents returns the number of color components (1 for CalGray).
func (_cecbg *PdfColorCalGray )GetNumComponents ()int {return 1};func _dbdfa ()string {_ggab :="\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 _cacb _bbb .Buffer ;for _daeg :=0;_daeg < 6;_daeg ++{_cacb .WriteRune (rune (_ggab [_b .Intn (len (_ggab ))]));};return _cacb .String ();};
// 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 (_fcecc *PdfFont )RunesToCharcodeBytes (data []rune )([]byte ,int ){var _cdca []_ccb .TextEncoder ;if _fadbf :=_fcecc .baseFields ()._agag ;_fadbf !=nil {_cdca =append (_cdca ,_ccb .NewCMapEncoder ("",nil ,_fadbf ));};if _ggaad :=_fcecc .Encoder ();_ggaad !=nil {_cdca =append (_cdca ,_ggaad );};var _ddfdc _bbb .Buffer ;var _fefd int ;for _ ,_adegfe :=range data {var _cfgfd bool ;for _ ,_gdfc :=range _cdca {if _gafa :=_gdfc .Encode (string (_adegfe ));len (_gafa )> 0{_ddfdc .Write (_gafa );_cfgfd =true ;break ;};};if !_cfgfd {_dbe .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",_adegfe );_fefd ++;};};if _fefd !=0{_dbe .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 ),_fefd ,_fcecc ,_cdca );};return _ddfdc .Bytes (),_fefd ;};
// 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{_gfecg *_cb .PdfParser ;_adedg _cb .PdfObject ;_dbbag *_cb .PdfIndirectObject ;_dgfe *_cb .PdfObjectDictionary ;_dfcdb []*_cb .PdfIndirectObject ;PageList []*PdfPage ;_gabac int ;_fccgb *_cb .PdfObjectDictionary ;_adcea *PdfOutlineTreeNode ;AcroForm *PdfAcroForm ;_bffa *modelManager ;_cbfab bool ;_fage map[_cb .PdfObject ]struct{};_cgba _bb .ReadSeeker ;};
// NewPdfActionSound returns a new "sound" action.
func NewPdfActionSound ()*PdfActionSound {_dbg :=NewPdfAction ();_dbd :=&PdfActionSound {};_dbd .PdfAction =_dbg ;_dbg .SetContext (_dbd );return _dbd ;};func (_gcc *PdfReader )newPdfAnnotationWidgetFromDict (_eged *_cb .PdfObjectDictionary )(*PdfAnnotationWidget ,error ){_adfe :=PdfAnnotationWidget {};_adfe .H =_eged .Get ("\u0048");_adfe .MK =_eged .Get ("\u004d\u004b");_adfe .A =_eged .Get ("\u0041");_adfe .AA =_eged .Get ("\u0041\u0041");_adfe .BS =_eged .Get ("\u0042\u0053");_adfe .Parent =_eged .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");return &_adfe ,nil ;};
// GetOutlinesFlattened returns a flattened list of tree nodes and titles.
// NOTE: for most use cases, it is recommended to use the high-level GetOutlines
// method instead, which also provides information regarding the destination
// of the outline items.
func (_bedd *PdfReader )GetOutlinesFlattened ()([]*PdfOutlineTreeNode ,[]string ,error ){var _egbca []*PdfOutlineTreeNode ;var _eeaad []string ;var _fadg func (*PdfOutlineTreeNode ,*[]*PdfOutlineTreeNode ,*[]string ,int );_fadg =func (_eeebg *PdfOutlineTreeNode ,_dfaa *[]*PdfOutlineTreeNode ,_eadde *[]string ,_cddb int ){if _eeebg ==nil {return ;};if _eeebg ._dfaeg ==nil {_dbe .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 ;};_cdab ,_gecf :=_eeebg ._dfaeg .(*PdfOutlineItem );if _gecf {*_dfaa =append (*_dfaa ,&_cdab .PdfOutlineTreeNode );_acfbb :=_fe .Repeat ("\u0020",_cddb *2)+_cdab .Title .Decoded ();*_eadde =append (*_eadde ,_acfbb );};if _eeebg .First !=nil {_fgfde :=_fe .Repeat ("\u0020",_cddb *2)+"\u002b";*_eadde =append (*_eadde ,_fgfde );_fadg (_eeebg .First ,_dfaa ,_eadde ,_cddb +1);};if _gecf &&_cdab .Next !=nil {_fadg (_cdab .Next ,_dfaa ,_eadde ,_cddb );};};_fadg (_bedd ._adcea ,&_egbca ,&_eeaad ,0);return _egbca ,_eeaad ,nil ;};
// GetContainingPdfObject returns the container of the PdfAcroForm (indirect object).
func (_aebeb *PdfAcroForm )GetContainingPdfObject ()_cb .PdfObject {return _aebeb ._dfgeb };
// BaseFont returns the font's "BaseFont" field.
func (_gcga *PdfFont )BaseFont ()string {return _gcga .baseFields ()._babff };
// 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 ;_eadd PdfModel ;_gbdd _cb .PdfObject ;};
// Evaluate runs the function on the passed in slice and returns the results.
func (_eege *PdfFunctionType3 )Evaluate (x []float64 )([]float64 ,error ){if len (x )!=1{_dbe .Log .Error ("\u004f\u006e\u006c\u0079 o\u006e\u0065\u0020\u0069\u006e\u0070\u0075\u0074\u0020\u0061\u006c\u006c\u006f\u0077e\u0064");return nil ,_bc .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};return nil ,_bc .New ("\u006e\u006f\u0074\u0020im\u0070\u006c\u0065\u006d\u0065\u006e\u0074\u0065\u0064\u0020\u0079\u0065\u0074");};
// GetNumComponents returns the number of color components (1 for Separation).
func (_gfae *PdfColorspaceSpecialSeparation )GetNumComponents ()int {return 1};
// ToPdfObject implements interface PdfModel.
func (_fbb *PdfActionURI )ToPdfObject ()_cb .PdfObject {_fbb .PdfAction .ToPdfObject ();_gbg :=_fbb ._fc ;_cee :=_gbg .PdfObject .(*_cb .PdfObjectDictionary );_cee .SetIfNotNil ("\u0053",_cb .MakeName (string (ActionTypeURI )));_cee .SetIfNotNil ("\u0055\u0052\u0049",_fbb .URI );_cee .SetIfNotNil ("\u0049\u0073\u004da\u0070",_fbb .IsMap );return _gbg ;};
// DecodeArray returns the range of color component values in the Lab colorspace.
func (_bbad *PdfColorspaceLab )DecodeArray ()[]float64 {_cgga :=[]float64 {0,100};if _bbad .Range !=nil &&len (_bbad .Range )==4{_cgga =append (_cgga ,_bbad .Range ...);}else {_cgga =append (_cgga ,-100,100,-100,100);};return _cgga ;};func _ecdc (_dbcfc _cb .PdfObject )(*PdfFunctionType2 ,error ){_edbd :=&PdfFunctionType2 {};var _cfgdb *_cb .PdfObjectDictionary ;if _gbbbe ,_dfdcd :=_dbcfc .(*_cb .PdfIndirectObject );_dfdcd {_bcdg ,_gcedf :=_gbbbe .PdfObject .(*_cb .PdfObjectDictionary );if !_gcedf {return nil ,_bc .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_edbd ._gaadd =_gbbbe ;_cfgdb =_bcdg ;}else if _dgba ,_afdcfa :=_dbcfc .(*_cb .PdfObjectDictionary );_afdcfa {_cfgdb =_dgba ;}else {return nil ,_bc .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_dbe .Log .Trace ("\u0046U\u004e\u0043\u0032\u003a\u0020\u0025s",_cfgdb .String ());_bagb ,_edfbc :=_cb .TraceToDirectObject (_cfgdb .Get ("\u0044\u006f\u006d\u0061\u0069\u006e")).(*_cb .PdfObjectArray );if !_edfbc {_dbe .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_bc .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 _bagb .Len ()< 0||_bagb .Len ()%2!=0{_dbe .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u0072\u0061\u006e\u0067e\u0020\u0069\u006e\u0076al\u0069\u0064");return nil ,_bc .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0064\u006f\u006da\u0069\u006e\u0020\u0072an\u0067\u0065");};_fffc ,_gabbe :=_bagb .ToFloat64Array ();if _gabbe !=nil {return nil ,_gabbe ;};_edbd .Domain =_fffc ;_bagb ,_edfbc =_cb .TraceToDirectObject (_cfgdb .Get ("\u0052\u0061\u006eg\u0065")).(*_cb .PdfObjectArray );if _edfbc {if _bagb .Len ()< 0||_bagb .Len ()%2!=0{return nil ,_bc .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0061\u006e\u0067\u0065");};_fbee ,_fdec :=_bagb .ToFloat64Array ();if _fdec !=nil {return nil ,_fdec ;};_edbd .Range =_fbee ;};_bagb ,_edfbc =_cb .TraceToDirectObject (_cfgdb .Get ("\u0043\u0030")).(*_cb .PdfObjectArray );if _edfbc {_edcfb ,_ebfaa :=_bagb .ToFloat64Array ();if _ebfaa !=nil {return nil ,_ebfaa ;};_edbd .C0 =_edcfb ;};_bagb ,_edfbc =_cb .TraceToDirectObject (_cfgdb .Get ("\u0043\u0031")).(*_cb .PdfObjectArray );if _edfbc {_gaddb ,_dcfc :=_bagb .ToFloat64Array ();if _dcfc !=nil {return nil ,_dcfc ;};_edbd .C1 =_gaddb ;};if len (_edbd .C0 )!=len (_edbd .C1 ){_dbe .Log .Error ("\u0043\u0030\u0020\u0061nd\u0020\u0043\u0031\u0020\u006e\u006f\u0074\u0020\u006d\u0061\u0074\u0063\u0068\u0069n\u0067");return nil ,_cb .ErrRangeError ;};N ,_gabbe :=_cb .GetNumberAsFloat (_cb .TraceToDirectObject (_cfgdb .Get ("\u004e")));if _gabbe !=nil {_dbe .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",_cfgdb .String ());return nil ,_gabbe ;};_edbd .N =N ;return _edbd ,nil ;};
// PdfShadingType3 is a Radial shading.
type PdfShadingType3 struct{*PdfShading ;Coords *_cb .PdfObjectArray ;Domain *_cb .PdfObjectArray ;Function []PdfFunction ;Extend *_cb .PdfObjectArray ;};func (_dfe *PdfReader )newPdfActionTransFromDict (_egf *_cb .PdfObjectDictionary )(*PdfActionTrans ,error ){return &PdfActionTrans {Trans :_egf .Get ("\u0054\u0072\u0061n\u0073")},nil ;};func (_ccacb *PdfColorspaceSpecialSeparation )String ()string {return "\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e";};
// IsTerminal returns true for terminal fields, false otherwise.
// Terminal fields are fields whose descendants are only widget annotations.
func (_cbbc *PdfField )IsTerminal ()bool {return len (_cbbc .Kids )==0};
// ToPdfObject implements interface PdfModel.
func (_agbd *PdfAnnotationLine )ToPdfObject ()_cb .PdfObject {_agbd .PdfAnnotation .ToPdfObject ();_bfbb :=_agbd ._efd ;_bde :=_bfbb .PdfObject .(*_cb .PdfObjectDictionary );_agbd .PdfAnnotationMarkup .appendToPdfDictionary (_bde );_bde .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_cb .MakeName ("\u004c\u0069\u006e\u0065"));_bde .SetIfNotNil ("\u004c",_agbd .L );_bde .SetIfNotNil ("\u0042\u0053",_agbd .BS );_bde .SetIfNotNil ("\u004c\u0045",_agbd .LE );_bde .SetIfNotNil ("\u0049\u0043",_agbd .IC );_bde .SetIfNotNil ("\u004c\u004c",_agbd .LL );_bde .SetIfNotNil ("\u004c\u004c\u0045",_agbd .LLE );_bde .SetIfNotNil ("\u0043\u0061\u0070",_agbd .Cap );_bde .SetIfNotNil ("\u0049\u0054",_agbd .IT );_bde .SetIfNotNil ("\u004c\u004c\u004f",_agbd .LLO );_bde .SetIfNotNil ("\u0043\u0050",_agbd .CP );_bde .SetIfNotNil ("\u004de\u0061\u0073\u0075\u0072\u0065",_agbd .Measure );_bde .SetIfNotNil ("\u0043\u004f",_agbd .CO );return _bfbb ;};
// NewPdfActionTrans returns a new "trans" action.
func NewPdfActionTrans ()*PdfActionTrans {_ga :=NewPdfAction ();_feg :=&PdfActionTrans {};_feg .PdfAction =_ga ;_ga .SetContext (_feg );return _feg ;};
// SetLocation sets the `Location` field of the signature.
func (_eeaaf *PdfSignature )SetLocation (location string ){_eeaaf .Location =_cb .MakeString (location )};
// DecodeArray returns the range of color component values in DeviceGray colorspace.
func (_dafc *PdfColorspaceDeviceGray )DecodeArray ()[]float64 {return []float64 {0,1.0}};const (ButtonTypeCheckbox ButtonType =iota ;ButtonTypePush ButtonType =iota ;ButtonTypeRadio ButtonType =iota ;);var _gbggb =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 _gbgdg (_ebbd _cb .PdfObject ,_ccbaa *fontCommon )(*_gb .CMap ,error ){_cbae ,_gfaeb :=_cb .GetStream (_ebbd );if !_gfaeb {_dbe .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",_ebbd );return nil ,_cb .ErrTypeError ;};_aecea ,_fdeda :=_cb .DecodeStream (_cbae );if _fdeda !=nil {return nil ,_fdeda ;};_egbag ,_fdeda :=_gb .LoadCmapFromData (_aecea ,!_ccbaa .isCIDFont ());if _fdeda !=nil {_dbe .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",_cbae .ObjectNumber ,_fdeda );};return _egbag ,_fdeda ;};
// ToPdfObject returns the PdfFontDescriptor as a PDF dictionary inside an indirect object.
func (_bedfb *PdfFontDescriptor )ToPdfObject ()_cb .PdfObject {_fdbdg :=_cb .MakeDict ();if _bedfb ._gaede ==nil {_bedfb ._gaede =&_cb .PdfIndirectObject {};};_bedfb ._gaede .PdfObject =_fdbdg ;_fdbdg .Set ("\u0054\u0079\u0070\u0065",_cb .MakeName ("\u0046\u006f\u006e\u0074\u0044\u0065\u0073\u0063\u0072i\u0070\u0074\u006f\u0072"));if _bedfb .FontName !=nil {_fdbdg .Set ("\u0046\u006f\u006e\u0074\u004e\u0061\u006d\u0065",_bedfb .FontName );};if _bedfb .FontFamily !=nil {_fdbdg .Set ("\u0046\u006f\u006e\u0074\u0046\u0061\u006d\u0069\u006c\u0079",_bedfb .FontFamily );};if _bedfb .FontStretch !=nil {_fdbdg .Set ("F\u006f\u006e\u0074\u0053\u0074\u0072\u0065\u0074\u0063\u0068",_bedfb .FontStretch );};if _bedfb .FontWeight !=nil {_fdbdg .Set ("\u0046\u006f\u006e\u0074\u0057\u0065\u0069\u0067\u0068\u0074",_bedfb .FontWeight );};if _bedfb .Flags !=nil {_fdbdg .Set ("\u0046\u006c\u0061g\u0073",_bedfb .Flags );};if _bedfb .FontBBox !=nil {_fdbdg .Set ("\u0046\u006f\u006e\u0074\u0042\u0042\u006f\u0078",_bedfb .FontBBox );};if _bedfb .ItalicAngle !=nil {_fdbdg .Set ("I\u0074\u0061\u006c\u0069\u0063\u0041\u006e\u0067\u006c\u0065",_bedfb .ItalicAngle );};if _bedfb .Ascent !=nil {_fdbdg .Set ("\u0041\u0073\u0063\u0065\u006e\u0074",_bedfb .Ascent );};if _bedfb .Descent !=nil {_fdbdg .Set ("\u0044e\u0073\u0063\u0065\u006e\u0074",_bedfb .Descent );};if _bedfb .Leading !=nil {_fdbdg .Set ("\u004ce\u0061\u0064\u0069\u006e\u0067",_bedfb .Leading );};if _bedfb .CapHeight !=nil {_fdbdg .Set ("\u0043a\u0070\u0048\u0065\u0069\u0067\u0068t",_bedfb .CapHeight );};if _bedfb .XHeight !=nil {_fdbdg .Set ("\u0058H\u0065\u0069\u0067\u0068\u0074",_bedfb .XHeight );};if _bedfb .StemV !=nil {_fdbdg .Set ("\u0053\u0074\u0065m\u0056",_bedfb .StemV );};if _bedfb .StemH !=nil {_fdbdg .Set ("\u0053\u0074\u0065m\u0048",_bedfb .StemH );};if _bedfb .AvgWidth !=nil {_fdbdg .Set ("\u0041\u0076\u0067\u0057\u0069\u0064\u0074\u0068",_bedfb .AvgWidth );};if _bedfb .MaxWidth !=nil {_fdbdg .Set ("\u004d\u0061\u0078\u0057\u0069\u0064\u0074\u0068",_bedfb .MaxWidth );};if _bedfb .MissingWidth !=nil {_fdbdg .Set ("\u004d\u0069\u0073s\u0069\u006e\u0067\u0057\u0069\u0064\u0074\u0068",_bedfb .MissingWidth );};if _bedfb .FontFile !=nil {_fdbdg .Set ("\u0046\u006f\u006e\u0074\u0046\u0069\u006c\u0065",_bedfb .FontFile );};if _bedfb .FontFile2 !=nil {_fdbdg .Set ("\u0046o\u006e\u0074\u0046\u0069\u006c\u00652",_bedfb .FontFile2 );};if _bedfb .FontFile3 !=nil {_fdbdg .Set ("\u0046o\u006e\u0074\u0046\u0069\u006c\u00653",_bedfb .FontFile3 );};if _bedfb .CharSet !=nil {_fdbdg .Set ("\u0043h\u0061\u0072\u0053\u0065\u0074",_bedfb .CharSet );};if _bedfb .Style !=nil {_fdbdg .Set ("\u0046\u006f\u006e\u0074\u004e\u0061\u006d\u0065",_bedfb .FontName );};if _bedfb .Lang !=nil {_fdbdg .Set ("\u004c\u0061\u006e\u0067",_bedfb .Lang );};if _bedfb .FD !=nil {_fdbdg .Set ("\u0046\u0044",_bedfb .FD );};if _bedfb .CIDSet !=nil {_fdbdg .Set ("\u0043\u0049\u0044\u0053\u0065\u0074",_bedfb .CIDSet );};return _bedfb ._gaede ;};
// 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 (_bgcg *PdfColorspaceDeviceRGB )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=3{return nil ,_bc .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_bdfgc :=vals [0];if _bdfgc < 0.0||_bdfgc > 1.0{return nil ,_bc .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_bcecd :=vals [1];if _bcecd < 0.0||_bcecd > 1.0{return nil ,_bc .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_acdg :=vals [2];if _acdg < 0.0||_acdg > 1.0{return nil ,_bc .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_dace :=NewPdfColorDeviceRGB (_bdfgc ,_bcecd ,_acdg );return _dace ,nil ;};func (_fdbgf *pdfFontType0 )baseFields ()*fontCommon {return &_fdbgf .fontCommon };func (_dgca *PdfWriter )copyObject (_cgdegf _cb .PdfObject ,_dfagd map[_cb .PdfObject ]_cb .PdfObject ,_cbdge map[_cb .PdfObject ]struct{},_ccafb bool )_cb .PdfObject {_aedcc :=!_dgca ._gedaa &&_cbdge !=nil ;if _efcbb ,_gaeaf :=_dfagd [_cgdegf ];_gaeaf {if _aedcc &&!_ccafb {delete (_cbdge ,_cgdegf );};return _efcbb ;};_ccbgf :=_cgdegf ;switch _eaefa :=_cgdegf .(type ){case *_cb .PdfObjectArray :_ddgbc :=_cb .MakeArray ();_ccbgf =_ddgbc ;_dfagd [_cgdegf ]=_ccbgf ;for _ ,_dgeed :=range _eaefa .Elements (){_ddgbc .Append (_dgca .copyObject (_dgeed ,_dfagd ,_cbdge ,_ccafb ));};case *_cb .PdfObjectStreams :_ffbab :=&_cb .PdfObjectStreams {PdfObjectReference :_eaefa .PdfObjectReference };_ccbgf =_ffbab ;_dfagd [_cgdegf ]=_ccbgf ;for _ ,_bcafe :=range _eaefa .Elements (){_ffbab .Append (_dgca .copyObject (_bcafe ,_dfagd ,_cbdge ,_ccafb ));};case *_cb .PdfObjectStream :_fafdc :=&_cb .PdfObjectStream {Stream :_eaefa .Stream ,PdfObjectReference :_eaefa .PdfObjectReference };_ccbgf =_fafdc ;_dfagd [_cgdegf ]=_ccbgf ;_fafdc .PdfObjectDictionary =_dgca .copyObject (_eaefa .PdfObjectDictionary ,_dfagd ,_cbdge ,_ccafb ).(*_cb .PdfObjectDictionary );case *_cb .PdfObjectDictionary :var _gcdcb bool ;if _aedcc &&!_ccafb {if _gfed ,_ :=_cb .GetNameVal (_eaefa .Get ("\u0054\u0079\u0070\u0065"));_gfed =="\u0050\u0061\u0067\u0065"{_ ,_bcdff :=_dgca ._dfebc [_eaefa ];_ccafb =!_bcdff ;_gcdcb =_ccafb ;};};_bacf :=_cb .MakeDict ();_ccbgf =_bacf ;_dfagd [_cgdegf ]=_ccbgf ;for _ ,_efbbe :=range _eaefa .Keys (){_bacf .Set (_efbbe ,_dgca .copyObject (_eaefa .Get (_efbbe ),_dfagd ,_cbdge ,_ccafb ));};if _gcdcb {_ccbgf =_cb .MakeNull ();_ccafb =false ;};case *_cb .PdfIndirectObject :_ebgbf :=&_cb .PdfIndirectObject {PdfObjectReference :_eaefa .PdfObjectReference };_ccbgf =_ebgbf ;_dfagd [_cgdegf ]=_ccbgf ;_ebgbf .PdfObject =_dgca .copyObject (_eaefa .PdfObject ,_dfagd ,_cbdge ,_ccafb );case *_cb .PdfObjectString :_eccc :=*_eaefa ;_ccbgf =&_eccc ;_dfagd [_cgdegf ]=_ccbgf ;case *_cb .PdfObjectName :_ceagga :=_cb .PdfObjectName (*_eaefa );_ccbgf =&_ceagga ;_dfagd [_cgdegf ]=_ccbgf ;case *_cb .PdfObjectNull :_ccbgf =_cb .MakeNull ();_dfagd [_cgdegf ]=_ccbgf ;case *_cb .PdfObjectInteger :_adcdc :=_cb .PdfObjectInteger (*_eaefa );_ccbgf =&_adcdc ;_dfagd [_cgdegf ]=_ccbgf ;case *_cb .PdfObjectReference :_edbdg :=_cb .PdfObjectReference (*_eaefa );_ccbgf =&_edbdg ;_dfagd [_cgdegf ]=_ccbgf ;case *_cb .PdfObjectFloat :_ebbdc :=_cb .PdfObjectFloat (*_eaefa );_ccbgf =&_ebbdc ;_dfagd [_cgdegf ]=_ccbgf ;case *_cb .PdfObjectBool :_adgec :=_cb .PdfObjectBool (*_eaefa );_ccbgf =&_adgec ;_dfagd [_cgdegf ]=_ccbgf ;case *pdfSignDictionary :_aaccb :=&pdfSignDictionary {PdfObjectDictionary :_cb .MakeDict (),_adcfc :_eaefa ._adcfc ,_bdfbd :_eaefa ._bdfbd };_ccbgf =_aaccb ;_dfagd [_cgdegf ]=_ccbgf ;for _ ,_acffc :=range _eaefa .Keys (){_aaccb .Set (_acffc ,_dgca .copyObject (_eaefa .Get (_acffc ),_dfagd ,_cbdge ,_ccafb ));};default:_dbe .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",_cgdegf );};if _aedcc &&_ccafb {_cbdge [_cgdegf ]=struct{}{};};return _ccbgf ;};
// NewPdfAnnotationTrapNet returns a new trapnet annotation.
func NewPdfAnnotationTrapNet ()*PdfAnnotationTrapNet {_baag :=NewPdfAnnotation ();_dcgg :=&PdfAnnotationTrapNet {};_dcgg .PdfAnnotation =_baag ;_baag .SetContext (_dcgg );return _dcgg ;};
// ToPdfObject returns the PDF representation of the tiling pattern.
func (_cgdg *PdfTilingPattern )ToPdfObject ()_cb .PdfObject {_cgdg .PdfPattern .ToPdfObject ();_cegaf :=_cgdg .getDict ();if _cgdg .PaintType !=nil {_cegaf .Set ("\u0050a\u0069\u006e\u0074\u0054\u0079\u0070e",_cgdg .PaintType );};if _cgdg .TilingType !=nil {_cegaf .Set ("\u0054\u0069\u006c\u0069\u006e\u0067\u0054\u0079\u0070\u0065",_cgdg .TilingType );};if _cgdg .BBox !=nil {_cegaf .Set ("\u0042\u0042\u006f\u0078",_cgdg .BBox .ToPdfObject ());};if _cgdg .XStep !=nil {_cegaf .Set ("\u0058\u0053\u0074e\u0070",_cgdg .XStep );};if _cgdg .YStep !=nil {_cegaf .Set ("\u0059\u0053\u0074e\u0070",_cgdg .YStep );};if _cgdg .Resources !=nil {_cegaf .Set ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s",_cgdg .Resources .ToPdfObject ());};if _cgdg .Matrix !=nil {_cegaf .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_cgdg .Matrix );};return _cgdg ._gbdd ;};func _ffcfe (_ccdd *_cb .PdfObjectStream )(*PdfFunctionType4 ,error ){_efedf :=&PdfFunctionType4 {};_efedf ._bdbff =_ccdd ;_dffdg :=_ccdd .PdfObjectDictionary ;_abce ,_fcbdg :=_cb .TraceToDirectObject (_dffdg .Get ("\u0044\u006f\u006d\u0061\u0069\u006e")).(*_cb .PdfObjectArray );if !_fcbdg {_dbe .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_bc .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 _abce .Len ()%2!=0{_dbe .Log .Error ("\u0044\u006f\u006d\u0061\u0069\u006e\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");return nil ,_bc .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0064\u006f\u006da\u0069\u006e\u0020\u0072an\u0067\u0065");};_cgeda ,_acbbg :=_abce .ToFloat64Array ();if _acbbg !=nil {return nil ,_acbbg ;};_efedf .Domain =_cgeda ;_abce ,_fcbdg =_cb .TraceToDirectObject (_dffdg .Get ("\u0052\u0061\u006eg\u0065")).(*_cb .PdfObjectArray );if _fcbdg {if _abce .Len ()< 0||_abce .Len ()%2!=0{return nil ,_bc .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0061\u006e\u0067\u0065");};_cagbb ,_gbead :=_abce .ToFloat64Array ();if _gbead !=nil {return nil ,_gbead ;};_efedf .Range =_cagbb ;};_cegef ,_acbbg :=_cb .DecodeStream (_ccdd );if _acbbg !=nil {return nil ,_acbbg ;};_efedf ._eefa =_cegef ;_fbfdd :=_cg .NewPSParser ([]byte (_cegef ));_cgdda ,_acbbg :=_fbfdd .Parse ();if _acbbg !=nil {return nil ,_acbbg ;};_efedf .Program =_cgdda ;return _efedf ,nil ;};
// ColorToRGB converts a Lab color to an RGB color.
func (_aebc *PdfColorspaceLab )ColorToRGB (color PdfColor )(PdfColor ,error ){_gdbdbd :=func (_ffbf float64 )float64 {if _ffbf >=6.0/29{return _ffbf *_ffbf *_ffbf ;};return 108.0/841*(_ffbf -4/29);};_fcfea ,_caagc :=color .(*PdfColorLab );if !_caagc {_dbe .Log .Debug ("\u0069\u006e\u0070\u0075t \u0063\u006f\u006c\u006f\u0072\u0020\u006e\u006f\u0074\u0020\u006c\u0061\u0062");return nil ,_bc .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};LStar :=_fcfea .L ();AStar :=_fcfea .A ();BStar :=_fcfea .B ();L :=(LStar +16)/116+AStar /500;M :=(LStar +16)/116;N :=(LStar +16)/116-BStar /200;X :=_aebc .WhitePoint [0]*_gdbdbd (L );Y :=_aebc .WhitePoint [1]*_gdbdbd (M );Z :=_aebc .WhitePoint [2]*_gdbdbd (N );_bgcga :=3.240479*X +-1.537150*Y +-0.498535*Z ;_fbdd :=-0.969256*X +1.875992*Y +0.041556*Z ;_ffaa :=0.055648*X +-0.204043*Y +1.057311*Z ;_bgcga =_ag .Min (_ag .Max (_bgcga ,0),1.0);_fbdd =_ag .Min (_ag .Max (_fbdd ,0),1.0);_ffaa =_ag .Min (_ag .Max (_ffaa ,0),1.0);return NewPdfColorDeviceRGB (_bgcga ,_fbdd ,_ffaa ),nil ;};
// CharcodeBytesToUnicode converts PDF character codes `data` to a Go unicode string.
//
// 9.10 Extraction of Text Content (page 292)
// The process of finding glyph descriptions in OpenType fonts by a conforming reader shall be the following:
// • For Type 1 fonts using “CFF” tables, the process shall be as described in 9.6.6.2, "Encodings
// for Type 1 Fonts".
// • For TrueType fonts using “glyf” tables, the process shall be as described in 9.6.6.4,
// "Encodings for TrueType Fonts". Since this process sometimes produces ambiguous results,
// conforming writers, instead of using a simple font, shall use a Type 0 font with an Identity-H
// encoding and use the glyph indices as character codes, as described following Table 118.
func (_ebaf *PdfFont )CharcodeBytesToUnicode (data []byte )(string ,int ,int ){_bcdb ,_ ,_aabed :=_ebaf .CharcodesToUnicodeWithStats (_ebaf .BytesToCharcodes (data ));_aefeb :=_ccb .ExpandLigatures (_bcdb );return _aefeb ,_ff .RuneCountInString (_aefeb ),_aabed ;};func (_ccge *PdfReader )newPdfAnnotation3DFromDict (_bcfa *_cb .PdfObjectDictionary )(*PdfAnnotation3D ,error ){_ceag :=PdfAnnotation3D {};_ceag .T3DD =_bcfa .Get ("\u0033\u0044\u0044");_ceag .T3DV =_bcfa .Get ("\u0033\u0044\u0056");_ceag .T3DA =_bcfa .Get ("\u0033\u0044\u0041");_ceag .T3DI =_bcfa .Get ("\u0033\u0044\u0049");_ceag .T3DB =_bcfa .Get ("\u0033\u0044\u0042");return &_ceag ,nil ;};func (_dgaeb *PdfReader )newPdfAnnotationHighlightFromDict (_fdf *_cb .PdfObjectDictionary )(*PdfAnnotationHighlight ,error ){_ebfb :=PdfAnnotationHighlight {};_cegc ,_agaa :=_dgaeb .newPdfAnnotationMarkupFromDict (_fdf );if _agaa !=nil {return nil ,_agaa ;};_ebfb .PdfAnnotationMarkup =_cegc ;_ebfb .QuadPoints =_fdf .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");return &_ebfb ,nil ;};
// GetXObjectImageByName returns the XObjectImage with the specified name from the
// page resources, if it exists.
func (_eabc *PdfPageResources )GetXObjectImageByName (keyName _cb .PdfObjectName )(*XObjectImage ,error ){_cgacf ,_fccf :=_eabc .GetXObjectByName (keyName );if _cgacf ==nil {return nil ,nil ;};if _fccf !=XObjectTypeImage {return nil ,_bc .New ("\u006e\u006f\u0074 \u0061\u006e\u0020\u0069\u006d\u0061\u0067\u0065");};_cgee ,_cfbfg :=NewXObjectImageFromStream (_cgacf );if _cfbfg !=nil {return nil ,_cfbfg ;};return _cgee ,nil ;};
// GetMediaBox gets the inheritable media box value, either from the page
// or a higher up page/pages struct.
func (_efcdc *PdfPage )GetMediaBox ()(*PdfRectangle ,error ){if _efcdc .MediaBox !=nil {return _efcdc .MediaBox ,nil ;};_afcc :=_efcdc .Parent ;for _afcc !=nil {_edebd ,_baef :=_cb .GetDict (_afcc );if !_baef {return nil ,_bc .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 _caagdb :=_edebd .Get ("\u004d\u0065\u0064\u0069\u0061\u0042\u006f\u0078");_caagdb !=nil {_edaca ,_feef :=_cb .GetArray (_caagdb );if !_feef {return nil ,_bc .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006d\u0065\u0064\u0069a\u0020\u0062\u006f\u0078");};_ecgbbc ,_aeef :=NewPdfRectangle (*_edaca );if _aeef !=nil {return nil ,_aeef ;};return _ecgbbc ,nil ;};_afcc =_edebd .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");};return nil ,_bc .New ("m\u0065\u0064\u0069\u0061 b\u006fx\u0020\u006e\u006f\u0074\u0020d\u0065\u0066\u0069\u006e\u0065\u0064");};func (_befc *PdfReader )newPdfAnnotationPrinterMarkFromDict (_bbbbc *_cb .PdfObjectDictionary )(*PdfAnnotationPrinterMark ,error ){_agcf :=PdfAnnotationPrinterMark {};_agcf .MN =_bbbbc .Get ("\u004d\u004e");return &_agcf ,nil ;};
// NewPdfColorspaceCalRGB returns a new CalRGB colorspace object.
func NewPdfColorspaceCalRGB ()*PdfColorspaceCalRGB {_aadg :=&PdfColorspaceCalRGB {};_aadg .BlackPoint =[]float64 {0.0,0.0,0.0};_aadg .Gamma =[]float64 {1.0,1.0,1.0};_aadg .Matrix =[]float64 {1,0,0,0,1,0,0,0,1};return _aadg ;};func _ffbfb (_edad *_cb .PdfObjectDictionary )(*PdfTilingPattern ,error ){_eegdd :=&PdfTilingPattern {};_cbeb :=_edad .Get ("\u0050a\u0069\u006e\u0074\u0054\u0079\u0070e");if _cbeb ==nil {_dbe .Log .Debug ("\u0050\u0061\u0069\u006e\u0074\u0054\u0079\u0070\u0065\u0020\u006d\u0069s\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ;};_eceda ,_bdfd :=_cbeb .(*_cb .PdfObjectInteger );if !_bdfd {_dbe .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",_cbeb );return nil ,_cb .ErrTypeError ;};_eegdd .PaintType =_eceda ;_cbeb =_edad .Get ("\u0054\u0069\u006c\u0069\u006e\u0067\u0054\u0079\u0070\u0065");if _cbeb ==nil {_dbe .Log .Debug ("\u0054i\u006ci\u006e\u0067\u0054\u0079\u0070e\u0020\u006di\u0073\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ;};_dcedf ,_bdfd :=_cbeb .(*_cb .PdfObjectInteger );if !_bdfd {_dbe .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",_cbeb );return nil ,_cb .ErrTypeError ;};_eegdd .TilingType =_dcedf ;_cbeb =_edad .Get ("\u0042\u0042\u006f\u0078");if _cbeb ==nil {_dbe .Log .Debug ("\u0042\u0042\u006fx\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ;};_cbeb =_cb .TraceToDirectObject (_cbeb );_cdaga ,_bdfd :=_cbeb .(*_cb .PdfObjectArray );if !_bdfd {_dbe .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",_cbeb );return nil ,_cb .ErrTypeError ;};_ggfc ,_fcfbed :=NewPdfRectangle (*_cdaga );if _fcfbed !=nil {_dbe .Log .Debug ("\u0042\u0042\u006f\u0078\u0020\u0065\u0072\u0072\u006fr\u003a\u0020\u0025\u0076",_fcfbed );return nil ,_fcfbed ;};_eegdd .BBox =_ggfc ;_cbeb =_edad .Get ("\u0058\u0053\u0074e\u0070");if _cbeb ==nil {_dbe .Log .Debug ("\u0058\u0053\u0074\u0065\u0070\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ;};_gbgfc ,_fcfbed :=_cb .GetNumberAsFloat (_cbeb );if _fcfbed !=nil {_dbe .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",_gbgfc );return nil ,_fcfbed ;};_eegdd .XStep =_cb .MakeFloat (_gbgfc );_cbeb =_edad .Get ("\u0059\u0053\u0074e\u0070");if _cbeb ==nil {_dbe .Log .Debug ("\u0059\u0053\u0074\u0065\u0070\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ;};_eegad ,_fcfbed :=_cb .GetNumberAsFloat (_cbeb );if _fcfbed !=nil {_dbe .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",_eegad );return nil ,_fcfbed ;};_eegdd .YStep =_cb .MakeFloat (_eegad );_cbeb =_edad .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");if _cbeb ==nil {_dbe .Log .Debug ("\u0052\u0065\u0073\u006f\u0075\u0072\u0063\u0065\u0073\u0020\u006d\u0069s\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ;};_edad ,_bdfd =_cb .TraceToDirectObject (_cbeb ).(*_cb .PdfObjectDictionary );if !_bdfd {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",_cbeb );};_abaec ,_fcfbed :=NewPdfPageResourcesFromDict (_edad );if _fcfbed !=nil {return nil ,_fcfbed ;};_eegdd .Resources =_abaec ;if _acgea :=_edad .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");_acgea !=nil {_gfdecc ,_caecg :=_acgea .(*_cb .PdfObjectArray );if !_caecg {_dbe .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",_acgea );return nil ,_cb .ErrTypeError ;};_eegdd .Matrix =_gfdecc ;};return _eegdd ,nil ;};var _eegde ="";
// ToInteger convert to an integer format.
func (_fbe *PdfColorDeviceRGB )ToInteger (bits int )[3]uint32 {_cad :=_ag .Pow (2,float64 (bits ))-1;return [3]uint32 {uint32 (_cad *_fbe .R ()),uint32 (_cad *_fbe .G ()),uint32 (_cad *_fbe .B ())};};
// 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"`;};var (CourierName =_af .CourierName ;CourierBoldName =_af .CourierBoldName ;CourierObliqueName =_af .CourierObliqueName ;CourierBoldObliqueName =_af .CourierBoldObliqueName ;HelveticaName =_af .HelveticaName ;HelveticaBoldName =_af .HelveticaBoldName ;HelveticaObliqueName =_af .HelveticaObliqueName ;HelveticaBoldObliqueName =_af .HelveticaBoldObliqueName ;SymbolName =_af .SymbolName ;ZapfDingbatsName =_af .ZapfDingbatsName ;TimesRomanName =_af .TimesRomanName ;TimesBoldName =_af .TimesBoldName ;TimesItalicName =_af .TimesItalicName ;TimesBoldItalicName =_af .TimesBoldItalicName ;);
// String returns a string representation of the field.
func (_bdae *PdfField )String ()string {if _ebdb ,_beegg :=_bdae .ToPdfObject ().(*_cb .PdfIndirectObject );_beegg {return _c .Sprintf ("\u0025\u0054\u003a\u0020\u0025\u0073",_bdae ._cdfge ,_ebdb .PdfObject .String ());};return "";};
// Set sets the colorspace corresponding to key. Add to Names if not set.
func (_ggcecg *PdfPageResourcesColorspaces )Set (key _cb .PdfObjectName ,val PdfColorspace ){if _ ,_fcbcf :=_ggcecg .Colorspaces [string (key )];!_fcbcf {_ggcecg .Names =append (_ggcecg .Names ,string (key ));};_ggcecg .Colorspaces [string (key )]=val ;};
// FieldAppearanceGenerator generates appearance stream for a given field.
type FieldAppearanceGenerator interface{ContentStreamWrapper ;GenerateAppearanceDict (_ccebb *PdfAcroForm ,_bccg *PdfField ,_adgd *PdfAnnotationWidget )(*_cb .PdfObjectDictionary ,error );};var _fgfg =false ;
// ImageToRGB converts Lab colorspace image to RGB and returns the result.
func (_gdccf *PdfColorspaceLab )ImageToRGB (img Image )(Image ,error ){_faegc :=func (_bfdf float64 )float64 {if _bfdf >=6.0/29{return _bfdf *_bfdf *_bfdf ;};return 108.0/841*(_bfdf -4/29);};_cffg :=img ._cceeg ;if len (_cffg )!=6{_dbe .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");_cffg =_gdccf .DecodeArray ();};_bggg :=_cf .NewReader (img .getBase ());_ecf :=_ac .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),3,nil ,img ._ddffb ,img ._cceeg );_fcfbe :=_cf .NewWriter (_ecf );_beab :=_ag .Pow (2,float64 (img .BitsPerComponent ))-1;_fdgee :=make ([]uint32 ,3);var (_fbec error ;Ls ,As ,Bs ,L ,M ,N ,X ,Y ,Z ,_cbbac ,_ecea ,_abee float64 ;);for {_fbec =_bggg .ReadSamples (_fdgee );if _fbec ==_bb .EOF {break ;}else if _fbec !=nil {return img ,_fbec ;};Ls =float64 (_fdgee [0])/_beab ;As =float64 (_fdgee [1])/_beab ;Bs =float64 (_fdgee [2])/_beab ;Ls =_ac .LinearInterpolate (Ls ,0.0,1.0,_cffg [0],_cffg [1]);As =_ac .LinearInterpolate (As ,0.0,1.0,_cffg [2],_cffg [3]);Bs =_ac .LinearInterpolate (Bs ,0.0,1.0,_cffg [4],_cffg [5]);L =(Ls +16)/116+As /500;M =(Ls +16)/116;N =(Ls +16)/116-Bs /200;X =_gdccf .WhitePoint [0]*_faegc (L );Y =_gdccf .WhitePoint [1]*_faegc (M );Z =_gdccf .WhitePoint [2]*_faegc (N );_cbbac =3.240479*X +-1.537150*Y +-0.498535*Z ;_ecea =-0.969256*X +1.875992*Y +0.041556*Z ;_abee =0.055648*X +-0.204043*Y +1.057311*Z ;_cbbac =_ag .Min (_ag .Max (_cbbac ,0),1.0);_ecea =_ag .Min (_ag .Max (_ecea ,0),1.0);_abee =_ag .Min (_ag .Max (_abee ,0),1.0);_fdgee [0]=uint32 (_cbbac *_beab );_fdgee [1]=uint32 (_ecea *_beab );_fdgee [2]=uint32 (_abee *_beab );if _fbec =_fcfbe .WriteSamples (_fdgee );_fbec !=nil {return img ,_fbec ;};};return _ecdg (&_ecf ),nil ;};
// ColorToRGB converts a CMYK32 color to an RGB color.
func (_agbb *PdfColorspaceDeviceCMYK )ColorToRGB (color PdfColor )(PdfColor ,error ){_fbga ,_aagfg :=color .(*PdfColorDeviceCMYK );if !_aagfg {_dbe .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 ,_bc .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_ccaef :=_fbga .C ();_dfdfb :=_fbga .M ();_baca :=_fbga .Y ();_dccc :=_fbga .K ();_ccaef =_ccaef *(1-_dccc )+_dccc ;_dfdfb =_dfdfb *(1-_dccc )+_dccc ;_baca =_baca *(1-_dccc )+_dccc ;_fggc :=1-_ccaef ;_cbcbe :=1-_dfdfb ;_ebdc :=1-_baca ;return NewPdfColorDeviceRGB (_fggc ,_cbcbe ,_ebdc ),nil ;};
// Subtype returns the font's "Subtype" field.
func (_adfge *PdfFont )Subtype ()string {_edbe :=_adfge .baseFields ()._fbefd ;if _gddcg ,_ffdbd :=_adfge ._cdfe .(*pdfFontType0 );_ffdbd {_edbe =_edbe +"\u003a"+_gddcg .DescendantFont .Subtype ();};return _edbe ;};func _eegd (_ffgc StdFontName )(pdfFontSimple ,error ){_dbfdd ,_befg :=_af .NewStdFontByName (_ffgc );if !_befg {return pdfFontSimple {},ErrFontNotSupported ;};_bbeg :=_dccg (_dbfdd );return _bbeg ,nil ;};func _dbgb (_cgbd _cb .PdfObject )(*PdfFontDescriptor ,error ){_gbag :=&PdfFontDescriptor {};_cgbd =_cb .ResolveReference (_cgbd );if _eccec ,_gedec :=_cgbd .(*_cb .PdfIndirectObject );_gedec {_gbag ._gaede =_eccec ;_cgbd =_eccec .PdfObject ;};_bcbec ,_edea :=_cb .GetDict (_cgbd );if !_edea {_dbe .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",_cgbd );return nil ,_cb .ErrTypeError ;};if _dfafb :=_bcbec .Get ("\u0046\u006f\u006e\u0074\u004e\u0061\u006d\u0065");_dfafb !=nil {_gbag .FontName =_dfafb ;}else {_dbe .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");};_abccc ,_ :=_cb .GetName (_gbag .FontName );if _gaeb :=_bcbec .Get ("\u0054\u0079\u0070\u0065");_gaeb !=nil {_dfeb ,_aeea :=_gaeb .(*_cb .PdfObjectName );if !_aeea ||string (*_dfeb )!="\u0046\u006f\u006e\u0074\u0044\u0065\u0073\u0063\u0072i\u0070\u0074\u006f\u0072"{_dbe .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",_gaeb ,_abccc ,_gbag .FontName );};}else {_dbe .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",_abccc ,_gbag .FontName );};_gbag .FontFamily =_bcbec .Get ("\u0046\u006f\u006e\u0074\u0046\u0061\u006d\u0069\u006c\u0079");_gbag .FontStretch =_bcbec .Get ("F\u006f\u006e\u0074\u0053\u0074\u0072\u0065\u0074\u0063\u0068");_gbag .FontWeight =_bcbec .Get ("\u0046\u006f\u006e\u0074\u0057\u0065\u0069\u0067\u0068\u0074");_gbag .Flags =_bcbec .Get ("\u0046\u006c\u0061g\u0073");_gbag .FontBBox =_bcbec .Get ("\u0046\u006f\u006e\u0074\u0042\u0042\u006f\u0078");_gbag .ItalicAngle =_bcbec .Get ("I\u0074\u0061\u006c\u0069\u0063\u0041\u006e\u0067\u006c\u0065");_gbag .Ascent =_bcbec .Get ("\u0041\u0073\u0063\u0065\u006e\u0074");_gbag .Descent =_bcbec .Get ("\u0044e\u0073\u0063\u0065\u006e\u0074");_gbag .Leading =_bcbec .Get ("\u004ce\u0061\u0064\u0069\u006e\u0067");_gbag .CapHeight =_bcbec .Get ("\u0043a\u0070\u0048\u0065\u0069\u0067\u0068t");_gbag .XHeight =_bcbec .Get ("\u0058H\u0065\u0069\u0067\u0068\u0074");_gbag .StemV =_bcbec .Get ("\u0053\u0074\u0065m\u0056");_gbag .StemH =_bcbec .Get ("\u0053\u0074\u0065m\u0048");_gbag .AvgWidth =_bcbec .Get ("\u0041\u0076\u0067\u0057\u0069\u0064\u0074\u0068");_gbag .MaxWidth =_bcbec .Get ("\u004d\u0061\u0078\u0057\u0069\u0064\u0074\u0068");_gbag .MissingWidth =_bcbec .Get ("\u004d\u0069\u0073s\u0069\u006e\u0067\u0057\u0069\u0064\u0074\u0068");_gbag .FontFile =_bcbec .Get ("\u0046\u006f\u006e\u0074\u0046\u0069\u006c\u0065");_gbag .FontFile2 =_bcbec .Get ("\u0046o\u006e\u0074\u0046\u0069\u006c\u00652");_gbag .FontFile3 =_bcbec .Get ("\u0046o\u006e\u0074\u0046\u0069\u006c\u00653");_gbag .CharSet =_bcbec .Get ("\u0043h\u0061\u0072\u0053\u0065\u0074");_gbag .Style =_bcbec .Get ("\u0053\u0074\u0079l\u0065");_gbag .Lang =_bcbec .Get ("\u004c\u0061\u006e\u0067");_gbag .FD =_bcbec .Get ("\u0046\u0044");_gbag .CIDSet =_bcbec .Get ("\u0043\u0049\u0044\u0053\u0065\u0074");if _gbag .Flags !=nil {if _edgb ,_ebfe :=_cb .GetIntVal (_gbag .Flags );_ebfe {_gbag ._bfdd =_edgb ;};};if _gbag .MissingWidth !=nil {if _bdbc ,_cddg :=_cb .GetNumberAsFloat (_gbag .MissingWidth );_cddg ==nil {_gbag ._bdfag =_bdbc ;};};if _gbag .FontFile !=nil {_cecg ,_caad :=_bagff (_gbag .FontFile );if _caad !=nil {return _gbag ,_caad ;};_dbe .Log .Trace ("f\u006f\u006e\u0074\u0046\u0069\u006c\u0065\u003d\u0025\u0073",_cecg );_gbag .fontFile =_cecg ;};if _gbag .FontFile2 !=nil {_aeda ,_bged :=_af .NewFontFile2FromPdfObject (_gbag .FontFile2 );if _bged !=nil {return _gbag ,_bged ;};_dbe .Log .Trace ("\u0066\u006f\u006et\u0046\u0069\u006c\u0065\u0032\u003d\u0025\u0073",_aeda .String ());_gbag ._eabdd =&_aeda ;};return _gbag ,nil ;};
// GetCharMetrics returns the character metrics for the specified character code. A bool flag is
// returned to indicate whether or not the entry was found in the glyph to charcode mapping.
// How it works:
// 1) Return a value the /Widths array (charWidths) if there is one.
// 2) If the font has the same name as a standard 14 font then return width=250.
// 3) Otherwise return no match and let the caller substitute a default.
func (_addec pdfFontSimple )GetCharMetrics (code _ccb .CharCode )(_af .CharMetrics ,bool ){if _cegbc ,_edcbf :=_addec ._cfgdd [code ];_edcbf {return _af .CharMetrics {Wx :_cegbc },true ;};if _af .IsStdFont (_af .StdFontName (_addec ._babff )){return _af .CharMetrics {Wx :250},true ;};return _af .CharMetrics {},false ;};func _baagg (_eaeb *fontCommon )*pdfFontType0 {return &pdfFontType0 {fontCommon :*_eaeb }};
// GetCharMetrics returns the char metrics for character code `code`.
func (_cfdc pdfCIDFontType2 )GetCharMetrics (code _ccb .CharCode )(_af .CharMetrics ,bool ){if _dfcf ,_bfac :=_cfdc ._faafd [code ];_bfac {return _af .CharMetrics {Wx :float64 (_dfcf )},true ;};_bddd :=rune (code );_fcdg ,_fcbe :=_cfdc ._fgga [_bddd ];if !_fcbe {_fcdg =int (_cfdc ._ffga );};return _af .CharMetrics {Wx :float64 (_fcdg )},true ;};
// 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 {_aagge ,_faaa :=NewStandard14Font (basefont );if _faaa !=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 _aagge ;};
// ToPdfObject implements interface PdfModel.
func (_eea *PdfActionLaunch )ToPdfObject ()_cb .PdfObject {_eea .PdfAction .ToPdfObject ();_afc :=_eea ._fc ;_afd :=_afc .PdfObject .(*_cb .PdfObjectDictionary );_afd .SetIfNotNil ("\u0053",_cb .MakeName (string (ActionTypeLaunch )));if _eea .F !=nil {_afd .Set ("\u0046",_eea .F .ToPdfObject ());};_afd .SetIfNotNil ("\u0057\u0069\u006e",_eea .Win );_afd .SetIfNotNil ("\u004d\u0061\u0063",_eea .Mac );_afd .SetIfNotNil ("\u0055\u006e\u0069\u0078",_eea .Unix );_afd .SetIfNotNil ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw",_eea .NewWindow );return _afc ;};
// GetNumComponents returns the number of color components (3 for RGB).
func (_fcc *PdfColorDeviceRGB )GetNumComponents ()int {return 3};func _gbfb (_fdbf []byte )(_ebec ,_fceg string ,_cegd error ){_dbe .Log .Trace ("g\u0065\u0074\u0041\u0053CI\u0049S\u0065\u0063\u0074\u0069\u006fn\u0073\u003a\u0020\u0025\u0064\u0020",len (_fdbf ));_gaceb :=_gfec .FindIndex (_fdbf );if _gaceb ==nil {_dbe .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 "","",_cb .ErrTypeError ;};_eeda :=_gaceb [1];_ceca :=_fe .Index (string (_fdbf [_eeda :]),_cggf );if _ceca < 0{_ebec =string (_fdbf [_eeda :]);return _ebec ,"",nil ;};_gcgb :=_eeda +_ceca ;_ebec =string (_fdbf [_eeda :_gcgb ]);_afdcc :=_gcgb ;_ceca =_fe .Index (string (_fdbf [_afdcc :]),_ebeg );if _ceca < 0{_dbe .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",_cegd );return "","",_cb .ErrTypeError ;};_afafc :=_afdcc +_ceca ;_fceg =string (_fdbf [_afdcc :_afafc ]);return _ebec ,_fceg ,nil ;};
// ToPdfObject returns the PDF representation of the colorspace.
func (_dfcdd *PdfPageResourcesColorspaces )ToPdfObject ()_cb .PdfObject {_gcagdc :=_cb .MakeDict ();for _ ,_caced :=range _dfcdd .Names {_gcagdc .Set (_cb .PdfObjectName (_caced ),_dfcdd .Colorspaces [_caced ].ToPdfObject ());};if _dfcdd ._degad !=nil {_dfcdd ._degad .PdfObject =_gcagdc ;return _dfcdd ._degad ;};return _gcagdc ;};
// SetContext sets the sub annotation (context).
func (_cagf *PdfAnnotation )SetContext (ctx PdfModel ){_cagf ._gea =ctx };
// NewPdfPageResourcesColorspaces returns a new PdfPageResourcesColorspaces object.
func NewPdfPageResourcesColorspaces ()*PdfPageResourcesColorspaces {_adccg :=&PdfPageResourcesColorspaces {};_adccg .Names =[]string {};_adccg .Colorspaces =map[string ]PdfColorspace {};_adccg ._degad =&_cb .PdfIndirectObject {};return _adccg ;};const (_dcag =0x00001;_bcba =0x00002;_cdgfg =0x00004;_facfa =0x00008;_decb =0x00020;_dadf =0x00040;_dcea =0x10000;_gcgag =0x20000;_gbgfb =0x40000;);
// NewPdfAnnotationWatermark returns a new watermark annotation.
func NewPdfAnnotationWatermark ()*PdfAnnotationWatermark {_gdb :=NewPdfAnnotation ();_dfg :=&PdfAnnotationWatermark {};_dfg .PdfAnnotation =_gdb ;_gdb .SetContext (_dfg );return _dfg ;};
// ToPdfObject implements interface PdfModel.
func (_bg *PdfActionGoToE )ToPdfObject ()_cb .PdfObject {_bg .PdfAction .ToPdfObject ();_edd :=_bg ._fc ;_fcd :=_edd .PdfObject .(*_cb .PdfObjectDictionary );_fcd .SetIfNotNil ("\u0053",_cb .MakeName (string (ActionTypeGoToE )));if _bg .F !=nil {_fcd .Set ("\u0046",_bg .F .ToPdfObject ());};_fcd .SetIfNotNil ("\u0044",_bg .D );_fcd .SetIfNotNil ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw",_bg .NewWindow );_fcd .SetIfNotNil ("\u0054",_bg .T );return _edd ;};func (_gdbge *PdfWriter )seekByName (_eebaag _cb .PdfObject ,_gdcad []string ,_egeb string )([]_cb .PdfObject ,error ){_dbe .Log .Trace ("\u0053\u0065\u0065\u006b\u0020\u0062\u0079\u0020\u006e\u0061\u006d\u0065.\u002e\u0020\u0025\u0054",_eebaag );var _eeffb []_cb .PdfObject ;if _afgee ,_deca :=_eebaag .(*_cb .PdfIndirectObject );_deca {return _gdbge .seekByName (_afgee .PdfObject ,_gdcad ,_egeb );};if _bfed ,_abacd :=_eebaag .(*_cb .PdfObjectStream );_abacd {return _gdbge .seekByName (_bfed .PdfObjectDictionary ,_gdcad ,_egeb );};if _cfded ,_abbac :=_eebaag .(*_cb .PdfObjectDictionary );_abbac {_dbe .Log .Trace ("\u0044\u0069\u0063\u0074");for _ ,_dgfbf :=range _cfded .Keys (){_cdde :=_cfded .Get (_dgfbf );if string (_dgfbf )==_egeb {_eeffb =append (_eeffb ,_cdde );};for _ ,_edag :=range _gdcad {if string (_dgfbf )==_edag {_dbe .Log .Trace ("\u0046\u006f\u006c\u006c\u006f\u0077\u0020\u006b\u0065\u0079\u0020\u0025\u0073",_edag );_fbedc ,_cecdf :=_gdbge .seekByName (_cdde ,_gdcad ,_egeb );if _cecdf !=nil {return _eeffb ,_cecdf ;};for _ ,_efaa :=range _fbedc {_eeffb =append (_eeffb ,_efaa );};break ;};};};return _eeffb ,nil ;};return _eeffb ,nil ;};
// SetContentStream sets the pattern cell's content stream.
func (_dbddf *PdfTilingPattern )SetContentStream (content []byte ,encoder _cb .StreamEncoder )error {_daadc ,_cdffe :=_dbddf ._gbdd .(*_cb .PdfObjectStream );if !_cdffe {_dbe .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",_dbddf ._gbdd );return _cb .ErrTypeError ;};if encoder ==nil {encoder =_cb .NewRawEncoder ();};_gceed :=_daadc .PdfObjectDictionary ;_efegg :=encoder .MakeStreamDict ();_gceed .Merge (_efegg );_cegbca ,_ceagg :=encoder .EncodeBytes (content );if _ceagg !=nil {return _ceagg ;};_gceed .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_cb .MakeInteger (int64 (len (_cegbca ))));_daadc .Stream =[]byte (_cegbca );return nil ;};
// IsEncrypted returns true if the PDF file is encrypted.
func (_acbc *PdfReader )IsEncrypted ()(bool ,error ){return _acbc ._gfecg .IsEncrypted ()};func _cbbbb (_agacg *_cb .PdfObjectDictionary )(*PdfShadingType2 ,error ){_edccd :=PdfShadingType2 {};_acdf :=_agacg .Get ("\u0043\u006f\u006f\u0072\u0064\u0073");if _acdf ==nil {_dbe .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 ;};_fgdga ,_ddefb :=_acdf .(*_cb .PdfObjectArray );if !_ddefb {_dbe .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",_acdf );return nil ,_bc .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};if _fgdga .Len ()!=4{_dbe .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",_fgdga .Len ());return nil ,_bc .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0061\u0074\u0074\u0072i\u0062\u0075\u0074\u0065");};_edccd .Coords =_fgdga ;if _ccfbe :=_agacg .Get ("\u0044\u006f\u006d\u0061\u0069\u006e");_ccfbe !=nil {_ccfbe =_cb .TraceToDirectObject (_ccfbe );_cdebb ,_ageef :=_ccfbe .(*_cb .PdfObjectArray );if !_ageef {_dbe .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",_ccfbe );return nil ,_bc .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_edccd .Domain =_cdebb ;};_acdf =_agacg .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");if _acdf ==nil {_dbe .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 ;};_edccd .Function =[]PdfFunction {};if _gbdgf ,_gdfe :=_acdf .(*_cb .PdfObjectArray );_gdfe {for _ ,_edgce :=range _gbdgf .Elements (){_effac ,_fdebae :=_abcgd (_edgce );if _fdebae !=nil {_dbe .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",_fdebae );return nil ,_fdebae ;};_edccd .Function =append (_edccd .Function ,_effac );};}else {_gacga ,_agdcc :=_abcgd (_acdf );if _agdcc !=nil {_dbe .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",_agdcc );return nil ,_agdcc ;};_edccd .Function =append (_edccd .Function ,_gacga );};if _aegfe :=_agacg .Get ("\u0045\u0078\u0074\u0065\u006e\u0064");_aegfe !=nil {_aegfe =_cb .TraceToDirectObject (_aegfe );_fgef ,_ggba :=_aegfe .(*_cb .PdfObjectArray );if !_ggba {_dbe .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",_aegfe );return nil ,_cb .ErrTypeError ;};if _fgef .Len ()!=2{_dbe .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",_fgef .Len ());return nil ,ErrInvalidAttribute ;};_edccd .Extend =_fgef ;};return &_edccd ,nil ;};func _aagcd (_bdfgg *_cb .PdfObjectDictionary )(*PdfShadingType7 ,error ){_bgggf :=PdfShadingType7 {};_gbgdb :=_bdfgg .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065");if _gbgdb ==nil {_dbe .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 ;};_baddfb ,_eaaf :=_gbgdb .(*_cb .PdfObjectInteger );if !_eaaf {_dbe .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",_gbgdb );return nil ,_cb .ErrTypeError ;};_bgggf .BitsPerCoordinate =_baddfb ;_gbgdb =_bdfgg .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074");if _gbgdb ==nil {_dbe .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 ;};_baddfb ,_eaaf =_gbgdb .(*_cb .PdfObjectInteger );if !_eaaf {_dbe .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",_gbgdb );return nil ,_cb .ErrTypeError ;};_bgggf .BitsPerComponent =_baddfb ;_gbgdb =_bdfgg .Get ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067");if _gbgdb ==nil {_dbe .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 ;};_baddfb ,_eaaf =_gbgdb .(*_cb .PdfObjectInteger );if !_eaaf {_dbe .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",_gbgdb );return nil ,_cb .ErrTypeError ;};_bgggf .BitsPerComponent =_baddfb ;_gbgdb =_bdfgg .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");if _gbgdb ==nil {_dbe .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 ;};_bagec ,_eaaf :=_gbgdb .(*_cb .PdfObjectArray );if !_eaaf {_dbe .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",_gbgdb );return nil ,_cb .ErrTypeError ;};_bgggf .Decode =_bagec ;if _edbff :=_bdfgg .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");_edbff !=nil {_bgggf .Function =[]PdfFunction {};if _gdgab ,_gbgca :=_edbff .(*_cb .PdfObjectArray );_gbgca {for _ ,_gaaf :=range _gdgab .Elements (){_cdacb ,_dgfd :=_abcgd (_gaaf );if _dgfd !=nil {_dbe .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",_dgfd );return nil ,_dgfd ;};_bgggf .Function =append (_bgggf .Function ,_cdacb );};}else {_acfaa ,_ddffd :=_abcgd (_edbff );if _ddffd !=nil {_dbe .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",_ddffd );return nil ,_ddffd ;};_bgggf .Function =append (_bgggf .Function ,_acfaa );};};return &_bgggf ,nil ;};
// PdfAnnotationCaret represents Caret annotations.
// (Section 12.5.6.11).
type PdfAnnotationCaret struct{*PdfAnnotation ;*PdfAnnotationMarkup ;RD _cb .PdfObject ;Sy _cb .PdfObject ;};
// PdfAnnotationUnderline represents Underline annotations.
// (Section 12.5.6.10).
type PdfAnnotationUnderline struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _cb .PdfObject ;};
// 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 (_bdbeb *PdfFont )CharcodesToStrings (charcodes []_ccb .CharCode )([]string ,int ,int ){_ffdf :=_bdbeb .baseFields ();_eggdf :=make ([]string ,0,len (charcodes ));_ggbd :=0;for _ ,_cgaag :=range charcodes {if _ffdf ._agag !=nil {if _adegf ,_gbab :=_ffdf ._agag .CharcodeToUnicode (_gb .CharCode (_cgaag ));_gbab {_eggdf =append (_eggdf ,_adegf );continue ;};};_dcab :=_bdbeb .Encoder ();if _dcab !=nil {if _cebcd ,_ddfbc :=_dcab .CharcodeToRune (_cgaag );_ddfbc {_eggdf =append (_eggdf ,string (_cebcd ));continue ;};};_dbe .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",_cgaag ,charcodes ,_ffdf .isCIDFont (),_bdbeb ,_dcab );_ggbd ++;_eggdf =append (_eggdf ,_gb .MissingCodeString );};if _ggbd !=0{_dbe .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 ),_ggbd ,_bdbeb );};return _eggdf ,len (_eggdf ),_ggbd ;};func (_fbbb *PdfReader )newPdfActionMovieFromDict (_gadb *_cb .PdfObjectDictionary )(*PdfActionMovie ,error ){return &PdfActionMovie {Annotation :_gadb .Get ("\u0041\u006e\u006e\u006f\u0074\u0061\u0074\u0069\u006f\u006e"),T :_gadb .Get ("\u0054"),Operation :_gadb .Get ("\u004fp\u0065\u0072\u0061\u0074\u0069\u006fn")},nil ;};
// G returns the value of the green component of the color.
func (_bbbe *PdfColorDeviceRGB )G ()float64 {return float64 (_bbbe [1])};
// 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 (_gedg *PdfPageResources )GetFontByName (keyName _cb .PdfObjectName )(_cb .PdfObject ,bool ){if _gedg .Font ==nil {return nil ,false ;};_cebfc ,_bgfge :=_cb .TraceToDirectObject (_gedg .Font ).(*_cb .PdfObjectDictionary );if !_bgfge {_dbe .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",_cb .TraceToDirectObject (_gedg .Font ));return nil ,false ;};if _gcagc :=_cebfc .Get (keyName );_gcagc !=nil {return _gcagc ,true ;};return nil ,false ;};func (_adeb *PdfColorspaceDeviceCMYK )String ()string {return "\u0044\u0065\u0076\u0069\u0063\u0065\u0043\u004d\u0059\u004b";};
// ColorFromFloats returns a new PdfColor based on the input slice of color
// components. The slice should contain a single element.
func (_aegb *PdfColorspaceSpecialIndexed )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=1{return nil ,_bc .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};N :=_aegb .Base .GetNumComponents ();_gdbbb :=int (vals [0])*N ;if _gdbbb < 0||(_gdbbb +N -1)>=len (_aegb ._ecbc ){return nil ,_bc .New ("\u006f\u0075\u0074\u0073\u0069\u0064\u0065\u0020\u0072\u0061\u006e\u0067\u0065");};_dbcd :=_aegb ._ecbc [_gdbbb :_gdbbb +N ];var _ddfg []float64 ;for _ ,_cabg :=range _dbcd {_ddfg =append (_ddfg ,float64 (_cabg )/255.0);};_dgfa ,_abfc :=_aegb .Base .ColorFromFloats (_ddfg );if _abfc !=nil {return nil ,_abfc ;};return _dgfa ,nil ;};
// ToOutlineTree returns a low level PdfOutlineTreeNode object, based on
// the current instance.
func (_bggba *Outline )ToOutlineTree ()*PdfOutlineTreeNode {return &_bggba .ToPdfOutline ().PdfOutlineTreeNode ;};
// ImageToRGB converts an image with samples in Separation CS to an image with samples specified in
// DeviceRGB CS.
func (_acaf *PdfColorspaceSpecialSeparation )ImageToRGB (img Image )(Image ,error ){_dfec :=_cf .NewReader (img .getBase ());_cdcb :=_ac .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),_acaf .AlternateSpace .GetNumComponents (),nil ,img ._ddffb ,nil );_fgde :=_cf .NewWriter (_cdcb );_egbaa :=_ag .Pow (2,float64 (img .BitsPerComponent ))-1;_dbe .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");_dbe .Log .Trace ("\u0054i\u006et\u0054\u0072\u0061\u006e\u0073f\u006f\u0072m\u003a\u0020\u0025\u002b\u0076",_acaf .TintTransform );_badd :=_acaf .AlternateSpace .DecodeArray ();var (_fbdf uint32 ;_eagb error ;);for {_fbdf ,_eagb =_dfec .ReadSample ();if _eagb ==_bb .EOF {break ;};if _eagb !=nil {return img ,_eagb ;};_efdc :=float64 (_fbdf )/_egbaa ;_cbgd ,_bgcgae :=_acaf .TintTransform .Evaluate ([]float64 {_efdc });if _bgcgae !=nil {return img ,_bgcgae ;};for _gfdec ,_eeeb :=range _cbgd {_gefe :=_ac .LinearInterpolate (_eeeb ,_badd [_gfdec *2],_badd [_gfdec *2+1],0,1);if _bgcgae =_fgde .WriteSample (uint32 (_gefe *_egbaa ));_bgcgae !=nil {return img ,_bgcgae ;};};};return _acaf .AlternateSpace .ImageToRGB (_ecdg (&_cdcb ));};
// 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 *_cb .PdfIndirectObject `json:"-"`;Page int64 `json:"page"`;Mode string `json:"mode"`;X float64 `json:"x"`;Y float64 `json:"y"`;Zoom float64 `json:"zoom"`;};
// IsShading specifies if the pattern is a shading pattern.
func (_abcbb *PdfPattern )IsShading ()bool {return _abcbb .PatternType ==2};
// PdfBorderEffect represents a PDF border effect.
type PdfBorderEffect struct{S *BorderEffect ;I *float64 ;};
// 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 ;_degad *_cb .PdfIndirectObject ;};func (_bccba *PdfAcroForm )fill (_gbebc FieldValueProvider ,_geeg FieldAppearanceGenerator )error {if _bccba ==nil {return nil ;};_bbgeg ,_cfca :=_gbebc .FieldValues ();if _cfca !=nil {return _cfca ;};for _ ,_bdfaee :=range _bccba .AllFields (){_afafg :=_bdfaee .PartialName ();_bcccf ,_bacaf :=_bbgeg [_afafg ];if !_bacaf {if _ecgfg ,_ecdad :=_bdfaee .FullName ();_ecdad ==nil {_bcccf ,_bacaf =_bbgeg [_ecgfg ];};};if !_bacaf {_dbe .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",_afafg );continue ;};if _dafcg :=_fdeag (_bdfaee ,_bcccf );_dafcg !=nil {return _dafcg ;};if _geeg ==nil {continue ;};for _ ,_ggfbc :=range _bdfaee .Annotations {_eeebb ,_fdgfa :=_geeg .GenerateAppearanceDict (_bccba ,_bdfaee ,_ggfbc );if _fdgfa !=nil {return _fdgfa ;};_ggfbc .AP =_eeebb ;_ggfbc .ToPdfObject ();};};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 (_beegd pdfCIDFontType2 )GetRuneMetrics (r rune )(_af .CharMetrics ,bool ){_faagf ,_ggaba :=_beegd ._fgga [r ];if !_ggaba {_dcccb ,_aacg :=_cb .GetInt (_beegd .DW );if !_aacg {return _af .CharMetrics {},false ;};_faagf =int (*_dcccb );};return _af .CharMetrics {Wx :float64 (_faagf )},true ;};
// FieldValueProvider provides field values from a data source such as FDF, JSON or any other.
type FieldValueProvider interface{FieldValues ()(map[string ]_cb .PdfObject ,error );};
// 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 (_adcd *PdfFieldButton )GetType ()ButtonType {_gfad :=ButtonTypeCheckbox ;if _adcd .Ff !=nil {if (uint32 (*_adcd .Ff )&FieldFlagPushbutton .Mask ())> 0{_gfad =ButtonTypePush ;}else if (uint32 (*_adcd .Ff )&FieldFlagRadio .Mask ())> 0{_gfad =ButtonTypeRadio ;};};return _gfad ;};
// 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 ;
// String returns a human readable description of `fontfile`.
func (_aabea *fontFile )String ()string {_cadec :="\u005b\u004e\u006f\u006e\u0065\u005d";if _aabea ._fefc !=nil {_cadec =_aabea ._fefc .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",_aabea ._abcae ,_cadec );};
// ColorFromFloats returns a new PdfColor based on the input slice of color
// components. The slice should contain a single element.
func (_afegd *PdfColorspaceSpecialSeparation )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=1{return nil ,_bc .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_eabbb :=vals [0];_cacf :=[]float64 {_eabbb };_cdede ,_ebfg :=_afegd .TintTransform .Evaluate (_cacf );if _ebfg !=nil {_dbe .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",_ebfg );_dbe .Log .Trace ("\u0054\u0069\u006e\u0074 t\u0072\u0061\u006e\u0073\u0066\u006f\u0072\u006d\u003a\u0020\u0025\u002b\u0076",_afegd .TintTransform );return nil ,_ebfg ;};_dbe .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",_cdede ,_afegd .AlternateSpace );_cdff ,_ebfg :=_afegd .AlternateSpace .ColorFromFloats (_cdede );if _ebfg !=nil {_dbe .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",_ebfg );return nil ,_ebfg ;};return _cdff ,nil ;};func (_badfe *Image )resampleLowBits (_dfcb []uint32 ){_aeccf :=_ac .BytesPerLine (int (_badfe .Width ),int (_badfe .BitsPerComponent ),_badfe .ColorComponents );_feea :=make ([]byte ,_badfe .ColorComponents *_aeccf *int (_badfe .Height ));_ccec :=int (_badfe .BitsPerComponent )*_badfe .ColorComponents *int (_badfe .Width );_afagg :=uint8 (8);var (_ggfgd ,_abcef int ;_feaff uint32 ;);for _daefa :=0;_daefa < int (_badfe .Height );_daefa ++{_abcef =_daefa *_aeccf ;for _fbcec :=0;_fbcec < _ccec ;_fbcec ++{_feaff =_dfcb [_ggfgd ];_afagg -=uint8 (_badfe .BitsPerComponent );_feea [_abcef ]|=byte (_feaff )<<_afagg ;if _afagg ==0{_afagg =8;_abcef ++;};_ggfgd ++;};};_badfe .Data =_feea ;};
// PdfRectangle is a definition of a rectangle.
type PdfRectangle struct{Llx float64 ;Lly float64 ;Urx float64 ;Ury float64 ;};func (_ecc *PdfReader )newPdfActionSubmitFormFromDict (_gfa *_cb .PdfObjectDictionary )(*PdfActionSubmitForm ,error ){_gaef ,_cfda :=_bgcc (_gfa .Get ("\u0046"));if _cfda !=nil {return nil ,_cfda ;};return &PdfActionSubmitForm {F :_gaef ,Fields :_gfa .Get ("\u0046\u0069\u0065\u006c\u0064\u0073"),Flags :_gfa .Get ("\u0046\u006c\u0061g\u0073")},nil ;};func (_bgeb *PdfReader )newPdfAnnotationFreeTextFromDict (_fabe *_cb .PdfObjectDictionary )(*PdfAnnotationFreeText ,error ){_adeg :=PdfAnnotationFreeText {};_dbec ,_dgd :=_bgeb .newPdfAnnotationMarkupFromDict (_fabe );if _dgd !=nil {return nil ,_dgd ;};_adeg .PdfAnnotationMarkup =_dbec ;_adeg .DA =_fabe .Get ("\u0044\u0041");_adeg .Q =_fabe .Get ("\u0051");_adeg .RC =_fabe .Get ("\u0052\u0043");_adeg .DS =_fabe .Get ("\u0044\u0053");_adeg .CL =_fabe .Get ("\u0043\u004c");_adeg .IT =_fabe .Get ("\u0049\u0054");_adeg .BE =_fabe .Get ("\u0042\u0045");_adeg .RD =_fabe .Get ("\u0052\u0044");_adeg .BS =_fabe .Get ("\u0042\u0053");_adeg .LE =_fabe .Get ("\u004c\u0045");return &_adeg ,nil ;};
// WriteToFile writes the Appender output to file specified by path.
func (_badf *PdfAppender )WriteToFile (outputPath string )error {_cfbd ,_gcee :=_ce .Create (outputPath );if _gcee !=nil {return _gcee ;};defer _cfbd .Close ();return _badf .Write (_cfbd );};var _ pdfFont =(*pdfCIDFontType2 )(nil );func (_afbac *pdfCIDFontType2 )getFontDescriptor ()*PdfFontDescriptor {return _afbac ._bgbb };
// 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 (_abdb *PdfFont )CharcodesToUnicodeWithStats (charcodes []_ccb .CharCode )(_gedb []rune ,_bace ,_bbccd int ){_edbb ,_bace ,_bbccd :=_abdb .CharcodesToStrings (charcodes );return []rune (_fe .Join (_edbb ,"")),_bace ,_bbccd ;};
// ImageToRGB converts an image in CMYK32 colorspace to an RGB image.
func (_gbgbb *PdfColorspaceDeviceCMYK )ImageToRGB (img Image )(Image ,error ){_dbe .Log .Trace ("\u0043\u004d\u0059\u004b\u0033\u0032\u0020\u002d\u003e\u0020\u0052\u0047\u0042");_dbe .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 );_dbe .Log .Trace ("\u004c\u0065\u006e \u0064\u0061\u0074\u0061\u003a\u0020\u0025\u0064",len (img .Data ));_dbe .Log .Trace ("H\u0065\u0069\u0067\u0068t:\u0020%\u0064\u002c\u0020\u0057\u0069d\u0074\u0068\u003a\u0020\u0025\u0064",img .Height ,img .Width );_gabe ,_gcgfg :=_ac .NewImage (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),img .ColorComponents ,img .Data ,img ._ddffb ,img ._cceeg );if _gcgfg !=nil {return Image {},_gcgfg ;};_bdad ,_gcgfg :=_ac .NRGBAConverter .Convert (_gabe );if _gcgfg !=nil {return Image {},_gcgfg ;};return _ecdg (_bdad .Base ()),nil ;};
// GetContainingPdfObject returns the container of the outline item (indirect object).
func (_agccd *PdfOutlineItem )GetContainingPdfObject ()_cb .PdfObject {return _agccd ._gaga };
// ToPdfObject implements interface PdfModel.
func (_acca *PdfAnnotationSquiggly )ToPdfObject ()_cb .PdfObject {_acca .PdfAnnotation .ToPdfObject ();_bgbf :=_acca ._efd ;_gcff :=_bgbf .PdfObject .(*_cb .PdfObjectDictionary );_acca .PdfAnnotationMarkup .appendToPdfDictionary (_gcff );_gcff .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_cb .MakeName ("\u0053\u0071\u0075\u0069\u0067\u0067\u006c\u0079"));_gcff .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_acca .QuadPoints );return _bgbf ;};
// BorderEffect represents a border effect (Table 167 p. 395).
type BorderEffect int ;func _defcb (_dcced *_cb .PdfObjectStream )(*PdfFunctionType0 ,error ){_dagcb :=&PdfFunctionType0 {};_dagcb ._dgaa =_dcced ;_fgab :=_dcced .PdfObjectDictionary ;_aadd ,_fbaca :=_cb .TraceToDirectObject (_fgab .Get ("\u0044\u006f\u006d\u0061\u0069\u006e")).(*_cb .PdfObjectArray );if !_fbaca {_dbe .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_bc .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 _aadd .Len ()< 0||_aadd .Len ()%2!=0{_dbe .Log .Error ("\u0044\u006f\u006d\u0061\u0069\u006e\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");return nil ,_bc .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0064\u006f\u006da\u0069\u006e\u0020\u0072an\u0067\u0065");};_dagcb .NumInputs =_aadd .Len ()/2;_dgedf ,_degbf :=_aadd .ToFloat64Array ();if _degbf !=nil {return nil ,_degbf ;};_dagcb .Domain =_dgedf ;_aadd ,_fbaca =_cb .TraceToDirectObject (_fgab .Get ("\u0052\u0061\u006eg\u0065")).(*_cb .PdfObjectArray );if !_fbaca {_dbe .Log .Error ("\u0052\u0061\u006e\u0067e \u006e\u006f\u0074\u0020\u0073\u0070\u0065\u0063\u0069\u0066\u0069\u0065\u0064");return nil ,_bc .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 _aadd .Len ()< 0||_aadd .Len ()%2!=0{return nil ,_bc .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0061\u006e\u0067\u0065");};_dagcb .NumOutputs =_aadd .Len ()/2;_ccede ,_degbf :=_aadd .ToFloat64Array ();if _degbf !=nil {return nil ,_degbf ;};_dagcb .Range =_ccede ;_aadd ,_fbaca =_cb .TraceToDirectObject (_fgab .Get ("\u0053\u0069\u007a\u0065")).(*_cb .PdfObjectArray );if !_fbaca {_dbe .Log .Error ("\u0053i\u007ae\u0020\u006e\u006f\u0074\u0020s\u0070\u0065c\u0069\u0066\u0069\u0065\u0064");return nil ,_bc .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");};_daca ,_degbf :=_aadd .ToIntegerArray ();if _degbf !=nil {return nil ,_degbf ;};if len (_daca )!=_dagcb .NumInputs {_dbe .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 ,_bc .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_dagcb .Size =_daca ;_bfca ,_fbaca :=_cb .TraceToDirectObject (_fgab .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0053\u0061\u006d\u0070\u006c\u0065")).(*_cb .PdfObjectInteger );if !_fbaca {_dbe .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 ,_bc .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 *_bfca !=1&&*_bfca !=2&&*_bfca !=4&&*_bfca !=8&&*_bfca !=12&&*_bfca !=16&&*_bfca !=24&&*_bfca !=32{_dbe .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",*_bfca );return nil ,_bc .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_dagcb .BitsPerSample =int (*_bfca );_dagcb .Order =1;_gabdd ,_fbaca :=_cb .TraceToDirectObject (_fgab .Get ("\u004f\u0072\u0064e\u0072")).(*_cb .PdfObjectInteger );if _fbaca {if *_gabdd !=1&&*_gabdd !=3{_dbe .Log .Error ("\u0049n\u0076a\u006c\u0069\u0064\u0020\u006fr\u0064\u0065r\u0020\u0028\u0025\u0064\u0029",*_gabdd );return nil ,_bc .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_dagcb .Order =int (*_gabdd );};_aadd ,_fbaca =_cb .TraceToDirectObject (_fgab .Get ("\u0045\u006e\u0063\u006f\u0064\u0065")).(*_cb .PdfObjectArray );if _fbaca {_ccgg ,_ggee :=_aadd .ToFloat64Array ();if _ggee !=nil {return nil ,_ggee ;};_dagcb .Encode =_ccgg ;};_aadd ,_fbaca =_cb .TraceToDirectObject (_fgab .Get ("\u0044\u0065\u0063\u006f\u0064\u0065")).(*_cb .PdfObjectArray );if _fbaca {_gfdba ,_fgff :=_aadd .ToFloat64Array ();if _fgff !=nil {return nil ,_fgff ;};_dagcb .Decode =_gfdba ;};_aegf ,_degbf :=_cb .DecodeStream (_dcced );if _degbf !=nil {return nil ,_degbf ;};_dagcb ._gfdce =_aegf ;return _dagcb ,nil ;};func (_aeeg *PdfColorspaceICCBased )String ()string {return "\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064";};
// PdfActionNamed represents a named action.
type PdfActionNamed struct{*PdfAction ;N _cb .PdfObject ;};func (_bdb *PdfColorspaceCalRGB )String ()string {return "\u0043\u0061\u006c\u0052\u0047\u0042"};
// NewPdfColorDeviceGray returns a new grayscale color based on an input grayscale float value in range [0-1].
func NewPdfColorDeviceGray (grayVal float64 )*PdfColorDeviceGray {_cbfg :=PdfColorDeviceGray (grayVal );return &_cbfg ;};func (_dfae *PdfColorspaceSpecialPattern )String ()string {return "\u0050a\u0074\u0074\u0065\u0072\u006e";};
// SetPdfProducer sets the Producer attribute of the output PDF.
func SetPdfProducer (producer string ){_cgafc =producer };
// IsCID returns true if the underlying font is CID.
func (_ddggf *PdfFont )IsCID ()bool {return _ddggf .baseFields ().isCIDFont ()};var _ pdfFont =(*pdfFontType0 )(nil );
// GetNumComponents returns the number of color components of the colorspace device.
// Returns 3 for an RGB device.
func (_cbcc *PdfColorspaceDeviceRGB )GetNumComponents ()int {return 3};func (_bccf *PdfReader )newPdfActionSoundFromDict (_gdee *_cb .PdfObjectDictionary )(*PdfActionSound ,error ){return &PdfActionSound {Sound :_gdee .Get ("\u0053\u006f\u0075n\u0064"),Volume :_gdee .Get ("\u0056\u006f\u006c\u0075\u006d\u0065"),Synchronous :_gdee .Get ("S\u0079\u006e\u0063\u0068\u0072\u006f\u006e\u006f\u0075\u0073"),Repeat :_gdee .Get ("\u0052\u0065\u0070\u0065\u0061\u0074"),Mix :_gdee .Get ("\u004d\u0069\u0078")},nil ;};
// GetAlphabet returns a map of the runes in `text` and their frequencies.
func GetAlphabet (text string )map[rune ]int {_dageaf :=map[rune ]int {};for _ ,_gbac :=range text {_dageaf [_gbac ]++;};return _dageaf ;};
// NewPdfSignature creates a new PdfSignature object.
func NewPdfSignature (handler SignatureHandler )*PdfSignature {_fedcd :=&PdfSignature {Type :_cb .MakeName ("\u0053\u0069\u0067"),Handler :handler };_befgb :=&pdfSignDictionary {PdfObjectDictionary :_cb .MakeDict (),_adcfc :&handler ,_bdfbd :_fedcd };_fedcd ._afcda =_cb .MakeIndirectObject (_befgb );return _fedcd ;};func (_becc *PdfReader )newPdfAnnotationRedactFromDict (_aage *_cb .PdfObjectDictionary )(*PdfAnnotationRedact ,error ){_efbb :=PdfAnnotationRedact {};_afce ,_acc :=_becc .newPdfAnnotationMarkupFromDict (_aage );if _acc !=nil {return nil ,_acc ;};_efbb .PdfAnnotationMarkup =_afce ;_efbb .QuadPoints =_aage .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");_efbb .IC =_aage .Get ("\u0049\u0043");_efbb .RO =_aage .Get ("\u0052\u004f");_efbb .OverlayText =_aage .Get ("O\u0076\u0065\u0072\u006c\u0061\u0079\u0054\u0065\u0078\u0074");_efbb .Repeat =_aage .Get ("\u0052\u0065\u0070\u0065\u0061\u0074");_efbb .DA =_aage .Get ("\u0044\u0041");_efbb .Q =_aage .Get ("\u0051");return &_efbb ,nil ;};
// NewPdfActionGoTo returns a new "go to" action.
func NewPdfActionGoTo ()*PdfActionGoTo {_bbg :=NewPdfAction ();_fb :=&PdfActionGoTo {};_fb .PdfAction =_bbg ;_bbg .SetContext (_fb );return _fb ;};
// 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 (_fbgf *PdfFieldButton )SetType (btype ButtonType ){_gbd :=uint32 (0);if _fbgf .Ff !=nil {_gbd =uint32 (*_fbgf .Ff );};switch btype {case ButtonTypePush :_gbd |=FieldFlagPushbutton .Mask ();case ButtonTypeRadio :_gbd |=FieldFlagRadio .Mask ();};_fbgf .Ff =_cb .MakeInteger (int64 (_gbd ));};func (_fdb *PdfReader )newPdfActionThreadFromDict (_daga *_cb .PdfObjectDictionary )(*PdfActionThread ,error ){_deg ,_gedc :=_bgcc (_daga .Get ("\u0046"));if _gedc !=nil {return nil ,_gedc ;};return &PdfActionThread {D :_daga .Get ("\u0044"),B :_daga .Get ("\u0042"),F :_deg },nil ;};
// SetShadingByName sets a shading resource specified by keyName.
func (_ccded *PdfPageResources )SetShadingByName (keyName _cb .PdfObjectName ,shadingObj _cb .PdfObject )error {if _ccded .Shading ==nil {_ccded .Shading =_cb .MakeDict ();};_cfff ,_faeecf :=_ccded .Shading .(*_cb .PdfObjectDictionary );if !_faeecf {return _cb .ErrTypeError ;};_cfff .Set (keyName ,shadingObj );return nil ;};
// GetCharMetrics returns the char metrics for character code `code`.
// How it works:
// 1) It calls the GetCharMetrics function for the underlying font, either a simple font or
// a Type0 font. The underlying font GetCharMetrics() functions do direct charcode ➞ metrics
// mappings.
// 2) If the underlying font's GetCharMetrics() doesn't have a CharMetrics for `code` then a
// a CharMetrics with the FontDescriptor's /MissingWidth is returned.
// 3) If there is no /MissingWidth then a failure is returned.
// TODO(peterwilliams97) There is nothing callers can do if no CharMetrics are found so we might as
// well give them 0 width. There is no need for the bool return.
// TODO(gunnsth): Reconsider whether needed or if can map via GlyphName.
func (_fdfbg *PdfFont )GetCharMetrics (code _ccb .CharCode )(CharMetrics ,bool ){var _afdfd _af .CharMetrics ;switch _ddad :=_fdfbg ._cdfe .(type ){case *pdfFontSimple :if _adbce ,_acbe :=_ddad .GetCharMetrics (code );_acbe {return _adbce ,_acbe ;};case *pdfFontType0 :if _bdfb ,_fgaee :=_ddad .GetCharMetrics (code );_fgaee {return _bdfb ,_fgaee ;};case *pdfCIDFontType0 :if _fdbede ,_dggg :=_ddad .GetCharMetrics (code );_dggg {return _fdbede ,_dggg ;};case *pdfCIDFontType2 :if _bfggf ,_ddegcf :=_ddad .GetCharMetrics (code );_ddegcf {return _bfggf ,_ddegcf ;};default:_dbe .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",_fdfbg ._cdfe );return _afdfd ,false ;};if _abdbe ,_cagdg :=_fdfbg .GetFontDescriptor ();_cagdg ==nil &&_abdbe !=nil {return _af .CharMetrics {Wx :_abdbe ._bdfag },true ;};_dbe .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",_fdfbg );return _afdfd ,false ;};func _bdga (_bgccd _cb .PdfObject )(*PdfBorderStyle ,error ){_acad :=&PdfBorderStyle {};_acad ._cbcbf =_bgccd ;var _gfdb *_cb .PdfObjectDictionary ;_bgccd =_cb .TraceToDirectObject (_bgccd );_gfdb ,_fdgf :=_bgccd .(*_cb .PdfObjectDictionary );if !_fdgf {return nil ,_bc .New ("\u0074\u0079\u0070\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};if _gdbc :=_gfdb .Get ("\u0054\u0079\u0070\u0065");_gdbc !=nil {_fefb ,_aae :=_gdbc .(*_cb .PdfObjectName );if !_aae {_dbe .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",_gdbc );}else {if *_fefb !="\u0042\u006f\u0072\u0064\u0065\u0072"{_dbe .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",*_fefb );};};};if _edgf :=_gfdb .Get ("\u0057");_edgf !=nil {_cdec ,_afda :=_cb .GetNumberAsFloat (_edgf );if _afda !=nil {_dbe .Log .Debug ("\u0045\u0072\u0072\u006fr \u0072\u0065\u0074\u0072\u0069\u0065\u0076\u0069\u006e\u0067\u0020\u0057\u003a\u0020%\u0076",_afda );return nil ,_afda ;};_acad .W =&_cdec ;};if _ceaf :=_gfdb .Get ("\u0053");_ceaf !=nil {_abf ,_fba :=_ceaf .(*_cb .PdfObjectName );if !_fba {return nil ,_bc .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 _bfdc BorderStyle ;switch *_abf {case "\u0053":_bfdc =BorderStyleSolid ;case "\u0044":_bfdc =BorderStyleDashed ;case "\u0042":_bfdc =BorderStyleBeveled ;case "\u0049":_bfdc =BorderStyleInset ;case "\u0055":_bfdc =BorderStyleUnderline ;default:_dbe .Log .Debug ("I\u006e\u0076\u0061\u006cid\u0020s\u0074\u0079\u006c\u0065\u0020n\u0061\u006d\u0065\u0020\u0025\u0073",*_abf );return nil ,_bc .New ("\u0073\u0074\u0079\u006ce \u0074\u0079\u0070\u0065\u0020\u0072\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065c\u006b");};_acad .S =&_bfdc ;};if _dbefd :=_gfdb .Get ("\u0044");_dbefd !=nil {_dafae ,_fcbc :=_dbefd .(*_cb .PdfObjectArray );if !_fcbc {_dbe .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",_dbefd );return nil ,_bc .New ("\u0062o\u0072\u0064\u0065\u0072 \u0044\u0020\u0074\u0079\u0070e\u0020c\u0068e\u0063\u006b\u0020\u0065\u0072\u0072\u006fr");};_aaef ,_fbbe :=_dafae .ToIntegerArray ();if _fbbe !=nil {_dbe .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",_fbbe );return nil ,_fbbe ;};_acad .D =&_aaef ;};return _acad ,nil ;};
// AddContentStreamByString adds content stream by string. Puts the content
// string into a stream object and points the content stream towards it.
func (_cfbf *PdfPage )AddContentStreamByString (contentStr string )error {_bedfc ,_acfb :=_cb .MakeStream ([]byte (contentStr ),_cb .NewFlateEncoder ());if _acfb !=nil {return _acfb ;};if _cfbf .Contents ==nil {_cfbf .Contents =_bedfc ;}else {_acgdb :=_cb .TraceToDirectObject (_cfbf .Contents );_cebec ,_ffdfe :=_acgdb .(*_cb .PdfObjectArray );if !_ffdfe {_cebec =_cb .MakeArray (_acgdb );};_cebec .Append (_bedfc );_cfbf .Contents =_cebec ;};return nil ;};
// NewImageFromGoImage creates a new NRGBA32 unidoc Image from a golang Image.
// If `goimg` is grayscale (*goimage.Gray8) then calls NewGrayImageFromGoImage instead.
func (_bbbeg DefaultImageHandler )NewImageFromGoImage (goimg _ca .Image )(*Image ,error ){_gbadd ,_afcb :=_ac .FromGoImage (goimg );if _afcb !=nil {return nil ,_afcb ;};_eafgb :=_ecdg (_gbadd .Base ());return &_eafgb ,nil ;};
// NewPdfAnnotationFileAttachment returns a new file attachment annotation.
func NewPdfAnnotationFileAttachment ()*PdfAnnotationFileAttachment {_dged :=NewPdfAnnotation ();_ddg :=&PdfAnnotationFileAttachment {};_ddg .PdfAnnotation =_dged ;_ddg .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_dged .SetContext (_ddg );return _ddg ;};
// 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 *_cb .PdfObjectArray ;AlternateSpace PdfColorspace ;TintTransform PdfFunction ;Attributes *PdfColorspaceDeviceNAttributes ;_eggd *_cb .PdfIndirectObject ;};
// ToPdfObject converts PdfAcroForm to a PdfObject, i.e. an indirect object containing the
// AcroForm dictionary.
func (_fdbgc *PdfAcroForm )ToPdfObject ()_cb .PdfObject {_dffbb :=_fdbgc ._dfgeb ;_efcbf :=_dffbb .PdfObject .(*_cb .PdfObjectDictionary );if _fdbgc .Fields !=nil {_ebgb :=_cb .PdfObjectArray {};for _ ,_eddg :=range *_fdbgc .Fields {_fbae :=_eddg .GetContext ();if _fbae !=nil {_ebgb .Append (_fbae .ToPdfObject ());}else {_ebgb .Append (_eddg .ToPdfObject ());};};_efcbf .Set ("\u0046\u0069\u0065\u006c\u0064\u0073",&_ebgb );};if _fdbgc .NeedAppearances !=nil {_efcbf .Set ("\u004ee\u0065d\u0041\u0070\u0070\u0065\u0061\u0072\u0061\u006e\u0063\u0065\u0073",_fdbgc .NeedAppearances );};if _fdbgc .SigFlags !=nil {_efcbf .Set ("\u0053\u0069\u0067\u0046\u006c\u0061\u0067\u0073",_fdbgc .SigFlags );};if _fdbgc .CO !=nil {_efcbf .Set ("\u0043\u004f",_fdbgc .CO );};if _fdbgc .DR !=nil {_efcbf .Set ("\u0044\u0052",_fdbgc .DR .ToPdfObject ());};if _fdbgc .DA !=nil {_efcbf .Set ("\u0044\u0041",_fdbgc .DA );};if _fdbgc .Q !=nil {_efcbf .Set ("\u0051",_fdbgc .Q );};if _fdbgc .XFA !=nil {_efcbf .Set ("\u0058\u0046\u0041",_fdbgc .XFA );};return _dffbb ;};
// PageFromIndirectObject returns the PdfPage and page number for a given indirect object.
func (_egda *PdfReader )PageFromIndirectObject (ind *_cb .PdfIndirectObject )(*PdfPage ,int ,error ){if len (_egda .PageList )!=len (_egda ._dfcdb ){return nil ,0,_bc .New ("\u0070\u0061\u0067\u0065\u0020\u006c\u0069\u0073\u0074\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");};for _bdffd ,_bcfg :=range _egda ._dfcdb {if _bcfg ==ind {return _egda .PageList [_bdffd ],_bdffd +1,nil ;};};return nil ,0,_bc .New ("\u0070\u0061\u0067\u0065\u0020\u006e\u006f\u0074\u0020f\u006f\u0075\u006e\u0064");};func _bgbfg (_babe _cb .PdfObject )(*PdfColorspaceDeviceN ,error ){_ecda :=NewPdfColorspaceDeviceN ();if _caabe ,_eeefg :=_babe .(*_cb .PdfIndirectObject );_eeefg {_ecda ._eggd =_caabe ;};_babe =_cb .TraceToDirectObject (_babe );_bbfec ,_ffaag :=_babe .(*_cb .PdfObjectArray );if !_ffaag {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 _bbfec .Len ()!=4&&_bbfec .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");};_babe =_bbfec .Get (0);_bbgg ,_ffaag :=_babe .(*_cb .PdfObjectName );if !_ffaag {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 *_bbgg !="\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");};_babe =_bbfec .Get (1);_babe =_cb .TraceToDirectObject (_babe );_aefd ,_ffaag :=_babe .(*_cb .PdfObjectArray );if !_ffaag {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");};_ecda .ColorantNames =_aefd ;_babe =_bbfec .Get (2);_aeaf ,_gbaa :=NewPdfColorspaceFromPdfObject (_babe );if _gbaa !=nil {return nil ,_gbaa ;};_ecda .AlternateSpace =_aeaf ;_fegg ,_gbaa :=_abcgd (_bbfec .Get (3));if _gbaa !=nil {return nil ,_gbaa ;};_ecda .TintTransform =_fegg ;if _bbfec .Len ()==5{_adce ,_fafb :=_gaeg (_bbfec .Get (4));if _fafb !=nil {return nil ,_fafb ;};_ecda .Attributes =_adce ;};return _ecda ,nil ;};
// PdfAnnotationMovie represents Movie annotations.
// (Section 12.5.6.17).
type PdfAnnotationMovie struct{*PdfAnnotation ;T _cb .PdfObject ;Movie _cb .PdfObject ;A _cb .PdfObject ;};
// GetAsTilingPattern returns a tiling pattern. Check with IsTiling() prior to using this.
func (_cabcg *PdfPattern )GetAsTilingPattern ()*PdfTilingPattern {return _cabcg ._eadd .(*PdfTilingPattern );};
// GetContext returns a reference to the subshading entry as represented by PdfShadingType1-7.
func (_cggdc *PdfShading )GetContext ()PdfModel {return _cggdc ._cdece };
// NewPdfAnnotationHighlight returns a new text highlight annotation.
func NewPdfAnnotationHighlight ()*PdfAnnotationHighlight {_bbgf :=NewPdfAnnotation ();_aggf :=&PdfAnnotationHighlight {};_aggf .PdfAnnotation =_bbgf ;_aggf .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_bbgf .SetContext (_aggf );return _aggf ;};
// ToPdfObject returns the PDF representation of the function.
func (_abcab *PdfFunctionType2 )ToPdfObject ()_cb .PdfObject {_acgfa :=_cb .MakeDict ();_acgfa .Set ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065",_cb .MakeInteger (2));_eaefb :=&_cb .PdfObjectArray {};for _ ,_egce :=range _abcab .Domain {_eaefb .Append (_cb .MakeFloat (_egce ));};_acgfa .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_eaefb );if _abcab .Range !=nil {_eaadee :=&_cb .PdfObjectArray {};for _ ,_agbbg :=range _abcab .Range {_eaadee .Append (_cb .MakeFloat (_agbbg ));};_acgfa .Set ("\u0052\u0061\u006eg\u0065",_eaadee );};if _abcab .C0 !=nil {_egefg :=&_cb .PdfObjectArray {};for _ ,_cacae :=range _abcab .C0 {_egefg .Append (_cb .MakeFloat (_cacae ));};_acgfa .Set ("\u0043\u0030",_egefg );};if _abcab .C1 !=nil {_cedaa :=&_cb .PdfObjectArray {};for _ ,_afcega :=range _abcab .C1 {_cedaa .Append (_cb .MakeFloat (_afcega ));};_acgfa .Set ("\u0043\u0031",_cedaa );};_acgfa .Set ("\u004e",_cb .MakeFloat (_abcab .N ));if _abcab ._gaadd !=nil {_abcab ._gaadd .PdfObject =_acgfa ;return _abcab ._gaadd ;};return _acgfa ;};
// ToPdfObject converts the PdfFont object to its PDF representation.
func (_accga *PdfFont )ToPdfObject ()_cb .PdfObject {if _accga ._cdfe ==nil {_dbe .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 _cb .MakeNull ();};return _accga ._cdfe .ToPdfObject ();};
// ToInteger convert to an integer format.
func (_eedb *PdfColorLab )ToInteger (bits int )[3]uint32 {_aebb :=_ag .Pow (2,float64 (bits ))-1;return [3]uint32 {uint32 (_aebb *_eedb .L ()),uint32 (_aebb *_eedb .A ()),uint32 (_aebb *_eedb .B ())};};
// GetContainingPdfObject returns the container of the outline tree node (indirect object).
func (_gbfgc *PdfOutlineTreeNode )GetContainingPdfObject ()_cb .PdfObject {return _gbfgc .GetContext ().GetContainingPdfObject ();};var _ pdfFont =(*pdfCIDFontType0 )(nil );
// NewPdfReader returns a new PdfReader for an input io.ReadSeeker interface. Can be used to read PDF from
// memory or file. Immediately loads and traverses the PDF structure including pages and page contents (if
// not encrypted). Loads entire document structure into memory.
// Alternatively a lazy-loading reader can be created with NewPdfReaderLazy which loads only references,
// and references are loaded from disk into memory on an as-needed basis.
func NewPdfReader (rs _bb .ReadSeeker )(*PdfReader ,error ){_aaggb :=&PdfReader {_cgba :rs ,_fage :map[_cb .PdfObject ]struct{}{},_bffa :_ccdg (),_cbfab :false };_febf ,_fbabd :=_cb .NewParser (rs );if _fbabd !=nil {return nil ,_fbabd ;};_aaggb ._gfecg =_febf ;_agdfc ,_fbabd :=_aaggb .IsEncrypted ();if _fbabd !=nil {return nil ,_fbabd ;};if !_agdfc {_fbabd =_aaggb .loadStructure ();if _fbabd !=nil {return nil ,_fbabd ;};};return _aaggb ,nil ;};
// AddImageResource adds an image to the XObject resources.
func (_ebeca *PdfPage )AddImageResource (name _cb .PdfObjectName ,ximg *XObjectImage )error {var _eeceg *_cb .PdfObjectDictionary ;if _ebeca .Resources .XObject ==nil {_eeceg =_cb .MakeDict ();_ebeca .Resources .XObject =_eeceg ;}else {var _debgf bool ;_eeceg ,_debgf =(_ebeca .Resources .XObject ).(*_cb .PdfObjectDictionary );if !_debgf {return _bc .New ("\u0069\u006e\u0076\u0061li\u0064\u0020\u0078\u0072\u0065\u0073\u0020\u0064\u0069\u0063\u0074\u0020\u0074\u0079p\u0065");};};_eeceg .Set (name ,ximg .ToPdfObject ());return nil ;};func (_cbf *PdfReader )newPdfAnnotationLinkFromDict (_dbf *_cb .PdfObjectDictionary )(*PdfAnnotationLink ,error ){_eca :=PdfAnnotationLink {};_eca .A =_dbf .Get ("\u0041");_eca .Dest =_dbf .Get ("\u0044\u0065\u0073\u0074");_eca .H =_dbf .Get ("\u0048");_eca .PA =_dbf .Get ("\u0050\u0041");_eca .QuadPoints =_dbf .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");_eca .BS =_dbf .Get ("\u0042\u0053");return &_eca ,nil ;};
// GetNumComponents returns the number of color components of the colorspace device.
// Returns 3 for a CalRGB device.
func (_fefbb *PdfColorspaceCalRGB )GetNumComponents ()int {return 3};func (_dedg Image )getBase ()_ac .ImageBase {return _ac .NewImageBase (int (_dedg .Width ),int (_dedg .Height ),int (_dedg .BitsPerComponent ),_dedg .ColorComponents ,_dedg .Data ,_dedg ._ddffb ,_dedg ._cceeg );};var _cgafc ="";
// Encoder returns the font's text encoder.
func (_dgdf pdfCIDFontType0 )Encoder ()_ccb .TextEncoder {return _dgdf ._eagd };
// ToInteger convert to an integer format.
func (_bafd *PdfColorDeviceCMYK )ToInteger (bits int )[4]uint32 {_dbdd :=_ag .Pow (2,float64 (bits ))-1;return [4]uint32 {uint32 (_dbdd *_bafd .C ()),uint32 (_dbdd *_bafd .M ()),uint32 (_dbdd *_bafd .Y ()),uint32 (_dbdd *_bafd .K ())};};type pdfFontSimple struct{fontCommon ;_bdadb *_cb .PdfIndirectObject ;_cfgdd map[_ccb .CharCode ]float64 ;_egffg _ccb .TextEncoder ;_cecgb _ccb .TextEncoder ;_eggf *PdfFontDescriptor ;
// Encoding is subject to limitations that are described in 9.6.6, "Character Encoding".
// BaseFont is derived differently.
FirstChar _cb .PdfObject ;LastChar _cb .PdfObject ;Widths _cb .PdfObject ;Encoding _cb .PdfObject ;_egdg map[rune ]_af .CharMetrics ;};
// 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 (_fdfdb *PdfAppender )mergeResources (_caecd ,_cdce _cb .PdfObject ,_cebc map[_cb .PdfObjectName ]_cb .PdfObjectName )_cb .PdfObject {if _cdce ==nil &&_caecd ==nil {return nil ;};if _cdce ==nil {return _caecd ;};_aaed ,_ggbg :=_cb .GetDict (_cdce );if !_ggbg {return _caecd ;};if _caecd ==nil {_dfegd :=_cb .MakeDict ();_dfegd .Merge (_aaed );return _cdce ;};_gfag ,_ggbg :=_cb .GetDict (_caecd );if !_ggbg {_dbe .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");_gfag =_cb .MakeDict ();};for _ ,_dfde :=range _aaed .Keys (){if _cge ,_fcef :=_cebc [_dfde ];_fcef {_gfag .Set (_cge ,_aaed .Get (_dfde ));}else {_gfag .Set (_dfde ,_aaed .Get (_dfde ));};};return _gfag ;};
// SetPageLabels sets the PageLabels entry in the PDF catalog.
// See section 12.4.2 "Page Labels" (p. 382 PDF32000_2008).
func (_eecgfe *PdfWriter )SetPageLabels (pageLabels _cb .PdfObject )error {if pageLabels ==nil {return nil ;};_dbe .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");_eecgfe ._fgfb .Set ("\u0050\u0061\u0067\u0065\u004c\u0061\u0062\u0065\u006c\u0073",pageLabels );return _eecgfe .addObjects (pageLabels );};
// K returns the value of the key component of the color.
func (_cged *PdfColorDeviceCMYK )K ()float64 {return float64 (_cged [3])};
// XObjectForm (Table 95 in 8.10.2).
type XObjectForm struct{Filter _cb .StreamEncoder ;FormType _cb .PdfObject ;BBox _cb .PdfObject ;Matrix _cb .PdfObject ;Resources *PdfPageResources ;Group _cb .PdfObject ;Ref _cb .PdfObject ;MetaData _cb .PdfObject ;PieceInfo _cb .PdfObject ;LastModified _cb .PdfObject ;StructParent _cb .PdfObject ;StructParents _cb .PdfObject ;OPI _cb .PdfObject ;OC _cb .PdfObject ;Name _cb .PdfObject ;
// Stream data.
Stream []byte ;_eaadb *_cb .PdfObjectStream ;};
// NewPdfAnnotation3D returns a new 3d annotation.
func NewPdfAnnotation3D ()*PdfAnnotation3D {_cceg :=NewPdfAnnotation ();_eab :=&PdfAnnotation3D {};_eab .PdfAnnotation =_cceg ;_cceg .SetContext (_eab );return _eab ;};func (_aagc *pdfFontType0 )getFontDescriptor ()*PdfFontDescriptor {if _aagc ._bgbb ==nil &&_aagc .DescendantFont !=nil {return _aagc .DescendantFont .FontDescriptor ();};return _aagc ._bgbb ;};func (_fdcdd fontCommon )fontFlags ()int {if _fdcdd ._bgbb ==nil {return 0;};return _fdcdd ._bgbb ._bfdd ;};
// 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 (_gceda *PdfSignature )bool ;Validate (_abab *PdfSignature ,_aggbf Hasher )(SignatureValidationResult ,error );
// InitSignature sets the PdfSignature parameters.
InitSignature (*PdfSignature )error ;NewDigest (_edab *PdfSignature )(Hasher ,error );Sign (_bcafb *PdfSignature ,_abdg Hasher )error ;};func (_cebcb *PdfColorspaceLab )String ()string {return "\u004c\u0061\u0062"};
// PdfPage represents a page in a PDF document. (7.7.3.3 - Table 30).
type PdfPage struct{Parent _cb .PdfObject ;LastModified *PdfDate ;Resources *PdfPageResources ;CropBox *PdfRectangle ;MediaBox *PdfRectangle ;BleedBox *PdfRectangle ;TrimBox *PdfRectangle ;ArtBox *PdfRectangle ;BoxColorInfo _cb .PdfObject ;Contents _cb .PdfObject ;Rotate *int64 ;Group _cb .PdfObject ;Thumb _cb .PdfObject ;B _cb .PdfObject ;Dur _cb .PdfObject ;Trans _cb .PdfObject ;AA _cb .PdfObject ;Metadata _cb .PdfObject ;PieceInfo _cb .PdfObject ;StructParents _cb .PdfObject ;ID _cb .PdfObject ;PZ _cb .PdfObject ;SeparationInfo _cb .PdfObject ;Tabs _cb .PdfObject ;TemplateInstantiated _cb .PdfObject ;PresSteps _cb .PdfObject ;UserUnit _cb .PdfObject ;VP _cb .PdfObject ;Annots _cb .PdfObject ;_dcgde []*PdfAnnotation ;_acaa *_cb .PdfObjectDictionary ;_adbf *_cb .PdfIndirectObject ;_fffgc *PdfReader ;};
// SetReason sets the `Reason` field of the signature.
func (_eccab *PdfSignature )SetReason (reason string ){_eccab .Reason =_cb .MakeString (reason )};
// NewXObjectFormFromStream builds the Form XObject from a stream object.
// TODO: Should this be exposed? Consider different access points.
func NewXObjectFormFromStream (stream *_cb .PdfObjectStream )(*XObjectForm ,error ){_egfca :=&XObjectForm {};_egfca ._eaadb =stream ;_acadd :=*(stream .PdfObjectDictionary );_bbce ,_acbbb :=_cb .NewEncoderFromStream (stream );if _acbbb !=nil {return nil ,_acbbb ;};_egfca .Filter =_bbce ;if _dggbe :=_acadd .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065");_dggbe !=nil {_dfbbb ,_aebg :=_dggbe .(*_cb .PdfObjectName );if !_aebg {return nil ,_bc .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if *_dfbbb !="\u0046\u006f\u0072\u006d"{_dbe .Log .Debug ("I\u006ev\u0061\u006c\u0069\u0064\u0020\u0066\u006f\u0072m\u0020\u0073\u0075\u0062ty\u0070\u0065");return nil ,_bc .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0066\u006f\u0072m\u0020\u0073\u0075\u0062ty\u0070\u0065");};};if _bfceb :=_acadd .Get ("\u0046\u006f\u0072\u006d\u0054\u0079\u0070\u0065");_bfceb !=nil {_egfca .FormType =_bfceb ;};if _efeeg :=_acadd .Get ("\u0042\u0042\u006f\u0078");_efeeg !=nil {_egfca .BBox =_efeeg ;};if _gbegg :=_acadd .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");_gbegg !=nil {_egfca .Matrix =_gbegg ;};if _eaag :=_acadd .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");_eaag !=nil {_eaag =_cb .TraceToDirectObject (_eaag );_geebd ,_fdecf :=_eaag .(*_cb .PdfObjectDictionary );if !_fdecf {_dbe .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 ,_cb .ErrTypeError ;};_efbca ,_egca :=NewPdfPageResourcesFromDict (_geebd );if _egca !=nil {_dbe .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 ,_egca ;};_egfca .Resources =_efbca ;_dbe .Log .Trace ("\u0046\u006f\u0072\u006d r\u0065\u0073\u006f\u0075\u0072\u0063\u0065\u0073\u003a\u0020\u0025\u0023\u0076",_egfca .Resources );};_egfca .Group =_acadd .Get ("\u0047\u0072\u006fu\u0070");_egfca .Ref =_acadd .Get ("\u0052\u0065\u0066");_egfca .MetaData =_acadd .Get ("\u004d\u0065\u0074\u0061\u0044\u0061\u0074\u0061");_egfca .PieceInfo =_acadd .Get ("\u0050i\u0065\u0063\u0065\u0049\u006e\u0066o");_egfca .LastModified =_acadd .Get ("\u004c\u0061\u0073t\u004d\u006f\u0064\u0069\u0066\u0069\u0065\u0064");_egfca .StructParent =_acadd .Get ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074");_egfca .StructParents =_acadd .Get ("\u0053\u0074\u0072\u0075\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074\u0073");_egfca .OPI =_acadd .Get ("\u004f\u0050\u0049");_egfca .OC =_acadd .Get ("\u004f\u0043");_egfca .Name =_acadd .Get ("\u004e\u0061\u006d\u0065");_egfca .Stream =stream .Stream ;return _egfca ,nil ;};
// GetContainingPdfObject returns the container of the resources object (indirect object).
func (_aeaeg *PdfPageResources )GetContainingPdfObject ()_cb .PdfObject {return _aeaeg ._eeeegd };
// ColorToRGB converts a CalRGB color to an RGB color.
func (_fbab *PdfColorspaceCalRGB )ColorToRGB (color PdfColor )(PdfColor ,error ){_dfeaf ,_adebb :=color .(*PdfColorCalRGB );if !_adebb {_dbe .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 ,_bc .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_egbae :=_dfeaf .A ();_gfff :=_dfeaf .B ();_beeb :=_dfeaf .C ();X :=_fbab .Matrix [0]*_ag .Pow (_egbae ,_fbab .Gamma [0])+_fbab .Matrix [3]*_ag .Pow (_gfff ,_fbab .Gamma [1])+_fbab .Matrix [6]*_ag .Pow (_beeb ,_fbab .Gamma [2]);Y :=_fbab .Matrix [1]*_ag .Pow (_egbae ,_fbab .Gamma [0])+_fbab .Matrix [4]*_ag .Pow (_gfff ,_fbab .Gamma [1])+_fbab .Matrix [7]*_ag .Pow (_beeb ,_fbab .Gamma [2]);Z :=_fbab .Matrix [2]*_ag .Pow (_egbae ,_fbab .Gamma [0])+_fbab .Matrix [5]*_ag .Pow (_gfff ,_fbab .Gamma [1])+_fbab .Matrix [8]*_ag .Pow (_beeb ,_fbab .Gamma [2]);_eaef :=3.240479*X +-1.537150*Y +-0.498535*Z ;_eaff :=-0.969256*X +1.875992*Y +0.041556*Z ;_gbedf :=0.055648*X +-0.204043*Y +1.057311*Z ;_eaef =_ag .Min (_ag .Max (_eaef ,0),1.0);_eaff =_ag .Min (_ag .Max (_eaff ,0),1.0);_gbedf =_ag .Min (_ag .Max (_gbedf ,0),1.0);return NewPdfColorDeviceRGB (_eaef ,_eaff ,_gbedf ),nil ;};func (_dgeda *pdfFontType0 )bytesToCharcodes (_cace []byte )([]_ccb .CharCode ,bool ){if _dgeda ._cebae ==nil {return nil ,false ;};_ageg ,_bdcfb :=_dgeda ._cebae .BytesToCharcodes (_cace );if !_bdcfb {return nil ,false ;};_cafc :=make ([]_ccb .CharCode ,len (_ageg ));for _cdbc ,_fffbb :=range _ageg {_cafc [_cdbc ]=_ccb .CharCode (_fffbb );};return _cafc ,true ;};
// GetFontDescriptor returns the font descriptor for `font`.
func (_abggf PdfFont )GetFontDescriptor ()(*PdfFontDescriptor ,error ){return _abggf ._cdfe .getFontDescriptor (),nil ;};
// ToPdfObject implements interface PdfModel.
func (_aea *PdfActionNamed )ToPdfObject ()_cb .PdfObject {_aea .PdfAction .ToPdfObject ();_abc :=_aea ._fc ;_gfg :=_abc .PdfObject .(*_cb .PdfObjectDictionary );_gfg .SetIfNotNil ("\u0053",_cb .MakeName (string (ActionTypeNamed )));_gfg .SetIfNotNil ("\u004e",_aea .N );return _abc ;};
// PdfOutlineTreeNode contains common fields used by the outline and outline
// item objects.
type PdfOutlineTreeNode struct{_dfaeg interface{};First *PdfOutlineTreeNode ;Last *PdfOutlineTreeNode ;};
// DecodeArray returns the range of color component values in CalGray colorspace.
func (_bega *PdfColorspaceCalGray )DecodeArray ()[]float64 {return []float64 {0.0,1.0}};
// NewPdfField returns an initialized PdfField.
func NewPdfField ()*PdfField {return &PdfField {_addef :_cb .MakeIndirectObject (_cb .MakeDict ())}};
// ImageToGray returns a new grayscale image based on the passed in RGB image.
func (_gcae *PdfColorspaceDeviceRGB )ImageToGray (img Image )(Image ,error ){if img .ColorComponents !=3{return img ,_bc .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");};_dadb ,_fbf :=_ac .NewImage (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),img .ColorComponents ,img .Data ,img ._ddffb ,img ._cceeg );if _fbf !=nil {return img ,_fbf ;};_gafd ,_fbf :=_ac .GrayConverter .Convert (_dadb );if _fbf !=nil {return img ,_fbf ;};return _ecdg (_gafd .Base ()),nil ;};func _addfb (_egeeb _cb .PdfObject )(string ,error ){_egeeb =_cb .TraceToDirectObject (_egeeb );switch _bbddb :=_egeeb .(type ){case *_cb .PdfObjectString :return _bbddb .Str (),nil ;case *_cb .PdfObjectStream :_gegba ,_gfeba :=_cb .DecodeStream (_bbddb );if _gfeba !=nil {return "",_gfeba ;};return string (_gegba ),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",_egeeb );};var _gbga ="";
// NewPdfAnnotationMovie returns a new movie annotation.
func NewPdfAnnotationMovie ()*PdfAnnotationMovie {_faga :=NewPdfAnnotation ();_bga :=&PdfAnnotationMovie {};_bga .PdfAnnotation =_faga ;_faga .SetContext (_bga );return _bga ;};func (_cdbb *PdfAppender )addNewObject (_feegg _cb .PdfObject ){if _ ,_bbdc :=_cdbb ._gfb [_feegg ];!_bbdc {_cdbb ._ceda =append (_cdbb ._ceda ,_feegg );_cdbb ._gfb [_feegg ]=struct{}{};};};
// NewPdfColorspaceSpecialIndexed returns a new Indexed color.
func NewPdfColorspaceSpecialIndexed ()*PdfColorspaceSpecialIndexed {return &PdfColorspaceSpecialIndexed {HiVal :255};};
// ToPdfObject implements interface PdfModel.
func (_deff *PdfAnnotationCircle )ToPdfObject ()_cb .PdfObject {_deff .PdfAnnotation .ToPdfObject ();_bad :=_deff ._efd ;_abgf :=_bad .PdfObject .(*_cb .PdfObjectDictionary );_deff .PdfAnnotationMarkup .appendToPdfDictionary (_abgf );_abgf .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_cb .MakeName ("\u0043\u0069\u0072\u0063\u006c\u0065"));_abgf .SetIfNotNil ("\u0042\u0053",_deff .BS );_abgf .SetIfNotNil ("\u0049\u0043",_deff .IC );_abgf .SetIfNotNil ("\u0042\u0045",_deff .BE );_abgf .SetIfNotNil ("\u0052\u0044",_deff .RD );return _bad ;};func (_aedfb *PdfWriter )updateObjectNumbers (){_begab :=_aedfb .ObjNumOffset ;_adbde :=0;for _ ,_dagcg :=range _aedfb ._bgega {_baace :=int64 (_adbde +1+_begab );_ccbfe :=true ;if _aedfb ._gedaa {if _cfgeg ,_bfbge :=_aedfb ._bedca [_dagcg ];_bfbge {_baace =_cfgeg ;_ccbfe =false ;};};switch _ebbg :=_dagcg .(type ){case *_cb .PdfIndirectObject :_ebbg .ObjectNumber =_baace ;_ebbg .GenerationNumber =0;case *_cb .PdfObjectStream :_ebbg .ObjectNumber =_baace ;_ebbg .GenerationNumber =0;case *_cb .PdfObjectStreams :_ebbg .ObjectNumber =_baace ;_ebbg .GenerationNumber =0;default:_dbe .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",_ebbg );continue ;};if _ccbfe {_adbde ++;};};_afde :=func (_fegca _cb .PdfObject )int64 {switch _ggacf :=_fegca .(type ){case *_cb .PdfIndirectObject :return _ggacf .ObjectNumber ;case *_cb .PdfObjectStream :return _ggacf .ObjectNumber ;case *_cb .PdfObjectStreams :return _ggacf .ObjectNumber ;};return 0;};_gf .SliceStable (_aedfb ._bgega ,func (_gbde ,_dcfdc int )bool {return _afde (_aedfb ._bgega [_gbde ])< _afde (_aedfb ._bgega [_dcfdc ])});};
// AllFields returns a flattened list of all fields in the form.
func (_dabg *PdfAcroForm )AllFields ()[]*PdfField {if _dabg ==nil {return nil ;};var _geafg []*PdfField ;if _dabg .Fields !=nil {for _ ,_fdcag :=range *_dabg .Fields {_geafg =append (_geafg ,_fdeba (_fdcag )...);};};return _geafg ;};
// String returns a string describing the font descriptor.
func (_fgfc *PdfFontDescriptor )String ()string {var _eegc []string ;if _fgfc .FontName !=nil {_eegc =append (_eegc ,_fgfc .FontName .String ());};if _fgfc .FontFamily !=nil {_eegc =append (_eegc ,_fgfc .FontFamily .String ());};if _fgfc .fontFile !=nil {_eegc =append (_eegc ,_fgfc .fontFile .String ());};if _fgfc ._eabdd !=nil {_eegc =append (_eegc ,_fgfc ._eabdd .String ());};_eegc =append (_eegc ,_c .Sprintf ("\u0046\u006f\u006et\u0046\u0069\u006c\u0065\u0033\u003d\u0025\u0074",_fgfc .FontFile3 !=nil ));return _c .Sprintf ("\u0046\u004f\u004e\u0054_D\u0045\u0053\u0043\u0052\u0049\u0050\u0054\u004f\u0052\u007b\u0025\u0073\u007d",_fe .Join (_eegc ,"\u002c\u0020"));};
// DecodeArray returns an empty slice as there are no components associated with pattern colorspace.
func (_cffgd *PdfColorspaceSpecialPattern )DecodeArray ()[]float64 {return []float64 {}};
// StdFontName represents name of a standard font.
type StdFontName =_af .StdFontName ;
// NewPdfAnnotationUnderline returns a new text underline annotation.
func NewPdfAnnotationUnderline ()*PdfAnnotationUnderline {_eccg :=NewPdfAnnotation ();_dcc :=&PdfAnnotationUnderline {};_dcc .PdfAnnotation =_eccg ;_dcc .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_eccg .SetContext (_dcc );return _dcc ;};
// SetPdfSubject sets the Subject attribute of the output PDF.
func SetPdfSubject (subject string ){_cebffbc =subject };
// PdfColorspaceCalRGB stores A, B, C components
type PdfColorspaceCalRGB struct{WhitePoint []float64 ;BlackPoint []float64 ;Gamma []float64 ;Matrix []float64 ;_fcbcb *_cb .PdfObjectDictionary ;_fedfe *_cb .PdfIndirectObject ;};
// Evaluate runs the function. Input is [x1 x2 x3].
func (_dgeeb *PdfFunctionType4 )Evaluate (xVec []float64 )([]float64 ,error ){if _dgeeb ._gfcf ==nil {_dgeeb ._gfcf =_cg .NewPSExecutor (_dgeeb .Program );};var _gegea []_cg .PSObject ;for _ ,_eefc :=range xVec {_gegea =append (_gegea ,_cg .MakeReal (_eefc ));};_gcbc ,_adfcf :=_dgeeb ._gfcf .Execute (_gegea );if _adfcf !=nil {return nil ,_adfcf ;};_abffc ,_adfcf :=_cg .PSObjectArrayToFloat64Array (_gcbc );if _adfcf !=nil {return nil ,_adfcf ;};return _abffc ,nil ;};func (_eafec *PdfWriter )writeObject (_adfa int ,_fbggd _cb .PdfObject ){_dbe .Log .Trace ("\u0057\u0072\u0069\u0074\u0065\u0020\u006f\u0062\u006a \u0023\u0025\u0064\u000a",_adfa );if _aecbf ,_ddefg :=_fbggd .(*_cb .PdfIndirectObject );_ddefg {_eafec ._gebf [_adfa ]=crossReference {Type :1,Offset :_eafec ._ceead ,Generation :_aecbf .GenerationNumber };_cacbd :=_c .Sprintf ("\u0025d\u0020\u0030\u0020\u006f\u0062\u006a\n",_adfa );if _gbfeb ,_dfgfb :=_aecbf .PdfObject .(*pdfSignDictionary );_dfgfb {_gbfeb ._bddgd =_eafec ._ceead +int64 (len (_cacbd ));};if _aecbf .PdfObject ==nil {_dbe .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");_aecbf .PdfObject =_cb .MakeNull ();};_cacbd +=_aecbf .PdfObject .WriteString ();_cacbd +="\u000a\u0065\u006e\u0064\u006f\u0062\u006a\u000a";_eafec .writeString (_cacbd );return ;};if _gfcfb ,_fgaeca :=_fbggd .(*_cb .PdfObjectStream );_fgaeca {_eafec ._gebf [_adfa ]=crossReference {Type :1,Offset :_eafec ._ceead ,Generation :_gfcfb .GenerationNumber };_edaab :=_c .Sprintf ("\u0025d\u0020\u0030\u0020\u006f\u0062\u006a\n",_adfa );_edaab +=_gfcfb .PdfObjectDictionary .WriteString ();_edaab +="\u000a\u0073\u0074\u0072\u0065\u0061\u006d\u000a";_eafec .writeString (_edaab );_eafec .writeBytes (_gfcfb .Stream );_eafec .writeString ("\u000ae\u006ed\u0073\u0074\u0072\u0065\u0061m\u000a\u0065n\u0064\u006f\u0062\u006a\u000a");return ;};if _abgfg ,_dcgf :=_fbggd .(*_cb .PdfObjectStreams );_dcgf {_eafec ._gebf [_adfa ]=crossReference {Type :1,Offset :_eafec ._ceead ,Generation :_abgfg .GenerationNumber };_eabbd :=_c .Sprintf ("\u0025d\u0020\u0030\u0020\u006f\u0062\u006a\n",_adfa );var _gcef []string ;var _cdagaa string ;var _gbfc int64 ;for _bgagd ,_cbfabe :=range _abgfg .Elements (){_adffd ,_ebcc :=_cbfabe .(*_cb .PdfIndirectObject );if !_ebcc {_dbe .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",_adfa ,_cbfabe );continue ;};_eedgg :=_adffd .PdfObject .WriteString ()+"\u0020";_cdagaa =_cdagaa +_eedgg ;_gcef =append (_gcef ,_c .Sprintf ("\u0025\u0064\u0020%\u0064",_adffd .ObjectNumber ,_gbfc ));_eafec ._gebf [int (_adffd .ObjectNumber )]=crossReference {Type :2,ObjectNumber :_adfa ,Index :_bgagd };_gbfc =_gbfc +int64 (len ([]byte (_eedgg )));};_dcgdee :=_fe .Join (_gcef ,"\u0020")+"\u0020";_bede :=_cb .NewFlateEncoder ();_agceg :=_bede .MakeStreamDict ();_agceg .Set (_cb .PdfObjectName ("\u0054\u0079\u0070\u0065"),_cb .MakeName ("\u004f\u0062\u006a\u0053\u0074\u006d"));_daded :=int64 (_abgfg .Len ());_agceg .Set (_cb .PdfObjectName ("\u004e"),_cb .MakeInteger (_daded ));_bebfb :=int64 (len (_dcgdee ));_agceg .Set (_cb .PdfObjectName ("\u0046\u0069\u0072s\u0074"),_cb .MakeInteger (_bebfb ));_cdcec ,_ :=_bede .EncodeBytes ([]byte (_dcgdee +_cdagaa ));_cgfab :=int64 (len (_cdcec ));_agceg .Set (_cb .PdfObjectName ("\u004c\u0065\u006e\u0067\u0074\u0068"),_cb .MakeInteger (_cgfab ));_eabbd +=_agceg .WriteString ();_eabbd +="\u000a\u0073\u0074\u0072\u0065\u0061\u006d\u000a";_eafec .writeString (_eabbd );_eafec .writeBytes (_cdcec );_eafec .writeString ("\u000ae\u006ed\u0073\u0074\u0072\u0065\u0061m\u000a\u0065n\u0064\u006f\u0062\u006a\u000a");return ;};_eafec .writeString (_fbggd .WriteString ());};
// NewPdfColorspaceSpecialSeparation returns a new separation color.
func NewPdfColorspaceSpecialSeparation ()*PdfColorspaceSpecialSeparation {_gabc :=&PdfColorspaceSpecialSeparation {};return _gabc ;};
// PdfActionImportData represents a importData action.
type PdfActionImportData struct{*PdfAction ;F *PdfFilespec ;};
// NewOutline returns a new outline instance.
func NewOutline ()*Outline {return &Outline {}};
// 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 (_cbceb *PdfReader )Inspect ()(map[string ]int ,error ){return _cbceb ._gfecg .Inspect ()};
// PdfActionURI represents an URI action.
type PdfActionURI struct{*PdfAction ;URI _cb .PdfObject ;IsMap _cb .PdfObject ;};
// DecodeArray returns the range of color component values in DeviceRGB colorspace.
func (_dddd *PdfColorspaceDeviceRGB )DecodeArray ()[]float64 {return []float64 {0.0,1.0,0.0,1.0,0.0,1.0};};func _cgcbg ()_d .Time {return _ebecb };
// PdfActionLaunch represents a launch action.
type PdfActionLaunch struct{*PdfAction ;F *PdfFilespec ;Win _cb .PdfObject ;Mac _cb .PdfObject ;Unix _cb .PdfObject ;NewWindow _cb .PdfObject ;};
// ToPdfObject returns colorspace in a PDF object format [name dictionary]
func (_feba *PdfColorspaceCalRGB )ToPdfObject ()_cb .PdfObject {_acge :=&_cb .PdfObjectArray {};_acge .Append (_cb .MakeName ("\u0043\u0061\u006c\u0052\u0047\u0042"));_ggd :=_cb .MakeDict ();if _feba .WhitePoint !=nil {_abbf :=_cb .MakeArray (_cb .MakeFloat (_feba .WhitePoint [0]),_cb .MakeFloat (_feba .WhitePoint [1]),_cb .MakeFloat (_feba .WhitePoint [2]));_ggd .Set ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074",_abbf );}else {_dbe .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 _feba .BlackPoint !=nil {_bgab :=_cb .MakeArray (_cb .MakeFloat (_feba .BlackPoint [0]),_cb .MakeFloat (_feba .BlackPoint [1]),_cb .MakeFloat (_feba .BlackPoint [2]));_ggd .Set ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074",_bgab );};if _feba .Gamma !=nil {_aafdg :=_cb .MakeArray (_cb .MakeFloat (_feba .Gamma [0]),_cb .MakeFloat (_feba .Gamma [1]),_cb .MakeFloat (_feba .Gamma [2]));_ggd .Set ("\u0047\u0061\u006dm\u0061",_aafdg );};if _feba .Matrix !=nil {_edbf :=_cb .MakeArray (_cb .MakeFloat (_feba .Matrix [0]),_cb .MakeFloat (_feba .Matrix [1]),_cb .MakeFloat (_feba .Matrix [2]),_cb .MakeFloat (_feba .Matrix [3]),_cb .MakeFloat (_feba .Matrix [4]),_cb .MakeFloat (_feba .Matrix [5]),_cb .MakeFloat (_feba .Matrix [6]),_cb .MakeFloat (_feba .Matrix [7]),_cb .MakeFloat (_feba .Matrix [8]));_ggd .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_edbf );};_acge .Append (_ggd );if _feba ._fedfe !=nil {_feba ._fedfe .PdfObject =_acge ;return _feba ._fedfe ;};return _acge ;};
// ToPdfObject converts date to a PDF string object.
func (_ecbd *PdfDate )ToPdfObject ()_cb .PdfObject {_gdbgf :=_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",_ecbd ._dbbc ,_ecbd ._cddf ,_ecbd ._ffdac ,_ecbd ._cfgca ,_ecbd ._fcgbe ,_ecbd ._aegfed ,_ecbd ._bbbbg ,_ecbd ._bbee ,_ecbd ._caccb );return _cb .MakeString (_gdbgf );};
// GetContainingPdfObject implements interface PdfModel.
func (_cdace *PdfSignature )GetContainingPdfObject ()_cb .PdfObject {return _cdace ._afcda };
// NewPdfColorspaceDeviceN returns an initialized PdfColorspaceDeviceN.
func NewPdfColorspaceDeviceN ()*PdfColorspaceDeviceN {_ggbf :=&PdfColorspaceDeviceN {};return _ggbf };
// ColorToRGB converts gray -> rgb for a single color component.
func (_gafc *PdfColorspaceDeviceGray )ColorToRGB (color PdfColor )(PdfColor ,error ){_cgaae ,_abd :=color .(*PdfColorDeviceGray );if !_abd {_dbe .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 ,_bc .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};return NewPdfColorDeviceRGB (float64 (*_cgaae ),float64 (*_cgaae ),float64 (*_cgaae )),nil ;};func _bbac (_fecfg *_cb .PdfObjectDictionary )(*PdfShadingType5 ,error ){_cfcgc :=PdfShadingType5 {};_fcedd :=_fecfg .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065");if _fcedd ==nil {_dbe .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 ;};_aggdc ,_efebd :=_fcedd .(*_cb .PdfObjectInteger );if !_efebd {_dbe .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",_fcedd );return nil ,_cb .ErrTypeError ;};_cfcgc .BitsPerCoordinate =_aggdc ;_fcedd =_fecfg .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074");if _fcedd ==nil {_dbe .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 ;};_aggdc ,_efebd =_fcedd .(*_cb .PdfObjectInteger );if !_efebd {_dbe .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",_fcedd );return nil ,_cb .ErrTypeError ;};_cfcgc .BitsPerComponent =_aggdc ;_fcedd =_fecfg .Get ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073\u0050e\u0072\u0052\u006f\u0077");if _fcedd ==nil {_dbe .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 ;};_aggdc ,_efebd =_fcedd .(*_cb .PdfObjectInteger );if !_efebd {_dbe .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",_fcedd );return nil ,_cb .ErrTypeError ;};_cfcgc .VerticesPerRow =_aggdc ;_fcedd =_fecfg .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");if _fcedd ==nil {_dbe .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 ;};_gcedc ,_efebd :=_fcedd .(*_cb .PdfObjectArray );if !_efebd {_dbe .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",_fcedd );return nil ,_cb .ErrTypeError ;};_cfcgc .Decode =_gcedc ;if _efee :=_fecfg .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");_efee !=nil {_cfcgc .Function =[]PdfFunction {};if _feeaa ,_ffefa :=_efee .(*_cb .PdfObjectArray );_ffefa {for _ ,_dbgcg :=range _feeaa .Elements (){_ebcb ,_efbg :=_abcgd (_dbgcg );if _efbg !=nil {_dbe .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",_efbg );return nil ,_efbg ;};_cfcgc .Function =append (_cfcgc .Function ,_ebcb );};}else {_dbcbb ,_adage :=_abcgd (_efee );if _adage !=nil {_dbe .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",_adage );return nil ,_adage ;};_cfcgc .Function =append (_cfcgc .Function ,_dbcbb );};};return &_cfcgc ,nil ;};
// A returns the value of the A component of the color.
func (_adgf *PdfColorCalRGB )A ()float64 {return float64 (_adgf [0])};
// ColorFromPdfObjects returns a new PdfColor based on the input slice of color
// components. The slice should contain a single PdfObjectFloat element in
// range 0-1.
func (_dcdd *PdfColorspaceDeviceGray )ColorFromPdfObjects (objects []_cb .PdfObject )(PdfColor ,error ){if len (objects )!=1{return nil ,_bc .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_afbae ,_cfag :=_cb .GetNumbersAsFloat (objects );if _cfag !=nil {return nil ,_cfag ;};return _dcdd .ColorFromFloats (_afbae );};
// 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 (_fadc *PdfReader )FlattenFields (allannots bool ,appgen FieldAppearanceGenerator )error {return _fadc .flattenFieldsWithOpts (allannots ,appgen ,nil );};
// NewPdfColorspaceLab returns a new Lab colorspace object.
func NewPdfColorspaceLab ()*PdfColorspaceLab {_eeece :=&PdfColorspaceLab {};_eeece .BlackPoint =[]float64 {0.0,0.0,0.0};_eeece .Range =[]float64 {-100,100,-100,100};return _eeece ;};
// 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 (_dagea *PdfColorspaceCalGray )ColorFromPdfObjects (objects []_cb .PdfObject )(PdfColor ,error ){if len (objects )!=1{return nil ,_bc .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_afafa ,_abbea :=_cb .GetNumbersAsFloat (objects );if _abbea !=nil {return nil ,_abbea ;};return _dagea .ColorFromFloats (_afafa );};type pdfCIDFontType0 struct{fontCommon ;_bggag *_cb .PdfIndirectObject ;_eagd _ccb .TextEncoder ;
// Table 117 Entries in a CIDFont dictionary (page 269)
// (Required) Dictionary that defines the character collection of the CIDFont.
// See Table 116.
CIDSystemInfo *_cb .PdfObjectDictionary ;
// Glyph metrics fields (optional).
DW _cb .PdfObject ;W _cb .PdfObject ;DW2 _cb .PdfObject ;W2 _cb .PdfObject ;_agae map[_ccb .CharCode ]float64 ;_eccee float64 ;};func (_aeae *PdfReader )newPdfAnnotationStrikeOut (_dgcc *_cb .PdfObjectDictionary )(*PdfAnnotationStrikeOut ,error ){_fdca :=PdfAnnotationStrikeOut {};_adde ,_fggf :=_aeae .newPdfAnnotationMarkupFromDict (_dgcc );if _fggf !=nil {return nil ,_fggf ;};_fdca .PdfAnnotationMarkup =_adde ;_fdca .QuadPoints =_dgcc .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");return &_fdca ,nil ;};
// PdfAnnotationPrinterMark represents PrinterMark annotations.
// (Section 12.5.6.20).
type PdfAnnotationPrinterMark struct{*PdfAnnotation ;MN _cb .PdfObject ;};
// 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 (_bbfc *PdfFont )StringToCharcodeBytes (str string )([]byte ,int ){return _bbfc .RunesToCharcodeBytes ([]rune (str ));};
// ToPdfObject returns a PDF object representation of the outline.
func (_afcec *Outline )ToPdfObject ()_cb .PdfObject {return _afcec .ToPdfOutline ().ToPdfObject ()};
// DecodeArray returns the range of color component values in DeviceCMYK colorspace.
func (_afdc *PdfColorspaceDeviceCMYK )DecodeArray ()[]float64 {return []float64 {0.0,1.0,0.0,1.0,0.0,1.0,0.0,1.0};};
// SetColorspaceByName adds the provided colorspace to the page resources.
func (_afddf *PdfPageResources )SetColorspaceByName (keyName _cb .PdfObjectName ,cs PdfColorspace )error {_dcge ,_eggdd :=_afddf .GetColorspaces ();if _eggdd !=nil {_dbe .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",_eggdd );return _eggdd ;};if _dcge ==nil {_dcge =NewPdfPageResourcesColorspaces ();_afddf .SetColorSpace (_dcge );};_dcge .Set (keyName ,cs );return nil ;};func (_egga *PdfReader )resolveReference (_fgcde *_cb .PdfObjectReference )(_cb .PdfObject ,bool ,error ){_aaff ,_ddcf :=_egga ._gfecg .ObjCache [int (_fgcde .ObjectNumber )];if !_ddcf {_dbe .Log .Trace ("R\u0065\u0061\u0064\u0065r \u004co\u006f\u006b\u0075\u0070\u0020r\u0065\u0066\u003a\u0020\u0025\u0073",_fgcde );_adge ,_facce :=_egga ._gfecg .LookupByReference (*_fgcde );if _facce !=nil {return nil ,false ,_facce ;};_egga ._gfecg .ObjCache [int (_fgcde .ObjectNumber )]=_adge ;return _adge ,false ,nil ;};return _aaff ,true ,nil ;};
// Decrypt decrypts the PDF file with a specified password. Also tries to
// decrypt with an empty password. Returns true if successful,
// false otherwise.
func (_aedeb *PdfReader )Decrypt (password []byte )(bool ,error ){_dcbdg ,_acefb :=_aedeb ._gfecg .Decrypt (password );if _acefb !=nil {return false ,_acefb ;};if !_dcbdg {return false ,nil ;};_acefb =_aedeb .loadStructure ();if _acefb !=nil {_dbe .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",_acefb );return false ,_acefb ;};return true ,nil ;};
// ToPdfObject returns the PDF representation of the colorspace.
func (_bfcf *PdfColorspaceDeviceCMYK )ToPdfObject ()_cb .PdfObject {return _cb .MakeName ("\u0044\u0065\u0076\u0069\u0063\u0065\u0043\u004d\u0059\u004b");};
// ToPdfObject returns the text field dictionary within an indirect object (container).
func (_cfbb *PdfFieldText )ToPdfObject ()_cb .PdfObject {_cfbb .PdfField .ToPdfObject ();_gfgeb :=_cfbb ._addef ;_baffb :=_gfgeb .PdfObject .(*_cb .PdfObjectDictionary );_baffb .Set ("\u0046\u0054",_cb .MakeName ("\u0054\u0078"));if _cfbb .DA !=nil {_baffb .Set ("\u0044\u0041",_cfbb .DA );};if _cfbb .Q !=nil {_baffb .Set ("\u0051",_cfbb .Q );};if _cfbb .DS !=nil {_baffb .Set ("\u0044\u0053",_cfbb .DS );};if _cfbb .RV !=nil {_baffb .Set ("\u0052\u0056",_cfbb .RV );};if _cfbb .MaxLen !=nil {_baffb .Set ("\u004d\u0061\u0078\u004c\u0065\u006e",_cfbb .MaxLen );};return _gfgeb ;};
// NewReaderForText makes a new PdfReader for an input PDF content string. For use in testing.
func NewReaderForText (txt string )*PdfReader {return &PdfReader {_fage :map[_cb .PdfObject ]struct{}{},_bffa :_ccdg (),_gfecg :_cb .NewParserFromString (txt )};};
// DecodeArray returns the range of color component values in the ICCBased colorspace.
func (_gegae *PdfColorspaceICCBased )DecodeArray ()[]float64 {return _gegae .Range };
// B returns the value of the B component of the color.
func (_faeg *PdfColorCalRGB )B ()float64 {return float64 (_faeg [1])};
// 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 ;_afcda *_cb .PdfIndirectObject ;
// Type: Sig/DocTimeStamp
Type *_cb .PdfObjectName ;Filter *_cb .PdfObjectName ;SubFilter *_cb .PdfObjectName ;Contents *_cb .PdfObjectString ;Cert _cb .PdfObject ;ByteRange *_cb .PdfObjectArray ;Reference *_cb .PdfObjectArray ;Changes *_cb .PdfObjectArray ;Name *_cb .PdfObjectString ;M *_cb .PdfObjectString ;Location *_cb .PdfObjectString ;Reason *_cb .PdfObjectString ;ContactInfo *_cb .PdfObjectString ;R *_cb .PdfObjectInteger ;V *_cb .PdfObjectInteger ;PropBuild *_cb .PdfObjectDictionary ;PropAuthTime *_cb .PdfObjectInteger ;PropAuthType *_cb .PdfObjectName ;};func (_aed *PdfReader )newPdfActionNamedFromDict (_cdc *_cb .PdfObjectDictionary )(*PdfActionNamed ,error ){return &PdfActionNamed {N :_cdc .Get ("\u004e")},nil ;};
// PartialName returns the partial name of the field.
func (_ceaa *PdfField )PartialName ()string {_gagf :="";if _ceaa .T !=nil {_gagf =_ceaa .T .Decoded ();}else {_dbe .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 _gagf ;};
// NewPdfAppender creates a new Pdf appender from a Pdf reader.
func NewPdfAppender (reader *PdfReader )(*PdfAppender ,error ){_daab :=&PdfAppender {_fdbd :reader ._cgba ,Reader :reader ,_cecd :reader ._gfecg ,_cfdg :reader ._fage };_dccd ,_dec :=_daab ._fdbd .Seek (0,_bb .SeekEnd );if _dec !=nil {return nil ,_dec ;};_daab ._fdfd =_dccd ;if _ ,_dec =_daab ._fdbd .Seek (0,_bb .SeekStart );_dec !=nil {return nil ,_dec ;};_daab ._acgg ,_dec =NewPdfReader (_daab ._fdbd );if _dec !=nil {return nil ,_dec ;};for _ ,_egdc :=range _daab .Reader .GetObjectNums (){if _daab ._caff < _egdc {_daab ._caff =_egdc ;};};_daab ._cfg =_daab ._cecd .GetXrefTable ();_daab ._bdeb =_daab ._cecd .GetXrefOffset ();_daab ._gfb =make (map[_cb .PdfObject ]struct{});for _ ,_bege :=range _daab ._acgg .PageList {_daab ._dgce =append (_daab ._dgce ,_bege );};_daab ._bgbd =make (map[_cb .PdfObject ]int64 );_daab ._bbea =make (map[_cb .PdfObject ]struct{});_daab ._abbe =_daab ._acgg .AcroForm ;return _daab ,nil ;};
// RemovePage removes a page by number.
func (_bgea *PdfAppender )RemovePage (pageNum int ){_bebd :=pageNum -1;_bgea ._dgce =append (_bgea ._dgce [0:_bebd ],_bgea ._dgce [pageNum :]...);};
// PdfColorDeviceGray represents a grayscale color value that shall be represented by a single number in the
// range 0.0 to 1.0 where 0.0 corresponds to black and 1.0 to white.
type PdfColorDeviceGray float64 ;func _dccg (_edcc _af .StdFont )pdfFontSimple {_edba :=_edcc .Descriptor ();return pdfFontSimple {fontCommon :fontCommon {_fbefd :"\u0054\u0079\u0070e\u0031",_babff :_edcc .Name ()},_egdg :_edcc .GetMetricsTable (),_eggf :&PdfFontDescriptor {FontName :_cb .MakeName (string (_edba .Name )),FontFamily :_cb .MakeName (_edba .Family ),FontWeight :_cb .MakeFloat (float64 (_edba .Weight )),Flags :_cb .MakeInteger (int64 (_edba .Flags )),FontBBox :_cb .MakeArrayFromFloats (_edba .BBox [:]),ItalicAngle :_cb .MakeFloat (_edba .ItalicAngle ),Ascent :_cb .MakeFloat (_edba .Ascent ),Descent :_cb .MakeFloat (_edba .Descent ),CapHeight :_cb .MakeFloat (_edba .CapHeight ),XHeight :_cb .MakeFloat (_edba .XHeight ),StemV :_cb .MakeFloat (_edba .StemV ),StemH :_cb .MakeFloat (_edba .StemH )},_cecgb :_edcc .Encoder ()};};
// NewPdfActionSetOCGState returns a new "named" action.
func NewPdfActionSetOCGState ()*PdfActionSetOCGState {_cae :=NewPdfAction ();_aaa :=&PdfActionSetOCGState {};_aaa .PdfAction =_cae ;_cae .SetContext (_aaa );return _aaa ;};
// 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 *_cb .PdfIndirectObject ;SV *_cb .PdfIndirectObject ;};
// ColorFromPdfObjects gets the color from a series of pdf objects (3 for rgb).
func (_adgc *PdfColorspaceDeviceRGB )ColorFromPdfObjects (objects []_cb .PdfObject )(PdfColor ,error ){if len (objects )!=3{return nil ,_bc .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_abff ,_gebc :=_cb .GetNumbersAsFloat (objects );if _gebc !=nil {return nil ,_gebc ;};return _adgc .ColorFromFloats (_abff );};
// GetNamedDestinations returns the Names entry in the PDF catalog.
// See section 12.3.2.3 "Named Destinations" (p. 367 PDF32000_2008).
func (_bafdf *PdfReader )GetNamedDestinations ()(_cb .PdfObject ,error ){_bebea :=_cb .ResolveReference (_bafdf ._fccgb .Get ("\u004e\u0061\u006de\u0073"));if _bebea ==nil {return nil ,nil ;};if !_bafdf ._cbfab {_decbe :=_bafdf .traverseObjectData (_bebea );if _decbe !=nil {return nil ,_decbe ;};};return _bebea ,nil ;};
// ToPdfObject implements interface PdfModel.
func (_fcgd *PdfAnnotationPolygon )ToPdfObject ()_cb .PdfObject {_fcgd .PdfAnnotation .ToPdfObject ();_bfae :=_fcgd ._efd ;_caed :=_bfae .PdfObject .(*_cb .PdfObjectDictionary );_fcgd .PdfAnnotationMarkup .appendToPdfDictionary (_caed );_caed .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_cb .MakeName ("\u0050o\u006c\u0079\u0067\u006f\u006e"));_caed .SetIfNotNil ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073",_fcgd .Vertices );_caed .SetIfNotNil ("\u004c\u0045",_fcgd .LE );_caed .SetIfNotNil ("\u0042\u0053",_fcgd .BS );_caed .SetIfNotNil ("\u0049\u0043",_fcgd .IC );_caed .SetIfNotNil ("\u0042\u0045",_fcgd .BE );_caed .SetIfNotNil ("\u0049\u0054",_fcgd .IT );_caed .SetIfNotNil ("\u004de\u0061\u0073\u0075\u0072\u0065",_fcgd .Measure );return _bfae ;};
// NewPdfAnnotationPolygon returns a new polygon annotation.
func NewPdfAnnotationPolygon ()*PdfAnnotationPolygon {_fdd :=NewPdfAnnotation ();_ebfa :=&PdfAnnotationPolygon {};_ebfa .PdfAnnotation =_fdd ;_ebfa .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_fdd .SetContext (_ebfa );return _ebfa ;};
// NewPdfColorDeviceCMYK returns a new CMYK32 color.
func NewPdfColorDeviceCMYK (c ,m ,y ,k float64 )*PdfColorDeviceCMYK {_bdff :=PdfColorDeviceCMYK {c ,m ,y ,k };return &_bdff ;};func (_fcee *PdfReader )newPdfAnnotationCircleFromDict (_dbcf *_cb .PdfObjectDictionary )(*PdfAnnotationCircle ,error ){_aecb :=PdfAnnotationCircle {};_dgef ,_gaag :=_fcee .newPdfAnnotationMarkupFromDict (_dbcf );if _gaag !=nil {return nil ,_gaag ;};_aecb .PdfAnnotationMarkup =_dgef ;_aecb .BS =_dbcf .Get ("\u0042\u0053");_aecb .IC =_dbcf .Get ("\u0049\u0043");_aecb .BE =_dbcf .Get ("\u0042\u0045");_aecb .RD =_dbcf .Get ("\u0052\u0044");return &_aecb ,nil ;};const (RC4_128bit =EncryptionAlgorithm (iota );AES_128bit ;AES_256bit ;);func (_cgfgg *pdfFontSimple )updateStandard14Font (){_beace ,_caaea :=_cgfgg .Encoder ().(_ccb .SimpleEncoder );if !_caaea {_dbe .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",_cgfgg .Encoder (),_cgfgg );return ;};_faea :=_beace .Charcodes ();_cgfgg ._cfgdd =make (map[_ccb .CharCode ]float64 ,len (_faea ));for _ ,_afff :=range _faea {_bfgf ,_ :=_beace .CharcodeToRune (_afff );_cgfgg ._cfgdd [_afff ]=_cgfgg ._egdg [_bfgf ].Wx ;};};
// GetContainingPdfObject returns the XObject Form's containing object (indirect object).
func (_edebe *XObjectForm )GetContainingPdfObject ()_cb .PdfObject {return _edebe ._eaadb };
// Encoder returns the font's text encoder.
func (_gdbe *pdfFontSimple )Encoder ()_ccb .TextEncoder {if _gdbe ._egffg !=nil {return _gdbe ._egffg ;};if _gdbe ._cecgb !=nil {return _gdbe ._cecgb ;};_fedb ,_ :=_ccb .NewSimpleTextEncoder ("\u0053\u0074a\u006e\u0064\u0061r\u0064\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",nil );return _fedb ;};
// 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 (_bfgb *PdfReader )FlattenFieldsWithOpts (appgen FieldAppearanceGenerator ,opts *FieldFlattenOpts )error {return _bfgb .flattenFieldsWithOpts (false ,appgen ,opts );};func (_fgdb fontCommon )isCIDFont ()bool {if _fgdb ._fbefd ==""{_dbe .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",_fgdb );};_fcgb :=false ;switch _fgdb ._fbefd {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":_fcgb =true ;};_dbe .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",_fcgb ,_fgdb );return _fcgb ;};
// 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 *_cb .PdfObjectStream ;Data []byte ;_ebfab *_cb .PdfIndirectObject ;_cfade *_cb .PdfObjectStream ;};
// 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 ;_gfdce []byte ;_fcdac []uint32 ;_dgaa *_cb .PdfObjectStream ;};
// NewPdfAnnotationSquare returns a new square annotation.
func NewPdfAnnotationSquare ()*PdfAnnotationSquare {_dab :=NewPdfAnnotation ();_aabc :=&PdfAnnotationSquare {};_aabc .PdfAnnotation =_dab ;_aabc .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_dab .SetContext (_aabc );return _aabc ;};
// NewXObjectForm creates a brand new XObject Form. Creates a new underlying PDF object stream primitive.
func NewXObjectForm ()*XObjectForm {_dedd :=&XObjectForm {};_efef :=&_cb .PdfObjectStream {};_efef .PdfObjectDictionary =_cb .MakeDict ();_dedd ._eaadb =_efef ;return _dedd ;};
// NewPdfColorspaceCalGray returns a new CalGray colorspace object.
func NewPdfColorspaceCalGray ()*PdfColorspaceCalGray {_deag :=&PdfColorspaceCalGray {};_deag .BlackPoint =[]float64 {0.0,0.0,0.0};_deag .Gamma =1;return _deag ;};
// 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 *_cb .PdfObjectName ;AlternateSpace PdfColorspace ;TintTransform PdfFunction ;_ccba *_cb .PdfIndirectObject ;};
// ToPdfObject return the CalGray colorspace as a PDF object (name dictionary).
func (_dda *PdfColorspaceCalGray )ToPdfObject ()_cb .PdfObject {_efa :=&_cb .PdfObjectArray {};_efa .Append (_cb .MakeName ("\u0043a\u006c\u0047\u0072\u0061\u0079"));_ecbg :=_cb .MakeDict ();if _dda .WhitePoint !=nil {_ecbg .Set ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074",_cb .MakeArray (_cb .MakeFloat (_dda .WhitePoint [0]),_cb .MakeFloat (_dda .WhitePoint [1]),_cb .MakeFloat (_dda .WhitePoint [2])));}else {_dbe .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 _dda .BlackPoint !=nil {_ecbg .Set ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074",_cb .MakeArray (_cb .MakeFloat (_dda .BlackPoint [0]),_cb .MakeFloat (_dda .BlackPoint [1]),_cb .MakeFloat (_dda .BlackPoint [2])));};_ecbg .Set ("\u0047\u0061\u006dm\u0061",_cb .MakeFloat (_dda .Gamma ));_efa .Append (_ecbg );if _dda ._beeg !=nil {_dda ._beeg .PdfObject =_efa ;return _dda ._beeg ;};return _efa ;};
// GetContainingPdfObject implements interface PdfModel.
func (_ee *PdfAction )GetContainingPdfObject ()_cb .PdfObject {return _ee ._fc };
// NewPdfAnnotationScreen returns a new screen annotation.
func NewPdfAnnotationScreen ()*PdfAnnotationScreen {_eggb :=NewPdfAnnotation ();_eec :=&PdfAnnotationScreen {};_eec .PdfAnnotation =_eggb ;_eggb .SetContext (_eec );return _eec ;};
// ToPdfObject implements interface PdfModel.
func (_gdbec *PdfSignature )ToPdfObject ()_cb .PdfObject {_ggac :=_gdbec ._afcda ;var _dbfgc *_cb .PdfObjectDictionary ;if _aeaeb ,_bfeea :=_ggac .PdfObject .(*pdfSignDictionary );_bfeea {_dbfgc =_aeaeb .PdfObjectDictionary ;}else {_dbfgc =_ggac .PdfObject .(*_cb .PdfObjectDictionary );};_dbfgc .SetIfNotNil ("\u0054\u0079\u0070\u0065",_gdbec .Type );_dbfgc .SetIfNotNil ("\u0046\u0069\u006c\u0074\u0065\u0072",_gdbec .Filter );_dbfgc .SetIfNotNil ("\u0053u\u0062\u0046\u0069\u006c\u0074\u0065r",_gdbec .SubFilter );_dbfgc .SetIfNotNil ("\u0042y\u0074\u0065\u0052\u0061\u006e\u0067e",_gdbec .ByteRange );_dbfgc .SetIfNotNil ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073",_gdbec .Contents );_dbfgc .SetIfNotNil ("\u0043\u0065\u0072\u0074",_gdbec .Cert );_dbfgc .SetIfNotNil ("\u004e\u0061\u006d\u0065",_gdbec .Name );_dbfgc .SetIfNotNil ("\u0052\u0065\u0061\u0073\u006f\u006e",_gdbec .Reason );_dbfgc .SetIfNotNil ("\u004d",_gdbec .M );_dbfgc .SetIfNotNil ("\u0052e\u0066\u0065\u0072\u0065\u006e\u0063e",_gdbec .Reference );_dbfgc .SetIfNotNil ("\u0043h\u0061\u006e\u0067\u0065\u0073",_gdbec .Changes );_dbfgc .SetIfNotNil ("C\u006f\u006e\u0074\u0061\u0063\u0074\u0049\u006e\u0066\u006f",_gdbec .ContactInfo );return _ggac ;};
// GenerateXObjectName generates an unused XObject name that can be used for
// adding new XObjects. Uses format XObj1, XObj2, ...
func (_cgceeg *PdfPageResources )GenerateXObjectName ()_cb .PdfObjectName {_gecbd :=1;for {_cabbb :=_cb .MakeName (_c .Sprintf ("\u0058\u004f\u0062\u006a\u0025\u0064",_gecbd ));if !_cgceeg .HasXObjectByName (*_cabbb ){return *_cabbb ;};_gecbd ++;};};
// ToPdfObject recursively builds the Outline tree PDF object.
func (_cabeb *PdfOutlineItem )ToPdfObject ()_cb .PdfObject {_bafe :=_cabeb ._gaga ;_ecaec :=_bafe .PdfObject .(*_cb .PdfObjectDictionary );_ecaec .Set ("\u0054\u0069\u0074l\u0065",_cabeb .Title );if _cabeb .A !=nil {_ecaec .Set ("\u0041",_cabeb .A );};if _defag :=_ecaec .Get ("\u0053\u0045");_defag !=nil {_ecaec .Remove ("\u0053\u0045");};if _cabeb .C !=nil {_ecaec .Set ("\u0043",_cabeb .C );};if _cabeb .Dest !=nil {_ecaec .Set ("\u0044\u0065\u0073\u0074",_cabeb .Dest );};if _cabeb .F !=nil {_ecaec .Set ("\u0046",_cabeb .F );};if _cabeb .Count !=nil {_ecaec .Set ("\u0043\u006f\u0075n\u0074",_cb .MakeInteger (*_cabeb .Count ));};if _cabeb .Next !=nil {_ecaec .Set ("\u004e\u0065\u0078\u0074",_cabeb .Next .ToPdfObject ());};if _cabeb .First !=nil {_ecaec .Set ("\u0046\u0069\u0072s\u0074",_cabeb .First .ToPdfObject ());};if _cabeb .Prev !=nil {_ecaec .Set ("\u0050\u0072\u0065\u0076",_cabeb .Prev .GetContext ().GetContainingPdfObject ());};if _cabeb .Last !=nil {_ecaec .Set ("\u004c\u0061\u0073\u0074",_cabeb .Last .GetContext ().GetContainingPdfObject ());};if _cabeb .Parent !=nil {_ecaec .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_cabeb .Parent .GetContext ().GetContainingPdfObject ());};return _bafe ;};
// PdfAnnotationCircle represents Circle annotations.
// (Section 12.5.6.8).
type PdfAnnotationCircle struct{*PdfAnnotation ;*PdfAnnotationMarkup ;BS _cb .PdfObject ;IC _cb .PdfObject ;BE _cb .PdfObject ;RD _cb .PdfObject ;};
// GetRuneMetrics returns the character metrics for the specified rune.
// A bool flag is returned to indicate whether or not the entry was found.
func (_gbcf pdfCIDFontType0 )GetRuneMetrics (r rune )(_af .CharMetrics ,bool ){return _af .CharMetrics {Wx :_gbcf ._eccee },true ;};
// NewPdfAnnotationPopup returns a new popup annotation.
func NewPdfAnnotationPopup ()*PdfAnnotationPopup {_gab :=NewPdfAnnotation ();_cdd :=&PdfAnnotationPopup {};_cdd .PdfAnnotation =_gab ;_gab .SetContext (_cdd );return _cdd ;};func (_aagba *pdfCIDFontType2 )baseFields ()*fontCommon {return &_aagba .fontCommon };
// PdfActionType represents an action type in PDF (section 12.6.4 p. 417).
type PdfActionType string ;func (_egcda *PdfPage )getParentResources ()(*PdfPageResources ,error ){_bdaea :=_egcda .Parent ;for _bdaea !=nil {_eddbf ,_agfce :=_cb .GetDict (_bdaea );if !_agfce {_dbe .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 ,_bc .New ("i\u006e\u0076\u0061\u006cid\u0020p\u0061\u0072\u0065\u006e\u0074 \u006f\u0062\u006a\u0065\u0063\u0074");};if _dcdef :=_eddbf .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");_dcdef !=nil {_bgbbc ,_ggedf :=_cb .GetDict (_dcdef );if !_ggedf {return nil ,_bc .New ("i\u006e\u0076\u0061\u006cid\u0020r\u0065\u0073\u006f\u0075\u0072c\u0065\u0020\u0064\u0069\u0063\u0074");};_gcdbf ,_caceg :=NewPdfPageResourcesFromDict (_bgbbc );if _caceg !=nil {return nil ,_caceg ;};return _gcdbf ,nil ;};_bdaea =_eddbf .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");};return nil ,nil ;};
// String returns a string that describes `base`.
func (_fgbgg fontCommon )String ()string {return _c .Sprintf ("\u0046\u004f\u004e\u0054\u007b\u0025\u0073\u007d",_fgbgg .coreString ());};
// GetContainingPdfObject returns the containing object for the PdfField, i.e. an indirect object
// containing the field dictionary.
func (_dcaf *PdfField )GetContainingPdfObject ()_cb .PdfObject {return _dcaf ._addef };
// AppendContentStream adds content stream by string. Appends to the last
// contentstream instance if many.
func (_acbec *PdfPage )AppendContentStream (contentStr string )error {_acaeb ,_gcecg :=_acbec .GetContentStreams ();if _gcecg !=nil {return _gcecg ;};if len (_acaeb )==0{_acaeb =[]string {contentStr };return _acbec .SetContentStreams (_acaeb ,_cb .NewFlateEncoder ());};var _bgegf _bbb .Buffer ;_bgegf .WriteString (_acaeb [len (_acaeb )-1]);_bgegf .WriteString ("\u000a");_bgegf .WriteString (contentStr );_acaeb [len (_acaeb )-1]=_bgegf .String ();return _acbec .SetContentStreams (_acaeb ,_cb .NewFlateEncoder ());};func (_gafe *PdfReader )buildPageList (_baafb *_cb .PdfIndirectObject ,_eebae *_cb .PdfIndirectObject ,_fffdf map[_cb .PdfObject ]struct{})error {if _baafb ==nil {return nil ;};if _ ,_egeec :=_fffdf [_baafb ];_egeec {_dbe .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",_baafb .ObjectNumber );return nil ;};_fffdf [_baafb ]=struct{}{};_fbdb ,_ccce :=_baafb .PdfObject .(*_cb .PdfObjectDictionary );if !_ccce {return _bc .New ("n\u006f\u0064\u0065\u0020no\u0074 \u0061\u0020\u0064\u0069\u0063t\u0069\u006f\u006e\u0061\u0072\u0079");};_baeaa ,_ccce :=(*_fbdb ).Get ("\u0054\u0079\u0070\u0065").(*_cb .PdfObjectName );if !_ccce {if _fbdb .Get ("\u004b\u0069\u0064\u0073")==nil {return _bc .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");};_dbe .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.");_baeaa =_cb .MakeName ("\u0050\u0061\u0067e\u0073");_fbdb .Set ("\u0054\u0079\u0070\u0065",_baeaa );};_dbe .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",*_baeaa ,_baafb );if *_baeaa =="\u0050\u0061\u0067\u0065"{_fagdb ,_fbbda :=_gafe .newPdfPageFromDict (_fbdb );if _fbbda !=nil {return _fbbda ;};_fagdb .setContainer (_baafb );if _eebae !=nil {_fbdb .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_eebae );};_gafe ._dfcdb =append (_gafe ._dfcdb ,_baafb );_gafe .PageList =append (_gafe .PageList ,_fagdb );return nil ;};if *_baeaa !="\u0050\u0061\u0067e\u0073"{_dbe .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",_baeaa );return _bc .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 _eebae !=nil {_fbdb .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_eebae );};if !_gafe ._cbfab {_ebebf :=_gafe .traverseObjectData (_baafb );if _ebebf !=nil {return _ebebf ;};};_acgcg ,_ccaefg :=_gafe ._gfecg .Resolve (_fbdb .Get ("\u004b\u0069\u0064\u0073"));if _ccaefg !=nil {_dbe .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 _ccaefg ;};var _eecf *_cb .PdfObjectArray ;_eecf ,_ccce =_acgcg .(*_cb .PdfObjectArray );if !_ccce {_agee ,_acfc :=_acgcg .(*_cb .PdfIndirectObject );if !_acfc {return _bc .New ("\u0069\u006e\u0076\u0061li\u0064\u0020\u004b\u0069\u0064\u0073\u0020\u006f\u0062\u006a\u0065\u0063\u0074");};_eecf ,_ccce =_agee .PdfObject .(*_cb .PdfObjectArray );if !_ccce {return _bc .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");};};_dbe .Log .Trace ("\u004b\u0069\u0064\u0073\u003a\u0020\u0025\u0073",_eecf );for _eaaac ,_gcfd :=range _eecf .Elements (){_fffbf ,_ccca :=_cb .GetIndirect (_gcfd );if !_ccca {_dbe .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",_fffbf );return _bc .New ("\u0070a\u0067\u0065\u0020\u006e\u006f\u0074\u0020\u0069\u006e\u0064\u0069r\u0065\u0063\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074");};_eecf .Set (_eaaac ,_fffbf );_ccaefg =_gafe .buildPageList (_fffbf ,_baafb ,_fffdf );if _ccaefg !=nil {return _ccaefg ;};};return nil ;};type pdfSignDictionary struct{*_cb .PdfObjectDictionary ;_adcfc *SignatureHandler ;_bdfbd *PdfSignature ;_bddgd int64 ;_cabf int ;_gfcab int ;_bdfge int ;_edbbe int ;};
// NewPdfActionGoTo3DView returns a new "goTo3DView" action.
func NewPdfActionGoTo3DView ()*PdfActionGoTo3DView {_cbb :=NewPdfAction ();_dde :=&PdfActionGoTo3DView {};_dde .PdfAction =_cbb ;_cbb .SetContext (_dde );return _dde ;};func (_dafa *PdfReader )newPdfAnnotationLineFromDict (_bacg *_cb .PdfObjectDictionary )(*PdfAnnotationLine ,error ){_dgb :=PdfAnnotationLine {};_fbbcf ,_fce :=_dafa .newPdfAnnotationMarkupFromDict (_bacg );if _fce !=nil {return nil ,_fce ;};_dgb .PdfAnnotationMarkup =_fbbcf ;_dgb .L =_bacg .Get ("\u004c");_dgb .BS =_bacg .Get ("\u0042\u0053");_dgb .LE =_bacg .Get ("\u004c\u0045");_dgb .IC =_bacg .Get ("\u0049\u0043");_dgb .LL =_bacg .Get ("\u004c\u004c");_dgb .LLE =_bacg .Get ("\u004c\u004c\u0045");_dgb .Cap =_bacg .Get ("\u0043\u0061\u0070");_dgb .IT =_bacg .Get ("\u0049\u0054");_dgb .LLO =_bacg .Get ("\u004c\u004c\u004f");_dgb .CP =_bacg .Get ("\u0043\u0050");_dgb .Measure =_bacg .Get ("\u004de\u0061\u0073\u0075\u0072\u0065");_dgb .CO =_bacg .Get ("\u0043\u004f");return &_dgb ,nil ;};var _ebecb _d .Time ;
// NewPdfOutlineItem returns an initialized PdfOutlineItem.
func NewPdfOutlineItem ()*PdfOutlineItem {_dgcfg :=&PdfOutlineItem {_gaga :_cb .MakeIndirectObject (_cb .MakeDict ())};_dgcfg ._dfaeg =_dgcfg ;return _dgcfg ;};
// Encoder returns the font's text encoder.
func (_gdaa *PdfFont )Encoder ()_ccb .TextEncoder {_fcffc :=_gdaa .actualFont ();if _fcffc ==nil {_dbe .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",_gdaa ._cdfe );return nil ;};return _fcffc .Encoder ();};
// 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 (_aefca *PdfFont )GetRuneMetrics (r rune )(CharMetrics ,bool ){_cdcf :=_aefca .actualFont ();if _cdcf ==nil {_dbe .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",_aefca ._cdfe );return _af .CharMetrics {},false ;};if _cdba ,_cfga :=_cdcf .GetRuneMetrics (r );_cfga {return _cdba ,true ;};if _ceba ,_eaed :=_aefca .GetFontDescriptor ();_eaed ==nil &&_ceba !=nil {return _af .CharMetrics {Wx :_ceba ._bdfag },true ;};_dbe .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",_aefca );return _af .CharMetrics {},false ;};func _fefbc (_ffcfdb *_cb .PdfObjectDictionary )(*PdfShadingType6 ,error ){_gdcbg :=PdfShadingType6 {};_fdcb :=_ffcfdb .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065");if _fdcb ==nil {_dbe .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 ;};_fcaef ,_fdbcc :=_fdcb .(*_cb .PdfObjectInteger );if !_fdbcc {_dbe .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",_fdcb );return nil ,_cb .ErrTypeError ;};_gdcbg .BitsPerCoordinate =_fcaef ;_fdcb =_ffcfdb .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074");if _fdcb ==nil {_dbe .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 ;};_fcaef ,_fdbcc =_fdcb .(*_cb .PdfObjectInteger );if !_fdbcc {_dbe .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",_fdcb );return nil ,_cb .ErrTypeError ;};_gdcbg .BitsPerComponent =_fcaef ;_fdcb =_ffcfdb .Get ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067");if _fdcb ==nil {_dbe .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 ;};_fcaef ,_fdbcc =_fdcb .(*_cb .PdfObjectInteger );if !_fdbcc {_dbe .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",_fdcb );return nil ,_cb .ErrTypeError ;};_gdcbg .BitsPerComponent =_fcaef ;_fdcb =_ffcfdb .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");if _fdcb ==nil {_dbe .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 ;};_cgefc ,_fdbcc :=_fdcb .(*_cb .PdfObjectArray );if !_fdbcc {_dbe .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",_fdcb );return nil ,_cb .ErrTypeError ;};_gdcbg .Decode =_cgefc ;if _cgfe :=_ffcfdb .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");_cgfe !=nil {_gdcbg .Function =[]PdfFunction {};if _ccggg ,_cdedfc :=_cgfe .(*_cb .PdfObjectArray );_cdedfc {for _ ,_bgfgb :=range _ccggg .Elements (){_gfga ,_eddcf :=_abcgd (_bgfgb );if _eddcf !=nil {_dbe .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",_eddcf );return nil ,_eddcf ;};_gdcbg .Function =append (_gdcbg .Function ,_gfga );};}else {_ddddb ,_gafaa :=_abcgd (_cgfe );if _gafaa !=nil {_dbe .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",_gafaa );return nil ,_gafaa ;};_gdcbg .Function =append (_gdcbg .Function ,_ddddb );};};return &_gdcbg ,nil ;};
// C returns the value of the C component of the color.
func (_cebcc *PdfColorCalRGB )C ()float64 {return float64 (_cebcc [2])};
// Write writes the Appender output to io.Writer.
// It can only be called once and further invocations will result in an error.
func (_dgbe *PdfAppender )Write (w _bb .Writer )error {if _dgbe ._cfgf {return _bc .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");};_acae :=NewPdfWriter ();_eebg ,_cgd :=_cb .GetDict (_acae ._febaa );if !_cgd {return _bc .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");};_bfc ,_cgd :=_eebg .Get ("\u004b\u0069\u0064\u0073").(*_cb .PdfObjectArray );if !_cgd {return _bc .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");};_aggb ,_cgd :=_eebg .Get ("\u0043\u006f\u0075n\u0074").(*_cb .PdfObjectInteger );if !_cgd {return _bc .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");};_eaaa :=_dgbe ._acgg ._gfecg ;_dcde :=_eaaa .GetTrailer ();if _dcde ==nil {return _bc .New ("\u006di\u0073s\u0069\u006e\u0067\u0020\u0074\u0072\u0061\u0069\u006c\u0065\u0072");};_bfbbb ,_cgd :=_cb .GetIndirect (_dcde .Get ("\u0052\u006f\u006f\u0074"));if !_cgd {return _bc .New ("c\u0061\u0074\u0061\u006c\u006f\u0067 \u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0065\u0072 \u006e\u006f\u0074 \u0066o\u0075\u006e\u0064");};_bcea ,_cgd :=_cb .GetDict (_bfbbb );if !_cgd {_dbe .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",_bfbbb ,*_dcde );return _bc .New ("\u006di\u0073s\u0069\u006e\u0067\u0020\u0063\u0061\u0074\u0061\u006c\u006f\u0067");};for _ ,_deae :=range _bcea .Keys (){if _acae ._fgfb .Get (_deae )==nil {_ccaa :=_bcea .Get (_deae );_acae ._fgfb .Set (_deae ,_ccaa );};};if _dgbe ._abbe !=nil {_acae ._fgfb .Set ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d",_dgbe ._abbe .ToPdfObject ());_dgbe .updateObjectsDeep (_dgbe ._abbe .ToPdfObject (),nil );};_dgbe .addNewObject (_acae ._ggdd );_dgbe .addNewObject (_acae ._becda );_dffb :=false ;if len (_dgbe ._acgg .PageList )!=len (_dgbe ._dgce ){_dffb =true ;}else {for _ega :=range _dgbe ._acgg .PageList {switch {case _dgbe ._dgce [_ega ]==_dgbe ._acgg .PageList [_ega ]:case _dgbe ._dgce [_ega ]==_dgbe .Reader .PageList [_ega ]:default:_dffb =true ;};if _dffb {break ;};};};if _dffb {_dgbe .updateObjectsDeep (_acae ._febaa ,nil );}else {_dgbe ._bbea [_acae ._febaa ]=struct{}{};};_acae ._febaa .ObjectNumber =_dgbe .Reader ._dbbag .ObjectNumber ;_dgbe ._bgbd [_acae ._febaa ]=_dgbe .Reader ._dbbag .ObjectNumber ;_fgdd :=[]_cb .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 _ ,_adfg :=range _dgbe ._dgce {_aeg :=_adfg .ToPdfObject ();*_aggb =*_aggb +1;if _gdcc ,_cdf :=_aeg .(*_cb .PdfIndirectObject );_cdf &&_gdcc .GetParser ()==_dgbe ._acgg ._gfecg {_bfc .Append (&_gdcc .PdfObjectReference );continue ;};if _efeb ,_eegg :=_cb .GetDict (_aeg );_eegg {_cgde ,_cff :=_efeb .Get ("\u0050\u0061\u0072\u0065\u006e\u0074").(*_cb .PdfIndirectObject );for _cff {_dbe .Log .Trace ("\u0050a\u0067e\u0020\u0050\u0061\u0072\u0065\u006e\u0074\u003a\u0020\u0025\u0054",_cgde );_ceefg ,_cgdeg :=_cgde .PdfObject .(*_cb .PdfObjectDictionary );if !_cgdeg {return _bc .New ("i\u006e\u0076\u0061\u006cid\u0020P\u0061\u0072\u0065\u006e\u0074 \u006f\u0062\u006a\u0065\u0063\u0074");};for _ ,_gebe :=range _fgdd {_dbe .Log .Trace ("\u0046\u0069\u0065\u006c\u0064\u0020\u0025\u0073",_gebe );if _efeb .Get (_gebe )!=nil {_dbe .Log .Trace ("\u002d \u0070a\u0067\u0065\u0020\u0068\u0061s\u0020\u0061l\u0072\u0065\u0061\u0064\u0079");continue ;};if _fecc :=_ceefg .Get (_gebe );_fecc !=nil {_dbe .Log .Trace ("\u0049\u006e\u0068\u0065ri\u0074\u0069\u006e\u0067\u0020\u0066\u0069\u0065\u006c\u0064\u0020\u0025\u0073",_gebe );_efeb .Set (_gebe ,_fecc );};};_cgde ,_cff =_ceefg .Get ("\u0050\u0061\u0072\u0065\u006e\u0074").(*_cb .PdfIndirectObject );_dbe .Log .Trace ("\u004ee\u0078t\u0020\u0070\u0061\u0072\u0065\u006e\u0074\u003a\u0020\u0025\u0054",_ceefg .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"));};_efeb .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_acae ._febaa );};_dgbe .updateObjectsDeep (_aeg ,nil );_bfc .Append (_aeg );};if _ ,_eebb :=_dgbe ._fdbd .Seek (0,_bb .SeekStart );_eebb !=nil {return _eebb ;};_ffgb :=make (map[SignatureHandler ]_bb .Writer );_bcec :=_cb .MakeArray ();for _ ,_defg :=range _dgbe ._ceda {if _dfef ,_adaa :=_cb .GetIndirect (_defg );_adaa {if _fdeb ,_bcgg :=_dfef .PdfObject .(*pdfSignDictionary );_bcgg {_ebbcb :=*_fdeb ._adcfc ;var _cbbeb error ;_ffgb [_ebbcb ],_cbbeb =_ebbcb .NewDigest (_fdeb ._bdfbd );if _cbbeb !=nil {return _cbbeb ;};_bcec .Append (_cb .MakeInteger (0xfffff),_cb .MakeInteger (0xfffff));};};};if _bcec .Len ()> 0{_bcec .Append (_cb .MakeInteger (0xfffff),_cb .MakeInteger (0xfffff));};for _ ,_begc :=range _dgbe ._ceda {if _fgcgd ,_dfda :=_cb .GetIndirect (_begc );_dfda {if _bebb ,_agdc :=_fgcgd .PdfObject .(*pdfSignDictionary );_agdc {_bebb .Set ("\u0042y\u0074\u0065\u0052\u0061\u006e\u0067e",_bcec );};};};_dfdf :=len (_ffgb )> 0;var _defb _bb .Reader =_dgbe ._fdbd ;if _dfdf {_fdfdd :=make ([]_bb .Writer ,0,len (_ffgb ));for _ ,_bgbg :=range _ffgb {_fdfdd =append (_fdfdd ,_bgbg );};_defb =_bb .TeeReader (_dgbe ._fdbd ,_bb .MultiWriter (_fdfdd ...));};_fgac ,_fed :=_bb .Copy (w ,_defb );if _fed !=nil {return _fed ;};if len (_dgbe ._ceda )==0{return nil ;};_acae ._aedbee =_fgac ;_acae .ObjNumOffset =_dgbe ._caff ;_acae ._gedaa =true ;_acae ._afefg =_dgbe ._cfg ;_acae ._adfgd =_dgbe ._bdeb ;_acae ._dbbcc =_dgbe ._fdfd ;_acae ._ccefeg =_dgbe ._acgg .PdfVersion ().Minor ;_acae ._bedca =_dgbe ._bgbd ;_fgfd :=_dgbe ._cecd .GetXrefType ();if _fgfd !=nil {_fedf :=*_fgfd ==_cb .XrefTypeObjectStream ;_acae ._ddfdba =&_fedf ;};_acae ._bbbbd =map[_cb .PdfObject ]struct{}{};_acae ._bgega =[]_cb .PdfObject {};for _ ,_gff :=range _dgbe ._ceda {if _ ,_dbeg :=_dgbe ._bbea [_gff ];_dbeg {continue ;};_acae .addObject (_gff );};_fgcf :=w ;if _dfdf {_fgcf =_bbb .NewBuffer (nil );};if _bebgc :=_acae .Write (_fgcf );_bebgc !=nil {return _bebgc ;};if _dfdf {_efbe :=_fgcf .(*_bbb .Buffer ).Bytes ();_cdccee :=_cb .MakeArray ();var _bdea []*pdfSignDictionary ;var _dfee int64 ;for _ ,_dcb :=range _acae ._bgega {if _fgce ,_defe :=_cb .GetIndirect (_dcb );_defe {if _ffff ,_bbdcb :=_fgce .PdfObject .(*pdfSignDictionary );_bbdcb {_bdea =append (_bdea ,_ffff );_ecgbb :=_ffff ._bddgd +int64 (_ffff ._cabf );_cdccee .Append (_cb .MakeInteger (_dfee ),_cb .MakeInteger (_ecgbb -_dfee ));_dfee =_ffff ._bddgd +int64 (_ffff ._gfcab );};};};_cdccee .Append (_cb .MakeInteger (_dfee ),_cb .MakeInteger (_fgac +int64 (len (_efbe ))-_dfee ));_accg :=[]byte (_cdccee .WriteString ());for _ ,_baed :=range _bdea {_afca :=int (_baed ._bddgd -_fgac );for _geda :=_baed ._bdfge ;_geda < _baed ._edbbe ;_geda ++{_efbe [_afca +_geda ]=' ';};_cfad :=_efbe [_afca +_baed ._bdfge :_afca +_baed ._edbbe ];copy (_cfad ,_accg );};var _cffa int ;for _ ,_agad :=range _bdea {_caab :=int (_agad ._bddgd -_fgac );_cdeb :=_efbe [_cffa :_caab +_agad ._cabf ];_gddc :=*_agad ._adcfc ;_ffgb [_gddc ].Write (_cdeb );_cffa =_caab +_agad ._gfcab ;};for _ ,_bda :=range _bdea {_bece :=_efbe [_cffa :];_gda :=*_bda ._adcfc ;_ffgb [_gda ].Write (_bece );};for _ ,_dcec :=range _bdea {_fdef :=int (_dcec ._bddgd -_fgac );_bfffc :=*_dcec ._adcfc ;_facd :=_ffgb [_bfffc ];if _aff :=_bfffc .Sign (_dcec ._bdfbd ,_facd );_aff !=nil {return _aff ;};_dcec ._bdfbd .ByteRange =_cdccee ;_dffe :=[]byte (_dcec ._bdfbd .Contents .WriteString ());for _bdfg :=_dcec ._bdfge ;_bdfg < _dcec ._edbbe ;_bdfg ++{_efbe [_fdef +_bdfg ]=' ';};for _agf :=_dcec ._cabf ;_agf < _dcec ._gfcab ;_agf ++{_efbe [_fdef +_agf ]=' ';};_dbega :=_efbe [_fdef +_dcec ._bdfge :_fdef +_dcec ._edbbe ];copy (_dbega ,_accg );_dbega =_efbe [_fdef +_dcec ._cabf :_fdef +_dcec ._gfcab ];copy (_dbega ,_dffe );};_fgdda :=_bbb .NewBuffer (_efbe );_ ,_fed =_bb .Copy (w ,_fgdda );if _fed !=nil {return _fed ;};};_dgbe ._cfgf =true ;return nil ;};func _cebeb ()string {return _dbe .Version };func (_beg *PdfReader )newPdfActionRenditionFromDict (_fdadf *_cb .PdfObjectDictionary )(*PdfActionRendition ,error ){return &PdfActionRendition {R :_fdadf .Get ("\u0052"),AN :_fdadf .Get ("\u0041\u004e"),OP :_fdadf .Get ("\u004f\u0050"),JS :_fdadf .Get ("\u004a\u0053")},nil ;};
// ToPdfObject returns a PDF object representation of the outline destination.
func (_cbecb OutlineDest )ToPdfObject ()_cb .PdfObject {if (_cbecb .PageObj ==nil &&_cbecb .Page < 0)||_cbecb .Mode ==""{return _cb .MakeNull ();};_aecd :=_cb .MakeArray ();if _cbecb .PageObj !=nil {_aecd .Append (_cbecb .PageObj );}else {_aecd .Append (_cb .MakeInteger (_cbecb .Page ));};_aecd .Append (_cb .MakeName (_cbecb .Mode ));switch _cbecb .Mode {case "\u0046\u0069\u0074","\u0046\u0069\u0074\u0042":case "\u0046\u0069\u0074\u0048","\u0046\u0069\u0074B\u0048":_aecd .Append (_cb .MakeFloat (_cbecb .Y ));case "\u0046\u0069\u0074\u0056","\u0046\u0069\u0074B\u0056":_aecd .Append (_cb .MakeFloat (_cbecb .X ));case "\u0058\u0059\u005a":_aecd .Append (_cb .MakeFloat (_cbecb .X ));_aecd .Append (_cb .MakeFloat (_cbecb .Y ));_aecd .Append (_cb .MakeFloat (_cbecb .Zoom ));default:_aecd .Set (1,_cb .MakeName ("\u0046\u0069\u0074"));};return _aecd ;};
// NewPdfWriter initializes a new PdfWriter.
func NewPdfWriter ()PdfWriter {_cbcdc :=PdfWriter {};_cbcdc ._bbbbd =map[_cb .PdfObject ]struct{}{};_cbcdc ._bgega =[]_cb .PdfObject {};_cbcdc ._gbcba =map[_cb .PdfObject ][]*_cb .PdfObjectDictionary {};_cbcdc ._deebb =map[_cb .PdfObject ]struct{}{};_cbcdc ._ecaee =1;_cbcdc ._ccefeg =3;_gggag :=_cb .MakeDict ();_bafab :=[]struct{_egfad _cb .PdfObjectName ;_gbbbeb string ;}{{"\u0050\u0072\u006f\u0064\u0075\u0063\u0065\u0072",_fcccb ()},{"\u0043r\u0065\u0061\u0074\u006f\u0072",_dbaf ()},{"\u0041\u0075\u0074\u0068\u006f\u0072",_fddgg ()},{"\u0053u\u0062\u006a\u0065\u0063\u0074",_gddb ()},{"\u0054\u0069\u0074l\u0065",_cegcd ()},{"\u004b\u0065\u0079\u0077\u006f\u0072\u0064\u0073",_cgddc ()}};for _ ,_fdda :=range _bafab {if _fdda ._gbbbeb !=""{_gggag .Set (_fdda ._egfad ,_cb .MakeString (_fdda ._gbbbeb ));};};if _ggcb :=_dggd ();!_ggcb .IsZero (){if _dfccd ,_caeag :=NewPdfDateFromTime (_ggcb );_caeag ==nil {_gggag .Set ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065",_dfccd .ToPdfObject ());};};if _fdagd :=_cgcbg ();!_fdagd .IsZero (){if _aabb ,_fgbb :=NewPdfDateFromTime (_fdagd );_fgbb ==nil {_gggag .Set ("\u004do\u0064\u0044\u0061\u0074\u0065",_aabb .ToPdfObject ());};};_cfdag :=_cb .PdfIndirectObject {};_cfdag .PdfObject =_gggag ;_cbcdc ._ggdd =&_cfdag ;_cbcdc .addObject (&_cfdag );_agbba :=_cb .PdfIndirectObject {};_bdbgd :=_cb .MakeDict ();_bdbgd .Set ("\u0054\u0079\u0070\u0065",_cb .MakeName ("\u0043a\u0074\u0061\u006c\u006f\u0067"));_agbba .PdfObject =_bdbgd ;_cbcdc ._becda =&_agbba ;_cbcdc .addObject (_cbcdc ._becda );_cgcbgb :=_cb .PdfIndirectObject {};_faeaf :=_cb .MakeDict ();_faeaf .Set ("\u0054\u0079\u0070\u0065",_cb .MakeName ("\u0050\u0061\u0067e\u0073"));_bdcg :=_cb .PdfObjectArray {};_faeaf .Set ("\u004b\u0069\u0064\u0073",&_bdcg );_faeaf .Set ("\u0043\u006f\u0075n\u0074",_cb .MakeInteger (0));_cgcbgb .PdfObject =_faeaf ;_cbcdc ._febaa =&_cgcbgb ;_cbcdc ._dfebc =map[_cb .PdfObject ]struct{}{};_cbcdc .addObject (_cbcdc ._febaa );_bdbgd .Set ("\u0050\u0061\u0067e\u0073",&_cgcbgb );_cbcdc ._fgfb =_bdbgd ;_dbe .Log .Trace ("\u0043\u0061\u0074\u0061\u006c\u006f\u0067\u0020\u0025\u0073",_agbba );return _cbcdc ;};
// ColorFromFloats returns a new PdfColor based on the input slice of color
// components.
func (_ffbbd *PdfColorspaceICCBased )ColorFromFloats (vals []float64 )(PdfColor ,error ){if _ffbbd .Alternate ==nil {if _ffbbd .N ==1{_abcgf :=NewPdfColorspaceDeviceGray ();return _abcgf .ColorFromFloats (vals );}else if _ffbbd .N ==3{_eece :=NewPdfColorspaceDeviceRGB ();return _eece .ColorFromFloats (vals );}else if _ffbbd .N ==4{_dafb :=NewPdfColorspaceDeviceCMYK ();return _dafb .ColorFromFloats (vals );}else {return nil ,_bc .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 _ffbbd .Alternate .ColorFromFloats (vals );};type modelManager struct{_geed map[PdfModel ]_cb .PdfObject ;_dcff map[_cb .PdfObject ]PdfModel ;};func (_fffd *PdfReader )newPdfOutlineItemFromIndirectObject (_badb *_cb .PdfIndirectObject )(*PdfOutlineItem ,error ){_adbga ,_edbcg :=_badb .PdfObject .(*_cb .PdfObjectDictionary );if !_edbcg {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");};_bdaeb :=NewPdfOutlineItem ();_dedcf :=_adbga .Get ("\u0054\u0069\u0074l\u0065");if _dedcf ==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");};_cdcaf ,_fbdde :=_cb .GetString (_dedcf );if !_fbdde {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",_dedcf );};_bdaeb .Title =_cdcaf ;if _gfecf :=_adbga .Get ("\u0043\u006f\u0075n\u0074");_gfecf !=nil {_efgeg ,_gcad :=_gfecf .(*_cb .PdfObjectInteger );if !_gcad {return nil ,_c .Errorf ("\u0063o\u0075\u006e\u0074\u0020n\u006f\u0074\u0020\u0061\u006e \u0069n\u0074e\u0067\u0065\u0072\u0020\u0028\u0025\u0054)",_gfecf );};_gdgb :=int64 (*_efgeg );_bdaeb .Count =&_gdgb ;};if _effc :=_adbga .Get ("\u0044\u0065\u0073\u0074");_effc !=nil {_bdaeb .Dest =_cb .ResolveReference (_effc );if !_fffd ._cbfab {_bddgc :=_fffd .traverseObjectData (_bdaeb .Dest );if _bddgc !=nil {return nil ,_bddgc ;};};};if _fdcfb :=_adbga .Get ("\u0041");_fdcfb !=nil {_bdaeb .A =_cb .ResolveReference (_fdcfb );if !_fffd ._cbfab {_aggda :=_fffd .traverseObjectData (_bdaeb .A );if _aggda !=nil {return nil ,_aggda ;};};};if _eded :=_adbga .Get ("\u0053\u0045");_eded !=nil {_bdaeb .SE =nil ;};if _fgdca :=_adbga .Get ("\u0043");_fgdca !=nil {_bdaeb .C =_cb .ResolveReference (_fgdca );};if _bfefe :=_adbga .Get ("\u0046");_bfefe !=nil {_bdaeb .F =_cb .ResolveReference (_bfefe );};return _bdaeb ,nil ;};
// Has checks if flag fl is set in flag and returns true if so, false otherwise.
func (_ffaae FieldFlag )Has (fl FieldFlag )bool {return (_ffaae .Mask ()&fl .Mask ())> 0};
// PdfFieldText represents a text field where user can enter text.
type PdfFieldText struct{*PdfField ;DA *_cb .PdfObjectString ;Q *_cb .PdfObjectInteger ;DS *_cb .PdfObjectString ;RV _cb .PdfObject ;MaxLen *_cb .PdfObjectInteger ;};
// PdfColorspaceDeviceRGB represents an RGB colorspace.
type PdfColorspaceDeviceRGB struct{};
// ToPdfObject returns the PDF representation of the shading dictionary.
func (_ffbce *PdfShading )ToPdfObject ()_cb .PdfObject {_cbff :=_ffbce ._gfdg ;_febge ,_aefa :=_ffbce .getShadingDict ();if _aefa !=nil {_dbe .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 _ffbce .ShadingType !=nil {_febge .Set ("S\u0068\u0061\u0064\u0069\u006e\u0067\u0054\u0079\u0070\u0065",_ffbce .ShadingType );};if _ffbce .ColorSpace !=nil {_febge .Set ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065",_ffbce .ColorSpace .ToPdfObject ());};if _ffbce .Background !=nil {_febge .Set ("\u0042\u0061\u0063\u006b\u0067\u0072\u006f\u0075\u006e\u0064",_ffbce .Background );};if _ffbce .BBox !=nil {_febge .Set ("\u0042\u0042\u006f\u0078",_ffbce .BBox .ToPdfObject ());};if _ffbce .AntiAlias !=nil {_febge .Set ("\u0041n\u0074\u0069\u0041\u006c\u0069\u0061s",_ffbce .AntiAlias );};return _cbff ;};
// 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 (_gcebd *PdfReader )GetObjectNums ()[]int {return _gcebd ._gfecg .GetObjectNums ()};
// PdfAction represents an action in PDF (section 12.6 p. 412).
type PdfAction struct{_ab PdfModel ;Type _cb .PdfObject ;S _cb .PdfObject ;Next _cb .PdfObject ;_fc *_cb .PdfIndirectObject ;};
// PdfField contains the common attributes of a form field. The context object contains the specific field data
// which can represent a button, text, choice or signature.
// The PdfField is typically not used directly, but is encapsulated by the more specific field types such as
// PdfFieldButton etc (i.e. the context attribute).
type PdfField struct{_cdfge PdfModel ;_addef *_cb .PdfIndirectObject ;_cffd *bool ;Parent *PdfField ;Annotations []*PdfAnnotationWidget ;Kids []*PdfField ;FT *_cb .PdfObjectName ;T *_cb .PdfObjectString ;TU *_cb .PdfObjectString ;TM *_cb .PdfObjectString ;Ff *_cb .PdfObjectInteger ;V _cb .PdfObject ;DV _cb .PdfObject ;AA _cb .PdfObject ;};
// GetContext returns the PdfField context which is the more specific field data type, e.g. PdfFieldButton
// for a button field.
func (_gbad *PdfField )GetContext ()PdfModel {return _gbad ._cdfge };
// IsCheckbox returns true if the button field represents a checkbox, false otherwise.
func (_fcde *PdfFieldButton )IsCheckbox ()bool {return _fcde .GetType ()==ButtonTypeCheckbox };
// 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 (_abbb *PdfColorspaceSpecialPattern )ColorToRGB (color PdfColor )(PdfColor ,error ){_ccgdf ,_ddaf :=color .(*PdfColorPattern );if !_ddaf {_dbe .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 _ccgdf .Color ==nil {return color ,nil ;};if _abbb .UnderlyingCS ==nil {return nil ,_bc .New ("\u0075n\u0064\u0065\u0072\u006cy\u0069\u006e\u0067\u0020\u0043S\u0020n\u006ft\u0020\u0064\u0065\u0066\u0069\u006e\u0065d");};return _abbb .UnderlyingCS .ColorToRGB (_ccgdf .Color );};
// ContentStreamWrapper wraps the Page's contentstream into q ... Q blocks.
type ContentStreamWrapper interface{WrapContentStream (_faegd *PdfPage )error ;};
// PdfAnnotationSquare represents Square annotations.
// (Section 12.5.6.8).
type PdfAnnotationSquare struct{*PdfAnnotation ;*PdfAnnotationMarkup ;BS _cb .PdfObject ;IC _cb .PdfObject ;BE _cb .PdfObject ;RD _cb .PdfObject ;};
// ToPdfObject implements interface PdfModel.
func (_abagf *PdfFilespec )ToPdfObject ()_cb .PdfObject {_bfbca :=_abagf .getDict ();_bfbca .Clear ();_bfbca .Set ("\u0054\u0079\u0070\u0065",_cb .MakeName ("\u0046\u0069\u006c\u0065\u0073\u0070\u0065\u0063"));_bfbca .SetIfNotNil ("\u0046\u0053",_abagf .FS );_bfbca .SetIfNotNil ("\u0046",_abagf .F );_bfbca .SetIfNotNil ("\u0055\u0046",_abagf .UF );_bfbca .SetIfNotNil ("\u0044\u004f\u0053",_abagf .DOS );_bfbca .SetIfNotNil ("\u004d\u0061\u0063",_abagf .Mac );_bfbca .SetIfNotNil ("\u0055\u006e\u0069\u0078",_abagf .Unix );_bfbca .SetIfNotNil ("\u0049\u0044",_abagf .ID );_bfbca .SetIfNotNil ("\u0056",_abagf .V );_bfbca .SetIfNotNil ("\u0045\u0046",_abagf .EF );_bfbca .SetIfNotNil ("\u0052\u0046",_abagf .RF );_bfbca .SetIfNotNil ("\u0044\u0065\u0073\u0063",_abagf .Desc );_bfbca .SetIfNotNil ("\u0043\u0049",_abagf .CI );return _abagf ._fdfg ;};
// Encoder returns the font's text encoder.
func (_gagd pdfFontType0 )Encoder ()_ccb .TextEncoder {return _gagd ._ggdg };
// 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 (_efcd DefaultImageHandler )Compress (input *Image ,quality int64 )(*Image ,error ){return input ,nil ;};
// GetNumComponents returns the number of color components (1 for grayscale).
func (_adaf *PdfColorDeviceGray )GetNumComponents ()int {return 1};
// AcroFormRepairOptions contains options for rebuilding the AcroForm.
type AcroFormRepairOptions struct{};
// GetPageAsIndirectObject returns the page as a dictionary within an PdfIndirectObject.
func (_cfgfdc *PdfPage )GetPageAsIndirectObject ()*_cb .PdfIndirectObject {return _cfgfdc ._adbf };
// Y returns the value of the yellow component of the color.
func (_dbegd *PdfColorDeviceCMYK )Y ()float64 {return float64 (_dbegd [2])};
// ToPdfObject implements interface PdfModel.
func (_gecb *PdfAnnotationSound )ToPdfObject ()_cb .PdfObject {_gecb .PdfAnnotation .ToPdfObject ();_cefd :=_gecb ._efd ;_daaa :=_cefd .PdfObject .(*_cb .PdfObjectDictionary );_gecb .PdfAnnotationMarkup .appendToPdfDictionary (_daaa );_daaa .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_cb .MakeName ("\u0053\u006f\u0075n\u0064"));_daaa .SetIfNotNil ("\u0053\u006f\u0075n\u0064",_gecb .Sound );_daaa .SetIfNotNil ("\u004e\u0061\u006d\u0065",_gecb .Name );return _cefd ;};func (_aebe *PdfReader )newPdfFieldSignatureFromDict (_dacb *_cb .PdfObjectDictionary )(*PdfFieldSignature ,error ){_acfd :=&PdfFieldSignature {};_eeab ,_afaa :=_cb .GetIndirect (_dacb .Get ("\u0056"));if _afaa {var _afbag error ;_acfd .V ,_afbag =_aebe .newPdfSignatureFromIndirect (_eeab );if _afbag !=nil {return nil ,_afbag ;};};_acfd .Lock ,_ =_cb .GetIndirect (_dacb .Get ("\u004c\u006f\u0063\u006b"));_acfd .SV ,_ =_cb .GetIndirect (_dacb .Get ("\u0053\u0056"));return _acfd ,nil ;};
// PdfColorspaceDeviceCMYK represents a CMYK32 colorspace.
type PdfColorspaceDeviceCMYK struct{};
// PdfAnnotationWatermark represents Watermark annotations.
// (Section 12.5.6.22).
type PdfAnnotationWatermark struct{*PdfAnnotation ;FixedPrint _cb .PdfObject ;};
// FullName returns the full name of the field as in rootname.parentname.partialname.
func (_dada *PdfField )FullName ()(string ,error ){var _gegab _bbb .Buffer ;if _dada .T ==nil {return _gegab .String (),_bc .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");};_fgae :=[]string {_dada .T .Decoded ()};_edfb :=map[*PdfField ]bool {};_edfb [_dada ]=true ;_dcggb :=_dada .Parent ;for _dcggb !=nil {if _ ,_bfe :=_edfb [_dcggb ];_bfe {return _gegab .String (),_bc .New ("\u0072\u0065\u0063\u0075rs\u0069\u0076\u0065\u0020\u0074\u0072\u0061\u0076\u0065\u0072\u0073\u0061\u006c");};if _dcggb .T ==nil {return _gegab .String (),_bc .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");};_fgae =append (_fgae ,_dcggb .T .Decoded ());_edfb [_dcggb ]=true ;_dcggb =_dcggb .Parent ;};for _efdcg :=len (_fgae )-1;_efdcg >=0;_efdcg --{_gegab .WriteString (_fgae [_efdcg ]);if _efdcg > 0{_gegab .WriteString ("\u002e");};};return _gegab .String (),nil ;};func _beeag (_eeeg *fontCommon )*pdfFontSimple {return &pdfFontSimple {fontCommon :*_eeeg }};
// PdfActionMovie represents a movie action.
type PdfActionMovie struct{*PdfAction ;Annotation _cb .PdfObject ;T _cb .PdfObject ;Operation _cb .PdfObject ;};
// 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 _bb .ReadSeeker )(*PdfFont ,error ){_gbaab ,_gabgc :=_bf .ReadAll (r );if _gabgc !=nil {_dbe .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",_gabgc );return nil ,_gabgc ;};_egea ,_gabgc :=_af .TtfParse (_bbb .NewReader (_gbaab ));if _gabgc !=nil {_dbe .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",_gabgc );return nil ,_gabgc ;};_ecgfa :=&pdfCIDFontType2 {fontCommon :fontCommon {_fbefd :"\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032"},CIDToGIDMap :_cb .MakeName ("\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079")};_bgbge :=make ([]rune ,0,len (_egea .Chars ));for _feda :=range _egea .Chars {_bgbge =append (_bgbge ,rune (_feda ));};_gf .Slice (_bgbge ,func (_ecgc ,_gbgeg int )bool {return _bgbge [_ecgc ]< _bgbge [_gbgeg ]});_gbfg :=1000.0/float64 (_egea .UnitsPerEm );if len (_egea .Widths )<=0{return nil ,_bc .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");};_debce :=_gbfg *float64 (_egea .Widths [0]);_faacd :=make (map[rune ]int );for _ ,_gceeb :=range _bgbge {_gbdg :=_egea .Chars [_gceeb ];_dafbg :=_gbfg *float64 (_egea .Widths [_gbdg ]);_faacd [_gceeb ]=int (_dafbg );};_ecgfa ._fgga =_faacd ;_ecgfa .DW =_cb .MakeInteger (int64 (_debce ));_accgb :=_cgce (_bgbge ,_faacd ,_egea .Chars );_ecgfa .W =_cb .MakeIndirectObject (_accgb );_aecbd :=_cb .MakeDict ();_aecbd .Set ("\u004f\u0072\u0064\u0065\u0072\u0069\u006e\u0067",_cb .MakeString ("\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079"));_aecbd .Set ("\u0052\u0065\u0067\u0069\u0073\u0074\u0072\u0079",_cb .MakeString ("\u0041\u0064\u006fb\u0065"));_aecbd .Set ("\u0053\u0075\u0070\u0070\u006c\u0065\u006d\u0065\u006e\u0074",_cb .MakeInteger (0));_ecgfa .CIDSystemInfo =_aecbd ;_fcfd :=&PdfFontDescriptor {FontName :_cb .MakeName (_egea .PostScriptName ),Ascent :_cb .MakeFloat (_gbfg *float64 (_egea .TypoAscender )),Descent :_cb .MakeFloat (_gbfg *float64 (_egea .TypoDescender )),CapHeight :_cb .MakeFloat (_gbfg *float64 (_egea .CapHeight )),FontBBox :_cb .MakeArrayFromFloats ([]float64 {_gbfg *float64 (_egea .Xmin ),_gbfg *float64 (_egea .Ymin ),_gbfg *float64 (_egea .Xmax ),_gbfg *float64 (_egea .Ymax )}),ItalicAngle :_cb .MakeFloat (float64 (_egea .ItalicAngle )),MissingWidth :_cb .MakeFloat (_gbfg *float64 (_egea .Widths [0]))};_gadgd ,_gabgc :=_cb .MakeStream (_gbaab ,_cb .NewFlateEncoder ());if _gabgc !=nil {_dbe .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",_gabgc );return nil ,_gabgc ;};_gadgd .PdfObjectDictionary .Set ("\u004ce\u006e\u0067\u0074\u0068\u0031",_cb .MakeInteger (int64 (len (_gbaab ))));_fcfd .FontFile2 =_gadgd ;if _egea .Bold {_fcfd .StemV =_cb .MakeInteger (120);}else {_fcfd .StemV =_cb .MakeInteger (70);};_bagg :=_cdgfg ;if _egea .IsFixedPitch {_bagg |=_dcag ;};if _egea .ItalicAngle !=0{_bagg |=_dadf ;};_fcfd .Flags =_cb .MakeInteger (int64 (_bagg ));_ecgfa ._babff =_egea .PostScriptName ;_ecgfa ._bgbb =_fcfd ;_ccaaa :=pdfFontType0 {fontCommon :fontCommon {_fbefd :"\u0054\u0079\u0070e\u0030",_babff :_egea .PostScriptName },DescendantFont :&PdfFont {_cdfe :_ecgfa },Encoding :_cb .MakeName ("\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079\u002d\u0048"),_ggdg :_egea .NewEncoder ()};if len (_egea .Chars )> 0{_ebbf :=make (map[_gb .CharCode ]rune ,len (_egea .Chars ));for _daafe ,_gfeg :=range _egea .Chars {_bfad :=_gb .CharCode (_gfeg );if _geacdd ,_bcbf :=_ebbf [_bfad ];!_bcbf ||(_bcbf &&_geacdd > _daafe ){_ebbf [_bfad ]=_daafe ;};};_ccaaa ._agag =_gb .NewToUnicodeCMap (_ebbf );};_ccbb :=PdfFont {_cdfe :&_ccaaa };return &_ccbb ,nil ;};func (_geec *PdfReader )newPdfAnnotationRichMediaFromDict (_dbcca *_cb .PdfObjectDictionary )(*PdfAnnotationRichMedia ,error ){_fgcdf :=&PdfAnnotationRichMedia {};_fgcdf .RichMediaSettings =_dbcca .Get ("\u0052\u0069\u0063\u0068\u004d\u0065\u0064\u0069\u0061\u0053\u0065\u0074t\u0069\u006e\u0067\u0073");_fgcdf .RichMediaContent =_dbcca .Get ("\u0052\u0069c\u0068\u004d\u0065d\u0069\u0061\u0043\u006f\u006e\u0074\u0065\u006e\u0074");return _fgcdf ,nil ;};
// RepairAcroForm attempts to rebuild the AcroForm fields using the widget
// annotations present in the document pages. Pass nil for the opts parameter
// in order to use the default options.
// NOTE: Currently, the opts parameter is declared in order to enable adding
// future options, but passing nil will always result in the default options
// being used.
func (_cfcg *PdfReader )RepairAcroForm (opts *AcroFormRepairOptions )error {var _bada []*PdfField ;_adcb :=map[*_cb .PdfIndirectObject ]struct{}{};for _ ,_abcac :=range _cfcg .PageList {_cbece ,_gdcac :=_abcac .GetAnnotations ();if _gdcac !=nil {return _gdcac ;};for _ ,_gcda :=range _cbece {var _afgae *PdfField ;switch _dabd :=_gcda .GetContext ().(type ){case *PdfAnnotationWidget :if _dabd ._bdcc !=nil {_afgae =_dabd ._bdcc ;break ;};if _dddba ,_cedb :=_cb .GetIndirect (_dabd .Parent );_cedb {_afgae ,_gdcac =_cfcg .newPdfFieldFromIndirectObject (_dddba ,nil );if _gdcac ==nil {break ;};_dbe .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",_dddba ,_gdcac );};if _dabd ._efd !=nil {_afgae ,_gdcac =_cfcg .newPdfFieldFromIndirectObject (_dabd ._efd ,nil );if _gdcac ==nil {break ;};_dbe .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",_dabd ._efd ,_gdcac );};};if _afgae ==nil {continue ;};if _ ,_gefb :=_adcb [_afgae ._addef ];_gefb {continue ;};_adcb [_afgae ._addef ]=struct{}{};_bada =append (_bada ,_afgae );};};if len (_bada )==0{return nil ;};if _cfcg .AcroForm ==nil {_cfcg .AcroForm =NewPdfAcroForm ();};_cfcg .AcroForm .Fields =&_bada ;return nil ;};
// NewPdfAnnotation returns an initialized generic PDF annotation model.
func NewPdfAnnotation ()*PdfAnnotation {_dega :=&PdfAnnotation {};_dega ._efd =_cb .MakeIndirectObject (_cb .MakeDict ());return _dega ;};
// 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 _cb .StreamEncoder )(*XObjectImage ,error ){_dgcag :=NewXObjectImage ();return UpdateXObjectImageFromImage (_dgcag ,img ,cs ,encoder );};
// HasXObjectByName checks if has XObject resource by name.
func (_befgc *PdfPage )HasXObjectByName (name _cb .PdfObjectName )bool {_dffde ,_afdadc :=_befgc .Resources .XObject .(*_cb .PdfObjectDictionary );if !_afdadc {return false ;};if _egeaf :=_dffde .Get (name );_egeaf !=nil {return true ;};return false ;};
// GetCharMetrics returns the char metrics for character code `code`.
func (_bgbbf pdfCIDFontType0 )GetCharMetrics (code _ccb .CharCode )(_af .CharMetrics ,bool ){_caabc :=_bgbbf ._eccee ;if _bddg ,_cgdf :=_bgbbf ._agae [code ];_cgdf {_caabc =_bddg ;};return _af .CharMetrics {Wx :_caabc },true ;};
// 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 (_cbgde []_cb .PdfObject )([]_cb .PdfObject ,error );};
// 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 ){_eagg ,_dbgcc :=_ce .Open (filePath );if _dbgcc !=nil {_dbe .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",_dbgcc );return nil ,_dbgcc ;};defer _eagg .Close ();return NewPdfFontFromTTF (_eagg );};
// GetNumComponents returns the number of color components of the colorspace device.
// Returns 4 for a CMYK32 device.
func (_ddeb *PdfColorspaceDeviceCMYK )GetNumComponents ()int {return 4};
// 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 ;_gbbec *_cb .PdfIndirectObject ;};
// 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 *_cb .PdfObjectArray ;ExtGState _cb .PdfObject ;};
// ToPdfObject returns a stream object.
func (_gdgbg *XObjectImage )ToPdfObject ()_cb .PdfObject {_cadgf :=_gdgbg ._egbff ;_gacfec :=_cadgf .PdfObjectDictionary ;if _gdgbg .Filter !=nil {_gacfec =_gdgbg .Filter .MakeStreamDict ();_cadgf .PdfObjectDictionary =_gacfec ;};_gacfec .Set ("\u0054\u0079\u0070\u0065",_cb .MakeName ("\u0058O\u0062\u006a\u0065\u0063\u0074"));_gacfec .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_cb .MakeName ("\u0049\u006d\u0061g\u0065"));_gacfec .Set ("\u0057\u0069\u0064t\u0068",_cb .MakeInteger (*(_gdgbg .Width )));_gacfec .Set ("\u0048\u0065\u0069\u0067\u0068\u0074",_cb .MakeInteger (*(_gdgbg .Height )));if _gdgbg .BitsPerComponent !=nil {_gacfec .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_cb .MakeInteger (*(_gdgbg .BitsPerComponent )));};if _gdgbg .ColorSpace !=nil {_gacfec .SetIfNotNil ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065",_gdgbg .ColorSpace .ToPdfObject ());};_gacfec .SetIfNotNil ("\u0049\u006e\u0074\u0065\u006e\u0074",_gdgbg .Intent );_gacfec .SetIfNotNil ("\u0049m\u0061\u0067\u0065\u004d\u0061\u0073k",_gdgbg .ImageMask );_gacfec .SetIfNotNil ("\u004d\u0061\u0073\u006b",_gdgbg .Mask );_gacfec .SetIfNotNil ("\u0044\u0065\u0063\u006f\u0064\u0065",_gdgbg .Decode );_gacfec .SetIfNotNil ("I\u006e\u0074\u0065\u0072\u0070\u006f\u006c\u0061\u0074\u0065",_gdgbg .Interpolate );_gacfec .SetIfNotNil ("\u0041\u006c\u0074e\u0072\u006e\u0061\u0074\u0069\u0076\u0065\u0073",_gdgbg .Alternatives );_gacfec .SetIfNotNil ("\u0053\u004d\u0061s\u006b",_gdgbg .SMask );_gacfec .SetIfNotNil ("S\u004d\u0061\u0073\u006b\u0049\u006e\u0044\u0061\u0074\u0061",_gdgbg .SMaskInData );_gacfec .SetIfNotNil ("\u004d\u0061\u0074t\u0065",_gdgbg .Matte );_gacfec .SetIfNotNil ("\u004e\u0061\u006d\u0065",_gdgbg .Name );_gacfec .SetIfNotNil ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074",_gdgbg .StructParent );_gacfec .SetIfNotNil ("\u0049\u0044",_gdgbg .ID );_gacfec .SetIfNotNil ("\u004f\u0050\u0049",_gdgbg .OPI );_gacfec .SetIfNotNil ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061",_gdgbg .Metadata );_gacfec .SetIfNotNil ("\u004f\u0043",_gdgbg .OC );_gacfec .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_cb .MakeInteger (int64 (len (_gdgbg .Stream ))));_cadgf .Stream =_gdgbg .Stream ;return _cadgf ;};func _febb (_acgda _cb .PdfObject )(*PdfPageResourcesColorspaces ,error ){_acag :=&PdfPageResourcesColorspaces {};if _cebdc ,_egfab :=_acgda .(*_cb .PdfIndirectObject );_egfab {_acag ._degad =_cebdc ;_acgda =_cebdc .PdfObject ;};_gaba ,_ffdc :=_cb .GetDict (_acgda );if !_ffdc {return nil ,_bc .New ("\u0043\u0053\u0020at\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};_acag .Names =[]string {};_acag .Colorspaces =map[string ]PdfColorspace {};for _ ,_gffaa :=range _gaba .Keys (){_abdc :=_gaba .Get (_gffaa );_acag .Names =append (_acag .Names ,string (_gffaa ));_ebba ,_fabce :=NewPdfColorspaceFromPdfObject (_abdc );if _fabce !=nil {return nil ,_fabce ;};_acag .Colorspaces [string (_gffaa )]=_ebba ;};return _acag ,nil ;};var _ffbde ="";
// GetNumComponents returns the number of color components (4 for CMYK32).
func (_gafde *PdfColorDeviceCMYK )GetNumComponents ()int {return 4};
// NewXObjectImage returns a new XObjectImage.
func NewXObjectImage ()*XObjectImage {_afcfd :=&XObjectImage {};_cfedg :=&_cb .PdfObjectStream {};_cfedg .PdfObjectDictionary =_cb .MakeDict ();_afcfd ._egbff =_cfedg ;return _afcfd ;};
// 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"`;};
// GetRuneMetrics returns the character metrics for the rune.
// A bool flag is returned to indicate whether or not the entry was found.
func (_afae pdfFontSimple )GetRuneMetrics (r rune )(_af .CharMetrics ,bool ){if _afae ._egdg !=nil {_fgcba ,_beeac :=_afae ._egdg [r ];if _beeac {return _fgcba ,true ;};};_cdfd :=_afae .Encoder ();if _cdfd ==nil {_dbe .Log .Debug ("\u004e\u006f\u0020en\u0063\u006f\u0064\u0065\u0072\u0020\u0066\u006f\u0072\u0020\u0066\u006f\u006e\u0074\u0073\u003d\u0025\u0073",_afae );return _af .CharMetrics {},false ;};_deagd ,_bfcgg :=_cdfd .RuneToCharcode (r );if !_bfcgg {if r !=' '{_dbe .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 ,_afae );};return _af .CharMetrics {},false ;};_dadab ,_daeee :=_afae .GetCharMetrics (_deagd );return _dadab ,_daeee ;};
// BytesToCharcodes converts the bytes in a PDF string to character codes.
func (_fbac *PdfFont )BytesToCharcodes (data []byte )[]_ccb .CharCode {_dbe .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 _adfc ,_adbgd :=_fbac ._cdfe .(*pdfFontType0 );_adbgd &&_adfc ._cebae !=nil {if _bgec ,_cbbgd :=_adfc .bytesToCharcodes (data );_cbbgd {return _bgec ;};};_gafb :=make ([]_ccb .CharCode ,0,len (data )+len (data )%2);if _fbac .baseFields ().isCIDFont (){if len (data )==1{data =[]byte {0,data [0]};};if len (data )%2!=0{_dbe .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 _ebad :=0;_ebad < len (data );_ebad +=2{_bdbe :=uint16 (data [_ebad ])<<8|uint16 (data [_ebad +1]);_gafb =append (_gafb ,_ccb .CharCode (_bdbe ));};}else {for _ ,_ebdde :=range data {_gafb =append (_gafb ,_ccb .CharCode (_ebdde ));};};return _gafb ;};func (_aecce *PdfReader )newPdfAnnotationMarkupFromDict (_bgag *_cb .PdfObjectDictionary )(*PdfAnnotationMarkup ,error ){_dfc :=&PdfAnnotationMarkup {};if _cgf :=_bgag .Get ("\u0054");_cgf !=nil {_dfc .T =_cgf ;};if _ddc :=_bgag .Get ("\u0050\u006f\u0070u\u0070");_ddc !=nil {_egc ,_ece :=_ddc .(*_cb .PdfIndirectObject );if !_ece {if _ ,_gbggg :=_ddc .(*_cb .PdfObjectNull );!_gbggg {return nil ,_bc .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 {_aggcf ,_bgg :=_aecce .newPdfAnnotationFromIndirectObject (_egc );if _bgg !=nil {return nil ,_bgg ;};if _aggcf !=nil {_daaf ,_ccgd :=_aggcf ._gea .(*PdfAnnotationPopup );if !_ccgd {return nil ,_bc .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");};_dfc .Popup =_daaf ;};};};if _ffec :=_bgag .Get ("\u0043\u0041");_ffec !=nil {_dfc .CA =_ffec ;};if _egde :=_bgag .Get ("\u0052\u0043");_egde !=nil {_dfc .RC =_egde ;};if _bbf :=_bgag .Get ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065");_bbf !=nil {_dfc .CreationDate =_bbf ;};if _ddec :=_bgag .Get ("\u0049\u0052\u0054");_ddec !=nil {_dfc .IRT =_ddec ;};if _geb :=_bgag .Get ("\u0053\u0075\u0062\u006a");_geb !=nil {_dfc .Subj =_geb ;};if _eead :=_bgag .Get ("\u0052\u0054");_eead !=nil {_dfc .RT =_eead ;};if _gbed :=_bgag .Get ("\u0049\u0054");_gbed !=nil {_dfc .IT =_gbed ;};if _ace :=_bgag .Get ("\u0045\u0078\u0044\u0061\u0074\u0061");_ace !=nil {_dfc .ExData =_ace ;};return _dfc ,nil ;};
// NewPdfAnnotationSquiggly returns a new text squiggly annotation.
func NewPdfAnnotationSquiggly ()*PdfAnnotationSquiggly {_babc :=NewPdfAnnotation ();_fag :=&PdfAnnotationSquiggly {};_fag .PdfAnnotation =_babc ;_fag .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_babc .SetContext (_fag );return _fag ;};
// 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 (_gbfe *PdfReader )AcroFormNeedsRepair ()(bool ,error ){var _dbddd []*PdfField ;if _gbfe .AcroForm !=nil {_dbddd =_gbfe .AcroForm .AllFields ();};_deefb :=make (map[*PdfField ]struct{},len (_dbddd ));for _ ,_ffegf :=range _dbddd {_deefb [_ffegf ]=struct{}{};};for _ ,_agbe :=range _gbfe .PageList {_dggac ,_gcaeg :=_agbe .GetAnnotations ();if _gcaeg !=nil {return false ,_gcaeg ;};for _ ,_fbgff :=range _dggac {_abaf ,_ceea :=_fbgff .GetContext ().(*PdfAnnotationWidget );if !_ceea {continue ;};_cfgb :=_abaf .Field ();if _cfgb ==nil {return true ,nil ;};if _ ,_gedea :=_deefb [_cfgb ];!_gedea {return true ,nil ;};};};return false ,nil ;};
// B returns the value of the B component of the color.
func (_bgebb *PdfColorLab )B ()float64 {return float64 (_bgebb [2])};
// 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 ()_cb .PdfObject ;GetContainingPdfObject ()_cb .PdfObject ;};func (_eag *PdfReader )newPdfActionGotoEFromDict (_ddeff *_cb .PdfObjectDictionary )(*PdfActionGoToE ,error ){_gae ,_bdc :=_bgcc (_ddeff .Get ("\u0046"));if _bdc !=nil {return nil ,_bdc ;};return &PdfActionGoToE {D :_ddeff .Get ("\u0044"),NewWindow :_ddeff .Get ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw"),T :_ddeff .Get ("\u0054"),F :_gae },nil ;};func _dggd ()_d .Time {return _dfbbdb };
// ToPdfObject implements interface PdfModel.
func (_bdfa *PdfAnnotationInk )ToPdfObject ()_cb .PdfObject {_bdfa .PdfAnnotation .ToPdfObject ();_gdbd :=_bdfa ._efd ;_dgcd :=_gdbd .PdfObject .(*_cb .PdfObjectDictionary );_bdfa .PdfAnnotationMarkup .appendToPdfDictionary (_dgcd );_dgcd .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_cb .MakeName ("\u0049\u006e\u006b"));_dgcd .SetIfNotNil ("\u0049n\u006b\u004c\u0069\u0073\u0074",_bdfa .InkList );_dgcd .SetIfNotNil ("\u0042\u0053",_bdfa .BS );return _gdbd ;};
// SetColorSpace sets `r` colorspace object to `colorspace`.
func (_fgbe *PdfPageResources )SetColorSpace (colorspace *PdfPageResourcesColorspaces ){_fgbe ._ggaga =colorspace ;};
// HasFontByName checks whether a font is defined by the specified keyName.
func (_bddad *PdfPageResources )HasFontByName (keyName _cb .PdfObjectName )bool {_ ,_bfdfg :=_bddad .GetFontByName (keyName );return _bfdfg ;};func _bgcc (_fece _cb .PdfObject )(*PdfFilespec ,error ){if _fece ==nil {return nil ,nil ;};return NewPdfFilespecFromObj (_fece );};
// NewPdfAnnotationInk returns a new ink annotation.
func NewPdfAnnotationInk ()*PdfAnnotationInk {_fdc :=NewPdfAnnotation ();_aagf :=&PdfAnnotationInk {};_aagf .PdfAnnotation =_fdc ;_aagf .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_fdc .SetContext (_aagf );return _aagf ;};func (_ecg *PdfReader )newPdfActionLaunchFromDict (_dgf *_cb .PdfObjectDictionary )(*PdfActionLaunch ,error ){_gaf ,_bgdb :=_bgcc (_dgf .Get ("\u0046"));if _bgdb !=nil {return nil ,_bgdb ;};return &PdfActionLaunch {Win :_dgf .Get ("\u0057\u0069\u006e"),Mac :_dgf .Get ("\u004d\u0061\u0063"),Unix :_dgf .Get ("\u0055\u006e\u0069\u0078"),NewWindow :_dgf .Get ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw"),F :_gaf },nil ;};
// SetPdfTitle sets the Title attribute of the output PDF.
func SetPdfTitle (title string ){_eegde =title };
// NewPdfColorspaceSpecialPattern returns a new pattern color.
func NewPdfColorspaceSpecialPattern ()*PdfColorspaceSpecialPattern {return &PdfColorspaceSpecialPattern {};};func (_dccac *PdfReader )newPdfAnnotationTextFromDict (_ffee *_cb .PdfObjectDictionary )(*PdfAnnotationText ,error ){_aece :=PdfAnnotationText {};_bffb ,_bcfe :=_dccac .newPdfAnnotationMarkupFromDict (_ffee );if _bcfe !=nil {return nil ,_bcfe ;};_aece .PdfAnnotationMarkup =_bffb ;_aece .Open =_ffee .Get ("\u004f\u0070\u0065\u006e");_aece .Name =_ffee .Get ("\u004e\u0061\u006d\u0065");_aece .State =_ffee .Get ("\u0053\u0074\u0061t\u0065");_aece .StateModel =_ffee .Get ("\u0053\u0074\u0061\u0074\u0065\u004d\u006f\u0064\u0065\u006c");return &_aece ,nil ;};func _fddgg ()string {return _gbga };
// NewPdfColorLab returns a new Lab color.
func NewPdfColorLab (l ,a ,b float64 )*PdfColorLab {_dfaf :=PdfColorLab {l ,a ,b };return &_dfaf };
// NewPdfAnnotationPrinterMark returns a new printermark annotation.
func NewPdfAnnotationPrinterMark ()*PdfAnnotationPrinterMark {_caee :=NewPdfAnnotation ();_gggc :=&PdfAnnotationPrinterMark {};_gggc .PdfAnnotation =_caee ;_caee .SetContext (_gggc );return _gggc ;};func (_eddc *PdfAnnotationMarkup )appendToPdfDictionary (_feeg *_cb .PdfObjectDictionary ){_feeg .SetIfNotNil ("\u0054",_eddc .T );if _eddc .Popup !=nil {_feeg .Set ("\u0050\u006f\u0070u\u0070",_eddc .Popup .ToPdfObject ());};_feeg .SetIfNotNil ("\u0043\u0041",_eddc .CA );_feeg .SetIfNotNil ("\u0052\u0043",_eddc .RC );_feeg .SetIfNotNil ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065",_eddc .CreationDate );_feeg .SetIfNotNil ("\u0049\u0052\u0054",_eddc .IRT );_feeg .SetIfNotNil ("\u0053\u0075\u0062\u006a",_eddc .Subj );_feeg .SetIfNotNil ("\u0052\u0054",_eddc .RT );_feeg .SetIfNotNil ("\u0049\u0054",_eddc .IT );_feeg .SetIfNotNil ("\u0045\u0078\u0044\u0061\u0074\u0061",_eddc .ExData );};
// ImageToRGB convert 1-component grayscale data to 3-component RGB.
func (_gdce *PdfColorspaceDeviceGray )ImageToRGB (img Image )(Image ,error ){if img .ColorComponents !=1{return img ,_bc .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");};_afdd ,_deabb :=_ac .NewImage (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),img .ColorComponents ,img .Data ,img ._ddffb ,img ._cceeg );if _deabb !=nil {return img ,_deabb ;};_gbgf ,_deabb :=_ac .NRGBAConverter .Convert (_afdd );if _deabb !=nil {return img ,_deabb ;};_dggf :=_ecdg (_gbgf .Base ());_dbe .Log .Trace ("\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079\u0020\u002d>\u0020\u0052\u0047\u0042");_dbe .Log .Trace ("s\u0061\u006d\u0070\u006c\u0065\u0073\u003a\u0020\u0025\u0076",img .Data );_dbe .Log .Trace ("\u0052G\u0042 \u0073\u0061\u006d\u0070\u006c\u0065\u0073\u003a\u0020\u0025\u0076",_dggf .Data );_dbe .Log .Trace ("\u0025\u0076\u0020\u002d\u003e\u0020\u0025\u0076",img ,_dggf );return _dggf ,nil ;};func (_dcebe SignatureValidationResult )String ()string {var _badfd _bbb .Buffer ;_badfd .WriteString (_c .Sprintf ("\u004ea\u006d\u0065\u003a\u0020\u0025\u0073\n",_dcebe .Name ));if _dcebe .Date ._dbbc > 0{_badfd .WriteString (_c .Sprintf ("\u0044a\u0074\u0065\u003a\u0020\u0025\u0073\n",_dcebe .Date .ToGoTime ().String ()));}else {_badfd .WriteString ("\u0044\u0061\u0074\u0065 n\u006f\u0074\u0020\u0073\u0070\u0065\u0063\u0069\u0066\u0069\u0065\u0064\u000a");};if len (_dcebe .Reason )> 0{_badfd .WriteString (_c .Sprintf ("R\u0065\u0061\u0073\u006f\u006e\u003a\u0020\u0025\u0073\u000a",_dcebe .Reason ));}else {_badfd .WriteString ("N\u006f \u0072\u0065\u0061\u0073\u006f\u006e\u0020\u0073p\u0065\u0063\u0069\u0066ie\u0064\u000a");};if len (_dcebe .Location )> 0{_badfd .WriteString (_c .Sprintf ("\u004c\u006f\u0063\u0061\u0074\u0069\u006f\u006e\u003a\u0020\u0025\u0073\u000a",_dcebe .Location ));}else {_badfd .WriteString ("\u004c\u006f\u0063at\u0069\u006f\u006e\u0020\u006e\u006f\u0074\u0020\u0073\u0070\u0065\u0063\u0069\u0066\u0069\u0065\u0064\u000a");};if len (_dcebe .ContactInfo )> 0{_badfd .WriteString (_c .Sprintf ("\u0043\u006f\u006e\u0074\u0061\u0063\u0074\u0020\u0049\u006e\u0066\u006f:\u0020\u0025\u0073\u000a",_dcebe .ContactInfo ));}else {_badfd .WriteString ("C\u006f\u006e\u0074\u0061\u0063\u0074 \u0069\u006e\u0066\u006f\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063i\u0066i\u0065\u0064\u000a");};_badfd .WriteString (_c .Sprintf ("F\u0069\u0065\u006c\u0064\u0073\u003a\u0020\u0025\u0064\u000a",len (_dcebe .Fields )));if _dcebe .IsSigned {_badfd .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 {_badfd .WriteString ("\u0053\u0069\u0067\u006eed\u003a\u0020\u004e\u006f\u0074\u0020\u0073\u0069\u0067\u006e\u0065\u0064\u000a");};if _dcebe .IsVerified {_badfd .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 {_badfd .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 _dcebe .IsTrusted {_badfd .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 {_badfd .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 !_dcebe .GeneralizedTime .IsZero (){_badfd .WriteString (_c .Sprintf ("G\u0065n\u0065\u0072\u0061\u006c\u0069\u007a\u0065\u0064T\u0069\u006d\u0065\u003a %\u0073\u000a",_dcebe .GeneralizedTime .String ()));};return _badfd .String ();};
// ToPdfObject implements interface PdfModel.
func (_cgaa *PdfAnnotationFileAttachment )ToPdfObject ()_cb .PdfObject {_cgaa .PdfAnnotation .ToPdfObject ();_beae :=_cgaa ._efd ;_dca :=_beae .PdfObject .(*_cb .PdfObjectDictionary );_cgaa .PdfAnnotationMarkup .appendToPdfDictionary (_dca );_dca .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_cb .MakeName ("\u0046\u0069\u006c\u0065\u0041\u0074\u0074\u0061\u0063h\u006d\u0065\u006e\u0074"));_dca .SetIfNotNil ("\u0046\u0053",_cgaa .FS );_dca .SetIfNotNil ("\u004e\u0061\u006d\u0065",_cgaa .Name );return _beae ;};func (_ggfd *PdfReader )newPdfAnnotationCaretFromDict (_ebbc *_cb .PdfObjectDictionary )(*PdfAnnotationCaret ,error ){_fgcd :=PdfAnnotationCaret {};_fcb ,_gadd :=_ggfd .newPdfAnnotationMarkupFromDict (_ebbc );if _gadd !=nil {return nil ,_gadd ;};_fgcd .PdfAnnotationMarkup =_fcb ;_fgcd .RD =_ebbc .Get ("\u0052\u0044");_fgcd .Sy =_ebbc .Get ("\u0053\u0079");return &_fgcd ,nil ;};
// PdfAnnotationScreen represents Screen annotations.
// (Section 12.5.6.18).
type PdfAnnotationScreen struct{*PdfAnnotation ;T _cb .PdfObject ;MK _cb .PdfObject ;A _cb .PdfObject ;AA _cb .PdfObject ;};func (_bcca *PdfReader )loadAction (_fefa _cb .PdfObject )(*PdfAction ,error ){if _dbff ,_aabe :=_cb .GetIndirect (_fefa );_aabe {_fdee ,_bgga :=_bcca .newPdfActionFromIndirectObject (_dbff );if _bgga !=nil {return nil ,_bgga ;};return _fdee ,nil ;}else if !_cb .IsNullObject (_fefa ){return nil ,_bc .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 ;};
// 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 _cb .StreamEncoder ;Intent _cb .PdfObject ;ImageMask _cb .PdfObject ;Mask _cb .PdfObject ;Matte _cb .PdfObject ;Decode _cb .PdfObject ;Interpolate _cb .PdfObject ;Alternatives _cb .PdfObject ;SMask _cb .PdfObject ;SMaskInData _cb .PdfObject ;Name _cb .PdfObject ;StructParent _cb .PdfObject ;ID _cb .PdfObject ;OPI _cb .PdfObject ;Metadata _cb .PdfObject ;OC _cb .PdfObject ;Stream []byte ;_egbff *_cb .PdfObjectStream ;};
// NewPdfFieldSignature returns an initialized signature field.
func NewPdfFieldSignature (signature *PdfSignature )*PdfFieldSignature {_aadce :=&PdfFieldSignature {};_aadce .PdfField =NewPdfField ();_aadce .PdfField .SetContext (_aadce );_aadce .PdfAnnotationWidget =NewPdfAnnotationWidget ();_aadce .PdfAnnotationWidget .SetContext (_aadce );_aadce .PdfAnnotationWidget ._efd =_aadce .PdfField ._addef ;_aadce .T =_cb .MakeString ("");_aadce .F =_cb .MakeInteger (132);_aadce .V =signature ;return _aadce ;};
// NewPdfActionURI returns a new "Uri" action.
func NewPdfActionURI ()*PdfActionURI {_cgb :=NewPdfAction ();_ed :=&PdfActionURI {};_ed .PdfAction =_cgb ;_cgb .SetContext (_ed );return _ed ;};
// NewGrayImageFromGoImage creates a new grayscale unidoc Image from a golang Image.
func (_caeg DefaultImageHandler )NewGrayImageFromGoImage (goimg _ca .Image )(*Image ,error ){_edeac :=goimg .Bounds ();_eefde :=&Image {Width :int64 (_edeac .Dx ()),Height :int64 (_edeac .Dy ()),ColorComponents :1,BitsPerComponent :8};switch _fgfdb :=goimg .(type ){case *_ca .Gray :if len (_fgfdb .Pix )!=_edeac .Dx ()*_edeac .Dy (){_abbg ,_ecgbd :=_ac .GrayConverter .Convert (goimg );if _ecgbd !=nil {return nil ,_ecgbd ;};_eefde .Data =_abbg .Pix ();}else {_eefde .Data =_fgfdb .Pix ;};case *_ca .Gray16 :_eefde .BitsPerComponent =16;if len (_fgfdb .Pix )!=_edeac .Dx ()*_edeac .Dy ()*2{_gfaab ,_eafgc :=_ac .Gray16Converter .Convert (goimg );if _eafgc !=nil {return nil ,_eafgc ;};_eefde .Data =_gfaab .Pix ();}else {_eefde .Data =_fgfdb .Pix ;};default:_cbcf ,_fbaba :=_ac .GrayConverter .Convert (goimg );if _fbaba !=nil {return nil ,_fbaba ;};_eefde .Data =_cbcf .Pix ();};return _eefde ,nil ;};
// ToPdfObject returns the choice field dictionary within an indirect object (container).
func (_gfgd *PdfFieldChoice )ToPdfObject ()_cb .PdfObject {_gfgd .PdfField .ToPdfObject ();_baea :=_gfgd ._addef ;_egdf :=_baea .PdfObject .(*_cb .PdfObjectDictionary );_egdf .Set ("\u0046\u0054",_cb .MakeName ("\u0043\u0068"));if _gfgd .Opt !=nil {_egdf .Set ("\u004f\u0070\u0074",_gfgd .Opt );};if _gfgd .TI !=nil {_egdf .Set ("\u0054\u0049",_gfgd .TI );};if _gfgd .I !=nil {_egdf .Set ("\u0049",_gfgd .I );};return _baea ;};func _eegddc (_ecfeb _cb .PdfObject )(*PdfShading ,error ){_fdcae :=&PdfShading {};var _bcdf *_cb .PdfObjectDictionary ;if _gddae ,_dcedd :=_cb .GetIndirect (_ecfeb );_dcedd {_fdcae ._gfdg =_gddae ;_bfeb ,_gdbg :=_gddae .PdfObject .(*_cb .PdfObjectDictionary );if !_gdbg {_dbe .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 ,_cb .ErrTypeError ;};_bcdf =_bfeb ;}else if _befgcb ,_acadc :=_cb .GetStream (_ecfeb );_acadc {_fdcae ._gfdg =_befgcb ;_bcdf =_befgcb .PdfObjectDictionary ;}else if _daea ,_cafb :=_cb .GetDict (_ecfeb );_cafb {_fdcae ._gfdg =_daea ;_bcdf =_daea ;}else {_dbe .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",_ecfeb );return nil ,_cb .ErrTypeError ;};if _bcdf ==nil {_dbe .Log .Debug ("\u0044i\u0063t\u0069\u006f\u006e\u0061\u0072y\u0020\u006di\u0073\u0073\u0069\u006e\u0067");return nil ,_bc .New ("\u0064\u0069\u0063t\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};_ecfeb =_bcdf .Get ("S\u0068\u0061\u0064\u0069\u006e\u0067\u0054\u0079\u0070\u0065");if _ecfeb ==nil {_dbe .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 ;};_ecfeb =_cb .TraceToDirectObject (_ecfeb );_cgggd ,_aabcd :=_ecfeb .(*_cb .PdfObjectInteger );if !_aabcd {_dbe .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",_ecfeb );return nil ,_cb .ErrTypeError ;};if *_cgggd < 1||*_cgggd > 7{_dbe .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",*_cgggd );return nil ,_cb .ErrTypeError ;};_fdcae .ShadingType =_cgggd ;_ecfeb =_bcdf .Get ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065");if _ecfeb ==nil {_dbe .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 ;};_ccafd ,_cedbe :=NewPdfColorspaceFromPdfObject (_ecfeb );if _cedbe !=nil {_dbe .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",_cedbe );return nil ,_cedbe ;};_fdcae .ColorSpace =_ccafd ;_ecfeb =_bcdf .Get ("\u0042\u0061\u0063\u006b\u0067\u0072\u006f\u0075\u006e\u0064");if _ecfeb !=nil {_ecfeb =_cb .TraceToDirectObject (_ecfeb );_fbaad ,_cbgda :=_ecfeb .(*_cb .PdfObjectArray );if !_cbgda {_dbe .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)",_ecfeb );return nil ,_cb .ErrTypeError ;};_fdcae .Background =_fbaad ;};_ecfeb =_bcdf .Get ("\u0042\u0042\u006f\u0078");if _ecfeb !=nil {_ecfeb =_cb .TraceToDirectObject (_ecfeb );_bceea ,_fcdae :=_ecfeb .(*_cb .PdfObjectArray );if !_fcdae {_dbe .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)",_ecfeb );return nil ,_cb .ErrTypeError ;};_fbadg ,_afbd :=NewPdfRectangle (*_bceea );if _afbd !=nil {_dbe .Log .Debug ("\u0042\u0042\u006f\u0078\u0020\u0065\u0072\u0072\u006fr\u003a\u0020\u0025\u0076",_afbd );return nil ,_afbd ;};_fdcae .BBox =_fbadg ;};_ecfeb =_bcdf .Get ("\u0041n\u0074\u0069\u0041\u006c\u0069\u0061s");if _ecfeb !=nil {_ecfeb =_cb .TraceToDirectObject (_ecfeb );_bdcd ,_cfdef :=_ecfeb .(*_cb .PdfObjectBool );if !_cfdef {_dbe .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",_ecfeb );return nil ,_cb .ErrTypeError ;};_fdcae .AntiAlias =_bdcd ;};switch *_cgggd {case 1:_eaggg ,_edgc :=_befa (_bcdf );if _edgc !=nil {return nil ,_edgc ;};_eaggg .PdfShading =_fdcae ;_fdcae ._cdece =_eaggg ;return _fdcae ,nil ;case 2:_ebbag ,_afbga :=_cbbbb (_bcdf );if _afbga !=nil {return nil ,_afbga ;};_ebbag .PdfShading =_fdcae ;_fdcae ._cdece =_ebbag ;return _fdcae ,nil ;case 3:_agfg ,_dbacf :=_agdccc (_bcdf );if _dbacf !=nil {return nil ,_dbacf ;};_agfg .PdfShading =_fdcae ;_fdcae ._cdece =_agfg ;return _fdcae ,nil ;case 4:_eedad ,_egefa :=_abgda (_bcdf );if _egefa !=nil {return nil ,_egefa ;};_eedad .PdfShading =_fdcae ;_fdcae ._cdece =_eedad ;return _fdcae ,nil ;case 5:_ceade ,_gcaegc :=_bbac (_bcdf );if _gcaegc !=nil {return nil ,_gcaegc ;};_ceade .PdfShading =_fdcae ;_fdcae ._cdece =_ceade ;return _fdcae ,nil ;case 6:_ffcgd ,_bdac :=_fefbc (_bcdf );if _bdac !=nil {return nil ,_bdac ;};_ffcgd .PdfShading =_fdcae ;_fdcae ._cdece =_ffcgd ;return _fdcae ,nil ;case 7:_gcgdd ,_bffdd :=_aagcd (_bcdf );if _bffdd !=nil {return nil ,_bffdd ;};_gcgdd .PdfShading =_fdcae ;_fdcae ._cdece =_gcgdd ;return _fdcae ,nil ;};return nil ,_bc .New ("u\u006ek\u006e\u006f\u0077\u006e\u0020\u0073\u0068\u0061d\u0069\u006e\u0067\u0020ty\u0070\u0065");};
// 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 (_fgdee *PdfPage )SetContentStreams (cStreams []string ,encoder _cb .StreamEncoder )error {if len (cStreams )==0{_fgdee .Contents =nil ;return nil ;};if encoder ==nil {encoder =_cb .NewRawEncoder ();};var _ggec []*_cb .PdfObjectStream ;for _ ,_ffega :=range cStreams {_cgbdf :=&_cb .PdfObjectStream {};_fcabd :=encoder .MakeStreamDict ();_gfdab ,_afaae :=encoder .EncodeBytes ([]byte (_ffega ));if _afaae !=nil {return _afaae ;};_fcabd .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_cb .MakeInteger (int64 (len (_gfdab ))));_cgbdf .PdfObjectDictionary =_fcabd ;_cgbdf .Stream =[]byte (_gfdab );_ggec =append (_ggec ,_cgbdf );};if len (_ggec )==1{_fgdee .Contents =_ggec [0];}else {_cbbae :=_cb .MakeArray ();for _ ,_efac :=range _ggec {_cbbae .Append (_efac );};_fgdee .Contents =_cbbae ;};return nil ;};func (_cab *PdfReader )newPdfActionGotoRFromDict (_ebf *_cb .PdfObjectDictionary )(*PdfActionGoToR ,error ){_cda ,_ebgd :=_bgcc (_ebf .Get ("\u0046"));if _ebgd !=nil {return nil ,_ebgd ;};return &PdfActionGoToR {D :_ebf .Get ("\u0044"),NewWindow :_ebf .Get ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw"),F :_cda },nil ;};
// PdfColorCalRGB represents a color in the Colorimetric CIE RGB colorspace.
// A, B, C components
// Each component is defined in the range 0.0 - 1.0 where 1.0 is the primary intensity.
type PdfColorCalRGB [3]float64 ;
// EncryptionAlgorithm is used in EncryptOptions to change the default algorithm used to encrypt the document.
type EncryptionAlgorithm int ;
// NewPdfColorCalGray returns a new CalGray color.
func NewPdfColorCalGray (grayVal float64 )*PdfColorCalGray {_bdgf :=PdfColorCalGray (grayVal );return &_bdgf ;};
// 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 (_gfabg *PdfReader )CheckAccessRights (password []byte )(bool ,_gg .Permissions ,error ){return _gfabg ._gfecg .CheckAccessRights (password );};
// ToPdfObject implements interface PdfModel.
func (_ggf *PdfActionSound )ToPdfObject ()_cb .PdfObject {_ggf .PdfAction .ToPdfObject ();_fg :=_ggf ._fc ;_egd :=_fg .PdfObject .(*_cb .PdfObjectDictionary );_egd .SetIfNotNil ("\u0053",_cb .MakeName (string (ActionTypeSound )));_egd .SetIfNotNil ("\u0053\u006f\u0075n\u0064",_ggf .Sound );_egd .SetIfNotNil ("\u0056\u006f\u006c\u0075\u006d\u0065",_ggf .Volume );_egd .SetIfNotNil ("S\u0079\u006e\u0063\u0068\u0072\u006f\u006e\u006f\u0075\u0073",_ggf .Synchronous );_egd .SetIfNotNil ("\u0052\u0065\u0070\u0065\u0061\u0074",_ggf .Repeat );_egd .SetIfNotNil ("\u004d\u0069\u0078",_ggf .Mix );return _fg ;};
// GetBorderWidth returns the border style's width.
func (_eccea *PdfBorderStyle )GetBorderWidth ()float64 {if _eccea .W ==nil {return 1;};return *_eccea .W ;};
// ColorToRGB converts a CalGray color to an RGB color.
func (_gecg *PdfColorspaceCalGray )ColorToRGB (color PdfColor )(PdfColor ,error ){_cgcb ,_fgbg :=color .(*PdfColorCalGray );if !_fgbg {_dbe .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 ,_bc .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};ANorm :=_cgcb .Val ();X :=_gecg .WhitePoint [0]*_ag .Pow (ANorm ,_gecg .Gamma );Y :=_gecg .WhitePoint [1]*_ag .Pow (ANorm ,_gecg .Gamma );Z :=_gecg .WhitePoint [2]*_ag .Pow (ANorm ,_gecg .Gamma );_aabdb :=3.240479*X +-1.537150*Y +-0.498535*Z ;_fcgff :=-0.969256*X +1.875992*Y +0.041556*Z ;_feae :=0.055648*X +-0.204043*Y +1.057311*Z ;_aabdb =_ag .Min (_ag .Max (_aabdb ,0),1.0);_fcgff =_ag .Min (_ag .Max (_fcgff ,0),1.0);_feae =_ag .Min (_ag .Max (_feae ,0),1.0);return NewPdfColorDeviceRGB (_aabdb ,_fcgff ,_feae ),nil ;};
// SignatureValidationResult defines the response from the signature validation handler.
type SignatureValidationResult struct{
// List of errors when validating the signature.
Errors []string ;IsSigned bool ;IsVerified bool ;IsTrusted bool ;Fields []*PdfField ;Name string ;Date PdfDate ;Reason string ;Location string ;ContactInfo string ;
// GeneralizedTime is the time at which the time-stamp token has been created by the TSA (RFC 3161).
GeneralizedTime _d .Time ;};func (_ggb *PdfReader )newPdfAnnotationMovieFromDict (_aba *_cb .PdfObjectDictionary )(*PdfAnnotationMovie ,error ){_bcaf :=PdfAnnotationMovie {};_bcaf .T =_aba .Get ("\u0054");_bcaf .Movie =_aba .Get ("\u004d\u006f\u0076i\u0065");_bcaf .A =_aba .Get ("\u0041");return &_bcaf ,nil ;};func (_dacec *PdfWriter )hasObject (_cagge _cb .PdfObject )bool {_ ,_ddba :=_dacec ._bbbbd [_cagge ];return _ddba ;};
// PdfWriter handles outputing PDF content.
type PdfWriter struct{_becda *_cb .PdfIndirectObject ;_febaa *_cb .PdfIndirectObject ;_dfebc map[_cb .PdfObject ]struct{};_bgega []_cb .PdfObject ;_bbbbd map[_cb .PdfObject ]struct{};_ggfgf []*_cb .PdfIndirectObject ;_eadf *PdfOutlineTreeNode ;_fgfb *_cb .PdfObjectDictionary ;_cdgbb []_cb .PdfObject ;_ggdd *_cb .PdfIndirectObject ;_eabcf *_f .Writer ;_ceead int64 ;_dadaf error ;_ccaec *_cb .PdfCrypt ;_fbffb *_cb .PdfObjectDictionary ;_fggd *_cb .PdfIndirectObject ;_efab *_cb .PdfObjectArray ;_ecaee int ;_ccefeg int ;_ddfdba *bool ;_gbcba map[_cb .PdfObject ][]*_cb .PdfObjectDictionary ;_aeegd *PdfAcroForm ;_agfcf Optimizer ;_gebf map[int ]crossReference ;_aedbee int64 ;ObjNumOffset int ;_gedaa bool ;_afefg _cb .XrefTable ;_adfgd int64 ;_dbbcc int64 ;_bedca map[_cb .PdfObject ]int64 ;_deebb map[_cb .PdfObject ]struct{};};func (_fccdf *PdfReader )newPdfFieldFromIndirectObject (_bcee *_cb .PdfIndirectObject ,_cgbc *PdfField )(*PdfField ,error ){if _ebaa ,_gcb :=_fccdf ._bffa .GetModelFromPrimitive (_bcee ).(*PdfField );_gcb {return _ebaa ,nil ;};_afec ,_fgaec :=_cb .GetDict (_bcee );if !_fgaec {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");};_cgfaf :=NewPdfField ();_cgfaf ._addef =_bcee ;_cgfaf ._addef .PdfObject =_afec ;_aaedb :=false ;if _gagg ,_abea :=_cb .GetName (_afec .Get ("\u0046\u0054"));_abea {_cgfaf .FT =_gagg ;_aaedb =true ;};_cgfaf ._cffd =&_aaedb ;_cgfaf .T ,_ =_afec .Get ("\u0054").(*_cb .PdfObjectString );_cgfaf .TU ,_ =_afec .Get ("\u0054\u0055").(*_cb .PdfObjectString );_cgfaf .TM ,_ =_afec .Get ("\u0054\u004d").(*_cb .PdfObjectString );_cgfaf .Ff ,_ =_afec .Get ("\u0046\u0066").(*_cb .PdfObjectInteger );_cgfaf .V =_afec .Get ("\u0056");_cgfaf .DV =_afec .Get ("\u0044\u0056");_cgfaf .AA =_afec .Get ("\u0041\u0041");if _cgfaf .FT !=nil {switch *_cgfaf .FT {case "\u0054\u0078":_fdbed ,_adgg :=_fbeb (_afec );if _adgg !=nil {return nil ,_adgg ;};_fdbed .PdfField =_cgfaf ;_cgfaf ._cdfge =_fdbed ;case "\u0043\u0068":_gcecd ,_cdfbb :=_cacg (_afec );if _cdfbb !=nil {return nil ,_cdfbb ;};_gcecd .PdfField =_cgfaf ;_cgfaf ._cdfge =_gcecd ;case "\u0042\u0074\u006e":_ggcf ,_dbeb :=_gfbee (_afec );if _dbeb !=nil {return nil ,_dbeb ;};_ggcf .PdfField =_cgfaf ;_cgfaf ._cdfge =_ggcf ;case "\u0053\u0069\u0067":_cbfc ,_caae :=_fccdf .newPdfFieldSignatureFromDict (_afec );if _caae !=nil {return nil ,_caae ;};_cbfc .PdfField =_cgfaf ;_cgfaf ._cdfge =_cbfc ;default:_dbe .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",*_cgfaf .FT );return nil ,_bc .New ("\u0075\u006e\u0073\u0075pp\u006f\u0072\u0074\u0065\u0064\u0020\u0066\u0069\u0065\u006c\u0064\u0020\u0074\u0079p\u0065");};};if _cgbc !=nil {_cgfaf .Parent =_cgbc ;};_cgfaf .Annotations =[]*PdfAnnotationWidget {};if _agbgf ,_eeaae :=_cb .GetName (_afec .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065"));_eeaae {if *_agbgf =="\u0057\u0069\u0064\u0067\u0065\u0074"{_edcf ,_bgccf :=_fccdf .newPdfAnnotationFromIndirectObject (_bcee );if _bgccf !=nil {return nil ,_bgccf ;};_geacd ,_deda :=_edcf .GetContext ().(*PdfAnnotationWidget );if !_deda {return nil ,_bc .New ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0077\u0069\u0064\u0067e\u0074 \u0061n\u006e\u006f\u0074\u0061\u0074\u0069\u006fn");};_geacd ._bdcc =_cgfaf ;_geacd .Parent =_cgfaf ._addef ;_cgfaf .Annotations =append (_cgfaf .Annotations ,_geacd );return _cgfaf ,nil ;};};if _dddbg ,_deec :=_cb .GetArray (_afec .Get ("\u004b\u0069\u0064\u0073"));_deec {_cgfaf .Kids =[]*PdfField {};for _ ,_afag :=range _dddbg .Elements (){_cdedc ,_agdeb :=_cb .GetIndirect (_afag );if !_agdeb {_dfged ,_ddfd :=_cb .GetStream (_afag );if _ddfd &&_dfged .PdfObjectDictionary !=nil {_agfd ,_agdf :=_cb .GetNameVal (_dfged .Get ("\u0054\u0079\u0070\u0065"));if _agdf &&_agfd =="\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061"{_dbe .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 ,_bc .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");};_bdee ,_dcf :=_cb .GetDict (_cdedc );if !_dcf {return nil ,ErrTypeCheck ;};_ ,_cedg :=_cb .GetName (_bdee .Get ("\u0046\u0054"));if _gfgc ,_ffgfa :=_cb .GetName (_bdee .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065"));_ffgfa &&!_cedg &&*_gfgc =="\u0057\u0069\u0064\u0067\u0065\u0074"{_eggdb ,_fbbf :=_fccdf .newPdfAnnotationFromIndirectObject (_cdedc );if _fbbf !=nil {_dbe .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",_fbbf );return nil ,_fbbf ;};_eaea ,_dbbea :=_eggdb ._gea .(*PdfAnnotationWidget );if !_dbbea {return nil ,ErrTypeCheck ;};_eaea ._bdcc =_cgfaf ;_cgfaf .Annotations =append (_cgfaf .Annotations ,_eaea );}else {_ceagd ,_dbgd :=_fccdf .newPdfFieldFromIndirectObject (_cdedc ,_cgfaf );if _dbgd !=nil {_dbe .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",_dbgd );return nil ,_dbgd ;};_cgfaf .Kids =append (_cgfaf .Kids ,_ceagd );};};};return _cgfaf ,nil ;};func _bccd (_afecg *_cb .PdfObjectDictionary ,_gfda *fontCommon )(*pdfCIDFontType2 ,error ){if _gfda ._fbefd !="\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032"{_dbe .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",_gfda );return nil ,_cb .ErrRangeError ;};_bfbg :=_bfbbbg (_gfda );_fecd ,_begcb :=_cb .GetDict (_afecg .Get ("\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f"));if !_begcb {_dbe .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",_gfda );return nil ,ErrRequiredAttributeMissing ;};_bfbg .CIDSystemInfo =_fecd ;_bfbg .DW =_afecg .Get ("\u0044\u0057");_bfbg .W =_afecg .Get ("\u0057");_bfbg .DW2 =_afecg .Get ("\u0044\u0057\u0032");_bfbg .W2 =_afecg .Get ("\u0057\u0032");_bfbg .CIDToGIDMap =_afecg .Get ("C\u0049\u0044\u0054\u006f\u0047\u0049\u0044\u004d\u0061\u0070");_bfbg ._ffga =1000.0;if _faba ,_ggfg :=_cb .GetNumberAsFloat (_bfbg .DW );_ggfg ==nil {_bfbg ._ffga =_faba ;};_ddecd ,_cbdd :=_dgcee (_bfbg .W );if _cbdd !=nil {return nil ,_cbdd ;};if _ddecd ==nil {_ddecd =map[_ccb .CharCode ]float64 {};};_bfbg ._faafd =_ddecd ;return _bfbg ,nil ;};
// PdfActionGoToR represents a GoToR action.
type PdfActionGoToR struct{*PdfAction ;F *PdfFilespec ;D _cb .PdfObject ;NewWindow _cb .PdfObject ;};func (_def *PdfReader )newPdfAnnotationSoundFromDict (_dfeg *_cb .PdfObjectDictionary )(*PdfAnnotationSound ,error ){_dbbb :=PdfAnnotationSound {};_cege ,_fcbb :=_def .newPdfAnnotationMarkupFromDict (_dfeg );if _fcbb !=nil {return nil ,_fcbb ;};_dbbb .PdfAnnotationMarkup =_cege ;_dbbb .Name =_dfeg .Get ("\u004e\u0061\u006d\u0065");_dbbb .Sound =_dfeg .Get ("\u0053\u006f\u0075n\u0064");return &_dbbb ,nil ;};func (_bcf *PdfReader )newPdfActionFromIndirectObject (_fge *_cb .PdfIndirectObject )(*PdfAction ,error ){_deb ,_dcg :=_fge .PdfObject .(*_cb .PdfObjectDictionary );if !_dcg {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 :=_bcf ._bffa .GetModelFromPrimitive (_deb );model !=nil {_dbb ,_debg :=model .(*PdfAction );if !_debg {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 _dbb ,nil ;};_aagg :=&PdfAction {};_aagg ._fc =_fge ;_bcf ._bffa .Register (_deb ,_aagg );if _bae :=_deb .Get ("\u0054\u0079\u0070\u0065");_bae !=nil {_cgc ,_cfb :=_bae .(*_cb .PdfObjectName );if !_cfb {_dbe .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",_bae );}else {if *_cgc !="\u0041\u0063\u0074\u0069\u006f\u006e"{_dbe .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",*_cgc );};_aagg .Type =_cgc ;};};if _aecc :=_deb .Get ("\u004e\u0065\u0078\u0074");_aecc !=nil {_aagg .Next =_aecc ;};if _cdg :=_deb .Get ("\u0053");_cdg !=nil {_aagg .S =_cdg ;};_aab ,_ade :=_aagg .S .(*_cb .PdfObjectName );if !_ade {_dbe .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",_aagg .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",_aagg .S );};_gbgd :=PdfActionType (_aab .String ());switch _gbgd {case ActionTypeGoTo :_abcg ,_bgd :=_bcf .newPdfActionGotoFromDict (_deb );if _bgd !=nil {return nil ,_bgd ;};_abcg .PdfAction =_aagg ;_aagg ._ab =_abcg ;return _aagg ,nil ;case ActionTypeGoToR :_adc ,_dgab :=_bcf .newPdfActionGotoRFromDict (_deb );if _dgab !=nil {return nil ,_dgab ;};_adc .PdfAction =_aagg ;_aagg ._ab =_adc ;return _aagg ,nil ;case ActionTypeGoToE :_adb ,_bac :=_bcf .newPdfActionGotoEFromDict (_deb );if _bac !=nil {return nil ,_bac ;};_adb .PdfAction =_aagg ;_aagg ._ab =_adb ;return _aagg ,nil ;case ActionTypeLaunch :_bgc ,_gbgg :=_bcf .newPdfActionLaunchFromDict (_deb );if _gbgg !=nil {return nil ,_gbgg ;};_bgc .PdfAction =_aagg ;_aagg ._ab =_bgc ;return _aagg ,nil ;case ActionTypeThread :_cbg ,_eaa :=_bcf .newPdfActionThreadFromDict (_deb );if _eaa !=nil {return nil ,_eaa ;};_cbg .PdfAction =_aagg ;_aagg ._ab =_cbg ;return _aagg ,nil ;case ActionTypeURI :_gadg ,_dag :=_bcf .newPdfActionURIFromDict (_deb );if _dag !=nil {return nil ,_dag ;};_gadg .PdfAction =_aagg ;_aagg ._ab =_gadg ;return _aagg ,nil ;case ActionTypeSound :_edf ,_gfe :=_bcf .newPdfActionSoundFromDict (_deb );if _gfe !=nil {return nil ,_gfe ;};_edf .PdfAction =_aagg ;_aagg ._ab =_edf ;return _aagg ,nil ;case ActionTypeMovie :_efg ,_agg :=_bcf .newPdfActionMovieFromDict (_deb );if _agg !=nil {return nil ,_agg ;};_efg .PdfAction =_aagg ;_aagg ._ab =_efg ;return _aagg ,nil ;case ActionTypeHide :_ddf ,_gge :=_bcf .newPdfActionHideFromDict (_deb );if _gge !=nil {return nil ,_gge ;};_ddf .PdfAction =_aagg ;_aagg ._ab =_ddf ;return _aagg ,nil ;case ActionTypeNamed :_cde ,_dgae :=_bcf .newPdfActionNamedFromDict (_deb );if _dgae !=nil {return nil ,_dgae ;};_cde .PdfAction =_aagg ;_aagg ._ab =_cde ;return _aagg ,nil ;case ActionTypeSubmitForm :_fde ,_fga :=_bcf .newPdfActionSubmitFormFromDict (_deb );if _fga !=nil {return nil ,_fga ;};_fde .PdfAction =_aagg ;_aagg ._ab =_fde ;return _aagg ,nil ;case ActionTypeResetForm :_bbc ,_gde :=_bcf .newPdfActionResetFormFromDict (_deb );if _gde !=nil {return nil ,_gde ;};_bbc .PdfAction =_aagg ;_aagg ._ab =_bbc ;return _aagg ,nil ;case ActionTypeImportData :_dbc ,_ddbf :=_bcf .newPdfActionImportDataFromDict (_deb );if _ddbf !=nil {return nil ,_ddbf ;};_dbc .PdfAction =_aagg ;_aagg ._ab =_dbc ;return _aagg ,nil ;case ActionTypeSetOCGState :_fdad ,_eeee :=_bcf .newPdfActionSetOCGStateFromDict (_deb );if _eeee !=nil {return nil ,_eeee ;};_fdad .PdfAction =_aagg ;_aagg ._ab =_fdad ;return _aagg ,nil ;case ActionTypeRendition :_ddef ,_afcd :=_bcf .newPdfActionRenditionFromDict (_deb );if _afcd !=nil {return nil ,_afcd ;};_ddef .PdfAction =_aagg ;_aagg ._ab =_ddef ;return _aagg ,nil ;case ActionTypeTrans :_df ,_feb :=_bcf .newPdfActionTransFromDict (_deb );if _feb !=nil {return nil ,_feb ;};_df .PdfAction =_aagg ;_aagg ._ab =_df ;return _aagg ,nil ;case ActionTypeGoTo3DView :_ddbb ,_cfa :=_bcf .newPdfActionGoTo3DViewFromDict (_deb );if _cfa !=nil {return nil ,_cfa ;};_ddbb .PdfAction =_aagg ;_aagg ._ab =_ddbb ;return _aagg ,nil ;case ActionTypeJavaScript :_bbe ,_ffg :=_bcf .newPdfActionJavaScriptFromDict (_deb );if _ffg !=nil {return nil ,_ffg ;};_bbe .PdfAction =_aagg ;_aagg ._ab =_bbe ;return _aagg ,nil ;};_dbe .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",_gbgd );return nil ,nil ;};
// PdfActionSound represents a sound action.
type PdfActionSound struct{*PdfAction ;Sound _cb .PdfObject ;Volume _cb .PdfObject ;Synchronous _cb .PdfObject ;Repeat _cb .PdfObject ;Mix _cb .PdfObject ;};
// GetNumComponents returns the number of color components.
func (_dbddb *PdfColorspaceICCBased )GetNumComponents ()int {return _dbddb .N };
// ToPdfObject returns the PDF representation of the function.
func (_gegaba *PdfFunctionType3 )ToPdfObject ()_cb .PdfObject {_fdebge :=_cb .MakeDict ();_fdebge .Set ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065",_cb .MakeInteger (3));_aadcd :=&_cb .PdfObjectArray {};for _ ,_aebce :=range _gegaba .Domain {_aadcd .Append (_cb .MakeFloat (_aebce ));};_fdebge .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_aadcd );if _gegaba .Range !=nil {_aege :=&_cb .PdfObjectArray {};for _ ,_addf :=range _gegaba .Range {_aege .Append (_cb .MakeFloat (_addf ));};_fdebge .Set ("\u0052\u0061\u006eg\u0065",_aege );};if _gegaba .Functions !=nil {_bgeg :=&_cb .PdfObjectArray {};for _ ,_dcaga :=range _gegaba .Functions {_bgeg .Append (_dcaga .ToPdfObject ());};_fdebge .Set ("\u0046u\u006e\u0063\u0074\u0069\u006f\u006es",_bgeg );};if _gegaba .Bounds !=nil {_cadbe :=&_cb .PdfObjectArray {};for _ ,_deece :=range _gegaba .Bounds {_cadbe .Append (_cb .MakeFloat (_deece ));};_fdebge .Set ("\u0042\u006f\u0075\u006e\u0064\u0073",_cadbe );};if _gegaba .Encode !=nil {_bbfbg :=&_cb .PdfObjectArray {};for _ ,_agafd :=range _gegaba .Encode {_bbfbg .Append (_cb .MakeFloat (_agafd ));};_fdebge .Set ("\u0045\u006e\u0063\u006f\u0064\u0065",_bbfbg );};if _gegaba ._gbbec !=nil {_gegaba ._gbbec .PdfObject =_fdebge ;return _gegaba ._gbbec ;};return _fdebge ;};func _begbc (_eeba _cb .PdfObject )(*PdfPattern ,error ){_dbca :=&PdfPattern {};var _bcead *_cb .PdfObjectDictionary ;if _ddfbf ,_gabda :=_cb .GetIndirect (_eeba );_gabda {_dbca ._gbdd =_ddfbf ;_bfeee ,_cgddaf :=_ddfbf .PdfObject .(*_cb .PdfObjectDictionary );if !_cgddaf {_dbe .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",_ddfbf .PdfObject );return nil ,_cb .ErrTypeError ;};_bcead =_bfeee ;}else if _bfbgc ,_bfea :=_cb .GetStream (_eeba );_bfea {_dbca ._gbdd =_bfbgc ;_bcead =_bfbgc .PdfObjectDictionary ;}else {_dbe .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",_eeba );return nil ,_cb .ErrTypeError ;};_dbfg :=_bcead .Get ("P\u0061\u0074\u0074\u0065\u0072\u006e\u0054\u0079\u0070\u0065");if _dbfg ==nil {_dbe .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 ;};_eebaa ,_acgce :=_dbfg .(*_cb .PdfObjectInteger );if !_acgce {_dbe .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",_dbfg );return nil ,_cb .ErrTypeError ;};if *_eebaa !=1&&*_eebaa !=2{_dbe .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",*_eebaa );return nil ,_cb .ErrRangeError ;};_dbca .PatternType =int64 (*_eebaa );switch *_eebaa {case 1:_dcdda ,_agaeb :=_ffbfb (_bcead );if _agaeb !=nil {return nil ,_agaeb ;};_dcdda .PdfPattern =_dbca ;_dbca ._eadd =_dcdda ;return _dbca ,nil ;case 2:_afbgg ,_cbgbb :=_fabd (_bcead );if _cbgbb !=nil {return nil ,_cbgbb ;};_afbgg .PdfPattern =_dbca ;_dbca ._eadd =_afbgg ;return _dbca ,nil ;};return nil ,_bc .New ("\u0075n\u006bn\u006f\u0077\u006e\u0020\u0070\u0061\u0074\u0074\u0065\u0072\u006e");};
// ToPdfObject implements interface PdfModel.
func (_cec *PdfActionSetOCGState )ToPdfObject ()_cb .PdfObject {_cec .PdfAction .ToPdfObject ();_dge :=_cec ._fc ;_cag :=_dge .PdfObject .(*_cb .PdfObjectDictionary );_cag .SetIfNotNil ("\u0053",_cb .MakeName (string (ActionTypeSetOCGState )));_cag .SetIfNotNil ("\u0053\u0074\u0061t\u0065",_cec .State );_cag .SetIfNotNil ("\u0050\u0072\u0065\u0073\u0065\u0072\u0076\u0065\u0052\u0042",_cec .PreserveRB );return _dge ;};
// NewPdfAnnotationRedact returns a new redact annotation.
func NewPdfAnnotationRedact ()*PdfAnnotationRedact {_daad :=NewPdfAnnotation ();_gce :=&PdfAnnotationRedact {};_gce .PdfAnnotation =_daad ;_gce .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_daad .SetContext (_gce );return _gce ;};
// GetContainingPdfObject returns the container of the pattern object (indirect object).
func (_bbedf *PdfPattern )GetContainingPdfObject ()_cb .PdfObject {return _bbedf ._gbdd };func (_gee *PdfReader )newPdfAnnotationSquareFromDict (_egb *_cb .PdfObjectDictionary )(*PdfAnnotationSquare ,error ){_age :=PdfAnnotationSquare {};_dbef ,_gdbb :=_gee .newPdfAnnotationMarkupFromDict (_egb );if _gdbb !=nil {return nil ,_gdbb ;};_age .PdfAnnotationMarkup =_dbef ;_age .BS =_egb .Get ("\u0042\u0053");_age .IC =_egb .Get ("\u0049\u0043");_age .BE =_egb .Get ("\u0042\u0045");_age .RD =_egb .Get ("\u0052\u0044");return &_age ,nil ;};
// AddWatermarkImage adds a watermark to the page.
func (_egdbc *PdfPage )AddWatermarkImage (ximg *XObjectImage ,opt WatermarkImageOptions )error {_feac ,_ceff :=_egdbc .GetMediaBox ();if _ceff !=nil {return _ceff ;};_agfac :=_feac .Urx -_feac .Llx ;_dfac :=_feac .Ury -_feac .Lly ;_dffec :=float64 (*ximg .Width );_beaa :=(float64 (_agfac )-float64 (_dffec ))/2;if opt .FitToWidth {_dffec =_agfac ;_beaa =0;};_ecacd :=_dfac ;_cbcd :=float64 (0);if opt .PreserveAspectRatio {_ecacd =_dffec *float64 (*ximg .Height )/float64 (*ximg .Width );_cbcd =(_dfac -_ecacd )/2;};if _egdbc .Resources ==nil {_egdbc .Resources =NewPdfPageResources ();};_gggfb :=0;_degdf :=_cb .PdfObjectName (_c .Sprintf ("\u0049\u006d\u0077%\u0064",_gggfb ));for _egdbc .Resources .HasXObjectByName (_degdf ){_gggfb ++;_degdf =_cb .PdfObjectName (_c .Sprintf ("\u0049\u006d\u0077%\u0064",_gggfb ));};_ceff =_egdbc .AddImageResource (_degdf ,ximg );if _ceff !=nil {return _ceff ;};_gggfb =0;_bdfe :=_cb .PdfObjectName (_c .Sprintf ("\u0047\u0053\u0025\u0064",_gggfb ));for _egdbc .HasExtGState (_bdfe ){_gggfb ++;_bdfe =_cb .PdfObjectName (_c .Sprintf ("\u0047\u0053\u0025\u0064",_gggfb ));};_aaac :=_cb .MakeDict ();_aaac .Set ("\u0042\u004d",_cb .MakeName ("\u004e\u006f\u0072\u006d\u0061\u006c"));_aaac .Set ("\u0043\u0041",_cb .MakeFloat (opt .Alpha ));_aaac .Set ("\u0063\u0061",_cb .MakeFloat (opt .Alpha ));_ceff =_egdbc .AddExtGState (_bdfe ,_aaac );if _ceff !=nil {return _ceff ;};_gfca :=_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",_bdfe ,_dffec ,_ecacd ,_beaa ,_cbcd ,_degdf );_egdbc .AddContentStreamByString (_gfca );return nil ;};func (_edbcd *PdfPage )setContainer (_fdcda *_cb .PdfIndirectObject ){_fdcda .PdfObject =_edbcd ._acaa ;_edbcd ._adbf =_fdcda ;};
// DefaultFont returns the default font, which is currently the built in Helvetica.
func DefaultFont ()*PdfFont {_cgcd ,_cbfea :=_af .NewStdFontByName (HelveticaName );if !_cbfea {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");};_decf :=_dccg (_cgcd );return &PdfFont {_cdfe :&_decf };};
// 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 (_dcaba byte )byte ;
// 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 _bb .ReadSeeker )(*PdfFont ,error ){const _egcg =_ccb .CharCode (32);const _gbffa =_ccb .CharCode (255);_dgccff ,_degg :=_bf .ReadAll (r );if _degg !=nil {_dbe .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",_degg );return nil ,_degg ;};_fddg ,_degg :=_af .TtfParse (_bbb .NewReader (_dgccff ));if _degg !=nil {_dbe .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",_degg );return nil ,_degg ;};_dbcbe :=&pdfFontSimple {_cfgdd :make (map[_ccb .CharCode ]float64 ),fontCommon :fontCommon {_fbefd :"\u0054\u0072\u0075\u0065\u0054\u0079\u0070\u0065"}};_dbcbe ._egffg =_ccb .NewWinAnsiEncoder ();_dbcbe ._babff =_fddg .PostScriptName ;_dbcbe .FirstChar =_cb .MakeInteger (int64 (_egcg ));_dbcbe .LastChar =_cb .MakeInteger (int64 (_gbffa ));_beceb :=1000.0/float64 (_fddg .UnitsPerEm );if len (_fddg .Widths )<=0{return nil ,_bc .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");};_efga :=_beceb *float64 (_fddg .Widths [0]);_gcfae :=make ([]float64 ,0,_gbffa -_egcg +1);for _cccfe :=_egcg ;_cccfe <=_gbffa ;_cccfe ++{_gabfg ,_acbb :=_dbcbe .Encoder ().CharcodeToRune (_cccfe );if !_acbb {_dbe .Log .Debug ("\u0052u\u006e\u0065\u0020\u006eo\u0074\u0020\u0066\u006f\u0075n\u0064 \u0028c\u006f\u0064\u0065\u003a\u0020\u0025\u0064)",_cccfe );_gcfae =append (_gcfae ,_efga );continue ;};_bfef ,_bgbaa :=_fddg .Chars [_gabfg ];if !_bgbaa {_dbe .Log .Debug ("R\u0075\u006e\u0065\u0020no\u0074 \u0069\u006e\u0020\u0054\u0054F\u0020\u0043\u0068\u0061\u0072\u0073");_gcfae =append (_gcfae ,_efga );continue ;};_bdfbg :=_beceb *float64 (_fddg .Widths [_bfef ]);_gcfae =append (_gcfae ,_bdfbg );};_dbcbe .Widths =_cb .MakeIndirectObject (_cb .MakeArrayFromFloats (_gcfae ));if len (_gcfae )< int (_gbffa -_egcg +1){_dbe .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 (_gcfae ),255-32+1);return nil ,_cb .ErrRangeError ;};for _dabfa :=_ccb .CharCode (_egcg );_dabfa <=_gbffa ;_dabfa ++{_dbcbe ._cfgdd [_dabfa ]=_gcfae [_dabfa -_egcg ];};_dbcbe .Encoding =_cb .MakeName ("\u0057i\u006eA\u006e\u0073\u0069\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067");_egbb :=&PdfFontDescriptor {};_egbb .FontName =_cb .MakeName (_fddg .PostScriptName );_egbb .Ascent =_cb .MakeFloat (_beceb *float64 (_fddg .TypoAscender ));_egbb .Descent =_cb .MakeFloat (_beceb *float64 (_fddg .TypoDescender ));_egbb .CapHeight =_cb .MakeFloat (_beceb *float64 (_fddg .CapHeight ));_egbb .FontBBox =_cb .MakeArrayFromFloats ([]float64 {_beceb *float64 (_fddg .Xmin ),_beceb *float64 (_fddg .Ymin ),_beceb *float64 (_fddg .Xmax ),_beceb *float64 (_fddg .Ymax )});_egbb .ItalicAngle =_cb .MakeFloat (float64 (_fddg .ItalicAngle ));_egbb .MissingWidth =_cb .MakeFloat (_beceb *float64 (_fddg .Widths [0]));_bbgb ,_degg :=_cb .MakeStream (_dgccff ,_cb .NewFlateEncoder ());if _degg !=nil {_dbe .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",_degg );return nil ,_degg ;};_bbgb .PdfObjectDictionary .Set ("\u004ce\u006e\u0067\u0074\u0068\u0031",_cb .MakeInteger (int64 (len (_dgccff ))));_egbb .FontFile2 =_bbgb ;if _fddg .Bold {_egbb .StemV =_cb .MakeInteger (120);}else {_egbb .StemV =_cb .MakeInteger (70);};_cgeb :=_decb ;if _fddg .IsFixedPitch {_cgeb |=_dcag ;};if _fddg .ItalicAngle !=0{_cgeb |=_dadf ;};_egbb .Flags =_cb .MakeInteger (int64 (_cgeb ));_dbcbe ._bgbb =_egbb ;_dccda :=&PdfFont {_cdfe :_dbcbe };return _dccda ,nil ;};
// ToPdfObject implements interface PdfModel.
func (_ffbb *PdfAnnotationStamp )ToPdfObject ()_cb .PdfObject {_ffbb .PdfAnnotation .ToPdfObject ();_fgca :=_ffbb ._efd ;_dad :=_fgca .PdfObject .(*_cb .PdfObjectDictionary );_ffbb .PdfAnnotationMarkup .appendToPdfDictionary (_dad );_dad .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_cb .MakeName ("\u0053\u0074\u0061m\u0070"));_dad .SetIfNotNil ("\u004e\u0061\u006d\u0065",_ffbb .Name );return _fgca ;};
// 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 ;const (XObjectTypeUndefined XObjectType =iota ;XObjectTypeImage ;XObjectTypeForm ;XObjectTypePS ;XObjectTypeUnknown ;);func (_gfc *PdfReader )newPdfActionGoTo3DViewFromDict (_beff *_cb .PdfObjectDictionary )(*PdfActionGoTo3DView ,error ){return &PdfActionGoTo3DView {TA :_beff .Get ("\u0054\u0041"),V :_beff .Get ("\u0056")},nil ;};var _ pdfFont =(*pdfFontSimple )(nil );func (_adba *PdfReader )lookupPageByObject (_egafb _cb .PdfObject )(*PdfPage ,error ){return nil ,_bc .New ("\u0070\u0061\u0067\u0065\u0020\u006e\u006f\u0074\u0020f\u006f\u0075\u006e\u0064");};
// GetRuneMetrics returns the character metrics for the specified rune.
// A bool flag is returned to indicate whether or not the entry was found.
func (_agce pdfFontType0 )GetRuneMetrics (r rune )(_af .CharMetrics ,bool ){if _agce .DescendantFont ==nil {_dbe .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",_agce );return _af .CharMetrics {},false ;};return _agce .DescendantFont .GetRuneMetrics (r );};func _befa (_cgcce *_cb .PdfObjectDictionary )(*PdfShadingType1 ,error ){_ffdfb :=PdfShadingType1 {};if _cafg :=_cgcce .Get ("\u0044\u006f\u006d\u0061\u0069\u006e");_cafg !=nil {_cafg =_cb .TraceToDirectObject (_cafg );_eeae ,_egdfeg :=_cafg .(*_cb .PdfObjectArray );if !_egdfeg {_dbe .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",_cafg );return nil ,_bc .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_ffdfb .Domain =_eeae ;};if _gcgfb :=_cgcce .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");_gcgfb !=nil {_gcgfb =_cb .TraceToDirectObject (_gcgfb );_gdfa ,_fecb :=_gcgfb .(*_cb .PdfObjectArray );if !_fecb {_dbe .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",_gcgfb );return nil ,_bc .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_ffdfb .Matrix =_gdfa ;};_ccdb :=_cgcce .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");if _ccdb ==nil {_dbe .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 ;};_ffdfb .Function =[]PdfFunction {};if _fagg ,_fcfgd :=_ccdb .(*_cb .PdfObjectArray );_fcfgd {for _ ,_fafa :=range _fagg .Elements (){_bfdgd ,_gdcea :=_abcgd (_fafa );if _gdcea !=nil {_dbe .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",_gdcea );return nil ,_gdcea ;};_ffdfb .Function =append (_ffdfb .Function ,_bfdgd );};}else {_beda ,_dbaed :=_abcgd (_ccdb );if _dbaed !=nil {_dbe .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",_dbaed );return nil ,_dbaed ;};_ffdfb .Function =append (_ffdfb .Function ,_beda );};return &_ffdfb ,nil ;};
// 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 (_fgcbb *Image )GetSamples ()[]uint32 {_bccad :=_cf .ResampleBytes (_fgcbb .Data ,int (_fgcbb .BitsPerComponent ));if _fgcbb .BitsPerComponent < 8{_bccad =_fgcbb .samplesTrimPadding (_bccad );};_afbe :=int (_fgcbb .Width )*int (_fgcbb .Height )*_fgcbb .ColorComponents ;if len (_bccad )< _afbe {_dbe .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 (_bccad ),_afbe );return _bccad ;}else if len (_bccad )> _afbe {_dbe .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 (_bccad ),_afbe );_bccad =_bccad [:_afbe ];};return _bccad ;};
// AddPage adds a page to the PDF file. The new page should be an indirect object.
func (_ecedf *PdfWriter )AddPage (page *PdfPage )error {_eggaf (page );_bceb :=page .ToPdfObject ();_dbe .Log .Trace ("\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d");_dbe .Log .Trace ("\u0041p\u0070\u0065\u006e\u0064i\u006e\u0067\u0020\u0074\u006f \u0070a\u0067e\u0020\u006c\u0069\u0073\u0074\u0020\u0025T",_bceb );_caddf ,_cgede :=_cb .GetIndirect (_bceb );if !_cgede {return _bc .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");};_dbe .Log .Trace ("\u0025\u0073",_caddf );_dbe .Log .Trace ("\u0025\u0073",_caddf .PdfObject );_dddde ,_cgede :=_cb .GetDict (_caddf .PdfObject );if !_cgede {return _bc .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");};_bacab ,_cgede :=_cb .GetName (_dddde .Get ("\u0054\u0079\u0070\u0065"));if !_cgede {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",_dddde .Get ("\u0054\u0079\u0070\u0065"));};if _bacab .String ()!="\u0050\u0061\u0067\u0065"{return _bc .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");};_fdbff :=[]_cb .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"};_bdcbf ,_dcddb :=_cb .GetIndirect (_dddde .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"));_dbe .Log .Trace ("P\u0061g\u0065\u0020\u0050\u0061\u0072\u0065\u006e\u0074:\u0020\u0025\u0054\u0020(%\u0076\u0029",_dddde .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"),_dcddb );for _dcddb {_dbe .Log .Trace ("\u0050a\u0067e\u0020\u0050\u0061\u0072\u0065\u006e\u0074\u003a\u0020\u0025\u0054",_bdcbf );_cegacb ,_efabf :=_cb .GetDict (_bdcbf .PdfObject );if !_efabf {return _bc .New ("i\u006e\u0076\u0061\u006cid\u0020P\u0061\u0072\u0065\u006e\u0074 \u006f\u0062\u006a\u0065\u0063\u0074");};for _ ,_acfbg :=range _fdbff {_dbe .Log .Trace ("\u0046\u0069\u0065\u006c\u0064\u0020\u0025\u0073",_acfbg );if _dddde .Get (_acfbg )!=nil {_dbe .Log .Trace ("\u002d \u0070a\u0067\u0065\u0020\u0068\u0061s\u0020\u0061l\u0072\u0065\u0061\u0064\u0079");continue ;};if _egfaa :=_cegacb .Get (_acfbg );_egfaa !=nil {_dbe .Log .Trace ("\u0049\u006e\u0068\u0065ri\u0074\u0069\u006e\u0067\u0020\u0066\u0069\u0065\u006c\u0064\u0020\u0025\u0073",_acfbg );_dddde .Set (_acfbg ,_egfaa );};};_bdcbf ,_dcddb =_cb .GetIndirect (_cegacb .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"));_dbe .Log .Trace ("\u004ee\u0078t\u0020\u0070\u0061\u0072\u0065\u006e\u0074\u003a\u0020\u0025\u0054",_cegacb .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"));};_dbe .Log .Trace ("\u0054\u0072\u0061\u0076\u0065\u0072\u0073\u0061\u006c \u0064\u006f\u006e\u0065");_dddde .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_ecedf ._febaa );_caddf .PdfObject =_dddde ;_beeff ,_cgede :=_cb .GetDict (_ecedf ._febaa .PdfObject );if !_cgede {return _bc .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");};_deabd ,_cgede :=_cb .GetArray (_beeff .Get ("\u004b\u0069\u0064\u0073"));if !_cgede {return _bc .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");};_deabd .Append (_caddf );_ecedf ._dfebc [_dddde ]=struct{}{};_dcfbc ,_cgede :=_cb .GetInt (_beeff .Get ("\u0043\u006f\u0075n\u0074"));if !_cgede {return _bc .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");};*_dcfbc =*_dcfbc +1;_ecedf .addObject (_caddf );_aggec :=_ecedf .addObjects (_dddde );if _aggec !=nil {return _aggec ;};return nil ;};
// PdfAnnotationWidget represents Widget annotations.
// Note: Widget annotations are used to display form fields.
// (Section 12.5.6.19).
type PdfAnnotationWidget struct{*PdfAnnotation ;H _cb .PdfObject ;MK _cb .PdfObject ;A _cb .PdfObject ;AA _cb .PdfObject ;BS _cb .PdfObject ;Parent _cb .PdfObject ;_bdcc *PdfField ;_dff bool ;};
// ToPdfObject returns the PDF representation of the colorspace.
func (_bcac *PdfColorspaceDeviceRGB )ToPdfObject ()_cb .PdfObject {return _cb .MakeName ("\u0044e\u0076\u0069\u0063\u0065\u0052\u0047B");};
// HasFontByName checks if has font resource by name.
func (_afcf *PdfPage )HasFontByName (name _cb .PdfObjectName )bool {_aeeed ,_ecca :=_afcf .Resources .Font .(*_cb .PdfObjectDictionary );if !_ecca {return false ;};if _cbfb :=_aeeed .Get (name );_cbfb !=nil {return true ;};return false ;};var _dfbbdb _d .Time ;
// 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 (_dbea *PdfFont )FontDescriptor ()*PdfFontDescriptor {if _dbea .baseFields ()._bgbb !=nil {return _dbea .baseFields ()._bgbb ;};if _bddf :=_dbea ._cdfe .getFontDescriptor ();_bddf !=nil {return _bddf ;};_dbe .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",_dbea );return 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 (_bacc *PdfColorspaceDeviceCMYK )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=4{return nil ,_bc .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_bcbg :=vals [0];if _bcbg < 0.0||_bcbg > 1.0{return nil ,_bc .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_cdebe :=vals [1];if _cdebe < 0.0||_cdebe > 1.0{return nil ,_bc .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_gdbf :=vals [2];if _gdbf < 0.0||_gdbf > 1.0{return nil ,_bc .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_gace :=vals [3];if _gace < 0.0||_gace > 1.0{return nil ,_bc .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_fbd :=NewPdfColorDeviceCMYK (_bcbg ,_cdebe ,_gdbf ,_gace );return _fbd ,nil ;};
// Duplicate creates a duplicate page based on the current one and returns it.
func (_fdbgca *PdfPage )Duplicate ()*PdfPage {var _bbgag PdfPage ;_bbgag =*_fdbgca ;_bbgag ._acaa =_cb .MakeDict ();_bbgag ._adbf =_cb .MakeIndirectObject (_bbgag ._acaa );return &_bbgag ;};func _cfeda (_facf *PdfAnnotation )(*XObjectForm ,*PdfRectangle ,error ){_faaf ,_fceae :=_cb .GetDict (_facf .AP );if !_fceae {return nil ,nil ,_bc .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 _faaf ==nil {return nil ,nil ,nil ;};_eacgc ,_fceae :=_cb .GetArray (_facf .Rect );if !_fceae ||_eacgc .Len ()!=4{return nil ,nil ,_bc .New ("\u0072\u0065\u0063t\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064");};_gafg ,_cfeg :=NewPdfRectangle (*_eacgc );if _cfeg !=nil {return nil ,nil ,_cfeg ;};_dgdb :=_cb .TraceToDirectObject (_faaf .Get ("\u004e"));switch _fdfga :=_dgdb .(type ){case *_cb .PdfObjectStream :_ebgde :=_fdfga ;_ddegc ,_ddfc :=NewXObjectFormFromStream (_ebgde );return _ddegc ,_gafg ,_ddfc ;case *_cb .PdfObjectDictionary :_cacgf :=_fdfga ;_gcca ,_gfgb :=_cb .GetName (_facf .AS );if !_gfgb {return nil ,nil ,nil ;};if _cacgf .Get (*_gcca )==nil {_dbe .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 ;};_eccd ,_gfgb :=_cb .GetStream (_cacgf .Get (*_gcca ));if !_gfgb {_dbe .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",_gcca );return nil ,nil ,_bc .New ("\u0073\u0074\u0072\u0065\u0061\u006d\u0020\u006d\u0069s\u0073\u0069\u006e\u0067");};_cgcfa ,_fffg :=NewXObjectFormFromStream (_eccd );return _cgcfa ,_gafg ,_fffg ;};_dbe .Log .Debug ("\u0049\u006e\u0076\u0061li\u0064\u0020\u0074\u0079\u0070\u0065\u0020\u0066\u006f\u0072\u0020\u004e\u003a\u0020%\u0054",_dgdb );return nil ,nil ,_bc .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};
// PdfAnnotationHighlight represents Highlight annotations.
// (Section 12.5.6.10).
type PdfAnnotationHighlight struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _cb .PdfObject ;};
// ToPdfObject implements interface PdfModel.
func (_ddff *PdfAnnotationMovie )ToPdfObject ()_cb .PdfObject {_ddff .PdfAnnotation .ToPdfObject ();_gfcg :=_ddff ._efd ;_ggfdd :=_gfcg .PdfObject .(*_cb .PdfObjectDictionary );_ggfdd .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_cb .MakeName ("\u004d\u006f\u0076i\u0065"));_ggfdd .SetIfNotNil ("\u0054",_ddff .T );_ggfdd .SetIfNotNil ("\u004d\u006f\u0076i\u0065",_ddff .Movie );_ggfdd .SetIfNotNil ("\u0041",_ddff .A );return _gfcg ;};
// ColorFromPdfObjects gets the color from a series of pdf objects (4 for cmyk).
func (_defgf *PdfColorspaceDeviceCMYK )ColorFromPdfObjects (objects []_cb .PdfObject )(PdfColor ,error ){if len (objects )!=4{return nil ,_bc .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_dafe ,_eedf :=_cb .GetNumbersAsFloat (objects );if _eedf !=nil {return nil ,_eedf ;};return _defgf .ColorFromFloats (_dafe );};type fontFile struct{_abcae string ;_bfee string ;_fefc _ccb .SimpleEncoder ;};
// GetContentStream returns the pattern cell's content stream
func (_gfeae *PdfTilingPattern )GetContentStream ()([]byte ,error ){_eceee ,_ ,_fccee :=_gfeae .GetContentStreamWithEncoder ();return _eceee ,_fccee ;};
// Items returns all children outline items.
func (_baddf *OutlineItem )Items ()[]*OutlineItem {return _baddf .Entries };
// PdfShadingType7 is a Tensor-product patch mesh.
type PdfShadingType7 struct{*PdfShading ;BitsPerCoordinate *_cb .PdfObjectInteger ;BitsPerComponent *_cb .PdfObjectInteger ;BitsPerFlag *_cb .PdfObjectInteger ;Decode *_cb .PdfObjectArray ;Function []PdfFunction ;};func _ccdg ()*modelManager {_fddff :=modelManager {};_fddff ._geed =map[PdfModel ]_cb .PdfObject {};_fddff ._dcff =map[_cb .PdfObject ]PdfModel {};return &_fddff ;};func (_fgf *PdfReader )newPdfAnnotationPopupFromDict (_dcdb *_cb .PdfObjectDictionary )(*PdfAnnotationPopup ,error ){_cbec :=PdfAnnotationPopup {};_cbec .Parent =_dcdb .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");_cbec .Open =_dcdb .Get ("\u004f\u0070\u0065\u006e");return &_cbec ,nil ;};
// GetAnnotations returns the list of page annotations for `page`. If not loaded attempts to load the
// annotations, otherwise returns the loaded list.
func (_gcfg *PdfPage )GetAnnotations ()([]*PdfAnnotation ,error ){if _gcfg ._dcgde !=nil {return _gcfg ._dcgde ,nil ;};if _gcfg .Annots ==nil {_gcfg ._dcgde =[]*PdfAnnotation {};return nil ,nil ;};if _gcfg ._fffgc ==nil {_gcfg ._dcgde =[]*PdfAnnotation {};return nil ,nil ;};_dfcfg ,_ebfag :=_gcfg ._fffgc .loadAnnotations (_gcfg .Annots );if _ebfag !=nil {return nil ,_ebfag ;};if _dfcfg ==nil {_gcfg ._dcgde =[]*PdfAnnotation {};};_gcfg ._dcgde =_dfcfg ;return _gcfg ._dcgde ,nil ;};func (_gaff *PdfWriter )copyObjects (){_gdebg :=make (map[_cb .PdfObject ]_cb .PdfObject );_fabag :=make ([]_cb .PdfObject ,0,len (_gaff ._bgega ));_bgdbd :=make (map[_cb .PdfObject ]struct{},len (_gaff ._bgega ));_dbffg :=make (map[_cb .PdfObject ]struct{});for _ ,_addfa :=range _gaff ._bgega {_bfgbd :=_gaff .copyObject (_addfa ,_gdebg ,_dbffg ,false );if _ ,_cbcff :=_dbffg [_addfa ];_cbcff {continue ;};_fabag =append (_fabag ,_bfgbd );_bgdbd [_bfgbd ]=struct{}{};};_gaff ._bgega =_fabag ;_gaff ._bbbbd =_bgdbd ;_gaff ._ggdd =_gaff .copyObject (_gaff ._ggdd ,_gdebg ,nil ,false ).(*_cb .PdfIndirectObject );_gaff ._becda =_gaff .copyObject (_gaff ._becda ,_gdebg ,nil ,false ).(*_cb .PdfIndirectObject );if _gaff ._fggd !=nil {_gaff ._fggd =_gaff .copyObject (_gaff ._fggd ,_gdebg ,nil ,false ).(*_cb .PdfIndirectObject );};if _gaff ._gedaa {_eabeg :=make (map[_cb .PdfObject ]int64 );for _bcdba ,_cgbbe :=range _gaff ._bedca {if _fbgc ,_fafdf :=_gdebg [_bcdba ];_fafdf {_eabeg [_fbgc ]=_cgbbe ;}else {_dbe .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");};};_gaff ._bedca =_eabeg ;};};
// NewPdfAnnotationCircle returns a new circle annotation.
func NewPdfAnnotationCircle ()*PdfAnnotationCircle {_fgd :=NewPdfAnnotation ();_ddbd :=&PdfAnnotationCircle {};_ddbd .PdfAnnotation =_fgd ;_ddbd .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_fgd .SetContext (_ddbd );return _ddbd ;};func _ebed (_beaed *_cb .PdfIndirectObject )(*PdfOutline ,error ){_ggcec ,_faacg :=_beaed .PdfObject .(*_cb .PdfObjectDictionary );if !_faacg {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");};_egdge :=NewPdfOutline ();if _bfab :=_ggcec .Get ("\u0054\u0079\u0070\u0065");_bfab !=nil {_cgcad ,_ebde :=_bfab .(*_cb .PdfObjectName );if _ebde {if *_cgcad !="\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0073"{_dbe .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",*_cgcad );};};};if _cbgeb :=_ggcec .Get ("\u0043\u006f\u0075n\u0074");_cbgeb !=nil {_bbdcg ,_eaab :=_cb .GetNumberAsInt64 (_cbgeb );if _eaab !=nil {return nil ,_eaab ;};_egdge .Count =&_bbdcg ;};return _egdge ,nil ;};func (_aaae *PdfField )inherit (_bgad func (*PdfField )bool )(bool ,error ){_beffd :=map[*PdfField ]bool {};_eaca :=false ;_ddggd :=_aaae ;for _ddggd !=nil {if _ ,_edfd :=_beffd [_ddggd ];_edfd {return false ,_bc .New ("\u0072\u0065\u0063\u0075rs\u0069\u0076\u0065\u0020\u0074\u0072\u0061\u0076\u0065\u0072\u0073\u0061\u006c");};_bdgde :=_bgad (_ddggd );if _bdgde {_eaca =true ;break ;};_beffd [_ddggd ]=true ;_ddggd =_ddggd .Parent ;};return _eaca ,nil ;};
// AlphaMap performs mapping of alpha data for transformations. Allows custom filtering of alpha data etc.
func (_egac *Image )AlphaMap (mapFunc AlphaMapFunc ){for _cgff ,_fgbac :=range _egac ._ddffb {_egac ._ddffb [_cgff ]=mapFunc (_fgbac );};};
// GetOutlineTree returns the outline tree.
func (_egcf *PdfReader )GetOutlineTree ()*PdfOutlineTreeNode {return _egcf ._adcea };
// SetContext sets the specific fielddata type, e.g. would be PdfFieldButton for a button field.
func (_fegf *PdfField )SetContext (ctx PdfModel ){_fegf ._cdfge =ctx };func _dgabd (_aedbgb *_cb .PdfObjectArray )(float64 ,error ){_bafec ,_bddfcb :=_aedbgb .ToFloat64Array ();if _bddfcb !=nil {_dbe .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",_aedbgb ,_bddfcb );};switch len (_bafec ){case 1:return _bafec [0],nil ;case 3:_egcce :=PdfColorspaceDeviceRGB {};_cabd ,_fade :=_egcce .ColorFromFloats (_bafec );if _fade !=nil {return 0.0,_fade ;};return _cabd .(*PdfColorDeviceRGB ).ToGray ().Val (),nil ;case 4:_ddcbg :=PdfColorspaceDeviceCMYK {};_bafb ,_baedb :=_ddcbg .ColorFromFloats (_bafec );if _baedb !=nil {return 0.0,_baedb ;};_bfdb ,_baedb :=_ddcbg .ColorToRGB (_bafb .(*PdfColorDeviceCMYK ));if _baedb !=nil {return 0.0,_baedb ;};return _bfdb .(*PdfColorDeviceRGB ).ToGray ().Val (),nil ;};_bddfcb =_bc .New ("\u0062a\u0064 \u004d\u0061\u0074\u0074\u0065\u0020\u0063\u006f\u006c\u006f\u0072");_dbe .Log .Error ("\u0074\u006f\u0047ra\u0079\u003a\u0020\u006d\u0061\u0074\u0074\u0065\u003d\u0025\u0073\u0020\u0065\u0072\u0072\u003d\u0025\u0076",_aedbgb ,_bddfcb );return 0.0,_bddfcb ;};
// ToPdfObject implements interface PdfModel.
func (_aec *PdfActionSubmitForm )ToPdfObject ()_cb .PdfObject {_aec .PdfAction .ToPdfObject ();_eee :=_aec ._fc ;_ecb :=_eee .PdfObject .(*_cb .PdfObjectDictionary );_ecb .SetIfNotNil ("\u0053",_cb .MakeName (string (ActionTypeSubmitForm )));if _aec .F !=nil {_ecb .Set ("\u0046",_aec .F .ToPdfObject ());};_ecb .SetIfNotNil ("\u0046\u0069\u0065\u006c\u0064\u0073",_aec .Fields );_ecb .SetIfNotNil ("\u0046\u006c\u0061g\u0073",_aec .Flags );return _eee ;};
// PdfAppender appends new PDF content to an existing PDF document via incremental updates.
type PdfAppender struct{_fdbd _bb .ReadSeeker ;_cecd *_cb .PdfParser ;_acgg *PdfReader ;Reader *PdfReader ;_dgce []*PdfPage ;_abbe *PdfAcroForm ;_cfg _cb .XrefTable ;_bdeb int64 ;_caff int ;_ceda []_cb .PdfObject ;_gfb map[_cb .PdfObject ]struct{};_bgbd map[_cb .PdfObject ]int64 ;_bbea map[_cb .PdfObject ]struct{};_cfdg map[_cb .PdfObject ]struct{};_fdfd int64 ;_cfgf bool ;};
// SetFontByName sets the font specified by keyName to the given object.
func (_bdde *PdfPageResources )SetFontByName (keyName _cb .PdfObjectName ,obj _cb .PdfObject )error {if _bdde .Font ==nil {_bdde .Font =_cb .MakeDict ();};_bfdde ,_bacgd :=_cb .TraceToDirectObject (_bdde .Font ).(*_cb .PdfObjectDictionary );if !_bacgd {_dbe .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",_cb .TraceToDirectObject (_bdde .Font ));return _cb .ErrTypeError ;};_bfdde .Set (keyName ,obj );return nil ;};
// AddPages adds pages to be appended to the end of the source PDF.
func (_aagb *PdfAppender )AddPages (pages ...*PdfPage ){for _ ,_dbba :=range pages {_dbba =_dbba .Duplicate ();_eggaf (_dbba );_aagb ._dgce =append (_aagb ._dgce ,_dbba );};return ;};
// ToUnicode returns the name of the font's "ToUnicode" field if there is one, or "" if there isn't.
func (_fggea *PdfFont )ToUnicode ()string {if _fggea .baseFields ()._agag ==nil {return "";};return _fggea .baseFields ()._agag .Name ();};
// ToPdfObject implements interface PdfModel.
func (_bebf *PdfAnnotationPrinterMark )ToPdfObject ()_cb .PdfObject {_bebf .PdfAnnotation .ToPdfObject ();_bbgee :=_bebf ._efd ;_ebfbg :=_bbgee .PdfObject .(*_cb .PdfObjectDictionary );_ebfbg .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_cb .MakeName ("P\u0072\u0069\u006e\u0074\u0065\u0072\u004d\u0061\u0072\u006b"));_ebfbg .SetIfNotNil ("\u004d\u004e",_bebf .MN );return _bbgee ;};func _fabd (_fecfc *_cb .PdfObjectDictionary )(*PdfShadingPattern ,error ){_dbfe :=&PdfShadingPattern {};_affad :=_fecfc .Get ("\u0053h\u0061\u0064\u0069\u006e\u0067");if _affad ==nil {_dbe .Log .Debug ("\u0053h\u0061d\u0069\u006e\u0067\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ;};_cbaf ,_cabbc :=_eegddc (_affad );if _cabbc !=nil {_dbe .Log .Debug ("\u0045r\u0072\u006f\u0072\u0020l\u006f\u0061\u0064\u0069\u006eg\u0020s\u0068a\u0064\u0069\u006e\u0067\u003a\u0020\u0025v",_cabbc );return nil ,_cabbc ;};_dbfe .Shading =_cbaf ;if _acee :=_fecfc .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");_acee !=nil {_dgcea ,_fdaac :=_acee .(*_cb .PdfObjectArray );if !_fdaac {_dbe .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",_acee );return nil ,_cb .ErrTypeError ;};_dbfe .Matrix =_dgcea ;};if _fgdfd :=_fecfc .Get ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e");_fgdfd !=nil {_dbfe .ExtGState =_fgdfd ;};return _dbfe ,nil ;};
// NewPdfPageResourcesFromDict creates and returns a new PdfPageResources object
// from the input dictionary.
func NewPdfPageResourcesFromDict (dict *_cb .PdfObjectDictionary )(*PdfPageResources ,error ){_daac :=NewPdfPageResources ();if _cbef :=dict .Get ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e");_cbef !=nil {_daac .ExtGState =_cbef ;};if _ffcg :=dict .Get ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065");_ffcg !=nil &&!_cb .IsNullObject (_ffcg ){_daac .ColorSpace =_ffcg ;};if _afagf :=dict .Get ("\u0050a\u0074\u0074\u0065\u0072\u006e");_afagf !=nil {_daac .Pattern =_afagf ;};if _cgcc :=dict .Get ("\u0053h\u0061\u0064\u0069\u006e\u0067");_cgcc !=nil {_daac .Shading =_cgcc ;};if _bfbea :=dict .Get ("\u0058O\u0062\u006a\u0065\u0063\u0074");_bfbea !=nil {_daac .XObject =_bfbea ;};if _cagbg :=_cb .ResolveReference (dict .Get ("\u0046\u006f\u006e\u0074"));_cagbg !=nil {_daac .Font =_cagbg ;};if _bddfc :=dict .Get ("\u0050r\u006f\u0063\u0053\u0065\u0074");_bddfc !=nil {_daac .ProcSet =_bddfc ;};if _abbc :=dict .Get ("\u0050\u0072\u006f\u0070\u0065\u0072\u0074\u0069\u0065\u0073");_abbc !=nil {_daac .Properties =_abbc ;};return _daac ,nil ;};
// PdfDate represents a date, which is a PDF string of the form:
// (D:YYYYMMDDHHmmSSOHH'mm)
type PdfDate struct{_dbbc int64 ;_cddf int64 ;_ffdac int64 ;_cfgca int64 ;_fcgbe int64 ;_aegfed int64 ;_bbbbg byte ;_bbee int64 ;_caccb int64 ;};func _ggdab (_bbbef string )map[string ]string {_bgfe :=_gded .Split (_bbbef ,-1);_fcfbec :=map[string ]string {};for _ ,_aeca :=range _bgfe {_bbcb :=_afdg .FindStringSubmatch (_aeca );if _bbcb ==nil {continue ;};_ddefd ,_cfdde :=_bbcb [1],_bbcb [2];_fcfbec [_ddefd ]=_cfdde ;};return _fcfbec ;};
// ToPdfObject converts the pdfCIDFontType2 to a PDF representation.
func (_gged *pdfCIDFontType2 )ToPdfObject ()_cb .PdfObject {if _gged ._dfdbg ==nil {_gged ._dfdbg =&_cb .PdfIndirectObject {};};_cfeab :=_gged .baseFields ().asPdfObjectDictionary ("\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032");_gged ._dfdbg .PdfObject =_cfeab ;if _gged .CIDSystemInfo !=nil {_cfeab .Set ("\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f",_gged .CIDSystemInfo );};if _gged .DW !=nil {_cfeab .Set ("\u0044\u0057",_gged .DW );};if _gged .DW2 !=nil {_cfeab .Set ("\u0044\u0057\u0032",_gged .DW2 );};if _gged .W !=nil {_cfeab .Set ("\u0057",_gged .W );};if _gged .W2 !=nil {_cfeab .Set ("\u0057\u0032",_gged .W2 );};if _gged .CIDToGIDMap !=nil {_cfeab .Set ("C\u0049\u0044\u0054\u006f\u0047\u0049\u0044\u004d\u0061\u0070",_gged .CIDToGIDMap );};return _gged ._dfdbg ;};
// PdfAnnotationPolygon represents Polygon annotations.
// (Section 12.5.6.9).
type PdfAnnotationPolygon struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Vertices _cb .PdfObject ;LE _cb .PdfObject ;BS _cb .PdfObject ;IC _cb .PdfObject ;BE _cb .PdfObject ;IT _cb .PdfObject ;Measure _cb .PdfObject ;};func (_cccc fontCommon )asPdfObjectDictionary (_gbef string )*_cb .PdfObjectDictionary {if _gbef !=""&&_cccc ._fbefd !=""&&_gbef !=_cccc ._fbefd {_dbe .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",_gbef ,_cccc );}else if _gbef ==""&&_cccc ._fbefd ==""{_dbe .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",_cccc );}else if _cccc ._fbefd ==""{_cccc ._fbefd =_gbef ;};_aaaf :=_cb .MakeDict ();_aaaf .Set ("\u0054\u0079\u0070\u0065",_cb .MakeName ("\u0046\u006f\u006e\u0074"));_aaaf .Set ("\u0042\u0061\u0073\u0065\u0046\u006f\u006e\u0074",_cb .MakeName (_cccc ._babff ));_aaaf .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_cb .MakeName (_cccc ._fbefd ));if _cccc ._bgbb !=nil {_aaaf .Set ("\u0046\u006f\u006e\u0074\u0044\u0065\u0073\u0063\u0072i\u0070\u0074\u006f\u0072",_cccc ._bgbb .ToPdfObject ());};if _cccc ._ccaac !=nil {_aaaf .Set ("\u0054o\u0055\u006e\u0069\u0063\u006f\u0064e",_cccc ._ccaac );}else if _cccc ._agag !=nil {_ebddd ,_affa :=_cccc ._agag .Stream ();if _affa !=nil {_dbe .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",_affa );}else {_aaaf .Set ("\u0054o\u0055\u006e\u0069\u0063\u006f\u0064e",_ebddd );};};return _aaaf ;};func (_gcag *PdfReader )newPdfAnnotationScreenFromDict (_cfe *_cb .PdfObjectDictionary )(*PdfAnnotationScreen ,error ){_cbcb :=PdfAnnotationScreen {};_cbcb .T =_cfe .Get ("\u0054");_cbcb .MK =_cfe .Get ("\u004d\u004b");_cbcb .A =_cfe .Get ("\u0041");_cbcb .AA =_cfe .Get ("\u0041\u0041");return &_cbcb ,nil ;};
// GetCharMetrics returns the char metrics for character code `code`.
func (_becab pdfFontType0 )GetCharMetrics (code _ccb .CharCode )(_af .CharMetrics ,bool ){if _becab .DescendantFont ==nil {_dbe .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",_becab );return _af .CharMetrics {},false ;};return _becab .DescendantFont .GetCharMetrics (code );};
// PdfFunction interface represents the common methods of a function in PDF.
type PdfFunction interface{Evaluate ([]float64 )([]float64 ,error );ToPdfObject ()_cb .PdfObject ;};
// NewPdfActionMovie returns a new "movie" action.
func NewPdfActionMovie ()*PdfActionMovie {_bfa :=NewPdfAction ();_fcg :=&PdfActionMovie {};_fcg .PdfAction =_bfa ;_bfa .SetContext (_fcg );return _fcg ;};
// Height returns the height of `rect`.
func (_aegeg *PdfRectangle )Height ()float64 {return _ag .Abs (_aegeg .Ury -_aegeg .Lly )};type pdfFontType0 struct{fontCommon ;_ggbe *_cb .PdfIndirectObject ;_ggdg _ccb .TextEncoder ;Encoding _cb .PdfObject ;DescendantFont *PdfFont ;_cebae *_gb .CMap ;};
// SetXObjectByName adds the XObject from the passed in stream to the page resources.
// The added XObject is identified by the specified name.
func (_eggcf *PdfPageResources )SetXObjectByName (keyName _cb .PdfObjectName ,stream *_cb .PdfObjectStream )error {if _eggcf .XObject ==nil {_eggcf .XObject =_cb .MakeDict ();};_cefcd :=_cb .TraceToDirectObject (_eggcf .XObject );_ceafg ,_fcbde :=_cefcd .(*_cb .PdfObjectDictionary );if !_fcbde {_dbe .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",_eggcf .XObject ,_cefcd );return _bc .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_ceafg .Set (keyName ,stream );return nil ;};
// PdfAnnotationLine represents Line annotations.
// (Section 12.5.6.7).
type PdfAnnotationLine struct{*PdfAnnotation ;*PdfAnnotationMarkup ;L _cb .PdfObject ;BS _cb .PdfObject ;LE _cb .PdfObject ;IC _cb .PdfObject ;LL _cb .PdfObject ;LLE _cb .PdfObject ;Cap _cb .PdfObject ;IT _cb .PdfObject ;LLO _cb .PdfObject ;CP _cb .PdfObject ;Measure _cb .PdfObject ;CO _cb .PdfObject ;};
// ToPdfObject sets the common field elements.
// Note: Call the more field context's ToPdfObject to set both the generic and
// non-generic information.
func (_fcdf *PdfField )ToPdfObject ()_cb .PdfObject {_bdgfe :=_fcdf ._addef ;_adbe :=_bdgfe .PdfObject .(*_cb .PdfObjectDictionary );_cdffd :=_cb .MakeArray ();for _ ,_cdfc :=range _fcdf .Kids {_cdffd .Append (_cdfc .ToPdfObject ());};for _ ,_ccde :=range _fcdf .Annotations {if _ccde ._efd !=_fcdf ._addef {_cdffd .Append (_ccde .GetContext ().ToPdfObject ());};};if _fcdf .Parent !=nil {_adbe .SetIfNotNil ("\u0050\u0061\u0072\u0065\u006e\u0074",_fcdf .Parent .GetContainingPdfObject ());};if _cdffd .Len ()> 0{_adbe .Set ("\u004b\u0069\u0064\u0073",_cdffd );};_adbe .SetIfNotNil ("\u0046\u0054",_fcdf .FT );_adbe .SetIfNotNil ("\u0054",_fcdf .T );_adbe .SetIfNotNil ("\u0054\u0055",_fcdf .TU );_adbe .SetIfNotNil ("\u0054\u004d",_fcdf .TM );_adbe .SetIfNotNil ("\u0046\u0066",_fcdf .Ff );_adbe .SetIfNotNil ("\u0056",_fcdf .V );_adbe .SetIfNotNil ("\u0044\u0056",_fcdf .DV );_adbe .SetIfNotNil ("\u0041\u0041",_fcdf .AA );return _bdgfe ;};func _gacea (_ffcd _cb .PdfObject ,_affd bool )(*PdfFont ,error ){_bdca ,_ceeca ,_cdgf :=_eegf (_ffcd );if _cdgf !=nil {if _cdgf ==ErrType3FontNotSupported ||_cdgf ==ErrType1CFontNotSupported {_efba ,_gfgdc :=_babb (_bdca ,_ceeca ,nil );if _gfgdc !=nil {_dbe .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",_ceeca ,_gfgdc );return nil ,_cdgf ;};return &PdfFont {_cdfe :_efba },_cdgf ;};return nil ,_cdgf ;};_dafg :=&PdfFont {};switch _ceeca ._fbefd {case "\u0054\u0079\u0070e\u0030":if !_affd {_dbe .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",_ceeca );return nil ,_bc .New ("\u0063\u0079\u0063\u006cic\u0061\u006c\u0020\u0074\u0079\u0070\u0065\u0030\u0020\u006c\u006f\u0061\u0064\u0069n\u0067");};_dacg ,_afbf :=_acccf (_bdca ,_ceeca );if _afbf !=nil {_dbe .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",_ceeca ,_afbf );return nil ,_afbf ;};_dafg ._cdfe =_dacg ;case "\u0054\u0079\u0070e\u0031","\u0054\u0079\u0070e\u0033","\u004dM\u0054\u0079\u0070\u0065\u0031","\u0054\u0072\u0075\u0065\u0054\u0079\u0070\u0065":var _dgdbg *pdfFontSimple ;_fege ,_eecc :=_af .NewStdFontByName (_af .StdFontName (_ceeca ._babff ));if _eecc {_babd :=_dccg (_fege );_dafg ._cdfe =&_babd ;_cfc :=_cb .TraceToDirectObject (_babd .ToPdfObject ());_agcbf ,_fcfc ,_fdff :=_eegf (_cfc );if _fdff !=nil {_dbe .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",_ceeca ,_babd );return nil ,_fdff ;};for _ ,_egfd :=range _bdca .Keys (){_agcbf .Set (_egfd ,_bdca .Get (_egfd ));};_dgdbg ,_fdff =_babb (_agcbf ,_fcfc ,_babd ._cecgb );if _fdff !=nil {_dbe .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",_ceeca ,_babd );return nil ,_fdff ;};_dgdbg ._cfgdd =_babd ._cfgdd ;_dgdbg ._egdg =_babd ._egdg ;}else {_dgdbg ,_cdgf =_babb (_bdca ,_ceeca ,nil );if _cdgf !=nil {_dbe .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",_ceeca ,_cdgf );return nil ,_cdgf ;};};_cdgf =_dgdbg .addEncoding ();if _cdgf !=nil {return nil ,_cdgf ;};if _eecc {_dgdbg .updateStandard14Font ();};if _eecc &&_dgdbg ._egffg ==nil &&_dgdbg ._cecgb ==nil {_dbe .Log .Error ("\u0073\u0069\u006d\u0070\u006c\u0065\u0066\u006f\u006e\u0074\u003d\u0025\u0073",_dgdbg );_dbe .Log .Error ("\u0066n\u0074\u003d\u0025\u002b\u0076",_fege );};if len (_dgdbg ._cfgdd )==0{_dbe .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a \u004e\u006f\u0020\u0077\u0069d\u0074h\u0073.\u0020\u0066\u006f\u006e\u0074\u003d\u0025s",_dgdbg );};_dafg ._cdfe =_dgdbg ;case "\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0030":_cdfba ,_dcce :=_cgbe (_bdca ,_ceeca );if _dcce !=nil {_dbe .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",_dcce );return nil ,_dcce ;};_dafg ._cdfe =_cdfba ;case "\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032":_bdeab ,_gfbc :=_bccd (_bdca ,_ceeca );if _gfbc !=nil {_dbe .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",_ceeca ,_gfbc );return nil ,_gfbc ;};_dafg ._cdfe =_bdeab ;default:_dbe .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",_ceeca );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",_ceeca );};return _dafg ,nil ;};func (_gdeb *PdfReader )loadStructure ()error {if _gdeb ._gfecg .GetCrypter ()!=nil &&!_gdeb ._gfecg .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");};_gaec :=_gdeb ._gfecg .GetTrailer ();if _gaec ==nil {return _c .Errorf ("\u006di\u0073s\u0069\u006e\u0067\u0020\u0074\u0072\u0061\u0069\u006c\u0065\u0072");};_cfebb ,_faegda :=_gaec .Get ("\u0052\u006f\u006f\u0074").(*_cb .PdfObjectReference );if !_faegda {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",_gaec );};_gedf ,_febe :=_gdeb ._gfecg .LookupByReference (*_cfebb );if _febe !=nil {_dbe .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",_febe );return _febe ;};_cgceb ,_faegda :=_gedf .(*_cb .PdfIndirectObject );if !_faegda {_dbe .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",_gedf ,*_gaec );return _bc .New ("\u006di\u0073s\u0069\u006e\u0067\u0020\u0063\u0061\u0074\u0061\u006c\u006f\u0067");};_cagbd ,_faegda :=(*_cgceb ).PdfObject .(*_cb .PdfObjectDictionary );if !_faegda {_dbe .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",_cgceb .PdfObject );return _bc .New ("\u0069n\u0076a\u006c\u0069\u0064\u0020\u0063\u0061\u0074\u0061\u006c\u006f\u0067");};_dbe .Log .Trace ("C\u0061\u0074\u0061\u006c\u006f\u0067\u003a\u0020\u0025\u0073",_cagbd );_cfcae ,_faegda :=_cagbd .Get ("\u0050\u0061\u0067e\u0073").(*_cb .PdfObjectReference );if !_faegda {return _bc .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");};_cfgcbf ,_febe :=_gdeb ._gfecg .LookupByReference (*_cfcae );if _febe !=nil {_dbe .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 _febe ;};_cebaa ,_faegda :=_cfgcbf .(*_cb .PdfIndirectObject );if !_faegda {_dbe .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");_dbe .Log .Debug ("\u006f\u0070\u003a\u0020\u0025\u0070",_cebaa );return _bc .New ("p\u0061g\u0065\u0073\u0020\u006f\u0062\u006a\u0065\u0063t\u0020\u0069\u006e\u0076al\u0069\u0064");};_aecee ,_faegda :=_cebaa .PdfObject .(*_cb .PdfObjectDictionary );if !_faegda {_dbe .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",_cebaa );return _bc .New ("p\u0061g\u0065\u0073\u0020\u006f\u0062\u006a\u0065\u0063t\u0020\u0069\u006e\u0076al\u0069\u0064");};_gegee ,_faegda :=_cb .GetInt (_aecee .Get ("\u0043\u006f\u0075n\u0074"));if !_faegda {_dbe .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 _bc .New ("\u0070\u0061\u0067\u0065s \u0063\u006f\u0075\u006e\u0074\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064");};if _ ,_faegda =_cb .GetName (_aecee .Get ("\u0054\u0079\u0070\u0065"));!_faegda {_dbe .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");_aecee .Set ("\u0054\u0079\u0070\u0065",_cb .MakeName ("\u0050\u0061\u0067e\u0073"));};_gdeb ._adedg =_cfebb ;_gdeb ._fccgb =_cagbd ;_gdeb ._dgfe =_aecee ;_gdeb ._dbbag =_cebaa ;_gdeb ._gabac =int (*_gegee );_gdeb ._dfcdb =[]*_cb .PdfIndirectObject {};_agcfe :=map[_cb .PdfObject ]struct{}{};_febe =_gdeb .buildPageList (_cebaa ,nil ,_agcfe );if _febe !=nil {return _febe ;};_dbe .Log .Trace ("\u002d\u002d\u002d");_dbe .Log .Trace ("\u0054\u004f\u0043");_dbe .Log .Trace ("\u0050\u0061\u0067e\u0073");_dbe .Log .Trace ("\u0025\u0064\u003a\u0020\u0025\u0073",len (_gdeb ._dfcdb ),_gdeb ._dfcdb );_gdeb ._adcea ,_febe =_gdeb .loadOutlines ();if _febe !=nil {_dbe .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",_febe );return _febe ;};_gdeb .AcroForm ,_febe =_gdeb .loadForms ();if _febe !=nil {return _febe ;};return nil ;};
// NewOutlineDest returns a new outline destination which can be used
// with outline items.
func NewOutlineDest (page int64 ,x ,y float64 )OutlineDest {return OutlineDest {Page :page ,Mode :"\u0058\u0059\u005a",X :x ,Y :y };};func (_dddgb *PdfAcroForm )filteredFields (_fbebf FieldFilterFunc ,_edbc bool )[]*PdfField {if _dddgb ==nil {return nil ;};return _dgcf (_dddgb .Fields ,_fbebf ,_edbc );};func (_eecgf *PdfFilespec )getDict ()*_cb .PdfObjectDictionary {if _gfaa ,_degd :=_eecgf ._fdfg .(*_cb .PdfIndirectObject );_degd {_fgbf ,_agfb :=_gfaa .PdfObject .(*_cb .PdfObjectDictionary );if !_agfb {return nil ;};return _fgbf ;}else if _faeb ,_dbfc :=_eecgf ._fdfg .(*_cb .PdfObjectDictionary );_dbfc {return _faeb ;}else {_dbe .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",_eecgf ._fdfg );return nil ;};};
// 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 _cb .PdfObjectArray )(*PdfRectangle ,error ){_dggb :=PdfRectangle {};if arr .Len ()!=4{return nil ,_bc .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 _degag error ;_dggb .Llx ,_degag =_cb .GetNumberAsFloat (arr .Get (0));if _degag !=nil {return nil ,_degag ;};_dggb .Lly ,_degag =_cb .GetNumberAsFloat (arr .Get (1));if _degag !=nil {return nil ,_degag ;};_dggb .Urx ,_degag =_cb .GetNumberAsFloat (arr .Get (2));if _degag !=nil {return nil ,_degag ;};_dggb .Ury ,_degag =_cb .GetNumberAsFloat (arr .Get (3));if _degag !=nil {return nil ,_degag ;};return &_dggb ,nil ;};
// ColorFromFloats returns a new PdfColor based on the input slice of color
// components.
func (_egaa *PdfColorspaceSpecialPattern )ColorFromFloats (vals []float64 )(PdfColor ,error ){if _egaa .UnderlyingCS ==nil {return nil ,_bc .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 _egaa .UnderlyingCS .ColorFromFloats (vals );};
// HasExtGState checks if ExtGState name is available.
func (_eafd *PdfPage )HasExtGState (name _cb .PdfObjectName )bool {if _eafd .Resources ==nil {return false ;};if _eafd .Resources .ExtGState ==nil {return false ;};_adggf ,_gfea :=_cb .TraceToDirectObject (_eafd .Resources .ExtGState ).(*_cb .PdfObjectDictionary );if !_gfea {_dbe .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",_cb .TraceToDirectObject (_eafd .Resources .ExtGState ));return false ;};_bfge :=_adggf .Get (name );_dagee :=_bfge !=nil ;return _dagee ;};
// PdfBorderStyle represents a border style dictionary (12.5.4 Border Styles p. 394).
type PdfBorderStyle struct{W *float64 ;S *BorderStyle ;D *[]int ;_cbcbf _cb .PdfObject ;};
// UpdatePage updates the `page` in the new revision if it has changed.
func (_eafc *PdfAppender )UpdatePage (page *PdfPage ){_eafc .updateObjectsDeep (page .ToPdfObject (),nil )};func (_aded *PdfReader )flattenFieldsWithOpts (_cfgc bool ,_faeec FieldAppearanceGenerator ,_dcgd *FieldFlattenOpts )error {if _dcgd ==nil {_dcgd =&FieldFlattenOpts {};};var _ecgf bool ;_daee :=map[*PdfAnnotation ]bool {};{var _acggc []*PdfField ;_cadeg :=_aded .AcroForm ;if _cadeg !=nil {if _dcgd .FilterFunc !=nil {_acggc =_cadeg .filteredFields (_dcgd .FilterFunc ,true );_ecgf =_cadeg .Fields !=nil &&len (*_cadeg .Fields )> 0;}else {_acggc =_cadeg .AllFields ();};};for _ ,_bfbe :=range _acggc {for _ ,_ebac :=range _bfbe .Annotations {_daee [_ebac .PdfAnnotation ]=_bfbe .V !=nil ;if _faeec !=nil {_acgd ,_eega :=_faeec .GenerateAppearanceDict (_cadeg ,_bfbe ,_ebac );if _eega !=nil {return _eega ;};_ebac .AP =_acgd ;};};};};if _cfgc {for _ ,_eeada :=range _aded .PageList {_ffcbg ,_fffb :=_eeada .GetAnnotations ();if _fffb !=nil {return _fffb ;};for _ ,_gccg :=range _ffcbg {_daee [_gccg ]=true ;};};};for _ ,_bccc :=range _aded .PageList {var _bdab []*PdfAnnotation ;if _faeec !=nil {if _fcdba :=_faeec .WrapContentStream (_bccc );_fcdba !=nil {return _fcdba ;};};_ggaf ,_cegg :=_bccc .GetAnnotations ();if _cegg !=nil {return _cegg ;};for _ ,_bbdb :=range _ggaf {_fgdcf ,_adgcc :=_daee [_bbdb ];if !_adgcc {_bdab =append (_bdab ,_bbdb );continue ;};switch _bbdb .GetContext ().(type ){case *PdfAnnotationPopup :continue ;case *PdfAnnotationLink :continue ;case *PdfAnnotationProjection :continue ;};_eebd ,_fgdf ,_dceb :=_cfeda (_bbdb );if _dceb !=nil {if !_fgdcf {_dbe .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 ;};_dbe .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",_dceb );continue ;};if _eebd ==nil {continue ;};_faag :=_bccc .Resources .GenerateXObjectName ();_bccc .Resources .SetXObjectFormByName (_faag ,_eebd );_agfbc :=_ag .Min (_fgdf .Llx ,_fgdf .Urx );_aaged :=_ag .Min (_fgdf .Lly ,_fgdf .Ury );var _babf []string ;_babf =append (_babf ,"\u0071");_babf =append (_babf ,_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,_agfbc ,_aaged ));_babf =append (_babf ,_c .Sprintf ("\u002f\u0025\u0073\u0020\u0044\u006f",_faag .String ()));_babf =append (_babf ,"\u0051");_aefg :=_fe .Join (_babf ,"\u000a");_dceb =_bccc .AppendContentStream (_aefg );if _dceb !=nil {return _dceb ;};if _eebd .Resources !=nil {_bcbe ,_bggc :=_cb .GetDict (_eebd .Resources .Font );if _bggc {for _ ,_ebge :=range _bcbe .Keys (){if !_bccc .Resources .HasFontByName (_ebge ){_bccc .Resources .SetFontByName (_ebge ,_bcbe .Get (_ebge ));};};};};};if len (_bdab )> 0{_bccc ._dcgde =_bdab ;}else {_bccc ._dcgde =[]*PdfAnnotation {};};};if !_ecgf {_aded .AcroForm =nil ;};return nil ;};
// NewOutlineItem returns a new outline item instance.
func NewOutlineItem (title string ,dest OutlineDest )*OutlineItem {return &OutlineItem {Title :title ,Dest :dest };};
// ToPdfObject implements interface PdfModel.
func (_fa *PdfActionHide )ToPdfObject ()_cb .PdfObject {_fa .PdfAction .ToPdfObject ();_gggg :=_fa ._fc ;_gfd :=_gggg .PdfObject .(*_cb .PdfObjectDictionary );_gfd .SetIfNotNil ("\u0053",_cb .MakeName (string (ActionTypeHide )));_gfd .SetIfNotNil ("\u0054",_fa .T );_gfd .SetIfNotNil ("\u0048",_fa .H );return _gggg ;};
// 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 _cb .PdfObject ;FontFamily _cb .PdfObject ;FontStretch _cb .PdfObject ;FontWeight _cb .PdfObject ;Flags _cb .PdfObject ;FontBBox _cb .PdfObject ;ItalicAngle _cb .PdfObject ;Ascent _cb .PdfObject ;Descent _cb .PdfObject ;Leading _cb .PdfObject ;CapHeight _cb .PdfObject ;XHeight _cb .PdfObject ;StemV _cb .PdfObject ;StemH _cb .PdfObject ;AvgWidth _cb .PdfObject ;MaxWidth _cb .PdfObject ;MissingWidth _cb .PdfObject ;FontFile _cb .PdfObject ;FontFile2 _cb .PdfObject ;FontFile3 _cb .PdfObject ;CharSet _cb .PdfObject ;_bfdd int ;_bdfag float64 ;*fontFile ;_eabdd *_af .TtfType ;
// Additional entries for CIDFonts
Style _cb .PdfObject ;Lang _cb .PdfObject ;FD _cb .PdfObject ;CIDSet _cb .PdfObject ;_gaede *_cb .PdfIndirectObject ;};
// PdfActionGoToE represents a GoToE action.
type PdfActionGoToE struct{*PdfAction ;F *PdfFilespec ;D _cb .PdfObject ;NewWindow _cb .PdfObject ;T _cb .PdfObject ;};var (_gfec =_e .MustCompile ("\u005cd\u002b\u0020\u0064\u0069c\u0074\u005c\u0073\u002b\u0028d\u0075p\u005cs\u002b\u0029\u003f\u0062\u0065\u0067\u0069n");_afdg =_e .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");_caca =_e .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");_cggf ="\u002f\u0045\u006e\u0063od\u0069\u006e\u0067\u0020\u0032\u0035\u0036\u0020\u0061\u0072\u0072\u0061\u0079";_ebeg ="\u0072\u0065\u0061d\u006f\u006e\u006c\u0079\u0020\u0064\u0065\u0066";_gfadb ="\u0063\u0075\u0072\u0072\u0065\u006e\u0074\u0066\u0069\u006c\u0065\u0020e\u0065\u0078\u0065\u0063";);
// PdfColorPattern represents a pattern color.
type PdfColorPattern struct{Color PdfColor ;PatternName _cb .PdfObjectName ;};func _fbeb (_gcbe *_cb .PdfObjectDictionary )(*PdfFieldText ,error ){_bfdg :=&PdfFieldText {};_bfdg .DA ,_ =_cb .GetString (_gcbe .Get ("\u0044\u0041"));_bfdg .Q ,_ =_cb .GetInt (_gcbe .Get ("\u0051"));_bfdg .DS ,_ =_cb .GetString (_gcbe .Get ("\u0044\u0053"));_bfdg .RV =_gcbe .Get ("\u0052\u0056");_bfdg .MaxLen ,_ =_cb .GetInt (_gcbe .Get ("\u004d\u0061\u0078\u004c\u0065\u006e"));return _bfdg ,nil ;};
// String implements interface PdfObject.
func (_be *PdfAction )String ()string {_ef ,_ebg :=_be .ToPdfObject ().(*_cb .PdfIndirectObject );if _ebg {return _c .Sprintf ("\u0025\u0054\u003a\u0020\u0025\u0073",_be ._ab ,_ef .PdfObject .String ());};return "";};func (_cccgc *PdfShading )getShadingDict ()(*_cb .PdfObjectDictionary ,error ){_gbec :=_cccgc ._gfdg ;if _eacf ,_ffef :=_gbec .(*_cb .PdfIndirectObject );_ffef {_gffc ,_bffbb :=_eacf .PdfObject .(*_cb .PdfObjectDictionary );if !_bffbb {return nil ,_cb .ErrTypeError ;};return _gffc ,nil ;}else if _facg ,_gagfe :=_gbec .(*_cb .PdfObjectStream );_gagfe {return _facg .PdfObjectDictionary ,nil ;}else if _acce ,_bdbd :=_gbec .(*_cb .PdfObjectDictionary );_bdbd {return _acce ,nil ;}else {_dbe .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 ,_cb .ErrTypeError ;};};func _bfbbbg (_dgccf *fontCommon )*pdfCIDFontType2 {return &pdfCIDFontType2 {fontCommon :*_dgccf }};
// Encoder returns the font's text encoder.
func (_cddd pdfCIDFontType2 )Encoder ()_ccb .TextEncoder {return _cddd ._acdcfc };
// R returns the value of the red component of the color.
func (_deaeb *PdfColorDeviceRGB )R ()float64 {return float64 (_deaeb [0])};
// PdfActionJavaScript represents a javaScript action.
type PdfActionJavaScript struct{*PdfAction ;JS _cb .PdfObject ;};
// Val returns the color value.
func (_eabd *PdfColorDeviceGray )Val ()float64 {return float64 (*_eabd )};
// ToPdfObject implements interface PdfModel.
func (_adf *PdfActionGoToR )ToPdfObject ()_cb .PdfObject {_adf .PdfAction .ToPdfObject ();_gbc :=_adf ._fc ;_ge :=_gbc .PdfObject .(*_cb .PdfObjectDictionary );_ge .SetIfNotNil ("\u0053",_cb .MakeName (string (ActionTypeGoToR )));if _adf .F !=nil {_ge .Set ("\u0046",_adf .F .ToPdfObject ());};_ge .SetIfNotNil ("\u0044",_adf .D );_ge .SetIfNotNil ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw",_adf .NewWindow );return _gbc ;};func _gdgd (_deee []byte )bool {if len (_deee )< 4{return true ;};for _gcagd :=range _deee [:4]{_gcecdb :=rune (_gcagd );if !_g .Is (_g .ASCII_Hex_Digit ,_gcecdb )&&!_g .IsSpace (_gcecdb ){return true ;};};return false ;};func (_fbg *PdfReader )newPdfActionGotoFromDict (_dbcc *_cb .PdfObjectDictionary )(*PdfActionGoTo ,error ){return &PdfActionGoTo {D :_dbcc .Get ("\u0044")},nil ;};
// SetNamedDestinations sets the Names entry in the PDF catalog.
// See section 12.3.2.3 "Named Destinations" (p. 367 PDF32000_2008).
func (_cefb *PdfWriter )SetNamedDestinations (names _cb .PdfObject )error {if names ==nil {return nil ;};_dbe .Log .Trace ("\u0053e\u0074\u0074\u0069\u006e\u0067\u0020\u0063\u0061\u0074\u0061\u006co\u0067\u0020\u004e\u0061\u006d\u0065\u0073\u002e\u002e\u002e");_cefb ._fgfb .Set ("\u004e\u0061\u006de\u0073",names );return _cefb .addObjects (names );};func (_fgdc *PdfColorspaceDeviceGray )String ()string {return "\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079";};
// 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 *_cb .PdfObjectStream )(*XObjectImage ,error ){_bdccb :=&XObjectImage {};_bdccb ._egbff =stream ;_efdef :=*(stream .PdfObjectDictionary );_edbeg ,_adccf :=_cb .NewEncoderFromStream (stream );if _adccf !=nil {return nil ,_adccf ;};_bdccb .Filter =_edbeg ;if _aeaea :=_cb .TraceToDirectObject (_efdef .Get ("\u0057\u0069\u0064t\u0068"));_aeaea !=nil {_fceaac ,_eacb :=_aeaea .(*_cb .PdfObjectInteger );if !_eacb {return nil ,_bc .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");};_ddeec :=int64 (*_fceaac );_bdccb .Width =&_ddeec ;}else {return nil ,_bc .New ("\u0077\u0069\u0064\u0074\u0068\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};if _aadeg :=_cb .TraceToDirectObject (_efdef .Get ("\u0048\u0065\u0069\u0067\u0068\u0074"));_aadeg !=nil {_fgda ,_acbcg :=_aadeg .(*_cb .PdfObjectInteger );if !_acbcg {return nil ,_bc .New ("i\u006e\u0076\u0061\u006c\u0069\u0064 \u0069\u006d\u0061\u0067\u0065\u0020\u0068\u0065\u0069g\u0068\u0074\u0020o\u0062j\u0065\u0063\u0074");};_egcgb :=int64 (*_fgda );_bdccb .Height =&_egcgb ;}else {return nil ,_bc .New ("\u0068\u0065\u0069\u0067\u0068\u0074\u0020\u006d\u0069s\u0073\u0069\u006e\u0067");};if _fggfc :=_cb .TraceToDirectObject (_efdef .Get ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065"));_fggfc !=nil {_eacbf ,_ffggg :=NewPdfColorspaceFromPdfObject (_fggfc );if _ffggg !=nil {return nil ,_ffggg ;};_bdccb .ColorSpace =_eacbf ;}else {_dbe .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");_bdccb .ColorSpace =NewPdfColorspaceDeviceGray ();};if _dbfb :=_cb .TraceToDirectObject (_efdef .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074"));_dbfb !=nil {_bgcac ,_bbbbfg :=_dbfb .(*_cb .PdfObjectInteger );if !_bbbbfg {return nil ,_bc .New ("i\u006e\u0076\u0061\u006c\u0069\u0064 \u0069\u006d\u0061\u0067\u0065\u0020\u0068\u0065\u0069g\u0068\u0074\u0020o\u0062j\u0065\u0063\u0074");};_ccafdc :=int64 (*_bgcac );_bdccb .BitsPerComponent =&_ccafdc ;};_bdccb .Intent =_efdef .Get ("\u0049\u006e\u0074\u0065\u006e\u0074");_bdccb .ImageMask =_efdef .Get ("\u0049m\u0061\u0067\u0065\u004d\u0061\u0073k");_bdccb .Mask =_efdef .Get ("\u004d\u0061\u0073\u006b");_bdccb .Decode =_efdef .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");_bdccb .Interpolate =_efdef .Get ("I\u006e\u0074\u0065\u0072\u0070\u006f\u006c\u0061\u0074\u0065");_bdccb .Alternatives =_efdef .Get ("\u0041\u006c\u0074e\u0072\u006e\u0061\u0074\u0069\u0076\u0065\u0073");_bdccb .SMask =_efdef .Get ("\u0053\u004d\u0061s\u006b");_bdccb .SMaskInData =_efdef .Get ("S\u004d\u0061\u0073\u006b\u0049\u006e\u0044\u0061\u0074\u0061");_bdccb .Matte =_efdef .Get ("\u004d\u0061\u0074t\u0065");_bdccb .Name =_efdef .Get ("\u004e\u0061\u006d\u0065");_bdccb .StructParent =_efdef .Get ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074");_bdccb .ID =_efdef .Get ("\u0049\u0044");_bdccb .OPI =_efdef .Get ("\u004f\u0050\u0049");_bdccb .Metadata =_efdef .Get ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");_bdccb .OC =_efdef .Get ("\u004f\u0043");_bdccb .Stream =stream .Stream ;return _bdccb ,nil ;};
// NewPdfActionNamed returns a new "named" action.
func NewPdfActionNamed ()*PdfActionNamed {_acd :=NewPdfAction ();_bee :=&PdfActionNamed {};_bee .PdfAction =_acd ;_acd .SetContext (_bee );return _bee ;};
// ToPdfObject implements interface PdfModel.
func (_bfd *PdfActionResetForm )ToPdfObject ()_cb .PdfObject {_bfd .PdfAction .ToPdfObject ();_geg :=_bfd ._fc ;_efe :=_geg .PdfObject .(*_cb .PdfObjectDictionary );_efe .SetIfNotNil ("\u0053",_cb .MakeName (string (ActionTypeResetForm )));_efe .SetIfNotNil ("\u0046\u0069\u0065\u006c\u0064\u0073",_bfd .Fields );_efe .SetIfNotNil ("\u0046\u006c\u0061g\u0073",_bfd .Flags );return _geg ;};
// ToPdfObject returns the PDF representation of the function.
func (_aggea *PdfFunctionType0 )ToPdfObject ()_cb .PdfObject {if _aggea ._dgaa ==nil {_aggea ._dgaa =&_cb .PdfObjectStream {};};_cgcab :=_cb .MakeDict ();_cgcab .Set ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065",_cb .MakeInteger (0));_bcecda :=&_cb .PdfObjectArray {};for _ ,_deeaa :=range _aggea .Domain {_bcecda .Append (_cb .MakeFloat (_deeaa ));};_cgcab .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_bcecda );_cfccg :=&_cb .PdfObjectArray {};for _ ,_dfcc :=range _aggea .Range {_cfccg .Append (_cb .MakeFloat (_dfcc ));};_cgcab .Set ("\u0052\u0061\u006eg\u0065",_cfccg );_cgdega :=&_cb .PdfObjectArray {};for _ ,_dfgf :=range _aggea .Size {_cgdega .Append (_cb .MakeInteger (int64 (_dfgf )));};_cgcab .Set ("\u0053\u0069\u007a\u0065",_cgdega );_cgcab .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0053\u0061\u006d\u0070\u006c\u0065",_cb .MakeInteger (int64 (_aggea .BitsPerSample )));if _aggea .Order !=1{_cgcab .Set ("\u004f\u0072\u0064e\u0072",_cb .MakeInteger (int64 (_aggea .Order )));};_cgcab .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_cb .MakeInteger (int64 (len (_aggea ._gfdce ))));_aggea ._dgaa .Stream =_aggea ._gfdce ;_aggea ._dgaa .PdfObjectDictionary =_cgcab ;return _aggea ._dgaa ;};
// 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 ;_gaadd *_cb .PdfIndirectObject ;};
// ToPdfObject converts the pdfCIDFontType0 to a PDF representation.
func (_dfded *pdfCIDFontType0 )ToPdfObject ()_cb .PdfObject {return _cb .MakeNull ()};
// GetShadingByName gets the shading specified by keyName. Returns nil if not existing.
// The bool flag indicated whether it was found or not.
func (_caea *PdfPageResources )GetShadingByName (keyName _cb .PdfObjectName )(*PdfShading ,bool ){if _caea .Shading ==nil {return nil ,false ;};_dfcfa ,_fadge :=_cb .TraceToDirectObject (_caea .Shading ).(*_cb .PdfObjectDictionary );if !_fadge {_dbe .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",_caea .Shading );return nil ,false ;};if _ccfg :=_dfcfa .Get (keyName );_ccfg !=nil {_efea ,_ccbf :=_eegddc (_ccfg );if _ccbf !=nil {_dbe .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",_ccbf );return nil ,false ;};return _efea ,true ;};return nil ,false ;};
// Clear clears flag fl from the flag and returns the resulting flag.
func (_abeb FieldFlag )Clear (fl FieldFlag )FieldFlag {return FieldFlag (_abeb .Mask ()&^fl .Mask ())};
// SetContext set the sub annotation (context).
func (_ffddc *PdfShading )SetContext (ctx PdfModel ){_ffddc ._cdece =ctx };
// ToPdfObject implements interface PdfModel.
func (_aeb *PdfAnnotationUnderline )ToPdfObject ()_cb .PdfObject {_aeb .PdfAnnotation .ToPdfObject ();_ccc :=_aeb ._efd ;_ggfb :=_ccc .PdfObject .(*_cb .PdfObjectDictionary );_aeb .PdfAnnotationMarkup .appendToPdfDictionary (_ggfb );_ggfb .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_cb .MakeName ("\u0055n\u0064\u0065\u0072\u006c\u0069\u006ee"));_ggfb .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_aeb .QuadPoints );return _ccc ;};func (_bgba *pdfCIDFontType0 )getFontDescriptor ()*PdfFontDescriptor {return _bgba ._bgbb };
// GetXObjectByName returns the XObject with the specified keyName and the object type.
func (_dceff *PdfPageResources )GetXObjectByName (keyName _cb .PdfObjectName )(*_cb .PdfObjectStream ,XObjectType ){if _dceff .XObject ==nil {return nil ,XObjectTypeUndefined ;};_eagfa ,_eaac :=_cb .TraceToDirectObject (_dceff .XObject ).(*_cb .PdfObjectDictionary );if !_eaac {_dbe .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",_cb .TraceToDirectObject (_dceff .XObject ));return nil ,XObjectTypeUndefined ;};if _bfcd :=_eagfa .Get (keyName );_bfcd !=nil {_gbdgc ,_gcaa :=_cb .GetStream (_bfcd );if !_gcaa {_dbe .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",_bfcd );return nil ,XObjectTypeUndefined ;};_egdcd :=_gbdgc .PdfObjectDictionary ;_gdcfe ,_gcaa :=_cb .TraceToDirectObject (_egdcd .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065")).(*_cb .PdfObjectName );if !_gcaa {_dbe .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",_egdcd .String ());return nil ,XObjectTypeUndefined ;};if *_gdcfe =="\u0049\u006d\u0061g\u0065"{return _gbdgc ,XObjectTypeImage ;}else if *_gdcfe =="\u0046\u006f\u0072\u006d"{return _gbdgc ,XObjectTypeForm ;}else if *_gdcfe =="\u0050\u0053"{return _gbdgc ,XObjectTypePS ;}else {_dbe .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",*_gdcfe );return nil ,XObjectTypeUndefined ;};}else {return nil ,XObjectTypeUndefined ;};};
// GetContext returns a reference to the subpattern entry: either PdfTilingPattern or PdfShadingPattern.
func (_ecgaa *PdfPattern )GetContext ()PdfModel {return _ecgaa ._eadd };func _cgddc ()string {return _ffbde };
// NewPdfActionThread returns a new "thread" action.
func NewPdfActionThread ()*PdfActionThread {_fec :=NewPdfAction ();_bd :=&PdfActionThread {};_bd .PdfAction =_fec ;_fec .SetContext (_bd );return _bd ;};
// NewPdfFilespecFromObj creates and returns a new PdfFilespec object.
func NewPdfFilespecFromObj (obj _cb .PdfObject )(*PdfFilespec ,error ){_gegc :=&PdfFilespec {};var _ffea *_cb .PdfObjectDictionary ;if _ebc ,_egggf :=_cb .GetIndirect (obj );_egggf {_gegc ._fdfg =_ebc ;_cbcgc ,_fegb :=_cb .GetDict (_ebc .PdfObject );if !_fegb {_dbe .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 ,_cb .ErrTypeError ;};_ffea =_cbcgc ;}else if _cbgg ,_becg :=_cb .GetDict (obj );_becg {_gegc ._fdfg =_cbgg ;_ffea =_cbgg ;}else {_dbe .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 ,_cb .ErrTypeError ;};if _ffea ==nil {_dbe .Log .Debug ("\u0044i\u0063t\u0069\u006f\u006e\u0061\u0072y\u0020\u006di\u0073\u0073\u0069\u006e\u0067");return nil ,_bc .New ("\u0064\u0069\u0063t\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};if _edca :=_ffea .Get ("\u0054\u0079\u0070\u0065");_edca !=nil {_eefd ,_edgfa :=_edca .(*_cb .PdfObjectName );if !_edgfa {_dbe .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",_edca );}else {if *_eefd !="\u0046\u0069\u006c\u0065\u0073\u0070\u0065\u0063"{_dbe .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",*_eefd );};};};if _cfeac :=_ffea .Get ("\u0046\u0053");_cfeac !=nil {_gegc .FS =_cfeac ;};if _fccg :=_ffea .Get ("\u0046");_fccg !=nil {_gegc .F =_fccg ;};if _fecg :=_ffea .Get ("\u0055\u0046");_fecg !=nil {_gegc .UF =_fecg ;};if _bfgga :=_ffea .Get ("\u0044\u004f\u0053");_bfgga !=nil {_gegc .DOS =_bfgga ;};if _dfdb :=_ffea .Get ("\u004d\u0061\u0063");_dfdb !=nil {_gegc .Mac =_dfdb ;};if _edfdf :=_ffea .Get ("\u0055\u006e\u0069\u0078");_edfdf !=nil {_gegc .Unix =_edfdf ;};if _gfagd :=_ffea .Get ("\u0049\u0044");_gfagd !=nil {_gegc .ID =_gfagd ;};if _afdf :=_ffea .Get ("\u0056");_afdf !=nil {_gegc .V =_afdf ;};if _bbccg :=_ffea .Get ("\u0045\u0046");_bbccg !=nil {_gegc .EF =_bbccg ;};if _abbeab :=_ffea .Get ("\u0052\u0046");_abbeab !=nil {_gegc .RF =_abbeab ;};if _ccab :=_ffea .Get ("\u0044\u0065\u0073\u0063");_ccab !=nil {_gegc .Desc =_ccab ;};if _fdbgb :=_ffea .Get ("\u0043\u0049");_fdbgb !=nil {_gegc .CI =_fdbgb ;};return _gegc ,nil ;};
// Width returns the width of `rect`.
func (_feaaa *PdfRectangle )Width ()float64 {return _ag .Abs (_feaaa .Urx -_feaaa .Llx )};func _gaeg (_cdae _cb .PdfObject )(*PdfColorspaceDeviceNAttributes ,error ){_aabcb :=&PdfColorspaceDeviceNAttributes {};var _gdaf *_cb .PdfObjectDictionary ;if _gfbf ,_egdef :=_cdae .(*_cb .PdfIndirectObject );_egdef {_aabcb ._afgb =_gfbf ;var _fggb bool ;_gdaf ,_fggb =_gfbf .PdfObject .(*_cb .PdfObjectDictionary );if !_fggb {_dbe .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 ,_bc .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};}else if _bbcd ,_edecf :=_cdae .(*_cb .PdfObjectDictionary );_edecf {_gdaf =_bbcd ;}else {_dbe .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 ,_bc .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _gcfc :=_gdaf .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065");_gcfc !=nil {_ebea ,_adbb :=_cb .TraceToDirectObject (_gcfc ).(*_cb .PdfObjectName );if !_adbb {_dbe .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 ,_bc .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};_aabcb .Subtype =_ebea ;};if _gdcb :=_gdaf .Get ("\u0043o\u006c\u006f\u0072\u0061\u006e\u0074s");_gdcb !=nil {_aabcb .Colorants =_gdcb ;};if _ded :=_gdaf .Get ("\u0050r\u006f\u0063\u0065\u0073\u0073");_ded !=nil {_aabcb .Process =_ded ;};if _fdcd :=_gdaf .Get ("M\u0069\u0078\u0069\u006e\u0067\u0048\u0069\u006e\u0074\u0073");_fdcd !=nil {_aabcb .MixingHints =_fdcd ;};return _aabcb ,nil ;};
// SetPdfCreationDate sets the CreationDate attribute of the output PDF.
func SetPdfCreationDate (creationDate _d .Time ){_dfbbdb =creationDate };
// PdfAnnotationStrikeOut represents StrikeOut annotations.
// (Section 12.5.6.10).
type PdfAnnotationStrikeOut struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _cb .PdfObject ;};
// Add appends an outline item as a child of the current outline item.
func (_bgdba *OutlineItem )Add (item *OutlineItem ){_bgdba .Entries =append (_bgdba .Entries ,item )};
// AddExtGState add External Graphics State (GState). The gsDict can be specified
// either directly as a dictionary or an indirect object containing a dictionary.
func (_ebeec *PdfPageResources )AddExtGState (gsName _cb .PdfObjectName ,gsDict _cb .PdfObject )error {if _ebeec .ExtGState ==nil {_ebeec .ExtGState =_cb .MakeDict ();};_bfgcb :=_ebeec .ExtGState ;_gccfe ,_bddgca :=_cb .TraceToDirectObject (_bfgcb ).(*_cb .PdfObjectDictionary );if !_bddgca {_dbe .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",_bfgcb ,_cb .TraceToDirectObject (_bfgcb ));return _cb .ErrTypeError ;};_gccfe .Set (gsName ,gsDict );return nil ;};
// ToPdfObject returns a PDF object representation of the outline item.
func (_gdef *OutlineItem )ToPdfObject ()_cb .PdfObject {_agdg ,_ :=_gdef .ToPdfOutlineItem ();return _agdg .ToPdfObject ();};func (_fcgdc *PdfAppender )updateObjectsDeep (_cgada _cb .PdfObject ,_aeff map[_cb .PdfObject ]struct{}){if _aeff ==nil {_aeff =map[_cb .PdfObject ]struct{}{};};if _ ,_bdcfg :=_aeff [_cgada ];_bdcfg ||_cgada ==nil {return ;};_aeff [_cgada ]=struct{}{};_cba :=_cb .ResolveReferencesDeep (_cgada ,_fcgdc ._cfdg );if _cba !=nil {_dbe .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_cba );};switch _dbdf :=_cgada .(type ){case *_cb .PdfIndirectObject :switch {case _dbdf .GetParser ()==_fcgdc ._acgg ._gfecg :return ;case _dbdf .GetParser ()==_fcgdc .Reader ._gfecg :_aeec ,_ :=_fcgdc ._acgg .GetIndirectObjectByNumber (int (_dbdf .ObjectNumber ));_agda ,_gega :=_aeec .(*_cb .PdfIndirectObject );if _gega &&_agda !=nil {if _agda .PdfObject !=_dbdf .PdfObject &&_agda .PdfObject .WriteString ()!=_dbdf .PdfObject .WriteString (){_fcgdc .addNewObject (_cgada );_fcgdc ._bgbd [_cgada ]=_dbdf .ObjectNumber ;};};default:_fcgdc .addNewObject (_cgada );};_fcgdc .updateObjectsDeep (_dbdf .PdfObject ,_aeff );case *_cb .PdfObjectArray :for _ ,_abgc :=range _dbdf .Elements (){_fcgdc .updateObjectsDeep (_abgc ,_aeff );};case *_cb .PdfObjectDictionary :for _ ,_beged :=range _dbdf .Keys (){_fcgdc .updateObjectsDeep (_dbdf .Get (_beged ),_aeff );};case *_cb .PdfObjectStreams :if _dbdf .GetParser ()!=_fcgdc ._acgg ._gfecg {for _ ,_gef :=range _dbdf .Elements (){_fcgdc .updateObjectsDeep (_gef ,_aeff );};};case *_cb .PdfObjectStream :switch {case _dbdf .GetParser ()==_fcgdc ._acgg ._gfecg :return ;case _dbdf .GetParser ()==_fcgdc .Reader ._gfecg :if _gaea ,_adac :=_fcgdc ._acgg ._gfecg .LookupByReference (_dbdf .PdfObjectReference );_adac ==nil {var _edac bool ;if _egbc ,_beba :=_cb .GetStream (_gaea );_beba &&_bbb .Equal (_egbc .Stream ,_dbdf .Stream ){_edac =true ;};if _cfee ,_faee :=_cb .GetDict (_gaea );_edac &&_faee {_edac =_cfee .WriteString ()==_dbdf .PdfObjectDictionary .WriteString ();};if _edac {return ;};};if _dbdf .ObjectNumber !=0{_fcgdc ._bgbd [_cgada ]=_dbdf .ObjectNumber ;};default:if _ ,_ggef :=_fcgdc ._gfb [_cgada ];!_ggef {_fcgdc .addNewObject (_cgada );};};_fcgdc .updateObjectsDeep (_dbdf .PdfObjectDictionary ,_aeff );};};
// ColorToRGB verifies that the input color is an RGB color. Method exists in
// order to satisfy the PdfColorspace interface.
func (_eeec *PdfColorspaceDeviceRGB )ColorToRGB (color PdfColor )(PdfColor ,error ){_dbbbe ,_fcff :=color .(*PdfColorDeviceRGB );if !_fcff {_dbe .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 ,_bc .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};return _dbbbe ,nil ;};func _ffeg (_agafb *fontCommon )*pdfCIDFontType0 {return &pdfCIDFontType0 {fontCommon :*_agafb }};func (_egeg *pdfFontSimple )getFontEncoding ()(_fccc string ,_cgef map[_ccb .CharCode ]_ccb .GlyphName ,_ebeeb error ){_fccc ="\u0053\u0074a\u006e\u0064\u0061r\u0064\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067";if _baddg ,_ggabd :=_gbggb [_egeg ._babff ];_ggabd {_fccc =_baddg ;}else if _egeg .fontFlags ()&_cdgfg !=0{for _gffa ,_dfag :=range _gbggb {if _fe .Contains (_egeg ._babff ,_gffa ){_fccc =_dfag ;break ;};};};if _egeg .Encoding ==nil {return _fccc ,nil ,nil ;};switch _eebdc :=_egeg .Encoding .(type ){case *_cb .PdfObjectName :return string (*_eebdc ),nil ,nil ;case *_cb .PdfObjectDictionary :_abcgb ,_aace :=_cb .GetName (_eebdc .Get ("\u0042\u0061\u0073e\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067"));if _aace {_fccc =_abcgb .String ();};if _gfged :=_eebdc .Get ("D\u0069\u0066\u0066\u0065\u0072\u0065\u006e\u0063\u0065\u0073");_gfged !=nil {_dfgdf ,_egbgb :=_cb .GetArray (_gfged );if !_egbgb {_dbe .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",_eebdc ,_eebdc .Get ("D\u0069\u0066\u0066\u0065\u0072\u0065\u006e\u0063\u0065\u0073"));return "",nil ,_cb .ErrTypeError ;};_cgef ,_ebeeb =_ccb .FromFontDifferences (_dfgdf );};return _fccc ,_cgef ,_ebeeb ;default:_dbe .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",_egeg .Encoding ,_egeg .Encoding );return "",nil ,_cb .ErrTypeError ;};};
// NewPdfOutline returns an initialized PdfOutline.
func NewPdfOutline ()*PdfOutline {_acgc :=&PdfOutline {_ffbfg :_cb .MakeIndirectObject (_cb .MakeDict ())};_acgc ._dfaeg =_acgc ;return _acgc ;};
// GetContentStream returns the XObject Form's content stream.
func (_bgfged *XObjectForm )GetContentStream ()([]byte ,error ){_fggag ,_dccfd :=_cb .DecodeStream (_bgfged ._eaadb );if _dccfd !=nil {return nil ,_dccfd ;};return _fggag ,nil ;};
// GetColorspaces loads PdfPageResourcesColorspaces from `r.ColorSpace` and returns an error if there
// is a problem loading. Once loaded, the same object is returned on multiple calls.
func (_bbged *PdfPageResources )GetColorspaces ()(*PdfPageResourcesColorspaces ,error ){if _bbged ._ggaga !=nil {return _bbged ._ggaga ,nil ;};if _bbged .ColorSpace ==nil {return nil ,nil ;};_aefef ,_dbead :=_febb (_bbged .ColorSpace );if _dbead !=nil {return nil ,_dbead ;};_bbged ._ggaga =_aefef ;return _bbged ._ggaga ,nil ;};func _cgbe (_bfgbc *_cb .PdfObjectDictionary ,_ebbed *fontCommon )(*pdfCIDFontType0 ,error ){if _ebbed ._fbefd !="\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0030"{_dbe .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",_ebbed );return nil ,_cb .ErrRangeError ;};_bdbfd :=_ffeg (_ebbed );_eefb ,_ccdc :=_cb .GetDict (_bfgbc .Get ("\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f"));if !_ccdc {_dbe .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",_ebbed );return nil ,ErrRequiredAttributeMissing ;};_bdbfd .CIDSystemInfo =_eefb ;_bdbfd .DW =_bfgbc .Get ("\u0044\u0057");_bdbfd .W =_bfgbc .Get ("\u0057");_bdbfd .DW2 =_bfgbc .Get ("\u0044\u0057\u0032");_bdbfd .W2 =_bfgbc .Get ("\u0057\u0032");_bdbfd ._eccee =1000.0;if _bcfad ,_adegd :=_cb .GetNumberAsFloat (_bdbfd .DW );_adegd ==nil {_bdbfd ._eccee =_bcfad ;};_cbgb ,_adef :=_dgcee (_bdbfd .W );if _adef !=nil {return nil ,_adef ;};if _cbgb ==nil {_cbgb =map[_ccb .CharCode ]float64 {};};_bdbfd ._agae =_cbgb ;return _bdbfd ,nil ;};
// Insert adds a top level outline item in the outline,
// at the specified index.
func (_bdgab *Outline )Insert (index uint ,item *OutlineItem ){_dgfgc :=uint (len (_bdgab .Entries ));if index > _dgfgc {index =_dgfgc ;};_bdgab .Entries =append (_bdgab .Entries [:index ],append ([]*OutlineItem {item },_bdgab .Entries [index :]...)...);};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););
// 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 ;};func (_acg *PdfReader )newPdfActionJavaScriptFromDict (_ced *_cb .PdfObjectDictionary )(*PdfActionJavaScript ,error ){return &PdfActionJavaScript {JS :_ced .Get ("\u004a\u0053")},nil ;};func (_cdcc *PdfAnnotation )String ()string {_ecga :="";_ecce ,_agga :=_cdcc .ToPdfObject ().(*_cb .PdfIndirectObject );if _agga {_ecga =_c .Sprintf ("\u0025\u0054\u003a\u0020\u0025\u0073",_cdcc ._gea ,_ecce .PdfObject .String ());};return _ecga ;};
// ImageToRGB converts image in CalGray color space to RGB (A, B, C -> X, Y, Z).
func (_agfc *PdfColorspaceCalGray )ImageToRGB (img Image )(Image ,error ){_dfdaa :=_cf .NewReader (img .getBase ());_ddae :=_ac .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),3,nil ,nil ,nil );_cbbf :=_cf .NewWriter (_ddae );_cgdd :=_ag .Pow (2,float64 (img .BitsPerComponent ))-1;_bcfae :=make ([]uint32 ,3);var (_fbea uint32 ;ANorm ,X ,Y ,Z ,_feegb ,_baccf ,_dgccd float64 ;_cdag error ;);for {_fbea ,_cdag =_dfdaa .ReadSample ();if _cdag ==_bb .EOF {break ;}else if _cdag !=nil {return img ,_cdag ;};ANorm =float64 (_fbea )/_cgdd ;X =_agfc .WhitePoint [0]*_ag .Pow (ANorm ,_agfc .Gamma );Y =_agfc .WhitePoint [1]*_ag .Pow (ANorm ,_agfc .Gamma );Z =_agfc .WhitePoint [2]*_ag .Pow (ANorm ,_agfc .Gamma );_feegb =3.240479*X +-1.537150*Y +-0.498535*Z ;_baccf =-0.969256*X +1.875992*Y +0.041556*Z ;_dgccd =0.055648*X +-0.204043*Y +1.057311*Z ;_feegb =_ag .Min (_ag .Max (_feegb ,0),1.0);_baccf =_ag .Min (_ag .Max (_baccf ,0),1.0);_dgccd =_ag .Min (_ag .Max (_dgccd ,0),1.0);_bcfae [0]=uint32 (_feegb *_cgdd );_bcfae [1]=uint32 (_baccf *_cgdd );_bcfae [2]=uint32 (_dgccd *_cgdd );if _cdag =_cbbf .WriteSamples (_bcfae );_cdag !=nil {return img ,_cdag ;};};return _ecdg (&_ddae ),nil ;};
// PdfFilespec represents a file specification which can either refer to an external or embedded file.
type PdfFilespec struct{Type _cb .PdfObject ;FS _cb .PdfObject ;F _cb .PdfObject ;UF _cb .PdfObject ;DOS _cb .PdfObject ;Mac _cb .PdfObject ;Unix _cb .PdfObject ;ID _cb .PdfObject ;V _cb .PdfObject ;EF _cb .PdfObject ;RF _cb .PdfObject ;Desc _cb .PdfObject ;CI _cb .PdfObject ;_fdfg _cb .PdfObject ;};
// NewPdfActionJavaScript returns a new "javaScript" action.
func NewPdfActionJavaScript ()*PdfActionJavaScript {_bca :=NewPdfAction ();_eba :=&PdfActionJavaScript {};_eba .PdfAction =_bca ;_bca .SetContext (_eba );return _eba ;};
// GetParamsDict returns *core.PdfObjectDictionary with a set of basic image parameters.
func (_ggefcg *Image )GetParamsDict ()*_cb .PdfObjectDictionary {_gafgd :=_cb .MakeDict ();_gafgd .Set ("\u0057\u0069\u0064t\u0068",_cb .MakeInteger (_ggefcg .Width ));_gafgd .Set ("\u0048\u0065\u0069\u0067\u0068\u0074",_cb .MakeInteger (_ggefcg .Height ));_gafgd .Set ("\u0043o\u006co\u0072\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074\u0073",_cb .MakeInteger (int64 (_ggefcg .ColorComponents )));_gafgd .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_cb .MakeInteger (_ggefcg .BitsPerComponent ));return _gafgd ;};
// PdfAnnotationText represents Text annotations.
// (Section 12.5.6.4 p. 402).
type PdfAnnotationText struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Open _cb .PdfObject ;Name _cb .PdfObject ;State _cb .PdfObject ;StateModel _cb .PdfObject ;};
// ToPdfObject returns the PDF representation of the function.
func (_cfcbf *PdfFunctionType4 )ToPdfObject ()_cb .PdfObject {_geaaf :=_cfcbf ._bdbff ;if _geaaf ==nil {_cfcbf ._bdbff =&_cb .PdfObjectStream {};_geaaf =_cfcbf ._bdbff ;};_edebc :=_cb .MakeDict ();_edebc .Set ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065",_cb .MakeInteger (4));_baggf :=&_cb .PdfObjectArray {};for _ ,_cgge :=range _cfcbf .Domain {_baggf .Append (_cb .MakeFloat (_cgge ));};_edebc .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_baggf );_decea :=&_cb .PdfObjectArray {};for _ ,_affe :=range _cfcbf .Range {_decea .Append (_cb .MakeFloat (_affe ));};_edebc .Set ("\u0052\u0061\u006eg\u0065",_decea );if _cfcbf ._eefa ==nil &&_cfcbf .Program !=nil {_cfcbf ._eefa =[]byte (_cfcbf .Program .String ());};_edebc .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_cb .MakeInteger (int64 (len (_cfcbf ._eefa ))));_geaaf .Stream =_cfcbf ._eefa ;_geaaf .PdfObjectDictionary =_edebc ;return _geaaf ;};
// ToPdfObject returns colorspace in a PDF object format [name dictionary]
func (_fdbca *PdfColorspaceLab )ToPdfObject ()_cb .PdfObject {_fdfda :=_cb .MakeArray ();_fdfda .Append (_cb .MakeName ("\u004c\u0061\u0062"));_cded :=_cb .MakeDict ();if _fdbca .WhitePoint !=nil {_bfbcg :=_cb .MakeArray (_cb .MakeFloat (_fdbca .WhitePoint [0]),_cb .MakeFloat (_fdbca .WhitePoint [1]),_cb .MakeFloat (_fdbca .WhitePoint [2]));_cded .Set ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074",_bfbcg );}else {_dbe .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 _fdbca .BlackPoint !=nil {_egbg :=_cb .MakeArray (_cb .MakeFloat (_fdbca .BlackPoint [0]),_cb .MakeFloat (_fdbca .BlackPoint [1]),_cb .MakeFloat (_fdbca .BlackPoint [2]));_cded .Set ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074",_egbg );};if _fdbca .Range !=nil {_gedd :=_cb .MakeArray (_cb .MakeFloat (_fdbca .Range [0]),_cb .MakeFloat (_fdbca .Range [1]),_cb .MakeFloat (_fdbca .Range [2]),_cb .MakeFloat (_fdbca .Range [3]));_cded .Set ("\u0052\u0061\u006eg\u0065",_gedd );};_fdfda .Append (_cded );if _fdbca ._ddee !=nil {_fdbca ._ddee .PdfObject =_fdfda ;return _fdbca ._ddee ;};return _fdfda ;};func (_bdf *PdfReader )newPdfActionResetFormFromDict (_bcb *_cb .PdfObjectDictionary )(*PdfActionResetForm ,error ){return &PdfActionResetForm {Fields :_bcb .Get ("\u0046\u0069\u0065\u006c\u0064\u0073"),Flags :_bcb .Get ("\u0046\u006c\u0061g\u0073")},nil ;};type pdfCIDFontType2 struct{fontCommon ;_dfdbg *_cb .PdfIndirectObject ;_acdcfc _ccb .TextEncoder ;
// Table 117 Entries in a CIDFont dictionary (page 269)
// Dictionary that defines the character collection of the CIDFont (required).
// See Table 116.
CIDSystemInfo *_cb .PdfObjectDictionary ;
// Glyph metrics fields (optional).
DW _cb .PdfObject ;W _cb .PdfObject ;DW2 _cb .PdfObject ;W2 _cb .PdfObject ;
// CIDs to glyph indices mapping (optional).
CIDToGIDMap _cb .PdfObject ;_faafd map[_ccb .CharCode ]float64 ;_ffga float64 ;_fgga map[rune ]int ;};
// NewPdfAnnotationStamp returns a new stamp annotation.
func NewPdfAnnotationStamp ()*PdfAnnotationStamp {_eace :=NewPdfAnnotation ();_gbgb :=&PdfAnnotationStamp {};_gbgb .PdfAnnotation =_eace ;_gbgb .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_eace .SetContext (_gbgb );return _gbgb ;};
// 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 (_gceca *PdfColorspaceSpecialPattern )ColorFromPdfObjects (objects []_cb .PdfObject )(PdfColor ,error ){if len (objects )< 1{return nil ,_bc .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");};_dbbe :=&PdfColorPattern {};_gbgga ,_egdea :=objects [len (objects )-1].(*_cb .PdfObjectName );if !_egdea {_dbe .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 ;};_dbbe .PatternName =*_gbgga ;if len (objects )> 1{_gdab :=objects [0:len (objects )-1];if _gceca .UnderlyingCS ==nil {_dbe .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 ,_bc .New ("\u0075n\u0064\u0065\u0072\u006cy\u0069\u006e\u0067\u0020\u0043S\u0020n\u006ft\u0020\u0064\u0065\u0066\u0069\u006e\u0065d");};_cdfg ,_abca :=_gceca .UnderlyingCS .ColorFromPdfObjects (_gdab );if _abca !=nil {_dbe .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",_abca );return nil ,_abca ;};_dbbe .Color =_cdfg ;};return _dbbe ,nil ;};
// ToPdfObject converts the PdfPage to a dictionary within an indirect object container.
func (_bdcac *PdfPage )ToPdfObject ()_cb .PdfObject {_efdgb :=_bdcac ._adbf ;_bdcac .GetPageDict ();return _efdgb ;};
// GetContext returns the annotation context which contains the specific type-dependent context.
// The context represents the subannotation.
func (_dbgf *PdfAnnotation )GetContext ()PdfModel {if _dbgf ==nil {return nil ;};return _dbgf ._gea ;};func (_ceafc *pdfFontSimple )addEncoding ()error {var (_fbfd string ;_cbcgd map[_ccb .CharCode ]_ccb .GlyphName ;_fgead _ccb .SimpleEncoder ;);if _ceafc .Encoder ()!=nil {_gadgdd ,_ffcc :=_ceafc .Encoder ().(_ccb .SimpleEncoder );if _ffcc &&_gadgdd !=nil {_fbfd =_gadgdd .BaseName ();};};if _ceafc .Encoding !=nil {_begce ,_dcdf ,_aaeb :=_ceafc .getFontEncoding ();if _aaeb !=nil {_dbe .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",_ceafc ._babff ,_ceafc ._fbefd ,_ceafc .Encoding ,_ceafc .Encoding ,_aaeb );return _aaeb ;};if _begce !=""{_fbfd =_begce ;};_fgead ,_aaeb =_ccb .NewSimpleTextEncoder (_fbfd ,_dcdf );if _aaeb !=nil {return _aaeb ;};};if _fgead ==nil {_eedg :=_ceafc ._bgbb ;if _eedg !=nil {switch _ceafc ._fbefd {case "\u0054\u0079\u0070e\u0031":if _eedg .fontFile !=nil &&_eedg .fontFile ._fefc !=nil {_dbe .Log .Debug ("\u0055\u0073\u0069\u006e\u0067\u0020\u0066\u006f\u006et\u0046\u0069\u006c\u0065");_fgead =_eedg .fontFile ._fefc ;};case "\u0054\u0072\u0075\u0065\u0054\u0079\u0070\u0065":if _eedg ._eabdd !=nil {_dbe .Log .Debug ("\u0055s\u0069n\u0067\u0020\u0046\u006f\u006e\u0074\u0046\u0069\u006c\u0065\u0032");_bfgbcd ,_bfgd :=_eedg ._eabdd .MakeEncoder ();if _bfgd ==nil {_fgead =_bfgbcd ;};};};};};if _fgead !=nil {if _cbcgd !=nil {_dbe .Log .Trace ("\u0064\u0069\u0066fe\u0072\u0065\u006e\u0063\u0065\u0073\u003d\u0025\u002b\u0076\u0020\u0066\u006f\u006e\u0074\u003d\u0025\u0073",_cbcgd ,_ceafc .baseFields ());_fgead =_ccb .ApplyDifferences (_fgead ,_cbcgd );};_ceafc .SetEncoder (_fgead );};return nil ;};func _bagff (_gaee _cb .PdfObject )(*fontFile ,error ){_dbe .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",_gaee );_gbffd :=&fontFile {};_gaee =_cb .TraceToDirectObject (_gaee );_bbeb ,_gcfee :=_gaee .(*_cb .PdfObjectStream );if !_gcfee {_dbe .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",_gaee );return nil ,_cb .ErrTypeError ;};_fdfgc :=_bbeb .PdfObjectDictionary ;_abccgc ,_ebff :=_cb .DecodeStream (_bbeb );if _ebff !=nil {return nil ,_ebff ;};_acde ,_gcfee :=_cb .GetNameVal (_fdfgc .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065"));if !_gcfee {_gbffd ._bfee =_acde ;if _acde =="\u0054\u0079\u0070\u0065\u0031\u0043"{_dbe .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 ;};};_gdfcb ,_ :=_cb .GetIntVal (_fdfgc .Get ("\u004ce\u006e\u0067\u0074\u0068\u0031"));_bbde ,_ :=_cb .GetIntVal (_fdfgc .Get ("\u004ce\u006e\u0067\u0074\u0068\u0032"));if _gdfcb > len (_abccgc ){_gdfcb =len (_abccgc );};if _gdfcb +_bbde > len (_abccgc ){_bbde =len (_abccgc )-_gdfcb ;};_fcgdb :=_abccgc [:_gdfcb ];var _bedc []byte ;if _bbde > 0{_bedc =_abccgc [_gdfcb :_gdfcb +_bbde ];};if _gdfcb > 0&&_bbde > 0{_cbeg :=_gbffd .loadFromSegments (_fcgdb ,_bedc );if _cbeg !=nil {return nil ,_cbeg ;};};return _gbffd ,nil ;};
// NewPdfAnnotationStrikeOut returns a new text strikeout annotation.
func NewPdfAnnotationStrikeOut ()*PdfAnnotationStrikeOut {_fcda :=NewPdfAnnotation ();_gfaf :=&PdfAnnotationStrikeOut {};_gfaf .PdfAnnotation =_fcda ;_gfaf .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_fcda .SetContext (_gfaf );return _gfaf ;};var _adebc ="";func (_bbfecc *PdfReader )buildOutlineTree (_eccf _cb .PdfObject ,_ccfba *PdfOutlineTreeNode ,_bbgbe *PdfOutlineTreeNode ,_eaefcg map[_cb .PdfObject ]struct{})(*PdfOutlineTreeNode ,*PdfOutlineTreeNode ,error ){if _eaefcg ==nil {_eaefcg =map[_cb .PdfObject ]struct{}{};};_eaefcg [_eccf ]=struct{}{};_cdefc ,_bbgfe :=_eccf .(*_cb .PdfIndirectObject );if !_bbgfe {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",_eccf );};_gfcfc ,_facdbd :=_cdefc .PdfObject .(*_cb .PdfObjectDictionary );if !_facdbd {return nil ,nil ,_bc .New ("\u006e\u006f\u0074 a\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u0020\u006f\u0062\u006a\u0065\u0063\u0074");};_dbe .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",_gfcfc ,_cdefc ,_cdefc );if _dadbe :=_gfcfc .Get ("\u0054\u0069\u0074l\u0065");_dadbe !=nil {_ebdbe ,_cgggb :=_bbfecc .newPdfOutlineItemFromIndirectObject (_cdefc );if _cgggb !=nil {return nil ,nil ,_cgggb ;};_ebdbe .Parent =_ccfba ;_ebdbe .Prev =_bbgbe ;_bebgd :=_cb .ResolveReference (_gfcfc .Get ("\u0046\u0069\u0072s\u0074"));if _ ,_gaeff :=_eaefcg [_bebgd ];_bebgd !=nil &&_bebgd !=_cdefc &&!_gaeff {if !_cb .IsNullObject (_bebgd ){_gdcca ,_feaeb ,_efcf :=_bbfecc .buildOutlineTree (_bebgd ,&_ebdbe .PdfOutlineTreeNode ,nil ,_eaefcg );if _efcf !=nil {_dbe .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",_efcf );}else {_ebdbe .First =_gdcca ;_ebdbe .Last =_feaeb ;};};};_fegfa :=_cb .ResolveReference (_gfcfc .Get ("\u004e\u0065\u0078\u0074"));if _ ,_dccb :=_eaefcg [_fegfa ];_fegfa !=nil &&_fegfa !=_cdefc &&!_dccb {if !_cb .IsNullObject (_fegfa ){_defbf ,_ecfg ,_gaabf :=_bbfecc .buildOutlineTree (_fegfa ,_ccfba ,&_ebdbe .PdfOutlineTreeNode ,_eaefcg );if _gaabf !=nil {_dbe .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",_gaabf );}else {_ebdbe .Next =_defbf ;return &_ebdbe .PdfOutlineTreeNode ,_ecfg ,nil ;};};};return &_ebdbe .PdfOutlineTreeNode ,&_ebdbe .PdfOutlineTreeNode ,nil ;};_ebgf ,_aade :=_ebed (_cdefc );if _aade !=nil {return nil ,nil ,_aade ;};_ebgf .Parent =_ccfba ;if _bddag :=_gfcfc .Get ("\u0046\u0069\u0072s\u0074");_bddag !=nil {_bddag =_cb .ResolveReference (_bddag );_dbbf :=_cb .TraceToDirectObject (_bddag );if _ ,_dfacb :=_dbbf .(*_cb .PdfObjectNull );!_dfacb &&_dbbf !=nil {_adgcg ,_gbbf ,_fegbf :=_bbfecc .buildOutlineTree (_bddag ,&_ebgf .PdfOutlineTreeNode ,nil ,_eaefcg );if _fegbf !=nil {_dbe .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",_fegbf );}else {_ebgf .First =_adgcg ;_ebgf .Last =_gbbf ;};};};return &_ebgf .PdfOutlineTreeNode ,&_ebgf .PdfOutlineTreeNode ,nil ;};
// ToPdfObject implements interface PdfModel.
func (_cfef *PdfAnnotationPopup )ToPdfObject ()_cb .PdfObject {_cfef .PdfAnnotation .ToPdfObject ();_abadc :=_cfef ._efd ;_bdcf :=_abadc .PdfObject .(*_cb .PdfObjectDictionary );_bdcf .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_cb .MakeName ("\u0050\u006f\u0070u\u0070"));_bdcf .SetIfNotNil ("\u0050\u0061\u0072\u0065\u006e\u0074",_cfef .Parent );_bdcf .SetIfNotNil ("\u004f\u0070\u0065\u006e",_cfef .Open );return _abadc ;};
// ToPdfObject implements interface PdfModel.
func (_dc *PdfActionRendition )ToPdfObject ()_cb .PdfObject {_dc .PdfAction .ToPdfObject ();_cfd :=_dc ._fc ;_gac :=_cfd .PdfObject .(*_cb .PdfObjectDictionary );_gac .SetIfNotNil ("\u0053",_cb .MakeName (string (ActionTypeRendition )));_gac .SetIfNotNil ("\u0052",_dc .R );_gac .SetIfNotNil ("\u0041\u004e",_dc .AN );_gac .SetIfNotNil ("\u004f\u0050",_dc .OP );_gac .SetIfNotNil ("\u004a\u0053",_dc .JS );return _cfd ;};
// AddExtGState adds a graphics state to the XObject resources.
func (_ceeg *PdfPage )AddExtGState (name _cb .PdfObjectName ,egs *_cb .PdfObjectDictionary )error {if _ceeg .Resources ==nil {_ceeg .Resources =NewPdfPageResources ();};if _ceeg .Resources .ExtGState ==nil {_ceeg .Resources .ExtGState =_cb .MakeDict ();};_fcfg ,_gfcdd :=_cb .TraceToDirectObject (_ceeg .Resources .ExtGState ).(*_cb .PdfObjectDictionary );if !_gfcdd {_dbe .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",_cb .TraceToDirectObject (_ceeg .Resources .ExtGState ));return _bc .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_fcfg .Set (name ,egs );return nil ;};
// PdfOutlineItem represents an outline item dictionary (Table 153 - pp. 376 - 377).
type PdfOutlineItem struct{PdfOutlineTreeNode ;Title *_cb .PdfObjectString ;Parent *PdfOutlineTreeNode ;Prev *PdfOutlineTreeNode ;Next *PdfOutlineTreeNode ;Count *int64 ;Dest _cb .PdfObject ;A _cb .PdfObject ;SE _cb .PdfObject ;C _cb .PdfObject ;F _cb .PdfObject ;_gaga *_cb .PdfIndirectObject ;};func _cegcd ()string {return _eegde };
// 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 (_cac *PdfAnnotationWidget )Field ()*PdfField {return _cac ._bdcc };
// String returns the name of the colorspace (DeviceN).
func (_afbb *PdfColorspaceDeviceN )String ()string {return "\u0044e\u0076\u0069\u0063\u0065\u004e"};func (_ccdee *PdfReader )traverseObjectData (_gfba _cb .PdfObject )error {return _cb .ResolveReferencesDeep (_gfba ,_ccdee ._fage );};
// Insert adds an outline item as a child of the current outline item,
// at the specified index.
func (_fcgda *OutlineItem )Insert (index uint ,item *OutlineItem ){_dfbb :=uint (len (_fcgda .Entries ));if index > _dfbb {index =_dfbb ;};_fcgda .Entries =append (_fcgda .Entries [:index ],append ([]*OutlineItem {item },_fcgda .Entries [index :]...)...);};func (_agccb *PdfWriter )writeBytes (_cbedg []byte ){if _agccb ._dadaf !=nil {return ;};_bcag ,_egfee :=_agccb ._eabcf .Write (_cbedg );_agccb ._ceead +=int64 (_bcag );_agccb ._dadaf =_egfee ;};
// GetNumComponents returns the number of color components (3 for CalRGB).
func (_fbdc *PdfColorCalRGB )GetNumComponents ()int {return 3};func (_gacfe *PdfReader )newPdfSignatureFromIndirect (_cdfbd *_cb .PdfIndirectObject )(*PdfSignature ,error ){_abada ,_degbd :=_cdfbd .PdfObject .(*_cb .PdfObjectDictionary );if !_degbd {_dbe .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 _bgfef ,_gdcacb :=_gacfe ._bffa .GetModelFromPrimitive (_cdfbd ).(*PdfSignature );_gdcacb {return _bgfef ,nil ;};_bfaea :=&PdfSignature {};_bfaea ._afcda =_cdfbd ;_bfaea .Type ,_ =_cb .GetName (_abada .Get ("\u0054\u0079\u0070\u0065"));_bfaea .Filter ,_degbd =_cb .GetName (_abada .Get ("\u0046\u0069\u006c\u0074\u0065\u0072"));if !_degbd {_dbe .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 ;};_bfaea .SubFilter ,_ =_cb .GetName (_abada .Get ("\u0053u\u0062\u0046\u0069\u006c\u0074\u0065r"));_bfaea .Contents ,_degbd =_cb .GetString (_abada .Get ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073"));if !_degbd {_dbe .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 ;};_bfaea .Cert =_abada .Get ("\u0043\u0065\u0072\u0074");_bfaea .ByteRange ,_ =_cb .GetArray (_abada .Get ("\u0042y\u0074\u0065\u0052\u0061\u006e\u0067e"));_bfaea .Reference ,_ =_cb .GetArray (_abada .Get ("\u0052e\u0066\u0065\u0072\u0065\u006e\u0063e"));_bfaea .Changes ,_ =_cb .GetArray (_abada .Get ("\u0043h\u0061\u006e\u0067\u0065\u0073"));_bfaea .Name ,_ =_cb .GetString (_abada .Get ("\u004e\u0061\u006d\u0065"));_bfaea .M ,_ =_cb .GetString (_abada .Get ("\u004d"));_bfaea .Location ,_ =_cb .GetString (_abada .Get ("\u004c\u006f\u0063\u0061\u0074\u0069\u006f\u006e"));_bfaea .Reason ,_ =_cb .GetString (_abada .Get ("\u0052\u0065\u0061\u0073\u006f\u006e"));_bfaea .ContactInfo ,_ =_cb .GetString (_abada .Get ("C\u006f\u006e\u0074\u0061\u0063\u0074\u0049\u006e\u0066\u006f"));_bfaea .R ,_ =_cb .GetInt (_abada .Get ("\u0052"));_bfaea .V ,_ =_cb .GetInt (_abada .Get ("\u0056"));_bfaea .PropBuild ,_ =_cb .GetDict (_abada .Get ("\u0050\u0072\u006f\u0070\u005f\u0042\u0075\u0069\u006c\u0064"));_bfaea .PropAuthTime ,_ =_cb .GetInt (_abada .Get ("\u0050\u0072\u006f\u0070\u005f\u0041\u0075\u0074\u0068\u0054\u0069\u006d\u0065"));_bfaea .PropAuthType ,_ =_cb .GetName (_abada .Get ("\u0050\u0072\u006f\u0070\u005f\u0041\u0075\u0074\u0068\u0054\u0079\u0070\u0065"));return _bfaea ,nil ;};func _eegf (_ecee _cb .PdfObject )(*_cb .PdfObjectDictionary ,*fontCommon ,error ){_fbgg :=&fontCommon {};if _acdcf ,_cfeaa :=_ecee .(*_cb .PdfIndirectObject );_cfeaa {_fbgg ._cbgad =_acdcf .ObjectNumber ;};_faeed ,_aacb :=_cb .GetDict (_ecee );if !_aacb {_dbe .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",_ecee );return nil ,nil ,ErrFontNotSupported ;};_gead ,_aacb :=_cb .GetNameVal (_faeed .Get ("\u0054\u0079\u0070\u0065"));if !_aacb {_dbe .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 _gead !="\u0046\u006f\u006e\u0074"{_dbe .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.",_gead ,"\u0046\u006f\u006e\u0074");return nil ,nil ,_cb .ErrTypeError ;};_ecfe ,_aacb :=_cb .GetNameVal (_faeed .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065"));if !_aacb {_dbe .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 ;};_fbgg ._fbefd =_ecfe ;_ggefc ,_aacb :=_cb .GetNameVal (_faeed .Get ("\u004e\u0061\u006d\u0065"));if _aacb {_fbgg ._ecaeb =_ggefc ;};if _ecfe =="\u0054\u0079\u0070e\u0033"{_dbe .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",_faeed );return _faeed ,_fbgg ,ErrType3FontNotSupported ;};_degf ,_aacb :=_cb .GetNameVal (_faeed .Get ("\u0042\u0061\u0073\u0065\u0046\u006f\u006e\u0074"));if !_aacb {_dbe .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 _faeed ,_fbgg ,ErrRequiredAttributeMissing ;};_fbgg ._babff =_degf ;_geacb :=_faeed .Get ("\u0046\u006f\u006e\u0074\u0044\u0065\u0073\u0063\u0072i\u0070\u0074\u006f\u0072");if _geacb !=nil {_bgage ,_fgba :=_dbgb (_geacb );if _fgba !=nil {_dbe .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",_fgba );return _faeed ,_fbgg ,_fgba ;};_fbgg ._bgbb =_bgage ;};_gdda :=_faeed .Get ("\u0054o\u0055\u006e\u0069\u0063\u006f\u0064e");if _gdda !=nil {_fbgg ._ccaac =_cb .TraceToDirectObject (_gdda );_facc ,_becad :=_gbgdg (_fbgg ._ccaac ,_fbgg );if _becad !=nil {return _faeed ,_fbgg ,_becad ;};_fbgg ._agag =_facc ;}else if _ecfe =="\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0030"||_ecfe =="\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032"{_ggda ,_fddb :=_gb .NewCIDSystemInfo (_faeed .Get ("\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f"));if _fddb !=nil {return _faeed ,_fbgg ,_fddb ;};_feag :=_c .Sprintf ("\u0025\u0073\u002d\u0025\u0073\u002d\u0055\u0043\u0053\u0032",_ggda .Registry ,_ggda .Ordering );if _gb .IsPredefinedCMap (_feag ){_fbgg ._agag ,_fddb =_gb .LoadPredefinedCMap (_feag );if _fddb !=nil {_dbe .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",_feag ,_fddb );};};};return _faeed ,_fbgg ,nil ;};
// GetDescent returns the Descent of the font `descriptor`.
func (_eacaf *PdfFontDescriptor )GetDescent ()(float64 ,error ){return _cb .GetNumberAsFloat (_eacaf .Descent );};func _fdeag (_ecaf *PdfField ,_ddgd _cb .PdfObject )error {switch _ecaf .GetContext ().(type ){case *PdfFieldText :switch _ggfe :=_ddgd .(type ){case *_cb .PdfObjectName :_gegaee :=_ggfe ;_dbe .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",_gegaee .String ());_ecaf .V =_cb .MakeEncodedString (_ggfe .String (),true );case *_cb .PdfObjectString :_ecaf .V =_cb .MakeEncodedString (_ggfe .String (),true );default:_dbe .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",_ggfe ,_ggfe );};case *PdfFieldButton :switch _ddgd .(type ){case *_cb .PdfObjectName :if len (_ddgd .String ())> 0{_ecaf .V =_ddgd ;_adgdg (_ecaf ,_ddgd );};case *_cb .PdfObjectString :if len (_ddgd .String ())> 0{_ecaf .V =_cb .MakeName (_ddgd .String ());_adgdg (_ecaf ,_ecaf .V );};default:_dbe .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",_ecaf .PartialName (),_ddgd );_ecaf .V =_ddgd ;};case *PdfFieldChoice :switch _ddgd .(type ){case *_cb .PdfObjectName :if len (_ddgd .String ())> 0{_ecaf .V =_cb .MakeString (_ddgd .String ());_adgdg (_ecaf ,_ddgd );};case *_cb .PdfObjectString :if len (_ddgd .String ())> 0{_ecaf .V =_ddgd ;_adgdg (_ecaf ,_cb .MakeName (_ddgd .String ()));};default:_dbe .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",_ecaf .PartialName (),_ddgd );_ecaf .V =_ddgd ;};case *PdfFieldSignature :_dbe .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",_ecaf .PartialName (),_ddgd );};return nil ;};
// NewStandard14Font returns the standard 14 font named `basefont` as a *PdfFont, or an error if it
// `basefont` is not one of the standard 14 font names.
func NewStandard14Font (basefont StdFontName )(*PdfFont ,error ){_defd ,_ggce :=_eegd (basefont );if _ggce !=nil {return nil ,_ggce ;};if basefont !=SymbolName &&basefont !=ZapfDingbatsName {_defd ._egffg =_ccb .NewWinAnsiEncoder ();};return &PdfFont {_cdfe :&_defd },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 (_dbgc *PdfColorspaceLab )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=3{return nil ,_bc .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_cdgc :=vals [0];if _cdgc < 0.0||_cdgc > 100.0{_dbe .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",_cdgc );return nil ,_bc .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_gdad :=vals [1];_eacc :=float64 (-100);_fcfb :=float64 (100);if len (_dbgc .Range )> 1{_eacc =_dbgc .Range [0];_fcfb =_dbgc .Range [1];};if _gdad < _eacc ||_gdad > _fcfb {_dbe .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",_gdad ,_eacc ,_fcfb );return nil ,_bc .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_fcbd :=vals [2];_gffb :=float64 (-100);_egdd :=float64 (100);if len (_dbgc .Range )> 3{_gffb =_dbgc .Range [2];_egdd =_dbgc .Range [3];};if _fcbd < _gffb ||_fcbd > _egdd {_dbe .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",_fcbd ,_gffb ,_egdd );return nil ,_bc .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_dfbd :=NewPdfColorLab (_cdgc ,_gdad ,_fcbd );return _dfbd ,nil ;};
// DecodeArray returns the component range values for the DeviceN colorspace.
// [0 1.0 0 1.0 ...] for each color component.
func (_ecaa *PdfColorspaceDeviceN )DecodeArray ()[]float64 {var _bade []float64 ;for _caaba :=0;_caaba < _ecaa .GetNumComponents ();_caaba ++{_bade =append (_bade ,0.0,1.0);};return _bade ;};
// WatermarkImageOptions contains options for configuring the watermark process.
type WatermarkImageOptions struct{Alpha float64 ;FitToWidth bool ;PreserveAspectRatio bool ;};
// 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 (_addg *PdfAppender )Sign (pageNum int ,field *PdfFieldSignature )error {if field ==nil {return _bc .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");};_agaf :=field .V ;if _agaf ==nil {return _bc .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");};_efbc :=pageNum -1;if _efbc < 0||_efbc > len (_addg ._dgce )-1{return _c .Errorf ("\u0070\u0061\u0067\u0065\u0020\u0025\u0064\u0020\u006e\u006f\u0074\u0020f\u006f\u0075\u006e\u0064",pageNum );};_dadd :=_addg .Reader .PageList [_efbc ];field .P =_dadd .ToPdfObject ();if field .T ==nil ||field .T .String ()==""{field .T =_cb .MakeString (_c .Sprintf ("\u0053\u0069\u0067n\u0061\u0074\u0075\u0072\u0065\u0020\u0025\u0064",pageNum ));};_dadd .AddAnnotation (field .PdfAnnotationWidget .PdfAnnotation );if _addg ._abbe ==_addg ._acgg .AcroForm {_addg ._abbe =_addg .Reader .AcroForm ;};_cbbe :=_addg ._abbe ;if _cbbe ==nil {_cbbe =NewPdfAcroForm ();};_cbbe .SigFlags =_cb .MakeInteger (3);_eeaa :=append (_cbbe .AllFields (),field .PdfField );_cbbe .Fields =&_eeaa ;_addg .ReplaceAcroForm (_cbbe );_addg .UpdatePage (_dadd );_addg ._dgce [_efbc ]=_dadd ;return nil ;};
// ToPdfObject returns the PDF representation of the shading dictionary.
func (_gdgbe *PdfShadingType2 )ToPdfObject ()_cb .PdfObject {_gdgbe .PdfShading .ToPdfObject ();_eggda ,_dgggc :=_gdgbe .getShadingDict ();if _dgggc !=nil {_dbe .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 _eggda ==nil {_dbe .Log .Error ("\u0053\u0068\u0061\u0064in\u0067\u0020\u0064\u0069\u0063\u0074\u0020\u0069\u0073\u0020\u006e\u0069\u006c");return nil ;};if _gdgbe .Coords !=nil {_eggda .Set ("\u0043\u006f\u006f\u0072\u0064\u0073",_gdgbe .Coords );};if _gdgbe .Domain !=nil {_eggda .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_gdgbe .Domain );};if _gdgbe .Function !=nil {if len (_gdgbe .Function )==1{_eggda .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_gdgbe .Function [0].ToPdfObject ());}else {_agbbe :=_cb .MakeArray ();for _ ,_bcef :=range _gdgbe .Function {_agbbe .Append (_bcef .ToPdfObject ());};_eggda .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_agbbe );};};if _gdgbe .Extend !=nil {_eggda .Set ("\u0045\u0078\u0074\u0065\u006e\u0064",_gdgbe .Extend );};return _gdgbe ._gfdg ;};
// GetPageLabels returns the PageLabels entry in the PDF catalog.
// See section 12.4.2 "Page Labels" (p. 382 PDF32000_2008).
func (_gfgca *PdfReader )GetPageLabels ()(_cb .PdfObject ,error ){_abffb :=_cb .ResolveReference (_gfgca ._fccgb .Get ("\u0050\u0061\u0067\u0065\u004c\u0061\u0062\u0065\u006c\u0073"));if _abffb ==nil {return nil ,nil ;};if !_gfgca ._cbfab {_afecgf :=_gfgca .traverseObjectData (_abffb );if _afecgf !=nil {return nil ,_afecgf ;};};return _abffb ,nil ;};
// NewPdfActionLaunch returns a new "launch" action.
func NewPdfActionLaunch ()*PdfActionLaunch {_bcc :=NewPdfAction ();_fd :=&PdfActionLaunch {};_fd .PdfAction =_bcc ;_bcc .SetContext (_fd );return _fd ;};
// ImageToRGB converts ICCBased colorspace image to RGB and returns the result.
func (_badgc *PdfColorspaceICCBased )ImageToRGB (img Image )(Image ,error ){if _badgc .Alternate ==nil {_dbe .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 _badgc .N ==1{_dbe .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");_ffca :=NewPdfColorspaceDeviceGray ();return _ffca .ImageToRGB (img );}else if _badgc .N ==3{_dbe .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 _badgc .N ==4{_dbe .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");_feed :=NewPdfColorspaceDeviceCMYK ();return _feed .ImageToRGB (img );}else {return img ,_bc .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");};};_dbe .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",_badgc );_abag ,_egggd :=_badgc .Alternate .ImageToRGB (img );_dbe .Log .Trace ("I\u0043C\u0020\u0049\u006e\u0070\u0075\u0074\u0020\u0069m\u0061\u0067\u0065\u003a %\u002b\u0076",img );_dbe .Log .Trace ("I\u0043\u0043\u0020\u004fut\u0070u\u0074\u0020\u0069\u006d\u0061g\u0065\u003a\u0020\u0025\u002b\u0076",_abag );return _abag ,_egggd ;};func _fccb (_afaf _cb .PdfObject )(*PdfColorspaceCalGray ,error ){_cbed :=NewPdfColorspaceCalGray ();if _efc ,_aced :=_afaf .(*_cb .PdfIndirectObject );_aced {_cbed ._beeg =_efc ;};_afaf =_cb .TraceToDirectObject (_afaf );_dccde ,_cdbed :=_afaf .(*_cb .PdfObjectArray );if !_cdbed {return nil ,_c .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _dccde .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");};_afaf =_cb .TraceToDirectObject (_dccde .Get (0));_bbed ,_cdbed :=_afaf .(*_cb .PdfObjectName );if !_cdbed {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 *_bbed !="\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");};_afaf =_cb .TraceToDirectObject (_dccde .Get (1));_eeaf ,_cdbed :=_afaf .(*_cb .PdfObjectDictionary );if !_cdbed {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");};_afaf =_eeaf .Get ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074");_afaf =_cb .TraceToDirectObject (_afaf );_bgeag ,_cdbed :=_afaf .(*_cb .PdfObjectArray );if !_cdbed {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 _bgeag .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");};_fada ,_bdgdf :=_bgeag .GetAsFloat64Slice ();if _bdgdf !=nil {return nil ,_bdgdf ;};_cbed .WhitePoint =_fada ;_afaf =_eeaf .Get ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074");if _afaf !=nil {_afaf =_cb .TraceToDirectObject (_afaf );_aacc ,_abe :=_afaf .(*_cb .PdfObjectArray );if !_abe {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 _aacc .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");};_aabcg ,_aggg :=_aacc .GetAsFloat64Slice ();if _aggg !=nil {return nil ,_aggg ;};_cbed .BlackPoint =_aabcg ;};_afaf =_eeaf .Get ("\u0047\u0061\u006dm\u0061");if _afaf !=nil {_afaf =_cb .TraceToDirectObject (_afaf );_gddd ,_abfe :=_cb .GetNumberAsFloat (_afaf );if _abfe !=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");};_cbed .Gamma =_gddd ;};return _cbed ,nil ;};
// ToPdfObject returns a stream object.
func (_ccbac *XObjectForm )ToPdfObject ()_cb .PdfObject {_feedd :=_ccbac ._eaadb ;_afecc :=_feedd .PdfObjectDictionary ;if _ccbac .Filter !=nil {_afecc =_ccbac .Filter .MakeStreamDict ();_feedd .PdfObjectDictionary =_afecc ;};_afecc .Set ("\u0054\u0079\u0070\u0065",_cb .MakeName ("\u0058O\u0062\u006a\u0065\u0063\u0074"));_afecc .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_cb .MakeName ("\u0046\u006f\u0072\u006d"));_afecc .SetIfNotNil ("\u0046\u006f\u0072\u006d\u0054\u0079\u0070\u0065",_ccbac .FormType );_afecc .SetIfNotNil ("\u0042\u0042\u006f\u0078",_ccbac .BBox );_afecc .SetIfNotNil ("\u004d\u0061\u0074\u0072\u0069\u0078",_ccbac .Matrix );if _ccbac .Resources !=nil {_afecc .SetIfNotNil ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s",_ccbac .Resources .ToPdfObject ());};_afecc .SetIfNotNil ("\u0047\u0072\u006fu\u0070",_ccbac .Group );_afecc .SetIfNotNil ("\u0052\u0065\u0066",_ccbac .Ref );_afecc .SetIfNotNil ("\u004d\u0065\u0074\u0061\u0044\u0061\u0074\u0061",_ccbac .MetaData );_afecc .SetIfNotNil ("\u0050i\u0065\u0063\u0065\u0049\u006e\u0066o",_ccbac .PieceInfo );_afecc .SetIfNotNil ("\u004c\u0061\u0073t\u004d\u006f\u0064\u0069\u0066\u0069\u0065\u0064",_ccbac .LastModified );_afecc .SetIfNotNil ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074",_ccbac .StructParent );_afecc .SetIfNotNil ("\u0053\u0074\u0072\u0075\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074\u0073",_ccbac .StructParents );_afecc .SetIfNotNil ("\u004f\u0050\u0049",_ccbac .OPI );_afecc .SetIfNotNil ("\u004f\u0043",_ccbac .OC );_afecc .SetIfNotNil ("\u004e\u0061\u006d\u0065",_ccbac .Name );_afecc .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_cb .MakeInteger (int64 (len (_ccbac .Stream ))));_feedd .Stream =_ccbac .Stream ;return _feedd ;};func (_cea *PdfReader )newPdfAnnotationPolyLineFromDict (_gfge *_cb .PdfObjectDictionary )(*PdfAnnotationPolyLine ,error ){_bcbb :=PdfAnnotationPolyLine {};_gec ,_dgeb :=_cea .newPdfAnnotationMarkupFromDict (_gfge );if _dgeb !=nil {return nil ,_dgeb ;};_bcbb .PdfAnnotationMarkup =_gec ;_bcbb .Vertices =_gfge .Get ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073");_bcbb .LE =_gfge .Get ("\u004c\u0045");_bcbb .BS =_gfge .Get ("\u0042\u0053");_bcbb .IC =_gfge .Get ("\u0049\u0043");_bcbb .BE =_gfge .Get ("\u0042\u0045");_bcbb .IT =_gfge .Get ("\u0049\u0054");_bcbb .Measure =_gfge .Get ("\u004de\u0061\u0073\u0075\u0072\u0065");return &_bcbb ,nil ;};
// GetNumPages returns the number of pages in the document.
func (_bddb *PdfReader )GetNumPages ()(int ,error ){if _bddb ._gfecg .GetCrypter ()!=nil &&!_bddb ._gfecg .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 (_bddb ._dfcdb ),nil ;};func _eggaf (_edcae *PdfPage ){_ffdg :=_da .GetLicenseKey ();if _ffdg !=nil &&_ffdg .IsLicensed (){return ;};_bgdec :=_cb .PdfObjectName ("\u0055\u0046\u0031");if !_edcae .Resources .HasFontByName (_bgdec ){_edcae .Resources .SetFontByName (_bgdec ,DefaultFont ().ToPdfObject ());};var _dgfc []string ;_dgfc =append (_dgfc ,"\u0071");_dgfc =append (_dgfc ,"\u0042\u0054");_dgfc =append (_dgfc ,_c .Sprintf ("\u002f%\u0073\u0020\u0031\u0034\u0020\u0054f",_bgdec .String ()));_dgfc =append (_dgfc ,"\u0031\u0020\u0030\u0020\u0030\u0020\u0072\u0067");_dgfc =append (_dgfc ,"\u0031\u0030\u0020\u0031\u0030\u0020\u0054\u0064");_gdbea :="\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";_dgfc =append (_dgfc ,_c .Sprintf ("\u0028%\u0073\u0029\u0020\u0054\u006a",_gdbea ));_dgfc =append (_dgfc ,"\u0045\u0054");_dgfc =append (_dgfc ,"\u0051");_babbe :=_fe .Join (_dgfc ,"\u000a");_edcae .AddContentStreamByString (_babbe );_edcae .ToPdfObject ();};func _gfbee (_afege *_cb .PdfObjectDictionary )(*PdfFieldButton ,error ){_efgbg :=&PdfFieldButton {};_efgbg .Opt ,_ =_cb .GetArray (_afege .Get ("\u004f\u0070\u0074"));return _efgbg ,nil ;};
// ToPdfObject returns the PDF representation of the shading dictionary.
func (_daafg *PdfShadingType1 )ToPdfObject ()_cb .PdfObject {_daafg .PdfShading .ToPdfObject ();_adea ,_fbgaa :=_daafg .getShadingDict ();if _fbgaa !=nil {_dbe .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 _daafg .Domain !=nil {_adea .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_daafg .Domain );};if _daafg .Matrix !=nil {_adea .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_daafg .Matrix );};if _daafg .Function !=nil {if len (_daafg .Function )==1{_adea .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_daafg .Function [0].ToPdfObject ());}else {_ddbbf :=_cb .MakeArray ();for _ ,_gffba :=range _daafg .Function {_ddbbf .Append (_gffba .ToPdfObject ());};_adea .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_ddbbf );};};return _daafg ._gfdg ;};
// PdfActionHide represents a hide action.
type PdfActionHide struct{*PdfAction ;T _cb .PdfObject ;H _cb .PdfObject ;};
// ToPdfObject implements interface PdfModel.
func (_fgcae *PdfBorderStyle )ToPdfObject ()_cb .PdfObject {_cagg :=_cb .MakeDict ();if _fgcae ._cbcbf !=nil {if _cdcg ,_ead :=_fgcae ._cbcbf .(*_cb .PdfIndirectObject );_ead {_cdcg .PdfObject =_cagg ;};};_cagg .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_cb .MakeName ("\u0042\u006f\u0072\u0064\u0065\u0072"));if _fgcae .W !=nil {_cagg .Set ("\u0057",_cb .MakeFloat (*_fgcae .W ));};if _fgcae .S !=nil {_cagg .Set ("\u0053",_cb .MakeName (_fgcae .S .GetPdfName ()));};if _fgcae .D !=nil {_cagg .Set ("\u0044",_cb .MakeArrayFromIntegers (*_fgcae .D ));};if _fgcae ._cbcbf !=nil {return _fgcae ._cbcbf ;};return _cagg ;};
// SetContext sets the sub action (context).
func (_ggg *PdfAction )SetContext (ctx PdfModel ){_ggg ._ab =ctx };
// GetTrailer returns the PDF's trailer dictionary.
func (_ceecc *PdfReader )GetTrailer ()(*_cb .PdfObjectDictionary ,error ){_edbea :=_ceecc ._gfecg .GetTrailer ();if _edbea ==nil {return nil ,_bc .New ("\u0074r\u0061i\u006c\u0065\u0072\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};return _edbea ,nil ;};
// GetOptimizer returns current PDF optimizer.
func (_bgbe *PdfWriter )GetOptimizer ()Optimizer {return _bgbe ._agfcf };
// GetPageDict converts the Page to a PDF object dictionary.
func (_dcfa *PdfPage )GetPageDict ()*_cb .PdfObjectDictionary {_gfbeg :=_dcfa ._acaa ;_gfbeg .Clear ();_gfbeg .Set ("\u0054\u0079\u0070\u0065",_cb .MakeName ("\u0050\u0061\u0067\u0065"));_gfbeg .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_dcfa .Parent );if _dcfa .LastModified !=nil {_gfbeg .Set ("\u004c\u0061\u0073t\u004d\u006f\u0064\u0069\u0066\u0069\u0065\u0064",_dcfa .LastModified .ToPdfObject ());};if _dcfa .Resources !=nil {_gfbeg .Set ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s",_dcfa .Resources .ToPdfObject ());};if _dcfa .CropBox !=nil {_gfbeg .Set ("\u0043r\u006f\u0070\u0042\u006f\u0078",_dcfa .CropBox .ToPdfObject ());};if _dcfa .MediaBox !=nil {_gfbeg .Set ("\u004d\u0065\u0064\u0069\u0061\u0042\u006f\u0078",_dcfa .MediaBox .ToPdfObject ());};if _dcfa .BleedBox !=nil {_gfbeg .Set ("\u0042\u006c\u0065\u0065\u0064\u0042\u006f\u0078",_dcfa .BleedBox .ToPdfObject ());};if _dcfa .TrimBox !=nil {_gfbeg .Set ("\u0054r\u0069\u006d\u0042\u006f\u0078",_dcfa .TrimBox .ToPdfObject ());};if _dcfa .ArtBox !=nil {_gfbeg .Set ("\u0041\u0072\u0074\u0042\u006f\u0078",_dcfa .ArtBox .ToPdfObject ());};_gfbeg .SetIfNotNil ("\u0042\u006f\u0078C\u006f\u006c\u006f\u0072\u0049\u006e\u0066\u006f",_dcfa .BoxColorInfo );_gfbeg .SetIfNotNil ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073",_dcfa .Contents );if _dcfa .Rotate !=nil {_gfbeg .Set ("\u0052\u006f\u0074\u0061\u0074\u0065",_cb .MakeInteger (*_dcfa .Rotate ));};_gfbeg .SetIfNotNil ("\u0047\u0072\u006fu\u0070",_dcfa .Group );_gfbeg .SetIfNotNil ("\u0054\u0068\u0075m\u0062",_dcfa .Thumb );_gfbeg .SetIfNotNil ("\u0042",_dcfa .B );_gfbeg .SetIfNotNil ("\u0044\u0075\u0072",_dcfa .Dur );_gfbeg .SetIfNotNil ("\u0054\u0072\u0061n\u0073",_dcfa .Trans );_gfbeg .SetIfNotNil ("\u0041\u0041",_dcfa .AA );_gfbeg .SetIfNotNil ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061",_dcfa .Metadata );_gfbeg .SetIfNotNil ("\u0050i\u0065\u0063\u0065\u0049\u006e\u0066o",_dcfa .PieceInfo );_gfbeg .SetIfNotNil ("\u0053\u0074\u0072\u0075\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074\u0073",_dcfa .StructParents );_gfbeg .SetIfNotNil ("\u0049\u0044",_dcfa .ID );_gfbeg .SetIfNotNil ("\u0050\u005a",_dcfa .PZ );_gfbeg .SetIfNotNil ("\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006fn\u0049\u006e\u0066\u006f",_dcfa .SeparationInfo );_gfbeg .SetIfNotNil ("\u0054\u0061\u0062\u0073",_dcfa .Tabs );_gfbeg .SetIfNotNil ("T\u0065m\u0070\u006c\u0061\u0074\u0065\u0049\u006e\u0073t\u0061\u006e\u0074\u0069at\u0065\u0064",_dcfa .TemplateInstantiated );_gfbeg .SetIfNotNil ("\u0050r\u0065\u0073\u0053\u0074\u0065\u0070s",_dcfa .PresSteps );_gfbeg .SetIfNotNil ("\u0055\u0073\u0065\u0072\u0055\u006e\u0069\u0074",_dcfa .UserUnit );_gfbeg .SetIfNotNil ("\u0056\u0050",_dcfa .VP );if _dcfa ._dcgde !=nil {_ggeee :=_cb .MakeArray ();for _ ,_afea :=range _dcfa ._dcgde {if _cgade :=_afea .GetContext ();_cgade !=nil {_ggeee .Append (_cgade .ToPdfObject ());}else {_ggeee .Append (_afea .ToPdfObject ());};};if _ggeee .Len ()> 0{_gfbeg .Set ("\u0041\u006e\u006e\u006f\u0074\u0073",_ggeee );};}else if _dcfa .Annots !=nil {_gfbeg .SetIfNotNil ("\u0041\u006e\u006e\u006f\u0074\u0073",_dcfa .Annots );};return _gfbeg ;};
// ColorFromPdfObjects returns a new PdfColor based on the input slice of color
// components. The slice should contain a single PdfObjectFloat element.
func (_ddaa *PdfColorspaceSpecialIndexed )ColorFromPdfObjects (objects []_cb .PdfObject )(PdfColor ,error ){if len (objects )!=1{return nil ,_bc .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_gfbe ,_cdgd :=_cb .GetNumbersAsFloat (objects );if _cdgd !=nil {return nil ,_cdgd ;};return _ddaa .ColorFromFloats (_gfbe );};
// PdfOutline represents a PDF outline dictionary (Table 152 - p. 376).
type PdfOutline struct{PdfOutlineTreeNode ;Parent *PdfOutlineTreeNode ;Count *int64 ;_ffbfg *_cb .PdfIndirectObject ;};
// SetForms sets the Acroform for a PDF file.
func (_efaee *PdfWriter )SetForms (form *PdfAcroForm )error {_efaee ._aeegd =form ;return nil };func (_acf *PdfReader )newPdfAnnotationWatermarkFromDict (_dfcd *_cb .PdfObjectDictionary )(*PdfAnnotationWatermark ,error ){_bea :=PdfAnnotationWatermark {};_bea .FixedPrint =_dfcd .Get ("\u0046\u0069\u0078\u0065\u0064\u0050\u0072\u0069\u006e\u0074");return &_bea ,nil ;};
// GetContainingPdfObject returns the page as a dictionary within an PdfIndirectObject.
func (_cfdaa *PdfPage )GetContainingPdfObject ()_cb .PdfObject {return _cfdaa ._adbf };
// SetImage updates XObject Image with new image data.
func (_ecccb *XObjectImage )SetImage (img *Image ,cs PdfColorspace )error {_ecccb .Filter .UpdateParams (img .GetParamsDict ());_bagbbc ,_ggefa :=_ecccb .Filter .EncodeBytes (img .Data );if _ggefa !=nil {return _ggefa ;};_ecccb .Stream =_bagbbc ;_cdfcc :=img .Width ;_ecccb .Width =&_cdfcc ;_adedb :=img .Height ;_ecccb .Height =&_adedb ;_edde :=img .BitsPerComponent ;_ecccb .BitsPerComponent =&_edde ;if cs ==nil {if img .ColorComponents ==1{_ecccb .ColorSpace =NewPdfColorspaceDeviceGray ();}else if img .ColorComponents ==3{_ecccb .ColorSpace =NewPdfColorspaceDeviceRGB ();}else if img .ColorComponents ==4{_ecccb .ColorSpace =NewPdfColorspaceDeviceCMYK ();}else {return _bc .New ("c\u006fl\u006f\u0072\u0073\u0070\u0061\u0063\u0065\u0020u\u006e\u0064\u0065\u0066in\u0065\u0064");};}else {_ecccb .ColorSpace =cs ;};return nil ;};
// ToPdfObject implements interface PdfModel.
func (_cdb *PdfActionThread )ToPdfObject ()_cb .PdfObject {_cdb .PdfAction .ToPdfObject ();_bcd :=_cdb ._fc ;_efb :=_bcd .PdfObject .(*_cb .PdfObjectDictionary );_efb .SetIfNotNil ("\u0053",_cb .MakeName (string (ActionTypeThread )));if _cdb .F !=nil {_efb .Set ("\u0046",_cdb .F .ToPdfObject ());};_efb .SetIfNotNil ("\u0044",_cdb .D );_efb .SetIfNotNil ("\u0042",_cdb .B );return _bcd ;};
// ToPdfObject returns the PDF representation of the shading dictionary.
func (_aacba *PdfShadingType4 )ToPdfObject ()_cb .PdfObject {_aacba .PdfShading .ToPdfObject ();_bbca ,_bcbfg :=_aacba .getShadingDict ();if _bcbfg !=nil {_dbe .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 _aacba .BitsPerCoordinate !=nil {_bbca .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065",_aacba .BitsPerCoordinate );};if _aacba .BitsPerComponent !=nil {_bbca .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_aacba .BitsPerComponent );};if _aacba .BitsPerFlag !=nil {_bbca .Set ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067",_aacba .BitsPerFlag );};if _aacba .Decode !=nil {_bbca .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_aacba .Decode );};if _aacba .Function !=nil {if len (_aacba .Function )==1{_bbca .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_aacba .Function [0].ToPdfObject ());}else {_cegf :=_cb .MakeArray ();for _ ,_ccedc :=range _aacba .Function {_cegf .Append (_ccedc .ToPdfObject ());};_bbca .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_cegf );};};return _aacba ._gfdg ;};
// PdfAnnotationRedact represents Redact annotations.
// (Section 12.5.6.23).
type PdfAnnotationRedact struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _cb .PdfObject ;IC _cb .PdfObject ;RO _cb .PdfObject ;OverlayText _cb .PdfObject ;Repeat _cb .PdfObject ;DA _cb .PdfObject ;Q _cb .PdfObject ;};
// SetXObjectFormByName adds the provided XObjectForm to the page resources.
// The added XObjectForm is identified by the specified name.
func (_gfffe *PdfPageResources )SetXObjectFormByName (keyName _cb .PdfObjectName ,xform *XObjectForm )error {_cffb :=xform .ToPdfObject ().(*_cb .PdfObjectStream );_ecbag :=_gfffe .SetXObjectByName (keyName ,_cffb );return _ecbag ;};
// ToPdfObject returns the PDF representation of the shading dictionary.
func (_cebffb *PdfShadingType6 )ToPdfObject ()_cb .PdfObject {_cebffb .PdfShading .ToPdfObject ();_gcecdf ,_gafcg :=_cebffb .getShadingDict ();if _gafcg !=nil {_dbe .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 _cebffb .BitsPerCoordinate !=nil {_gcecdf .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065",_cebffb .BitsPerCoordinate );};if _cebffb .BitsPerComponent !=nil {_gcecdf .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_cebffb .BitsPerComponent );};if _cebffb .BitsPerFlag !=nil {_gcecdf .Set ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067",_cebffb .BitsPerFlag );};if _cebffb .Decode !=nil {_gcecdf .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_cebffb .Decode );};if _cebffb .Function !=nil {if len (_cebffb .Function )==1{_gcecdf .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_cebffb .Function [0].ToPdfObject ());}else {_ggdf :=_cb .MakeArray ();for _ ,_cfabg :=range _cebffb .Function {_ggdf .Append (_cfabg .ToPdfObject ());};_gcecdf .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_ggdf );};};return _cebffb ._gfdg ;};
// SetName sets the `Name` field of the signature.
func (_ccddd *PdfSignature )SetName (name string ){_ccddd .Name =_cb .MakeString (name )};func (_deabc *PdfReader )newPdfAnnotationFileAttachmentFromDict (_dddg *_cb .PdfObjectDictionary )(*PdfAnnotationFileAttachment ,error ){_agbc :=PdfAnnotationFileAttachment {};_dgdd ,_abcd :=_deabc .newPdfAnnotationMarkupFromDict (_dddg );if _abcd !=nil {return nil ,_abcd ;};_agbc .PdfAnnotationMarkup =_dgdd ;_agbc .FS =_dddg .Get ("\u0046\u0053");_agbc .Name =_dddg .Get ("\u004e\u0061\u006d\u0065");return &_agbc ,nil ;};
// GetContainingPdfObject returns the container of the image object (indirect object).
func (_ffac *XObjectImage )GetContainingPdfObject ()_cb .PdfObject {return _ffac ._egbff };
// PdfAnnotation represents an annotation in PDF (section 12.5 p. 389).
type PdfAnnotation struct{_gea PdfModel ;Rect _cb .PdfObject ;Contents _cb .PdfObject ;P _cb .PdfObject ;NM _cb .PdfObject ;M _cb .PdfObject ;F _cb .PdfObject ;AP _cb .PdfObject ;AS _cb .PdfObject ;Border _cb .PdfObject ;C _cb .PdfObject ;StructParent _cb .PdfObject ;OC _cb .PdfObject ;_efd *_cb .PdfIndirectObject ;};
// GetAscent returns the Ascent of the font `descriptor`.
func (_caga *PdfFontDescriptor )GetAscent ()(float64 ,error ){return _cb .GetNumberAsFloat (_caga .Ascent );};
// ToPdfObject implements interface PdfModel.
func (_aca *PdfActionGoTo3DView )ToPdfObject ()_cb .PdfObject {_aca .PdfAction .ToPdfObject ();_bge :=_aca ._fc ;_ged :=_bge .PdfObject .(*_cb .PdfObjectDictionary );_ged .SetIfNotNil ("\u0053",_cb .MakeName (string (ActionTypeGoTo3DView )));_ged .SetIfNotNil ("\u0054\u0041",_aca .TA );_ged .SetIfNotNil ("\u0056",_aca .V );return _bge ;};
// GetNumComponents returns the number of color components (1 for Indexed).
func (_edeef *PdfColorspaceSpecialIndexed )GetNumComponents ()int {return 1};
// ToPdfObject returns the PDF representation of the shading dictionary.
func (_cccde *PdfShadingType3 )ToPdfObject ()_cb .PdfObject {_cccde .PdfShading .ToPdfObject ();_eaacb ,_cdgff :=_cccde .getShadingDict ();if _cdgff !=nil {_dbe .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 _cccde .Coords !=nil {_eaacb .Set ("\u0043\u006f\u006f\u0072\u0064\u0073",_cccde .Coords );};if _cccde .Domain !=nil {_eaacb .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_cccde .Domain );};if _cccde .Function !=nil {if len (_cccde .Function )==1{_eaacb .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_cccde .Function [0].ToPdfObject ());}else {_fcfgg :=_cb .MakeArray ();for _ ,_gdbfg :=range _cccde .Function {_fcfgg .Append (_gdbfg .ToPdfObject ());};_eaacb .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_fcfgg );};};if _cccde .Extend !=nil {_eaacb .Set ("\u0045\u0078\u0074\u0065\u006e\u0064",_cccde .Extend );};return _cccde ._gfdg ;};
// ToPdfObject implements interface PdfModel.
func (_fda *PdfActionImportData )ToPdfObject ()_cb .PdfObject {_fda .PdfAction .ToPdfObject ();_egg :=_fda ._fc ;_effe :=_egg .PdfObject .(*_cb .PdfObjectDictionary );_effe .SetIfNotNil ("\u0053",_cb .MakeName (string (ActionTypeImportData )));if _fda .F !=nil {_effe .Set ("\u0046",_fda .F .ToPdfObject ());};return _egg ;};
// HasExtGState checks whether a font is defined by the specified keyName.
func (_gadge *PdfPageResources )HasExtGState (keyName _cb .PdfObjectName )bool {_ ,_bgfc :=_gadge .GetFontByName (keyName );return _bgfc ;};type pdfFont interface{_af .Font ;
// ToPdfObject returns a PDF representation of the font and implements interface Model.
ToPdfObject ()_cb .PdfObject ;getFontDescriptor ()*PdfFontDescriptor ;baseFields ()*fontCommon ;};func _dgcee (_gacba _cb .PdfObject )(map[_ccb .CharCode ]float64 ,error ){if _gacba ==nil {return nil ,nil ;};_bbgea ,_ffgcb :=_cb .GetArray (_gacba );if !_ffgcb {return nil ,nil ;};_edga :=map[_ccb .CharCode ]float64 {};_bgbac :=_bbgea .Len ();for _agbca :=0;_agbca < _bgbac -1;_agbca ++{_fgcgdf :=_cb .TraceToDirectObject (_bbgea .Get (_agbca ));_fbcb ,_dcbg :=_cb .GetIntVal (_fgcgdf );if !_dcbg {return nil ,_c .Errorf ("\u0042a\u0064\u0020\u0066\u006fn\u0074\u0020\u0057\u0020\u006fb\u006a0\u003a \u0069\u003d\u0025\u0064\u0020\u0025\u0023v",_agbca ,_fgcgdf );};_agbca ++;if _agbca > _bgbac -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",_bbgea );};_eagc :=_cb .TraceToDirectObject (_bbgea .Get (_agbca ));switch _eagc .(type ){case *_cb .PdfObjectArray :_edbga ,_ :=_cb .GetArray (_eagc );if _beag ,_fcgc :=_edbga .ToFloat64Array ();_fcgc ==nil {for _fecda :=0;_fecda < len (_beag );_fecda ++{_edga [_ccb .CharCode (_fbcb +_fecda )]=_beag [_fecda ];};}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",_agbca ,_eagc );};case *_cb .PdfObjectInteger :_gfaga ,_egggff :=_cb .GetIntVal (_eagc );if !_egggff {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",_agbca ,_eagc );};_agbca ++;if _agbca > _bgbac -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",_bbgea );};_bfcg :=_bbgea .Get (_agbca );_ggbfb ,_cbedd :=_cb .GetNumberAsFloat (_bfcg );if _cbedd !=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",_agbca ,_bfcg );};for _acef :=_fbcb ;_acef <=_gfaga ;_acef ++{_edga [_ccb .CharCode (_acef )]=_ggbfb ;};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",_agbca ,_eagc );};};return _edga ,nil ;};func _cbbd (_dbebd []byte )[]byte {const _gbfd =52845;const _bdfae =22719;_ggdb :=55665;for _ ,_ecgg :=range _dbebd [:4]{_ggdb =(int (_ecgg )+_ggdb )*_gbfd +_bdfae ;};_fdaf :=make ([]byte ,len (_dbebd )-4);for _bbfce ,_cdfdb :=range _dbebd [4:]{_fdaf [_bbfce ]=byte (int (_cdfdb )^_ggdb >>8);_ggdb =(int (_cdfdb )+_ggdb )*_gbfd +_bdfae ;};return _fdaf ;};
// PdfActionResetForm represents a resetForm action.
type PdfActionResetForm struct{*PdfAction ;Fields _cb .PdfObject ;Flags _cb .PdfObject ;};
// 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 *_cb .PdfObjectInteger ;TilingType *_cb .PdfObjectInteger ;BBox *PdfRectangle ;XStep *_cb .PdfObjectFloat ;YStep *_cb .PdfObjectFloat ;Resources *PdfPageResources ;Matrix *_cb .PdfObjectArray ;};
// NewPdfActionImportData returns a new "import data" action.
func NewPdfActionImportData ()*PdfActionImportData {_eff :=NewPdfAction ();_dga :=&PdfActionImportData {};_dga .PdfAction =_eff ;_eff .SetContext (_dga );return _dga ;};
// ToInteger convert to an integer format.
func (_cbfe *PdfColorCalGray )ToInteger (bits int )uint32 {_fcae :=_ag .Pow (2,float64 (bits ))-1;return uint32 (_fcae *_cbfe .Val ());};
// FieldFlag represents form field flags. Some of the flags can apply to all types of fields whereas other
// flags are specific.
type FieldFlag uint32 ;
// ToPdfObject returns the PDF representation of the colorspace.
func (_edeb *PdfColorspaceSpecialPattern )ToPdfObject ()_cb .PdfObject {if _edeb .UnderlyingCS ==nil {return _cb .MakeName ("\u0050a\u0074\u0074\u0065\u0072\u006e");};_defa :=_cb .MakeArray (_cb .MakeName ("\u0050a\u0074\u0074\u0065\u0072\u006e"));_defa .Append (_edeb .UnderlyingCS .ToPdfObject ());if _edeb ._beef !=nil {_edeb ._beef .PdfObject =_defa ;return _edeb ._beef ;};return _defa ;};func _fgaa (_gdga _cb .PdfObject )(*PdfColorspaceSpecialIndexed ,error ){_aefc :=NewPdfColorspaceSpecialIndexed ();if _ffgg ,_ddeg :=_gdga .(*_cb .PdfIndirectObject );_ddeg {_aefc ._fdbb =_ffgg ;};_gdga =_cb .TraceToDirectObject (_gdga );_eabe ,_fcadb :=_gdga .(*_cb .PdfObjectArray );if !_fcadb {return nil ,_c .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _eabe .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");};_gdga =_eabe .Get (0);_addgd ,_fcadb :=_gdga .(*_cb .PdfObjectName );if !_fcadb {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 *_addgd !="\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");};_gdga =_eabe .Get (1);_agde ,_fdbg :=DetermineColorspaceNameFromPdfObject (_gdga );if _agde =="\u0049n\u0064\u0065\u0078\u0065\u0064"||_agde =="\u0050a\u0074\u0074\u0065\u0072\u006e"{_dbe .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",_agde );return nil ,_ccef ;};_daef ,_fdbg :=NewPdfColorspaceFromPdfObject (_gdga );if _fdbg !=nil {return nil ,_fdbg ;};_aefc .Base =_daef ;_gdga =_eabe .Get (2);_bbfd ,_fdbg :=_cb .GetNumberAsInt64 (_gdga );if _fdbg !=nil {return nil ,_fdbg ;};if _bbfd > 255{return nil ,_c .Errorf ("\u0069n\u0064\u0065\u0078\u0065d\u0020\u0043\u0053\u003a\u0020I\u006ev\u0061l\u0069\u0064\u0020\u0068\u0069\u0076\u0061l");};_aefc .HiVal =int (_bbfd );_gdga =_eabe .Get (3);_aefc .Lookup =_gdga ;_gdga =_cb .TraceToDirectObject (_gdga );var _ddge []byte ;if _ddce ,_gfdfa :=_gdga .(*_cb .PdfObjectString );_gfdfa {_ddge =_ddce .Bytes ();_dbe .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",_ddge );}else if _effba ,_cbdf :=_gdga .(*_cb .PdfObjectStream );_cbdf {_dbe .Log .Trace ("\u0049n\u0064e\u0078\u0065\u0064\u0020\u0073t\u0072\u0065a\u006d\u003a\u0020\u0025\u0073",_gdga .String ());_dbe .Log .Trace ("\u0045\u006e\u0063\u006fde\u0064\u0020\u0028\u0025\u0064\u0029\u0020\u003a\u0020\u0025\u0023\u0020\u0078",len (_effba .Stream ),_effba .Stream );_ccac ,_affc :=_cb .DecodeStream (_effba );if _affc !=nil {return nil ,_affc ;};_dbe .Log .Trace ("\u0044e\u0063o\u0064\u0065\u0064\u0020\u0028%\u0064\u0029 \u003a\u0020\u0025\u0020\u0058",len (_ccac ),_ccac );_ddge =_ccac ;}else {_dbe .Log .Debug ("\u0054\u0079\u0070\u0065\u003a\u0020\u0025\u0054",_gdga );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 (_ddge )< _aefc .Base .GetNumComponents ()*(_aefc .HiVal +1){_dbe .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");_dbe .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 (_ddge ),_aefc .Base .GetNumComponents (),_aefc .HiVal );}else {_ddge =_ddge [:_aefc .Base .GetNumComponents ()*(_aefc .HiVal +1)];};_aefc ._ecbc =_ddge ;return _aefc ,nil ;};
// ToPdfObject implements interface PdfModel.
func (_cdbe *PdfAnnotationWatermark )ToPdfObject ()_cb .PdfObject {_cdbe .PdfAnnotation .ToPdfObject ();_cgad :=_cdbe ._efd ;_cgfb :=_cgad .PdfObject .(*_cb .PdfObjectDictionary );_cgfb .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_cb .MakeName ("\u0057a\u0074\u0065\u0072\u006d\u0061\u0072k"));_cgfb .SetIfNotNil ("\u0046\u0069\u0078\u0065\u0064\u0050\u0072\u0069\u006e\u0074",_cdbe .FixedPrint );return _cgad ;};
// ToPdfObject implements interface PdfModel.
func (_aad *PdfAnnotationRichMedia )ToPdfObject ()_cb .PdfObject {_aad .PdfAnnotation .ToPdfObject ();_bfg :=_aad ._efd ;_efeg :=_bfg .PdfObject .(*_cb .PdfObjectDictionary );_efeg .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_cb .MakeName ("\u0052i\u0063\u0068\u004d\u0065\u0064\u0069a"));_efeg .SetIfNotNil ("\u0052\u0069\u0063\u0068\u004d\u0065\u0064\u0069\u0061\u0053\u0065\u0074t\u0069\u006e\u0067\u0073",_aad .RichMediaSettings );_efeg .SetIfNotNil ("\u0052\u0069c\u0068\u004d\u0065d\u0069\u0061\u0043\u006f\u006e\u0074\u0065\u006e\u0074",_aad .RichMediaContent );return _bfg ;};func (_ffeea *PdfWriter )addObject (_ebedg _cb .PdfObject )bool {_afdgg :=_ffeea .hasObject (_ebedg );if !_afdgg {_afgbb :=_cb .ResolveReferencesDeep (_ebedg ,_ffeea ._deebb );if _afgbb !=nil {_dbe .Log .Debug ("E\u0052R\u004f\u0052\u003a\u0020\u0025\u0076\u0020\u002d \u0073\u006b\u0069\u0070pi\u006e\u0067",_afgbb );};_ffeea ._bgega =append (_ffeea ._bgega ,_ebedg );_ffeea ._bbbbd [_ebedg ]=struct{}{};return true ;};return false ;};
// ToPdfObject implements interface PdfModel.
func (_aeaa *PdfAnnotation3D )ToPdfObject ()_cb .PdfObject {_aeaa .PdfAnnotation .ToPdfObject ();_fdg :=_aeaa ._efd ;_dgge :=_fdg .PdfObject .(*_cb .PdfObjectDictionary );_dgge .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_cb .MakeName ("\u0033\u0044"));_dgge .SetIfNotNil ("\u0033\u0044\u0044",_aeaa .T3DD );_dgge .SetIfNotNil ("\u0033\u0044\u0056",_aeaa .T3DV );_dgge .SetIfNotNil ("\u0033\u0044\u0041",_aeaa .T3DA );_dgge .SetIfNotNil ("\u0033\u0044\u0049",_aeaa .T3DI );_dgge .SetIfNotNil ("\u0033\u0044\u0042",_aeaa .T3DB );return _fdg ;};
// GetContainingPdfObject implements interface PdfModel.
func (_bbbg *PdfFilespec )GetContainingPdfObject ()_cb .PdfObject {return _bbbg ._fdfg };
// 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 (_cbca PdfColor )(PdfColor ,error );
// GetNumComponents returns the number of components in the PdfColorspace.
GetNumComponents ()int ;
// ToPdfObject returns a PdfObject representation of the PdfColorspace.
ToPdfObject ()_cb .PdfObject ;
// ColorFromPdfObjects returns a PdfColor in the given PdfColorspace from an array of PdfObject where each
// PdfObject represents a numeric value.
ColorFromPdfObjects (_dffd []_cb .PdfObject )(PdfColor ,error );
// ColorFromFloats returns a new PdfColor based on input color components for a given PdfColorspace.
ColorFromFloats (_dgcca []float64 )(PdfColor ,error );
// DecodeArray returns the Decode array for the PdfColorSpace, i.e. the range of each component.
DecodeArray ()[]float64 ;};
// HasXObjectByName checks if an XObject with a specified keyName is defined.
func (_fedc *PdfPageResources )HasXObjectByName (keyName _cb .PdfObjectName )bool {_cdafad ,_ :=_fedc .GetXObjectByName (keyName );return _cdafad !=nil ;};
// ImageToRGB convert an indexed image to RGB.
func (_fbecc *PdfColorspaceSpecialIndexed )ImageToRGB (img Image )(Image ,error ){N :=_fbecc .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 );};_baaf :=_ac .NewImageBase (int (img .Width ),int (img .Height ),8,N ,nil ,img ._ddffb ,img ._cceeg );_dbgcf :=_cf .NewReader (img .getBase ());_cdea :=_cf .NewWriter (_baaf );var (_bebaa uint32 ;_cceeb int ;_ddefa error ;);for {_bebaa ,_ddefa =_dbgcf .ReadSample ();if _ddefa ==_bb .EOF {break ;}else if _ddefa !=nil {return img ,_ddefa ;};_cceeb =int (_bebaa );_dbe .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",_cceeb ,N ,len (_fbecc ._ecbc ));if (_cceeb +1)*N > len (_fbecc ._ecbc ){_cceeb =len (_fbecc ._ecbc )/N -1;_dbe .Log .Trace ("C\u006c\u0069\u0070\u0070in\u0067 \u0074\u006f\u0020\u0069\u006ed\u0065\u0078\u003a\u0020\u0025\u0064",_cceeb );if _cceeb < 0{_dbe .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 _cbgeg :=_cceeb *N ;_cbgeg < (_cceeb +1)*N ;_cbgeg ++{if _ddefa =_cdea .WriteSample (uint32 (_fbecc ._ecbc [_cbgeg ]));_ddefa !=nil {return img ,_ddefa ;};};};return _fbecc .Base .ImageToRGB (_ecdg (&_baaf ));};
// Items returns all children outline items.
func (_eeacg *Outline )Items ()[]*OutlineItem {return _eeacg .Entries };
// Initialize initializes the PdfSignature.
func (_gbdag *PdfSignature )Initialize ()error {if _gbdag .Handler ==nil {return _bc .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 _gbdag .Handler .InitSignature (_gbdag );};var ImageHandling ImageHandler =DefaultImageHandler {};
// ToPdfObject returns a PdfObject representation of PdfColorspaceDeviceNAttributes as a PdfObjectDictionary directly
// or indirectly within an indirect object container.
func (_ecae *PdfColorspaceDeviceNAttributes )ToPdfObject ()_cb .PdfObject {_bfcb :=_cb .MakeDict ();if _ecae .Subtype !=nil {_bfcb .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ecae .Subtype );};_bfcb .SetIfNotNil ("\u0043o\u006c\u006f\u0072\u0061\u006e\u0074s",_ecae .Colorants );_bfcb .SetIfNotNil ("\u0050r\u006f\u0063\u0065\u0073\u0073",_ecae .Process );_bfcb .SetIfNotNil ("M\u0069\u0078\u0069\u006e\u0067\u0048\u0069\u006e\u0074\u0073",_ecae .MixingHints );if _ecae ._afgb !=nil {_ecae ._afgb .PdfObject =_bfcb ;return _ecae ._afgb ;};return _bfcb ;};func (_ggefb *XObjectImage )getParamsDict ()*_cb .PdfObjectDictionary {_caba :=_cb .MakeDict ();_caba .Set ("\u0057\u0069\u0064t\u0068",_cb .MakeInteger (*_ggefb .Width ));_caba .Set ("\u0048\u0065\u0069\u0067\u0068\u0074",_cb .MakeInteger (*_ggefb .Height ));_caba .Set ("\u0043o\u006co\u0072\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074\u0073",_cb .MakeInteger (int64 (_ggefb .ColorSpace .GetNumComponents ())));_caba .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_cb .MakeInteger (*_ggefb .BitsPerComponent ));return _caba ;};
// PdfAnnotationMarkup represents additional fields for mark-up annotations.
// (Section 12.5.6.2 p. 399).
type PdfAnnotationMarkup struct{T _cb .PdfObject ;Popup *PdfAnnotationPopup ;CA _cb .PdfObject ;RC _cb .PdfObject ;CreationDate _cb .PdfObject ;IRT _cb .PdfObject ;Subj _cb .PdfObject ;RT _cb .PdfObject ;IT _cb .PdfObject ;ExData _cb .PdfObject ;};
// AddFont adds a font dictionary to the Font resources.
func (_bdadbd *PdfPage )AddFont (name _cb .PdfObjectName ,font _cb .PdfObject )error {if _bdadbd .Resources ==nil {_bdadbd .Resources =NewPdfPageResources ();};if _bdadbd .Resources .Font ==nil {_bdadbd .Resources .Font =_cb .MakeDict ();};_cgea ,_acgb :=_cb .TraceToDirectObject (_bdadbd .Resources .Font ).(*_cb .PdfObjectDictionary );if !_acgb {_dbe .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",_cb .TraceToDirectObject (_bdadbd .Resources .Font ));return _bc .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_cgea .Set (name ,font );return nil ;};const (BorderEffectNoEffect BorderEffect =iota ;BorderEffectCloudy BorderEffect =iota ;);
// ColorToRGB converts a ICCBased color to an RGB color.
func (_efge *PdfColorspaceICCBased )ColorToRGB (color PdfColor )(PdfColor ,error ){if _efge .Alternate ==nil {_dbe .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 _efge .N ==1{_dbe .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");_bage :=NewPdfColorspaceDeviceGray ();return _bage .ColorToRGB (color );}else if _efge .N ==3{_dbe .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 _efge .N ==4{_dbe .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");_feee :=NewPdfColorspaceDeviceCMYK ();return _feee .ColorToRGB (color );}else {return nil ,_bc .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");};};_dbe .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",_efge );return _efge .Alternate .ColorToRGB (color );};var _ _cb .PdfObject =&pdfSignDictionary {};
// ToPdfObject implements interface PdfModel.
func (_gaac *PdfAnnotationFreeText )ToPdfObject ()_cb .PdfObject {_gaac .PdfAnnotation .ToPdfObject ();_bba :=_gaac ._efd ;_ebfaf :=_bba .PdfObject .(*_cb .PdfObjectDictionary );_gaac .PdfAnnotationMarkup .appendToPdfDictionary (_ebfaf );_ebfaf .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_cb .MakeName ("\u0046\u0072\u0065\u0065\u0054\u0065\u0078\u0074"));_ebfaf .SetIfNotNil ("\u0044\u0041",_gaac .DA );_ebfaf .SetIfNotNil ("\u0051",_gaac .Q );_ebfaf .SetIfNotNil ("\u0052\u0043",_gaac .RC );_ebfaf .SetIfNotNil ("\u0044\u0053",_gaac .DS );_ebfaf .SetIfNotNil ("\u0043\u004c",_gaac .CL );_ebfaf .SetIfNotNil ("\u0049\u0054",_gaac .IT );_ebfaf .SetIfNotNil ("\u0042\u0045",_gaac .BE );_ebfaf .SetIfNotNil ("\u0052\u0044",_gaac .RD );_ebfaf .SetIfNotNil ("\u0042\u0053",_gaac .BS );_ebfaf .SetIfNotNil ("\u004c\u0045",_gaac .LE );return _bba ;};func (_ccegaa *PdfFunctionType0 )processSamples ()error {_becb :=_cf .ResampleBytes (_ccegaa ._gfdce ,_ccegaa .BitsPerSample );_ccegaa ._fcdac =_becb ;return nil ;};
// UpdateObject marks `obj` as updated and to be included in the following revision.
func (_fff *PdfAppender )UpdateObject (obj _cb .PdfObject ){_fff .replaceObject (obj ,obj );if _ ,_fcece :=_fff ._gfb [obj ];!_fcece {_fff ._ceda =append (_fff ._ceda ,obj );_fff ._gfb [obj ]=struct{}{};};};
// ToPdfObject returns an indirect object containing the signature field dictionary.
func (_gdada *PdfFieldSignature )ToPdfObject ()_cb .PdfObject {if _gdada .PdfAnnotationWidget !=nil {_gdada .PdfAnnotationWidget .ToPdfObject ();};_gdada .PdfField .ToPdfObject ();_ccefe :=_gdada ._addef ;_ccfa :=_ccefe .PdfObject .(*_cb .PdfObjectDictionary );_ccfa .SetIfNotNil ("\u0046\u0054",_cb .MakeName ("\u0053\u0069\u0067"));_ccfa .SetIfNotNil ("\u004c\u006f\u0063\u006b",_gdada .Lock );_ccfa .SetIfNotNil ("\u0053\u0056",_gdada .SV );if _gdada .V !=nil {_ccfa .SetIfNotNil ("\u0056",_gdada .V .ToPdfObject ());};return _ccefe ;};
// GetNumComponents returns the number of color components of the colorspace device.
// Returns 1 for a CalGray device.
func (_cgda *PdfColorspaceCalGray )GetNumComponents ()int {return 1};
// GetOutlines returns a high-level Outline object, based on the outline tree
// of the reader.
func (_dfbbd *PdfReader )GetOutlines ()(*Outline ,error ){if _dfbbd ==nil {return nil ,_bc .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");};_aaee :=_dfbbd .GetOutlineTree ();if _aaee ==nil {return nil ,_bc .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 _gdebf func (_addb *PdfOutlineTreeNode ,_bceg *[]*OutlineItem );_gdebf =func (_bfgab *PdfOutlineTreeNode ,_fbde *[]*OutlineItem ){if _bfgab ==nil {return ;};if _bfgab ._dfaeg ==nil {_dbe .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 _fbed *OutlineItem ;if _eedac ,_acec :=_bfgab ._dfaeg .(*PdfOutlineItem );_acec {_ebbda :=_eedac .Dest ;if (_ebbda ==nil ||_cb .IsNullObject (_ebbda ))&&_eedac .A !=nil {if _fbfe ,_geace :=_cb .GetDict (_eedac .A );_geace {_ebbda ,_ =_cb .GetArray (_fbfe .Get ("\u0044"));};};var _efbde OutlineDest ;if _ebbda !=nil &&!_cb .IsNullObject (_ebbda ){if _faegdc ,_egbcc :=_afdab (_ebbda ,_dfbbd );_egbcc ==nil {_efbde =*_faegdc ;}else {_dbe .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",_ebbda ,_egbcc );};};_fbed =NewOutlineItem (_eedac .Title .Decoded (),_efbde );*_fbde =append (*_fbde ,_fbed );if _eedac .Next !=nil {_gdebf (_eedac .Next ,_fbde );};};if _bfgab .First !=nil {if _fbed !=nil {_fbde =&_fbed .Entries ;};_gdebf (_bfgab .First ,_fbde );};};_dgea :=NewOutline ();_gdebf (_aaee ,&_dgea .Entries );return _dgea ,nil ;};
// ColorToRGB converts a DeviceN color to an RGB color.
func (_cdafg *PdfColorspaceDeviceN )ColorToRGB (color PdfColor )(PdfColor ,error ){if _cdafg .AlternateSpace ==nil {return nil ,_bc .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 _cdafg .AlternateSpace .ColorToRGB (color );};
// GetContainingPdfObject returns the container of the outline (indirect object).
func (_fcbf *PdfOutline )GetContainingPdfObject ()_cb .PdfObject {return _fcbf ._ffbfg };
// PdfColor interface represents a generic color in PDF.
type PdfColor interface{};
// NewOutlineBookmark returns an initialized PdfOutlineItem for a given bookmark title and page.
func NewOutlineBookmark (title string ,page *_cb .PdfIndirectObject )*PdfOutlineItem {_gbda :=PdfOutlineItem {};_gbda ._dfaeg =&_gbda ;_gbda .Title =_cb .MakeString (title );_fbdcc :=_cb .MakeArray ();_fbdcc .Append (page );_fbdcc .Append (_cb .MakeName ("\u0046\u0069\u0074"));_gbda .Dest =_fbdcc ;return &_gbda ;};
// ColorFromPdfObjects returns a new PdfColor based on input color components. The input PdfObjects should
// be numeric.
func (_bfgg *PdfColorspaceDeviceN )ColorFromPdfObjects (objects []_cb .PdfObject )(PdfColor ,error ){if len (objects )!=_bfgg .GetNumComponents (){return nil ,_bc .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_bbcf ,_degbb :=_cb .GetNumbersAsFloat (objects );if _degbb !=nil {return nil ,_degbb ;};return _bfgg .ColorFromFloats (_bbcf );};func _babb (_bdabc *_cb .PdfObjectDictionary ,_agge *fontCommon ,_ffbc _ccb .TextEncoder )(*pdfFontSimple ,error ){_bdce :=_beeag (_agge );_bdce ._cecgb =_ffbc ;if _ffbc ==nil {_fcbec :=_bdabc .Get ("\u0046i\u0072\u0073\u0074\u0043\u0068\u0061r");if _fcbec ==nil {_fcbec =_cb .MakeInteger (0);};_bdce .FirstChar =_fcbec ;_ffce ,_cbdb :=_cb .GetIntVal (_fcbec );if !_cbdb {_dbe .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",_fcbec );return nil ,_cb .ErrTypeError ;};_dfgcg :=_ccb .CharCode (_ffce );_fcbec =_bdabc .Get ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072");if _fcbec ==nil {_fcbec =_cb .MakeInteger (255);};_bdce .LastChar =_fcbec ;_ffce ,_cbdb =_cb .GetIntVal (_fcbec );if !_cbdb {_dbe .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",_fcbec );return nil ,_cb .ErrTypeError ;};_egfcg :=_ccb .CharCode (_ffce );_bdce ._cfgdd =make (map[_ccb .CharCode ]float64 );_fcbec =_bdabc .Get ("\u0057\u0069\u0064\u0074\u0068\u0073");if _fcbec !=nil {_bdce .Widths =_fcbec ;_cbdg ,_ffba :=_cb .GetArray (_fcbec );if !_ffba {_dbe .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",_fcbec );return nil ,_cb .ErrTypeError ;};_efcb ,_begg :=_cbdg .ToFloat64Array ();if _begg !=nil {_dbe .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 ,_begg ;};if len (_efcb )!=int (_egfcg -_dfgcg +1){_dbe .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",_egfcg -_dfgcg +1,len (_efcb ));return nil ,_cb .ErrRangeError ;};for _fbca ,_bfga :=range _efcb {_bdce ._cfgdd [_dfgcg +_ccb .CharCode (_fbca )]=_bfga ;};};};_bdce .Encoding =_cb .TraceToDirectObject (_bdabc .Get ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067"));return _bdce ,nil ;};
// B returns the value of the blue component of the color.
func (_degb *PdfColorDeviceRGB )B ()float64 {return float64 (_degb [2])};
// PdfShadingType1 is a Function-based shading.
type PdfShadingType1 struct{*PdfShading ;Domain *_cb .PdfObjectArray ;Matrix *_cb .PdfObjectArray ;Function []PdfFunction ;};
// PdfAnnotationLink represents Link annotations.
// (Section 12.5.6.5 p. 403).
type PdfAnnotationLink struct{*PdfAnnotation ;A _cb .PdfObject ;Dest _cb .PdfObject ;H _cb .PdfObject ;PA _cb .PdfObject ;QuadPoints _cb .PdfObject ;BS _cb .PdfObject ;_afb *PdfAction ;_dfea *PdfReader ;};
// ToPdfObject implements interface PdfModel.
// Note: Call the sub-annotation's ToPdfObject to set both the generic and non-generic information.
func (_dead *PdfAnnotation )ToPdfObject ()_cb .PdfObject {_agd :=_dead ._efd ;_bfb :=_agd .PdfObject .(*_cb .PdfObjectDictionary );_bfb .Clear ();_bfb .Set ("\u0054\u0079\u0070\u0065",_cb .MakeName ("\u0041\u006e\u006eo\u0074"));_bfb .SetIfNotNil ("\u0052\u0065\u0063\u0074",_dead .Rect );_bfb .SetIfNotNil ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073",_dead .Contents );_bfb .SetIfNotNil ("\u0050",_dead .P );_bfb .SetIfNotNil ("\u004e\u004d",_dead .NM );_bfb .SetIfNotNil ("\u004d",_dead .M );_bfb .SetIfNotNil ("\u0046",_dead .F );_bfb .SetIfNotNil ("\u0041\u0050",_dead .AP );_bfb .SetIfNotNil ("\u0041\u0053",_dead .AS );_bfb .SetIfNotNil ("\u0042\u006f\u0072\u0064\u0065\u0072",_dead .Border );_bfb .SetIfNotNil ("\u0043",_dead .C );_bfb .SetIfNotNil ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074",_dead .StructParent );_bfb .SetIfNotNil ("\u004f\u0043",_dead .OC );return _agd ;};
// PdfShadingType5 is a Lattice-form Gouraud-shaded triangle mesh.
type PdfShadingType5 struct{*PdfShading ;BitsPerCoordinate *_cb .PdfObjectInteger ;BitsPerComponent *_cb .PdfObjectInteger ;VerticesPerRow *_cb .PdfObjectInteger ;Decode *_cb .PdfObjectArray ;Function []PdfFunction ;};func _cgce (_dcecf []rune ,_eefdg map[rune ]int ,_cfge map[rune ]_af .GID )*_cb .PdfObjectArray {_edfg :=&_cb .PdfObjectArray {};for _cdgb :=0;_cdgb < len (_dcecf );{_cbgc :=_eefdg [_dcecf [_cdgb ]];_fegbg :=_cdgb ;for _ebcf :=_cdgb +1;_ebcf < len (_dcecf );_ebcf ++{_cegb :=_eefdg [_dcecf [_ebcf ]];if _cbgc ==_cegb {_fegbg =_ebcf ;}else {break ;};};_fbbbd :=_cfge [_dcecf [_cdgb ]];_aeeea :=_cfge [_dcecf [_fegbg ]];_edfg .Append (_cb .MakeInteger (int64 (_fbbbd )));_edfg .Append (_cb .MakeInteger (int64 (_aeeea )));_edfg .Append (_cb .MakeInteger (int64 (_cbgc )));_cdgb =_fegbg +1;};return _edfg ;};func (_cbafg *PdfReader )loadOutlines ()(*PdfOutlineTreeNode ,error ){if _cbafg ._gfecg .GetCrypter ()!=nil &&!_cbafg ._gfecg .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");};_bggfb :=_cbafg ._fccgb ;_eaeg :=_bggfb .Get ("\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0073");if _eaeg ==nil {return nil ,nil ;};_dbe .Log .Trace ("\u002d\u0048\u0061\u0073\u0020\u006f\u0075\u0074\u006c\u0069\u006e\u0065\u0073");_beaad :=_cb .ResolveReference (_eaeg );_dbe .Log .Trace ("\u004f\u0075t\u006c\u0069\u006ee\u0020\u0072\u006f\u006f\u0074\u003a\u0020\u0025\u0076",_beaad );if _cbgea :=_cb .IsNullObject (_beaad );_cbgea {_dbe .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 ;};_egbaea ,_dcccbe :=_beaad .(*_cb .PdfIndirectObject );if !_dcccbe {if _ ,_geeb :=_cb .GetDict (_beaad );!_geeb {_dbe .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 ;};_dbe .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");_egbaea =_cb .MakeIndirectObject (_beaad );};_fgacc ,_dcccbe :=_egbaea .PdfObject .(*_cb .PdfObjectDictionary );if !_dcccbe {return nil ,_bc .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");};_dbe .Log .Trace ("O\u0075\u0074\u006c\u0069ne\u0020r\u006f\u006f\u0074\u0020\u0064i\u0063\u0074\u003a\u0020\u0025\u0076",_fgacc );_gaega ,_ ,_dbag :=_cbafg .buildOutlineTree (_egbaea ,nil ,nil ,nil );if _dbag !=nil {return nil ,_dbag ;};_dbe .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",_gaega );return _gaega ,nil ;};
// GetContext returns the action context which contains the specific type-dependent context.
// The context represents the subaction.
func (_add *PdfAction )GetContext ()PdfModel {if _add ==nil {return nil ;};return _add ._ab ;};
// 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 _cb .PdfObject ;_ecbc []byte ;_fdbb *_cb .PdfIndirectObject ;};
// PdfActionGoTo represents a GoTo action.
type PdfActionGoTo struct{*PdfAction ;D _cb .PdfObject ;};
// GetPage returns the PdfPage model for the specified page number.
func (_cebef *PdfReader )GetPage (pageNumber int )(*PdfPage ,error ){if _cebef ._gfecg .GetCrypter ()!=nil &&!_cebef ._gfecg .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 (_cebef ._dfcdb )< pageNumber {return nil ,_bc .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");};_aceg :=pageNumber -1;if _aceg < 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");};_fgcbbf :=_cebef .PageList [_aceg ];return _fgcbbf ,nil ;};
// GetContentStreams returns the content stream as an array of strings.
func (_gcffb *PdfPage )GetContentStreams ()([]string ,error ){if _gcffb .Contents ==nil {return nil ,nil ;};_ccfc :=_cb .TraceToDirectObject (_gcffb .Contents );var _daefe []_cb .PdfObject ;if _agbde ,_ebab :=_ccfc .(*_cb .PdfObjectArray );_ebab {_daefe =_agbde .Elements ();}else {_daefe =[]_cb .PdfObject {_ccfc };};var _beffa []string ;for _ ,_cffe :=range _daefe {_gbegc ,_gdabg :=_addfb (_cffe );if _gdabg !=nil {return nil ,_gdabg ;};_beffa =append (_beffa ,_gbegc );};return _beffa ,nil ;};
// SetDecode sets the decode image float slice.
func (_ddcdd *Image )SetDecode (decode []float64 ){_ddcdd ._cceeg =decode };
// SetOCProperties sets the optional content properties.
func (_aedf *PdfWriter )SetOCProperties (ocProperties _cb .PdfObject )error {_gdebga :=_aedf ._fgfb ;if ocProperties !=nil {_dbe .Log .Trace ("\u0053e\u0074\u0074\u0069\u006e\u0067\u0020\u004f\u0043\u0020\u0050\u0072o\u0070\u0065\u0072\u0074\u0069\u0065\u0073\u002e\u002e\u002e");_gdebga .Set ("\u004f\u0043\u0050r\u006f\u0070\u0065\u0072\u0074\u0069\u0065\u0073",ocProperties );return _aedf .addObjects (ocProperties );};return nil ;};var (ErrRequiredAttributeMissing =_bc .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 =_bc .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0061\u0074\u0074\u0072i\u0062\u0075\u0074\u0065");ErrTypeCheck =_bc .New ("\u0074\u0079\u0070\u0065\u0020\u0063\u0068\u0065\u0063\u006b");_ccef =_bc .New ("\u0072\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b\u0020e\u0072\u0072\u006f\u0072");ErrEncrypted =_bc .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 =_bc .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",_cb .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",_cb .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",_cb .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",_cb .ErrNotSupported );ErrSignNotEnoughSpace =_c .Errorf ("\u0069\u006e\u0073\u0075\u0066\u0066\u0069c\u0069\u0065\u006et\u0020\u0073\u0070a\u0063\u0065 \u0061\u006c\u006c\u006f\u0063\u0061t\u0065d \u0066\u006f\u0072\u0020\u0074\u0068\u0065\u0020\u0073\u0069\u0067\u006e\u0061\u0074\u0075\u0072\u0065\u0020\u0063\u006f\u006e\u0074\u0065\u006e\u0074\u0073"););
// ToJBIG2Image converts current image to the core.JBIG2Image.
func (_dfagf *Image )ToJBIG2Image ()(*_cb .JBIG2Image ,error ){_aebf ,_ebgdg :=_dfagf .ToGoImage ();if _ebgdg !=nil {return nil ,_ebgdg ;};return _cb .GoImageToJBIG2 (_aebf ,_cb .JB2ImageAutoThreshold );};
// SetXObjectImageByName adds the provided XObjectImage to the page resources.
// The added XObjectImage is identified by the specified name.
func (_cegca *PdfPageResources )SetXObjectImageByName (keyName _cb .PdfObjectName ,ximg *XObjectImage )error {_agcgb :=ximg .ToPdfObject ().(*_cb .PdfObjectStream );_gdade :=_cegca .SetXObjectByName (keyName ,_agcgb );return _gdade ;};
// ImageToRGB converts CalRGB colorspace image to RGB and returns the result.
func (_accb *PdfColorspaceCalRGB )ImageToRGB (img Image )(Image ,error ){_adbda :=_cf .NewReader (img .getBase ());_dgddb :=_ac .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),3,nil ,nil ,nil );_cgfg :=_cf .NewWriter (_dgddb );_beac :=_ag .Pow (2,float64 (img .BitsPerComponent ))-1;_eeafb :=make ([]uint32 ,3);var (_ffd error ;_gbeb ,_ecgbf ,_cbcg ,_cbge ,_baecb ,_abda float64 ;);for {_ffd =_adbda .ReadSamples (_eeafb );if _ffd ==_bb .EOF {break ;}else if _ffd !=nil {return img ,_ffd ;};_gbeb =float64 (_eeafb [0])/_beac ;_ecgbf =float64 (_eeafb [1])/_beac ;_cbcg =float64 (_eeafb [2])/_beac ;_cbge =_accb .Matrix [0]*_ag .Pow (_gbeb ,_accb .Gamma [0])+_accb .Matrix [3]*_ag .Pow (_ecgbf ,_accb .Gamma [1])+_accb .Matrix [6]*_ag .Pow (_cbcg ,_accb .Gamma [2]);_baecb =_accb .Matrix [1]*_ag .Pow (_gbeb ,_accb .Gamma [0])+_accb .Matrix [4]*_ag .Pow (_ecgbf ,_accb .Gamma [1])+_accb .Matrix [7]*_ag .Pow (_cbcg ,_accb .Gamma [2]);_abda =_accb .Matrix [2]*_ag .Pow (_gbeb ,_accb .Gamma [0])+_accb .Matrix [5]*_ag .Pow (_ecgbf ,_accb .Gamma [1])+_accb .Matrix [8]*_ag .Pow (_cbcg ,_accb .Gamma [2]);_gbeb =3.240479*_cbge +-1.537150*_baecb +-0.498535*_abda ;_ecgbf =-0.969256*_cbge +1.875992*_baecb +0.041556*_abda ;_cbcg =0.055648*_cbge +-0.204043*_baecb +1.057311*_abda ;_gbeb =_ag .Min (_ag .Max (_gbeb ,0),1.0);_ecgbf =_ag .Min (_ag .Max (_ecgbf ,0),1.0);_cbcg =_ag .Min (_ag .Max (_cbcg ,0),1.0);_eeafb [0]=uint32 (_gbeb *_beac );_eeafb [1]=uint32 (_ecgbf *_beac );_eeafb [2]=uint32 (_cbcg *_beac );if _ffd =_cgfg .WriteSamples (_eeafb );_ffd !=nil {return img ,_ffd ;};};return _ecdg (&_dgddb ),nil ;};
// NewPdfFilespec returns an initialized generic PDF filespec model.
func NewPdfFilespec ()*PdfFilespec {_bgde :=&PdfFilespec {};_bgde ._fdfg =_cb .MakeIndirectObject (_cb .MakeDict ());return _bgde ;};
// 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 (_bebe *PdfAcroForm )FillWithAppearance (provider FieldValueProvider ,appGen FieldAppearanceGenerator )error {return _bebe .fill (provider ,appGen );};
// GetAction returns the PDF action for the annotation link.
func (_gbgdf *PdfAnnotationLink )GetAction ()(*PdfAction ,error ){if _gbgdf ._afb !=nil {return _gbgdf ._afb ,nil ;};if _gbgdf .A ==nil {return nil ,nil ;};if _gbgdf ._dfea ==nil {return nil ,nil ;};_cceb ,_caa :=_gbgdf ._dfea .loadAction (_gbgdf .A );if _caa !=nil {return nil ,_caa ;};_gbgdf ._afb =_cceb ;return _gbgdf ._afb ,nil ;};
// ToPdfObject returns the PDF representation of the shading dictionary.
func (_cgdegac *PdfShadingType7 )ToPdfObject ()_cb .PdfObject {_cgdegac .PdfShading .ToPdfObject ();_abbee ,_ggcfbc :=_cgdegac .getShadingDict ();if _ggcfbc !=nil {_dbe .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 _cgdegac .BitsPerCoordinate !=nil {_abbee .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065",_cgdegac .BitsPerCoordinate );};if _cgdegac .BitsPerComponent !=nil {_abbee .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_cgdegac .BitsPerComponent );};if _cgdegac .BitsPerFlag !=nil {_abbee .Set ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067",_cgdegac .BitsPerFlag );};if _cgdegac .Decode !=nil {_abbee .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_cgdegac .Decode );};if _cgdegac .Function !=nil {if len (_cgdegac .Function )==1{_abbee .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_cgdegac .Function [0].ToPdfObject ());}else {_afge :=_cb .MakeArray ();for _ ,_bbda :=range _cgdegac .Function {_afge .Append (_bbda .ToPdfObject ());};_abbee .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_afge );};};return _cgdegac ._gfdg ;};
// NewPdfColorspaceDeviceCMYK returns a new CMYK32 colorspace object.
func NewPdfColorspaceDeviceCMYK ()*PdfColorspaceDeviceCMYK {return &PdfColorspaceDeviceCMYK {}};
// 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 ;_ddffb []byte ;_cceeg []float64 ;};
// SetPatternByName sets a pattern resource specified by keyName.
func (_fceaa *PdfPageResources )SetPatternByName (keyName _cb .PdfObjectName ,pattern _cb .PdfObject )error {if _fceaa .Pattern ==nil {_fceaa .Pattern =_cb .MakeDict ();};_gcagf ,_bffda :=_fceaa .Pattern .(*_cb .PdfObjectDictionary );if !_bffda {return _cb .ErrTypeError ;};_gcagf .Set (keyName ,pattern );return nil ;};
// ToPdfObject returns the PDF representation of the pattern.
func (_bcbae *PdfPattern )ToPdfObject ()_cb .PdfObject {_eaddb :=_bcbae .getDict ();_eaddb .Set ("\u0054\u0079\u0070\u0065",_cb .MakeName ("\u0050a\u0074\u0074\u0065\u0072\u006e"));_eaddb .Set ("P\u0061\u0074\u0074\u0065\u0072\u006e\u0054\u0079\u0070\u0065",_cb .MakeInteger (_bcbae .PatternType ));return _bcbae ._gbdd ;};
// ToPdfObject implements interface PdfModel.
func (_bab *PdfActionJavaScript )ToPdfObject ()_cb .PdfObject {_bab .PdfAction .ToPdfObject ();_faf :=_bab ._fc ;_bag :=_faf .PdfObject .(*_cb .PdfObjectDictionary );_bag .SetIfNotNil ("\u0053",_cb .MakeName (string (ActionTypeJavaScript )));_bag .SetIfNotNil ("\u004a\u0053",_bab .JS );return _faf ;};
// PdfActionSubmitForm represents a submitForm action.
type PdfActionSubmitForm struct{*PdfAction ;F *PdfFilespec ;Fields _cb .PdfObject ;Flags _cb .PdfObject ;};func (_fadbg *PdfReader )newPdfPageFromDict (_bggea *_cb .PdfObjectDictionary )(*PdfPage ,error ){_fcbdc :=NewPdfPage ();_fcbdc ._acaa =_bggea ;_eeggc :=*_bggea ;_faab ,_bffc :=_eeggc .Get ("\u0054\u0079\u0070\u0065").(*_cb .PdfObjectName );if !_bffc {return nil ,_bc .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 *_faab !="\u0050\u0061\u0067\u0065"{return nil ,_bc .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 _bbfde :=_eeggc .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");_bbfde !=nil {_fcbdc .Parent =_bbfde ;};if _faabc :=_eeggc .Get ("\u004c\u0061\u0073t\u004d\u006f\u0064\u0069\u0066\u0069\u0065\u0064");_faabc !=nil {_ceefbe ,_dcggec :=_cb .GetString (_faabc );if !_dcggec {return nil ,_bc .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");};_egddg ,_dced :=NewPdfDate (_ceefbe .Str ());if _dced !=nil {return nil ,_dced ;};_fcbdc .LastModified =&_egddg ;};if _affga :=_eeggc .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");_affga !=nil &&!_cb .IsNullObject (_affga ){_aaad ,_gaacd :=_cb .GetDict (_affga );if !_gaacd {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",_affga );};var _bdebf error ;_fcbdc .Resources ,_bdebf =NewPdfPageResourcesFromDict (_aaad );if _bdebf !=nil {return nil ,_bdebf ;};}else {_fdbfd ,_ddggg :=_fcbdc .getParentResources ();if _ddggg !=nil {return nil ,_ddggg ;};if _fdbfd ==nil {_fdbfd =NewPdfPageResources ();};_fcbdc .Resources =_fdbfd ;};if _eafe :=_eeggc .Get ("\u004d\u0065\u0064\u0069\u0061\u0042\u006f\u0078");_eafe !=nil {_daec ,_ebeb :=_cb .GetArray (_eafe );if !_ebeb {return nil ,_bc .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 _eade error ;_fcbdc .MediaBox ,_eade =NewPdfRectangle (*_daec );if _eade !=nil {return nil ,_eade ;};};if _dgedc :=_eeggc .Get ("\u0043r\u006f\u0070\u0042\u006f\u0078");_dgedc !=nil {_egdgd ,_dcebf :=_cb .GetArray (_dgedc );if !_dcebf {return nil ,_bc .New ("\u0070a\u0067\u0065\u0020\u0043r\u006f\u0070\u0042\u006f\u0078 \u006eo\u0074 \u0061\u006e\u0020\u0061\u0072\u0072\u0061y");};var _adcc error ;_fcbdc .CropBox ,_adcc =NewPdfRectangle (*_egdgd );if _adcc !=nil {return nil ,_adcc ;};};if _dagec :=_eeggc .Get ("\u0042\u006c\u0065\u0065\u0064\u0042\u006f\u0078");_dagec !=nil {_ccbg ,_gfab :=_cb .GetArray (_dagec );if !_gfab {return nil ,_bc .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 _dgbb error ;_fcbdc .BleedBox ,_dgbb =NewPdfRectangle (*_ccbg );if _dgbb !=nil {return nil ,_dgbb ;};};if _bdbfg :=_eeggc .Get ("\u0054r\u0069\u006d\u0042\u006f\u0078");_bdbfg !=nil {_aefge ,_afga :=_cb .GetArray (_bdbfg );if !_afga {return nil ,_bc .New ("\u0070a\u0067\u0065\u0020\u0054r\u0069\u006d\u0042\u006f\u0078 \u006eo\u0074 \u0061\u006e\u0020\u0061\u0072\u0072\u0061y");};var _fbcg error ;_fcbdc .TrimBox ,_fbcg =NewPdfRectangle (*_aefge );if _fbcg !=nil {return nil ,_fbcg ;};};if _fdbdd :=_eeggc .Get ("\u0041\u0072\u0074\u0042\u006f\u0078");_fdbdd !=nil {_gcfed ,_eebc :=_cb .GetArray (_fdbdd );if !_eebc {return nil ,_bc .New ("\u0070a\u0067\u0065\u0020\u0041\u0072\u0074\u0042\u006f\u0078\u0020\u006eo\u0074\u0020\u0061\u006e\u0020\u0061\u0072\u0072\u0061\u0079");};var _cadega error ;_fcbdc .ArtBox ,_cadega =NewPdfRectangle (*_gcfed );if _cadega !=nil {return nil ,_cadega ;};};if _gcbeg :=_eeggc .Get ("\u0042\u006f\u0078C\u006f\u006c\u006f\u0072\u0049\u006e\u0066\u006f");_gcbeg !=nil {_fcbdc .BoxColorInfo =_gcbeg ;};if _dcee :=_eeggc .Get ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073");_dcee !=nil {_fcbdc .Contents =_dcee ;};if _bggf :=_eeggc .Get ("\u0052\u006f\u0074\u0061\u0074\u0065");_bggf !=nil {_ffcce ,_fbcef :=_cb .GetInt (_bggf );if !_fbcef {return nil ,_bc .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");};_babee :=int64 (*_ffcce );_fcbdc .Rotate =&_babee ;};if _dgac :=_eeggc .Get ("\u0047\u0072\u006fu\u0070");_dgac !=nil {_fcbdc .Group =_dgac ;};if _gefg :=_eeggc .Get ("\u0054\u0068\u0075m\u0062");_gefg !=nil {_fcbdc .Thumb =_gefg ;};if _agfbcg :=_eeggc .Get ("\u0042");_agfbcg !=nil {_fcbdc .B =_agfbcg ;};if _gcbec :=_eeggc .Get ("\u0044\u0075\u0072");_gcbec !=nil {_fcbdc .Dur =_gcbec ;};if _fbfaf :=_eeggc .Get ("\u0054\u0072\u0061n\u0073");_fbfaf !=nil {_fcbdc .Trans =_fbfaf ;};if _fgcec :=_eeggc .Get ("\u0041\u0041");_fgcec !=nil {_fcbdc .AA =_fgcec ;};if _fgcdc :=_eeggc .Get ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");_fgcdc !=nil {_fcbdc .Metadata =_fgcdc ;};if _dcfd :=_eeggc .Get ("\u0050i\u0065\u0063\u0065\u0049\u006e\u0066o");_dcfd !=nil {_fcbdc .PieceInfo =_dcfd ;};if _fbabaa :=_eeggc .Get ("\u0053\u0074\u0072\u0075\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074\u0073");_fbabaa !=nil {_fcbdc .StructParents =_fbabaa ;};if _bbbea :=_eeggc .Get ("\u0049\u0044");_bbbea !=nil {_fcbdc .ID =_bbbea ;};if _cdcdc :=_eeggc .Get ("\u0050\u005a");_cdcdc !=nil {_fcbdc .PZ =_cdcdc ;};if _efcdf :=_eeggc .Get ("\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006fn\u0049\u006e\u0066\u006f");_efcdf !=nil {_fcbdc .SeparationInfo =_efcdf ;};if _cdcad :=_eeggc .Get ("\u0054\u0061\u0062\u0073");_cdcad !=nil {_fcbdc .Tabs =_cdcad ;};if _gbabg :=_eeggc .Get ("T\u0065m\u0070\u006c\u0061\u0074\u0065\u0049\u006e\u0073t\u0061\u006e\u0074\u0069at\u0065\u0064");_gbabg !=nil {_fcbdc .TemplateInstantiated =_gbabg ;};if _bgbfe :=_eeggc .Get ("\u0050r\u0065\u0073\u0053\u0074\u0065\u0070s");_bgbfe !=nil {_fcbdc .PresSteps =_bgbfe ;};if _cfcbfd :=_eeggc .Get ("\u0055\u0073\u0065\u0072\u0055\u006e\u0069\u0074");_cfcbfd !=nil {_fcbdc .UserUnit =_cfcbfd ;};if _bfbdec :=_eeggc .Get ("\u0056\u0050");_bfbdec !=nil {_fcbdc .VP =_bfbdec ;};if _cbgfe :=_eeggc .Get ("\u0041\u006e\u006e\u006f\u0074\u0073");_cbgfe !=nil {_fcbdc .Annots =_cbgfe ;};_fcbdc ._fffgc =_fadbg ;return _fcbdc ,nil ;};
// PdfAnnotationPopup represents Popup annotations.
// (Section 12.5.6.14).
type PdfAnnotationPopup struct{*PdfAnnotation ;Parent _cb .PdfObject ;Open _cb .PdfObject ;};
// NewPdfActionRendition returns a new "rendition" action.
func NewPdfActionRendition ()*PdfActionRendition {_edc :=NewPdfAction ();_agc :=&PdfActionRendition {};_agc .PdfAction =_edc ;_edc .SetContext (_agc );return _agc ;};
// ColorAt returns the color of the image pixel specified by the x and y coordinates.
func (_cfeba *Image )ColorAt (x ,y int )(_db .Color ,error ){_edcab :=_ac .BytesPerLine (int (_cfeba .Width ),int (_cfeba .BitsPerComponent ),_cfeba .ColorComponents );switch _cfeba .ColorComponents {case 1:return _ac .ColorAtGrayscale (x ,y ,int (_cfeba .BitsPerComponent ),_edcab ,_cfeba .Data ,_cfeba ._cceeg );case 3:return _ac .ColorAtNRGBA (x ,y ,int (_cfeba .Width ),_edcab ,int (_cfeba .BitsPerComponent ),_cfeba .Data ,_cfeba ._ddffb ,_cfeba ._cceeg );case 4:return _ac .ColorAtCMYK (x ,y ,int (_cfeba .Width ),_cfeba .Data ,_cfeba ._cceeg );};_dbe .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",_cfeba .ColorComponents ,_cfeba .BitsPerComponent );return nil ,_bc .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");};
// 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 _cb .StreamEncoder )(*XObjectImage ,error ){if encoder ==nil {encoder =_cb .NewRawEncoder ();};encoder .UpdateParams (img .GetParamsDict ());_cfcac ,_faagfd :=encoder .EncodeBytes (img .Data );if _faagfd !=nil {_dbe .Log .Debug ("\u0045\u0072\u0072or\u0020\u0077\u0069\u0074\u0068\u0020\u0065\u006e\u0063\u006f\u0064\u0069\u006e\u0067\u003a\u0020\u0025\u0076",_faagfd );return nil ,_faagfd ;};_bcfeg :=NewXObjectImage ();_eceag :=img .Width ;_bdfdg :=img .Height ;_bcfeg .Width =&_eceag ;_bcfeg .Height =&_bdfdg ;_gfbab :=img .BitsPerComponent ;_bcfeg .BitsPerComponent =&_gfbab ;_bcfeg .Filter =encoder ;_bcfeg .Stream =_cfcac ;if cs ==nil {if img .ColorComponents ==1{_bcfeg .ColorSpace =NewPdfColorspaceDeviceGray ();}else if img .ColorComponents ==3{_bcfeg .ColorSpace =NewPdfColorspaceDeviceRGB ();}else if img .ColorComponents ==4{_bcfeg .ColorSpace =NewPdfColorspaceDeviceCMYK ();}else {return nil ,_bc .New ("c\u006fl\u006f\u0072\u0073\u0070\u0061\u0063\u0065\u0020u\u006e\u0064\u0065\u0066in\u0065\u0064");};}else {_bcfeg .ColorSpace =cs ;};if len (img ._ddffb )!=0{_gada :=NewXObjectImage ();_gada .Filter =encoder ;_eefaea ,_agef :=encoder .EncodeBytes (img ._ddffb );if _agef !=nil {_dbe .Log .Debug ("\u0045\u0072\u0072or\u0020\u0077\u0069\u0074\u0068\u0020\u0065\u006e\u0063\u006f\u0064\u0069\u006e\u0067\u003a\u0020\u0025\u0076",_agef );return nil ,_agef ;};_gada .Stream =_eefaea ;_gada .BitsPerComponent =_bcfeg .BitsPerComponent ;_gada .Width =&img .Width ;_gada .Height =&img .Height ;_gada .ColorSpace =NewPdfColorspaceDeviceGray ();_bcfeg .SMask =_gada .ToPdfObject ();}else {_bcfeg .SMask =xobjIn .SMask ;_bcfeg .ImageMask =xobjIn .ImageMask ;if _bcfeg .ColorSpace .GetNumComponents ()==1{_fefad (_bcfeg );};};return _bcfeg ,nil ;};
// PdfColorCalGray represents a CalGray colorspace.
type PdfColorCalGray float64 ;var _gded =_e .MustCompile ("\u005b\\\u006e\u005c\u0072\u005d\u002b");type crossReference struct{Type int ;
// Type 1
Offset int64 ;Generation int64 ;
// Type 2
ObjectNumber int ;Index int ;};
// NewPdfPage returns a new PDF page.
func NewPdfPage ()*PdfPage {_ecbe :=PdfPage {};_ecbe ._acaa =_cb .MakeDict ();_ecbe .Resources =NewPdfPageResources ();_fbaa :=_cb .PdfIndirectObject {};_fbaa .PdfObject =_ecbe ._acaa ;_ecbe ._adbf =&_fbaa ;return &_ecbe ;};
// NewPdfColorspaceDeviceRGB returns a new RGB colorspace object.
func NewPdfColorspaceDeviceRGB ()*PdfColorspaceDeviceRGB {return &PdfColorspaceDeviceRGB {}};
// ToPdfObject implements interface PdfModel.
func (_cebff *PdfAnnotationScreen )ToPdfObject ()_cb .PdfObject {_cebff .PdfAnnotation .ToPdfObject ();_aef :=_cebff ._efd ;_fecf :=_aef .PdfObject .(*_cb .PdfObjectDictionary );_fecf .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_cb .MakeName ("\u0053\u0063\u0072\u0065\u0065\u006e"));_fecf .SetIfNotNil ("\u0054",_cebff .T );_fecf .SetIfNotNil ("\u004d\u004b",_cebff .MK );_fecf .SetIfNotNil ("\u0041",_cebff .A );_fecf .SetIfNotNil ("\u0041\u0041",_cebff .AA );return _aef ;};
// C returns the value of the cyan component of the color.
func (_cced *PdfColorDeviceCMYK )C ()float64 {return float64 (_cced [0])};
// EncryptOptions represents encryption options for an output PDF.
type EncryptOptions struct{Permissions _gg .Permissions ;Algorithm EncryptionAlgorithm ;};func _fefad (_gcdab *XObjectImage )error {if _gcdab .SMask ==nil {return nil ;};_cgebb ,_ddgfc :=_gcdab .SMask .(*_cb .PdfObjectStream );if !_ddgfc {_dbe .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 _cb .ErrTypeError ;};_egfg :=_cgebb .PdfObjectDictionary ;_cbgbe :=_egfg .Get ("\u004d\u0061\u0074t\u0065");if _cbgbe ==nil {return nil ;};_gbfbb ,_acdcfcf :=_dgabd (_cbgbe .(*_cb .PdfObjectArray ));if _acdcfcf !=nil {return _acdcfcf ;};_dbeee :=_cb .MakeArrayFromFloats ([]float64 {_gbfbb });_egfg .SetIfNotNil ("\u004d\u0061\u0074t\u0065",_dbeee );return nil ;};
// NewPdfColorspaceFromPdfObject loads a PdfColorspace from a PdfObject. Returns an error if there is
// a failure in loading.
func NewPdfColorspaceFromPdfObject (obj _cb .PdfObject )(PdfColorspace ,error ){var _dgfb *_cb .PdfIndirectObject ;var _edee *_cb .PdfObjectName ;var _babaa *_cb .PdfObjectArray ;if _afa ,_geag :=obj .(*_cb .PdfIndirectObject );_geag {_dgfb =_afa ;};obj =_cb .TraceToDirectObject (obj );switch _agcc :=obj .(type ){case *_cb .PdfObjectArray :_babaa =_agcc ;case *_cb .PdfObjectName :_edee =_agcc ;};if _edee !=nil {switch *_edee {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:_dbe .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",*_edee );return nil ,_ccef ;};};if _babaa !=nil &&_babaa .Len ()> 0{var _gbff _cb .PdfObject =_dgfb ;if _dgfb ==nil {_gbff =_babaa ;};if _adbc ,_ggc :=_cb .GetName (_babaa .Get (0));_ggc {switch _adbc .String (){case "\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079":if _babaa .Len ()==1{return NewPdfColorspaceDeviceGray (),nil ;};case "\u0044e\u0076\u0069\u0063\u0065\u0052\u0047B":if _babaa .Len ()==1{return NewPdfColorspaceDeviceRGB (),nil ;};case "\u0044\u0065\u0076\u0069\u0063\u0065\u0043\u004d\u0059\u004b":if _babaa .Len ()==1{return NewPdfColorspaceDeviceCMYK (),nil ;};case "\u0043a\u006c\u0047\u0072\u0061\u0079":return _fccb (_gbff );case "\u0043\u0061\u006c\u0052\u0047\u0042":return _egeda (_gbff );case "\u004c\u0061\u0062":return _caag (_gbff );case "\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064":return _aadc (_gbff );case "\u0050a\u0074\u0074\u0065\u0072\u006e":return _ccd (_gbff );case "\u0049n\u0064\u0065\u0078\u0065\u0064":return _fgaa (_gbff );case "\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e":return _fgfdf (_gbff );case "\u0044e\u0076\u0069\u0063\u0065\u004e":return _bgbfg (_gbff );default:_dbe .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",*_adbc );};};};_dbe .Log .Debug ("\u0050\u0044\u0046\u0020\u0046i\u006c\u0065\u0020\u0045\u0072\u0072\u006f\u0072\u003a\u0020\u0043\u006f\u006co\u0072\u0073\u0070\u0061\u0063\u0065\u0020\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072\u003a\u0020\u0025\u0073",obj .String ());return nil ,ErrTypeCheck ;};func (_cgg *PdfReader )newPdfAnnotationProjectionFromDict (_fead *_cb .PdfObjectDictionary )(*PdfAnnotationProjection ,error ){_cbbb :=&PdfAnnotationProjection {};_caf ,_ccee :=_cgg .newPdfAnnotationMarkupFromDict (_fead );if _ccee !=nil {return nil ,_ccee ;};_cbbb .PdfAnnotationMarkup =_caf ;return _cbbb ,nil ;};
// GetContainingPdfObject returns the container of the shading object (indirect object).
func (_ggbc *PdfShading )GetContainingPdfObject ()_cb .PdfObject {return _ggbc ._gfdg };
// GetPrimitiveFromModel returns the primitive object corresponding to the input `model`.
func (_eaece *modelManager )GetPrimitiveFromModel (model PdfModel )_cb .PdfObject {_deecb ,_fcce :=_eaece ._geed [model ];if !_fcce {return nil ;};return _deecb ;};func (_fbgb *pdfFontType0 )subsetRegistered ()error {_fgggg ,_cagb :=_fbgb .DescendantFont ._cdfe .(*pdfCIDFontType2 );if !_cagb {_dbe .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",_fbgb .DescendantFont );return nil ;};if _fgggg ==nil {return nil ;};if _fgggg ._bgbb ==nil {_dbe .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 _fbgb ._ggdg ==nil {_dbe .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 ;};_cbdff ,_cagb :=_cb .GetStream (_fgggg ._bgbb .FontFile2 );if !_cagb {_dbe .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 _bc .New ("\u0066\u006f\u006e\u0074fi\u006c\u0065\u0032\u0020\u006e\u006f\u0074\u0020\u0066\u006f\u0075\u006e\u0064");};_edeg ,_gbbb :=_cb .DecodeStream (_cbdff );if _gbbb !=nil {_dbe .Log .Debug ("\u0044\u0065c\u006f\u0064\u0065 \u0065\u0072\u0072\u006f\u0072\u003a\u0020\u0025\u0076",_gbbb );return _gbbb ;};_cfdea ,_gbbb :=_ae .Parse (_bbb .NewReader (_edeg ));if _gbbb !=nil {_dbe .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 (_cbdff .Stream ));return _gbbb ;};var _bgcb []rune ;var _debf *_ae .Font ;switch _deea :=_fbgb ._ggdg .(type ){case *_ccb .TrueTypeFontEncoder :_bgcb =_deea .RegisteredRunes ();_debf ,_gbbb =_cfdea .SubsetKeepRunes (_bgcb );if _gbbb !=nil {_dbe .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_gbbb );return _gbbb ;};_deea .SubsetRegistered ();case *_ccb .IdentityEncoder :_bgcb =_deea .RegisteredRunes ();_fdged :=make ([]_ae .GlyphIndex ,len (_bgcb ));for _debc ,_dbee :=range _bgcb {_fdged [_debc ]=_ae .GlyphIndex (_dbee );};_debf ,_gbbb =_cfdea .SubsetKeepIndices (_fdged );if _gbbb !=nil {_dbe .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_gbbb );return _gbbb ;};case _ccb .SimpleEncoder :_dadbg :=_deea .Charcodes ();for _ ,_cfcc :=range _dadbg {_ecdd ,_agdad :=_deea .CharcodeToRune (_cfcc );if !_agdad {_dbe .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",_cfcc );continue ;};_bgcb =append (_bgcb ,_ecdd );};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",_fbgb ._ggdg );};var _bbadf _bbb .Buffer ;_gbbb =_debf .Write (&_bbadf );if _gbbb !=nil {_dbe .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_gbbb );return _gbbb ;};if _fbgb ._agag !=nil {_gbcc :=make (map[_gb .CharCode ]rune ,len (_bgcb ));for _ ,_ddgb :=range _bgcb {_fddfd ,_gabf :=_fbgb ._ggdg .RuneToCharcode (_ddgb );if !_gabf {continue ;};_gbcc [_gb .CharCode (_fddfd )]=_ddgb ;};_fbgb ._agag =_gb .NewToUnicodeCMap (_gbcc );};_cbdff ,_gbbb =_cb .MakeStream (_bbadf .Bytes (),_cb .NewFlateEncoder ());if _gbbb !=nil {_dbe .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_gbbb );return _gbbb ;};_cbdff .Set ("\u004ce\u006e\u0067\u0074\u0068\u0031",_cb .MakeInteger (int64 (_bbadf .Len ())));if _caagd ,_egef :=_cb .GetStream (_fgggg ._bgbb .FontFile2 );_egef {*_caagd =*_cbdff ;}else {_fgggg ._bgbb .FontFile2 =_cbdff ;};_fggga :=_dbdfa ();if len (_fbgb ._babff )> 0{_fbgb ._babff =_gfdc (_fbgb ._babff ,_fggga );};if len (_fgggg ._babff )> 0{_fgggg ._babff =_gfdc (_fgggg ._babff ,_fggga );};if len (_fbgb ._ecaeb )> 0{_fbgb ._ecaeb =_gfdc (_fbgb ._ecaeb ,_fggga );};if _fgggg ._bgbb !=nil {_daabg ,_geaaa :=_cb .GetName (_fgggg ._bgbb .FontName );if _geaaa &&len (_daabg .String ())> 0{_baedd :=_gfdc (_daabg .String (),_fggga );_fgggg ._bgbb .FontName =_cb .MakeName (_baedd );};};return nil ;};
// SetPdfAuthor sets the Author attribute of the output PDF.
func SetPdfAuthor (author string ){_gbga =author };func (_fbbc *PdfReader )newPdfActionHideFromDict (_ffa *_cb .PdfObjectDictionary )(*PdfActionHide ,error ){return &PdfActionHide {T :_ffa .Get ("\u0054"),H :_ffa .Get ("\u0048")},nil ;};
// PdfAnnotation3D represents 3D annotations.
// (Section 13.6.2).
type PdfAnnotation3D struct{*PdfAnnotation ;T3DD _cb .PdfObject ;T3DV _cb .PdfObject ;T3DA _cb .PdfObject ;T3DI _cb .PdfObject ;T3DB _cb .PdfObject ;};func (_becaf *PdfAcroForm )signatureFields ()[]*PdfFieldSignature {var _cgab []*PdfFieldSignature ;for _ ,_ebda :=range _becaf .AllFields (){switch _fcdbe :=_ebda .GetContext ().(type ){case *PdfFieldSignature :_eaec :=_fcdbe ;_cgab =append (_cgab ,_eaec );};};return _cgab ;};
// PdfAnnotationStamp represents Stamp annotations.
// (Section 12.5.6.12).
type PdfAnnotationStamp struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Name _cb .PdfObject ;};
// PdfAcroForm represents the AcroForm dictionary used for representation of form data in PDF.
type PdfAcroForm struct{Fields *[]*PdfField ;NeedAppearances *_cb .PdfObjectBool ;SigFlags *_cb .PdfObjectInteger ;CO *_cb .PdfObjectArray ;DR *PdfPageResources ;DA *_cb .PdfObjectString ;Q *_cb .PdfObjectInteger ;XFA _cb .PdfObject ;_dfgeb *_cb .PdfIndirectObject ;};
// PdfAnnotationProjection represents Projection annotations.
type PdfAnnotationProjection struct{*PdfAnnotation ;*PdfAnnotationMarkup ;};
// PdfAnnotationFreeText represents FreeText annotations.
// (Section 12.5.6.6).
type PdfAnnotationFreeText struct{*PdfAnnotation ;*PdfAnnotationMarkup ;DA _cb .PdfObject ;Q _cb .PdfObject ;RC _cb .PdfObject ;DS _cb .PdfObject ;CL _cb .PdfObject ;IT _cb .PdfObject ;BE _cb .PdfObject ;RD _cb .PdfObject ;BS _cb .PdfObject ;LE _cb .PdfObject ;};
// GetEncryptionMethod returns a descriptive information string about the encryption method used.
func (_afffb *PdfReader )GetEncryptionMethod ()string {_aegef :=_afffb ._gfecg .GetCrypter ();return _aegef .String ();};
// PdfFieldButton represents a button field which includes push buttons, checkboxes, and radio buttons.
type PdfFieldButton struct{*PdfField ;Opt *_cb .PdfObjectArray ;};
// GetXObjectByName gets XObject by name.
func (_cebb *PdfPage )GetXObjectByName (name _cb .PdfObjectName )(_cb .PdfObject ,bool ){_egab ,_abeee :=_cebb .Resources .XObject .(*_cb .PdfObjectDictionary );if !_abeee {return nil ,false ;};if _gaagb :=_egab .Get (name );_gaagb !=nil {return _gaagb ,true ;};return nil ,false ;};func _ccd (_cbda _cb .PdfObject )(*PdfColorspaceSpecialPattern ,error ){_dbe .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",_cbda .String (),_cbda );_gcab :=NewPdfColorspaceSpecialPattern ();if _dgaga ,_adbdg :=_cbda .(*_cb .PdfIndirectObject );_adbdg {_gcab ._beef =_dgaga ;};_cbda =_cb .TraceToDirectObject (_cbda );if _fedd ,_ffdb :=_cbda .(*_cb .PdfObjectName );_ffdb {if *_fedd !="\u0050a\u0074\u0074\u0065\u0072\u006e"{return nil ,_c .Errorf ("\u0069\u006e\u0076a\u006c\u0069\u0064\u0020\u006e\u0061\u006d\u0065");};return _gcab ,nil ;};_fdgfg ,_fgcb :=_cbda .(*_cb .PdfObjectArray );if !_fgcb {_dbe .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",_cbda );return nil ,_c .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0050\u0061\u0074\u0074e\u0072n\u0020C\u0053\u0020\u006f\u0062\u006a\u0065\u0063t");};if _fdgfg .Len ()!=1&&_fdgfg .Len ()!=2{_dbe .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",_fdgfg );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");};_cbda =_fdgfg .Get (0);if _bgge ,_gced :=_cbda .(*_cb .PdfObjectName );_gced {if *_bgge !="\u0050a\u0074\u0074\u0065\u0072\u006e"{_dbe .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",_bgge );return nil ,_c .Errorf ("\u0069\u006e\u0076a\u006c\u0069\u0064\u0020\u006e\u0061\u006d\u0065");};};if _fdgfg .Len ()> 1{_cbda =_fdgfg .Get (1);_cbda =_cb .TraceToDirectObject (_cbda );_acb ,_dfgc :=NewPdfColorspaceFromPdfObject (_cbda );if _dfgc !=nil {return nil ,_dfgc ;};_gcab .UnderlyingCS =_acb ;};_dbe .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",_gcab .UnderlyingCS );return _gcab ,nil ;};
// GetNumComponents returns the number of color components of the colorspace device.
// Returns 3 for a Lab device.
func (_aafc *PdfColorspaceLab )GetNumComponents ()int {return 3};
// GetXObjectFormByName returns the XObjectForm with the specified name from the
// page resources, if it exists.
func (_bbdce *PdfPageResources )GetXObjectFormByName (keyName _cb .PdfObjectName )(*XObjectForm ,error ){_egae ,_edfc :=_bbdce .GetXObjectByName (keyName );if _egae ==nil {return nil ,nil ;};if _edfc !=XObjectTypeForm {return nil ,_bc .New ("\u006e\u006f\u0074\u0020\u0061\u0020\u0066\u006f\u0072\u006d");};_cfce ,_aggcb :=NewXObjectFormFromStream (_egae );if _aggcb !=nil {return nil ,_aggcb ;};return _cfce ,nil ;};
// M returns the value of the magenta component of the color.
func (_cbag *PdfColorDeviceCMYK )M ()float64 {return float64 (_cbag [1])};
// NewPdfColorCalRGB returns a new CalRBG color.
func NewPdfColorCalRGB (a ,b ,c float64 )*PdfColorCalRGB {_fbff :=PdfColorCalRGB {a ,b ,c };return &_fbff ;};
// GetNumComponents returns the number of input color components, i.e. that are input to the tint transform.
func (_bgdd *PdfColorspaceDeviceN )GetNumComponents ()int {return _bgdd .ColorantNames .Len ()};
// PdfShadingType2 is an Axial shading.
type PdfShadingType2 struct{*PdfShading ;Coords *_cb .PdfObjectArray ;Domain *_cb .PdfObjectArray ;Function []PdfFunction ;Extend *_cb .PdfObjectArray ;};
// 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 (_fccd *PdfColorspaceCalRGB )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=3{return nil ,_bc .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_afceg :=vals [0];if _afceg < 0.0||_afceg > 1.0{return nil ,_bc .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_cdcd :=vals [1];if _cdcd < 0.0||_cdcd > 1.0{return nil ,_bc .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_gccc :=vals [2];if _gccc < 0.0||_gccc > 1.0{return nil ,_bc .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_fbbbb :=NewPdfColorCalRGB (_afceg ,_cdcd ,_gccc );return _fbbbb ,nil ;};
// NewPdfAnnotationSound returns a new sound annotation.
func NewPdfAnnotationSound ()*PdfAnnotationSound {_fab :=NewPdfAnnotation ();_ege :=&PdfAnnotationSound {};_ege .PdfAnnotation =_fab ;_ege .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_fab .SetContext (_ege );return _ege ;};
// ToPdfObject implements interface PdfModel.
func (_edb *PdfAnnotationWidget )ToPdfObject ()_cb .PdfObject {_edb .PdfAnnotation .ToPdfObject ();_cdaa :=_edb ._efd ;_afcea :=_cdaa .PdfObject .(*_cb .PdfObjectDictionary );if _edb ._dff {return _cdaa ;};_edb ._dff =true ;_afcea .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_cb .MakeName ("\u0057\u0069\u0064\u0067\u0065\u0074"));_afcea .SetIfNotNil ("\u0048",_edb .H );_afcea .SetIfNotNil ("\u004d\u004b",_edb .MK );_afcea .SetIfNotNil ("\u0041",_edb .A );_afcea .SetIfNotNil ("\u0041\u0041",_edb .AA );_afcea .SetIfNotNil ("\u0042\u0053",_edb .BS );_dgag :=_edb .Parent ;if _edb ._bdcc !=nil {if _edb ._bdcc ._addef ==_edb ._efd {_edb ._bdcc .ToPdfObject ();};_dgag =_edb ._bdcc .GetContainingPdfObject ();};if _dgag !=_cdaa {_afcea .SetIfNotNil ("\u0050\u0061\u0072\u0065\u006e\u0074",_dgag );};_edb ._dff =false ;return _cdaa ;};func (_eaae *fontFile )loadFromSegments (_dabec ,_cdda []byte )error {_dbe .Log .Trace ("\u006c\u006f\u0061dF\u0072\u006f\u006d\u0053\u0065\u0067\u006d\u0065\u006e\u0074\u0073\u003a\u0020\u0025\u0064\u0020\u0025\u0064",len (_dabec ),len (_cdda ));_fcgg :=_eaae .parseASCIIPart (_dabec );if _fcgg !=nil {return _fcgg ;};_dbe .Log .Trace ("f\u006f\u006e\u0074\u0066\u0069\u006c\u0065\u003d\u0025\u0073",_eaae );if len (_cdda )==0{return nil ;};_dbe .Log .Trace ("f\u006f\u006e\u0074\u0066\u0069\u006c\u0065\u003d\u0025\u0073",_eaae );return nil ;};
// ToPdfObject recursively builds the Outline tree PDF object.
func (_fdgede *PdfOutline )ToPdfObject ()_cb .PdfObject {_fcdaag :=_fdgede ._ffbfg ;_aafa :=_fcdaag .PdfObject .(*_cb .PdfObjectDictionary );_aafa .Set ("\u0054\u0079\u0070\u0065",_cb .MakeName ("\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0073"));if _fdgede .First !=nil {_aafa .Set ("\u0046\u0069\u0072s\u0074",_fdgede .First .ToPdfObject ());};if _fdgede .Last !=nil {_aafa .Set ("\u004c\u0061\u0073\u0074",_fdgede .Last .GetContext ().GetContainingPdfObject ());};if _fdgede .Parent !=nil {_aafa .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_fdgede .Parent .GetContext ().GetContainingPdfObject ());};if _fdgede .Count !=nil {_aafa .Set ("\u0043\u006f\u0075n\u0074",_cb .MakeInteger (*_fdgede .Count ));};return _fcdaag ;};
// PdfAnnotationFileAttachment represents FileAttachment annotations.
// (Section 12.5.6.15).
type PdfAnnotationFileAttachment struct{*PdfAnnotation ;*PdfAnnotationMarkup ;FS _cb .PdfObject ;Name _cb .PdfObject ;};
// SetPdfCreator sets the Creator attribute of the output PDF.
func SetPdfCreator (creator string ){_adebc =creator };
// ColorFromFloats returns a new PdfColor based on input color components.
func (_cfea *PdfColorspaceDeviceN )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=_cfea .GetNumComponents (){return nil ,_bc .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_cabcd ,_egbfg :=_cfea .TintTransform .Evaluate (vals );if _egbfg !=nil {return nil ,_egbfg ;};_dacc ,_egbfg :=_cfea .AlternateSpace .ColorFromFloats (_cabcd );if _egbfg !=nil {return nil ,_egbfg ;};return _dacc ,nil ;};
// NewPdfColorDeviceRGB returns a new PdfColorDeviceRGB based on the r,g,b component values.
func NewPdfColorDeviceRGB (r ,g ,b float64 )*PdfColorDeviceRGB {_ccega :=PdfColorDeviceRGB {r ,g ,b };return &_ccega ;};
// ToPdfObject returns colorspace in a PDF object format [name stream]
func (_cdef *PdfColorspaceICCBased )ToPdfObject ()_cb .PdfObject {_efgb :=&_cb .PdfObjectArray {};_efgb .Append (_cb .MakeName ("\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064"));var _afeb *_cb .PdfObjectStream ;if _cdef ._cfade !=nil {_afeb =_cdef ._cfade ;}else {_afeb =&_cb .PdfObjectStream {};};_dfdc :=_cb .MakeDict ();_dfdc .Set ("\u004e",_cb .MakeInteger (int64 (_cdef .N )));if _cdef .Alternate !=nil {_dfdc .Set ("\u0041l\u0074\u0065\u0072\u006e\u0061\u0074e",_cdef .Alternate .ToPdfObject ());};if _cdef .Metadata !=nil {_dfdc .Set ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061",_cdef .Metadata );};if _cdef .Range !=nil {var _abba []_cb .PdfObject ;for _ ,_babgf :=range _cdef .Range {_abba =append (_abba ,_cb .MakeFloat (_babgf ));};_dfdc .Set ("\u0052\u0061\u006eg\u0065",_cb .MakeArray (_abba ...));};_dfdc .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_cb .MakeInteger (int64 (len (_cdef .Data ))));_afeb .Stream =_cdef .Data ;_afeb .PdfObjectDictionary =_dfdc ;_efgb .Append (_afeb );if _cdef ._ebfab !=nil {_cdef ._ebfab .PdfObject =_efgb ;return _cdef ._ebfab ;};return _efgb ;};
// GetPatternByName gets the pattern specified by keyName. Returns nil if not existing.
// The bool flag indicated whether it was found or not.
func (_afcfe *PdfPageResources )GetPatternByName (keyName _cb .PdfObjectName )(*PdfPattern ,bool ){if _afcfe .Pattern ==nil {return nil ,false ;};_fcfda ,_ccggf :=_cb .TraceToDirectObject (_afcfe .Pattern ).(*_cb .PdfObjectDictionary );if !_ccggf {_dbe .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",_afcfe .Pattern );return nil ,false ;};if _gcecf :=_fcfda .Get (keyName );_gcecf !=nil {_ffgd ,_afagc :=_begbc (_gcecf );if _afagc !=nil {_dbe .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",_afagc );return nil ,false ;};return _ffgd ,true ;};return nil ,false ;};
// GetOCProperties returns the optional content properties PdfObject.
func (_cafd *PdfReader )GetOCProperties ()(_cb .PdfObject ,error ){_agdaa :=_cafd ._fccgb ;_gdadb :=_agdaa .Get ("\u004f\u0043\u0050r\u006f\u0070\u0065\u0072\u0074\u0069\u0065\u0073");_gdadb =_cb .ResolveReference (_gdadb );if !_cafd ._cbfab {_baac :=_cafd .traverseObjectData (_gdadb );if _baac !=nil {return nil ,_baac ;};};return _gdadb ,nil ;};func _eabf (_bfgbce string )(map[_ccb .CharCode ]_ccb .GlyphName ,error ){_daggf :=_fe .Split (_bfgbce ,"\u000a");_eggc :=make (map[_ccb .CharCode ]_ccb .GlyphName );for _ ,_edae :=range _daggf {_adcf :=_caca .FindStringSubmatch (_edae );if _adcf ==nil {continue ;};_fagb ,_abgd :=_adcf [1],_adcf [2];_abef ,_ebfabe :=_eb .Atoi (_fagb );if _ebfabe !=nil {_dbe .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",_edae );return nil ,_cb .ErrTypeError ;};_eggc [_ccb .CharCode (_abef )]=_ccb .GlyphName (_abgd );};_dbe .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",_eggc );return _eggc ,nil ;};func _ecdg (_ecddf *_ac .ImageBase )(_eeeeg Image ){_eeeeg .Width =int64 (_ecddf .Width );_eeeeg .Height =int64 (_ecddf .Height );_eeeeg .BitsPerComponent =int64 (_ecddf .BitsPerComponent );_eeeeg .ColorComponents =_ecddf .ColorComponents ;_eeeeg .Data =_ecddf .Data ;_eeeeg ._cceeg =_ecddf .Decode ;_eeeeg ._ddffb =_ecddf .Alpha ;return _eeeeg ;};
// PdfFont represents an underlying font structure which can be of type:
// - Type0
// - Type1
// - TrueType
// etc.
type PdfFont struct{_cdfe pdfFont };
// ToPdfObject implements interface PdfModel.
func (_gdd *PdfAnnotationRedact )ToPdfObject ()_cb .PdfObject {_gdd .PdfAnnotation .ToPdfObject ();_deac :=_gdd ._efd ;_gabb :=_deac .PdfObject .(*_cb .PdfObjectDictionary );_gdd .PdfAnnotationMarkup .appendToPdfDictionary (_gabb );_gabb .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_cb .MakeName ("\u0052\u0065\u0064\u0061\u0063\u0074"));_gabb .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_gdd .QuadPoints );_gabb .SetIfNotNil ("\u0049\u0043",_gdd .IC );_gabb .SetIfNotNil ("\u0052\u004f",_gdd .RO );_gabb .SetIfNotNil ("O\u0076\u0065\u0072\u006c\u0061\u0079\u0054\u0065\u0078\u0074",_gdd .OverlayText );_gabb .SetIfNotNil ("\u0052\u0065\u0070\u0065\u0061\u0074",_gdd .Repeat );_gabb .SetIfNotNil ("\u0044\u0041",_gdd .DA );_gabb .SetIfNotNil ("\u0051",_gdd .Q );return _deac ;};
// ColorFromPdfObjects returns a new PdfColor based on the input slice of color
// components. The slice should contain a single PdfObjectFloat element.
func (_cebdg *PdfColorspaceSpecialSeparation )ColorFromPdfObjects (objects []_cb .PdfObject )(PdfColor ,error ){if len (objects )!=1{return nil ,_bc .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_gdf ,_bccac :=_cb .GetNumbersAsFloat (objects );if _bccac !=nil {return nil ,_bccac ;};return _cebdg .ColorFromFloats (_gdf );};
// 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 (_deadb *XObjectForm )SetContentStream (content []byte ,encoder _cb .StreamEncoder )error {_gaded :=content ;if encoder ==nil {if _deadb .Filter !=nil {encoder =_deadb .Filter ;}else {encoder =_cb .NewRawEncoder ();};};_eaga ,_fgcgb :=encoder .EncodeBytes (_gaded );if _fgcgb !=nil {return _fgcgb ;};_gaded =_eaga ;_deadb .Stream =_gaded ;_deadb .Filter =encoder ;return nil ;};
// NewPdfPageResources returns a new PdfPageResources object.
func NewPdfPageResources ()*PdfPageResources {_adcdb :=&PdfPageResources {};_adcdb ._eeeegd =_cb .MakeDict ();return _adcdb ;};func _agdccc (_cfbe *_cb .PdfObjectDictionary )(*PdfShadingType3 ,error ){_aabcc :=PdfShadingType3 {};_agdcfg :=_cfbe .Get ("\u0043\u006f\u006f\u0072\u0064\u0073");if _agdcfg ==nil {_dbe .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 ;};_fgaeec ,_cadfd :=_agdcfg .(*_cb .PdfObjectArray );if !_cadfd {_dbe .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",_agdcfg );return nil ,_cb .ErrTypeError ;};if _fgaeec .Len ()!=6{_dbe .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",_fgaeec .Len ());return nil ,ErrInvalidAttribute ;};_aabcc .Coords =_fgaeec ;if _aacge :=_cfbe .Get ("\u0044\u006f\u006d\u0061\u0069\u006e");_aacge !=nil {_aacge =_cb .TraceToDirectObject (_aacge );_dffdf ,_dcagag :=_aacge .(*_cb .PdfObjectArray );if !_dcagag {_dbe .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",_aacge );return nil ,_cb .ErrTypeError ;};_aabcc .Domain =_dffdf ;};_agdcfg =_cfbe .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");if _agdcfg ==nil {_dbe .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 ;};_aabcc .Function =[]PdfFunction {};if _bgbc ,_begd :=_agdcfg .(*_cb .PdfObjectArray );_begd {for _ ,_egcfe :=range _bgbc .Elements (){_cbgdab ,_dacdb :=_abcgd (_egcfe );if _dacdb !=nil {_dbe .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",_dacdb );return nil ,_dacdb ;};_aabcc .Function =append (_aabcc .Function ,_cbgdab );};}else {_gbdc ,_acccfe :=_abcgd (_agdcfg );if _acccfe !=nil {_dbe .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",_acccfe );return nil ,_acccfe ;};_aabcc .Function =append (_aabcc .Function ,_gbdc );};if _bbccga :=_cfbe .Get ("\u0045\u0078\u0074\u0065\u006e\u0064");_bbccga !=nil {_bbccga =_cb .TraceToDirectObject (_bbccga );_cdabe ,_aegbf :=_bbccga .(*_cb .PdfObjectArray );if !_aegbf {_dbe .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",_bbccga );return nil ,_cb .ErrTypeError ;};if _cdabe .Len ()!=2{_dbe .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",_cdabe .Len ());return nil ,ErrInvalidAttribute ;};_aabcc .Extend =_cdabe ;};return &_aabcc ,nil ;};
// PdfFieldChoice represents a choice field which includes scrollable list boxes and combo boxes.
type PdfFieldChoice struct{*PdfField ;Opt *_cb .PdfObjectArray ;TI *_cb .PdfObjectInteger ;I *_cb .PdfObjectArray ;};func _caag (_becd _cb .PdfObject )(*PdfColorspaceLab ,error ){_ggde :=NewPdfColorspaceLab ();if _cbbg ,_gcgd :=_becd .(*_cb .PdfIndirectObject );_gcgd {_ggde ._ddee =_cbbg ;};_becd =_cb .TraceToDirectObject (_becd );_egfc ,_gdg :=_becd .(*_cb .PdfObjectArray );if !_gdg {return nil ,_c .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _egfc .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");};_becd =_cb .TraceToDirectObject (_egfc .Get (0));_ccebc ,_gdg :=_becd .(*_cb .PdfObjectName );if !_gdg {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 *_ccebc !="\u004c\u0061\u0062"{return nil ,_c .Errorf ("n\u006ft\u0020\u0061\u0020\u004c\u0061\u0062\u0020\u0063o\u006c\u006f\u0072\u0073pa\u0063\u0065");};_becd =_cb .TraceToDirectObject (_egfc .Get (1));_befd ,_gdg :=_becd .(*_cb .PdfObjectDictionary );if !_gdg {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");};_becd =_befd .Get ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074");_becd =_cb .TraceToDirectObject (_becd );_aafb ,_gdg :=_becd .(*_cb .PdfObjectArray );if !_gdg {return nil ,_c .Errorf ("\u004c\u0061\u0062\u0020In\u0076\u0061\u006c\u0069\u0064\u0020\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069n\u0074");};if _aafb .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");};_ddbbd ,_agaaa :=_aafb .GetAsFloat64Slice ();if _agaaa !=nil {return nil ,_agaaa ;};_ggde .WhitePoint =_ddbbd ;_becd =_befd .Get ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074");if _becd !=nil {_becd =_cb .TraceToDirectObject (_becd );_gbge ,_fadf :=_becd .(*_cb .PdfObjectArray );if !_fadf {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 _gbge .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");};_gedcb ,_afg :=_gbge .GetAsFloat64Slice ();if _afg !=nil {return nil ,_afg ;};_ggde .BlackPoint =_gedcb ;};_becd =_befd .Get ("\u0052\u0061\u006eg\u0065");if _becd !=nil {_becd =_cb .TraceToDirectObject (_becd );_cfbdd ,_aeceb :=_becd .(*_cb .PdfObjectArray );if !_aeceb {_dbe .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 _cfbdd .Len ()!=4{_dbe .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");};_ebfc ,_cgbg :=_cfbdd .GetAsFloat64Slice ();if _cgbg !=nil {return nil ,_cgbg ;};_ggde .Range =_ebfc ;};return _ggde ,nil ;};
// PdfAnnotationSound represents Sound annotations.
// (Section 12.5.6.16).
type PdfAnnotationSound struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Sound _cb .PdfObject ;Name _cb .PdfObject ;};func (_egbf *PdfReader )newPdfAnnotationPolygonFromDict (_ccfd *_cb .PdfObjectDictionary )(*PdfAnnotationPolygon ,error ){_deab :=PdfAnnotationPolygon {};_eef ,_fddf :=_egbf .newPdfAnnotationMarkupFromDict (_ccfd );if _fddf !=nil {return nil ,_fddf ;};_deab .PdfAnnotationMarkup =_eef ;_deab .Vertices =_ccfd .Get ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073");_deab .LE =_ccfd .Get ("\u004c\u0045");_deab .BS =_ccfd .Get ("\u0042\u0053");_deab .IC =_ccfd .Get ("\u0049\u0043");_deab .BE =_ccfd .Get ("\u0042\u0045");_deab .IT =_ccfd .Get ("\u0049\u0054");_deab .Measure =_ccfd .Get ("\u004de\u0061\u0073\u0075\u0072\u0065");return &_deab ,nil ;};
// NewPdfAction returns an initialized generic PDF action model.
func NewPdfAction ()*PdfAction {_eg :=&PdfAction {};_eg ._fc =_cb .MakeIndirectObject (_cb .MakeDict ());return _eg ;};
// ToPdfOutlineItem returns a low level PdfOutlineItem object,
// based on the current instance.
func (_dbdcb *OutlineItem )ToPdfOutlineItem ()(*PdfOutlineItem ,int64 ){_bafg :=NewPdfOutlineItem ();_bafg .Title =_cb .MakeEncodedString (_dbdcb .Title ,true );_bafg .Dest =_dbdcb .Dest .ToPdfObject ();var _adad []*PdfOutlineItem ;var _ggfdc int64 ;var _gbcb *PdfOutlineItem ;for _ ,_gbged :=range _dbdcb .Entries {_ddfdb ,_fceb :=_gbged .ToPdfOutlineItem ();_ddfdb .Parent =&_bafg .PdfOutlineTreeNode ;if _gbcb !=nil {_gbcb .Next =&_ddfdb .PdfOutlineTreeNode ;_ddfdb .Prev =&_gbcb .PdfOutlineTreeNode ;};_adad =append (_adad ,_ddfdb );_ggfdc +=_fceb ;_gbcb =_ddfdb ;};_gcaeb :=len (_adad );_ggfdc +=int64 (_gcaeb );if _gcaeb > 0{_bafg .First =&_adad [0].PdfOutlineTreeNode ;_bafg .Last =&_adad [_gcaeb -1].PdfOutlineTreeNode ;_bafg .Count =&_ggfdc ;};return _bafg ,_ggfdc ;};
// PdfShadingType4 is a Free-form Gouraud-shaded triangle mesh.
type PdfShadingType4 struct{*PdfShading ;BitsPerCoordinate *_cb .PdfObjectInteger ;BitsPerComponent *_cb .PdfObjectInteger ;BitsPerFlag *_cb .PdfObjectInteger ;Decode *_cb .PdfObjectArray ;Function []PdfFunction ;};
// SetBorderWidth sets the style's border width.
func (_eage *PdfBorderStyle )SetBorderWidth (width float64 ){_eage .W =&width };
// NewPdfAnnotationFreeText returns a new free text annotation.
func NewPdfAnnotationFreeText ()*PdfAnnotationFreeText {_dfa :=NewPdfAnnotation ();_ffb :=&PdfAnnotationFreeText {};_ffb .PdfAnnotation =_dfa ;_ffb .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_dfa .SetContext (_ffb );return _ffb ;};
// Add appends a top level outline item to the outline.
func (_abge *Outline )Add (item *OutlineItem ){_abge .Entries =append (_abge .Entries ,item )};
// GetAllContentStreams gets all the content streams for a page as one string.
func (_ccdeg *PdfPage )GetAllContentStreams ()(string ,error ){_gagfg ,_bcfde :=_ccdeg .GetContentStreams ();if _bcfde !=nil {return "",_bcfde ;};return _fe .Join (_gagfg ,"\u0020"),nil ;};
// ToPdfObject implements interface PdfModel.
func (_caec *PdfAnnotationPolyLine )ToPdfObject ()_cb .PdfObject {_caec .PdfAnnotation .ToPdfObject ();_aaggg :=_caec ._efd ;_bbfe :=_aaggg .PdfObject .(*_cb .PdfObjectDictionary );_caec .PdfAnnotationMarkup .appendToPdfDictionary (_bbfe );_bbfe .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_cb .MakeName ("\u0050\u006f\u006c\u0079\u004c\u0069\u006e\u0065"));_bbfe .SetIfNotNil ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073",_caec .Vertices );_bbfe .SetIfNotNil ("\u004c\u0045",_caec .LE );_bbfe .SetIfNotNil ("\u0042\u0053",_caec .BS );_bbfe .SetIfNotNil ("\u0049\u0043",_caec .IC );_bbfe .SetIfNotNil ("\u0042\u0045",_caec .BE );_bbfe .SetIfNotNil ("\u0049\u0054",_caec .IT );_bbfe .SetIfNotNil ("\u004de\u0061\u0073\u0075\u0072\u0065",_caec .Measure );return _aaggg ;};func (_cccfd fontCommon )coreString ()string {_gbeba :="";if _cccfd ._bgbb !=nil {_gbeba =_cccfd ._bgbb .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",_cccfd ._fbefd ,_cccfd ._babff ,_cccfd ._ecaeb ,_cccfd ._cbgad ,_cccfd ._ccaac !=nil ,_cccfd .fontFlags (),_gbeba );};func (_geae *pdfCIDFontType0 )baseFields ()*fontCommon {return &_geae .fontCommon };
// ValidateSignatures validates digital signatures in the document.
func (_fecge *PdfReader )ValidateSignatures (handlers []SignatureHandler )([]SignatureValidationResult ,error ){if _fecge .AcroForm ==nil {return nil ,nil ;};if _fecge .AcroForm .Fields ==nil {return nil ,nil ;};type sigFieldPair struct{_gaae *PdfSignature ;_fggeb *PdfField ;_fdacc SignatureHandler ;};var _ebede []*sigFieldPair ;for _ ,_bdbg :=range _fecge .AcroForm .AllFields (){if _bdbg .V ==nil {continue ;};if _acff ,_dfegb :=_cb .GetDict (_bdbg .V );_dfegb {if _fffge ,_gefc :=_cb .GetNameVal (_acff .Get ("\u0054\u0079\u0070\u0065"));_gefc &&_fffge =="\u0053\u0069\u0067"{_ffbd ,_abde :=_cb .GetIndirect (_bdbg .V );if !_abde {_dbe .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 ;};_abgbd ,_ffgba :=_fecge .newPdfSignatureFromIndirect (_ffbd );if _ffgba !=nil {return nil ,_ffgba ;};var _eceb SignatureHandler ;for _ ,_acbd :=range handlers {if _acbd .IsApplicable (_abgbd ){_eceb =_acbd ;break ;};};_ebede =append (_ebede ,&sigFieldPair {_gaae :_abgbd ,_fggeb :_bdbg ,_fdacc :_eceb });};};};var _ffgdd []SignatureValidationResult ;for _ ,_baab :=range _ebede {_dffeb :=SignatureValidationResult {IsSigned :true ,Fields :[]*PdfField {_baab ._fggeb }};if _baab ._fdacc ==nil {_dffeb .Errors =append (_dffeb .Errors ,"\u0068a\u006ed\u006c\u0065\u0072\u0020\u006e\u006f\u0074\u0020\u0073\u0065\u0074");_ffgdd =append (_ffgdd ,_dffeb );continue ;};_efdf ,_bfeag :=_baab ._fdacc .NewDigest (_baab ._gaae );if _bfeag !=nil {_dffeb .Errors =append (_dffeb .Errors ,"\u0064\u0069\u0067e\u0073\u0074\u0020\u0065\u0072\u0072\u006f\u0072",_bfeag .Error ());_ffgdd =append (_ffgdd ,_dffeb );continue ;};_cafcc :=_baab ._gaae .ByteRange ;if _cafcc ==nil {_dffeb .Errors =append (_dffeb .Errors ,"\u0042\u0079\u0074\u0065\u0052\u0061\u006e\u0067\u0065\u0020\u006e\u006ft\u0020\u0073\u0065\u0074");_ffgdd =append (_ffgdd ,_dffeb );continue ;};for _degfc :=0;_degfc < _cafcc .Len ();_degfc =_degfc +2{_abffbg ,_ :=_cb .GetNumberAsInt64 (_cafcc .Get (_degfc ));_caeec ,_ :=_cb .GetIntVal (_cafcc .Get (_degfc +1));if _ ,_bbcfa :=_fecge ._cgba .Seek (_abffbg ,_bb .SeekStart );_bbcfa !=nil {return nil ,_bbcfa ;};_afbaeb :=make ([]byte ,_caeec );if _ ,_eedag :=_fecge ._cgba .Read (_afbaeb );_eedag !=nil {return nil ,_eedag ;};_efdf .Write (_afbaeb );};_gcdga ,_bfeag :=_baab ._fdacc .Validate (_baab ._gaae ,_efdf );if _bfeag !=nil {return nil ,_bfeag ;};_gcdga .Name =_baab ._gaae .Name .Decoded ();_gcdga .Reason =_baab ._gaae .Reason .Decoded ();if _baab ._gaae .M !=nil {_eaebe ,_fdfgf :=NewPdfDate (_baab ._gaae .M .String ());if _fdfgf !=nil {_gcdga .Errors =append (_gcdga .Errors ,_fdfgf .Error ());continue ;};_gcdga .Date =_eaebe ;};_gcdga .ContactInfo =_baab ._gaae .ContactInfo .Decoded ();_gcdga .Location =_baab ._gaae .Location .Decoded ();_gcdga .Fields =_dffeb .Fields ;_ffgdd =append (_ffgdd ,_gcdga );};return _ffgdd ,nil ;};var _cebffbc ="";
// ToPdfObject implements interface PdfModel.
func (_effa *PdfAnnotationProjection )ToPdfObject ()_cb .PdfObject {_effa .PdfAnnotation .ToPdfObject ();_dbgag :=_effa ._efd ;_ddcb :=_dbgag .PdfObject .(*_cb .PdfObjectDictionary );_effa .PdfAnnotationMarkup .appendToPdfDictionary (_ddcb );return _dbgag ;};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";);
// PdfAnnotationSquiggly represents Squiggly annotations.
// (Section 12.5.6.10).
type PdfAnnotationSquiggly struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _cb .PdfObject ;};func _egeda (_eced _cb .PdfObject )(*PdfColorspaceCalRGB ,error ){_ffab :=NewPdfColorspaceCalRGB ();if _abae ,_fegc :=_eced .(*_cb .PdfIndirectObject );_fegc {_ffab ._fedfe =_abae ;};_eced =_cb .TraceToDirectObject (_eced );_cacc ,_eeff :=_eced .(*_cb .PdfObjectArray );if !_eeff {return nil ,_c .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _cacc .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");};_eced =_cb .TraceToDirectObject (_cacc .Get (0));_baec ,_eeff :=_eced .(*_cb .PdfObjectName );if !_eeff {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 *_baec !="\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");};_eced =_cb .TraceToDirectObject (_cacc .Get (1));_egcd ,_eeff :=_eced .(*_cb .PdfObjectDictionary );if !_eeff {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");};_eced =_egcd .Get ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074");_eced =_cb .TraceToDirectObject (_eced );_cggg ,_eeff :=_eced .(*_cb .PdfObjectArray );if !_eeff {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 _cggg .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");};_fdbc ,_bdda :=_cggg .GetAsFloat64Slice ();if _bdda !=nil {return nil ,_bdda ;};_ffab .WhitePoint =_fdbc ;_eced =_egcd .Get ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074");if _eced !=nil {_eced =_cb .TraceToDirectObject (_eced );_gdac ,_ggcg :=_eced .(*_cb .PdfObjectArray );if !_ggcg {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 _gdac .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");};_acgfe ,_aafd :=_gdac .GetAsFloat64Slice ();if _aafd !=nil {return nil ,_aafd ;};_ffab .BlackPoint =_acgfe ;};_eced =_egcd .Get ("\u0047\u0061\u006dm\u0061");if _eced !=nil {_eced =_cb .TraceToDirectObject (_eced );_cbga ,_cgca :=_eced .(*_cb .PdfObjectArray );if !_cgca {return nil ,_c .Errorf ("C\u0061\u006c\u0052\u0047B:\u0020I\u006e\u0076\u0061\u006c\u0069d\u0020\u0047\u0061\u006d\u006d\u0061");};if _cbga .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");};_cade ,_egba :=_cbga .GetAsFloat64Slice ();if _egba !=nil {return nil ,_egba ;};_ffab .Gamma =_cade ;};_eced =_egcd .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");if _eced !=nil {_eced =_cb .TraceToDirectObject (_eced );_dbfd ,_abcb :=_eced .(*_cb .PdfObjectArray );if !_abcb {return nil ,_c .Errorf ("\u0043\u0061\u006c\u0052GB\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u004d\u0061\u0074\u0072i\u0078");};if _dbfd .Len ()!=9{_dbe .Log .Error ("\u004d\u0061t\u0072\u0069\u0078 \u0061\u0072\u0072\u0061\u0079\u003a\u0020\u0025\u0073",_dbfd .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");};_eggg ,_ggaa :=_dbfd .GetAsFloat64Slice ();if _ggaa !=nil {return nil ,_ggaa ;};_ffab .Matrix =_eggg ;};return _ffab ,nil ;};func (_aebcg *PdfWriter )addObjects (_ecgfd _cb .PdfObject )error {_dbe .Log .Trace ("\u0041d\u0064i\u006e\u0067\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0073\u0021");if _gbebb ,_fdfe :=_ecgfd .(*_cb .PdfIndirectObject );_fdfe {_dbe .Log .Trace ("\u0049\u006e\u0064\u0069\u0072\u0065\u0063\u0074");_dbe .Log .Trace ("\u002d \u0025\u0073\u0020\u0028\u0025\u0070)",_ecgfd ,_gbebb );_dbe .Log .Trace ("\u002d\u0020\u0025\u0073",_gbebb .PdfObject );if _aebcg .addObject (_gbebb ){_dfgg :=_aebcg .addObjects (_gbebb .PdfObject );if _dfgg !=nil {return _dfgg ;};};return nil ;};if _dbdg ,_ebgc :=_ecgfd .(*_cb .PdfObjectStream );_ebgc {_dbe .Log .Trace ("\u0053\u0074\u0072\u0065\u0061\u006d");_dbe .Log .Trace ("\u002d \u0025\u0073\u0020\u0025\u0070",_ecgfd ,_ecgfd );if _aebcg .addObject (_dbdg ){_eddbe :=_aebcg .addObjects (_dbdg .PdfObjectDictionary );if _eddbe !=nil {return _eddbe ;};};return nil ;};if _acgec ,_fbdda :=_ecgfd .(*_cb .PdfObjectDictionary );_fbdda {_dbe .Log .Trace ("\u0044\u0069\u0063\u0074");_dbe .Log .Trace ("\u002d\u0020\u0025\u0073",_ecgfd );for _ ,_cbcgff :=range _acgec .Keys (){_abdcc :=_acgec .Get (_cbcgff );if _dcbf ,_dgdcb :=_abdcc .(*_cb .PdfObjectReference );_dgdcb {_abdcc =_dcbf .Resolve ();_acgec .Set (_cbcgff ,_abdcc );};if _cbcgff !="\u0050\u0061\u0072\u0065\u006e\u0074"{if _cbdce :=_aebcg .addObjects (_abdcc );_cbdce !=nil {return _cbdce ;};}else {if _ ,_cacd :=_abdcc .(*_cb .PdfObjectNull );_cacd {continue ;};if _edcbfg :=_aebcg .hasObject (_abdcc );!_edcbfg {_dbe .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",_abdcc ,_abdcc ,_abdcc );_aebcg ._gbcba [_abdcc ]=append (_aebcg ._gbcba [_abdcc ],_acgec );};};};return nil ;};if _ebbec ,_cgaff :=_ecgfd .(*_cb .PdfObjectArray );_cgaff {_dbe .Log .Trace ("\u0041\u0072\u0072a\u0079");_dbe .Log .Trace ("\u002d\u0020\u0025\u0073",_ecgfd );if _ebbec ==nil {return _bc .New ("\u0061\u0072\u0072a\u0079\u0020\u0069\u0073\u0020\u006e\u0069\u006c");};for _gbdfb ,_cefa :=range _ebbec .Elements (){if _egbd ,_gaabdc :=_cefa .(*_cb .PdfObjectReference );_gaabdc {_cefa =_egbd .Resolve ();_ebbec .Set (_gbdfb ,_cefa );};if _edff :=_aebcg .addObjects (_cefa );_edff !=nil {return _edff ;};};return nil ;};if _ ,_babcb :=_ecgfd .(*_cb .PdfObjectReference );_babcb {_dbe .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",_ecgfd );return _bc .New ("r\u0065\u0066\u0065\u0072en\u0063e\u0020\u006e\u006f\u0074\u0020a\u006c\u006c\u006f\u0077\u0065\u0064");};return nil ;};func _abcgd (_bebc _cb .PdfObject )(PdfFunction ,error ){_bebc =_cb .ResolveReference (_bebc );if _daff ,_gcbg :=_bebc .(*_cb .PdfObjectStream );_gcbg {_cgbf :=_daff .PdfObjectDictionary ;_gfeb ,_eegab :=_cgbf .Get ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065").(*_cb .PdfObjectInteger );if !_eegab {_dbe .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 ,_bc .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 *_gfeb ==0{return _defcb (_daff );}else if *_gfeb ==4{return _ffcfe (_daff );}else {return nil ,_bc .New ("i\u006e\u0076\u0061\u006cid\u0020f\u0075\u006e\u0063\u0074\u0069o\u006e\u0020\u0074\u0079\u0070\u0065");};}else if _eeefcc ,_fcab :=_bebc .(*_cb .PdfIndirectObject );_fcab {_bdaed ,_cgbgg :=_eeefcc .PdfObject .(*_cb .PdfObjectDictionary );if !_cgbgg {_dbe .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 ,_bc .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");};_dagc ,_cgbgg :=_bdaed .Get ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065").(*_cb .PdfObjectInteger );if !_cgbgg {_dbe .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 ,_bc .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 *_dagc ==2{return _ecdc (_eeefcc );}else if *_dagc ==3{return _bbffe (_eeefcc );}else {return nil ,_bc .New ("i\u006e\u0076\u0061\u006cid\u0020f\u0075\u006e\u0063\u0074\u0069o\u006e\u0020\u0074\u0079\u0070\u0065");};}else if _gbbg ,_ffda :=_bebc .(*_cb .PdfObjectDictionary );_ffda {_dbcfd ,_cdbg :=_gbbg .Get ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065").(*_cb .PdfObjectInteger );if !_cdbg {_dbe .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 ,_bc .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 *_dbcfd ==2{return _ecdc (_gbbg );}else if *_dbcfd ==3{return _bbffe (_gbbg );}else {return nil ,_bc .New ("i\u006e\u0076\u0061\u006cid\u0020f\u0075\u006e\u0063\u0074\u0069o\u006e\u0020\u0074\u0079\u0070\u0065");};}else {_dbe .Log .Debug ("\u0046u\u006e\u0063\u0074\u0069\u006f\u006e\u0020\u0054\u0079\u0070\u0065 \u0065\u0072\u0072\u006f\u0072\u003a\u0020\u0025\u0023\u0076",_bebc );return nil ,_bc .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};};func (_gfef *pdfFontSimple )getFontDescriptor ()*PdfFontDescriptor {if _badc :=_gfef ._bgbb ;_badc !=nil {return _badc ;};return _gfef ._eggf ;};
// PdfColorspaceSpecialPattern is a Pattern colorspace.
// Can be defined either as /Pattern or with an underlying colorspace [/Pattern cs].
type PdfColorspaceSpecialPattern struct{UnderlyingCS PdfColorspace ;_beef *_cb .PdfIndirectObject ;};
// ToPdfObject converts rectangle to a PDF object.
func (_aefb *PdfRectangle )ToPdfObject ()_cb .PdfObject {return _cb .MakeArray (_cb .MakeFloat (_aefb .Llx ),_cb .MakeFloat (_aefb .Lly ),_cb .MakeFloat (_aefb .Urx ),_cb .MakeFloat (_aefb .Ury ));};
// GetSubFilter returns SubFilter value or empty string.
func (_cgdga *pdfSignDictionary )GetSubFilter ()string {_beec :=_cgdga .Get ("\u0053u\u0062\u0046\u0069\u006c\u0074\u0065r");if _beec ==nil {return "";};if _fadac ,_baded :=_cb .GetNameVal (_beec );_baded {return _fadac ;};return "";};
// PdfAnnotationTrapNet represents TrapNet annotations.
// (Section 12.5.6.21).
type PdfAnnotationTrapNet struct{*PdfAnnotation };
// Evaluate runs the function on the passed in slice and returns the results.
func (_daed *PdfFunctionType0 )Evaluate (x []float64 )([]float64 ,error ){if len (x )!=_daed .NumInputs {_dbe .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 ,_bc .New ("\u0072\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b\u0020e\u0072\u0072\u006f\u0072");};if _daed ._fcdac ==nil {_dggea :=_daed .processSamples ();if _dggea !=nil {return nil ,_dggea ;};};_aabeda :=_daed .Encode ;if _aabeda ==nil {_aabeda =[]float64 {};for _bgebf :=0;_bgebf < len (_daed .Size );_bgebf ++{_aabeda =append (_aabeda ,0);_aabeda =append (_aabeda ,float64 (_daed .Size [_bgebf ]-1));};};_dgec :=_daed .Decode ;if _dgec ==nil {_dgec =_daed .Range ;};_gacce :=make ([]int ,len (x ));for _cfac :=0;_cfac < len (x );_cfac ++{_gccae :=x [_cfac ];_cafcd :=_ag .Min (_ag .Max (_gccae ,_daed .Domain [2*_cfac ]),_daed .Domain [2*_cfac +1]);_adbee :=_ac .LinearInterpolate (_cafcd ,_daed .Domain [2*_cfac ],_daed .Domain [2*_cfac +1],_aabeda [2*_cfac ],_aabeda [2*_cfac +1]);_gbcd :=_ag .Min (_ag .Max (_adbee ,0),float64 (_daed .Size [_cfac ]-1));_ccfda :=int (_ag .Floor (_gbcd +0.5));if _ccfda < 0{_ccfda =0;}else if _ccfda > _daed .Size [_cfac ]{_ccfda =_daed .Size [_cfac ]-1;};_gacce [_cfac ]=_ccfda ;};_fgdgb :=_gacce [0];for _adaca :=1;_adaca < _daed .NumInputs ;_adaca ++{_dgdc :=_gacce [_adaca ];for _eagf :=0;_eagf < _adaca ;_eagf ++{_dgdc *=_daed .Size [_eagf ];};_fgdgb +=_dgdc ;};_fgdgb *=_daed .NumOutputs ;var _eefdd []float64 ;for _cfcb :=0;_cfcb < _daed .NumOutputs ;_cfcb ++{_abeg :=_fgdgb +_cfcb ;if _abeg >=len (_daed ._fcdac ){_dbe .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 ;};_cacgg :=_daed ._fcdac [_abeg ];_dcfg :=_ac .LinearInterpolate (float64 (_cacgg ),0,_ag .Pow (2,float64 (_daed .BitsPerSample )),_dgec [2*_cfcb ],_dgec [2*_cfcb +1]);_eafg :=_ag .Min (_ag .Max (_dcfg ,_daed .Range [2*_cfcb ]),_daed .Range [2*_cfcb +1]);_eefdd =append (_eefdd ,_eafg );};return _eefdd ,nil ;};
// NewPdfAcroForm returns a new PdfAcroForm with an intialized container (indirect object).
func NewPdfAcroForm ()*PdfAcroForm {return &PdfAcroForm {Fields :&[]*PdfField {},_dfgeb :_cb .MakeIndirectObject (_cb .MakeDict ())};};
// ToInteger convert to an integer format.
func (_eacg *PdfColorDeviceGray )ToInteger (bits int )uint32 {_eaaag :=_ag .Pow (2,float64 (bits ))-1;return uint32 (_eaaag *_eacg .Val ());};func (_ggbgd *PdfReader )loadForms ()(*PdfAcroForm ,error ){if _ggbgd ._gfecg .GetCrypter ()!=nil &&!_ggbgd ._gfecg .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");};_ffffc :=_ggbgd ._fccgb ;_gfcae :=_ffffc .Get ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d");if _gfcae ==nil {return nil ,nil ;};_acfgf ,_ :=_cb .GetIndirect (_gfcae );_gfcae =_cb .TraceToDirectObject (_gfcae );if _cb .IsNullObject (_gfcae ){_dbe .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 ;};_eadb ,_fbad :=_cb .GetDict (_gfcae );if !_fbad {_dbe .Log .Debug ("\u0049n\u0076\u0061\u006c\u0069d\u0020\u0041\u0063\u0072\u006fF\u006fr\u006d \u0065\u006e\u0074\u0072\u0079\u0020\u0025T",_gfcae );_dbe .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",_gfcae );};_dbe .Log .Trace ("\u0048\u0061\u0073\u0020\u0041\u0063\u0072\u006f\u0020f\u006f\u0072\u006d\u0073");_dbe .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 !_ggbgd ._cbfab {_baffc :=_ggbgd .traverseObjectData (_eadb );if _baffc !=nil {_dbe .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",_baffc );return nil ,_baffc ;};};_efega ,_bedcf :=_ggbgd .newPdfAcroFormFromDict (_acfgf ,_eadb );if _bedcf !=nil {return nil ,_bedcf ;};return _efega ,nil ;};
// ColorFromPdfObjects returns a new PdfColor based on the input slice of color
// component PDF objects.
func (_cdfb *PdfColorspaceICCBased )ColorFromPdfObjects (objects []_cb .PdfObject )(PdfColor ,error ){if _cdfb .Alternate ==nil {if _cdfb .N ==1{_dcac :=NewPdfColorspaceDeviceGray ();return _dcac .ColorFromPdfObjects (objects );}else if _cdfb .N ==3{_adbg :=NewPdfColorspaceDeviceRGB ();return _adbg .ColorFromPdfObjects (objects );}else if _cdfb .N ==4{_egaf :=NewPdfColorspaceDeviceCMYK ();return _egaf .ColorFromPdfObjects (objects );}else {return nil ,_bc .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 _cdfb .Alternate .ColorFromPdfObjects (objects );};func _abgda (_eabgf *_cb .PdfObjectDictionary )(*PdfShadingType4 ,error ){_edcac :=PdfShadingType4 {};_aged :=_eabgf .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065");if _aged ==nil {_dbe .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 ;};_eceaa ,_ggcfb :=_aged .(*_cb .PdfObjectInteger );if !_ggcfb {_dbe .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",_aged );return nil ,_cb .ErrTypeError ;};_edcac .BitsPerCoordinate =_eceaa ;_aged =_eabgf .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074");if _aged ==nil {_dbe .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 ;};_eceaa ,_ggcfb =_aged .(*_cb .PdfObjectInteger );if !_ggcfb {_dbe .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",_aged );return nil ,_cb .ErrTypeError ;};_edcac .BitsPerComponent =_eceaa ;_aged =_eabgf .Get ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067");if _aged ==nil {_dbe .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 ;};_eceaa ,_ggcfb =_aged .(*_cb .PdfObjectInteger );if !_ggcfb {_dbe .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",_aged );return nil ,_cb .ErrTypeError ;};_edcac .BitsPerComponent =_eceaa ;_aged =_eabgf .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");if _aged ==nil {_dbe .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 ;};_ebfec ,_ggcfb :=_aged .(*_cb .PdfObjectArray );if !_ggcfb {_dbe .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",_aged );return nil ,_cb .ErrTypeError ;};_edcac .Decode =_ebfec ;_aged =_eabgf .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");if _aged ==nil {_dbe .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 ;};_edcac .Function =[]PdfFunction {};if _fgagb ,_bgeaa :=_aged .(*_cb .PdfObjectArray );_bgeaa {for _ ,_cggba :=range _fgagb .Elements (){_aaea ,_dgbed :=_abcgd (_cggba );if _dgbed !=nil {_dbe .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",_dgbed );return nil ,_dgbed ;};_edcac .Function =append (_edcac .Function ,_aaea );};}else {_ebgbg ,_ggcd :=_abcgd (_aged );if _ggcd !=nil {_dbe .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",_ggcd );return nil ,_ggcd ;};_edcac .Function =append (_edcac .Function ,_ebgbg );};return &_edcac ,nil ;};
// ToPdfObject implements interface PdfModel.
func (_ccae *PdfAnnotationSquare )ToPdfObject ()_cb .PdfObject {_ccae .PdfAnnotation .ToPdfObject ();_bcg :=_ccae ._efd ;_fac :=_bcg .PdfObject .(*_cb .PdfObjectDictionary );if _ccae .PdfAnnotationMarkup !=nil {_ccae .PdfAnnotationMarkup .appendToPdfDictionary (_fac );};_fac .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_cb .MakeName ("\u0053\u0071\u0075\u0061\u0072\u0065"));_fac .SetIfNotNil ("\u0042\u0053",_ccae .BS );_fac .SetIfNotNil ("\u0049\u0043",_ccae .IC );_fac .SetIfNotNil ("\u0042\u0045",_ccae .BE );_fac .SetIfNotNil ("\u0052\u0044",_ccae .RD );return _bcg ;};
// ToPdfObject returns the PDF representation of the colorspace.
func (_deeb *PdfColorspaceDeviceGray )ToPdfObject ()_cb .PdfObject {return _cb .MakeName ("\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079");};func (_gbb *PdfReader )newPdfAnnotationInkFromDict (_ddgg *_cb .PdfObjectDictionary )(*PdfAnnotationInk ,error ){_ebd :=PdfAnnotationInk {};_bebg ,_gcdf :=_gbb .newPdfAnnotationMarkupFromDict (_ddgg );if _gcdf !=nil {return nil ,_gcdf ;};_ebd .PdfAnnotationMarkup =_bebg ;_ebd .InkList =_ddgg .Get ("\u0049n\u006b\u004c\u0069\u0073\u0074");_ebd .BS =_ddgg .Get ("\u0042\u0053");return &_ebd ,nil ;};
// NewPdfAnnotationLink returns a new link annotation.
func NewPdfAnnotationLink ()*PdfAnnotationLink {_abg :=NewPdfAnnotation ();_fcdc :=&PdfAnnotationLink {};_fcdc .PdfAnnotation =_abg ;_abg .SetContext (_fcdc );return _fcdc ;};
// DecodeArray returns the component range values for the Indexed colorspace.
func (_bggb *PdfColorspaceSpecialIndexed )DecodeArray ()[]float64 {return []float64 {0,float64 (_bggb .HiVal )};};
// GetAsShadingPattern returns a shading pattern. Check with IsShading() prior to using this.
func (_dcfb *PdfPattern )GetAsShadingPattern ()*PdfShadingPattern {return _dcfb ._eadd .(*PdfShadingPattern );};
// BorderStyle defines border type, typically used for annotations.
type BorderStyle int ;
// ToImage converts an object to an Image which can be transformed or saved out.
// The image data is decoded and the Image returned.
func (_ebbcbb *XObjectImage )ToImage ()(*Image ,error ){_gfcga :=&Image {};if _ebbcbb .Height ==nil {return nil ,_bc .New ("\u0068e\u0069\u0067\u0068\u0074\u0020\u0061\u0074\u0074\u0072\u0069\u0062u\u0074\u0065\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};_gfcga .Height =*_ebbcbb .Height ;if _ebbcbb .Width ==nil {return nil ,_bc .New ("\u0077\u0069\u0064th\u0020\u0061\u0074\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};_gfcga .Width =*_ebbcbb .Width ;if _ebbcbb .BitsPerComponent ==nil {return nil ,_bc .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");};_gfcga .BitsPerComponent =*_ebbcbb .BitsPerComponent ;_gfcga .ColorComponents =_ebbcbb .ColorSpace .GetNumComponents ();_ebbcbb ._egbff .Set ("\u0043o\u006co\u0072\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074\u0073",_cb .MakeInteger (int64 (_gfcga .ColorComponents )));_cacggf ,_dddc :=_cb .DecodeStream (_ebbcbb ._egbff );if _dddc !=nil {return nil ,_dddc ;};_gfcga .Data =_cacggf ;if _ebbcbb .Decode !=nil {_ecegf ,_bfdfgb :=_ebbcbb .Decode .(*_cb .PdfObjectArray );if !_bfdfgb {_dbe .Log .Debug ("I\u006e\u0076\u0061\u006cid\u0020D\u0065\u0063\u006f\u0064\u0065 \u006f\u0062\u006a\u0065\u0063\u0074");return nil ,_bc .New ("\u0069\u006e\u0076a\u006c\u0069\u0064\u0020\u0074\u0079\u0070\u0065");};_fddfg ,_bdbcd :=_ecegf .ToFloat64Array ();if _bdbcd !=nil {return nil ,_bdbcd ;};_gfcga ._cceeg =_fddfg ;};return _gfcga ,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 (_fagad *PdfColorspaceCalGray )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=1{return nil ,_bc .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_faff :=vals [0];if _faff < 0.0||_faff > 1.0{return nil ,_bc .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_cbdc :=NewPdfColorCalGray (_faff );return _cbdc ,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 (_dbac *PdfColorspaceDeviceN )ToPdfObject ()_cb .PdfObject {_gbffc :=_cb .MakeArray (_cb .MakeName ("\u0044e\u0076\u0069\u0063\u0065\u004e"));_gbffc .Append (_dbac .ColorantNames );_gbffc .Append (_dbac .AlternateSpace .ToPdfObject ());_gbffc .Append (_dbac .TintTransform .ToPdfObject ());if _dbac .Attributes !=nil {_gbffc .Append (_dbac .Attributes .ToPdfObject ());};if _dbac ._eggd !=nil {_dbac ._eggd .PdfObject =_gbffc ;return _dbac ._eggd ;};return _gbffc ;};
// ToPdfObject implements interface PdfModel.
func (_bed *PdfAnnotationCaret )ToPdfObject ()_cb .PdfObject {_bed .PdfAnnotation .ToPdfObject ();_fcec :=_bed ._efd ;_cccg :=_fcec .PdfObject .(*_cb .PdfObjectDictionary );_bed .PdfAnnotationMarkup .appendToPdfDictionary (_cccg );_cccg .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_cb .MakeName ("\u0043\u0061\u0072e\u0074"));_cccg .SetIfNotNil ("\u0052\u0044",_bed .RD );_cccg .SetIfNotNil ("\u0053\u0079",_bed .Sy );return _fcec ;};
// ToGoTime returns the date in time.Time format.
func (_cdccg PdfDate )ToGoTime ()_d .Time {_dgcec :=int (_cdccg ._bbee *60*60+_cdccg ._caccb *60);switch _cdccg ._bbbbg {case '-':_dgcec =-_dgcec ;case 'Z':_dgcec =0;};_adgb :=_c .Sprintf ("\u0055\u0054\u0043\u0025\u0063\u0025\u002e\u0032\u0064\u0025\u002e\u0032\u0064",_cdccg ._bbbbg ,_cdccg ._bbee ,_cdccg ._caccb );_feeag :=_d .FixedZone (_adgb ,_dgcec );return _d .Date (int (_cdccg ._dbbc ),_d .Month (_cdccg ._cddf ),int (_cdccg ._ffdac ),int (_cdccg ._cfgca ),int (_cdccg ._fcgbe ),int (_cdccg ._aegfed ),0,_feeag );};
// IsTiling specifies if the pattern is a tiling pattern.
func (_afgc *PdfPattern )IsTiling ()bool {return _afgc .PatternType ==1};
// NewPdfColorspaceICCBased returns a new ICCBased colorspace object.
func NewPdfColorspaceICCBased (N int )(*PdfColorspaceICCBased ,error ){_dgeg :=&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");};_dgeg .N =N ;return _dgeg ,nil ;};func _adacd (_cfdcb _cb .PdfObject ){_dbe .Log .Debug ("\u006f\u0062\u006a\u003a\u0020\u0025\u0054\u0020\u0025\u0073",_cfdcb ,_cfdcb .String ());if _abbfd ,_egcde :=_cfdcb .(*_cb .PdfObjectStream );_egcde {_dacbe ,_bcgc :=_cb .DecodeStream (_abbfd );if _bcgc !=nil {_dbe .Log .Debug ("\u0045r\u0072\u006f\u0072\u003a\u0020\u0025v",_bcgc );return ;};_dbe .Log .Debug ("D\u0065\u0063\u006f\u0064\u0065\u0064\u003a\u0020\u0025\u0073",_dacbe );}else if _eefba ,_gfdff :=_cfdcb .(*_cb .PdfIndirectObject );_gfdff {_dbe .Log .Debug ("\u0025\u0054\u0020%\u0076",_eefba .PdfObject ,_eefba .PdfObject );_dbe .Log .Debug ("\u0025\u0073",_eefba .PdfObject .String ());};};
// ImageToRGB returns an error since an image cannot be defined in a pattern colorspace.
func (_abccg *PdfColorspaceSpecialPattern )ImageToRGB (img Image )(Image ,error ){_dbe .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 ,_bc .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");};
// 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 _cb .PdfObject )(_cb .PdfObjectName ,error ){var _gddf *_cb .PdfObjectName ;var _abgg *_cb .PdfObjectArray ;if _abac ,_gegb :=obj .(*_cb .PdfIndirectObject );_gegb {if _accc ,_agbg :=_abac .PdfObject .(*_cb .PdfObjectArray );_agbg {_abgg =_accc ;}else if _cecb ,_cabb :=_abac .PdfObject .(*_cb .PdfObjectName );_cabb {_gddf =_cecb ;};}else if _bfbc ,_ccag :=obj .(*_cb .PdfObjectArray );_ccag {_abgg =_bfbc ;}else if _eaceg ,_gabd :=obj .(*_cb .PdfObjectName );_gabd {_gddf =_eaceg ;};if _gddf !=nil {switch *_gddf {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 *_gddf ,nil ;case "\u0050a\u0074\u0074\u0065\u0072\u006e":return *_gddf ,nil ;};};if _abgg !=nil &&_abgg .Len ()> 0{if _facdb ,_facda :=_abgg .Get (0).(*_cb .PdfObjectName );_facda {switch *_facdb {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 _abgg .Len ()==1{return *_facdb ,nil ;};case "\u0043a\u006c\u0047\u0072\u0061\u0079","\u0043\u0061\u006c\u0052\u0047\u0042","\u004c\u0061\u0062":return *_facdb ,nil ;case "\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064","\u0050a\u0074\u0074\u0065\u0072\u006e","\u0049n\u0064\u0065\u0078\u0065\u0064":return *_facdb ,nil ;case "\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e","\u0044e\u0076\u0069\u0063\u0065\u004e":return *_facdb ,nil ;};};};return "",nil ;};
// SetOptimizer sets the optimizer to optimize PDF before writing.
func (_adadee *PdfWriter )SetOptimizer (optimizer Optimizer ){_adadee ._agfcf =optimizer };
// SetPdfKeywords sets the Keywords attribute of the output PDF.
func SetPdfKeywords (keywords string ){_ffbde =keywords };
// NewPdfDateFromTime will create a PdfDate based on the given time
func NewPdfDateFromTime (timeObj _d .Time )(PdfDate ,error ){_adgbd :=timeObj .Format ("\u002d\u0030\u0037\u003a\u0030\u0030");_fgddb ,_ :=_eb .ParseInt (_adgbd [1:3],10,32);_feefd ,_ :=_eb .ParseInt (_adgbd [4:6],10,32);return PdfDate {_dbbc :int64 (timeObj .Year ()),_cddf :int64 (timeObj .Month ()),_ffdac :int64 (timeObj .Day ()),_cfgca :int64 (timeObj .Hour ()),_fcgbe :int64 (timeObj .Minute ()),_aegfed :int64 (timeObj .Second ()),_bbbbg :_adgbd [0],_bbee :_fgddb ,_caccb :_feefd },nil ;};
// ToPdfObject returns the PDF representation of the colorspace.
func (_gegf *PdfColorspaceSpecialSeparation )ToPdfObject ()_cb .PdfObject {_dgbf :=_cb .MakeArray (_cb .MakeName ("\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e"));_dgbf .Append (_gegf .ColorantName );_dgbf .Append (_gegf .AlternateSpace .ToPdfObject ());_dgbf .Append (_gegf .TintTransform .ToPdfObject ());if _gegf ._ccba !=nil {_gegf ._ccba .PdfObject =_dgbf ;return _gegf ._ccba ;};return _dgbf ;};
// 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 (_ebdf *Image )ConvertToBinary ()error {if _ebdf .ColorComponents ==1&&_ebdf .BitsPerComponent ==1{return nil ;};_beeaa ,_cdbdeb :=_ebdf .ToGoImage ();if _cdbdeb !=nil {return _cdbdeb ;};_cfeae ,_cdbdeb :=_ac .MonochromeConverter .Convert (_beeaa );if _cdbdeb !=nil {return _cdbdeb ;};_ebdf .BitsPerComponent =1;_ebdf .ColorComponents =1;_ebdf .Data =_cfeae .Base ().Data ;return nil ;};
// ToGray returns a PdfColorDeviceGray color based on the current RGB color.
func (_bbbad *PdfColorDeviceRGB )ToGray ()*PdfColorDeviceGray {_cbba :=0.3*_bbbad .R ()+0.59*_bbbad .G ()+0.11*_bbbad .B ();_cbba =_ag .Min (_ag .Max (_cbba ,0.0),1.0);return NewPdfColorDeviceGray (_cbba );};
// NewPdfAnnotationRichMedia returns a new rich media annotation.
func NewPdfAnnotationRichMedia ()*PdfAnnotationRichMedia {_eeb :=NewPdfAnnotation ();_baba :=&PdfAnnotationRichMedia {};_baba .PdfAnnotation =_eeb ;_eeb .SetContext (_baba );return _baba ;};
// 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 (_cfab *PdfOutlineTreeNode )GetContext ()PdfModel {if _aebbc ,_adade :=_cfab ._dfaeg .(*PdfOutline );_adade {return _aebbc ;};if _gggfg ,_bcge :=_cfab ._dfaeg .(*PdfOutlineItem );_bcge {return _gggfg ;};_dbe .Log .Debug ("\u0045\u0052RO\u0052\u0020\u0049n\u0076\u0061\u006c\u0069d o\u0075tl\u0069\u006e\u0065\u0020\u0074\u0072\u0065e \u006e\u006f\u0064\u0065\u0020\u0069\u0074e\u006d");return nil ;};func _cacg (_gabg *_cb .PdfObjectDictionary )(*PdfFieldChoice ,error ){_cdfa :=&PdfFieldChoice {};_cdfa .Opt ,_ =_cb .GetArray (_gabg .Get ("\u004f\u0070\u0074"));_cdfa .TI ,_ =_cb .GetInt (_gabg .Get ("\u0054\u0049"));_cdfa .I ,_ =_cb .GetArray (_gabg .Get ("\u0049"));return _cdfa ,nil ;};func (_fdaa *pdfFontSimple )baseFields ()*fontCommon {return &_fdaa .fontCommon };
// PdfActionThread represents a thread action.
type PdfActionThread struct{*PdfAction ;F *PdfFilespec ;D _cb .PdfObject ;B _cb .PdfObject ;};
// PdfActionRendition represents a Rendition action.
type PdfActionRendition struct{*PdfAction ;R _cb .PdfObject ;AN _cb .PdfObject ;OP _cb .PdfObject ;JS _cb .PdfObject ;};
// PdfPageResources is a Page resources model.
// Implements PdfModel.
type PdfPageResources struct{ExtGState _cb .PdfObject ;ColorSpace _cb .PdfObject ;Pattern _cb .PdfObject ;Shading _cb .PdfObject ;XObject _cb .PdfObject ;Font _cb .PdfObject ;ProcSet _cb .PdfObject ;Properties _cb .PdfObject ;_eeeegd *_cb .PdfObjectDictionary ;_ggaga *PdfPageResourcesColorspaces ;};
// ToInteger convert to an integer format.
func (_bfcfd *PdfColorCalRGB )ToInteger (bits int )[3]uint32 {_ebee :=_ag .Pow (2,float64 (bits ))-1;return [3]uint32 {uint32 (_ebee *_bfcfd .A ()),uint32 (_ebee *_bfcfd .B ()),uint32 (_ebee *_bfcfd .C ())};};
// Read reads an image and loads into a new Image object with an RGB
// colormap and 8 bits per component.
func (_baffe DefaultImageHandler )Read (reader _bb .Reader )(*Image ,error ){_adaaa ,_ ,_dcgge :=_ca .Decode (reader );if _dcgge !=nil {_dbe .Log .Debug ("\u0045\u0072\u0072or\u0020\u0064\u0065\u0063\u006f\u0064\u0069\u006e\u0067\u0020\u0066\u0069\u006c\u0065\u003a\u0020\u0025\u0073",_dcgge );return nil ,_dcgge ;};return _baffe .NewImageFromGoImage (_adaaa );};
// NewPdfActionGoToR returns a new "go to remote" action.
func NewPdfActionGoToR ()*PdfActionGoToR {_de :=NewPdfAction ();_gd :=&PdfActionGoToR {};_gd .PdfAction =_de ;_de .SetContext (_gd );return _gd ;};
// SetContext sets the sub pattern (context). Either PdfTilingPattern or PdfShadingPattern.
func (_cdfcd *PdfPattern )SetContext (ctx PdfModel ){_cdfcd ._eadd =ctx };
// WriteString outputs the object as it is to be written to file.
func (_fbaaa *pdfSignDictionary )WriteString ()string {_fbaaa ._cabf =0;_fbaaa ._gfcab =0;_fbaaa ._bdfge =0;_fbaaa ._edbbe =0;_bfbga :=_bbb .NewBuffer (nil );_bfbga .WriteString ("\u003c\u003c");for _ ,_dfcbb :=range _fbaaa .Keys (){_afeea :=_fbaaa .Get (_dfcbb );switch _dfcbb {case "\u0042y\u0074\u0065\u0052\u0061\u006e\u0067e":_bfbga .WriteString (_dfcbb .WriteString ());_bfbga .WriteString ("\u0020");_fbaaa ._bdfge =_bfbga .Len ();_bfbga .WriteString (_afeea .WriteString ());_bfbga .WriteString ("\u0020");_fbaaa ._edbbe =_bfbga .Len ()-1;case "\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073":_bfbga .WriteString (_dfcbb .WriteString ());_bfbga .WriteString ("\u0020");_fbaaa ._cabf =_bfbga .Len ();_bfbga .WriteString (_afeea .WriteString ());_bfbga .WriteString ("\u0020");_fbaaa ._gfcab =_bfbga .Len ()-1;default:_bfbga .WriteString (_dfcbb .WriteString ());_bfbga .WriteString ("\u0020");_bfbga .WriteString (_afeea .WriteString ());};};_bfbga .WriteString ("\u003e\u003e");return _bfbga .String ();};
// IsPush returns true if the button field represents a push button, false otherwise.
func (_cfed *PdfFieldButton )IsPush ()bool {return _cfed .GetType ()==ButtonTypePush };
// 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 ;
// AddOutlineTree adds outlines to a PDF file.
func (_gccb *PdfWriter )AddOutlineTree (outlineTree *PdfOutlineTreeNode ){_gccb ._eadf =outlineTree };func (_gdgaf *PdfFont )baseFields ()*fontCommon {if _gdgaf ._cdfe ==nil {_dbe .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 _gdgaf ._cdfe .baseFields ();};
// 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 (_beaf *Image )Resample (targetBitsPerComponent int64 ){if _beaf .BitsPerComponent ==targetBitsPerComponent {return ;};_bfbee :=_beaf .GetSamples ();if targetBitsPerComponent < _beaf .BitsPerComponent {_ecbae :=_beaf .BitsPerComponent -targetBitsPerComponent ;for _dddda :=range _bfbee {_bfbee [_dddda ]>>=uint (_ecbae );};}else if targetBitsPerComponent > _beaf .BitsPerComponent {_aegg :=targetBitsPerComponent -_beaf .BitsPerComponent ;for _ffadf :=range _bfbee {_bfbee [_ffadf ]<<=uint (_aegg );};};_beaf .BitsPerComponent =targetBitsPerComponent ;if _beaf .BitsPerComponent < 8{_beaf .resampleLowBits (_bfbee );return ;};_fcefb :=_ac .BytesPerLine (int (_beaf .Width ),int (_beaf .BitsPerComponent ),_beaf .ColorComponents );_bgebfa :=make ([]byte ,_fcefb *int (_beaf .Height ));var (_fbfc ,_fdag ,_ggga ,_bffdf int ;_gcdc uint32 ;);for _ggga =0;_ggga < int (_beaf .Height );_ggga ++{_fbfc =_ggga *_fcefb ;_fdag =(_ggga +1)*_fcefb -1;_fdfc :=_cf .ResampleUint32 (_bfbee [_fbfc :_fdag ],int (targetBitsPerComponent ),8);for _bffdf ,_gcdc =range _fdfc {_bgebfa [_bffdf +_fbfc ]=byte (_gcdc );};};_beaf .Data =_bgebfa ;};
// PdfActionSetOCGState represents a SetOCGState action.
type PdfActionSetOCGState struct{*PdfAction ;State _cb .PdfObject ;PreserveRB _cb .PdfObject ;};
// NewPdfActionResetForm returns a new "reset form" action.
func NewPdfActionResetForm ()*PdfActionResetForm {_abb :=NewPdfAction ();_dea :=&PdfActionResetForm {};_dea .PdfAction =_abb ;_abb .SetContext (_dea );return _dea ;};type fontCommon struct{_babff string ;_fbefd string ;_ecaeb string ;_ccaac _cb .PdfObject ;_agag *_gb .CMap ;_bgbb *PdfFontDescriptor ;_cbgad int64 ;};
// SetFilter sets compression filter. Decodes with current filter sets and
// encodes the data with the new filter.
func (_afdb *XObjectImage )SetFilter (encoder _cb .StreamEncoder )error {_gfgg :=_afdb .Stream ;_cebfg ,_edgg :=_afdb .Filter .DecodeBytes (_gfgg );if _edgg !=nil {return _edgg ;};_afdb .Filter =encoder ;encoder .UpdateParams (_afdb .getParamsDict ());_gfgg ,_edgg =encoder .EncodeBytes (_cebfg );if _edgg !=nil {return _edgg ;};_afdb .Stream =_gfgg ;return nil ;};
// ToPdfObject returns the PDF representation of the outline tree node.
func (_bfbde *PdfOutlineTreeNode )ToPdfObject ()_cb .PdfObject {return _bfbde .GetContext ().ToPdfObject ();};
// NewPdfOutlineTree returns an initialized PdfOutline tree.
func NewPdfOutlineTree ()*PdfOutline {_geca :=NewPdfOutline ();_geca ._dfaeg =&_geca ;return _geca };
// DecodeArray returns the component range values for the Separation colorspace.
func (_bcbgd *PdfColorspaceSpecialSeparation )DecodeArray ()[]float64 {return []float64 {0,1.0}};
// ToPdfObject implements interface PdfModel.
func (_cbd *PdfAnnotationStrikeOut )ToPdfObject ()_cb .PdfObject {_cbd .PdfAnnotation .ToPdfObject ();_bcce :=_cbd ._efd ;_babg :=_bcce .PdfObject .(*_cb .PdfObjectDictionary );_cbd .PdfAnnotationMarkup .appendToPdfDictionary (_babg );_babg .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_cb .MakeName ("\u0053t\u0072\u0069\u006b\u0065\u004f\u0075t"));_babg .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_cbd .QuadPoints );return _bcce ;};func (_bgf *PdfColorspaceDeviceRGB )String ()string {return "\u0044e\u0076\u0069\u0063\u0065\u0052\u0047B";};func (_aee *PdfReader )newPdfAnnotationTrapNetFromDict (_dce *_cb .PdfObjectDictionary )(*PdfAnnotationTrapNet ,error ){_cfde :=PdfAnnotationTrapNet {};return &_cfde ,nil ;};func (_aacf *Image )samplesAddPadding (_aaeff []uint32 )[]uint32 {_bacge :=_ac .BytesPerLine (int (_aacf .Width ),int (_aacf .BitsPerComponent ),_aacf .ColorComponents )*(8/int (_aacf .BitsPerComponent ));_gaedb :=_bacge *int (_aacf .Height );if len (_aaeff )==_gaedb {return _aaeff ;};_abbed :=make ([]uint32 ,_gaedb );_dgaf :=int (_aacf .Width )*_aacf .ColorComponents ;for _bagbb :=0;_bagbb < int (_aacf .Height );_bagbb ++{_adcaf :=_bagbb *int (_aacf .Width );_aead :=_bagbb *_bacge ;for _agfa :=0;_agfa < _dgaf ;_agfa ++{_abbed [_aead +_agfa ]=_aaeff [_adcaf +_agfa ];};};return _abbed ;};
// ToPdfObject returns the PDF representation of the page resources.
func (_eebe *PdfPageResources )ToPdfObject ()_cb .PdfObject {_gdcab :=_eebe ._eeeegd ;_gdcab .SetIfNotNil ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e",_eebe .ExtGState );if _eebe ._ggaga !=nil {_eebe .ColorSpace =_eebe ._ggaga .ToPdfObject ();};_gdcab .SetIfNotNil ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065",_eebe .ColorSpace );_gdcab .SetIfNotNil ("\u0050a\u0074\u0074\u0065\u0072\u006e",_eebe .Pattern );_gdcab .SetIfNotNil ("\u0053h\u0061\u0064\u0069\u006e\u0067",_eebe .Shading );_gdcab .SetIfNotNil ("\u0058O\u0062\u006a\u0065\u0063\u0074",_eebe .XObject );_gdcab .SetIfNotNil ("\u0046\u006f\u006e\u0074",_eebe .Font );_gdcab .SetIfNotNil ("\u0050r\u006f\u0063\u0053\u0065\u0074",_eebe .ProcSet );_gdcab .SetIfNotNil ("\u0050\u0072\u006f\u0070\u0065\u0072\u0074\u0069\u0065\u0073",_eebe .Properties );return _gdcab ;};func (_afbg *PdfColorspaceSpecialIndexed )String ()string {return "\u0049n\u0064\u0065\u0078\u0065\u0064";};
// PdfColorspaceCalGray represents CalGray color space.
type PdfColorspaceCalGray struct{WhitePoint []float64 ;BlackPoint []float64 ;Gamma float64 ;_beeg *_cb .PdfIndirectObject ;};func (_dabgf *Image )samplesTrimPadding (_bcggec []uint32 )[]uint32 {_fabfe :=_dabgf .ColorComponents *int (_dabgf .Width )*int (_dabgf .Height );if len (_bcggec )==_fabfe {return _bcggec ;};_feab :=make ([]uint32 ,_fabfe );_bfbf :=int (_dabgf .Width )*_dabgf .ColorComponents ;var _baafd ,_cggb ,_cdfef ,_bcbfb int ;_cdebg :=_ac .BytesPerLine (int (_dabgf .Width ),int (_dabgf .BitsPerComponent ),_dabgf .ColorComponents );for _baafd =0;_baafd < int (_dabgf .Height );_baafd ++{_cggb =_baafd *int (_dabgf .Width );_cdfef =_baafd *_cdebg ;for _bcbfb =0;_bcbfb < _bfbf ;_bcbfb ++{_feab [_cggb +_bcbfb ]=_bcggec [_cdfef +_bcbfb ];};};return _feab ;};
// GetNumComponents returns the number of color components (3 for Lab).
func (_dabe *PdfColorLab )GetNumComponents ()int {return 3};
// AddAnnotation appends `annot` to the list of page annotations.
func (_abdf *PdfPage )AddAnnotation (annot *PdfAnnotation ){if _abdf ._dcgde ==nil {_abdf .GetAnnotations ();};_abdf ._dcgde =append (_abdf ._dcgde ,annot );};
// PdfActionTrans represents a trans action.
type PdfActionTrans struct{*PdfAction ;Trans _cb .PdfObject ;};
// SetImageHandler sets the image handler used by the package.
func SetImageHandler (imgHandling ImageHandler ){ImageHandling =imgHandling };
// 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 *_cb .PdfObjectInteger ;ColorSpace PdfColorspace ;Background *_cb .PdfObjectArray ;BBox *PdfRectangle ;AntiAlias *_cb .PdfObjectBool ;_cdece PdfModel ;_gfdg _cb .PdfObject ;};func (_geff *PdfAppender )replaceObject (_eacd ,_bgcf _cb .PdfObject ){switch _bdgd :=_eacd .(type ){case *_cb .PdfIndirectObject :_geff ._bgbd [_bgcf ]=_bdgd .ObjectNumber ;case *_cb .PdfObjectStream :_geff ._bgbd [_bgcf ]=_bdgd .ObjectNumber ;};};func (_fgfdbc *PdfReader )loadAnnotations (_cgadf _cb .PdfObject )([]*PdfAnnotation ,error ){_cdedf ,_bbgfc :=_cb .GetArray (_cgadf );if !_bbgfc {return nil ,_c .Errorf ("\u0041\u006e\u006e\u006fts\u0020\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0061\u0072\u0072\u0061\u0079");};var _ebdcc []*PdfAnnotation ;for _ ,_cadgg :=range _cdedf .Elements (){_cadgg =_cb .ResolveReference (_cadgg );if _ ,_bdcef :=_cadgg .(*_cb .PdfObjectNull );_bdcef {continue ;};_dcdff ,_aega :=_cadgg .(*_cb .PdfObjectDictionary );_ffbfa ,_ggeb :=_cadgg .(*_cb .PdfIndirectObject );if _aega {_ffbfa =&_cb .PdfIndirectObject {};_ffbfa .PdfObject =_dcdff ;}else {if !_ggeb {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");};};_debfe ,_ddgf :=_fgfdbc .newPdfAnnotationFromIndirectObject (_ffbfa );if _ddgf !=nil {return nil ,_ddgf ;};switch _adbfa :=_debfe .GetContext ().(type ){case *PdfAnnotationWidget :for _ ,_bafa :=range _fgfdbc .AcroForm .AllFields (){if _bafa ._addef ==_adbfa .Parent {_adbfa ._bdcc =_bafa ;break ;};};};if _debfe !=nil {_ebdcc =append (_ebdcc ,_debfe );};};return _ebdcc ,nil ;};func (_dcd *PdfReader )newPdfAnnotationFromIndirectObject (_fbc *_cb .PdfIndirectObject )(*PdfAnnotation ,error ){_aga ,_ceef :=_fbc .PdfObject .(*_cb .PdfObjectDictionary );if !_ceef {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 :=_dcd ._bffa .GetModelFromPrimitive (_aga );model !=nil {_acgf ,_dage :=model .(*PdfAnnotation );if !_dage {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 _acgf ,nil ;};_ceb :=&PdfAnnotation {};_ceb ._efd =_fbc ;_dcd ._bffa .Register (_aga ,_ceb );if _gfdf :=_aga .Get ("\u0054\u0079\u0070\u0065");_gfdf !=nil {_eae ,_cca :=_gfdf .(*_cb .PdfObjectName );if !_cca {_dbe .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",_gfdf );}else {if *_eae !="\u0041\u006e\u006eo\u0074"{_dbe .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",*_eae );};};};if _afe :=_aga .Get ("\u0052\u0065\u0063\u0074");_afe !=nil {_ceb .Rect =_afe ;};if _dgg :=_aga .Get ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073");_dgg !=nil {_ceb .Contents =_dgg ;};if _afef :=_aga .Get ("\u0050");_afef !=nil {_ceb .P =_afef ;};if _fea :=_aga .Get ("\u004e\u004d");_fea !=nil {_ceb .NM =_fea ;};if _dcca :=_aga .Get ("\u004d");_dcca !=nil {_ceb .M =_dcca ;};if _fgg :=_aga .Get ("\u0046");_fgg !=nil {_ceb .F =_fgg ;};if _fdab :=_aga .Get ("\u0041\u0050");_fdab !=nil {_ceb .AP =_fdab ;};if _ccf :=_aga .Get ("\u0041\u0053");_ccf !=nil {_ceb .AS =_ccf ;};if _gba :=_aga .Get ("\u0042\u006f\u0072\u0064\u0065\u0072");_gba !=nil {_ceb .Border =_gba ;};if _bdd :=_aga .Get ("\u0043");_bdd !=nil {_ceb .C =_bdd ;};if _gacb :=_aga .Get ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074");_gacb !=nil {_ceb .StructParent =_gacb ;};if _cdcce :=_aga .Get ("\u004f\u0043");_cdcce !=nil {_ceb .OC =_cdcce ;};_dgc :=_aga .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065");if _dgc ==nil {_dbe .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");_ceb ._gea =nil ;return _ceb ,nil ;};_eeg ,_cebf :=_dgc .(*_cb .PdfObjectName );if !_cebf {_dbe .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",_dgc );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",_dgc );};switch *_eeg {case "\u0054\u0065\u0078\u0074":_cbe ,_aaf :=_dcd .newPdfAnnotationTextFromDict (_aga );if _aaf !=nil {return nil ,_aaf ;};_cbe .PdfAnnotation =_ceb ;_ceb ._gea =_cbe ;return _ceb ,nil ;case "\u004c\u0069\u006e\u006b":_edce ,_gacc :=_dcd .newPdfAnnotationLinkFromDict (_aga );if _gacc !=nil {return nil ,_gacc ;};_edce .PdfAnnotation =_ceb ;_ceb ._gea =_edce ;return _ceb ,nil ;case "\u0046\u0072\u0065\u0065\u0054\u0065\u0078\u0074":_gag ,_afba :=_dcd .newPdfAnnotationFreeTextFromDict (_aga );if _afba !=nil {return nil ,_afba ;};_gag .PdfAnnotation =_ceb ;_ceb ._gea =_gag ;return _ceb ,nil ;case "\u004c\u0069\u006e\u0065":_fca ,_fef :=_dcd .newPdfAnnotationLineFromDict (_aga );if _fef !=nil {return nil ,_fef ;};_fca .PdfAnnotation =_ceb ;_ceb ._gea =_fca ;_dbe .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",_ceb ,_ceb );_dbe .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",_fca ,_fca );_dbe .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",_fca .PdfAnnotationMarkup ,_fca .PdfAnnotationMarkup );return _ceb ,nil ;case "\u0053\u0071\u0075\u0061\u0072\u0065":_bdg ,_gca :=_dcd .newPdfAnnotationSquareFromDict (_aga );if _gca !=nil {return nil ,_gca ;};_bdg .PdfAnnotation =_ceb ;_ceb ._gea =_bdg ;return _ceb ,nil ;case "\u0043\u0069\u0072\u0063\u006c\u0065":_dddb ,_bbbd :=_dcd .newPdfAnnotationCircleFromDict (_aga );if _bbbd !=nil {return nil ,_bbbd ;};_dddb .PdfAnnotation =_ceb ;_ceb ._gea =_dddb ;return _ceb ,nil ;case "\u0050o\u006c\u0079\u0067\u006f\u006e":_cef ,_ddfb :=_dcd .newPdfAnnotationPolygonFromDict (_aga );if _ddfb !=nil {return nil ,_ddfb ;};_cef .PdfAnnotation =_ceb ;_ceb ._gea =_cef ;return _ceb ,nil ;case "\u0050\u006f\u006c\u0079\u004c\u0069\u006e\u0065":_ffc ,_bgdf :=_dcd .newPdfAnnotationPolyLineFromDict (_aga );if _bgdf !=nil {return nil ,_bgdf ;};_ffc .PdfAnnotation =_ceb ;_ceb ._gea =_ffc ;return _ceb ,nil ;case "\u0048i\u0067\u0068\u006c\u0069\u0067\u0068t":_gbaf ,_ebb :=_dcd .newPdfAnnotationHighlightFromDict (_aga );if _ebb !=nil {return nil ,_ebb ;};_gbaf .PdfAnnotation =_ceb ;_ceb ._gea =_gbaf ;return _ceb ,nil ;case "\u0055n\u0064\u0065\u0072\u006c\u0069\u006ee":_aabd ,_gbgc :=_dcd .newPdfAnnotationUnderlineFromDict (_aga );if _gbgc !=nil {return nil ,_gbgc ;};_aabd .PdfAnnotation =_ceb ;_ceb ._gea =_aabd ;return _ceb ,nil ;case "\u0053\u0071\u0075\u0069\u0067\u0067\u006c\u0079":_fee ,_ccfb :=_dcd .newPdfAnnotationSquigglyFromDict (_aga );if _ccfb !=nil {return nil ,_ccfb ;};_fee .PdfAnnotation =_ceb ;_ceb ._gea =_fee ;return _ceb ,nil ;case "\u0053t\u0072\u0069\u006b\u0065\u004f\u0075t":_ceed ,_gcf :=_dcd .newPdfAnnotationStrikeOut (_aga );if _gcf !=nil {return nil ,_gcf ;};_ceed .PdfAnnotation =_ceb ;_ceb ._gea =_ceed ;return _ceb ,nil ;case "\u0043\u0061\u0072e\u0074":_gede ,_beb :=_dcd .newPdfAnnotationCaretFromDict (_aga );if _beb !=nil {return nil ,_beb ;};_gede .PdfAnnotation =_ceb ;_ceb ._gea =_gede ;return _ceb ,nil ;case "\u0053\u0074\u0061m\u0070":_bbbb ,_bff :=_dcd .newPdfAnnotationStampFromDict (_aga );if _bff !=nil {return nil ,_bff ;};_bbbb .PdfAnnotation =_ceb ;_ceb ._gea =_bbbb ;return _ceb ,nil ;case "\u0049\u006e\u006b":_gedca ,_cbc :=_dcd .newPdfAnnotationInkFromDict (_aga );if _cbc !=nil {return nil ,_cbc ;};_gedca .PdfAnnotation =_ceb ;_ceb ._gea =_gedca ;return _ceb ,nil ;case "\u0050\u006f\u0070u\u0070":_agb ,_adbd :=_dcd .newPdfAnnotationPopupFromDict (_aga );if _adbd !=nil {return nil ,_adbd ;};_agb .PdfAnnotation =_ceb ;_ceb ._gea =_agb ;return _ceb ,nil ;case "\u0046\u0069\u006c\u0065\u0041\u0074\u0074\u0061\u0063h\u006d\u0065\u006e\u0074":_dfge ,_bbge :=_dcd .newPdfAnnotationFileAttachmentFromDict (_aga );if _bbge !=nil {return nil ,_bbge ;};_dfge .PdfAnnotation =_ceb ;_ceb ._gea =_dfge ;return _ceb ,nil ;case "\u0053\u006f\u0075n\u0064":_cgcf ,_gcfe :=_dcd .newPdfAnnotationSoundFromDict (_aga );if _gcfe !=nil {return nil ,_gcfe ;};_cgcf .PdfAnnotation =_ceb ;_ceb ._gea =_cgcf ;return _ceb ,nil ;case "\u0052i\u0063\u0068\u004d\u0065\u0064\u0069a":_ceg ,_cega :=_dcd .newPdfAnnotationRichMediaFromDict (_aga );if _cega !=nil {return nil ,_cega ;};_ceg .PdfAnnotation =_ceb ;_ceb ._gea =_ceg ;return _ceb ,nil ;case "\u004d\u006f\u0076i\u0065":_ede ,_ccg :=_dcd .newPdfAnnotationMovieFromDict (_aga );if _ccg !=nil {return nil ,_ccg ;};_ede .PdfAnnotation =_ceb ;_ceb ._gea =_ede ;return _ceb ,nil ;case "\u0053\u0063\u0072\u0065\u0065\u006e":_beea ,_fdac :=_dcd .newPdfAnnotationScreenFromDict (_aga );if _fdac !=nil {return nil ,_fdac ;};_beea .PdfAnnotation =_ceb ;_ceb ._gea =_beea ;return _ceb ,nil ;case "\u0057\u0069\u0064\u0067\u0065\u0074":_gege ,_gbe :=_dcd .newPdfAnnotationWidgetFromDict (_aga );if _gbe !=nil {return nil ,_gbe ;};_gege .PdfAnnotation =_ceb ;_ceb ._gea =_gege ;return _ceb ,nil ;case "P\u0072\u0069\u006e\u0074\u0065\u0072\u004d\u0061\u0072\u006b":_ffe ,_egff :=_dcd .newPdfAnnotationPrinterMarkFromDict (_aga );if _egff !=nil {return nil ,_egff ;};_ffe .PdfAnnotation =_ceb ;_ceb ._gea =_ffe ;return _ceb ,nil ;case "\u0054r\u0061\u0070\u004e\u0065\u0074":_aggae ,_ccegf :=_dcd .newPdfAnnotationTrapNetFromDict (_aga );if _ccegf !=nil {return nil ,_ccegf ;};_aggae .PdfAnnotation =_ceb ;_ceb ._gea =_aggae ;return _ceb ,nil ;case "\u0057a\u0074\u0065\u0072\u006d\u0061\u0072k":_bbd ,_dfd :=_dcd .newPdfAnnotationWatermarkFromDict (_aga );if _dfd !=nil {return nil ,_dfd ;};_bbd .PdfAnnotation =_ceb ;_ceb ._gea =_bbd ;return _ceb ,nil ;case "\u0033\u0044":_ceefb ,_efde :=_dcd .newPdfAnnotation3DFromDict (_aga );if _efde !=nil {return nil ,_efde ;};_ceefb .PdfAnnotation =_ceb ;_ceb ._gea =_ceefb ;return _ceb ,nil ;case "\u0050\u0072\u006f\u006a\u0065\u0063\u0074\u0069\u006f\u006e":_daf ,_fae :=_dcd .newPdfAnnotationProjectionFromDict (_aga );if _fae !=nil {return nil ,_fae ;};_daf .PdfAnnotation =_ceb ;_ceb ._gea =_daf ;return _ceb ,nil ;case "\u0052\u0065\u0064\u0061\u0063\u0074":_dcda ,_eddb :=_dcd .newPdfAnnotationRedactFromDict (_aga );if _eddb !=nil {return nil ,_eddb ;};_dcda .PdfAnnotation =_ceb ;_ceb ._gea =_dcda ;return _ceb ,nil ;};_dbe .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",*_eeg );return nil ,nil ;};
// Hasher is the interface that wraps the basic Write method.
type Hasher interface{Write (_bbefb []byte )(_eecb int ,_eccb error );};
// HasColorspaceByName checks if the colorspace with the specified name exists in the page resources.
func (_fefg *PdfPageResources )HasColorspaceByName (keyName _cb .PdfObjectName )bool {_gadfa ,_geedg :=_fefg .GetColorspaces ();if _geedg !=nil {_dbe .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",_geedg );return false ;};if _gadfa ==nil {return false ;};_ ,_adced :=_gadfa .Colorspaces [string (keyName )];return _adced ;};
// SetVersion sets the PDF version of the output file.
func (_gfbea *PdfWriter )SetVersion (majorVersion ,minorVersion int ){_gfbea ._ecaee =majorVersion ;_gfbea ._ccefeg =minorVersion ;};
// NewPdfColorspaceDeviceGray returns a new grayscale colorspace.
func NewPdfColorspaceDeviceGray ()*PdfColorspaceDeviceGray {return &PdfColorspaceDeviceGray {}};
// ReplaceAcroForm replaces the acrobat form. It appends a new form to the Pdf which
// replaces the original AcroForm.
func (_gcgf *PdfAppender )ReplaceAcroForm (acroForm *PdfAcroForm ){if acroForm !=nil {_gcgf .updateObjectsDeep (acroForm .ToPdfObject (),nil );};_gcgf ._abbe =acroForm ;};func _afdab (_afee _cb .PdfObject ,_gdbaa *PdfReader )(*OutlineDest ,error ){_ddab ,_edbgg :=_cb .GetArray (_afee );if !_edbgg {return nil ,_bc .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");};_efdcd :=_ddab .Len ();if _efdcd < 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",_efdcd );};_bbec :=&OutlineDest {Mode :"\u0046\u0069\u0074"};_abdba :=_ddab .Get (0);if _egdb ,_dddgc :=_cb .GetIndirect (_abdba );_dddgc {if _ ,_fecef ,_bfgbg :=_gdbaa .PageFromIndirectObject (_egdb );_bfgbg ==nil {_bbec .Page =int64 (_fecef -1);}else {_dbe .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",_egdb );};_bbec .PageObj =_egdb ;}else if _ddbbc ,_cddc :=_cb .GetIntVal (_abdba );_cddc {if _ddbbc >=0&&_ddbbc < len (_gdbaa .PageList ){_bbec .PageObj =_gdbaa .PageList [_ddbbc ].GetPageAsIndirectObject ();}else {_dbe .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",_ddbbc );};_bbec .Page =int64 (_ddbbc );}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",_abdba );};_caaeb ,_edbgg :=_cb .GetNameVal (_ddab .Get (1));if !_edbgg {_dbe .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",_ddab .Get (1));return _bbec ,nil ;};switch _caaeb {case "\u0046\u0069\u0074","\u0046\u0069\u0074\u0042":case "\u0046\u0069\u0074\u0048","\u0046\u0069\u0074B\u0048":if _efdcd > 2{_bbec .Y ,_ =_cb .GetNumberAsFloat (_cb .TraceToDirectObject (_ddab .Get (2)));};case "\u0046\u0069\u0074\u0056","\u0046\u0069\u0074B\u0056":if _efdcd > 2{_bbec .X ,_ =_cb .GetNumberAsFloat (_cb .TraceToDirectObject (_ddab .Get (2)));};case "\u0058\u0059\u005a":if _efdcd > 4{_bbec .X ,_ =_cb .GetNumberAsFloat (_cb .TraceToDirectObject (_ddab .Get (2)));_bbec .Y ,_ =_cb .GetNumberAsFloat (_cb .TraceToDirectObject (_ddab .Get (3)));_bbec .Zoom ,_ =_cb .GetNumberAsFloat (_cb .TraceToDirectObject (_ddab .Get (4)));};default:_caaeb ="\u0046\u0069\u0074";};_bbec .Mode =_caaeb ;return _bbec ,nil ;};
// SetPdfModifiedDate sets the ModDate attribute of the output PDF.
func SetPdfModifiedDate (modifiedDate _d .Time ){_dfbbdb =modifiedDate };
// ToPdfObject implements interface PdfModel.
func (_bccb *PdfActionTrans )ToPdfObject ()_cb .PdfObject {_bccb .PdfAction .ToPdfObject ();_bgb :=_bccb ._fc ;_ddd :=_bgb .PdfObject .(*_cb .PdfObjectDictionary );_ddd .SetIfNotNil ("\u0053",_cb .MakeName (string (ActionTypeTrans )));_ddd .SetIfNotNil ("\u0054\u0072\u0061n\u0073",_bccb .Trans );return _bgb ;};func _dbaf ()string {if len (_adebc )> 0{return _adebc ;};return "\u0055n\u0069\u0044\u006f\u0063 \u002d\u0020\u0068\u0074\u0074p\u003a/\u002fu\u006e\u0069\u0064\u006f\u0063\u002e\u0069o";};func _aadc (_cgfc _cb .PdfObject )(*PdfColorspaceICCBased ,error ){_bbadb :=&PdfColorspaceICCBased {};if _cebe ,_agcg :=_cgfc .(*_cb .PdfIndirectObject );_agcg {_bbadb ._ebfab =_cebe ;};_cgfc =_cb .TraceToDirectObject (_cgfc );_faac ,_dfgd :=_cgfc .(*_cb .PdfObjectArray );if !_dfgd {return nil ,_c .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _faac .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");};_cgfc =_cb .TraceToDirectObject (_faac .Get (0));_ffcfd ,_dfgd :=_cgfc .(*_cb .PdfObjectName );if !_dfgd {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 *_ffcfd !="\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");};_cgfc =_faac .Get (1);_dgbef ,_dfgd :=_cb .GetStream (_cgfc );if !_dfgd {_dbe .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",_cgfc );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");};_bdgce :=_dgbef .PdfObjectDictionary ;_dgcda ,_dfgd :=_bdgce .Get ("\u004e").(*_cb .PdfObjectInteger );if !_dfgd {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 *_dgcda !=1&&*_dgcda !=3&&*_dgcda !=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");};_bbadb .N =int (*_dgcda );if _gaed :=_bdgce .Get ("\u0041l\u0074\u0065\u0072\u006e\u0061\u0074e");_gaed !=nil {_badg ,_aadb :=NewPdfColorspaceFromPdfObject (_gaed );if _aadb !=nil {return nil ,_aadb ;};_bbadb .Alternate =_badg ;};if _baeb :=_bdgce .Get ("\u0052\u0061\u006eg\u0065");_baeb !=nil {_baeb =_cb .TraceToDirectObject (_baeb );_egec ,_bbgaa :=_baeb .(*_cb .PdfObjectArray );if !_bbgaa {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 _egec .Len ()!=2*_bbadb .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");};_baee ,_fbbeg :=_egec .GetAsFloat64Slice ();if _fbbeg !=nil {return nil ,_fbbeg ;};_bbadb .Range =_baee ;}else {_bbadb .Range =make ([]float64 ,2*_bbadb .N );for _ffgf :=0;_ffgf < _bbadb .N ;_ffgf ++{_bbadb .Range [2*_ffgf ]=0.0;_bbadb .Range [2*_ffgf +1]=1.0;};};if _cbaa :=_bdgce .Get ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");_cbaa !=nil {_gcdb ,_aede :=_cbaa .(*_cb .PdfObjectStream );if !_aede {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");};_bbadb .Metadata =_gcdb ;};_fgfdg ,_afeg :=_cb .DecodeStream (_dgbef );if _afeg !=nil {return nil ,_afeg ;};_bbadb .Data =_fgfdg ;_bbadb ._cfade =_dgbef ;return _bbadb ,nil ;};
// PdfAnnotationRichMedia represents Rich Media annotations.
type PdfAnnotationRichMedia struct{*PdfAnnotation ;RichMediaSettings _cb .PdfObject ;RichMediaContent _cb .PdfObject ;};func (_gcfdg *PdfWriter )writeString (_dadad string ){if _gcfdg ._dadaf !=nil {return ;};_cfcaea ,_deebe :=_gcfdg ._eabcf .WriteString (_dadad );_gcfdg ._ceead +=int64 (_cfcaea );_gcfdg ._dadaf =_deebe ;};
// ReplacePage replaces the original page to a new page.
func (_dfb *PdfAppender )ReplacePage (pageNum int ,page *PdfPage ){_cccf :=pageNum -1;for _dccf :=range _dfb ._dgce {if _dccf ==_cccf {_dbde :=page .Duplicate ();_eggaf (_dbde );_dfb ._dgce [_dccf ]=_dbde ;};};};
// 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 (_bbdd *PdfColorspaceLab )ColorFromPdfObjects (objects []_cb .PdfObject )(PdfColor ,error ){if len (objects )!=3{return nil ,_bc .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_dfbg ,_cadc :=_cb .GetNumbersAsFloat (objects );if _cadc !=nil {return nil ,_cadc ;};return _bbdd .ColorFromFloats (_dfbg );};
// Set applies flag fl to the flag's bitmask and returns the combined flag.
func (_dafd FieldFlag )Set (fl FieldFlag )FieldFlag {return FieldFlag (_dafd .Mask ()|fl .Mask ())};func _bgac (_ffcf *PdfPage )map[_cb .PdfObjectName ]_cb .PdfObject {_ggag :=make (map[_cb .PdfObjectName ]_cb .PdfObject );if _ffcf .Resources ==nil {return _ggag ;};if _ffcf .Resources .Font !=nil {if _ecgb ,_edcb :=_cb .GetDict (_ffcf .Resources .Font );_edcb {for _ ,_dac :=range _ecgb .Keys (){_ggag [_dac ]=_ecgb .Get (_dac );};};};if _ffcf .Resources .ExtGState !=nil {if _bcfd ,_bdgg :=_cb .GetDict (_ffcf .Resources .ExtGState );_bdgg {for _ ,_afbaf :=range _bcfd .Keys (){_ggag [_afbaf ]=_bcfd .Get (_afbaf );};};};if _ffcf .Resources .XObject !=nil {if _eda ,_cagd :=_cb .GetDict (_ffcf .Resources .XObject );_cagd {for _ ,_efec :=range _eda .Keys (){_ggag [_efec ]=_eda .Get (_efec );};};};if _ffcf .Resources .Pattern !=nil {if _daag ,_agdd :=_cb .GetDict (_ffcf .Resources .Pattern );_agdd {for _ ,_ddcbd :=range _daag .Keys (){_ggag [_ddcbd ]=_daag .Get (_ddcbd );};};};if _ffcf .Resources .Shading !=nil {if _fgcg ,_ebbe :=_cb .GetDict (_ffcf .Resources .Shading );_ebbe {for _ ,_cebd :=range _fgcg .Keys (){_ggag [_cebd ]=_fgcg .Get (_cebd );};};};if _ffcf .Resources .ProcSet !=nil {if _gcec ,_fgdg :=_cb .GetDict (_ffcf .Resources .ProcSet );_fgdg {for _ ,_cfdd :=range _gcec .Keys (){_ggag [_cfdd ]=_gcec .Get (_cfdd );};};};if _ffcf .Resources .Properties !=nil {if _geaa ,_cfgd :=_cb .GetDict (_ffcf .Resources .Properties );_cfgd {for _ ,_aedb :=range _geaa .Keys (){_ggag [_aedb ]=_geaa .Get (_aedb );};};};return _ggag ;};func (_efbbb *fontFile )parseASCIIPart (_fgaaa []byte )error {if len (_fgaaa )< 2||string (_fgaaa [:2])!="\u0025\u0021"{return _bc .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");};_cdbde ,_egefe ,_bdbfe :=_gbfb (_fgaaa );if _bdbfe !=nil {return _bdbfe ;};_efege :=_ggdab (_cdbde );_efbbb ._abcae =_efege ["\u0046\u006f\u006e\u0074\u004e\u0061\u006d\u0065"];if _efbbb ._abcae ==""{_dbe .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 _egefe !=""{_gbcfg ,_ccefa :=_eabf (_egefe );if _ccefa !=nil {return _ccefa ;};_ceae ,_ccefa :=_ccb .NewCustomSimpleTextEncoder (_gbcfg ,nil );if _ccefa !=nil {_dbe .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",_ccefa );return nil ;};_efbbb ._fefc =_ceae ;};return nil ;};func _gfdc (_aeed ,_edbg string )string {if _fe .Contains (_aeed ,"\u002b"){_dfad :=_fe .Split (_aeed ,"\u002b");if len (_dfad )==2{_aeed =_dfad [1];};};return _edbg +"\u002b"+_aeed ;};
// ToPdfObject implements interface PdfModel.
func (_baaa *PdfAnnotationTrapNet )ToPdfObject ()_cb .PdfObject {_baaa .PdfAnnotation .ToPdfObject ();_agcb :=_baaa ._efd ;_eeef :=_agcb .PdfObject .(*_cb .PdfObjectDictionary );_eeef .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_cb .MakeName ("\u0054r\u0061\u0070\u004e\u0065\u0074"));return _agcb ;};
// 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 _bb .ReadSeeker )(*PdfReader ,error ){_eaefc :=&PdfReader {_cgba :rs ,_fage :map[_cb .PdfObject ]struct{}{},_bffa :_ccdg (),_cbfab :true };_cadf ,_bfgc :=_cb .NewParser (rs );if _bfgc !=nil {return nil ,_bfgc ;};_eaefc ._gfecg =_cadf ;_afed ,_bfgc :=_eaefc .IsEncrypted ();if _bfgc !=nil {return nil ,_bfgc ;};if !_afed {_bfgc =_eaefc .loadStructure ();if _bfgc !=nil {return nil ,_bfgc ;};};return _eaefc ,nil ;};
// Val returns the value of the color.
func (_agcce *PdfColorCalGray )Val ()float64 {return float64 (*_agcce )};
// PdfColorspaceDeviceGray represents a grayscale colorspace.
type PdfColorspaceDeviceGray struct{};
// ToPdfObject implements interface PdfModel.
func (_bfaf *PdfAnnotationHighlight )ToPdfObject ()_cb .PdfObject {_bfaf .PdfAnnotation .ToPdfObject ();_abad :=_bfaf ._efd ;_degc :=_abad .PdfObject .(*_cb .PdfObjectDictionary );_bfaf .PdfAnnotationMarkup .appendToPdfDictionary (_degc );_degc .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_cb .MakeName ("\u0048i\u0067\u0068\u006c\u0069\u0067\u0068t"));_degc .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_bfaf .QuadPoints );return _abad ;};
// GetNumComponents returns the number of color components of the underlying
// colorspace device.
func (_efdb *PdfColorspaceSpecialPattern )GetNumComponents ()int {return _efdb .UnderlyingCS .GetNumComponents ();};
// ToGoImage converts the unidoc Image to a golang Image structure.
func (_dbda *Image )ToGoImage ()(_ca .Image ,error ){_dbe .Log .Trace ("\u0043\u006f\u006e\u0076er\u0074\u0069\u006e\u0067\u0020\u0074\u006f\u0020\u0067\u006f\u0020\u0069\u006d\u0061g\u0065");_gadgc ,_eecge :=_ac .NewImage (int (_dbda .Width ),int (_dbda .Height ),int (_dbda .BitsPerComponent ),_dbda .ColorComponents ,_dbda .Data ,_dbda ._ddffb ,_dbda ._cceeg );if _eecge !=nil {return nil ,_eecge ;};return _gadgc ,nil ;};
// DefaultImageHandler is the default implementation of the ImageHandler using the standard go library.
type DefaultImageHandler struct{};
// ToPdfObject converts the pdfFontSimple to its PDF representation for outputting.
func (_feeb *pdfFontSimple )ToPdfObject ()_cb .PdfObject {if _feeb ._bdadb ==nil {_feeb ._bdadb =&_cb .PdfIndirectObject {};};_dedc :=_feeb .baseFields ().asPdfObjectDictionary ("");_feeb ._bdadb .PdfObject =_dedc ;if _feeb .FirstChar !=nil {_dedc .Set ("\u0046i\u0072\u0073\u0074\u0043\u0068\u0061r",_feeb .FirstChar );};if _feeb .LastChar !=nil {_dedc .Set ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072",_feeb .LastChar );};if _feeb .Widths !=nil {_dedc .Set ("\u0057\u0069\u0064\u0074\u0068\u0073",_feeb .Widths );};if _feeb .Encoding !=nil {_dedc .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_feeb .Encoding );}else if _feeb ._egffg !=nil {_aafbg :=_feeb ._egffg .ToPdfObject ();if _aafbg !=nil {_dedc .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_aafbg );};};return _feeb ._bdadb ;};
// GetNumComponents returns the number of color components of the colorspace device.
// Returns 1 for a grayscale device.
func (_fcgdcc *PdfColorspaceDeviceGray )GetNumComponents ()int {return 1};
// PdfAnnotationPolyLine represents PolyLine annotations.
// (Section 12.5.6.9).
type PdfAnnotationPolyLine struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Vertices _cb .PdfObject ;LE _cb .PdfObject ;BS _cb .PdfObject ;IC _cb .PdfObject ;BE _cb .PdfObject ;IT _cb .PdfObject ;Measure _cb .PdfObject ;};
// ToPdfObject implements interface PdfModel.
func (_fgb *PdfActionMovie )ToPdfObject ()_cb .PdfObject {_fgb .PdfAction .ToPdfObject ();_fcgf :=_fgb ._fc ;_daa :=_fcgf .PdfObject .(*_cb .PdfObjectDictionary );_daa .SetIfNotNil ("\u0053",_cb .MakeName (string (ActionTypeMovie )));_daa .SetIfNotNil ("\u0041\u006e\u006e\u006f\u0074\u0061\u0074\u0069\u006f\u006e",_fgb .Annotation );_daa .SetIfNotNil ("\u0054",_fgb .T );_daa .SetIfNotNil ("\u004fp\u0065\u0072\u0061\u0074\u0069\u006fn",_fgb .Operation );return _fcgf ;};
// SetAnnotations sets the annotations list.
func (_fbcc *PdfPage )SetAnnotations (annotations []*PdfAnnotation ){_fbcc ._dcgde =annotations };
// DecodeArray returns the range of color component values in CalRGB colorspace.
func (_cgfa *PdfColorspaceCalRGB )DecodeArray ()[]float64 {return []float64 {0.0,1.0,0.0,1.0,0.0,1.0};};
// 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 (_gecd *PdfColorspaceCalRGB )ColorFromPdfObjects (objects []_cb .PdfObject )(PdfColor ,error ){if len (objects )!=3{return nil ,_bc .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_fabc ,_fgcaf :=_cb .GetNumbersAsFloat (objects );if _fgcaf !=nil {return nil ,_fgcaf ;};return _gecd .ColorFromFloats (_fabc );};
// IsRadio returns true if the button field represents a radio button, false otherwise.
func (_ceefe *PdfFieldButton )IsRadio ()bool {return _ceefe .GetType ()==ButtonTypeRadio };
// 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 (_gacf *PdfFont )SubsetRegistered ()error {switch _fgea :=_gacf ._cdfe .(type ){case *pdfFontType0 :_bbgc :=_fgea .subsetRegistered ();if _bbgc !=nil {_dbe .Log .Debug ("\u0053\u0075b\u0073\u0065\u0074 \u0065\u0072\u0072\u006f\u0072\u003a\u0020\u0025\u0076",_bbgc );return _bbgc ;};if _fgea ._ggbe !=nil {if _fgea ._ggdg !=nil {_fgea ._ggdg .ToPdfObject ();};_fgea .ToPdfObject ();};default:_dbe .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",_fgea );};return nil ;};func (_fcad *PdfReader )newPdfAnnotationStampFromDict (_eecg *_cb .PdfObjectDictionary )(*PdfAnnotationStamp ,error ){_gfee :=PdfAnnotationStamp {};_baeg ,_ceec :=_fcad .newPdfAnnotationMarkupFromDict (_eecg );if _ceec !=nil {return nil ,_ceec ;};_gfee .PdfAnnotationMarkup =_baeg ;_gfee .Name =_eecg .Get ("\u004e\u0061\u006d\u0065");return &_gfee ,nil ;};
// GetContentStreamWithEncoder returns the pattern cell's content stream and its encoder
func (_fdgec *PdfTilingPattern )GetContentStreamWithEncoder ()([]byte ,_cb .StreamEncoder ,error ){_fdabf ,_bgbgc :=_fdgec ._gbdd .(*_cb .PdfObjectStream );if !_bgbgc {_dbe .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",_fdgec ._gbdd );return nil ,nil ,_cb .ErrTypeError ;};_fccba ,_aaccc :=_cb .DecodeStream (_fdabf );if _aaccc !=nil {_dbe .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",_aaccc );return nil ,nil ,_aaccc ;};_fcaa ,_aaccc :=_cb .NewEncoderFromStream (_fdabf );if _aaccc !=nil {_dbe .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",_aaccc );return nil ,nil ,_aaccc ;};return _fccba ,_fcaa ,nil ;};
// Register registers (caches) a model to primitive object relationship.
func (_efdg *modelManager )Register (primitive _cb .PdfObject ,model PdfModel ){_efdg ._geed [model ]=primitive ;_efdg ._dcff [primitive ]=model ;};
// ToPdfObject implements interface PdfModel.
func (_bdcb *PdfAnnotationLink )ToPdfObject ()_cb .PdfObject {_bdcb .PdfAnnotation .ToPdfObject ();_bebgf :=_bdcb ._efd ;_geece :=_bebgf .PdfObject .(*_cb .PdfObjectDictionary );_geece .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_cb .MakeName ("\u004c\u0069\u006e\u006b"));if _bdcb ._afb !=nil &&_bdcb ._afb ._ab !=nil {_geece .Set ("\u0041",_bdcb ._afb ._ab .ToPdfObject ());}else if _bdcb .A !=nil {_geece .Set ("\u0041",_bdcb .A );};_geece .SetIfNotNil ("\u0044\u0065\u0073\u0074",_bdcb .Dest );_geece .SetIfNotNil ("\u0048",_bdcb .H );_geece .SetIfNotNil ("\u0050\u0041",_bdcb .PA );_geece .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_bdcb .QuadPoints );_geece .SetIfNotNil ("\u0042\u0053",_bdcb .BS );return _bebgf ;};
// PdfShadingType6 is a Coons patch mesh.
type PdfShadingType6 struct{*PdfShading ;BitsPerCoordinate *_cb .PdfObjectInteger ;BitsPerComponent *_cb .PdfObjectInteger ;BitsPerFlag *_cb .PdfObjectInteger ;Decode *_cb .PdfObjectArray ;Function []PdfFunction ;};const (BorderStyleSolid BorderStyle =iota ;BorderStyleDashed BorderStyle =iota ;BorderStyleBeveled BorderStyle =iota ;BorderStyleInset BorderStyle =iota ;BorderStyleUnderline BorderStyle =iota ;);var _ebcd =_e .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");
// ImageToRGB returns the passed in image. Method exists in order to satisfy
// the PdfColorspace interface.
func (_fdbe *PdfColorspaceDeviceRGB )ImageToRGB (img Image )(Image ,error ){return img ,nil };
// MergePageWith appends page content to source Pdf file page content.
func (_gfdd *PdfAppender )MergePageWith (pageNum int ,page *PdfPage )error {_fdge :=pageNum -1;var _aeffb *PdfPage ;for _bbdf ,_fbge :=range _gfdd ._dgce {if _bbdf ==_fdge {_aeffb =_fbge ;};};if _aeffb ==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 _aeffb ._adbf !=nil &&_aeffb ._adbf .GetParser ()==_gfdd ._acgg ._gfecg {_aeffb =_aeffb .Duplicate ();_gfdd ._dgce [_fdge ]=_aeffb ;};page =page .Duplicate ();_eggaf (page );_eeea :=_bgac (_aeffb );_ceagb :=_bgac (page );_adg :=make (map[_cb .PdfObjectName ]_cb .PdfObjectName );for _baf :=range _ceagb {if _ ,_bbga :=_eeea [_baf ];_bbga {for _faa :=1;true ;_faa ++{_efegb :=_cb .PdfObjectName (string (_baf )+_eb .Itoa (_faa ));if _ ,_fcfe :=_eeea [_efegb ];!_fcfe {_adg [_baf ]=_efegb ;break ;};};};};_gaad ,_agec :=page .GetContentStreams ();if _agec !=nil {return _agec ;};_cfbg ,_agec :=_aeffb .GetContentStreams ();if _agec !=nil {return _agec ;};for _dbdc ,_cfdb :=range _gaad {for _geaf ,_aac :=range _adg {_cfdb =_fe .Replace (_cfdb ,"\u002f"+string (_geaf ),"\u002f"+string (_aac ),-1);};_gaad [_dbdc ]=_cfdb ;};_cfbg =append (_cfbg ,_gaad ...);if _febg :=_aeffb .SetContentStreams (_cfbg ,_cb .NewFlateEncoder ());_febg !=nil {return _febg ;};for _ ,_geafd :=range page ._dcgde {_aeffb ._dcgde =append (_aeffb ._dcgde ,_geafd );};if _aeffb .Resources ==nil {_aeffb .Resources =NewPdfPageResources ();};if page .Resources !=nil {_aeffb .Resources .Font =_gfdd .mergeResources (_aeffb .Resources .Font ,page .Resources .Font ,_adg );_aeffb .Resources .XObject =_gfdd .mergeResources (_aeffb .Resources .XObject ,page .Resources .XObject ,_adg );_aeffb .Resources .Properties =_gfdd .mergeResources (_aeffb .Resources .Properties ,page .Resources .Properties ,_adg );if _aeffb .Resources .ProcSet ==nil {_aeffb .Resources .ProcSet =page .Resources .ProcSet ;};_aeffb .Resources .Shading =_gfdd .mergeResources (_aeffb .Resources .Shading ,page .Resources .Shading ,_adg );_aeffb .Resources .ExtGState =_gfdd .mergeResources (_aeffb .Resources .ExtGState ,page .Resources .ExtGState ,_adg );};_gdca ,_agec :=_aeffb .GetMediaBox ();if _agec !=nil {return _agec ;};_bffe ,_agec :=page .GetMediaBox ();if _agec !=nil {return _agec ;};var _cccd bool ;if _gdca .Llx > _bffe .Llx {_gdca .Llx =_bffe .Llx ;_cccd =true ;};if _gdca .Lly > _bffe .Lly {_gdca .Lly =_bffe .Lly ;_cccd =true ;};if _gdca .Urx < _bffe .Urx {_gdca .Urx =_bffe .Urx ;_cccd =true ;};if _gdca .Ury < _bffe .Ury {_gdca .Ury =_bffe .Ury ;_cccd =true ;};if _cccd {_aeffb .MediaBox =_gdca ;};return nil ;};
// NewPdfAnnotationWidget returns an initialized annotation widget.
func NewPdfAnnotationWidget ()*PdfAnnotationWidget {_cfaa :=NewPdfAnnotation ();_dae :=&PdfAnnotationWidget {};_dae .PdfAnnotation =_cfaa ;_cfaa .SetContext (_dae );return _dae ;};
// ToPdfObject implements interface PdfModel.
func (_baa *PdfActionGoTo )ToPdfObject ()_cb .PdfObject {_baa .PdfAction .ToPdfObject ();_gc :=_baa ._fc ;_ea :=_gc .PdfObject .(*_cb .PdfObjectDictionary );_ea .SetIfNotNil ("\u0053",_cb .MakeName (string (ActionTypeGoTo )));_ea .SetIfNotNil ("\u0044",_baa .D );return _gc ;};
// 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 *_cb .PdfObjectName ;Colorants _cb .PdfObject ;Process _cb .PdfObject ;MixingHints _cb .PdfObject ;_afgb *_cb .PdfIndirectObject ;};func (_begb *PdfReader )newPdfAnnotationUnderlineFromDict (_eed *_cb .PdfObjectDictionary )(*PdfAnnotationUnderline ,error ){_fced :=PdfAnnotationUnderline {};_dgga ,_bfff :=_begb .newPdfAnnotationMarkupFromDict (_eed );if _bfff !=nil {return nil ,_bfff ;};_fced .PdfAnnotationMarkup =_dgga ;_fced .QuadPoints =_eed .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");return &_fced ,nil ;};
// SetDate sets the `M` field of the signature.
func (_eeeae *PdfSignature )SetDate (date _d .Time ,format string ){if format ==""{format ="\u0044\u003a\u003200\u0036\u0030\u0031\u0030\u0032\u0031\u0035\u0030\u0034\u0030\u0035\u002d\u0030\u0037\u0027\u0030\u0030\u0027";};_eeeae .M =_cb .MakeString (date .Format (format ));};
// Fill populates `form` with values provided by `provider`.
func (_gedbb *PdfAcroForm )Fill (provider FieldValueProvider )error {return _gedbb .fill (provider ,nil )};func (_fdddg PdfFont )actualFont ()pdfFont {if _fdddg ._cdfe ==nil {_dbe .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",_fdddg );};return _fdddg ._cdfe ;};
// 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 (_fbfa *pdfFontSimple )SetEncoder (encoder _ccb .TextEncoder ){_fbfa ._egffg =encoder };
// GetIndirectObjectByNumber retrieves and returns a specific PdfObject by object number.
func (_egdfe *PdfReader )GetIndirectObjectByNumber (number int )(_cb .PdfObject ,error ){_abeec ,_gbdf :=_egdfe ._gfecg .LookupByNumber (number );return _abeec ,_gbdf ;};
// ToPdfObject implements interface PdfModel.
func (_ec *PdfAction )ToPdfObject ()_cb .PdfObject {_dg :=_ec ._fc ;_ada :=_dg .PdfObject .(*_cb .PdfObjectDictionary );_ada .Clear ();_ada .Set ("\u0054\u0079\u0070\u0065",_cb .MakeName ("\u0041\u0063\u0074\u0069\u006f\u006e"));_ada .SetIfNotNil ("\u0053",_ec .S );_ada .SetIfNotNil ("\u004e\u0065\u0078\u0074",_ec .Next );return _dg ;};
// NewPdfAnnotationText returns a new text annotation.
func NewPdfAnnotationText ()*PdfAnnotationText {_fafe :=NewPdfAnnotation ();_adag :=&PdfAnnotationText {};_adag .PdfAnnotation =_fafe ;_adag .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_fafe .SetContext (_adag );return _adag ;};
// GetColorspaceByName returns the colorspace with the specified name from the page resources.
func (_cefc *PdfPageResources )GetColorspaceByName (keyName _cb .PdfObjectName )(PdfColorspace ,bool ){_eeafc ,_dgecb :=_cefc .GetColorspaces ();if _dgecb !=nil {_dbe .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",_dgecb );return nil ,false ;};if _eeafc ==nil {return nil ,false ;};_fgcfa ,_adcaa :=_eeafc .Colorspaces [string (keyName )];if !_adcaa {return nil ,false ;};return _fgcfa ,true ;};func _dgcf (_eaade *[]*PdfField ,_eaggc FieldFilterFunc ,_gdeef bool )[]*PdfField {if _eaade ==nil {return nil ;};_gecge :=*_eaade ;if len (*_eaade )==0{return nil ;};_dcccbd :=_gecge [:0];if _eaggc ==nil {_eaggc =func (*PdfField )bool {return true };};var _gbeg []*PdfField ;for _ ,_fbce :=range _gecge {_aefebb :=_eaggc (_fbce );if _aefebb {_gbeg =append (_gbeg ,_fbce );if len (_fbce .Kids )> 0{_gbeg =append (_gbeg ,_dgcf (&_fbce .Kids ,_eaggc ,_gdeef )...);};};if !_gdeef ||!_aefebb ||len (_fbce .Kids )> 0{_dcccbd =append (_dcccbd ,_fbce );};};*_eaade =_dcccbd ;return _gbeg ;};
// GetCapHeight returns the CapHeight of the font `descriptor`.
func (_fbebe *PdfFontDescriptor )GetCapHeight ()(float64 ,error ){return _cb .GetNumberAsFloat (_fbebe .CapHeight );};func _fdeba (_bbff *PdfField )[]*PdfField {_fbdce :=[]*PdfField {_bbff };for _ ,_bgfg :=range _bbff .Kids {_fbdce =append (_fbdce ,_fdeba (_bgfg )...);};return _fbdce ;};func (_bbba *PdfReader )newPdfActionURIFromDict (_bfag *_cb .PdfObjectDictionary )(*PdfActionURI ,error ){return &PdfActionURI {URI :_bfag .Get ("\u0055\u0052\u0049"),IsMap :_bfag .Get ("\u0049\u0073\u004da\u0070")},nil ;};
// CharMetrics represents width and height metrics of a glyph.
type CharMetrics =_af .CharMetrics ;
// ButtonType represents the subtype of a button field, can be one of:
// - Checkbox (ButtonTypeCheckbox)
// - PushButton (ButtonTypePushButton)
// - RadioButton (ButtonTypeRadioButton)
type ButtonType int ;
// PdfColorspaceLab is a L*, a*, b* 3 component colorspace.
type PdfColorspaceLab struct{WhitePoint []float64 ;BlackPoint []float64 ;Range []float64 ;_ddee *_cb .PdfIndirectObject ;};
// Write writes out the PDF.
func (_bcebf *PdfWriter )Write (writer _bb .Writer )error {_dbe .Log .Trace ("\u0057r\u0069\u0074\u0065\u0028\u0029");_deefd :=_da .GetLicenseKey ();if (_deefd ==nil ||!_deefd .IsLicensed ())&&!_fgfg {_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 _bc .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 _bcebf ._eadf !=nil {_dbe .Log .Trace ("\u004f\u0075t\u006c\u0069\u006ee\u0054\u0072\u0065\u0065\u003a\u0020\u0025\u002b\u0076",_bcebf ._eadf );_eabbc :=_bcebf ._eadf .ToPdfObject ();_dbe .Log .Trace ("\u004fu\u0074\u006c\u0069\u006e\u0065\u0073\u003a\u0020\u0025\u002b\u0076 \u0028\u0025\u0054\u002c\u0020\u0070\u003a\u0025\u0070\u0029",_eabbc ,_eabbc ,_eabbc );_bcebf ._fgfb .Set ("\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0073",_eabbc );_feddc :=_bcebf .addObjects (_eabbc );if _feddc !=nil {return _feddc ;};};if _bcebf ._aeegd !=nil {_dbe .Log .Trace ("\u0057r\u0069t\u0069\u006e\u0067\u0020\u0061c\u0072\u006f \u0066\u006f\u0072\u006d\u0073");_badfec :=_bcebf ._aeegd .ToPdfObject ();_dbe .Log .Trace ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d\u003a\u0020\u0025\u002b\u0076",_badfec );_bcebf ._fgfb .Set ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d",_badfec );_aabee :=_bcebf .addObjects (_badfec );if _aabee !=nil {return _aabee ;};};for _ccggc ,_acaec :=range _bcebf ._gbcba {if !_bcebf .hasObject (_ccggc ){_dbe .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",_ccggc ,_ccggc ,_ccggc );for _ ,_ebegc :=range _acaec {for _ ,_abacg :=range _ebegc .Keys (){_ggbcf :=_ebegc .Get (_abacg );if _ggbcf ==_ccggc {_dbe .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");_ebegc .Set (_abacg ,_cb .MakeNull ());break ;};};};};};_bcebf ._fgfb .Set ("\u0056e\u0072\u0073\u0069\u006f\u006e",_cb .MakeName (_c .Sprintf ("\u0025\u0064\u002e%\u0064",_bcebf ._ecaee ,_bcebf ._ccefeg )));_bcebf .copyObjects ();if _bcebf ._agfcf !=nil {var _ccgee error ;_bcebf ._bgega ,_ccgee =_bcebf ._agfcf .Optimize (_bcebf ._bgega );if _ccgee !=nil {return _ccgee ;};_dbcbg :=make (map[_cb .PdfObject ]struct{},len (_bcebf ._bgega ));for _ ,_gddfa :=range _bcebf ._bgega {_dbcbg [_gddfa ]=struct{}{};};_bcebf ._bbbbd =_dbcbg ;};_bcebf ._ceead =_bcebf ._aedbee ;_bcebf ._eabcf =_f .NewWriter (writer );_bgade :=_bcebf ._ecaee > 1||(_bcebf ._ecaee ==1&&_bcebf ._ccefeg > 4);if _bcebf ._ddfdba !=nil {_bgade =*_bcebf ._ddfdba ;};_eccaf :=make (map[_cb .PdfObject ]bool );for _ ,_ffeb :=range _bcebf ._bgega {if _dabdb ,_cdefd :=_ffeb .(*_cb .PdfObjectStreams );_cdefd {_bgade =true ;for _ ,_ccaea :=range _dabdb .Elements (){_eccaf [_ccaea ]=true ;if _efeab ,_acac :=_ccaea .(*_cb .PdfIndirectObject );_acac {_eccaf [_efeab .PdfObject ]=true ;};};};};if _bgade &&_bcebf ._ecaee ==1&&_bcebf ._ccefeg < 5{_bcebf ._ccefeg =5;};if _bcebf ._gedaa {_bcebf .writeString ("\u000a");}else {_bcebf .writeString (_c .Sprintf ("\u0025\u0025\u0050D\u0046\u002d\u0025\u0064\u002e\u0025\u0064\u000a",_bcebf ._ecaee ,_bcebf ._ccefeg ));_bcebf .writeString ("\u0025\u00e2\u00e3\u00cf\u00d3\u000a");};_bcebf .updateObjectNumbers ();_dbe .Log .Trace ("\u0057\u0072\u0069\u0074\u0069\u006e\u0067\u0020\u0025d\u0020\u006f\u0062\u006a",len (_bcebf ._bgega ));_bcebf ._gebf =make (map[int ]crossReference );_bcebf ._gebf [0]=crossReference {Type :0,ObjectNumber :0,Generation :0xFFFF};if _bcebf ._afefg .ObjectMap !=nil {for _dcbee ,_edcg :=range _bcebf ._afefg .ObjectMap {if _dcbee ==0{continue ;};if _edcg .XType ==_cb .XrefTypeObjectStream {_gabcf :=crossReference {Type :2,ObjectNumber :_edcg .OsObjNumber ,Index :_edcg .OsObjIndex };_bcebf ._gebf [_dcbee ]=_gabcf ;};if _edcg .XType ==_cb .XrefTypeTableEntry {_gbafe :=crossReference {Type :1,ObjectNumber :_edcg .ObjectNumber ,Offset :_edcg .Offset };_bcebf ._gebf [_dcbee ]=_gbafe ;};};};for _ ,_dggc :=range _bcebf ._bgega {if _edbcdd :=_eccaf [_dggc ];_edbcdd {continue ;};_fgbd :=int64 (0);switch _dadea :=_dggc .(type ){case *_cb .PdfIndirectObject :_fgbd =_dadea .ObjectNumber ;case *_cb .PdfObjectStream :_fgbd =_dadea .ObjectNumber ;case *_cb .PdfObjectStreams :_fgbd =_dadea .ObjectNumber ;default:_dbe .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",_dggc );return ErrTypeCheck ;};if _bcebf ._ccaec !=nil &&_dggc !=_bcebf ._fggd {_cfgef :=_bcebf ._ccaec .Encrypt (_dggc ,int64 (_fgbd ),0);if _cfgef !=nil {_dbe .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",_cfgef );return _cfgef ;};};_bcebf .writeObject (int (_fgbd ),_dggc );};_fdebgg :=_bcebf ._ceead ;var _afedg int ;for _ccfgf :=range _bcebf ._gebf {if _ccfgf > _afedg {_afedg =_ccfgf ;};};if _bgade {_aaaed :=_afedg +1;_bcebf ._gebf [_aaaed ]=crossReference {Type :1,ObjectNumber :_aaaed ,Offset :_fdebgg };_agddd :=_bbb .NewBuffer (nil );_fgacg :=_cb .MakeArray ();for _ccfdc :=0;_ccfdc <=_afedg ;{for ;_ccfdc <=_afedg ;_ccfdc ++{_gbcdb ,_bacb :=_bcebf ._gebf [_ccfdc ];if _bacb &&(!_bcebf ._gedaa ||_bcebf ._gedaa &&(_gbcdb .Type ==1&&_gbcdb .Offset >=_bcebf ._dbbcc ||_gbcdb .Type ==0)){break ;};};var _bdbge int ;for _bdbge =_ccfdc +1;_bdbge <=_afedg ;_bdbge ++{_bdcfa ,_cgeed :=_bcebf ._gebf [_bdbge ];if _cgeed &&(!_bcebf ._gedaa ||_bcebf ._gedaa &&(_bdcfa .Type ==1&&_bdcfa .Offset > _bcebf ._dbbcc )){continue ;};break ;};_fgacg .Append (_cb .MakeInteger (int64 (_ccfdc )),_cb .MakeInteger (int64 (_bdbge -_ccfdc )));for _abcag :=_ccfdc ;_abcag < _bdbge ;_abcag ++{_ccecg :=_bcebf ._gebf [_abcag ];switch _ccecg .Type {case 0:_aa .Write (_agddd ,_aa .BigEndian ,byte (0));_aa .Write (_agddd ,_aa .BigEndian ,uint32 (0));_aa .Write (_agddd ,_aa .BigEndian ,uint16 (0xFFFF));case 1:_aa .Write (_agddd ,_aa .BigEndian ,byte (1));_aa .Write (_agddd ,_aa .BigEndian ,uint32 (_ccecg .Offset ));_aa .Write (_agddd ,_aa .BigEndian ,uint16 (_ccecg .Generation ));case 2:_aa .Write (_agddd ,_aa .BigEndian ,byte (2));_aa .Write (_agddd ,_aa .BigEndian ,uint32 (_ccecg .ObjectNumber ));_aa .Write (_agddd ,_aa .BigEndian ,uint16 (_ccecg .Index ));};};_ccfdc =_bdbge +1;};_gcgfa ,_cbde :=_cb .MakeStream (_agddd .Bytes (),_cb .NewFlateEncoder ());if _cbde !=nil {return _cbde ;};_gcgfa .ObjectNumber =int64 (_aaaed );_gcgfa .PdfObjectDictionary .Set ("\u0054\u0079\u0070\u0065",_cb .MakeName ("\u0058\u0052\u0065\u0066"));_gcgfa .PdfObjectDictionary .Set ("\u0057",_cb .MakeArray (_cb .MakeInteger (1),_cb .MakeInteger (4),_cb .MakeInteger (2)));_gcgfa .PdfObjectDictionary .Set ("\u0049\u006e\u0064e\u0078",_fgacg );_gcgfa .PdfObjectDictionary .Set ("\u0053\u0069\u007a\u0065",_cb .MakeInteger (int64 (_aaaed +1)));_gcgfa .PdfObjectDictionary .Set ("\u0049\u006e\u0066\u006f",_bcebf ._ggdd );_gcgfa .PdfObjectDictionary .Set ("\u0052\u006f\u006f\u0074",_bcebf ._becda );if _bcebf ._gedaa &&_bcebf ._adfgd > 0{_gcgfa .PdfObjectDictionary .Set ("\u0050\u0072\u0065\u0076",_cb .MakeInteger (_bcebf ._adfgd ));};if _bcebf ._ccaec !=nil {_gcgfa .Set ("\u0045n\u0063\u0072\u0079\u0070\u0074",_bcebf ._fggd );_gcgfa .Set ("\u0049\u0044",_bcebf ._efab );_dbe .Log .Trace ("\u0049d\u0073\u003a\u0020\u0025\u0073",_bcebf ._efab );};_bcebf .writeObject (int (_gcgfa .ObjectNumber ),_gcgfa );}else {_bcebf .writeString ("\u0078\u0072\u0065\u0066\u000d\u000a");for _dbefc :=0;_dbefc <=_afedg ;{for ;_dbefc <=_afedg ;_dbefc ++{_efeaa ,_ceaaa :=_bcebf ._gebf [_dbefc ];if _ceaaa &&(!_bcebf ._gedaa ||_bcebf ._gedaa &&(_efeaa .Type ==1&&_efeaa .Offset >=_bcebf ._dbbcc ||_efeaa .Type ==0)){break ;};};var _ecaag int ;for _ecaag =_dbefc +1;_ecaag <=_afedg ;_ecaag ++{_abbfdc ,_ggggc :=_bcebf ._gebf [_ecaag ];if _ggggc &&(!_bcebf ._gedaa ||_bcebf ._gedaa &&(_abbfdc .Type ==1&&_abbfdc .Offset > _bcebf ._dbbcc )){continue ;};break ;};_egege :=_c .Sprintf ("\u0025d\u0020\u0025\u0064\u000d\u000a",_dbefc ,_ecaag -_dbefc );_bcebf .writeString (_egege );for _eegb :=_dbefc ;_eegb < _ecaag ;_eegb ++{_caeea :=_bcebf ._gebf [_eegb ];switch _caeea .Type {case 0:_egege =_c .Sprintf ("\u0025\u002e\u0031\u0030\u0064\u0020\u0025\u002e\u0035d\u0020\u0066\u000d\u000a",0,65535);_bcebf .writeString (_egege );case 1:_egege =_c .Sprintf ("\u0025\u002e\u0031\u0030\u0064\u0020\u0025\u002e\u0035d\u0020\u006e\u000d\u000a",_caeea .Offset ,0);_bcebf .writeString (_egege );};};_dbefc =_ecaag +1;};_aeeb :=_cb .MakeDict ();_aeeb .Set ("\u0049\u006e\u0066\u006f",_bcebf ._ggdd );_aeeb .Set ("\u0052\u006f\u006f\u0074",_bcebf ._becda );_aeeb .Set ("\u0053\u0069\u007a\u0065",_cb .MakeInteger (int64 (_afedg +1)));if _bcebf ._gedaa &&_bcebf ._adfgd > 0{_aeeb .Set ("\u0050\u0072\u0065\u0076",_cb .MakeInteger (_bcebf ._adfgd ));};if _bcebf ._ccaec !=nil {_aeeb .Set ("\u0045n\u0063\u0072\u0079\u0070\u0074",_bcebf ._fggd );_aeeb .Set ("\u0049\u0044",_bcebf ._efab );_dbe .Log .Trace ("\u0049d\u0073\u003a\u0020\u0025\u0073",_bcebf ._efab );};_bcebf .writeString ("\u0074\u0072\u0061\u0069\u006c\u0065\u0072\u000a");_bcebf .writeString (_aeeb .WriteString ());_bcebf .writeString ("\u000a");};_agfca :=_c .Sprintf ("\u0073\u0074\u0061\u0072\u0074\u0078\u0072\u0065\u0066\u000a\u0025\u0064\u000a",_fdebgg );_bcebf .writeString (_agfca );_bcebf .writeString ("\u0025\u0025\u0045\u004f\u0046\u000a");if _bcebf ._dadaf ==nil {_bcebf ._dadaf =_bcebf ._eabcf .Flush ();};return _bcebf ._dadaf ;};func _gddb ()string {return _cebffbc };
// NewPdfAnnotationPolyLine returns a new polyline annotation.
func NewPdfAnnotationPolyLine ()*PdfAnnotationPolyLine {_bcdc :=NewPdfAnnotation ();_fgc :=&PdfAnnotationPolyLine {};_fgc .PdfAnnotation =_bcdc ;_fgc .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_bcdc .SetContext (_fgc );return _fgc ;};
// PdfAnnotationInk represents Ink annotations.
// (Section 12.5.6.13).
type PdfAnnotationInk struct{*PdfAnnotation ;*PdfAnnotationMarkup ;InkList _cb .PdfObject ;BS _cb .PdfObject ;};
// Evaluate runs the function on the passed in slice and returns the results.
func (_ecgge *PdfFunctionType2 )Evaluate (x []float64 )([]float64 ,error ){if len (x )!=1{_dbe .Log .Error ("\u004f\u006e\u006c\u0079 o\u006e\u0065\u0020\u0069\u006e\u0070\u0075\u0074\u0020\u0061\u006c\u006c\u006f\u0077e\u0064");return nil ,_bc .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_ffae :=[]float64 {0.0};if _ecgge .C0 !=nil {_ffae =_ecgge .C0 ;};_eedfd :=[]float64 {1.0};if _ecgge .C1 !=nil {_eedfd =_ecgge .C1 ;};var _fcbae []float64 ;for _dade :=0;_dade < len (_ffae );_dade ++{_eccef :=_ffae [_dade ]+_ag .Pow (x [0],_ecgge .N )*(_eedfd [_dade ]-_ffae [_dade ]);_fcbae =append (_fcbae ,_eccef );};return _fcbae ,nil ;};func (_gga *PdfReader )newPdfAnnotationSquigglyFromDict (_gcfa *_cb .PdfObjectDictionary )(*PdfAnnotationSquiggly ,error ){_dgfg :=PdfAnnotationSquiggly {};_geac ,_edg :=_gga .newPdfAnnotationMarkupFromDict (_gcfa );if _edg !=nil {return nil ,_edg ;};_dgfg .PdfAnnotationMarkup =_geac ;_dgfg .QuadPoints =_gcfa .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");return &_dgfg ,nil ;};
// String returns a string representation of what flags are set.
func (_aaeg FieldFlag )String ()string {_fdebg :="";if _aaeg ==FieldFlagClear {_fdebg ="\u0043\u006c\u0065a\u0072";return _fdebg ;};if _aaeg &FieldFlagReadOnly > 0{_fdebg +="\u007cR\u0065\u0061\u0064\u004f\u006e\u006cy";};if _aaeg &FieldFlagRequired > 0{_fdebg +="\u007cR\u0065\u0061\u0064\u004f\u006e\u006cy";};if _aaeg &FieldFlagNoExport > 0{_fdebg +="\u007cN\u006f\u0045\u0078\u0070\u006f\u0072t";};if _aaeg &FieldFlagNoToggleToOff > 0{_fdebg +="\u007c\u004e\u006f\u0054\u006f\u0067\u0067\u006c\u0065T\u006f\u004f\u0066\u0066";};if _aaeg &FieldFlagRadio > 0{_fdebg +="\u007c\u0052\u0061\u0064\u0069\u006f";};if _aaeg &FieldFlagPushbutton > 0{_fdebg +="|\u0050\u0075\u0073\u0068\u0062\u0075\u0074\u0074\u006f\u006e";};if _aaeg &FieldFlagRadiosInUnision > 0{_fdebg +="\u007c\u0052a\u0064\u0069\u006fs\u0049\u006e\u0055\u006e\u0069\u0073\u0069\u006f\u006e";};if _aaeg &FieldFlagMultiline > 0{_fdebg +="\u007c\u004d\u0075\u006c\u0074\u0069\u006c\u0069\u006e\u0065";};if _aaeg &FieldFlagPassword > 0{_fdebg +="\u007cP\u0061\u0073\u0073\u0077\u006f\u0072d";};if _aaeg &FieldFlagFileSelect > 0{_fdebg +="|\u0046\u0069\u006c\u0065\u0053\u0065\u006c\u0065\u0063\u0074";};if _aaeg &FieldFlagDoNotScroll > 0{_fdebg +="\u007c\u0044\u006fN\u006f\u0074\u0053\u0063\u0072\u006f\u006c\u006c";};if _aaeg &FieldFlagComb > 0{_fdebg +="\u007c\u0043\u006fm\u0062";};if _aaeg &FieldFlagRichText > 0{_fdebg +="\u007cR\u0069\u0063\u0068\u0054\u0065\u0078t";};if _aaeg &FieldFlagDoNotSpellCheck > 0{_fdebg +="\u007c\u0044o\u004e\u006f\u0074S\u0070\u0065\u006c\u006c\u0043\u0068\u0065\u0063\u006b";};if _aaeg &FieldFlagCombo > 0{_fdebg +="\u007c\u0043\u006f\u006d\u0062\u006f";};if _aaeg &FieldFlagEdit > 0{_fdebg +="\u007c\u0045\u0064i\u0074";};if _aaeg &FieldFlagSort > 0{_fdebg +="\u007c\u0053\u006fr\u0074";};if _aaeg &FieldFlagMultiSelect > 0{_fdebg +="\u007c\u004d\u0075l\u0074\u0069\u0053\u0065\u006c\u0065\u0063\u0074";};if _aaeg &FieldFlagCommitOnSelChange > 0{_fdebg +="\u007cC\u006fm\u006d\u0069\u0074\u004f\u006eS\u0065\u006cC\u0068\u0061\u006e\u0067\u0065";};return _fe .Trim (_fdebg ,"\u007c");};
// PdfVersion returns version of the PDF file.
func (_bfcbe *PdfReader )PdfVersion ()_cb .Version {return _bfcbe ._gfecg .PdfVersion ()};
// ToPdfObject implements interface PdfModel.
func (_bbdg *PdfAnnotationText )ToPdfObject ()_cb .PdfObject {_bbdg .PdfAnnotation .ToPdfObject ();_cdaf :=_bbdg ._efd ;_gbf :=_cdaf .PdfObject .(*_cb .PdfObjectDictionary );if _bbdg .PdfAnnotationMarkup !=nil {_bbdg .PdfAnnotationMarkup .appendToPdfDictionary (_gbf );};_gbf .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_cb .MakeName ("\u0054\u0065\u0078\u0074"));_gbf .SetIfNotNil ("\u004f\u0070\u0065\u006e",_bbdg .Open );_gbf .SetIfNotNil ("\u004e\u0061\u006d\u0065",_bbdg .Name );_gbf .SetIfNotNil ("\u0053\u0074\u0061t\u0065",_bbdg .State );_gbf .SetIfNotNil ("\u0053\u0074\u0061\u0074\u0065\u004d\u006f\u0064\u0065\u006c",_bbdg .StateModel );return _cdaf ;};
// A returns the value of the A component of the color.
func (_fafd *PdfColorLab )A ()float64 {return float64 (_fafd [1])};