unipdf/model/model.go
2020-09-28 23:18:17 +00:00

2615 lines
636 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 (_e "bufio";_bg "bytes";_fg "encoding/binary";_fce "errors";_d "fmt";_fca "github.com/unidoc/unipdf/v3/common";_aa "github.com/unidoc/unipdf/v3/common/license";_fd "github.com/unidoc/unipdf/v3/core";_ce "github.com/unidoc/unipdf/v3/core/security";_af "github.com/unidoc/unipdf/v3/core/security/crypt";_agg "github.com/unidoc/unipdf/v3/internal/cmap";_gd "github.com/unidoc/unipdf/v3/internal/imageutil";_ddf "github.com/unidoc/unipdf/v3/internal/sampling";_gf "github.com/unidoc/unipdf/v3/internal/textencoding";_aaf "github.com/unidoc/unipdf/v3/model/internal/fonts";_fe "github.com/unidoc/unipdf/v3/ps";_afe "github.com/unidoc/unitype";_cea "golang.org/x/xerrors";_dg "image";_c "image/color";_ "image/gif";_ "image/png";_fc "io";_ec "io/ioutil";_ff "math";_dd "math/rand";_ab "os";_ag "regexp";_fb "sort";_ca "strconv";_gc "strings";_b "time";_g "unicode";_gb "unicode/utf8";);
// 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 *_fd .PdfObjectInteger ;ColorSpace PdfColorspace ;Background *_fd .PdfObjectArray ;BBox *PdfRectangle ;AntiAlias *_fd .PdfObjectBool ;_ebbcbe PdfModel ;_bcgcg _fd .PdfObject ;};func (_cdg *PdfReader )newPdfActionURIFromDict (_bfe *_fd .PdfObjectDictionary )(*PdfActionURI ,error ){return &PdfActionURI {URI :_bfe .Get ("\u0055\u0052\u0049"),IsMap :_bfe .Get ("\u0049\u0073\u004da\u0070")},nil ;};
// Normalize swaps (Llx,Urx) if Urx < Llx, and (Lly,Ury) if Ury < Lly.
func (_fbab *PdfRectangle )Normalize (){if _fbab .Llx > _fbab .Urx {_fbab .Llx ,_fbab .Urx =_fbab .Urx ,_fbab .Llx ;};if _fbab .Lly > _fbab .Ury {_fbab .Lly ,_fbab .Ury =_fbab .Ury ,_fbab .Lly ;};};func (_bbf *PdfAnnotation )String ()string {_cgfe :="";_ffcg ,_cca :=_bbf .ToPdfObject ().(*_fd .PdfIndirectObject );if _cca {_cgfe =_d .Sprintf ("\u0025\u0054\u003a\u0020\u0025\u0073",_bbf ._ccd ,_ffcg .PdfObject .String ());};return _cgfe ;};func (_cadf *PdfReader )newPdfAnnotationRedactFromDict (_gabb *_fd .PdfObjectDictionary )(*PdfAnnotationRedact ,error ){_fae :=PdfAnnotationRedact {};_effg ,_geb :=_cadf .newPdfAnnotationMarkupFromDict (_gabb );if _geb !=nil {return nil ,_geb ;};_fae .PdfAnnotationMarkup =_effg ;_fae .QuadPoints =_gabb .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");_fae .IC =_gabb .Get ("\u0049\u0043");_fae .RO =_gabb .Get ("\u0052\u004f");_fae .OverlayText =_gabb .Get ("O\u0076\u0065\u0072\u006c\u0061\u0079\u0054\u0065\u0078\u0074");_fae .Repeat =_gabb .Get ("\u0052\u0065\u0070\u0065\u0061\u0074");_fae .DA =_gabb .Get ("\u0044\u0041");_fae .Q =_gabb .Get ("\u0051");return &_fae ,nil ;};
// DecodeArray returns the range of color component values in DeviceCMYK colorspace.
func (_dgbf *PdfColorspaceDeviceCMYK )DecodeArray ()[]float64 {return []float64 {0.0,1.0,0.0,1.0,0.0,1.0,0.0,1.0};};
// GetCharMetrics returns the char metrics for character code `code`.
func (_faeb pdfCIDFontType0 )GetCharMetrics (code _gf .CharCode )(_aaf .CharMetrics ,bool ){_gcafc :=_faeb ._bbda ;if _dabgb ,_cbdeb :=_faeb ._cadad [code ];_cbdeb {_gcafc =_dabgb ;};return _aaf .CharMetrics {Wx :_gcafc },true ;};func _dge (_ggegf _fd .PdfObject )(*PdfBorderStyle ,error ){_bccbc :=&PdfBorderStyle {};_bccbc ._fefdb =_ggegf ;var _gggc *_fd .PdfObjectDictionary ;_ggegf =_fd .TraceToDirectObject (_ggegf );_gggc ,_edbf :=_ggegf .(*_fd .PdfObjectDictionary );if !_edbf {return nil ,_fce .New ("\u0074\u0079\u0070\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};if _gfcf :=_gggc .Get ("\u0054\u0079\u0070\u0065");_gfcf !=nil {_feac ,_dbabd :=_gfcf .(*_fd .PdfObjectName );if !_dbabd {_fca .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",_gfcf );}else {if *_feac !="\u0042\u006f\u0072\u0064\u0065\u0072"{_fca .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",*_feac );};};};if _ccbfb :=_gggc .Get ("\u0057");_ccbfb !=nil {_eab ,_ecac :=_fd .GetNumberAsFloat (_ccbfb );if _ecac !=nil {_fca .Log .Debug ("\u0045\u0072\u0072\u006fr \u0072\u0065\u0074\u0072\u0069\u0065\u0076\u0069\u006e\u0067\u0020\u0057\u003a\u0020%\u0076",_ecac );return nil ,_ecac ;};_bccbc .W =&_eab ;};if _aefe :=_gggc .Get ("\u0053");_aefe !=nil {_gbgfe ,_ffgg :=_aefe .(*_fd .PdfObjectName );if !_ffgg {return nil ,_fce .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 _bcdf BorderStyle ;switch *_gbgfe {case "\u0053":_bcdf =BorderStyleSolid ;case "\u0044":_bcdf =BorderStyleDashed ;case "\u0042":_bcdf =BorderStyleBeveled ;case "\u0049":_bcdf =BorderStyleInset ;case "\u0055":_bcdf =BorderStyleUnderline ;default:_fca .Log .Debug ("I\u006e\u0076\u0061\u006cid\u0020s\u0074\u0079\u006c\u0065\u0020n\u0061\u006d\u0065\u0020\u0025\u0073",*_gbgfe );return nil ,_fce .New ("\u0073\u0074\u0079\u006ce \u0074\u0079\u0070\u0065\u0020\u0072\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065c\u006b");};_bccbc .S =&_bcdf ;};if _gbea :=_gggc .Get ("\u0044");_gbea !=nil {_aee ,_ggdc :=_gbea .(*_fd .PdfObjectArray );if !_ggdc {_fca .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",_gbea );return nil ,_fce .New ("\u0062o\u0072\u0064\u0065\u0072 \u0044\u0020\u0074\u0079\u0070e\u0020c\u0068e\u0063\u006b\u0020\u0065\u0072\u0072\u006fr");};_cfgc ,_cec :=_aee .ToIntegerArray ();if _cec !=nil {_fca .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",_cec );return nil ,_cec ;};_bccbc .D =&_cfgc ;};return _bccbc ,nil ;};
// PdfActionRendition represents a Rendition action.
type PdfActionRendition struct{*PdfAction ;R _fd .PdfObject ;AN _fd .PdfObject ;OP _fd .PdfObject ;JS _fd .PdfObject ;};
// SetXObjectByName adds the XObject from the passed in stream to the page resources.
// The added XObject is identified by the specified name.
func (_efaad *PdfPageResources )SetXObjectByName (keyName _fd .PdfObjectName ,stream *_fd .PdfObjectStream )error {if _efaad .XObject ==nil {_efaad .XObject =_fd .MakeDict ();};_abebe :=_fd .TraceToDirectObject (_efaad .XObject );_dgfed ,_cedeg :=_abebe .(*_fd .PdfObjectDictionary );if !_cedeg {_fca .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",_efaad .XObject ,_abebe );return _fce .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_dgfed .Set (keyName ,stream );return nil ;};
// ToPdfObject implements interface PdfModel.
func (_eb *PdfActionGoTo )ToPdfObject ()_fd .PdfObject {_eb .PdfAction .ToPdfObject ();_cfbd :=_eb ._fgb ;_bce :=_cfbd .PdfObject .(*_fd .PdfObjectDictionary );_bce .SetIfNotNil ("\u0053",_fd .MakeName (string (ActionTypeGoTo )));_bce .SetIfNotNil ("\u0044",_eb .D );return _cfbd ;};var _agcgg =_ag .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");
// SetFontByName sets the font specified by keyName to the given object.
func (_ddbed *PdfPageResources )SetFontByName (keyName _fd .PdfObjectName ,obj _fd .PdfObject )error {if _ddbed .Font ==nil {_ddbed .Font =_fd .MakeDict ();};_aabbe ,_eecg :=_fd .TraceToDirectObject (_ddbed .Font ).(*_fd .PdfObjectDictionary );if !_eecg {_fca .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",_fd .TraceToDirectObject (_ddbed .Font ));return _fd .ErrTypeError ;};_aabbe .Set (keyName ,obj );return nil ;};
// GetContainingPdfObject returns the container of the image object (indirect object).
func (_daffc *XObjectImage )GetContainingPdfObject ()_fd .PdfObject {return _daffc ._acbee };
// GetAnnotations returns the list of page annotations for `page`. If not loaded attempts to load the
// annotations, otherwise returns the loaded list.
func (_aebfab *PdfPage )GetAnnotations ()([]*PdfAnnotation ,error ){if _aebfab ._bfedf !=nil {return _aebfab ._bfedf ,nil ;};if _aebfab .Annots ==nil {_aebfab ._bfedf =[]*PdfAnnotation {};return nil ,nil ;};if _aebfab ._gccea ==nil {_aebfab ._bfedf =[]*PdfAnnotation {};return nil ,nil ;};_bcdea ,_eccb :=_aebfab ._gccea .loadAnnotations (_aebfab .Annots );if _eccb !=nil {return nil ,_eccb ;};if _bcdea ==nil {_aebfab ._bfedf =[]*PdfAnnotation {};};_aebfab ._bfedf =_bcdea ;return _aebfab ._bfedf ,nil ;};
// PdfAnnotationFileAttachment represents FileAttachment annotations.
// (Section 12.5.6.15).
type PdfAnnotationFileAttachment struct{*PdfAnnotation ;*PdfAnnotationMarkup ;FS _fd .PdfObject ;Name _fd .PdfObject ;};
// PdfAnnotationPopup represents Popup annotations.
// (Section 12.5.6.14).
type PdfAnnotationPopup struct{*PdfAnnotation ;Parent _fd .PdfObject ;Open _fd .PdfObject ;};func (_ddged *PdfAppender )addNewObject (_gcceb _fd .PdfObject ){if _ ,_efff :=_ddged ._baef [_gcceb ];!_efff {_ddged ._efe =append (_ddged ._efe ,_gcceb );_ddged ._baef [_gcceb ]=struct{}{};};};
// ToPdfObject implements interface PdfModel.
func (_ffg *PdfAction )ToPdfObject ()_fd .PdfObject {_dgf :=_ffg ._fgb ;_cd :=_dgf .PdfObject .(*_fd .PdfObjectDictionary );_cd .Clear ();_cd .Set ("\u0054\u0079\u0070\u0065",_fd .MakeName ("\u0041\u0063\u0074\u0069\u006f\u006e"));_cd .SetIfNotNil ("\u0053",_ffg .S );_cd .SetIfNotNil ("\u004e\u0065\u0078\u0074",_ffg .Next );return _dgf ;};func _dcdc ()string {return _dfegb };
// 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 (_aefgag *PdfPage )SetContentStreams (cStreams []string ,encoder _fd .StreamEncoder )error {if len (cStreams )==0{_aefgag .Contents =nil ;return nil ;};if encoder ==nil {encoder =_fd .NewRawEncoder ();};var _fegag []*_fd .PdfObjectStream ;for _ ,_fedgg :=range cStreams {_dggca :=&_fd .PdfObjectStream {};_eggcd :=encoder .MakeStreamDict ();_bacda ,_ccfec :=encoder .EncodeBytes ([]byte (_fedgg ));if _ccfec !=nil {return _ccfec ;};_eggcd .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_fd .MakeInteger (int64 (len (_bacda ))));_dggca .PdfObjectDictionary =_eggcd ;_dggca .Stream =[]byte (_bacda );_fegag =append (_fegag ,_dggca );};if len (_fegag )==1{_aefgag .Contents =_fegag [0];}else {_eaggf :=_fd .MakeArray ();for _ ,_bccgf :=range _fegag {_eaggf .Append (_bccgf );};_aefgag .Contents =_eaggf ;};return nil ;};
// DecodeArray returns an empty slice as there are no components associated with pattern colorspace.
func (_ggag *PdfColorspaceSpecialPattern )DecodeArray ()[]float64 {return []float64 {}};
// ColorFromPdfObjects returns a new PdfColor based on the input slice of color
// component PDF objects.
func (_fccgb *PdfColorspaceICCBased )ColorFromPdfObjects (objects []_fd .PdfObject )(PdfColor ,error ){if _fccgb .Alternate ==nil {if _fccgb .N ==1{_adba :=NewPdfColorspaceDeviceGray ();return _adba .ColorFromPdfObjects (objects );}else if _fccgb .N ==3{_begc :=NewPdfColorspaceDeviceRGB ();return _begc .ColorFromPdfObjects (objects );}else if _fccgb .N ==4{_fbgc :=NewPdfColorspaceDeviceCMYK ();return _fbgc .ColorFromPdfObjects (objects );}else {return nil ,_fce .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 _fccgb .Alternate .ColorFromPdfObjects (objects );};
// NewPdfAnnotationPolyLine returns a new polyline annotation.
func NewPdfAnnotationPolyLine ()*PdfAnnotationPolyLine {_gef :=NewPdfAnnotation ();_ebb :=&PdfAnnotationPolyLine {};_ebb .PdfAnnotation =_gef ;_ebb .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_gef .SetContext (_ebb );return _ebb ;};func _gdff (_faebc *PdfField )[]*PdfField {_gecc :=[]*PdfField {_faebc };for _ ,_cefce :=range _faebc .Kids {_gecc =append (_gecc ,_gdff (_cefce )...);};return _gecc ;};
// UpdatePage updates the `page` in the new revision if it has changed.
func (_fggd *PdfAppender )UpdatePage (page *PdfPage ){_fggd .updateObjectsDeep (page .ToPdfObject (),nil )};
// SetContext sets the specific fielddata type, e.g. would be PdfFieldButton for a button field.
func (_faaf *PdfField )SetContext (ctx PdfModel ){_faaf ._cacd =ctx };
// GetContainingPdfObject returns the container of the outline (indirect object).
func (_dcgd *PdfOutline )GetContainingPdfObject ()_fd .PdfObject {return _dcgd ._addc };func (_ddb *PdfReader )newPdfActionNamedFromDict (_ecb *_fd .PdfObjectDictionary )(*PdfActionNamed ,error ){return &PdfActionNamed {N :_ecb .Get ("\u004e")},nil ;};
// NewPdfSignature creates a new PdfSignature object.
func NewPdfSignature (handler SignatureHandler )*PdfSignature {_agcb :=&PdfSignature {Type :_fd .MakeName ("\u0053\u0069\u0067"),Handler :handler };_gbcac :=&pdfSignDictionary {PdfObjectDictionary :_fd .MakeDict (),_bedac :&handler ,_beded :_agcb };_agcb ._bcbba =_fd .MakeIndirectObject (_gbcac );return _agcb ;};func _ebeb (_defed *PdfField ,_gacdf _fd .PdfObject )error {switch _defed .GetContext ().(type ){case *PdfFieldText :switch _dggbde :=_gacdf .(type ){case *_fd .PdfObjectName :_dbdef :=_dggbde ;_fca .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",_dbdef .String ());_defed .V =_fd .MakeEncodedString (_dggbde .String (),true );case *_fd .PdfObjectString :_defed .V =_fd .MakeEncodedString (_dggbde .String (),true );default:_fca .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",_dggbde ,_dggbde );};case *PdfFieldButton :switch _gacdf .(type ){case *_fd .PdfObjectName :if len (_gacdf .String ())> 0{_defed .V =_gacdf ;_caacc (_defed ,_gacdf );};case *_fd .PdfObjectString :if len (_gacdf .String ())> 0{_defed .V =_fd .MakeName (_gacdf .String ());_caacc (_defed ,_defed .V );};default:_fca .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",_defed .PartialName (),_gacdf );_defed .V =_gacdf ;};case *PdfFieldChoice :switch _gacdf .(type ){case *_fd .PdfObjectName :if len (_gacdf .String ())> 0{_defed .V =_fd .MakeString (_gacdf .String ());_caacc (_defed ,_gacdf );};case *_fd .PdfObjectString :if len (_gacdf .String ())> 0{_defed .V =_gacdf ;_caacc (_defed ,_fd .MakeName (_gacdf .String ()));};default:_fca .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",_defed .PartialName (),_gacdf );_defed .V =_gacdf ;};case *PdfFieldSignature :_fca .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",_defed .PartialName (),_gacdf );};return nil ;};
// GetNumComponents returns the number of color components (4 for CMYK32).
func (_fagg *PdfColorDeviceCMYK )GetNumComponents ()int {return 4};
// DecodeArray returns the component range values for the Indexed colorspace.
func (_fdfb *PdfColorspaceSpecialIndexed )DecodeArray ()[]float64 {return []float64 {0,float64 (_fdfb .HiVal )};};
// NewPdfColorDeviceRGB returns a new PdfColorDeviceRGB based on the r,g,b component values.
func NewPdfColorDeviceRGB (r ,g ,b float64 )*PdfColorDeviceRGB {_cdgg :=PdfColorDeviceRGB {r ,g ,b };return &_cdgg ;};
// Clear clears flag fl from the flag and returns the resulting flag.
func (_ecda FieldFlag )Clear (fl FieldFlag )FieldFlag {return FieldFlag (_ecda .Mask ()&^fl .Mask ())};
// ToPdfObject implements interface PdfModel.
func (_edf *PdfActionSubmitForm )ToPdfObject ()_fd .PdfObject {_edf .PdfAction .ToPdfObject ();_cfe :=_edf ._fgb ;_fed :=_cfe .PdfObject .(*_fd .PdfObjectDictionary );_fed .SetIfNotNil ("\u0053",_fd .MakeName (string (ActionTypeSubmitForm )));if _edf .F !=nil {_fed .Set ("\u0046",_edf .F .ToPdfObject ());};_fed .SetIfNotNil ("\u0046\u0069\u0065\u006c\u0064\u0073",_edf .Fields );_fed .SetIfNotNil ("\u0046\u006c\u0061g\u0073",_edf .Flags );return _cfe ;};func _begg (_agbb _fd .PdfObject )(*PdfColorspaceCalRGB ,error ){_eeadf :=NewPdfColorspaceCalRGB ();if _gcdf ,_eebba :=_agbb .(*_fd .PdfIndirectObject );_eebba {_eeadf ._eaff =_gcdf ;};_agbb =_fd .TraceToDirectObject (_agbb );_cfddd ,_dbac :=_agbb .(*_fd .PdfObjectArray );if !_dbac {return nil ,_d .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _cfddd .Len ()!=2{return nil ,_d .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0043\u0061\u006c\u0052G\u0042 \u0063o\u006c\u006f\u0072\u0073\u0070\u0061\u0063e");};_agbb =_fd .TraceToDirectObject (_cfddd .Get (0));_gfeb ,_dbac :=_agbb .(*_fd .PdfObjectName );if !_dbac {return nil ,_d .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 *_gfeb !="\u0043\u0061\u006c\u0052\u0047\u0042"{return nil ,_d .Errorf ("\u006e\u006f\u0074 a\u0020\u0043\u0061\u006c\u0052\u0047\u0042\u0020\u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063\u0065");};_agbb =_fd .TraceToDirectObject (_cfddd .Get (1));_geff ,_dbac :=_agbb .(*_fd .PdfObjectDictionary );if !_dbac {return nil ,_d .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");};_agbb =_geff .Get ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074");_agbb =_fd .TraceToDirectObject (_agbb );_bdce ,_dbac :=_agbb .(*_fd .PdfObjectArray );if !_dbac {return nil ,_d .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 _bdce .Len ()!=3{return nil ,_d .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");};_fgce ,_efaaf :=_bdce .GetAsFloat64Slice ();if _efaaf !=nil {return nil ,_efaaf ;};_eeadf .WhitePoint =_fgce ;_agbb =_geff .Get ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074");if _agbb !=nil {_agbb =_fd .TraceToDirectObject (_agbb );_aedef ,_dcge :=_agbb .(*_fd .PdfObjectArray );if !_dcge {return nil ,_d .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 _aedef .Len ()!=3{return nil ,_d .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");};_efgb ,_ecaa :=_aedef .GetAsFloat64Slice ();if _ecaa !=nil {return nil ,_ecaa ;};_eeadf .BlackPoint =_efgb ;};_agbb =_geff .Get ("\u0047\u0061\u006dm\u0061");if _agbb !=nil {_agbb =_fd .TraceToDirectObject (_agbb );_feefe ,_aage :=_agbb .(*_fd .PdfObjectArray );if !_aage {return nil ,_d .Errorf ("C\u0061\u006c\u0052\u0047B:\u0020I\u006e\u0076\u0061\u006c\u0069d\u0020\u0047\u0061\u006d\u006d\u0061");};if _feefe .Len ()!=3{return nil ,_d .Errorf ("C\u0061\u006c\u0052\u0047\u0042\u003a \u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0047a\u006d\u006d\u0061 \u0061r\u0072\u0061\u0079");};_bbga ,_gggg :=_feefe .GetAsFloat64Slice ();if _gggg !=nil {return nil ,_gggg ;};_eeadf .Gamma =_bbga ;};_agbb =_geff .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");if _agbb !=nil {_agbb =_fd .TraceToDirectObject (_agbb );_ecacg ,_dcged :=_agbb .(*_fd .PdfObjectArray );if !_dcged {return nil ,_d .Errorf ("\u0043\u0061\u006c\u0052GB\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u004d\u0061\u0074\u0072i\u0078");};if _ecacg .Len ()!=9{_fca .Log .Error ("\u004d\u0061t\u0072\u0069\u0078 \u0061\u0072\u0072\u0061\u0079\u003a\u0020\u0025\u0073",_ecacg .String ());return nil ,_d .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");};_edcga ,_abgc :=_ecacg .GetAsFloat64Slice ();if _abgc !=nil {return nil ,_abgc ;};_eeadf .Matrix =_edcga ;};return _eeadf ,nil ;};
// SetPdfProducer sets the Producer attribute of the output PDF.
func SetPdfProducer (producer string ){_daee =producer };func _dade (_abefd *fontCommon )*pdfFontSimple {return &pdfFontSimple {fontCommon :*_abefd }};func (_fcgcc *PdfReader )resolveReference (_fgcf *_fd .PdfObjectReference )(_fd .PdfObject ,bool ,error ){_bdgedc ,_gfce :=_fcgcc ._egbge .ObjCache [int (_fgcf .ObjectNumber )];if !_gfce {_fca .Log .Trace ("R\u0065\u0061\u0064\u0065r \u004co\u006f\u006b\u0075\u0070\u0020r\u0065\u0066\u003a\u0020\u0025\u0073",_fgcf );_fcdde ,_eadec :=_fcgcc ._egbge .LookupByReference (*_fgcf );if _eadec !=nil {return nil ,false ,_eadec ;};_fcgcc ._egbge .ObjCache [int (_fgcf .ObjectNumber )]=_fcdde ;return _fcdde ,false ,nil ;};return _bdgedc ,true ,nil ;};
// GetOCProperties returns the optional content properties PdfObject.
func (_cegfa *PdfReader )GetOCProperties ()(_fd .PdfObject ,error ){_eebee :=_cegfa ._bfcbd ;_efadg :=_eebee .Get ("\u004f\u0043\u0050r\u006f\u0070\u0065\u0072\u0074\u0069\u0065\u0073");_efadg =_fd .ResolveReference (_efadg );if !_cegfa ._ebeae {_deabc :=_cegfa .traverseObjectData (_efadg );if _deabc !=nil {return nil ,_deabc ;};};return _efadg ,nil ;};
// NewPdfAnnotationFileAttachment returns a new file attachment annotation.
func NewPdfAnnotationFileAttachment ()*PdfAnnotationFileAttachment {_dedc :=NewPdfAnnotation ();_aag :=&PdfAnnotationFileAttachment {};_aag .PdfAnnotation =_dedc ;_aag .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_dedc .SetContext (_aag );return _aag ;};
// K returns the value of the key component of the color.
func (_ddaga *PdfColorDeviceCMYK )K ()float64 {return float64 (_ddaga [3])};func (_ddgf *PdfShading )getShadingDict ()(*_fd .PdfObjectDictionary ,error ){_bdcbf :=_ddgf ._bcgcg ;if _cgfac ,_dadfa :=_bdcbf .(*_fd .PdfIndirectObject );_dadfa {_abgg ,_faedg :=_cgfac .PdfObject .(*_fd .PdfObjectDictionary );if !_faedg {return nil ,_fd .ErrTypeError ;};return _abgg ,nil ;}else if _facaea ,_beeea :=_bdcbf .(*_fd .PdfObjectStream );_beeea {return _facaea .PdfObjectDictionary ,nil ;}else if _fbebe ,_fbdbg :=_bdcbf .(*_fd .PdfObjectDictionary );_fbdbg {return _fbebe ,nil ;}else {_fca .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 ,_fd .ErrTypeError ;};};
// ColorToRGB converts gray -> rgb for a single color component.
func (_edeg *PdfColorspaceDeviceGray )ColorToRGB (color PdfColor )(PdfColor ,error ){_ddac ,_fadf :=color .(*PdfColorDeviceGray );if !_fadf {_fca .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 ,_fce .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};return NewPdfColorDeviceRGB (float64 (*_ddac ),float64 (*_ddac ),float64 (*_ddac )),nil ;};var _bdde =_ag .MustCompile ("\u005b\\\u006e\u005c\u0072\u005d\u002b");
// ToPdfObject implements interface PdfModel.
func (_cedf *PdfAnnotationScreen )ToPdfObject ()_fd .PdfObject {_cedf .PdfAnnotation .ToPdfObject ();_gfa :=_cedf ._defg ;_acfc :=_gfa .PdfObject .(*_fd .PdfObjectDictionary );_acfc .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fd .MakeName ("\u0053\u0063\u0072\u0065\u0065\u006e"));_acfc .SetIfNotNil ("\u0054",_cedf .T );_acfc .SetIfNotNil ("\u004d\u004b",_cedf .MK );_acfc .SetIfNotNil ("\u0041",_cedf .A );_acfc .SetIfNotNil ("\u0041\u0041",_cedf .AA );return _gfa ;};func _bbfde (_eefdf *_fd .PdfObjectDictionary )(*PdfShadingType3 ,error ){_facaa :=PdfShadingType3 {};_gcebc :=_eefdf .Get ("\u0043\u006f\u006f\u0072\u0064\u0073");if _gcebc ==nil {_fca .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 ;};_cdefe ,_eddf :=_gcebc .(*_fd .PdfObjectArray );if !_eddf {_fca .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",_gcebc );return nil ,_fd .ErrTypeError ;};if _cdefe .Len ()!=6{_fca .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",_cdefe .Len ());return nil ,ErrInvalidAttribute ;};_facaa .Coords =_cdefe ;if _daeb :=_eefdf .Get ("\u0044\u006f\u006d\u0061\u0069\u006e");_daeb !=nil {_daeb =_fd .TraceToDirectObject (_daeb );_cgabb ,_fcge :=_daeb .(*_fd .PdfObjectArray );if !_fcge {_fca .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",_daeb );return nil ,_fd .ErrTypeError ;};_facaa .Domain =_cgabb ;};_gcebc =_eefdf .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");if _gcebc ==nil {_fca .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 ;};_facaa .Function =[]PdfFunction {};if _bdaf ,_gdgd :=_gcebc .(*_fd .PdfObjectArray );_gdgd {for _ ,_cdgfc :=range _bdaf .Elements (){_cbcge ,_babe :=_fagc (_cdgfc );if _babe !=nil {_fca .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",_babe );return nil ,_babe ;};_facaa .Function =append (_facaa .Function ,_cbcge );};}else {_egae ,_ebfab :=_fagc (_gcebc );if _ebfab !=nil {_fca .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",_ebfab );return nil ,_ebfab ;};_facaa .Function =append (_facaa .Function ,_egae );};if _defdb :=_eefdf .Get ("\u0045\u0078\u0074\u0065\u006e\u0064");_defdb !=nil {_defdb =_fd .TraceToDirectObject (_defdb );_ecaf ,_fgbee :=_defdb .(*_fd .PdfObjectArray );if !_fgbee {_fca .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",_defdb );return nil ,_fd .ErrTypeError ;};if _ecaf .Len ()!=2{_fca .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",_ecaf .Len ());return nil ,ErrInvalidAttribute ;};_facaa .Extend =_ecaf ;};return &_facaa ,nil ;};type pdfCIDFontType2 struct{fontCommon ;_cgfb *_fd .PdfIndirectObject ;_dagf _gf .TextEncoder ;
// Table 117 Entries in a CIDFont dictionary (page 269)
// Dictionary that defines the character collection of the CIDFont (required).
// See Table 116.
CIDSystemInfo *_fd .PdfObjectDictionary ;
// Glyph metrics fields (optional).
DW _fd .PdfObject ;W _fd .PdfObject ;DW2 _fd .PdfObject ;W2 _fd .PdfObject ;
// CIDs to glyph indices mapping (optional).
CIDToGIDMap _fd .PdfObject ;_bggdf map[_gf .CharCode ]float64 ;_gcegd float64 ;_ebfg map[rune ]int ;};func (_ddace *PdfColorspaceCalGray )String ()string {return "\u0043a\u006c\u0047\u0072\u0061\u0079"};
// SetFlag sets the flag for the field.
func (_eafgd *PdfField )SetFlag (flag FieldFlag ){_eafgd .Ff =_fd .MakeInteger (int64 (flag ))};func (_ceg *PdfReader )newPdfAnnotationInkFromDict (_bfaf *_fd .PdfObjectDictionary )(*PdfAnnotationInk ,error ){_dbab :=PdfAnnotationInk {};_fdfd ,_fgbc :=_ceg .newPdfAnnotationMarkupFromDict (_bfaf );if _fgbc !=nil {return nil ,_fgbc ;};_dbab .PdfAnnotationMarkup =_fdfd ;_dbab .InkList =_bfaf .Get ("\u0049n\u006b\u004c\u0069\u0073\u0074");_dbab .BS =_bfaf .Get ("\u0042\u0053");return &_dbab ,nil ;};func (_cce *PdfReader )newPdfAnnotationWidgetFromDict (_efg *_fd .PdfObjectDictionary )(*PdfAnnotationWidget ,error ){_feea :=PdfAnnotationWidget {};_feea .H =_efg .Get ("\u0048");_feea .MK =_efg .Get ("\u004d\u004b");_feea .A =_efg .Get ("\u0041");_feea .AA =_efg .Get ("\u0041\u0041");_feea .BS =_efg .Get ("\u0042\u0053");_feea .Parent =_efg .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");return &_feea ,nil ;};
// ToPdfObject implements interface PdfModel.
func (_faea *PdfAnnotationUnderline )ToPdfObject ()_fd .PdfObject {_faea .PdfAnnotation .ToPdfObject ();_dgbb :=_faea ._defg ;_cdfc :=_dgbb .PdfObject .(*_fd .PdfObjectDictionary );_faea .PdfAnnotationMarkup .appendToPdfDictionary (_cdfc );_cdfc .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fd .MakeName ("\u0055n\u0064\u0065\u0072\u006c\u0069\u006ee"));_cdfc .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_faea .QuadPoints );return _dgbb ;};
// PdfActionGoToE represents a GoToE action.
type PdfActionGoToE struct{*PdfAction ;F *PdfFilespec ;D _fd .PdfObject ;NewWindow _fd .PdfObject ;T _fd .PdfObject ;};func (_dggbb *pdfCIDFontType0 )getFontDescriptor ()*PdfFontDescriptor {return _dggbb ._ggbg };
// ToInteger convert to an integer format.
func (_adef *PdfColorCalRGB )ToInteger (bits int )[3]uint32 {_cageb :=_ff .Pow (2,float64 (bits ))-1;return [3]uint32 {uint32 (_cageb *_adef .A ()),uint32 (_cageb *_adef .B ()),uint32 (_cageb *_adef .C ())};};
// PdfAnnotationText represents Text annotations.
// (Section 12.5.6.4 p. 402).
type PdfAnnotationText struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Open _fd .PdfObject ;Name _fd .PdfObject ;State _fd .PdfObject ;StateModel _fd .PdfObject ;};
// BorderStyle defines border type, typically used for annotations.
type BorderStyle int ;
// ToPdfObject implements interface PdfModel.
func (_ace *PdfAnnotationCircle )ToPdfObject ()_fd .PdfObject {_ace .PdfAnnotation .ToPdfObject ();_fcbg :=_ace ._defg ;_daf :=_fcbg .PdfObject .(*_fd .PdfObjectDictionary );_ace .PdfAnnotationMarkup .appendToPdfDictionary (_daf );_daf .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fd .MakeName ("\u0043\u0069\u0072\u0063\u006c\u0065"));_daf .SetIfNotNil ("\u0042\u0053",_ace .BS );_daf .SetIfNotNil ("\u0049\u0043",_ace .IC );_daf .SetIfNotNil ("\u0042\u0045",_ace .BE );_daf .SetIfNotNil ("\u0052\u0044",_ace .RD );return _fcbg ;};
// 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 _fd .PdfObject ;FontFamily _fd .PdfObject ;FontStretch _fd .PdfObject ;FontWeight _fd .PdfObject ;Flags _fd .PdfObject ;FontBBox _fd .PdfObject ;ItalicAngle _fd .PdfObject ;Ascent _fd .PdfObject ;Descent _fd .PdfObject ;Leading _fd .PdfObject ;CapHeight _fd .PdfObject ;XHeight _fd .PdfObject ;StemV _fd .PdfObject ;StemH _fd .PdfObject ;AvgWidth _fd .PdfObject ;MaxWidth _fd .PdfObject ;MissingWidth _fd .PdfObject ;FontFile _fd .PdfObject ;FontFile2 _fd .PdfObject ;FontFile3 _fd .PdfObject ;CharSet _fd .PdfObject ;_fgaf int ;_bcgdc float64 ;*fontFile ;_accda *_aaf .TtfType ;
// Additional entries for CIDFonts
Style _fd .PdfObject ;Lang _fd .PdfObject ;FD _fd .PdfObject ;CIDSet _fd .PdfObject ;_dgad *_fd .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 *_fd .PdfObjectArray ;ExtGState _fd .PdfObject ;};
// PdfAnnotationPolyLine represents PolyLine annotations.
// (Section 12.5.6.9).
type PdfAnnotationPolyLine struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Vertices _fd .PdfObject ;LE _fd .PdfObject ;BS _fd .PdfObject ;IC _fd .PdfObject ;BE _fd .PdfObject ;IT _fd .PdfObject ;Measure _fd .PdfObject ;};
// 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 ;};
// GetNumComponents returns the number of color components of the colorspace device.
// Returns 3 for an RGB device.
func (_fadfd *PdfColorspaceDeviceRGB )GetNumComponents ()int {return 3};
// ToPdfObject returns a PDF object representation of the outline destination.
func (_afgdg OutlineDest )ToPdfObject ()_fd .PdfObject {if (_afgdg .PageObj ==nil &&_afgdg .Page < 0)||_afgdg .Mode ==""{return _fd .MakeNull ();};_gcedf :=_fd .MakeArray ();if _afgdg .PageObj !=nil {_gcedf .Append (_afgdg .PageObj );}else {_gcedf .Append (_fd .MakeInteger (_afgdg .Page ));};_gcedf .Append (_fd .MakeName (_afgdg .Mode ));switch _afgdg .Mode {case "\u0046\u0069\u0074","\u0046\u0069\u0074\u0042":case "\u0046\u0069\u0074\u0048","\u0046\u0069\u0074B\u0048":_gcedf .Append (_fd .MakeFloat (_afgdg .Y ));case "\u0046\u0069\u0074\u0056","\u0046\u0069\u0074B\u0056":_gcedf .Append (_fd .MakeFloat (_afgdg .X ));case "\u0058\u0059\u005a":_gcedf .Append (_fd .MakeFloat (_afgdg .X ));_gcedf .Append (_fd .MakeFloat (_afgdg .Y ));_gcedf .Append (_fd .MakeFloat (_afgdg .Zoom ));default:_gcedf .Set (1,_fd .MakeName ("\u0046\u0069\u0074"));};return _gcedf ;};
// SetPdfAuthor sets the Author attribute of the output PDF.
func SetPdfAuthor (author string ){_ffeac =author };
// 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 (_gabeb *PdfColorspaceCalRGB )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=3{return nil ,_fce .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_gdbe :=vals [0];if _gdbe < 0.0||_gdbe > 1.0{return nil ,_fce .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_bebf :=vals [1];if _bebf < 0.0||_bebf > 1.0{return nil ,_fce .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_aafc :=vals [2];if _aafc < 0.0||_aafc > 1.0{return nil ,_fce .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_gbef :=NewPdfColorCalRGB (_gdbe ,_bebf ,_aafc );return _gbef ,nil ;};
// PdfWriter handles outputing PDF content.
type PdfWriter struct{_faaba *_fd .PdfIndirectObject ;_fgcc *_fd .PdfIndirectObject ;_geaba map[_fd .PdfObject ]struct{};_edeb []_fd .PdfObject ;_fgdfc map[_fd .PdfObject ]struct{};_aabgf []*_fd .PdfIndirectObject ;_gafg *PdfOutlineTreeNode ;_agagg *_fd .PdfObjectDictionary ;_decac []_fd .PdfObject ;_fcacd *_fd .PdfIndirectObject ;_gedga *_e .Writer ;_bdbgg int64 ;_egffc error ;_cdba *_fd .PdfCrypt ;_fabfg *_fd .PdfObjectDictionary ;_bgfdd *_fd .PdfIndirectObject ;_dbcae *_fd .PdfObjectArray ;_fddbd int ;_cecag int ;_ccec *bool ;_efce map[_fd .PdfObject ][]*_fd .PdfObjectDictionary ;_cfbfa *PdfAcroForm ;_gegg Optimizer ;_gace map[int ]crossReference ;_bddag int64 ;ObjNumOffset int ;_gfggd bool ;_gdeae _fd .XrefTable ;_cfad int64 ;_dbdg int64 ;_febae map[_fd .PdfObject ]int64 ;_dedba map[_fd .PdfObject ]struct{};};
// IsCheckbox returns true if the button field represents a checkbox, false otherwise.
func (_fdfc *PdfFieldButton )IsCheckbox ()bool {return _fdfc .GetType ()==ButtonTypeCheckbox };
// SetPdfCreator sets the Creator attribute of the output PDF.
func SetPdfCreator (creator string ){_gadfb =creator };
// NewPdfActionHide returns a new "hide" action.
func NewPdfActionHide ()*PdfActionHide {_fac :=NewPdfAction ();_gddf :=&PdfActionHide {};_gddf .PdfAction =_fac ;_fac .SetContext (_gddf );return _gddf ;};func (_acc *PdfReader )newPdfAnnotationStampFromDict (_bec *_fd .PdfObjectDictionary )(*PdfAnnotationStamp ,error ){_eegf :=PdfAnnotationStamp {};_bdgd ,_ddca :=_acc .newPdfAnnotationMarkupFromDict (_bec );if _ddca !=nil {return nil ,_ddca ;};_eegf .PdfAnnotationMarkup =_bdgd ;_eegf .Name =_bec .Get ("\u004e\u0061\u006d\u0065");return &_eegf ,nil ;};
// DecodeArray returns the component range values for the DeviceN colorspace.
// [0 1.0 0 1.0 ...] for each color component.
func (_beadg *PdfColorspaceDeviceN )DecodeArray ()[]float64 {var _bcebb []float64 ;for _gccbe :=0;_gccbe < _beadg .GetNumComponents ();_gccbe ++{_bcebb =append (_bcebb ,0.0,1.0);};return _bcebb ;};
// NewPdfAnnotation3D returns a new 3d annotation.
func NewPdfAnnotation3D ()*PdfAnnotation3D {_gfg :=NewPdfAnnotation ();_ebf :=&PdfAnnotation3D {};_ebf .PdfAnnotation =_gfg ;_gfg .SetContext (_ebf );return _ebf ;};func (_dcd *PdfAnnotationMarkup )appendToPdfDictionary (_bebg *_fd .PdfObjectDictionary ){_bebg .SetIfNotNil ("\u0054",_dcd .T );if _dcd .Popup !=nil {_bebg .Set ("\u0050\u006f\u0070u\u0070",_dcd .Popup .ToPdfObject ());};_bebg .SetIfNotNil ("\u0043\u0041",_dcd .CA );_bebg .SetIfNotNil ("\u0052\u0043",_dcd .RC );_bebg .SetIfNotNil ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065",_dcd .CreationDate );_bebg .SetIfNotNil ("\u0049\u0052\u0054",_dcd .IRT );_bebg .SetIfNotNil ("\u0053\u0075\u0062\u006a",_dcd .Subj );_bebg .SetIfNotNil ("\u0052\u0054",_dcd .RT );_bebg .SetIfNotNil ("\u0049\u0054",_dcd .IT );_bebg .SetIfNotNil ("\u0045\u0078\u0044\u0061\u0074\u0061",_dcd .ExData );};
// NewPdfColorDeviceCMYK returns a new CMYK32 color.
func NewPdfColorDeviceCMYK (c ,m ,y ,k float64 )*PdfColorDeviceCMYK {_ddgc :=PdfColorDeviceCMYK {c ,m ,y ,k };return &_ddgc ;};var _fgfc =false ;
// FieldFlag represents form field flags. Some of the flags can apply to all types of fields whereas other
// flags are specific.
type FieldFlag uint32 ;
// NewPdfActionMovie returns a new "movie" action.
func NewPdfActionMovie ()*PdfActionMovie {_ge :=NewPdfAction ();_gde :=&PdfActionMovie {};_gde .PdfAction =_ge ;_ge .SetContext (_gde );return _gde ;};
// ToPdfObject implements interface PdfModel.
func (_eada *PdfAnnotationLink )ToPdfObject ()_fd .PdfObject {_eada .PdfAnnotation .ToPdfObject ();_ggcf :=_eada ._defg ;_ccac :=_ggcf .PdfObject .(*_fd .PdfObjectDictionary );_ccac .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fd .MakeName ("\u004c\u0069\u006e\u006b"));if _eada ._bda !=nil &&_eada ._bda ._db !=nil {_ccac .Set ("\u0041",_eada ._bda ._db .ToPdfObject ());}else if _eada .A !=nil {_ccac .Set ("\u0041",_eada .A );};_ccac .SetIfNotNil ("\u0044\u0065\u0073\u0074",_eada .Dest );_ccac .SetIfNotNil ("\u0048",_eada .H );_ccac .SetIfNotNil ("\u0050\u0041",_eada .PA );_ccac .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_eada .QuadPoints );_ccac .SetIfNotNil ("\u0042\u0053",_eada .BS );return _ggcf ;};
// NewPdfAction returns an initialized generic PDF action model.
func NewPdfAction ()*PdfAction {_dc :=&PdfAction {};_dc ._fgb =_fd .MakeIndirectObject (_fd .MakeDict ());return _dc ;};
// 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 ;
// 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 (_ggcfe *Image )SetSamples (samples []uint32 ){if _ggcfe .BitsPerComponent < 8{samples =_ggcfe .samplesAddPadding (samples );};_ggcaa :=_ddf .ResampleUint32 (samples ,int (_ggcfe .BitsPerComponent ),8);_fgdad :=make ([]byte ,len (_ggcaa ));for _efde ,_dacec :=range _ggcaa {_fgdad [_efde ]=byte (_dacec );};_ggcfe .Data =_fgdad ;};
// ToPdfObject returns the PDF representation of the colorspace.
func (_cadgf *PdfPageResourcesColorspaces )ToPdfObject ()_fd .PdfObject {_fdad :=_fd .MakeDict ();for _ ,_eaaa :=range _cadgf .Names {_fdad .Set (_fd .PdfObjectName (_eaaa ),_cadgf .Colorspaces [_eaaa ].ToPdfObject ());};if _cadgf ._eeaafd !=nil {_cadgf ._eeaafd .PdfObject =_fdad ;return _cadgf ._eeaafd ;};return _fdad ;};func (_cbcb *PdfColorspaceLab )String ()string {return "\u004c\u0061\u0062"};
// GetContext returns the annotation context which contains the specific type-dependent context.
// The context represents the subannotation.
func (_acbg *PdfAnnotation )GetContext ()PdfModel {if _acbg ==nil {return nil ;};return _acbg ._ccd ;};func (_aafd *PdfAppender )updateObjectsDeep (_cddc _fd .PdfObject ,_efgc map[_fd .PdfObject ]struct{}){if _efgc ==nil {_efgc =map[_fd .PdfObject ]struct{}{};};if _ ,_fffe :=_efgc [_cddc ];_fffe ||_cddc ==nil {return ;};_efgc [_cddc ]=struct{}{};_fbe :=_fd .ResolveReferencesDeep (_cddc ,_aafd ._ddag );if _fbe !=nil {_fca .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_fbe );};switch _fdcae :=_cddc .(type ){case *_fd .PdfIndirectObject :switch {case _fdcae .GetParser ()==_aafd ._bfb ._egbge :return ;case _fdcae .GetParser ()==_aafd .Reader ._egbge :_bfgba ,_ :=_aafd ._bfb .GetIndirectObjectByNumber (int (_fdcae .ObjectNumber ));_aeeb ,_degf :=_bfgba .(*_fd .PdfIndirectObject );if _degf &&_aeeb !=nil {if _aeeb .PdfObject !=_fdcae .PdfObject &&_aeeb .PdfObject .WriteString ()!=_fdcae .PdfObject .WriteString (){_aafd .addNewObject (_cddc );_aafd ._daec [_cddc ]=_fdcae .ObjectNumber ;};};default:_aafd .addNewObject (_cddc );};_aafd .updateObjectsDeep (_fdcae .PdfObject ,_efgc );case *_fd .PdfObjectArray :for _ ,_cfeb :=range _fdcae .Elements (){_aafd .updateObjectsDeep (_cfeb ,_efgc );};case *_fd .PdfObjectDictionary :for _ ,_efgg :=range _fdcae .Keys (){_aafd .updateObjectsDeep (_fdcae .Get (_efgg ),_efgc );};case *_fd .PdfObjectStreams :if _fdcae .GetParser ()!=_aafd ._bfb ._egbge {for _ ,_abfd :=range _fdcae .Elements (){_aafd .updateObjectsDeep (_abfd ,_efgc );};};case *_fd .PdfObjectStream :switch {case _fdcae .GetParser ()==_aafd ._bfb ._egbge :return ;case _fdcae .GetParser ()==_aafd .Reader ._egbge :if _ebbb ,_gaeg :=_aafd ._bfb ._egbge .LookupByReference (_fdcae .PdfObjectReference );_gaeg ==nil {var _egbgd bool ;if _egdg ,_cgeg :=_fd .GetStream (_ebbb );_cgeg &&_bg .Equal (_egdg .Stream ,_fdcae .Stream ){_egbgd =true ;};if _bcec ,_eead :=_fd .GetDict (_ebbb );_egbgd &&_eead {_egbgd =_bcec .WriteString ()==_fdcae .PdfObjectDictionary .WriteString ();};if _egbgd {return ;};};if _fdcae .ObjectNumber !=0{_aafd ._daec [_cddc ]=_fdcae .ObjectNumber ;};default:if _ ,_gdebc :=_aafd ._baef [_cddc ];!_gdebc {_aafd .addNewObject (_cddc );};};_aafd .updateObjectsDeep (_fdcae .PdfObjectDictionary ,_efgc );};};
// ToPdfObject returns the PDF representation of the colorspace.
func (_fcadc *PdfColorspaceSpecialPattern )ToPdfObject ()_fd .PdfObject {if _fcadc .UnderlyingCS ==nil {return _fd .MakeName ("\u0050a\u0074\u0074\u0065\u0072\u006e");};_ggce :=_fd .MakeArray (_fd .MakeName ("\u0050a\u0074\u0074\u0065\u0072\u006e"));_ggce .Append (_fcadc .UnderlyingCS .ToPdfObject ());if _fcadc ._agedg !=nil {_fcadc ._agedg .PdfObject =_ggce ;return _fcadc ._agedg ;};return _ggce ;};
// NewPdfAnnotationFreeText returns a new free text annotation.
func NewPdfAnnotationFreeText ()*PdfAnnotationFreeText {_bfg :=NewPdfAnnotation ();_cda :=&PdfAnnotationFreeText {};_cda .PdfAnnotation =_bfg ;_cda .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_bfg .SetContext (_cda );return _cda ;};func _geddg ()string {_ffab :=_aa .GetLicenseKey ();if len (_daee )> 0&&(_ffab .IsLicensed ()||_fgfc ){return _daee ;};return _d .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",_ebddd (),_ffab .TypeToString ());};
// SetVersion sets the PDF version of the output file.
func (_bfdab *PdfWriter )SetVersion (majorVersion ,minorVersion int ){_bfdab ._fddbd =majorVersion ;_bfdab ._cecag =minorVersion ;};
// CharMetrics represents width and height metrics of a glyph.
type CharMetrics =_aaf .CharMetrics ;
// PdfVersion returns version of the PDF file.
func (_cdgbb *PdfReader )PdfVersion ()_fd .Version {return _cdgbb ._egbge .PdfVersion ()};
// ToPdfObject returns a PdfObject representation of PdfColorspaceDeviceNAttributes as a PdfObjectDictionary directly
// or indirectly within an indirect object container.
func (_ecce *PdfColorspaceDeviceNAttributes )ToPdfObject ()_fd .PdfObject {_beff :=_fd .MakeDict ();if _ecce .Subtype !=nil {_beff .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ecce .Subtype );};_beff .SetIfNotNil ("\u0043o\u006c\u006f\u0072\u0061\u006e\u0074s",_ecce .Colorants );_beff .SetIfNotNil ("\u0050r\u006f\u0063\u0065\u0073\u0073",_ecce .Process );_beff .SetIfNotNil ("M\u0069\u0078\u0069\u006e\u0067\u0048\u0069\u006e\u0074\u0073",_ecce .MixingHints );if _ecce ._bcda !=nil {_ecce ._bcda .PdfObject =_beff ;return _ecce ._bcda ;};return _beff ;};
// NewPdfAnnotationPolygon returns a new polygon annotation.
func NewPdfAnnotationPolygon ()*PdfAnnotationPolygon {_gca :=NewPdfAnnotation ();_fddg :=&PdfAnnotationPolygon {};_fddg .PdfAnnotation =_gca ;_fddg .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_gca .SetContext (_fddg );return _fddg ;};
// GenerateXObjectName generates an unused XObject name that can be used for
// adding new XObjects. Uses format XObj1, XObj2, ...
func (_baefe *PdfPageResources )GenerateXObjectName ()_fd .PdfObjectName {_deeb :=1;for {_bcfa :=_fd .MakeName (_d .Sprintf ("\u0058\u004f\u0062\u006a\u0025\u0064",_deeb ));if !_baefe .HasXObjectByName (*_bcfa ){return *_bcfa ;};_deeb ++;};};func _ceeg (_aebc *_fd .PdfObjectDictionary ,_adbad *fontCommon )(*pdfCIDFontType2 ,error ){if _adbad ._ccea !="\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032"{_fca .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",_adbad );return nil ,_fd .ErrRangeError ;};_cggfc :=_aedbg (_adbad );_gcedb ,_cggcg :=_fd .GetDict (_aebc .Get ("\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f"));if !_cggcg {_fca .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",_adbad );return nil ,ErrRequiredAttributeMissing ;};_cggfc .CIDSystemInfo =_gcedb ;_cggfc .DW =_aebc .Get ("\u0044\u0057");_cggfc .W =_aebc .Get ("\u0057");_cggfc .DW2 =_aebc .Get ("\u0044\u0057\u0032");_cggfc .W2 =_aebc .Get ("\u0057\u0032");_cggfc .CIDToGIDMap =_aebc .Get ("C\u0049\u0044\u0054\u006f\u0047\u0049\u0044\u004d\u0061\u0070");_cggfc ._gcegd =1000.0;if _agfe ,_babb :=_fd .GetNumberAsFloat (_cggfc .DW );_babb ==nil {_cggfc ._gcegd =_agfe ;};_aacb ,_eegfb :=_fggb (_cggfc .W );if _eegfb !=nil {return nil ,_eegfb ;};if _aacb ==nil {_aacb =map[_gf .CharCode ]float64 {};};_cggfc ._bggdf =_aacb ;return _cggfc ,nil ;};func _cdef (_deef _fd .PdfObject )(*PdfFontDescriptor ,error ){_fcggd :=&PdfFontDescriptor {};_deef =_fd .ResolveReference (_deef );if _ddbeg ,_cfddb :=_deef .(*_fd .PdfIndirectObject );_cfddb {_fcggd ._dgad =_ddbeg ;_deef =_ddbeg .PdfObject ;};_fcbdg ,_fdfdc :=_fd .GetDict (_deef );if !_fdfdc {_fca .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",_deef );return nil ,_fd .ErrTypeError ;};if _aggcd :=_fcbdg .Get ("\u0046\u006f\u006e\u0074\u004e\u0061\u006d\u0065");_aggcd !=nil {_fcggd .FontName =_aggcd ;}else {_fca .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");};_becffc ,_ :=_fd .GetName (_fcggd .FontName );if _aacec :=_fcbdg .Get ("\u0054\u0079\u0070\u0065");_aacec !=nil {_cgfec ,_ffed :=_aacec .(*_fd .PdfObjectName );if !_ffed ||string (*_cgfec )!="\u0046\u006f\u006e\u0074\u0044\u0065\u0073\u0063\u0072i\u0070\u0074\u006f\u0072"{_fca .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",_aacec ,_becffc ,_fcggd .FontName );};}else {_fca .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",_becffc ,_fcggd .FontName );};_fcggd .FontFamily =_fcbdg .Get ("\u0046\u006f\u006e\u0074\u0046\u0061\u006d\u0069\u006c\u0079");_fcggd .FontStretch =_fcbdg .Get ("F\u006f\u006e\u0074\u0053\u0074\u0072\u0065\u0074\u0063\u0068");_fcggd .FontWeight =_fcbdg .Get ("\u0046\u006f\u006e\u0074\u0057\u0065\u0069\u0067\u0068\u0074");_fcggd .Flags =_fcbdg .Get ("\u0046\u006c\u0061g\u0073");_fcggd .FontBBox =_fcbdg .Get ("\u0046\u006f\u006e\u0074\u0042\u0042\u006f\u0078");_fcggd .ItalicAngle =_fcbdg .Get ("I\u0074\u0061\u006c\u0069\u0063\u0041\u006e\u0067\u006c\u0065");_fcggd .Ascent =_fcbdg .Get ("\u0041\u0073\u0063\u0065\u006e\u0074");_fcggd .Descent =_fcbdg .Get ("\u0044e\u0073\u0063\u0065\u006e\u0074");_fcggd .Leading =_fcbdg .Get ("\u004ce\u0061\u0064\u0069\u006e\u0067");_fcggd .CapHeight =_fcbdg .Get ("\u0043a\u0070\u0048\u0065\u0069\u0067\u0068t");_fcggd .XHeight =_fcbdg .Get ("\u0058H\u0065\u0069\u0067\u0068\u0074");_fcggd .StemV =_fcbdg .Get ("\u0053\u0074\u0065m\u0056");_fcggd .StemH =_fcbdg .Get ("\u0053\u0074\u0065m\u0048");_fcggd .AvgWidth =_fcbdg .Get ("\u0041\u0076\u0067\u0057\u0069\u0064\u0074\u0068");_fcggd .MaxWidth =_fcbdg .Get ("\u004d\u0061\u0078\u0057\u0069\u0064\u0074\u0068");_fcggd .MissingWidth =_fcbdg .Get ("\u004d\u0069\u0073s\u0069\u006e\u0067\u0057\u0069\u0064\u0074\u0068");_fcggd .FontFile =_fcbdg .Get ("\u0046\u006f\u006e\u0074\u0046\u0069\u006c\u0065");_fcggd .FontFile2 =_fcbdg .Get ("\u0046o\u006e\u0074\u0046\u0069\u006c\u00652");_fcggd .FontFile3 =_fcbdg .Get ("\u0046o\u006e\u0074\u0046\u0069\u006c\u00653");_fcggd .CharSet =_fcbdg .Get ("\u0043h\u0061\u0072\u0053\u0065\u0074");_fcggd .Style =_fcbdg .Get ("\u0053\u0074\u0079l\u0065");_fcggd .Lang =_fcbdg .Get ("\u004c\u0061\u006e\u0067");_fcggd .FD =_fcbdg .Get ("\u0046\u0044");_fcggd .CIDSet =_fcbdg .Get ("\u0043\u0049\u0044\u0053\u0065\u0074");if _fcggd .Flags !=nil {if _gabf ,_ggfd :=_fd .GetIntVal (_fcggd .Flags );_ggfd {_fcggd ._fgaf =_gabf ;};};if _fcggd .MissingWidth !=nil {if _fgeg ,_fcef :=_fd .GetNumberAsFloat (_fcggd .MissingWidth );_fcef ==nil {_fcggd ._bcgdc =_fgeg ;};};if _fcggd .FontFile !=nil {_cada ,_fbecf :=_fdaeg (_fcggd .FontFile );if _fbecf !=nil {return _fcggd ,_fbecf ;};_fca .Log .Trace ("f\u006f\u006e\u0074\u0046\u0069\u006c\u0065\u003d\u0025\u0073",_cada );_fcggd .fontFile =_cada ;};if _fcggd .FontFile2 !=nil {_bbcba ,_effb :=_aaf .NewFontFile2FromPdfObject (_fcggd .FontFile2 );if _effb !=nil {return _fcggd ,_effb ;};_fca .Log .Trace ("\u0066\u006f\u006et\u0046\u0069\u006c\u0065\u0032\u003d\u0025\u0073",_bbcba .String ());_fcggd ._accda =&_bbcba ;};return _fcggd ,nil ;};
// ToPdfObject implements interface PdfModel.
func (_eegd *PdfAnnotationRichMedia )ToPdfObject ()_fd .PdfObject {_eegd .PdfAnnotation .ToPdfObject ();_dbe :=_eegd ._defg ;_gacg :=_dbe .PdfObject .(*_fd .PdfObjectDictionary );_gacg .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fd .MakeName ("\u0052i\u0063\u0068\u004d\u0065\u0064\u0069a"));_gacg .SetIfNotNil ("\u0052\u0069\u0063\u0068\u004d\u0065\u0064\u0069\u0061\u0053\u0065\u0074t\u0069\u006e\u0067\u0073",_eegd .RichMediaSettings );_gacg .SetIfNotNil ("\u0052\u0069c\u0068\u004d\u0065d\u0069\u0061\u0043\u006f\u006e\u0074\u0065\u006e\u0074",_eegd .RichMediaContent );return _dbe ;};func _cccc (_dbdc _fd .PdfObject )(*PdfColorspaceDeviceN ,error ){_fcae :=NewPdfColorspaceDeviceN ();if _adff ,_bbac :=_dbdc .(*_fd .PdfIndirectObject );_bbac {_fcae ._cbcba =_adff ;};_dbdc =_fd .TraceToDirectObject (_dbdc );_ecdd ,_cafcc :=_dbdc .(*_fd .PdfObjectArray );if !_cafcc {return nil ,_d .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 _ecdd .Len ()!=4&&_ecdd .Len ()!=5{return nil ,_d .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");};_dbdc =_ecdd .Get (0);_decg ,_cafcc :=_dbdc .(*_fd .PdfObjectName );if !_cafcc {return nil ,_d .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 *_decg !="\u0044e\u0076\u0069\u0063\u0065\u004e"{return nil ,_d .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");};_dbdc =_ecdd .Get (1);_dbdc =_fd .TraceToDirectObject (_dbdc );_fdacb ,_cafcc :=_dbdc .(*_fd .PdfObjectArray );if !_cafcc {return nil ,_d .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");};_fcae .ColorantNames =_fdacb ;_dbdc =_ecdd .Get (2);_dgfda ,_efb :=NewPdfColorspaceFromPdfObject (_dbdc );if _efb !=nil {return nil ,_efb ;};_fcae .AlternateSpace =_dgfda ;_fcecc ,_efb :=_fagc (_ecdd .Get (3));if _efb !=nil {return nil ,_efb ;};_fcae .TintTransform =_fcecc ;if _ecdd .Len ()==5{_dbbcca ,_gfcg :=_cedcc (_ecdd .Get (4));if _gfcg !=nil {return nil ,_gfcg ;};_fcae .Attributes =_dbbcca ;};return _fcae ,nil ;};func (_cgba *PdfReader )loadAnnotations (_ebabc _fd .PdfObject )([]*PdfAnnotation ,error ){_ddaba ,_egegf :=_fd .GetArray (_ebabc );if !_egegf {return nil ,_d .Errorf ("\u0041\u006e\u006e\u006fts\u0020\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0061\u0072\u0072\u0061\u0079");};var _ceedee []*PdfAnnotation ;for _ ,_gbfbf :=range _ddaba .Elements (){_gbfbf =_fd .ResolveReference (_gbfbf );if _ ,_feaad :=_gbfbf .(*_fd .PdfObjectNull );_feaad {continue ;};_gaebgd ,_cffg :=_gbfbf .(*_fd .PdfObjectDictionary );_febdc ,_ageg :=_gbfbf .(*_fd .PdfIndirectObject );if _cffg {_febdc =&_fd .PdfIndirectObject {};_febdc .PdfObject =_gaebgd ;}else {if !_ageg {return nil ,_d .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");};};_dgbab ,_gccfb :=_cgba .newPdfAnnotationFromIndirectObject (_febdc );if _gccfb !=nil {return nil ,_gccfb ;};switch _aedddc :=_dgbab .GetContext ().(type ){case *PdfAnnotationWidget :for _ ,_afagc :=range _cgba .AcroForm .AllFields (){if _afagc ._fbef ==_aedddc .Parent {_aedddc ._eaeb =_afagc ;break ;};};};if _dgbab !=nil {_ceedee =append (_ceedee ,_dgbab );};};return _ceedee ,nil ;};
// AddPages adds pages to be appended to the end of the source PDF.
func (_faed *PdfAppender )AddPages (pages ...*PdfPage ){for _ ,_dbed :=range pages {_dbed =_dbed .Duplicate ();_cfadfb (_dbed );_faed ._eafg =append (_faed ._eafg ,_dbed );};return ;};
// PdfAnnotationScreen represents Screen annotations.
// (Section 12.5.6.18).
type PdfAnnotationScreen struct{*PdfAnnotation ;T _fd .PdfObject ;MK _fd .PdfObject ;A _fd .PdfObject ;AA _fd .PdfObject ;};func (_eaebb *PdfReader )newPdfAnnotationFreeTextFromDict (_gab *_fd .PdfObjectDictionary )(*PdfAnnotationFreeText ,error ){_fcfa :=PdfAnnotationFreeText {};_gdeg ,_aebf :=_eaebb .newPdfAnnotationMarkupFromDict (_gab );if _aebf !=nil {return nil ,_aebf ;};_fcfa .PdfAnnotationMarkup =_gdeg ;_fcfa .DA =_gab .Get ("\u0044\u0041");_fcfa .Q =_gab .Get ("\u0051");_fcfa .RC =_gab .Get ("\u0052\u0043");_fcfa .DS =_gab .Get ("\u0044\u0053");_fcfa .CL =_gab .Get ("\u0043\u004c");_fcfa .IT =_gab .Get ("\u0049\u0054");_fcfa .BE =_gab .Get ("\u0042\u0045");_fcfa .RD =_gab .Get ("\u0052\u0044");_fcfa .BS =_gab .Get ("\u0042\u0053");_fcfa .LE =_gab .Get ("\u004c\u0045");return &_fcfa ,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 _fd .StreamEncoder ;Intent _fd .PdfObject ;ImageMask _fd .PdfObject ;Mask _fd .PdfObject ;Matte _fd .PdfObject ;Decode _fd .PdfObject ;Interpolate _fd .PdfObject ;Alternatives _fd .PdfObject ;SMask _fd .PdfObject ;SMaskInData _fd .PdfObject ;Name _fd .PdfObject ;StructParent _fd .PdfObject ;ID _fd .PdfObject ;OPI _fd .PdfObject ;Metadata _fd .PdfObject ;OC _fd .PdfObject ;Stream []byte ;_acbee *_fd .PdfObjectStream ;};func _edded (_eedgd *_fd .PdfObjectDictionary )(*PdfFieldButton ,error ){_eabd :=&PdfFieldButton {};_eabd .Opt ,_ =_fd .GetArray (_eedgd .Get ("\u004f\u0070\u0074"));return _eabd ,nil ;};
// NewPdfAnnotationSquare returns a new square annotation.
func NewPdfAnnotationSquare ()*PdfAnnotationSquare {_bbbb :=NewPdfAnnotation ();_cbbc :=&PdfAnnotationSquare {};_cbbc .PdfAnnotation =_bbbb ;_cbbc .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_bbbb .SetContext (_cbbc );return _cbbc ;};
// GetContainingPdfObject returns the container of the shading object (indirect object).
func (_dgeea *PdfShading )GetContainingPdfObject ()_fd .PdfObject {return _dgeea ._bcgcg };func (_cag *PdfReader )newPdfActionLaunchFromDict (_deg *_fd .PdfObjectDictionary )(*PdfActionLaunch ,error ){_eeg ,_fag :=_dgd (_deg .Get ("\u0046"));if _fag !=nil {return nil ,_fag ;};return &PdfActionLaunch {Win :_deg .Get ("\u0057\u0069\u006e"),Mac :_deg .Get ("\u004d\u0061\u0063"),Unix :_deg .Get ("\u0055\u006e\u0069\u0078"),NewWindow :_deg .Get ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw"),F :_eeg },nil ;};
// WriteToFile writes the Appender output to file specified by path.
func (_acee *PdfAppender )WriteToFile (outputPath string )error {_ggdg ,_gbfb :=_ab .Create (outputPath );if _gbfb !=nil {return _gbfb ;};defer _ggdg .Close ();return _acee .Write (_ggdg );};func (_eegg *PdfAcroForm )fill (_gdbfc FieldValueProvider ,_gefeff FieldAppearanceGenerator )error {if _eegg ==nil {return nil ;};_edab ,_aeca :=_gdbfc .FieldValues ();if _aeca !=nil {return _aeca ;};for _ ,_dedeg :=range _eegg .AllFields (){_eeddf :=_dedeg .PartialName ();_bebc ,_efgcb :=_edab [_eeddf ];if !_efgcb {if _ccbe ,_gfcgg :=_dedeg .FullName ();_gfcgg ==nil {_bebc ,_efgcb =_edab [_ccbe ];};};if !_efgcb {_fca .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",_eeddf );continue ;};if _dbbfd :=_ebeb (_dedeg ,_bebc );_dbbfd !=nil {return _dbbfd ;};if _gefeff ==nil {continue ;};for _ ,_gfbaf :=range _dedeg .Annotations {_dcae ,_fbdfe :=_gefeff .GenerateAppearanceDict (_eegg ,_dedeg ,_gfbaf );if _fbdfe !=nil {return _fbdfe ;};_gfbaf .AP =_dcae ;_gfbaf .ToPdfObject ();};};return nil ;};
// GetPrimitiveFromModel returns the primitive object corresponding to the input `model`.
func (_gdcab *modelManager )GetPrimitiveFromModel (model PdfModel )_fd .PdfObject {_adce ,_ecebc :=_gdcab ._ecca [model ];if !_ecebc {return nil ;};return _adce ;};
// ToImage converts an object to an Image which can be transformed or saved out.
// The image data is decoded and the Image returned.
func (_ffacf *XObjectImage )ToImage ()(*Image ,error ){_afcfe :=&Image {};if _ffacf .Height ==nil {return nil ,_fce .New ("\u0068e\u0069\u0067\u0068\u0074\u0020\u0061\u0074\u0074\u0072\u0069\u0062u\u0074\u0065\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};_afcfe .Height =*_ffacf .Height ;if _ffacf .Width ==nil {return nil ,_fce .New ("\u0077\u0069\u0064th\u0020\u0061\u0074\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};_afcfe .Width =*_ffacf .Width ;if _ffacf .BitsPerComponent ==nil {return nil ,_fce .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");};_afcfe .BitsPerComponent =*_ffacf .BitsPerComponent ;_afcfe .ColorComponents =_ffacf .ColorSpace .GetNumComponents ();_ffacf ._acbee .Set ("\u0043o\u006co\u0072\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074\u0073",_fd .MakeInteger (int64 (_afcfe .ColorComponents )));_cbfbf ,_gefccg :=_fd .DecodeStream (_ffacf ._acbee );if _gefccg !=nil {return nil ,_gefccg ;};_afcfe .Data =_cbfbf ;if _ffacf .Decode !=nil {_ccfef ,_eafge :=_ffacf .Decode .(*_fd .PdfObjectArray );if !_eafge {_fca .Log .Debug ("I\u006e\u0076\u0061\u006cid\u0020D\u0065\u0063\u006f\u0064\u0065 \u006f\u0062\u006a\u0065\u0063\u0074");return nil ,_fce .New ("\u0069\u006e\u0076a\u006c\u0069\u0064\u0020\u0074\u0079\u0070\u0065");};_gbbea ,_fggga :=_ccfef .ToFloat64Array ();if _fggga !=nil {return nil ,_fggga ;};_afcfe ._dfec =_gbbea ;};return _afcfe ,nil ;};
// NewXObjectImage returns a new XObjectImage.
func NewXObjectImage ()*XObjectImage {_adbab :=&XObjectImage {};_eeace :=&_fd .PdfObjectStream {};_eeace .PdfObjectDictionary =_fd .MakeDict ();_adbab ._acbee =_eeace ;return _adbab ;};
// PdfBorderStyle represents a border style dictionary (12.5.4 Border Styles p. 394).
type PdfBorderStyle struct{W *float64 ;S *BorderStyle ;D *[]int ;_fefdb _fd .PdfObject ;};
// PdfActionGoToR represents a GoToR action.
type PdfActionGoToR struct{*PdfAction ;F *PdfFilespec ;D _fd .PdfObject ;NewWindow _fd .PdfObject ;};
// PdfAnnotationStamp represents Stamp annotations.
// (Section 12.5.6.12).
type PdfAnnotationStamp struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Name _fd .PdfObject ;};
// ToPdfObject returns the PDF representation of the shading dictionary.
func (_daadd *PdfShadingType2 )ToPdfObject ()_fd .PdfObject {_daadd .PdfShading .ToPdfObject ();_cbgdg ,_gdeeb :=_daadd .getShadingDict ();if _gdeeb !=nil {_fca .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 _cbgdg ==nil {_fca .Log .Error ("\u0053\u0068\u0061\u0064in\u0067\u0020\u0064\u0069\u0063\u0074\u0020\u0069\u0073\u0020\u006e\u0069\u006c");return nil ;};if _daadd .Coords !=nil {_cbgdg .Set ("\u0043\u006f\u006f\u0072\u0064\u0073",_daadd .Coords );};if _daadd .Domain !=nil {_cbgdg .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_daadd .Domain );};if _daadd .Function !=nil {if len (_daadd .Function )==1{_cbgdg .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_daadd .Function [0].ToPdfObject ());}else {_baefg :=_fd .MakeArray ();for _ ,_fdbd :=range _daadd .Function {_baefg .Append (_fdbd .ToPdfObject ());};_cbgdg .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_baefg );};};if _daadd .Extend !=nil {_cbgdg .Set ("\u0045\u0078\u0074\u0065\u006e\u0064",_daadd .Extend );};return _daadd ._bcgcg ;};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););
// SetAnnotations sets the annotations list.
func (_fgeee *PdfPage )SetAnnotations (annotations []*PdfAnnotation ){_fgeee ._bfedf =annotations };type modelManager struct{_ecca map[PdfModel ]_fd .PdfObject ;_gfbaa map[_fd .PdfObject ]PdfModel ;};
// ToPdfObject returns the choice field dictionary within an indirect object (container).
func (_bcde *PdfFieldChoice )ToPdfObject ()_fd .PdfObject {_bcde .PdfField .ToPdfObject ();_gccebd :=_bcde ._fbef ;_gggf :=_gccebd .PdfObject .(*_fd .PdfObjectDictionary );_gggf .Set ("\u0046\u0054",_fd .MakeName ("\u0043\u0068"));if _bcde .Opt !=nil {_gggf .Set ("\u004f\u0070\u0074",_bcde .Opt );};if _bcde .TI !=nil {_gggf .Set ("\u0054\u0049",_bcde .TI );};if _bcde .I !=nil {_gggf .Set ("\u0049",_bcde .I );};return _gccebd ;};func _cbbb (_ggec _fd .PdfObject )(*PdfColorspaceCalGray ,error ){_beee :=NewPdfColorspaceCalGray ();if _edege ,_ecga :=_ggec .(*_fd .PdfIndirectObject );_ecga {_beee ._agcc =_edege ;};_ggec =_fd .TraceToDirectObject (_ggec );_fgdg ,_dcfa :=_ggec .(*_fd .PdfObjectArray );if !_dcfa {return nil ,_d .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _fgdg .Len ()!=2{return nil ,_d .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");};_ggec =_fd .TraceToDirectObject (_fgdg .Get (0));_acde ,_dcfa :=_ggec .(*_fd .PdfObjectName );if !_dcfa {return nil ,_d .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 *_acde !="\u0043a\u006c\u0047\u0072\u0061\u0079"{return nil ,_d .Errorf ("\u006eo\u0074\u0020\u0061\u0020\u0043\u0061\u006c\u0047\u0072\u0061\u0079 \u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063\u0065");};_ggec =_fd .TraceToDirectObject (_fgdg .Get (1));_gfdd ,_dcfa :=_ggec .(*_fd .PdfObjectDictionary );if !_dcfa {return nil ,_d .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");};_ggec =_gfdd .Get ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074");_ggec =_fd .TraceToDirectObject (_ggec );_fddb ,_dcfa :=_ggec .(*_fd .PdfObjectArray );if !_dcfa {return nil ,_d .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 _fddb .Len ()!=3{return nil ,_d .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");};_adad ,_cagbd :=_fddb .GetAsFloat64Slice ();if _cagbd !=nil {return nil ,_cagbd ;};_beee .WhitePoint =_adad ;_ggec =_gfdd .Get ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074");if _ggec !=nil {_ggec =_fd .TraceToDirectObject (_ggec );_ceed ,_bccc :=_ggec .(*_fd .PdfObjectArray );if !_bccc {return nil ,_d .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 _ceed .Len ()!=3{return nil ,_d .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");};_cefc ,_gbga :=_ceed .GetAsFloat64Slice ();if _gbga !=nil {return nil ,_gbga ;};_beee .BlackPoint =_cefc ;};_ggec =_gfdd .Get ("\u0047\u0061\u006dm\u0061");if _ggec !=nil {_ggec =_fd .TraceToDirectObject (_ggec );_fecd ,_dgecf :=_fd .GetNumberAsFloat (_ggec );if _dgecf !=nil {return nil ,_d .Errorf ("C\u0061\u006c\u0047\u0072\u0061\u0079:\u0020\u0067\u0061\u006d\u006d\u0061\u0020\u006e\u006ft\u0020\u0061\u0020n\u0075m\u0062\u0065\u0072");};_beee .Gamma =_fecd ;};return _beee ,nil ;};
// PdfActionHide represents a hide action.
type PdfActionHide struct{*PdfAction ;T _fd .PdfObject ;H _fd .PdfObject ;};
// String returns a human readable description of `fontfile`.
func (_eecaf *fontFile )String ()string {_fega :="\u005b\u004e\u006f\u006e\u0065\u005d";if _eecaf ._dfga !=nil {_fega =_eecaf ._dfga .String ();};return _d .Sprintf ("\u0046O\u004e\u0054\u0046\u0049\u004c\u0045\u007b\u0025\u0023\u0071\u0020e\u006e\u0063\u006f\u0064\u0065\u0072\u003d\u0025\u0073\u007d",_eecaf ._edgf ,_fega );};func (_ebbf *PdfReader )newPdfAnnotationUnderlineFromDict (_bage *_fd .PdfObjectDictionary )(*PdfAnnotationUnderline ,error ){_cbbf :=PdfAnnotationUnderline {};_dgbc ,_daae :=_ebbf .newPdfAnnotationMarkupFromDict (_bage );if _daae !=nil {return nil ,_daae ;};_cbbf .PdfAnnotationMarkup =_dgbc ;_cbbf .QuadPoints =_bage .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");return &_cbbf ,nil ;};
// GetSubFilter returns SubFilter value or empty string.
func (_dbcc *pdfSignDictionary )GetSubFilter ()string {_cggbd :=_dbcc .Get ("\u0053u\u0062\u0046\u0069\u006c\u0074\u0065r");if _cggbd ==nil {return "";};if _cdedg ,_fffeg :=_fd .GetNameVal (_cggbd );_fffeg {return _cdedg ;};return "";};
// Insert adds a top level outline item in the outline,
// at the specified index.
func (_gcdd *Outline )Insert (index uint ,item *OutlineItem ){_gcca :=uint (len (_gcdd .Entries ));if index > _gcca {index =_gcca ;};_gcdd .Entries =append (_gcdd .Entries [:index ],append ([]*OutlineItem {item },_gcdd .Entries [index :]...)...);};func _caaab ()*modelManager {_ddfed :=modelManager {};_ddfed ._ecca =map[PdfModel ]_fd .PdfObject {};_ddfed ._gfbaa =map[_fd .PdfObject ]PdfModel {};return &_ddfed ;};
// ToPdfObject implements interface PdfModel.
func (_eae *PdfActionImportData )ToPdfObject ()_fd .PdfObject {_eae .PdfAction .ToPdfObject ();_bca :=_eae ._fgb ;_bb :=_bca .PdfObject .(*_fd .PdfObjectDictionary );_bb .SetIfNotNil ("\u0053",_fd .MakeName (string (ActionTypeImportData )));if _eae .F !=nil {_bb .Set ("\u0046",_eae .F .ToPdfObject ());};return _bca ;};
// PdfOutline represents a PDF outline dictionary (Table 152 - p. 376).
type PdfOutline struct{PdfOutlineTreeNode ;Parent *PdfOutlineTreeNode ;Count *int64 ;_addc *_fd .PdfIndirectObject ;};
// SetPageLabels sets the PageLabels entry in the PDF catalog.
// See section 12.4.2 "Page Labels" (p. 382 PDF32000_2008).
func (_cdcae *PdfWriter )SetPageLabels (pageLabels _fd .PdfObject )error {if pageLabels ==nil {return nil ;};_fca .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");_cdcae ._agagg .Set ("\u0050\u0061\u0067\u0065\u004c\u0061\u0062\u0065\u006c\u0073",pageLabels );return _cdcae .addObjects (pageLabels );};func (_agda *PdfColorspaceSpecialPattern )String ()string {return "\u0050a\u0074\u0074\u0065\u0072\u006e";};
// ToPdfObject returns the PDF representation of the shading dictionary.
func (_afga *PdfShading )ToPdfObject ()_fd .PdfObject {_agdc :=_afga ._bcgcg ;_aadcgf ,_ggeea :=_afga .getShadingDict ();if _ggeea !=nil {_fca .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 _afga .ShadingType !=nil {_aadcgf .Set ("S\u0068\u0061\u0064\u0069\u006e\u0067\u0054\u0079\u0070\u0065",_afga .ShadingType );};if _afga .ColorSpace !=nil {_aadcgf .Set ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065",_afga .ColorSpace .ToPdfObject ());};if _afga .Background !=nil {_aadcgf .Set ("\u0042\u0061\u0063\u006b\u0067\u0072\u006f\u0075\u006e\u0064",_afga .Background );};if _afga .BBox !=nil {_aadcgf .Set ("\u0042\u0042\u006f\u0078",_afga .BBox .ToPdfObject ());};if _afga .AntiAlias !=nil {_aadcgf .Set ("\u0041n\u0074\u0069\u0041\u006c\u0069\u0061s",_afga .AntiAlias );};return _agdc ;};
// NewPdfAcroForm returns a new PdfAcroForm with an intialized container (indirect object).
func NewPdfAcroForm ()*PdfAcroForm {return &PdfAcroForm {Fields :&[]*PdfField {},_dbcdb :_fd .MakeIndirectObject (_fd .MakeDict ())};};func _adca (_aafg *_fd .PdfObjectDictionary )(*PdfFieldChoice ,error ){_efeb :=&PdfFieldChoice {};_efeb .Opt ,_ =_fd .GetArray (_aafg .Get ("\u004f\u0070\u0074"));_efeb .TI ,_ =_fd .GetInt (_aafg .Get ("\u0054\u0049"));_efeb .I ,_ =_fd .GetArray (_aafg .Get ("\u0049"));return _efeb ,nil ;};
// ImageToRGB returns the passed in image. Method exists in order to satisfy
// the PdfColorspace interface.
func (_ccbc *PdfColorspaceDeviceRGB )ImageToRGB (img Image )(Image ,error ){return img ,nil };func (_gcfd *PdfColorspaceDeviceRGB )String ()string {return "\u0044e\u0076\u0069\u0063\u0065\u0052\u0047B";};
// GetContentStreams returns the content stream as an array of strings.
func (_fceba *PdfPage )GetContentStreams ()([]string ,error ){if _fceba .Contents ==nil {return nil ,nil ;};_gfacc :=_fd .TraceToDirectObject (_fceba .Contents );var _cdagb []_fd .PdfObject ;if _cgag ,_eecd :=_gfacc .(*_fd .PdfObjectArray );_eecd {_cdagb =_cgag .Elements ();}else {_cdagb =[]_fd .PdfObject {_gfacc };};var _gfdc []string ;for _ ,_gfgg :=range _cdagb {_cffef ,_adeeg :=_agdfe (_gfgg );if _adeeg !=nil {return nil ,_adeeg ;};_gfdc =append (_gfdc ,_cffef );};return _gfdc ,nil ;};
// NewPdfAnnotationPrinterMark returns a new printermark annotation.
func NewPdfAnnotationPrinterMark ()*PdfAnnotationPrinterMark {_dbd :=NewPdfAnnotation ();_eeag :=&PdfAnnotationPrinterMark {};_eeag .PdfAnnotation =_dbd ;_dbd .SetContext (_eeag );return _eeag ;};func (_ggdba *PdfReader )buildPageList (_deed *_fd .PdfIndirectObject ,_ebcc *_fd .PdfIndirectObject ,_afgcd map[_fd .PdfObject ]struct{})error {if _deed ==nil {return nil ;};if _ ,_bafcg :=_afgcd [_deed ];_bafcg {_fca .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",_deed .ObjectNumber );return nil ;};_afgcd [_deed ]=struct{}{};_cdaeec ,_befbea :=_deed .PdfObject .(*_fd .PdfObjectDictionary );if !_befbea {return _fce .New ("n\u006f\u0064\u0065\u0020no\u0074 \u0061\u0020\u0064\u0069\u0063t\u0069\u006f\u006e\u0061\u0072\u0079");};_dgfg ,_befbea :=(*_cdaeec ).Get ("\u0054\u0079\u0070\u0065").(*_fd .PdfObjectName );if !_befbea {if _cdaeec .Get ("\u004b\u0069\u0064\u0073")==nil {return _fce .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");};_fca .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.");_dgfg =_fd .MakeName ("\u0050\u0061\u0067e\u0073");_cdaeec .Set ("\u0054\u0079\u0070\u0065",_dgfg );};_fca .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",*_dgfg ,_deed );if *_dgfg =="\u0050\u0061\u0067\u0065"{_bccd ,_ecfc :=_ggdba .newPdfPageFromDict (_cdaeec );if _ecfc !=nil {return _ecfc ;};_bccd .setContainer (_deed );if _ebcc !=nil {_cdaeec .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_ebcc );};_ggdba ._faca =append (_ggdba ._faca ,_deed );_ggdba .PageList =append (_ggdba .PageList ,_bccd );return nil ;};if *_dgfg !="\u0050\u0061\u0067e\u0073"{_fca .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",_dgfg );return _fce .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 _ebcc !=nil {_cdaeec .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_ebcc );};if !_ggdba ._ebeae {_cgfbg :=_ggdba .traverseObjectData (_deed );if _cgfbg !=nil {return _cgfbg ;};};_agggf ,_ccbec :=_ggdba ._egbge .Resolve (_cdaeec .Get ("\u004b\u0069\u0064\u0073"));if _ccbec !=nil {_fca .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 _ccbec ;};var _caad *_fd .PdfObjectArray ;_caad ,_befbea =_agggf .(*_fd .PdfObjectArray );if !_befbea {_cgbfc ,_fffdg :=_agggf .(*_fd .PdfIndirectObject );if !_fffdg {return _fce .New ("\u0069\u006e\u0076\u0061li\u0064\u0020\u004b\u0069\u0064\u0073\u0020\u006f\u0062\u006a\u0065\u0063\u0074");};_caad ,_befbea =_cgbfc .PdfObject .(*_fd .PdfObjectArray );if !_befbea {return _fce .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");};};_fca .Log .Trace ("\u004b\u0069\u0064\u0073\u003a\u0020\u0025\u0073",_caad );for _gcdac ,_fbaga :=range _caad .Elements (){_befae ,_ecgca :=_fd .GetIndirect (_fbaga );if !_ecgca {_fca .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",_befae );return _fce .New ("\u0070a\u0067\u0065\u0020\u006e\u006f\u0074\u0020\u0069\u006e\u0064\u0069r\u0065\u0063\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074");};_caad .Set (_gcdac ,_befae );_ccbec =_ggdba .buildPageList (_befae ,_deed ,_afgcd );if _ccbec !=nil {return _ccbec ;};};return nil ;};func _gdadd ()_b .Time {return _afed };
// GetContext returns a reference to the subshading entry as represented by PdfShadingType1-7.
func (_bggbe *PdfShading )GetContext ()PdfModel {return _bggbe ._ebbcbe };
// GetModelFromPrimitive returns the model corresponding to the `primitive` PdfObject.
func (_edead *modelManager )GetModelFromPrimitive (primitive _fd .PdfObject )PdfModel {model ,_efcfb :=_edead ._gfbaa [primitive ];if !_efcfb {return nil ;};return model ;};var _ pdfFont =(*pdfFontType0 )(nil );
// AddPage adds a page to the PDF file. The new page should be an indirect object.
func (_abfbef *PdfWriter )AddPage (page *PdfPage )error {_cfadfb (page );_eeccd :=page .ToPdfObject ();_fca .Log .Trace ("\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d");_fca .Log .Trace ("\u0041p\u0070\u0065\u006e\u0064i\u006e\u0067\u0020\u0074\u006f \u0070a\u0067e\u0020\u006c\u0069\u0073\u0074\u0020\u0025T",_eeccd );_bfdd ,_addgf :=_fd .GetIndirect (_eeccd );if !_addgf {return _fce .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");};_fca .Log .Trace ("\u0025\u0073",_bfdd );_fca .Log .Trace ("\u0025\u0073",_bfdd .PdfObject );_cgae ,_addgf :=_fd .GetDict (_bfdd .PdfObject );if !_addgf {return _fce .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");};_fbggf ,_addgf :=_fd .GetName (_cgae .Get ("\u0054\u0079\u0070\u0065"));if !_addgf {return _d .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",_cgae .Get ("\u0054\u0079\u0070\u0065"));};if _fbggf .String ()!="\u0050\u0061\u0067\u0065"{return _fce .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");};_cadfc :=[]_fd .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"};_cfcbc ,_dddgb :=_fd .GetIndirect (_cgae .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"));_fca .Log .Trace ("P\u0061g\u0065\u0020\u0050\u0061\u0072\u0065\u006e\u0074:\u0020\u0025\u0054\u0020(%\u0076\u0029",_cgae .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"),_dddgb );for _dddgb {_fca .Log .Trace ("\u0050a\u0067e\u0020\u0050\u0061\u0072\u0065\u006e\u0074\u003a\u0020\u0025\u0054",_cfcbc );_ddcaa ,_defa :=_fd .GetDict (_cfcbc .PdfObject );if !_defa {return _fce .New ("i\u006e\u0076\u0061\u006cid\u0020P\u0061\u0072\u0065\u006e\u0074 \u006f\u0062\u006a\u0065\u0063\u0074");};for _ ,_fgbcc :=range _cadfc {_fca .Log .Trace ("\u0046\u0069\u0065\u006c\u0064\u0020\u0025\u0073",_fgbcc );if _cgae .Get (_fgbcc )!=nil {_fca .Log .Trace ("\u002d \u0070a\u0067\u0065\u0020\u0068\u0061s\u0020\u0061l\u0072\u0065\u0061\u0064\u0079");continue ;};if _fgggg :=_ddcaa .Get (_fgbcc );_fgggg !=nil {_fca .Log .Trace ("\u0049\u006e\u0068\u0065ri\u0074\u0069\u006e\u0067\u0020\u0066\u0069\u0065\u006c\u0064\u0020\u0025\u0073",_fgbcc );_cgae .Set (_fgbcc ,_fgggg );};};_cfcbc ,_dddgb =_fd .GetIndirect (_ddcaa .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"));_fca .Log .Trace ("\u004ee\u0078t\u0020\u0070\u0061\u0072\u0065\u006e\u0074\u003a\u0020\u0025\u0054",_ddcaa .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"));};_fca .Log .Trace ("\u0054\u0072\u0061\u0076\u0065\u0072\u0073\u0061\u006c \u0064\u006f\u006e\u0065");_cgae .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_abfbef ._fgcc );_bfdd .PdfObject =_cgae ;_gfffd ,_addgf :=_fd .GetDict (_abfbef ._fgcc .PdfObject );if !_addgf {return _fce .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");};_cgdfa ,_addgf :=_fd .GetArray (_gfffd .Get ("\u004b\u0069\u0064\u0073"));if !_addgf {return _fce .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");};_cgdfa .Append (_bfdd );_abfbef ._geaba [_cgae ]=struct{}{};_cfadf ,_addgf :=_fd .GetInt (_gfffd .Get ("\u0043\u006f\u0075n\u0074"));if !_addgf {return _fce .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");};*_cfadf =*_cfadf +1;_abfbef .addObject (_bfdd );_abcdb :=_abfbef .addObjects (_cgae );if _abcdb !=nil {return _abcdb ;};return nil ;};
// Sign signs a specific page with a digital signature.
// The signature field parameter must have a valid signature dictionary
// specified by its V field.
func (_gccd *PdfAppender )Sign (pageNum int ,field *PdfFieldSignature )error {if field ==nil {return _fce .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");};_gfea :=field .V ;if _gfea ==nil {return _fce .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");};_fbda :=pageNum -1;if _fbda < 0||_fbda > len (_gccd ._eafg )-1{return _d .Errorf ("\u0070\u0061\u0067\u0065\u0020\u0025\u0064\u0020\u006e\u006f\u0074\u0020f\u006f\u0075\u006e\u0064",pageNum );};_ccdf :=_gccd .Reader .PageList [_fbda ];field .P =_ccdf .ToPdfObject ();if field .T ==nil ||field .T .String ()==""{field .T =_fd .MakeString (_d .Sprintf ("\u0053\u0069\u0067n\u0061\u0074\u0075\u0072\u0065\u0020\u0025\u0064",pageNum ));};_ccdf .AddAnnotation (field .PdfAnnotationWidget .PdfAnnotation );if _gccd ._bbce ==_gccd ._bfb .AcroForm {_gccd ._bbce =_gccd .Reader .AcroForm ;};_bcfg :=_gccd ._bbce ;if _bcfg ==nil {_bcfg =NewPdfAcroForm ();};_bcfg .SigFlags =_fd .MakeInteger (3);_cbbd :=append (_bcfg .AllFields (),field .PdfField );_bcfg .Fields =&_cbbd ;_gccd .ReplaceAcroForm (_bcfg );_gccd .UpdatePage (_ccdf );_gccd ._eafg [_fbda ]=_ccdf ;return nil ;};func (_acgf *pdfFontType0 )baseFields ()*fontCommon {return &_acgf .fontCommon };func (_fede *PdfReader )newPdfAnnotation3DFromDict (_ecc *_fd .PdfObjectDictionary )(*PdfAnnotation3D ,error ){_cfaa :=PdfAnnotation3D {};_cfaa .T3DD =_ecc .Get ("\u0033\u0044\u0044");_cfaa .T3DV =_ecc .Get ("\u0033\u0044\u0056");_cfaa .T3DA =_ecc .Get ("\u0033\u0044\u0041");_cfaa .T3DI =_ecc .Get ("\u0033\u0044\u0049");_cfaa .T3DB =_ecc .Get ("\u0033\u0044\u0042");return &_cfaa ,nil ;};var _dfegb ="";func _acbe (_bfbe _fd .PdfObject )(*PdfColorspaceSpecialSeparation ,error ){_dggb :=NewPdfColorspaceSpecialSeparation ();if _cecd ,_afaa :=_bfbe .(*_fd .PdfIndirectObject );_afaa {_dggb ._gfbf =_cecd ;};_bfbe =_fd .TraceToDirectObject (_bfbe );_ggac ,_bfafd :=_bfbe .(*_fd .PdfObjectArray );if !_bfafd {return nil ,_d .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 _ggac .Len ()!=4{return nil ,_d .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");};_bfbe =_ggac .Get (0);_bbae ,_bfafd :=_bfbe .(*_fd .PdfObjectName );if !_bfafd {return nil ,_d .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 *_bbae !="\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e"{return nil ,_d .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");};_bfbe =_ggac .Get (1);_bbae ,_bfafd =_bfbe .(*_fd .PdfObjectName );if !_bfafd {return nil ,_d .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");};_dggb .ColorantName =_bbae ;_bfbe =_ggac .Get (2);_bafe ,_gcdb :=NewPdfColorspaceFromPdfObject (_bfbe );if _gcdb !=nil {return nil ,_gcdb ;};_dggb .AlternateSpace =_bafe ;_cbee ,_gcdb :=_fagc (_ggac .Get (3));if _gcdb !=nil {return nil ,_gcdb ;};_dggb .TintTransform =_cbee ;return _dggb ,nil ;};func _debafb ()string {return _ffeac };
// ToPdfObject implements interface PdfModel.
func (_bccb *PdfAnnotationPolygon )ToPdfObject ()_fd .PdfObject {_bccb .PdfAnnotation .ToPdfObject ();_cabe :=_bccb ._defg ;_bdgc :=_cabe .PdfObject .(*_fd .PdfObjectDictionary );_bccb .PdfAnnotationMarkup .appendToPdfDictionary (_bdgc );_bdgc .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fd .MakeName ("\u0050o\u006c\u0079\u0067\u006f\u006e"));_bdgc .SetIfNotNil ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073",_bccb .Vertices );_bdgc .SetIfNotNil ("\u004c\u0045",_bccb .LE );_bdgc .SetIfNotNil ("\u0042\u0053",_bccb .BS );_bdgc .SetIfNotNil ("\u0049\u0043",_bccb .IC );_bdgc .SetIfNotNil ("\u0042\u0045",_bccb .BE );_bdgc .SetIfNotNil ("\u0049\u0054",_bccb .IT );_bdgc .SetIfNotNil ("\u004de\u0061\u0073\u0075\u0072\u0065",_bccb .Measure );return _cabe ;};
// ColorFromPdfObjects returns a new PdfColor based on the input slice of color
// components. The slice should contain a single PdfObjectFloat element.
func (_gfgb *PdfColorspaceSpecialIndexed )ColorFromPdfObjects (objects []_fd .PdfObject )(PdfColor ,error ){if len (objects )!=1{return nil ,_fce .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_fab ,_gfac :=_fd .GetNumbersAsFloat (objects );if _gfac !=nil {return nil ,_gfac ;};return _gfgb .ColorFromFloats (_fab );};
// GetParamsDict returns *core.PdfObjectDictionary with a set of basic image parameters.
func (_dfgg *Image )GetParamsDict ()*_fd .PdfObjectDictionary {_cdabc :=_fd .MakeDict ();_cdabc .Set ("\u0057\u0069\u0064t\u0068",_fd .MakeInteger (_dfgg .Width ));_cdabc .Set ("\u0048\u0065\u0069\u0067\u0068\u0074",_fd .MakeInteger (_dfgg .Height ));_cdabc .Set ("\u0043o\u006co\u0072\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074\u0073",_fd .MakeInteger (int64 (_dfgg .ColorComponents )));_cdabc .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_fd .MakeInteger (_dfgg .BitsPerComponent ));return _cdabc ;};
// ColorToRGB converts a CalRGB color to an RGB color.
func (_aefg *PdfColorspaceCalRGB )ColorToRGB (color PdfColor )(PdfColor ,error ){_befac ,_dbbcc :=color .(*PdfColorCalRGB );if !_dbbcc {_fca .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 ,_fce .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_gecg :=_befac .A ();_bcca :=_befac .B ();_gcaf :=_befac .C ();X :=_aefg .Matrix [0]*_ff .Pow (_gecg ,_aefg .Gamma [0])+_aefg .Matrix [3]*_ff .Pow (_bcca ,_aefg .Gamma [1])+_aefg .Matrix [6]*_ff .Pow (_gcaf ,_aefg .Gamma [2]);Y :=_aefg .Matrix [1]*_ff .Pow (_gecg ,_aefg .Gamma [0])+_aefg .Matrix [4]*_ff .Pow (_bcca ,_aefg .Gamma [1])+_aefg .Matrix [7]*_ff .Pow (_gcaf ,_aefg .Gamma [2]);Z :=_aefg .Matrix [2]*_ff .Pow (_gecg ,_aefg .Gamma [0])+_aefg .Matrix [5]*_ff .Pow (_bcca ,_aefg .Gamma [1])+_aefg .Matrix [8]*_ff .Pow (_gcaf ,_aefg .Gamma [2]);_edaa :=3.240479*X +-1.537150*Y +-0.498535*Z ;_fage :=-0.969256*X +1.875992*Y +0.041556*Z ;_cdcd :=0.055648*X +-0.204043*Y +1.057311*Z ;_edaa =_ff .Min (_ff .Max (_edaa ,0),1.0);_fage =_ff .Min (_ff .Max (_fage ,0),1.0);_cdcd =_ff .Min (_ff .Max (_cdcd ,0),1.0);return NewPdfColorDeviceRGB (_edaa ,_fage ,_cdcd ),nil ;};
// SetOCProperties sets the optional content properties.
func (_affcc *PdfWriter )SetOCProperties (ocProperties _fd .PdfObject )error {_fgdagb :=_affcc ._agagg ;if ocProperties !=nil {_fca .Log .Trace ("\u0053e\u0074\u0074\u0069\u006e\u0067\u0020\u004f\u0043\u0020\u0050\u0072o\u0070\u0065\u0072\u0074\u0069\u0065\u0073\u002e\u002e\u002e");_fgdagb .Set ("\u004f\u0043\u0050r\u006f\u0070\u0065\u0072\u0074\u0069\u0065\u0073",ocProperties );return _affcc .addObjects (ocProperties );};return nil ;};
// NewReaderForText makes a new PdfReader for an input PDF content string. For use in testing.
func NewReaderForText (txt string )*PdfReader {return &PdfReader {_caece :map[_fd .PdfObject ]struct{}{},_gggcg :_caaab (),_egbge :_fd .NewParserFromString (txt )};};func (_cdcebc fontCommon )asPdfObjectDictionary (_ccce string )*_fd .PdfObjectDictionary {if _ccce !=""&&_cdcebc ._ccea !=""&&_ccce !=_cdcebc ._ccea {_fca .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",_ccce ,_cdcebc );}else if _ccce ==""&&_cdcebc ._ccea ==""{_fca .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",_cdcebc );}else if _cdcebc ._ccea ==""{_cdcebc ._ccea =_ccce ;};_befbb :=_fd .MakeDict ();_befbb .Set ("\u0054\u0079\u0070\u0065",_fd .MakeName ("\u0046\u006f\u006e\u0074"));_befbb .Set ("\u0042\u0061\u0073\u0065\u0046\u006f\u006e\u0074",_fd .MakeName (_cdcebc ._egfg ));_befbb .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fd .MakeName (_cdcebc ._ccea ));if _cdcebc ._ggbg !=nil {_befbb .Set ("\u0046\u006f\u006e\u0074\u0044\u0065\u0073\u0063\u0072i\u0070\u0074\u006f\u0072",_cdcebc ._ggbg .ToPdfObject ());};if _cdcebc ._ddaf !=nil {_befbb .Set ("\u0054o\u0055\u006e\u0069\u0063\u006f\u0064e",_cdcebc ._ddaf );}else if _cdcebc ._facge !=nil {_fadg ,_fadfe :=_cdcebc ._facge .Stream ();if _fadfe !=nil {_fca .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",_fadfe );}else {_befbb .Set ("\u0054o\u0055\u006e\u0069\u0063\u006f\u0064e",_fadg );};};return _befbb ;};
// 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 (_feccc fontCommon )isCIDFont ()bool {if _feccc ._ccea ==""{_fca .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",_feccc );};_bece :=false ;switch _feccc ._ccea {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":_bece =true ;};_fca .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",_bece ,_feccc );return _bece ;};func (_gfff *pdfFontType0 )bytesToCharcodes (_gecb []byte )([]_gf .CharCode ,bool ){if _gfff ._cfcce ==nil {return nil ,false ;};_bfeeg ,_afb :=_gfff ._cfcce .BytesToCharcodes (_gecb );if !_afb {return nil ,false ;};_bcaee :=make ([]_gf .CharCode ,len (_bfeeg ));for _agcg ,_ebaa :=range _bfeeg {_bcaee [_agcg ]=_gf .CharCode (_ebaa );};return _bcaee ,true ;};func (_eeedd *pdfFontType0 )subsetRegistered ()error {_ecgg ,_eegc :=_eeedd .DescendantFont ._bbaa .(*pdfCIDFontType2 );if !_eegc {_fca .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",_eeedd .DescendantFont );return nil ;};if _ecgg ==nil {return nil ;};if _ecgg ._ggbg ==nil {_fca .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 _eeedd ._dbbce ==nil {_fca .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 ;};_ggfg ,_eegc :=_fd .GetStream (_ecgg ._ggbg .FontFile2 );if !_eegc {_fca .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 _fce .New ("\u0066\u006f\u006e\u0074fi\u006c\u0065\u0032\u0020\u006e\u006f\u0074\u0020\u0066\u006f\u0075\u006e\u0064");};_abcf ,_dfdf :=_fd .DecodeStream (_ggfg );if _dfdf !=nil {_fca .Log .Debug ("\u0044\u0065c\u006f\u0064\u0065 \u0065\u0072\u0072\u006f\u0072\u003a\u0020\u0025\u0076",_dfdf );return _dfdf ;};_decfe ,_dfdf :=_afe .Parse (_bg .NewReader (_abcf ));if _dfdf !=nil {_fca .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 (_ggfg .Stream ));return _dfdf ;};var _ecge []rune ;var _fbfgg *_afe .Font ;switch _abec :=_eeedd ._dbbce .(type ){case *_gf .TrueTypeFontEncoder :_ecge =_abec .RegisteredRunes ();_fbfgg ,_dfdf =_decfe .SubsetKeepRunes (_ecge );if _dfdf !=nil {_fca .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_dfdf );return _dfdf ;};_abec .SubsetRegistered ();case *_gf .IdentityEncoder :_ecge =_abec .RegisteredRunes ();_caggda :=make ([]_afe .GlyphIndex ,len (_ecge ));for _fgbd ,_gade :=range _ecge {_caggda [_fgbd ]=_afe .GlyphIndex (_gade );};_fbfgg ,_dfdf =_decfe .SubsetKeepIndices (_caggda );if _dfdf !=nil {_fca .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_dfdf );return _dfdf ;};case _gf .SimpleEncoder :_adcf :=_abec .Charcodes ();for _ ,_ffdfd :=range _adcf {_ecag ,_bgdb :=_abec .CharcodeToRune (_ffdfd );if !_bgdb {_fca .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",_ffdfd );continue ;};_ecge =append (_ecge ,_ecag );};default:return _d .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",_eeedd ._dbbce );};var _eadag _bg .Buffer ;_dfdf =_fbfgg .Write (&_eadag );if _dfdf !=nil {_fca .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_dfdf );return _dfdf ;};if _eeedd ._facge !=nil {_faeaa :=make (map[_agg .CharCode ]rune ,len (_ecge ));for _ ,_dgbbdg :=range _ecge {_gdegb ,_cceb :=_eeedd ._dbbce .RuneToCharcode (_dgbbdg );if !_cceb {continue ;};_faeaa [_agg .CharCode (_gdegb )]=_dgbbdg ;};_eeedd ._facge =_agg .NewToUnicodeCMap (_faeaa );};_ggfg ,_dfdf =_fd .MakeStream (_eadag .Bytes (),_fd .NewFlateEncoder ());if _dfdf !=nil {_fca .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_dfdf );return _dfdf ;};_ggfg .Set ("\u004ce\u006e\u0067\u0074\u0068\u0031",_fd .MakeInteger (int64 (_eadag .Len ())));if _agdf ,_ddec :=_fd .GetStream (_ecgg ._ggbg .FontFile2 );_ddec {*_agdf =*_ggfg ;}else {_ecgg ._ggbg .FontFile2 =_ggfg ;};_dcgfe :=_ecdff ();if len (_eeedd ._egfg )> 0{_eeedd ._egfg =_gddge (_eeedd ._egfg ,_dcgfe );};if len (_ecgg ._egfg )> 0{_ecgg ._egfg =_gddge (_ecgg ._egfg ,_dcgfe );};if len (_eeedd ._gaebg )> 0{_eeedd ._gaebg =_gddge (_eeedd ._gaebg ,_dcgfe );};if _ecgg ._ggbg !=nil {_effa ,_aadgb :=_fd .GetName (_ecgg ._ggbg .FontName );if _aadgb &&len (_effa .String ())> 0{_dcad :=_gddge (_effa .String (),_dcgfe );_ecgg ._ggbg .FontName =_fd .MakeName (_dcad );};};return nil ;};
// PdfAnnotationLine represents Line annotations.
// (Section 12.5.6.7).
type PdfAnnotationLine struct{*PdfAnnotation ;*PdfAnnotationMarkup ;L _fd .PdfObject ;BS _fd .PdfObject ;LE _fd .PdfObject ;IC _fd .PdfObject ;LL _fd .PdfObject ;LLE _fd .PdfObject ;Cap _fd .PdfObject ;IT _fd .PdfObject ;LLO _fd .PdfObject ;CP _fd .PdfObject ;Measure _fd .PdfObject ;CO _fd .PdfObject ;};func _cbbce (_egbc _fd .PdfObject )(*PdfFunctionType2 ,error ){_ecacb :=&PdfFunctionType2 {};var _acbfg *_fd .PdfObjectDictionary ;if _dfge ,_gfgag :=_egbc .(*_fd .PdfIndirectObject );_gfgag {_gbfg ,_gbcf :=_dfge .PdfObject .(*_fd .PdfObjectDictionary );if !_gbcf {return nil ,_fce .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_ecacb ._ecadf =_dfge ;_acbfg =_gbfg ;}else if _egea ,_fgdac :=_egbc .(*_fd .PdfObjectDictionary );_fgdac {_acbfg =_egea ;}else {return nil ,_fce .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_fca .Log .Trace ("\u0046U\u004e\u0043\u0032\u003a\u0020\u0025s",_acbfg .String ());_fefc ,_cfeed :=_fd .TraceToDirectObject (_acbfg .Get ("\u0044\u006f\u006d\u0061\u0069\u006e")).(*_fd .PdfObjectArray );if !_cfeed {_fca .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_fce .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 _fefc .Len ()< 0||_fefc .Len ()%2!=0{_fca .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u0072\u0061\u006e\u0067e\u0020\u0069\u006e\u0076al\u0069\u0064");return nil ,_fce .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0064\u006f\u006da\u0069\u006e\u0020\u0072an\u0067\u0065");};_afbg ,_adee :=_fefc .ToFloat64Array ();if _adee !=nil {return nil ,_adee ;};_ecacb .Domain =_afbg ;_fefc ,_cfeed =_fd .TraceToDirectObject (_acbfg .Get ("\u0052\u0061\u006eg\u0065")).(*_fd .PdfObjectArray );if _cfeed {if _fefc .Len ()< 0||_fefc .Len ()%2!=0{return nil ,_fce .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0061\u006e\u0067\u0065");};_ecfg ,_efffb :=_fefc .ToFloat64Array ();if _efffb !=nil {return nil ,_efffb ;};_ecacb .Range =_ecfg ;};_fefc ,_cfeed =_fd .TraceToDirectObject (_acbfg .Get ("\u0043\u0030")).(*_fd .PdfObjectArray );if _cfeed {_ccde ,_bccga :=_fefc .ToFloat64Array ();if _bccga !=nil {return nil ,_bccga ;};_ecacb .C0 =_ccde ;};_fefc ,_cfeed =_fd .TraceToDirectObject (_acbfg .Get ("\u0043\u0031")).(*_fd .PdfObjectArray );if _cfeed {_cebb ,_ffece :=_fefc .ToFloat64Array ();if _ffece !=nil {return nil ,_ffece ;};_ecacb .C1 =_cebb ;};if len (_ecacb .C0 )!=len (_ecacb .C1 ){_fca .Log .Error ("\u0043\u0030\u0020\u0061nd\u0020\u0043\u0031\u0020\u006e\u006f\u0074\u0020\u006d\u0061\u0074\u0063\u0068\u0069n\u0067");return nil ,_fd .ErrRangeError ;};N ,_adee :=_fd .GetNumberAsFloat (_fd .TraceToDirectObject (_acbfg .Get ("\u004e")));if _adee !=nil {_fca .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",_acbfg .String ());return nil ,_adee ;};_ecacb .N =N ;return _ecacb ,nil ;};
// ToPdfObject implements interface PdfModel.
func (_cfd *PdfAnnotationStrikeOut )ToPdfObject ()_fd .PdfObject {_cfd .PdfAnnotation .ToPdfObject ();_gbgf :=_cfd ._defg ;_cgg :=_gbgf .PdfObject .(*_fd .PdfObjectDictionary );_cfd .PdfAnnotationMarkup .appendToPdfDictionary (_cgg );_cgg .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fd .MakeName ("\u0053t\u0072\u0069\u006b\u0065\u004f\u0075t"));_cgg .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_cfd .QuadPoints );return _gbgf ;};func (_dfa *PdfReader )newPdfAnnotationSquareFromDict (_bdbc *_fd .PdfObjectDictionary )(*PdfAnnotationSquare ,error ){_adfe :=PdfAnnotationSquare {};_fcdd ,_adgf :=_dfa .newPdfAnnotationMarkupFromDict (_bdbc );if _adgf !=nil {return nil ,_adgf ;};_adfe .PdfAnnotationMarkup =_fcdd ;_adfe .BS =_bdbc .Get ("\u0042\u0053");_adfe .IC =_bdbc .Get ("\u0049\u0043");_adfe .BE =_bdbc .Get ("\u0042\u0045");_adfe .RD =_bdbc .Get ("\u0052\u0044");return &_adfe ,nil ;};func _bgba (_dcbc _fd .PdfObject ){_fca .Log .Debug ("\u006f\u0062\u006a\u003a\u0020\u0025\u0054\u0020\u0025\u0073",_dcbc ,_dcbc .String ());if _cbgbf ,_gbedb :=_dcbc .(*_fd .PdfObjectStream );_gbedb {_bgae ,_gede :=_fd .DecodeStream (_cbgbf );if _gede !=nil {_fca .Log .Debug ("\u0045r\u0072\u006f\u0072\u003a\u0020\u0025v",_gede );return ;};_fca .Log .Debug ("D\u0065\u0063\u006f\u0064\u0065\u0064\u003a\u0020\u0025\u0073",_bgae );}else if _afcd ,_facfg :=_dcbc .(*_fd .PdfIndirectObject );_facfg {_fca .Log .Debug ("\u0025\u0054\u0020%\u0076",_afcd .PdfObject ,_afcd .PdfObject );_fca .Log .Debug ("\u0025\u0073",_afcd .PdfObject .String ());};};
// PdfActionNamed represents a named action.
type PdfActionNamed struct{*PdfAction ;N _fd .PdfObject ;};
// PdfAppender appends new PDF content to an existing PDF document via incremental updates.
type PdfAppender struct{_ddbg _fc .ReadSeeker ;_fbgg *_fd .PdfParser ;_bfb *PdfReader ;Reader *PdfReader ;_eafg []*PdfPage ;_bbce *PdfAcroForm ;_fdb _fd .XrefTable ;_bceb int64 ;_bfbb int ;_efe []_fd .PdfObject ;_baef map[_fd .PdfObject ]struct{};_daec map[_fd .PdfObject ]int64 ;_ddgd map[_fd .PdfObject ]struct{};_ddag map[_fd .PdfObject ]struct{};_gedb int64 ;_gfd bool ;};
// SetPdfSubject sets the Subject attribute of the output PDF.
func SetPdfSubject (subject string ){_dfegb =subject };func (_aaac *PdfReader )newPdfAnnotationFileAttachmentFromDict (_bdgga *_fd .PdfObjectDictionary )(*PdfAnnotationFileAttachment ,error ){_gdega :=PdfAnnotationFileAttachment {};_gbee ,_abed :=_aaac .newPdfAnnotationMarkupFromDict (_bdgga );if _abed !=nil {return nil ,_abed ;};_gdega .PdfAnnotationMarkup =_gbee ;_gdega .FS =_bdgga .Get ("\u0046\u0053");_gdega .Name =_bdgga .Get ("\u004e\u0061\u006d\u0065");return &_gdega ,nil ;};
// FontDescriptor returns font's PdfFontDescriptor. This may be a builtin descriptor for standard 14
// fonts but must be an explicit descriptor for other fonts.
func (_bcgcc *PdfFont )FontDescriptor ()*PdfFontDescriptor {if _bcgcc .baseFields ()._ggbg !=nil {return _bcgcc .baseFields ()._ggbg ;};if _egef :=_bcgcc ._bbaa .getFontDescriptor ();_egef !=nil {return _egef ;};_fca .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",_bcgcc );return nil ;};
// PdfColorspaceICCBased format [/ICCBased stream]
//
// The stream shall contain the ICC profile.
// A conforming reader shall support ICC.1:2004:10 as required by PDF 1.7, which will enable it
// to properly render all embedded ICC profiles regardless of the PDF version
//
// In the current implementation, we rely on the alternative colormap provided.
type PdfColorspaceICCBased struct{N int ;Alternate PdfColorspace ;
// If omitted ICC not supported: then use DeviceGray,
// DeviceRGB or DeviceCMYK for N=1,3,4 respectively.
Range []float64 ;Metadata *_fd .PdfObjectStream ;Data []byte ;_acfb *_fd .PdfIndirectObject ;_beab *_fd .PdfObjectStream ;};
// FullName returns the full name of the field as in rootname.parentname.partialname.
func (_baag *PdfField )FullName ()(string ,error ){var _addf _bg .Buffer ;if _baag .T ==nil {return _addf .String (),_fce .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");};_dbded :=[]string {_baag .T .Decoded ()};_egeb :=map[*PdfField ]bool {};_egeb [_baag ]=true ;_accd :=_baag .Parent ;for _accd !=nil {if _ ,_dgdf :=_egeb [_accd ];_dgdf {return _addf .String (),_fce .New ("\u0072\u0065\u0063\u0075rs\u0069\u0076\u0065\u0020\u0074\u0072\u0061\u0076\u0065\u0072\u0073\u0061\u006c");};if _accd .T ==nil {return _addf .String (),_fce .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");};_dbded =append (_dbded ,_accd .T .Decoded ());_egeb [_accd ]=true ;_accd =_accd .Parent ;};for _eagc :=len (_dbded )-1;_eagc >=0;_eagc --{_addf .WriteString (_dbded [_eagc ]);if _eagc > 0{_addf .WriteString ("\u002e");};};return _addf .String (),nil ;};
// NewPdfOutlineTree returns an initialized PdfOutline tree.
func NewPdfOutlineTree ()*PdfOutline {_egagb :=NewPdfOutline ();_egagb ._ccggf =&_egagb ;return _egagb ;};func (_fdbag *PdfColorspaceSpecialSeparation )String ()string {return "\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e";};
// NewPdfActionSetOCGState returns a new "named" action.
func NewPdfActionSetOCGState ()*PdfActionSetOCGState {_fdf :=NewPdfAction ();_cff :=&PdfActionSetOCGState {};_cff .PdfAction =_fdf ;_fdf .SetContext (_cff );return _cff ;};
// String returns a string that describes `font`.
func (_dfdb *PdfFont )String ()string {_eafee :="";if _dfdb ._bbaa .Encoder ()!=nil {_eafee =_dfdb ._bbaa .Encoder ().String ();};return _d .Sprintf ("\u0046\u004f\u004e\u0054\u007b\u0025\u0054\u0020\u0025s\u0020\u0025\u0073\u007d",_dfdb ._bbaa ,_dfdb .baseFields ().coreString (),_eafee );};
// ToPdfObject implements interface PdfModel.
func (_egbg *PdfActionNamed )ToPdfObject ()_fd .PdfObject {_egbg .PdfAction .ToPdfObject ();_ged :=_egbg ._fgb ;_cee :=_ged .PdfObject .(*_fd .PdfObjectDictionary );_cee .SetIfNotNil ("\u0053",_fd .MakeName (string (ActionTypeNamed )));_cee .SetIfNotNil ("\u004e",_egbg .N );return _ged ;};
// GetRuneMetrics returns the character metrics for the specified rune.
// A bool flag is returned to indicate whether or not the entry was found.
func (_bcfge pdfCIDFontType2 )GetRuneMetrics (r rune )(_aaf .CharMetrics ,bool ){_fggda ,_beggb :=_bcfge ._ebfg [r ];if !_beggb {_ddbgd ,_bfaa :=_fd .GetInt (_bcfge .DW );if !_bfaa {return _aaf .CharMetrics {},false ;};_fggda =int (*_ddbgd );};return _aaf .CharMetrics {Wx :float64 (_fggda )},true ;};
// ToPdfObject implements interface PdfModel.
func (_gaec *PdfAnnotationCaret )ToPdfObject ()_fd .PdfObject {_gaec .PdfAnnotation .ToPdfObject ();_cgaf :=_gaec ._defg ;_dedf :=_cgaf .PdfObject .(*_fd .PdfObjectDictionary );_gaec .PdfAnnotationMarkup .appendToPdfDictionary (_dedf );_dedf .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fd .MakeName ("\u0043\u0061\u0072e\u0074"));_dedf .SetIfNotNil ("\u0052\u0044",_gaec .RD );_dedf .SetIfNotNil ("\u0053\u0079",_gaec .Sy );return _cgaf ;};func _bfdgg (_cagd *_fd .PdfObjectDictionary ,_eeddg *fontCommon ,_caec _gf .TextEncoder )(*pdfFontSimple ,error ){_bcbbf :=_dade (_eeddg );_bcbbf ._cgdd =_caec ;if _caec ==nil {_eeba :=_cagd .Get ("\u0046i\u0072\u0073\u0074\u0043\u0068\u0061r");if _eeba ==nil {_eeba =_fd .MakeInteger (0);};_bcbbf .FirstChar =_eeba ;_dfee ,_afgd :=_fd .GetIntVal (_eeba );if !_afgd {_fca .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",_eeba );return nil ,_fd .ErrTypeError ;};_cgbf :=_gf .CharCode (_dfee );_eeba =_cagd .Get ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072");if _eeba ==nil {_eeba =_fd .MakeInteger (255);};_bcbbf .LastChar =_eeba ;_dfee ,_afgd =_fd .GetIntVal (_eeba );if !_afgd {_fca .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",_eeba );return nil ,_fd .ErrTypeError ;};_bfbad :=_gf .CharCode (_dfee );_bcbbf ._cfcg =make (map[_gf .CharCode ]float64 );_eeba =_cagd .Get ("\u0057\u0069\u0064\u0074\u0068\u0073");if _eeba !=nil {_bcbbf .Widths =_eeba ;_adeac ,_dfeec :=_fd .GetArray (_eeba );if !_dfeec {_fca .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",_eeba );return nil ,_fd .ErrTypeError ;};_eeadd ,_deda :=_adeac .ToFloat64Array ();if _deda !=nil {_fca .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 ,_deda ;};if len (_eeadd )!=int (_bfbad -_cgbf +1){_fca .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",_bfbad -_cgbf +1,len (_eeadd ));return nil ,_fd .ErrRangeError ;};for _feggd ,_ecf :=range _eeadd {_bcbbf ._cfcg [_cgbf +_gf .CharCode (_feggd )]=_ecf ;};};};_bcbbf .Encoding =_fd .TraceToDirectObject (_cagd .Get ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067"));return _bcbbf ,nil ;};
// ToPdfObject implements interface PdfModel.
func (_fgcb *PdfActionSetOCGState )ToPdfObject ()_fd .PdfObject {_fgcb .PdfAction .ToPdfObject ();_ade :=_fgcb ._fgb ;_ecg :=_ade .PdfObject .(*_fd .PdfObjectDictionary );_ecg .SetIfNotNil ("\u0053",_fd .MakeName (string (ActionTypeSetOCGState )));_ecg .SetIfNotNil ("\u0053\u0074\u0061t\u0065",_fgcb .State );_ecg .SetIfNotNil ("\u0050\u0072\u0065\u0073\u0065\u0072\u0076\u0065\u0052\u0042",_fgcb .PreserveRB );return _ade ;};
// GetNumComponents returns the number of color components of the colorspace device.
// Returns 3 for a Lab device.
func (_dbgec *PdfColorspaceLab )GetNumComponents ()int {return 3};
// PdfOutlineTreeNode contains common fields used by the outline and outline
// item objects.
type PdfOutlineTreeNode struct{_ccggf interface{};First *PdfOutlineTreeNode ;Last *PdfOutlineTreeNode ;};
// NewPdfAnnotationCaret returns a new caret annotation.
func NewPdfAnnotationCaret ()*PdfAnnotationCaret {_dea :=NewPdfAnnotation ();_bbe :=&PdfAnnotationCaret {};_bbe .PdfAnnotation =_dea ;_bbe .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_dea .SetContext (_bbe );return _bbe ;};func (_cbfd *PdfFilespec )getDict ()*_fd .PdfObjectDictionary {if _cdab ,_ceef :=_cbfd ._gccf .(*_fd .PdfIndirectObject );_ceef {_agec ,_gbca :=_cdab .PdfObject .(*_fd .PdfObjectDictionary );if !_gbca {return nil ;};return _agec ;}else if _edbd ,_aefge :=_cbfd ._gccf .(*_fd .PdfObjectDictionary );_aefge {return _edbd ;}else {_fca .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",_cbfd ._gccf );return nil ;};};
// NewPdfColorspaceDeviceN returns an initialized PdfColorspaceDeviceN.
func NewPdfColorspaceDeviceN ()*PdfColorspaceDeviceN {_cdbd :=&PdfColorspaceDeviceN {};return _cdbd };func _caacc (_gcdga *PdfField ,_eeaad _fd .PdfObject ){for _ ,_fcgcb :=range _gcdga .Annotations {_fcgcb .AS =_eeaad ;_fcgcb .ToPdfObject ();};};func _gfaf (_efcg string )map[string ]string {_fafdc :=_bdde .Split (_efcg ,-1);_fdda :=map[string ]string {};for _ ,_ddbff :=range _fafdc {_ecbeg :=_fcdb .FindStringSubmatch (_ddbff );if _ecbeg ==nil {continue ;};_cbdee ,_ddbb :=_ecbeg [1],_ecbeg [2];_fdda [_cbdee ]=_ddbb ;};return _fdda ;};
// DefaultImageHandler is the default implementation of the ImageHandler using the standard go library.
type DefaultImageHandler struct{};
// GetNumComponents returns the number of color components (1 for Indexed).
func (_edcfb *PdfColorspaceSpecialIndexed )GetNumComponents ()int {return 1};
// NewPdfColorspaceSpecialPattern returns a new pattern color.
func NewPdfColorspaceSpecialPattern ()*PdfColorspaceSpecialPattern {return &PdfColorspaceSpecialPattern {};};
// ToPdfObject converts the PdfPage to a dictionary within an indirect object container.
func (_edfdc *PdfPage )ToPdfObject ()_fd .PdfObject {_cadae :=_edfdc ._debfd ;_edfdc .GetPageDict ();return _cadae ;};func _dbbbc (_gebdf []byte )bool {if len (_gebdf )< 4{return true ;};for _agdb :=range _gebdf [:4]{_fecf :=rune (_agdb );if !_g .Is (_g .ASCII_Hex_Digit ,_fecf )&&!_g .IsSpace (_fecf ){return true ;};};return false ;};
// NewPdfDateFromTime will create a PdfDate based on the given time
func NewPdfDateFromTime (timeObj _b .Time )(PdfDate ,error ){_dabea :=timeObj .Format ("\u002d\u0030\u0037\u003a\u0030\u0030");_fgace ,_ :=_ca .ParseInt (_dabea [1:3],10,32);_baefb ,_ :=_ca .ParseInt (_dabea [4:6],10,32);return PdfDate {_bgggb :int64 (timeObj .Year ()),_baced :int64 (timeObj .Month ()),_beffe :int64 (timeObj .Day ()),_dcbba :int64 (timeObj .Hour ()),_fbbgf :int64 (timeObj .Minute ()),_cfegc :int64 (timeObj .Second ()),_bbeedc :_dabea [0],_edbcf :_fgace ,_eaegd :_baefb },nil ;};
// PdfFieldChoice represents a choice field which includes scrollable list boxes and combo boxes.
type PdfFieldChoice struct{*PdfField ;Opt *_fd .PdfObjectArray ;TI *_fd .PdfObjectInteger ;I *_fd .PdfObjectArray ;};func (_ddaced *PdfPattern )getDict ()*_fd .PdfObjectDictionary {if _fgea ,_ffda :=_ddaced ._bfcg .(*_fd .PdfIndirectObject );_ffda {_dfbe ,_bbcea :=_fgea .PdfObject .(*_fd .PdfObjectDictionary );if !_bbcea {return nil ;};return _dfbe ;}else if _abdd ,_aagfa :=_ddaced ._bfcg .(*_fd .PdfObjectStream );_aagfa {return _abdd .PdfObjectDictionary ;}else {_fca .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",_ddaced ._bfcg );return nil ;};};
// NewBorderStyle returns an initialized PdfBorderStyle.
func NewBorderStyle ()*PdfBorderStyle {_fdaa :=&PdfBorderStyle {};return _fdaa };func (_fafa *PdfColorspaceDeviceCMYK )String ()string {return "\u0044\u0065\u0076\u0069\u0063\u0065\u0043\u004d\u0059\u004b";};func (_bfee *PdfFont )baseFields ()*fontCommon {if _bfee ._bbaa ==nil {_fca .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 _bfee ._bbaa .baseFields ();};
// ReplacePage replaces the original page to a new page.
func (_bcf *PdfAppender )ReplacePage (pageNum int ,page *PdfPage ){_ddga :=pageNum -1;for _aaca :=range _bcf ._eafg {if _aaca ==_ddga {_edea :=page .Duplicate ();_cfadfb (_edea );_bcf ._eafg [_aaca ]=_edea ;};};};func (_abd *PdfReader )newPdfAnnotationLinkFromDict (_ffb *_fd .PdfObjectDictionary )(*PdfAnnotationLink ,error ){_bagb :=PdfAnnotationLink {};_bagb .A =_ffb .Get ("\u0041");_bagb .Dest =_ffb .Get ("\u0044\u0065\u0073\u0074");_bagb .H =_ffb .Get ("\u0048");_bagb .PA =_ffb .Get ("\u0050\u0041");_bagb .QuadPoints =_ffb .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");_bagb .BS =_ffb .Get ("\u0042\u0053");return &_bagb ,nil ;};
// OutlineItem represents a PDF outline item dictionary (Table 153 - pp. 376 - 377).
type OutlineItem struct{Title string `json:"title"`;Dest OutlineDest `json:"dest"`;Entries []*OutlineItem `json:"entries,omitempty"`;};func (_edgg *PdfReader )loadAction (_aeb _fd .PdfObject )(*PdfAction ,error ){if _bdgg ,_bdbg :=_fd .GetIndirect (_aeb );_bdbg {_gdec ,_babf :=_edgg .newPdfActionFromIndirectObject (_bdgg );if _babf !=nil {return nil ,_babf ;};return _gdec ,nil ;}else if !_fd .IsNullObject (_aeb ){return nil ,_fce .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 ;};
// PdfAnnotationHighlight represents Highlight annotations.
// (Section 12.5.6.10).
type PdfAnnotationHighlight struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _fd .PdfObject ;};
// ReplaceAcroForm replaces the acrobat form. It appends a new form to the Pdf which
// replaces the original AcroForm.
func (_egec *PdfAppender )ReplaceAcroForm (acroForm *PdfAcroForm ){if acroForm !=nil {_egec .updateObjectsDeep (acroForm .ToPdfObject (),nil );};_egec ._bbce =acroForm ;};func _fcegc (_fcddf _fd .PdfObject )(*PdfShading ,error ){_beba :=&PdfShading {};var _befab *_fd .PdfObjectDictionary ;if _afaaf ,_aege :=_fd .GetIndirect (_fcddf );_aege {_beba ._bcgcg =_afaaf ;_ccddf ,_cdceca :=_afaaf .PdfObject .(*_fd .PdfObjectDictionary );if !_cdceca {_fca .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 ,_fd .ErrTypeError ;};_befab =_ccddf ;}else if _ddcee ,_adgdc :=_fd .GetStream (_fcddf );_adgdc {_beba ._bcgcg =_ddcee ;_befab =_ddcee .PdfObjectDictionary ;}else if _bfcbb ,_afgge :=_fd .GetDict (_fcddf );_afgge {_beba ._bcgcg =_bfcbb ;_befab =_bfcbb ;}else {_fca .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",_fcddf );return nil ,_fd .ErrTypeError ;};if _befab ==nil {_fca .Log .Debug ("\u0044i\u0063t\u0069\u006f\u006e\u0061\u0072y\u0020\u006di\u0073\u0073\u0069\u006e\u0067");return nil ,_fce .New ("\u0064\u0069\u0063t\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};_fcddf =_befab .Get ("S\u0068\u0061\u0064\u0069\u006e\u0067\u0054\u0079\u0070\u0065");if _fcddf ==nil {_fca .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 ;};_fcddf =_fd .TraceToDirectObject (_fcddf );_ebaag ,_fbbcb :=_fcddf .(*_fd .PdfObjectInteger );if !_fbbcb {_fca .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",_fcddf );return nil ,_fd .ErrTypeError ;};if *_ebaag < 1||*_ebaag > 7{_fca .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",*_ebaag );return nil ,_fd .ErrTypeError ;};_beba .ShadingType =_ebaag ;_fcddf =_befab .Get ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065");if _fcddf ==nil {_fca .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 ;};_cgda ,_ggeefa :=NewPdfColorspaceFromPdfObject (_fcddf );if _ggeefa !=nil {_fca .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",_ggeefa );return nil ,_ggeefa ;};_beba .ColorSpace =_cgda ;_fcddf =_befab .Get ("\u0042\u0061\u0063\u006b\u0067\u0072\u006f\u0075\u006e\u0064");if _fcddf !=nil {_fcddf =_fd .TraceToDirectObject (_fcddf );_fbbbb ,_fdacfa :=_fcddf .(*_fd .PdfObjectArray );if !_fdacfa {_fca .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)",_fcddf );return nil ,_fd .ErrTypeError ;};_beba .Background =_fbbbb ;};_fcddf =_befab .Get ("\u0042\u0042\u006f\u0078");if _fcddf !=nil {_fcddf =_fd .TraceToDirectObject (_fcddf );_bffg ,_dedaf :=_fcddf .(*_fd .PdfObjectArray );if !_dedaf {_fca .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)",_fcddf );return nil ,_fd .ErrTypeError ;};_ebcg ,_fgdfg :=NewPdfRectangle (*_bffg );if _fgdfg !=nil {_fca .Log .Debug ("\u0042\u0042\u006f\u0078\u0020\u0065\u0072\u0072\u006fr\u003a\u0020\u0025\u0076",_fgdfg );return nil ,_fgdfg ;};_beba .BBox =_ebcg ;};_fcddf =_befab .Get ("\u0041n\u0074\u0069\u0041\u006c\u0069\u0061s");if _fcddf !=nil {_fcddf =_fd .TraceToDirectObject (_fcddf );_eecaff ,_ccace :=_fcddf .(*_fd .PdfObjectBool );if !_ccace {_fca .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",_fcddf );return nil ,_fd .ErrTypeError ;};_beba .AntiAlias =_eecaff ;};switch *_ebaag {case 1:_dadd ,_dgbad :=_abgff (_befab );if _dgbad !=nil {return nil ,_dgbad ;};_dadd .PdfShading =_beba ;_beba ._ebbcbe =_dadd ;return _beba ,nil ;case 2:_faee ,_bcge :=_gafbdb (_befab );if _bcge !=nil {return nil ,_bcge ;};_faee .PdfShading =_beba ;_beba ._ebbcbe =_faee ;return _beba ,nil ;case 3:_cceaff ,_cbaee :=_bbfde (_befab );if _cbaee !=nil {return nil ,_cbaee ;};_cceaff .PdfShading =_beba ;_beba ._ebbcbe =_cceaff ;return _beba ,nil ;case 4:_ceba ,_cfab :=_ecfcf (_befab );if _cfab !=nil {return nil ,_cfab ;};_ceba .PdfShading =_beba ;_beba ._ebbcbe =_ceba ;return _beba ,nil ;case 5:_ebee ,_acbca :=_dgefd (_befab );if _acbca !=nil {return nil ,_acbca ;};_ebee .PdfShading =_beba ;_beba ._ebbcbe =_ebee ;return _beba ,nil ;case 6:_faddc ,_babfg :=_aageg (_befab );if _babfg !=nil {return nil ,_babfg ;};_faddc .PdfShading =_beba ;_beba ._ebbcbe =_faddc ;return _beba ,nil ;case 7:_ebae ,_ebgc :=_dbec (_befab );if _ebgc !=nil {return nil ,_ebgc ;};_ebae .PdfShading =_beba ;_beba ._ebbcbe =_ebae ;return _beba ,nil ;};return nil ,_fce .New ("u\u006ek\u006e\u006f\u0077\u006e\u0020\u0073\u0068\u0061d\u0069\u006e\u0067\u0020ty\u0070\u0065");};
// PdfShadingType7 is a Tensor-product patch mesh.
type PdfShadingType7 struct{*PdfShading ;BitsPerCoordinate *_fd .PdfObjectInteger ;BitsPerComponent *_fd .PdfObjectInteger ;BitsPerFlag *_fd .PdfObjectInteger ;Decode *_fd .PdfObjectArray ;Function []PdfFunction ;};
// ToOutlineTree returns a low level PdfOutlineTreeNode object, based on
// the current instance.
func (_cfacb *Outline )ToOutlineTree ()*PdfOutlineTreeNode {return &_cfacb .ToPdfOutline ().PdfOutlineTreeNode ;};
// PdfFilespec represents a file specification which can either refer to an external or embedded file.
type PdfFilespec struct{Type _fd .PdfObject ;FS _fd .PdfObject ;F _fd .PdfObject ;UF _fd .PdfObject ;DOS _fd .PdfObject ;Mac _fd .PdfObject ;Unix _fd .PdfObject ;ID _fd .PdfObject ;V _fd .PdfObject ;EF _fd .PdfObject ;RF _fd .PdfObject ;Desc _fd .PdfObject ;CI _fd .PdfObject ;_gccf _fd .PdfObject ;};
// ColorFromFloats returns a new PdfColor based on the input slice of color
// components.
func (_fbea *PdfColorspaceSpecialPattern )ColorFromFloats (vals []float64 )(PdfColor ,error ){if _fbea .UnderlyingCS ==nil {return nil ,_fce .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 _fbea .UnderlyingCS .ColorFromFloats (vals );};type pdfSignDictionary struct{*_fd .PdfObjectDictionary ;_bedac *SignatureHandler ;_beded *PdfSignature ;_ecebb int64 ;_aagdc int ;_cfdc int ;_gdcfb int ;_eaece int ;};
// XObjectType represents the type of an XObject.
type XObjectType int ;type pdfFont interface{_aaf .Font ;
// ToPdfObject returns a PDF representation of the font and implements interface Model.
ToPdfObject ()_fd .PdfObject ;getFontDescriptor ()*PdfFontDescriptor ;baseFields ()*fontCommon ;};
// 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 (_adeb *PdfColorspaceLab )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=3{return nil ,_fce .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_ddfd :=vals [0];if _ddfd < 0.0||_ddfd > 100.0{_fca .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",_ddfd );return nil ,_fce .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_edgd :=vals [1];_befe :=float64 (-100);_gdada :=float64 (100);if len (_adeb .Range )> 1{_befe =_adeb .Range [0];_gdada =_adeb .Range [1];};if _edgd < _befe ||_edgd > _gdada {_fca .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",_edgd ,_befe ,_gdada );return nil ,_fce .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_faabe :=vals [2];_dgge :=float64 (-100);_agag :=float64 (100);if len (_adeb .Range )> 3{_dgge =_adeb .Range [2];_agag =_adeb .Range [3];};if _faabe < _dgge ||_faabe > _agag {_fca .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",_faabe ,_dgge ,_agag );return nil ,_fce .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_edccd :=NewPdfColorLab (_ddfd ,_edgd ,_faabe );return _edccd ,nil ;};
// ToPdfObject returns colorspace in a PDF object format [name stream]
func (_dbeb *PdfColorspaceICCBased )ToPdfObject ()_fd .PdfObject {_dbgd :=&_fd .PdfObjectArray {};_dbgd .Append (_fd .MakeName ("\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064"));var _fcfea *_fd .PdfObjectStream ;if _dbeb ._beab !=nil {_fcfea =_dbeb ._beab ;}else {_fcfea =&_fd .PdfObjectStream {};};_dfd :=_fd .MakeDict ();_dfd .Set ("\u004e",_fd .MakeInteger (int64 (_dbeb .N )));if _dbeb .Alternate !=nil {_dfd .Set ("\u0041l\u0074\u0065\u0072\u006e\u0061\u0074e",_dbeb .Alternate .ToPdfObject ());};if _dbeb .Metadata !=nil {_dfd .Set ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061",_dbeb .Metadata );};if _dbeb .Range !=nil {var _gfeag []_fd .PdfObject ;for _ ,_ebbd :=range _dbeb .Range {_gfeag =append (_gfeag ,_fd .MakeFloat (_ebbd ));};_dfd .Set ("\u0052\u0061\u006eg\u0065",_fd .MakeArray (_gfeag ...));};_dfd .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_fd .MakeInteger (int64 (len (_dbeb .Data ))));_fcfea .Stream =_dbeb .Data ;_fcfea .PdfObjectDictionary =_dfd ;_dbgd .Append (_fcfea );if _dbeb ._acfb !=nil {_dbeb ._acfb .PdfObject =_dbgd ;return _dbeb ._acfb ;};return _dbgd ;};
// DecodeArray returns the range of color component values in the Lab colorspace.
func (_gebag *PdfColorspaceLab )DecodeArray ()[]float64 {_dfgbb :=[]float64 {0,100};if _gebag .Range !=nil &&len (_gebag .Range )==4{_dfgbb =append (_dfgbb ,_gebag .Range ...);}else {_dfgbb =append (_dfgbb ,-100,100,-100,100);};return _dfgbb ;};const (XObjectTypeUndefined XObjectType =iota ;XObjectTypeImage ;XObjectTypeForm ;XObjectTypePS ;XObjectTypeUnknown ;);
// 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 (_adefe *PdfReader )GetObjectNums ()[]int {return _adefe ._egbge .GetObjectNums ()};
// PdfColorspaceDeviceCMYK represents a CMYK32 colorspace.
type PdfColorspaceDeviceCMYK struct{};
// NewPdfAnnotationHighlight returns a new text highlight annotation.
func NewPdfAnnotationHighlight ()*PdfAnnotationHighlight {_eed :=NewPdfAnnotation ();_cgfeg :=&PdfAnnotationHighlight {};_cgfeg .PdfAnnotation =_eed ;_cgfeg .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_eed .SetContext (_cgfeg );return _cgfeg ;};
// 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 ;
// GetRuneMetrics returns the character metrics for the specified rune.
// A bool flag is returned to indicate whether or not the entry was found.
func (_aeaf pdfCIDFontType0 )GetRuneMetrics (r rune )(_aaf .CharMetrics ,bool ){return _aaf .CharMetrics {Wx :_aeaf ._bbda },true ;};
// NewPdfAnnotationTrapNet returns a new trapnet annotation.
func NewPdfAnnotationTrapNet ()*PdfAnnotationTrapNet {_ece :=NewPdfAnnotation ();_eag :=&PdfAnnotationTrapNet {};_eag .PdfAnnotation =_ece ;_ece .SetContext (_eag );return _eag ;};
// A returns the value of the A component of the color.
func (_ebba *PdfColorLab )A ()float64 {return float64 (_ebba [1])};
// PdfAnnotationPolygon represents Polygon annotations.
// (Section 12.5.6.9).
type PdfAnnotationPolygon struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Vertices _fd .PdfObject ;LE _fd .PdfObject ;BS _fd .PdfObject ;IC _fd .PdfObject ;BE _fd .PdfObject ;IT _fd .PdfObject ;Measure _fd .PdfObject ;};
// Has checks if flag fl is set in flag and returns true if so, false otherwise.
func (_gcag FieldFlag )Has (fl FieldFlag )bool {return (_gcag .Mask ()&fl .Mask ())> 0};
// ToPdfObject implements interface PdfModel.
func (_efdg *PdfAnnotationInk )ToPdfObject ()_fd .PdfObject {_efdg .PdfAnnotation .ToPdfObject ();_ceec :=_efdg ._defg ;_faag :=_ceec .PdfObject .(*_fd .PdfObjectDictionary );_efdg .PdfAnnotationMarkup .appendToPdfDictionary (_faag );_faag .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fd .MakeName ("\u0049\u006e\u006b"));_faag .SetIfNotNil ("\u0049n\u006b\u004c\u0069\u0073\u0074",_efdg .InkList );_faag .SetIfNotNil ("\u0042\u0053",_efdg .BS );return _ceec ;};func (_gbc *PdfReader )newPdfAnnotationHighlightFromDict (_ddfb *_fd .PdfObjectDictionary )(*PdfAnnotationHighlight ,error ){_gea :=PdfAnnotationHighlight {};_eefd ,_eff :=_gbc .newPdfAnnotationMarkupFromDict (_ddfb );if _eff !=nil {return nil ,_eff ;};_gea .PdfAnnotationMarkup =_eefd ;_gea .QuadPoints =_ddfb .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");return &_gea ,nil ;};
// Items returns all children outline items.
func (_faagg *Outline )Items ()[]*OutlineItem {return _faagg .Entries };func (_dacff fontCommon )coreString ()string {_cegg :="";if _dacff ._ggbg !=nil {_cegg =_dacff ._ggbg .String ();};return _d .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",_dacff ._ccea ,_dacff ._egfg ,_dacff ._gaebg ,_dacff ._edcb ,_dacff ._ddaf !=nil ,_dacff .fontFlags (),_cegg );};func _begcg (_dggc _fd .PdfObject ,_fcbe *fontCommon )(*_agg .CMap ,error ){_dbaba ,_dcgab :=_fd .GetStream (_dggc );if !_dcgab {_fca .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",_dggc );return nil ,_fd .ErrTypeError ;};_aaae ,_fgfag :=_fd .DecodeStream (_dbaba );if _fgfag !=nil {return nil ,_fgfag ;};_dace ,_fgfag :=_agg .LoadCmapFromData (_aaae ,!_fcbe .isCIDFont ());if _fgfag !=nil {_fca .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",_dbaba .ObjectNumber ,_fgfag );};return _dace ,_fgfag ;};
// ImageToRGB converts an Image in a given PdfColorspace to an RGB image.
func (_eccg *PdfColorspaceDeviceN )ImageToRGB (img Image )(Image ,error ){_eaag :=_ddf .NewReader (img .getBase ());_ffbfa :=_gd .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),img .ColorComponents ,nil ,img ._cded ,img ._dfec );_dgaf :=_ddf .NewWriter (_ffbfa );_eedg :=_ff .Pow (2,float64 (img .BitsPerComponent ))-1;_bfdg :=_eccg .GetNumComponents ();_eega :=make ([]uint32 ,_bfdg );_cdfe :=make ([]float64 ,_bfdg );for {_geec :=_eaag .ReadSamples (_eega );if _geec ==_fc .EOF {break ;}else if _geec !=nil {return img ,_geec ;};for _febd :=0;_febd < _bfdg ;_febd ++{_cgge :=float64 (_eega [_febd ])/_eedg ;_cdfe [_febd ]=_cgge ;};_geceg ,_geec :=_eccg .TintTransform .Evaluate (_cdfe );if _geec !=nil {return img ,_geec ;};for _ ,_gdgc :=range _geceg {_gdgc =_ff .Min (_ff .Max (0,_gdgc ),1.0);if _geec =_dgaf .WriteSample (uint32 (_gdgc *_eedg ));_geec !=nil {return img ,_geec ;};};};return _eccg .AlternateSpace .ImageToRGB (_baaaa (&_ffbfa ));};
// ToPdfObject recursively builds the Outline tree PDF object.
func (_fbae *PdfOutlineItem )ToPdfObject ()_fd .PdfObject {_fgegc :=_fbae ._ffdcf ;_gdfbb :=_fgegc .PdfObject .(*_fd .PdfObjectDictionary );_gdfbb .Set ("\u0054\u0069\u0074l\u0065",_fbae .Title );if _fbae .A !=nil {_gdfbb .Set ("\u0041",_fbae .A );};if _ebec :=_gdfbb .Get ("\u0053\u0045");_ebec !=nil {_gdfbb .Remove ("\u0053\u0045");};if _fbae .C !=nil {_gdfbb .Set ("\u0043",_fbae .C );};if _fbae .Dest !=nil {_gdfbb .Set ("\u0044\u0065\u0073\u0074",_fbae .Dest );};if _fbae .F !=nil {_gdfbb .Set ("\u0046",_fbae .F );};if _fbae .Count !=nil {_gdfbb .Set ("\u0043\u006f\u0075n\u0074",_fd .MakeInteger (*_fbae .Count ));};if _fbae .Next !=nil {_gdfbb .Set ("\u004e\u0065\u0078\u0074",_fbae .Next .ToPdfObject ());};if _fbae .First !=nil {_gdfbb .Set ("\u0046\u0069\u0072s\u0074",_fbae .First .ToPdfObject ());};if _fbae .Prev !=nil {_gdfbb .Set ("\u0050\u0072\u0065\u0076",_fbae .Prev .GetContext ().GetContainingPdfObject ());};if _fbae .Last !=nil {_gdfbb .Set ("\u004c\u0061\u0073\u0074",_fbae .Last .GetContext ().GetContainingPdfObject ());};if _fbae .Parent !=nil {_gdfbb .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_fbae .Parent .GetContext ().GetContainingPdfObject ());};return _fgegc ;};
// NewPdfAnnotationRedact returns a new redact annotation.
func NewPdfAnnotationRedact ()*PdfAnnotationRedact {_adbg :=NewPdfAnnotation ();_febf :=&PdfAnnotationRedact {};_febf .PdfAnnotation =_adbg ;_febf .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_adbg .SetContext (_febf );return _febf ;};
// NewPdfActionImportData returns a new "import data" action.
func NewPdfActionImportData ()*PdfActionImportData {_bgg :=NewPdfAction ();_ddd :=&PdfActionImportData {};_ddd .PdfAction =_bgg ;_bgg .SetContext (_ddd );return _ddd ;};
// ToGray returns a PdfColorDeviceGray color based on the current RGB color.
func (_bbdg *PdfColorDeviceRGB )ToGray ()*PdfColorDeviceGray {_ebcb :=0.3*_bbdg .R ()+0.59*_bbdg .G ()+0.11*_bbdg .B ();_ebcb =_ff .Min (_ff .Max (_ebcb ,0.0),1.0);return NewPdfColorDeviceGray (_ebcb );};
// PdfOutlineItem represents an outline item dictionary (Table 153 - pp. 376 - 377).
type PdfOutlineItem struct{PdfOutlineTreeNode ;Title *_fd .PdfObjectString ;Parent *PdfOutlineTreeNode ;Prev *PdfOutlineTreeNode ;Next *PdfOutlineTreeNode ;Count *int64 ;Dest _fd .PdfObject ;A _fd .PdfObject ;SE _fd .PdfObject ;C _fd .PdfObject ;F _fd .PdfObject ;_ffdcf *_fd .PdfIndirectObject ;};
// 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{_egbge *_fd .PdfParser ;_edfdb _fd .PdfObject ;_geda *_fd .PdfIndirectObject ;_abfb *_fd .PdfObjectDictionary ;_faca []*_fd .PdfIndirectObject ;PageList []*PdfPage ;_bbdb int ;_bfcbd *_fd .PdfObjectDictionary ;_fbdb *PdfOutlineTreeNode ;AcroForm *PdfAcroForm ;_gggcg *modelManager ;_ebeae bool ;_caece map[_fd .PdfObject ]struct{};_eade _fc .ReadSeeker ;};
// ImageToRGB converts Lab colorspace image to RGB and returns the result.
func (_bgaae *PdfColorspaceLab )ImageToRGB (img Image )(Image ,error ){_beag :=func (_ccfda float64 )float64 {if _ccfda >=6.0/29{return _ccfda *_ccfda *_ccfda ;};return 108.0/841*(_ccfda -4/29);};_dagcb :=img ._dfec ;if len (_dagcb )!=6{_fca .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");_dagcb =_bgaae .DecodeArray ();};_afgc :=_ddf .NewReader (img .getBase ());_abfe :=_gd .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),3,nil ,img ._cded ,img ._dfec );_cfef :=_ddf .NewWriter (_abfe );_dfgfg :=_ff .Pow (2,float64 (img .BitsPerComponent ))-1;_cbcdd :=make ([]uint32 ,3);var (_adaa error ;Ls ,As ,Bs ,L ,M ,N ,X ,Y ,Z ,_ddgdb ,_bgbeg ,_aaea float64 ;);for {_adaa =_afgc .ReadSamples (_cbcdd );if _adaa ==_fc .EOF {break ;}else if _adaa !=nil {return img ,_adaa ;};Ls =float64 (_cbcdd [0])/_dfgfg ;As =float64 (_cbcdd [1])/_dfgfg ;Bs =float64 (_cbcdd [2])/_dfgfg ;Ls =_gd .LinearInterpolate (Ls ,0.0,1.0,_dagcb [0],_dagcb [1]);As =_gd .LinearInterpolate (As ,0.0,1.0,_dagcb [2],_dagcb [3]);Bs =_gd .LinearInterpolate (Bs ,0.0,1.0,_dagcb [4],_dagcb [5]);L =(Ls +16)/116+As /500;M =(Ls +16)/116;N =(Ls +16)/116-Bs /200;X =_bgaae .WhitePoint [0]*_beag (L );Y =_bgaae .WhitePoint [1]*_beag (M );Z =_bgaae .WhitePoint [2]*_beag (N );_ddgdb =3.240479*X +-1.537150*Y +-0.498535*Z ;_bgbeg =-0.969256*X +1.875992*Y +0.041556*Z ;_aaea =0.055648*X +-0.204043*Y +1.057311*Z ;_ddgdb =_ff .Min (_ff .Max (_ddgdb ,0),1.0);_bgbeg =_ff .Min (_ff .Max (_bgbeg ,0),1.0);_aaea =_ff .Min (_ff .Max (_aaea ,0),1.0);_cbcdd [0]=uint32 (_ddgdb *_dfgfg );_cbcdd [1]=uint32 (_bgbeg *_dfgfg );_cbcdd [2]=uint32 (_aaea *_dfgfg );if _adaa =_cfef .WriteSamples (_cbcdd );_adaa !=nil {return img ,_adaa ;};};return _baaaa (&_abfe ),nil ;};
// ColorFromPdfObjects returns a new PdfColor based on the input slice of color
// components. The slice should contain a single PdfObjectFloat element in
// range 0-1.
func (_cdaag *PdfColorspaceDeviceGray )ColorFromPdfObjects (objects []_fd .PdfObject )(PdfColor ,error ){if len (objects )!=1{return nil ,_fce .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_bege ,_ccdb :=_fd .GetNumbersAsFloat (objects );if _ccdb !=nil {return nil ,_ccdb ;};return _cdaag .ColorFromFloats (_bege );};
// 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 _fc .ReadSeeker )(*PdfReader ,error ){_fbcga :=&PdfReader {_eade :rs ,_caece :map[_fd .PdfObject ]struct{}{},_gggcg :_caaab (),_ebeae :true };_gebbb ,_caead :=_fd .NewParser (rs );if _caead !=nil {return nil ,_caead ;};_fbcga ._egbge =_gebbb ;_dbgbg ,_caead :=_fbcga .IsEncrypted ();if _caead !=nil {return nil ,_caead ;};if !_dbgbg {_caead =_fbcga .loadStructure ();if _caead !=nil {return nil ,_caead ;};};return _fbcga ,nil ;};func _cfcff ()_b .Time {return _fdgee };func _abgff (_baeff *_fd .PdfObjectDictionary )(*PdfShadingType1 ,error ){_dbfgcf :=PdfShadingType1 {};if _abad :=_baeff .Get ("\u0044\u006f\u006d\u0061\u0069\u006e");_abad !=nil {_abad =_fd .TraceToDirectObject (_abad );_befad ,_ecab :=_abad .(*_fd .PdfObjectArray );if !_ecab {_fca .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",_abad );return nil ,_fce .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_dbfgcf .Domain =_befad ;};if _bfgc :=_baeff .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");_bfgc !=nil {_bfgc =_fd .TraceToDirectObject (_bfgc );_beedd ,_aeedg :=_bfgc .(*_fd .PdfObjectArray );if !_aeedg {_fca .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",_bfgc );return nil ,_fce .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_dbfgcf .Matrix =_beedd ;};_cagde :=_baeff .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");if _cagde ==nil {_fca .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 ;};_dbfgcf .Function =[]PdfFunction {};if _egeag ,_ccba :=_cagde .(*_fd .PdfObjectArray );_ccba {for _ ,_faafb :=range _egeag .Elements (){_acdfe ,_gbbef :=_fagc (_faafb );if _gbbef !=nil {_fca .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",_gbbef );return nil ,_gbbef ;};_dbfgcf .Function =append (_dbfgcf .Function ,_acdfe );};}else {_gccebdc ,_fgafb :=_fagc (_cagde );if _fgafb !=nil {_fca .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",_fgafb );return nil ,_fgafb ;};_dbfgcf .Function =append (_dbfgcf .Function ,_gccebdc );};return &_dbfgcf ,nil ;};const (ButtonTypeCheckbox ButtonType =iota ;ButtonTypePush ButtonType =iota ;ButtonTypeRadio ButtonType =iota ;);
// NewPdfAnnotationScreen returns a new screen annotation.
func NewPdfAnnotationScreen ()*PdfAnnotationScreen {_aae :=NewPdfAnnotation ();_gfed :=&PdfAnnotationScreen {};_gfed .PdfAnnotation =_aae ;_aae .SetContext (_gfed );return _gfed ;};
// ImageToRGB returns an error since an image cannot be defined in a pattern colorspace.
func (_ccff *PdfColorspaceSpecialPattern )ImageToRGB (img Image )(Image ,error ){_fca .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 ,_fce .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");};
// PdfFont represents an underlying font structure which can be of type:
// - Type0
// - Type1
// - TrueType
// etc.
type PdfFont struct{_bbaa pdfFont };func _ecdff ()string {_gbbc :="\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 _eeec _bg .Buffer ;for _gbdbg :=0;_gbdbg < 6;_gbdbg ++{_eeec .WriteRune (rune (_gbbc [_dd .Intn (len (_gbbc ))]));};return _eeec .String ();};func (_facgef *PdfReader )buildOutlineTree (_bgfce _fd .PdfObject ,_ggdf *PdfOutlineTreeNode ,_bdged *PdfOutlineTreeNode ,_abbdf map[_fd .PdfObject ]struct{})(*PdfOutlineTreeNode ,*PdfOutlineTreeNode ,error ){if _abbdf ==nil {_abbdf =map[_fd .PdfObject ]struct{}{};};_abbdf [_bgfce ]=struct{}{};_gadag ,_agaba :=_bgfce .(*_fd .PdfIndirectObject );if !_agaba {return nil ,nil ,_d .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",_bgfce );};_facae ,_eefcc :=_gadag .PdfObject .(*_fd .PdfObjectDictionary );if !_eefcc {return nil ,nil ,_fce .New ("\u006e\u006f\u0074 a\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u0020\u006f\u0062\u006a\u0065\u0063\u0074");};_fca .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",_facae ,_gadag ,_gadag );if _adaff :=_facae .Get ("\u0054\u0069\u0074l\u0065");_adaff !=nil {_bfcgb ,_aegc :=_facgef .newPdfOutlineItemFromIndirectObject (_gadag );if _aegc !=nil {return nil ,nil ,_aegc ;};_bfcgb .Parent =_ggdf ;_bfcgb .Prev =_bdged ;_ecgaf :=_fd .ResolveReference (_facae .Get ("\u0046\u0069\u0072s\u0074"));if _ ,_deab :=_abbdf [_ecgaf ];_ecgaf !=nil &&_ecgaf !=_gadag &&!_deab {if !_fd .IsNullObject (_ecgaf ){_bedf ,_gfbge ,_gbdag :=_facgef .buildOutlineTree (_ecgaf ,&_bfcgb .PdfOutlineTreeNode ,nil ,_abbdf );if _gbdag !=nil {_fca .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",_gbdag );}else {_bfcgb .First =_bedf ;_bfcgb .Last =_gfbge ;};};};_abcb :=_fd .ResolveReference (_facae .Get ("\u004e\u0065\u0078\u0074"));if _ ,_gddfg :=_abbdf [_abcb ];_abcb !=nil &&_abcb !=_gadag &&!_gddfg {if !_fd .IsNullObject (_abcb ){_geabc ,_gbcbf ,_facag :=_facgef .buildOutlineTree (_abcb ,_ggdf ,&_bfcgb .PdfOutlineTreeNode ,_abbdf );if _facag !=nil {_fca .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",_facag );}else {_bfcgb .Next =_geabc ;return &_bfcgb .PdfOutlineTreeNode ,_gbcbf ,nil ;};};};return &_bfcgb .PdfOutlineTreeNode ,&_bfcgb .PdfOutlineTreeNode ,nil ;};_eeede ,_aebgb :=_dafbdd (_gadag );if _aebgb !=nil {return nil ,nil ,_aebgb ;};_eeede .Parent =_ggdf ;if _acag :=_facae .Get ("\u0046\u0069\u0072s\u0074");_acag !=nil {_acag =_fd .ResolveReference (_acag );_cfgg :=_fd .TraceToDirectObject (_acag );if _ ,_bfggf :=_cfgg .(*_fd .PdfObjectNull );!_bfggf &&_cfgg !=nil {_egbgdb ,_cecgg ,_accag :=_facgef .buildOutlineTree (_acag ,&_eeede .PdfOutlineTreeNode ,nil ,_abbdf );if _accag !=nil {_fca .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",_accag );}else {_eeede .First =_egbgdb ;_eeede .Last =_cecgg ;};};};return &_eeede .PdfOutlineTreeNode ,&_eeede .PdfOutlineTreeNode ,nil ;};
// NewPdfField returns an initialized PdfField.
func NewPdfField ()*PdfField {return &PdfField {_fbef :_fd .MakeIndirectObject (_fd .MakeDict ())}};
// ToPdfObject converts rectangle to a PDF object.
func (_aagdcd *PdfRectangle )ToPdfObject ()_fd .PdfObject {return _fd .MakeArray (_fd .MakeFloat (_aagdcd .Llx ),_fd .MakeFloat (_aagdcd .Lly ),_fd .MakeFloat (_aagdcd .Urx ),_fd .MakeFloat (_aagdcd .Ury ));};
// Encoder returns the font's text encoder.
func (_degfa pdfCIDFontType0 )Encoder ()_gf .TextEncoder {return _degfa ._dgfdf };
// ToPdfObject implements interface PdfModel.
func (_edegc *PdfFilespec )ToPdfObject ()_fd .PdfObject {_bgfd :=_edegc .getDict ();_bgfd .Clear ();_bgfd .Set ("\u0054\u0079\u0070\u0065",_fd .MakeName ("\u0046\u0069\u006c\u0065\u0073\u0070\u0065\u0063"));_bgfd .SetIfNotNil ("\u0046\u0053",_edegc .FS );_bgfd .SetIfNotNil ("\u0046",_edegc .F );_bgfd .SetIfNotNil ("\u0055\u0046",_edegc .UF );_bgfd .SetIfNotNil ("\u0044\u004f\u0053",_edegc .DOS );_bgfd .SetIfNotNil ("\u004d\u0061\u0063",_edegc .Mac );_bgfd .SetIfNotNil ("\u0055\u006e\u0069\u0078",_edegc .Unix );_bgfd .SetIfNotNil ("\u0049\u0044",_edegc .ID );_bgfd .SetIfNotNil ("\u0056",_edegc .V );_bgfd .SetIfNotNil ("\u0045\u0046",_edegc .EF );_bgfd .SetIfNotNil ("\u0052\u0046",_edegc .RF );_bgfd .SetIfNotNil ("\u0044\u0065\u0073\u0063",_edegc .Desc );_bgfd .SetIfNotNil ("\u0043\u0049",_edegc .CI );return _edegc ._gccf ;};type crossReference struct{Type int ;
// Type 1
Offset int64 ;Generation int64 ;
// Type 2
ObjectNumber int ;Index int ;};var (ErrRequiredAttributeMissing =_fce .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 =_fce .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0061\u0074\u0074\u0072i\u0062\u0075\u0074\u0065");ErrTypeCheck =_fce .New ("\u0074\u0079\u0070\u0065\u0020\u0063\u0068\u0065\u0063\u006b");_fgbb =_fce .New ("\u0072\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b\u0020e\u0072\u0072\u006f\u0072");ErrEncrypted =_fce .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 =_fce .New ("\u0066\u006fn\u0074\u0020\u006eo\u0074\u0020\u0064\u0065\u0066\u0069\u006e\u0065\u0064");ErrFontNotSupported =_cea .Errorf ("u\u006e\u0073\u0075\u0070po\u0072t\u0065\u0064\u0020\u0066\u006fn\u0074\u0020\u0028\u0025\u0077\u0029",_fd .ErrNotSupported );ErrType1CFontNotSupported =_cea .Errorf ("\u0054y\u0070\u00651\u0043\u0020\u0066o\u006e\u0074\u0073\u0020\u0061\u0072\u0065 \u006e\u006f\u0074\u0020\u0063\u0075r\u0072\u0065\u006e\u0074\u006c\u0079\u0020\u0073\u0075\u0070\u0070o\u0072\u0074\u0065\u0064\u0020\u0028\u0025\u0077\u0029",_fd .ErrNotSupported );ErrType3FontNotSupported =_cea .Errorf ("\u0054y\u0070\u00653\u0020\u0066\u006f\u006et\u0073\u0020\u0061r\u0065\u0020\u006e\u006f\u0074\u0020\u0063\u0075\u0072re\u006e\u0074\u006cy\u0020\u0073u\u0070\u0070\u006f\u0072\u0074\u0065d\u0020\u0028%\u0077\u0029",_fd .ErrNotSupported );ErrTTCmapNotSupported =_cea .Errorf ("\u0075\u006es\u0075\u0070\u0070\u006fr\u0074\u0065d\u0020\u0054\u0072\u0075\u0065\u0054\u0079\u0070e\u0020\u0063\u006d\u0061\u0070\u0020\u0066\u006f\u0072\u006d\u0061\u0074 \u0028\u0025\u0077\u0029",_fd .ErrNotSupported );ErrSignNotEnoughSpace =_cea .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"););type pdfFontType0 struct{fontCommon ;_gced *_fd .PdfIndirectObject ;_dbbce _gf .TextEncoder ;Encoding _fd .PdfObject ;DescendantFont *PdfFont ;_cfcce *_agg .CMap ;};
// ToPdfObject converts PdfAcroForm to a PdfObject, i.e. an indirect object containing the
// AcroForm dictionary.
func (_gcaa *PdfAcroForm )ToPdfObject ()_fd .PdfObject {_gebge :=_gcaa ._dbcdb ;_feefg :=_gebge .PdfObject .(*_fd .PdfObjectDictionary );if _gcaa .Fields !=nil {_eddd :=_fd .PdfObjectArray {};for _ ,_cafb :=range *_gcaa .Fields {_gaed :=_cafb .GetContext ();if _gaed !=nil {_eddd .Append (_gaed .ToPdfObject ());}else {_eddd .Append (_cafb .ToPdfObject ());};};_feefg .Set ("\u0046\u0069\u0065\u006c\u0064\u0073",&_eddd );};if _gcaa .NeedAppearances !=nil {_feefg .Set ("\u004ee\u0065d\u0041\u0070\u0070\u0065\u0061\u0072\u0061\u006e\u0063\u0065\u0073",_gcaa .NeedAppearances );};if _gcaa .SigFlags !=nil {_feefg .Set ("\u0053\u0069\u0067\u0046\u006c\u0061\u0067\u0073",_gcaa .SigFlags );};if _gcaa .CO !=nil {_feefg .Set ("\u0043\u004f",_gcaa .CO );};if _gcaa .DR !=nil {_feefg .Set ("\u0044\u0052",_gcaa .DR .ToPdfObject ());};if _gcaa .DA !=nil {_feefg .Set ("\u0044\u0041",_gcaa .DA );};if _gcaa .Q !=nil {_feefg .Set ("\u0051",_gcaa .Q );};if _gcaa .XFA !=nil {_feefg .Set ("\u0058\u0046\u0041",_gcaa .XFA );};return _gebge ;};
// ToPdfObject implements interface PdfModel.
func (_aacc *PdfAnnotationRedact )ToPdfObject ()_fd .PdfObject {_aacc .PdfAnnotation .ToPdfObject ();_gagd :=_aacc ._defg ;_gccg :=_gagd .PdfObject .(*_fd .PdfObjectDictionary );_aacc .PdfAnnotationMarkup .appendToPdfDictionary (_gccg );_gccg .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fd .MakeName ("\u0052\u0065\u0064\u0061\u0063\u0074"));_gccg .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_aacc .QuadPoints );_gccg .SetIfNotNil ("\u0049\u0043",_aacc .IC );_gccg .SetIfNotNil ("\u0052\u004f",_aacc .RO );_gccg .SetIfNotNil ("O\u0076\u0065\u0072\u006c\u0061\u0079\u0054\u0065\u0078\u0074",_aacc .OverlayText );_gccg .SetIfNotNil ("\u0052\u0065\u0070\u0065\u0061\u0074",_aacc .Repeat );_gccg .SetIfNotNil ("\u0044\u0041",_aacc .DA );_gccg .SetIfNotNil ("\u0051",_aacc .Q );return _gagd ;};
// 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 (_eddce *PdfPageResources )GetFontByName (keyName _fd .PdfObjectName )(_fd .PdfObject ,bool ){if _eddce .Font ==nil {return nil ,false ;};_fecce ,_dbbea :=_fd .TraceToDirectObject (_eddce .Font ).(*_fd .PdfObjectDictionary );if !_dbbea {_fca .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",_fd .TraceToDirectObject (_eddce .Font ));return nil ,false ;};if _adbbb :=_fecce .Get (keyName );_adbbb !=nil {return _adbbb ,true ;};return nil ,false ;};
// PartialName returns the partial name of the field.
func (_befc *PdfField )PartialName ()string {_gadg :="";if _befc .T !=nil {_gadg =_befc .T .Decoded ();}else {_fca .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 _gadg ;};
// PdfActionResetForm represents a resetForm action.
type PdfActionResetForm struct{*PdfAction ;Fields _fd .PdfObject ;Flags _fd .PdfObject ;};
// PdfAnnotationSquiggly represents Squiggly annotations.
// (Section 12.5.6.10).
type PdfAnnotationSquiggly struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _fd .PdfObject ;};
// ColorFromPdfObjects gets the color from a series of pdf objects (4 for cmyk).
func (_dbca *PdfColorspaceDeviceCMYK )ColorFromPdfObjects (objects []_fd .PdfObject )(PdfColor ,error ){if len (objects )!=4{return nil ,_fce .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_abfa ,_dcdg :=_fd .GetNumbersAsFloat (objects );if _dcdg !=nil {return nil ,_dcdg ;};return _dbca .ColorFromFloats (_abfa );};
// GetNumComponents returns the number of input color components, i.e. that are input to the tint transform.
func (_gfeaf *PdfColorspaceDeviceN )GetNumComponents ()int {return _gfeaf .ColorantNames .Len ()};
// WatermarkImageOptions contains options for configuring the watermark process.
type WatermarkImageOptions struct{Alpha float64 ;FitToWidth bool ;PreserveAspectRatio bool ;};
// ToGoTime returns the date in time.Time format.
func (_ccab PdfDate )ToGoTime ()_b .Time {_gbabc :=int (_ccab ._edbcf *60*60+_ccab ._eaegd *60);switch _ccab ._bbeedc {case '-':_gbabc =-_gbabc ;case 'Z':_gbabc =0;};_cceaa :=_d .Sprintf ("\u0055\u0054\u0043\u0025\u0063\u0025\u002e\u0032\u0064\u0025\u002e\u0032\u0064",_ccab ._bbeedc ,_ccab ._edbcf ,_ccab ._eaegd );_dbecb :=_b .FixedZone (_cceaa ,_gbabc );return _b .Date (int (_ccab ._bgggb ),_b .Month (_ccab ._baced ),int (_ccab ._beffe ),int (_ccab ._dcbba ),int (_ccab ._fbbgf ),int (_ccab ._cfegc ),0,_dbecb );};
// String returns a string describing the font descriptor.
func (_bcdgdd *PdfFontDescriptor )String ()string {var _eafb []string ;if _bcdgdd .FontName !=nil {_eafb =append (_eafb ,_bcdgdd .FontName .String ());};if _bcdgdd .FontFamily !=nil {_eafb =append (_eafb ,_bcdgdd .FontFamily .String ());};if _bcdgdd .fontFile !=nil {_eafb =append (_eafb ,_bcdgdd .fontFile .String ());};if _bcdgdd ._accda !=nil {_eafb =append (_eafb ,_bcdgdd ._accda .String ());};_eafb =append (_eafb ,_d .Sprintf ("\u0046\u006f\u006et\u0046\u0069\u006c\u0065\u0033\u003d\u0025\u0074",_bcdgdd .FontFile3 !=nil ));return _d .Sprintf ("\u0046\u004f\u004e\u0054_D\u0045\u0053\u0043\u0052\u0049\u0050\u0054\u004f\u0052\u007b\u0025\u0073\u007d",_gc .Join (_eafb ,"\u002c\u0020"));};
// GetOutlines returns a high-level Outline object, based on the outline tree
// of the reader.
func (_dfacb *PdfReader )GetOutlines ()(*Outline ,error ){if _dfacb ==nil {return nil ,_fce .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");};_geecbg :=_dfacb .GetOutlineTree ();if _geecbg ==nil {return nil ,_fce .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 _eaeaf func (_eacca *PdfOutlineTreeNode ,_eaga *[]*OutlineItem );_eaeaf =func (_afbdf *PdfOutlineTreeNode ,_efdd *[]*OutlineItem ){if _afbdf ==nil {return ;};if _afbdf ._ccggf ==nil {_fca .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 _cacg *OutlineItem ;if _fbbg ,_cegd :=_afbdf ._ccggf .(*PdfOutlineItem );_cegd {_efcdb :=_fbbg .Dest ;if (_efcdb ==nil ||_fd .IsNullObject (_efcdb ))&&_fbbg .A !=nil {if _cegef ,_fgbgg :=_fd .GetDict (_fbbg .A );_fgbgg {_efcdb ,_ =_fd .GetArray (_cegef .Get ("\u0044"));};};var _dbfaf OutlineDest ;if _efcdb !=nil &&!_fd .IsNullObject (_efcdb ){if _ebge ,_afcgb :=_cadcg (_efcdb ,_dfacb );_afcgb ==nil {_dbfaf =*_ebge ;}else {_fca .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",_efcdb ,_afcgb );};};_cacg =NewOutlineItem (_fbbg .Title .Decoded (),_dbfaf );*_efdd =append (*_efdd ,_cacg );if _fbbg .Next !=nil {_eaeaf (_fbbg .Next ,_efdd );};};if _afbdf .First !=nil {if _cacg !=nil {_efdd =&_cacg .Entries ;};_eaeaf (_afbdf .First ,_efdd );};};_dgfcbb :=NewOutline ();_eaeaf (_geecbg ,&_dgfcbb .Entries );return _dgfcbb ,nil ;};
// NewPdfWriter initializes a new PdfWriter.
func NewPdfWriter ()PdfWriter {_dbef :=PdfWriter {};_dbef ._fgdfc =map[_fd .PdfObject ]struct{}{};_dbef ._edeb =[]_fd .PdfObject {};_dbef ._efce =map[_fd .PdfObject ][]*_fd .PdfObjectDictionary {};_dbef ._dedba =map[_fd .PdfObject ]struct{}{};_dbef ._fddbd =1;_dbef ._cecag =3;_cbea :=_fd .MakeDict ();_eaeda :=[]struct{_ecefd _fd .PdfObjectName ;_gefce string ;}{{"\u0050\u0072\u006f\u0064\u0075\u0063\u0065\u0072",_geddg ()},{"\u0043r\u0065\u0061\u0074\u006f\u0072",_bgbea ()},{"\u0041\u0075\u0074\u0068\u006f\u0072",_debafb ()},{"\u0053u\u0062\u006a\u0065\u0063\u0074",_dcdc ()},{"\u0054\u0069\u0074l\u0065",_fgcgg ()},{"\u004b\u0065\u0079\u0077\u006f\u0072\u0064\u0073",_gccce ()}};for _ ,_ebdbg :=range _eaeda {if _ebdbg ._gefce !=""{_cbea .Set (_ebdbg ._ecefd ,_fd .MakeString (_ebdbg ._gefce ));};};if _dacfd :=_cfcff ();!_dacfd .IsZero (){if _bedff ,_ddfa :=NewPdfDateFromTime (_dacfd );_ddfa ==nil {_cbea .Set ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065",_bedff .ToPdfObject ());};};if _aedga :=_gdadd ();!_aedga .IsZero (){if _ffdcc ,_ccadf :=NewPdfDateFromTime (_aedga );_ccadf ==nil {_cbea .Set ("\u004do\u0064\u0044\u0061\u0074\u0065",_ffdcc .ToPdfObject ());};};_efae :=_fd .PdfIndirectObject {};_efae .PdfObject =_cbea ;_dbef ._fcacd =&_efae ;_dbef .addObject (&_efae );_dcgaba :=_fd .PdfIndirectObject {};_cdda :=_fd .MakeDict ();_cdda .Set ("\u0054\u0079\u0070\u0065",_fd .MakeName ("\u0043a\u0074\u0061\u006c\u006f\u0067"));_dcgaba .PdfObject =_cdda ;_dbef ._faaba =&_dcgaba ;_dbef .addObject (_dbef ._faaba );_addad :=_fd .PdfIndirectObject {};_gcafe :=_fd .MakeDict ();_gcafe .Set ("\u0054\u0079\u0070\u0065",_fd .MakeName ("\u0050\u0061\u0067e\u0073"));_bagd :=_fd .PdfObjectArray {};_gcafe .Set ("\u004b\u0069\u0064\u0073",&_bagd );_gcafe .Set ("\u0043\u006f\u0075n\u0074",_fd .MakeInteger (0));_addad .PdfObject =_gcafe ;_dbef ._fgcc =&_addad ;_dbef ._geaba =map[_fd .PdfObject ]struct{}{};_dbef .addObject (_dbef ._fgcc );_cdda .Set ("\u0050\u0061\u0067e\u0073",&_addad );_dbef ._agagg =_cdda ;_fca .Log .Trace ("\u0043\u0061\u0074\u0061\u006c\u006f\u0067\u0020\u0025\u0073",_dcgaba );return _dbef ;};const (_efafc =0x00001;_cddf =0x00002;_eecbf =0x00004;_efegg =0x00008;_egabc =0x00020;_gfeaa =0x00040;_fcbd =0x10000;_cfgf =0x20000;_dccg =0x40000;);
// Evaluate runs the function on the passed in slice and returns the results.
func (_dgfcb *PdfFunctionType0 )Evaluate (x []float64 )([]float64 ,error ){if len (x )!=_dgfcb .NumInputs {_fca .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 ,_fce .New ("\u0072\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b\u0020e\u0072\u0072\u006f\u0072");};if _dgfcb ._cfcb ==nil {_ggff :=_dgfcb .processSamples ();if _ggff !=nil {return nil ,_ggff ;};};_baea :=_dgfcb .Encode ;if _baea ==nil {_baea =[]float64 {};for _gbgga :=0;_gbgga < len (_dgfcb .Size );_gbgga ++{_baea =append (_baea ,0);_baea =append (_baea ,float64 (_dgfcb .Size [_gbgga ]-1));};};_bfag :=_dgfcb .Decode ;if _bfag ==nil {_bfag =_dgfcb .Range ;};_affd :=make ([]int ,len (x ));for _eefdg :=0;_eefdg < len (x );_eefdg ++{_bbgg :=x [_eefdg ];_faeg :=_ff .Min (_ff .Max (_bbgg ,_dgfcb .Domain [2*_eefdg ]),_dgfcb .Domain [2*_eefdg +1]);_ebbbb :=_gd .LinearInterpolate (_faeg ,_dgfcb .Domain [2*_eefdg ],_dgfcb .Domain [2*_eefdg +1],_baea [2*_eefdg ],_baea [2*_eefdg +1]);_cfgcfe :=_ff .Min (_ff .Max (_ebbbb ,0),float64 (_dgfcb .Size [_eefdg ]-1));_efac :=int (_ff .Floor (_cfgcfe +0.5));if _efac < 0{_efac =0;}else if _efac > _dgfcb .Size [_eefdg ]{_efac =_dgfcb .Size [_eefdg ]-1;};_affd [_eefdg ]=_efac ;};_ffeaf :=_affd [0];for _ccgg :=1;_ccgg < _dgfcb .NumInputs ;_ccgg ++{_eeebc :=_affd [_ccgg ];for _fgbed :=0;_fgbed < _ccgg ;_fgbed ++{_eeebc *=_dgfcb .Size [_fgbed ];};_ffeaf +=_eeebc ;};_ffeaf *=_dgfcb .NumOutputs ;var _beaa []float64 ;for _gaac :=0;_gaac < _dgfcb .NumOutputs ;_gaac ++{_fcace :=_ffeaf +_gaac ;if _fcace >=len (_dgfcb ._cfcb ){_fca .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 ;};_gefega :=_dgfcb ._cfcb [_fcace ];_acaa :=_gd .LinearInterpolate (float64 (_gefega ),0,_ff .Pow (2,float64 (_dgfcb .BitsPerSample )),_bfag [2*_gaac ],_bfag [2*_gaac +1]);_bgdef :=_ff .Min (_ff .Max (_acaa ,_dgfcb .Range [2*_gaac ]),_dgfcb .Range [2*_gaac +1]);_beaa =append (_beaa ,_bgdef );};return _beaa ,nil ;};
// ImageToRGB convert an indexed image to RGB.
func (_facg *PdfColorspaceSpecialIndexed )ImageToRGB (img Image )(Image ,error ){N :=_facg .Base .GetNumComponents ();if N < 1{return Image {},_d .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 );};_efeg :=_gd .NewImageBase (int (img .Width ),int (img .Height ),8,N ,nil ,img ._cded ,img ._dfec );_cffb :=_ddf .NewReader (img .getBase ());_cgfa :=_ddf .NewWriter (_efeg );var (_caedf uint32 ;_fgee int ;_fffd error ;);for {_caedf ,_fffd =_cffb .ReadSample ();if _fffd ==_fc .EOF {break ;}else if _fffd !=nil {return img ,_fffd ;};_fgee =int (_caedf );_fca .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",_fgee ,N ,len (_facg ._cfbf ));if (_fgee +1)*N > len (_facg ._cfbf ){_fgee =len (_facg ._cfbf )/N -1;_fca .Log .Trace ("C\u006c\u0069\u0070\u0070in\u0067 \u0074\u006f\u0020\u0069\u006ed\u0065\u0078\u003a\u0020\u0025\u0064",_fgee );if _fgee < 0{_fca .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 _feace :=_fgee *N ;_feace < (_fgee +1)*N ;_feace ++{if _fffd =_cgfa .WriteSample (uint32 (_facg ._cfbf [_feace ]));_fffd !=nil {return img ,_fffd ;};};};return _facg .Base .ImageToRGB (_baaaa (&_efeg ));};
// PdfAnnotationPrinterMark represents PrinterMark annotations.
// (Section 12.5.6.20).
type PdfAnnotationPrinterMark struct{*PdfAnnotation ;MN _fd .PdfObject ;};
// GetContainingPdfObject returns the containing object for the PdfField, i.e. an indirect object
// containing the field dictionary.
func (_ededa *PdfField )GetContainingPdfObject ()_fd .PdfObject {return _ededa ._fbef };
// 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 (_cagf *PdfFieldButton )SetType (btype ButtonType ){_bbfe :=uint32 (0);if _cagf .Ff !=nil {_bbfe =uint32 (*_cagf .Ff );};switch btype {case ButtonTypePush :_bbfe |=FieldFlagPushbutton .Mask ();case ButtonTypeRadio :_bbfe |=FieldFlagRadio .Mask ();};_cagf .Ff =_fd .MakeInteger (int64 (_bbfe ));};func (_aaaag *PdfAcroForm )signatureFields ()[]*PdfFieldSignature {var _bbge []*PdfFieldSignature ;for _ ,_ffge :=range _aaaag .AllFields (){switch _abebb :=_ffge .GetContext ().(type ){case *PdfFieldSignature :_aeafe :=_abebb ;_bbge =append (_bbge ,_aeafe );};};return _bbge ;};
// PdfAnnotationMarkup represents additional fields for mark-up annotations.
// (Section 12.5.6.2 p. 399).
type PdfAnnotationMarkup struct{T _fd .PdfObject ;Popup *PdfAnnotationPopup ;CA _fd .PdfObject ;RC _fd .PdfObject ;CreationDate _fd .PdfObject ;IRT _fd .PdfObject ;Subj _fd .PdfObject ;RT _fd .PdfObject ;IT _fd .PdfObject ;ExData _fd .PdfObject ;};
// FieldValueProvider provides field values from a data source such as FDF, JSON or any other.
type FieldValueProvider interface{FieldValues ()(map[string ]_fd .PdfObject ,error );};
// GetContainingPdfObject returns the XObject Form's containing object (indirect object).
func (_eedb *XObjectForm )GetContainingPdfObject ()_fd .PdfObject {return _eedb ._acdg };var _ pdfFont =(*pdfCIDFontType0 )(nil );func (_deddg *PdfReader )loadOutlines ()(*PdfOutlineTreeNode ,error ){if _deddg ._egbge .GetCrypter ()!=nil &&!_deddg ._egbge .IsAuthenticated (){return nil ,_d .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");};_bbffdd :=_deddg ._bfcbd ;_agcaeb :=_bbffdd .Get ("\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0073");if _agcaeb ==nil {return nil ,nil ;};_fca .Log .Trace ("\u002d\u0048\u0061\u0073\u0020\u006f\u0075\u0074\u006c\u0069\u006e\u0065\u0073");_bfaff :=_fd .ResolveReference (_agcaeb );_fca .Log .Trace ("\u004f\u0075t\u006c\u0069\u006ee\u0020\u0072\u006f\u006f\u0074\u003a\u0020\u0025\u0076",_bfaff );if _ddcbc :=_fd .IsNullObject (_bfaff );_ddcbc {_fca .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 ;};_ffbda ,_abdg :=_bfaff .(*_fd .PdfIndirectObject );if !_abdg {if _ ,_eeac :=_fd .GetDict (_bfaff );!_eeac {_fca .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 ;};_fca .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");_ffbda =_fd .MakeIndirectObject (_bfaff );};_baabcb ,_abdg :=_ffbda .PdfObject .(*_fd .PdfObjectDictionary );if !_abdg {return nil ,_fce .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");};_fca .Log .Trace ("O\u0075\u0074\u006c\u0069ne\u0020r\u006f\u006f\u0074\u0020\u0064i\u0063\u0074\u003a\u0020\u0025\u0076",_baabcb );_efbe ,_ ,_cbdc :=_deddg .buildOutlineTree (_ffbda ,nil ,nil ,nil );if _cbdc !=nil {return nil ,_cbdc ;};_fca .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",_efbe );return _efbe ,nil ;};
// AcroFormRepairOptions contains options for rebuilding the AcroForm.
type AcroFormRepairOptions struct{};
// NewPdfAnnotationWatermark returns a new watermark annotation.
func NewPdfAnnotationWatermark ()*PdfAnnotationWatermark {_ccca :=NewPdfAnnotation ();_eea :=&PdfAnnotationWatermark {};_eea .PdfAnnotation =_ccca ;_ccca .SetContext (_eea );return _eea ;};func _affa (_abdf *PdfPage )map[_fd .PdfObjectName ]_fd .PdfObject {_dage :=make (map[_fd .PdfObjectName ]_fd .PdfObject );if _abdf .Resources ==nil {return _dage ;};if _abdf .Resources .Font !=nil {if _fbgga ,_edbg :=_fd .GetDict (_abdf .Resources .Font );_edbg {for _ ,_fafg :=range _fbgga .Keys (){_dage [_fafg ]=_fbgga .Get (_fafg );};};};if _abdf .Resources .ExtGState !=nil {if _dfad ,_aaga :=_fd .GetDict (_abdf .Resources .ExtGState );_aaga {for _ ,_accb :=range _dfad .Keys (){_dage [_accb ]=_dfad .Get (_accb );};};};if _abdf .Resources .XObject !=nil {if _agfa ,_defd :=_fd .GetDict (_abdf .Resources .XObject );_defd {for _ ,_cbgb :=range _agfa .Keys (){_dage [_cbgb ]=_agfa .Get (_cbgb );};};};if _abdf .Resources .Pattern !=nil {if _eggb ,_dcc :=_fd .GetDict (_abdf .Resources .Pattern );_dcc {for _ ,_bccfe :=range _eggb .Keys (){_dage [_bccfe ]=_eggb .Get (_bccfe );};};};if _abdf .Resources .Shading !=nil {if _cagb ,_aadbg :=_fd .GetDict (_abdf .Resources .Shading );_aadbg {for _ ,_caba :=range _cagb .Keys (){_dage [_caba ]=_cagb .Get (_caba );};};};if _abdf .Resources .ProcSet !=nil {if _dedgg ,_abf :=_fd .GetDict (_abdf .Resources .ProcSet );_abf {for _ ,_dec :=range _dedgg .Keys (){_dage [_dec ]=_dedgg .Get (_dec );};};};if _abdf .Resources .Properties !=nil {if _bcba ,_cbbe :=_fd .GetDict (_abdf .Resources .Properties );_cbbe {for _ ,_baab :=range _bcba .Keys (){_dage [_baab ]=_bcba .Get (_baab );};};};return _dage ;};func (_ebace *pdfFontType0 )getFontDescriptor ()*PdfFontDescriptor {if _ebace ._ggbg ==nil &&_ebace .DescendantFont !=nil {return _ebace .DescendantFont .FontDescriptor ();};return _ebace ._ggbg ;};func _aacdc (_abce *_fd .PdfObjectDictionary )(*PdfShadingPattern ,error ){_eadgb :=&PdfShadingPattern {};_ffage :=_abce .Get ("\u0053h\u0061\u0064\u0069\u006e\u0067");if _ffage ==nil {_fca .Log .Debug ("\u0053h\u0061d\u0069\u006e\u0067\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ;};_ecfb ,_eacg :=_fcegc (_ffage );if _eacg !=nil {_fca .Log .Debug ("\u0045r\u0072\u006f\u0072\u0020l\u006f\u0061\u0064\u0069\u006eg\u0020s\u0068a\u0064\u0069\u006e\u0067\u003a\u0020\u0025v",_eacg );return nil ,_eacg ;};_eadgb .Shading =_ecfb ;if _ggdbec :=_abce .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");_ggdbec !=nil {_addg ,_aedcc :=_ggdbec .(*_fd .PdfObjectArray );if !_aedcc {_fca .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",_ggdbec );return nil ,_fd .ErrTypeError ;};_eadgb .Matrix =_addg ;};if _gcdcc :=_abce .Get ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e");_gcdcc !=nil {_eadgb .ExtGState =_gcdcc ;};return _eadgb ,nil ;};
// Set sets the colorspace corresponding to key. Add to Names if not set.
func (_fdbce *PdfPageResourcesColorspaces )Set (key _fd .PdfObjectName ,val PdfColorspace ){if _ ,_fegga :=_fdbce .Colorspaces [string (key )];!_fegga {_fdbce .Names =append (_fdbce .Names ,string (key ));};_fdbce .Colorspaces [string (key )]=val ;};func _fdde (_eacc *_fd .PdfObjectDictionary ,_efgf *fontCommon )(*pdfCIDFontType0 ,error ){if _efgf ._ccea !="\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0030"{_fca .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",_efgf );return nil ,_fd .ErrRangeError ;};_aggcb :=_fddd (_efgf );_ecgga ,_efcd :=_fd .GetDict (_eacc .Get ("\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f"));if !_efcd {_fca .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",_efgf );return nil ,ErrRequiredAttributeMissing ;};_aggcb .CIDSystemInfo =_ecgga ;_aggcb .DW =_eacc .Get ("\u0044\u0057");_aggcb .W =_eacc .Get ("\u0057");_aggcb .DW2 =_eacc .Get ("\u0044\u0057\u0032");_aggcb .W2 =_eacc .Get ("\u0057\u0032");_aggcb ._bbda =1000.0;if _gcdc ,_afaf :=_fd .GetNumberAsFloat (_aggcb .DW );_afaf ==nil {_aggcb ._bbda =_gcdc ;};_eccdg ,_cccb :=_fggb (_aggcb .W );if _cccb !=nil {return nil ,_cccb ;};if _eccdg ==nil {_eccdg =map[_gf .CharCode ]float64 {};};_aggcb ._cadad =_eccdg ;return _aggcb ,nil ;};func (_cafd *PdfReader )newPdfAnnotationRichMediaFromDict (_fcgc *_fd .PdfObjectDictionary )(*PdfAnnotationRichMedia ,error ){_aged :=&PdfAnnotationRichMedia {};_aged .RichMediaSettings =_fcgc .Get ("\u0052\u0069\u0063\u0068\u004d\u0065\u0064\u0069\u0061\u0053\u0065\u0074t\u0069\u006e\u0067\u0073");_aged .RichMediaContent =_fcgc .Get ("\u0052\u0069c\u0068\u004d\u0065d\u0069\u0061\u0043\u006f\u006e\u0074\u0065\u006e\u0074");return _aged ,nil ;};
// DetermineColorspaceNameFromPdfObject determines PDF colorspace from a PdfObject. Returns the colorspace name and
// an error on failure. If the colorspace was not found, will return an empty string.
func DetermineColorspaceNameFromPdfObject (obj _fd .PdfObject )(_fd .PdfObjectName ,error ){var _caegd *_fd .PdfObjectName ;var _aegg *_fd .PdfObjectArray ;if _bgda ,_ededg :=obj .(*_fd .PdfIndirectObject );_ededg {if _baaf ,_bgce :=_bgda .PdfObject .(*_fd .PdfObjectArray );_bgce {_aegg =_baaf ;}else if _ddgge ,_cead :=_bgda .PdfObject .(*_fd .PdfObjectName );_cead {_caegd =_ddgge ;};}else if _faef ,_fcgd :=obj .(*_fd .PdfObjectArray );_fcgd {_aegg =_faef ;}else if _aedbd ,_ffdg :=obj .(*_fd .PdfObjectName );_ffdg {_caegd =_aedbd ;};if _caegd !=nil {switch *_caegd {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 *_caegd ,nil ;case "\u0050a\u0074\u0074\u0065\u0072\u006e":return *_caegd ,nil ;};};if _aegg !=nil &&_aegg .Len ()> 0{if _agce ,_dabgg :=_aegg .Get (0).(*_fd .PdfObjectName );_dabgg {switch *_agce {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 _aegg .Len ()==1{return *_agce ,nil ;};case "\u0043a\u006c\u0047\u0072\u0061\u0079","\u0043\u0061\u006c\u0052\u0047\u0042","\u004c\u0061\u0062":return *_agce ,nil ;case "\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064","\u0050a\u0074\u0074\u0065\u0072\u006e","\u0049n\u0064\u0065\u0078\u0065\u0064":return *_agce ,nil ;case "\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e","\u0044e\u0076\u0069\u0063\u0065\u004e":return *_agce ,nil ;};};};return "",nil ;};
// PdfAnnotationSound represents Sound annotations.
// (Section 12.5.6.16).
type PdfAnnotationSound struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Sound _fd .PdfObject ;Name _fd .PdfObject ;};
// ImageHandler interface implements common image loading and processing tasks.
// Implementing as an interface allows for the possibility to use non-standard libraries for faster
// loading and processing of images.
type ImageHandler interface{
// Read any image type and load into a new Image object.
Read (_acgg _fc .Reader )(*Image ,error );
// NewImageFromGoImage loads a NRGBA32 unidoc Image from a standard Go image structure.
NewImageFromGoImage (_cggb _dg .Image )(*Image ,error );
// NewGrayImageFromGoImage loads a grayscale unidoc Image from a standard Go image structure.
NewGrayImageFromGoImage (_ccddd _dg .Image )(*Image ,error );
// Compress an image.
Compress (_egacfe *Image ,_abebba int64 )(*Image ,error );};
// PdfColorspaceLab is a L*, a*, b* 3 component colorspace.
type PdfColorspaceLab struct{WhitePoint []float64 ;BlackPoint []float64 ;Range []float64 ;_fbfeb *_fd .PdfIndirectObject ;};
// ToInteger convert to an integer format.
func (_gcea *PdfColorCalGray )ToInteger (bits int )uint32 {_deaa :=_ff .Pow (2,float64 (bits ))-1;return uint32 (_deaa *_gcea .Val ());};
// 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 *_fd .PdfObjectArray ;AlternateSpace PdfColorspace ;TintTransform PdfFunction ;Attributes *PdfColorspaceDeviceNAttributes ;_cbcba *_fd .PdfIndirectObject ;};
// 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 (_bdgeb *XObjectForm )SetContentStream (content []byte ,encoder _fd .StreamEncoder )error {_ddcc :=content ;if encoder ==nil {if _bdgeb .Filter !=nil {encoder =_bdgeb .Filter ;}else {encoder =_fd .NewRawEncoder ();};};_cafca ,_dgcgd :=encoder .EncodeBytes (_ddcc );if _dgcgd !=nil {return _dgcgd ;};_ddcc =_cafca ;_bdgeb .Stream =_ddcc ;_bdgeb .Filter =encoder ;return nil ;};func _aageg (_cbaegf *_fd .PdfObjectDictionary )(*PdfShadingType6 ,error ){_ceda :=PdfShadingType6 {};_aaage :=_cbaegf .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065");if _aaage ==nil {_fca .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 ;};_bcgeg ,_eecca :=_aaage .(*_fd .PdfObjectInteger );if !_eecca {_fca .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",_aaage );return nil ,_fd .ErrTypeError ;};_ceda .BitsPerCoordinate =_bcgeg ;_aaage =_cbaegf .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074");if _aaage ==nil {_fca .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 ;};_bcgeg ,_eecca =_aaage .(*_fd .PdfObjectInteger );if !_eecca {_fca .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",_aaage );return nil ,_fd .ErrTypeError ;};_ceda .BitsPerComponent =_bcgeg ;_aaage =_cbaegf .Get ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067");if _aaage ==nil {_fca .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 ;};_bcgeg ,_eecca =_aaage .(*_fd .PdfObjectInteger );if !_eecca {_fca .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",_aaage );return nil ,_fd .ErrTypeError ;};_ceda .BitsPerComponent =_bcgeg ;_aaage =_cbaegf .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");if _aaage ==nil {_fca .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 ;};_eefgg ,_eecca :=_aaage .(*_fd .PdfObjectArray );if !_eecca {_fca .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",_aaage );return nil ,_fd .ErrTypeError ;};_ceda .Decode =_eefgg ;if _aeaa :=_cbaegf .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");_aeaa !=nil {_ceda .Function =[]PdfFunction {};if _dagad ,_abde :=_aeaa .(*_fd .PdfObjectArray );_abde {for _ ,_dfdbc :=range _dagad .Elements (){_cabdf ,_faabc :=_fagc (_dfdbc );if _faabc !=nil {_fca .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",_faabc );return nil ,_faabc ;};_ceda .Function =append (_ceda .Function ,_cabdf );};}else {_bdfgb ,_fadfa :=_fagc (_aeaa );if _fadfa !=nil {_fca .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",_fadfa );return nil ,_fadfa ;};_ceda .Function =append (_ceda .Function ,_bdfgb );};};return &_ceda ,nil ;};
// ColorAt returns the color of the image pixel specified by the x and y coordinates.
func (_fgbga *Image )ColorAt (x ,y int )(_c .Color ,error ){_gbcb :=_gd .BytesPerLine (int (_fgbga .Width ),int (_fgbga .BitsPerComponent ),_fgbga .ColorComponents );switch _fgbga .ColorComponents {case 1:return _gd .ColorAtGrayscale (x ,y ,int (_fgbga .BitsPerComponent ),_gbcb ,_fgbga .Data ,_fgbga ._dfec );case 3:return _gd .ColorAtNRGBA (x ,y ,int (_fgbga .Width ),_gbcb ,int (_fgbga .BitsPerComponent ),_fgbga .Data ,_fgbga ._cded ,_fgbga ._dfec );case 4:return _gd .ColorAtCMYK (x ,y ,int (_fgbga .Width ),_fgbga .Data ,_fgbga ._dfec );};_fca .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",_fgbga .ColorComponents ,_fgbga .BitsPerComponent );return nil ,_fce .New ("\u0075\u006e\u0073\u0075p\u0070\u006f\u0072\u0074\u0065\u0064\u0020\u0069\u006d\u0061g\u0065 \u0063\u006f\u006c\u006f\u0072\u0073\u0070a\u0063\u0065");};func _dafbdd (_eecbd *_fd .PdfIndirectObject )(*PdfOutline ,error ){_fbeg ,_ffgae :=_eecbd .PdfObject .(*_fd .PdfObjectDictionary );if !_ffgae {return nil ,_d .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");};_bdbgb :=NewPdfOutline ();if _egegc :=_fbeg .Get ("\u0054\u0079\u0070\u0065");_egegc !=nil {_adgge ,_cgacd :=_egegc .(*_fd .PdfObjectName );if _cgacd {if *_adgge !="\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0073"{_fca .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",*_adgge );};};};if _ffcgf :=_fbeg .Get ("\u0043\u006f\u0075n\u0074");_ffcgf !=nil {_adgfc ,_becgf :=_fd .GetNumberAsInt64 (_ffcgf );if _becgf !=nil {return nil ,_becgf ;};_bdbgb .Count =&_adgfc ;};return _bdbgb ,nil ;};
// GetRuneMetrics returns the char metrics for a rune.
// TODO(peterwilliams97) There is nothing callers can do if no CharMetrics are found so we might as
// well give them 0 width. There is no need for the bool return.
func (_bcdb *PdfFont )GetRuneMetrics (r rune )(CharMetrics ,bool ){_dbcde :=_bcdb .actualFont ();if _dbcde ==nil {_fca .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",_bcdb ._bbaa );return _aaf .CharMetrics {},false ;};if _agfaa ,_ffdb :=_dbcde .GetRuneMetrics (r );_ffdb {return _agfaa ,true ;};if _eafcf ,_fbfde :=_bcdb .GetFontDescriptor ();_fbfde ==nil &&_eafcf !=nil {return _aaf .CharMetrics {Wx :_eafcf ._bcgdc },true ;};_fca .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",_bcdb );return _aaf .CharMetrics {},false ;};func (_ebfef *Image )resampleLowBits (_ffdgf []uint32 ){_fbffa :=_gd .BytesPerLine (int (_ebfef .Width ),int (_ebfef .BitsPerComponent ),_ebfef .ColorComponents );_dfbd :=make ([]byte ,_ebfef .ColorComponents *_fbffa *int (_ebfef .Height ));_gfegg :=int (_ebfef .BitsPerComponent )*_ebfef .ColorComponents *int (_ebfef .Width );_aedefc :=uint8 (8);var (_ffbe ,_bcgb int ;_bebdaa uint32 ;);for _bdcb :=0;_bdcb < int (_ebfef .Height );_bdcb ++{_bcgb =_bdcb *_fbffa ;for _ceefa :=0;_ceefa < _gfegg ;_ceefa ++{_bebdaa =_ffdgf [_ffbe ];_aedefc -=uint8 (_ebfef .BitsPerComponent );_dfbd [_bcgb ]|=byte (_bebdaa )<<_aedefc ;if _aedefc ==0{_aedefc =8;_bcgb ++;};_ffbe ++;};};_ebfef .Data =_dfbd ;};func _eabg (_eceb string )(map[_gf .CharCode ]_gf .GlyphName ,error ){_bacd :=_gc .Split (_eceb ,"\u000a");_gefef :=make (map[_gf .CharCode ]_gf .GlyphName );for _ ,_debda :=range _bacd {_dgefe :=_gbdf .FindStringSubmatch (_debda );if _dgefe ==nil {continue ;};_eggbb ,_fadcea :=_dgefe [1],_dgefe [2];_cdfcd ,_gacgb :=_ca .Atoi (_eggbb );if _gacgb !=nil {_fca .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",_debda );return nil ,_fd .ErrTypeError ;};_gefef [_gf .CharCode (_cdfcd )]=_gf .GlyphName (_fadcea );};_fca .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",_gefef );return _gefef ,nil ;};func (_dafbd *fontFile )loadFromSegments (_cdcec ,_edae []byte )error {_fca .Log .Trace ("\u006c\u006f\u0061dF\u0072\u006f\u006d\u0053\u0065\u0067\u006d\u0065\u006e\u0074\u0073\u003a\u0020\u0025\u0064\u0020\u0025\u0064",len (_cdcec ),len (_edae ));_ebga :=_dafbd .parseASCIIPart (_cdcec );if _ebga !=nil {return _ebga ;};_fca .Log .Trace ("f\u006f\u006e\u0074\u0066\u0069\u006c\u0065\u003d\u0025\u0073",_dafbd );if len (_edae )==0{return nil ;};_fca .Log .Trace ("f\u006f\u006e\u0074\u0066\u0069\u006c\u0065\u003d\u0025\u0073",_dafbd );return nil ;};
// ToPdfObject implements interface PdfModel.
func (_gg *PdfActionResetForm )ToPdfObject ()_fd .PdfObject {_gg .PdfAction .ToPdfObject ();_acb :=_gg ._fgb ;_gccb :=_acb .PdfObject .(*_fd .PdfObjectDictionary );_gccb .SetIfNotNil ("\u0053",_fd .MakeName (string (ActionTypeResetForm )));_gccb .SetIfNotNil ("\u0046\u0069\u0065\u006c\u0064\u0073",_gg .Fields );_gccb .SetIfNotNil ("\u0046\u006c\u0061g\u0073",_gg .Flags );return _acb ;};
// FieldAppearanceGenerator generates appearance stream for a given field.
type FieldAppearanceGenerator interface{ContentStreamWrapper ;GenerateAppearanceDict (_accf *PdfAcroForm ,_edfce *PdfField ,_ccacf *PdfAnnotationWidget )(*_fd .PdfObjectDictionary ,error );};
// 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 ;_cdgce []byte ;_cfcb []uint32 ;_bdbf *_fd .PdfObjectStream ;};func (_ffabc *PdfWriter )copyObject (_egead _fd .PdfObject ,_ffbed map[_fd .PdfObject ]_fd .PdfObject ,_dfca map[_fd .PdfObject ]struct{},_fgba bool )_fd .PdfObject {_baagb :=!_ffabc ._gfggd &&_dfca !=nil ;if _bdeag ,_gacge :=_ffbed [_egead ];_gacge {if _baagb &&!_fgba {delete (_dfca ,_egead );};return _bdeag ;};_agfb :=_egead ;switch _bbegf :=_egead .(type ){case *_fd .PdfObjectArray :_caaabc :=_fd .MakeArray ();_agfb =_caaabc ;_ffbed [_egead ]=_agfb ;for _ ,_dfeca :=range _bbegf .Elements (){_caaabc .Append (_ffabc .copyObject (_dfeca ,_ffbed ,_dfca ,_fgba ));};case *_fd .PdfObjectStreams :_bcfd :=&_fd .PdfObjectStreams {PdfObjectReference :_bbegf .PdfObjectReference };_agfb =_bcfd ;_ffbed [_egead ]=_agfb ;for _ ,_aceg :=range _bbegf .Elements (){_bcfd .Append (_ffabc .copyObject (_aceg ,_ffbed ,_dfca ,_fgba ));};case *_fd .PdfObjectStream :_ggdfgc :=&_fd .PdfObjectStream {Stream :_bbegf .Stream ,PdfObjectReference :_bbegf .PdfObjectReference };_agfb =_ggdfgc ;_ffbed [_egead ]=_agfb ;_ggdfgc .PdfObjectDictionary =_ffabc .copyObject (_bbegf .PdfObjectDictionary ,_ffbed ,_dfca ,_fgba ).(*_fd .PdfObjectDictionary );case *_fd .PdfObjectDictionary :var _gegb bool ;if _baagb &&!_fgba {if _cgdg ,_ :=_fd .GetNameVal (_bbegf .Get ("\u0054\u0079\u0070\u0065"));_cgdg =="\u0050\u0061\u0067\u0065"{_ ,_fdeee :=_ffabc ._geaba [_bbegf ];_fgba =!_fdeee ;_gegb =_fgba ;};};_ccgaf :=_fd .MakeDict ();_agfb =_ccgaf ;_ffbed [_egead ]=_agfb ;for _ ,_efcac :=range _bbegf .Keys (){_ccgaf .Set (_efcac ,_ffabc .copyObject (_bbegf .Get (_efcac ),_ffbed ,_dfca ,_fgba ));};if _gegb {_agfb =_fd .MakeNull ();_fgba =false ;};case *_fd .PdfIndirectObject :_gbdfb :=&_fd .PdfIndirectObject {PdfObjectReference :_bbegf .PdfObjectReference };_agfb =_gbdfb ;_ffbed [_egead ]=_agfb ;_gbdfb .PdfObject =_ffabc .copyObject (_bbegf .PdfObject ,_ffbed ,_dfca ,_fgba );case *_fd .PdfObjectString :_eaefe :=*_bbegf ;_agfb =&_eaefe ;_ffbed [_egead ]=_agfb ;case *_fd .PdfObjectName :_dbgc :=_fd .PdfObjectName (*_bbegf );_agfb =&_dbgc ;_ffbed [_egead ]=_agfb ;case *_fd .PdfObjectNull :_agfb =_fd .MakeNull ();_ffbed [_egead ]=_agfb ;case *_fd .PdfObjectInteger :_bgdgg :=_fd .PdfObjectInteger (*_bbegf );_agfb =&_bgdgg ;_ffbed [_egead ]=_agfb ;case *_fd .PdfObjectReference :_gddgc :=_fd .PdfObjectReference (*_bbegf );_agfb =&_gddgc ;_ffbed [_egead ]=_agfb ;case *_fd .PdfObjectFloat :_abfae :=_fd .PdfObjectFloat (*_bbegf );_agfb =&_abfae ;_ffbed [_egead ]=_agfb ;case *_fd .PdfObjectBool :_afead :=_fd .PdfObjectBool (*_bbegf );_agfb =&_afead ;_ffbed [_egead ]=_agfb ;case *pdfSignDictionary :_gggfaa :=&pdfSignDictionary {PdfObjectDictionary :_fd .MakeDict (),_bedac :_bbegf ._bedac ,_beded :_bbegf ._beded };_agfb =_gggfaa ;_ffbed [_egead ]=_agfb ;for _ ,_cffdb :=range _bbegf .Keys (){_gggfaa .Set (_cffdb ,_ffabc .copyObject (_bbegf .Get (_cffdb ),_ffbed ,_dfca ,_fgba ));};default:_fca .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",_egead );};if _baagb &&_fgba {_dfca [_egead ]=struct{}{};};return _agfb ;};
// ImageToRGB converts image in CalGray color space to RGB (A, B, C -> X, Y, Z).
func (_cbbbe *PdfColorspaceCalGray )ImageToRGB (img Image )(Image ,error ){_cafcd :=_ddf .NewReader (img .getBase ());_cede :=_gd .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),3,nil ,nil ,nil );_ebbba :=_ddf .NewWriter (_cede );_gdadf :=_ff .Pow (2,float64 (img .BitsPerComponent ))-1;_cbad :=make ([]uint32 ,3);var (_adde uint32 ;ANorm ,X ,Y ,Z ,_feed ,_dee ,_dbce float64 ;_gece error ;);for {_adde ,_gece =_cafcd .ReadSample ();if _gece ==_fc .EOF {break ;}else if _gece !=nil {return img ,_gece ;};ANorm =float64 (_adde )/_gdadf ;X =_cbbbe .WhitePoint [0]*_ff .Pow (ANorm ,_cbbbe .Gamma );Y =_cbbbe .WhitePoint [1]*_ff .Pow (ANorm ,_cbbbe .Gamma );Z =_cbbbe .WhitePoint [2]*_ff .Pow (ANorm ,_cbbbe .Gamma );_feed =3.240479*X +-1.537150*Y +-0.498535*Z ;_dee =-0.969256*X +1.875992*Y +0.041556*Z ;_dbce =0.055648*X +-0.204043*Y +1.057311*Z ;_feed =_ff .Min (_ff .Max (_feed ,0),1.0);_dee =_ff .Min (_ff .Max (_dee ,0),1.0);_dbce =_ff .Min (_ff .Max (_dbce ,0),1.0);_cbad [0]=uint32 (_feed *_gdadf );_cbad [1]=uint32 (_dee *_gdadf );_cbad [2]=uint32 (_dbce *_gdadf );if _gece =_ebbba .WriteSamples (_cbad );_gece !=nil {return img ,_gece ;};};return _baaaa (&_cede ),nil ;};
// GetContainingPdfObject implements interface PdfModel.
func (_fgad *PdfFilespec )GetContainingPdfObject ()_fd .PdfObject {return _fgad ._gccf };
// GetContainingPdfObject returns the container of the resources object (indirect object).
func (_eccgg *PdfPageResources )GetContainingPdfObject ()_fd .PdfObject {return _eccgg ._adae };
// ToPdfObject implements interface PdfModel.
func (_eeeg *PdfAnnotationPrinterMark )ToPdfObject ()_fd .PdfObject {_eeeg .PdfAnnotation .ToPdfObject ();_aea :=_eeeg ._defg ;_gabe :=_aea .PdfObject .(*_fd .PdfObjectDictionary );_gabe .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fd .MakeName ("P\u0072\u0069\u006e\u0074\u0065\u0072\u004d\u0061\u0072\u006b"));_gabe .SetIfNotNil ("\u004d\u004e",_eeeg .MN );return _aea ;};func (_ceea *PdfReader )newPdfActionThreadFromDict (_bab *_fd .PdfObjectDictionary )(*PdfActionThread ,error ){_bgge ,_gddg :=_dgd (_bab .Get ("\u0046"));if _gddg !=nil {return nil ,_gddg ;};return &PdfActionThread {D :_bab .Get ("\u0044"),B :_bab .Get ("\u0042"),F :_bgge },nil ;};
// ColorToRGB converts a CalGray color to an RGB color.
func (_dffb *PdfColorspaceCalGray )ColorToRGB (color PdfColor )(PdfColor ,error ){_dgbbc ,_ffeg :=color .(*PdfColorCalGray );if !_ffeg {_fca .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 ,_fce .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};ANorm :=_dgbbc .Val ();X :=_dffb .WhitePoint [0]*_ff .Pow (ANorm ,_dffb .Gamma );Y :=_dffb .WhitePoint [1]*_ff .Pow (ANorm ,_dffb .Gamma );Z :=_dffb .WhitePoint [2]*_ff .Pow (ANorm ,_dffb .Gamma );_eebb :=3.240479*X +-1.537150*Y +-0.498535*Z ;_ddabc :=-0.969256*X +1.875992*Y +0.041556*Z ;_cdff :=0.055648*X +-0.204043*Y +1.057311*Z ;_eebb =_ff .Min (_ff .Max (_eebb ,0),1.0);_ddabc =_ff .Min (_ff .Max (_ddabc ,0),1.0);_cdff =_ff .Min (_ff .Max (_cdff ,0),1.0);return NewPdfColorDeviceRGB (_eebb ,_ddabc ,_cdff ),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 _cbcbf (_fagb _fd .PdfObject )(*PdfColorspaceSpecialPattern ,error ){_fca .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",_fagb .String (),_fagb );_ffbf :=NewPdfColorspaceSpecialPattern ();if _egdgc ,_cadg :=_fagb .(*_fd .PdfIndirectObject );_cadg {_ffbf ._agedg =_egdgc ;};_fagb =_fd .TraceToDirectObject (_fagb );if _bddg ,_cdcf :=_fagb .(*_fd .PdfObjectName );_cdcf {if *_bddg !="\u0050a\u0074\u0074\u0065\u0072\u006e"{return nil ,_d .Errorf ("\u0069\u006e\u0076a\u006c\u0069\u0064\u0020\u006e\u0061\u006d\u0065");};return _ffbf ,nil ;};_gacd ,_aca :=_fagb .(*_fd .PdfObjectArray );if !_aca {_fca .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",_fagb );return nil ,_d .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0050\u0061\u0074\u0074e\u0072n\u0020C\u0053\u0020\u006f\u0062\u006a\u0065\u0063t");};if _gacd .Len ()!=1&&_gacd .Len ()!=2{_fca .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",_gacd );return nil ,_d .Errorf ("\u0069n\u0076\u0061\u006c\u0069\u0064\u0020\u0050\u0061\u0074\u0074\u0065r\u006e\u0020\u0043\u0053\u0020\u0061\u0072\u0072\u0061\u0079");};_fagb =_gacd .Get (0);if _acca ,_feba :=_fagb .(*_fd .PdfObjectName );_feba {if *_acca !="\u0050a\u0074\u0074\u0065\u0072\u006e"{_fca .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",_acca );return nil ,_d .Errorf ("\u0069\u006e\u0076a\u006c\u0069\u0064\u0020\u006e\u0061\u006d\u0065");};};if _gacd .Len ()> 1{_fagb =_gacd .Get (1);_fagb =_fd .TraceToDirectObject (_fagb );_cdfd ,_efecb :=NewPdfColorspaceFromPdfObject (_fagb );if _efecb !=nil {return nil ,_efecb ;};_ffbf .UnderlyingCS =_cdfd ;};_fca .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",_ffbf .UnderlyingCS );return _ffbf ,nil ;};func (_gcba *pdfCIDFontType2 )baseFields ()*fontCommon {return &_gcba .fontCommon };
// ToPdfObject converts the PdfFont object to its PDF representation.
func (_bfaef *PdfFont )ToPdfObject ()_fd .PdfObject {if _bfaef ._bbaa ==nil {_fca .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 _fd .MakeNull ();};return _bfaef ._bbaa .ToPdfObject ();};
// NewPdfFontFromPdfObject loads a PdfFont from the dictionary `fontObj`. If there is a problem an
// error is returned.
func NewPdfFontFromPdfObject (fontObj _fd .PdfObject )(*PdfFont ,error ){return _edda (fontObj ,true )};func _ccaea (_bdgbe *[]*PdfField ,_ddacb FieldFilterFunc ,_cdcgb bool )[]*PdfField {if _bdgbe ==nil {return nil ;};_cdbc :=*_bdgbe ;if len (*_bdgbe )==0{return nil ;};_bcbcd :=_cdbc [:0];if _ddacb ==nil {_ddacb =func (*PdfField )bool {return true };};var _fegdd []*PdfField ;for _ ,_egeg :=range _cdbc {_cdcb :=_ddacb (_egeg );if _cdcb {_fegdd =append (_fegdd ,_egeg );if len (_egeg .Kids )> 0{_fegdd =append (_fegdd ,_ccaea (&_egeg .Kids ,_ddacb ,_cdcgb )...);};};if !_cdcgb ||!_cdcb ||len (_egeg .Kids )> 0{_bcbcd =append (_bcbcd ,_egeg );};};*_bdgbe =_bcbcd ;return _fegdd ;};
// NewPdfFilespecFromObj creates and returns a new PdfFilespec object.
func NewPdfFilespecFromObj (obj _fd .PdfObject )(*PdfFilespec ,error ){_bfdbb :=&PdfFilespec {};var _dddg *_fd .PdfObjectDictionary ;if _fdce ,_abefa :=_fd .GetIndirect (obj );_abefa {_bfdbb ._gccf =_fdce ;_bcdcf ,_fcga :=_fd .GetDict (_fdce .PdfObject );if !_fcga {_fca .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 ,_fd .ErrTypeError ;};_dddg =_bcdcf ;}else if _aade ,_dcbe :=_fd .GetDict (obj );_dcbe {_bfdbb ._gccf =_aade ;_dddg =_aade ;}else {_fca .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 ,_fd .ErrTypeError ;};if _dddg ==nil {_fca .Log .Debug ("\u0044i\u0063t\u0069\u006f\u006e\u0061\u0072y\u0020\u006di\u0073\u0073\u0069\u006e\u0067");return nil ,_fce .New ("\u0064\u0069\u0063t\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};if _ffce :=_dddg .Get ("\u0054\u0079\u0070\u0065");_ffce !=nil {_ffcd ,_cace :=_ffce .(*_fd .PdfObjectName );if !_cace {_fca .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",_ffce );}else {if *_ffcd !="\u0046\u0069\u006c\u0065\u0073\u0070\u0065\u0063"{_fca .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",*_ffcd );};};};if _abee :=_dddg .Get ("\u0046\u0053");_abee !=nil {_bfdbb .FS =_abee ;};if _debf :=_dddg .Get ("\u0046");_debf !=nil {_bfdbb .F =_debf ;};if _feead :=_dddg .Get ("\u0055\u0046");_feead !=nil {_bfdbb .UF =_feead ;};if _gfda :=_dddg .Get ("\u0044\u004f\u0053");_gfda !=nil {_bfdbb .DOS =_gfda ;};if _eecb :=_dddg .Get ("\u004d\u0061\u0063");_eecb !=nil {_bfdbb .Mac =_eecb ;};if _fcddg :=_dddg .Get ("\u0055\u006e\u0069\u0078");_fcddg !=nil {_bfdbb .Unix =_fcddg ;};if _ebac :=_dddg .Get ("\u0049\u0044");_ebac !=nil {_bfdbb .ID =_ebac ;};if _dgdfd :=_dddg .Get ("\u0056");_dgdfd !=nil {_bfdbb .V =_dgdfd ;};if _dfgd :=_dddg .Get ("\u0045\u0046");_dfgd !=nil {_bfdbb .EF =_dfgd ;};if _ggdbe :=_dddg .Get ("\u0052\u0046");_ggdbe !=nil {_bfdbb .RF =_ggdbe ;};if _cdacc :=_dddg .Get ("\u0044\u0065\u0073\u0063");_cdacc !=nil {_bfdbb .Desc =_cdacc ;};if _affg :=_dddg .Get ("\u0043\u0049");_affg !=nil {_bfdbb .CI =_affg ;};return _bfdbb ,nil ;};
// PdfAction represents an action in PDF (section 12.6 p. 412).
type PdfAction struct{_db PdfModel ;Type _fd .PdfObject ;S _fd .PdfObject ;Next _fd .PdfObject ;_fgb *_fd .PdfIndirectObject ;};
// GetIndirectObjectByNumber retrieves and returns a specific PdfObject by object number.
func (_gbadb *PdfReader )GetIndirectObjectByNumber (number int )(_fd .PdfObject ,error ){_acced ,_agggc :=_gbadb ._egbge .LookupByNumber (number );return _acced ,_agggc ;};
// PdfFunction interface represents the common methods of a function in PDF.
type PdfFunction interface{Evaluate ([]float64 )([]float64 ,error );ToPdfObject ()_fd .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 (_ecdab *PdfField )ToPdfObject ()_fd .PdfObject {_cfgad :=_ecdab ._fbef ;_fead :=_cfgad .PdfObject .(*_fd .PdfObjectDictionary );_fdef :=_fd .MakeArray ();for _ ,_gefee :=range _ecdab .Kids {_fdef .Append (_gefee .ToPdfObject ());};for _ ,_ccgb :=range _ecdab .Annotations {if _ccgb ._defg !=_ecdab ._fbef {_fdef .Append (_ccgb .GetContext ().ToPdfObject ());};};if _ecdab .Parent !=nil {_fead .SetIfNotNil ("\u0050\u0061\u0072\u0065\u006e\u0074",_ecdab .Parent .GetContainingPdfObject ());};if _fdef .Len ()> 0{_fead .Set ("\u004b\u0069\u0064\u0073",_fdef );};_fead .SetIfNotNil ("\u0046\u0054",_ecdab .FT );_fead .SetIfNotNil ("\u0054",_ecdab .T );_fead .SetIfNotNil ("\u0054\u0055",_ecdab .TU );_fead .SetIfNotNil ("\u0054\u004d",_ecdab .TM );_fead .SetIfNotNil ("\u0046\u0066",_ecdab .Ff );_fead .SetIfNotNil ("\u0056",_ecdab .V );_fead .SetIfNotNil ("\u0044\u0056",_ecdab .DV );_fead .SetIfNotNil ("\u0041\u0041",_ecdab .AA );return _cfgad ;};
// 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 (_fdba *PdfColorspaceDeviceCMYK )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=4{return nil ,_fce .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_bggg :=vals [0];if _bggg < 0.0||_bggg > 1.0{return nil ,_fce .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_fdgdf :=vals [1];if _fdgdf < 0.0||_fdgdf > 1.0{return nil ,_fce .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_aaec :=vals [2];if _aaec < 0.0||_aaec > 1.0{return nil ,_fce .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_cdaee :=vals [3];if _cdaee < 0.0||_cdaee > 1.0{return nil ,_fce .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_ffgb :=NewPdfColorDeviceCMYK (_bggg ,_fdgdf ,_aaec ,_cdaee );return _ffgb ,nil ;};
// NewPdfAnnotationInk returns a new ink annotation.
func NewPdfAnnotationInk ()*PdfAnnotationInk {_dgba :=NewPdfAnnotation ();_cfca :=&PdfAnnotationInk {};_cfca .PdfAnnotation =_dgba ;_cfca .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_dgba .SetContext (_cfca );return _cfca ;};
// AddFont adds a font dictionary to the Font resources.
func (_abdcb *PdfPage )AddFont (name _fd .PdfObjectName ,font _fd .PdfObject )error {if _abdcb .Resources ==nil {_abdcb .Resources =NewPdfPageResources ();};if _abdcb .Resources .Font ==nil {_abdcb .Resources .Font =_fd .MakeDict ();};_adebf ,_bcff :=_fd .TraceToDirectObject (_abdcb .Resources .Font ).(*_fd .PdfObjectDictionary );if !_bcff {_fca .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",_fd .TraceToDirectObject (_abdcb .Resources .Font ));return _fce .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_adebf .Set (name ,font );return nil ;};
// ToPdfObject implements interface PdfModel.
func (_gdab *PdfAnnotationPolyLine )ToPdfObject ()_fd .PdfObject {_gdab .PdfAnnotation .ToPdfObject ();_gbec :=_gdab ._defg ;_dedd :=_gbec .PdfObject .(*_fd .PdfObjectDictionary );_gdab .PdfAnnotationMarkup .appendToPdfDictionary (_dedd );_dedd .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fd .MakeName ("\u0050\u006f\u006c\u0079\u004c\u0069\u006e\u0065"));_dedd .SetIfNotNil ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073",_gdab .Vertices );_dedd .SetIfNotNil ("\u004c\u0045",_gdab .LE );_dedd .SetIfNotNil ("\u0042\u0053",_gdab .BS );_dedd .SetIfNotNil ("\u0049\u0043",_gdab .IC );_dedd .SetIfNotNil ("\u0042\u0045",_gdab .BE );_dedd .SetIfNotNil ("\u0049\u0054",_gdab .IT );_dedd .SetIfNotNil ("\u004de\u0061\u0073\u0075\u0072\u0065",_gdab .Measure );return _gbec ;};
// GetCharMetrics returns the char metrics for character code `code`.
func (_abccg pdfCIDFontType2 )GetCharMetrics (code _gf .CharCode )(_aaf .CharMetrics ,bool ){if _fbbf ,_bdbe :=_abccg ._bggdf [code ];_bdbe {return _aaf .CharMetrics {Wx :float64 (_fbbf )},true ;};_cabd :=rune (code );_dede ,_cfdf :=_abccg ._ebfg [_cabd ];if !_cfdf {_dede =int (_abccg ._gcegd );};return _aaf .CharMetrics {Wx :float64 (_dede )},true ;};
// EncryptOptions represents encryption options for an output PDF.
type EncryptOptions struct{Permissions _ce .Permissions ;Algorithm EncryptionAlgorithm ;};
// String returns a string representation of the field.
func (_dgef *PdfField )String ()string {if _bceed ,_dddb :=_dgef .ToPdfObject ().(*_fd .PdfIndirectObject );_dddb {return _d .Sprintf ("\u0025\u0054\u003a\u0020\u0025\u0073",_dgef ._cacd ,_bceed .PdfObject .String ());};return "";};
// ToPdfObject implements interface PdfModel.
func (_ecaeg *PdfSignature )ToPdfObject ()_fd .PdfObject {_fefcb :=_ecaeg ._bcbba ;var _geccg *_fd .PdfObjectDictionary ;if _cacef ,_ecfed :=_fefcb .PdfObject .(*pdfSignDictionary );_ecfed {_geccg =_cacef .PdfObjectDictionary ;}else {_geccg =_fefcb .PdfObject .(*_fd .PdfObjectDictionary );};_geccg .SetIfNotNil ("\u0054\u0079\u0070\u0065",_ecaeg .Type );_geccg .SetIfNotNil ("\u0046\u0069\u006c\u0074\u0065\u0072",_ecaeg .Filter );_geccg .SetIfNotNil ("\u0053u\u0062\u0046\u0069\u006c\u0074\u0065r",_ecaeg .SubFilter );_geccg .SetIfNotNil ("\u0042y\u0074\u0065\u0052\u0061\u006e\u0067e",_ecaeg .ByteRange );_geccg .SetIfNotNil ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073",_ecaeg .Contents );_geccg .SetIfNotNil ("\u0043\u0065\u0072\u0074",_ecaeg .Cert );_geccg .SetIfNotNil ("\u004e\u0061\u006d\u0065",_ecaeg .Name );_geccg .SetIfNotNil ("\u0052\u0065\u0061\u0073\u006f\u006e",_ecaeg .Reason );_geccg .SetIfNotNil ("\u004d",_ecaeg .M );_geccg .SetIfNotNil ("\u0052e\u0066\u0065\u0072\u0065\u006e\u0063e",_ecaeg .Reference );_geccg .SetIfNotNil ("\u0043h\u0061\u006e\u0067\u0065\u0073",_ecaeg .Changes );_geccg .SetIfNotNil ("C\u006f\u006e\u0074\u0061\u0063\u0074\u0049\u006e\u0066\u006f",_ecaeg .ContactInfo );return _fefcb ;};
// 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 (_bae *PdfAnnotationWidget )Field ()*PdfField {return _bae ._eaeb };
// ToGoImage converts the unidoc Image to a golang Image structure.
func (_faae *Image )ToGoImage ()(_dg .Image ,error ){_fca .Log .Trace ("\u0043\u006f\u006e\u0076er\u0074\u0069\u006e\u0067\u0020\u0074\u006f\u0020\u0067\u006f\u0020\u0069\u006d\u0061g\u0065");_dcgfb ,_aggcc :=_gd .NewImage (int (_faae .Width ),int (_faae .Height ),int (_faae .BitsPerComponent ),_faae .ColorComponents ,_faae .Data ,_faae ._cded ,_faae ._dfec );if _aggcc !=nil {return nil ,_aggcc ;};return _dcgfb ,nil ;};func (_daa *PdfReader )newPdfActionGoTo3DViewFromDict (_ege *_fd .PdfObjectDictionary )(*PdfActionGoTo3DView ,error ){return &PdfActionGoTo3DView {TA :_ege .Get ("\u0054\u0041"),V :_ege .Get ("\u0056")},nil ;};func (_gcgf *PdfAcroForm )filteredFields (_facf FieldFilterFunc ,_dgee bool )[]*PdfField {if _gcgf ==nil {return nil ;};return _ccaea (_gcgf .Fields ,_facf ,_dgee );};func (_gcfa *Image )samplesAddPadding (_ecdag []uint32 )[]uint32 {_eddad :=_gd .BytesPerLine (int (_gcfa .Width ),int (_gcfa .BitsPerComponent ),_gcfa .ColorComponents )*(8/int (_gcfa .BitsPerComponent ));_bdeb :=_eddad *int (_gcfa .Height );if len (_ecdag )==_bdeb {return _ecdag ;};_cdcecc :=make ([]uint32 ,_bdeb );_ggaga :=int (_gcfa .Width )*_gcfa .ColorComponents ;for _bgac :=0;_bgac < int (_gcfa .Height );_bgac ++{_edbb :=_bgac *int (_gcfa .Width );_aefa :=_bgac *_eddad ;for _deff :=0;_deff < _ggaga ;_deff ++{_cdcecc [_aefa +_deff ]=_ecdag [_edbb +_deff ];};};return _cdcecc ;};
// GetShadingByName gets the shading specified by keyName. Returns nil if not existing.
// The bool flag indicated whether it was found or not.
func (_eddeb *PdfPageResources )GetShadingByName (keyName _fd .PdfObjectName )(*PdfShading ,bool ){if _eddeb .Shading ==nil {return nil ,false ;};_dgdb ,_faegc :=_fd .TraceToDirectObject (_eddeb .Shading ).(*_fd .PdfObjectDictionary );if !_faegc {_fca .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",_eddeb .Shading );return nil ,false ;};if _bfef :=_dgdb .Get (keyName );_bfef !=nil {_gdcc ,_bgddg :=_fcegc (_bfef );if _bgddg !=nil {_fca .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",_bgddg );return nil ,false ;};return _gdcc ,true ;};return nil ,false ;};const (BorderEffectNoEffect BorderEffect =iota ;BorderEffectCloudy BorderEffect =iota ;);func (_daded *Image )samplesTrimPadding (_cggg []uint32 )[]uint32 {_egddb :=_daded .ColorComponents *int (_daded .Width )*int (_daded .Height );if len (_cggg )==_egddb {return _cggg ;};_gbfa :=make ([]uint32 ,_egddb );_ggaca :=int (_daded .Width )*_daded .ColorComponents ;var _ffbec ,_fbceb ,_aadab ,_adfa int ;_gbcfa :=_gd .BytesPerLine (int (_daded .Width ),int (_daded .BitsPerComponent ),_daded .ColorComponents );for _ffbec =0;_ffbec < int (_daded .Height );_ffbec ++{_fbceb =_ffbec *int (_daded .Width );_aadab =_ffbec *_gbcfa ;for _adfa =0;_adfa < _ggaca ;_adfa ++{_gbfa [_fbceb +_adfa ]=_cggg [_aadab +_adfa ];};};return _gbfa ;};
// AddImageResource adds an image to the XObject resources.
func (_deaae *PdfPage )AddImageResource (name _fd .PdfObjectName ,ximg *XObjectImage )error {var _cceaf *_fd .PdfObjectDictionary ;if _deaae .Resources .XObject ==nil {_cceaf =_fd .MakeDict ();_deaae .Resources .XObject =_cceaf ;}else {var _cefda bool ;_cceaf ,_cefda =(_deaae .Resources .XObject ).(*_fd .PdfObjectDictionary );if !_cefda {return _fce .New ("\u0069\u006e\u0076\u0061li\u0064\u0020\u0078\u0072\u0065\u0073\u0020\u0064\u0069\u0063\u0074\u0020\u0074\u0079p\u0065");};};_cceaf .Set (name ,ximg .ToPdfObject ());return nil ;};func _fddd (_gfcgb *fontCommon )*pdfCIDFontType0 {return &pdfCIDFontType0 {fontCommon :*_gfcgb }};
// ToPdfObject converts the pdfCIDFontType2 to a PDF representation.
func (_fecb *pdfCIDFontType2 )ToPdfObject ()_fd .PdfObject {if _fecb ._cgfb ==nil {_fecb ._cgfb =&_fd .PdfIndirectObject {};};_gcdg :=_fecb .baseFields ().asPdfObjectDictionary ("\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032");_fecb ._cgfb .PdfObject =_gcdg ;if _fecb .CIDSystemInfo !=nil {_gcdg .Set ("\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f",_fecb .CIDSystemInfo );};if _fecb .DW !=nil {_gcdg .Set ("\u0044\u0057",_fecb .DW );};if _fecb .DW2 !=nil {_gcdg .Set ("\u0044\u0057\u0032",_fecb .DW2 );};if _fecb .W !=nil {_gcdg .Set ("\u0057",_fecb .W );};if _fecb .W2 !=nil {_gcdg .Set ("\u0057\u0032",_fecb .W2 );};if _fecb .CIDToGIDMap !=nil {_gcdg .Set ("C\u0049\u0044\u0054\u006f\u0047\u0049\u0044\u004d\u0061\u0070",_fecb .CIDToGIDMap );};return _fecb ._cgfb ;};
// 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 ()_fd .PdfObject ;GetContainingPdfObject ()_fd .PdfObject ;};func _cedcc (_feegf _fd .PdfObject )(*PdfColorspaceDeviceNAttributes ,error ){_cdag :=&PdfColorspaceDeviceNAttributes {};var _agedad *_fd .PdfObjectDictionary ;if _cgfd ,_aagb :=_feegf .(*_fd .PdfIndirectObject );_aagb {_cdag ._bcda =_cgfd ;var _addef bool ;_agedad ,_addef =_cgfd .PdfObject .(*_fd .PdfObjectDictionary );if !_addef {_fca .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 ,_fce .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};}else if _fbfc ,_bgbd :=_feegf .(*_fd .PdfObjectDictionary );_bgbd {_agedad =_fbfc ;}else {_fca .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 ,_fce .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _eaea :=_agedad .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065");_eaea !=nil {_dacf ,_feee :=_fd .TraceToDirectObject (_eaea ).(*_fd .PdfObjectName );if !_feee {_fca .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 ,_fce .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};_cdag .Subtype =_dacf ;};if _bdda :=_agedad .Get ("\u0043o\u006c\u006f\u0072\u0061\u006e\u0074s");_bdda !=nil {_cdag .Colorants =_bdda ;};if _acbb :=_agedad .Get ("\u0050r\u006f\u0063\u0065\u0073\u0073");_acbb !=nil {_cdag .Process =_acbb ;};if _addd :=_agedad .Get ("M\u0069\u0078\u0069\u006e\u0067\u0048\u0069\u006e\u0074\u0073");_addd !=nil {_cdag .MixingHints =_addd ;};return _cdag ,nil ;};
// SubsetRegistered subsets the font to only the glyphs that have been registered by the encoder.
// NOTE: This only works on fonts that support subsetting. For unsupported fonts this is a no-op, although a debug
// message is emitted. Currently supported fonts are embedded Truetype CID fonts (type 0).
// NOTE: Make sure to call this soon before writing (once all needed runes have been registered).
// If using package creator, use its EnableFontSubsetting method instead.
func (_dcff *PdfFont )SubsetRegistered ()error {switch _gfde :=_dcff ._bbaa .(type ){case *pdfFontType0 :_eaebbc :=_gfde .subsetRegistered ();if _eaebbc !=nil {_fca .Log .Debug ("\u0053\u0075b\u0073\u0065\u0074 \u0065\u0072\u0072\u006f\u0072\u003a\u0020\u0025\u0076",_eaebbc );return _eaebbc ;};if _gfde ._gced !=nil {if _gfde ._dbbce !=nil {_gfde ._dbbce .ToPdfObject ();};_gfde .ToPdfObject ();};default:_fca .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",_gfde );};return nil ;};
// GetEncryptionMethod returns a descriptive information string about the encryption method used.
func (_efege *PdfReader )GetEncryptionMethod ()string {_dabb :=_efege ._egbge .GetCrypter ();return _dabb .String ();};
// ToPdfObject returns a *PdfIndirectObject containing a *PdfObjectArray representation of the DeviceN colorspace.
// Format: [/DeviceN names alternateSpace tintTransform]
// or: [/DeviceN names alternateSpace tintTransform attributes]
func (_bcgaa *PdfColorspaceDeviceN )ToPdfObject ()_fd .PdfObject {_bfgg :=_fd .MakeArray (_fd .MakeName ("\u0044e\u0076\u0069\u0063\u0065\u004e"));_bfgg .Append (_bcgaa .ColorantNames );_bfgg .Append (_bcgaa .AlternateSpace .ToPdfObject ());_bfgg .Append (_bcgaa .TintTransform .ToPdfObject ());if _bcgaa .Attributes !=nil {_bfgg .Append (_bcgaa .Attributes .ToPdfObject ());};if _bcgaa ._cbcba !=nil {_bcgaa ._cbcba .PdfObject =_bfgg ;return _bcgaa ._cbcba ;};return _bfgg ;};
// NewPdfAnnotationRichMedia returns a new rich media annotation.
func NewPdfAnnotationRichMedia ()*PdfAnnotationRichMedia {_bdb :=NewPdfAnnotation ();_eddc :=&PdfAnnotationRichMedia {};_eddc .PdfAnnotation =_bdb ;_bdb .SetContext (_eddc );return _eddc ;};
// ToPdfObject implements interface PdfModel.
// Note: Call the sub-annotation's ToPdfObject to set both the generic and non-generic information.
func (_fccc *PdfAnnotation )ToPdfObject ()_fd .PdfObject {_dca :=_fccc ._defg ;_bfc :=_dca .PdfObject .(*_fd .PdfObjectDictionary );_bfc .Clear ();_bfc .Set ("\u0054\u0079\u0070\u0065",_fd .MakeName ("\u0041\u006e\u006eo\u0074"));_bfc .SetIfNotNil ("\u0052\u0065\u0063\u0074",_fccc .Rect );_bfc .SetIfNotNil ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073",_fccc .Contents );_bfc .SetIfNotNil ("\u0050",_fccc .P );_bfc .SetIfNotNil ("\u004e\u004d",_fccc .NM );_bfc .SetIfNotNil ("\u004d",_fccc .M );_bfc .SetIfNotNil ("\u0046",_fccc .F );_bfc .SetIfNotNil ("\u0041\u0050",_fccc .AP );_bfc .SetIfNotNil ("\u0041\u0053",_fccc .AS );_bfc .SetIfNotNil ("\u0042\u006f\u0072\u0064\u0065\u0072",_fccc .Border );_bfc .SetIfNotNil ("\u0043",_fccc .C );_bfc .SetIfNotNil ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074",_fccc .StructParent );_bfc .SetIfNotNil ("\u004f\u0043",_fccc .OC );return _dca ;};
// ToPdfObject implements interface PdfModel.
func (_fdgd *PdfAnnotationText )ToPdfObject ()_fd .PdfObject {_fdgd .PdfAnnotation .ToPdfObject ();_ggd :=_fdgd ._defg ;_afcf :=_ggd .PdfObject .(*_fd .PdfObjectDictionary );if _fdgd .PdfAnnotationMarkup !=nil {_fdgd .PdfAnnotationMarkup .appendToPdfDictionary (_afcf );};_afcf .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fd .MakeName ("\u0054\u0065\u0078\u0074"));_afcf .SetIfNotNil ("\u004f\u0070\u0065\u006e",_fdgd .Open );_afcf .SetIfNotNil ("\u004e\u0061\u006d\u0065",_fdgd .Name );_afcf .SetIfNotNil ("\u0053\u0074\u0061t\u0065",_fdgd .State );_afcf .SetIfNotNil ("\u0053\u0074\u0061\u0074\u0065\u004d\u006f\u0064\u0065\u006c",_fdgd .StateModel );return _ggd ;};
// ToPdfObject returns the PDF representation of the function.
func (_fcca *PdfFunctionType0 )ToPdfObject ()_fd .PdfObject {if _fcca ._bdbf ==nil {_fcca ._bdbf =&_fd .PdfObjectStream {};};_bbffd :=_fd .MakeDict ();_bbffd .Set ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065",_fd .MakeInteger (0));_fgece :=&_fd .PdfObjectArray {};for _ ,_fggbf :=range _fcca .Domain {_fgece .Append (_fd .MakeFloat (_fggbf ));};_bbffd .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_fgece );_egee :=&_fd .PdfObjectArray {};for _ ,_decdc :=range _fcca .Range {_egee .Append (_fd .MakeFloat (_decdc ));};_bbffd .Set ("\u0052\u0061\u006eg\u0065",_egee );_begbge :=&_fd .PdfObjectArray {};for _ ,_ggggff :=range _fcca .Size {_begbge .Append (_fd .MakeInteger (int64 (_ggggff )));};_bbffd .Set ("\u0053\u0069\u007a\u0065",_begbge );_bbffd .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0053\u0061\u006d\u0070\u006c\u0065",_fd .MakeInteger (int64 (_fcca .BitsPerSample )));if _fcca .Order !=1{_bbffd .Set ("\u004f\u0072\u0064e\u0072",_fd .MakeInteger (int64 (_fcca .Order )));};_bbffd .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_fd .MakeInteger (int64 (len (_fcca ._cdgce ))));_fcca ._bdbf .Stream =_fcca ._cdgce ;_fcca ._bdbf .PdfObjectDictionary =_bbffd ;return _fcca ._bdbf ;};
// GetNumComponents returns the number of color components.
func (_febef *PdfColorspaceICCBased )GetNumComponents ()int {return _febef .N };
// Read reads an image and loads into a new Image object with an RGB
// colormap and 8 bits per component.
func (_gabcd DefaultImageHandler )Read (reader _fc .Reader )(*Image ,error ){_bgeg ,_ ,_fdbab :=_dg .Decode (reader );if _fdbab !=nil {_fca .Log .Debug ("\u0045\u0072\u0072or\u0020\u0064\u0065\u0063\u006f\u0064\u0069\u006e\u0067\u0020\u0066\u0069\u006c\u0065\u003a\u0020\u0025\u0073",_fdbab );return nil ,_fdbab ;};return _gabcd .NewImageFromGoImage (_bgeg );};
// ToPdfObject returns the PDF representation of the function.
func (_cdaeef *PdfFunctionType4 )ToPdfObject ()_fd .PdfObject {_geaag :=_cdaeef ._baga ;if _geaag ==nil {_cdaeef ._baga =&_fd .PdfObjectStream {};_geaag =_cdaeef ._baga ;};_bbed :=_fd .MakeDict ();_bbed .Set ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065",_fd .MakeInteger (4));_ebcec :=&_fd .PdfObjectArray {};for _ ,_dfdd :=range _cdaeef .Domain {_ebcec .Append (_fd .MakeFloat (_dfdd ));};_bbed .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_ebcec );_dafd :=&_fd .PdfObjectArray {};for _ ,_cfcba :=range _cdaeef .Range {_dafd .Append (_fd .MakeFloat (_cfcba ));};_bbed .Set ("\u0052\u0061\u006eg\u0065",_dafd );if _cdaeef ._dbgb ==nil &&_cdaeef .Program !=nil {_cdaeef ._dbgb =[]byte (_cdaeef .Program .String ());};_bbed .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_fd .MakeInteger (int64 (len (_cdaeef ._dbgb ))));_geaag .Stream =_cdaeef ._dbgb ;_geaag .PdfObjectDictionary =_bbed ;return _geaag ;};
// GetPage returns the PdfPage model for the specified page number.
func (_ecgea *PdfReader )GetPage (pageNumber int )(*PdfPage ,error ){if _ecgea ._egbge .GetCrypter ()!=nil &&!_ecgea ._egbge .IsAuthenticated (){return nil ,_d .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 (_ecgea ._faca )< pageNumber {return nil ,_fce .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");};_fedeb :=pageNumber -1;if _fedeb < 0{return nil ,_d .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");};_gggb :=_ecgea .PageList [_fedeb ];return _gggb ,nil ;};
// DecodeArray returns the component range values for the Separation colorspace.
func (_baad *PdfColorspaceSpecialSeparation )DecodeArray ()[]float64 {return []float64 {0,1.0}};
// G returns the value of the green component of the color.
func (_eacb *PdfColorDeviceRGB )G ()float64 {return float64 (_eacb [1])};func _bfabga (_gadfd _fd .PdfObject )(*PdfPattern ,error ){_eedae :=&PdfPattern {};var _adcb *_fd .PdfObjectDictionary ;if _ggde ,_dgdc :=_fd .GetIndirect (_gadfd );_dgdc {_eedae ._bfcg =_ggde ;_efged ,_bbad :=_ggde .PdfObject .(*_fd .PdfObjectDictionary );if !_bbad {_fca .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",_ggde .PdfObject );return nil ,_fd .ErrTypeError ;};_adcb =_efged ;}else if _afcfg ,_fabe :=_fd .GetStream (_gadfd );_fabe {_eedae ._bfcg =_afcfg ;_adcb =_afcfg .PdfObjectDictionary ;}else {_fca .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",_gadfd );return nil ,_fd .ErrTypeError ;};_adadf :=_adcb .Get ("P\u0061\u0074\u0074\u0065\u0072\u006e\u0054\u0079\u0070\u0065");if _adadf ==nil {_fca .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 ;};_fcea ,_ceff :=_adadf .(*_fd .PdfObjectInteger );if !_ceff {_fca .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",_adadf );return nil ,_fd .ErrTypeError ;};if *_fcea !=1&&*_fcea !=2{_fca .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",*_fcea );return nil ,_fd .ErrRangeError ;};_eedae .PatternType =int64 (*_fcea );switch *_fcea {case 1:_gcgbb ,_dcee :=_faccc (_adcb );if _dcee !=nil {return nil ,_dcee ;};_gcgbb .PdfPattern =_eedae ;_eedae ._befef =_gcgbb ;return _eedae ,nil ;case 2:_eefef ,_fdec :=_aacdc (_adcb );if _fdec !=nil {return nil ,_fdec ;};_eefef .PdfPattern =_eedae ;_eedae ._befef =_eefef ;return _eedae ,nil ;};return nil ,_fce .New ("\u0075n\u006bn\u006f\u0077\u006e\u0020\u0070\u0061\u0074\u0074\u0065\u0072\u006e");};func (_dbbc *PdfReader )newPdfAnnotationPrinterMarkFromDict (_feg *_fd .PdfObjectDictionary )(*PdfAnnotationPrinterMark ,error ){_ddgb :=PdfAnnotationPrinterMark {};_ddgb .MN =_feg .Get ("\u004d\u004e");return &_ddgb ,nil ;};
// 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 (_dcbeg *Image )ConvertToBinary ()error {if _dcbeg .ColorComponents ==1&&_dcbeg .BitsPerComponent ==1{return nil ;};_gccfa ,_gabda :=_dcbeg .ToGoImage ();if _gabda !=nil {return _gabda ;};_beeaf ,_gabda :=_gd .MonochromeConverter .Convert (_gccfa );if _gabda !=nil {return _gabda ;};_dcbeg .BitsPerComponent =1;_dcbeg .ColorComponents =1;_dcbeg .Data =_beeaf .Base ().Data ;return nil ;};
// 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 _fd .PdfObject ;_cfbf []byte ;_fgga *_fd .PdfIndirectObject ;};
// Insert adds an outline item as a child of the current outline item,
// at the specified index.
func (_aedfe *OutlineItem )Insert (index uint ,item *OutlineItem ){_gffgg :=uint (len (_aedfe .Entries ));if index > _gffgg {index =_gffgg ;};_aedfe .Entries =append (_aedfe .Entries [:index ],append ([]*OutlineItem {item },_aedfe .Entries [index :]...)...);};func (_gfbc *PdfReader )newPdfAnnotationSquigglyFromDict (_cga *_fd .PdfObjectDictionary )(*PdfAnnotationSquiggly ,error ){_aede :=PdfAnnotationSquiggly {};_eaef ,_acd :=_gfbc .newPdfAnnotationMarkupFromDict (_cga );if _acd !=nil {return nil ,_acd ;};_aede .PdfAnnotationMarkup =_eaef ;_aede .QuadPoints =_cga .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");return &_aede ,nil ;};const (BorderStyleSolid BorderStyle =iota ;BorderStyleDashed BorderStyle =iota ;BorderStyleBeveled BorderStyle =iota ;BorderStyleInset BorderStyle =iota ;BorderStyleUnderline BorderStyle =iota ;);
// PdfActionMovie represents a movie action.
type PdfActionMovie struct{*PdfAction ;Annotation _fd .PdfObject ;T _fd .PdfObject ;Operation _fd .PdfObject ;};var _fdgee _b .Time ;
// GetContentStream returns the pattern cell's content stream
func (_eadgc *PdfTilingPattern )GetContentStream ()([]byte ,error ){_gdece ,_ ,_accbc :=_eadgc .GetContentStreamWithEncoder ();return _gdece ,_accbc ;};func _gafbdb (_cfefg *_fd .PdfObjectDictionary )(*PdfShadingType2 ,error ){_gffaa :=PdfShadingType2 {};_edcbf :=_cfefg .Get ("\u0043\u006f\u006f\u0072\u0064\u0073");if _edcbf ==nil {_fca .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 ;};_cgdb ,_gfefb :=_edcbf .(*_fd .PdfObjectArray );if !_gfefb {_fca .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",_edcbf );return nil ,_fce .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};if _cgdb .Len ()!=4{_fca .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",_cgdb .Len ());return nil ,_fce .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0061\u0074\u0074\u0072i\u0062\u0075\u0074\u0065");};_gffaa .Coords =_cgdb ;if _afdd :=_cfefg .Get ("\u0044\u006f\u006d\u0061\u0069\u006e");_afdd !=nil {_afdd =_fd .TraceToDirectObject (_afdd );_dbcda ,_deeae :=_afdd .(*_fd .PdfObjectArray );if !_deeae {_fca .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",_afdd );return nil ,_fce .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_gffaa .Domain =_dbcda ;};_edcbf =_cfefg .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");if _edcbf ==nil {_fca .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 ;};_gffaa .Function =[]PdfFunction {};if _cabg ,_ggab :=_edcbf .(*_fd .PdfObjectArray );_ggab {for _ ,_feadc :=range _cabg .Elements (){_edac ,_beedf :=_fagc (_feadc );if _beedf !=nil {_fca .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",_beedf );return nil ,_beedf ;};_gffaa .Function =append (_gffaa .Function ,_edac );};}else {_acge ,_gbddb :=_fagc (_edcbf );if _gbddb !=nil {_fca .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",_gbddb );return nil ,_gbddb ;};_gffaa .Function =append (_gffaa .Function ,_acge );};if _cdebe :=_cfefg .Get ("\u0045\u0078\u0074\u0065\u006e\u0064");_cdebe !=nil {_cdebe =_fd .TraceToDirectObject (_cdebe );_dggf ,_egcd :=_cdebe .(*_fd .PdfObjectArray );if !_egcd {_fca .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",_cdebe );return nil ,_fd .ErrTypeError ;};if _dggf .Len ()!=2{_fca .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",_dggf .Len ());return nil ,ErrInvalidAttribute ;};_gffaa .Extend =_dggf ;};return &_gffaa ,nil ;};
// IsEncrypted returns true if the PDF file is encrypted.
func (_ccbg *PdfReader )IsEncrypted ()(bool ,error ){return _ccbg ._egbge .IsEncrypted ()};
// Mask returns the uin32 bitmask for the specific flag.
func (_cefdf FieldFlag )Mask ()uint32 {return uint32 (_cefdf )};
// IsPush returns true if the button field represents a push button, false otherwise.
func (_gadf *PdfFieldButton )IsPush ()bool {return _gadf .GetType ()==ButtonTypePush };
// 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 (_dbcef *PdfFont )CharcodesToUnicodeWithStats (charcodes []_gf .CharCode )(_bgcd []rune ,_bbcb ,_bebdd int ){_bdbgcf ,_bbcb ,_bebdd :=_dbcef .CharcodesToStrings (charcodes );return []rune (_gc .Join (_bdbgcf ,"")),_bbcb ,_bebdd ;};
// GetNumPages returns the number of pages in the document.
func (_ecddg *PdfReader )GetNumPages ()(int ,error ){if _ecddg ._egbge .GetCrypter ()!=nil &&!_ecddg ._egbge .IsAuthenticated (){return 0,_d .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 (_ecddg ._faca ),nil ;};
// Add appends a top level outline item to the outline.
func (_gefcd *Outline )Add (item *OutlineItem ){_gefcd .Entries =append (_gefcd .Entries ,item )};func (_bfbdb *PdfColorspaceICCBased )String ()string {return "\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064";};
// ColorToRGB converts a ICCBased color to an RGB color.
func (_feabb *PdfColorspaceICCBased )ColorToRGB (color PdfColor )(PdfColor ,error ){if _feabb .Alternate ==nil {_fca .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 _feabb .N ==1{_fca .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");_bgfg :=NewPdfColorspaceDeviceGray ();return _bgfg .ColorToRGB (color );}else if _feabb .N ==3{_fca .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 _feabb .N ==4{_fca .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");_aadg :=NewPdfColorspaceDeviceCMYK ();return _aadg .ColorToRGB (color );}else {return nil ,_fce .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");};};_fca .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",_feabb );return _feabb .Alternate .ColorToRGB (color );};var _gadfb ="";
// SetDecode sets the decode image float slice.
func (_bccgac *Image )SetDecode (decode []float64 ){_bccgac ._dfec =decode };
// PdfActionGoTo3DView represents a GoTo3DView action.
type PdfActionGoTo3DView struct{*PdfAction ;TA _fd .PdfObject ;V _fd .PdfObject ;};
// NewPdfColorCalGray returns a new CalGray color.
func NewPdfColorCalGray (grayVal float64 )*PdfColorCalGray {_eegdd :=PdfColorCalGray (grayVal );return &_eegdd ;};
// 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 *_fd .PdfObjectStream )(*XObjectImage ,error ){_ffcfe :=&XObjectImage {};_ffcfe ._acbee =stream ;_dagdf :=*(stream .PdfObjectDictionary );_geddd ,_dcbd :=_fd .NewEncoderFromStream (stream );if _dcbd !=nil {return nil ,_dcbd ;};_ffcfe .Filter =_geddd ;if _fgegcg :=_fd .TraceToDirectObject (_dagdf .Get ("\u0057\u0069\u0064t\u0068"));_fgegcg !=nil {_fccda ,_gecf :=_fgegcg .(*_fd .PdfObjectInteger );if !_gecf {return nil ,_fce .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");};_fcbgb :=int64 (*_fccda );_ffcfe .Width =&_fcbgb ;}else {return nil ,_fce .New ("\u0077\u0069\u0064\u0074\u0068\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};if _cbebb :=_fd .TraceToDirectObject (_dagdf .Get ("\u0048\u0065\u0069\u0067\u0068\u0074"));_cbebb !=nil {_dgdcb ,_efcacc :=_cbebb .(*_fd .PdfObjectInteger );if !_efcacc {return nil ,_fce .New ("i\u006e\u0076\u0061\u006c\u0069\u0064 \u0069\u006d\u0061\u0067\u0065\u0020\u0068\u0065\u0069g\u0068\u0074\u0020o\u0062j\u0065\u0063\u0074");};_affaa :=int64 (*_dgdcb );_ffcfe .Height =&_affaa ;}else {return nil ,_fce .New ("\u0068\u0065\u0069\u0067\u0068\u0074\u0020\u006d\u0069s\u0073\u0069\u006e\u0067");};if _cfbdd :=_fd .TraceToDirectObject (_dagdf .Get ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065"));_cfbdd !=nil {_agcbb ,_gdaff :=NewPdfColorspaceFromPdfObject (_cfbdd );if _gdaff !=nil {return nil ,_gdaff ;};_ffcfe .ColorSpace =_agcbb ;}else {_fca .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");_ffcfe .ColorSpace =NewPdfColorspaceDeviceGray ();};if _egcf :=_fd .TraceToDirectObject (_dagdf .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074"));_egcf !=nil {_ebaage ,_ebbfd :=_egcf .(*_fd .PdfObjectInteger );if !_ebbfd {return nil ,_fce .New ("i\u006e\u0076\u0061\u006c\u0069\u0064 \u0069\u006d\u0061\u0067\u0065\u0020\u0068\u0065\u0069g\u0068\u0074\u0020o\u0062j\u0065\u0063\u0074");};_ddcfe :=int64 (*_ebaage );_ffcfe .BitsPerComponent =&_ddcfe ;};_ffcfe .Intent =_dagdf .Get ("\u0049\u006e\u0074\u0065\u006e\u0074");_ffcfe .ImageMask =_dagdf .Get ("\u0049m\u0061\u0067\u0065\u004d\u0061\u0073k");_ffcfe .Mask =_dagdf .Get ("\u004d\u0061\u0073\u006b");_ffcfe .Decode =_dagdf .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");_ffcfe .Interpolate =_dagdf .Get ("I\u006e\u0074\u0065\u0072\u0070\u006f\u006c\u0061\u0074\u0065");_ffcfe .Alternatives =_dagdf .Get ("\u0041\u006c\u0074e\u0072\u006e\u0061\u0074\u0069\u0076\u0065\u0073");_ffcfe .SMask =_dagdf .Get ("\u0053\u004d\u0061s\u006b");_ffcfe .SMaskInData =_dagdf .Get ("S\u004d\u0061\u0073\u006b\u0049\u006e\u0044\u0061\u0074\u0061");_ffcfe .Matte =_dagdf .Get ("\u004d\u0061\u0074t\u0065");_ffcfe .Name =_dagdf .Get ("\u004e\u0061\u006d\u0065");_ffcfe .StructParent =_dagdf .Get ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074");_ffcfe .ID =_dagdf .Get ("\u0049\u0044");_ffcfe .OPI =_dagdf .Get ("\u004f\u0050\u0049");_ffcfe .Metadata =_dagdf .Get ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");_ffcfe .OC =_dagdf .Get ("\u004f\u0043");_ffcfe .Stream =stream .Stream ;return _ffcfe ,nil ;};
// HasExtGState checks if ExtGState name is available.
func (_gdea *PdfPage )HasExtGState (name _fd .PdfObjectName )bool {if _gdea .Resources ==nil {return false ;};if _gdea .Resources .ExtGState ==nil {return false ;};_ddfea ,_cabeca :=_fd .TraceToDirectObject (_gdea .Resources .ExtGState ).(*_fd .PdfObjectDictionary );if !_cabeca {_fca .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",_fd .TraceToDirectObject (_gdea .Resources .ExtGState ));return false ;};_aacba :=_ddfea .Get (name );_fdaee :=_aacba !=nil ;return _fdaee ;};
// ColorFromFloats returns a new PdfColor based on the input slice of color
// components. The slice should contain a single element.
func (_dcab *PdfColorspaceSpecialSeparation )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=1{return nil ,_fce .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_fegg :=vals [0];_afggc :=[]float64 {_fegg };_eebc ,_becff :=_dcab .TintTransform .Evaluate (_afggc );if _becff !=nil {_fca .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",_becff );_fca .Log .Trace ("\u0054\u0069\u006e\u0074 t\u0072\u0061\u006e\u0073\u0066\u006f\u0072\u006d\u003a\u0020\u0025\u002b\u0076",_dcab .TintTransform );return nil ,_becff ;};_fca .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",_eebc ,_dcab .AlternateSpace );_ddcf ,_becff :=_dcab .AlternateSpace .ColorFromFloats (_eebc );if _becff !=nil {_fca .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",_becff );return nil ,_becff ;};return _ddcf ,nil ;};
// AppendContentStream adds content stream by string. Appends to the last
// contentstream instance if many.
func (_dceg *PdfPage )AppendContentStream (contentStr string )error {_afbb ,_bbfga :=_dceg .GetContentStreams ();if _bbfga !=nil {return _bbfga ;};if len (_afbb )==0{_afbb =[]string {contentStr };return _dceg .SetContentStreams (_afbb ,_fd .NewFlateEncoder ());};var _bdfg _bg .Buffer ;_bdfg .WriteString (_afbb [len (_afbb )-1]);_bdfg .WriteString ("\u000a");_bdfg .WriteString (contentStr );_afbb [len (_afbb )-1]=_bdfg .String ();return _dceg .SetContentStreams (_afbb ,_fd .NewFlateEncoder ());};
// ImageToRGB convert 1-component grayscale data to 3-component RGB.
func (_bead *PdfColorspaceDeviceGray )ImageToRGB (img Image )(Image ,error ){if img .ColorComponents !=1{return img ,_fce .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");};_befa ,_gdad :=_gd .NewImage (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),img .ColorComponents ,img .Data ,img ._cded ,img ._dfec );if _gdad !=nil {return img ,_gdad ;};_bdbgc ,_gdad :=_gd .NRGBAConverter .Convert (_befa );if _gdad !=nil {return img ,_gdad ;};_bafdd :=_baaaa (_bdbgc .Base ());_fca .Log .Trace ("\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079\u0020\u002d>\u0020\u0052\u0047\u0042");_fca .Log .Trace ("s\u0061\u006d\u0070\u006c\u0065\u0073\u003a\u0020\u0025\u0076",img .Data );_fca .Log .Trace ("\u0052G\u0042 \u0073\u0061\u006d\u0070\u006c\u0065\u0073\u003a\u0020\u0025\u0076",_bafdd .Data );_fca .Log .Trace ("\u0025\u0076\u0020\u002d\u003e\u0020\u0025\u0076",img ,_bafdd );return _bafdd ,nil ;};
// ColorFromFloats returns a new PdfColor based on the input slice of color
// components. The slice should contain three elements representing the
// red, green and blue components of the color. The values of the elements
// should be between 0 and 1.
func (_bebb *PdfColorspaceDeviceRGB )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=3{return nil ,_fce .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_dgbbd :=vals [0];if _dgbbd < 0.0||_dgbbd > 1.0{return nil ,_fce .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_gbbb :=vals [1];if _gbbb < 0.0||_gbbb > 1.0{return nil ,_fce .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_bcdgd :=vals [2];if _bcdgd < 0.0||_bcdgd > 1.0{return nil ,_fce .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_edfc :=NewPdfColorDeviceRGB (_dgbbd ,_gbbb ,_bcdgd );return _edfc ,nil ;};
// IsTiling specifies if the pattern is a tiling pattern.
func (_cgdf *PdfPattern )IsTiling ()bool {return _cgdf .PatternType ==1};
// 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 (_ddfg *PdfColorspaceCalGray )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=1{return nil ,_fce .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_acffe :=vals [0];if _acffe < 0.0||_acffe > 1.0{return nil ,_fce .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_cgad :=NewPdfColorCalGray (_acffe );return _cgad ,nil ;};
// GetNumComponents returns the number of color components (1 for Separation).
func (_fbggag *PdfColorspaceSpecialSeparation )GetNumComponents ()int {return 1};
// 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 _b .Time ;};
// 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 _fd .StreamEncoder )(*XObjectImage ,error ){if encoder ==nil {encoder =_fd .NewRawEncoder ();};encoder .UpdateParams (img .GetParamsDict ());_abgfb ,_ebdf :=encoder .EncodeBytes (img .Data );if _ebdf !=nil {_fca .Log .Debug ("\u0045\u0072\u0072or\u0020\u0077\u0069\u0074\u0068\u0020\u0065\u006e\u0063\u006f\u0064\u0069\u006e\u0067\u003a\u0020\u0025\u0076",_ebdf );return nil ,_ebdf ;};_bagcf :=NewXObjectImage ();_eeddd :=img .Width ;_gfgcc :=img .Height ;_bagcf .Width =&_eeddd ;_bagcf .Height =&_gfgcc ;_bfbadf :=img .BitsPerComponent ;_bagcf .BitsPerComponent =&_bfbadf ;_bagcf .Filter =encoder ;_bagcf .Stream =_abgfb ;if cs ==nil {if img .ColorComponents ==1{_bagcf .ColorSpace =NewPdfColorspaceDeviceGray ();}else if img .ColorComponents ==3{_bagcf .ColorSpace =NewPdfColorspaceDeviceRGB ();}else if img .ColorComponents ==4{_bagcf .ColorSpace =NewPdfColorspaceDeviceCMYK ();}else {return nil ,_fce .New ("c\u006fl\u006f\u0072\u0073\u0070\u0061\u0063\u0065\u0020u\u006e\u0064\u0065\u0066in\u0065\u0064");};}else {_bagcf .ColorSpace =cs ;};if len (img ._cded )!=0{_febdg :=NewXObjectImage ();_febdg .Filter =encoder ;_dedfc ,_gdgaaf :=encoder .EncodeBytes (img ._cded );if _gdgaaf !=nil {_fca .Log .Debug ("\u0045\u0072\u0072or\u0020\u0077\u0069\u0074\u0068\u0020\u0065\u006e\u0063\u006f\u0064\u0069\u006e\u0067\u003a\u0020\u0025\u0076",_gdgaaf );return nil ,_gdgaaf ;};_febdg .Stream =_dedfc ;_febdg .BitsPerComponent =_bagcf .BitsPerComponent ;_febdg .Width =&img .Width ;_febdg .Height =&img .Height ;_febdg .ColorSpace =NewPdfColorspaceDeviceGray ();_bagcf .SMask =_febdg .ToPdfObject ();}else {_bagcf .SMask =xobjIn .SMask ;_bagcf .ImageMask =xobjIn .ImageMask ;if _bagcf .ColorSpace .GetNumComponents ()==1{_cbgg (_bagcf );};};return _bagcf ,nil ;};
// ToPdfObject converts the font to a PDF representation.
func (_cfcd *pdfFontType0 )ToPdfObject ()_fd .PdfObject {if _cfcd ._gced ==nil {_cfcd ._gced =&_fd .PdfIndirectObject {};};_cgafa :=_cfcd .baseFields ().asPdfObjectDictionary ("\u0054\u0079\u0070e\u0030");_cfcd ._gced .PdfObject =_cgafa ;if _cfcd .Encoding !=nil {_cgafa .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_cfcd .Encoding );}else if _cfcd ._dbbce !=nil {_cgafa .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_cfcd ._dbbce .ToPdfObject ());};if _cfcd .DescendantFont !=nil {_cgafa .Set ("\u0044e\u0073c\u0065\u006e\u0064\u0061\u006e\u0074\u0046\u006f\u006e\u0074\u0073",_fd .MakeArray (_cfcd .DescendantFont .ToPdfObject ()));};return _cfcd ._gced ;};
// Evaluate runs the function. Input is [x1 x2 x3].
func (_aeee *PdfFunctionType4 )Evaluate (xVec []float64 )([]float64 ,error ){if _aeee ._gfcd ==nil {_aeee ._gfcd =_fe .NewPSExecutor (_aeee .Program );};var _aabg []_fe .PSObject ;for _ ,_daac :=range xVec {_aabg =append (_aabg ,_fe .MakeReal (_daac ));};_ebebb ,_defge :=_aeee ._gfcd .Execute (_aabg );if _defge !=nil {return nil ,_defge ;};_bbfeb ,_defge :=_fe .PSObjectArrayToFloat64Array (_ebebb );if _defge !=nil {return nil ,_defge ;};return _bbfeb ,nil ;};
// NewPdfActionJavaScript returns a new "javaScript" action.
func NewPdfActionJavaScript ()*PdfActionJavaScript {_ef :=NewPdfAction ();_ee :=&PdfActionJavaScript {};_ee .PdfAction =_ef ;_ef .SetContext (_ee );return _ee ;};var _ggeee ="";
// SetColorSpace sets `r` colorspace object to `colorspace`.
func (_fadd *PdfPageResources )SetColorSpace (colorspace *PdfPageResourcesColorspaces ){_fadd ._bfdgb =colorspace ;};const (RC4_128bit =EncryptionAlgorithm (iota );AES_128bit ;AES_256bit ;);
// StdFontName represents name of a standard font.
type StdFontName =_aaf .StdFontName ;func (_aab *PdfReader )newPdfActionGotoRFromDict (_cdc *_fd .PdfObjectDictionary )(*PdfActionGoToR ,error ){_gfeg ,_ded :=_dgd (_cdc .Get ("\u0046"));if _ded !=nil {return nil ,_ded ;};return &PdfActionGoToR {D :_cdc .Get ("\u0044"),NewWindow :_cdc .Get ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw"),F :_gfeg },nil ;};func (_afdb *pdfCIDFontType0 )baseFields ()*fontCommon {return &_afdb .fontCommon };func (_cbgbb *PdfWriter )writeObject (_aaade int ,_eaadf _fd .PdfObject ){_fca .Log .Trace ("\u0057\u0072\u0069\u0074\u0065\u0020\u006f\u0062\u006a \u0023\u0025\u0064\u000a",_aaade );if _caaee ,_cffda :=_eaadf .(*_fd .PdfIndirectObject );_cffda {_cbgbb ._gace [_aaade ]=crossReference {Type :1,Offset :_cbgbb ._bdbgg ,Generation :_caaee .GenerationNumber };_edddb :=_d .Sprintf ("\u0025d\u0020\u0030\u0020\u006f\u0062\u006a\n",_aaade );if _baaag ,_bfffc :=_caaee .PdfObject .(*pdfSignDictionary );_bfffc {_baaag ._ecebb =_cbgbb ._bdbgg +int64 (len (_edddb ));};if _caaee .PdfObject ==nil {_fca .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");_caaee .PdfObject =_fd .MakeNull ();};_edddb +=_caaee .PdfObject .WriteString ();_edddb +="\u000a\u0065\u006e\u0064\u006f\u0062\u006a\u000a";_cbgbb .writeString (_edddb );return ;};if _bbec ,_dccc :=_eaadf .(*_fd .PdfObjectStream );_dccc {_cbgbb ._gace [_aaade ]=crossReference {Type :1,Offset :_cbgbb ._bdbgg ,Generation :_bbec .GenerationNumber };_bfdggb :=_d .Sprintf ("\u0025d\u0020\u0030\u0020\u006f\u0062\u006a\n",_aaade );_bfdggb +=_bbec .PdfObjectDictionary .WriteString ();_bfdggb +="\u000a\u0073\u0074\u0072\u0065\u0061\u006d\u000a";_cbgbb .writeString (_bfdggb );_cbgbb .writeBytes (_bbec .Stream );_cbgbb .writeString ("\u000ae\u006ed\u0073\u0074\u0072\u0065\u0061m\u000a\u0065n\u0064\u006f\u0062\u006a\u000a");return ;};if _caca ,_cebef :=_eaadf .(*_fd .PdfObjectStreams );_cebef {_cbgbb ._gace [_aaade ]=crossReference {Type :1,Offset :_cbgbb ._bdbgg ,Generation :_caca .GenerationNumber };_facgf :=_d .Sprintf ("\u0025d\u0020\u0030\u0020\u006f\u0062\u006a\n",_aaade );var _efda []string ;var _daeba string ;var _fbde int64 ;for _fcee ,_fecfg :=range _caca .Elements (){_acged ,_efadge :=_fecfg .(*_fd .PdfIndirectObject );if !_efadge {_fca .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",_aaade ,_fecfg );continue ;};_ededf :=_acged .PdfObject .WriteString ()+"\u0020";_daeba =_daeba +_ededf ;_efda =append (_efda ,_d .Sprintf ("\u0025\u0064\u0020%\u0064",_acged .ObjectNumber ,_fbde ));_cbgbb ._gace [int (_acged .ObjectNumber )]=crossReference {Type :2,ObjectNumber :_aaade ,Index :_fcee };_fbde =_fbde +int64 (len ([]byte (_ededf )));};_feaadd :=_gc .Join (_efda ,"\u0020")+"\u0020";_deeg :=_fd .NewFlateEncoder ();_dffd :=_deeg .MakeStreamDict ();_dffd .Set (_fd .PdfObjectName ("\u0054\u0079\u0070\u0065"),_fd .MakeName ("\u004f\u0062\u006a\u0053\u0074\u006d"));_dgcc :=int64 (_caca .Len ());_dffd .Set (_fd .PdfObjectName ("\u004e"),_fd .MakeInteger (_dgcc ));_ecbec :=int64 (len (_feaadd ));_dffd .Set (_fd .PdfObjectName ("\u0046\u0069\u0072s\u0074"),_fd .MakeInteger (_ecbec ));_bfdde ,_ :=_deeg .EncodeBytes ([]byte (_feaadd +_daeba ));_fagae :=int64 (len (_bfdde ));_dffd .Set (_fd .PdfObjectName ("\u004c\u0065\u006e\u0067\u0074\u0068"),_fd .MakeInteger (_fagae ));_facgf +=_dffd .WriteString ();_facgf +="\u000a\u0073\u0074\u0072\u0065\u0061\u006d\u000a";_cbgbb .writeString (_facgf );_cbgbb .writeBytes (_bfdde );_cbgbb .writeString ("\u000ae\u006ed\u0073\u0074\u0072\u0065\u0061m\u000a\u0065n\u0064\u006f\u0062\u006a\u000a");return ;};_cbgbb .writeString (_eaadf .WriteString ());};
// NewPdfColorspaceDeviceCMYK returns a new CMYK32 colorspace object.
func NewPdfColorspaceDeviceCMYK ()*PdfColorspaceDeviceCMYK {return &PdfColorspaceDeviceCMYK {}};
// GetBorderWidth returns the border style's width.
func (_gagb *PdfBorderStyle )GetBorderWidth ()float64 {if _gagb .W ==nil {return 1;};return *_gagb .W ;};
// GetContext returns the PdfField context which is the more specific field data type, e.g. PdfFieldButton
// for a button field.
func (_aadc *PdfField )GetContext ()PdfModel {return _aadc ._cacd };
// ToPdfObject returns the PdfFontDescriptor as a PDF dictionary inside an indirect object.
func (_cbddc *PdfFontDescriptor )ToPdfObject ()_fd .PdfObject {_beedc :=_fd .MakeDict ();if _cbddc ._dgad ==nil {_cbddc ._dgad =&_fd .PdfIndirectObject {};};_cbddc ._dgad .PdfObject =_beedc ;_beedc .Set ("\u0054\u0079\u0070\u0065",_fd .MakeName ("\u0046\u006f\u006e\u0074\u0044\u0065\u0073\u0063\u0072i\u0070\u0074\u006f\u0072"));if _cbddc .FontName !=nil {_beedc .Set ("\u0046\u006f\u006e\u0074\u004e\u0061\u006d\u0065",_cbddc .FontName );};if _cbddc .FontFamily !=nil {_beedc .Set ("\u0046\u006f\u006e\u0074\u0046\u0061\u006d\u0069\u006c\u0079",_cbddc .FontFamily );};if _cbddc .FontStretch !=nil {_beedc .Set ("F\u006f\u006e\u0074\u0053\u0074\u0072\u0065\u0074\u0063\u0068",_cbddc .FontStretch );};if _cbddc .FontWeight !=nil {_beedc .Set ("\u0046\u006f\u006e\u0074\u0057\u0065\u0069\u0067\u0068\u0074",_cbddc .FontWeight );};if _cbddc .Flags !=nil {_beedc .Set ("\u0046\u006c\u0061g\u0073",_cbddc .Flags );};if _cbddc .FontBBox !=nil {_beedc .Set ("\u0046\u006f\u006e\u0074\u0042\u0042\u006f\u0078",_cbddc .FontBBox );};if _cbddc .ItalicAngle !=nil {_beedc .Set ("I\u0074\u0061\u006c\u0069\u0063\u0041\u006e\u0067\u006c\u0065",_cbddc .ItalicAngle );};if _cbddc .Ascent !=nil {_beedc .Set ("\u0041\u0073\u0063\u0065\u006e\u0074",_cbddc .Ascent );};if _cbddc .Descent !=nil {_beedc .Set ("\u0044e\u0073\u0063\u0065\u006e\u0074",_cbddc .Descent );};if _cbddc .Leading !=nil {_beedc .Set ("\u004ce\u0061\u0064\u0069\u006e\u0067",_cbddc .Leading );};if _cbddc .CapHeight !=nil {_beedc .Set ("\u0043a\u0070\u0048\u0065\u0069\u0067\u0068t",_cbddc .CapHeight );};if _cbddc .XHeight !=nil {_beedc .Set ("\u0058H\u0065\u0069\u0067\u0068\u0074",_cbddc .XHeight );};if _cbddc .StemV !=nil {_beedc .Set ("\u0053\u0074\u0065m\u0056",_cbddc .StemV );};if _cbddc .StemH !=nil {_beedc .Set ("\u0053\u0074\u0065m\u0048",_cbddc .StemH );};if _cbddc .AvgWidth !=nil {_beedc .Set ("\u0041\u0076\u0067\u0057\u0069\u0064\u0074\u0068",_cbddc .AvgWidth );};if _cbddc .MaxWidth !=nil {_beedc .Set ("\u004d\u0061\u0078\u0057\u0069\u0064\u0074\u0068",_cbddc .MaxWidth );};if _cbddc .MissingWidth !=nil {_beedc .Set ("\u004d\u0069\u0073s\u0069\u006e\u0067\u0057\u0069\u0064\u0074\u0068",_cbddc .MissingWidth );};if _cbddc .FontFile !=nil {_beedc .Set ("\u0046\u006f\u006e\u0074\u0046\u0069\u006c\u0065",_cbddc .FontFile );};if _cbddc .FontFile2 !=nil {_beedc .Set ("\u0046o\u006e\u0074\u0046\u0069\u006c\u00652",_cbddc .FontFile2 );};if _cbddc .FontFile3 !=nil {_beedc .Set ("\u0046o\u006e\u0074\u0046\u0069\u006c\u00653",_cbddc .FontFile3 );};if _cbddc .CharSet !=nil {_beedc .Set ("\u0043h\u0061\u0072\u0053\u0065\u0074",_cbddc .CharSet );};if _cbddc .Style !=nil {_beedc .Set ("\u0046\u006f\u006e\u0074\u004e\u0061\u006d\u0065",_cbddc .FontName );};if _cbddc .Lang !=nil {_beedc .Set ("\u004c\u0061\u006e\u0067",_cbddc .Lang );};if _cbddc .FD !=nil {_beedc .Set ("\u0046\u0044",_cbddc .FD );};if _cbddc .CIDSet !=nil {_beedc .Set ("\u0043\u0049\u0044\u0053\u0065\u0074",_cbddc .CIDSet );};return _cbddc ._dgad ;};func (_cbe *PdfReader )newPdfActionResetFormFromDict (_ggc *_fd .PdfObjectDictionary )(*PdfActionResetForm ,error ){return &PdfActionResetForm {Fields :_ggc .Get ("\u0046\u0069\u0065\u006c\u0064\u0073"),Flags :_ggc .Get ("\u0046\u006c\u0061g\u0073")},nil ;};
// GetNumComponents returns the number of color components of the colorspace device.
// Returns 3 for a CalRGB device.
func (_aabd *PdfColorspaceCalRGB )GetNumComponents ()int {return 3};
// SetContentStream sets the pattern cell's content stream.
func (_abbd *PdfTilingPattern )SetContentStream (content []byte ,encoder _fd .StreamEncoder )error {_gbcbc ,_facfb :=_abbd ._bfcg .(*_fd .PdfObjectStream );if !_facfb {_fca .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",_abbd ._bfcg );return _fd .ErrTypeError ;};if encoder ==nil {encoder =_fd .NewRawEncoder ();};_ebcdcf :=_gbcbc .PdfObjectDictionary ;_dcef :=encoder .MakeStreamDict ();_ebcdcf .Merge (_dcef );_cgede ,_aaafb :=encoder .EncodeBytes (content );if _aaafb !=nil {return _aaafb ;};_ebcdcf .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_fd .MakeInteger (int64 (len (_cgede ))));_gbcbc .Stream =[]byte (_cgede );return nil ;};func (_dbgg *PdfReader )newPdfAnnotationCaretFromDict (_eaee *_fd .PdfObjectDictionary )(*PdfAnnotationCaret ,error ){_gbg :=PdfAnnotationCaret {};_ggeg ,_fdca :=_dbgg .newPdfAnnotationMarkupFromDict (_eaee );if _fdca !=nil {return nil ,_fdca ;};_gbg .PdfAnnotationMarkup =_ggeg ;_gbg .RD =_eaee .Get ("\u0052\u0044");_gbg .Sy =_eaee .Get ("\u0053\u0079");return &_gbg ,nil ;};
// PdfActionImportData represents a importData action.
type PdfActionImportData struct{*PdfAction ;F *PdfFilespec ;};
// ToPdfObject implements interface PdfModel.
func (_bgdf *PdfAnnotationSound )ToPdfObject ()_fd .PdfObject {_bgdf .PdfAnnotation .ToPdfObject ();_bge :=_bgdf ._defg ;_eddb :=_bge .PdfObject .(*_fd .PdfObjectDictionary );_bgdf .PdfAnnotationMarkup .appendToPdfDictionary (_eddb );_eddb .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fd .MakeName ("\u0053\u006f\u0075n\u0064"));_eddb .SetIfNotNil ("\u0053\u006f\u0075n\u0064",_bgdf .Sound );_eddb .SetIfNotNil ("\u004e\u0061\u006d\u0065",_bgdf .Name );return _bge ;};
// GetContainingPdfObject returns the container of the outline item (indirect object).
func (_fdfga *PdfOutlineItem )GetContainingPdfObject ()_fd .PdfObject {return _fdfga ._ffdcf };
// NewPdfColorspaceCalGray returns a new CalGray colorspace object.
func NewPdfColorspaceCalGray ()*PdfColorspaceCalGray {_dedcf :=&PdfColorspaceCalGray {};_dedcf .BlackPoint =[]float64 {0.0,0.0,0.0};_dedcf .Gamma =1;return _dedcf ;};
// NewPdfOutlineItem returns an initialized PdfOutlineItem.
func NewPdfOutlineItem ()*PdfOutlineItem {_egda :=&PdfOutlineItem {_ffdcf :_fd .MakeIndirectObject (_fd .MakeDict ())};_egda ._ccggf =_egda ;return _egda ;};
// PdfRectangle is a definition of a rectangle.
type PdfRectangle struct{Llx float64 ;Lly float64 ;Urx float64 ;Ury float64 ;};func (_fgbg *PdfReader )newPdfAnnotationScreenFromDict (_gfegc *_fd .PdfObjectDictionary )(*PdfAnnotationScreen ,error ){_ccaa :=PdfAnnotationScreen {};_ccaa .T =_gfegc .Get ("\u0054");_ccaa .MK =_gfegc .Get ("\u004d\u004b");_ccaa .A =_gfegc .Get ("\u0041");_ccaa .AA =_gfegc .Get ("\u0041\u0041");return &_ccaa ,nil ;};func _dfcg (_gfgf *_fd .PdfObjectStream )(*PdfFunctionType4 ,error ){_gccbf :=&PdfFunctionType4 {};_gccbf ._baga =_gfgf ;_bedda :=_gfgf .PdfObjectDictionary ;_caegg ,_bfgfd :=_fd .TraceToDirectObject (_bedda .Get ("\u0044\u006f\u006d\u0061\u0069\u006e")).(*_fd .PdfObjectArray );if !_bfgfd {_fca .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_fce .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 _caegg .Len ()%2!=0{_fca .Log .Error ("\u0044\u006f\u006d\u0061\u0069\u006e\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");return nil ,_fce .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0064\u006f\u006da\u0069\u006e\u0020\u0072an\u0067\u0065");};_gfcb ,_ebcae :=_caegg .ToFloat64Array ();if _ebcae !=nil {return nil ,_ebcae ;};_gccbf .Domain =_gfcb ;_caegg ,_bfgfd =_fd .TraceToDirectObject (_bedda .Get ("\u0052\u0061\u006eg\u0065")).(*_fd .PdfObjectArray );if _bfgfd {if _caegg .Len ()< 0||_caegg .Len ()%2!=0{return nil ,_fce .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0061\u006e\u0067\u0065");};_gbbfd ,_gegf :=_caegg .ToFloat64Array ();if _gegf !=nil {return nil ,_gegf ;};_gccbf .Range =_gbbfd ;};_afea ,_ebcae :=_fd .DecodeStream (_gfgf );if _ebcae !=nil {return nil ,_ebcae ;};_gccbf ._dbgb =_afea ;_dbbad :=_fe .NewPSParser ([]byte (_afea ));_gcdgg ,_ebcae :=_dbbad .Parse ();if _ebcae !=nil {return nil ,_ebcae ;};_gccbf .Program =_gcdgg ;return _gccbf ,nil ;};
// ToPdfObject recursively builds the Outline tree PDF object.
func (_caag *PdfOutline )ToPdfObject ()_fd .PdfObject {_fbag :=_caag ._addc ;_gefb :=_fbag .PdfObject .(*_fd .PdfObjectDictionary );_gefb .Set ("\u0054\u0079\u0070\u0065",_fd .MakeName ("\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0073"));if _caag .First !=nil {_gefb .Set ("\u0046\u0069\u0072s\u0074",_caag .First .ToPdfObject ());};if _caag .Last !=nil {_gefb .Set ("\u004c\u0061\u0073\u0074",_caag .Last .GetContext ().GetContainingPdfObject ());};if _caag .Parent !=nil {_gefb .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_caag .Parent .GetContext ().GetContainingPdfObject ());};if _caag .Count !=nil {_gefb .Set ("\u0043\u006f\u0075n\u0074",_fd .MakeInteger (*_caag .Count ));};return _fbag ;};
// ImageToRGB converts an image with samples in Separation CS to an image with samples specified in
// DeviceRGB CS.
func (_ecadd *PdfColorspaceSpecialSeparation )ImageToRGB (img Image )(Image ,error ){_dcabe :=_ddf .NewReader (img .getBase ());_aeac :=_gd .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),_ecadd .AlternateSpace .GetNumComponents (),nil ,img ._cded ,nil );_efcfa :=_ddf .NewWriter (_aeac );_efga :=_ff .Pow (2,float64 (img .BitsPerComponent ))-1;_fca .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");_fca .Log .Trace ("\u0054i\u006et\u0054\u0072\u0061\u006e\u0073f\u006f\u0072m\u003a\u0020\u0025\u002b\u0076",_ecadd .TintTransform );_facb :=_ecadd .AlternateSpace .DecodeArray ();var (_fggde uint32 ;_fece error ;);for {_fggde ,_fece =_dcabe .ReadSample ();if _fece ==_fc .EOF {break ;};if _fece !=nil {return img ,_fece ;};_abef :=float64 (_fggde )/_efga ;_bcgc ,_beeb :=_ecadd .TintTransform .Evaluate ([]float64 {_abef });if _beeb !=nil {return img ,_beeb ;};for _aggc ,_gbgc :=range _bcgc {_gdcag :=_gd .LinearInterpolate (_gbgc ,_facb [_aggc *2],_facb [_aggc *2+1],0,1);if _beeb =_efcfa .WriteSample (uint32 (_gdcag *_efga ));_beeb !=nil {return img ,_beeb ;};};};return _ecadd .AlternateSpace .ImageToRGB (_baaaa (&_aeac ));};
// SetContext sets the sub annotation (context).
func (_ebe *PdfAnnotation )SetContext (ctx PdfModel ){_ebe ._ccd =ctx };
// NewPdfAnnotationWidget returns an initialized annotation widget.
func NewPdfAnnotationWidget ()*PdfAnnotationWidget {_fbfe :=NewPdfAnnotation ();_eba :=&PdfAnnotationWidget {};_eba .PdfAnnotation =_fbfe ;_fbfe .SetContext (_eba );return _eba ;};
// 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 _fc .ReadSeeker )(*PdfFont ,error ){_fcbgc ,_geaab :=_ec .ReadAll (r );if _geaab !=nil {_fca .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",_geaab );return nil ,_geaab ;};_efcbg ,_geaab :=_aaf .TtfParse (_bg .NewReader (_fcbgc ));if _geaab !=nil {_fca .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",_geaab );return nil ,_geaab ;};_eebf :=&pdfCIDFontType2 {fontCommon :fontCommon {_ccea :"\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032"},CIDToGIDMap :_fd .MakeName ("\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079")};_aeed :=make ([]rune ,0,len (_efcbg .Chars ));for _dfcb :=range _efcbg .Chars {_aeed =append (_aeed ,rune (_dfcb ));};_fb .Slice (_aeed ,func (_fgdc ,_dfef int )bool {return _aeed [_fgdc ]< _aeed [_dfef ]});_gddfc :=1000.0/float64 (_efcbg .UnitsPerEm );if len (_efcbg .Widths )<=0{return nil ,_fce .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");};_fcade :=_gddfc *float64 (_efcbg .Widths [0]);_aacd :=make (map[rune ]int );for _ ,_dgbg :=range _aeed {_abdc :=_efcbg .Chars [_dgbg ];_cdfddb :=_gddfc *float64 (_efcbg .Widths [_abdc ]);_aacd [_dgbg ]=int (_cdfddb );};_eebf ._ebfg =_aacd ;_eebf .DW =_fd .MakeInteger (int64 (_fcade ));_ccgd :=_ccega (_aeed ,_aacd ,_efcbg .Chars );_eebf .W =_fd .MakeIndirectObject (_ccgd );_bfdf :=_fd .MakeDict ();_bfdf .Set ("\u004f\u0072\u0064\u0065\u0072\u0069\u006e\u0067",_fd .MakeString ("\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079"));_bfdf .Set ("\u0052\u0065\u0067\u0069\u0073\u0074\u0072\u0079",_fd .MakeString ("\u0041\u0064\u006fb\u0065"));_bfdf .Set ("\u0053\u0075\u0070\u0070\u006c\u0065\u006d\u0065\u006e\u0074",_fd .MakeInteger (0));_eebf .CIDSystemInfo =_bfdf ;_befgd :=&PdfFontDescriptor {FontName :_fd .MakeName (_efcbg .PostScriptName ),Ascent :_fd .MakeFloat (_gddfc *float64 (_efcbg .TypoAscender )),Descent :_fd .MakeFloat (_gddfc *float64 (_efcbg .TypoDescender )),CapHeight :_fd .MakeFloat (_gddfc *float64 (_efcbg .CapHeight )),FontBBox :_fd .MakeArrayFromFloats ([]float64 {_gddfc *float64 (_efcbg .Xmin ),_gddfc *float64 (_efcbg .Ymin ),_gddfc *float64 (_efcbg .Xmax ),_gddfc *float64 (_efcbg .Ymax )}),ItalicAngle :_fd .MakeFloat (float64 (_efcbg .ItalicAngle )),MissingWidth :_fd .MakeFloat (_gddfc *float64 (_efcbg .Widths [0]))};_decd ,_geaab :=_fd .MakeStream (_fcbgc ,_fd .NewFlateEncoder ());if _geaab !=nil {_fca .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",_geaab );return nil ,_geaab ;};_decd .PdfObjectDictionary .Set ("\u004ce\u006e\u0067\u0074\u0068\u0031",_fd .MakeInteger (int64 (len (_fcbgc ))));_befgd .FontFile2 =_decd ;if _efcbg .Bold {_befgd .StemV =_fd .MakeInteger (120);}else {_befgd .StemV =_fd .MakeInteger (70);};_bede :=_eecbf ;if _efcbg .IsFixedPitch {_bede |=_efafc ;};if _efcbg .ItalicAngle !=0{_bede |=_gfeaa ;};_befgd .Flags =_fd .MakeInteger (int64 (_bede ));_eebf ._egfg =_efcbg .PostScriptName ;_eebf ._ggbg =_befgd ;_ggfgd :=pdfFontType0 {fontCommon :fontCommon {_ccea :"\u0054\u0079\u0070e\u0030",_egfg :_efcbg .PostScriptName },DescendantFont :&PdfFont {_bbaa :_eebf },Encoding :_fd .MakeName ("\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079\u002d\u0048"),_dbbce :_efcbg .NewEncoder ()};if len (_efcbg .Chars )> 0{_cbbff :=make (map[_agg .CharCode ]rune ,len (_efcbg .Chars ));for _fgafe ,_dgagc :=range _efcbg .Chars {_fgdd :=_agg .CharCode (_dgagc );if _bfea ,_effe :=_cbbff [_fgdd ];!_effe ||(_effe &&_bfea > _fgafe ){_cbbff [_fgdd ]=_fgafe ;};};_ggfgd ._facge =_agg .NewToUnicodeCMap (_cbbff );};_bdf :=PdfFont {_bbaa :&_ggfgd };return &_bdf ,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 (_dfcbb *PdfPageResources )GetColorspaces ()(*PdfPageResourcesColorspaces ,error ){if _dfcbb ._bfdgb !=nil {return _dfcbb ._bfdgb ,nil ;};if _dfcbb .ColorSpace ==nil {return nil ,nil ;};_edgda ,_cgfdf :=_gabcba (_dfcbb .ColorSpace );if _cgfdf !=nil {return nil ,_cgfdf ;};_dfcbb ._bfdgb =_edgda ;return _dfcbb ._bfdgb ,nil ;};
// ToPdfObject implements interface PdfModel.
func (_gccc *PdfActionRendition )ToPdfObject ()_fd .PdfObject {_gccc .PdfAction .ToPdfObject ();_fec :=_gccc ._fgb ;_bbg :=_fec .PdfObject .(*_fd .PdfObjectDictionary );_bbg .SetIfNotNil ("\u0053",_fd .MakeName (string (ActionTypeRendition )));_bbg .SetIfNotNil ("\u0052",_gccc .R );_bbg .SetIfNotNil ("\u0041\u004e",_gccc .AN );_bbg .SetIfNotNil ("\u004f\u0050",_gccc .OP );_bbg .SetIfNotNil ("\u004a\u0053",_gccc .JS );return _fec ;};
// AddContentStreamByString adds content stream by string. Puts the content
// string into a stream object and points the content stream towards it.
func (_cfafe *PdfPage )AddContentStreamByString (contentStr string )error {_dced ,_affdf :=_fd .MakeStream ([]byte (contentStr ),_fd .NewFlateEncoder ());if _affdf !=nil {return _affdf ;};if _cfafe .Contents ==nil {_cfafe .Contents =_dced ;}else {_fbfda :=_fd .TraceToDirectObject (_cfafe .Contents );_bggdg ,_gbabb :=_fbfda .(*_fd .PdfObjectArray );if !_gbabb {_bggdg =_fd .MakeArray (_fbfda );};_bggdg .Append (_dced );_cfafe .Contents =_bggdg ;};return nil ;};
// PdfShadingType1 is a Function-based shading.
type PdfShadingType1 struct{*PdfShading ;Domain *_fd .PdfObjectArray ;Matrix *_fd .PdfObjectArray ;Function []PdfFunction ;};
// B returns the value of the B component of the color.
func (_bfbd *PdfColorCalRGB )B ()float64 {return float64 (_bfbd [1])};func (_ced *PdfReader )newPdfActionHideFromDict (_agf *_fd .PdfObjectDictionary )(*PdfActionHide ,error ){return &PdfActionHide {T :_agf .Get ("\u0054"),H :_agf .Get ("\u0048")},nil ;};func _fagc (_bcceb _fd .PdfObject )(PdfFunction ,error ){_bcceb =_fd .ResolveReference (_bcceb );if _gadea ,_cabb :=_bcceb .(*_fd .PdfObjectStream );_cabb {_ggefc :=_gadea .PdfObjectDictionary ;_ddcfd ,_cbgc :=_ggefc .Get ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065").(*_fd .PdfObjectInteger );if !_cbgc {_fca .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 ,_fce .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 *_ddcfd ==0{return _cgfea (_gadea );}else if *_ddcfd ==4{return _dfcg (_gadea );}else {return nil ,_fce .New ("i\u006e\u0076\u0061\u006cid\u0020f\u0075\u006e\u0063\u0074\u0069o\u006e\u0020\u0074\u0079\u0070\u0065");};}else if _cfgfb ,_fdbc :=_bcceb .(*_fd .PdfIndirectObject );_fdbc {_fafe ,_gdaf :=_cfgfb .PdfObject .(*_fd .PdfObjectDictionary );if !_gdaf {_fca .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 ,_fce .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");};_ecff ,_gdaf :=_fafe .Get ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065").(*_fd .PdfObjectInteger );if !_gdaf {_fca .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 ,_fce .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 *_ecff ==2{return _cbbce (_cfgfb );}else if *_ecff ==3{return _eafeb (_cfgfb );}else {return nil ,_fce .New ("i\u006e\u0076\u0061\u006cid\u0020f\u0075\u006e\u0063\u0074\u0069o\u006e\u0020\u0074\u0079\u0070\u0065");};}else if _acaeb ,_ccdfa :=_bcceb .(*_fd .PdfObjectDictionary );_ccdfa {_abcg ,_dgdg :=_acaeb .Get ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065").(*_fd .PdfObjectInteger );if !_dgdg {_fca .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 ,_fce .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 *_abcg ==2{return _cbbce (_acaeb );}else if *_abcg ==3{return _eafeb (_acaeb );}else {return nil ,_fce .New ("i\u006e\u0076\u0061\u006cid\u0020f\u0075\u006e\u0063\u0074\u0069o\u006e\u0020\u0074\u0079\u0070\u0065");};}else {_fca .Log .Debug ("\u0046u\u006e\u0063\u0074\u0069\u006f\u006e\u0020\u0054\u0079\u0070\u0065 \u0065\u0072\u0072\u006f\u0072\u003a\u0020\u0025\u0023\u0076",_bcceb );return nil ,_fce .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};};
// RemovePage removes a page by number.
func (_ecdb *PdfAppender )RemovePage (pageNum int ){_cgff :=pageNum -1;_ecdb ._eafg =append (_ecdb ._eafg [0:_cgff ],_ecdb ._eafg [pageNum :]...);};func _fggb (_aeegg _fd .PdfObject )(map[_gf .CharCode ]float64 ,error ){if _aeegg ==nil {return nil ,nil ;};_fbeag ,_aecf :=_fd .GetArray (_aeegg );if !_aecf {return nil ,nil ;};_babd :=map[_gf .CharCode ]float64 {};_beca :=_fbeag .Len ();for _dcadg :=0;_dcadg < _beca -1;_dcadg ++{_eagd :=_fd .TraceToDirectObject (_fbeag .Get (_dcadg ));_bccg ,_ecdaf :=_fd .GetIntVal (_eagd );if !_ecdaf {return nil ,_d .Errorf ("\u0042a\u0064\u0020\u0066\u006fn\u0074\u0020\u0057\u0020\u006fb\u006a0\u003a \u0069\u003d\u0025\u0064\u0020\u0025\u0023v",_dcadg ,_eagd );};_dcadg ++;if _dcadg > _beca -1{return nil ,_d .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",_fbeag );};_ccad :=_fd .TraceToDirectObject (_fbeag .Get (_dcadg ));switch _ccad .(type ){case *_fd .PdfObjectArray :_ggfe ,_ :=_fd .GetArray (_ccad );if _fcff ,_bcaa :=_ggfe .ToFloat64Array ();_bcaa ==nil {for _dcfdf :=0;_dcfdf < len (_fcff );_dcfdf ++{_babd [_gf .CharCode (_bccg +_dcfdf )]=_fcff [_dcfdf ];};}else {return nil ,_d .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",_dcadg ,_ccad );};case *_fd .PdfObjectInteger :_fcedb ,_eccc :=_fd .GetIntVal (_ccad );if !_eccc {return nil ,_d .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",_dcadg ,_ccad );};_dcadg ++;if _dcadg > _beca -1{return nil ,_d .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",_fbeag );};_ecccg :=_fbeag .Get (_dcadg );_cbddb ,_edec :=_fd .GetNumberAsFloat (_ecccg );if _edec !=nil {return nil ,_d .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",_dcadg ,_ecccg );};for _agee :=_bccg ;_agee <=_fcedb ;_agee ++{_babd [_gf .CharCode (_agee )]=_cbddb ;};default:return nil ,_d .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",_dcadg ,_ccad );};};return _babd ,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 ){_bgga ,_dgcf :=_gaag (basefont );if _dgcf !=nil {return nil ,_dgcf ;};if basefont !=SymbolName &&basefont !=ZapfDingbatsName {_bgga ._fggbd =_gf .NewWinAnsiEncoder ();};return &PdfFont {_bbaa :&_bgga },nil ;};func _cadcg (_gabff _fd .PdfObject ,_dfdfa *PdfReader )(*OutlineDest ,error ){_cgada ,_afbd :=_fd .GetArray (_gabff );if !_afbd {return nil ,_fce .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");};_ddagb :=_cgada .Len ();if _ddagb < 2{return nil ,_d .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",_ddagb );};_gcaad :=&OutlineDest {Mode :"\u0046\u0069\u0074"};_dfae :=_cgada .Get (0);if _agga ,_bddc :=_fd .GetIndirect (_dfae );_bddc {if _ ,_fbfdeg ,_aeacc :=_dfdfa .PageFromIndirectObject (_agga );_aeacc ==nil {_gcaad .Page =int64 (_fbfdeg -1);}else {_fca .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",_agga );};_gcaad .PageObj =_agga ;}else if _egabe ,_gaba :=_fd .GetIntVal (_dfae );_gaba {if _egabe >=0&&_egabe < len (_dfdfa .PageList ){_gcaad .PageObj =_dfdfa .PageList [_egabe ].GetPageAsIndirectObject ();}else {_fca .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",_egabe );};_gcaad .Page =int64 (_egabe );}else {return nil ,_d .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",_dfae );};_bfdc ,_afbd :=_fd .GetNameVal (_cgada .Get (1));if !_afbd {_fca .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",_cgada .Get (1));return _gcaad ,nil ;};switch _bfdc {case "\u0046\u0069\u0074","\u0046\u0069\u0074\u0042":case "\u0046\u0069\u0074\u0048","\u0046\u0069\u0074B\u0048":if _ddagb > 2{_gcaad .Y ,_ =_fd .GetNumberAsFloat (_fd .TraceToDirectObject (_cgada .Get (2)));};case "\u0046\u0069\u0074\u0056","\u0046\u0069\u0074B\u0056":if _ddagb > 2{_gcaad .X ,_ =_fd .GetNumberAsFloat (_fd .TraceToDirectObject (_cgada .Get (2)));};case "\u0058\u0059\u005a":if _ddagb > 4{_gcaad .X ,_ =_fd .GetNumberAsFloat (_fd .TraceToDirectObject (_cgada .Get (2)));_gcaad .Y ,_ =_fd .GetNumberAsFloat (_fd .TraceToDirectObject (_cgada .Get (3)));_gcaad .Zoom ,_ =_fd .GetNumberAsFloat (_fd .TraceToDirectObject (_cgada .Get (4)));};default:_bfdc ="\u0046\u0069\u0074";};_gcaad .Mode =_bfdc ;return _gcaad ,nil ;};func (_cfeaag *PdfWriter )writeString (_dbdcg string ){if _cfeaag ._egffc !=nil {return ;};_fgbcf ,_ffeef :=_cfeaag ._gedga .WriteString (_dbdcg );_cfeaag ._bdbgg +=int64 (_fgbcf );_cfeaag ._egffc =_ffeef ;};
// WriteString outputs the object as it is to be written to file.
func (_abea *pdfSignDictionary )WriteString ()string {_abea ._aagdc =0;_abea ._cfdc =0;_abea ._gdcfb =0;_abea ._eaece =0;_bgffb :=_bg .NewBuffer (nil );_bgffb .WriteString ("\u003c\u003c");for _ ,_ffaed :=range _abea .Keys (){_efcc :=_abea .Get (_ffaed );switch _ffaed {case "\u0042y\u0074\u0065\u0052\u0061\u006e\u0067e":_bgffb .WriteString (_ffaed .WriteString ());_bgffb .WriteString ("\u0020");_abea ._gdcfb =_bgffb .Len ();_bgffb .WriteString (_efcc .WriteString ());_bgffb .WriteString ("\u0020");_abea ._eaece =_bgffb .Len ()-1;case "\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073":_bgffb .WriteString (_ffaed .WriteString ());_bgffb .WriteString ("\u0020");_abea ._aagdc =_bgffb .Len ();_bgffb .WriteString (_efcc .WriteString ());_bgffb .WriteString ("\u0020");_abea ._cfdc =_bgffb .Len ()-1;default:_bgffb .WriteString (_ffaed .WriteString ());_bgffb .WriteString ("\u0020");_bgffb .WriteString (_efcc .WriteString ());};};_bgffb .WriteString ("\u003e\u003e");return _bgffb .String ();};
// ImageToRGB converts an image in CMYK32 colorspace to an RGB image.
func (_dbge *PdfColorspaceDeviceCMYK )ImageToRGB (img Image )(Image ,error ){_fca .Log .Trace ("\u0043\u004d\u0059\u004b\u0033\u0032\u0020\u002d\u003e\u0020\u0052\u0047\u0042");_fca .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 );_fca .Log .Trace ("\u004c\u0065\u006e \u0064\u0061\u0074\u0061\u003a\u0020\u0025\u0064",len (img .Data ));_fca .Log .Trace ("H\u0065\u0069\u0067\u0068t:\u0020%\u0064\u002c\u0020\u0057\u0069d\u0074\u0068\u003a\u0020\u0025\u0064",img .Height ,img .Width );_dfac ,_bfbc :=_gd .NewImage (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),img .ColorComponents ,img .Data ,img ._cded ,img ._dfec );if _bfbc !=nil {return Image {},_bfbc ;};_faggf ,_bfbc :=_gd .NRGBAConverter .Convert (_dfac );if _bfbc !=nil {return Image {},_bfbc ;};return _baaaa (_faggf .Base ()),nil ;};func (_bgbc *pdfFontSimple )getFontEncoding ()(_cgcff string ,_bdcf map[_gf .CharCode ]_gf .GlyphName ,_eeef error ){_cgcff ="\u0053\u0074a\u006e\u0064\u0061r\u0064\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067";if _dfgdb ,_gfagb :=_bfgee [_bgbc ._egfg ];_gfagb {_cgcff =_dfgdb ;}else if _bgbc .fontFlags ()&_eecbf !=0{for _baabc ,_gafde :=range _bfgee {if _gc .Contains (_bgbc ._egfg ,_baabc ){_cgcff =_gafde ;break ;};};};if _bgbc .Encoding ==nil {return _cgcff ,nil ,nil ;};switch _geac :=_bgbc .Encoding .(type ){case *_fd .PdfObjectName :return string (*_geac ),nil ,nil ;case *_fd .PdfObjectDictionary :_adgg ,_bebda :=_fd .GetName (_geac .Get ("\u0042\u0061\u0073e\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067"));if _bebda {_cgcff =_adgg .String ();};if _fdceg :=_geac .Get ("D\u0069\u0066\u0066\u0065\u0072\u0065\u006e\u0063\u0065\u0073");_fdceg !=nil {_fcebg ,_fdfg :=_fd .GetArray (_fdceg );if !_fdfg {_fca .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",_geac ,_geac .Get ("D\u0069\u0066\u0066\u0065\u0072\u0065\u006e\u0063\u0065\u0073"));return "",nil ,_fd .ErrTypeError ;};_bdcf ,_eeef =_gf .FromFontDifferences (_fcebg );};return _cgcff ,_bdcf ,_eeef ;default:_fca .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",_bgbc .Encoding ,_bgbc .Encoding );return "",nil ,_fd .ErrTypeError ;};};func _affc (_beabd *PdfAnnotation )(*XObjectForm ,*PdfRectangle ,error ){_cdfdd ,_facbb :=_fd .GetDict (_beabd .AP );if !_facbb {return nil ,nil ,_fce .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 _cdfdd ==nil {return nil ,nil ,nil ;};_badgb ,_facbb :=_fd .GetArray (_beabd .Rect );if !_facbb ||_badgb .Len ()!=4{return nil ,nil ,_fce .New ("\u0072\u0065\u0063t\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064");};_cacbf ,_feggg :=NewPdfRectangle (*_badgb );if _feggg !=nil {return nil ,nil ,_feggg ;};_ddda :=_fd .TraceToDirectObject (_cdfdd .Get ("\u004e"));switch _cbgd :=_ddda .(type ){case *_fd .PdfObjectStream :_dggbd :=_cbgd ;_afdc ,_ccbff :=NewXObjectFormFromStream (_dggbd );return _afdc ,_cacbf ,_ccbff ;case *_fd .PdfObjectDictionary :_ffac :=_cbgd ;_gdae ,_ecgf :=_fd .GetName (_beabd .AS );if !_ecgf {return nil ,nil ,nil ;};if _ffac .Get (*_gdae )==nil {_fca .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 ;};_gdecg ,_ecgf :=_fd .GetStream (_ffac .Get (*_gdae ));if !_ecgf {_fca .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",_gdae );return nil ,nil ,_fce .New ("\u0073\u0074\u0072\u0065\u0061\u006d\u0020\u006d\u0069s\u0073\u0069\u006e\u0067");};_agbc ,_efeeg :=NewXObjectFormFromStream (_gdecg );return _agbc ,_cacbf ,_efeeg ;};_fca .Log .Debug ("\u0049\u006e\u0076\u0061li\u0064\u0020\u0074\u0079\u0070\u0065\u0020\u0066\u006f\u0072\u0020\u004e\u003a\u0020%\u0054",_ddda );return nil ,nil ,_fce .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};func _bgbea ()string {if len (_gadfb )> 0{return _gadfb ;};return "\u0055n\u0069\u0044\u006f\u0063 \u002d\u0020\u0068\u0074\u0074p\u003a/\u002fu\u006e\u0069\u0064\u006f\u0063\u002e\u0069o";};
// Initialize initializes the PdfSignature.
func (_cedg *PdfSignature )Initialize ()error {if _cedg .Handler ==nil {return _fce .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 _cedg .Handler .InitSignature (_cedg );};
// IsRadio returns true if the button field represents a radio button, false otherwise.
func (_ebfe *PdfFieldButton )IsRadio ()bool {return _ebfe .GetType ()==ButtonTypeRadio };
// GetExtGState gets the ExtGState specified by keyName. Returns a bool
// indicating whether it was found or not.
func (_gagba *PdfPageResources )GetExtGState (keyName _fd .PdfObjectName )(_fd .PdfObject ,bool ){if _gagba .ExtGState ==nil {return nil ,false ;};_debc ,_affdg :=_fd .TraceToDirectObject (_gagba .ExtGState ).(*_fd .PdfObjectDictionary );if !_affdg {_fca .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",_gagba .ExtGState );return nil ,false ;};if _adgd :=_debc .Get (keyName );_adgd !=nil {return _adgd ,true ;};return nil ,false ;};
// GetAscent returns the Ascent of the font `descriptor`.
func (_fege *PdfFontDescriptor )GetAscent ()(float64 ,error ){return _fd .GetNumberAsFloat (_fege .Ascent );};
// ToInteger convert to an integer format.
func (_gcbd *PdfColorDeviceCMYK )ToInteger (bits int )[4]uint32 {_bgaag :=_ff .Pow (2,float64 (bits ))-1;return [4]uint32 {uint32 (_bgaag *_gcbd .C ()),uint32 (_bgaag *_gcbd .M ()),uint32 (_bgaag *_gcbd .Y ()),uint32 (_bgaag *_gcbd .K ())};};
// PdfColorPattern represents a pattern color.
type PdfColorPattern struct{Color PdfColor ;PatternName _fd .PdfObjectName ;};
// 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 *_fd .PdfObjectName ;Colorants _fd .PdfObject ;Process _fd .PdfObject ;MixingHints _fd .PdfObject ;_bcda *_fd .PdfIndirectObject ;};
// GetMediaBox gets the inheritable media box value, either from the page
// or a higher up page/pages struct.
func (_geecb *PdfPage )GetMediaBox ()(*PdfRectangle ,error ){if _geecb .MediaBox !=nil {return _geecb .MediaBox ,nil ;};_bcbg :=_geecb .Parent ;for _bcbg !=nil {_bgbda ,_agfg :=_fd .GetDict (_bcbg );if !_agfg {return nil ,_fce .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 _bffbd :=_bgbda .Get ("\u004d\u0065\u0064\u0069\u0061\u0042\u006f\u0078");_bffbd !=nil {_gbecc ,_ddgcc :=_fd .GetArray (_bffbd );if !_ddgcc {return nil ,_fce .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006d\u0065\u0064\u0069a\u0020\u0062\u006f\u0078");};_beadf ,_aecae :=NewPdfRectangle (*_gbecc );if _aecae !=nil {return nil ,_aecae ;};return _beadf ,nil ;};_bcbg =_bgbda .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");};return nil ,_fce .New ("m\u0065\u0064\u0069\u0061 b\u006fx\u0020\u006e\u006f\u0074\u0020d\u0065\u0066\u0069\u006e\u0065\u0064");};
// PdfBorderEffect represents a PDF border effect.
type PdfBorderEffect struct{S *BorderEffect ;I *float64 ;};
// ToPdfObject returns a PDF object representation of the outline.
func (_dddd *Outline )ToPdfObject ()_fd .PdfObject {return _dddd .ToPdfOutline ().ToPdfObject ()};func _gddge (_dgbd ,_cged string )string {if _gc .Contains (_dgbd ,"\u002b"){_cffe :=_gc .Split (_dgbd ,"\u002b");if len (_cffe )==2{_dgbd =_cffe [1];};};return _cged +"\u002b"+_dgbd ;};
// NewPdfActionThread returns a new "thread" action.
func NewPdfActionThread ()*PdfActionThread {_agb :=NewPdfAction ();_dfg :=&PdfActionThread {};_dfg .PdfAction =_agb ;_agb .SetContext (_dfg );return _dfg ;};func _caega (_eggg []byte )(_gbbf ,_bceef string ,_acae error ){_fca .Log .Trace ("g\u0065\u0074\u0041\u0053CI\u0049S\u0065\u0063\u0074\u0069\u006fn\u0073\u003a\u0020\u0025\u0064\u0020",len (_eggg ));_ecef :=_ggaa .FindIndex (_eggg );if _ecef ==nil {_fca .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 "","",_fd .ErrTypeError ;};_bbcc :=_ecef [1];_feae :=_gc .Index (string (_eggg [_bbcc :]),_cegb );if _feae < 0{_gbbf =string (_eggg [_bbcc :]);return _gbbf ,"",nil ;};_bdbcd :=_bbcc +_feae ;_gbbf =string (_eggg [_bbcc :_bdbcd ]);_gadef :=_bdbcd ;_feae =_gc .Index (string (_eggg [_gadef :]),_dfeeg );if _feae < 0{_fca .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",_acae );return "","",_fd .ErrTypeError ;};_cagbg :=_gadef +_feae ;_bceef =string (_eggg [_gadef :_cagbg ]);return _gbbf ,_bceef ,nil ;};
// GetContainingPdfObject returns the container of the pattern object (indirect object).
func (_gcaaf *PdfPattern )GetContainingPdfObject ()_fd .PdfObject {return _gcaaf ._bfcg };
// NewPdfPageResourcesFromDict creates and returns a new PdfPageResources object
// from the input dictionary.
func NewPdfPageResourcesFromDict (dict *_fd .PdfObjectDictionary )(*PdfPageResources ,error ){_bbggd :=NewPdfPageResources ();if _ddfgg :=dict .Get ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e");_ddfgg !=nil {_bbggd .ExtGState =_ddfgg ;};if _dbfgc :=dict .Get ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065");_dbfgc !=nil &&!_fd .IsNullObject (_dbfgc ){_bbggd .ColorSpace =_dbfgc ;};if _bddae :=dict .Get ("\u0050a\u0074\u0074\u0065\u0072\u006e");_bddae !=nil {_bbggd .Pattern =_bddae ;};if _edee :=dict .Get ("\u0053h\u0061\u0064\u0069\u006e\u0067");_edee !=nil {_bbggd .Shading =_edee ;};if _abbda :=dict .Get ("\u0058O\u0062\u006a\u0065\u0063\u0074");_abbda !=nil {_bbggd .XObject =_abbda ;};if _eaggc :=_fd .ResolveReference (dict .Get ("\u0046\u006f\u006e\u0074"));_eaggc !=nil {_bbggd .Font =_eaggc ;};if _egde :=dict .Get ("\u0050r\u006f\u0063\u0053\u0065\u0074");_egde !=nil {_bbggd .ProcSet =_egde ;};if _badga :=dict .Get ("\u0050\u0072\u006f\u0070\u0065\u0072\u0074\u0069\u0065\u0073");_badga !=nil {_bbggd .Properties =_badga ;};return _bbggd ,nil ;};var _afed _b .Time ;
// ImageToGray returns a new grayscale image based on the passed in RGB image.
func (_cefd *PdfColorspaceDeviceRGB )ImageToGray (img Image )(Image ,error ){if img .ColorComponents !=3{return img ,_fce .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");};_cfgef ,_cdceb :=_gd .NewImage (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),img .ColorComponents ,img .Data ,img ._cded ,img ._dfec );if _cdceb !=nil {return img ,_cdceb ;};_aeag ,_cdceb :=_gd .GrayConverter .Convert (_cfgef );if _cdceb !=nil {return img ,_cdceb ;};return _baaaa (_aeag .Base ()),nil ;};func (_fagaa *pdfFontSimple )baseFields ()*fontCommon {return &_fagaa .fontCommon };
// SetName sets the `Name` field of the signature.
func (_fbaeg *PdfSignature )SetName (name string ){_fbaeg .Name =_fd .MakeString (name )};
// 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 ;_eeaafd *_fd .PdfIndirectObject ;};
// NewPdfAnnotationMovie returns a new movie annotation.
func NewPdfAnnotationMovie ()*PdfAnnotationMovie {_daag :=NewPdfAnnotation ();_aabb :=&PdfAnnotationMovie {};_aabb .PdfAnnotation =_daag ;_daag .SetContext (_aabb );return _aabb ;};
// PdfPageResources is a Page resources model.
// Implements PdfModel.
type PdfPageResources struct{ExtGState _fd .PdfObject ;ColorSpace _fd .PdfObject ;Pattern _fd .PdfObject ;Shading _fd .PdfObject ;XObject _fd .PdfObject ;Font _fd .PdfObject ;ProcSet _fd .PdfObject ;Properties _fd .PdfObject ;_adae *_fd .PdfObjectDictionary ;_bfdgb *PdfPageResourcesColorspaces ;};var _bfgee =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 (_bfgd *PdfReader )loadForms ()(*PdfAcroForm ,error ){if _bfgd ._egbge .GetCrypter ()!=nil &&!_bfgd ._egbge .IsAuthenticated (){return nil ,_d .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");};_aega :=_bfgd ._bfcbd ;_febde :=_aega .Get ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d");if _febde ==nil {return nil ,nil ;};_cdfa ,_ :=_fd .GetIndirect (_febde );_febde =_fd .TraceToDirectObject (_febde );if _fd .IsNullObject (_febde ){_fca .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 ;};_dbfbc ,_fabc :=_fd .GetDict (_febde );if !_fabc {_fca .Log .Debug ("\u0049n\u0076\u0061\u006c\u0069d\u0020\u0041\u0063\u0072\u006fF\u006fr\u006d \u0065\u006e\u0074\u0072\u0079\u0020\u0025T",_febde );_fca .Log .Debug ("\u0044\u006f\u0065\u0073 n\u006f\u0074\u0020\u0068\u0061\u0076\u0065\u0020\u0066\u006f\u0072\u006d\u0073");return nil ,_d .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0061\u0063\u0072\u006ff\u006fr\u006d \u0065\u006e\u0074\u0072\u0079\u0020\u0025T",_febde );};_fca .Log .Trace ("\u0048\u0061\u0073\u0020\u0041\u0063\u0072\u006f\u0020f\u006f\u0072\u006d\u0073");_fca .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 !_bfgd ._ebeae {_fdbfc :=_bfgd .traverseObjectData (_dbfbc );if _fdbfc !=nil {_fca .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",_fdbfc );return nil ,_fdbfc ;};};_fcfdf ,_gaca :=_bfgd .newPdfAcroFormFromDict (_cdfa ,_dbfbc );if _gaca !=nil {return nil ,_gaca ;};return _fcfdf ,nil ;};
// Fill populates `form` with values provided by `provider`.
func (_gfbe *PdfAcroForm )Fill (provider FieldValueProvider )error {return _gfbe .fill (provider ,nil )};
// PdfActionGoTo represents a GoTo action.
type PdfActionGoTo struct{*PdfAction ;D _fd .PdfObject ;};func (_cbf *PdfReader )newPdfActionGotoFromDict (_dfe *_fd .PdfObjectDictionary )(*PdfActionGoTo ,error ){return &PdfActionGoTo {D :_dfe .Get ("\u0044")},nil ;};
// ToPdfObject converts the pdfCIDFontType0 to a PDF representation.
func (_dedb *pdfCIDFontType0 )ToPdfObject ()_fd .PdfObject {return _fd .MakeNull ()};
// NewPdfColorDeviceGray returns a new grayscale color based on an input grayscale float value in range [0-1].
func NewPdfColorDeviceGray (grayVal float64 )*PdfColorDeviceGray {_bdc :=PdfColorDeviceGray (grayVal );return &_bdc ;};
// HasXObjectByName checks if has XObject resource by name.
func (_fgafc *PdfPage )HasXObjectByName (name _fd .PdfObjectName )bool {_cbcag ,_gbbcb :=_fgafc .Resources .XObject .(*_fd .PdfObjectDictionary );if !_gbbcb {return false ;};if _cgcda :=_cbcag .Get (name );_cgcda !=nil {return true ;};return false ;};
// ToPdfObject implements interface PdfModel.
func (_efaf *PdfBorderStyle )ToPdfObject ()_fd .PdfObject {_eagg :=_fd .MakeDict ();if _efaf ._fefdb !=nil {if _aadb ,_bffc :=_efaf ._fefdb .(*_fd .PdfIndirectObject );_bffc {_aadb .PdfObject =_eagg ;};};_eagg .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fd .MakeName ("\u0042\u006f\u0072\u0064\u0065\u0072"));if _efaf .W !=nil {_eagg .Set ("\u0057",_fd .MakeFloat (*_efaf .W ));};if _efaf .S !=nil {_eagg .Set ("\u0053",_fd .MakeName (_efaf .S .GetPdfName ()));};if _efaf .D !=nil {_eagg .Set ("\u0044",_fd .MakeArrayFromIntegers (*_efaf .D ));};if _efaf ._fefdb !=nil {return _efaf ._fefdb ;};return _eagg ;};
// NewPdfColorspaceSpecialIndexed returns a new Indexed color.
func NewPdfColorspaceSpecialIndexed ()*PdfColorspaceSpecialIndexed {return &PdfColorspaceSpecialIndexed {HiVal :255};};
// Evaluate runs the function on the passed in slice and returns the results.
func (_bbgad *PdfFunctionType3 )Evaluate (x []float64 )([]float64 ,error ){if len (x )!=1{_fca .Log .Error ("\u004f\u006e\u006c\u0079 o\u006e\u0065\u0020\u0069\u006e\u0070\u0075\u0074\u0020\u0061\u006c\u006c\u006f\u0077e\u0064");return nil ,_fce .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};return nil ,_fce .New ("\u006e\u006f\u0074\u0020im\u0070\u006c\u0065\u006d\u0065\u006e\u0074\u0065\u0064\u0020\u0079\u0065\u0074");};
// PdfPage represents a page in a PDF document. (7.7.3.3 - Table 30).
type PdfPage struct{Parent _fd .PdfObject ;LastModified *PdfDate ;Resources *PdfPageResources ;CropBox *PdfRectangle ;MediaBox *PdfRectangle ;BleedBox *PdfRectangle ;TrimBox *PdfRectangle ;ArtBox *PdfRectangle ;BoxColorInfo _fd .PdfObject ;Contents _fd .PdfObject ;Rotate *int64 ;Group _fd .PdfObject ;Thumb _fd .PdfObject ;B _fd .PdfObject ;Dur _fd .PdfObject ;Trans _fd .PdfObject ;AA _fd .PdfObject ;Metadata _fd .PdfObject ;PieceInfo _fd .PdfObject ;StructParents _fd .PdfObject ;ID _fd .PdfObject ;PZ _fd .PdfObject ;SeparationInfo _fd .PdfObject ;Tabs _fd .PdfObject ;TemplateInstantiated _fd .PdfObject ;PresSteps _fd .PdfObject ;UserUnit _fd .PdfObject ;VP _fd .PdfObject ;Annots _fd .PdfObject ;_bfedf []*PdfAnnotation ;_fgbbc *_fd .PdfObjectDictionary ;_debfd *_fd .PdfIndirectObject ;_gccea *PdfReader ;};
// DecodeArray returns the range of color component values in DeviceRGB colorspace.
func (_ecbf *PdfColorspaceDeviceRGB )DecodeArray ()[]float64 {return []float64 {0.0,1.0,0.0,1.0,0.0,1.0};};
// PdfAnnotationTrapNet represents TrapNet annotations.
// (Section 12.5.6.21).
type PdfAnnotationTrapNet struct{*PdfAnnotation };
// 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 _fc .ReadSeeker )(*PdfReader ,error ){_ggcce :=&PdfReader {_eade :rs ,_caece :map[_fd .PdfObject ]struct{}{},_gggcg :_caaab (),_ebeae :false };_afbde ,_gagfd :=_fd .NewParser (rs );if _gagfd !=nil {return nil ,_gagfd ;};_ggcce ._egbge =_afbde ;_gbfe ,_gagfd :=_ggcce .IsEncrypted ();if _gagfd !=nil {return nil ,_gagfd ;};if !_gbfe {_gagfd =_ggcce .loadStructure ();if _gagfd !=nil {return nil ,_gagfd ;};};return _ggcce ,nil ;};
// NewPdfAnnotationPopup returns a new popup annotation.
func NewPdfAnnotationPopup ()*PdfAnnotationPopup {_fgcd :=NewPdfAnnotation ();_bega :=&PdfAnnotationPopup {};_bega .PdfAnnotation =_fgcd ;_fgcd .SetContext (_bega );return _bega ;};
// 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 (_agabd *PdfFont )CharcodeBytesToUnicode (data []byte )(string ,int ,int ){_affgc ,_ ,_fedga :=_agabd .CharcodesToUnicodeWithStats (_agabd .BytesToCharcodes (data ));_gggd :=_gf .ExpandLigatures (_affgc );return _gggd ,_gb .RuneCountInString (_gggd ),_fedga ;};
// PdfFunctionType4 is a Postscript calculator functions.
type PdfFunctionType4 struct{Domain []float64 ;Range []float64 ;Program *_fe .PSProgram ;_gfcd *_fe .PSExecutor ;_dbgb []byte ;_baga *_fd .PdfObjectStream ;};
// GetNamedDestinations returns the Names entry in the PDF catalog.
// See section 12.3.2.3 "Named Destinations" (p. 367 PDF32000_2008).
func (_dfda *PdfReader )GetNamedDestinations ()(_fd .PdfObject ,error ){_bcbbd :=_fd .ResolveReference (_dfda ._bfcbd .Get ("\u004e\u0061\u006de\u0073"));if _bcbbd ==nil {return nil ,nil ;};if !_dfda ._ebeae {_ecgbgf :=_dfda .traverseObjectData (_bcbbd );if _ecgbgf !=nil {return nil ,_ecgbgf ;};};return _bcbbd ,nil ;};
// NewPdfColorspaceDeviceRGB returns a new RGB colorspace object.
func NewPdfColorspaceDeviceRGB ()*PdfColorspaceDeviceRGB {return &PdfColorspaceDeviceRGB {}};
// ToPdfObject implements interface PdfModel.
func (_geg *PdfActionTrans )ToPdfObject ()_fd .PdfObject {_geg .PdfAction .ToPdfObject ();_caa :=_geg ._fgb ;_edfd :=_caa .PdfObject .(*_fd .PdfObjectDictionary );_edfd .SetIfNotNil ("\u0053",_fd .MakeName (string (ActionTypeTrans )));_edfd .SetIfNotNil ("\u0054\u0072\u0061n\u0073",_geg .Trans );return _caa ;};
// GetContext returns a reference to the subpattern entry: either PdfTilingPattern or PdfShadingPattern.
func (_ebaba *PdfPattern )GetContext ()PdfModel {return _ebaba ._befef };
// SetColorspaceByName adds the provided colorspace to the page resources.
func (_gcfc *PdfPageResources )SetColorspaceByName (keyName _fd .PdfObjectName ,cs PdfColorspace )error {_bcgg ,_deee :=_gcfc .GetColorspaces ();if _deee !=nil {_fca .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",_deee );return _deee ;};if _bcgg ==nil {_bcgg =NewPdfPageResourcesColorspaces ();_gcfc .SetColorSpace (_bcgg );};_bcgg .Set (keyName ,cs );return nil ;};
// PdfColorspaceCalRGB stores A, B, C components
type PdfColorspaceCalRGB struct{WhitePoint []float64 ;BlackPoint []float64 ;Gamma []float64 ;Matrix []float64 ;_gdfc *_fd .PdfObjectDictionary ;_eaff *_fd .PdfIndirectObject ;};
// ColorToRGB converts a Lab color to an RGB color.
func (_ggdb *PdfColorspaceLab )ColorToRGB (color PdfColor )(PdfColor ,error ){_dcfb :=func (_begb float64 )float64 {if _begb >=6.0/29{return _begb *_begb *_begb ;};return 108.0/841*(_begb -4/29);};_acbd ,_adcg :=color .(*PdfColorLab );if !_adcg {_fca .Log .Debug ("\u0069\u006e\u0070\u0075t \u0063\u006f\u006c\u006f\u0072\u0020\u006e\u006f\u0074\u0020\u006c\u0061\u0062");return nil ,_fce .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};LStar :=_acbd .L ();AStar :=_acbd .A ();BStar :=_acbd .B ();L :=(LStar +16)/116+AStar /500;M :=(LStar +16)/116;N :=(LStar +16)/116-BStar /200;X :=_ggdb .WhitePoint [0]*_dcfb (L );Y :=_ggdb .WhitePoint [1]*_dcfb (M );Z :=_ggdb .WhitePoint [2]*_dcfb (N );_bbfg :=3.240479*X +-1.537150*Y +-0.498535*Z ;_gaaf :=-0.969256*X +1.875992*Y +0.041556*Z ;_cadd :=0.055648*X +-0.204043*Y +1.057311*Z ;_bbfg =_ff .Min (_ff .Max (_bbfg ,0),1.0);_gaaf =_ff .Min (_ff .Max (_gaaf ,0),1.0);_cadd =_ff .Min (_ff .Max (_cadd ,0),1.0);return NewPdfColorDeviceRGB (_bbfg ,_gaaf ,_cadd ),nil ;};func (_bcbf *PdfReader )newPdfAnnotationTextFromDict (_edc *_fd .PdfObjectDictionary )(*PdfAnnotationText ,error ){_dgfd :=PdfAnnotationText {};_affe ,_gaee :=_bcbf .newPdfAnnotationMarkupFromDict (_edc );if _gaee !=nil {return nil ,_gaee ;};_dgfd .PdfAnnotationMarkup =_affe ;_dgfd .Open =_edc .Get ("\u004f\u0070\u0065\u006e");_dgfd .Name =_edc .Get ("\u004e\u0061\u006d\u0065");_dgfd .State =_edc .Get ("\u0053\u0074\u0061t\u0065");_dgfd .StateModel =_edc .Get ("\u0053\u0074\u0061\u0074\u0065\u004d\u006f\u0064\u0065\u006c");return &_dgfd ,nil ;};
// ContentStreamWrapper wraps the Page's contentstream into q ... Q blocks.
type ContentStreamWrapper interface{WrapContentStream (_decgf *PdfPage )error ;};
// Items returns all children outline items.
func (_adcdb *OutlineItem )Items ()[]*OutlineItem {return _adcdb .Entries };func _ebddd ()string {return _fca .Version };func _fdbf (_egebd _fd .PdfObject )(*_fd .PdfObjectDictionary ,*fontCommon ,error ){_cdebc :=&fontCommon {};if _ffca ,_ccdcb :=_egebd .(*_fd .PdfIndirectObject );_ccdcb {_cdebc ._edcb =_ffca .ObjectNumber ;};_fgade ,_bedg :=_fd .GetDict (_egebd );if !_bedg {_fca .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",_egebd );return nil ,nil ,ErrFontNotSupported ;};_gcgc ,_bedg :=_fd .GetNameVal (_fgade .Get ("\u0054\u0079\u0070\u0065"));if !_bedg {_fca .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 _gcgc !="\u0046\u006f\u006e\u0074"{_fca .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.",_gcgc ,"\u0046\u006f\u006e\u0074");return nil ,nil ,_fd .ErrTypeError ;};_bcbe ,_bedg :=_fd .GetNameVal (_fgade .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065"));if !_bedg {_fca .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 ;};_cdebc ._ccea =_bcbe ;_cadc ,_bedg :=_fd .GetNameVal (_fgade .Get ("\u004e\u0061\u006d\u0065"));if _bedg {_cdebc ._gaebg =_cadc ;};if _bcbe =="\u0054\u0079\u0070e\u0033"{_fca .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",_fgade );return _fgade ,_cdebc ,ErrType3FontNotSupported ;};_eeea ,_bedg :=_fd .GetNameVal (_fgade .Get ("\u0042\u0061\u0073\u0065\u0046\u006f\u006e\u0074"));if !_bedg {_fca .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 _fgade ,_cdebc ,ErrRequiredAttributeMissing ;};_cdebc ._egfg =_eeea ;_befge :=_fgade .Get ("\u0046\u006f\u006e\u0074\u0044\u0065\u0073\u0063\u0072i\u0070\u0074\u006f\u0072");if _befge !=nil {_fecad ,_cgcf :=_cdef (_befge );if _cgcf !=nil {_fca .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",_cgcf );return _fgade ,_cdebc ,_cgcf ;};_cdebc ._ggbg =_fecad ;};_bdgaf :=_fgade .Get ("\u0054o\u0055\u006e\u0069\u0063\u006f\u0064e");if _bdgaf !=nil {_cdebc ._ddaf =_fd .TraceToDirectObject (_bdgaf );_edba ,_gfdba :=_begcg (_cdebc ._ddaf ,_cdebc );if _gfdba !=nil {return _fgade ,_cdebc ,_gfdba ;};_cdebc ._facge =_edba ;}else if _bcbe =="\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0030"||_bcbe =="\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032"{_gbfca ,_cbbab :=_agg .NewCIDSystemInfo (_fgade .Get ("\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f"));if _cbbab !=nil {return _fgade ,_cdebc ,_cbbab ;};_fgcgb :=_d .Sprintf ("\u0025\u0073\u002d\u0025\u0073\u002d\u0055\u0043\u0053\u0032",_gbfca .Registry ,_gbfca .Ordering );if _agg .IsPredefinedCMap (_fgcgb ){_cdebc ._facge ,_cbbab =_agg .LoadPredefinedCMap (_fgcgb );if _cbbab !=nil {_fca .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",_fgcgb ,_cbbab );};};};return _fgade ,_cdebc ,nil ;};
// SetPdfCreationDate sets the CreationDate attribute of the output PDF.
func SetPdfCreationDate (creationDate _b .Time ){_fdgee =creationDate };
// NewPdfAnnotationStrikeOut returns a new text strikeout annotation.
func NewPdfAnnotationStrikeOut ()*PdfAnnotationStrikeOut {_cdce :=NewPdfAnnotation ();_age :=&PdfAnnotationStrikeOut {};_age .PdfAnnotation =_cdce ;_age .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_cdce .SetContext (_age );return _age ;};
// AddAnnotation appends `annot` to the list of page annotations.
func (_bfabg *PdfPage )AddAnnotation (annot *PdfAnnotation ){if _bfabg ._bfedf ==nil {_bfabg .GetAnnotations ();};_bfabg ._bfedf =append (_bfabg ._bfedf ,annot );};
// HasXObjectByName checks if an XObject with a specified keyName is defined.
func (_bbbg *PdfPageResources )HasXObjectByName (keyName _fd .PdfObjectName )bool {_gaecg ,_ :=_bbbg .GetXObjectByName (keyName );return _gaecg !=nil ;};
// NewPdfActionGoToE returns a new "go to embedded" action.
func NewPdfActionGoToE ()*PdfActionGoToE {_ea :=NewPdfAction ();_ddc :=&PdfActionGoToE {};_ddc .PdfAction =_ea ;_ea .SetContext (_ddc );return _ddc ;};func (_fgec *PdfColorspaceDeviceGray )String ()string {return "\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079";};
// NewPdfColorspaceFromPdfObject loads a PdfColorspace from a PdfObject. Returns an error if there is
// a failure in loading.
func NewPdfColorspaceFromPdfObject (obj _fd .PdfObject )(PdfColorspace ,error ){var _dege *_fd .PdfIndirectObject ;var _fde *_fd .PdfObjectName ;var _ggda *_fd .PdfObjectArray ;if _afcaa ,_gfcc :=obj .(*_fd .PdfIndirectObject );_gfcc {_dege =_afcaa ;};obj =_fd .TraceToDirectObject (obj );switch _bcfb :=obj .(type ){case *_fd .PdfObjectArray :_ggda =_bcfb ;case *_fd .PdfObjectName :_fde =_bcfb ;};if _fde !=nil {switch *_fde {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:_fca .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",*_fde );return nil ,_fgbb ;};};if _ggda !=nil &&_ggda .Len ()> 0{var _gffg _fd .PdfObject =_dege ;if _dege ==nil {_gffg =_ggda ;};if _eeaa ,_edbfc :=_fd .GetName (_ggda .Get (0));_edbfc {switch _eeaa .String (){case "\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079":if _ggda .Len ()==1{return NewPdfColorspaceDeviceGray (),nil ;};case "\u0044e\u0076\u0069\u0063\u0065\u0052\u0047B":if _ggda .Len ()==1{return NewPdfColorspaceDeviceRGB (),nil ;};case "\u0044\u0065\u0076\u0069\u0063\u0065\u0043\u004d\u0059\u004b":if _ggda .Len ()==1{return NewPdfColorspaceDeviceCMYK (),nil ;};case "\u0043a\u006c\u0047\u0072\u0061\u0079":return _cbbb (_gffg );case "\u0043\u0061\u006c\u0052\u0047\u0042":return _begg (_gffg );case "\u004c\u0061\u0062":return _addec (_gffg );case "\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064":return _bggd (_gffg );case "\u0050a\u0074\u0074\u0065\u0072\u006e":return _cbcbf (_gffg );case "\u0049n\u0064\u0065\u0078\u0065\u0064":return _fdge (_gffg );case "\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e":return _acbe (_gffg );case "\u0044e\u0076\u0069\u0063\u0065\u004e":return _cccc (_gffg );default:_fca .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",*_eeaa );};};};_fca .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 ;};
// Set applies flag fl to the flag's bitmask and returns the combined flag.
func (_fbfg FieldFlag )Set (fl FieldFlag )FieldFlag {return FieldFlag (_fbfg .Mask ()|fl .Mask ())};var (_ggaa =_ag .MustCompile ("\u005cd\u002b\u0020\u0064\u0069c\u0074\u005c\u0073\u002b\u0028d\u0075p\u005cs\u002b\u0029\u003f\u0062\u0065\u0067\u0069n");_fcdb =_ag .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");_gbdf =_ag .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");_cegb ="\u002f\u0045\u006e\u0063od\u0069\u006e\u0067\u0020\u0032\u0035\u0036\u0020\u0061\u0072\u0072\u0061\u0079";_dfeeg ="\u0072\u0065\u0061d\u006f\u006e\u006c\u0079\u0020\u0064\u0065\u0066";_agecf ="\u0063\u0075\u0072\u0072\u0065\u006e\u0074\u0066\u0069\u006c\u0065\u0020e\u0065\u0078\u0065\u0063";);
// PdfColorspaceSpecialPattern is a Pattern colorspace.
// Can be defined either as /Pattern or with an underlying colorspace [/Pattern cs].
type PdfColorspaceSpecialPattern struct{UnderlyingCS PdfColorspace ;_agedg *_fd .PdfIndirectObject ;};
// GetAlphabet returns a map of the runes in `text` and their frequencies.
func GetAlphabet (text string )map[rune ]int {_gbcg :=map[rune ]int {};for _ ,_bbeb :=range text {_gbcg [_bbeb ]++;};return _gbcg ;};
// ToPdfObject implements interface PdfModel.
func (_bf *PdfActionGoTo3DView )ToPdfObject ()_fd .PdfObject {_bf .PdfAction .ToPdfObject ();_bggb :=_bf ._fgb ;_bddd :=_bggb .PdfObject .(*_fd .PdfObjectDictionary );_bddd .SetIfNotNil ("\u0053",_fd .MakeName (string (ActionTypeGoTo3DView )));_bddd .SetIfNotNil ("\u0054\u0041",_bf .TA );_bddd .SetIfNotNil ("\u0056",_bf .V );return _bggb ;};func (_aeebb *PdfAppender )mergeResources (_bcdd ,_gcff _fd .PdfObject ,_dcf map[_fd .PdfObjectName ]_fd .PdfObjectName )_fd .PdfObject {if _gcff ==nil &&_bcdd ==nil {return nil ;};if _gcff ==nil {return _bcdd ;};_dacga ,_fbcg :=_fd .GetDict (_gcff );if !_fbcg {return _bcdd ;};if _bcdd ==nil {_cdaa :=_fd .MakeDict ();_cdaa .Merge (_dacga );return _gcff ;};_cdac ,_fbcg :=_fd .GetDict (_bcdd );if !_fbcg {_fca .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");_cdac =_fd .MakeDict ();};for _ ,_gebf :=range _dacga .Keys (){if _dgec ,_fbd :=_dcf [_gebf ];_fbd {_cdac .Set (_dgec ,_dacga .Get (_gebf ));}else {_cdac .Set (_gebf ,_dacga .Get (_gebf ));};};return _cdac ;};
// GetContainingPdfObject implements interface PdfModel.
func (_ae *PdfAction )GetContainingPdfObject ()_fd .PdfObject {return _ae ._fgb };func _addec (_gaef _fd .PdfObject )(*PdfColorspaceLab ,error ){_gefc :=NewPdfColorspaceLab ();if _fgbeg ,_gbdc :=_gaef .(*_fd .PdfIndirectObject );_gbdc {_gefc ._fbfeb =_fgbeg ;};_gaef =_fd .TraceToDirectObject (_gaef );_fdcc ,_cabec :=_gaef .(*_fd .PdfObjectArray );if !_cabec {return nil ,_d .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _fdcc .Len ()!=2{return nil ,_d .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0043\u0061\u006c\u0052G\u0042 \u0063o\u006c\u006f\u0072\u0073\u0070\u0061\u0063e");};_gaef =_fd .TraceToDirectObject (_fdcc .Get (0));_ddbf ,_cabec :=_gaef .(*_fd .PdfObjectName );if !_cabec {return nil ,_d .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 *_ddbf !="\u004c\u0061\u0062"{return nil ,_d .Errorf ("n\u006ft\u0020\u0061\u0020\u004c\u0061\u0062\u0020\u0063o\u006c\u006f\u0072\u0073pa\u0063\u0065");};_gaef =_fd .TraceToDirectObject (_fdcc .Get (1));_bcbb ,_cabec :=_gaef .(*_fd .PdfObjectDictionary );if !_cabec {return nil ,_d .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");};_gaef =_bcbb .Get ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074");_gaef =_fd .TraceToDirectObject (_gaef );_fdgf ,_cabec :=_gaef .(*_fd .PdfObjectArray );if !_cabec {return nil ,_d .Errorf ("\u004c\u0061\u0062\u0020In\u0076\u0061\u006c\u0069\u0064\u0020\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069n\u0074");};if _fdgf .Len ()!=3{return nil ,_d .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");};_eefe ,_ecae :=_fdgf .GetAsFloat64Slice ();if _ecae !=nil {return nil ,_ecae ;};_gefc .WhitePoint =_eefe ;_gaef =_bcbb .Get ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074");if _gaef !=nil {_gaef =_fd .TraceToDirectObject (_gaef );_fdae ,_fccf :=_gaef .(*_fd .PdfObjectArray );if !_fccf {return nil ,_d .Errorf ("\u004c\u0061\u0062: \u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074");};if _fdae .Len ()!=3{return nil ,_d .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");};_aadae ,_becfc :=_fdae .GetAsFloat64Slice ();if _becfc !=nil {return nil ,_becfc ;};_gefc .BlackPoint =_aadae ;};_gaef =_bcbb .Get ("\u0052\u0061\u006eg\u0065");if _gaef !=nil {_gaef =_fd .TraceToDirectObject (_gaef );_ggggf ,_febc :=_gaef .(*_fd .PdfObjectArray );if !_febc {_fca .Log .Error ("\u0052\u0061n\u0067\u0065\u0020t\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");return nil ,_d .Errorf ("\u004ca\u0062:\u0020\u0054\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _ggggf .Len ()!=4{_fca .Log .Error ("\u0052\u0061\u006e\u0067\u0065\u0020\u0072\u0061\u006e\u0067\u0065\u0020e\u0072\u0072\u006f\u0072");return nil ,_d .Errorf ("\u004c\u0061b\u003a\u0020\u0052a\u006e\u0067\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};_eacf ,_becfa :=_ggggf .GetAsFloat64Slice ();if _becfa !=nil {return nil ,_becfa ;};_gefc .Range =_eacf ;};return _gefc ,nil ;};type fontFile struct{_edgf string ;_efbd string ;_dfga _gf .SimpleEncoder ;};var _daee ="";func (_efge *PdfReader )newPdfAnnotationWatermarkFromDict (_cbbgb *_fd .PdfObjectDictionary )(*PdfAnnotationWatermark ,error ){_bccf :=PdfAnnotationWatermark {};_bccf .FixedPrint =_cbbgb .Get ("\u0046\u0069\u0078\u0065\u0064\u0050\u0072\u0069\u006e\u0074");return &_bccf ,nil ;};
// NewPdfActionGoTo3DView returns a new "goTo3DView" action.
func NewPdfActionGoTo3DView ()*PdfActionGoTo3DView {_adg :=NewPdfAction ();_fbf :=&PdfActionGoTo3DView {};_fbf .PdfAction =_adg ;_adg .SetContext (_fbf );return _fbf ;};
// 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 (_cabgc *PdfSignature )bool ;Validate (_cdefg *PdfSignature ,_acfef Hasher )(SignatureValidationResult ,error );
// InitSignature sets the PdfSignature parameters.
InitSignature (*PdfSignature )error ;NewDigest (_bdbfd *PdfSignature )(Hasher ,error );Sign (_daeff *PdfSignature ,_cebfg Hasher )error ;};
// 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 (_deea *Image )Resample (targetBitsPerComponent int64 ){if _deea .BitsPerComponent ==targetBitsPerComponent {return ;};_aeaba :=_deea .GetSamples ();if targetBitsPerComponent < _deea .BitsPerComponent {_gfgdc :=_deea .BitsPerComponent -targetBitsPerComponent ;for _fegfc :=range _aeaba {_aeaba [_fegfc ]>>=uint (_gfgdc );};}else if targetBitsPerComponent > _deea .BitsPerComponent {_fbgb :=targetBitsPerComponent -_deea .BitsPerComponent ;for _effec :=range _aeaba {_aeaba [_effec ]<<=uint (_fbgb );};};_deea .BitsPerComponent =targetBitsPerComponent ;if _deea .BitsPerComponent < 8{_deea .resampleLowBits (_aeaba );return ;};_dddf :=_gd .BytesPerLine (int (_deea .Width ),int (_deea .BitsPerComponent ),_deea .ColorComponents );_eabed :=make ([]byte ,_dddf *int (_deea .Height ));var (_ceeee ,_fabd ,_febac ,_afcg int ;_gabgb uint32 ;);for _febac =0;_febac < int (_deea .Height );_febac ++{_ceeee =_febac *_dddf ;_fabd =(_febac +1)*_dddf -1;_faac :=_ddf .ResampleUint32 (_aeaba [_ceeee :_fabd ],int (targetBitsPerComponent ),8);for _afcg ,_gabgb =range _faac {_eabed [_afcg +_ceeee ]=byte (_gabgb );};};_deea .Data =_eabed ;};
// SetContext sets the sub action (context).
func (_aga *PdfAction )SetContext (ctx PdfModel ){_aga ._db =ctx };
// AddWatermarkImage adds a watermark to the page.
func (_bcdee *PdfPage )AddWatermarkImage (ximg *XObjectImage ,opt WatermarkImageOptions )error {_dbda ,_dcbgf :=_bcdee .GetMediaBox ();if _dcbgf !=nil {return _dcbgf ;};_eccce :=_dbda .Urx -_dbda .Llx ;_bgega :=_dbda .Ury -_dbda .Lly ;_bdegd :=float64 (*ximg .Width );_gebde :=(float64 (_eccce )-float64 (_bdegd ))/2;if opt .FitToWidth {_bdegd =_eccce ;_gebde =0;};_abgf :=_bgega ;_cgde :=float64 (0);if opt .PreserveAspectRatio {_abgf =_bdegd *float64 (*ximg .Height )/float64 (*ximg .Width );_cgde =(_bgega -_abgf )/2;};if _bcdee .Resources ==nil {_bcdee .Resources =NewPdfPageResources ();};_bdca :=0;_bcffc :=_fd .PdfObjectName (_d .Sprintf ("\u0049\u006d\u0077%\u0064",_bdca ));for _bcdee .Resources .HasXObjectByName (_bcffc ){_bdca ++;_bcffc =_fd .PdfObjectName (_d .Sprintf ("\u0049\u006d\u0077%\u0064",_bdca ));};_dcbgf =_bcdee .AddImageResource (_bcffc ,ximg );if _dcbgf !=nil {return _dcbgf ;};_bdca =0;_dgcbd :=_fd .PdfObjectName (_d .Sprintf ("\u0047\u0053\u0025\u0064",_bdca ));for _bcdee .HasExtGState (_dgcbd ){_bdca ++;_dgcbd =_fd .PdfObjectName (_d .Sprintf ("\u0047\u0053\u0025\u0064",_bdca ));};_cfcde :=_fd .MakeDict ();_cfcde .Set ("\u0042\u004d",_fd .MakeName ("\u004e\u006f\u0072\u006d\u0061\u006c"));_cfcde .Set ("\u0043\u0041",_fd .MakeFloat (opt .Alpha ));_cfcde .Set ("\u0063\u0061",_fd .MakeFloat (opt .Alpha ));_dcbgf =_bcdee .AddExtGState (_dgcbd ,_cfcde );if _dcbgf !=nil {return _dcbgf ;};_fafac :=_d .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",_dgcbd ,_bdegd ,_abgf ,_gebde ,_cgde ,_bcffc );_bcdee .AddContentStreamByString (_fafac );return nil ;};
// ToPdfObject implements interface PdfModel.
func (_aada *PdfAnnotationWatermark )ToPdfObject ()_fd .PdfObject {_aada .PdfAnnotation .ToPdfObject ();_agede :=_aada ._defg ;_dgabg :=_agede .PdfObject .(*_fd .PdfObjectDictionary );_dgabg .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fd .MakeName ("\u0057a\u0074\u0065\u0072\u006d\u0061\u0072k"));_dgabg .SetIfNotNil ("\u0046\u0069\u0078\u0065\u0064\u0050\u0072\u0069\u006e\u0074",_aada .FixedPrint );return _agede ;};
// SetImage updates XObject Image with new image data.
func (_cdgdd *XObjectImage )SetImage (img *Image ,cs PdfColorspace )error {_cdgdd .Filter .UpdateParams (img .GetParamsDict ());_eedc ,_efcbd :=_cdgdd .Filter .EncodeBytes (img .Data );if _efcbd !=nil {return _efcbd ;};_cdgdd .Stream =_eedc ;_dgafc :=img .Width ;_cdgdd .Width =&_dgafc ;_fbgcc :=img .Height ;_cdgdd .Height =&_fbgcc ;_badeb :=img .BitsPerComponent ;_cdgdd .BitsPerComponent =&_badeb ;if cs ==nil {if img .ColorComponents ==1{_cdgdd .ColorSpace =NewPdfColorspaceDeviceGray ();}else if img .ColorComponents ==3{_cdgdd .ColorSpace =NewPdfColorspaceDeviceRGB ();}else if img .ColorComponents ==4{_cdgdd .ColorSpace =NewPdfColorspaceDeviceCMYK ();}else {return _fce .New ("c\u006fl\u006f\u0072\u0073\u0070\u0061\u0063\u0065\u0020u\u006e\u0064\u0065\u0066in\u0065\u0064");};}else {_cdgdd .ColorSpace =cs ;};return nil ;};
// ToPdfObject implements interface PdfModel.
func (_gbgg *PdfAnnotationPopup )ToPdfObject ()_fd .PdfObject {_gbgg .PdfAnnotation .ToPdfObject ();_bbff :=_gbgg ._defg ;_dbff :=_bbff .PdfObject .(*_fd .PdfObjectDictionary );_dbff .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fd .MakeName ("\u0050\u006f\u0070u\u0070"));_dbff .SetIfNotNil ("\u0050\u0061\u0072\u0065\u006e\u0074",_gbgg .Parent );_dbff .SetIfNotNil ("\u004f\u0070\u0065\u006e",_gbgg .Open );return _bbff ;};
// 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 {_eaeg ,_ggecf :=NewStandard14Font (basefont );if _ggecf !=nil {panic (_d .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 _eaeg ;};
// PdfFieldText represents a text field where user can enter text.
type PdfFieldText struct{*PdfField ;DA *_fd .PdfObjectString ;Q *_fd .PdfObjectInteger ;DS *_fd .PdfObjectString ;RV _fd .PdfObject ;MaxLen *_fd .PdfObjectInteger ;};
// 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 (_bfbac *PdfReader )AcroFormNeedsRepair ()(bool ,error ){var _eafec []*PdfField ;if _bfbac .AcroForm !=nil {_eafec =_bfbac .AcroForm .AllFields ();};_gafbd :=make (map[*PdfField ]struct{},len (_eafec ));for _ ,_cced :=range _eafec {_gafbd [_cced ]=struct{}{};};for _ ,_eceee :=range _bfbac .PageList {_eaffc ,_dfdg :=_eceee .GetAnnotations ();if _dfdg !=nil {return false ,_dfdg ;};for _ ,_afeeg :=range _eaffc {_dega ,_egfc :=_afeeg .GetContext ().(*PdfAnnotationWidget );if !_egfc {continue ;};_ggga :=_dega .Field ();if _ggga ==nil {return true ,nil ;};if _ ,_dddefa :=_gafbd [_ggga ];!_dddefa {return true ,nil ;};};};return false ,nil ;};
// ToPdfObject implements interface PdfModel.
func (_cbb *PdfActionJavaScript )ToPdfObject ()_fd .PdfObject {_cbb .PdfAction .ToPdfObject ();_cfc :=_cbb ._fgb ;_cbg :=_cfc .PdfObject .(*_fd .PdfObjectDictionary );_cbg .SetIfNotNil ("\u0053",_fd .MakeName (string (ActionTypeJavaScript )));_cbg .SetIfNotNil ("\u004a\u0053",_cbb .JS );return _cfc ;};
// ToPdfObject implements interface PdfModel.
func (_fgc *PdfActionThread )ToPdfObject ()_fd .PdfObject {_fgc .PdfAction .ToPdfObject ();_bdd :=_fgc ._fgb ;_cg :=_bdd .PdfObject .(*_fd .PdfObjectDictionary );_cg .SetIfNotNil ("\u0053",_fd .MakeName (string (ActionTypeThread )));if _fgc .F !=nil {_cg .Set ("\u0046",_fgc .F .ToPdfObject ());};_cg .SetIfNotNil ("\u0044",_fgc .D );_cg .SetIfNotNil ("\u0042",_fgc .B );return _bdd ;};
// Decrypt decrypts the PDF file with a specified password. Also tries to
// decrypt with an empty password. Returns true if successful,
// false otherwise.
func (_bdab *PdfReader )Decrypt (password []byte )(bool ,error ){_cdaed ,_dgaag :=_bdab ._egbge .Decrypt (password );if _dgaag !=nil {return false ,_dgaag ;};if !_cdaed {return false ,nil ;};_dgaag =_bdab .loadStructure ();if _dgaag !=nil {_fca .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",_dgaag );return false ,_dgaag ;};return true ,nil ;};
// SetImageHandler sets the image handler used by the package.
func SetImageHandler (imgHandling ImageHandler ){ImageHandling =imgHandling };var _fcfc ="";
// ToPdfObject implements interface PdfModel.
func (_geba *PdfAnnotationSquare )ToPdfObject ()_fd .PdfObject {_geba .PdfAnnotation .ToPdfObject ();_dabc :=_geba ._defg ;_bafc :=_dabc .PdfObject .(*_fd .PdfObjectDictionary );if _geba .PdfAnnotationMarkup !=nil {_geba .PdfAnnotationMarkup .appendToPdfDictionary (_bafc );};_bafc .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fd .MakeName ("\u0053\u0071\u0075\u0061\u0072\u0065"));_bafc .SetIfNotNil ("\u0042\u0053",_geba .BS );_bafc .SetIfNotNil ("\u0049\u0043",_geba .IC );_bafc .SetIfNotNil ("\u0042\u0045",_geba .BE );_bafc .SetIfNotNil ("\u0052\u0044",_geba .RD );return _dabc ;};
// Duplicate creates a duplicate page based on the current one and returns it.
func (_fffed *PdfPage )Duplicate ()*PdfPage {var _fegfa PdfPage ;_fegfa =*_fffed ;_fegfa ._fgbbc =_fd .MakeDict ();_fegfa ._debfd =_fd .MakeIndirectObject (_fegfa ._fgbbc );return &_fegfa ;};
// ToPdfObject implements interface PdfModel.
func (_eca *PdfAnnotationProjection )ToPdfObject ()_fd .PdfObject {_eca .PdfAnnotation .ToPdfObject ();_dcdf :=_eca ._defg ;_cggd :=_dcdf .PdfObject .(*_fd .PdfObjectDictionary );_eca .PdfAnnotationMarkup .appendToPdfDictionary (_cggd );return _dcdf ;};type fontCommon struct{_egfg string ;_ccea string ;_gaebg string ;_ddaf _fd .PdfObject ;_facge *_agg .CMap ;_ggbg *PdfFontDescriptor ;_edcb int64 ;};
// SetDate sets the `M` field of the signature.
func (_dbcf *PdfSignature )SetDate (date _b .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";};_dbcf .M =_fd .MakeString (date .Format (format ));};
// ColorFromFloats returns a new PdfColor based on input color components.
func (_cgd *PdfColorspaceDeviceN )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=_cgd .GetNumComponents (){return nil ,_fce .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_cbbga ,_aaece :=_cgd .TintTransform .Evaluate (vals );if _aaece !=nil {return nil ,_aaece ;};_aece ,_aaece :=_cgd .AlternateSpace .ColorFromFloats (_cbbga );if _aaece !=nil {return nil ,_aaece ;};return _aece ,nil ;};
// String implements interface PdfObject.
func (_gba *PdfAction )String ()string {_gdd ,_ad :=_gba .ToPdfObject ().(*_fd .PdfIndirectObject );if _ad {return _d .Sprintf ("\u0025\u0054\u003a\u0020\u0025\u0073",_gba ._db ,_gdd .PdfObject .String ());};return "";};func (_ffff *pdfFontSimple )updateStandard14Font (){_gage ,_cbfaa :=_ffff .Encoder ().(_gf .SimpleEncoder );if !_cbfaa {_fca .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",_ffff .Encoder (),_ffff );return ;};_dgcd :=_gage .Charcodes ();_ffff ._cfcg =make (map[_gf .CharCode ]float64 ,len (_dgcd ));for _ ,_ecaee :=range _dgcd {_aabf ,_ :=_gage .CharcodeToRune (_ecaee );_ffff ._cfcg [_ecaee ]=_ffff ._gdeba [_aabf ].Wx ;};};
// NewPdfColorCalRGB returns a new CalRBG color.
func NewPdfColorCalRGB (a ,b ,c float64 )*PdfColorCalRGB {_daaea :=PdfColorCalRGB {a ,b ,c };return &_daaea ;};
// PdfActionTrans represents a trans action.
type PdfActionTrans struct{*PdfAction ;Trans _fd .PdfObject ;};
// NewOutlineItem returns a new outline item instance.
func NewOutlineItem (title string ,dest OutlineDest )*OutlineItem {return &OutlineItem {Title :title ,Dest :dest };};
// GetNumComponents returns the number of color components of the colorspace device.
// Returns 1 for a grayscale device.
func (_fceg *PdfColorspaceDeviceGray )GetNumComponents ()int {return 1};
// GetContentStreamWithEncoder returns the pattern cell's content stream and its encoder
func (_bgfc *PdfTilingPattern )GetContentStreamWithEncoder ()([]byte ,_fd .StreamEncoder ,error ){_aagf ,_feabbc :=_bgfc ._bfcg .(*_fd .PdfObjectStream );if !_feabbc {_fca .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",_bgfc ._bfcg );return nil ,nil ,_fd .ErrTypeError ;};_gbdfd ,_egfff :=_fd .DecodeStream (_aagf );if _egfff !=nil {_fca .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",_egfff );return nil ,nil ,_egfff ;};_gfgac ,_egfff :=_fd .NewEncoderFromStream (_aagf );if _egfff !=nil {_fca .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",_egfff );return nil ,nil ,_egfff ;};return _gbdfd ,_gfgac ,nil ;};
// Y returns the value of the yellow component of the color.
func (_dcgg *PdfColorDeviceCMYK )Y ()float64 {return float64 (_dcgg [2])};
// ToPdfObject returns colorspace in a PDF object format [name dictionary]
func (_eeee *PdfColorspaceCalRGB )ToPdfObject ()_fd .PdfObject {_cafec :=&_fd .PdfObjectArray {};_cafec .Append (_fd .MakeName ("\u0043\u0061\u006c\u0052\u0047\u0042"));_dfgb :=_fd .MakeDict ();if _eeee .WhitePoint !=nil {_geed :=_fd .MakeArray (_fd .MakeFloat (_eeee .WhitePoint [0]),_fd .MakeFloat (_eeee .WhitePoint [1]),_fd .MakeFloat (_eeee .WhitePoint [2]));_dfgb .Set ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074",_geed );}else {_fca .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 _eeee .BlackPoint !=nil {_face :=_fd .MakeArray (_fd .MakeFloat (_eeee .BlackPoint [0]),_fd .MakeFloat (_eeee .BlackPoint [1]),_fd .MakeFloat (_eeee .BlackPoint [2]));_dfgb .Set ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074",_face );};if _eeee .Gamma !=nil {_feeg :=_fd .MakeArray (_fd .MakeFloat (_eeee .Gamma [0]),_fd .MakeFloat (_eeee .Gamma [1]),_fd .MakeFloat (_eeee .Gamma [2]));_dfgb .Set ("\u0047\u0061\u006dm\u0061",_feeg );};if _eeee .Matrix !=nil {_dfbb :=_fd .MakeArray (_fd .MakeFloat (_eeee .Matrix [0]),_fd .MakeFloat (_eeee .Matrix [1]),_fd .MakeFloat (_eeee .Matrix [2]),_fd .MakeFloat (_eeee .Matrix [3]),_fd .MakeFloat (_eeee .Matrix [4]),_fd .MakeFloat (_eeee .Matrix [5]),_fd .MakeFloat (_eeee .Matrix [6]),_fd .MakeFloat (_eeee .Matrix [7]),_fd .MakeFloat (_eeee .Matrix [8]));_dfgb .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_dfbb );};_cafec .Append (_dfgb );if _eeee ._eaff !=nil {_eeee ._eaff .PdfObject =_cafec ;return _eeee ._eaff ;};return _cafec ;};func (_edcgc *PdfWriter )hasObject (_dacge _fd .PdfObject )bool {_ ,_abedg :=_edcgc ._fgdfc [_dacge ];return _abedg ;};
// NewPdfPage returns a new PDF page.
func NewPdfPage ()*PdfPage {_dddga :=PdfPage {};_dddga ._fgbbc =_fd .MakeDict ();_dddga .Resources =NewPdfPageResources ();_adcdd :=_fd .PdfIndirectObject {};_adcdd .PdfObject =_dddga ._fgbbc ;_dddga ._debfd =&_adcdd ;return &_dddga ;};
// NewPdfOutline returns an initialized PdfOutline.
func NewPdfOutline ()*PdfOutline {_geaad :=&PdfOutline {_addc :_fd .MakeIndirectObject (_fd .MakeDict ())};_geaad ._ccggf =_geaad ;return _geaad ;};
// PdfAnnotationProjection represents Projection annotations.
type PdfAnnotationProjection struct{*PdfAnnotation ;*PdfAnnotationMarkup ;};
// ToPdfObject returns the PDF representation of the pattern.
func (_cgef *PdfPattern )ToPdfObject ()_fd .PdfObject {_efgeg :=_cgef .getDict ();_efgeg .Set ("\u0054\u0079\u0070\u0065",_fd .MakeName ("\u0050a\u0074\u0074\u0065\u0072\u006e"));_efgeg .Set ("P\u0061\u0074\u0074\u0065\u0072\u006e\u0054\u0079\u0070\u0065",_fd .MakeInteger (_cgef .PatternType ));return _cgef ._bfcg ;};func (_fcebe *PdfField )inherit (_cdge func (*PdfField )bool )(bool ,error ){_begbd :=map[*PdfField ]bool {};_gfead :=false ;_dcde :=_fcebe ;for _dcde !=nil {if _ ,_ebbg :=_begbd [_dcde ];_ebbg {return false ,_fce .New ("\u0072\u0065\u0063\u0075rs\u0069\u0076\u0065\u0020\u0074\u0072\u0061\u0076\u0065\u0072\u0073\u0061\u006c");};_ebbcb :=_cdge (_dcde );if _ebbcb {_gfead =true ;break ;};_begbd [_dcde ]=true ;_dcde =_dcde .Parent ;};return _gfead ,nil ;};func (_bgc *PdfReader )newPdfAnnotationMarkupFromDict (_abga *_fd .PdfObjectDictionary )(*PdfAnnotationMarkup ,error ){_bed :=&PdfAnnotationMarkup {};if _ebcd :=_abga .Get ("\u0054");_ebcd !=nil {_bed .T =_ebcd ;};if _gff :=_abga .Get ("\u0050\u006f\u0070u\u0070");_gff !=nil {_beed ,_afca :=_gff .(*_fd .PdfIndirectObject );if !_afca {if _ ,_dce :=_gff .(*_fd .PdfObjectNull );!_dce {return nil ,_fce .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 {_gfga ,_aef :=_bgc .newPdfAnnotationFromIndirectObject (_beed );if _aef !=nil {return nil ,_aef ;};if _gfga !=nil {_ggef ,_dgfc :=_gfga ._ccd .(*PdfAnnotationPopup );if !_dgfc {return nil ,_fce .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");};_bed .Popup =_ggef ;};};};if _ggca :=_abga .Get ("\u0043\u0041");_ggca !=nil {_bed .CA =_ggca ;};if _dcb :=_abga .Get ("\u0052\u0043");_dcb !=nil {_bed .RC =_dcb ;};if _bag :=_abga .Get ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065");_bag !=nil {_bed .CreationDate =_bag ;};if _dfeg :=_abga .Get ("\u0049\u0052\u0054");_dfeg !=nil {_bed .IRT =_dfeg ;};if _cfag :=_abga .Get ("\u0053\u0075\u0062\u006a");_cfag !=nil {_bed .Subj =_cfag ;};if _fcg :=_abga .Get ("\u0052\u0054");_fcg !=nil {_bed .RT =_fcg ;};if _gag :=_abga .Get ("\u0049\u0054");_gag !=nil {_bed .IT =_gag ;};if _cgec :=_abga .Get ("\u0045\u0078\u0044\u0061\u0074\u0061");_cgec !=nil {_bed .ExData =_cgec ;};return _bed ,nil ;};
// PdfActionJavaScript represents a javaScript action.
type PdfActionJavaScript struct{*PdfAction ;JS _fd .PdfObject ;};func _bggd (_cfaf _fd .PdfObject )(*PdfColorspaceICCBased ,error ){_efdga :=&PdfColorspaceICCBased {};if _daba ,_ceeaa :=_cfaf .(*_fd .PdfIndirectObject );_ceeaa {_efdga ._acfb =_daba ;};_cfaf =_fd .TraceToDirectObject (_cfaf );_deba ,_efef :=_cfaf .(*_fd .PdfObjectArray );if !_efef {return nil ,_d .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _deba .Len ()!=2{return nil ,_d .Errorf ("i\u006e\u0076\u0061\u006c\u0069\u0064 \u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064\u0020c\u006f\u006c\u006fr\u0073p\u0061\u0063\u0065");};_cfaf =_fd .TraceToDirectObject (_deba .Get (0));_gfag ,_efef :=_cfaf .(*_fd .PdfObjectName );if !_efef {return nil ,_d .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 *_gfag !="\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064"{return nil ,_d .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");};_cfaf =_deba .Get (1);_bac ,_efef :=_fd .GetStream (_cfaf );if !_efef {_fca .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",_cfaf );return nil ,_d .Errorf ("\u0049\u0043\u0043Ba\u0073\u0065\u0064\u0020\u0073\u0074\u0072\u0065\u0061\u006d\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064");};_ebafc :=_bac .PdfObjectDictionary ;_aedg ,_efef :=_ebafc .Get ("\u004e").(*_fd .PdfObjectInteger );if !_efef {return nil ,_d .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 *_aedg !=1&&*_aedg !=3&&*_aedg !=4{return nil ,_d .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");};_efdga .N =int (*_aedg );if _bcdde :=_ebafc .Get ("\u0041l\u0074\u0065\u0072\u006e\u0061\u0074e");_bcdde !=nil {_fegd ,_aagd :=NewPdfColorspaceFromPdfObject (_bcdde );if _aagd !=nil {return nil ,_aagd ;};_efdga .Alternate =_fegd ;};if _aabe :=_ebafc .Get ("\u0052\u0061\u006eg\u0065");_aabe !=nil {_aabe =_fd .TraceToDirectObject (_aabe );_ccdc ,_afgg :=_aabe .(*_fd .PdfObjectArray );if !_afgg {return nil ,_d .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 _ccdc .Len ()!=2*_efdga .N {return nil ,_d .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");};_befb ,_bdbd :=_ccdc .GetAsFloat64Slice ();if _bdbd !=nil {return nil ,_bdbd ;};_efdga .Range =_befb ;}else {_efdga .Range =make ([]float64 ,2*_efdga .N );for _cgab :=0;_cgab < _efdga .N ;_cgab ++{_efdga .Range [2*_cgab ]=0.0;_efdga .Range [2*_cgab +1]=1.0;};};if _fgde :=_ebafc .Get ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");_fgde !=nil {_dabcg ,_agac :=_fgde .(*_fd .PdfObjectStream );if !_agac {return nil ,_d .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");};_efdga .Metadata =_dabcg ;};_egab ,_dafbb :=_fd .DecodeStream (_bac );if _dafbb !=nil {return nil ,_dafbb ;};_efdga .Data =_egab ;_efdga ._beab =_bac ;return _efdga ,nil ;};
// IsShading specifies if the pattern is a shading pattern.
func (_bddeb *PdfPattern )IsShading ()bool {return _bddeb .PatternType ==2};
// GetPageAsIndirectObject returns the page as a dictionary within an PdfIndirectObject.
func (_acfe *PdfPage )GetPageAsIndirectObject ()*_fd .PdfIndirectObject {return _acfe ._debfd };
// NewPdfAnnotationProjection returns a new projection annotation.
func NewPdfAnnotationProjection ()*PdfAnnotationProjection {_dbf :=NewPdfAnnotation ();_bfdb :=&PdfAnnotationProjection {};_bfdb .PdfAnnotation =_dbf ;_bfdb .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_dbf .SetContext (_bfdb );return _bfdb ;};
// ImageToRGB converts ICCBased colorspace image to RGB and returns the result.
func (_aeab *PdfColorspaceICCBased )ImageToRGB (img Image )(Image ,error ){if _aeab .Alternate ==nil {_fca .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 _aeab .N ==1{_fca .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");_afag :=NewPdfColorspaceDeviceGray ();return _afag .ImageToRGB (img );}else if _aeab .N ==3{_fca .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 _aeab .N ==4{_fca .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");_cebg :=NewPdfColorspaceDeviceCMYK ();return _cebg .ImageToRGB (img );}else {return img ,_fce .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");};};_fca .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",_aeab );_ccfg ,_cgc :=_aeab .Alternate .ImageToRGB (img );_fca .Log .Trace ("I\u0043C\u0020\u0049\u006e\u0070\u0075\u0074\u0020\u0069m\u0061\u0067\u0065\u003a %\u002b\u0076",img );_fca .Log .Trace ("I\u0043\u0043\u0020\u004fut\u0070u\u0074\u0020\u0069\u006d\u0061g\u0065\u003a\u0020\u0025\u002b\u0076",_ccfg );return _ccfg ,_cgc ;};func (_gda *PdfReader )newPdfActionSoundFromDict (_feff *_fd .PdfObjectDictionary )(*PdfActionSound ,error ){return &PdfActionSound {Sound :_feff .Get ("\u0053\u006f\u0075n\u0064"),Volume :_feff .Get ("\u0056\u006f\u006c\u0075\u006d\u0065"),Synchronous :_feff .Get ("S\u0079\u006e\u0063\u0068\u0072\u006f\u006e\u006f\u0075\u0073"),Repeat :_feff .Get ("\u0052\u0065\u0070\u0065\u0061\u0074"),Mix :_feff .Get ("\u004d\u0069\u0078")},nil ;};
// NewPdfActionGoTo returns a new "go to" action.
func NewPdfActionGoTo ()*PdfActionGoTo {_df :=NewPdfAction ();_bc :=&PdfActionGoTo {};_bc .PdfAction =_df ;_df .SetContext (_bc );return _bc ;};func (_afcfc *PdfReader )newPdfSignatureFromIndirect (_debaf *_fd .PdfIndirectObject )(*PdfSignature ,error ){_ccda ,_dabe :=_debaf .PdfObject .(*_fd .PdfObjectDictionary );if !_dabe {_fca .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 _agfce ,_dceeb :=_afcfc ._gggcg .GetModelFromPrimitive (_debaf ).(*PdfSignature );_dceeb {return _agfce ,nil ;};_aacdf :=&PdfSignature {};_aacdf ._bcbba =_debaf ;_aacdf .Type ,_ =_fd .GetName (_ccda .Get ("\u0054\u0079\u0070\u0065"));_aacdf .Filter ,_dabe =_fd .GetName (_ccda .Get ("\u0046\u0069\u006c\u0074\u0065\u0072"));if !_dabe {_fca .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 ;};_aacdf .SubFilter ,_ =_fd .GetName (_ccda .Get ("\u0053u\u0062\u0046\u0069\u006c\u0074\u0065r"));_aacdf .Contents ,_dabe =_fd .GetString (_ccda .Get ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073"));if !_dabe {_fca .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 ;};_aacdf .Cert =_ccda .Get ("\u0043\u0065\u0072\u0074");_aacdf .ByteRange ,_ =_fd .GetArray (_ccda .Get ("\u0042y\u0074\u0065\u0052\u0061\u006e\u0067e"));_aacdf .Reference ,_ =_fd .GetArray (_ccda .Get ("\u0052e\u0066\u0065\u0072\u0065\u006e\u0063e"));_aacdf .Changes ,_ =_fd .GetArray (_ccda .Get ("\u0043h\u0061\u006e\u0067\u0065\u0073"));_aacdf .Name ,_ =_fd .GetString (_ccda .Get ("\u004e\u0061\u006d\u0065"));_aacdf .M ,_ =_fd .GetString (_ccda .Get ("\u004d"));_aacdf .Location ,_ =_fd .GetString (_ccda .Get ("\u004c\u006f\u0063\u0061\u0074\u0069\u006f\u006e"));_aacdf .Reason ,_ =_fd .GetString (_ccda .Get ("\u0052\u0065\u0061\u0073\u006f\u006e"));_aacdf .ContactInfo ,_ =_fd .GetString (_ccda .Get ("C\u006f\u006e\u0074\u0061\u0063\u0074\u0049\u006e\u0066\u006f"));_aacdf .R ,_ =_fd .GetInt (_ccda .Get ("\u0052"));_aacdf .V ,_ =_fd .GetInt (_ccda .Get ("\u0056"));_aacdf .PropBuild ,_ =_fd .GetDict (_ccda .Get ("\u0050\u0072\u006f\u0070\u005f\u0042\u0075\u0069\u006c\u0064"));_aacdf .PropAuthTime ,_ =_fd .GetInt (_ccda .Get ("\u0050\u0072\u006f\u0070\u005f\u0041\u0075\u0074\u0068\u0054\u0069\u006d\u0065"));_aacdf .PropAuthType ,_ =_fd .GetName (_ccda .Get ("\u0050\u0072\u006f\u0070\u005f\u0041\u0075\u0074\u0068\u0054\u0079\u0070\u0065"));return _aacdf ,nil ;};
// 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 ;_bcbba *_fd .PdfIndirectObject ;
// Type: Sig/DocTimeStamp
Type *_fd .PdfObjectName ;Filter *_fd .PdfObjectName ;SubFilter *_fd .PdfObjectName ;Contents *_fd .PdfObjectString ;Cert _fd .PdfObject ;ByteRange *_fd .PdfObjectArray ;Reference *_fd .PdfObjectArray ;Changes *_fd .PdfObjectArray ;Name *_fd .PdfObjectString ;M *_fd .PdfObjectString ;Location *_fd .PdfObjectString ;Reason *_fd .PdfObjectString ;ContactInfo *_fd .PdfObjectString ;R *_fd .PdfObjectInteger ;V *_fd .PdfObjectInteger ;PropBuild *_fd .PdfObjectDictionary ;PropAuthTime *_fd .PdfObjectInteger ;PropAuthType *_fd .PdfObjectName ;};
// SetXObjectFormByName adds the provided XObjectForm to the page resources.
// The added XObjectForm is identified by the specified name.
func (_dffg *PdfPageResources )SetXObjectFormByName (keyName _fd .PdfObjectName ,xform *XObjectForm )error {_adbgf :=xform .ToPdfObject ().(*_fd .PdfObjectStream );_bbba :=_dffg .SetXObjectByName (keyName ,_adbgf );return _bbba ;};func (_bgfed *PdfReader )loadStructure ()error {if _bgfed ._egbge .GetCrypter ()!=nil &&!_bgfed ._egbge .IsAuthenticated (){return _d .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");};_cfaab :=_bgfed ._egbge .GetTrailer ();if _cfaab ==nil {return _d .Errorf ("\u006di\u0073s\u0069\u006e\u0067\u0020\u0074\u0072\u0061\u0069\u006c\u0065\u0072");};_bggee ,_dcdff :=_cfaab .Get ("\u0052\u006f\u006f\u0074").(*_fd .PdfObjectReference );if !_dcdff {return _d .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",_cfaab );};_ccbcd ,_cgefb :=_bgfed ._egbge .LookupByReference (*_bggee );if _cgefb !=nil {_fca .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",_cgefb );return _cgefb ;};_fcfd ,_dcdff :=_ccbcd .(*_fd .PdfIndirectObject );if !_dcdff {_fca .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",_ccbcd ,*_cfaab );return _fce .New ("\u006di\u0073s\u0069\u006e\u0067\u0020\u0063\u0061\u0074\u0061\u006c\u006f\u0067");};_cfcf ,_dcdff :=(*_fcfd ).PdfObject .(*_fd .PdfObjectDictionary );if !_dcdff {_fca .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",_fcfd .PdfObject );return _fce .New ("\u0069n\u0076a\u006c\u0069\u0064\u0020\u0063\u0061\u0074\u0061\u006c\u006f\u0067");};_fca .Log .Trace ("C\u0061\u0074\u0061\u006c\u006f\u0067\u003a\u0020\u0025\u0073",_cfcf );_ffdgfd ,_dcdff :=_cfcf .Get ("\u0050\u0061\u0067e\u0073").(*_fd .PdfObjectReference );if !_dcdff {return _fce .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");};_ddff ,_cgefb :=_bgfed ._egbge .LookupByReference (*_ffdgfd );if _cgefb !=nil {_fca .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 _cgefb ;};_gecab ,_dcdff :=_ddff .(*_fd .PdfIndirectObject );if !_dcdff {_fca .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");_fca .Log .Debug ("\u006f\u0070\u003a\u0020\u0025\u0070",_gecab );return _fce .New ("p\u0061g\u0065\u0073\u0020\u006f\u0062\u006a\u0065\u0063t\u0020\u0069\u006e\u0076al\u0069\u0064");};_bdea ,_dcdff :=_gecab .PdfObject .(*_fd .PdfObjectDictionary );if !_dcdff {_fca .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",_gecab );return _fce .New ("p\u0061g\u0065\u0073\u0020\u006f\u0062\u006a\u0065\u0063t\u0020\u0069\u006e\u0076al\u0069\u0064");};_fgceb ,_dcdff :=_fd .GetInt (_bdea .Get ("\u0043\u006f\u0075n\u0074"));if !_dcdff {_fca .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 _fce .New ("\u0070\u0061\u0067\u0065s \u0063\u006f\u0075\u006e\u0074\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064");};if _ ,_dcdff =_fd .GetName (_bdea .Get ("\u0054\u0079\u0070\u0065"));!_dcdff {_fca .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");_bdea .Set ("\u0054\u0079\u0070\u0065",_fd .MakeName ("\u0050\u0061\u0067e\u0073"));};_bgfed ._edfdb =_bggee ;_bgfed ._bfcbd =_cfcf ;_bgfed ._abfb =_bdea ;_bgfed ._geda =_gecab ;_bgfed ._bbdb =int (*_fgceb );_bgfed ._faca =[]*_fd .PdfIndirectObject {};_cecgf :=map[_fd .PdfObject ]struct{}{};_cgefb =_bgfed .buildPageList (_gecab ,nil ,_cecgf );if _cgefb !=nil {return _cgefb ;};_fca .Log .Trace ("\u002d\u002d\u002d");_fca .Log .Trace ("\u0054\u004f\u0043");_fca .Log .Trace ("\u0050\u0061\u0067e\u0073");_fca .Log .Trace ("\u0025\u0064\u003a\u0020\u0025\u0073",len (_bgfed ._faca ),_bgfed ._faca );_bgfed ._fbdb ,_cgefb =_bgfed .loadOutlines ();if _cgefb !=nil {_fca .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",_cgefb );return _cgefb ;};_bgfed .AcroForm ,_cgefb =_bgfed .loadForms ();if _cgefb !=nil {return _cgefb ;};return nil ;};func (_cafc *PdfReader )newPdfAnnotationPolygonFromDict (_gfegd *_fd .PdfObjectDictionary )(*PdfAnnotationPolygon ,error ){_fdc :=PdfAnnotationPolygon {};_fbfee ,_gacb :=_cafc .newPdfAnnotationMarkupFromDict (_gfegd );if _gacb !=nil {return nil ,_gacb ;};_fdc .PdfAnnotationMarkup =_fbfee ;_fdc .Vertices =_gfegd .Get ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073");_fdc .LE =_gfegd .Get ("\u004c\u0045");_fdc .BS =_gfegd .Get ("\u0042\u0053");_fdc .IC =_gfegd .Get ("\u0049\u0043");_fdc .BE =_gfegd .Get ("\u0042\u0045");_fdc .IT =_gfegd .Get ("\u0049\u0054");_fdc .Measure =_gfegd .Get ("\u004de\u0061\u0073\u0075\u0072\u0065");return &_fdc ,nil ;};
// IsColored specifies if the pattern is colored.
func (_eggcf *PdfTilingPattern )IsColored ()bool {if _eggcf .PaintType !=nil &&*_eggcf .PaintType ==1{return true ;};return false ;};func (_edaac *PdfWriter )addObject (_fbcce _fd .PdfObject )bool {_befgea :=_edaac .hasObject (_fbcce );if !_befgea {_efdf :=_fd .ResolveReferencesDeep (_fbcce ,_edaac ._dedba );if _efdf !=nil {_fca .Log .Debug ("E\u0052R\u004f\u0052\u003a\u0020\u0025\u0076\u0020\u002d \u0073\u006b\u0069\u0070pi\u006e\u0067",_efdf );};_edaac ._edeb =append (_edaac ._edeb ,_fbcce );_edaac ._fgdfc [_fbcce ]=struct{}{};return true ;};return false ;};
// NewPdfActionURI returns a new "Uri" action.
func NewPdfActionURI ()*PdfActionURI {_de :=NewPdfAction ();_ed :=&PdfActionURI {};_ed .PdfAction =_de ;_de .SetContext (_ed );return _ed ;};
// MergePageWith appends page content to source Pdf file page content.
func (_cffa *PdfAppender )MergePageWith (pageNum int ,page *PdfPage )error {_daad :=pageNum -1;var _gbf *PdfPage ;for _bgf ,_ggf :=range _cffa ._eafg {if _bgf ==_daad {_gbf =_ggf ;};};if _gbf ==nil {return _d .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 _gbf ._debfd !=nil &&_gbf ._debfd .GetParser ()==_cffa ._bfb ._egbge {_gbf =_gbf .Duplicate ();_cffa ._eafg [_daad ]=_gbf ;};page =page .Duplicate ();_cfadfb (page );_fcfe :=_affa (_gbf );_gbdb :=_affa (page );_gddgb :=make (map[_fd .PdfObjectName ]_fd .PdfObjectName );for _cfce :=range _gbdb {if _ ,_ebcdc :=_fcfe [_cfce ];_ebcdc {for _dbde :=1;true ;_dbde ++{_cbab :=_fd .PdfObjectName (string (_cfce )+_ca .Itoa (_dbde ));if _ ,_dfbga :=_fcfe [_cbab ];!_dfbga {_gddgb [_cfce ]=_cbab ;break ;};};};};_egac ,_gbed :=page .GetContentStreams ();if _gbed !=nil {return _gbed ;};_gbbg ,_gbed :=_gbf .GetContentStreams ();if _gbed !=nil {return _gbed ;};for _fafgd ,_feffc :=range _egac {for _faab ,_caeg :=range _gddgb {_feffc =_gc .Replace (_feffc ,"\u002f"+string (_faab ),"\u002f"+string (_caeg ),-1);};_egac [_fafgd ]=_feffc ;};_gbbg =append (_gbbg ,_egac ...);if _fge :=_gbf .SetContentStreams (_gbbg ,_fd .NewFlateEncoder ());_fge !=nil {return _fge ;};for _ ,_cfaad :=range page ._bfedf {_gbf ._bfedf =append (_gbf ._bfedf ,_cfaad );};if _gbf .Resources ==nil {_gbf .Resources =NewPdfPageResources ();};if page .Resources !=nil {_gbf .Resources .Font =_cffa .mergeResources (_gbf .Resources .Font ,page .Resources .Font ,_gddgb );_gbf .Resources .XObject =_cffa .mergeResources (_gbf .Resources .XObject ,page .Resources .XObject ,_gddgb );_gbf .Resources .Properties =_cffa .mergeResources (_gbf .Resources .Properties ,page .Resources .Properties ,_gddgb );if _gbf .Resources .ProcSet ==nil {_gbf .Resources .ProcSet =page .Resources .ProcSet ;};_gbf .Resources .Shading =_cffa .mergeResources (_gbf .Resources .Shading ,page .Resources .Shading ,_gddgb );_gbf .Resources .ExtGState =_cffa .mergeResources (_gbf .Resources .ExtGState ,page .Resources .ExtGState ,_gddgb );};_cafe ,_gbed :=_gbf .GetMediaBox ();if _gbed !=nil {return _gbed ;};_gad ,_gbed :=page .GetMediaBox ();if _gbed !=nil {return _gbed ;};var _eabe bool ;if _cafe .Llx > _gad .Llx {_cafe .Llx =_gad .Llx ;_eabe =true ;};if _cafe .Lly > _gad .Lly {_cafe .Lly =_gad .Lly ;_eabe =true ;};if _cafe .Urx < _gad .Urx {_cafe .Urx =_gad .Urx ;_eabe =true ;};if _cafe .Ury < _gad .Ury {_cafe .Ury =_gad .Ury ;_eabe =true ;};if _eabe {_gbf .MediaBox =_cafe ;};return nil ;};
// NewXObjectImageFromImage creates a new XObject Image from an image object
// with default options. If encoder is nil, uses raw encoding (none).
func NewXObjectImageFromImage (img *Image ,cs PdfColorspace ,encoder _fd .StreamEncoder )(*XObjectImage ,error ){_bggaf :=NewXObjectImage ();return UpdateXObjectImageFromImage (_bggaf ,img ,cs ,encoder );};
// 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 (_eabdf *PdfFont )StringToCharcodeBytes (str string )([]byte ,int ){return _eabdf .RunesToCharcodeBytes ([]rune (str ));};func (_bcad *PdfReader )newPdfAnnotationStrikeOut (_dagc *_fd .PdfObjectDictionary )(*PdfAnnotationStrikeOut ,error ){_cebd :=PdfAnnotationStrikeOut {};_caea ,_ddab :=_bcad .newPdfAnnotationMarkupFromDict (_dagc );if _ddab !=nil {return nil ,_ddab ;};_cebd .PdfAnnotationMarkup =_caea ;_cebd .QuadPoints =_dagc .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");return &_cebd ,nil ;};func _eafeb (_fdcad _fd .PdfObject )(*PdfFunctionType3 ,error ){_fadfg :=&PdfFunctionType3 {};var _edfe *_fd .PdfObjectDictionary ;if _bbaga ,_adbfg :=_fdcad .(*_fd .PdfIndirectObject );_adbfg {_acebd ,_acfbd :=_bbaga .PdfObject .(*_fd .PdfObjectDictionary );if !_acfbd {return nil ,_fce .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_fadfg ._adbb =_bbaga ;_edfe =_acebd ;}else if _acbcb ,_gfef :=_fdcad .(*_fd .PdfObjectDictionary );_gfef {_edfe =_acbcb ;}else {return nil ,_fce .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_gdbd ,_fdbcf :=_fd .TraceToDirectObject (_edfe .Get ("\u0044\u006f\u006d\u0061\u0069\u006e")).(*_fd .PdfObjectArray );if !_fdbcf {_fca .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_fce .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 _gdbd .Len ()!=2{_fca .Log .Error ("\u0044\u006f\u006d\u0061\u0069\u006e\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");return nil ,_fce .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0064\u006f\u006da\u0069\u006e\u0020\u0072an\u0067\u0065");};_gbgab ,_gcedg :=_gdbd .ToFloat64Array ();if _gcedg !=nil {return nil ,_gcedg ;};_fadfg .Domain =_gbgab ;_gdbd ,_fdbcf =_fd .TraceToDirectObject (_edfe .Get ("\u0052\u0061\u006eg\u0065")).(*_fd .PdfObjectArray );if _fdbcf {if _gdbd .Len ()< 0||_gdbd .Len ()%2!=0{return nil ,_fce .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0061\u006e\u0067\u0065");};_eacce ,_afge :=_gdbd .ToFloat64Array ();if _afge !=nil {return nil ,_afge ;};_fadfg .Range =_eacce ;};_gdbd ,_fdbcf =_fd .TraceToDirectObject (_edfe .Get ("\u0046u\u006e\u0063\u0074\u0069\u006f\u006es")).(*_fd .PdfObjectArray );if !_fdbcf {_fca .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 ,_fce .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");};_fadfg .Functions =[]PdfFunction {};for _ ,_cfed :=range _gdbd .Elements (){_cbcf ,_bcegc :=_fagc (_cfed );if _bcegc !=nil {return nil ,_bcegc ;};_fadfg .Functions =append (_fadfg .Functions ,_cbcf );};_gdbd ,_fdbcf =_fd .TraceToDirectObject (_edfe .Get ("\u0042\u006f\u0075\u006e\u0064\u0073")).(*_fd .PdfObjectArray );if !_fdbcf {_fca .Log .Error ("B\u006fu\u006e\u0064\u0073\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_fce .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");};_bbfdc ,_gcedg :=_gdbd .ToFloat64Array ();if _gcedg !=nil {return nil ,_gcedg ;};_fadfg .Bounds =_bbfdc ;if len (_fadfg .Bounds )!=len (_fadfg .Functions )-1{_fca .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 (_fadfg .Bounds ),len (_fadfg .Functions ));return nil ,_fce .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_gdbd ,_fdbcf =_fd .TraceToDirectObject (_edfe .Get ("\u0045\u006e\u0063\u006f\u0064\u0065")).(*_fd .PdfObjectArray );if !_fdbcf {_fca .Log .Error ("E\u006ec\u006f\u0064\u0065\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_fce .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");};_dcac ,_gcedg :=_gdbd .ToFloat64Array ();if _gcedg !=nil {return nil ,_gcedg ;};_fadfg .Encode =_dcac ;if len (_fadfg .Encode )!=2*len (_fadfg .Functions ){_fca .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 (_fadfg .Encode ),len (_fadfg .Functions ));return nil ,_fce .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};return _fadfg ,nil ;};func (_agdaa Image )getBase ()_gd .ImageBase {return _gd .NewImageBase (int (_agdaa .Width ),int (_agdaa .Height ),int (_agdaa .BitsPerComponent ),_agdaa .ColorComponents ,_agdaa .Data ,_agdaa ._cded ,_agdaa ._dfec );};
// Register registers (caches) a model to primitive object relationship.
func (_efgga *modelManager )Register (primitive _fd .PdfObject ,model PdfModel ){_efgga ._ecca [model ]=primitive ;_efgga ._gfbaa [primitive ]=model ;};func (_eec *PdfReader )newPdfActionRenditionFromDict (_dff *_fd .PdfObjectDictionary )(*PdfActionRendition ,error ){return &PdfActionRendition {R :_dff .Get ("\u0052"),AN :_dff .Get ("\u0041\u004e"),OP :_dff .Get ("\u004f\u0050"),JS :_dff .Get ("\u004a\u0053")},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 ,_gf .SimpleEncoder ,error ){_dcfe ,_aebec :=_gaag (basefont );if _aebec !=nil {return nil ,nil ,_aebec ;};_ebfed ,_gaebc :=_dcfe .Encoder ().(_gf .SimpleEncoder );if !_gaebc {return nil ,nil ,_d .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",_dcfe .Encoder ());};_bfebf :=make (map[rune ]_gf .GlyphName );for _cfefa :=range alphabet {if _ ,_bgde :=_ebfed .RuneToCharcode (_cfefa );!_bgde {_ ,_gabg :=_dcfe ._gdeba [_cfefa ];if !_gabg {_fca .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",_cfefa ,_cfefa );continue ;};_fgbcd ,_gabg :=_gf .RuneToGlyph (_cfefa );if !_gabg {_fca .Log .Debug ("\u006eo\u0020\u0067\u006c\u0079\u0070\u0068\u0020\u0066\u006f\u0072\u0020r\u0075\u006e\u0065\u0020\u0025\u0023\u0078\u003d\u0025\u0071",_cfefa ,_cfefa );continue ;};if len (_bfebf )>=255{return nil ,nil ,_fce .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");};_bfebf [_cfefa ]=_fgbcd ;};};var (_abfca []_gf .CharCode ;_agab []_gf .CharCode ;);for _eaefd :=_gf .CharCode (1);_eaefd <=0xff;_eaefd ++{_gbfd ,_gbbba :=_ebfed .CharcodeToRune (_eaefd );if !_gbbba {_abfca =append (_abfca ,_eaefd );continue ;};if _ ,_gbbba =alphabet [_gbfd ];!_gbbba {_agab =append (_agab ,_eaefd );};};_fdaag :=append (_abfca ,_agab ...);if len (_fdaag )< len (_bfebf ){return nil ,nil ,_d .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 (_bfebf ),len (_fdaag ));};_bfba :=make ([]rune ,0,len (_bfebf ));for _eacbf :=range _bfebf {_bfba =append (_bfba ,_eacbf );};_fb .Slice (_bfba ,func (_bdee ,_eccfb int )bool {return _bfba [_bdee ]< _bfba [_eccfb ]});_defeg :=make (map[_gf .CharCode ]_gf .GlyphName ,len (_bfba ));for _ ,_eaeeb :=range _bfba {_aabbf :=_fdaag [0];_fdaag =_fdaag [1:];_defeg [_aabbf ]=_bfebf [_eaeeb ];};_ebfed =_gf .ApplyDifferences (_ebfed ,_defeg );_dcfe .SetEncoder (_ebfed );return &PdfFont {_bbaa :&_dcfe },_ebfed ,nil ;};
// DecodeArray returns the range of color component values in DeviceGray colorspace.
func (_edde *PdfColorspaceDeviceGray )DecodeArray ()[]float64 {return []float64 {0,1.0}};
// PdfShadingType2 is an Axial shading.
type PdfShadingType2 struct{*PdfShading ;Coords *_fd .PdfObjectArray ;Domain *_fd .PdfObjectArray ;Function []PdfFunction ;Extend *_fd .PdfObjectArray ;};
// ColorToRGB converts a DeviceN color to an RGB color.
func (_bfbee *PdfColorspaceDeviceN )ColorToRGB (color PdfColor )(PdfColor ,error ){if _bfbee .AlternateSpace ==nil {return nil ,_fce .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 _bfbee .AlternateSpace .ColorToRGB (color );};
// B returns the value of the B component of the color.
func (_cdcg *PdfColorLab )B ()float64 {return float64 (_cdcg [2])};
// PdfAnnotationWidget represents Widget annotations.
// Note: Widget annotations are used to display form fields.
// (Section 12.5.6.19).
type PdfAnnotationWidget struct{*PdfAnnotation ;H _fd .PdfObject ;MK _fd .PdfObject ;A _fd .PdfObject ;AA _fd .PdfObject ;BS _fd .PdfObject ;Parent _fd .PdfObject ;_eaeb *PdfField ;_bcc bool ;};
// ToPdfObject returns the PDF representation of the shading dictionary.
func (_ggdfg *PdfShadingType4 )ToPdfObject ()_fd .PdfObject {_ggdfg .PdfShading .ToPdfObject ();_faafbc ,_dafa :=_ggdfg .getShadingDict ();if _dafa !=nil {_fca .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 _ggdfg .BitsPerCoordinate !=nil {_faafbc .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065",_ggdfg .BitsPerCoordinate );};if _ggdfg .BitsPerComponent !=nil {_faafbc .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_ggdfg .BitsPerComponent );};if _ggdfg .BitsPerFlag !=nil {_faafbc .Set ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067",_ggdfg .BitsPerFlag );};if _ggdfg .Decode !=nil {_faafbc .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_ggdfg .Decode );};if _ggdfg .Function !=nil {if len (_ggdfg .Function )==1{_faafbc .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_ggdfg .Function [0].ToPdfObject ());}else {_fbegc :=_fd .MakeArray ();for _ ,_cffed :=range _ggdfg .Function {_fbegc .Append (_cffed .ToPdfObject ());};_faafbc .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_fbegc );};};return _ggdfg ._bcgcg ;};
// GetNumComponents returns the number of color components (1 for CalGray).
func (_gce *PdfColorCalGray )GetNumComponents ()int {return 1};func _gccce ()string {return _ggeee };func _agdfe (_afbc _fd .PdfObject )(string ,error ){_afbc =_fd .TraceToDirectObject (_afbc );switch _fdcf :=_afbc .(type ){case *_fd .PdfObjectString :return _fdcf .Str (),nil ;case *_fd .PdfObjectStream :_dbfa ,_efggd :=_fd .DecodeStream (_fdcf );if _efggd !=nil {return "",_efggd ;};return string (_dbfa ),nil ;};return "",_d .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",_afbc );};
// NewPdfActionNamed returns a new "named" action.
func NewPdfActionNamed ()*PdfActionNamed {_ffd :=NewPdfAction ();_cc :=&PdfActionNamed {};_cc .PdfAction =_ffd ;_ffd .SetContext (_cc );return _cc ;};
// PdfAnnotationStrikeOut represents StrikeOut annotations.
// (Section 12.5.6.10).
type PdfAnnotationStrikeOut struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _fd .PdfObject ;};
// ToPdfObject implements interface PdfModel.
func (_ac *PdfActionSound )ToPdfObject ()_fd .PdfObject {_ac .PdfAction .ToPdfObject ();_ga :=_ac ._fgb ;_ddce :=_ga .PdfObject .(*_fd .PdfObjectDictionary );_ddce .SetIfNotNil ("\u0053",_fd .MakeName (string (ActionTypeSound )));_ddce .SetIfNotNil ("\u0053\u006f\u0075n\u0064",_ac .Sound );_ddce .SetIfNotNil ("\u0056\u006f\u006c\u0075\u006d\u0065",_ac .Volume );_ddce .SetIfNotNil ("S\u0079\u006e\u0063\u0068\u0072\u006f\u006e\u006f\u0075\u0073",_ac .Synchronous );_ddce .SetIfNotNil ("\u0052\u0065\u0070\u0065\u0061\u0074",_ac .Repeat );_ddce .SetIfNotNil ("\u004d\u0069\u0078",_ac .Mix );return _ga ;};
// SetContext set the sub annotation (context).
func (_ageb *PdfShading )SetContext (ctx PdfModel ){_ageb ._ebbcbe =ctx };
// Add appends an outline item as a child of the current outline item.
func (_ddfbfg *OutlineItem )Add (item *OutlineItem ){_ddfbfg .Entries =append (_ddfbfg .Entries ,item )};func _begbg (_ededc *_fd .PdfObjectDictionary )(*PdfFieldText ,error ){_cbaeg :=&PdfFieldText {};_cbaeg .DA ,_ =_fd .GetString (_ededc .Get ("\u0044\u0041"));_cbaeg .Q ,_ =_fd .GetInt (_ededc .Get ("\u0051"));_cbaeg .DS ,_ =_fd .GetString (_ededc .Get ("\u0044\u0053"));_cbaeg .RV =_ededc .Get ("\u0052\u0056");_cbaeg .MaxLen ,_ =_fd .GetInt (_ededc .Get ("\u004d\u0061\u0078\u004c\u0065\u006e"));return _cbaeg ,nil ;};
// PdfActionType represents an action type in PDF (section 12.6.4 p. 417).
type PdfActionType string ;
// ToPdfObject returns a stream object.
func (_begaf *XObjectForm )ToPdfObject ()_fd .PdfObject {_ebde :=_begaf ._acdg ;_fgcfc :=_ebde .PdfObjectDictionary ;if _begaf .Filter !=nil {_fgcfc =_begaf .Filter .MakeStreamDict ();_ebde .PdfObjectDictionary =_fgcfc ;};_fgcfc .Set ("\u0054\u0079\u0070\u0065",_fd .MakeName ("\u0058O\u0062\u006a\u0065\u0063\u0074"));_fgcfc .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fd .MakeName ("\u0046\u006f\u0072\u006d"));_fgcfc .SetIfNotNil ("\u0046\u006f\u0072\u006d\u0054\u0079\u0070\u0065",_begaf .FormType );_fgcfc .SetIfNotNil ("\u0042\u0042\u006f\u0078",_begaf .BBox );_fgcfc .SetIfNotNil ("\u004d\u0061\u0074\u0072\u0069\u0078",_begaf .Matrix );if _begaf .Resources !=nil {_fgcfc .SetIfNotNil ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s",_begaf .Resources .ToPdfObject ());};_fgcfc .SetIfNotNil ("\u0047\u0072\u006fu\u0070",_begaf .Group );_fgcfc .SetIfNotNil ("\u0052\u0065\u0066",_begaf .Ref );_fgcfc .SetIfNotNil ("\u004d\u0065\u0074\u0061\u0044\u0061\u0074\u0061",_begaf .MetaData );_fgcfc .SetIfNotNil ("\u0050i\u0065\u0063\u0065\u0049\u006e\u0066o",_begaf .PieceInfo );_fgcfc .SetIfNotNil ("\u004c\u0061\u0073t\u004d\u006f\u0064\u0069\u0066\u0069\u0065\u0064",_begaf .LastModified );_fgcfc .SetIfNotNil ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074",_begaf .StructParent );_fgcfc .SetIfNotNil ("\u0053\u0074\u0072\u0075\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074\u0073",_begaf .StructParents );_fgcfc .SetIfNotNil ("\u004f\u0050\u0049",_begaf .OPI );_fgcfc .SetIfNotNil ("\u004f\u0043",_begaf .OC );_fgcfc .SetIfNotNil ("\u004e\u0061\u006d\u0065",_begaf .Name );_fgcfc .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_fd .MakeInteger (int64 (len (_begaf .Stream ))));_ebde .Stream =_begaf .Stream ;return _ebde ;};
// ToPdfObject implements interface PdfModel.
func (_ebce *PdfActionHide )ToPdfObject ()_fd .PdfObject {_ebce .PdfAction .ToPdfObject ();_aadf :=_ebce ._fgb ;_deb :=_aadf .PdfObject .(*_fd .PdfObjectDictionary );_deb .SetIfNotNil ("\u0053",_fd .MakeName (string (ActionTypeHide )));_deb .SetIfNotNil ("\u0054",_ebce .T );_deb .SetIfNotNil ("\u0048",_ebce .H );return _aadf ;};
// PdfAnnotationUnderline represents Underline annotations.
// (Section 12.5.6.10).
type PdfAnnotationUnderline struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _fd .PdfObject ;};func (_gbgcb *PdfWriter )seekByName (_adfcg _fd .PdfObject ,_ggba []string ,_ecaab string )([]_fd .PdfObject ,error ){_fca .Log .Trace ("\u0053\u0065\u0065\u006b\u0020\u0062\u0079\u0020\u006e\u0061\u006d\u0065.\u002e\u0020\u0025\u0054",_adfcg );var _geaage []_fd .PdfObject ;if _edgcd ,_gaefg :=_adfcg .(*_fd .PdfIndirectObject );_gaefg {return _gbgcb .seekByName (_edgcd .PdfObject ,_ggba ,_ecaab );};if _afacd ,_dcedd :=_adfcg .(*_fd .PdfObjectStream );_dcedd {return _gbgcb .seekByName (_afacd .PdfObjectDictionary ,_ggba ,_ecaab );};if _dbbec ,_cagag :=_adfcg .(*_fd .PdfObjectDictionary );_cagag {_fca .Log .Trace ("\u0044\u0069\u0063\u0074");for _ ,_bcedc :=range _dbbec .Keys (){_cece :=_dbbec .Get (_bcedc );if string (_bcedc )==_ecaab {_geaage =append (_geaage ,_cece );};for _ ,_gcbgf :=range _ggba {if string (_bcedc )==_gcbgf {_fca .Log .Trace ("\u0046\u006f\u006c\u006c\u006f\u0077\u0020\u006b\u0065\u0079\u0020\u0025\u0073",_gcbgf );_cfbde ,_cgefg :=_gbgcb .seekByName (_cece ,_ggba ,_ecaab );if _cgefg !=nil {return _geaage ,_cgefg ;};for _ ,_begbf :=range _cfbde {_geaage =append (_geaage ,_begbf );};break ;};};};return _geaage ,nil ;};return _geaage ,nil ;};
// NewPdfAnnotationLine returns a new line annotation.
func NewPdfAnnotationLine ()*PdfAnnotationLine {_agbf :=NewPdfAnnotation ();_acg :=&PdfAnnotationLine {};_acg .PdfAnnotation =_agbf ;_acg .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_agbf .SetContext (_acg );return _acg ;};
// 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 (_bceea *PdfFont )CharcodesToStrings (charcodes []_gf .CharCode )([]string ,int ,int ){_fbdg :=_bceea .baseFields ();_aedd :=make ([]string ,0,len (charcodes ));_fddc :=0;for _ ,_gfgbcc :=range charcodes {if _fbdg ._facge !=nil {if _caff ,_gcbb :=_fbdg ._facge .CharcodeToUnicode (_agg .CharCode (_gfgbcc ));_gcbb {_aedd =append (_aedd ,_caff );continue ;};};_egc :=_bceea .Encoder ();if _egc !=nil {if _acbbg ,_ecgc :=_egc .CharcodeToRune (_gfgbcc );_ecgc {_aedd =append (_aedd ,string (_acbbg ));continue ;};};_fca .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",_gfgbcc ,charcodes ,_fbdg .isCIDFont (),_bceea ,_egc );_fddc ++;_aedd =append (_aedd ,_agg .MissingCodeString );};if _fddc !=0{_fca .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 ),_fddc ,_bceea );};return _aedd ,len (_aedd ),_fddc ;};func (_ceb *PdfReader )newPdfActionMovieFromDict (_fbb *_fd .PdfObjectDictionary )(*PdfActionMovie ,error ){return &PdfActionMovie {Annotation :_fbb .Get ("\u0041\u006e\u006e\u006f\u0074\u0061\u0074\u0069\u006f\u006e"),T :_fbb .Get ("\u0054"),Operation :_fbb .Get ("\u004fp\u0065\u0072\u0061\u0074\u0069\u006fn")},nil ;};
// ColorFromFloats returns a new PdfColor based on the input slice of color
// components.
func (_fgac *PdfColorspaceICCBased )ColorFromFloats (vals []float64 )(PdfColor ,error ){if _fgac .Alternate ==nil {if _fgac .N ==1{_dcgf :=NewPdfColorspaceDeviceGray ();return _dcgf .ColorFromFloats (vals );}else if _fgac .N ==3{_aacg :=NewPdfColorspaceDeviceRGB ();return _aacg .ColorFromFloats (vals );}else if _fgac .N ==4{_bdeg :=NewPdfColorspaceDeviceCMYK ();return _bdeg .ColorFromFloats (vals );}else {return nil ,_fce .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 _fgac .Alternate .ColorFromFloats (vals );};
// GetCharMetrics returns the char metrics for character code `code`.
func (_caaa pdfFontType0 )GetCharMetrics (code _gf .CharCode )(_aaf .CharMetrics ,bool ){if _caaa .DescendantFont ==nil {_fca .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",_caaa );return _aaf .CharMetrics {},false ;};return _caaa .DescendantFont .GetCharMetrics (code );};
// DecodeArray returns the range of color component values in CalGray colorspace.
func (_cbde *PdfColorspaceCalGray )DecodeArray ()[]float64 {return []float64 {0.0,1.0}};
// PdfAnnotation represents an annotation in PDF (section 12.5 p. 389).
type PdfAnnotation struct{_ccd PdfModel ;Rect _fd .PdfObject ;Contents _fd .PdfObject ;P _fd .PdfObject ;NM _fd .PdfObject ;M _fd .PdfObject ;F _fd .PdfObject ;AP _fd .PdfObject ;AS _fd .PdfObject ;Border _fd .PdfObject ;C _fd .PdfObject ;StructParent _fd .PdfObject ;OC _fd .PdfObject ;_defg *_fd .PdfIndirectObject ;};
// Flags returns the field flags for the field accounting for any inherited flags.
func (_caga *PdfField )Flags ()FieldFlag {var _bbeed FieldFlag ;_gged ,_aeggc :=_caga .inherit (func (_cggf *PdfField )bool {if _cggf .Ff !=nil {_bbeed =FieldFlag (*_caga .Ff );return true ;};return false ;});if _aeggc !=nil {_fca .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",_aeggc );};if !_gged {_fca .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 _bbeed ;};
// 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 ;
// NewPdfPageResources returns a new PdfPageResources object.
func NewPdfPageResources ()*PdfPageResources {_afcc :=&PdfPageResources {};_afcc ._adae =_fd .MakeDict ();return _afcc ;};func (_cdcea *PdfReader )lookupPageByObject (_ecdbe _fd .PdfObject )(*PdfPage ,error ){return nil ,_fce .New ("\u0070\u0061\u0067\u0065\u0020\u006e\u006f\u0074\u0020f\u006f\u0075\u006e\u0064");};
// Encrypt encrypts the output file with a specified user/owner password.
func (_eaggbb *PdfWriter )Encrypt (userPass ,ownerPass []byte ,options *EncryptOptions )error {_bebcc :=RC4_128bit ;if options !=nil {_bebcc =options .Algorithm ;};_fccfa :=_ce .PermOwner ;if options !=nil {_fccfa =options .Permissions ;};var _ecagg _af .Filter ;switch _bebcc {case RC4_128bit :_ecagg =_af .NewFilterV2 (16);case AES_128bit :_ecagg =_af .NewFilterAESV2 ();case AES_256bit :_ecagg =_af .NewFilterAESV3 ();default:return _d .Errorf ("\u0075n\u0073\u0075\u0070\u0070o\u0072\u0074\u0065\u0064\u0020a\u006cg\u006fr\u0069\u0074\u0068\u006d\u003a\u0020\u0025v",options .Algorithm );};_bfbcb ,_aeagc ,_cdage :=_fd .PdfCryptNewEncrypt (_ecagg ,userPass ,ownerPass ,_fccfa );if _cdage !=nil {return _cdage ;};_eaggbb ._cdba =_bfbcb ;if _aeagc .Major !=0{_eaggbb .SetVersion (_aeagc .Major ,_aeagc .Minor );};_eaggbb ._fabfg =_aeagc .Encrypt ;_eaggbb ._dbcae =_fd .MakeArray (_fd .MakeHexString (_aeagc .ID0 ),_fd .MakeHexString (_aeagc .ID1 ));_fbcgf :=_fd .MakeIndirectObject (_aeagc .Encrypt );_eaggbb ._bgfdd =_fbcgf ;_eaggbb .addObject (_fbcgf );return nil ;};
// RunesToCharcodeBytes maps the provided runes to charcode bytes and it
// returns the resulting slice of bytes, along with the number of runes which
// could not be converted. If the number of misses is 0, all runes were
// successfully converted.
func (_dcfd *PdfFont )RunesToCharcodeBytes (data []rune )([]byte ,int ){var _badge []_gf .TextEncoder ;if _gdebb :=_dcfd .baseFields ()._facge ;_gdebb !=nil {_badge =append (_badge ,_gf .NewCMapEncoder ("",nil ,_gdebb ));};if _ceee :=_dcfd .Encoder ();_ceee !=nil {_badge =append (_badge ,_ceee );};var _dfdbe _bg .Buffer ;var _defb int ;for _ ,_dabf :=range data {var _dddc bool ;for _ ,_cbbgc :=range _badge {if _gcgb :=_cbbgc .Encode (string (_dabf ));len (_gcgb )> 0{_dfdbe .Write (_gcgb );_dddc =true ;break ;};};if !_dddc {_fca .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",_dabf );_defb ++;};};if _defb !=0{_fca .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 ),_defb ,_dcfd ,_badge );};return _dfdbe .Bytes (),_defb ;};
// ToPdfObject returns the PDF representation of the shading dictionary.
func (_ecfe *PdfShadingType6 )ToPdfObject ()_fd .PdfObject {_ecfe .PdfShading .ToPdfObject ();_fcgeb ,_abfbe :=_ecfe .getShadingDict ();if _abfbe !=nil {_fca .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 _ecfe .BitsPerCoordinate !=nil {_fcgeb .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065",_ecfe .BitsPerCoordinate );};if _ecfe .BitsPerComponent !=nil {_fcgeb .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_ecfe .BitsPerComponent );};if _ecfe .BitsPerFlag !=nil {_fcgeb .Set ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067",_ecfe .BitsPerFlag );};if _ecfe .Decode !=nil {_fcgeb .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_ecfe .Decode );};if _ecfe .Function !=nil {if len (_ecfe .Function )==1{_fcgeb .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_ecfe .Function [0].ToPdfObject ());}else {_dcaa :=_fd .MakeArray ();for _ ,_fbedc :=range _ecfe .Function {_dcaa .Append (_fbedc .ToPdfObject ());};_fcgeb .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_dcaa );};};return _ecfe ._bcgcg ;};
// ToPdfObject returns the PDF representation of the shading dictionary.
func (_gdeab *PdfShadingType5 )ToPdfObject ()_fd .PdfObject {_gdeab .PdfShading .ToPdfObject ();_ddbba ,_bfcgg :=_gdeab .getShadingDict ();if _bfcgg !=nil {_fca .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 _gdeab .BitsPerCoordinate !=nil {_ddbba .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065",_gdeab .BitsPerCoordinate );};if _gdeab .BitsPerComponent !=nil {_ddbba .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_gdeab .BitsPerComponent );};if _gdeab .VerticesPerRow !=nil {_ddbba .Set ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073\u0050e\u0072\u0052\u006f\u0077",_gdeab .VerticesPerRow );};if _gdeab .Decode !=nil {_ddbba .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_gdeab .Decode );};if _gdeab .Function !=nil {if len (_gdeab .Function )==1{_ddbba .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_gdeab .Function [0].ToPdfObject ());}else {_dabga :=_fd .MakeArray ();for _ ,_efca :=range _gdeab .Function {_dabga .Append (_efca .ToPdfObject ());};_ddbba .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_dabga );};};return _gdeab ._bcgcg ;};
// ToPdfOutline returns a low level PdfOutline object, based on the current
// instance.
func (_fcbdd *Outline )ToPdfOutline ()*PdfOutline {_dacfc :=NewPdfOutline ();var _agbca []*PdfOutlineItem ;var _gabef int64 ;var _acdf *PdfOutlineItem ;for _ ,_ccggg :=range _fcbdd .Entries {_ceadc ,_dacea :=_ccggg .ToPdfOutlineItem ();_ceadc .Parent =&_dacfc .PdfOutlineTreeNode ;if _acdf !=nil {_acdf .Next =&_ceadc .PdfOutlineTreeNode ;_ceadc .Prev =&_acdf .PdfOutlineTreeNode ;};_agbca =append (_agbca ,_ceadc );_gabef +=_dacea ;_acdf =_ceadc ;};_ecgd :=int64 (len (_agbca ));_gabef +=int64 (_ecgd );if _ecgd > 0{_dacfc .First =&_agbca [0].PdfOutlineTreeNode ;_dacfc .Last =&_agbca [_ecgd -1].PdfOutlineTreeNode ;_dacfc .Count =&_gabef ;};return _dacfc ;};func (_fdedc *PdfFunctionType0 )processSamples ()error {_befbe :=_ddf .ResampleBytes (_fdedc ._cdgce ,_fdedc .BitsPerSample );_fdedc ._cfcb =_befbe ;return nil ;};
// ToPdfObject implements interface PdfModel.
func (_dcg *PdfAnnotationMovie )ToPdfObject ()_fd .PdfObject {_dcg .PdfAnnotation .ToPdfObject ();_gcce :=_dcg ._defg ;_cabf :=_gcce .PdfObject .(*_fd .PdfObjectDictionary );_cabf .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fd .MakeName ("\u004d\u006f\u0076i\u0065"));_cabf .SetIfNotNil ("\u0054",_dcg .T );_cabf .SetIfNotNil ("\u004d\u006f\u0076i\u0065",_dcg .Movie );_cabf .SetIfNotNil ("\u0041",_dcg .A );return _gcce ;};func (_fgcgd *PdfColorspaceSpecialIndexed )String ()string {return "\u0049n\u0064\u0065\u0078\u0065\u0064";};
// SetShadingByName sets a shading resource specified by keyName.
func (_dbead *PdfPageResources )SetShadingByName (keyName _fd .PdfObjectName ,shadingObj _fd .PdfObject )error {if _dbead .Shading ==nil {_dbead .Shading =_fd .MakeDict ();};_bbbeb ,_beccd :=_dbead .Shading .(*_fd .PdfObjectDictionary );if !_beccd {return _fd .ErrTypeError ;};_bbbeb .Set (keyName ,shadingObj );return nil ;};func (_bddgf SignatureValidationResult )String ()string {var _eaeag _bg .Buffer ;_eaeag .WriteString (_d .Sprintf ("\u004ea\u006d\u0065\u003a\u0020\u0025\u0073\n",_bddgf .Name ));if _bddgf .Date ._bgggb > 0{_eaeag .WriteString (_d .Sprintf ("\u0044a\u0074\u0065\u003a\u0020\u0025\u0073\n",_bddgf .Date .ToGoTime ().String ()));}else {_eaeag .WriteString ("\u0044\u0061\u0074\u0065 n\u006f\u0074\u0020\u0073\u0070\u0065\u0063\u0069\u0066\u0069\u0065\u0064\u000a");};if len (_bddgf .Reason )> 0{_eaeag .WriteString (_d .Sprintf ("R\u0065\u0061\u0073\u006f\u006e\u003a\u0020\u0025\u0073\u000a",_bddgf .Reason ));}else {_eaeag .WriteString ("N\u006f \u0072\u0065\u0061\u0073\u006f\u006e\u0020\u0073p\u0065\u0063\u0069\u0066ie\u0064\u000a");};if len (_bddgf .Location )> 0{_eaeag .WriteString (_d .Sprintf ("\u004c\u006f\u0063\u0061\u0074\u0069\u006f\u006e\u003a\u0020\u0025\u0073\u000a",_bddgf .Location ));}else {_eaeag .WriteString ("\u004c\u006f\u0063at\u0069\u006f\u006e\u0020\u006e\u006f\u0074\u0020\u0073\u0070\u0065\u0063\u0069\u0066\u0069\u0065\u0064\u000a");};if len (_bddgf .ContactInfo )> 0{_eaeag .WriteString (_d .Sprintf ("\u0043\u006f\u006e\u0074\u0061\u0063\u0074\u0020\u0049\u006e\u0066\u006f:\u0020\u0025\u0073\u000a",_bddgf .ContactInfo ));}else {_eaeag .WriteString ("C\u006f\u006e\u0074\u0061\u0063\u0074 \u0069\u006e\u0066\u006f\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063i\u0066i\u0065\u0064\u000a");};_eaeag .WriteString (_d .Sprintf ("F\u0069\u0065\u006c\u0064\u0073\u003a\u0020\u0025\u0064\u000a",len (_bddgf .Fields )));if _bddgf .IsSigned {_eaeag .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 {_eaeag .WriteString ("\u0053\u0069\u0067\u006eed\u003a\u0020\u004e\u006f\u0074\u0020\u0073\u0069\u0067\u006e\u0065\u0064\u000a");};if _bddgf .IsVerified {_eaeag .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 {_eaeag .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 _bddgf .IsTrusted {_eaeag .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 {_eaeag .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 !_bddgf .GeneralizedTime .IsZero (){_eaeag .WriteString (_d .Sprintf ("G\u0065n\u0065\u0072\u0061\u006c\u0069\u007a\u0065\u0064T\u0069\u006d\u0065\u003a %\u0073\u000a",_bddgf .GeneralizedTime .String ()));};return _eaeag .String ();};
// PdfAnnotationSquare represents Square annotations.
// (Section 12.5.6.8).
type PdfAnnotationSquare struct{*PdfAnnotation ;*PdfAnnotationMarkup ;BS _fd .PdfObject ;IC _fd .PdfObject ;BE _fd .PdfObject ;RD _fd .PdfObject ;};func (_faa *PdfReader )newPdfActionImportDataFromDict (_cge *_fd .PdfObjectDictionary )(*PdfActionImportData ,error ){_gcg ,_gfb :=_dgd (_cge .Get ("\u0046"));if _gfb !=nil {return nil ,_gfb ;};return &PdfActionImportData {F :_gcg },nil ;};
// ColorFromPdfObjects returns a new PdfColor based on input color components. The input PdfObjects should
// be numeric.
func (_eeca *PdfColorspaceDeviceN )ColorFromPdfObjects (objects []_fd .PdfObject )(PdfColor ,error ){if len (objects )!=_eeca .GetNumComponents (){return nil ,_fce .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_bgaf ,_abbg :=_fd .GetNumbersAsFloat (objects );if _abbg !=nil {return nil ,_abbg ;};return _eeca .ColorFromFloats (_bgaf );};
// HasFontByName checks if has font resource by name.
func (_cdffed *PdfPage )HasFontByName (name _fd .PdfObjectName )bool {_baaff ,_fgcbe :=_cdffed .Resources .Font .(*_fd .PdfObjectDictionary );if !_fgcbe {return false ;};if _bgfe :=_baaff .Get (name );_bgfe !=nil {return true ;};return false ;};
// GetContainingPdfObject implements interface PdfModel.
func (_ggb *PdfAnnotation )GetContainingPdfObject ()_fd .PdfObject {return _ggb ._defg };
// ToPdfObject returns a PDF object representation of the outline item.
func (_fgfbd *OutlineItem )ToPdfObject ()_fd .PdfObject {_eacd ,_ :=_fgfbd .ToPdfOutlineItem ();return _eacd .ToPdfObject ();};var _ pdfFont =(*pdfCIDFontType2 )(nil );
// GetContext returns the action context which contains the specific type-dependent context.
// The context represents the subaction.
func (_eg *PdfAction )GetContext ()PdfModel {if _eg ==nil {return nil ;};return _eg ._db ;};func _fdaeg (_bfbda _fd .PdfObject )(*fontFile ,error ){_fca .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",_bfbda );_bcbc :=&fontFile {};_bfbda =_fd .TraceToDirectObject (_bfbda );_dada ,_aggf :=_bfbda .(*_fd .PdfObjectStream );if !_aggf {_fca .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",_bfbda );return nil ,_fd .ErrTypeError ;};_dggd :=_dada .PdfObjectDictionary ;_bacc ,_faedb :=_fd .DecodeStream (_dada );if _faedb !=nil {return nil ,_faedb ;};_cecde ,_aggf :=_fd .GetNameVal (_dggd .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065"));if !_aggf {_bcbc ._efbd =_cecde ;if _cecde =="\u0054\u0079\u0070\u0065\u0031\u0043"{_fca .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 ;};};_begbc ,_ :=_fd .GetIntVal (_dggd .Get ("\u004ce\u006e\u0067\u0074\u0068\u0031"));_cgce ,_ :=_fd .GetIntVal (_dggd .Get ("\u004ce\u006e\u0067\u0074\u0068\u0032"));if _begbc > len (_bacc ){_begbc =len (_bacc );};if _begbc +_cgce > len (_bacc ){_cgce =len (_bacc )-_begbc ;};_fefe :=_bacc [:_begbc ];var _gfdag []byte ;if _cgce > 0{_gfdag =_bacc [_begbc :_begbc +_cgce ];};if _begbc > 0&&_cgce > 0{_fdea :=_bcbc .loadFromSegments (_fefe ,_gfdag );if _fdea !=nil {return nil ,_fdea ;};};return _bcbc ,nil ;};func _ecfcf (_fdbaee *_fd .PdfObjectDictionary )(*PdfShadingType4 ,error ){_aebef :=PdfShadingType4 {};_aegad :=_fdbaee .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065");if _aegad ==nil {_fca .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 ;};_cffec ,_abedd :=_aegad .(*_fd .PdfObjectInteger );if !_abedd {_fca .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",_aegad );return nil ,_fd .ErrTypeError ;};_aebef .BitsPerCoordinate =_cffec ;_aegad =_fdbaee .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074");if _aegad ==nil {_fca .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 ;};_cffec ,_abedd =_aegad .(*_fd .PdfObjectInteger );if !_abedd {_fca .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",_aegad );return nil ,_fd .ErrTypeError ;};_aebef .BitsPerComponent =_cffec ;_aegad =_fdbaee .Get ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067");if _aegad ==nil {_fca .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 ;};_cffec ,_abedd =_aegad .(*_fd .PdfObjectInteger );if !_abedd {_fca .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",_aegad );return nil ,_fd .ErrTypeError ;};_aebef .BitsPerComponent =_cffec ;_aegad =_fdbaee .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");if _aegad ==nil {_fca .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 ;};_bcace ,_abedd :=_aegad .(*_fd .PdfObjectArray );if !_abedd {_fca .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",_aegad );return nil ,_fd .ErrTypeError ;};_aebef .Decode =_bcace ;_aegad =_fdbaee .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");if _aegad ==nil {_fca .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 ;};_aebef .Function =[]PdfFunction {};if _gccgg ,_gcec :=_aegad .(*_fd .PdfObjectArray );_gcec {for _ ,_bbgf :=range _gccgg .Elements (){_dgdgc ,_bbada :=_fagc (_bbgf );if _bbada !=nil {_fca .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",_bbada );return nil ,_bbada ;};_aebef .Function =append (_aebef .Function ,_dgdgc );};}else {_gecca ,_dfab :=_fagc (_aegad );if _dfab !=nil {_fca .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",_dfab );return nil ,_dfab ;};_aebef .Function =append (_aebef .Function ,_gecca );};return &_aebef ,nil ;};
// PdfField contains the common attributes of a form field. The context object contains the specific field data
// which can represent a button, text, choice or signature.
// The PdfField is typically not used directly, but is encapsulated by the more specific field types such as
// PdfFieldButton etc (i.e. the context attribute).
type PdfField struct{_cacd PdfModel ;_fbef *_fd .PdfIndirectObject ;_fcadd *bool ;Parent *PdfField ;Annotations []*PdfAnnotationWidget ;Kids []*PdfField ;FT *_fd .PdfObjectName ;T *_fd .PdfObjectString ;TU *_fd .PdfObjectString ;TM *_fd .PdfObjectString ;Ff *_fd .PdfObjectInteger ;V _fd .PdfObject ;DV _fd .PdfObject ;AA _fd .PdfObject ;};
// Write writes the Appender output to io.Writer.
// It can only be called once and further invocations will result in an error.
func (_cbcg *PdfAppender )Write (w _fc .Writer )error {if _cbcg ._gfd {return _fce .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");};_defgb :=NewPdfWriter ();_cbec ,_bfegg :=_fd .GetDict (_defgb ._fgcc );if !_bfegg {return _fce .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");};_aedc ,_bfegg :=_cbec .Get ("\u004b\u0069\u0064\u0073").(*_fd .PdfObjectArray );if !_bfegg {return _fce .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");};_aceb ,_bfegg :=_cbec .Get ("\u0043\u006f\u0075n\u0074").(*_fd .PdfObjectInteger );if !_bfegg {return _fce .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");};_agba :=_cbcg ._bfb ._egbge ;_gfba :=_agba .GetTrailer ();if _gfba ==nil {return _fce .New ("\u006di\u0073s\u0069\u006e\u0067\u0020\u0074\u0072\u0061\u0069\u006c\u0065\u0072");};_eeeb ,_bfegg :=_fd .GetIndirect (_gfba .Get ("\u0052\u006f\u006f\u0074"));if !_bfegg {return _fce .New ("c\u0061\u0074\u0061\u006c\u006f\u0067 \u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0065\u0072 \u006e\u006f\u0074 \u0066o\u0075\u006e\u0064");};_edcc ,_bfegg :=_fd .GetDict (_eeeb );if !_bfegg {_fca .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",_eeeb ,*_gfba );return _fce .New ("\u006di\u0073s\u0069\u006e\u0067\u0020\u0063\u0061\u0074\u0061\u006c\u006f\u0067");};for _ ,_egdf :=range _edcc .Keys (){if _defgb ._agagg .Get (_egdf )==nil {_caae :=_edcc .Get (_egdf );_defgb ._agagg .Set (_egdf ,_caae );};};if _cbcg ._bbce !=nil {_defgb ._agagg .Set ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d",_cbcg ._bbce .ToPdfObject ());_cbcg .updateObjectsDeep (_cbcg ._bbce .ToPdfObject (),nil );};_cbcg .addNewObject (_defgb ._fcacd );_cbcg .addNewObject (_defgb ._faaba );_dffc :=false ;if len (_cbcg ._bfb .PageList )!=len (_cbcg ._eafg ){_dffc =true ;}else {for _bebd :=range _cbcg ._bfb .PageList {switch {case _cbcg ._eafg [_bebd ]==_cbcg ._bfb .PageList [_bebd ]:case _cbcg ._eafg [_bebd ]==_cbcg .Reader .PageList [_bebd ]:default:_dffc =true ;};if _dffc {break ;};};};if _dffc {_cbcg .updateObjectsDeep (_defgb ._fgcc ,nil );}else {_cbcg ._ddgd [_defgb ._fgcc ]=struct{}{};};_defgb ._fgcc .ObjectNumber =_cbcg .Reader ._geda .ObjectNumber ;_cbcg ._daec [_defgb ._fgcc ]=_cbcg .Reader ._geda .ObjectNumber ;_cafdd :=[]_fd .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 _ ,_ffbg :=range _cbcg ._eafg {_fga :=_ffbg .ToPdfObject ();*_aceb =*_aceb +1;if _ecec ,_caggd :=_fga .(*_fd .PdfIndirectObject );_caggd &&_ecec .GetParser ()==_cbcg ._bfb ._egbge {_aedc .Append (&_ecec .PdfObjectReference );continue ;};if _cdae ,_fcac :=_fd .GetDict (_fga );_fcac {_dbdb ,_fbaa :=_cdae .Get ("\u0050\u0061\u0072\u0065\u006e\u0074").(*_fd .PdfIndirectObject );for _fbaa {_fca .Log .Trace ("\u0050a\u0067e\u0020\u0050\u0061\u0072\u0065\u006e\u0074\u003a\u0020\u0025\u0054",_dbdb );_gbda ,_gdag :=_dbdb .PdfObject .(*_fd .PdfObjectDictionary );if !_gdag {return _fce .New ("i\u006e\u0076\u0061\u006cid\u0020P\u0061\u0072\u0065\u006e\u0074 \u006f\u0062\u006a\u0065\u0063\u0074");};for _ ,_aec :=range _cafdd {_fca .Log .Trace ("\u0046\u0069\u0065\u006c\u0064\u0020\u0025\u0073",_aec );if _cdae .Get (_aec )!=nil {_fca .Log .Trace ("\u002d \u0070a\u0067\u0065\u0020\u0068\u0061s\u0020\u0061l\u0072\u0065\u0061\u0064\u0079");continue ;};if _ggcb :=_gbda .Get (_aec );_ggcb !=nil {_fca .Log .Trace ("\u0049\u006e\u0068\u0065ri\u0074\u0069\u006e\u0067\u0020\u0066\u0069\u0065\u006c\u0064\u0020\u0025\u0073",_aec );_cdae .Set (_aec ,_ggcb );};};_dbdb ,_fbaa =_gbda .Get ("\u0050\u0061\u0072\u0065\u006e\u0074").(*_fd .PdfIndirectObject );_fca .Log .Trace ("\u004ee\u0078t\u0020\u0070\u0061\u0072\u0065\u006e\u0074\u003a\u0020\u0025\u0054",_gbda .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"));};_cdae .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_defgb ._fgcc );};_cbcg .updateObjectsDeep (_fga ,nil );_aedc .Append (_fga );};if _ ,_acec :=_cbcg ._ddbg .Seek (0,_fc .SeekStart );_acec !=nil {return _acec ;};_cfga :=make (map[SignatureHandler ]_fc .Writer );_gaae :=_fd .MakeArray ();for _ ,_aeef :=range _cbcg ._efe {if _bgaaf ,_abfc :=_fd .GetIndirect (_aeef );_abfc {if _agc ,_afff :=_bgaaf .PdfObject .(*pdfSignDictionary );_afff {_bdgdc :=*_agc ._bedac ;var _egbd error ;_cfga [_bdgdc ],_egbd =_bdgdc .NewDigest (_agc ._beded );if _egbd !=nil {return _egbd ;};_gaae .Append (_fd .MakeInteger (0xfffff),_fd .MakeInteger (0xfffff));};};};if _gaae .Len ()> 0{_gaae .Append (_fd .MakeInteger (0xfffff),_fd .MakeInteger (0xfffff));};for _ ,_begf :=range _cbcg ._efe {if _bgeb ,_dagg :=_fd .GetIndirect (_begf );_dagg {if _eaebba ,_ffa :=_bgeb .PdfObject .(*pdfSignDictionary );_ffa {_eaebba .Set ("\u0042y\u0074\u0065\u0052\u0061\u006e\u0067e",_gaae );};};};_egbe :=len (_cfga )> 0;var _gbeg _fc .Reader =_cbcg ._ddbg ;if _egbe {_bfgf :=make ([]_fc .Writer ,0,len (_cfga ));for _ ,_gbae :=range _cfga {_bfgf =append (_bfgf ,_gbae );};_gbeg =_fc .TeeReader (_cbcg ._ddbg ,_fc .MultiWriter (_bfgf ...));};_ecgb ,_fegb :=_fc .Copy (w ,_gbeg );if _fegb !=nil {return _fegb ;};if len (_cbcg ._efe )==0{return nil ;};_defgb ._bddag =_ecgb ;_defgb .ObjNumOffset =_cbcg ._bfbb ;_defgb ._gfggd =true ;_defgb ._gdeae =_cbcg ._fdb ;_defgb ._cfad =_cbcg ._bceb ;_defgb ._dbdg =_cbcg ._gedb ;_defgb ._cecag =_cbcg ._bfb .PdfVersion ().Minor ;_defgb ._febae =_cbcg ._daec ;_beeac :=_cbcg ._fbgg .GetXrefType ();if _beeac !=nil {_ecgbg :=*_beeac ==_fd .XrefTypeObjectStream ;_defgb ._ccec =&_ecgbg ;};_defgb ._fgdfc =map[_fd .PdfObject ]struct{}{};_defgb ._edeb =[]_fd .PdfObject {};for _ ,_dfgf :=range _cbcg ._efe {if _ ,_bbbd :=_cbcg ._ddgd [_dfgf ];_bbbd {continue ;};_defgb .addObject (_dfgf );};_caabb :=w ;if _egbe {_caabb =_bg .NewBuffer (nil );};if _becc :=_defgb .Write (_caabb );_becc !=nil {return _becc ;};if _egbe {_fbcc :=_caabb .(*_bg .Buffer ).Bytes ();_dde :=_fd .MakeArray ();var _adfc []*pdfSignDictionary ;var _edcf int64 ;for _ ,_fbdd :=range _defgb ._edeb {if _eeb ,_cgb :=_fd .GetIndirect (_fbdd );_cgb {if _cgfeb ,_abb :=_eeb .PdfObject .(*pdfSignDictionary );_abb {_adfc =append (_adfc ,_cgfeb );_becf :=_cgfeb ._ecebb +int64 (_cgfeb ._aagdc );_dde .Append (_fd .MakeInteger (_edcf ),_fd .MakeInteger (_becf -_edcf ));_edcf =_cgfeb ._ecebb +int64 (_cgfeb ._cfdc );};};};_dde .Append (_fd .MakeInteger (_edcf ),_fd .MakeInteger (_ecgb +int64 (len (_fbcc ))-_edcf ));_feaf :=[]byte (_dde .WriteString ());for _ ,_gebd :=range _adfc {_fgcgf :=int (_gebd ._ecebb -_ecgb );for _gdbf :=_gebd ._gdcfb ;_gdbf < _gebd ._eaece ;_gdbf ++{_fbcc [_fgcgf +_gdbf ]=' ';};_ebfa :=_fbcc [_fgcgf +_gebd ._gdcfb :_fgcgf +_gebd ._eaece ];copy (_ebfa ,_feaf );};var _feab int ;for _ ,_affff :=range _adfc {_bcae :=int (_affff ._ecebb -_ecgb );_eebe :=_fbcc [_feab :_bcae +_affff ._aagdc ];_ddae :=*_affff ._bedac ;_cfga [_ddae ].Write (_eebe );_feab =_bcae +_affff ._cfdc ;};for _ ,_eccf :=range _adfc {_dfade :=_fbcc [_feab :];_bggf :=*_eccf ._bedac ;_cfga [_bggf ].Write (_dfade );};for _ ,_adbe :=range _adfc {_cfee :=int (_adbe ._ecebb -_ecgb );_feef :=*_adbe ._bedac ;_cbdg :=_cfga [_feef ];if _afgb :=_feef .Sign (_adbe ._beded ,_cbdg );_afgb !=nil {return _afgb ;};_adbe ._beded .ByteRange =_dde ;_eggc :=[]byte (_adbe ._beded .Contents .WriteString ());for _ccga :=_adbe ._gdcfb ;_ccga < _adbe ._eaece ;_ccga ++{_fbcc [_cfee +_ccga ]=' ';};for _efad :=_adbe ._aagdc ;_efad < _adbe ._cfdc ;_efad ++{_fbcc [_cfee +_efad ]=' ';};_egf :=_fbcc [_cfee +_adbe ._gdcfb :_cfee +_adbe ._eaece ];copy (_egf ,_feaf );_egf =_fbcc [_cfee +_adbe ._aagdc :_cfee +_adbe ._cfdc ];copy (_egf ,_eggc );};_gafbg :=_bg .NewBuffer (_fbcc );_ ,_fegb =_fc .Copy (w ,_gafbg );if _fegb !=nil {return _fegb ;};};_cbcg ._gfd =true ;return nil ;};
// PdfAnnotationInk represents Ink annotations.
// (Section 12.5.6.13).
type PdfAnnotationInk struct{*PdfAnnotation ;*PdfAnnotationMarkup ;InkList _fd .PdfObject ;BS _fd .PdfObject ;};
// 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 ;_ecadf *_fd .PdfIndirectObject ;};func (_adbcb *PdfReader )newPdfAcroFormFromDict (_eabde *_fd .PdfIndirectObject ,_dbcb *_fd .PdfObjectDictionary )(*PdfAcroForm ,error ){_cfeaa :=NewPdfAcroForm ();if _eabde !=nil {_cfeaa ._dbcdb =_eabde ;_eabde .PdfObject =_fd .MakeDict ();};if _eacbfa :=_dbcb .Get ("\u0046\u0069\u0065\u006c\u0064\u0073");_eacbfa !=nil {_eecae ,_dcgbg :=_fd .GetArray (_eacbfa );if !_dcgbg {return nil ,_d .Errorf ("\u0066i\u0065\u006c\u0064\u0073\u0020\u006e\u006f\u0074\u0020\u0061\u006e \u0061\u0072\u0072\u0061\u0079\u0020\u0028\u0025\u0054\u0029",_eacbfa );};var _daeg []*PdfField ;for _ ,_ggbe :=range _eecae .Elements (){_bceda ,_ebfc :=_fd .GetIndirect (_ggbe );if !_ebfc {if _ ,_cbdga :=_ggbe .(*_fd .PdfObjectNull );_cbdga {_fca .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 ;};_fca .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",_ggbe );return nil ,_d .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");};_gbgce ,_gbff :=_adbcb .newPdfFieldFromIndirectObject (_bceda ,nil );if _gbff !=nil {return nil ,_gbff ;};_fca .Log .Trace ("\u0041\u0063\u0072\u006fFo\u0072\u006d\u0020\u0046\u0069\u0065\u006c\u0064\u003a\u0020\u0025\u002b\u0076",*_gbgce );_daeg =append (_daeg ,_gbgce );};_cfeaa .Fields =&_daeg ;};if _dbbfc :=_dbcb .Get ("\u004ee\u0065d\u0041\u0070\u0070\u0065\u0061\u0072\u0061\u006e\u0063\u0065\u0073");_dbbfc !=nil {_egfd ,_cacbd :=_fd .GetBool (_dbbfc );if _cacbd {_cfeaa .NeedAppearances =_egfd ;}else {_fca .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",_dbbfc );};};if _fabf :=_dbcb .Get ("\u0053\u0069\u0067\u0046\u006c\u0061\u0067\u0073");_fabf !=nil {_efbg ,_ddcb :=_fd .GetInt (_fabf );if _ddcb {_cfeaa .SigFlags =_efbg ;}else {_fca .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",_fabf );};};if _abfab :=_dbcb .Get ("\u0043\u004f");_abfab !=nil {_decfc ,_aacaa :=_fd .GetArray (_abfab );if _aacaa {_cfeaa .CO =_decfc ;}else {_fca .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",_abfab );};};if _ggeb :=_dbcb .Get ("\u0044\u0052");_ggeb !=nil {if _gaecc ,_aedfa :=_fd .GetDict (_ggeb );_aedfa {_gdagb ,_fagd :=NewPdfPageResourcesFromDict (_gaecc );if _fagd !=nil {_fca .Log .Error ("\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0044R\u003a\u0020\u0025\u0076",_fagd );return nil ,_fagd ;};_cfeaa .DR =_gdagb ;}else {_fca .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",_ggeb );};};if _aecb :=_dbcb .Get ("\u0044\u0041");_aecb !=nil {_dbdec ,_geabg :=_fd .GetString (_aecb );if _geabg {_cfeaa .DA =_dbdec ;}else {_fca .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",_aecb );};};if _fdcg :=_dbcb .Get ("\u0051");_fdcg !=nil {_dcgef ,_cacbg :=_fd .GetInt (_fdcg );if _cacbg {_cfeaa .Q =_dcgef ;}else {_fca .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a \u0051\u0020\u0069\u006e\u0076a\u006ci\u0064 \u0028\u0067\u006f\u0074\u0020\u0025\u0054)",_fdcg );};};if _efgcc :=_dbcb .Get ("\u0058\u0046\u0041");_efgcc !=nil {_cfeaa .XFA =_efgcc ;};return _cfeaa ,nil ;};
// NewPdfColorspaceSpecialSeparation returns a new separation color.
func NewPdfColorspaceSpecialSeparation ()*PdfColorspaceSpecialSeparation {_aafcc :=&PdfColorspaceSpecialSeparation {};return _aafcc ;};type pdfFontSimple struct{fontCommon ;_cebf *_fd .PdfIndirectObject ;_cfcg map[_gf .CharCode ]float64 ;_fggbd _gf .TextEncoder ;_cgdd _gf .TextEncoder ;_gbaf *PdfFontDescriptor ;
// Encoding is subject to limitations that are described in 9.6.6, "Character Encoding".
// BaseFont is derived differently.
FirstChar _fd .PdfObject ;LastChar _fd .PdfObject ;Widths _fd .PdfObject ;Encoding _fd .PdfObject ;_gdeba map[rune ]_aaf .CharMetrics ;};
// ColorToRGB verifies that the input color is an RGB color. Method exists in
// order to satisfy the PdfColorspace interface.
func (_efee *PdfColorspaceDeviceRGB )ColorToRGB (color PdfColor )(PdfColor ,error ){_bfae ,_fefg :=color .(*PdfColorDeviceRGB );if !_fefg {_fca .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 ,_fce .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};return _bfae ,nil ;};
// EncryptionAlgorithm is used in EncryptOptions to change the default algorithm used to encrypt the document.
type EncryptionAlgorithm int ;
// OutlineDest represents the destination of an outline item.
// It holds the page and the position on the page an outline item points to.
type OutlineDest struct{PageObj *_fd .PdfIndirectObject `json:"-"`;Page int64 `json:"page"`;Mode string `json:"mode"`;X float64 `json:"x"`;Y float64 `json:"y"`;Zoom float64 `json:"zoom"`;};
// SetForms sets the Acroform for a PDF file.
func (_adcfb *PdfWriter )SetForms (form *PdfAcroForm )error {_adcfb ._cfbfa =form ;return nil };
// GetNumComponents returns the number of color components of the colorspace device.
// Returns 1 for a CalGray device.
func (_daea *PdfColorspaceCalGray )GetNumComponents ()int {return 1};
// NewPdfColorspaceLab returns a new Lab colorspace object.
func NewPdfColorspaceLab ()*PdfColorspaceLab {_fbce :=&PdfColorspaceLab {};_fbce .BlackPoint =[]float64 {0.0,0.0,0.0};_fbce .Range =[]float64 {-100,100,-100,100};return _fbce ;};func (_fffg fontCommon )fontFlags ()int {if _fffg ._ggbg ==nil {return 0;};return _fffg ._ggbg ._fgaf ;};func (_geeac *PdfWriter )updateObjectNumbers (){_egfcc :=_geeac .ObjNumOffset ;_bgebc :=0;for _ ,_eeff :=range _geeac ._edeb {_gadb :=int64 (_bgebc +1+_egfcc );_bbbgc :=true ;if _geeac ._gfggd {if _facga ,_dbcfd :=_geeac ._febae [_eeff ];_dbcfd {_gadb =_facga ;_bbbgc =false ;};};switch _fcedg :=_eeff .(type ){case *_fd .PdfIndirectObject :_fcedg .ObjectNumber =_gadb ;_fcedg .GenerationNumber =0;case *_fd .PdfObjectStream :_fcedg .ObjectNumber =_gadb ;_fcedg .GenerationNumber =0;case *_fd .PdfObjectStreams :_fcedg .ObjectNumber =_gadb ;_fcedg .GenerationNumber =0;default:_fca .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",_fcedg );continue ;};if _bbbgc {_bgebc ++;};};_abfea :=func (_cfbab _fd .PdfObject )int64 {switch _cagee :=_cfbab .(type ){case *_fd .PdfIndirectObject :return _cagee .ObjectNumber ;case *_fd .PdfObjectStream :return _cagee .ObjectNumber ;case *_fd .PdfObjectStreams :return _cagee .ObjectNumber ;};return 0;};_fb .SliceStable (_geeac ._edeb ,func (_ffbb ,_cfff int )bool {return _abfea (_geeac ._edeb [_ffbb ])< _abfea (_geeac ._edeb [_cfff ])});};
// ToPdfObject implements interface PdfModel.
func (_cbac *PdfAnnotationStamp )ToPdfObject ()_fd .PdfObject {_cbac .PdfAnnotation .ToPdfObject ();_gfgc :=_cbac ._defg ;_dacg :=_gfgc .PdfObject .(*_fd .PdfObjectDictionary );_cbac .PdfAnnotationMarkup .appendToPdfDictionary (_dacg );_dacg .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fd .MakeName ("\u0053\u0074\u0061m\u0070"));_dacg .SetIfNotNil ("\u004e\u0061\u006d\u0065",_cbac .Name );return _gfgc ;};
// 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 (_cdeg *PdfReader )FlattenFields (allannots bool ,appgen FieldAppearanceGenerator )error {return _cdeg .flattenFieldsWithOpts (allannots ,appgen ,nil );};
// Encoder returns the font's text encoder.
func (_egebf *pdfFontSimple )Encoder ()_gf .TextEncoder {if _egebf ._fggbd !=nil {return _egebf ._fggbd ;};if _egebf ._cgdd !=nil {return _egebf ._cgdd ;};_dbbfe ,_ :=_gf .NewSimpleTextEncoder ("\u0053\u0074a\u006e\u0064\u0061r\u0064\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",nil );return _dbbfe ;};
// GetFontDescriptor returns the font descriptor for `font`.
func (_ccdde PdfFont )GetFontDescriptor ()(*PdfFontDescriptor ,error ){return _ccdde ._bbaa .getFontDescriptor (),nil ;};
// PdfAnnotationFreeText represents FreeText annotations.
// (Section 12.5.6.6).
type PdfAnnotationFreeText struct{*PdfAnnotation ;*PdfAnnotationMarkup ;DA _fd .PdfObject ;Q _fd .PdfObject ;RC _fd .PdfObject ;DS _fd .PdfObject ;CL _fd .PdfObject ;IT _fd .PdfObject ;BE _fd .PdfObject ;RD _fd .PdfObject ;BS _fd .PdfObject ;LE _fd .PdfObject ;};
// NewPdfAnnotationText returns a new text annotation.
func NewPdfAnnotationText ()*PdfAnnotationText {_ebca :=NewPdfAnnotation ();_cbdd :=&PdfAnnotationText {};_cbdd .PdfAnnotation =_ebca ;_cbdd .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_ebca .SetContext (_cbdd );return _cbdd ;};func _dbec (_adeef *_fd .PdfObjectDictionary )(*PdfShadingType7 ,error ){_cgegdg :=PdfShadingType7 {};_ebdg :=_adeef .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065");if _ebdg ==nil {_fca .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 ;};_eggbd ,_bgdc :=_ebdg .(*_fd .PdfObjectInteger );if !_bgdc {_fca .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",_ebdg );return nil ,_fd .ErrTypeError ;};_cgegdg .BitsPerCoordinate =_eggbd ;_ebdg =_adeef .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074");if _ebdg ==nil {_fca .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 ;};_eggbd ,_bgdc =_ebdg .(*_fd .PdfObjectInteger );if !_bgdc {_fca .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",_ebdg );return nil ,_fd .ErrTypeError ;};_cgegdg .BitsPerComponent =_eggbd ;_ebdg =_adeef .Get ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067");if _ebdg ==nil {_fca .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 ;};_eggbd ,_bgdc =_ebdg .(*_fd .PdfObjectInteger );if !_bgdc {_fca .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",_ebdg );return nil ,_fd .ErrTypeError ;};_cgegdg .BitsPerComponent =_eggbd ;_ebdg =_adeef .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");if _ebdg ==nil {_fca .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 ;};_ddfff ,_bgdc :=_ebdg .(*_fd .PdfObjectArray );if !_bgdc {_fca .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",_ebdg );return nil ,_fd .ErrTypeError ;};_cgegdg .Decode =_ddfff ;if _aebfad :=_adeef .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");_aebfad !=nil {_cgegdg .Function =[]PdfFunction {};if _agaab ,_bgfb :=_aebfad .(*_fd .PdfObjectArray );_bgfb {for _ ,_ffgeb :=range _agaab .Elements (){_bada ,_ddbec :=_fagc (_ffgeb );if _ddbec !=nil {_fca .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",_ddbec );return nil ,_ddbec ;};_cgegdg .Function =append (_cgegdg .Function ,_bada );};}else {_cdaf ,_bafcb :=_fagc (_aebfad );if _bafcb !=nil {_fca .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",_bafcb );return nil ,_bafcb ;};_cgegdg .Function =append (_cgegdg .Function ,_cdaf );};};return &_cgegdg ,nil ;};
// NewOutlineBookmark returns an initialized PdfOutlineItem for a given bookmark title and page.
func NewOutlineBookmark (title string ,page *_fd .PdfIndirectObject )*PdfOutlineItem {_egeed :=PdfOutlineItem {};_egeed ._ccggf =&_egeed ;_egeed .Title =_fd .MakeString (title );_aefga :=_fd .MakeArray ();_aefga .Append (page );_aefga .Append (_fd .MakeName ("\u0046\u0069\u0074"));_egeed .Dest =_aefga ;return &_egeed ;};
// Encoder returns the font's text encoder.
func (_afab pdfFontType0 )Encoder ()_gf .TextEncoder {return _afab ._dbbce };
// L returns the value of the L component of the color.
func (_cfaaa *PdfColorLab )L ()float64 {return float64 (_cfaaa [0])};
// GetDescent returns the Descent of the font `descriptor`.
func (_gbgac *PdfFontDescriptor )GetDescent ()(float64 ,error ){return _fd .GetNumberAsFloat (_gbgac .Descent );};
// ColorFromFloats returns a new PdfColor based on the input slice of color
// components. The slice should contain a single element.
func (_cfdg *PdfColorspaceSpecialIndexed )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=1{return nil ,_fce .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};N :=_cfdg .Base .GetNumComponents ();_gdca :=int (vals [0])*N ;if _gdca < 0||(_gdca +N -1)>=len (_cfdg ._cfbf ){return nil ,_fce .New ("\u006f\u0075\u0074\u0073\u0069\u0064\u0065\u0020\u0072\u0061\u006e\u0067\u0065");};_eafc :=_cfdg ._cfbf [_gdca :_gdca +N ];var _gefcc []float64 ;for _ ,_afac :=range _eafc {_gefcc =append (_gefcc ,float64 (_afac )/255.0);};_bcga ,_bcdga :=_cfdg .Base .ColorFromFloats (_gefcc );if _bcdga !=nil {return nil ,_bcdga ;};return _bcga ,nil ;};
// IsTerminal returns true for terminal fields, false otherwise.
// Terminal fields are fields whose descendants are only widget annotations.
func (_deca *PdfField )IsTerminal ()bool {return len (_deca .Kids )==0};
// ToPdfObject implements interface PdfModel.
func (_bcag *PdfAnnotationFreeText )ToPdfObject ()_fd .PdfObject {_bcag .PdfAnnotation .ToPdfObject ();_ccbf :=_bcag ._defg ;_ada :=_ccbf .PdfObject .(*_fd .PdfObjectDictionary );_bcag .PdfAnnotationMarkup .appendToPdfDictionary (_ada );_ada .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fd .MakeName ("\u0046\u0072\u0065\u0065\u0054\u0065\u0078\u0074"));_ada .SetIfNotNil ("\u0044\u0041",_bcag .DA );_ada .SetIfNotNil ("\u0051",_bcag .Q );_ada .SetIfNotNil ("\u0052\u0043",_bcag .RC );_ada .SetIfNotNil ("\u0044\u0053",_bcag .DS );_ada .SetIfNotNil ("\u0043\u004c",_bcag .CL );_ada .SetIfNotNil ("\u0049\u0054",_bcag .IT );_ada .SetIfNotNil ("\u0042\u0045",_bcag .BE );_ada .SetIfNotNil ("\u0052\u0044",_bcag .RD );_ada .SetIfNotNil ("\u0042\u0053",_bcag .BS );_ada .SetIfNotNil ("\u004c\u0045",_bcag .LE );return _ccbf ;};func (_eecf *PdfReader )newPdfActionTransFromDict (_cba *_fd .PdfObjectDictionary )(*PdfActionTrans ,error ){return &PdfActionTrans {Trans :_cba .Get ("\u0054\u0072\u0061n\u0073")},nil ;};func _aeedf (_acbdf *_fd .PdfObjectArray )(float64 ,error ){_dcdag ,_afbdfg :=_acbdf .ToFloat64Array ();if _afbdfg !=nil {_fca .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",_acbdf ,_afbdfg );};switch len (_dcdag ){case 1:return _dcdag [0],nil ;case 3:_gacc :=PdfColorspaceDeviceRGB {};_acdc ,_ddcaaf :=_gacc .ColorFromFloats (_dcdag );if _ddcaaf !=nil {return 0.0,_ddcaaf ;};return _acdc .(*PdfColorDeviceRGB ).ToGray ().Val (),nil ;case 4:_gaefa :=PdfColorspaceDeviceCMYK {};_eabdd ,_efdde :=_gaefa .ColorFromFloats (_dcdag );if _efdde !=nil {return 0.0,_efdde ;};_aaee ,_efdde :=_gaefa .ColorToRGB (_eabdd .(*PdfColorDeviceCMYK ));if _efdde !=nil {return 0.0,_efdde ;};return _aaee .(*PdfColorDeviceRGB ).ToGray ().Val (),nil ;};_afbdfg =_fce .New ("\u0062a\u0064 \u004d\u0061\u0074\u0074\u0065\u0020\u0063\u006f\u006c\u006f\u0072");_fca .Log .Error ("\u0074\u006f\u0047ra\u0079\u003a\u0020\u006d\u0061\u0074\u0074\u0065\u003d\u0025\u0073\u0020\u0065\u0072\u0072\u003d\u0025\u0076",_acbdf ,_afbdfg );return 0.0,_afbdfg ;};
// ImageToRGB converts CalRGB colorspace image to RGB and returns the result.
func (_bcdc *PdfColorspaceCalRGB )ImageToRGB (img Image )(Image ,error ){_gcfdg :=_ddf .NewReader (img .getBase ());_dacaf :=_gd .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),3,nil ,nil ,nil );_bcee :=_ddf .NewWriter (_dacaf );_gbfc :=_ff .Pow (2,float64 (img .BitsPerComponent ))-1;_egff :=make ([]uint32 ,3);var (_caed error ;_fgdf ,_aebg ,_fegf ,_caee ,_gagf ,_cbag float64 ;);for {_caed =_gcfdg .ReadSamples (_egff );if _caed ==_fc .EOF {break ;}else if _caed !=nil {return img ,_caed ;};_fgdf =float64 (_egff [0])/_gbfc ;_aebg =float64 (_egff [1])/_gbfc ;_fegf =float64 (_egff [2])/_gbfc ;_caee =_bcdc .Matrix [0]*_ff .Pow (_fgdf ,_bcdc .Gamma [0])+_bcdc .Matrix [3]*_ff .Pow (_aebg ,_bcdc .Gamma [1])+_bcdc .Matrix [6]*_ff .Pow (_fegf ,_bcdc .Gamma [2]);_gagf =_bcdc .Matrix [1]*_ff .Pow (_fgdf ,_bcdc .Gamma [0])+_bcdc .Matrix [4]*_ff .Pow (_aebg ,_bcdc .Gamma [1])+_bcdc .Matrix [7]*_ff .Pow (_fegf ,_bcdc .Gamma [2]);_cbag =_bcdc .Matrix [2]*_ff .Pow (_fgdf ,_bcdc .Gamma [0])+_bcdc .Matrix [5]*_ff .Pow (_aebg ,_bcdc .Gamma [1])+_bcdc .Matrix [8]*_ff .Pow (_fegf ,_bcdc .Gamma [2]);_fgdf =3.240479*_caee +-1.537150*_gagf +-0.498535*_cbag ;_aebg =-0.969256*_caee +1.875992*_gagf +0.041556*_cbag ;_fegf =0.055648*_caee +-0.204043*_gagf +1.057311*_cbag ;_fgdf =_ff .Min (_ff .Max (_fgdf ,0),1.0);_aebg =_ff .Min (_ff .Max (_aebg ,0),1.0);_fegf =_ff .Min (_ff .Max (_fegf ,0),1.0);_egff [0]=uint32 (_fgdf *_gbfc );_egff [1]=uint32 (_aebg *_gbfc );_egff [2]=uint32 (_fegf *_gbfc );if _caed =_bcee .WriteSamples (_egff );_caed !=nil {return img ,_caed ;};};return _baaaa (&_dacaf ),nil ;};
// NewPdfAnnotationSound returns a new sound annotation.
func NewPdfAnnotationSound ()*PdfAnnotationSound {_aeg :=NewPdfAnnotation ();_fff :=&PdfAnnotationSound {};_fff .PdfAnnotation =_aeg ;_fff .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_aeg .SetContext (_fff );return _fff ;};
// 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 (_cfcc *PdfFont )CharcodesToUnicode (charcodes []_gf .CharCode )[]rune {_gagbc ,_ ,_ :=_cfcc .CharcodesToUnicodeWithStats (charcodes );return _gagbc ;};func (_aaccc *pdfFontSimple )getFontDescriptor ()*PdfFontDescriptor {if _gcda :=_aaccc ._ggbg ;_gcda !=nil {return _gcda ;};return _aaccc ._gbaf ;};
// ToInteger convert to an integer format.
func (_fdaf *PdfColorLab )ToInteger (bits int )[3]uint32 {_badgd :=_ff .Pow (2,float64 (bits ))-1;return [3]uint32 {uint32 (_badgd *_fdaf .L ()),uint32 (_badgd *_fdaf .A ()),uint32 (_badgd *_fdaf .B ())};};
// PdfShadingType6 is a Coons patch mesh.
type PdfShadingType6 struct{*PdfShading ;BitsPerCoordinate *_fd .PdfObjectInteger ;BitsPerComponent *_fd .PdfObjectInteger ;BitsPerFlag *_fd .PdfObjectInteger ;Decode *_fd .PdfObjectArray ;Function []PdfFunction ;};func _gaag (_gcae StdFontName )(pdfFontSimple ,error ){_dgagb ,_cdagd :=_aaf .NewStdFontByName (_gcae );if !_cdagd {return pdfFontSimple {},ErrFontNotSupported ;};_addfe :=_bcfbb (_dgagb );return _addfe ,nil ;};
// Inspect inspects the object types, subtypes and content in the PDF file returning a map of
// object type to number of instances of each.
func (_eadab *PdfReader )Inspect ()(map[string ]int ,error ){return _eadab ._egbge .Inspect ()};
// GetPageDict converts the Page to a PDF object dictionary.
func (_fedf *PdfPage )GetPageDict ()*_fd .PdfObjectDictionary {_abfed :=_fedf ._fgbbc ;_abfed .Clear ();_abfed .Set ("\u0054\u0079\u0070\u0065",_fd .MakeName ("\u0050\u0061\u0067\u0065"));_abfed .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_fedf .Parent );if _fedf .LastModified !=nil {_abfed .Set ("\u004c\u0061\u0073t\u004d\u006f\u0064\u0069\u0066\u0069\u0065\u0064",_fedf .LastModified .ToPdfObject ());};if _fedf .Resources !=nil {_abfed .Set ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s",_fedf .Resources .ToPdfObject ());};if _fedf .CropBox !=nil {_abfed .Set ("\u0043r\u006f\u0070\u0042\u006f\u0078",_fedf .CropBox .ToPdfObject ());};if _fedf .MediaBox !=nil {_abfed .Set ("\u004d\u0065\u0064\u0069\u0061\u0042\u006f\u0078",_fedf .MediaBox .ToPdfObject ());};if _fedf .BleedBox !=nil {_abfed .Set ("\u0042\u006c\u0065\u0065\u0064\u0042\u006f\u0078",_fedf .BleedBox .ToPdfObject ());};if _fedf .TrimBox !=nil {_abfed .Set ("\u0054r\u0069\u006d\u0042\u006f\u0078",_fedf .TrimBox .ToPdfObject ());};if _fedf .ArtBox !=nil {_abfed .Set ("\u0041\u0072\u0074\u0042\u006f\u0078",_fedf .ArtBox .ToPdfObject ());};_abfed .SetIfNotNil ("\u0042\u006f\u0078C\u006f\u006c\u006f\u0072\u0049\u006e\u0066\u006f",_fedf .BoxColorInfo );_abfed .SetIfNotNil ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073",_fedf .Contents );if _fedf .Rotate !=nil {_abfed .Set ("\u0052\u006f\u0074\u0061\u0074\u0065",_fd .MakeInteger (*_fedf .Rotate ));};_abfed .SetIfNotNil ("\u0047\u0072\u006fu\u0070",_fedf .Group );_abfed .SetIfNotNil ("\u0054\u0068\u0075m\u0062",_fedf .Thumb );_abfed .SetIfNotNil ("\u0042",_fedf .B );_abfed .SetIfNotNil ("\u0044\u0075\u0072",_fedf .Dur );_abfed .SetIfNotNil ("\u0054\u0072\u0061n\u0073",_fedf .Trans );_abfed .SetIfNotNil ("\u0041\u0041",_fedf .AA );_abfed .SetIfNotNil ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061",_fedf .Metadata );_abfed .SetIfNotNil ("\u0050i\u0065\u0063\u0065\u0049\u006e\u0066o",_fedf .PieceInfo );_abfed .SetIfNotNil ("\u0053\u0074\u0072\u0075\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074\u0073",_fedf .StructParents );_abfed .SetIfNotNil ("\u0049\u0044",_fedf .ID );_abfed .SetIfNotNil ("\u0050\u005a",_fedf .PZ );_abfed .SetIfNotNil ("\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006fn\u0049\u006e\u0066\u006f",_fedf .SeparationInfo );_abfed .SetIfNotNil ("\u0054\u0061\u0062\u0073",_fedf .Tabs );_abfed .SetIfNotNil ("T\u0065m\u0070\u006c\u0061\u0074\u0065\u0049\u006e\u0073t\u0061\u006e\u0074\u0069at\u0065\u0064",_fedf .TemplateInstantiated );_abfed .SetIfNotNil ("\u0050r\u0065\u0073\u0053\u0074\u0065\u0070s",_fedf .PresSteps );_abfed .SetIfNotNil ("\u0055\u0073\u0065\u0072\u0055\u006e\u0069\u0074",_fedf .UserUnit );_abfed .SetIfNotNil ("\u0056\u0050",_fedf .VP );if _fedf ._bfedf !=nil {_edbcb :=_fd .MakeArray ();for _ ,_ggegg :=range _fedf ._bfedf {if _ddfba :=_ggegg .GetContext ();_ddfba !=nil {_edbcb .Append (_ddfba .ToPdfObject ());}else {_edbcb .Append (_ggegg .ToPdfObject ());};};if _edbcb .Len ()> 0{_abfed .Set ("\u0041\u006e\u006e\u006f\u0074\u0073",_edbcb );};}else if _fedf .Annots !=nil {_abfed .SetIfNotNil ("\u0041\u006e\u006e\u006f\u0074\u0073",_fedf .Annots );};return _abfed ;};
// AlphaMap performs mapping of alpha data for transformations. Allows custom filtering of alpha data etc.
func (_gbag *Image )AlphaMap (mapFunc AlphaMapFunc ){for _afffc ,_gdcg :=range _gbag ._cded {_gbag ._cded [_afffc ]=mapFunc (_gdcg );};};var _ pdfFont =(*pdfFontSimple )(nil );
// PdfActionURI represents an URI action.
type PdfActionURI struct{*PdfAction ;URI _fd .PdfObject ;IsMap _fd .PdfObject ;};
// 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 (_cbcd PdfColor )(PdfColor ,error );
// GetNumComponents returns the number of components in the PdfColorspace.
GetNumComponents ()int ;
// ToPdfObject returns a PdfObject representation of the PdfColorspace.
ToPdfObject ()_fd .PdfObject ;
// ColorFromPdfObjects returns a PdfColor in the given PdfColorspace from an array of PdfObject where each
// PdfObject represents a numeric value.
ColorFromPdfObjects (_efdb []_fd .PdfObject )(PdfColor ,error );
// ColorFromFloats returns a new PdfColor based on input color components for a given PdfColorspace.
ColorFromFloats (_dadfd []float64 )(PdfColor ,error );
// DecodeArray returns the Decode array for the PdfColorSpace, i.e. the range of each component.
DecodeArray ()[]float64 ;};
// ToPdfObject returns the PDF representation of the outline tree node.
func (_eede *PdfOutlineTreeNode )ToPdfObject ()_fd .PdfObject {return _eede .GetContext ().ToPdfObject ()};
// C returns the value of the C component of the color.
func (_ecdf *PdfColorCalRGB )C ()float64 {return float64 (_ecdf [2])};
// AllFields returns a flattened list of all fields in the form.
func (_bcbeg *PdfAcroForm )AllFields ()[]*PdfField {if _bcbeg ==nil {return nil ;};var _bbcbe []*PdfField ;if _bcbeg .Fields !=nil {for _ ,_gdgaa :=range *_bcbeg .Fields {_bbcbe =append (_bbcbe ,_gdff (_gdgaa )...);};};return _bbcbe ;};
// PdfAnnotationCircle represents Circle annotations.
// (Section 12.5.6.8).
type PdfAnnotationCircle struct{*PdfAnnotation ;*PdfAnnotationMarkup ;BS _fd .PdfObject ;IC _fd .PdfObject ;BE _fd .PdfObject ;RD _fd .PdfObject ;};
// SetXObjectImageByName adds the provided XObjectImage to the page resources.
// The added XObjectImage is identified by the specified name.
func (_cceac *PdfPageResources )SetXObjectImageByName (keyName _fd .PdfObjectName ,ximg *XObjectImage )error {_gebaa :=ximg .ToPdfObject ().(*_fd .PdfObjectStream );_dbbff :=_cceac .SetXObjectByName (keyName ,_gebaa );return _dbbff ;};
// ToInteger convert to an integer format.
func (_eccd *PdfColorDeviceGray )ToInteger (bits int )uint32 {_bcce :=_ff .Pow (2,float64 (bits ))-1;return uint32 (_bcce *_eccd .Val ());};func (_fbed *PdfReader )flattenFieldsWithOpts (_fefb bool ,_gfbg FieldAppearanceGenerator ,_bffb *FieldFlattenOpts )error {if _bffb ==nil {_bffb =&FieldFlattenOpts {};};var _bcdfb bool ;_acfce :=map[*PdfAnnotation ]bool {};{var _dgeb []*PdfField ;_gcad :=_fbed .AcroForm ;if _gcad !=nil {if _bffb .FilterFunc !=nil {_dgeb =_gcad .filteredFields (_bffb .FilterFunc ,true );_bcdfb =_gcad .Fields !=nil &&len (*_gcad .Fields )> 0;}else {_dgeb =_gcad .AllFields ();};};for _ ,_eefg :=range _dgeb {for _ ,_bgbg :=range _eefg .Annotations {_acfce [_bgbg .PdfAnnotation ]=_eefg .V !=nil ;if _gfbg !=nil {_bbag ,_fecc :=_gfbg .GenerateAppearanceDict (_gcad ,_eefg ,_bgbg );if _fecc !=nil {return _fecc ;};_bgbg .AP =_bbag ;};};};};if _fefb {for _ ,_feccg :=range _fbed .PageList {_bfeb ,_bdbdb :=_feccg .GetAnnotations ();if _bdbdb !=nil {return _bdbdb ;};for _ ,_bcgd :=range _bfeb {_acfce [_bcgd ]=true ;};};};for _ ,_ebbcd :=range _fbed .PageList {var _dcbbc []*PdfAnnotation ;if _gfbg !=nil {if _gdfcf :=_gfbg .WrapContentStream (_ebbcd );_gdfcf !=nil {return _gdfcf ;};};_ccdg ,_cfgb :=_ebbcd .GetAnnotations ();if _cfgb !=nil {return _cfgb ;};for _ ,_fafaa :=range _ccdg {_dbbaa ,_dbcdc :=_acfce [_fafaa ];if !_dbcdc {_dcbbc =append (_dcbbc ,_fafaa );continue ;};switch _fafaa .GetContext ().(type ){case *PdfAnnotationPopup :continue ;case *PdfAnnotationLink :continue ;case *PdfAnnotationProjection :continue ;};_eafd ,_geae ,_bfab :=_affc (_fafaa );if _bfab !=nil {if !_dbbaa {_fca .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 ;};_fca .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",_bfab );continue ;};if _eafd ==nil {continue ;};_efba :=_ebbcd .Resources .GenerateXObjectName ();_ebbcd .Resources .SetXObjectFormByName (_efba ,_eafd );_eafed :=_ff .Min (_geae .Llx ,_geae .Urx );_faeae :=_ff .Min (_geae .Lly ,_geae .Ury );var _fagee []string ;_fagee =append (_fagee ,"\u0071");_fagee =append (_fagee ,_d .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,_eafed ,_faeae ));_fagee =append (_fagee ,_d .Sprintf ("\u002f\u0025\u0073\u0020\u0044\u006f",_efba .String ()));_fagee =append (_fagee ,"\u0051");_gbab :=_gc .Join (_fagee ,"\u000a");_bfab =_ebbcd .AppendContentStream (_gbab );if _bfab !=nil {return _bfab ;};if _eafd .Resources !=nil {_bace ,_efdgd :=_fd .GetDict (_eafd .Resources .Font );if _efdgd {for _ ,_edge :=range _bace .Keys (){if !_ebbcd .Resources .HasFontByName (_edge ){_ebbcd .Resources .SetFontByName (_edge ,_bace .Get (_edge ));};};};};};if len (_dcbbc )> 0{_ebbcd ._bfedf =_dcbbc ;}else {_ebbcd ._bfedf =[]*PdfAnnotation {};};};if !_bcdfb {_fbed .AcroForm =nil ;};return nil ;};
// GetContainingPdfObject returns the container of the outline tree node (indirect object).
func (_gdgab *PdfOutlineTreeNode )GetContainingPdfObject ()_fd .PdfObject {return _gdgab .GetContext ().GetContainingPdfObject ();};
// Height returns the height of `rect`.
func (_ecaed *PdfRectangle )Height ()float64 {return _ff .Abs (_ecaed .Ury -_ecaed .Lly )};
// PdfColorspaceDeviceRGB represents an RGB colorspace.
type PdfColorspaceDeviceRGB struct{};type pdfCIDFontType0 struct{fontCommon ;_ddgbd *_fd .PdfIndirectObject ;_dgfdf _gf .TextEncoder ;
// Table 117 Entries in a CIDFont dictionary (page 269)
// (Required) Dictionary that defines the character collection of the CIDFont.
// See Table 116.
CIDSystemInfo *_fd .PdfObjectDictionary ;
// Glyph metrics fields (optional).
DW _fd .PdfObject ;W _fd .PdfObject ;DW2 _fd .PdfObject ;W2 _fd .PdfObject ;_cadad map[_gf .CharCode ]float64 ;_bbda float64 ;};
// 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 (_ceaeb *PdfColorspaceSpecialPattern )ColorToRGB (color PdfColor )(PdfColor ,error ){_gfdb ,_gceb :=color .(*PdfColorPattern );if !_gceb {_fca .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 _gfdb .Color ==nil {return color ,nil ;};if _ceaeb .UnderlyingCS ==nil {return nil ,_fce .New ("\u0075n\u0064\u0065\u0072\u006cy\u0069\u006e\u0067\u0020\u0043S\u0020n\u006ft\u0020\u0064\u0065\u0066\u0069\u006e\u0065d");};return _ceaeb .UnderlyingCS .ColorToRGB (_gfdb .Color );};
// NewXObjectForm creates a brand new XObject Form. Creates a new underlying PDF object stream primitive.
func NewXObjectForm ()*XObjectForm {_adggef :=&XObjectForm {};_ddcbb :=&_fd .PdfObjectStream {};_ddcbb .PdfObjectDictionary =_fd .MakeDict ();_adggef ._acdg =_ddcbb ;return _adggef ;};
// NewPdfAnnotationCircle returns a new circle annotation.
func NewPdfAnnotationCircle ()*PdfAnnotationCircle {_egg :=NewPdfAnnotation ();_bfd :=&PdfAnnotationCircle {};_bfd .PdfAnnotation =_egg ;_bfd .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_egg .SetContext (_bfd );return _bfd ;};
// Encoder returns the font's text encoder.
func (_cfdgf *PdfFont )Encoder ()_gf .TextEncoder {_fdged :=_cfdgf .actualFont ();if _fdged ==nil {_fca .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",_cfdgf ._bbaa );return nil ;};return _fdged .Encoder ();};
// ToUnicode returns the name of the font's "ToUnicode" field if there is one, or "" if there isn't.
func (_ffde *PdfFont )ToUnicode ()string {if _ffde .baseFields ()._facge ==nil {return "";};return _ffde .baseFields ()._facge .Name ();};
// SetAction sets the PDF action for the annotation link.
func (_fdd *PdfAnnotationLink )SetAction (action *PdfAction ){_fdd ._bda =action ;if action ==nil {_fdd .A =nil ;};};func (_efag *pdfCIDFontType2 )getFontDescriptor ()*PdfFontDescriptor {return _efag ._ggbg };func (_baf *PdfReader )newPdfAnnotationCircleFromDict (_gege *_fd .PdfObjectDictionary )(*PdfAnnotationCircle ,error ){_fba :=PdfAnnotationCircle {};_fad ,_dag :=_baf .newPdfAnnotationMarkupFromDict (_gege );if _dag !=nil {return nil ,_dag ;};_fba .PdfAnnotationMarkup =_fad ;_fba .BS =_gege .Get ("\u0042\u0053");_fba .IC =_gege .Get ("\u0049\u0043");_fba .BE =_gege .Get ("\u0042\u0045");_fba .RD =_gege .Get ("\u0052\u0044");return &_fba ,nil ;};func (_dbc *PdfReader )newPdfAnnotationFromIndirectObject (_bee *_fd .PdfIndirectObject )(*PdfAnnotation ,error ){_fee ,_faad :=_bee .PdfObject .(*_fd .PdfObjectDictionary );if !_faad {return nil ,_d .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 :=_dbc ._gggcg .GetModelFromPrimitive (_fee );model !=nil {_eeed ,_ecd :=model .(*PdfAnnotation );if !_ecd {return nil ,_d .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 _eeed ,nil ;};_cdd :=&PdfAnnotation {};_cdd ._defg =_bee ;_dbc ._gggcg .Register (_fee ,_cdd );if _cad :=_fee .Get ("\u0054\u0079\u0070\u0065");_cad !=nil {_fccg ,_ega :=_cad .(*_fd .PdfObjectName );if !_ega {_fca .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",_cad );}else {if *_fccg !="\u0041\u006e\u006eo\u0074"{_fca .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",*_fccg );};};};if _bfeg :=_fee .Get ("\u0052\u0065\u0063\u0074");_bfeg !=nil {_cdd .Rect =_bfeg ;};if _dba :=_fee .Get ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073");_dba !=nil {_cdd .Contents =_dba ;};if _cde :=_fee .Get ("\u0050");_cde !=nil {_cdd .P =_cde ;};if _afg :=_fee .Get ("\u004e\u004d");_afg !=nil {_cdd .NM =_afg ;};if _geea :=_fee .Get ("\u004d");_geea !=nil {_cdd .M =_geea ;};if _baa :=_fee .Get ("\u0046");_baa !=nil {_cdd .F =_baa ;};if _bad :=_fee .Get ("\u0041\u0050");_bad !=nil {_cdd .AP =_bad ;};if _eef :=_fee .Get ("\u0041\u0053");_eef !=nil {_cdd .AS =_eef ;};if _ecbe :=_fee .Get ("\u0042\u006f\u0072\u0064\u0065\u0072");_ecbe !=nil {_cdd .Border =_ecbe ;};if _cdeb :=_fee .Get ("\u0043");_cdeb !=nil {_cdd .C =_cdeb ;};if _fdac :=_fee .Get ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074");_fdac !=nil {_cdd .StructParent =_fdac ;};if _geca :=_fee .Get ("\u004f\u0043");_geca !=nil {_cdd .OC =_geca ;};_ffcc :=_fee .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065");if _ffcc ==nil {_fca .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");_cdd ._ccd =nil ;return _cdd ,nil ;};_fbge ,_fcd :=_ffcc .(*_fd .PdfObjectName );if !_fcd {_fca .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",_ffcc );return nil ,_d .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",_ffcc );};switch *_fbge {case "\u0054\u0065\u0078\u0074":_dgg ,_bde :=_dbc .newPdfAnnotationTextFromDict (_fee );if _bde !=nil {return nil ,_bde ;};_dgg .PdfAnnotation =_cdd ;_cdd ._ccd =_dgg ;return _cdd ,nil ;case "\u004c\u0069\u006e\u006b":_gaa ,_faf :=_dbc .newPdfAnnotationLinkFromDict (_fee );if _faf !=nil {return nil ,_faf ;};_gaa .PdfAnnotation =_cdd ;_cdd ._ccd =_gaa ;return _cdd ,nil ;case "\u0046\u0072\u0065\u0065\u0054\u0065\u0078\u0074":_gge ,_geeb :=_dbc .newPdfAnnotationFreeTextFromDict (_fee );if _geeb !=nil {return nil ,_geeb ;};_gge .PdfAnnotation =_cdd ;_cdd ._ccd =_gge ;return _cdd ,nil ;case "\u004c\u0069\u006e\u0065":_dbb ,_edb :=_dbc .newPdfAnnotationLineFromDict (_fee );if _edb !=nil {return nil ,_edb ;};_dbb .PdfAnnotation =_cdd ;_cdd ._ccd =_dbb ;_fca .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",_cdd ,_cdd );_fca .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",_dbb ,_dbb );_fca .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",_dbb .PdfAnnotationMarkup ,_dbb .PdfAnnotationMarkup );return _cdd ,nil ;case "\u0053\u0071\u0075\u0061\u0072\u0065":_bcac ,_bfa :=_dbc .newPdfAnnotationSquareFromDict (_fee );if _bfa !=nil {return nil ,_bfa ;};_bcac .PdfAnnotation =_cdd ;_cdd ._ccd =_bcac ;return _cdd ,nil ;case "\u0043\u0069\u0072\u0063\u006c\u0065":_aed ,_fdga :=_dbc .newPdfAnnotationCircleFromDict (_fee );if _fdga !=nil {return nil ,_fdga ;};_aed .PdfAnnotation =_cdd ;_cdd ._ccd =_aed ;return _cdd ,nil ;case "\u0050o\u006c\u0079\u0067\u006f\u006e":_bdg ,_bfgb :=_dbc .newPdfAnnotationPolygonFromDict (_fee );if _bfgb !=nil {return nil ,_bfgb ;};_bdg .PdfAnnotation =_cdd ;_cdd ._ccd =_bdg ;return _cdd ,nil ;case "\u0050\u006f\u006c\u0079\u004c\u0069\u006e\u0065":_dad ,_fceb :=_dbc .newPdfAnnotationPolyLineFromDict (_fee );if _fceb !=nil {return nil ,_fceb ;};_dad .PdfAnnotation =_cdd ;_cdd ._ccd =_dad ;return _cdd ,nil ;case "\u0048i\u0067\u0068\u006c\u0069\u0067\u0068t":_ccf ,_afdf :=_dbc .newPdfAnnotationHighlightFromDict (_fee );if _afdf !=nil {return nil ,_afdf ;};_ccf .PdfAnnotation =_cdd ;_cdd ._ccd =_ccf ;return _cdd ,nil ;case "\u0055n\u0064\u0065\u0072\u006c\u0069\u006ee":_afa ,_aac :=_dbc .newPdfAnnotationUnderlineFromDict (_fee );if _aac !=nil {return nil ,_aac ;};_afa .PdfAnnotation =_cdd ;_cdd ._ccd =_afa ;return _cdd ,nil ;case "\u0053\u0071\u0075\u0069\u0067\u0067\u006c\u0079":_dadb ,_beea :=_dbc .newPdfAnnotationSquigglyFromDict (_fee );if _beea !=nil {return nil ,_beea ;};_dadb .PdfAnnotation =_cdd ;_cdd ._ccd =_dadb ;return _cdd ,nil ;case "\u0053t\u0072\u0069\u006b\u0065\u004f\u0075t":_cgee ,_ebaf :=_dbc .newPdfAnnotationStrikeOut (_fee );if _ebaf !=nil {return nil ,_ebaf ;};_cgee .PdfAnnotation =_cdd ;_cdd ._ccd =_cgee ;return _cdd ,nil ;case "\u0043\u0061\u0072e\u0074":_ddg ,_cfac :=_dbc .newPdfAnnotationCaretFromDict (_fee );if _cfac !=nil {return nil ,_cfac ;};_ddg .PdfAnnotation =_cdd ;_cdd ._ccd =_ddg ;return _cdd ,nil ;case "\u0053\u0074\u0061m\u0070":_fdacf ,_fbgd :=_dbc .newPdfAnnotationStampFromDict (_fee );if _fbgd !=nil {return nil ,_fbgd ;};_fdacf .PdfAnnotation =_cdd ;_cdd ._ccd =_fdacf ;return _cdd ,nil ;case "\u0049\u006e\u006b":_efd ,_cab :=_dbc .newPdfAnnotationInkFromDict (_fee );if _cab !=nil {return nil ,_cab ;};_efd .PdfAnnotation =_cdd ;_cdd ._ccd =_efd ;return _cdd ,nil ;case "\u0050\u006f\u0070u\u0070":_cbc ,_fea :=_dbc .newPdfAnnotationPopupFromDict (_fee );if _fea !=nil {return nil ,_fea ;};_cbc .PdfAnnotation =_cdd ;_cdd ._ccd =_cbc ;return _cdd ,nil ;case "\u0046\u0069\u006c\u0065\u0041\u0074\u0074\u0061\u0063h\u006d\u0065\u006e\u0074":_ddge ,_aedf :=_dbc .newPdfAnnotationFileAttachmentFromDict (_fee );if _aedf !=nil {return nil ,_aedf ;};_ddge .PdfAnnotation =_cdd ;_cdd ._ccd =_ddge ;return _cdd ,nil ;case "\u0053\u006f\u0075n\u0064":_dbaa ,_beb :=_dbc .newPdfAnnotationSoundFromDict (_fee );if _beb !=nil {return nil ,_beb ;};_dbaa .PdfAnnotation =_cdd ;_cdd ._ccd =_dbaa ;return _cdd ,nil ;case "\u0052i\u0063\u0068\u004d\u0065\u0064\u0069a":_dgc ,_gdeb :=_dbc .newPdfAnnotationRichMediaFromDict (_fee );if _gdeb !=nil {return nil ,_gdeb ;};_dgc .PdfAnnotation =_cdd ;_cdd ._ccd =_dgc ;return _cdd ,nil ;case "\u004d\u006f\u0076i\u0065":_bfdbf ,_gcac :=_dbc .newPdfAnnotationMovieFromDict (_fee );if _gcac !=nil {return nil ,_gcac ;};_bfdbf .PdfAnnotation =_cdd ;_cdd ._ccd =_bfdbf ;return _cdd ,nil ;case "\u0053\u0063\u0072\u0065\u0065\u006e":_ffdd ,_fdab :=_dbc .newPdfAnnotationScreenFromDict (_fee );if _fdab !=nil {return nil ,_fdab ;};_ffdd .PdfAnnotation =_cdd ;_cdd ._ccd =_ffdd ;return _cdd ,nil ;case "\u0057\u0069\u0064\u0067\u0065\u0074":_eaec ,_dae :=_dbc .newPdfAnnotationWidgetFromDict (_fee );if _dae !=nil {return nil ,_dae ;};_eaec .PdfAnnotation =_cdd ;_cdd ._ccd =_eaec ;return _cdd ,nil ;case "P\u0072\u0069\u006e\u0074\u0065\u0072\u004d\u0061\u0072\u006b":_bff ,_cfea :=_dbc .newPdfAnnotationPrinterMarkFromDict (_fee );if _cfea !=nil {return nil ,_cfea ;};_bff .PdfAnnotation =_cdd ;_cdd ._ccd =_bff ;return _cdd ,nil ;case "\u0054r\u0061\u0070\u004e\u0065\u0074":_ccbb ,_ddgg :=_dbc .newPdfAnnotationTrapNetFromDict (_fee );if _ddgg !=nil {return nil ,_ddgg ;};_ccbb .PdfAnnotation =_cdd ;_cdd ._ccd =_ccbb ;return _cdd ,nil ;case "\u0057a\u0074\u0065\u0072\u006d\u0061\u0072k":_gcd ,_aedb :=_dbc .newPdfAnnotationWatermarkFromDict (_fee );if _aedb !=nil {return nil ,_aedb ;};_gcd .PdfAnnotation =_cdd ;_cdd ._ccd =_gcd ;return _cdd ,nil ;case "\u0033\u0044":_bced ,_bade :=_dbc .newPdfAnnotation3DFromDict (_fee );if _bade !=nil {return nil ,_bade ;};_bced .PdfAnnotation =_cdd ;_cdd ._ccd =_bced ;return _cdd ,nil ;case "\u0050\u0072\u006f\u006a\u0065\u0063\u0074\u0069\u006f\u006e":_gae ,_ccfd :=_dbc .newPdfAnnotationProjectionFromDict (_fee );if _ccfd !=nil {return nil ,_ccfd ;};_gae .PdfAnnotation =_cdd ;_cdd ._ccd =_gae ;return _cdd ,nil ;case "\u0052\u0065\u0064\u0061\u0063\u0074":_cacb ,_bfec :=_dbc .newPdfAnnotationRedactFromDict (_fee );if _bfec !=nil {return nil ,_bfec ;};_cacb .PdfAnnotation =_cdd ;_cdd ._ccd =_cacb ;return _cdd ,nil ;};_fca .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",*_fbge );return nil ,nil ;};
// Subtype returns the font's "Subtype" field.
func (_ggaf *PdfFont )Subtype ()string {_bfff :=_ggaf .baseFields ()._ccea ;if _cfcee ,_faecf :=_ggaf ._bbaa .(*pdfFontType0 );_faecf {_bfff =_bfff +"\u003a"+_cfcee .DescendantFont .Subtype ();};return _bfff ;};
// PdfAnnotationMovie represents Movie annotations.
// (Section 12.5.6.17).
type PdfAnnotationMovie struct{*PdfAnnotation ;T _fd .PdfObject ;Movie _fd .PdfObject ;A _fd .PdfObject ;};
// ToPdfObject implements interface PdfModel.
func (_bgb *PdfActionGoToE )ToPdfObject ()_fd .PdfObject {_bgb .PdfAction .ToPdfObject ();_caf :=_bgb ._fgb ;_gdf :=_caf .PdfObject .(*_fd .PdfObjectDictionary );_gdf .SetIfNotNil ("\u0053",_fd .MakeName (string (ActionTypeGoToE )));if _bgb .F !=nil {_gdf .Set ("\u0046",_bgb .F .ToPdfObject ());};_gdf .SetIfNotNil ("\u0044",_bgb .D );_gdf .SetIfNotNil ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw",_bgb .NewWindow );_gdf .SetIfNotNil ("\u0054",_bgb .T );return _caf ;};func _fdge (_ecacc _fd .PdfObject )(*PdfColorspaceSpecialIndexed ,error ){_ecad :=NewPdfColorspaceSpecialIndexed ();if _ddgeg ,_bccfd :=_ecacc .(*_fd .PdfIndirectObject );_bccfd {_ecad ._fgga =_ddgeg ;};_ecacc =_fd .TraceToDirectObject (_ecacc );_fced ,_cdcc :=_ecacc .(*_fd .PdfObjectArray );if !_cdcc {return nil ,_d .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _fced .Len ()!=4{return nil ,_d .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");};_ecacc =_fced .Get (0);_eggbc ,_cdcc :=_ecacc .(*_fd .PdfObjectName );if !_cdcc {return nil ,_d .Errorf ("\u0069n\u0064\u0065\u0078\u0065\u0064\u0020\u0043\u0053\u003a\u0020\u0069n\u0076\u0061\u006c\u0069\u0064\u0020\u006e\u0061\u006d\u0065");};if *_eggbc !="\u0049n\u0064\u0065\u0078\u0065\u0064"{return nil ,_d .Errorf ("\u0069\u006e\u0064\u0065xe\u0064\u0020\u0043\u0053\u003a\u0020\u0077\u0072\u006f\u006e\u0067\u0020\u006e\u0061m\u0065");};_ecacc =_fced .Get (1);_bbee ,_fcgg :=DetermineColorspaceNameFromPdfObject (_ecacc );if _bbee =="\u0049n\u0064\u0065\u0078\u0065\u0064"||_bbee =="\u0050a\u0074\u0074\u0065\u0072\u006e"{_fca .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",_bbee );return nil ,_fgbb ;};_fcec ,_fcgg :=NewPdfColorspaceFromPdfObject (_ecacc );if _fcgg !=nil {return nil ,_fcgg ;};_ecad .Base =_fcec ;_ecacc =_fced .Get (2);_ggbc ,_fcgg :=_fd .GetNumberAsInt64 (_ecacc );if _fcgg !=nil {return nil ,_fcgg ;};if _ggbc > 255{return nil ,_d .Errorf ("\u0069n\u0064\u0065\u0078\u0065d\u0020\u0043\u0053\u003a\u0020I\u006ev\u0061l\u0069\u0064\u0020\u0068\u0069\u0076\u0061l");};_ecad .HiVal =int (_ggbc );_ecacc =_fced .Get (3);_ecad .Lookup =_ecacc ;_ecacc =_fd .TraceToDirectObject (_ecacc );var _bccag []byte ;if _ebab ,_fcfb :=_ecacc .(*_fd .PdfObjectString );_fcfb {_bccag =_ebab .Bytes ();_fca .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",_bccag );}else if _adfg ,_bba :=_ecacc .(*_fd .PdfObjectStream );_bba {_fca .Log .Trace ("\u0049n\u0064e\u0078\u0065\u0064\u0020\u0073t\u0072\u0065a\u006d\u003a\u0020\u0025\u0073",_ecacc .String ());_fca .Log .Trace ("\u0045\u006e\u0063\u006fde\u0064\u0020\u0028\u0025\u0064\u0029\u0020\u003a\u0020\u0025\u0023\u0020\u0078",len (_adfg .Stream ),_adfg .Stream );_aebe ,_ccef :=_fd .DecodeStream (_adfg );if _ccef !=nil {return nil ,_ccef ;};_fca .Log .Trace ("\u0044e\u0063o\u0064\u0065\u0064\u0020\u0028%\u0064\u0029 \u003a\u0020\u0025\u0020\u0058",len (_aebe ),_aebe );_bccag =_aebe ;}else {_fca .Log .Debug ("\u0054\u0079\u0070\u0065\u003a\u0020\u0025\u0054",_ecacc );return nil ,_d .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 (_bccag )< _ecad .Base .GetNumComponents ()*(_ecad .HiVal +1){_fca .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");_fca .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 (_bccag ),_ecad .Base .GetNumComponents (),_ecad .HiVal );}else {_bccag =_bccag [:_ecad .Base .GetNumComponents ()*(_ecad .HiVal +1)];};_ecad ._cfbf =_bccag ;return _ecad ,nil ;};
// String returns a string representation of what flags are set.
func (_fgfa FieldFlag )String ()string {_cgdc :="";if _fgfa ==FieldFlagClear {_cgdc ="\u0043\u006c\u0065a\u0072";return _cgdc ;};if _fgfa &FieldFlagReadOnly > 0{_cgdc +="\u007cR\u0065\u0061\u0064\u004f\u006e\u006cy";};if _fgfa &FieldFlagRequired > 0{_cgdc +="\u007cR\u0065\u0061\u0064\u004f\u006e\u006cy";};if _fgfa &FieldFlagNoExport > 0{_cgdc +="\u007cN\u006f\u0045\u0078\u0070\u006f\u0072t";};if _fgfa &FieldFlagNoToggleToOff > 0{_cgdc +="\u007c\u004e\u006f\u0054\u006f\u0067\u0067\u006c\u0065T\u006f\u004f\u0066\u0066";};if _fgfa &FieldFlagRadio > 0{_cgdc +="\u007c\u0052\u0061\u0064\u0069\u006f";};if _fgfa &FieldFlagPushbutton > 0{_cgdc +="|\u0050\u0075\u0073\u0068\u0062\u0075\u0074\u0074\u006f\u006e";};if _fgfa &FieldFlagRadiosInUnision > 0{_cgdc +="\u007c\u0052a\u0064\u0069\u006fs\u0049\u006e\u0055\u006e\u0069\u0073\u0069\u006f\u006e";};if _fgfa &FieldFlagMultiline > 0{_cgdc +="\u007c\u004d\u0075\u006c\u0074\u0069\u006c\u0069\u006e\u0065";};if _fgfa &FieldFlagPassword > 0{_cgdc +="\u007cP\u0061\u0073\u0073\u0077\u006f\u0072d";};if _fgfa &FieldFlagFileSelect > 0{_cgdc +="|\u0046\u0069\u006c\u0065\u0053\u0065\u006c\u0065\u0063\u0074";};if _fgfa &FieldFlagDoNotScroll > 0{_cgdc +="\u007c\u0044\u006fN\u006f\u0074\u0053\u0063\u0072\u006f\u006c\u006c";};if _fgfa &FieldFlagComb > 0{_cgdc +="\u007c\u0043\u006fm\u0062";};if _fgfa &FieldFlagRichText > 0{_cgdc +="\u007cR\u0069\u0063\u0068\u0054\u0065\u0078t";};if _fgfa &FieldFlagDoNotSpellCheck > 0{_cgdc +="\u007c\u0044o\u004e\u006f\u0074S\u0070\u0065\u006c\u006c\u0043\u0068\u0065\u0063\u006b";};if _fgfa &FieldFlagCombo > 0{_cgdc +="\u007c\u0043\u006f\u006d\u0062\u006f";};if _fgfa &FieldFlagEdit > 0{_cgdc +="\u007c\u0045\u0064i\u0074";};if _fgfa &FieldFlagSort > 0{_cgdc +="\u007c\u0053\u006fr\u0074";};if _fgfa &FieldFlagMultiSelect > 0{_cgdc +="\u007c\u004d\u0075l\u0074\u0069\u0053\u0065\u006c\u0065\u0063\u0074";};if _fgfa &FieldFlagCommitOnSelChange > 0{_cgdc +="\u007cC\u006fm\u006d\u0069\u0074\u004f\u006eS\u0065\u006cC\u0068\u0061\u006e\u0067\u0065";};return _gc .Trim (_cgdc ,"\u007c");};
// GetContentStream returns the XObject Form's content stream.
func (_dbdgf *XObjectForm )GetContentStream ()([]byte ,error ){_becfg ,_bbfdb :=_fd .DecodeStream (_dbdgf ._acdg );if _bbfdb !=nil {return nil ,_bbfdb ;};return _becfg ,nil ;};
// NewPdfFontFromTTFFile loads a TTF font file and returns a PdfFont type
// that can be used in text styling functions.
// Uses a WinAnsiTextEncoder and loads only character codes 32-255.
// NOTE: For composite fonts such as used in symbolic languages, use NewCompositePdfFontFromTTFFile.
func NewPdfFontFromTTFFile (filePath string )(*PdfFont ,error ){_cdacd ,_gabcbd :=_ab .Open (filePath );if _gabcbd !=nil {_fca .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",_gabcbd );return nil ,_gabcbd ;};defer _cdacd .Close ();return NewPdfFontFromTTF (_cdacd );};func _cgfea (_dcabc *_fd .PdfObjectStream )(*PdfFunctionType0 ,error ){_bbfgb :=&PdfFunctionType0 {};_bbfgb ._bdbf =_dcabc ;_gaedg :=_dcabc .PdfObjectDictionary ;_gcbf ,_dgcga :=_fd .TraceToDirectObject (_gaedg .Get ("\u0044\u006f\u006d\u0061\u0069\u006e")).(*_fd .PdfObjectArray );if !_dgcga {_fca .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_fce .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 _gcbf .Len ()< 0||_gcbf .Len ()%2!=0{_fca .Log .Error ("\u0044\u006f\u006d\u0061\u0069\u006e\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");return nil ,_fce .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0064\u006f\u006da\u0069\u006e\u0020\u0072an\u0067\u0065");};_bbfgb .NumInputs =_gcbf .Len ()/2;_gcacd ,_ceadg :=_gcbf .ToFloat64Array ();if _ceadg !=nil {return nil ,_ceadg ;};_bbfgb .Domain =_gcacd ;_gcbf ,_dgcga =_fd .TraceToDirectObject (_gaedg .Get ("\u0052\u0061\u006eg\u0065")).(*_fd .PdfObjectArray );if !_dgcga {_fca .Log .Error ("\u0052\u0061\u006e\u0067e \u006e\u006f\u0074\u0020\u0073\u0070\u0065\u0063\u0069\u0066\u0069\u0065\u0064");return nil ,_fce .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 _gcbf .Len ()< 0||_gcbf .Len ()%2!=0{return nil ,_fce .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0061\u006e\u0067\u0065");};_bbfgb .NumOutputs =_gcbf .Len ()/2;_fagec ,_ceadg :=_gcbf .ToFloat64Array ();if _ceadg !=nil {return nil ,_ceadg ;};_bbfgb .Range =_fagec ;_gcbf ,_dgcga =_fd .TraceToDirectObject (_gaedg .Get ("\u0053\u0069\u007a\u0065")).(*_fd .PdfObjectArray );if !_dgcga {_fca .Log .Error ("\u0053i\u007ae\u0020\u006e\u006f\u0074\u0020s\u0070\u0065c\u0069\u0066\u0069\u0065\u0064");return nil ,_fce .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");};_ccbbe ,_ceadg :=_gcbf .ToIntegerArray ();if _ceadg !=nil {return nil ,_ceadg ;};if len (_ccbbe )!=_bbfgb .NumInputs {_fca .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 ,_fce .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_bbfgb .Size =_ccbbe ;_facc ,_dgcga :=_fd .TraceToDirectObject (_gaedg .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0053\u0061\u006d\u0070\u006c\u0065")).(*_fd .PdfObjectInteger );if !_dgcga {_fca .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 ,_fce .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 *_facc !=1&&*_facc !=2&&*_facc !=4&&*_facc !=8&&*_facc !=12&&*_facc !=16&&*_facc !=24&&*_facc !=32{_fca .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",*_facc );return nil ,_fce .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_bbfgb .BitsPerSample =int (*_facc );_bbfgb .Order =1;_ebbbe ,_dgcga :=_fd .TraceToDirectObject (_gaedg .Get ("\u004f\u0072\u0064e\u0072")).(*_fd .PdfObjectInteger );if _dgcga {if *_ebbbe !=1&&*_ebbbe !=3{_fca .Log .Error ("\u0049n\u0076a\u006c\u0069\u0064\u0020\u006fr\u0064\u0065r\u0020\u0028\u0025\u0064\u0029",*_ebbbe );return nil ,_fce .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_bbfgb .Order =int (*_ebbbe );};_gcbf ,_dgcga =_fd .TraceToDirectObject (_gaedg .Get ("\u0045\u006e\u0063\u006f\u0064\u0065")).(*_fd .PdfObjectArray );if _dgcga {_adeg ,_gagg :=_gcbf .ToFloat64Array ();if _gagg !=nil {return nil ,_gagg ;};_bbfgb .Encode =_adeg ;};_gcbf ,_dgcga =_fd .TraceToDirectObject (_gaedg .Get ("\u0044\u0065\u0063\u006f\u0064\u0065")).(*_fd .PdfObjectArray );if _dgcga {_agdd ,_eebbd :=_gcbf .ToFloat64Array ();if _eebbd !=nil {return nil ,_eebbd ;};_bbfgb .Decode =_agdd ;};_gagca ,_ceadg :=_fd .DecodeStream (_dcabc );if _ceadg !=nil {return nil ,_ceadg ;};_bbfgb ._cdgce =_gagca ;return _bbfgb ,nil ;};
// ColorToRGB converts a color in Separation colorspace to RGB colorspace.
func (_aace *PdfColorspaceSpecialSeparation )ColorToRGB (color PdfColor )(PdfColor ,error ){if _aace .AlternateSpace ==nil {return nil ,_fce .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 _aace .AlternateSpace .ColorToRGB (color );};
// 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 (_dbdbc DefaultImageHandler )Compress (input *Image ,quality int64 )(*Image ,error ){return input ,nil ;};func (_cdad *PdfReader )newPdfFieldFromIndirectObject (_dagd *_fd .PdfIndirectObject ,_cfagd *PdfField )(*PdfField ,error ){if _daagag ,_debe :=_cdad ._gggcg .GetModelFromPrimitive (_dagd ).(*PdfField );_debe {return _daagag ,nil ;};_caeac ,_fbccd :=_fd .GetDict (_dagd );if !_fbccd {return nil ,_d .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");};_baabf :=NewPdfField ();_baabf ._fbef =_dagd ;_baabf ._fbef .PdfObject =_caeac ;_edga :=false ;if _bbdc ,_dgag :=_fd .GetName (_caeac .Get ("\u0046\u0054"));_dgag {_baabf .FT =_bbdc ;_edga =true ;};_baabf ._fcadd =&_edga ;_baabf .T ,_ =_caeac .Get ("\u0054").(*_fd .PdfObjectString );_baabf .TU ,_ =_caeac .Get ("\u0054\u0055").(*_fd .PdfObjectString );_baabf .TM ,_ =_caeac .Get ("\u0054\u004d").(*_fd .PdfObjectString );_baabf .Ff ,_ =_caeac .Get ("\u0046\u0066").(*_fd .PdfObjectInteger );_baabf .V =_caeac .Get ("\u0056");_baabf .DV =_caeac .Get ("\u0044\u0056");_baabf .AA =_caeac .Get ("\u0041\u0041");if _baabf .FT !=nil {switch *_baabf .FT {case "\u0054\u0078":_cdffe ,_aadba :=_begbg (_caeac );if _aadba !=nil {return nil ,_aadba ;};_cdffe .PdfField =_baabf ;_baabf ._cacd =_cdffe ;case "\u0043\u0068":_ccfe ,_bddgb :=_adca (_caeac );if _bddgb !=nil {return nil ,_bddgb ;};_ccfe .PdfField =_baabf ;_baabf ._cacd =_ccfe ;case "\u0042\u0074\u006e":_edgc ,_gbdd :=_edded (_caeac );if _gbdd !=nil {return nil ,_gbdd ;};_edgc .PdfField =_baabf ;_baabf ._cacd =_edgc ;case "\u0053\u0069\u0067":_gdfa ,_dffbf :=_cdad .newPdfFieldSignatureFromDict (_caeac );if _dffbf !=nil {return nil ,_dffbf ;};_gdfa .PdfField =_baabf ;_baabf ._cacd =_gdfa ;default:_fca .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",*_baabf .FT );return nil ,_fce .New ("\u0075\u006e\u0073\u0075pp\u006f\u0072\u0074\u0065\u0064\u0020\u0066\u0069\u0065\u006c\u0064\u0020\u0074\u0079p\u0065");};};if _cfagd !=nil {_baabf .Parent =_cfagd ;};_baabf .Annotations =[]*PdfAnnotationWidget {};if _afeb ,_bdcg :=_fd .GetName (_caeac .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065"));_bdcg {if *_afeb =="\u0057\u0069\u0064\u0067\u0065\u0074"{_cbdgd ,_fbdf :=_cdad .newPdfAnnotationFromIndirectObject (_dagd );if _fbdf !=nil {return nil ,_fbdf ;};_bdcde ,_gbeaf :=_cbdgd .GetContext ().(*PdfAnnotationWidget );if !_gbeaf {return nil ,_fce .New ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0077\u0069\u0064\u0067e\u0074 \u0061n\u006e\u006f\u0074\u0061\u0074\u0069\u006fn");};_bdcde ._eaeb =_baabf ;_bdcde .Parent =_baabf ._fbef ;_baabf .Annotations =append (_baabf .Annotations ,_bdcde );return _baabf ,nil ;};};if _ebg ,_cfagf :=_fd .GetArray (_caeac .Get ("\u004b\u0069\u0064\u0073"));_cfagf {_baabf .Kids =[]*PdfField {};for _ ,_abfde :=range _ebg .Elements (){_ggee ,_gbce :=_fd .GetIndirect (_abfde );if !_gbce {_bbbbg ,_fbec :=_fd .GetStream (_abfde );if _fbec &&_bbbbg .PdfObjectDictionary !=nil {_dbabb ,_efdba :=_fd .GetNameVal (_bbbbg .Get ("\u0054\u0079\u0070\u0065"));if _efdba &&_dbabb =="\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061"{_fca .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 ,_fce .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");};_caac ,_dccd :=_fd .GetDict (_ggee );if !_dccd {return nil ,ErrTypeCheck ;};_ ,_dcbbd :=_fd .GetName (_caac .Get ("\u0046\u0054"));if _aagbd ,_ggced :=_fd .GetName (_caac .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065"));_ggced &&!_dcbbd &&*_aagbd =="\u0057\u0069\u0064\u0067\u0065\u0074"{_abeb ,_dcfaa :=_cdad .newPdfAnnotationFromIndirectObject (_ggee );if _dcfaa !=nil {_fca .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",_dcfaa );return nil ,_dcfaa ;};_bgca ,_gbgd :=_abeb ._ccd .(*PdfAnnotationWidget );if !_gbgd {return nil ,ErrTypeCheck ;};_bgca ._eaeb =_baabf ;_baabf .Annotations =append (_baabf .Annotations ,_bgca );}else {_fgdb ,_eadg :=_cdad .newPdfFieldFromIndirectObject (_ggee ,_baabf );if _eadg !=nil {_fca .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",_eadg );return nil ,_eadg ;};_baabf .Kids =append (_baabf .Kids ,_fgdb );};};};return _baabf ,nil ;};func (_egbef *XObjectImage )getParamsDict ()*_fd .PdfObjectDictionary {_bdgf :=_fd .MakeDict ();_bdgf .Set ("\u0057\u0069\u0064t\u0068",_fd .MakeInteger (*_egbef .Width ));_bdgf .Set ("\u0048\u0065\u0069\u0067\u0068\u0074",_fd .MakeInteger (*_egbef .Height ));_bdgf .Set ("\u0043o\u006co\u0072\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074\u0073",_fd .MakeInteger (int64 (_egbef .ColorSpace .GetNumComponents ())));_bdgf .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_fd .MakeInteger (*_egbef .BitsPerComponent ));return _bdgf ;};
// GetNumComponents returns the number of color components of the underlying
// colorspace device.
func (_gebb *PdfColorspaceSpecialPattern )GetNumComponents ()int {return _gebb .UnderlyingCS .GetNumComponents ();};
// ColorToRGB converts a CMYK32 color to an RGB color.
func (_decf *PdfColorspaceDeviceCMYK )ColorToRGB (color PdfColor )(PdfColor ,error ){_cbfa ,_cddbb :=color .(*PdfColorDeviceCMYK );if !_cddbb {_fca .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 ,_fce .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_dcbg :=_cbfa .C ();_gabc :=_cbfa .M ();_bffcd :=_cbfa .Y ();_cfgcf :=_cbfa .K ();_dcbg =_dcbg *(1-_cfgcf )+_cfgcf ;_gabc =_gabc *(1-_cfgcf )+_cfgcf ;_bffcd =_bffcd *(1-_cfgcf )+_cfgcf ;_gbbe :=1-_dcbg ;_baac :=1-_gabc ;_cedc :=1-_bffcd ;return NewPdfColorDeviceRGB (_gbbe ,_baac ,_cedc ),nil ;};
// NewPdfActionTrans returns a new "trans" action.
func NewPdfActionTrans ()*PdfActionTrans {_fgg :=NewPdfAction ();_aad :=&PdfActionTrans {};_aad .PdfAction =_fgg ;_fgg .SetContext (_aad );return _aad ;};
// NewPdfActionLaunch returns a new "launch" action.
func NewPdfActionLaunch ()*PdfActionLaunch {_eaa :=NewPdfAction ();_cfb :=&PdfActionLaunch {};_cfb .PdfAction =_eaa ;_eaa .SetContext (_cfb );return _cfb ;};
// 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 (_bdabc *PdfReader )RepairAcroForm (opts *AcroFormRepairOptions )error {var _fdfa []*PdfField ;_fbgbf :=map[*_fd .PdfIndirectObject ]struct{}{};for _ ,_dbfgd :=range _bdabc .PageList {_ddfc ,_eddaa :=_dbfgd .GetAnnotations ();if _eddaa !=nil {return _eddaa ;};for _ ,_caaaba :=range _ddfc {var _aacf *PdfField ;switch _adbfgc :=_caaaba .GetContext ().(type ){case *PdfAnnotationWidget :if _adbfgc ._eaeb !=nil {_aacf =_adbfgc ._eaeb ;break ;};if _ggecfg ,_dgdgf :=_fd .GetIndirect (_adbfgc .Parent );_dgdgf {_aacf ,_eddaa =_bdabc .newPdfFieldFromIndirectObject (_ggecfg ,nil );if _eddaa ==nil {break ;};_fca .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",_ggecfg ,_eddaa );};if _adbfgc ._defg !=nil {_aacf ,_eddaa =_bdabc .newPdfFieldFromIndirectObject (_adbfgc ._defg ,nil );if _eddaa ==nil {break ;};_fca .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",_adbfgc ._defg ,_eddaa );};};if _aacf ==nil {continue ;};if _ ,_cffc :=_fbgbf [_aacf ._fbef ];_cffc {continue ;};_fbgbf [_aacf ._fbef ]=struct{}{};_fdfa =append (_fdfa ,_aacf );};};if len (_fdfa )==0{return nil ;};if _bdabc .AcroForm ==nil {_bdabc .AcroForm =NewPdfAcroForm ();};_bdabc .AcroForm .Fields =&_fdfa ;return nil ;};
// AlphaMapFunc represents a alpha mapping function: byte -> byte. Can be used for
// thresholding the alpha channel, i.e. setting all alpha values below threshold to transparent.
type AlphaMapFunc func (_fafab byte )byte ;
// SetPdfKeywords sets the Keywords attribute of the output PDF.
func SetPdfKeywords (keywords string ){_ggeee =keywords };
// ToPdfOutlineItem returns a low level PdfOutlineItem object,
// based on the current instance.
func (_ffffc *OutlineItem )ToPdfOutlineItem ()(*PdfOutlineItem ,int64 ){_ecddf :=NewPdfOutlineItem ();_ecddf .Title =_fd .MakeEncodedString (_ffffc .Title ,true );_ecddf .Dest =_ffffc .Dest .ToPdfObject ();var _gddd []*PdfOutlineItem ;var _fbcd int64 ;var _gcebg *PdfOutlineItem ;for _ ,_febcf :=range _ffffc .Entries {_feaa ,_cdea :=_febcf .ToPdfOutlineItem ();_feaa .Parent =&_ecddf .PdfOutlineTreeNode ;if _gcebg !=nil {_gcebg .Next =&_feaa .PdfOutlineTreeNode ;_feaa .Prev =&_gcebg .PdfOutlineTreeNode ;};_gddd =append (_gddd ,_feaa );_fbcd +=_cdea ;_gcebg =_feaa ;};_gebaf :=len (_gddd );_fbcd +=int64 (_gebaf );if _gebaf > 0{_ecddf .First =&_gddd [0].PdfOutlineTreeNode ;_ecddf .Last =&_gddd [_gebaf -1].PdfOutlineTreeNode ;_ecddf .Count =&_fbcd ;};return _ecddf ,_fbcd ;};func _cfadfb (_accbb *PdfPage ){_gdfbg :=_aa .GetLicenseKey ();if _gdfbg !=nil &&_gdfbg .IsLicensed (){return ;};_cdcbd :=_fd .PdfObjectName ("\u0055\u0046\u0031");if !_accbb .Resources .HasFontByName (_cdcbd ){_accbb .Resources .SetFontByName (_cdcbd ,DefaultFont ().ToPdfObject ());};var _fbbba []string ;_fbbba =append (_fbbba ,"\u0071");_fbbba =append (_fbbba ,"\u0042\u0054");_fbbba =append (_fbbba ,_d .Sprintf ("\u002f%\u0073\u0020\u0031\u0034\u0020\u0054f",_cdcbd .String ()));_fbbba =append (_fbbba ,"\u0031\u0020\u0030\u0020\u0030\u0020\u0072\u0067");_fbbba =append (_fbbba ,"\u0031\u0030\u0020\u0031\u0030\u0020\u0054\u0064");_ffbdc :="\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";_fbbba =append (_fbbba ,_d .Sprintf ("\u0028%\u0073\u0029\u0020\u0054\u006a",_ffbdc ));_fbbba =append (_fbbba ,"\u0045\u0054");_fbbba =append (_fbbba ,"\u0051");_daddd :=_gc .Join (_fbbba ,"\u000a");_accbb .AddContentStreamByString (_daddd );_accbb .ToPdfObject ();};
// GetPatternByName gets the pattern specified by keyName. Returns nil if not existing.
// The bool flag indicated whether it was found or not.
func (_bgff *PdfPageResources )GetPatternByName (keyName _fd .PdfObjectName )(*PdfPattern ,bool ){if _bgff .Pattern ==nil {return nil ,false ;};_bacfb ,_ddbc :=_fd .TraceToDirectObject (_bgff .Pattern ).(*_fd .PdfObjectDictionary );if !_ddbc {_fca .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",_bgff .Pattern );return nil ,false ;};if _dcaea :=_bacfb .Get (keyName );_dcaea !=nil {_aggdd ,_ffcee :=_bfabga (_dcaea );if _ffcee !=nil {_fca .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",_ffcee );return nil ,false ;};return _aggdd ,true ;};return nil ,false ;};func (_cfge *PdfReader )newPdfAnnotationLineFromDict (_gddgd *_fd .PdfObjectDictionary )(*PdfAnnotationLine ,error ){_dbbf :=PdfAnnotationLine {};_gfc ,_bdddc :=_cfge .newPdfAnnotationMarkupFromDict (_gddgd );if _bdddc !=nil {return nil ,_bdddc ;};_dbbf .PdfAnnotationMarkup =_gfc ;_dbbf .L =_gddgd .Get ("\u004c");_dbbf .BS =_gddgd .Get ("\u0042\u0053");_dbbf .LE =_gddgd .Get ("\u004c\u0045");_dbbf .IC =_gddgd .Get ("\u0049\u0043");_dbbf .LL =_gddgd .Get ("\u004c\u004c");_dbbf .LLE =_gddgd .Get ("\u004c\u004c\u0045");_dbbf .Cap =_gddgd .Get ("\u0043\u0061\u0070");_dbbf .IT =_gddgd .Get ("\u0049\u0054");_dbbf .LLO =_gddgd .Get ("\u004c\u004c\u004f");_dbbf .CP =_gddgd .Get ("\u0043\u0050");_dbbf .Measure =_gddgd .Get ("\u004de\u0061\u0073\u0075\u0072\u0065");_dbbf .CO =_gddgd .Get ("\u0043\u004f");return &_dbbf ,nil ;};
// NewXObjectFormFromStream builds the Form XObject from a stream object.
// TODO: Should this be exposed? Consider different access points.
func NewXObjectFormFromStream (stream *_fd .PdfObjectStream )(*XObjectForm ,error ){_bfgec :=&XObjectForm {};_bfgec ._acdg =stream ;_ecea :=*(stream .PdfObjectDictionary );_addcf ,_cbff :=_fd .NewEncoderFromStream (stream );if _cbff !=nil {return nil ,_cbff ;};_bfgec .Filter =_addcf ;if _ceeaf :=_ecea .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065");_ceeaf !=nil {_fcaa ,_deac :=_ceeaf .(*_fd .PdfObjectName );if !_deac {return nil ,_fce .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if *_fcaa !="\u0046\u006f\u0072\u006d"{_fca .Log .Debug ("I\u006ev\u0061\u006c\u0069\u0064\u0020\u0066\u006f\u0072m\u0020\u0073\u0075\u0062ty\u0070\u0065");return nil ,_fce .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0066\u006f\u0072m\u0020\u0073\u0075\u0062ty\u0070\u0065");};};if _fdgag :=_ecea .Get ("\u0046\u006f\u0072\u006d\u0054\u0079\u0070\u0065");_fdgag !=nil {_bfgec .FormType =_fdgag ;};if _eacfd :=_ecea .Get ("\u0042\u0042\u006f\u0078");_eacfd !=nil {_bfgec .BBox =_eacfd ;};if _egagg :=_ecea .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");_egagg !=nil {_bfgec .Matrix =_egagg ;};if _bdad :=_ecea .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");_bdad !=nil {_bdad =_fd .TraceToDirectObject (_bdad );_cgcba ,_gfbgef :=_bdad .(*_fd .PdfObjectDictionary );if !_gfbgef {_fca .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 ,_fd .ErrTypeError ;};_degae ,_gceed :=NewPdfPageResourcesFromDict (_cgcba );if _gceed !=nil {_fca .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 ,_gceed ;};_bfgec .Resources =_degae ;_fca .Log .Trace ("\u0046\u006f\u0072\u006d r\u0065\u0073\u006f\u0075\u0072\u0063\u0065\u0073\u003a\u0020\u0025\u0023\u0076",_bfgec .Resources );};_bfgec .Group =_ecea .Get ("\u0047\u0072\u006fu\u0070");_bfgec .Ref =_ecea .Get ("\u0052\u0065\u0066");_bfgec .MetaData =_ecea .Get ("\u004d\u0065\u0074\u0061\u0044\u0061\u0074\u0061");_bfgec .PieceInfo =_ecea .Get ("\u0050i\u0065\u0063\u0065\u0049\u006e\u0066o");_bfgec .LastModified =_ecea .Get ("\u004c\u0061\u0073t\u004d\u006f\u0064\u0069\u0066\u0069\u0065\u0064");_bfgec .StructParent =_ecea .Get ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074");_bfgec .StructParents =_ecea .Get ("\u0053\u0074\u0072\u0075\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074\u0073");_bfgec .OPI =_ecea .Get ("\u004f\u0050\u0049");_bfgec .OC =_ecea .Get ("\u004f\u0043");_bfgec .Name =_ecea .Get ("\u004e\u0061\u006d\u0065");_bfgec .Stream =stream .Stream ;return _bfgec ,nil ;};func _gabcba (_dadfe _fd .PdfObject )(*PdfPageResourcesColorspaces ,error ){_gedf :=&PdfPageResourcesColorspaces {};if _fdbg ,_ggcg :=_dadfe .(*_fd .PdfIndirectObject );_ggcg {_gedf ._eeaafd =_fdbg ;_dadfe =_fdbg .PdfObject ;};_gaecf ,_aaced :=_fd .GetDict (_dadfe );if !_aaced {return nil ,_fce .New ("\u0043\u0053\u0020at\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};_gedf .Names =[]string {};_gedf .Colorspaces =map[string ]PdfColorspace {};for _ ,_decb :=range _gaecf .Keys (){_gadc :=_gaecf .Get (_decb );_gedf .Names =append (_gedf .Names ,string (_decb ));_cbfb ,_cgfeaf :=NewPdfColorspaceFromPdfObject (_gadc );if _cgfeaf !=nil {return nil ,_cgfeaf ;};_gedf .Colorspaces [string (_decb )]=_cbfb ;};return _gedf ,nil ;};
// ToPdfObject returns the button field dictionary within an indirect object.
func (_gdga *PdfFieldButton )ToPdfObject ()_fd .PdfObject {_gdga .PdfField .ToPdfObject ();_fded :=_gdga ._fbef ;_fbbb :=_fded .PdfObject .(*_fd .PdfObjectDictionary );_fbbb .Set ("\u0046\u0054",_fd .MakeName ("\u0042\u0074\u006e"));if _gdga .Opt !=nil {_fbbb .Set ("\u004f\u0070\u0074",_gdga .Opt );};return _fded ;};
// 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 (_ddfgc *PdfReader )CheckAccessRights (password []byte )(bool ,_ce .Permissions ,error ){return _ddfgc ._egbge .CheckAccessRights (password );};
// ToPdfObject returns an indirect object containing the signature field dictionary.
func (_daaeg *PdfFieldSignature )ToPdfObject ()_fd .PdfObject {if _daaeg .PdfAnnotationWidget !=nil {_daaeg .PdfAnnotationWidget .ToPdfObject ();};_daaeg .PdfField .ToPdfObject ();_dbag :=_daaeg ._fbef ;_gcead :=_dbag .PdfObject .(*_fd .PdfObjectDictionary );_gcead .SetIfNotNil ("\u0046\u0054",_fd .MakeName ("\u0053\u0069\u0067"));_gcead .SetIfNotNil ("\u004c\u006f\u0063\u006b",_daaeg .Lock );_gcead .SetIfNotNil ("\u0053\u0056",_daaeg .SV );if _daaeg .V !=nil {_gcead .SetIfNotNil ("\u0056",_daaeg .V .ToPdfObject ());};return _dbag ;};
// 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 ;_befef PdfModel ;_bfcg _fd .PdfObject ;};
// NewPdfActionRendition returns a new "rendition" action.
func NewPdfActionRendition ()*PdfActionRendition {_cb :=NewPdfAction ();_afd :=&PdfActionRendition {};_afd .PdfAction =_cb ;_cb .SetContext (_afd );return _afd ;};func _ccega (_gfeafg []rune ,_eddg map[rune ]int ,_geecf map[rune ]_aaf .GID )*_fd .PdfObjectArray {_dddef :=&_fd .PdfObjectArray {};for _ffbd :=0;_ffbd < len (_gfeafg );{_cgea :=_eddg [_gfeafg [_ffbd ]];_gedc :=_ffbd ;for _gefeg :=_ffbd +1;_gefeg < len (_gfeafg );_gefeg ++{_agaac :=_eddg [_gfeafg [_gefeg ]];if _cgea ==_agaac {_gedc =_gefeg ;}else {break ;};};_gdabba :=_geecf [_gfeafg [_ffbd ]];_gfffg :=_geecf [_gfeafg [_gedc ]];_dddef .Append (_fd .MakeInteger (int64 (_gdabba )));_dddef .Append (_fd .MakeInteger (int64 (_gfffg )));_dddef .Append (_fd .MakeInteger (int64 (_cgea )));_ffbd =_gedc +1;};return _dddef ;};
// SetReason sets the `Reason` field of the signature.
func (_aeeac *PdfSignature )SetReason (reason string ){_aeeac .Reason =_fd .MakeString (reason )};
// ToPdfObject implements interface PdfModel.
func (_fcad *PdfAnnotationWidget )ToPdfObject ()_fd .PdfObject {_fcad .PdfAnnotation .ToPdfObject ();_dbbd :=_fcad ._defg ;_efaa :=_dbbd .PdfObject .(*_fd .PdfObjectDictionary );if _fcad ._bcc {return _dbbd ;};_fcad ._bcc =true ;_efaa .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fd .MakeName ("\u0057\u0069\u0064\u0067\u0065\u0074"));_efaa .SetIfNotNil ("\u0048",_fcad .H );_efaa .SetIfNotNil ("\u004d\u004b",_fcad .MK );_efaa .SetIfNotNil ("\u0041",_fcad .A );_efaa .SetIfNotNil ("\u0041\u0041",_fcad .AA );_efaa .SetIfNotNil ("\u0042\u0053",_fcad .BS );_aeff :=_fcad .Parent ;if _fcad ._eaeb !=nil {if _fcad ._eaeb ._fbef ==_fcad ._defg {_fcad ._eaeb .ToPdfObject ();};_aeff =_fcad ._eaeb .GetContainingPdfObject ();};if _aeff !=_dbbd {_efaa .SetIfNotNil ("\u0050\u0061\u0072\u0065\u006e\u0074",_aeff );};_fcad ._bcc =false ;return _dbbd ;};
// 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 (_egag *PdfFont )GetCharMetrics (code _gf .CharCode )(CharMetrics ,bool ){var _gecegd _aaf .CharMetrics ;switch _gebae :=_egag ._bbaa .(type ){case *pdfFontSimple :if _acce ,_dfc :=_gebae .GetCharMetrics (code );_dfc {return _acce ,_dfc ;};case *pdfFontType0 :if _acbf ,_fgda :=_gebae .GetCharMetrics (code );_fgda {return _acbf ,_fgda ;};case *pdfCIDFontType0 :if _ccdff ,_dbdcb :=_gebae .GetCharMetrics (code );_dbdcb {return _ccdff ,_dbdcb ;};case *pdfCIDFontType2 :if _dfaf ,_ceeb :=_gebae .GetCharMetrics (code );_ceeb {return _dfaf ,_ceeb ;};default:_fca .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",_egag ._bbaa );return _gecegd ,false ;};if _fadc ,_bcdfbe :=_egag .GetFontDescriptor ();_bcdfbe ==nil &&_fadc !=nil {return _aaf .CharMetrics {Wx :_fadc ._bcgdc },true ;};_fca .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",_egag );return _gecegd ,false ;};
// ToPdfObject returns the PDF representation of the tiling pattern.
func (_dafe *PdfTilingPattern )ToPdfObject ()_fd .PdfObject {_dafe .PdfPattern .ToPdfObject ();_bffag :=_dafe .getDict ();if _dafe .PaintType !=nil {_bffag .Set ("\u0050a\u0069\u006e\u0074\u0054\u0079\u0070e",_dafe .PaintType );};if _dafe .TilingType !=nil {_bffag .Set ("\u0054\u0069\u006c\u0069\u006e\u0067\u0054\u0079\u0070\u0065",_dafe .TilingType );};if _dafe .BBox !=nil {_bffag .Set ("\u0042\u0042\u006f\u0078",_dafe .BBox .ToPdfObject ());};if _dafe .XStep !=nil {_bffag .Set ("\u0058\u0053\u0074e\u0070",_dafe .XStep );};if _dafe .YStep !=nil {_bffag .Set ("\u0059\u0053\u0074e\u0070",_dafe .YStep );};if _dafe .Resources !=nil {_bffag .Set ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s",_dafe .Resources .ToPdfObject ());};if _dafe .Matrix !=nil {_bffag .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_dafe .Matrix );};return _dafe ._bfcg ;};func (_bbece *PdfWriter )writeBytes (_ecgdd []byte ){if _bbece ._egffc !=nil {return ;};_fdgcd ,_adgda :=_bbece ._gedga .Write (_ecgdd );_bbece ._bdbgg +=int64 (_fdgcd );_bbece ._egffc =_adgda ;};
// ToPdfObject implements interface PdfModel.
func (_cagg *PdfAnnotation3D )ToPdfObject ()_fd .PdfObject {_cagg .PdfAnnotation .ToPdfObject ();_dacb :=_cagg ._defg ;_ccaf :=_dacb .PdfObject .(*_fd .PdfObjectDictionary );_ccaf .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fd .MakeName ("\u0033\u0044"));_ccaf .SetIfNotNil ("\u0033\u0044\u0044",_cagg .T3DD );_ccaf .SetIfNotNil ("\u0033\u0044\u0056",_cagg .T3DV );_ccaf .SetIfNotNil ("\u0033\u0044\u0041",_cagg .T3DA );_ccaf .SetIfNotNil ("\u0033\u0044\u0049",_cagg .T3DI );_ccaf .SetIfNotNil ("\u0033\u0044\u0042",_cagg .T3DB );return _dacb ;};func (_cege *PdfReader )newPdfOutlineItemFromIndirectObject (_gebgg *_fd .PdfIndirectObject )(*PdfOutlineItem ,error ){_eadda ,_feag :=_gebgg .PdfObject .(*_fd .PdfObjectDictionary );if !_feag {return nil ,_d .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");};_fggg :=NewPdfOutlineItem ();_beef :=_eadda .Get ("\u0054\u0069\u0074l\u0065");if _beef ==nil {return nil ,_d .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");};_beedb ,_ffgbb :=_fd .GetString (_beef );if !_ffgbb {return nil ,_d .Errorf ("\u0074\u0069\u0074le\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0073\u0074\u0072\u0069\u006e\u0067\u0020\u0028\u0025\u0054\u0029",_beef );};_fggg .Title =_beedb ;if _bgbegf :=_eadda .Get ("\u0043\u006f\u0075n\u0074");_bgbegf !=nil {_acac ,_aadcg :=_bgbegf .(*_fd .PdfObjectInteger );if !_aadcg {return nil ,_d .Errorf ("\u0063o\u0075\u006e\u0074\u0020n\u006f\u0074\u0020\u0061\u006e \u0069n\u0074e\u0067\u0065\u0072\u0020\u0028\u0025\u0054)",_bgbegf );};_efafg :=int64 (*_acac );_fggg .Count =&_efafg ;};if _gcbg :=_eadda .Get ("\u0044\u0065\u0073\u0074");_gcbg !=nil {_fggg .Dest =_fd .ResolveReference (_gcbg );if !_cege ._ebeae {_caege :=_cege .traverseObjectData (_fggg .Dest );if _caege !=nil {return nil ,_caege ;};};};if _cbceb :=_eadda .Get ("\u0041");_cbceb !=nil {_fggg .A =_fd .ResolveReference (_cbceb );if !_cege ._ebeae {_ebea :=_cege .traverseObjectData (_fggg .A );if _ebea !=nil {return nil ,_ebea ;};};};if _egbde :=_eadda .Get ("\u0053\u0045");_egbde !=nil {_fggg .SE =nil ;};if _afgbf :=_eadda .Get ("\u0043");_afgbf !=nil {_fggg .C =_fd .ResolveReference (_afgbf );};if _gagda :=_eadda .Get ("\u0046");_gagda !=nil {_fggg .F =_fd .ResolveReference (_gagda );};return _fggg ,nil ;};
// PdfColorspaceCalGray represents CalGray color space.
type PdfColorspaceCalGray struct{WhitePoint []float64 ;BlackPoint []float64 ;Gamma float64 ;_agcc *_fd .PdfIndirectObject ;};
// GetOutlineTree returns the outline tree.
func (_cfeaf *PdfReader )GetOutlineTree ()*PdfOutlineTreeNode {return _cfeaf ._fbdb };func _cbgg (_cfbaf *XObjectImage )error {if _cfbaf .SMask ==nil {return nil ;};_decfg ,_dbcbf :=_cfbaf .SMask .(*_fd .PdfObjectStream );if !_dbcbf {_fca .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 _fd .ErrTypeError ;};_beaba :=_decfg .PdfObjectDictionary ;_cfdgfff :=_beaba .Get ("\u004d\u0061\u0074t\u0065");if _cfdgfff ==nil {return nil ;};_adfcb ,_cbga :=_aeedf (_cfdgfff .(*_fd .PdfObjectArray ));if _cbga !=nil {return _cbga ;};_eafebd :=_fd .MakeArrayFromFloats ([]float64 {_adfcb });_beaba .SetIfNotNil ("\u004d\u0061\u0074t\u0065",_eafebd );return nil ;};
// ToInteger convert to an integer format.
func (_bdcd *PdfColorDeviceRGB )ToInteger (bits int )[3]uint32 {_gcab :=_ff .Pow (2,float64 (bits ))-1;return [3]uint32 {uint32 (_gcab *_bdcd .R ()),uint32 (_gcab *_bdcd .G ()),uint32 (_gcab *_bdcd .B ())};};
// AddOutlineTree adds outlines to a PDF file.
func (_gabeg *PdfWriter )AddOutlineTree (outlineTree *PdfOutlineTreeNode ){_gabeg ._gafg =outlineTree };
// PdfActionSetOCGState represents a SetOCGState action.
type PdfActionSetOCGState struct{*PdfAction ;State _fd .PdfObject ;PreserveRB _fd .PdfObject ;};
// ToPdfObject returns the PDF representation of the shading dictionary.
func (_febdf *PdfShadingType1 )ToPdfObject ()_fd .PdfObject {_febdf .PdfShading .ToPdfObject ();_cdfcb ,_cagdg :=_febdf .getShadingDict ();if _cagdg !=nil {_fca .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 _febdf .Domain !=nil {_cdfcb .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_febdf .Domain );};if _febdf .Matrix !=nil {_cdfcb .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_febdf .Matrix );};if _febdf .Function !=nil {if len (_febdf .Function )==1{_cdfcb .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_febdf .Function [0].ToPdfObject ());}else {_feffa :=_fd .MakeArray ();for _ ,_dfeea :=range _febdf .Function {_feffa .Append (_dfeea .ToPdfObject ());};_cdfcb .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_feffa );};};return _febdf ._bcgcg ;};
// Hasher is the interface that wraps the basic Write method.
type Hasher interface{Write (_ffbc []byte )(_bdbdc int ,_daef error );};
// 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 ;_cded []byte ;_dfec []float64 ;};
// ToPdfObject implements interface PdfModel.
func (_ccg *PdfActionMovie )ToPdfObject ()_fd .PdfObject {_ccg .PdfAction .ToPdfObject ();_bgbe :=_ccg ._fgb ;_be :=_bgbe .PdfObject .(*_fd .PdfObjectDictionary );_be .SetIfNotNil ("\u0053",_fd .MakeName (string (ActionTypeMovie )));_be .SetIfNotNil ("\u0041\u006e\u006e\u006f\u0074\u0061\u0074\u0069\u006f\u006e",_ccg .Annotation );_be .SetIfNotNil ("\u0054",_ccg .T );_be .SetIfNotNil ("\u004fp\u0065\u0072\u0061\u0074\u0069\u006fn",_ccg .Operation );return _bgbe ;};
// ToPdfObject returns the PDF representation of the shading dictionary.
func (_cdfea *PdfShadingType7 )ToPdfObject ()_fd .PdfObject {_cdfea .PdfShading .ToPdfObject ();_aedcca ,_fcgca :=_cdfea .getShadingDict ();if _fcgca !=nil {_fca .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 _cdfea .BitsPerCoordinate !=nil {_aedcca .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065",_cdfea .BitsPerCoordinate );};if _cdfea .BitsPerComponent !=nil {_aedcca .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_cdfea .BitsPerComponent );};if _cdfea .BitsPerFlag !=nil {_aedcca .Set ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067",_cdfea .BitsPerFlag );};if _cdfea .Decode !=nil {_aedcca .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_cdfea .Decode );};if _cdfea .Function !=nil {if len (_cdfea .Function )==1{_aedcca .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_cdfea .Function [0].ToPdfObject ());}else {_dfbgd :=_fd .MakeArray ();for _ ,_aedce :=range _cdfea .Function {_dfbgd .Append (_aedce .ToPdfObject ());};_aedcca .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_dfbgd );};};return _cdfea ._bcgcg ;};
// PdfAnnotation3D represents 3D annotations.
// (Section 13.6.2).
type PdfAnnotation3D struct{*PdfAnnotation ;T3DD _fd .PdfObject ;T3DV _fd .PdfObject ;T3DA _fd .PdfObject ;T3DI _fd .PdfObject ;T3DB _fd .PdfObject ;};func _edda (_bafdb _fd .PdfObject ,_cbaa bool )(*PdfFont ,error ){_dgabc ,_fddfc ,_aafb :=_fdbf (_bafdb );if _aafb !=nil {if _aafb ==ErrType3FontNotSupported ||_aafb ==ErrType1CFontNotSupported {_fefgg ,_ceaf :=_bfdgg (_dgabc ,_fddfc ,nil );if _ceaf !=nil {_fca .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",_fddfc ,_ceaf );return nil ,_aafb ;};return &PdfFont {_bbaa :_fefgg },_aafb ;};return nil ,_aafb ;};_bbagg :=&PdfFont {};switch _fddfc ._ccea {case "\u0054\u0079\u0070e\u0030":if !_cbaa {_fca .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",_fddfc );return nil ,_fce .New ("\u0063\u0079\u0063\u006cic\u0061\u006c\u0020\u0074\u0079\u0070\u0065\u0030\u0020\u006c\u006f\u0061\u0064\u0069n\u0067");};_agaa ,_bgaaff :=_eafgde (_dgabc ,_fddfc );if _bgaaff !=nil {_fca .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",_fddfc ,_bgaaff );return nil ,_bgaaff ;};_bbagg ._bbaa =_agaa ;case "\u0054\u0079\u0070e\u0031","\u0054\u0079\u0070e\u0033","\u004dM\u0054\u0079\u0070\u0065\u0031","\u0054\u0072\u0075\u0065\u0054\u0079\u0070\u0065":var _cecdb *pdfFontSimple ;_cecb ,_ddagg :=_aaf .NewStdFontByName (_aaf .StdFontName (_fddfc ._egfg ));if _ddagg {_bdbcf :=_bcfbb (_cecb );_bbagg ._bbaa =&_bdbcf ;_gbega :=_fd .TraceToDirectObject (_bdbcf .ToPdfObject ());_feeab ,_dcgb ,_eaab :=_fdbf (_gbega );if _eaab !=nil {_fca .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",_fddfc ,_bdbcf );return nil ,_eaab ;};for _ ,_gfbcb :=range _dgabc .Keys (){_feeab .Set (_gfbcb ,_dgabc .Get (_gfbcb ));};_cecdb ,_eaab =_bfdgg (_feeab ,_dcgb ,_bdbcf ._cgdd );if _eaab !=nil {_fca .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",_fddfc ,_bdbcf );return nil ,_eaab ;};_cecdb ._cfcg =_bdbcf ._cfcg ;_cecdb ._gdeba =_bdbcf ._gdeba ;}else {_cecdb ,_aafb =_bfdgg (_dgabc ,_fddfc ,nil );if _aafb !=nil {_fca .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",_fddfc ,_aafb );return nil ,_aafb ;};};_aafb =_cecdb .addEncoding ();if _aafb !=nil {return nil ,_aafb ;};if _ddagg {_cecdb .updateStandard14Font ();};if _ddagg &&_cecdb ._fggbd ==nil &&_cecdb ._cgdd ==nil {_fca .Log .Error ("\u0073\u0069\u006d\u0070\u006c\u0065\u0066\u006f\u006e\u0074\u003d\u0025\u0073",_cecdb );_fca .Log .Error ("\u0066n\u0074\u003d\u0025\u002b\u0076",_cecb );};if len (_cecdb ._cfcg )==0{_fca .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a \u004e\u006f\u0020\u0077\u0069d\u0074h\u0073.\u0020\u0066\u006f\u006e\u0074\u003d\u0025s",_cecdb );};_bbagg ._bbaa =_cecdb ;case "\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0030":_cdeba ,_gbgca :=_fdde (_dgabc ,_fddfc );if _gbgca !=nil {_fca .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",_gbgca );return nil ,_gbgca ;};_bbagg ._bbaa =_cdeba ;case "\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032":_abaf ,_ebbe :=_ceeg (_dgabc ,_fddfc );if _ebbe !=nil {_fca .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",_fddfc ,_ebbe );return nil ,_ebbe ;};_bbagg ._bbaa =_abaf ;default:_fca .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",_fddfc );return nil ,_d .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",_fddfc );};return _bbagg ,nil ;};
// 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 ){_ceadd ,_bcgcb :=_ab .Open (filePath );if _bcgcb !=nil {_fca .Log .Debug ("\u0045\u0052\u0052OR\u003a\u0020\u006f\u0070\u0065\u006e\u0069\u006e\u0067\u0020\u0066\u0069\u006c\u0065\u003a\u0020\u0025\u0076",_bcgcb );return nil ,_bcgcb ;};defer _ceadd .Close ();return NewCompositePdfFontFromTTF (_ceadd );};
// Width returns the width of `rect`.
func (_fdeff *PdfRectangle )Width ()float64 {return _ff .Abs (_fdeff .Urx -_fdeff .Llx )};
// GetRuneMetrics returns the character metrics for the specified rune.
// A bool flag is returned to indicate whether or not the entry was found.
func (_fggae pdfFontType0 )GetRuneMetrics (r rune )(_aaf .CharMetrics ,bool ){if _fggae .DescendantFont ==nil {_fca .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",_fggae );return _aaf .CharMetrics {},false ;};return _fggae .DescendantFont .GetRuneMetrics (r );};var (CourierName =_aaf .CourierName ;CourierBoldName =_aaf .CourierBoldName ;CourierObliqueName =_aaf .CourierObliqueName ;CourierBoldObliqueName =_aaf .CourierBoldObliqueName ;HelveticaName =_aaf .HelveticaName ;HelveticaBoldName =_aaf .HelveticaBoldName ;HelveticaObliqueName =_aaf .HelveticaObliqueName ;HelveticaBoldObliqueName =_aaf .HelveticaBoldObliqueName ;SymbolName =_aaf .SymbolName ;ZapfDingbatsName =_aaf .ZapfDingbatsName ;TimesRomanName =_aaf .TimesRomanName ;TimesBoldName =_aaf .TimesBoldName ;TimesItalicName =_aaf .TimesItalicName ;TimesBoldItalicName =_aaf .TimesBoldItalicName ;);func (_cceg *PdfColorspaceCalRGB )String ()string {return "\u0043\u0061\u006c\u0052\u0047\u0042"};
// 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 (_ageda *PdfColorspaceCalRGB )ColorFromPdfObjects (objects []_fd .PdfObject )(PdfColor ,error ){if len (objects )!=3{return nil ,_fce .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_eeaaf ,_dfea :=_fd .GetNumbersAsFloat (objects );if _dfea !=nil {return nil ,_dfea ;};return _ageda .ColorFromFloats (_eeaaf );};
// PdfAnnotationLink represents Link annotations.
// (Section 12.5.6.5 p. 403).
type PdfAnnotationLink struct{*PdfAnnotation ;A _fd .PdfObject ;Dest _fd .PdfObject ;H _fd .PdfObject ;PA _fd .PdfObject ;QuadPoints _fd .PdfObject ;BS _fd .PdfObject ;_bda *PdfAction ;_beg *PdfReader ;};
// 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 ;_adbb *_fd .PdfIndirectObject ;};func (_edg *PdfReader )newPdfActionSetOCGStateFromDict (_cbbg *_fd .PdfObjectDictionary )(*PdfActionSetOCGState ,error ){return &PdfActionSetOCGState {State :_cbbg .Get ("\u0053\u0074\u0061t\u0065"),PreserveRB :_cbbg .Get ("\u0050\u0072\u0065\u0073\u0065\u0072\u0076\u0065\u0052\u0042")},nil ;};
// GetNumComponents returns the number of color components (3 for Lab).
func (_cgfebd *PdfColorLab )GetNumComponents ()int {return 3};
// 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 (_cbae *PdfFieldButton )GetType ()ButtonType {_aba :=ButtonTypeCheckbox ;if _cbae .Ff !=nil {if (uint32 (*_cbae .Ff )&FieldFlagPushbutton .Mask ())> 0{_aba =ButtonTypePush ;}else if (uint32 (*_cbae .Ff )&FieldFlagRadio .Mask ())> 0{_aba =ButtonTypeRadio ;};};return _aba ;};
// Evaluate runs the function on the passed in slice and returns the results.
func (_cgac *PdfFunctionType2 )Evaluate (x []float64 )([]float64 ,error ){if len (x )!=1{_fca .Log .Error ("\u004f\u006e\u006c\u0079 o\u006e\u0065\u0020\u0069\u006e\u0070\u0075\u0074\u0020\u0061\u006c\u006c\u006f\u0077e\u0064");return nil ,_fce .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_cfeg :=[]float64 {0.0};if _cgac .C0 !=nil {_cfeg =_cgac .C0 ;};_eefc :=[]float64 {1.0};if _cgac .C1 !=nil {_eefc =_cgac .C1 ;};var _fgfe []float64 ;for _gbeef :=0;_gbeef < len (_cfeg );_gbeef ++{_bgea :=_cfeg [_gbeef ]+_ff .Pow (x [0],_cgac .N )*(_eefc [_gbeef ]-_cfeg [_gbeef ]);_fgfe =append (_fgfe ,_bgea );};return _fgfe ,nil ;};
// ToPdfObject implements interface PdfModel.
func (_gaeb *PdfAnnotationSquiggly )ToPdfObject ()_fd .PdfObject {_gaeb .PdfAnnotation .ToPdfObject ();_dgbba :=_gaeb ._defg ;_gbb :=_dgbba .PdfObject .(*_fd .PdfObjectDictionary );_gaeb .PdfAnnotationMarkup .appendToPdfDictionary (_gbb );_gbb .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fd .MakeName ("\u0053\u0071\u0075\u0069\u0067\u0067\u006c\u0079"));_gbb .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_gaeb .QuadPoints );return _dgbba ;};
// GetColorspaceByName returns the colorspace with the specified name from the page resources.
func (_faade *PdfPageResources )GetColorspaceByName (keyName _fd .PdfObjectName )(PdfColorspace ,bool ){_bgag ,_bacce :=_faade .GetColorspaces ();if _bacce !=nil {_fca .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",_bacce );return nil ,false ;};if _bgag ==nil {return nil ,false ;};_ccag ,_ceegg :=_bgag .Colorspaces [string (keyName )];if !_ceegg {return nil ,false ;};return _ccag ,true ;};
// PdfColorspaceDeviceGray represents a grayscale colorspace.
type PdfColorspaceDeviceGray struct{};
// ToPdfObject implements interface PdfModel.
func (_eaad *PdfAnnotationLine )ToPdfObject ()_fd .PdfObject {_eaad .PdfAnnotation .ToPdfObject ();_fgcg :=_eaad ._defg ;_bfce :=_fgcg .PdfObject .(*_fd .PdfObjectDictionary );_eaad .PdfAnnotationMarkup .appendToPdfDictionary (_bfce );_bfce .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fd .MakeName ("\u004c\u0069\u006e\u0065"));_bfce .SetIfNotNil ("\u004c",_eaad .L );_bfce .SetIfNotNil ("\u0042\u0053",_eaad .BS );_bfce .SetIfNotNil ("\u004c\u0045",_eaad .LE );_bfce .SetIfNotNil ("\u0049\u0043",_eaad .IC );_bfce .SetIfNotNil ("\u004c\u004c",_eaad .LL );_bfce .SetIfNotNil ("\u004c\u004c\u0045",_eaad .LLE );_bfce .SetIfNotNil ("\u0043\u0061\u0070",_eaad .Cap );_bfce .SetIfNotNil ("\u0049\u0054",_eaad .IT );_bfce .SetIfNotNil ("\u004c\u004c\u004f",_eaad .LLO );_bfce .SetIfNotNil ("\u0043\u0050",_eaad .CP );_bfce .SetIfNotNil ("\u004de\u0061\u0073\u0075\u0072\u0065",_eaad .Measure );_bfce .SetIfNotNil ("\u0043\u004f",_eaad .CO );return _fgcg ;};
// PdfAnnotationRichMedia represents Rich Media annotations.
type PdfAnnotationRichMedia struct{*PdfAnnotation ;RichMediaSettings _fd .PdfObject ;RichMediaContent _fd .PdfObject ;};
// SetLocation sets the `Location` field of the signature.
func (_ccggff *PdfSignature )SetLocation (location string ){_ccggff .Location =_fd .MakeString (location );};
// Val returns the value of the color.
func (_gdabb *PdfColorCalGray )Val ()float64 {return float64 (*_gdabb )};
// ToPdfObject returns the PDF representation of the function.
func (_dcbea *PdfFunctionType2 )ToPdfObject ()_fd .PdfObject {_eege :=_fd .MakeDict ();_eege .Set ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065",_fd .MakeInteger (2));_ffga :=&_fd .PdfObjectArray {};for _ ,_adcc :=range _dcbea .Domain {_ffga .Append (_fd .MakeFloat (_adcc ));};_eege .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_ffga );if _dcbea .Range !=nil {_aecfb :=&_fd .PdfObjectArray {};for _ ,_cgece :=range _dcbea .Range {_aecfb .Append (_fd .MakeFloat (_cgece ));};_eege .Set ("\u0052\u0061\u006eg\u0065",_aecfb );};if _dcbea .C0 !=nil {_aaeb :=&_fd .PdfObjectArray {};for _ ,_ebgf :=range _dcbea .C0 {_aaeb .Append (_fd .MakeFloat (_ebgf ));};_eege .Set ("\u0043\u0030",_aaeb );};if _dcbea .C1 !=nil {_fgfagb :=&_fd .PdfObjectArray {};for _ ,_accg :=range _dcbea .C1 {_fgfagb .Append (_fd .MakeFloat (_accg ));};_eege .Set ("\u0043\u0031",_fgfagb );};_eege .Set ("\u004e",_fd .MakeFloat (_dcbea .N ));if _dcbea ._ecadf !=nil {_dcbea ._ecadf .PdfObject =_eege ;return _dcbea ._ecadf ;};return _eege ;};func (_cadge *fontFile )parseASCIIPart (_eeae []byte )error {if len (_eeae )< 2||string (_eeae [:2])!="\u0025\u0021"{return _fce .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");};_fcfaf ,_fdefd ,_ebd :=_caega (_eeae );if _ebd !=nil {return _ebd ;};_dfeed :=_gfaf (_fcfaf );_cadge ._edgf =_dfeed ["\u0046\u006f\u006e\u0074\u004e\u0061\u006d\u0065"];if _cadge ._edgf ==""{_fca .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 _fdefd !=""{_feccca ,_geab :=_eabg (_fdefd );if _geab !=nil {return _geab ;};_dedcc ,_geab :=_gf .NewCustomSimpleTextEncoder (_feccca ,nil );if _geab !=nil {_fca .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",_geab );return nil ;};_cadge ._dfga =_dedcc ;};return nil ;};
// NewPdfAnnotationLink returns a new link annotation.
func NewPdfAnnotationLink ()*PdfAnnotationLink {_dfb :=NewPdfAnnotation ();_cfg :=&PdfAnnotationLink {};_cfg .PdfAnnotation =_dfb ;_dfb .SetContext (_cfg );return _cfg ;};
// GetXObjectByName returns the XObject with the specified keyName and the object type.
func (_dcec *PdfPageResources )GetXObjectByName (keyName _fd .PdfObjectName )(*_fd .PdfObjectStream ,XObjectType ){if _dcec .XObject ==nil {return nil ,XObjectTypeUndefined ;};_affda ,_eacdg :=_fd .TraceToDirectObject (_dcec .XObject ).(*_fd .PdfObjectDictionary );if !_eacdg {_fca .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",_fd .TraceToDirectObject (_dcec .XObject ));return nil ,XObjectTypeUndefined ;};if _aecd :=_affda .Get (keyName );_aecd !=nil {_beeacd ,_fbagg :=_fd .GetStream (_aecd );if !_fbagg {_fca .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",_aecd );return nil ,XObjectTypeUndefined ;};_beade :=_beeacd .PdfObjectDictionary ;_dffbb ,_fbagg :=_fd .TraceToDirectObject (_beade .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065")).(*_fd .PdfObjectName );if !_fbagg {_fca .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",_beade .String ());return nil ,XObjectTypeUndefined ;};if *_dffbb =="\u0049\u006d\u0061g\u0065"{return _beeacd ,XObjectTypeImage ;}else if *_dffbb =="\u0046\u006f\u0072\u006d"{return _beeacd ,XObjectTypeForm ;}else if *_dffbb =="\u0050\u0053"{return _beeacd ,XObjectTypePS ;}else {_fca .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",*_dffbb );return nil ,XObjectTypeUndefined ;};}else {return nil ,XObjectTypeUndefined ;};};
// HasExtGState checks whether a font is defined by the specified keyName.
func (_dbedg *PdfPageResources )HasExtGState (keyName _fd .PdfObjectName )bool {_ ,_febda :=_dbedg .GetFontByName (keyName );return _febda ;};
// GetXObjectFormByName returns the XObjectForm with the specified name from the
// page resources, if it exists.
func (_fdaed *PdfPageResources )GetXObjectFormByName (keyName _fd .PdfObjectName )(*XObjectForm ,error ){_aaacd ,_cbdb :=_fdaed .GetXObjectByName (keyName );if _aaacd ==nil {return nil ,nil ;};if _cbdb !=XObjectTypeForm {return nil ,_fce .New ("\u006e\u006f\u0074\u0020\u0061\u0020\u0066\u006f\u0072\u006d");};_gfcffa ,_fbfcc :=NewXObjectFormFromStream (_aaacd );if _fbfcc !=nil {return nil ,_fbfcc ;};return _gfcffa ,nil ;};
// R returns the value of the red component of the color.
func (_aeae *PdfColorDeviceRGB )R ()float64 {return float64 (_aeae [0])};
// PdfShadingType5 is a Lattice-form Gouraud-shaded triangle mesh.
type PdfShadingType5 struct{*PdfShading ;BitsPerCoordinate *_fd .PdfObjectInteger ;BitsPerComponent *_fd .PdfObjectInteger ;VerticesPerRow *_fd .PdfObjectInteger ;Decode *_fd .PdfObjectArray ;Function []PdfFunction ;};
// SetPatternByName sets a pattern resource specified by keyName.
func (_dbgbb *PdfPageResources )SetPatternByName (keyName _fd .PdfObjectName ,pattern _fd .PdfObject )error {if _dbgbb .Pattern ==nil {_dbgbb .Pattern =_fd .MakeDict ();};_addfg ,_adgc :=_dbgbb .Pattern .(*_fd .PdfObjectDictionary );if !_adgc {return _fd .ErrTypeError ;};_addfg .Set (keyName ,pattern );return nil ;};func (_gedbg *PdfPage )getParentResources ()(*PdfPageResources ,error ){_gdecf :=_gedbg .Parent ;for _gdecf !=nil {_fefge ,_gcabc :=_fd .GetDict (_gdecf );if !_gcabc {_fca .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 ,_fce .New ("i\u006e\u0076\u0061\u006cid\u0020p\u0061\u0072\u0065\u006e\u0074 \u006f\u0062\u006a\u0065\u0063\u0074");};if _gdee :=_fefge .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");_gdee !=nil {_agbe ,_fgdag :=_fd .GetDict (_gdee );if !_fgdag {return nil ,_fce .New ("i\u006e\u0076\u0061\u006cid\u0020r\u0065\u0073\u006f\u0075\u0072c\u0065\u0020\u0064\u0069\u0063\u0074");};_ebbac ,_fgca :=NewPdfPageResourcesFromDict (_agbe );if _fgca !=nil {return nil ,_fgca ;};return _ebbac ,nil ;};_gdecf =_fefge .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");};return nil ,nil ;};
// ToPdfObject implements interface PdfModel.
func (_dbba *PdfAnnotationFileAttachment )ToPdfObject ()_fd .PdfObject {_dbba .PdfAnnotation .ToPdfObject ();_cafa :=_dbba ._defg ;_bgd :=_cafa .PdfObject .(*_fd .PdfObjectDictionary );_dbba .PdfAnnotationMarkup .appendToPdfDictionary (_bgd );_bgd .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fd .MakeName ("\u0046\u0069\u006c\u0065\u0041\u0074\u0074\u0061\u0063h\u006d\u0065\u006e\u0074"));_bgd .SetIfNotNil ("\u0046\u0053",_dbba .FS );_bgd .SetIfNotNil ("\u004e\u0061\u006d\u0065",_dbba .Name );return _cafa ;};func _faccc (_cecg *_fd .PdfObjectDictionary )(*PdfTilingPattern ,error ){_affgf :=&PdfTilingPattern {};_cegf :=_cecg .Get ("\u0050a\u0069\u006e\u0074\u0054\u0079\u0070e");if _cegf ==nil {_fca .Log .Debug ("\u0050\u0061\u0069\u006e\u0074\u0054\u0079\u0070\u0065\u0020\u006d\u0069s\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ;};_dbbbb ,_bfcb :=_cegf .(*_fd .PdfObjectInteger );if !_bfcb {_fca .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",_cegf );return nil ,_fd .ErrTypeError ;};_affgf .PaintType =_dbbbb ;_cegf =_cecg .Get ("\u0054\u0069\u006c\u0069\u006e\u0067\u0054\u0079\u0070\u0065");if _cegf ==nil {_fca .Log .Debug ("\u0054i\u006ci\u006e\u0067\u0054\u0079\u0070e\u0020\u006di\u0073\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ;};_aeea ,_bfcb :=_cegf .(*_fd .PdfObjectInteger );if !_bfcb {_fca .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",_cegf );return nil ,_fd .ErrTypeError ;};_affgf .TilingType =_aeea ;_cegf =_cecg .Get ("\u0042\u0042\u006f\u0078");if _cegf ==nil {_fca .Log .Debug ("\u0042\u0042\u006fx\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ;};_cegf =_fd .TraceToDirectObject (_cegf );_eedeg ,_bfcb :=_cegf .(*_fd .PdfObjectArray );if !_bfcb {_fca .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",_cegf );return nil ,_fd .ErrTypeError ;};_acgba ,_acfg :=NewPdfRectangle (*_eedeg );if _acfg !=nil {_fca .Log .Debug ("\u0042\u0042\u006f\u0078\u0020\u0065\u0072\u0072\u006fr\u003a\u0020\u0025\u0076",_acfg );return nil ,_acfg ;};_affgf .BBox =_acgba ;_cegf =_cecg .Get ("\u0058\u0053\u0074e\u0070");if _cegf ==nil {_fca .Log .Debug ("\u0058\u0053\u0074\u0065\u0070\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ;};_gaegf ,_acfg :=_fd .GetNumberAsFloat (_cegf );if _acfg !=nil {_fca .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",_gaegf );return nil ,_acfg ;};_affgf .XStep =_fd .MakeFloat (_gaegf );_cegf =_cecg .Get ("\u0059\u0053\u0074e\u0070");if _cegf ==nil {_fca .Log .Debug ("\u0059\u0053\u0074\u0065\u0070\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ;};_ggeef ,_acfg :=_fd .GetNumberAsFloat (_cegf );if _acfg !=nil {_fca .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",_ggeef );return nil ,_acfg ;};_affgf .YStep =_fd .MakeFloat (_ggeef );_cegf =_cecg .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");if _cegf ==nil {_fca .Log .Debug ("\u0052\u0065\u0073\u006f\u0075\u0072\u0063\u0065\u0073\u0020\u006d\u0069s\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ;};_cecg ,_bfcb =_fd .TraceToDirectObject (_cegf ).(*_fd .PdfObjectDictionary );if !_bfcb {return nil ,_d .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",_cegf );};_gdba ,_acfg :=NewPdfPageResourcesFromDict (_cecg );if _acfg !=nil {return nil ,_acfg ;};_affgf .Resources =_gdba ;if _bgdd :=_cecg .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");_bgdd !=nil {_gbcaa ,_bffff :=_bgdd .(*_fd .PdfObjectArray );if !_bffff {_fca .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",_bgdd );return nil ,_fd .ErrTypeError ;};_affgf .Matrix =_gbcaa ;};return _affgf ,nil ;};
// GetNumComponents returns the number of color components of the colorspace device.
// Returns 4 for a CMYK32 device.
func (_bedd *PdfColorspaceDeviceCMYK )GetNumComponents ()int {return 4};
// ToPdfObject returns the PDF representation of the page resources.
func (_abbga *PdfPageResources )ToPdfObject ()_fd .PdfObject {_cagdb :=_abbga ._adae ;_cagdb .SetIfNotNil ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e",_abbga .ExtGState );if _abbga ._bfdgb !=nil {_abbga .ColorSpace =_abbga ._bfdgb .ToPdfObject ();};_cagdb .SetIfNotNil ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065",_abbga .ColorSpace );_cagdb .SetIfNotNil ("\u0050a\u0074\u0074\u0065\u0072\u006e",_abbga .Pattern );_cagdb .SetIfNotNil ("\u0053h\u0061\u0064\u0069\u006e\u0067",_abbga .Shading );_cagdb .SetIfNotNil ("\u0058O\u0062\u006a\u0065\u0063\u0074",_abbga .XObject );_cagdb .SetIfNotNil ("\u0046\u006f\u006e\u0074",_abbga .Font );_cagdb .SetIfNotNil ("\u0050r\u006f\u0063\u0053\u0065\u0074",_abbga .ProcSet );_cagdb .SetIfNotNil ("\u0050\u0072\u006f\u0070\u0065\u0072\u0074\u0069\u0065\u0073",_abbga .Properties );return _cagdb ;};func (_eaaf *PdfReader )newPdfActionGotoEFromDict (_fgd *_fd .PdfObjectDictionary )(*PdfActionGoToE ,error ){_dgb ,_gdg :=_dgd (_fgd .Get ("\u0046"));if _gdg !=nil {return nil ,_gdg ;};return &PdfActionGoToE {D :_fgd .Get ("\u0044"),NewWindow :_fgd .Get ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw"),T :_fgd .Get ("\u0054"),F :_dgb },nil ;};
// PdfColor interface represents a generic color in PDF.
type PdfColor interface{};
// NewPdfColorspaceICCBased returns a new ICCBased colorspace object.
func NewPdfColorspaceICCBased (N int )(*PdfColorspaceICCBased ,error ){_bbgd :=&PdfColorspaceICCBased {};if N !=1&&N !=3&&N !=4{return nil ,_d .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u004e\u0020\u0028\u0031/\u0033\u002f\u0034\u0029");};_bbgd .N =N ;return _bbgd ,nil ;};
// PdfAnnotationWatermark represents Watermark annotations.
// (Section 12.5.6.22).
type PdfAnnotationWatermark struct{*PdfAnnotation ;FixedPrint _fd .PdfObject ;};
// GetAction returns the PDF action for the annotation link.
func (_egd *PdfAnnotationLink )GetAction ()(*PdfAction ,error ){if _egd ._bda !=nil {return _egd ._bda ,nil ;};if _egd .A ==nil {return nil ,nil ;};if _egd ._beg ==nil {return nil ,nil ;};_dgaa ,_gee :=_egd ._beg .loadAction (_egd .A );if _gee !=nil {return nil ,_gee ;};_egd ._bda =_dgaa ;return _egd ._bda ,nil ;};
// NewPdfActionResetForm returns a new "reset form" action.
func NewPdfActionResetForm ()*PdfActionResetForm {_gbd :=NewPdfAction ();_fcc :=&PdfActionResetForm {};_fcc .PdfAction =_gbd ;_gbd .SetContext (_fcc );return _fcc ;};
// 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 _fd .PdfObjectArray )(*PdfRectangle ,error ){_dbgdc :=PdfRectangle {};if arr .Len ()!=4{return nil ,_fce .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 _aedcea error ;_dbgdc .Llx ,_aedcea =_fd .GetNumberAsFloat (arr .Get (0));if _aedcea !=nil {return nil ,_aedcea ;};_dbgdc .Lly ,_aedcea =_fd .GetNumberAsFloat (arr .Get (1));if _aedcea !=nil {return nil ,_aedcea ;};_dbgdc .Urx ,_aedcea =_fd .GetNumberAsFloat (arr .Get (2));if _aedcea !=nil {return nil ,_aedcea ;};_dbgdc .Ury ,_aedcea =_fd .GetNumberAsFloat (arr .Get (3));if _aedcea !=nil {return nil ,_aedcea ;};return &_dbgdc ,nil ;};
// ToPdfObject return the CalGray colorspace as a PDF object (name dictionary).
func (_fgbgc *PdfColorspaceCalGray )ToPdfObject ()_fd .PdfObject {_aggg :=&_fd .PdfObjectArray {};_aggg .Append (_fd .MakeName ("\u0043a\u006c\u0047\u0072\u0061\u0079"));_gada :=_fd .MakeDict ();if _fgbgc .WhitePoint !=nil {_gada .Set ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074",_fd .MakeArray (_fd .MakeFloat (_fgbgc .WhitePoint [0]),_fd .MakeFloat (_fgbgc .WhitePoint [1]),_fd .MakeFloat (_fgbgc .WhitePoint [2])));}else {_fca .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 _fgbgc .BlackPoint !=nil {_gada .Set ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074",_fd .MakeArray (_fd .MakeFloat (_fgbgc .BlackPoint [0]),_fd .MakeFloat (_fgbgc .BlackPoint [1]),_fd .MakeFloat (_fgbgc .BlackPoint [2])));};_gada .Set ("\u0047\u0061\u006dm\u0061",_fd .MakeFloat (_fgbgc .Gamma ));_aggg .Append (_gada );if _fgbgc ._agcc !=nil {_fgbgc ._agcc .PdfObject =_aggg ;return _fgbgc ._agcc ;};return _aggg ;};func _afee (_adbf *fontCommon )*pdfFontType0 {return &pdfFontType0 {fontCommon :*_adbf }};
// ToPdfObject converts the pdfFontSimple to its PDF representation for outputting.
func (_egcb *pdfFontSimple )ToPdfObject ()_fd .PdfObject {if _egcb ._cebf ==nil {_egcb ._cebf =&_fd .PdfIndirectObject {};};_gabcb :=_egcb .baseFields ().asPdfObjectDictionary ("");_egcb ._cebf .PdfObject =_gabcb ;if _egcb .FirstChar !=nil {_gabcb .Set ("\u0046i\u0072\u0073\u0074\u0043\u0068\u0061r",_egcb .FirstChar );};if _egcb .LastChar !=nil {_gabcb .Set ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072",_egcb .LastChar );};if _egcb .Widths !=nil {_gabcb .Set ("\u0057\u0069\u0064\u0074\u0068\u0073",_egcb .Widths );};if _egcb .Encoding !=nil {_gabcb .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_egcb .Encoding );}else if _egcb ._fggbd !=nil {_dedaa :=_egcb ._fggbd .ToPdfObject ();if _dedaa !=nil {_gabcb .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_dedaa );};};return _egcb ._cebf ;};func (_aafe *PdfReader )newPdfActionSubmitFormFromDict (_afc *_fd .PdfObjectDictionary )(*PdfActionSubmitForm ,error ){_aff ,_cfa :=_dgd (_afc .Get ("\u0046"));if _cfa !=nil {return nil ,_cfa ;};return &PdfActionSubmitForm {F :_aff ,Fields :_afc .Get ("\u0046\u0069\u0065\u006c\u0064\u0073"),Flags :_afc .Get ("\u0046\u006c\u0061g\u0073")},nil ;};
// GetPdfName returns the PDF name used to indicate the border style.
// (Table 166 p. 395).
func (_fcde *BorderStyle )GetPdfName ()string {switch *_fcde {case BorderStyleSolid :return "\u0053";case BorderStyleDashed :return "\u0044";case BorderStyleBeveled :return "\u0042";case BorderStyleInset :return "\u0049";case BorderStyleUnderline :return "\u0055";};return "";};
// PdfColorDeviceRGB represents a color in DeviceRGB colorspace with R, G, B components, where component is
// defined in the range 0.0 - 1.0 where 1.0 is the primary intensity.
type PdfColorDeviceRGB [3]float64 ;
// ToPdfObject converts date to a PDF string object.
func (_ccbdb *PdfDate )ToPdfObject ()_fd .PdfObject {_eafgbf :=_d .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",_ccbdb ._bgggb ,_ccbdb ._baced ,_ccbdb ._beffe ,_ccbdb ._dcbba ,_ccbdb ._fbbgf ,_ccbdb ._cfegc ,_ccbdb ._bbeedc ,_ccbdb ._edbcf ,_ccbdb ._eaegd );return _fd .MakeString (_eafgbf );};
// PdfShadingType4 is a Free-form Gouraud-shaded triangle mesh.
type PdfShadingType4 struct{*PdfShading ;BitsPerCoordinate *_fd .PdfObjectInteger ;BitsPerComponent *_fd .PdfObjectInteger ;BitsPerFlag *_fd .PdfObjectInteger ;Decode *_fd .PdfObjectArray ;Function []PdfFunction ;};
// 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 (_defdf []_fd .PdfObject )([]_fd .PdfObject ,error );};
// NewPdfAppender creates a new Pdf appender from a Pdf reader.
func NewPdfAppender (reader *PdfReader )(*PdfAppender ,error ){_fgf :=&PdfAppender {_ddbg :reader ._eade ,Reader :reader ,_fbgg :reader ._egbge ,_ddag :reader ._caece };_bbgb ,_efc :=_fgf ._ddbg .Seek (0,_fc .SeekEnd );if _efc !=nil {return nil ,_efc ;};_fgf ._gedb =_bbgb ;if _ ,_efc =_fgf ._ddbg .Seek (0,_fc .SeekStart );_efc !=nil {return nil ,_efc ;};_fgf ._bfb ,_efc =NewPdfReader (_fgf ._ddbg );if _efc !=nil {return nil ,_efc ;};for _ ,_bfed :=range _fgf .Reader .GetObjectNums (){if _fgf ._bfbb < _bfed {_fgf ._bfbb =_bfed ;};};_fgf ._fdb =_fgf ._fbgg .GetXrefTable ();_fgf ._bceb =_fgf ._fbgg .GetXrefOffset ();_fgf ._baef =make (map[_fd .PdfObject ]struct{});for _ ,_dabg :=range _fgf ._bfb .PageList {_fgf ._eafg =append (_fgf ._eafg ,_dabg );};_fgf ._daec =make (map[_fd .PdfObject ]int64 );_fgf ._ddgd =make (map[_fd .PdfObject ]struct{});_fgf ._bbce =_fgf ._bfb .AcroForm ;return _fgf ,nil ;};
// Outline represents a PDF outline dictionary (Table 152 - p. 376).
// Currently, the Outline object can only be used to construct PDF outlines.
type Outline struct{Entries []*OutlineItem `json:"entries,omitempty"`;};
// 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 (_cfccd *PdfOutlineTreeNode )GetContext ()PdfModel {if _dddee ,_afeaf :=_cfccd ._ccggf .(*PdfOutline );_afeaf {return _dddee ;};if _adaab ,_dffe :=_cfccd ._ccggf .(*PdfOutlineItem );_dffe {return _adaab ;};_fca .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 ;};
// BytesToCharcodes converts the bytes in a PDF string to character codes.
func (_bbbf *PdfFont )BytesToCharcodes (data []byte )[]_gf .CharCode {_fca .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 _gfgbc ,_adec :=_bbbf ._bbaa .(*pdfFontType0 );_adec &&_gfgbc ._cfcce !=nil {if _ecdg ,_ebbaff :=_gfgbc .bytesToCharcodes (data );_ebbaff {return _ecdg ;};};_dabgc :=make ([]_gf .CharCode ,0,len (data )+len (data )%2);if _bbbf .baseFields ().isCIDFont (){if len (data )==1{data =[]byte {0,data [0]};};if len (data )%2!=0{_fca .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 _fbcca :=0;_fbcca < len (data );_fbcca +=2{_gdgb :=uint16 (data [_fbcca ])<<8|uint16 (data [_fbcca +1]);_dabgc =append (_dabgc ,_gf .CharCode (_gdgb ));};}else {for _ ,_abedb :=range data {_dabgc =append (_dabgc ,_gf .CharCode (_abedb ));};};return _dabgc ;};
// DefaultFont returns the default font, which is currently the built in Helvetica.
func DefaultFont ()*PdfFont {_begec ,_fbaf :=_aaf .NewStdFontByName (HelveticaName );if !_fbaf {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");};_gedg :=_bcfbb (_begec );return &PdfFont {_bbaa :&_gedg };};
// ToJBIG2Image converts current image to the core.JBIG2Image.
func (_gfbfc *Image )ToJBIG2Image ()(*_fd .JBIG2Image ,error ){_daga ,_feadd :=_gfbfc .ToGoImage ();if _feadd !=nil {return nil ,_feadd ;};return _fd .GoImageToJBIG2 (_daga ,_fd .JB2ImageAutoThreshold );};
// PdfDate represents a date, which is a PDF string of the form:
// (D:YYYYMMDDHHmmSSOHH'mm)
type PdfDate struct{_bgggb int64 ;_baced int64 ;_beffe int64 ;_dcbba int64 ;_fbbgf int64 ;_cfegc int64 ;_bbeedc byte ;_edbcf int64 ;_eaegd int64 ;};
// GetNumComponents returns the number of color components (1 for grayscale).
func (_eefa *PdfColorDeviceGray )GetNumComponents ()int {return 1};
// GetContainingPdfObject implements interface PdfModel.
func (_cfbge *PdfSignature )GetContainingPdfObject ()_fd .PdfObject {return _cfbge ._bcbba };
// SetBorderWidth sets the style's border width.
func (_eadf *PdfBorderStyle )SetBorderWidth (width float64 ){_eadf .W =&width };
// ColorFromPdfObjects gets the color from a series of pdf objects (3 for rgb).
func (_bfbba *PdfColorspaceDeviceRGB )ColorFromPdfObjects (objects []_fd .PdfObject )(PdfColor ,error ){if len (objects )!=3{return nil ,_fce .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_cggc ,_gefe :=_fd .GetNumbersAsFloat (objects );if _gefe !=nil {return nil ,_gefe ;};return _bfbba .ColorFromFloats (_cggc );};
// PdfActionThread represents a thread action.
type PdfActionThread struct{*PdfAction ;F *PdfFilespec ;D _fd .PdfObject ;B _fd .PdfObject ;};
// GetContainingPdfObject returns the page as a dictionary within an PdfIndirectObject.
func (_bfecf *PdfPage )GetContainingPdfObject ()_fd .PdfObject {return _bfecf ._debfd };
// ToPdfObject implements interface PdfModel.
func (_fcf *PdfActionLaunch )ToPdfObject ()_fd .PdfObject {_fcf .PdfAction .ToPdfObject ();_eee :=_fcf ._fgb ;_cae :=_eee .PdfObject .(*_fd .PdfObjectDictionary );_cae .SetIfNotNil ("\u0053",_fd .MakeName (string (ActionTypeLaunch )));if _fcf .F !=nil {_cae .Set ("\u0046",_fcf .F .ToPdfObject ());};_cae .SetIfNotNil ("\u0057\u0069\u006e",_fcf .Win );_cae .SetIfNotNil ("\u004d\u0061\u0063",_fcf .Mac );_cae .SetIfNotNil ("\u0055\u006e\u0069\u0078",_fcf .Unix );_cae .SetIfNotNil ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw",_fcf .NewWindow );return _eee ;};func (_accc PdfFont )actualFont ()pdfFont {if _accc ._bbaa ==nil {_fca .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",_accc );};return _accc ._bbaa ;};var _ _fd .PdfObject =&pdfSignDictionary {};
// GetRuneMetrics returns the character metrics for the rune.
// A bool flag is returned to indicate whether or not the entry was found.
func (_fecg pdfFontSimple )GetRuneMetrics (r rune )(_aaf .CharMetrics ,bool ){if _fecg ._gdeba !=nil {_dbbb ,_gafd :=_fecg ._gdeba [r ];if _gafd {return _dbbb ,true ;};};_cgegd :=_fecg .Encoder ();if _cgegd ==nil {_fca .Log .Debug ("\u004e\u006f\u0020en\u0063\u006f\u0064\u0065\u0072\u0020\u0066\u006f\u0072\u0020\u0066\u006f\u006e\u0074\u0073\u003d\u0025\u0073",_fecg );return _aaf .CharMetrics {},false ;};_gfec ,_degc :=_cgegd .RuneToCharcode (r );if !_degc {if r !=' '{_fca .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 ,_fecg );};return _aaf .CharMetrics {},false ;};_gbece ,_abcd :=_fecg .GetCharMetrics (_gfec );return _gbece ,_abcd ;};func _eafgde (_caeaf *_fd .PdfObjectDictionary ,_cefg *fontCommon )(*pdfFontType0 ,error ){_fdgc ,_abcfb :=_fd .GetArray (_caeaf .Get ("\u0044e\u0073c\u0065\u006e\u0064\u0061\u006e\u0074\u0046\u006f\u006e\u0074\u0073"));if !_abcfb {_fca .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",_cefg );return nil ,_fd .ErrRangeError ;};if _fdgc .Len ()!=1{_fca .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",_fdgc .Len ());return nil ,_fd .ErrRangeError ;};_dcdgd ,_eadaa :=_edda (_fdgc .Get (0),false );if _eadaa !=nil {_fca .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",_eadaa ,_cefg );return nil ,_eadaa ;};_fadce :=_afee (_cefg );_fadce .DescendantFont =_dcdgd ;_accdf ,_abcfb :=_fd .GetNameVal (_caeaf .Get ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067"));if _abcfb {if _accdf =="\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079\u002d\u0048"||_accdf =="\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079\u002d\u0056"{_fadce ._dbbce =_gf .NewIdentityTextEncoder (_accdf );}else if _agg .IsPredefinedCMap (_accdf ){_fadce ._cfcce ,_eadaa =_agg .LoadPredefinedCMap (_accdf );if _eadaa !=nil {_fca .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",_accdf ,_eadaa );};}else {_fca .Log .Debug ("\u0055\u006e\u0068\u0061\u006e\u0064\u006c\u0065\u0064\u0020\u0063\u006da\u0070\u0020\u0025\u0071",_accdf );};};if _bdba :=_dcdgd .baseFields ()._facge ;_bdba !=nil {if _ddfge :=_bdba .Name ();_ddfge =="\u0041d\u006fb\u0065\u002d\u0043\u004e\u0053\u0031\u002d\u0055\u0043\u0053\u0032"||_ddfge =="\u0041\u0064\u006f\u0062\u0065\u002d\u0047\u0042\u0031-\u0055\u0043\u0053\u0032"||_ddfge =="\u0041\u0064\u006f\u0062\u0065\u002d\u004a\u0061\u0070\u0061\u006e\u0031-\u0055\u0043\u0053\u0032"||_ddfge =="\u0041\u0064\u006f\u0062\u0065\u002d\u004b\u006f\u0072\u0065\u0061\u0031-\u0055\u0043\u0053\u0032"{_fadce ._dbbce =_gf .NewCMapEncoder (_accdf ,_fadce ._cfcce ,_bdba );};};return _fadce ,nil ;};
// XObjectForm (Table 95 in 8.10.2).
type XObjectForm struct{Filter _fd .StreamEncoder ;FormType _fd .PdfObject ;BBox _fd .PdfObject ;Matrix _fd .PdfObject ;Resources *PdfPageResources ;Group _fd .PdfObject ;Ref _fd .PdfObject ;MetaData _fd .PdfObject ;PieceInfo _fd .PdfObject ;LastModified _fd .PdfObject ;StructParent _fd .PdfObject ;StructParents _fd .PdfObject ;OPI _fd .PdfObject ;OC _fd .PdfObject ;Name _fd .PdfObject ;
// Stream data.
Stream []byte ;_acdg *_fd .PdfObjectStream ;};
// GetPageLabels returns the PageLabels entry in the PDF catalog.
// See section 12.4.2 "Page Labels" (p. 382 PDF32000_2008).
func (_dedeb *PdfReader )GetPageLabels ()(_fd .PdfObject ,error ){_bggac :=_fd .ResolveReference (_dedeb ._bfcbd .Get ("\u0050\u0061\u0067\u0065\u004c\u0061\u0062\u0065\u006c\u0073"));if _bggac ==nil {return nil ,nil ;};if !_dedeb ._ebeae {_fgeeg :=_dedeb .traverseObjectData (_bggac );if _fgeeg !=nil {return nil ,_fgeeg ;};};return _bggac ,nil ;};var _ffeac ="";
// PageFromIndirectObject returns the PdfPage and page number for a given indirect object.
func (_ddgbf *PdfReader )PageFromIndirectObject (ind *_fd .PdfIndirectObject )(*PdfPage ,int ,error ){if len (_ddgbf .PageList )!=len (_ddgbf ._faca ){return nil ,0,_fce .New ("\u0070\u0061\u0067\u0065\u0020\u006c\u0069\u0073\u0074\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");};for _efefa ,_efaag :=range _ddgbf ._faca {if _efaag ==ind {return _ddgbf .PageList [_efefa ],_efefa +1,nil ;};};return nil ,0,_fce .New ("\u0070\u0061\u0067\u0065\u0020\u006e\u006f\u0074\u0020f\u006f\u0075\u006e\u0064");};
// Write writes out the PDF.
func (_efbc *PdfWriter )Write (writer _fc .Writer )error {_fca .Log .Trace ("\u0057r\u0069\u0074\u0065\u0028\u0029");_agea :=_aa .GetLicenseKey ();if (_agea ==nil ||!_agea .IsLicensed ())&&!_fgfc {_d .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");_d .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 _fce .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 _efbc ._gafg !=nil {_fca .Log .Trace ("\u004f\u0075t\u006c\u0069\u006ee\u0054\u0072\u0065\u0065\u003a\u0020\u0025\u002b\u0076",_efbc ._gafg );_cgbb :=_efbc ._gafg .ToPdfObject ();_fca .Log .Trace ("\u004fu\u0074\u006c\u0069\u006e\u0065\u0073\u003a\u0020\u0025\u002b\u0076 \u0028\u0025\u0054\u002c\u0020\u0070\u003a\u0025\u0070\u0029",_cgbb ,_cgbb ,_cgbb );_efbc ._agagg .Set ("\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0073",_cgbb );_faabaa :=_efbc .addObjects (_cgbb );if _faabaa !=nil {return _faabaa ;};};if _efbc ._cfbfa !=nil {_fca .Log .Trace ("\u0057r\u0069t\u0069\u006e\u0067\u0020\u0061c\u0072\u006f \u0066\u006f\u0072\u006d\u0073");_fcbb :=_efbc ._cfbfa .ToPdfObject ();_fca .Log .Trace ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d\u003a\u0020\u0025\u002b\u0076",_fcbb );_efbc ._agagg .Set ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d",_fcbb );_fgafec :=_efbc .addObjects (_fcbb );if _fgafec !=nil {return _fgafec ;};};for _efedf ,_ddfgcd :=range _efbc ._efce {if !_efbc .hasObject (_efedf ){_fca .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",_efedf ,_efedf ,_efedf );for _ ,_cbcff :=range _ddfgcd {for _ ,_eedfd :=range _cbcff .Keys (){_gddgbg :=_cbcff .Get (_eedfd );if _gddgbg ==_efedf {_fca .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");_cbcff .Set (_eedfd ,_fd .MakeNull ());break ;};};};};};_efbc ._agagg .Set ("\u0056e\u0072\u0073\u0069\u006f\u006e",_fd .MakeName (_d .Sprintf ("\u0025\u0064\u002e%\u0064",_efbc ._fddbd ,_efbc ._cecag )));_efbc .copyObjects ();if _efbc ._gegg !=nil {var _dggcd error ;_efbc ._edeb ,_dggcd =_efbc ._gegg .Optimize (_efbc ._edeb );if _dggcd !=nil {return _dggcd ;};_egddbb :=make (map[_fd .PdfObject ]struct{},len (_efbc ._edeb ));for _ ,_eggge :=range _efbc ._edeb {_egddbb [_eggge ]=struct{}{};};_efbc ._fgdfc =_egddbb ;};_efbc ._bdbgg =_efbc ._bddag ;_efbc ._gedga =_e .NewWriter (writer );_fddbe :=_efbc ._fddbd > 1||(_efbc ._fddbd ==1&&_efbc ._cecag > 4);if _efbc ._ccec !=nil {_fddbe =*_efbc ._ccec ;};_fageg :=make (map[_fd .PdfObject ]bool );for _ ,_dbfbe :=range _efbc ._edeb {if _febdfc ,_gbaba :=_dbfbe .(*_fd .PdfObjectStreams );_gbaba {_fddbe =true ;for _ ,_ddbd :=range _febdfc .Elements (){_fageg [_ddbd ]=true ;if _gaedf ,_gadab :=_ddbd .(*_fd .PdfIndirectObject );_gadab {_fageg [_gaedf .PdfObject ]=true ;};};};};if _fddbe &&_efbc ._fddbd ==1&&_efbc ._cecag < 5{_efbc ._cecag =5;};if _efbc ._gfggd {_efbc .writeString ("\u000a");}else {_efbc .writeString (_d .Sprintf ("\u0025\u0025\u0050D\u0046\u002d\u0025\u0064\u002e\u0025\u0064\u000a",_efbc ._fddbd ,_efbc ._cecag ));_efbc .writeString ("\u0025\u00e2\u00e3\u00cf\u00d3\u000a");};_efbc .updateObjectNumbers ();_fca .Log .Trace ("\u0057\u0072\u0069\u0074\u0069\u006e\u0067\u0020\u0025d\u0020\u006f\u0062\u006a",len (_efbc ._edeb ));_efbc ._gace =make (map[int ]crossReference );_efbc ._gace [0]=crossReference {Type :0,ObjectNumber :0,Generation :0xFFFF};if _efbc ._gdeae .ObjectMap !=nil {for _cbded ,_edddg :=range _efbc ._gdeae .ObjectMap {if _cbded ==0{continue ;};if _edddg .XType ==_fd .XrefTypeObjectStream {_gcfaa :=crossReference {Type :2,ObjectNumber :_edddg .OsObjNumber ,Index :_edddg .OsObjIndex };_efbc ._gace [_cbded ]=_gcfaa ;};if _edddg .XType ==_fd .XrefTypeTableEntry {_cgca :=crossReference {Type :1,ObjectNumber :_edddg .ObjectNumber ,Offset :_edddg .Offset };_efbc ._gace [_cbded ]=_cgca ;};};};for _ ,_fbdcf :=range _efbc ._edeb {if _gfdea :=_fageg [_fbdcf ];_gfdea {continue ;};_fcggdf :=int64 (0);switch _cafdg :=_fbdcf .(type ){case *_fd .PdfIndirectObject :_fcggdf =_cafdg .ObjectNumber ;case *_fd .PdfObjectStream :_fcggdf =_cafdg .ObjectNumber ;case *_fd .PdfObjectStreams :_fcggdf =_cafdg .ObjectNumber ;default:_fca .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",_fbdcf );return ErrTypeCheck ;};if _efbc ._cdba !=nil &&_fbdcf !=_efbc ._bgfdd {_fcegf :=_efbc ._cdba .Encrypt (_fbdcf ,int64 (_fcggdf ),0);if _fcegf !=nil {_fca .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",_fcegf );return _fcegf ;};};_efbc .writeObject (int (_fcggdf ),_fbdcf );};_cdgea :=_efbc ._bdbgg ;var _fdecb int ;for _cbeed :=range _efbc ._gace {if _cbeed > _fdecb {_fdecb =_cbeed ;};};if _fddbe {_dddacd :=_fdecb +1;_efbc ._gace [_dddacd ]=crossReference {Type :1,ObjectNumber :_dddacd ,Offset :_cdgea };_feeec :=_bg .NewBuffer (nil );_ggggd :=_fd .MakeArray ();for _becaa :=0;_becaa <=_fdecb ;{for ;_becaa <=_fdecb ;_becaa ++{_edbga ,_baadd :=_efbc ._gace [_becaa ];if _baadd &&(!_efbc ._gfggd ||_efbc ._gfggd &&(_edbga .Type ==1&&_edbga .Offset >=_efbc ._dbdg ||_edbga .Type ==0)){break ;};};var _bgcc int ;for _bgcc =_becaa +1;_bgcc <=_fdecb ;_bgcc ++{_ccecd ,_baabe :=_efbc ._gace [_bgcc ];if _baabe &&(!_efbc ._gfggd ||_efbc ._gfggd &&(_ccecd .Type ==1&&_ccecd .Offset > _efbc ._dbdg )){continue ;};break ;};_ggggd .Append (_fd .MakeInteger (int64 (_becaa )),_fd .MakeInteger (int64 (_bgcc -_becaa )));for _decbd :=_becaa ;_decbd < _bgcc ;_decbd ++{_bgab :=_efbc ._gace [_decbd ];switch _bgab .Type {case 0:_fg .Write (_feeec ,_fg .BigEndian ,byte (0));_fg .Write (_feeec ,_fg .BigEndian ,uint32 (0));_fg .Write (_feeec ,_fg .BigEndian ,uint16 (0xFFFF));case 1:_fg .Write (_feeec ,_fg .BigEndian ,byte (1));_fg .Write (_feeec ,_fg .BigEndian ,uint32 (_bgab .Offset ));_fg .Write (_feeec ,_fg .BigEndian ,uint16 (_bgab .Generation ));case 2:_fg .Write (_feeec ,_fg .BigEndian ,byte (2));_fg .Write (_feeec ,_fg .BigEndian ,uint32 (_bgab .ObjectNumber ));_fg .Write (_feeec ,_fg .BigEndian ,uint16 (_bgab .Index ));};};_becaa =_bgcc +1;};_agcf ,_dbgdb :=_fd .MakeStream (_feeec .Bytes (),_fd .NewFlateEncoder ());if _dbgdb !=nil {return _dbgdb ;};_agcf .ObjectNumber =int64 (_dddacd );_agcf .PdfObjectDictionary .Set ("\u0054\u0079\u0070\u0065",_fd .MakeName ("\u0058\u0052\u0065\u0066"));_agcf .PdfObjectDictionary .Set ("\u0057",_fd .MakeArray (_fd .MakeInteger (1),_fd .MakeInteger (4),_fd .MakeInteger (2)));_agcf .PdfObjectDictionary .Set ("\u0049\u006e\u0064e\u0078",_ggggd );_agcf .PdfObjectDictionary .Set ("\u0053\u0069\u007a\u0065",_fd .MakeInteger (int64 (_dddacd +1)));_agcf .PdfObjectDictionary .Set ("\u0049\u006e\u0066\u006f",_efbc ._fcacd );_agcf .PdfObjectDictionary .Set ("\u0052\u006f\u006f\u0074",_efbc ._faaba );if _efbc ._gfggd &&_efbc ._cfad > 0{_agcf .PdfObjectDictionary .Set ("\u0050\u0072\u0065\u0076",_fd .MakeInteger (_efbc ._cfad ));};if _efbc ._cdba !=nil {_agcf .Set ("\u0045n\u0063\u0072\u0079\u0070\u0074",_efbc ._bgfdd );_agcf .Set ("\u0049\u0044",_efbc ._dbcae );_fca .Log .Trace ("\u0049d\u0073\u003a\u0020\u0025\u0073",_efbc ._dbcae );};_efbc .writeObject (int (_agcf .ObjectNumber ),_agcf );}else {_efbc .writeString ("\u0078\u0072\u0065\u0066\u000d\u000a");for _fbecfc :=0;_fbecfc <=_fdecb ;{for ;_fbecfc <=_fdecb ;_fbecfc ++{_aaebc ,_becd :=_efbc ._gace [_fbecfc ];if _becd &&(!_efbc ._gfggd ||_efbc ._gfggd &&(_aaebc .Type ==1&&_aaebc .Offset >=_efbc ._dbdg ||_aaebc .Type ==0)){break ;};};var _ggad int ;for _ggad =_fbecfc +1;_ggad <=_fdecb ;_ggad ++{_fgff ,_dbedc :=_efbc ._gace [_ggad ];if _dbedc &&(!_efbc ._gfggd ||_efbc ._gfggd &&(_fgff .Type ==1&&_fgff .Offset > _efbc ._dbdg )){continue ;};break ;};_egegcd :=_d .Sprintf ("\u0025d\u0020\u0025\u0064\u000d\u000a",_fbecfc ,_ggad -_fbecfc );_efbc .writeString (_egegcd );for _fcab :=_fbecfc ;_fcab < _ggad ;_fcab ++{_acggg :=_efbc ._gace [_fcab ];switch _acggg .Type {case 0:_egegcd =_d .Sprintf ("\u0025\u002e\u0031\u0030\u0064\u0020\u0025\u002e\u0035d\u0020\u0066\u000d\u000a",0,65535);_efbc .writeString (_egegcd );case 1:_egegcd =_d .Sprintf ("\u0025\u002e\u0031\u0030\u0064\u0020\u0025\u002e\u0035d\u0020\u006e\u000d\u000a",_acggg .Offset ,0);_efbc .writeString (_egegcd );};};_fbecfc =_ggad +1;};_aebgf :=_fd .MakeDict ();_aebgf .Set ("\u0049\u006e\u0066\u006f",_efbc ._fcacd );_aebgf .Set ("\u0052\u006f\u006f\u0074",_efbc ._faaba );_aebgf .Set ("\u0053\u0069\u007a\u0065",_fd .MakeInteger (int64 (_fdecb +1)));if _efbc ._gfggd &&_efbc ._cfad > 0{_aebgf .Set ("\u0050\u0072\u0065\u0076",_fd .MakeInteger (_efbc ._cfad ));};if _efbc ._cdba !=nil {_aebgf .Set ("\u0045n\u0063\u0072\u0079\u0070\u0074",_efbc ._bgfdd );_aebgf .Set ("\u0049\u0044",_efbc ._dbcae );_fca .Log .Trace ("\u0049d\u0073\u003a\u0020\u0025\u0073",_efbc ._dbcae );};_efbc .writeString ("\u0074\u0072\u0061\u0069\u006c\u0065\u0072\u000a");_efbc .writeString (_aebgf .WriteString ());_efbc .writeString ("\u000a");};_fccga :=_d .Sprintf ("\u0073\u0074\u0061\u0072\u0074\u0078\u0072\u0065\u0066\u000a\u0025\u0064\u000a",_cdgea );_efbc .writeString (_fccga );_efbc .writeString ("\u0025\u0025\u0045\u004f\u0046\u000a");if _efbc ._egffc ==nil {_efbc ._egffc =_efbc ._gedga .Flush ();};return _efbc ._egffc ;};
// GetAsShadingPattern returns a shading pattern. Check with IsShading() prior to using this.
func (_babbe *PdfPattern )GetAsShadingPattern ()*PdfShadingPattern {return _babbe ._befef .(*PdfShadingPattern );};
// AddExtGState adds a graphics state to the XObject resources.
func (_ebfb *PdfPage )AddExtGState (name _fd .PdfObjectName ,egs *_fd .PdfObjectDictionary )error {if _ebfb .Resources ==nil {_ebfb .Resources =NewPdfPageResources ();};if _ebfb .Resources .ExtGState ==nil {_ebfb .Resources .ExtGState =_fd .MakeDict ();};_cdca ,_cfda :=_fd .TraceToDirectObject (_ebfb .Resources .ExtGState ).(*_fd .PdfObjectDictionary );if !_cfda {_fca .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",_fd .TraceToDirectObject (_ebfb .Resources .ExtGState ));return _fce .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_cdca .Set (name ,egs );return nil ;};
// PdfAnnotationRedact represents Redact annotations.
// (Section 12.5.6.23).
type PdfAnnotationRedact struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _fd .PdfObject ;IC _fd .PdfObject ;RO _fd .PdfObject ;OverlayText _fd .PdfObject ;Repeat _fd .PdfObject ;DA _fd .PdfObject ;Q _fd .PdfObject ;};func (_eded *PdfReader )newPdfAnnotationProjectionFromDict (_fccd *_fd .PdfObjectDictionary )(*PdfAnnotationProjection ,error ){_agfc :=&PdfAnnotationProjection {};_febe ,_dab :=_eded .newPdfAnnotationMarkupFromDict (_fccd );if _dab !=nil {return nil ,_dab ;};_agfc .PdfAnnotationMarkup =_febe ;return _agfc ,nil ;};const (ActionTypeGoTo PdfActionType ="\u0047\u006f\u0054\u006f";ActionTypeGoTo3DView PdfActionType ="\u0047\u006f\u0054\u006f\u0033\u0044\u0056\u0069\u0065\u0077";ActionTypeGoToE PdfActionType ="\u0047\u006f\u0054o\u0045";ActionTypeGoToR PdfActionType ="\u0047\u006f\u0054o\u0052";ActionTypeHide PdfActionType ="\u0048\u0069\u0064\u0065";ActionTypeImportData PdfActionType ="\u0049\u006d\u0070\u006f\u0072\u0074\u0044\u0061\u0074\u0061";ActionTypeJavaScript PdfActionType ="\u004a\u0061\u0076\u0061\u0053\u0063\u0072\u0069\u0070\u0074";ActionTypeLaunch PdfActionType ="\u004c\u0061\u0075\u006e\u0063\u0068";ActionTypeMovie PdfActionType ="\u004d\u006f\u0076i\u0065";ActionTypeNamed PdfActionType ="\u004e\u0061\u006de\u0064";ActionTypeRendition PdfActionType ="\u0052e\u006e\u0064\u0069\u0074\u0069\u006fn";ActionTypeResetForm PdfActionType ="\u0052e\u0073\u0065\u0074\u0046\u006f\u0072m";ActionTypeSetOCGState PdfActionType ="S\u0065\u0074\u004f\u0043\u0047\u0053\u0074\u0061\u0074\u0065";ActionTypeSound PdfActionType ="\u0053\u006f\u0075n\u0064";ActionTypeSubmitForm PdfActionType ="\u0053\u0075\u0062\u006d\u0069\u0074\u0046\u006f\u0072\u006d";ActionTypeThread PdfActionType ="\u0054\u0068\u0072\u0065\u0061\u0064";ActionTypeTrans PdfActionType ="\u0054\u0072\u0061n\u0073";ActionTypeURI PdfActionType ="\u0055\u0052\u0049";);
// GetAllContentStreams gets all the content streams for a page as one string.
func (_edca *PdfPage )GetAllContentStreams ()(string ,error ){_fbbc ,_gfdeb :=_edca .GetContentStreams ();if _gfdeb !=nil {return "",_gfdeb ;};return _gc .Join (_fbbc ,"\u0020"),nil ;};
// BorderEffect represents a border effect (Table 167 p. 395).
type BorderEffect int ;
// ColorToRGB converts an Indexed color to an RGB color.
func (_eafa *PdfColorspaceSpecialIndexed )ColorToRGB (color PdfColor )(PdfColor ,error ){if _eafa .Base ==nil {return nil ,_fce .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 _eafa .Base .ColorToRGB (color );};
// NewPdfActionSubmitForm returns a new "submit form" action.
func NewPdfActionSubmitForm ()*PdfActionSubmitForm {_edd :=NewPdfAction ();_bd :=&PdfActionSubmitForm {};_bd .PdfAction =_edd ;_edd .SetContext (_bd );return _bd ;};
// ToPdfObject implements interface PdfModel.
func (_add *PdfActionURI )ToPdfObject ()_fd .PdfObject {_add .PdfAction .ToPdfObject ();_ebc :=_add ._fgb ;_ccb :=_ebc .PdfObject .(*_fd .PdfObjectDictionary );_ccb .SetIfNotNil ("\u0053",_fd .MakeName (string (ActionTypeURI )));_ccb .SetIfNotNil ("\u0055\u0052\u0049",_add .URI );_ccb .SetIfNotNil ("\u0049\u0073\u004da\u0070",_add .IsMap );return _ebc ;};
// NewPdfActionGoToR returns a new "go to remote" action.
func NewPdfActionGoToR ()*PdfActionGoToR {_fa :=NewPdfAction ();_egb :=&PdfActionGoToR {};_egb .PdfAction =_fa ;_fa .SetContext (_egb );return _egb ;};
// SetNamedDestinations sets the Names entry in the PDF catalog.
// See section 12.3.2.3 "Named Destinations" (p. 367 PDF32000_2008).
func (_baffb *PdfWriter )SetNamedDestinations (names _fd .PdfObject )error {if names ==nil {return nil ;};_fca .Log .Trace ("\u0053e\u0074\u0074\u0069\u006e\u0067\u0020\u0063\u0061\u0074\u0061\u006co\u0067\u0020\u004e\u0061\u006d\u0065\u0073\u002e\u002e\u002e");_baffb ._agagg .Set ("\u004e\u0061\u006de\u0073",names );return _baffb .addObjects (names );};
// B returns the value of the blue component of the color.
func (_debd *PdfColorDeviceRGB )B ()float64 {return float64 (_debd [2])};func _fgcgg ()string {return _fcfc };
// NewGrayImageFromGoImage creates a new grayscale unidoc Image from a golang Image.
func (_ggcc DefaultImageHandler )NewGrayImageFromGoImage (goimg _dg .Image )(*Image ,error ){_eedf :=goimg .Bounds ();_dbbe :=&Image {Width :int64 (_eedf .Dx ()),Height :int64 (_eedf .Dy ()),ColorComponents :1,BitsPerComponent :8};switch _fgfb :=goimg .(type ){case *_dg .Gray :if len (_fgfb .Pix )!=_eedf .Dx ()*_eedf .Dy (){_fbacg ,_bfbaa :=_gd .GrayConverter .Convert (goimg );if _bfbaa !=nil {return nil ,_bfbaa ;};_dbbe .Data =_fbacg .Pix ();}else {_dbbe .Data =_fgfb .Pix ;};case *_dg .Gray16 :_dbbe .BitsPerComponent =16;if len (_fgfb .Pix )!=_eedf .Dx ()*_eedf .Dy ()*2{_ffba ,_eecc :=_gd .Gray16Converter .Convert (goimg );if _eecc !=nil {return nil ,_eecc ;};_dbbe .Data =_ffba .Pix ();}else {_dbbe .Data =_fgfb .Pix ;};default:_faeaab ,_cbbfc :=_gd .GrayConverter .Convert (goimg );if _cbbfc !=nil {return nil ,_cbbfc ;};_dbbe .Data =_faeaab .Pix ();};return _dbbe ,nil ;};
// GetNumComponents returns the number of color components (3 for CalRGB).
func (_eaeee *PdfColorCalRGB )GetNumComponents ()int {return 3};
// NewPdfActionSound returns a new "sound" action.
func NewPdfActionSound ()*PdfActionSound {_bcd :=NewPdfAction ();_gcc :=&PdfActionSound {};_gcc .PdfAction =_bcd ;_bcd .SetContext (_gcc );return _gcc ;};
// HasColorspaceByName checks if the colorspace with the specified name exists in the page resources.
func (_bafcf *PdfPageResources )HasColorspaceByName (keyName _fd .PdfObjectName )bool {_bddaeg ,_debdda :=_bafcf .GetColorspaces ();if _debdda !=nil {_fca .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",_debdda );return false ;};if _bddaeg ==nil {return false ;};_ ,_fcede :=_bddaeg .Colorspaces [string (keyName )];return _fcede ;};func (_cfaff *PdfWriter )addObjects (_bagdf _fd .PdfObject )error {_fca .Log .Trace ("\u0041d\u0064i\u006e\u0067\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0073\u0021");if _aebd ,_bfcgbg :=_bagdf .(*_fd .PdfIndirectObject );_bfcgbg {_fca .Log .Trace ("\u0049\u006e\u0064\u0069\u0072\u0065\u0063\u0074");_fca .Log .Trace ("\u002d \u0025\u0073\u0020\u0028\u0025\u0070)",_bagdf ,_aebd );_fca .Log .Trace ("\u002d\u0020\u0025\u0073",_aebd .PdfObject );if _cfaff .addObject (_aebd ){_aacae :=_cfaff .addObjects (_aebd .PdfObject );if _aacae !=nil {return _aacae ;};};return nil ;};if _agaf ,_egfgc :=_bagdf .(*_fd .PdfObjectStream );_egfgc {_fca .Log .Trace ("\u0053\u0074\u0072\u0065\u0061\u006d");_fca .Log .Trace ("\u002d \u0025\u0073\u0020\u0025\u0070",_bagdf ,_bagdf );if _cfaff .addObject (_agaf ){_cgcee :=_cfaff .addObjects (_agaf .PdfObjectDictionary );if _cgcee !=nil {return _cgcee ;};};return nil ;};if _dabd ,_bcbga :=_bagdf .(*_fd .PdfObjectDictionary );_bcbga {_fca .Log .Trace ("\u0044\u0069\u0063\u0074");_fca .Log .Trace ("\u002d\u0020\u0025\u0073",_bagdf );for _ ,_gdfcc :=range _dabd .Keys (){_ceddd :=_dabd .Get (_gdfcc );if _fggf ,_cbbae :=_ceddd .(*_fd .PdfObjectReference );_cbbae {_ceddd =_fggf .Resolve ();_dabd .Set (_gdfcc ,_ceddd );};if _gdfcc !="\u0050\u0061\u0072\u0065\u006e\u0074"{if _cgcdf :=_cfaff .addObjects (_ceddd );_cgcdf !=nil {return _cgcdf ;};}else {if _ ,_befba :=_ceddd .(*_fd .PdfObjectNull );_befba {continue ;};if _ccggd :=_cfaff .hasObject (_ceddd );!_ccggd {_fca .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",_ceddd ,_ceddd ,_ceddd );_cfaff ._efce [_ceddd ]=append (_cfaff ._efce [_ceddd ],_dabd );};};};return nil ;};if _dffca ,_fgeec :=_bagdf .(*_fd .PdfObjectArray );_fgeec {_fca .Log .Trace ("\u0041\u0072\u0072a\u0079");_fca .Log .Trace ("\u002d\u0020\u0025\u0073",_bagdf );if _dffca ==nil {return _fce .New ("\u0061\u0072\u0072a\u0079\u0020\u0069\u0073\u0020\u006e\u0069\u006c");};for _fbbed ,_aeba :=range _dffca .Elements (){if _caegdb ,_bgbdaf :=_aeba .(*_fd .PdfObjectReference );_bgbdaf {_aeba =_caegdb .Resolve ();_dffca .Set (_fbbed ,_aeba );};if _cfdgff :=_cfaff .addObjects (_aeba );_cfdgff !=nil {return _cfdgff ;};};return nil ;};if _ ,_adeag :=_bagdf .(*_fd .PdfObjectReference );_adeag {_fca .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",_bagdf );return _fce .New ("r\u0065\u0066\u0065\u0072en\u0063e\u0020\u006e\u006f\u0074\u0020a\u006c\u006c\u006f\u0077\u0065\u0064");};return nil ;};func (_dedg *PdfReader )newPdfAnnotationPolyLineFromDict (_ecbee *_fd .PdfObjectDictionary )(*PdfAnnotationPolyLine ,error ){_dfbg :=PdfAnnotationPolyLine {};_gdb ,_bafd :=_dedg .newPdfAnnotationMarkupFromDict (_ecbee );if _bafd !=nil {return nil ,_bafd ;};_dfbg .PdfAnnotationMarkup =_gdb ;_dfbg .Vertices =_ecbee .Get ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073");_dfbg .LE =_ecbee .Get ("\u004c\u0045");_dfbg .BS =_ecbee .Get ("\u0042\u0053");_dfbg .IC =_ecbee .Get ("\u0049\u0043");_dfbg .BE =_ecbee .Get ("\u0042\u0045");_dfbg .IT =_ecbee .Get ("\u0049\u0054");_dfbg .Measure =_ecbee .Get ("\u004de\u0061\u0073\u0075\u0072\u0065");return &_dfbg ,nil ;};func _dgefd (_eccee *_fd .PdfObjectDictionary )(*PdfShadingType5 ,error ){_gfgadg :=PdfShadingType5 {};_agddg :=_eccee .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065");if _agddg ==nil {_fca .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 ;};_eddee ,_bebbe :=_agddg .(*_fd .PdfObjectInteger );if !_bebbe {_fca .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",_agddg );return nil ,_fd .ErrTypeError ;};_gfgadg .BitsPerCoordinate =_eddee ;_agddg =_eccee .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074");if _agddg ==nil {_fca .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 ;};_eddee ,_bebbe =_agddg .(*_fd .PdfObjectInteger );if !_bebbe {_fca .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",_agddg );return nil ,_fd .ErrTypeError ;};_gfgadg .BitsPerComponent =_eddee ;_agddg =_eccee .Get ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073\u0050e\u0072\u0052\u006f\u0077");if _agddg ==nil {_fca .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 ;};_eddee ,_bebbe =_agddg .(*_fd .PdfObjectInteger );if !_bebbe {_fca .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",_agddg );return nil ,_fd .ErrTypeError ;};_gfgadg .VerticesPerRow =_eddee ;_agddg =_eccee .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");if _agddg ==nil {_fca .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 ;};_gcffe ,_bebbe :=_agddg .(*_fd .PdfObjectArray );if !_bebbe {_fca .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",_agddg );return nil ,_fd .ErrTypeError ;};_gfgadg .Decode =_gcffe ;if _ddgce :=_eccee .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");_ddgce !=nil {_gfgadg .Function =[]PdfFunction {};if _gaace ,_ebcfc :=_ddgce .(*_fd .PdfObjectArray );_ebcfc {for _ ,_bgee :=range _gaace .Elements (){_fggbb ,_ffae :=_fagc (_bgee );if _ffae !=nil {_fca .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",_ffae );return nil ,_ffae ;};_gfgadg .Function =append (_gfgadg .Function ,_fggbb );};}else {_efed ,_eebd :=_fagc (_ddgce );if _eebd !=nil {_fca .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",_eebd );return nil ,_eebd ;};_gfgadg .Function =append (_gfgadg .Function ,_efed );};};return &_gfgadg ,nil ;};func (_dfba *PdfWriter )copyObjects (){_ebeab :=make (map[_fd .PdfObject ]_fd .PdfObject );_bfaefd :=make ([]_fd .PdfObject ,0,len (_dfba ._edeb ));_egga :=make (map[_fd .PdfObject ]struct{},len (_dfba ._edeb ));_ebbgfg :=make (map[_fd .PdfObject ]struct{});for _ ,_eaaaf :=range _dfba ._edeb {_egbba :=_dfba .copyObject (_eaaaf ,_ebeab ,_ebbgfg ,false );if _ ,_agcd :=_ebbgfg [_eaaaf ];_agcd {continue ;};_bfaefd =append (_bfaefd ,_egbba );_egga [_egbba ]=struct{}{};};_dfba ._edeb =_bfaefd ;_dfba ._fgdfc =_egga ;_dfba ._fcacd =_dfba .copyObject (_dfba ._fcacd ,_ebeab ,nil ,false ).(*_fd .PdfIndirectObject );_dfba ._faaba =_dfba .copyObject (_dfba ._faaba ,_ebeab ,nil ,false ).(*_fd .PdfIndirectObject );if _dfba ._bgfdd !=nil {_dfba ._bgfdd =_dfba .copyObject (_dfba ._bgfdd ,_ebeab ,nil ,false ).(*_fd .PdfIndirectObject );};if _dfba ._gfggd {_ebfd :=make (map[_fd .PdfObject ]int64 );for _fbfa ,_dcadd :=range _dfba ._febae {if _cdadd ,_dabag :=_ebeab [_fbfa ];_dabag {_ebfd [_cdadd ]=_dcadd ;}else {_fca .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");};};_dfba ._febae =_ebfd ;};};func _aedbg (_gdfcg *fontCommon )*pdfCIDFontType2 {return &pdfCIDFontType2 {fontCommon :*_gdfcg }};func _fcggdb (_cfefd []byte )[]byte {const _fbac =52845;const _baaa =22719;_dgga :=55665;for _ ,_cdgb :=range _cfefd [:4]{_dgga =(int (_cdgb )+_dgga )*_fbac +_baaa ;};_agde :=make ([]byte ,len (_cfefd )-4);for _gffa ,_gagdd :=range _cfefd [4:]{_agde [_gffa ]=byte (int (_gagdd )^_dgga >>8);_dgga =(int (_gagdd )+_dgga )*_fbac +_baaa ;};return _agde ;};
// NewPdfPageResourcesColorspaces returns a new PdfPageResourcesColorspaces object.
func NewPdfPageResourcesColorspaces ()*PdfPageResourcesColorspaces {_ceafb :=&PdfPageResourcesColorspaces {};_ceafb .Names =[]string {};_ceafb .Colorspaces =map[string ]PdfColorspace {};_ceafb ._eeaafd =&_fd .PdfIndirectObject {};return _ceafb ;};
// 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 (_agd *PdfColorspaceCalGray )ColorFromPdfObjects (objects []_fd .PdfObject )(PdfColor ,error ){if len (objects )!=1{return nil ,_fce .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_becg ,_fbfd :=_fd .GetNumbersAsFloat (objects );if _fbfd !=nil {return nil ,_fbfd ;};return _agd .ColorFromFloats (_becg );};
// Encoder returns the font's text encoder.
func (_babg pdfCIDFontType2 )Encoder ()_gf .TextEncoder {return _babg ._dagf };
// IsCID returns true if the underlying font is CID.
func (_ddbe *PdfFont )IsCID ()bool {return _ddbe .baseFields ().isCIDFont ()};
// 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 (_ceae *PdfColorspaceLab )ColorFromPdfObjects (objects []_fd .PdfObject )(PdfColor ,error ){if len (objects )!=3{return nil ,_fce .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_affaf ,_efec :=_fd .GetNumbersAsFloat (objects );if _efec !=nil {return nil ,_efec ;};return _ceae .ColorFromFloats (_affaf );};
// 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 *_fd .PdfIndirectObject ;SV *_fd .PdfIndirectObject ;};
// SetContext sets the sub pattern (context). Either PdfTilingPattern or PdfShadingPattern.
func (_aaef *PdfPattern )SetContext (ctx PdfModel ){_aaef ._befef =ctx };
// ToPdfObject implements interface PdfModel.
func (_gbad *PdfActionGoToR )ToPdfObject ()_fd .PdfObject {_gbad .PdfAction .ToPdfObject ();_bcb :=_gbad ._fgb ;_ba :=_bcb .PdfObject .(*_fd .PdfObjectDictionary );_ba .SetIfNotNil ("\u0053",_fd .MakeName (string (ActionTypeGoToR )));if _gbad .F !=nil {_ba .Set ("\u0046",_gbad .F .ToPdfObject ());};_ba .SetIfNotNil ("\u0044",_gbad .D );_ba .SetIfNotNil ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw",_gbad .NewWindow );return _bcb ;};
// A returns the value of the A component of the color.
func (_adgb *PdfColorCalRGB )A ()float64 {return float64 (_adgb [0])};
// 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 (_dfegd *pdfFontSimple )SetEncoder (encoder _gf .TextEncoder ){_dfegd ._fggbd =encoder };
// ToPdfObject implements interface PdfModel.
func (_ddde *PdfAnnotationTrapNet )ToPdfObject ()_fd .PdfObject {_ddde .PdfAnnotation .ToPdfObject ();_acfa :=_ddde ._defg ;_acff :=_acfa .PdfObject .(*_fd .PdfObjectDictionary );_acff .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fd .MakeName ("\u0054r\u0061\u0070\u004e\u0065\u0074"));return _acfa ;};
// ToPdfObject returns a stream object.
func (_fdbfd *XObjectImage )ToPdfObject ()_fd .PdfObject {_ccfde :=_fdbfd ._acbee ;_dbaf :=_ccfde .PdfObjectDictionary ;if _fdbfd .Filter !=nil {_dbaf =_fdbfd .Filter .MakeStreamDict ();_ccfde .PdfObjectDictionary =_dbaf ;};_dbaf .Set ("\u0054\u0079\u0070\u0065",_fd .MakeName ("\u0058O\u0062\u006a\u0065\u0063\u0074"));_dbaf .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fd .MakeName ("\u0049\u006d\u0061g\u0065"));_dbaf .Set ("\u0057\u0069\u0064t\u0068",_fd .MakeInteger (*(_fdbfd .Width )));_dbaf .Set ("\u0048\u0065\u0069\u0067\u0068\u0074",_fd .MakeInteger (*(_fdbfd .Height )));if _fdbfd .BitsPerComponent !=nil {_dbaf .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_fd .MakeInteger (*(_fdbfd .BitsPerComponent )));};if _fdbfd .ColorSpace !=nil {_dbaf .SetIfNotNil ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065",_fdbfd .ColorSpace .ToPdfObject ());};_dbaf .SetIfNotNil ("\u0049\u006e\u0074\u0065\u006e\u0074",_fdbfd .Intent );_dbaf .SetIfNotNil ("\u0049m\u0061\u0067\u0065\u004d\u0061\u0073k",_fdbfd .ImageMask );_dbaf .SetIfNotNil ("\u004d\u0061\u0073\u006b",_fdbfd .Mask );_dbaf .SetIfNotNil ("\u0044\u0065\u0063\u006f\u0064\u0065",_fdbfd .Decode );_dbaf .SetIfNotNil ("I\u006e\u0074\u0065\u0072\u0070\u006f\u006c\u0061\u0074\u0065",_fdbfd .Interpolate );_dbaf .SetIfNotNil ("\u0041\u006c\u0074e\u0072\u006e\u0061\u0074\u0069\u0076\u0065\u0073",_fdbfd .Alternatives );_dbaf .SetIfNotNil ("\u0053\u004d\u0061s\u006b",_fdbfd .SMask );_dbaf .SetIfNotNil ("S\u004d\u0061\u0073\u006b\u0049\u006e\u0044\u0061\u0074\u0061",_fdbfd .SMaskInData );_dbaf .SetIfNotNil ("\u004d\u0061\u0074t\u0065",_fdbfd .Matte );_dbaf .SetIfNotNil ("\u004e\u0061\u006d\u0065",_fdbfd .Name );_dbaf .SetIfNotNil ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074",_fdbfd .StructParent );_dbaf .SetIfNotNil ("\u0049\u0044",_fdbfd .ID );_dbaf .SetIfNotNil ("\u004f\u0050\u0049",_fdbfd .OPI );_dbaf .SetIfNotNil ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061",_fdbfd .Metadata );_dbaf .SetIfNotNil ("\u004f\u0043",_fdbfd .OC );_dbaf .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_fd .MakeInteger (int64 (len (_fdbfd .Stream ))));_ccfde .Stream =_fdbfd .Stream ;return _ccfde ;};
// PdfActionSubmitForm represents a submitForm action.
type PdfActionSubmitForm struct{*PdfAction ;F *PdfFilespec ;Fields _fd .PdfObject ;Flags _fd .PdfObject ;};func (_dgac *PdfAppender )replaceObject (_eaggb ,_faec _fd .PdfObject ){switch _bbfd :=_eaggb .(type ){case *_fd .PdfIndirectObject :_dgac ._daec [_faec ]=_bbfd .ObjectNumber ;case *_fd .PdfObjectStream :_dgac ._daec [_faec ]=_bbfd .ObjectNumber ;};};func (_ebdb *PdfPage )setContainer (_gdgcd *_fd .PdfIndirectObject ){_gdgcd .PdfObject =_ebdb ._fgbbc ;_ebdb ._debfd =_gdgcd ;};func (_adda *PdfReader )newPdfActionJavaScriptFromDict (_bbbe *_fd .PdfObjectDictionary )(*PdfActionJavaScript ,error ){return &PdfActionJavaScript {JS :_bbbe .Get ("\u004a\u0053")},nil ;};func _dgd (_eac _fd .PdfObject )(*PdfFilespec ,error ){if _eac ==nil {return nil ,nil ;};return NewPdfFilespecFromObj (_eac );};func (_dbgea *PdfReader )newPdfPageFromDict (_fdbcb *_fd .PdfObjectDictionary )(*PdfPage ,error ){_fafc :=NewPdfPage ();_fafc ._fgbbc =_fdbcb ;_ggegd :=*_fdbcb ;_bdfe ,_bcedd :=_ggegd .Get ("\u0054\u0079\u0070\u0065").(*_fd .PdfObjectName );if !_bcedd {return nil ,_fce .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 *_bdfe !="\u0050\u0061\u0067\u0065"{return nil ,_fce .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 _caabg :=_ggegd .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");_caabg !=nil {_fafc .Parent =_caabg ;};if _aded :=_ggegd .Get ("\u004c\u0061\u0073t\u004d\u006f\u0064\u0069\u0066\u0069\u0065\u0064");_aded !=nil {_adgfce ,_ebgab :=_fd .GetString (_aded );if !_ebgab {return nil ,_fce .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");};_aefab ,_daff :=NewPdfDate (_adgfce .Str ());if _daff !=nil {return nil ,_daff ;};_fafc .LastModified =&_aefab ;};if _bbgdg :=_ggegd .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");_bbgdg !=nil &&!_fd .IsNullObject (_bbgdg ){_cdabg ,_fdbfb :=_fd .GetDict (_bbgdg );if !_fdbfb {return nil ,_d .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",_bbgdg );};var _dagaf error ;_fafc .Resources ,_dagaf =NewPdfPageResourcesFromDict (_cdabg );if _dagaf !=nil {return nil ,_dagaf ;};}else {_ecbfde ,_gccfab :=_fafc .getParentResources ();if _gccfab !=nil {return nil ,_gccfab ;};if _ecbfde ==nil {_ecbfde =NewPdfPageResources ();};_fafc .Resources =_ecbfde ;};if _aeda :=_ggegd .Get ("\u004d\u0065\u0064\u0069\u0061\u0042\u006f\u0078");_aeda !=nil {_fgdbd ,_agdg :=_fd .GetArray (_aeda );if !_agdg {return nil ,_fce .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 _fcaecg error ;_fafc .MediaBox ,_fcaecg =NewPdfRectangle (*_fgdbd );if _fcaecg !=nil {return nil ,_fcaecg ;};};if _fgadc :=_ggegd .Get ("\u0043r\u006f\u0070\u0042\u006f\u0078");_fgadc !=nil {_fcgcg ,_adge :=_fd .GetArray (_fgadc );if !_adge {return nil ,_fce .New ("\u0070a\u0067\u0065\u0020\u0043r\u006f\u0070\u0042\u006f\u0078 \u006eo\u0074 \u0061\u006e\u0020\u0061\u0072\u0072\u0061y");};var _agcae error ;_fafc .CropBox ,_agcae =NewPdfRectangle (*_fcgcg );if _agcae !=nil {return nil ,_agcae ;};};if _fcbc :=_ggegd .Get ("\u0042\u006c\u0065\u0065\u0064\u0042\u006f\u0078");_fcbc !=nil {_gcage ,_ffag :=_fd .GetArray (_fcbc );if !_ffag {return nil ,_fce .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 _becfd error ;_fafc .BleedBox ,_becfd =NewPdfRectangle (*_gcage );if _becfd !=nil {return nil ,_becfd ;};};if _cbdef :=_ggegd .Get ("\u0054r\u0069\u006d\u0042\u006f\u0078");_cbdef !=nil {_becb ,_gfafa :=_fd .GetArray (_cbdef );if !_gfafa {return nil ,_fce .New ("\u0070a\u0067\u0065\u0020\u0054r\u0069\u006d\u0042\u006f\u0078 \u006eo\u0074 \u0061\u006e\u0020\u0061\u0072\u0072\u0061y");};var _eaed error ;_fafc .TrimBox ,_eaed =NewPdfRectangle (*_becb );if _eaed !=nil {return nil ,_eaed ;};};if _gegfe :=_ggegd .Get ("\u0041\u0072\u0074\u0042\u006f\u0078");_gegfe !=nil {_ecbd ,_gdfda :=_fd .GetArray (_gegfe );if !_gdfda {return nil ,_fce .New ("\u0070a\u0067\u0065\u0020\u0041\u0072\u0074\u0042\u006f\u0078\u0020\u006eo\u0074\u0020\u0061\u006e\u0020\u0061\u0072\u0072\u0061\u0079");};var _ceab error ;_fafc .ArtBox ,_ceab =NewPdfRectangle (*_ecbd );if _ceab !=nil {return nil ,_ceab ;};};if _ebeff :=_ggegd .Get ("\u0042\u006f\u0078C\u006f\u006c\u006f\u0072\u0049\u006e\u0066\u006f");_ebeff !=nil {_fafc .BoxColorInfo =_ebeff ;};if _beedg :=_ggegd .Get ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073");_beedg !=nil {_fafc .Contents =_beedg ;};if _dagb :=_ggegd .Get ("\u0052\u006f\u0074\u0061\u0074\u0065");_dagb !=nil {_fgge ,_egbb :=_fd .GetInt (_dagb );if !_egbb {return nil ,_fce .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");};_ebcba :=int64 (*_fgge );_fafc .Rotate =&_ebcba ;};if _aadea :=_ggegd .Get ("\u0047\u0072\u006fu\u0070");_aadea !=nil {_fafc .Group =_aadea ;};if _edbgg :=_ggegd .Get ("\u0054\u0068\u0075m\u0062");_edbgg !=nil {_fafc .Thumb =_edbgg ;};if _ddacbe :=_ggegd .Get ("\u0042");_ddacbe !=nil {_fafc .B =_ddacbe ;};if _ebcee :=_ggegd .Get ("\u0044\u0075\u0072");_ebcee !=nil {_fafc .Dur =_ebcee ;};if _cffd :=_ggegd .Get ("\u0054\u0072\u0061n\u0073");_cffd !=nil {_fafc .Trans =_cffd ;};if _fgdfb :=_ggegd .Get ("\u0041\u0041");_fgdfb !=nil {_fafc .AA =_fgdfb ;};if _agae :=_ggegd .Get ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");_agae !=nil {_fafc .Metadata =_agae ;};if _gecgc :=_ggegd .Get ("\u0050i\u0065\u0063\u0065\u0049\u006e\u0066o");_gecgc !=nil {_fafc .PieceInfo =_gecgc ;};if _dddad :=_ggegd .Get ("\u0053\u0074\u0072\u0075\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074\u0073");_dddad !=nil {_fafc .StructParents =_dddad ;};if _fgdgg :=_ggegd .Get ("\u0049\u0044");_fgdgg !=nil {_fafc .ID =_fgdgg ;};if _eabf :=_ggegd .Get ("\u0050\u005a");_eabf !=nil {_fafc .PZ =_eabf ;};if _feffcd :=_ggegd .Get ("\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006fn\u0049\u006e\u0066\u006f");_feffcd !=nil {_fafc .SeparationInfo =_feffcd ;};if _cffbe :=_ggegd .Get ("\u0054\u0061\u0062\u0073");_cffbe !=nil {_fafc .Tabs =_cffbe ;};if _bbeg :=_ggegd .Get ("T\u0065m\u0070\u006c\u0061\u0074\u0065\u0049\u006e\u0073t\u0061\u006e\u0074\u0069at\u0065\u0064");_bbeg !=nil {_fafc .TemplateInstantiated =_bbeg ;};if _fgcbc :=_ggegd .Get ("\u0050r\u0065\u0073\u0053\u0074\u0065\u0070s");_fgcbc !=nil {_fafc .PresSteps =_fgcbc ;};if _bccef :=_ggegd .Get ("\u0055\u0073\u0065\u0072\u0055\u006e\u0069\u0074");_bccef !=nil {_fafc .UserUnit =_bccef ;};if _cdgf :=_ggegd .Get ("\u0056\u0050");_cdgf !=nil {_fafc .VP =_cdgf ;};if _ccfgg :=_ggegd .Get ("\u0041\u006e\u006e\u006f\u0074\u0073");_ccfgg !=nil {_fafc .Annots =_ccfgg ;};_fafc ._gccea =_dbgea ;return _fafc ,nil ;};
// ToPdfObject returns the PDF representation of the function.
func (_afef *PdfFunctionType3 )ToPdfObject ()_fd .PdfObject {_egbdf :=_fd .MakeDict ();_egbdf .Set ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065",_fd .MakeInteger (3));_cbagb :=&_fd .PdfObjectArray {};for _ ,_afabf :=range _afef .Domain {_cbagb .Append (_fd .MakeFloat (_afabf ));};_egbdf .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_cbagb );if _afef .Range !=nil {_bbgaf :=&_fd .PdfObjectArray {};for _ ,_edbc :=range _afef .Range {_bbgaf .Append (_fd .MakeFloat (_edbc ));};_egbdf .Set ("\u0052\u0061\u006eg\u0065",_bbgaf );};if _afef .Functions !=nil {_dgcb :=&_fd .PdfObjectArray {};for _ ,_edggb :=range _afef .Functions {_dgcb .Append (_edggb .ToPdfObject ());};_egbdf .Set ("\u0046u\u006e\u0063\u0074\u0069\u006f\u006es",_dgcb );};if _afef .Bounds !=nil {_cgeee :=&_fd .PdfObjectArray {};for _ ,_fcgae :=range _afef .Bounds {_cgeee .Append (_fd .MakeFloat (_fcgae ));};_egbdf .Set ("\u0042\u006f\u0075\u006e\u0064\u0073",_cgeee );};if _afef .Encode !=nil {_dacdc :=&_fd .PdfObjectArray {};for _ ,_cagdc :=range _afef .Encode {_dacdc .Append (_fd .MakeFloat (_cagdc ));};_egbdf .Set ("\u0045\u006e\u0063\u006f\u0064\u0065",_dacdc );};if _afef ._adbb !=nil {_afef ._adbb .PdfObject =_egbdf ;return _afef ._adbb ;};return _egbdf ;};
// GetCapHeight returns the CapHeight of the font `descriptor`.
func (_cbcab *PdfFontDescriptor )GetCapHeight ()(float64 ,error ){return _fd .GetNumberAsFloat (_cbcab .CapHeight );};func (_fgbe *PdfReader )newPdfAnnotationMovieFromDict (_aebfa *_fd .PdfObjectDictionary )(*PdfAnnotationMovie ,error ){_fbc :=PdfAnnotationMovie {};_fbc .T =_aebfa .Get ("\u0054");_fbc .Movie =_aebfa .Get ("\u004d\u006f\u0076i\u0065");_fbc .A =_aebfa .Get ("\u0041");return &_fbc ,nil ;};
// ToPdfObject returns the text field dictionary within an indirect object (container).
func (_fdbe *PdfFieldText )ToPdfObject ()_fd .PdfObject {_fdbe .PdfField .ToPdfObject ();_badd :=_fdbe ._fbef ;_fedg :=_badd .PdfObject .(*_fd .PdfObjectDictionary );_fedg .Set ("\u0046\u0054",_fd .MakeName ("\u0054\u0078"));if _fdbe .DA !=nil {_fedg .Set ("\u0044\u0041",_fdbe .DA );};if _fdbe .Q !=nil {_fedg .Set ("\u0051",_fdbe .Q );};if _fdbe .DS !=nil {_fedg .Set ("\u0044\u0053",_fdbe .DS );};if _fdbe .RV !=nil {_fedg .Set ("\u0052\u0056",_fdbe .RV );};if _fdbe .MaxLen !=nil {_fedg .Set ("\u004d\u0061\u0078\u004c\u0065\u006e",_fdbe .MaxLen );};return _badd ;};
// GetXObjectByName gets XObject by name.
func (_fbagc *PdfPage )GetXObjectByName (name _fd .PdfObjectName )(_fd .PdfObject ,bool ){_acbbd ,_cdbb :=_fbagc .Resources .XObject .(*_fd .PdfObjectDictionary );if !_cdbb {return nil ,false ;};if _gbdfe :=_acbbd .Get (name );_gbdfe !=nil {return _gbdfe ,true ;};return nil ,false ;};
// ToPdfObject returns the PDF representation of the shading dictionary.
func (_efeef *PdfShadingType3 )ToPdfObject ()_fd .PdfObject {_efeef .PdfShading .ToPdfObject ();_agaga ,_dbgbgb :=_efeef .getShadingDict ();if _dbgbgb !=nil {_fca .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 _efeef .Coords !=nil {_agaga .Set ("\u0043\u006f\u006f\u0072\u0064\u0073",_efeef .Coords );};if _efeef .Domain !=nil {_agaga .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_efeef .Domain );};if _efeef .Function !=nil {if len (_efeef .Function )==1{_agaga .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_efeef .Function [0].ToPdfObject ());}else {_fagcd :=_fd .MakeArray ();for _ ,_bdff :=range _efeef .Function {_fagcd .Append (_bdff .ToPdfObject ());};_agaga .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_fagcd );};};if _efeef .Extend !=nil {_agaga .Set ("\u0045\u0078\u0074\u0065\u006e\u0064",_efeef .Extend );};return _efeef ._bcgcg ;};
// NewPdfColorspaceDeviceGray returns a new grayscale colorspace.
func NewPdfColorspaceDeviceGray ()*PdfColorspaceDeviceGray {return &PdfColorspaceDeviceGray {}};
// 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 (_gfacg *Image )GetSamples ()[]uint32 {_bcgf :=_ddf .ResampleBytes (_gfacg .Data ,int (_gfacg .BitsPerComponent ));if _gfacg .BitsPerComponent < 8{_bcgf =_gfacg .samplesTrimPadding (_bcgf );};_gffab :=int (_gfacg .Width )*int (_gfacg .Height )*_gfacg .ColorComponents ;if len (_bcgf )< _gffab {_fca .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 (_bcgf ),_gffab );return _bcgf ;}else if len (_bcgf )> _gffab {_fca .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 (_bcgf ),_gffab );_bcgf =_bcgf [:_gffab ];};return _bcgf ;};
// NewPdfColorLab returns a new Lab color.
func NewPdfColorLab (l ,a ,b float64 )*PdfColorLab {_cfebd :=PdfColorLab {l ,a ,b };return &_cfebd };
// GetTrailer returns the PDF's trailer dictionary.
func (_aecef *PdfReader )GetTrailer ()(*_fd .PdfObjectDictionary ,error ){_dedbf :=_aecef ._egbge .GetTrailer ();if _dedbf ==nil {return nil ,_fce .New ("\u0074r\u0061i\u006c\u0065\u0072\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};return _dedbf ,nil ;};
// ToPdfObject returns the PDF representation of the colorspace.
func (_eagb *PdfColorspaceSpecialSeparation )ToPdfObject ()_fd .PdfObject {_bgbef :=_fd .MakeArray (_fd .MakeName ("\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e"));_bgbef .Append (_eagb .ColorantName );_bgbef .Append (_eagb .AlternateSpace .ToPdfObject ());_bgbef .Append (_eagb .TintTransform .ToPdfObject ());if _eagb ._gfbf !=nil {_eagb ._gfbf .PdfObject =_bgbef ;return _eagb ._gfbf ;};return _bgbef ;};
// PdfActionLaunch represents a launch action.
type PdfActionLaunch struct{*PdfAction ;F *PdfFilespec ;Win _fd .PdfObject ;Mac _fd .PdfObject ;Unix _fd .PdfObject ;NewWindow _fd .PdfObject ;};
// 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 (_ebef *PdfColorspaceSpecialPattern )ColorFromPdfObjects (objects []_fd .PdfObject )(PdfColor ,error ){if len (objects )< 1{return nil ,_fce .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");};_eeda :=&PdfColorPattern {};_bfge ,_dgfa :=objects [len (objects )-1].(*_fd .PdfObjectName );if !_dgfa {_fca .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 ;};_eeda .PatternName =*_bfge ;if len (objects )> 1{_bdga :=objects [0:len (objects )-1];if _ebef .UnderlyingCS ==nil {_fca .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 ,_fce .New ("\u0075n\u0064\u0065\u0072\u006cy\u0069\u006e\u0067\u0020\u0043S\u0020n\u006ft\u0020\u0064\u0065\u0066\u0069\u006e\u0065d");};_bfga ,_daaga :=_ebef .UnderlyingCS .ColorFromPdfObjects (_bdga );if _daaga !=nil {_fca .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",_daaga );return nil ,_daaga ;};_eeda .Color =_bfga ;};return _eeda ,nil ;};
// ColorFromPdfObjects returns a new PdfColor based on the input slice of color
// components. The slice should contain a single PdfObjectFloat element.
func (_fbdc *PdfColorspaceSpecialSeparation )ColorFromPdfObjects (objects []_fd .PdfObject )(PdfColor ,error ){if len (objects )!=1{return nil ,_fce .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_gfgcg ,_ebbaf :=_fd .GetNumbersAsFloat (objects );if _ebbaf !=nil {return nil ,_ebbaf ;};return _fbdc .ColorFromFloats (_gfgcg );};func (_gdcf *pdfFontSimple )addEncoding ()error {var (_eadd string ;_gabd map[_gf .CharCode ]_gf .GlyphName ;_ecbfdc _gf .SimpleEncoder ;);if _gdcf .Encoder ()!=nil {_ccae ,_bbdac :=_gdcf .Encoder ().(_gf .SimpleEncoder );if _bbdac &&_ccae !=nil {_eadd =_ccae .BaseName ();};};if _gdcf .Encoding !=nil {_cdgd ,_cgfdd ,_bgbf :=_gdcf .getFontEncoding ();if _bgbf !=nil {_fca .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",_gdcf ._egfg ,_gdcf ._ccea ,_gdcf .Encoding ,_gdcf .Encoding ,_bgbf );return _bgbf ;};if _cdgd !=""{_eadd =_cdgd ;};_ecbfdc ,_bgbf =_gf .NewSimpleTextEncoder (_eadd ,_cgfdd );if _bgbf !=nil {return _bgbf ;};};if _ecbfdc ==nil {_dgfaf :=_gdcf ._ggbg ;if _dgfaf !=nil {switch _gdcf ._ccea {case "\u0054\u0079\u0070e\u0031":if _dgfaf .fontFile !=nil &&_dgfaf .fontFile ._dfga !=nil {_fca .Log .Debug ("\u0055\u0073\u0069\u006e\u0067\u0020\u0066\u006f\u006et\u0046\u0069\u006c\u0065");_ecbfdc =_dgfaf .fontFile ._dfga ;};case "\u0054\u0072\u0075\u0065\u0054\u0079\u0070\u0065":if _dgfaf ._accda !=nil {_fca .Log .Debug ("\u0055s\u0069n\u0067\u0020\u0046\u006f\u006e\u0074\u0046\u0069\u006c\u0065\u0032");_gcedc ,_ddabe :=_dgfaf ._accda .MakeEncoder ();if _ddabe ==nil {_ecbfdc =_gcedc ;};};};};};if _ecbfdc !=nil {if _gabd !=nil {_fca .Log .Trace ("\u0064\u0069\u0066fe\u0072\u0065\u006e\u0063\u0065\u0073\u003d\u0025\u002b\u0076\u0020\u0066\u006f\u006e\u0074\u003d\u0025\u0073",_gabd ,_gdcf .baseFields ());_ecbfdc =_gf .ApplyDifferences (_ecbfdc ,_gabd );};_gdcf .SetEncoder (_ecbfdc );};return nil ;};
// FlattenFieldsWithOpts flattens the AcroForm fields of the reader using the
// provided field appearance generator and the specified options. If no options
// are specified, all form fields are flattened.
// If a filter function is provided using the opts parameter, only the filtered
// fields are flattened. Otherwise, all form fields are flattened.
// At the end of the process, the AcroForm contains all the fields which were
// not flattened. If all fields are flattened, the reader's AcroForm field
// is set to nil.
func (_eaffb *PdfReader )FlattenFieldsWithOpts (appgen FieldAppearanceGenerator ,opts *FieldFlattenOpts )error {return _eaffb .flattenFieldsWithOpts (false ,appgen ,opts );};
// NewPdfFieldSignature returns an initialized signature field.
func NewPdfFieldSignature (signature *PdfSignature )*PdfFieldSignature {_debb :=&PdfFieldSignature {};_debb .PdfField =NewPdfField ();_debb .PdfField .SetContext (_debb );_debb .PdfAnnotationWidget =NewPdfAnnotationWidget ();_debb .PdfAnnotationWidget .SetContext (_debb );_debb .PdfAnnotationWidget ._defg =_debb .PdfField ._fbef ;_debb .T =_fd .MakeString ("");_debb .F =_fd .MakeInteger (132);_debb .V =signature ;return _debb ;};
// BaseFont returns the font's "BaseFont" field.
func (_beda *PdfFont )BaseFont ()string {return _beda .baseFields ()._egfg };
// ToPdfObject returns the PDF representation of the colorspace.
func (_eeage *PdfColorspaceDeviceCMYK )ToPdfObject ()_fd .PdfObject {return _fd .MakeName ("\u0044\u0065\u0076\u0069\u0063\u0065\u0043\u004d\u0059\u004b");};
// 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 ;
// String returns a string that describes `base`.
func (_gcacf fontCommon )String ()string {return _d .Sprintf ("\u0046\u004f\u004e\u0054\u007b\u0025\u0073\u007d",_gcacf .coreString ());};func (_geebb *PdfReader )newPdfAnnotationSoundFromDict (_cage *_fd .PdfObjectDictionary )(*PdfAnnotationSound ,error ){_gcb :=PdfAnnotationSound {};_bea ,_bceg :=_geebb .newPdfAnnotationMarkupFromDict (_cage );if _bceg !=nil {return nil ,_bceg ;};_gcb .PdfAnnotationMarkup =_bea ;_gcb .Name =_cage .Get ("\u004e\u0061\u006d\u0065");_gcb .Sound =_cage .Get ("\u0053\u006f\u0075n\u0064");return &_gcb ,nil ;};
// NewPdfFontFromTTF loads a TTF font and returns a PdfFont type that can be
// used in text styling functions.
// Uses a WinAnsiTextEncoder and loads only character codes 32-255.
// NOTE: For composite fonts such as used in symbolic languages, use NewCompositePdfFontFromTTF.
func NewPdfFontFromTTF (r _fc .ReadSeeker )(*PdfFont ,error ){const _faeff =_gf .CharCode (32);const _gfgd =_gf .CharCode (255);_fbff ,_fafd :=_ec .ReadAll (r );if _fafd !=nil {_fca .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",_fafd );return nil ,_fafd ;};_aaaa ,_fafd :=_aaf .TtfParse (_bg .NewReader (_fbff ));if _fafd !=nil {_fca .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",_fafd );return nil ,_fafd ;};_agfcf :=&pdfFontSimple {_cfcg :make (map[_gf .CharCode ]float64 ),fontCommon :fontCommon {_ccea :"\u0054\u0072\u0075\u0065\u0054\u0079\u0070\u0065"}};_agfcf ._fggbd =_gf .NewWinAnsiEncoder ();_agfcf ._egfg =_aaaa .PostScriptName ;_agfcf .FirstChar =_fd .MakeInteger (int64 (_faeff ));_agfcf .LastChar =_fd .MakeInteger (int64 (_gfgd ));_ceeed :=1000.0/float64 (_aaaa .UnitsPerEm );if len (_aaaa .Widths )<=0{return nil ,_fce .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");};_egacd :=_ceeed *float64 (_aaaa .Widths [0]);_facec :=make ([]float64 ,0,_gfgd -_faeff +1);for _egacf :=_faeff ;_egacf <=_gfgd ;_egacf ++{_gaegb ,_cfeae :=_agfcf .Encoder ().CharcodeToRune (_egacf );if !_cfeae {_fca .Log .Debug ("\u0052u\u006e\u0065\u0020\u006eo\u0074\u0020\u0066\u006f\u0075n\u0064 \u0028c\u006f\u0064\u0065\u003a\u0020\u0025\u0064)",_egacf );_facec =append (_facec ,_egacd );continue ;};_ecdbf ,_gebg :=_aaaa .Chars [_gaegb ];if !_gebg {_fca .Log .Debug ("R\u0075\u006e\u0065\u0020no\u0074 \u0069\u006e\u0020\u0054\u0054F\u0020\u0043\u0068\u0061\u0072\u0073");_facec =append (_facec ,_egacd );continue ;};_ceeef :=_ceeed *float64 (_aaaa .Widths [_ecdbf ]);_facec =append (_facec ,_ceeef );};_agfcf .Widths =_fd .MakeIndirectObject (_fd .MakeArrayFromFloats (_facec ));if len (_facec )< int (_gfgd -_faeff +1){_fca .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 (_facec ),255-32+1);return nil ,_fd .ErrRangeError ;};for _cbfdc :=_gf .CharCode (_faeff );_cbfdc <=_gfgd ;_cbfdc ++{_agfcf ._cfcg [_cbfdc ]=_facec [_cbfdc -_faeff ];};_agfcf .Encoding =_fd .MakeName ("\u0057i\u006eA\u006e\u0073\u0069\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067");_degd :=&PdfFontDescriptor {};_degd .FontName =_fd .MakeName (_aaaa .PostScriptName );_degd .Ascent =_fd .MakeFloat (_ceeed *float64 (_aaaa .TypoAscender ));_degd .Descent =_fd .MakeFloat (_ceeed *float64 (_aaaa .TypoDescender ));_degd .CapHeight =_fd .MakeFloat (_ceeed *float64 (_aaaa .CapHeight ));_degd .FontBBox =_fd .MakeArrayFromFloats ([]float64 {_ceeed *float64 (_aaaa .Xmin ),_ceeed *float64 (_aaaa .Ymin ),_ceeed *float64 (_aaaa .Xmax ),_ceeed *float64 (_aaaa .Ymax )});_degd .ItalicAngle =_fd .MakeFloat (float64 (_aaaa .ItalicAngle ));_degd .MissingWidth =_fd .MakeFloat (_ceeed *float64 (_aaaa .Widths [0]));_gfee ,_fafd :=_fd .MakeStream (_fbff ,_fd .NewFlateEncoder ());if _fafd !=nil {_fca .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",_fafd );return nil ,_fafd ;};_gfee .PdfObjectDictionary .Set ("\u004ce\u006e\u0067\u0074\u0068\u0031",_fd .MakeInteger (int64 (len (_fbff ))));_degd .FontFile2 =_gfee ;if _aaaa .Bold {_degd .StemV =_fd .MakeInteger (120);}else {_degd .StemV =_fd .MakeInteger (70);};_efgac :=_egabc ;if _aaaa .IsFixedPitch {_efgac |=_efafc ;};if _aaaa .ItalicAngle !=0{_efgac |=_gfeaa ;};_degd .Flags =_fd .MakeInteger (int64 (_efgac ));_agfcf ._ggbg =_degd ;_cfdgc :=&PdfFont {_bbaa :_agfcf };return _cfdgc ,nil ;};
// GetContainingPdfObject returns the container of the PdfAcroForm (indirect object).
func (_edgb *PdfAcroForm )GetContainingPdfObject ()_fd .PdfObject {return _edgb ._dbcdb };func _bcfbb (_cebgf _aaf .StdFont )pdfFontSimple {_adbc :=_cebgf .Descriptor ();return pdfFontSimple {fontCommon :fontCommon {_ccea :"\u0054\u0079\u0070e\u0031",_egfg :_cebgf .Name ()},_gdeba :_cebgf .GetMetricsTable (),_gbaf :&PdfFontDescriptor {FontName :_fd .MakeName (string (_adbc .Name )),FontFamily :_fd .MakeName (_adbc .Family ),FontWeight :_fd .MakeFloat (float64 (_adbc .Weight )),Flags :_fd .MakeInteger (int64 (_adbc .Flags )),FontBBox :_fd .MakeArrayFromFloats (_adbc .BBox [:]),ItalicAngle :_fd .MakeFloat (_adbc .ItalicAngle ),Ascent :_fd .MakeFloat (_adbc .Ascent ),Descent :_fd .MakeFloat (_adbc .Descent ),CapHeight :_fd .MakeFloat (_adbc .CapHeight ),XHeight :_fd .MakeFloat (_adbc .XHeight ),StemV :_fd .MakeFloat (_adbc .StemV ),StemH :_fd .MakeFloat (_adbc .StemH )},_cgdd :_cebgf .Encoder ()};};func _baaaa (_aggd *_gd .ImageBase )(_afba Image ){_afba .Width =int64 (_aggd .Width );_afba .Height =int64 (_aggd .Height );_afba .BitsPerComponent =int64 (_aggd .BitsPerComponent );_afba .ColorComponents =_aggd .ColorComponents ;_afba .Data =_aggd .Data ;_afba ._dfec =_aggd .Decode ;_afba ._cded =_aggd .Alpha ;return _afba ;};
// PdfAnnotationCaret represents Caret annotations.
// (Section 12.5.6.11).
type PdfAnnotationCaret struct{*PdfAnnotation ;*PdfAnnotationMarkup ;RD _fd .PdfObject ;Sy _fd .PdfObject ;};
// NewPdfAnnotation returns an initialized generic PDF annotation model.
func NewPdfAnnotation ()*PdfAnnotation {_gdfb :=&PdfAnnotation {};_gdfb ._defg =_fd .MakeIndirectObject (_fd .MakeDict ());return _gdfb ;};
// PdfActionSound represents a sound action.
type PdfActionSound struct{*PdfAction ;Sound _fd .PdfObject ;Volume _fd .PdfObject ;Synchronous _fd .PdfObject ;Repeat _fd .PdfObject ;Mix _fd .PdfObject ;};func (_eccga *PdfReader )traverseObjectData (_ddebc _fd .PdfObject )error {return _fd .ResolveReferencesDeep (_ddebc ,_eccga ._caece );};
// String returns the name of the colorspace (DeviceN).
func (_febefb *PdfColorspaceDeviceN )String ()string {return "\u0044e\u0076\u0069\u0063\u0065\u004e"};
// SetPdfTitle sets the Title attribute of the output PDF.
func SetPdfTitle (title string ){_fcfc =title };
// C returns the value of the cyan component of the color.
func (_gccge *PdfColorDeviceCMYK )C ()float64 {return float64 (_gccge [0])};
// NewPdfFilespec returns an initialized generic PDF filespec model.
func NewPdfFilespec ()*PdfFilespec {_dbgdd :=&PdfFilespec {};_dbgdd ._gccf =_fd .MakeIndirectObject (_fd .MakeDict ());return _dbgdd ;};
// UpdateObject marks `obj` as updated and to be included in the following revision.
func (_aaag *PdfAppender )UpdateObject (obj _fd .PdfObject ){_aaag .replaceObject (obj ,obj );if _ ,_fdabg :=_aaag ._baef [obj ];!_fdabg {_aaag ._efe =append (_aaag ._efe ,obj );_aaag ._baef [obj ]=struct{}{};};};
// PdfShadingType3 is a Radial shading.
type PdfShadingType3 struct{*PdfShading ;Coords *_fd .PdfObjectArray ;Domain *_fd .PdfObjectArray ;Function []PdfFunction ;Extend *_fd .PdfObjectArray ;};
// NewOutline returns a new outline instance.
func NewOutline ()*Outline {return &Outline {}};
// Val returns the color value.
func (_cbabe *PdfColorDeviceGray )Val ()float64 {return float64 (*_cbabe )};
// DecodeArray returns the range of color component values in CalRGB colorspace.
func (_cfeea *PdfColorspaceCalRGB )DecodeArray ()[]float64 {return []float64 {0.0,1.0,0.0,1.0,0.0,1.0};};
// SetOptimizer sets the optimizer to optimize PDF before writing.
func (_dgbag *PdfWriter )SetOptimizer (optimizer Optimizer ){_dgbag ._gegg =optimizer };
// ToPdfObject returns the PDF representation of the colorspace.
func (_fbcb *PdfColorspaceDeviceGray )ToPdfObject ()_fd .PdfObject {return _fd .MakeName ("\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079");};
// ToPdfObject implements interface PdfModel.
func (_dcea *PdfAnnotationHighlight )ToPdfObject ()_fd .PdfObject {_dcea .PdfAnnotation .ToPdfObject ();_ffee :=_dcea ._defg ;_aaaf :=_ffee .PdfObject .(*_fd .PdfObjectDictionary );_dcea .PdfAnnotationMarkup .appendToPdfDictionary (_aaaf );_aaaf .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fd .MakeName ("\u0048i\u0067\u0068\u006c\u0069\u0067\u0068t"));_aaaf .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_dcea .QuadPoints );return _ffee ;};
// ToPdfObject converts colorspace to a PDF object. [/Indexed base hival lookup]
func (_ccfdab *PdfColorspaceSpecialIndexed )ToPdfObject ()_fd .PdfObject {_ddfbf :=_fd .MakeArray (_fd .MakeName ("\u0049n\u0064\u0065\u0078\u0065\u0064"));_ddfbf .Append (_ccfdab .Base .ToPdfObject ());_ddfbf .Append (_fd .MakeInteger (int64 (_ccfdab .HiVal )));_ddfbf .Append (_ccfdab .Lookup );if _ccfdab ._fgga !=nil {_ccfdab ._fgga .PdfObject =_ddfbf ;return _ccfdab ._fgga ;};return _ddfbf ;};
// ButtonType represents the subtype of a button field, can be one of:
// - Checkbox (ButtonTypeCheckbox)
// - PushButton (ButtonTypePushButton)
// - RadioButton (ButtonTypeRadioButton)
type ButtonType int ;
// HasFontByName checks whether a font is defined by the specified keyName.
func (_egbce *PdfPageResources )HasFontByName (keyName _fd .PdfObjectName )bool {_ ,_gfadb :=_egbce .GetFontByName (keyName );return _gfadb ;};
// 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 (_ggfb *PdfColorspaceDeviceGray )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=1{return nil ,_fce .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_egba :=vals [0];if _egba < 0.0||_egba > 1.0{_fca .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 _egba < 0.0{_egba =0.0;}else if _egba > 1.0{_egba =1.0;};return NewPdfColorDeviceGray (_egba ),nil ;};
// PdfFieldButton represents a button field which includes push buttons, checkboxes, and radio buttons.
type PdfFieldButton struct{*PdfField ;Opt *_fd .PdfObjectArray ;};
// NewImageFromGoImage creates a new NRGBA32 unidoc Image from a golang Image.
// If `goimg` is grayscale (*goimage.Gray8) then calls NewGrayImageFromGoImage instead.
func (_cdbcc DefaultImageHandler )NewImageFromGoImage (goimg _dg .Image )(*Image ,error ){_dgcfd ,_gfge :=_gd .FromGoImage (goimg );if _gfge !=nil {return nil ,_gfge ;};_eace :=_baaaa (_dgcfd .Base ());return &_eace ,nil ;};
// SetPdfModifiedDate sets the ModDate attribute of the output PDF.
func SetPdfModifiedDate (modifiedDate _b .Time ){_fdgee =modifiedDate };
// NewPdfAnnotationSquiggly returns a new text squiggly annotation.
func NewPdfAnnotationSquiggly ()*PdfAnnotationSquiggly {_feb :=NewPdfAnnotation ();_eedd :=&PdfAnnotationSquiggly {};_eedd .PdfAnnotation =_feb ;_eedd .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_feb .SetContext (_eedd );return _eedd ;};
// GetAsTilingPattern returns a tiling pattern. Check with IsTiling() prior to using this.
func (_bgege *PdfPattern )GetAsTilingPattern ()*PdfTilingPattern {return _bgege ._befef .(*PdfTilingPattern );};
// PdfAcroForm represents the AcroForm dictionary used for representation of form data in PDF.
type PdfAcroForm struct{Fields *[]*PdfField ;NeedAppearances *_fd .PdfObjectBool ;SigFlags *_fd .PdfObjectInteger ;CO *_fd .PdfObjectArray ;DR *PdfPageResources ;DA *_fd .PdfObjectString ;Q *_fd .PdfObjectInteger ;XFA _fd .PdfObject ;_dbcdb *_fd .PdfIndirectObject ;};
// GetOptimizer returns current PDF optimizer.
func (_bbebc *PdfWriter )GetOptimizer ()Optimizer {return _bbebc ._gegg };
// DecodeArray returns the range of color component values in the ICCBased colorspace.
func (_ffcca *PdfColorspaceICCBased )DecodeArray ()[]float64 {return _ffcca .Range };
// NewPdfAnnotationStamp returns a new stamp annotation.
func NewPdfAnnotationStamp ()*PdfAnnotationStamp {_adb :=NewPdfAnnotation ();_fbg :=&PdfAnnotationStamp {};_fbg .PdfAnnotation =_adb ;_fbg .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_adb .SetContext (_fbg );return _fbg ;};
// GetNumComponents returns the number of color components (3 for RGB).
func (_ddfe *PdfColorDeviceRGB )GetNumComponents ()int {return 3};
// NewPdfColorspaceCalRGB returns a new CalRGB colorspace object.
func NewPdfColorspaceCalRGB ()*PdfColorspaceCalRGB {_cdb :=&PdfColorspaceCalRGB {};_cdb .BlackPoint =[]float64 {0.0,0.0,0.0};_cdb .Gamma =[]float64 {1.0,1.0,1.0};_cdb .Matrix =[]float64 {1,0,0,0,1,0,0,0,1};return _cdb ;};func (_fedd *PdfReader )newPdfFieldSignatureFromDict (_eaeba *_fd .PdfObjectDictionary )(*PdfFieldSignature ,error ){_adab :=&PdfFieldSignature {};_cbaf ,_fegba :=_fd .GetIndirect (_eaeba .Get ("\u0056"));if _fegba {var _geecg error ;_adab .V ,_geecg =_fedd .newPdfSignatureFromIndirect (_cbaf );if _geecg !=nil {return nil ,_geecg ;};};_adab .Lock ,_ =_fd .GetIndirect (_eaeba .Get ("\u004c\u006f\u0063\u006b"));_adab .SV ,_ =_fd .GetIndirect (_eaeba .Get ("\u0053\u0056"));return _adab ,nil ;};func (_ead *PdfReader )newPdfAnnotationTrapNetFromDict (_cbca *_fd .PdfObjectDictionary )(*PdfAnnotationTrapNet ,error ){_fada :=PdfAnnotationTrapNet {};return &_fada ,nil ;};func (_ggg *PdfReader )newPdfActionFromIndirectObject (_cac *_fd .PdfIndirectObject )(*PdfAction ,error ){_ccc ,_caab :=_cac .PdfObject .(*_fd .PdfObjectDictionary );if !_caab {return nil ,_d .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 :=_ggg ._gggcg .GetModelFromPrimitive (_ccc );model !=nil {_eaf ,_efa :=model .(*PdfAction );if !_efa {return nil ,_d .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 _eaf ,nil ;};_gdc :=&PdfAction {};_gdc ._fgb =_cac ;_ggg ._gggcg .Register (_ccc ,_gdc );if _cbd :=_ccc .Get ("\u0054\u0079\u0070\u0065");_cbd !=nil {_dga ,_adea :=_cbd .(*_fd .PdfObjectName );if !_adea {_fca .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",_cbd );}else {if *_dga !="\u0041\u0063\u0074\u0069\u006f\u006e"{_fca .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",*_dga );};_gdc .Type =_dga ;};};if _bbcg :=_ccc .Get ("\u004e\u0065\u0078\u0074");_bbcg !=nil {_gdc .Next =_bbcg ;};if _abe :=_ccc .Get ("\u0053");_abe !=nil {_gdc .S =_abe ;};_aaa ,_gac :=_gdc .S .(*_fd .PdfObjectName );if !_gac {_fca .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",_gdc .S );return nil ,_d .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",_gdc .S );};_da :=PdfActionType (_aaa .String ());switch _da {case ActionTypeGoTo :_ffe ,_fcb :=_ggg .newPdfActionGotoFromDict (_ccc );if _fcb !=nil {return nil ,_fcb ;};_ffe .PdfAction =_gdc ;_gdc ._db =_ffe ;return _gdc ,nil ;case ActionTypeGoToR :_acf ,_dbg :=_ggg .newPdfActionGotoRFromDict (_ccc );if _dbg !=nil {return nil ,_dbg ;};_acf .PdfAction =_gdc ;_gdc ._db =_acf ;return _gdc ,nil ;case ActionTypeGoToE :_dac ,_bga :=_ggg .newPdfActionGotoEFromDict (_ccc );if _bga !=nil {return nil ,_bga ;};_dac .PdfAction =_gdc ;_gdc ._db =_dac ;return _gdc ,nil ;case ActionTypeLaunch :_daca ,_ffc :=_ggg .newPdfActionLaunchFromDict (_ccc );if _ffc !=nil {return nil ,_ffc ;};_daca .PdfAction =_gdc ;_gdc ._db =_daca ;return _gdc ,nil ;case ActionTypeThread :_dgab ,_gga :=_ggg .newPdfActionThreadFromDict (_ccc );if _gga !=nil {return nil ,_gga ;};_dgab .PdfAction =_gdc ;_gdc ._db =_dgab ;return _gdc ,nil ;case ActionTypeURI :_gfe ,_dda :=_ggg .newPdfActionURIFromDict (_ccc );if _dda !=nil {return nil ,_dda ;};_gfe .PdfAction =_gdc ;_gdc ._db =_gfe ;return _gdc ,nil ;case ActionTypeSound :_agge ,_gec :=_ggg .newPdfActionSoundFromDict (_ccc );if _gec !=nil {return nil ,_gec ;};_agge .PdfAction =_gdc ;_gdc ._db =_agge ;return _gdc ,nil ;case ActionTypeMovie :_cdf ,_ccbd :=_ggg .newPdfActionMovieFromDict (_ccc );if _ccbd !=nil {return nil ,_ccbd ;};_cdf .PdfAction =_gdc ;_gdc ._db =_cdf ;return _gdc ,nil ;case ActionTypeHide :_abg ,_gbe :=_ggg .newPdfActionHideFromDict (_ccc );if _gbe !=nil {return nil ,_gbe ;};_abg .PdfAction =_gdc ;_gdc ._db =_abg ;return _gdc ,nil ;case ActionTypeNamed :_fdg ,_ede :=_ggg .newPdfActionNamedFromDict (_ccc );if _ede !=nil {return nil ,_ede ;};_fdg .PdfAction =_gdc ;_gdc ._db =_fdg ;return _gdc ,nil ;case ActionTypeSubmitForm :_ffea ,_bcdg :=_ggg .newPdfActionSubmitFormFromDict (_ccc );if _bcdg !=nil {return nil ,_bcdg ;};_ffea .PdfAction =_gdc ;_gdc ._db =_ffea ;return _gdc ,nil ;case ActionTypeResetForm :_cgf ,_bcg :=_ggg .newPdfActionResetFormFromDict (_ccc );if _bcg !=nil {return nil ,_bcg ;};_cgf .PdfAction =_gdc ;_gdc ._db =_cgf ;return _gdc ,nil ;case ActionTypeImportData :_gcf ,_fef :=_ggg .newPdfActionImportDataFromDict (_ccc );if _fef !=nil {return nil ,_fef ;};_gcf .PdfAction =_gdc ;_gdc ._db =_gcf ;return _gdc ,nil ;case ActionTypeSetOCGState :_gdfd ,_fcag :=_ggg .newPdfActionSetOCGStateFromDict (_ccc );if _fcag !=nil {return nil ,_fcag ;};_gdfd .PdfAction =_gdc ;_gdc ._db =_gdfd ;return _gdc ,nil ;case ActionTypeRendition :_def ,_fda :=_ggg .newPdfActionRenditionFromDict (_ccc );if _fda !=nil {return nil ,_fda ;};_def .PdfAction =_gdc ;_gdc ._db =_def ;return _gdc ,nil ;case ActionTypeTrans :_adf ,_fdgb :=_ggg .newPdfActionTransFromDict (_ccc );if _fdgb !=nil {return nil ,_fdgb ;};_adf .PdfAction =_gdc ;_gdc ._db =_adf ;return _gdc ,nil ;case ActionTypeGoTo3DView :_bbb ,_ffec :=_ggg .newPdfActionGoTo3DViewFromDict (_ccc );if _ffec !=nil {return nil ,_ffec ;};_bbb .PdfAction =_gdc ;_gdc ._db =_bbb ;return _gdc ,nil ;case ActionTypeJavaScript :_gaf ,_cbba :=_ggg .newPdfActionJavaScriptFromDict (_ccc );if _cbba !=nil {return nil ,_cbba ;};_gaf .PdfAction =_gdc ;_gdc ._db =_gaf ;return _gdc ,nil ;};_fca .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",_da );return nil ,nil ;};
// ToPdfObject returns colorspace in a PDF object format [name dictionary]
func (_feca *PdfColorspaceLab )ToPdfObject ()_fd .PdfObject {_bbfff :=_fd .MakeArray ();_bbfff .Append (_fd .MakeName ("\u004c\u0061\u0062"));_ddeb :=_fd .MakeDict ();if _feca .WhitePoint !=nil {_gead :=_fd .MakeArray (_fd .MakeFloat (_feca .WhitePoint [0]),_fd .MakeFloat (_feca .WhitePoint [1]),_fd .MakeFloat (_feca .WhitePoint [2]));_ddeb .Set ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074",_gead );}else {_fca .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 _feca .BlackPoint !=nil {_cebe :=_fd .MakeArray (_fd .MakeFloat (_feca .BlackPoint [0]),_fd .MakeFloat (_feca .BlackPoint [1]),_fd .MakeFloat (_feca .BlackPoint [2]));_ddeb .Set ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074",_cebe );};if _feca .Range !=nil {_faga :=_fd .MakeArray (_fd .MakeFloat (_feca .Range [0]),_fd .MakeFloat (_feca .Range [1]),_fd .MakeFloat (_feca .Range [2]),_fd .MakeFloat (_feca .Range [3]));_ddeb .Set ("\u0052\u0061\u006eg\u0065",_faga );};_bbfff .Append (_ddeb );if _feca ._fbfeb !=nil {_feca ._fbfeb .PdfObject =_bbfff ;return _feca ._fbfeb ;};return _bbfff ;};
// AddExtGState add External Graphics State (GState). The gsDict can be specified
// either directly as a dictionary or an indirect object containing a dictionary.
func (_acgbb *PdfPageResources )AddExtGState (gsName _fd .PdfObjectName ,gsDict _fd .PdfObject )error {if _acgbb .ExtGState ==nil {_acgbb .ExtGState =_fd .MakeDict ();};_egfca :=_acgbb .ExtGState ;_agece ,_gaga :=_fd .TraceToDirectObject (_egfca ).(*_fd .PdfObjectDictionary );if !_gaga {_fca .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",_egfca ,_fd .TraceToDirectObject (_egfca ));return _fd .ErrTypeError ;};_agece .Set (gsName ,gsDict );return nil ;};var ImageHandling ImageHandler =DefaultImageHandler {};
// ToPdfObject returns the PDF representation of the colorspace.
func (_gedd *PdfColorspaceDeviceRGB )ToPdfObject ()_fd .PdfObject {return _fd .MakeName ("\u0044e\u0076\u0069\u0063\u0065\u0052\u0047B");};
// 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 (_abcfe *PdfReader )GetOutlinesFlattened ()([]*PdfOutlineTreeNode ,[]string ,error ){var _fddba []*PdfOutlineTreeNode ;var _fefa []string ;var _geged func (*PdfOutlineTreeNode ,*[]*PdfOutlineTreeNode ,*[]string ,int );_geged =func (_egbdfg *PdfOutlineTreeNode ,_aegd *[]*PdfOutlineTreeNode ,_cddfc *[]string ,_cggcgb int ){if _egbdfg ==nil {return ;};if _egbdfg ._ccggf ==nil {_fca .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 ;};_fdadg ,_geade :=_egbdfg ._ccggf .(*PdfOutlineItem );if _geade {*_aegd =append (*_aegd ,&_fdadg .PdfOutlineTreeNode );_gfcff :=_gc .Repeat ("\u0020",_cggcgb *2)+_fdadg .Title .Decoded ();*_cddfc =append (*_cddfc ,_gfcff );};if _egbdfg .First !=nil {_dbfb :=_gc .Repeat ("\u0020",_cggcgb *2)+"\u002b";*_cddfc =append (*_cddfc ,_dbfb );_geged (_egbdfg .First ,_aegd ,_cddfc ,_cggcgb +1);};if _geade &&_fdadg .Next !=nil {_geged (_fdadg .Next ,_aegd ,_cddfc ,_cggcgb );};};_geged (_abcfe ._fbdb ,&_fddba ,&_fefa ,0);return _fddba ,_fefa ,nil ;};
// PdfColorCalGray represents a CalGray colorspace.
type PdfColorCalGray float64 ;
// 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 (_ceede pdfFontSimple )GetCharMetrics (code _gf .CharCode )(_aaf .CharMetrics ,bool ){if _gbcee ,_ceca :=_ceede ._cfcg [code ];_ceca {return _aaf .CharMetrics {Wx :_gbcee },true ;};if _aaf .IsStdFont (_aaf .StdFontName (_ceede ._egfg )){return _aaf .CharMetrics {Wx :250},true ;};return _aaf .CharMetrics {},false ;};
// SetFilter sets compression filter. Decodes with current filter sets and
// encodes the data with the new filter.
func (_ceadca *XObjectImage )SetFilter (encoder _fd .StreamEncoder )error {_cgddg :=_ceadca .Stream ;_dcbgc ,_ddafg :=_ceadca .Filter .DecodeBytes (_cgddg );if _ddafg !=nil {return _ddafg ;};_ceadca .Filter =encoder ;encoder .UpdateParams (_ceadca .getParamsDict ());_cgddg ,_ddafg =encoder .EncodeBytes (_dcbgc );if _ddafg !=nil {return _ddafg ;};_ceadca .Stream =_cgddg ;return nil ;};func (_geaa *PdfReader )newPdfAnnotationPopupFromDict (_dbcd *_fd .PdfObjectDictionary )(*PdfAnnotationPopup ,error ){_fefd :=PdfAnnotationPopup {};_fefd .Parent =_dbcd .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");_fefd .Open =_dbcd .Get ("\u004f\u0070\u0065\u006e");return &_fefd ,nil ;};
// FillWithAppearance populates `form` with values provided by `provider`.
// If not nil, `appGen` is used to generate appearance dictionaries for the
// field annotations, based on the specified settings. Otherwise, appearance
// generation is skipped.
// e.g.: appGen := annotator.FieldAppearance{OnlyIfMissing: true, RegenerateTextFields: true}
// NOTE: In next major version this functionality will be part of Fill. (v4)
func (_aceef *PdfAcroForm )FillWithAppearance (provider FieldValueProvider ,appGen FieldAppearanceGenerator )error {return _aceef .fill (provider ,appGen );};
// NewPdfAnnotationUnderline returns a new text underline annotation.
func NewPdfAnnotationUnderline ()*PdfAnnotationUnderline {_baba :=NewPdfAnnotation ();_ccbdg :=&PdfAnnotationUnderline {};_ccbdg .PdfAnnotation =_baba ;_ccbdg .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_baba .SetContext (_ccbdg );return _ccbdg ;};
// 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 *_fd .PdfObjectInteger ;TilingType *_fd .PdfObjectInteger ;BBox *PdfRectangle ;XStep *_fd .PdfObjectFloat ;YStep *_fd .PdfObjectFloat ;Resources *PdfPageResources ;Matrix *_fd .PdfObjectArray ;};
// 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 ){_begae :=PdfDate {};_cgfdg :=_agcgg .FindAllStringSubmatch (dateStr ,1);if len (_cgfdg )< 1{return _begae ,_d .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 (_cgfdg [0])!=10{return _begae ,_fce .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");};_begae ._bgggb ,_ =_ca .ParseInt (_cgfdg [0][1],10,32);_begae ._baced ,_ =_ca .ParseInt (_cgfdg [0][2],10,32);_begae ._beffe ,_ =_ca .ParseInt (_cgfdg [0][3],10,32);_begae ._dcbba ,_ =_ca .ParseInt (_cgfdg [0][4],10,32);_begae ._fbbgf ,_ =_ca .ParseInt (_cgfdg [0][5],10,32);_begae ._cfegc ,_ =_ca .ParseInt (_cgfdg [0][6],10,32);if len (_cgfdg [0][7])> 0{_begae ._bbeedc =_cgfdg [0][7][0];}else {_begae ._bbeedc ='+';};if len (_cgfdg [0][8])> 0{_begae ._edbcf ,_ =_ca .ParseInt (_cgfdg [0][8],10,32);}else {_begae ._edbcf =0;};if len (_cgfdg [0][9])> 0{_begae ._eaegd ,_ =_ca .ParseInt (_cgfdg [0][9],10,32);}else {_begae ._eaegd =0;};return _begae ,nil ;};
// PdfColorspaceSpecialSeparation is a Separation colorspace.
// At the moment the colour space is set to a Separation space, the conforming reader shall determine whether the
// device has an available colorant (e.g. dye) corresponding to the name of the requested space. If so, the conforming
// reader shall ignore the alternateSpace and tintTransform parameters; subsequent painting operations within the
// space shall apply the designated colorant directly, according to the tint values supplied.
//
// Format: [/Separation name alternateSpace tintTransform]
type PdfColorspaceSpecialSeparation struct{ColorantName *_fd .PdfObjectName ;AlternateSpace PdfColorspace ;TintTransform PdfFunction ;_gfbf *_fd .PdfIndirectObject ;};
// ValidateSignatures validates digital signatures in the document.
func (_geecfa *PdfReader )ValidateSignatures (handlers []SignatureHandler )([]SignatureValidationResult ,error ){if _geecfa .AcroForm ==nil {return nil ,nil ;};if _geecfa .AcroForm .Fields ==nil {return nil ,nil ;};type sigFieldPair struct{_bgegc *PdfSignature ;_gedca *PdfField ;_adfb SignatureHandler ;};var _cedgg []*sigFieldPair ;for _ ,_dfcc :=range _geecfa .AcroForm .AllFields (){if _dfcc .V ==nil {continue ;};if _dgbbae ,_bdfb :=_fd .GetDict (_dfcc .V );_bdfb {if _ddfeb ,_beeacc :=_fd .GetNameVal (_dgbbae .Get ("\u0054\u0079\u0070\u0065"));_beeacc &&_ddfeb =="\u0053\u0069\u0067"{_fegfe ,_aeggd :=_fd .GetIndirect (_dfcc .V );if !_aeggd {_fca .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 ;};_gcfb ,_gcbdf :=_geecfa .newPdfSignatureFromIndirect (_fegfe );if _gcbdf !=nil {return nil ,_gcbdf ;};var _daaf SignatureHandler ;for _ ,_cgdaf :=range handlers {if _cgdaf .IsApplicable (_gcfb ){_daaf =_cgdaf ;break ;};};_cedgg =append (_cedgg ,&sigFieldPair {_bgegc :_gcfb ,_gedca :_dfcc ,_adfb :_daaf });};};};var _dgfcd []SignatureValidationResult ;for _ ,_cggff :=range _cedgg {_cgffa :=SignatureValidationResult {IsSigned :true ,Fields :[]*PdfField {_cggff ._gedca }};if _cggff ._adfb ==nil {_cgffa .Errors =append (_cgffa .Errors ,"\u0068a\u006ed\u006c\u0065\u0072\u0020\u006e\u006f\u0074\u0020\u0073\u0065\u0074");_dgfcd =append (_dgfcd ,_cgffa );continue ;};_dacafa ,_aeabb :=_cggff ._adfb .NewDigest (_cggff ._bgegc );if _aeabb !=nil {_cgffa .Errors =append (_cgffa .Errors ,"\u0064\u0069\u0067e\u0073\u0074\u0020\u0065\u0072\u0072\u006f\u0072",_aeabb .Error ());_dgfcd =append (_dgfcd ,_cgffa );continue ;};_ebcdg :=_cggff ._bgegc .ByteRange ;if _ebcdg ==nil {_cgffa .Errors =append (_cgffa .Errors ,"\u0042\u0079\u0074\u0065\u0052\u0061\u006e\u0067\u0065\u0020\u006e\u006ft\u0020\u0073\u0065\u0074");_dgfcd =append (_dgfcd ,_cgffa );continue ;};for _bdbb :=0;_bdbb < _ebcdg .Len ();_bdbb =_bdbb +2{_adgde ,_ :=_fd .GetNumberAsInt64 (_ebcdg .Get (_bdbb ));_aaadc ,_ :=_fd .GetIntVal (_ebcdg .Get (_bdbb +1));if _ ,_aeefc :=_geecfa ._eade .Seek (_adgde ,_fc .SeekStart );_aeefc !=nil {return nil ,_aeefc ;};_aacgd :=make ([]byte ,_aaadc );if _ ,_ffdef :=_geecfa ._eade .Read (_aacgd );_ffdef !=nil {return nil ,_ffdef ;};_dacafa .Write (_aacgd );};_gabag ,_aeabb :=_cggff ._adfb .Validate (_cggff ._bgegc ,_dacafa );if _aeabb !=nil {return nil ,_aeabb ;};_gabag .Name =_cggff ._bgegc .Name .Decoded ();_gabag .Reason =_cggff ._bgegc .Reason .Decoded ();if _cggff ._bgegc .M !=nil {_fecbc ,_bcbab :=NewPdfDate (_cggff ._bgegc .M .String ());if _bcbab !=nil {_gabag .Errors =append (_gabag .Errors ,_bcbab .Error ());continue ;};_gabag .Date =_fecbc ;};_gabag .ContactInfo =_cggff ._bgegc .ContactInfo .Decoded ();_gabag .Location =_cggff ._bgegc .Location .Decoded ();_gabag .Fields =_cgffa .Fields ;_dgfcd =append (_dgfcd ,_gabag );};return _dgfcd ,nil ;};
// ToPdfObject returns the PDF representation of the shading pattern.
func (_bcgff *PdfShadingPattern )ToPdfObject ()_fd .PdfObject {_bcgff .PdfPattern .ToPdfObject ();_bddb :=_bcgff .getDict ();if _bcgff .Shading !=nil {_bddb .Set ("\u0053h\u0061\u0064\u0069\u006e\u0067",_bcgff .Shading .ToPdfObject ());};if _bcgff .Matrix !=nil {_bddb .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_bcgff .Matrix );};if _bcgff .ExtGState !=nil {_bddb .Set ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e",_bcgff .ExtGState );};return _bcgff ._bfcg ;};
// GetXObjectImageByName returns the XObjectImage with the specified name from the
// page resources, if it exists.
func (_aedee *PdfPageResources )GetXObjectImageByName (keyName _fd .PdfObjectName )(*XObjectImage ,error ){_acecf ,_dfegdb :=_aedee .GetXObjectByName (keyName );if _acecf ==nil {return nil ,nil ;};if _dfegdb !=XObjectTypeImage {return nil ,_fce .New ("\u006e\u006f\u0074 \u0061\u006e\u0020\u0069\u006d\u0061\u0067\u0065");};_eegcb ,_fdabb :=NewXObjectImageFromStream (_acecf );if _fdabb !=nil {return nil ,_fdabb ;};return _eegcb ,nil ;};
// M returns the value of the magenta component of the color.
func (_bbcd *PdfColorDeviceCMYK )M ()float64 {return float64 (_bbcd [1])};