unipdf/model/model.go
2020-12-06 13:03:03 +00:00

2763 lines
668 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 (_ff "bufio";_ede "bytes";_gb "crypto/sha1";_ffg "crypto/x509";_g "encoding/binary";_c "encoding/hex";_ae "errors";_e "fmt";_ce "github.com/unidoc/pkcs7";_cga "github.com/unidoc/unipdf/v3/common";_dd "github.com/unidoc/unipdf/v3/common/license";_bcb "github.com/unidoc/unipdf/v3/core";_aec "github.com/unidoc/unipdf/v3/core/security";_fg "github.com/unidoc/unipdf/v3/core/security/crypt";_dc "github.com/unidoc/unipdf/v3/internal/cmap";_fgd "github.com/unidoc/unipdf/v3/internal/imageutil";_cgb "github.com/unidoc/unipdf/v3/internal/sampling";_ddd "github.com/unidoc/unipdf/v3/internal/textencoding";_acc "github.com/unidoc/unipdf/v3/model/internal/fonts";_ddg "github.com/unidoc/unipdf/v3/model/sigutil";_fc "github.com/unidoc/unipdf/v3/ps";_bd "github.com/unidoc/unitype";_bdd "golang.org/x/xerrors";_ac "image";_b "image/color";_ "image/gif";_ "image/png";_fb "io";_fd "io/ioutil";_edb "math";_ad "math/rand";_ecd "os";_ec "regexp";_ed "sort";_ea "strconv";_gc "strings";_a "sync";_d "time";_gbb "unicode";_cg "unicode/utf8";);
// GetNumComponents returns the number of input color components, i.e. that are input to the tint transform.
func (_edbgg *PdfColorspaceDeviceN )GetNumComponents ()int {return _edbgg .ColorantNames .Len ()};
// 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 _fb .ReadSeeker )(*PdfReader ,error ){_fbdcf :=&PdfReader {_bcffa :rs ,_egfef :map[_bcb .PdfObject ]struct{}{},_dafbg :_ebgca (),_abdcg :false };_cfeba ,_bbaec :=_bcb .NewParser (rs );if _bbaec !=nil {return nil ,_bbaec ;};_fbdcf ._ecage =_cfeba ;_dgaea ,_bbaec :=_fbdcf .IsEncrypted ();if _bbaec !=nil {return nil ,_bbaec ;};if !_dgaea {_bbaec =_fbdcf .loadStructure ();if _bbaec !=nil {return nil ,_bbaec ;};};return _fbdcf ,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 ,_ddd .SimpleEncoder ,error ){_bfcc ,_defe :=_edebg (basefont );if _defe !=nil {return nil ,nil ,_defe ;};_cdacf ,_afccf :=_bfcc .Encoder ().(_ddd .SimpleEncoder );if !_afccf {return nil ,nil ,_e .Errorf ("\u006f\u006e\u006c\u0079\u0020s\u0069\u006d\u0070\u006c\u0065\u0020\u0065\u006e\u0063\u006f\u0064\u0069\u006eg\u0020\u0069\u0073\u0020\u0073\u0075\u0070\u0070\u006f\u0072\u0074\u0065\u0064\u002c\u0020\u0067\u006f\u0074\u0020\u0025\u0054",_bfcc .Encoder ());};_edcg :=make (map[rune ]_ddd .GlyphName );for _dgbde :=range alphabet {if _ ,_fefd :=_cdacf .RuneToCharcode (_dgbde );!_fefd {_ ,_bfcb :=_bfcc ._gbggc [_dgbde ];if !_bfcb {_cga .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",_dgbde ,_dgbde );continue ;};_gebf ,_bfcb :=_ddd .RuneToGlyph (_dgbde );if !_bfcb {_cga .Log .Debug ("\u006eo\u0020\u0067\u006c\u0079\u0070\u0068\u0020\u0066\u006f\u0072\u0020r\u0075\u006e\u0065\u0020\u0025\u0023\u0078\u003d\u0025\u0071",_dgbde ,_dgbde );continue ;};if len (_edcg )>=255{return nil ,nil ,_ae .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");};_edcg [_dgbde ]=_gebf ;};};var (_dacec []_ddd .CharCode ;_dceea []_ddd .CharCode ;);for _bddga :=_ddd .CharCode (1);_bddga <=0xff;_bddga ++{_adcf ,_dbbf :=_cdacf .CharcodeToRune (_bddga );if !_dbbf {_dacec =append (_dacec ,_bddga );continue ;};if _ ,_dbbf =alphabet [_adcf ];!_dbbf {_dceea =append (_dceea ,_bddga );};};_cffcfg :=append (_dacec ,_dceea ...);if len (_cffcfg )< len (_edcg ){return nil ,nil ,_e .Errorf ("n\u0065\u0065\u0064\u0020\u0074\u006f\u0020\u0065\u006ec\u006f\u0064\u0065\u0020\u0025\u0064\u0020ru\u006e\u0065\u0073\u002c \u0062\u0075\u0074\u0020\u0068\u0061\u0076\u0065\u0020on\u006c\u0079 \u0025\u0064\u0020\u0073\u006c\u006f\u0074\u0073",len (_edcg ),len (_cffcfg ));};_dedf :=make ([]rune ,0,len (_edcg ));for _gadb :=range _edcg {_dedf =append (_dedf ,_gadb );};_ed .Slice (_dedf ,func (_dbgbf ,_bced int )bool {return _dedf [_dbgbf ]< _dedf [_bced ]});_gggd :=make (map[_ddd .CharCode ]_ddd .GlyphName ,len (_dedf ));for _ ,_fafab :=range _dedf {_abafd :=_cffcfg [0];_cffcfg =_cffcfg [1:];_gggd [_abafd ]=_edcg [_fafab ];};_cdacf =_ddd .ApplyDifferences (_cdacf ,_gggd );_bfcc .SetEncoder (_cdacf );return &PdfFont {_fgge :&_bfcc },_cdacf ,nil ;};
// PdfColorDeviceCMYK is a CMYK32 color, where each component is defined in the range 0.0 - 1.0 where 1.0 is the primary intensity.
type PdfColorDeviceCMYK [4]float64 ;
// ContentStreamWrapper wraps the Page's contentstream into q ... Q blocks.
type ContentStreamWrapper interface{WrapContentStream (_faac *PdfPage )error ;};
// 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 (_daeg *PdfReader )CheckAccessRights (password []byte )(bool ,_aec .Permissions ,error ){return _daeg ._ecage .CheckAccessRights (password );};func (_ddcf *PdfReader )resolveReference (_dacdd *_bcb .PdfObjectReference )(_bcb .PdfObject ,bool ,error ){_dbfcfd ,_abff :=_ddcf ._ecage .ObjCache [int (_dacdd .ObjectNumber )];if !_abff {_cga .Log .Trace ("R\u0065\u0061\u0064\u0065r \u004co\u006f\u006b\u0075\u0070\u0020r\u0065\u0066\u003a\u0020\u0025\u0073",_dacdd );_fbec ,_fafb :=_ddcf ._ecage .LookupByReference (*_dacdd );if _fafb !=nil {return nil ,false ,_fafb ;};_ddcf ._ecage .ObjCache [int (_dacdd .ObjectNumber )]=_fbec ;return _fbec ,false ,nil ;};return _dbfcfd ,true ,nil ;};
// GetNumComponents returns the number of color components of the colorspace device.
// Returns 3 for a CalRGB device.
func (_bdce *PdfColorspaceCalRGB )GetNumComponents ()int {return 3};func _cadgg (_ddfec *XObjectImage )error {if _ddfec .SMask ==nil {return nil ;};_gbfaf ,_dgdb :=_ddfec .SMask .(*_bcb .PdfObjectStream );if !_dgdb {_cga .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 _bcb .ErrTypeError ;};_ecgbde :=_gbfaf .PdfObjectDictionary ;_dccg :=_ecgbde .Get ("\u004d\u0061\u0074t\u0065");if _dccg ==nil {return nil ;};_eaged ,_faade :=_dddd (_dccg .(*_bcb .PdfObjectArray ));if _faade !=nil {return _faade ;};_ccdbd :=_bcb .MakeArrayFromFloats ([]float64 {_eaged });_ecgbde .SetIfNotNil ("\u004d\u0061\u0074t\u0065",_ccdbd );return nil ;};
// NewPdfPage returns a new PDF page.
func NewPdfPage ()*PdfPage {_fgdd :=PdfPage {};_fgdd ._fagg =_bcb .MakeDict ();_fgdd .Resources =NewPdfPageResources ();_ecddg :=_bcb .PdfIndirectObject {};_ecddg .PdfObject =_fgdd ._fagg ;_fgdd ._cfabg =&_ecddg ;return &_fgdd ;};
// ToInteger convert to an integer format.
func (_bef *PdfColorDeviceGray )ToInteger (bits int )uint32 {_dcad :=_edb .Pow (2,float64 (bits ))-1;return uint32 (_dcad *_bef .Val ());};
// NewPdfAnnotationPopup returns a new popup annotation.
func NewPdfAnnotationPopup ()*PdfAnnotationPopup {_beee :=NewPdfAnnotation ();_afe :=&PdfAnnotationPopup {};_afe .PdfAnnotation =_beee ;_beee .SetContext (_afe );return _afe ;};
// GetXObjectFormByName returns the XObjectForm with the specified name from the
// page resources, if it exists.
func (_bfcaf *PdfPageResources )GetXObjectFormByName (keyName _bcb .PdfObjectName )(*XObjectForm ,error ){_feeag ,_geedf :=_bfcaf .GetXObjectByName (keyName );if _feeag ==nil {return nil ,nil ;};if _geedf !=XObjectTypeForm {return nil ,_ae .New ("\u006e\u006f\u0074\u0020\u0061\u0020\u0066\u006f\u0072\u006d");};_daabf ,_gegef :=NewXObjectFormFromStream (_feeag );if _gegef !=nil {return nil ,_gegef ;};return _daabf ,nil ;};
// WriteString outputs the object as it is to be written to file.
func (_bdabc *pdfSignDictionary )WriteString ()string {_bdabc ._adgcec =0;_bdabc ._gdbcc =0;_bdabc ._bbdgaf =0;_bdabc ._debba =0;_bfcga :=_ede .NewBuffer (nil );_bfcga .WriteString ("\u003c\u003c");for _ ,_aefcg :=range _bdabc .Keys (){_gcggb :=_bdabc .Get (_aefcg );switch _aefcg {case "\u0042y\u0074\u0065\u0052\u0061\u006e\u0067e":_bfcga .WriteString (_aefcg .WriteString ());_bfcga .WriteString ("\u0020");_bdabc ._bbdgaf =_bfcga .Len ();_bfcga .WriteString (_gcggb .WriteString ());_bfcga .WriteString ("\u0020");_bdabc ._debba =_bfcga .Len ()-1;case "\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073":_bfcga .WriteString (_aefcg .WriteString ());_bfcga .WriteString ("\u0020");_bdabc ._adgcec =_bfcga .Len ();_bfcga .WriteString (_gcggb .WriteString ());_bfcga .WriteString ("\u0020");_bdabc ._gdbcc =_bfcga .Len ()-1;default:_bfcga .WriteString (_aefcg .WriteString ());_bfcga .WriteString ("\u0020");_bfcga .WriteString (_gcggb .WriteString ());};};_bfcga .WriteString ("\u003e\u003e");return _bfcga .String ();};
// 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 (_gaddb *PdfAcroForm )FillWithAppearance (provider FieldValueProvider ,appGen FieldAppearanceGenerator )error {return _gaddb .fill (provider ,appGen );};
// ReplaceAcroForm replaces the acrobat form. It appends a new form to the Pdf which
// replaces the original AcroForm.
func (_dbab *PdfAppender )ReplaceAcroForm (acroForm *PdfAcroForm ){if acroForm !=nil {_dbab .updateObjectsDeep (acroForm .ToPdfObject (),nil );};_dbab ._acdf =acroForm ;};
// BorderStyle defines border type, typically used for annotations.
type BorderStyle int ;
// Evaluate runs the function. Input is [x1 x2 x3].
func (_ceba *PdfFunctionType4 )Evaluate (xVec []float64 )([]float64 ,error ){if _ceba ._fbcd ==nil {_ceba ._fbcd =_fc .NewPSExecutor (_ceba .Program );};var _bggef []_fc .PSObject ;for _ ,_fcbef :=range xVec {_bggef =append (_bggef ,_fc .MakeReal (_fcbef ));};_cddb ,_begeb :=_ceba ._fbcd .Execute (_bggef );if _begeb !=nil {return nil ,_begeb ;};_ecgggb ,_begeb :=_fc .PSObjectArrayToFloat64Array (_cddb );if _begeb !=nil {return nil ,_begeb ;};return _ecgggb ,nil ;};func _egdf (_gdde _bcb .PdfObject )(*PdfColorspaceDeviceNAttributes ,error ){_aaab :=&PdfColorspaceDeviceNAttributes {};var _fbdfe *_bcb .PdfObjectDictionary ;if _ecb ,_gedee :=_gdde .(*_bcb .PdfIndirectObject );_gedee {_aaab ._dbgdg =_ecb ;var _bcee bool ;_fbdfe ,_bcee =_ecb .PdfObject .(*_bcb .PdfObjectDictionary );if !_bcee {_cga .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 ,_ae .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};}else if _eadb ,_fbdcg :=_gdde .(*_bcb .PdfObjectDictionary );_fbdcg {_fbdfe =_eadb ;}else {_cga .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 ,_ae .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _dgbdc :=_fbdfe .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065");_dgbdc !=nil {_debfa ,_daea :=_bcb .TraceToDirectObject (_dgbdc ).(*_bcb .PdfObjectName );if !_daea {_cga .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 ,_ae .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};_aaab .Subtype =_debfa ;};if _bcec :=_fbdfe .Get ("\u0043o\u006c\u006f\u0072\u0061\u006e\u0074s");_bcec !=nil {_aaab .Colorants =_bcec ;};if _aggae :=_fbdfe .Get ("\u0050r\u006f\u0063\u0065\u0073\u0073");_aggae !=nil {_aaab .Process =_aggae ;};if _afeg :=_fbdfe .Get ("M\u0069\u0078\u0069\u006e\u0067\u0048\u0069\u006e\u0074\u0073");_afeg !=nil {_aaab .MixingHints =_afeg ;};return _aaab ,nil ;};func (_cgfe *PdfColorspaceDeviceRGB )String ()string {return "\u0044e\u0076\u0069\u0063\u0065\u0052\u0047B";};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););var _ pdfFont =(*pdfFontSimple )(nil );
// SetAction sets the PDF action for the annotation link.
func (_gfd *PdfAnnotationLink )SetAction (action *PdfAction ){_gfd ._bda =action ;if action ==nil {_gfd .A =nil ;};};
// ToPdfObject implements interface PdfModel.
func (_eff *PdfAnnotationText )ToPdfObject ()_bcb .PdfObject {_eff .PdfAnnotation .ToPdfObject ();_aaf :=_eff ._daa ;_fbgc :=_aaf .PdfObject .(*_bcb .PdfObjectDictionary );if _eff .PdfAnnotationMarkup !=nil {_eff .PdfAnnotationMarkup .appendToPdfDictionary (_fbgc );};_fbgc .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_bcb .MakeName ("\u0054\u0065\u0078\u0074"));_fbgc .SetIfNotNil ("\u004f\u0070\u0065\u006e",_eff .Open );_fbgc .SetIfNotNil ("\u004e\u0061\u006d\u0065",_eff .Name );_fbgc .SetIfNotNil ("\u0053\u0074\u0061t\u0065",_eff .State );_fbgc .SetIfNotNil ("\u0053\u0074\u0061\u0074\u0065\u004d\u006f\u0064\u0065\u006c",_eff .StateModel );return _aaf ;};
// SetColorSpace sets `r` colorspace object to `colorspace`.
func (_cdda *PdfPageResources )SetColorSpace (colorspace *PdfPageResourcesColorspaces ){_cdda ._dcga =colorspace ;};func (_fceae *pdfFontSimple )getFontEncoding ()(_ggdag string ,_bbbb map[_ddd .CharCode ]_ddd .GlyphName ,_ffag error ){_ggdag ="\u0053\u0074a\u006e\u0064\u0061r\u0064\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067";if _ebgba ,_fegc :=_cgcc [_fceae ._daeb ];_fegc {_ggdag =_ebgba ;}else if _fceae .fontFlags ()&_cedf !=0{for _cdacc ,_dgeg :=range _cgcc {if _gc .Contains (_fceae ._daeb ,_cdacc ){_ggdag =_dgeg ;break ;};};};if _fceae .Encoding ==nil {return _ggdag ,nil ,nil ;};switch _bggbd :=_fceae .Encoding .(type ){case *_bcb .PdfObjectName :return string (*_bggbd ),nil ,nil ;case *_bcb .PdfObjectDictionary :_baae ,_dedfb :=_bcb .GetName (_bggbd .Get ("\u0042\u0061\u0073e\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067"));if _dedfb {_ggdag =_baae .String ();};if _efggc :=_bggbd .Get ("D\u0069\u0066\u0066\u0065\u0072\u0065\u006e\u0063\u0065\u0073");_efggc !=nil {_ccdeb ,_babd :=_bcb .GetArray (_efggc );if !_babd {_cga .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",_bggbd ,_bggbd .Get ("D\u0069\u0066\u0066\u0065\u0072\u0065\u006e\u0063\u0065\u0073"));return "",nil ,_bcb .ErrTypeError ;};_bbbb ,_ffag =_ddd .FromFontDifferences (_ccdeb );};return _ggdag ,_bbbb ,_ffag ;default:_cga .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",_fceae .Encoding ,_fceae .Encoding );return "",nil ,_bcb .ErrTypeError ;};};
// PdfAnnotationTrapNet represents TrapNet annotations.
// (Section 12.5.6.21).
type PdfAnnotationTrapNet struct{*PdfAnnotation };
// NewPdfColorspaceDeviceCMYK returns a new CMYK32 colorspace object.
func NewPdfColorspaceDeviceCMYK ()*PdfColorspaceDeviceCMYK {return &PdfColorspaceDeviceCMYK {}};
// NewPdfAnnotationText returns a new text annotation.
func NewPdfAnnotationText ()*PdfAnnotationText {_gbc :=NewPdfAnnotation ();_cfgb :=&PdfAnnotationText {};_cfgb .PdfAnnotation =_gbc ;_cfgb .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_gbc .SetContext (_cfgb );return _cfgb ;};
// ToPdfObject returns the PDF representation of the shading pattern.
func (_eeaff *PdfShadingPattern )ToPdfObject ()_bcb .PdfObject {_eeaff .PdfPattern .ToPdfObject ();_gfbcd :=_eeaff .getDict ();if _eeaff .Shading !=nil {_gfbcd .Set ("\u0053h\u0061\u0064\u0069\u006e\u0067",_eeaff .Shading .ToPdfObject ());};if _eeaff .Matrix !=nil {_gfbcd .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_eeaff .Matrix );};if _eeaff .ExtGState !=nil {_gfbcd .Set ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e",_eeaff .ExtGState );};return _eeaff ._becda ;};
// B returns the value of the B component of the color.
func (_ggde *PdfColorCalRGB )B ()float64 {return _ggde [1]};
// ToPdfObject implements interface PdfModel.
func (_cfcd *PdfAnnotationSquare )ToPdfObject ()_bcb .PdfObject {_cfcd .PdfAnnotation .ToPdfObject ();_deeb :=_cfcd ._daa ;_ggeb :=_deeb .PdfObject .(*_bcb .PdfObjectDictionary );if _cfcd .PdfAnnotationMarkup !=nil {_cfcd .PdfAnnotationMarkup .appendToPdfDictionary (_ggeb );};_ggeb .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_bcb .MakeName ("\u0053\u0071\u0075\u0061\u0072\u0065"));_ggeb .SetIfNotNil ("\u0042\u0053",_cfcd .BS );_ggeb .SetIfNotNil ("\u0049\u0043",_cfcd .IC );_ggeb .SetIfNotNil ("\u0042\u0045",_cfcd .BE );_ggeb .SetIfNotNil ("\u0052\u0044",_cfcd .RD );return _deeb ;};func _fbgd ()_d .Time {_dgagfb .Lock ();defer _dgagfb .Unlock ();return _afad };func (_bbcde *PdfColorspaceSpecialIndexed )String ()string {return "\u0049n\u0064\u0065\u0078\u0065\u0064";};
// PdfAnnotationLine represents Line annotations.
// (Section 12.5.6.7).
type PdfAnnotationLine struct{*PdfAnnotation ;*PdfAnnotationMarkup ;L _bcb .PdfObject ;BS _bcb .PdfObject ;LE _bcb .PdfObject ;IC _bcb .PdfObject ;LL _bcb .PdfObject ;LLE _bcb .PdfObject ;Cap _bcb .PdfObject ;IT _bcb .PdfObject ;LLO _bcb .PdfObject ;CP _bcb .PdfObject ;Measure _bcb .PdfObject ;CO _bcb .PdfObject ;};func (_fecce *PdfColorspaceCalGray )String ()string {return "\u0043a\u006c\u0047\u0072\u0061\u0079"};
// ToPdfObject implements interface PdfModel.
func (_cfa *PdfActionGoTo )ToPdfObject ()_bcb .PdfObject {_cfa .PdfAction .ToPdfObject ();_cfe :=_cfa ._dce ;_bg :=_cfe .PdfObject .(*_bcb .PdfObjectDictionary );_bg .SetIfNotNil ("\u0053",_bcb .MakeName (string (ActionTypeGoTo )));_bg .SetIfNotNil ("\u0044",_cfa .D );return _cfe ;};
// ToPdfObject implements interface PdfModel.
func (_gd *PdfActionURI )ToPdfObject ()_bcb .PdfObject {_gd .PdfAction .ToPdfObject ();_ba :=_gd ._dce ;_baa :=_ba .PdfObject .(*_bcb .PdfObjectDictionary );_baa .SetIfNotNil ("\u0053",_bcb .MakeName (string (ActionTypeURI )));_baa .SetIfNotNil ("\u0055\u0052\u0049",_gd .URI );_baa .SetIfNotNil ("\u0049\u0073\u004da\u0070",_gd .IsMap );return _ba ;};func (_cged *PdfReader )newPdfAnnotationCircleFromDict (_bgcb *_bcb .PdfObjectDictionary )(*PdfAnnotationCircle ,error ){_cfd :=PdfAnnotationCircle {};_bbcc ,_fcdb :=_cged .newPdfAnnotationMarkupFromDict (_bgcb );if _fcdb !=nil {return nil ,_fcdb ;};_cfd .PdfAnnotationMarkup =_bbcc ;_cfd .BS =_bgcb .Get ("\u0042\u0053");_cfd .IC =_bgcb .Get ("\u0049\u0043");_cfd .BE =_bgcb .Get ("\u0042\u0045");_cfd .RD =_bgcb .Get ("\u0052\u0044");return &_cfd ,nil ;};func _geg (_dcaf _bcb .PdfObject )(*PdfFilespec ,error ){if _dcaf ==nil {return nil ,nil ;};return NewPdfFilespecFromObj (_dcaf );};
// PdfWriter handles outputing PDF content.
type PdfWriter struct{_edecd *_bcb .PdfIndirectObject ;_gbff *_bcb .PdfIndirectObject ;_ddcfa map[_bcb .PdfObject ]struct{};_adbc []_bcb .PdfObject ;_affdb map[_bcb .PdfObject ]struct{};_cffgg []*_bcb .PdfIndirectObject ;_eefac *PdfOutlineTreeNode ;_ggfec *_bcb .PdfObjectDictionary ;_aaac []_bcb .PdfObject ;_gbfff *_bcb .PdfIndirectObject ;_aefcaa *_ff .Writer ;_cdgbg int64 ;_gaacd error ;_bggda *_bcb .PdfCrypt ;_adaeb *_bcb .PdfObjectDictionary ;_gbaeda *_bcb .PdfIndirectObject ;_ccbeb *_bcb .PdfObjectArray ;_fcebf int ;_cacaf int ;_bgeec *bool ;_aabce map[_bcb .PdfObject ][]*_bcb .PdfObjectDictionary ;_gbbc *PdfAcroForm ;_bgefd Optimizer ;_cddbc map[int ]crossReference ;_ddac int64 ;ObjNumOffset int ;_addfe bool ;_dbacc _bcb .XrefTable ;_ecded int64 ;_acaeg int64 ;_bceg map[_bcb .PdfObject ]int64 ;_fddc map[_bcb .PdfObject ]struct{};};
// NewPdfAnnotationStamp returns a new stamp annotation.
func NewPdfAnnotationStamp ()*PdfAnnotationStamp {_dba :=NewPdfAnnotation ();_ddad :=&PdfAnnotationStamp {};_ddad .PdfAnnotation =_dba ;_ddad .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_dba .SetContext (_ddad );return _ddad ;};
// ToPdfObject returns the text field dictionary within an indirect object (container).
func (_bdcc *PdfFieldText )ToPdfObject ()_bcb .PdfObject {_bdcc .PdfField .ToPdfObject ();_effee :=_bdcc ._gggf ;_affc :=_effee .PdfObject .(*_bcb .PdfObjectDictionary );_affc .Set ("\u0046\u0054",_bcb .MakeName ("\u0054\u0078"));if _bdcc .DA !=nil {_affc .Set ("\u0044\u0041",_bdcc .DA );};if _bdcc .Q !=nil {_affc .Set ("\u0051",_bdcc .Q );};if _bdcc .DS !=nil {_affc .Set ("\u0044\u0053",_bdcc .DS );};if _bdcc .RV !=nil {_affc .Set ("\u0052\u0056",_bdcc .RV );};if _bdcc .MaxLen !=nil {_affc .Set ("\u004d\u0061\u0078\u004c\u0065\u006e",_bdcc .MaxLen );};return _effee ;};
// GetNumComponents returns the number of color components of the colorspace device.
// Returns 1 for a grayscale device.
func (_bbba *PdfColorspaceDeviceGray )GetNumComponents ()int {return 1};type pdfCIDFontType0 struct{fontCommon ;_gfafa *_bcb .PdfIndirectObject ;_dbceg _ddd .TextEncoder ;
// Table 117 Entries in a CIDFont dictionary (page 269)
// (Required) Dictionary that defines the character collection of the CIDFont.
// See Table 116.
CIDSystemInfo *_bcb .PdfObjectDictionary ;
// Glyph metrics fields (optional).
DW _bcb .PdfObject ;W _bcb .PdfObject ;DW2 _bcb .PdfObject ;W2 _bcb .PdfObject ;_gdbd map[_ddd .CharCode ]float64 ;_becg float64 ;};
// GetNumComponents returns the number of color components.
func (_ddadc *PdfColorspaceICCBased )GetNumComponents ()int {return _ddadc .N };
// GetCapHeight returns the CapHeight of the font `descriptor`.
func (_bdee *PdfFontDescriptor )GetCapHeight ()(float64 ,error ){return _bcb .GetNumberAsFloat (_bdee .CapHeight );};func _ddada (_gbada *fontCommon )*pdfFontSimple {return &pdfFontSimple {fontCommon :*_gbada }};func (_daae *PdfWriter )updateObjectNumbers (){_eecge :=_daae .ObjNumOffset ;_adcca :=0;for _ ,_cgggf :=range _daae ._adbc {_acbeb :=int64 (_adcca +1+_eecge );_ebcce :=true ;if _daae ._addfe {if _dgcaa ,_acefc :=_daae ._bceg [_cgggf ];_acefc {_acbeb =_dgcaa ;_ebcce =false ;};};switch _afdcg :=_cgggf .(type ){case *_bcb .PdfIndirectObject :_afdcg .ObjectNumber =_acbeb ;_afdcg .GenerationNumber =0;case *_bcb .PdfObjectStream :_afdcg .ObjectNumber =_acbeb ;_afdcg .GenerationNumber =0;case *_bcb .PdfObjectStreams :_afdcg .ObjectNumber =_acbeb ;_afdcg .GenerationNumber =0;default:_cga .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",_afdcg );continue ;};if _ebcce {_adcca ++;};};_agdgf :=func (_egfba _bcb .PdfObject )int64 {switch _gbegd :=_egfba .(type ){case *_bcb .PdfIndirectObject :return _gbegd .ObjectNumber ;case *_bcb .PdfObjectStream :return _gbegd .ObjectNumber ;case *_bcb .PdfObjectStreams :return _gbegd .ObjectNumber ;};return 0;};_ed .SliceStable (_daae ._adbc ,func (_gcaff ,_fadcd int )bool {return _agdgf (_daae ._adbc [_gcaff ])< _agdgf (_daae ._adbc [_fadcd ])});};
// NewPdfFieldSignature returns an initialized signature field.
func NewPdfFieldSignature (signature *PdfSignature )*PdfFieldSignature {_ebbd :=&PdfFieldSignature {};_ebbd .PdfField =NewPdfField ();_ebbd .PdfField .SetContext (_ebbd );_ebbd .PdfAnnotationWidget =NewPdfAnnotationWidget ();_ebbd .PdfAnnotationWidget .SetContext (_ebbd );_ebbd .PdfAnnotationWidget ._daa =_ebbd .PdfField ._gggf ;_ebbd .T =_bcb .MakeString ("");_ebbd .F =_bcb .MakeInteger (132);_ebbd .V =signature ;return _ebbd ;};
// ToPdfObject implements interface PdfModel.
func (_eab *PdfActionTrans )ToPdfObject ()_bcb .PdfObject {_eab .PdfAction .ToPdfObject ();_cca :=_eab ._dce ;_aea :=_cca .PdfObject .(*_bcb .PdfObjectDictionary );_aea .SetIfNotNil ("\u0053",_bcb .MakeName (string (ActionTypeTrans )));_aea .SetIfNotNil ("\u0054\u0072\u0061n\u0073",_eab .Trans );return _cca ;};func (_cdadb *PdfReader )flattenFieldsWithOpts (_aegb bool ,_ebea FieldAppearanceGenerator ,_egcc *FieldFlattenOpts )error {if _egcc ==nil {_egcc =&FieldFlattenOpts {};};var _egdd bool ;_dfefc :=map[*PdfAnnotation ]bool {};{var _aaaf []*PdfField ;_faee :=_cdadb .AcroForm ;if _faee !=nil {if _egcc .FilterFunc !=nil {_aaaf =_faee .filteredFields (_egcc .FilterFunc ,true );_egdd =_faee .Fields !=nil &&len (*_faee .Fields )> 0;}else {_aaaf =_faee .AllFields ();};};for _ ,_ggdda :=range _aaaf {for _ ,_egbb :=range _ggdda .Annotations {_dfefc [_egbb .PdfAnnotation ]=_ggdda .V !=nil ;if _ebea !=nil {_cgca ,_gedb :=_ebea .GenerateAppearanceDict (_faee ,_ggdda ,_egbb );if _gedb !=nil {return _gedb ;};_egbb .AP =_cgca ;};};};};if _aegb {for _ ,_egef :=range _cdadb .PageList {_ecgga ,_gfab :=_egef .GetAnnotations ();if _gfab !=nil {return _gfab ;};for _ ,_gedbg :=range _ecgga {_dfefc [_gedbg ]=true ;};};};for _ ,_fgbf :=range _cdadb .PageList {var _gaceee []*PdfAnnotation ;if _ebea !=nil {if _ebgfd :=_ebea .WrapContentStream (_fgbf );_ebgfd !=nil {return _ebgfd ;};};_befa ,_bdagcd :=_fgbf .GetAnnotations ();if _bdagcd !=nil {return _bdagcd ;};for _ ,_cfda :=range _befa {_gdcc ,_fcfd :=_dfefc [_cfda ];if !_fcfd {_gaceee =append (_gaceee ,_cfda );continue ;};switch _cfda .GetContext ().(type ){case *PdfAnnotationPopup :continue ;case *PdfAnnotationLink :continue ;case *PdfAnnotationProjection :continue ;};_feba ,_efee ,_efbdfe :=_gcee (_cfda );if _efbdfe !=nil {if !_gdcc {_cga .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 ;};_cga .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",_efbdfe );continue ;};if _feba ==nil {continue ;};_ffbcc :=_fgbf .Resources .GenerateXObjectName ();_fgbf .Resources .SetXObjectFormByName (_ffbcc ,_feba );_cbda :=_edb .Min (_efee .Llx ,_efee .Urx );_gebg :=_edb .Min (_efee .Lly ,_efee .Ury );var _gffea []string ;_gffea =append (_gffea ,"\u0071");_gffea =append (_gffea ,_e .Sprintf ("\u0025\u002e\u0036\u0066\u0020\u0025\u002e\u0036\u0066\u0020\u0025\u002e\u0036\u0066\u0020%\u002e6\u0066\u0020\u0025\u002e\u0036\u0066\u0020\u0025\u002e\u0036\u0066\u0020\u0063\u006d",1.0,0.0,0.0,1.0,_cbda ,_gebg ));_gffea =append (_gffea ,_e .Sprintf ("\u002f\u0025\u0073\u0020\u0044\u006f",_ffbcc .String ()));_gffea =append (_gffea ,"\u0051");_faff :=_gc .Join (_gffea ,"\u000a");_efbdfe =_fgbf .AppendContentStream (_faff );if _efbdfe !=nil {return _efbdfe ;};if _feba .Resources !=nil {_bfdc ,_gffbf :=_bcb .GetDict (_feba .Resources .Font );if _gffbf {for _ ,_cdfd :=range _bfdc .Keys (){if !_fgbf .Resources .HasFontByName (_cdfd ){_fgbf .Resources .SetFontByName (_cdfd ,_bfdc .Get (_cdfd ));};};};};};if len (_gaceee )> 0{_fgbf ._adgce =_gaceee ;}else {_fgbf ._adgce =[]*PdfAnnotation {};};};if !_egdd {_cdadb .AcroForm =nil ;};return nil ;};var (_dgagfb _a .Mutex ;_bafad ="";_afad _d .Time ;_aacca ="";_eaggce ="";_egegc _d .Time ;_ggdgb ="";_gedgd ="";_eafae ="";);
// NewPdfActionImportData returns a new "import data" action.
func NewPdfActionImportData ()*PdfActionImportData {_da :=NewPdfAction ();_bfe :=&PdfActionImportData {};_bfe .PdfAction =_da ;_da .SetContext (_bfe );return _bfe ;};func _fcbgc (_bddgac *fontCommon )*pdfFontType0 {return &pdfFontType0 {fontCommon :*_bddgac }};
// NewPdfActionSubmitForm returns a new "submit form" action.
func NewPdfActionSubmitForm ()*PdfActionSubmitForm {_gg :=NewPdfAction ();_cf :=&PdfActionSubmitForm {};_cf .PdfAction =_gg ;_gg .SetContext (_cf );return _cf ;};
// Add appends a top level outline item to the outline.
func (_gbcfg *Outline )Add (item *OutlineItem ){_gbcfg .Entries =append (_gbcfg .Entries ,item )};func (_cdbd *PdfColorspaceSpecialPattern )String ()string {return "\u0050a\u0074\u0074\u0065\u0072\u006e";};func (_feae *PdfAppender )addNewObject (_ebcc _bcb .PdfObject ){if _ ,_cdbf :=_feae ._bfbb [_ebcc ];!_cdbf {_feae ._eebb =append (_feae ._eebb ,_ebcc );_feae ._bfbb [_ebcc ]=struct{}{};};};
// NewPdfAnnotationSquare returns a new square annotation.
func NewPdfAnnotationSquare ()*PdfAnnotationSquare {_dcd :=NewPdfAnnotation ();_agb :=&PdfAnnotationSquare {};_agb .PdfAnnotation =_dcd ;_agb .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_dcd .SetContext (_agb );return _agb ;};
// SetDSS sets the DSS dictionary (ETSI TS 102 778-4 V1.1.1) of the current
// document revision.
func (_baga *PdfAppender )SetDSS (dss *DSS ){if dss !=nil {_baga .updateObjectsDeep (dss .ToPdfObject (),nil );};_baga ._fbb =dss ;};
// 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 ;_gfbgg *_bcb .PdfIndirectObject ;};
// GetAscent returns the Ascent of the font `descriptor`.
func (_dcecf *PdfFontDescriptor )GetAscent ()(float64 ,error ){return _bcb .GetNumberAsFloat (_dcecf .Ascent );};func _adgcee (_bebfc *_bcb .PdfObjectDictionary )(*PdfShadingType4 ,error ){_bacd :=PdfShadingType4 {};_geeg :=_bebfc .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065");if _geeg ==nil {_cga .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 ;};_cdbff ,_ccfaf :=_geeg .(*_bcb .PdfObjectInteger );if !_ccfaf {_cga .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",_geeg );return nil ,_bcb .ErrTypeError ;};_bacd .BitsPerCoordinate =_cdbff ;_geeg =_bebfc .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074");if _geeg ==nil {_cga .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 ;};_cdbff ,_ccfaf =_geeg .(*_bcb .PdfObjectInteger );if !_ccfaf {_cga .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",_geeg );return nil ,_bcb .ErrTypeError ;};_bacd .BitsPerComponent =_cdbff ;_geeg =_bebfc .Get ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067");if _geeg ==nil {_cga .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 ;};_cdbff ,_ccfaf =_geeg .(*_bcb .PdfObjectInteger );if !_ccfaf {_cga .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",_geeg );return nil ,_bcb .ErrTypeError ;};_bacd .BitsPerComponent =_cdbff ;_geeg =_bebfc .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");if _geeg ==nil {_cga .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 ;};_afged ,_ccfaf :=_geeg .(*_bcb .PdfObjectArray );if !_ccfaf {_cga .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",_geeg );return nil ,_bcb .ErrTypeError ;};_bacd .Decode =_afged ;_geeg =_bebfc .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");if _geeg ==nil {_cga .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 ;};_bacd .Function =[]PdfFunction {};if _adfaf ,_fdcec :=_geeg .(*_bcb .PdfObjectArray );_fdcec {for _ ,_fcbf :=range _adfaf .Elements (){_babb ,_bdeab :=_acdfd (_fcbf );if _bdeab !=nil {_cga .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",_bdeab );return nil ,_bdeab ;};_bacd .Function =append (_bacd .Function ,_babb );};}else {_fafade ,_baadg :=_acdfd (_geeg );if _baadg !=nil {_cga .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",_baadg );return nil ,_baadg ;};_bacd .Function =append (_bacd .Function ,_fafade );};return &_bacd ,nil ;};
// ToPdfObject implements interface PdfModel.
func (_gcaa *PdfAnnotationPolyLine )ToPdfObject ()_bcb .PdfObject {_gcaa .PdfAnnotation .ToPdfObject ();_ccce :=_gcaa ._daa ;_fgbe :=_ccce .PdfObject .(*_bcb .PdfObjectDictionary );_gcaa .PdfAnnotationMarkup .appendToPdfDictionary (_fgbe );_fgbe .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_bcb .MakeName ("\u0050\u006f\u006c\u0079\u004c\u0069\u006e\u0065"));_fgbe .SetIfNotNil ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073",_gcaa .Vertices );_fgbe .SetIfNotNil ("\u004c\u0045",_gcaa .LE );_fgbe .SetIfNotNil ("\u0042\u0053",_gcaa .BS );_fgbe .SetIfNotNil ("\u0049\u0043",_gcaa .IC );_fgbe .SetIfNotNil ("\u0042\u0045",_gcaa .BE );_fgbe .SetIfNotNil ("\u0049\u0054",_gcaa .IT );_fgbe .SetIfNotNil ("\u004de\u0061\u0073\u0075\u0072\u0065",_gcaa .Measure );return _ccce ;};
// SetNamedDestinations sets the Names entry in the PDF catalog.
// See section 12.3.2.3 "Named Destinations" (p. 367 PDF32000_2008).
func (_cefgf *PdfWriter )SetNamedDestinations (names _bcb .PdfObject )error {if names ==nil {return nil ;};_cga .Log .Trace ("\u0053e\u0074\u0074\u0069\u006e\u0067\u0020\u0063\u0061\u0074\u0061\u006co\u0067\u0020\u004e\u0061\u006d\u0065\u0073\u002e\u002e\u002e");_cefgf ._ggfec .Set ("\u004e\u0061\u006de\u0073",names );return _cefgf .addObjects (names );};
// 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 (_eaagd *Image )SetSamples (samples []uint32 ){if _eaagd .BitsPerComponent < 8{samples =_eaagd .samplesAddPadding (samples );};_cfbf :=_cgb .ResampleUint32 (samples ,int (_eaagd .BitsPerComponent ),8);_fcdba :=make ([]byte ,len (_cfbf ));for _faeg ,_cagbb :=range _cfbf {_fcdba [_faeg ]=byte (_cagbb );};_eaagd .Data =_fcdba ;};
// ColorToRGB converts a CalGray color to an RGB color.
func (_dbdbc *PdfColorspaceCalGray )ColorToRGB (color PdfColor )(PdfColor ,error ){_gbafd ,_cdab :=color .(*PdfColorCalGray );if !_cdab {_cga .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 ,_ae .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};ANorm :=_gbafd .Val ();X :=_dbdbc .WhitePoint [0]*_edb .Pow (ANorm ,_dbdbc .Gamma );Y :=_dbdbc .WhitePoint [1]*_edb .Pow (ANorm ,_dbdbc .Gamma );Z :=_dbdbc .WhitePoint [2]*_edb .Pow (ANorm ,_dbdbc .Gamma );_afccd :=3.240479*X +-1.537150*Y +-0.498535*Z ;_bebgg :=-0.969256*X +1.875992*Y +0.041556*Z ;_bdbd :=0.055648*X +-0.204043*Y +1.057311*Z ;_afccd =_edb .Min (_edb .Max (_afccd ,0),1.0);_bebgg =_edb .Min (_edb .Max (_bebgg ,0),1.0);_bdbd =_edb .Min (_edb .Max (_bdbd ,0),1.0);return NewPdfColorDeviceRGB (_afccd ,_bebgg ,_bdbd ),nil ;};
// NewPdfAnnotationStrikeOut returns a new text strikeout annotation.
func NewPdfAnnotationStrikeOut ()*PdfAnnotationStrikeOut {_abab :=NewPdfAnnotation ();_ebb :=&PdfAnnotationStrikeOut {};_ebb .PdfAnnotation =_abab ;_ebb .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_abab .SetContext (_ebb );return _ebb ;};
// SetXObjectImageByName adds the provided XObjectImage to the page resources.
// The added XObjectImage is identified by the specified name.
func (_ffddd *PdfPageResources )SetXObjectImageByName (keyName _bcb .PdfObjectName ,ximg *XObjectImage )error {_effc :=ximg .ToPdfObject ().(*_bcb .PdfObjectStream );_dcaca :=_ffddd .SetXObjectByName (keyName ,_effc );return _dcaca ;};func _fbfe (_eccc *_bcb .PdfObjectDictionary )(*PdfShadingType6 ,error ){_afeab :=PdfShadingType6 {};_fgdca :=_eccc .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065");if _fgdca ==nil {_cga .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 ;};_dedcd ,_cacfa :=_fgdca .(*_bcb .PdfObjectInteger );if !_cacfa {_cga .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",_fgdca );return nil ,_bcb .ErrTypeError ;};_afeab .BitsPerCoordinate =_dedcd ;_fgdca =_eccc .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074");if _fgdca ==nil {_cga .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 ;};_dedcd ,_cacfa =_fgdca .(*_bcb .PdfObjectInteger );if !_cacfa {_cga .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",_fgdca );return nil ,_bcb .ErrTypeError ;};_afeab .BitsPerComponent =_dedcd ;_fgdca =_eccc .Get ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067");if _fgdca ==nil {_cga .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 ;};_dedcd ,_cacfa =_fgdca .(*_bcb .PdfObjectInteger );if !_cacfa {_cga .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",_fgdca );return nil ,_bcb .ErrTypeError ;};_afeab .BitsPerComponent =_dedcd ;_fgdca =_eccc .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");if _fgdca ==nil {_cga .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 ;};_aebeg ,_cacfa :=_fgdca .(*_bcb .PdfObjectArray );if !_cacfa {_cga .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",_fgdca );return nil ,_bcb .ErrTypeError ;};_afeab .Decode =_aebeg ;if _aacab :=_eccc .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");_aacab !=nil {_afeab .Function =[]PdfFunction {};if _egcgbc ,_gffc :=_aacab .(*_bcb .PdfObjectArray );_gffc {for _ ,_deedb :=range _egcgbc .Elements (){_ffac ,_cgcba :=_acdfd (_deedb );if _cgcba !=nil {_cga .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",_cgcba );return nil ,_cgcba ;};_afeab .Function =append (_afeab .Function ,_ffac );};}else {_ggbcd ,_bfef :=_acdfd (_aacab );if _bfef !=nil {_cga .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",_bfef );return nil ,_bfef ;};_afeab .Function =append (_afeab .Function ,_ggbcd );};};return &_afeab ,nil ;};func _adbe (_acae []byte )[]byte {const _deba =52845;const _dbcag =22719;_bbada :=55665;for _ ,_ebgc :=range _acae [:4]{_bbada =(int (_ebgc )+_bbada )*_deba +_dbcag ;};_eeafe :=make ([]byte ,len (_acae )-4);for _dcab ,_gaegg :=range _acae [4:]{_eeafe [_dcab ]=byte (int (_gaegg )^_bbada >>8);_bbada =(int (_gaegg )+_bbada )*_deba +_dbcag ;};return _eeafe ;};
// Enable LTV enables the specified signature. The signing certificate
// chain is extracted from the signature dictionary. Optionally, additional
// certificates can be specified through the `extraCerts` parameter.
// The LTV client attempts to build the certificate chain up to a trusted root
// by downloading any missing certificates.
func (_gdge *LTV )Enable (sig *PdfSignature ,extraCerts []*_ffg .Certificate )error {if _abeff :=_gdge .validateSig (sig );_abeff !=nil {return _abeff ;};_cbffg ,_gcfee :=_gdge .generateVRIKey (sig );if _gcfee !=nil {return _gcfee ;};if _ ,_ebfbe :=_gdge ._gddf .VRI [_cbffg ];_ebfbe &&_gdge .SkipExisting {return nil ;};_dacb ,_gcfee :=sig .GetCerts ();if _gcfee !=nil {return _gcfee ;};return _gdge .enable (_dacb ,extraCerts ,_cbffg );};func (_geed *PdfReader )newPdfFieldSignatureFromDict (_cabdg *_bcb .PdfObjectDictionary )(*PdfFieldSignature ,error ){_ccdcg :=&PdfFieldSignature {};_fgbc ,_edgbf :=_bcb .GetIndirect (_cabdg .Get ("\u0056"));if _edgbf {var _aacg error ;_ccdcg .V ,_aacg =_geed .newPdfSignatureFromIndirect (_fgbc );if _aacg !=nil {return nil ,_aacg ;};};_ccdcg .Lock ,_ =_bcb .GetIndirect (_cabdg .Get ("\u004c\u006f\u0063\u006b"));_ccdcg .SV ,_ =_bcb .GetIndirect (_cabdg .Get ("\u0053\u0056"));return _ccdcg ,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 *_bcb .PdfObjectName ;AlternateSpace PdfColorspace ;TintTransform PdfFunction ;_caa *_bcb .PdfIndirectObject ;};
// Items returns all children outline items.
func (_aefca *OutlineItem )Items ()[]*OutlineItem {return _aefca .Entries };
// ToUnicode returns the name of the font's "ToUnicode" field if there is one, or "" if there isn't.
func (_acbgf *PdfFont )ToUnicode ()string {if _acbgf .baseFields ()._ecbe ==nil {return "";};return _acbgf .baseFields ()._ecbe .Name ();};
// PartialName returns the partial name of the field.
func (_accfb *PdfField )PartialName ()string {_feaae :="";if _accfb .T !=nil {_feaae =_accfb .T .Decoded ();}else {_cga .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 _feaae ;};
// K returns the value of the key component of the color.
func (_cfcg *PdfColorDeviceCMYK )K ()float64 {return _cfcg [3]};func (_gdccb *PdfReader )newPdfPageFromDict (_bcadca *_bcb .PdfObjectDictionary )(*PdfPage ,error ){_dfbg :=NewPdfPage ();_dfbg ._fagg =_bcadca ;_dbag :=*_bcadca ;_bdaee ,_dddca :=_dbag .Get ("\u0054\u0079\u0070\u0065").(*_bcb .PdfObjectName );if !_dddca {return nil ,_ae .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 *_bdaee !="\u0050\u0061\u0067\u0065"{return nil ,_ae .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 _bcbec :=_dbag .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");_bcbec !=nil {_dfbg .Parent =_bcbec ;};if _caaf :=_dbag .Get ("\u004c\u0061\u0073t\u004d\u006f\u0064\u0069\u0066\u0069\u0065\u0064");_caaf !=nil {_abefb ,_dcdfd :=_bcb .GetString (_caaf );if !_dcdfd {return nil ,_ae .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");};_gdbgg ,_fdfb :=NewPdfDate (_abefb .Str ());if _fdfb !=nil {return nil ,_fdfb ;};_dfbg .LastModified =&_gdbgg ;};if _bgabd :=_dbag .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");_bgabd !=nil &&!_bcb .IsNullObject (_bgabd ){_gbcea ,_cgdc :=_bcb .GetDict (_bgabd );if !_cgdc {return nil ,_e .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0065\u0073\u006f\u0075\u0072\u0063e\u0020d\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u0020\u0028\u0025\u0054\u0029",_bgabd );};var _bdef error ;_dfbg .Resources ,_bdef =NewPdfPageResourcesFromDict (_gbcea );if _bdef !=nil {return nil ,_bdef ;};}else {_dgce ,_fced :=_dfbg .getParentResources ();if _fced !=nil {return nil ,_fced ;};if _dgce ==nil {_dgce =NewPdfPageResources ();};_dfbg .Resources =_dgce ;};if _beece :=_dbag .Get ("\u004d\u0065\u0064\u0069\u0061\u0042\u006f\u0078");_beece !=nil {_deead ,_dgcee :=_bcb .GetArray (_beece );if !_dgcee {return nil ,_ae .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 _fdfec error ;_dfbg .MediaBox ,_fdfec =NewPdfRectangle (*_deead );if _fdfec !=nil {return nil ,_fdfec ;};};if _ggeff :=_dbag .Get ("\u0043r\u006f\u0070\u0042\u006f\u0078");_ggeff !=nil {_caab ,_bgegd :=_bcb .GetArray (_ggeff );if !_bgegd {return nil ,_ae .New ("\u0070a\u0067\u0065\u0020\u0043r\u006f\u0070\u0042\u006f\u0078 \u006eo\u0074 \u0061\u006e\u0020\u0061\u0072\u0072\u0061y");};var _edcb error ;_dfbg .CropBox ,_edcb =NewPdfRectangle (*_caab );if _edcb !=nil {return nil ,_edcb ;};};if _gbeefd :=_dbag .Get ("\u0042\u006c\u0065\u0065\u0064\u0042\u006f\u0078");_gbeefd !=nil {_ecec ,_fbcfd :=_bcb .GetArray (_gbeefd );if !_fbcfd {return nil ,_ae .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 _ggacg error ;_dfbg .BleedBox ,_ggacg =NewPdfRectangle (*_ecec );if _ggacg !=nil {return nil ,_ggacg ;};};if _deabf :=_dbag .Get ("\u0054r\u0069\u006d\u0042\u006f\u0078");_deabf !=nil {_fbddf ,_gcfed :=_bcb .GetArray (_deabf );if !_gcfed {return nil ,_ae .New ("\u0070a\u0067\u0065\u0020\u0054r\u0069\u006d\u0042\u006f\u0078 \u006eo\u0074 \u0061\u006e\u0020\u0061\u0072\u0072\u0061y");};var _fafdd error ;_dfbg .TrimBox ,_fafdd =NewPdfRectangle (*_fbddf );if _fafdd !=nil {return nil ,_fafdd ;};};if _eaede :=_dbag .Get ("\u0041\u0072\u0074\u0042\u006f\u0078");_eaede !=nil {_dbbb ,_aadag :=_bcb .GetArray (_eaede );if !_aadag {return nil ,_ae .New ("\u0070a\u0067\u0065\u0020\u0041\u0072\u0074\u0042\u006f\u0078\u0020\u006eo\u0074\u0020\u0061\u006e\u0020\u0061\u0072\u0072\u0061\u0079");};var _cdaad error ;_dfbg .ArtBox ,_cdaad =NewPdfRectangle (*_dbbb );if _cdaad !=nil {return nil ,_cdaad ;};};if _beaeb :=_dbag .Get ("\u0042\u006f\u0078C\u006f\u006c\u006f\u0072\u0049\u006e\u0066\u006f");_beaeb !=nil {_dfbg .BoxColorInfo =_beaeb ;};if _agbcb :=_dbag .Get ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073");_agbcb !=nil {_dfbg .Contents =_agbcb ;};if _efdff :=_dbag .Get ("\u0052\u006f\u0074\u0061\u0074\u0065");_efdff !=nil {_bcgda ,_dcgfa :=_bcb .GetInt (_efdff );if !_dcgfa {return nil ,_ae .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");};_faadd :=int64 (*_bcgda );_dfbg .Rotate =&_faadd ;};if _addg :=_dbag .Get ("\u0047\u0072\u006fu\u0070");_addg !=nil {_dfbg .Group =_addg ;};if _fcage :=_dbag .Get ("\u0054\u0068\u0075m\u0062");_fcage !=nil {_dfbg .Thumb =_fcage ;};if _efede :=_dbag .Get ("\u0042");_efede !=nil {_dfbg .B =_efede ;};if _fcabd :=_dbag .Get ("\u0044\u0075\u0072");_fcabd !=nil {_dfbg .Dur =_fcabd ;};if _dgee :=_dbag .Get ("\u0054\u0072\u0061n\u0073");_dgee !=nil {_dfbg .Trans =_dgee ;};if _efadaf :=_dbag .Get ("\u0041\u0041");_efadaf !=nil {_dfbg .AA =_efadaf ;};if _efda :=_dbag .Get ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");_efda !=nil {_dfbg .Metadata =_efda ;};if _fgceg :=_dbag .Get ("\u0050i\u0065\u0063\u0065\u0049\u006e\u0066o");_fgceg !=nil {_dfbg .PieceInfo =_fgceg ;};if _gagfa :=_dbag .Get ("\u0053\u0074\u0072\u0075\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074\u0073");_gagfa !=nil {_dfbg .StructParents =_gagfa ;};if _dbcega :=_dbag .Get ("\u0049\u0044");_dbcega !=nil {_dfbg .ID =_dbcega ;};if _ccaag :=_dbag .Get ("\u0050\u005a");_ccaag !=nil {_dfbg .PZ =_ccaag ;};if _aeede :=_dbag .Get ("\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006fn\u0049\u006e\u0066\u006f");_aeede !=nil {_dfbg .SeparationInfo =_aeede ;};if _fdgcg :=_dbag .Get ("\u0054\u0061\u0062\u0073");_fdgcg !=nil {_dfbg .Tabs =_fdgcg ;};if _cfga :=_dbag .Get ("T\u0065m\u0070\u006c\u0061\u0074\u0065\u0049\u006e\u0073t\u0061\u006e\u0074\u0069at\u0065\u0064");_cfga !=nil {_dfbg .TemplateInstantiated =_cfga ;};if _cefed :=_dbag .Get ("\u0050r\u0065\u0073\u0053\u0074\u0065\u0070s");_cefed !=nil {_dfbg .PresSteps =_cefed ;};if _dbagg :=_dbag .Get ("\u0055\u0073\u0065\u0072\u0055\u006e\u0069\u0074");_dbagg !=nil {_dfbg .UserUnit =_dbagg ;};if _ffdb :=_dbag .Get ("\u0056\u0050");_ffdb !=nil {_dfbg .VP =_ffdb ;};if _gedgf :=_dbag .Get ("\u0041\u006e\u006e\u006f\u0074\u0073");_gedgf !=nil {_dfbg .Annots =_gedgf ;};_dfbg ._eeeba =_gdccb ;return _dfbg ,nil ;};
// NewPdfActionResetForm returns a new "reset form" action.
func NewPdfActionResetForm ()*PdfActionResetForm {_bcd :=NewPdfAction ();_bcc :=&PdfActionResetForm {};_bcc .PdfAction =_bcd ;_bcd .SetContext (_bcc );return _bcc ;};
// ToPdfObject implements interface PdfModel.
func (_dabf *PdfAnnotationTrapNet )ToPdfObject ()_bcb .PdfObject {_dabf .PdfAnnotation .ToPdfObject ();_aede :=_dabf ._daa ;_ccec :=_aede .PdfObject .(*_bcb .PdfObjectDictionary );_ccec .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_bcb .MakeName ("\u0054r\u0061\u0070\u004e\u0065\u0074"));return _aede ;};func (_ffeeb *PdfWriter )hasObject (_baebeb _bcb .PdfObject )bool {_ ,_gadece :=_ffeeb ._affdb [_baebeb ];return _gadece ;};
// NewPdfActionHide returns a new "hide" action.
func NewPdfActionHide ()*PdfActionHide {_fgdc :=NewPdfAction ();_age :=&PdfActionHide {};_age .PdfAction =_fgdc ;_fgdc .SetContext (_age );return _age ;};
// 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 (_bbcgb *pdfFontSimple )SetEncoder (encoder _ddd .TextEncoder ){_bbcgb ._fdebc =encoder };var _bgaca =_ec .MustCompile ("\u005c\u0073\u002a\u0044\u005c\u0073\u002a:\u005c\u0073\u002a\u0028\u005c\u0064\u007b\u0034\u007d\u0029\u0028\u005c\u0064\u007b2\u007d)\u0028\u005c\u0064\u007b\u0032\u007d)\u0028\u005c\u0064\u007b\u0032\u007d\u0029(\u005c\u0064\u007b\u0032\u007d\u0029\u0028\u005c\u0064\u007b\u0032\u007d\u0029\u0028\u005b\u002b\u002d\u005a\u005d\u0029\u003f\u0028\u005cd\u007b\u0032\u007d\u0029\u003f\u0027\u003f\u0028\u005c\u0064\u007b\u0032\u007d)\u003f");func _bgdd (_fbae _bcb .PdfObject )(*PdfColorspaceLab ,error ){_bebd :=NewPdfColorspaceLab ();if _decag ,_bage :=_fbae .(*_bcb .PdfIndirectObject );_bage {_bebd ._fbdc =_decag ;};_fbae =_bcb .TraceToDirectObject (_fbae );_bgda ,_bfeg :=_fbae .(*_bcb .PdfObjectArray );if !_bfeg {return nil ,_e .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _bgda .Len ()!=2{return nil ,_e .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0043\u0061\u006c\u0052G\u0042 \u0063o\u006c\u006f\u0072\u0073\u0070\u0061\u0063e");};_fbae =_bcb .TraceToDirectObject (_bgda .Get (0));_gbgg ,_bfeg :=_fbae .(*_bcb .PdfObjectName );if !_bfeg {return nil ,_e .Errorf ("\u006c\u0061\u0062\u0020\u006e\u0061\u006d\u0065\u0020\u006e\u006ft\u0020\u0061\u0020\u004e\u0061\u006d\u0065\u0020\u006f\u0062j\u0065\u0063\u0074");};if *_gbgg !="\u004c\u0061\u0062"{return nil ,_e .Errorf ("n\u006ft\u0020\u0061\u0020\u004c\u0061\u0062\u0020\u0063o\u006c\u006f\u0072\u0073pa\u0063\u0065");};_fbae =_bcb .TraceToDirectObject (_bgda .Get (1));_cfab ,_bfeg :=_fbae .(*_bcb .PdfObjectDictionary );if !_bfeg {return nil ,_e .Errorf ("c\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063\u0065\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061r\u0079\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067\u0020or\u0020\u0069\u006ev\u0061l\u0069\u0064");};_fbae =_cfab .Get ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074");_fbae =_bcb .TraceToDirectObject (_fbae );_dgge ,_bfeg :=_fbae .(*_bcb .PdfObjectArray );if !_bfeg {return nil ,_e .Errorf ("\u004c\u0061\u0062\u0020In\u0076\u0061\u006c\u0069\u0064\u0020\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069n\u0074");};if _dgge .Len ()!=3{return nil ,_e .Errorf ("\u004c\u0061b\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074\u0020\u0061rr\u0061\u0079");};_fgee ,_acdb :=_dgge .GetAsFloat64Slice ();if _acdb !=nil {return nil ,_acdb ;};_bebd .WhitePoint =_fgee ;_fbae =_cfab .Get ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074");if _fbae !=nil {_fbae =_bcb .TraceToDirectObject (_fbae );_efaeg ,_dddc :=_fbae .(*_bcb .PdfObjectArray );if !_dddc {return nil ,_e .Errorf ("\u004c\u0061\u0062: \u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074");};if _efaeg .Len ()!=3{return nil ,_e .Errorf ("\u004c\u0061b\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074\u0020\u0061rr\u0061\u0079");};_ebba ,_cada :=_efaeg .GetAsFloat64Slice ();if _cada !=nil {return nil ,_cada ;};_bebd .BlackPoint =_ebba ;};_fbae =_cfab .Get ("\u0052\u0061\u006eg\u0065");if _fbae !=nil {_fbae =_bcb .TraceToDirectObject (_fbae );_dfbf ,_afea :=_fbae .(*_bcb .PdfObjectArray );if !_afea {_cga .Log .Error ("\u0052\u0061n\u0067\u0065\u0020t\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");return nil ,_e .Errorf ("\u004ca\u0062:\u0020\u0054\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _dfbf .Len ()!=4{_cga .Log .Error ("\u0052\u0061\u006e\u0067\u0065\u0020\u0072\u0061\u006e\u0067\u0065\u0020e\u0072\u0072\u006f\u0072");return nil ,_e .Errorf ("\u004c\u0061b\u003a\u0020\u0052a\u006e\u0067\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};_bdcd ,_geac :=_dfbf .GetAsFloat64Slice ();if _geac !=nil {return nil ,_geac ;};_bebd .Range =_bdcd ;};return _bebd ,nil ;};
// PdfActionHide represents a hide action.
type PdfActionHide struct{*PdfAction ;T _bcb .PdfObject ;H _bcb .PdfObject ;};func (_ggdc *PdfReader )newPdfActionURIFromDict (_abf *_bcb .PdfObjectDictionary )(*PdfActionURI ,error ){return &PdfActionURI {URI :_abf .Get ("\u0055\u0052\u0049"),IsMap :_abf .Get ("\u0049\u0073\u004da\u0070")},nil ;};
// ToPdfObject returns the PDF representation of the shading dictionary.
func (_fcggc *PdfShadingType2 )ToPdfObject ()_bcb .PdfObject {_fcggc .PdfShading .ToPdfObject ();_eedgf ,_gecaf :=_fcggc .getShadingDict ();if _gecaf !=nil {_cga .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 _eedgf ==nil {_cga .Log .Error ("\u0053\u0068\u0061\u0064in\u0067\u0020\u0064\u0069\u0063\u0074\u0020\u0069\u0073\u0020\u006e\u0069\u006c");return nil ;};if _fcggc .Coords !=nil {_eedgf .Set ("\u0043\u006f\u006f\u0072\u0064\u0073",_fcggc .Coords );};if _fcggc .Domain !=nil {_eedgf .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_fcggc .Domain );};if _fcggc .Function !=nil {if len (_fcggc .Function )==1{_eedgf .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_fcggc .Function [0].ToPdfObject ());}else {_fggd :=_bcb .MakeArray ();for _ ,_gdddc :=range _fcggc .Function {_fggd .Append (_gdddc .ToPdfObject ());};_eedgf .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_fggd );};};if _fcggc .Extend !=nil {_eedgf .Set ("\u0045\u0078\u0074\u0065\u006e\u0064",_fcggc .Extend );};return _fcggc ._eced ;};
// 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 (_abfdb *PdfReader )AcroFormNeedsRepair ()(bool ,error ){var _gfbcdd []*PdfField ;if _abfdb .AcroForm !=nil {_gfbcdd =_abfdb .AcroForm .AllFields ();};_faca :=make (map[*PdfField ]struct{},len (_gfbcdd ));for _ ,_eeae :=range _gfbcdd {_faca [_eeae ]=struct{}{};};for _ ,_dbbd :=range _abfdb .PageList {_dbbfe ,_cebdg :=_dbbd .GetAnnotations ();if _cebdg !=nil {return false ,_cebdg ;};for _ ,_bgga :=range _dbbfe {_cgdfg ,_ffbff :=_bgga .GetContext ().(*PdfAnnotationWidget );if !_ffbff {continue ;};_gcaae :=_cgdfg .Field ();if _gcaae ==nil {return true ,nil ;};if _ ,_egegf :=_faca [_gcaae ];!_egegf {return true ,nil ;};};};return false ,nil ;};
// ToPdfObject implements interface PdfModel.
func (_bbee *PdfAnnotationPolygon )ToPdfObject ()_bcb .PdfObject {_bbee .PdfAnnotation .ToPdfObject ();_dcgd :=_bbee ._daa ;_fea :=_dcgd .PdfObject .(*_bcb .PdfObjectDictionary );_bbee .PdfAnnotationMarkup .appendToPdfDictionary (_fea );_fea .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_bcb .MakeName ("\u0050o\u006c\u0079\u0067\u006f\u006e"));_fea .SetIfNotNil ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073",_bbee .Vertices );_fea .SetIfNotNil ("\u004c\u0045",_bbee .LE );_fea .SetIfNotNil ("\u0042\u0053",_bbee .BS );_fea .SetIfNotNil ("\u0049\u0043",_bbee .IC );_fea .SetIfNotNil ("\u0042\u0045",_bbee .BE );_fea .SetIfNotNil ("\u0049\u0054",_bbee .IT );_fea .SetIfNotNil ("\u004de\u0061\u0073\u0075\u0072\u0065",_bbee .Measure );return _dcgd ;};
// 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 (_cece _fb .Reader )(*Image ,error );
// NewImageFromGoImage loads a NRGBA32 unidoc Image from a standard Go image structure.
NewImageFromGoImage (_bbece _ac .Image )(*Image ,error );
// NewGrayImageFromGoImage loads a grayscale unidoc Image from a standard Go image structure.
NewGrayImageFromGoImage (_ceeab _ac .Image )(*Image ,error );
// Compress an image.
Compress (_egdda *Image ,_ggcda int64 )(*Image ,error );};func _edgg (_gdfeg *_bcb .PdfIndirectObject ,_aacbf *_bcb .PdfObjectDictionary )(*DSS ,error ){if _gdfeg ==nil {_gdfeg =_bcb .MakeIndirectObject (nil );};_gdfeg .PdfObject =_bcb .MakeDict ();_bdbbc :=map[string ]*VRI {};if _abbg ,_deagb :=_bcb .GetDict (_aacbf .Get ("\u0056\u0052\u0049"));_deagb {for _ ,_ceecg :=range _abbg .Keys (){if _geae ,_dcba :=_bcb .GetDict (_abbg .Get (_ceecg ));_dcba {_bdbbc [_gc .ToUpper (_ceecg .String ())]=_agad (_geae );};};};return &DSS {Certs :_cfcbg (_aacbf .Get ("\u0043\u0065\u0072t\u0073")),OCSPs :_cfcbg (_aacbf .Get ("\u004f\u0043\u0053P\u0073")),CRLs :_cfcbg (_aacbf .Get ("\u0043\u0052\u004c\u0073")),VRI :_bdbbc ,_bdac :_gdfeg },nil ;};
// PdfAnnotationRedact represents Redact annotations.
// (Section 12.5.6.23).
type PdfAnnotationRedact struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _bcb .PdfObject ;IC _bcb .PdfObject ;RO _bcb .PdfObject ;OverlayText _bcb .PdfObject ;Repeat _bcb .PdfObject ;DA _bcb .PdfObject ;Q _bcb .PdfObject ;};
// WatermarkImageOptions contains options for configuring the watermark process.
type WatermarkImageOptions struct{Alpha float64 ;FitToWidth bool ;PreserveAspectRatio bool ;};
// Duplicate creates a duplicate page based on the current one and returns it.
func (_babcb *PdfPage )Duplicate ()*PdfPage {_daafb :=*_babcb ;_daafb ._fagg =_bcb .MakeDict ();_daafb ._cfabg =_bcb .MakeIndirectObject (_daafb ._fagg );return &_daafb ;};
// String returns the name of the colorspace (DeviceN).
func (_efaba *PdfColorspaceDeviceN )String ()string {return "\u0044e\u0076\u0069\u0063\u0065\u004e"};
// NewPdfAnnotationPolygon returns a new polygon annotation.
func NewPdfAnnotationPolygon ()*PdfAnnotationPolygon {_ddbd :=NewPdfAnnotation ();_dbg :=&PdfAnnotationPolygon {};_dbg .PdfAnnotation =_ddbd ;_dbg .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_ddbd .SetContext (_dbg );return _dbg ;};
// HasFontByName checks whether a font is defined by the specified keyName.
func (_cdfae *PdfPageResources )HasFontByName (keyName _bcb .PdfObjectName )bool {_ ,_aggf :=_cdfae .GetFontByName (keyName );return _aggf ;};
// PdfAnnotationWidget represents Widget annotations.
// Note: Widget annotations are used to display form fields.
// (Section 12.5.6.19).
type PdfAnnotationWidget struct{*PdfAnnotation ;H _bcb .PdfObject ;MK _bcb .PdfObject ;A _bcb .PdfObject ;AA _bcb .PdfObject ;BS _bcb .PdfObject ;Parent _bcb .PdfObject ;_cbgd *PdfField ;_eaa bool ;};
// GetExtGState gets the ExtGState specified by keyName. Returns a bool
// indicating whether it was found or not.
func (_ffdfc *PdfPageResources )GetExtGState (keyName _bcb .PdfObjectName )(_bcb .PdfObject ,bool ){if _ffdfc .ExtGState ==nil {return nil ,false ;};_gdecc ,_dcecd :=_bcb .TraceToDirectObject (_ffdfc .ExtGState ).(*_bcb .PdfObjectDictionary );if !_dcecd {_cga .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",_ffdfc .ExtGState );return nil ,false ;};if _fbcfa :=_gdecc .Get (keyName );_fbcfa !=nil {return _fbcfa ,true ;};return nil ,false ;};
// PdfOutline represents a PDF outline dictionary (Table 152 - p. 376).
type PdfOutline struct{PdfOutlineTreeNode ;Parent *PdfOutlineTreeNode ;Count *int64 ;_cdec *_bcb .PdfIndirectObject ;};
// NewPdfAnnotationLine returns a new line annotation.
func NewPdfAnnotationLine ()*PdfAnnotationLine {_geaf :=NewPdfAnnotation ();_cde :=&PdfAnnotationLine {};_cde .PdfAnnotation =_geaf ;_cde .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_geaf .SetContext (_cde );return _cde ;};
// ColorFromPdfObjects returns a new PdfColor based on the input slice of color
// component PDF objects.
func (_fbac *PdfColorspaceICCBased )ColorFromPdfObjects (objects []_bcb .PdfObject )(PdfColor ,error ){if _fbac .Alternate ==nil {if _fbac .N ==1{_beecf :=NewPdfColorspaceDeviceGray ();return _beecf .ColorFromPdfObjects (objects );}else if _fbac .N ==3{_ebfdc :=NewPdfColorspaceDeviceRGB ();return _ebfdc .ColorFromPdfObjects (objects );}else if _fbac .N ==4{_gfefd :=NewPdfColorspaceDeviceCMYK ();return _gfefd .ColorFromPdfObjects (objects );}else {return nil ,_ae .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 _fbac .Alternate .ColorFromPdfObjects (objects );};func (_ecbee *pdfCIDFontType0 )getFontDescriptor ()*PdfFontDescriptor {return _ecbee ._ecaed };
// PdfActionGoToR represents a GoToR action.
type PdfActionGoToR struct{*PdfAction ;F *PdfFilespec ;D _bcb .PdfObject ;NewWindow _bcb .PdfObject ;};
// UpdatePage updates the `page` in the new revision if it has changed.
func (_fcec *PdfAppender )UpdatePage (page *PdfPage ){_fcec .updateObjectsDeep (page .ToPdfObject (),nil )};
// GetContainingPdfObject implements interface PdfModel.
func (_ebac *PdfAnnotation )GetContainingPdfObject ()_bcb .PdfObject {return _ebac ._daa };
// Y returns the value of the yellow component of the color.
func (_ceb *PdfColorDeviceCMYK )Y ()float64 {return _ceb [2]};
// ToPdfObject sets the common field elements.
// Note: Call the more field context's ToPdfObject to set both the generic and
// non-generic information.
func (_fcab *PdfField )ToPdfObject ()_bcb .PdfObject {_aaee :=_fcab ._gggf ;_gfdb :=_aaee .PdfObject .(*_bcb .PdfObjectDictionary );_cabga :=_bcb .MakeArray ();for _ ,_aeda :=range _fcab .Kids {_cabga .Append (_aeda .ToPdfObject ());};for _ ,_gged :=range _fcab .Annotations {if _gged ._daa !=_fcab ._gggf {_cabga .Append (_gged .GetContext ().ToPdfObject ());};};if _fcab .Parent !=nil {_gfdb .SetIfNotNil ("\u0050\u0061\u0072\u0065\u006e\u0074",_fcab .Parent .GetContainingPdfObject ());};if _cabga .Len ()> 0{_gfdb .Set ("\u004b\u0069\u0064\u0073",_cabga );};_gfdb .SetIfNotNil ("\u0046\u0054",_fcab .FT );_gfdb .SetIfNotNil ("\u0054",_fcab .T );_gfdb .SetIfNotNil ("\u0054\u0055",_fcab .TU );_gfdb .SetIfNotNil ("\u0054\u004d",_fcab .TM );_gfdb .SetIfNotNil ("\u0046\u0066",_fcab .Ff );_gfdb .SetIfNotNil ("\u0056",_fcab .V );_gfdb .SetIfNotNil ("\u0044\u0056",_fcab .DV );_gfdb .SetIfNotNil ("\u0041\u0041",_fcab .AA );return _aaee ;};
// 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 (_eccb *PdfColorspaceCalGray )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=1{return nil ,_ae .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_caee :=vals [0];if _caee < 0.0||_caee > 1.0{return nil ,_ae .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_bdbcb :=NewPdfColorCalGray (_caee );return _bdbcb ,nil ;};func (_fef *PdfReader )newPdfActionMovieFromDict (_dceg *_bcb .PdfObjectDictionary )(*PdfActionMovie ,error ){return &PdfActionMovie {Annotation :_dceg .Get ("\u0041\u006e\u006e\u006f\u0074\u0061\u0074\u0069\u006f\u006e"),T :_dceg .Get ("\u0054"),Operation :_dceg .Get ("\u004fp\u0065\u0072\u0061\u0074\u0069\u006fn")},nil ;};
// GetType returns the button field type which returns one of the following
// - PdfFieldButtonPush for push button fields
// - PdfFieldButtonCheckbox for checkbox fields
// - PdfFieldButtonRadio for radio button fields
func (_edaa *PdfFieldButton )GetType ()ButtonType {_cbgfc :=ButtonTypeCheckbox ;if _edaa .Ff !=nil {if (uint32 (*_edaa .Ff )&FieldFlagPushbutton .Mask ())> 0{_cbgfc =ButtonTypePush ;}else if (uint32 (*_edaa .Ff )&FieldFlagRadio .Mask ())> 0{_cbgfc =ButtonTypeRadio ;};};return _cbgfc ;};
// NewPdfAnnotationFileAttachment returns a new file attachment annotation.
func NewPdfAnnotationFileAttachment ()*PdfAnnotationFileAttachment {_gfef :=NewPdfAnnotation ();_fec :=&PdfAnnotationFileAttachment {};_fec .PdfAnnotation =_gfef ;_fec .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_gfef .SetContext (_fec );return _fec ;};type fontFile struct{_cfgbe string ;_cecc string ;_ecge _ddd .SimpleEncoder ;};func (_dfgf *PdfWriter )seekByName (_bcgfg _bcb .PdfObject ,_cebad []string ,_acgca string )([]_bcb .PdfObject ,error ){_cga .Log .Trace ("\u0053\u0065\u0065\u006b\u0020\u0062\u0079\u0020\u006e\u0061\u006d\u0065.\u002e\u0020\u0025\u0054",_bcgfg );var _bdbdg []_bcb .PdfObject ;if _aaagg ,_befe :=_bcgfg .(*_bcb .PdfIndirectObject );_befe {return _dfgf .seekByName (_aaagg .PdfObject ,_cebad ,_acgca );};if _eacc ,_agdab :=_bcgfg .(*_bcb .PdfObjectStream );_agdab {return _dfgf .seekByName (_eacc .PdfObjectDictionary ,_cebad ,_acgca );};if _cccgb ,_dgadd :=_bcgfg .(*_bcb .PdfObjectDictionary );_dgadd {_cga .Log .Trace ("\u0044\u0069\u0063\u0074");for _ ,_fcfg :=range _cccgb .Keys (){_dfccf :=_cccgb .Get (_fcfg );if string (_fcfg )==_acgca {_bdbdg =append (_bdbdg ,_dfccf );};for _ ,_fcdgdc :=range _cebad {if string (_fcfg )==_fcdgdc {_cga .Log .Trace ("\u0046\u006f\u006c\u006c\u006f\u0077\u0020\u006b\u0065\u0079\u0020\u0025\u0073",_fcdgdc );_baaaa ,_deebff :=_dfgf .seekByName (_dfccf ,_cebad ,_acgca );if _deebff !=nil {return _bdbdg ,_deebff ;};_bdbdg =append (_bdbdg ,_baaaa ...);break ;};};};return _bdbdg ,nil ;};return _bdbdg ,nil ;};
// PdfAnnotationPolyLine represents PolyLine annotations.
// (Section 12.5.6.9).
type PdfAnnotationPolyLine struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Vertices _bcb .PdfObject ;LE _bcb .PdfObject ;BS _bcb .PdfObject ;IC _bcb .PdfObject ;BE _bcb .PdfObject ;IT _bcb .PdfObject ;Measure _bcb .PdfObject ;};
// ToPdfObject implements interface PdfModel.
func (_daf *PdfAnnotationProjection )ToPdfObject ()_bcb .PdfObject {_daf .PdfAnnotation .ToPdfObject ();_bafb :=_daf ._daa ;_gegb :=_bafb .PdfObject .(*_bcb .PdfObjectDictionary );_daf .PdfAnnotationMarkup .appendToPdfDictionary (_gegb );return _bafb ;};
// PdfActionImportData represents a importData action.
type PdfActionImportData struct{*PdfAction ;F *PdfFilespec ;};
// NewPdfAnnotationPolyLine returns a new polyline annotation.
func NewPdfAnnotationPolyLine ()*PdfAnnotationPolyLine {_bbc :=NewPdfAnnotation ();_bfgf :=&PdfAnnotationPolyLine {};_bfgf .PdfAnnotation =_bbc ;_bfgf .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_bbc .SetContext (_bfgf );return _bfgf ;};func (_bgg *PdfReader )newPdfAnnotationStrikeOut (_eaab *_bcb .PdfObjectDictionary )(*PdfAnnotationStrikeOut ,error ){_dga :=PdfAnnotationStrikeOut {};_febe ,_acce :=_bgg .newPdfAnnotationMarkupFromDict (_eaab );if _acce !=nil {return nil ,_acce ;};_dga .PdfAnnotationMarkup =_febe ;_dga .QuadPoints =_eaab .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");return &_dga ,nil ;};
// ColorToRGB converts an Indexed color to an RGB color.
func (_ebdac *PdfColorspaceSpecialIndexed )ColorToRGB (color PdfColor )(PdfColor ,error ){if _ebdac .Base ==nil {return nil ,_ae .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 _ebdac .Base .ColorToRGB (color );};
// ToPdfObject returns colorspace in a PDF object format [name dictionary]
func (_aafc *PdfColorspaceCalRGB )ToPdfObject ()_bcb .PdfObject {_fgdb :=&_bcb .PdfObjectArray {};_fgdb .Append (_bcb .MakeName ("\u0043\u0061\u006c\u0052\u0047\u0042"));_geafg :=_bcb .MakeDict ();if _aafc .WhitePoint !=nil {_efac :=_bcb .MakeArray (_bcb .MakeFloat (_aafc .WhitePoint [0]),_bcb .MakeFloat (_aafc .WhitePoint [1]),_bcb .MakeFloat (_aafc .WhitePoint [2]));_geafg .Set ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074",_efac );}else {_cga .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 _aafc .BlackPoint !=nil {_gadef :=_bcb .MakeArray (_bcb .MakeFloat (_aafc .BlackPoint [0]),_bcb .MakeFloat (_aafc .BlackPoint [1]),_bcb .MakeFloat (_aafc .BlackPoint [2]));_geafg .Set ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074",_gadef );};if _aafc .Gamma !=nil {_aacf :=_bcb .MakeArray (_bcb .MakeFloat (_aafc .Gamma [0]),_bcb .MakeFloat (_aafc .Gamma [1]),_bcb .MakeFloat (_aafc .Gamma [2]));_geafg .Set ("\u0047\u0061\u006dm\u0061",_aacf );};if _aafc .Matrix !=nil {_cafbg :=_bcb .MakeArray (_bcb .MakeFloat (_aafc .Matrix [0]),_bcb .MakeFloat (_aafc .Matrix [1]),_bcb .MakeFloat (_aafc .Matrix [2]),_bcb .MakeFloat (_aafc .Matrix [3]),_bcb .MakeFloat (_aafc .Matrix [4]),_bcb .MakeFloat (_aafc .Matrix [5]),_bcb .MakeFloat (_aafc .Matrix [6]),_bcb .MakeFloat (_aafc .Matrix [7]),_bcb .MakeFloat (_aafc .Matrix [8]));_geafg .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_cafbg );};_fgdb .Append (_geafg );if _aafc ._fabd !=nil {_aafc ._fabd .PdfObject =_fgdb ;return _aafc ._fabd ;};return _fgdb ;};
// NewPdfColorDeviceRGB returns a new PdfColorDeviceRGB based on the r,g,b component values.
func NewPdfColorDeviceRGB (r ,g ,b float64 )*PdfColorDeviceRGB {_cbgb :=PdfColorDeviceRGB {r ,g ,b };return &_cbgb ;};
// GetContext returns a reference to the subshading entry as represented by PdfShadingType1-7.
func (_gfegb *PdfShading )GetContext ()PdfModel {return _gfegb ._gcbd };
// ToPdfObject returns colorspace in a PDF object format [name dictionary]
func (_ebff *PdfColorspaceLab )ToPdfObject ()_bcb .PdfObject {_fdac :=_bcb .MakeArray ();_fdac .Append (_bcb .MakeName ("\u004c\u0061\u0062"));_acdac :=_bcb .MakeDict ();if _ebff .WhitePoint !=nil {_gbee :=_bcb .MakeArray (_bcb .MakeFloat (_ebff .WhitePoint [0]),_bcb .MakeFloat (_ebff .WhitePoint [1]),_bcb .MakeFloat (_ebff .WhitePoint [2]));_acdac .Set ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074",_gbee );}else {_cga .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 _ebff .BlackPoint !=nil {_decc :=_bcb .MakeArray (_bcb .MakeFloat (_ebff .BlackPoint [0]),_bcb .MakeFloat (_ebff .BlackPoint [1]),_bcb .MakeFloat (_ebff .BlackPoint [2]));_acdac .Set ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074",_decc );};if _ebff .Range !=nil {_ggff :=_bcb .MakeArray (_bcb .MakeFloat (_ebff .Range [0]),_bcb .MakeFloat (_ebff .Range [1]),_bcb .MakeFloat (_ebff .Range [2]),_bcb .MakeFloat (_ebff .Range [3]));_acdac .Set ("\u0052\u0061\u006eg\u0065",_ggff );};_fdac .Append (_acdac );if _ebff ._fbdc !=nil {_ebff ._fbdc .PdfObject =_fdac ;return _ebff ._fbdc ;};return _fdac ;};
// PdfAnnotationSquare represents Square annotations.
// (Section 12.5.6.8).
type PdfAnnotationSquare struct{*PdfAnnotation ;*PdfAnnotationMarkup ;BS _bcb .PdfObject ;IC _bcb .PdfObject ;BE _bcb .PdfObject ;RD _bcb .PdfObject ;};
// NewPdfAnnotationHighlight returns a new text highlight annotation.
func NewPdfAnnotationHighlight ()*PdfAnnotationHighlight {_cbe :=NewPdfAnnotation ();_cgc :=&PdfAnnotationHighlight {};_cgc .PdfAnnotation =_cbe ;_cgc .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_cbe .SetContext (_cgc );return _cgc ;};
// 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 (_cgfff *Image )Resample (targetBitsPerComponent int64 ){if _cgfff .BitsPerComponent ==targetBitsPerComponent {return ;};_egecc :=_cgfff .GetSamples ();if targetBitsPerComponent < _cgfff .BitsPerComponent {_bafbb :=_cgfff .BitsPerComponent -targetBitsPerComponent ;for _baff :=range _egecc {_egecc [_baff ]>>=uint (_bafbb );};}else if targetBitsPerComponent > _cgfff .BitsPerComponent {_gggce :=targetBitsPerComponent -_cgfff .BitsPerComponent ;for _bafbbe :=range _egecc {_egecc [_bafbbe ]<<=uint (_gggce );};};_cgfff .BitsPerComponent =targetBitsPerComponent ;if _cgfff .BitsPerComponent < 8{_cgfff .resampleLowBits (_egecc );return ;};_ggab :=_fgd .BytesPerLine (int (_cgfff .Width ),int (_cgfff .BitsPerComponent ),_cgfff .ColorComponents );_dgdg :=make ([]byte ,_ggab *int (_cgfff .Height ));var (_gegea ,_adceb ,_ggbc ,_bbccc int ;_deef uint32 ;);for _ggbc =0;_ggbc < int (_cgfff .Height );_ggbc ++{_gegea =_ggbc *_ggab ;_adceb =(_ggbc +1)*_ggab -1;_gdga :=_cgb .ResampleUint32 (_egecc [_gegea :_adceb ],int (targetBitsPerComponent ),8);for _bbccc ,_deef =range _gdga {_dgdg [_bbccc +_gegea ]=byte (_deef );};};_cgfff .Data =_dgdg ;};
// PdfColorspaceSpecialPattern is a Pattern colorspace.
// Can be defined either as /Pattern or with an underlying colorspace [/Pattern cs].
type PdfColorspaceSpecialPattern struct{UnderlyingCS PdfColorspace ;_ebgf *_bcb .PdfIndirectObject ;};
// ToPdfObject returns the PDF representation of the shading dictionary.
func (_fbcfdd *PdfShadingType4 )ToPdfObject ()_bcb .PdfObject {_fbcfdd .PdfShading .ToPdfObject ();_degfd ,_afdad :=_fbcfdd .getShadingDict ();if _afdad !=nil {_cga .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 _fbcfdd .BitsPerCoordinate !=nil {_degfd .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065",_fbcfdd .BitsPerCoordinate );};if _fbcfdd .BitsPerComponent !=nil {_degfd .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_fbcfdd .BitsPerComponent );};if _fbcfdd .BitsPerFlag !=nil {_degfd .Set ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067",_fbcfdd .BitsPerFlag );};if _fbcfdd .Decode !=nil {_degfd .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_fbcfdd .Decode );};if _fbcfdd .Function !=nil {if len (_fbcfdd .Function )==1{_degfd .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_fbcfdd .Function [0].ToPdfObject ());}else {_geegb :=_bcb .MakeArray ();for _ ,_badca :=range _fbcfdd .Function {_geegb .Append (_badca .ToPdfObject ());};_degfd .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_geegb );};};return _fbcfdd ._eced ;};
// NewPdfActionTrans returns a new "trans" action.
func NewPdfActionTrans ()*PdfActionTrans {_adf :=NewPdfAction ();_agea :=&PdfActionTrans {};_agea .PdfAction =_adf ;_adf .SetContext (_agea );return _agea ;};
// PdfAppender appends new PDF content to an existing PDF document via incremental updates.
type PdfAppender struct{_baeab _fb .ReadSeeker ;_bbdf *_bcb .PdfParser ;_adcc *PdfReader ;Reader *PdfReader ;_cgcg []*PdfPage ;_acdf *PdfAcroForm ;_fbb *DSS ;_bcf _bcb .XrefTable ;_edga int64 ;_ebga int ;_eebb []_bcb .PdfObject ;_bfbb map[_bcb .PdfObject ]struct{};_cfff map[_bcb .PdfObject ]int64 ;_feea map[_bcb .PdfObject ]struct{};_ebca map[_bcb .PdfObject ]struct{};_def int64 ;_dgfdf bool ;};var _ pdfFont =(*pdfCIDFontType0 )(nil );func (_cccbf *PdfPattern )getDict ()*_bcb .PdfObjectDictionary {if _facc ,_dcbg :=_cccbf ._becda .(*_bcb .PdfIndirectObject );_dcbg {_dfegfa ,_fbdfb :=_facc .PdfObject .(*_bcb .PdfObjectDictionary );if !_fbdfb {return nil ;};return _dfegfa ;}else if _ggcdb ,_cfegc :=_cccbf ._becda .(*_bcb .PdfObjectStream );_cfegc {return _ggcdb .PdfObjectDictionary ;}else {_cga .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",_cccbf ._becda );return nil ;};};
// PdfFunctionType4 is a Postscript calculator functions.
type PdfFunctionType4 struct{Domain []float64 ;Range []float64 ;Program *_fc .PSProgram ;_fbcd *_fc .PSExecutor ;_gfdef []byte ;_bbffg *_bcb .PdfObjectStream ;};
// GetNumComponents returns the number of color components of the underlying
// colorspace device.
func (_bcff *PdfColorspaceSpecialPattern )GetNumComponents ()int {return _bcff .UnderlyingCS .GetNumComponents ();};
// PdfPageResources is a Page resources model.
// Implements PdfModel.
type PdfPageResources struct{ExtGState _bcb .PdfObject ;ColorSpace _bcb .PdfObject ;Pattern _bcb .PdfObject ;Shading _bcb .PdfObject ;XObject _bcb .PdfObject ;Font _bcb .PdfObject ;ProcSet _bcb .PdfObject ;Properties _bcb .PdfObject ;_daggd *_bcb .PdfObjectDictionary ;_dcga *PdfPageResourcesColorspaces ;};
// Evaluate runs the function on the passed in slice and returns the results.
func (_deda *PdfFunctionType3 )Evaluate (x []float64 )([]float64 ,error ){if len (x )!=1{_cga .Log .Error ("\u004f\u006e\u006c\u0079 o\u006e\u0065\u0020\u0069\u006e\u0070\u0075\u0074\u0020\u0061\u006c\u006c\u006f\u0077e\u0064");return nil ,_ae .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};return nil ,_ae .New ("\u006e\u006f\u0074\u0020im\u0070\u006c\u0065\u006d\u0065\u006e\u0074\u0065\u0064\u0020\u0079\u0065\u0074");};
// AddPages adds pages to be appended to the end of the source PDF.
func (_ddggd *PdfAppender )AddPages (pages ...*PdfPage ){for _ ,_ded :=range pages {_ded =_ded .Duplicate ();_bdba (_ded );_ddggd ._cgcg =append (_ddggd ._cgcg ,_ded );};};type pdfFontSimple struct{fontCommon ;_cdadc *_bcb .PdfIndirectObject ;_dgdfc map[_ddd .CharCode ]float64 ;_fdebc _ddd .TextEncoder ;_bcdf _ddd .TextEncoder ;_ddee *PdfFontDescriptor ;
// Encoding is subject to limitations that are described in 9.6.6, "Character Encoding".
// BaseFont is derived differently.
FirstChar _bcb .PdfObject ;LastChar _bcb .PdfObject ;Widths _bcb .PdfObject ;Encoding _bcb .PdfObject ;_gbggc map[rune ]_acc .CharMetrics ;};
// GetContainingPdfObject returns the container of the outline tree node (indirect object).
func (_gefaa *PdfOutlineTreeNode )GetContainingPdfObject ()_bcb .PdfObject {return _gefaa .GetContext ().GetContainingPdfObject ();};
// GetNumComponents returns the number of color components of the colorspace device.
// Returns 3 for a Lab device.
func (_gacee *PdfColorspaceLab )GetNumComponents ()int {return 3};func (_cdbce *PdfReader )newPdfAcroFormFromDict (_abbc *_bcb .PdfIndirectObject ,_cgcde *_bcb .PdfObjectDictionary )(*PdfAcroForm ,error ){_dgbab :=NewPdfAcroForm ();if _abbc !=nil {_dgbab ._gacgf =_abbc ;_abbc .PdfObject =_bcb .MakeDict ();};if _fedg :=_cgcde .Get ("\u0046\u0069\u0065\u006c\u0064\u0073");_fedg !=nil {_caggc ,_bded :=_bcb .GetArray (_fedg );if !_bded {return nil ,_e .Errorf ("\u0066i\u0065\u006c\u0064\u0073\u0020\u006e\u006f\u0074\u0020\u0061\u006e \u0061\u0072\u0072\u0061\u0079\u0020\u0028\u0025\u0054\u0029",_fedg );};var _faefgg []*PdfField ;for _ ,_gdfc :=range _caggc .Elements (){_gagg ,_dbfgg :=_bcb .GetIndirect (_gdfc );if !_dbfgg {if _ ,_gdddb :=_gdfc .(*_bcb .PdfObjectNull );_gdddb {_cga .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 ;};_cga .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",_gdfc );return nil ,_e .Errorf ("\u0066\u0069\u0065l\u0064\u0020\u006e\u006ft\u0020\u0069\u006e\u0020\u0061\u006e\u0020i\u006e\u0064\u0069\u0072\u0065\u0063\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074");};_ccfe ,_gaccb :=_cdbce .newPdfFieldFromIndirectObject (_gagg ,nil );if _gaccb !=nil {return nil ,_gaccb ;};_cga .Log .Trace ("\u0041\u0063\u0072\u006fFo\u0072\u006d\u0020\u0046\u0069\u0065\u006c\u0064\u003a\u0020\u0025\u002b\u0076",*_ccfe );_faefgg =append (_faefgg ,_ccfe );};_dgbab .Fields =&_faefgg ;};if _aecda :=_cgcde .Get ("\u004ee\u0065d\u0041\u0070\u0070\u0065\u0061\u0072\u0061\u006e\u0063\u0065\u0073");_aecda !=nil {_ddaffg ,_ggggg :=_bcb .GetBool (_aecda );if _ggggg {_dgbab .NeedAppearances =_ddaffg ;}else {_cga .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",_aecda );};};if _abac :=_cgcde .Get ("\u0053\u0069\u0067\u0046\u006c\u0061\u0067\u0073");_abac !=nil {_fbfd ,_bcef :=_bcb .GetInt (_abac );if _bcef {_dgbab .SigFlags =_fbfd ;}else {_cga .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",_abac );};};if _gafcf :=_cgcde .Get ("\u0043\u004f");_gafcf !=nil {_gfcgg ,_deffa :=_bcb .GetArray (_gafcf );if _deffa {_dgbab .CO =_gfcgg ;}else {_cga .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",_gafcf );};};if _fdaaf :=_cgcde .Get ("\u0044\u0052");_fdaaf !=nil {if _gaeaa ,_cgefg :=_bcb .GetDict (_fdaaf );_cgefg {_adfbe ,_cfaea :=NewPdfPageResourcesFromDict (_gaeaa );if _cfaea !=nil {_cga .Log .Error ("\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0044R\u003a\u0020\u0025\u0076",_cfaea );return nil ,_cfaea ;};_dgbab .DR =_adfbe ;}else {_cga .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",_fdaaf );};};if _ffcc :=_cgcde .Get ("\u0044\u0041");_ffcc !=nil {_efcbb ,_bedb :=_bcb .GetString (_ffcc );if _bedb {_dgbab .DA =_efcbb ;}else {_cga .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",_ffcc );};};if _gabg :=_cgcde .Get ("\u0051");_gabg !=nil {_acgec ,_eaaag :=_bcb .GetInt (_gabg );if _eaaag {_dgbab .Q =_acgec ;}else {_cga .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a \u0051\u0020\u0069\u006e\u0076a\u006ci\u0064 \u0028\u0067\u006f\u0074\u0020\u0025\u0054)",_gabg );};};if _fafd :=_cgcde .Get ("\u0058\u0046\u0041");_fafd !=nil {_dgbab .XFA =_fafd ;};return _dgbab ,nil ;};
// 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 ;_fggf *_bcb .PdfIndirectObject ;};func _egdb (_fgfca _acc .StdFont )pdfFontSimple {_cdgdg :=_fgfca .Descriptor ();return pdfFontSimple {fontCommon :fontCommon {_abgg :"\u0054\u0079\u0070e\u0031",_daeb :_fgfca .Name ()},_gbggc :_fgfca .GetMetricsTable (),_ddee :&PdfFontDescriptor {FontName :_bcb .MakeName (string (_cdgdg .Name )),FontFamily :_bcb .MakeName (_cdgdg .Family ),FontWeight :_bcb .MakeFloat (float64 (_cdgdg .Weight )),Flags :_bcb .MakeInteger (int64 (_cdgdg .Flags )),FontBBox :_bcb .MakeArrayFromFloats (_cdgdg .BBox [:]),ItalicAngle :_bcb .MakeFloat (_cdgdg .ItalicAngle ),Ascent :_bcb .MakeFloat (_cdgdg .Ascent ),Descent :_bcb .MakeFloat (_cdgdg .Descent ),CapHeight :_bcb .MakeFloat (_cdgdg .CapHeight ),XHeight :_bcb .MakeFloat (_cdgdg .XHeight ),StemV :_bcb .MakeFloat (_cdgdg .StemV ),StemH :_bcb .MakeFloat (_cdgdg .StemH )},_bcdf :_fgfca .Encoder ()};};func (_ffcca *PdfSignature )extractChainFromCert ()([]*_ffg .Certificate ,error ){var _bcfe *_bcb .PdfObjectArray ;switch _cacce :=_ffcca .Cert .(type ){case *_bcb .PdfObjectString :_bcfe =_bcb .MakeArray (_cacce );case *_bcb .PdfObjectArray :_bcfe =_cacce ;default:return nil ,_e .Errorf ("\u0069n\u0076\u0061l\u0069\u0064\u0020s\u0069\u0067\u006e\u0061\u0074\u0075\u0072e\u0020\u0063\u0065\u0072\u0074\u0069f\u0069\u0063\u0061\u0074\u0065\u0020\u006f\u0062\u006a\u0065\u0063t\u0020\u0074\u0079\u0070\u0065\u003a\u0020\u0025\u0054",_cacce );};var _ffegc _ede .Buffer ;for _ ,_ggeg :=range _bcfe .Elements (){_afeee ,_cfccb :=_bcb .GetString (_ggeg );if !_cfccb {return nil ,_e .Errorf ("\u0069\u006ev\u0061\u006c\u0069\u0064\u0020\u0063\u0065\u0072\u0074\u0069\u0066\u0069\u0063\u0061\u0074\u0065\u0020\u006f\u0062j\u0065\u0063\u0074\u0020\u0074\u0079p\u0065\u0020\u0069\u006e\u0020\u0073\u0069\u0067\u006e\u0061\u0074\u0075\u0072\u0065 \u0063\u0065r\u0074\u0069\u0066\u0069c\u0061\u0074\u0065\u0020\u0063h\u0061\u0069\u006e\u003a\u0020\u0025\u0054",_ggeg );};if _ ,_efabb :=_ffegc .Write (_afeee .Bytes ());_efabb !=nil {return nil ,_efabb ;};};return _ffg .ParseCertificates (_ffegc .Bytes ());};
// SetImage updates XObject Image with new image data.
func (_bbggb *XObjectImage )SetImage (img *Image ,cs PdfColorspace )error {_bbggb .Filter .UpdateParams (img .GetParamsDict ());_bedbd ,_efcfa :=_bbggb .Filter .EncodeBytes (img .Data );if _efcfa !=nil {return _efcfa ;};_bbggb .Stream =_bedbd ;_affg :=img .Width ;_bbggb .Width =&_affg ;_cffce :=img .Height ;_bbggb .Height =&_cffce ;_aecba :=img .BitsPerComponent ;_bbggb .BitsPerComponent =&_aecba ;if cs ==nil {if img .ColorComponents ==1{_bbggb .ColorSpace =NewPdfColorspaceDeviceGray ();}else if img .ColorComponents ==3{_bbggb .ColorSpace =NewPdfColorspaceDeviceRGB ();}else if img .ColorComponents ==4{_bbggb .ColorSpace =NewPdfColorspaceDeviceCMYK ();}else {return _ae .New ("c\u006fl\u006f\u0072\u0073\u0070\u0061\u0063\u0065\u0020u\u006e\u0064\u0065\u0066in\u0065\u0064");};}else {_bbggb .ColorSpace =cs ;};return nil ;};
// GetContext returns the context of the outline tree node, which is either a
// *PdfOutline or a *PdfOutlineItem. The method returns nil for uninitialized
// tree nodes.
func (_ebccg *PdfOutlineTreeNode )GetContext ()PdfModel {if _cbdgf ,_caffc :=_ebccg ._bfagd .(*PdfOutline );_caffc {return _cbdgf ;};if _dgdac ,_ddafc :=_ebccg ._bfagd .(*PdfOutlineItem );_ddafc {return _dgdac ;};_cga .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 ;};
// NewPdfActionNamed returns a new "named" action.
func NewPdfActionNamed ()*PdfActionNamed {_feg :=NewPdfAction ();_aca :=&PdfActionNamed {};_aca .PdfAction =_feg ;_feg .SetContext (_aca );return _aca ;};
// ToPdfObject implements interface PdfModel.
func (_dcbd *PdfAnnotationCircle )ToPdfObject ()_bcb .PdfObject {_dcbd .PdfAnnotation .ToPdfObject ();_cdb :=_dcbd ._daa ;_aeeg :=_cdb .PdfObject .(*_bcb .PdfObjectDictionary );_dcbd .PdfAnnotationMarkup .appendToPdfDictionary (_aeeg );_aeeg .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_bcb .MakeName ("\u0043\u0069\u0072\u0063\u006c\u0065"));_aeeg .SetIfNotNil ("\u0042\u0053",_dcbd .BS );_aeeg .SetIfNotNil ("\u0049\u0043",_dcbd .IC );_aeeg .SetIfNotNil ("\u0042\u0045",_dcbd .BE );_aeeg .SetIfNotNil ("\u0052\u0044",_dcbd .RD );return _cdb ;};
// PageFromIndirectObject returns the PdfPage and page number for a given indirect object.
func (_fegda *PdfReader )PageFromIndirectObject (ind *_bcb .PdfIndirectObject )(*PdfPage ,int ,error ){if len (_fegda .PageList )!=len (_fegda ._fcff ){return nil ,0,_ae .New ("\u0070\u0061\u0067\u0065\u0020\u006c\u0069\u0073\u0074\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");};for _egeda ,_fcdddc :=range _fegda ._fcff {if _fcdddc ==ind {return _fegda .PageList [_egeda ],_egeda +1,nil ;};};return nil ,0,_ae .New ("\u0070\u0061\u0067\u0065\u0020\u006e\u006f\u0074\u0020f\u006f\u0075\u006e\u0064");};
// ToPdfObject returns a PDF object representation of the outline destination.
func (_dfecc OutlineDest )ToPdfObject ()_bcb .PdfObject {if (_dfecc .PageObj ==nil &&_dfecc .Page < 0)||_dfecc .Mode ==""{return _bcb .MakeNull ();};_aafa :=_bcb .MakeArray ();if _dfecc .PageObj !=nil {_aafa .Append (_dfecc .PageObj );}else {_aafa .Append (_bcb .MakeInteger (_dfecc .Page ));};_aafa .Append (_bcb .MakeName (_dfecc .Mode ));switch _dfecc .Mode {case "\u0046\u0069\u0074","\u0046\u0069\u0074\u0042":case "\u0046\u0069\u0074\u0048","\u0046\u0069\u0074B\u0048":_aafa .Append (_bcb .MakeFloat (_dfecc .Y ));case "\u0046\u0069\u0074\u0056","\u0046\u0069\u0074B\u0056":_aafa .Append (_bcb .MakeFloat (_dfecc .X ));case "\u0058\u0059\u005a":_aafa .Append (_bcb .MakeFloat (_dfecc .X ));_aafa .Append (_bcb .MakeFloat (_dfecc .Y ));_aafa .Append (_bcb .MakeFloat (_dfecc .Zoom ));default:_aafa .Set (1,_bcb .MakeName ("\u0046\u0069\u0074"));};return _aafa ;};func _cbgcg (_abafe []*_bcb .PdfObjectStream )*_bcb .PdfObjectArray {if len (_abafe )==0{return nil ;};_feee :=make ([]_bcb .PdfObject ,0,len (_abafe ));for _ ,_bccf :=range _abafe {_feee =append (_feee ,_bccf );};return _bcb .MakeArray (_feee ...);};
// PdfAnnotationSquiggly represents Squiggly annotations.
// (Section 12.5.6.10).
type PdfAnnotationSquiggly struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _bcb .PdfObject ;};
// ToPdfObject implements interface PdfModel.
func (_begc *PdfAnnotationUnderline )ToPdfObject ()_bcb .PdfObject {_begc .PdfAnnotation .ToPdfObject ();_deed :=_begc ._daa ;_gcbf :=_deed .PdfObject .(*_bcb .PdfObjectDictionary );_begc .PdfAnnotationMarkup .appendToPdfDictionary (_gcbf );_gcbf .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_bcb .MakeName ("\u0055n\u0064\u0065\u0072\u006c\u0069\u006ee"));_gcbf .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_begc .QuadPoints );return _deed ;};
// PdfActionSound represents a sound action.
type PdfActionSound struct{*PdfAction ;Sound _bcb .PdfObject ;Volume _bcb .PdfObject ;Synchronous _bcb .PdfObject ;Repeat _bcb .PdfObject ;Mix _bcb .PdfObject ;};
// ToInteger convert to an integer format.
func (_dcacb *PdfColorDeviceCMYK )ToInteger (bits int )[4]uint32 {_dcegb :=_edb .Pow (2,float64 (bits ))-1;return [4]uint32 {uint32 (_dcegb *_dcacb .C ()),uint32 (_dcegb *_dcacb .M ()),uint32 (_dcegb *_dcacb .Y ()),uint32 (_dcegb *_dcacb .K ())};};func (_cacf *PdfReader )newPdfAnnotationRedactFromDict (_cdgg *_bcb .PdfObjectDictionary )(*PdfAnnotationRedact ,error ){_eaba :=PdfAnnotationRedact {};_abef ,_gdfe :=_cacf .newPdfAnnotationMarkupFromDict (_cdgg );if _gdfe !=nil {return nil ,_gdfe ;};_eaba .PdfAnnotationMarkup =_abef ;_eaba .QuadPoints =_cdgg .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");_eaba .IC =_cdgg .Get ("\u0049\u0043");_eaba .RO =_cdgg .Get ("\u0052\u004f");_eaba .OverlayText =_cdgg .Get ("O\u0076\u0065\u0072\u006c\u0061\u0079\u0054\u0065\u0078\u0074");_eaba .Repeat =_cdgg .Get ("\u0052\u0065\u0070\u0065\u0061\u0074");_eaba .DA =_cdgg .Get ("\u0044\u0041");_eaba .Q =_cdgg .Get ("\u0051");return &_eaba ,nil ;};
// PdfAction represents an action in PDF (section 12.6 p. 412).
type PdfAction struct{_dda PdfModel ;Type _bcb .PdfObject ;S _bcb .PdfObject ;Next _bcb .PdfObject ;_dce *_bcb .PdfIndirectObject ;};
// 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 (_bgcbe *PdfColorspaceSpecialPattern )ColorToRGB (color PdfColor )(PdfColor ,error ){_bgba ,_agdb :=color .(*PdfColorPattern );if !_agdb {_cga .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 _bgba .Color ==nil {return color ,nil ;};if _bgcbe .UnderlyingCS ==nil {return nil ,_ae .New ("\u0075n\u0064\u0065\u0072\u006cy\u0069\u006e\u0067\u0020\u0043S\u0020n\u006ft\u0020\u0064\u0065\u0066\u0069\u006e\u0065d");};return _bgcbe .UnderlyingCS .ColorToRGB (_bgba .Color );};
// 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 (_degf *PdfColorspaceDeviceGray )ColorFromPdfObjects (objects []_bcb .PdfObject )(PdfColor ,error ){if len (objects )!=1{return nil ,_ae .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_gabf ,_bgac :=_bcb .GetNumbersAsFloat (objects );if _bgac !=nil {return nil ,_bgac ;};return _degf .ColorFromFloats (_gabf );};
// SetXObjectByName adds the XObject from the passed in stream to the page resources.
// The added XObject is identified by the specified name.
func (_fgeed *PdfPageResources )SetXObjectByName (keyName _bcb .PdfObjectName ,stream *_bcb .PdfObjectStream )error {if _fgeed .XObject ==nil {_fgeed .XObject =_bcb .MakeDict ();};_fgcgd :=_bcb .TraceToDirectObject (_fgeed .XObject );_gegdf ,_cefdg :=_fgcgd .(*_bcb .PdfObjectDictionary );if !_cefdg {_cga .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",_fgeed .XObject ,_fgcgd );return _ae .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_gegdf .Set (keyName ,stream );return nil ;};
// GetNumComponents returns the number of color components (1 for Indexed).
func (_gcfc *PdfColorspaceSpecialIndexed )GetNumComponents ()int {return 1};
// PdfColorspaceDeviceGray represents a grayscale colorspace.
type PdfColorspaceDeviceGray struct{};
// 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 (_gecfb PdfColor )(PdfColor ,error );
// GetNumComponents returns the number of components in the PdfColorspace.
GetNumComponents ()int ;
// ToPdfObject returns a PdfObject representation of the PdfColorspace.
ToPdfObject ()_bcb .PdfObject ;
// ColorFromPdfObjects returns a PdfColor in the given PdfColorspace from an array of PdfObject where each
// PdfObject represents a numeric value.
ColorFromPdfObjects (_debe []_bcb .PdfObject )(PdfColor ,error );
// ColorFromFloats returns a new PdfColor based on input color components for a given PdfColorspace.
ColorFromFloats (_ecdc []float64 )(PdfColor ,error );
// DecodeArray returns the Decode array for the PdfColorSpace, i.e. the range of each component.
DecodeArray ()[]float64 ;};func (_egedf *PdfColorspaceSpecialSeparation )String ()string {return "\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e";};
// 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 (_gbd *PdfAnnotationWidget )Field ()*PdfField {return _gbd ._cbgd };
// EnableChain adds the specified certificate chain and validation data (OCSP
// and CRL information) for it to the global scope of the document DSS. The
// added data is used for validating any of the signatures present in the
// document. The LTV client attempts to build the certificate chain up to a
// trusted root by downloading any missing certificates.
func (_bcacb *LTV )EnableChain (chain []*_ffg .Certificate )error {return _bcacb .enable (nil ,chain ,"")};
// PdfAnnotationSound represents Sound annotations.
// (Section 12.5.6.16).
type PdfAnnotationSound struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Sound _bcb .PdfObject ;Name _bcb .PdfObject ;};var _ pdfFont =(*pdfFontType0 )(nil );
// PdfActionNamed represents a named action.
type PdfActionNamed struct{*PdfAction ;N _bcb .PdfObject ;};func (_bcga *PdfReader )newPdfAnnotationFileAttachmentFromDict (_bce *_bcb .PdfObjectDictionary )(*PdfAnnotationFileAttachment ,error ){_adad :=PdfAnnotationFileAttachment {};_eefg ,_fgg :=_bcga .newPdfAnnotationMarkupFromDict (_bce );if _fgg !=nil {return nil ,_fgg ;};_adad .PdfAnnotationMarkup =_eefg ;_adad .FS =_bce .Get ("\u0046\u0053");_adad .Name =_bce .Get ("\u004e\u0061\u006d\u0065");return &_adad ,nil ;};func (_bbgcd *pdfFontType0 )bytesToCharcodes (_gfabc []byte )([]_ddd .CharCode ,bool ){if _bbgcd ._abeeb ==nil {return nil ,false ;};_acfd ,_gfefa :=_bbgcd ._abeeb .BytesToCharcodes (_gfabc );if !_gfefa {return nil ,false ;};_dcgga :=make ([]_ddd .CharCode ,len (_acfd ));for _gege ,_dbaf :=range _acfd {_dcgga [_gege ]=_ddd .CharCode (_dbaf );};return _dcgga ,true ;};func _acdfd (_ebbe _bcb .PdfObject )(PdfFunction ,error ){_ebbe =_bcb .ResolveReference (_ebbe );if _gfeg ,_cgfd :=_ebbe .(*_bcb .PdfObjectStream );_cgfd {_gegee :=_gfeg .PdfObjectDictionary ;_dfcb ,_cadg :=_gegee .Get ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065").(*_bcb .PdfObjectInteger );if !_cadg {_cga .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 ,_ae .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 *_dfcb ==0{return _ebdb (_gfeg );}else if *_dfcb ==4{return _edfca (_gfeg );}else {return nil ,_ae .New ("i\u006e\u0076\u0061\u006cid\u0020f\u0075\u006e\u0063\u0074\u0069o\u006e\u0020\u0074\u0079\u0070\u0065");};}else if _abge ,_edfg :=_ebbe .(*_bcb .PdfIndirectObject );_edfg {_fcgad ,_fbdge :=_abge .PdfObject .(*_bcb .PdfObjectDictionary );if !_fbdge {_cga .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 ,_ae .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");};_dedec ,_fbdge :=_fcgad .Get ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065").(*_bcb .PdfObjectInteger );if !_fbdge {_cga .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 ,_ae .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 *_dedec ==2{return _cafcg (_abge );}else if *_dedec ==3{return _ecgbd (_abge );}else {return nil ,_ae .New ("i\u006e\u0076\u0061\u006cid\u0020f\u0075\u006e\u0063\u0074\u0069o\u006e\u0020\u0074\u0079\u0070\u0065");};}else if _gfgc ,_aebdg :=_ebbe .(*_bcb .PdfObjectDictionary );_aebdg {_cegg ,_ddbee :=_gfgc .Get ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065").(*_bcb .PdfObjectInteger );if !_ddbee {_cga .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 ,_ae .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 *_cegg ==2{return _cafcg (_gfgc );}else if *_cegg ==3{return _ecgbd (_gfgc );}else {return nil ,_ae .New ("i\u006e\u0076\u0061\u006cid\u0020f\u0075\u006e\u0063\u0074\u0069o\u006e\u0020\u0074\u0079\u0070\u0065");};}else {_cga .Log .Debug ("\u0046u\u006e\u0063\u0074\u0069\u006f\u006e\u0020\u0054\u0079\u0070\u0065 \u0065\u0072\u0072\u006f\u0072\u003a\u0020\u0025\u0023\u0076",_ebbe );return nil ,_ae .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};};func _ecgbd (_bdfda _bcb .PdfObject )(*PdfFunctionType3 ,error ){_gdbga :=&PdfFunctionType3 {};var _bbecb *_bcb .PdfObjectDictionary ;if _bbaa ,_dgcgd :=_bdfda .(*_bcb .PdfIndirectObject );_dgcgd {_fgfbc ,_ddfac :=_bbaa .PdfObject .(*_bcb .PdfObjectDictionary );if !_ddfac {return nil ,_ae .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_gdbga ._gfbgg =_bbaa ;_bbecb =_fgfbc ;}else if _baccc ,_egacd :=_bdfda .(*_bcb .PdfObjectDictionary );_egacd {_bbecb =_baccc ;}else {return nil ,_ae .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_aeaff ,_bffd :=_bcb .TraceToDirectObject (_bbecb .Get ("\u0044\u006f\u006d\u0061\u0069\u006e")).(*_bcb .PdfObjectArray );if !_bffd {_cga .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_ae .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 _aeaff .Len ()!=2{_cga .Log .Error ("\u0044\u006f\u006d\u0061\u0069\u006e\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");return nil ,_ae .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0064\u006f\u006da\u0069\u006e\u0020\u0072an\u0067\u0065");};_cefe ,_cdcg :=_aeaff .ToFloat64Array ();if _cdcg !=nil {return nil ,_cdcg ;};_gdbga .Domain =_cefe ;_aeaff ,_bffd =_bcb .TraceToDirectObject (_bbecb .Get ("\u0052\u0061\u006eg\u0065")).(*_bcb .PdfObjectArray );if _bffd {if _aeaff .Len ()< 0||_aeaff .Len ()%2!=0{return nil ,_ae .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0061\u006e\u0067\u0065");};_gagc ,_gada :=_aeaff .ToFloat64Array ();if _gada !=nil {return nil ,_gada ;};_gdbga .Range =_gagc ;};_aeaff ,_bffd =_bcb .TraceToDirectObject (_bbecb .Get ("\u0046u\u006e\u0063\u0074\u0069\u006f\u006es")).(*_bcb .PdfObjectArray );if !_bffd {_cga .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 ,_ae .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");};_gdbga .Functions =[]PdfFunction {};for _ ,_bgdae :=range _aeaff .Elements (){_cbbc ,_fcgd :=_acdfd (_bgdae );if _fcgd !=nil {return nil ,_fcgd ;};_gdbga .Functions =append (_gdbga .Functions ,_cbbc );};_aeaff ,_bffd =_bcb .TraceToDirectObject (_bbecb .Get ("\u0042\u006f\u0075\u006e\u0064\u0073")).(*_bcb .PdfObjectArray );if !_bffd {_cga .Log .Error ("B\u006fu\u006e\u0064\u0073\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_ae .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");};_dddf ,_cdcg :=_aeaff .ToFloat64Array ();if _cdcg !=nil {return nil ,_cdcg ;};_gdbga .Bounds =_dddf ;if len (_gdbga .Bounds )!=len (_gdbga .Functions )-1{_cga .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 (_gdbga .Bounds ),len (_gdbga .Functions ));return nil ,_ae .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_aeaff ,_bffd =_bcb .TraceToDirectObject (_bbecb .Get ("\u0045\u006e\u0063\u006f\u0064\u0065")).(*_bcb .PdfObjectArray );if !_bffd {_cga .Log .Error ("E\u006ec\u006f\u0064\u0065\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_ae .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");};_cdgbc ,_cdcg :=_aeaff .ToFloat64Array ();if _cdcg !=nil {return nil ,_cdcg ;};_gdbga .Encode =_cdgbc ;if len (_gdbga .Encode )!=2*len (_gdbga .Functions ){_cga .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 (_gdbga .Encode ),len (_gdbga .Functions ));return nil ,_ae .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};return _gdbga ,nil ;};
// ToPdfObject implements interface PdfModel.
func (_cda *PdfAnnotationCaret )ToPdfObject ()_bcb .PdfObject {_cda .PdfAnnotation .ToPdfObject ();_gfgb :=_cda ._daa ;_cdad :=_gfgb .PdfObject .(*_bcb .PdfObjectDictionary );_cda .PdfAnnotationMarkup .appendToPdfDictionary (_cdad );_cdad .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_bcb .MakeName ("\u0043\u0061\u0072e\u0074"));_cdad .SetIfNotNil ("\u0052\u0044",_cda .RD );_cdad .SetIfNotNil ("\u0053\u0079",_cda .Sy );return _gfgb ;};
// 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 ;_cdeb []byte ;_fdggf []float64 ;};
// ToPdfObject returns the PDF representation of the colorspace.
func (_gacgg *PdfColorspaceDeviceCMYK )ToPdfObject ()_bcb .PdfObject {return _bcb .MakeName ("\u0044\u0065\u0076\u0069\u0063\u0065\u0043\u004d\u0059\u004b");};
// ToPdfObject converts the font to a PDF representation.
func (_egad *pdfFontType0 )ToPdfObject ()_bcb .PdfObject {if _egad ._bfaeg ==nil {_egad ._bfaeg =&_bcb .PdfIndirectObject {};};_bbfgf :=_egad .baseFields ().asPdfObjectDictionary ("\u0054\u0079\u0070e\u0030");_egad ._bfaeg .PdfObject =_bbfgf ;if _egad .Encoding !=nil {_bbfgf .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_egad .Encoding );}else if _egad ._cfaee !=nil {_bbfgf .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_egad ._cfaee .ToPdfObject ());};if _egad .DescendantFont !=nil {_bbfgf .Set ("\u0044e\u0073c\u0065\u006e\u0064\u0061\u006e\u0074\u0046\u006f\u006e\u0074\u0073",_bcb .MakeArray (_egad .DescendantFont .ToPdfObject ()));};return _egad ._bfaeg ;};
// HasExtGState checks if ExtGState name is available.
func (_agggea *PdfPage )HasExtGState (name _bcb .PdfObjectName )bool {if _agggea .Resources ==nil {return false ;};if _agggea .Resources .ExtGState ==nil {return false ;};_caegf ,_gdgag :=_bcb .TraceToDirectObject (_agggea .Resources .ExtGState ).(*_bcb .PdfObjectDictionary );if !_gdgag {_cga .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",_bcb .TraceToDirectObject (_agggea .Resources .ExtGState ));return false ;};_ebge :=_caegf .Get (name );_bbgab :=_ebge !=nil ;return _bbgab ;};
// FullName returns the full name of the field as in rootname.parentname.partialname.
func (_gaea *PdfField )FullName ()(string ,error ){var _gcce _ede .Buffer ;_dage :=[]string {};if _gaea .T !=nil {_dage =append (_dage ,_gaea .T .Decoded ());};_edaf :=map[*PdfField ]bool {};_edaf [_gaea ]=true ;_eabac :=_gaea .Parent ;for _eabac !=nil {if _ ,_bbdd :=_edaf [_eabac ];_bbdd {return _gcce .String (),_ae .New ("\u0072\u0065\u0063\u0075rs\u0069\u0076\u0065\u0020\u0074\u0072\u0061\u0076\u0065\u0072\u0073\u0061\u006c");};if _eabac .T ==nil {return _gcce .String (),_ae .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");};_dage =append (_dage ,_eabac .T .Decoded ());_edaf [_eabac ]=true ;_eabac =_eabac .Parent ;};for _cbcdd :=len (_dage )-1;_cbcdd >=0;_cbcdd --{_gcce .WriteString (_dage [_cbcdd ]);if _cbcdd > 0{_gcce .WriteString ("\u002e");};};return _gcce .String (),nil ;};
// NewPdfFilespec returns an initialized generic PDF filespec model.
func NewPdfFilespec ()*PdfFilespec {_debgb :=&PdfFilespec {};_debgb ._dcgf =_bcb .MakeIndirectObject (_bcb .MakeDict ());return _debgb ;};
// 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 (_ffcb *PdfColorspaceCalRGB )ColorFromPdfObjects (objects []_bcb .PdfObject )(PdfColor ,error ){if len (objects )!=3{return nil ,_ae .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_afbg ,_aedg :=_bcb .GetNumbersAsFloat (objects );if _aedg !=nil {return nil ,_aedg ;};return _ffcb .ColorFromFloats (_afbg );};
// NewPdfColorCalRGB returns a new CalRBG color.
func NewPdfColorCalRGB (a ,b ,c float64 )*PdfColorCalRGB {_afcf :=PdfColorCalRGB {a ,b ,c };return &_afcf ;};func (_cbgdb *PdfColorspaceDeviceCMYK )String ()string {return "\u0044\u0065\u0076\u0069\u0063\u0065\u0043\u004d\u0059\u004b";};
// SetOCProperties sets the optional content properties.
func (_aeddg *PdfWriter )SetOCProperties (ocProperties _bcb .PdfObject )error {_dadbag :=_aeddg ._ggfec ;if ocProperties !=nil {_cga .Log .Trace ("\u0053e\u0074\u0074\u0069\u006e\u0067\u0020\u004f\u0043\u0020\u0050\u0072o\u0070\u0065\u0072\u0074\u0069\u0065\u0073\u002e\u002e\u002e");_dadbag .Set ("\u004f\u0043\u0050r\u006f\u0070\u0065\u0072\u0074\u0069\u0065\u0073",ocProperties );return _aeddg .addObjects (ocProperties );};return nil ;};
// NewPdfColorDeviceGray returns a new grayscale color based on an input grayscale float value in range [0-1].
func NewPdfColorDeviceGray (grayVal float64 )*PdfColorDeviceGray {_efba :=PdfColorDeviceGray (grayVal );return &_efba ;};
// NewPdfActionRendition returns a new "rendition" action.
func NewPdfActionRendition ()*PdfActionRendition {_dcg :=NewPdfAction ();_af :=&PdfActionRendition {};_af .PdfAction =_dcg ;_dcg .SetContext (_af );return _af ;};const (BorderEffectNoEffect BorderEffect =iota ;BorderEffectCloudy BorderEffect =iota ;);
// GetNumComponents returns the number of color components (3 for CalRGB).
func (_aggg *PdfColorCalRGB )GetNumComponents ()int {return 3};
// GetPdfName returns the PDF name used to indicate the border style.
// (Table 166 p. 395).
func (_gcda *BorderStyle )GetPdfName ()string {switch *_gcda {case BorderStyleSolid :return "\u0053";case BorderStyleDashed :return "\u0044";case BorderStyleBeveled :return "\u0042";case BorderStyleInset :return "\u0049";case BorderStyleUnderline :return "\u0055";};return "";};
// Evaluate runs the function on the passed in slice and returns the results.
func (_egec *PdfFunctionType2 )Evaluate (x []float64 )([]float64 ,error ){if len (x )!=1{_cga .Log .Error ("\u004f\u006e\u006c\u0079 o\u006e\u0065\u0020\u0069\u006e\u0070\u0075\u0074\u0020\u0061\u006c\u006c\u006f\u0077e\u0064");return nil ,_ae .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_gdacad :=[]float64 {0.0};if _egec .C0 !=nil {_gdacad =_egec .C0 ;};_fbcec :=[]float64 {1.0};if _egec .C1 !=nil {_fbcec =_egec .C1 ;};var _dgbcf []float64 ;for _eddbb :=0;_eddbb < len (_gdacad );_eddbb ++{_cbcef :=_gdacad [_eddbb ]+_edb .Pow (x [0],_egec .N )*(_fbcec [_eddbb ]-_gdacad [_eddbb ]);_dgbcf =append (_dgbcf ,_cbcef );};return _dgbcf ,nil ;};
// GetNumComponents returns the number of color components of the colorspace device.
// Returns 3 for an RGB device.
func (_acad *PdfColorspaceDeviceRGB )GetNumComponents ()int {return 3};
// MergePageWith appends page content to source Pdf file page content.
func (_gcebe *PdfAppender )MergePageWith (pageNum int ,page *PdfPage )error {_gddb :=pageNum -1;var _adcd *PdfPage ;for _dcbc ,_cadc :=range _gcebe ._cgcg {if _dcbc ==_gddb {_adcd =_cadc ;};};if _adcd ==nil {return _e .Errorf ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0050\u0061\u0067\u0065\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061r\u0079\u0020\u0025\u0064\u0020\u006e\u006f\u0074\u0020f\u006f\u0075\u006e\u0064\u0020\u0069\u006e\u0020\u0074\u0068\u0065\u0020\u0073o\u0075\u0072\u0063\u0065\u0020\u0064o\u0063\u0075\u006de\u006e\u0074",pageNum );};if _adcd ._cfabg !=nil &&_adcd ._cfabg .GetParser ()==_gcebe ._adcc ._ecage {_adcd =_adcd .Duplicate ();_gcebe ._cgcg [_gddb ]=_adcd ;};page =page .Duplicate ();_bdba (page );_dafa :=_dbe (_adcd );_baafg :=_dbe (page );_bcad :=make (map[_bcb .PdfObjectName ]_bcb .PdfObjectName );for _bgaa :=range _baafg {if _ ,_gcdad :=_dafa [_bgaa ];_gcdad {for _aada :=1;true ;_aada ++{_bdag :=_bcb .PdfObjectName (string (_bgaa )+_ea .Itoa (_aada ));if _ ,_bgdf :=_dafa [_bdag ];!_bgdf {_bcad [_bgaa ]=_bdag ;break ;};};};};_cabd ,_bad :=page .GetContentStreams ();if _bad !=nil {return _bad ;};_afaa ,_bad :=_adcd .GetContentStreams ();if _bad !=nil {return _bad ;};for _dabdc ,_abga :=range _cabd {for _cbc ,_ffec :=range _bcad {_abga =_gc .Replace (_abga ,"\u002f"+string (_cbc ),"\u002f"+string (_ffec ),-1);};_cabd [_dabdc ]=_abga ;};_afaa =append (_afaa ,_cabd ...);if _ddef :=_adcd .SetContentStreams (_afaa ,_bcb .NewFlateEncoder ());_ddef !=nil {return _ddef ;};_adcd ._adgce =append (_adcd ._adgce ,page ._adgce ...);if _adcd .Resources ==nil {_adcd .Resources =NewPdfPageResources ();};if page .Resources !=nil {_adcd .Resources .Font =_gcebe .mergeResources (_adcd .Resources .Font ,page .Resources .Font ,_bcad );_adcd .Resources .XObject =_gcebe .mergeResources (_adcd .Resources .XObject ,page .Resources .XObject ,_bcad );_adcd .Resources .Properties =_gcebe .mergeResources (_adcd .Resources .Properties ,page .Resources .Properties ,_bcad );if _adcd .Resources .ProcSet ==nil {_adcd .Resources .ProcSet =page .Resources .ProcSet ;};_adcd .Resources .Shading =_gcebe .mergeResources (_adcd .Resources .Shading ,page .Resources .Shading ,_bcad );_adcd .Resources .ExtGState =_gcebe .mergeResources (_adcd .Resources .ExtGState ,page .Resources .ExtGState ,_bcad );};_bcbd ,_bad :=_adcd .GetMediaBox ();if _bad !=nil {return _bad ;};_fac ,_bad :=page .GetMediaBox ();if _bad !=nil {return _bad ;};var _cbca bool ;if _bcbd .Llx > _fac .Llx {_bcbd .Llx =_fac .Llx ;_cbca =true ;};if _bcbd .Lly > _fac .Lly {_bcbd .Lly =_fac .Lly ;_cbca =true ;};if _bcbd .Urx < _fac .Urx {_bcbd .Urx =_fac .Urx ;_cbca =true ;};if _bcbd .Ury < _fac .Ury {_bcbd .Ury =_fac .Ury ;_cbca =true ;};if _cbca {_adcd .MediaBox =_bcbd ;};return nil ;};
// GetBorderWidth returns the border style's width.
func (_fda *PdfBorderStyle )GetBorderWidth ()float64 {if _fda .W ==nil {return 1;};return *_fda .W ;};
// PdfRectangle is a definition of a rectangle.
type PdfRectangle struct{Llx float64 ;Lly float64 ;Urx float64 ;Ury float64 ;};type fontCommon struct{_daeb string ;_abgg string ;_gbfc string ;_ebfc _bcb .PdfObject ;_ecbe *_dc .CMap ;_ecaed *PdfFontDescriptor ;_dgbe int64 ;};
// ToPdfObject returns the choice field dictionary within an indirect object (container).
func (_bacfg *PdfFieldChoice )ToPdfObject ()_bcb .PdfObject {_bacfg .PdfField .ToPdfObject ();_ced :=_bacfg ._gggf ;_cdfc :=_ced .PdfObject .(*_bcb .PdfObjectDictionary );_cdfc .Set ("\u0046\u0054",_bcb .MakeName ("\u0043\u0068"));if _bacfg .Opt !=nil {_cdfc .Set ("\u004f\u0070\u0074",_bacfg .Opt );};if _bacfg .TI !=nil {_cdfc .Set ("\u0054\u0049",_bacfg .TI );};if _bacfg .I !=nil {_cdfc .Set ("\u0049",_bacfg .I );};return _ced ;};
// PdfAnnotationMarkup represents additional fields for mark-up annotations.
// (Section 12.5.6.2 p. 399).
type PdfAnnotationMarkup struct{T _bcb .PdfObject ;Popup *PdfAnnotationPopup ;CA _bcb .PdfObject ;RC _bcb .PdfObject ;CreationDate _bcb .PdfObject ;IRT _bcb .PdfObject ;Subj _bcb .PdfObject ;RT _bcb .PdfObject ;IT _bcb .PdfObject ;ExData _bcb .PdfObject ;};func (_bcaa *PdfReader )newPdfAnnotationSquareFromDict (_bdec *_bcb .PdfObjectDictionary )(*PdfAnnotationSquare ,error ){_dbbg :=PdfAnnotationSquare {};_dfba ,_gff :=_bcaa .newPdfAnnotationMarkupFromDict (_bdec );if _gff !=nil {return nil ,_gff ;};_dbbg .PdfAnnotationMarkup =_dfba ;_dbbg .BS =_bdec .Get ("\u0042\u0053");_dbbg .IC =_bdec .Get ("\u0049\u0043");_dbbg .BE =_bdec .Get ("\u0042\u0045");_dbbg .RD =_bdec .Get ("\u0052\u0044");return &_dbbg ,nil ;};
// PdfFieldChoice represents a choice field which includes scrollable list boxes and combo boxes.
type PdfFieldChoice struct{*PdfField ;Opt *_bcb .PdfObjectArray ;TI *_bcb .PdfObjectInteger ;I *_bcb .PdfObjectArray ;};func (_cefaf SignatureValidationResult )String ()string {var _dbbfb _ede .Buffer ;_dbbfb .WriteString (_e .Sprintf ("\u004ea\u006d\u0065\u003a\u0020\u0025\u0073\n",_cefaf .Name ));if _cefaf .Date ._ffcaf > 0{_dbbfb .WriteString (_e .Sprintf ("\u0044a\u0074\u0065\u003a\u0020\u0025\u0073\n",_cefaf .Date .ToGoTime ().String ()));}else {_dbbfb .WriteString ("\u0044\u0061\u0074\u0065 n\u006f\u0074\u0020\u0073\u0070\u0065\u0063\u0069\u0066\u0069\u0065\u0064\u000a");};if len (_cefaf .Reason )> 0{_dbbfb .WriteString (_e .Sprintf ("R\u0065\u0061\u0073\u006f\u006e\u003a\u0020\u0025\u0073\u000a",_cefaf .Reason ));}else {_dbbfb .WriteString ("N\u006f \u0072\u0065\u0061\u0073\u006f\u006e\u0020\u0073p\u0065\u0063\u0069\u0066ie\u0064\u000a");};if len (_cefaf .Location )> 0{_dbbfb .WriteString (_e .Sprintf ("\u004c\u006f\u0063\u0061\u0074\u0069\u006f\u006e\u003a\u0020\u0025\u0073\u000a",_cefaf .Location ));}else {_dbbfb .WriteString ("\u004c\u006f\u0063at\u0069\u006f\u006e\u0020\u006e\u006f\u0074\u0020\u0073\u0070\u0065\u0063\u0069\u0066\u0069\u0065\u0064\u000a");};if len (_cefaf .ContactInfo )> 0{_dbbfb .WriteString (_e .Sprintf ("\u0043\u006f\u006e\u0074\u0061\u0063\u0074\u0020\u0049\u006e\u0066\u006f:\u0020\u0025\u0073\u000a",_cefaf .ContactInfo ));}else {_dbbfb .WriteString ("C\u006f\u006e\u0074\u0061\u0063\u0074 \u0069\u006e\u0066\u006f\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063i\u0066i\u0065\u0064\u000a");};_dbbfb .WriteString (_e .Sprintf ("F\u0069\u0065\u006c\u0064\u0073\u003a\u0020\u0025\u0064\u000a",len (_cefaf .Fields )));if _cefaf .IsSigned {_dbbfb .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 {_dbbfb .WriteString ("\u0053\u0069\u0067\u006eed\u003a\u0020\u004e\u006f\u0074\u0020\u0073\u0069\u0067\u006e\u0065\u0064\u000a");};if _cefaf .IsVerified {_dbbfb .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 {_dbbfb .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 _cefaf .IsTrusted {_dbbfb .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 {_dbbfb .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 !_cefaf .GeneralizedTime .IsZero (){_dbbfb .WriteString (_e .Sprintf ("G\u0065n\u0065\u0072\u0061\u006c\u0069\u007a\u0065\u0064T\u0069\u006d\u0065\u003a %\u0073\u000a",_cefaf .GeneralizedTime .String ()));};return _dbbfb .String ();};
// String returns a string that describes `base`.
func (_agfgd fontCommon )String ()string {return _e .Sprintf ("\u0046\u004f\u004e\u0054\u007b\u0025\u0073\u007d",_agfgd .coreString ());};
// DecodeArray returns the component range values for the DeviceN colorspace.
// [0 1.0 0 1.0 ...] for each color component.
func (_eeab *PdfColorspaceDeviceN )DecodeArray ()[]float64 {var _beda []float64 ;for _dbdbe :=0;_dbdbe < _eeab .GetNumComponents ();_dbdbe ++{_beda =append (_beda ,0.0,1.0);};return _beda ;};
// 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 (_abbb *PdfFont )GetRuneMetrics (r rune )(CharMetrics ,bool ){_ccca :=_abbb .actualFont ();if _ccca ==nil {_cga .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",_abbb ._fgge );return _acc .CharMetrics {},false ;};if _aabf ,_dfgb :=_ccca .GetRuneMetrics (r );_dfgb {return _aabf ,true ;};if _feccf ,_dbce :=_abbb .GetFontDescriptor ();_dbce ==nil &&_feccf !=nil {return _acc .CharMetrics {Wx :_feccf ._adfb },true ;};_cga .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",_abbb );return _acc .CharMetrics {},false ;};const (ButtonTypeCheckbox ButtonType =iota ;ButtonTypePush ButtonType =iota ;ButtonTypeRadio ButtonType =iota ;);
// NewPdfColorspaceCalGray returns a new CalGray colorspace object.
func NewPdfColorspaceCalGray ()*PdfColorspaceCalGray {_defgc :=&PdfColorspaceCalGray {};_defgc .BlackPoint =[]float64 {0.0,0.0,0.0};_defgc .Gamma =1;return _defgc ;};func (_cag *PdfReader )newPdfActionGotoFromDict (_aba *_bcb .PdfObjectDictionary )(*PdfActionGoTo ,error ){return &PdfActionGoTo {D :_aba .Get ("\u0044")},nil ;};func (_bgab *PdfPage )setContainer (_bgaab *_bcb .PdfIndirectObject ){_bgaab .PdfObject =_bgab ._fagg ;_bgab ._cfabg =_bgaab ;};
// 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 (_cfcfd *PdfFont )GetCharMetrics (code _ddd .CharCode )(CharMetrics ,bool ){var _gabbd _acc .CharMetrics ;switch _eadc :=_cfcfd ._fgge .(type ){case *pdfFontSimple :if _dbaca ,_cacff :=_eadc .GetCharMetrics (code );_cacff {return _dbaca ,_cacff ;};case *pdfFontType0 :if _dedff ,_ecag :=_eadc .GetCharMetrics (code );_ecag {return _dedff ,_ecag ;};case *pdfCIDFontType0 :if _ebcaa ,_gggb :=_eadc .GetCharMetrics (code );_gggb {return _ebcaa ,_gggb ;};case *pdfCIDFontType2 :if _begf ,_gaddc :=_eadc .GetCharMetrics (code );_gaddc {return _begf ,_gaddc ;};default:_cga .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",_cfcfd ._fgge );return _gabbd ,false ;};if _ccdff ,_beagf :=_cfcfd .GetFontDescriptor ();_beagf ==nil &&_ccdff !=nil {return _acc .CharMetrics {Wx :_ccdff ._adfb },true ;};_cga .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",_cfcfd );return _gabbd ,false ;};
// ToPdfObject implements interface PdfModel.
func (_dfae *PdfAnnotationScreen )ToPdfObject ()_bcb .PdfObject {_dfae .PdfAnnotation .ToPdfObject ();_bfgc :=_dfae ._daa ;_cfada :=_bfgc .PdfObject .(*_bcb .PdfObjectDictionary );_cfada .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_bcb .MakeName ("\u0053\u0063\u0072\u0065\u0065\u006e"));_cfada .SetIfNotNil ("\u0054",_dfae .T );_cfada .SetIfNotNil ("\u004d\u004b",_dfae .MK );_cfada .SetIfNotNil ("\u0041",_dfae .A );_cfada .SetIfNotNil ("\u0041\u0041",_dfae .AA );return _bfgc ;};
// GetCharMetrics returns the char metrics for character code `code`.
func (_dgage pdfCIDFontType0 )GetCharMetrics (code _ddd .CharCode )(_acc .CharMetrics ,bool ){_cgfeg :=_dgage ._becg ;if _aeaf ,_cgfae :=_dgage ._gdbd [code ];_cgfae {_cgfeg =_aeaf ;};return _acc .CharMetrics {Wx :_cgfeg },true ;};
// NewPdfColorspaceDeviceN returns an initialized PdfColorspaceDeviceN.
func NewPdfColorspaceDeviceN ()*PdfColorspaceDeviceN {_afacg :=&PdfColorspaceDeviceN {};return _afacg ;};
// 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 (_cbgdc *PdfColorspaceCalGray )ColorFromPdfObjects (objects []_bcb .PdfObject )(PdfColor ,error ){if len (objects )!=1{return nil ,_ae .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_dfcc ,_eecg :=_bcb .GetNumbersAsFloat (objects );if _eecg !=nil {return nil ,_eecg ;};return _cbgdc .ColorFromFloats (_dfcc );};
// GetAsTilingPattern returns a tiling pattern. Check with IsTiling() prior to using this.
func (_cbcf *PdfPattern )GetAsTilingPattern ()*PdfTilingPattern {return _cbcf ._adccc .(*PdfTilingPattern );};func (_egf *PdfReader )newPdfAnnotationPrinterMarkFromDict (_ddfb *_bcb .PdfObjectDictionary )(*PdfAnnotationPrinterMark ,error ){_gbce :=PdfAnnotationPrinterMark {};_gbce .MN =_ddfb .Get ("\u004d\u004e");return &_gbce ,nil ;};
// GetAnnotations returns the list of page annotations for `page`. If not loaded attempts to load the
// annotations, otherwise returns the loaded list.
func (_cgdcd *PdfPage )GetAnnotations ()([]*PdfAnnotation ,error ){if _cgdcd ._adgce !=nil {return _cgdcd ._adgce ,nil ;};if _cgdcd .Annots ==nil {_cgdcd ._adgce =[]*PdfAnnotation {};return nil ,nil ;};if _cgdcd ._eeeba ==nil {_cgdcd ._adgce =[]*PdfAnnotation {};return nil ,nil ;};_ccgc ,_edfge :=_cgdcd ._eeeba .loadAnnotations (_cgdcd .Annots );if _edfge !=nil {return nil ,_edfge ;};if _ccgc ==nil {_cgdcd ._adgce =[]*PdfAnnotation {};};_cgdcd ._adgce =_ccgc ;return _cgdcd ._adgce ,nil ;};
// ColorToRGB converts a CalRGB color to an RGB color.
func (_fbce *PdfColorspaceCalRGB )ColorToRGB (color PdfColor )(PdfColor ,error ){_ccccd ,_gdef :=color .(*PdfColorCalRGB );if !_gdef {_cga .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 ,_ae .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_dcefe :=_ccccd .A ();_cgeag :=_ccccd .B ();_gaca :=_ccccd .C ();X :=_fbce .Matrix [0]*_edb .Pow (_dcefe ,_fbce .Gamma [0])+_fbce .Matrix [3]*_edb .Pow (_cgeag ,_fbce .Gamma [1])+_fbce .Matrix [6]*_edb .Pow (_gaca ,_fbce .Gamma [2]);Y :=_fbce .Matrix [1]*_edb .Pow (_dcefe ,_fbce .Gamma [0])+_fbce .Matrix [4]*_edb .Pow (_cgeag ,_fbce .Gamma [1])+_fbce .Matrix [7]*_edb .Pow (_gaca ,_fbce .Gamma [2]);Z :=_fbce .Matrix [2]*_edb .Pow (_dcefe ,_fbce .Gamma [0])+_fbce .Matrix [5]*_edb .Pow (_cgeag ,_fbce .Gamma [1])+_fbce .Matrix [8]*_edb .Pow (_gaca ,_fbce .Gamma [2]);_cbff :=3.240479*X +-1.537150*Y +-0.498535*Z ;_fegf :=-0.969256*X +1.875992*Y +0.041556*Z ;_cabg :=0.055648*X +-0.204043*Y +1.057311*Z ;_cbff =_edb .Min (_edb .Max (_cbff ,0),1.0);_fegf =_edb .Min (_edb .Max (_fegf ,0),1.0);_cabg =_edb .Min (_edb .Max (_cabg ,0),1.0);return NewPdfColorDeviceRGB (_cbff ,_fegf ,_cabg ),nil ;};func (_efbc *PdfReader )newPdfAnnotationCaretFromDict (_bdc *_bcb .PdfObjectDictionary )(*PdfAnnotationCaret ,error ){_deaf :=PdfAnnotationCaret {};_adg ,_bec :=_efbc .newPdfAnnotationMarkupFromDict (_bdc );if _bec !=nil {return nil ,_bec ;};_deaf .PdfAnnotationMarkup =_adg ;_deaf .RD =_bdc .Get ("\u0052\u0044");_deaf .Sy =_bdc .Get ("\u0053\u0079");return &_deaf ,nil ;};
// NewOutline returns a new outline instance.
func NewOutline ()*Outline {return &Outline {}};
// ToPdfObject converts the pdfFontSimple to its PDF representation for outputting.
func (_egded *pdfFontSimple )ToPdfObject ()_bcb .PdfObject {if _egded ._cdadc ==nil {_egded ._cdadc =&_bcb .PdfIndirectObject {};};_beed :=_egded .baseFields ().asPdfObjectDictionary ("");_egded ._cdadc .PdfObject =_beed ;if _egded .FirstChar !=nil {_beed .Set ("\u0046i\u0072\u0073\u0074\u0043\u0068\u0061r",_egded .FirstChar );};if _egded .LastChar !=nil {_beed .Set ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072",_egded .LastChar );};if _egded .Widths !=nil {_beed .Set ("\u0057\u0069\u0064\u0074\u0068\u0073",_egded .Widths );};if _egded .Encoding !=nil {_beed .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_egded .Encoding );}else if _egded ._fdebc !=nil {_adcee :=_egded ._fdebc .ToPdfObject ();if _adcee !=nil {_beed .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_adcee );};};return _egded ._cdadc ;};
// NewPdfColorLab returns a new Lab color.
func NewPdfColorLab (l ,a ,b float64 )*PdfColorLab {_cdgc :=PdfColorLab {l ,a ,b };return &_cdgc };
// HasXObjectByName checks if an XObject with a specified keyName is defined.
func (_cgfdc *PdfPageResources )HasXObjectByName (keyName _bcb .PdfObjectName )bool {_fagb ,_ :=_cgfdc .GetXObjectByName (keyName );return _fagb !=nil ;};
// 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 ;_adccc PdfModel ;_becda _bcb .PdfObject ;};func (_aggge *LTV )getOCSPs (_acaeb []*_ffg .Certificate ,_adff map[string ]*_ffg .Certificate )([][]byte ,error ){_cgffg :=make ([][]byte ,0,len (_acaeb ));for _ ,_bggd :=range _acaeb {for _ ,_dcbf :=range _bggd .OCSPServer {if _aggge .CertClient .IsCA (_bggd ){continue ;};_gebge ,_gbefd :=_adff [_bggd .Issuer .CommonName ];if !_gbefd {_cga .Log .Debug ("\u0057\u0041\u0052\u004e:\u0020\u0053\u006b\u0069\u0070\u0070\u0069\u006e\u0067 \u004f\u0043\u0053\u0050\u0020\u0072\u0065\u0071\u0075\u0065\u0073\u0074\u003a\u0020\u0069\u0073\u0073\u0075e\u0072\u0020\u0063\u0065\u0072t\u0069\u0066\u0069\u0063\u0061\u0074\u0065\u0020\u006e\u006f\u0074\u0020\u0066\u006f\u0075\u006e\u0064");continue ;};_ ,_aacbd ,_cefaa :=_aggge .OCSPClient .MakeRequest (_dcbf ,_bggd ,_gebge );if _cefaa !=nil {_cga .Log .Debug ("\u0057\u0041\u0052\u004e:\u0020\u004f\u0043\u0053\u0050\u0020\u0072\u0065\u0071\u0075e\u0073t\u0020\u0065\u0072\u0072\u006f\u0072\u003a \u0025\u0076",_cefaa );continue ;};_cgffg =append (_cgffg ,_aacbd );};};return _cgffg ,nil ;};
// NewLTV returns a new LTV client.
func NewLTV (appender *PdfAppender )(*LTV ,error ){_addb :=appender .Reader .DSS ;if _addb ==nil {_addb =NewDSS ();};if _aegbe :=_addb .generateHashMaps ();_aegbe !=nil {return nil ,_aegbe ;};return &LTV {CertClient :_ddg .NewCertClient (),OCSPClient :_ddg .NewOCSPClient (),CRLClient :_ddg .NewCRLClient (),SkipExisting :true ,_dfegg :appender ,_gddf :_addb },nil ;};func (_dacc *PdfColorspaceLab )String ()string {return "\u004c\u0061\u0062"};
// NewPdfAnnotationProjection returns a new projection annotation.
func NewPdfAnnotationProjection ()*PdfAnnotationProjection {_ccc :=NewPdfAnnotation ();_baf :=&PdfAnnotationProjection {};_baf .PdfAnnotation =_ccc ;_baf .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_ccc .SetContext (_baf );return _baf ;};func _ebeed (_cfege []byte )([]byte ,error ){_babfg :=_gb .New ();if _ ,_agab :=_fb .Copy (_babfg ,_ede .NewReader (_cfege ));_agab !=nil {return nil ,_agab ;};return _babfg .Sum (nil ),nil ;};
// ToPdfObject implements interface PdfModel.
func (_ge *PdfAction )ToPdfObject ()_bcb .PdfObject {_fcb :=_ge ._dce ;_gea :=_fcb .PdfObject .(*_bcb .PdfObjectDictionary );_gea .Clear ();_gea .Set ("\u0054\u0079\u0070\u0065",_bcb .MakeName ("\u0041\u0063\u0074\u0069\u006f\u006e"));_gea .SetIfNotNil ("\u0053",_ge .S );_gea .SetIfNotNil ("\u004e\u0065\u0078\u0074",_ge .Next );return _fcb ;};
// AddImageResource adds an image to the XObject resources.
func (_ccgb *PdfPage )AddImageResource (name _bcb .PdfObjectName ,ximg *XObjectImage )error {var _cbaa *_bcb .PdfObjectDictionary ;if _ccgb .Resources .XObject ==nil {_cbaa =_bcb .MakeDict ();_ccgb .Resources .XObject =_cbaa ;}else {var _gbacc bool ;_cbaa ,_gbacc =(_ccgb .Resources .XObject ).(*_bcb .PdfObjectDictionary );if !_gbacc {return _ae .New ("\u0069\u006e\u0076\u0061li\u0064\u0020\u0078\u0072\u0065\u0073\u0020\u0064\u0069\u0063\u0074\u0020\u0074\u0079p\u0065");};};_cbaa .Set (name ,ximg .ToPdfObject ());return nil ;};
// IsRadio returns true if the button field represents a radio button, false otherwise.
func (_aeade *PdfFieldButton )IsRadio ()bool {return _aeade .GetType ()==ButtonTypeRadio };
// GetContainingPdfObject returns the XObject Form's containing object (indirect object).
func (_aaace *XObjectForm )GetContainingPdfObject ()_bcb .PdfObject {return _aaace ._egcgbg };func _bcfbf ()string {return _cga .Version };type crossReference struct{Type int ;
// Type 1
Offset int64 ;Generation int64 ;
// Type 2
ObjectNumber int ;Index int ;};
// PdfActionMovie represents a movie action.
type PdfActionMovie struct{*PdfAction ;Annotation _bcb .PdfObject ;T _bcb .PdfObject ;Operation _bcb .PdfObject ;};
// GetOptimizer returns current PDF optimizer.
func (_ggadee *PdfWriter )GetOptimizer ()Optimizer {return _ggadee ._bgefd };
// R returns the value of the red component of the color.
func (_bedg *PdfColorDeviceRGB )R ()float64 {return _bedg [0]};
// PdfColor interface represents a generic color in PDF.
type PdfColor interface{};
// NewPdfAnnotationTrapNet returns a new trapnet annotation.
func NewPdfAnnotationTrapNet ()*PdfAnnotationTrapNet {_bcbg :=NewPdfAnnotation ();_edac :=&PdfAnnotationTrapNet {};_edac .PdfAnnotation =_bcbg ;_bcbg .SetContext (_edac );return _edac ;};
// 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 (_eebbe *PdfPageResources )GetFontByName (keyName _bcb .PdfObjectName )(_bcb .PdfObject ,bool ){if _eebbe .Font ==nil {return nil ,false ;};_dceef ,_efbf :=_bcb .TraceToDirectObject (_eebbe .Font ).(*_bcb .PdfObjectDictionary );if !_efbf {_cga .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",_bcb .TraceToDirectObject (_eebbe .Font ));return nil ,false ;};if _dgaee :=_dceef .Get (keyName );_dgaee !=nil {return _dgaee ,true ;};return nil ,false ;};
// ToPdfObject returns the PDF representation of the tiling pattern.
func (_bebc *PdfTilingPattern )ToPdfObject ()_bcb .PdfObject {_bebc .PdfPattern .ToPdfObject ();_daef :=_bebc .getDict ();if _bebc .PaintType !=nil {_daef .Set ("\u0050a\u0069\u006e\u0074\u0054\u0079\u0070e",_bebc .PaintType );};if _bebc .TilingType !=nil {_daef .Set ("\u0054\u0069\u006c\u0069\u006e\u0067\u0054\u0079\u0070\u0065",_bebc .TilingType );};if _bebc .BBox !=nil {_daef .Set ("\u0042\u0042\u006f\u0078",_bebc .BBox .ToPdfObject ());};if _bebc .XStep !=nil {_daef .Set ("\u0058\u0053\u0074e\u0070",_bebc .XStep );};if _bebc .YStep !=nil {_daef .Set ("\u0059\u0053\u0074e\u0070",_bebc .YStep );};if _bebc .Resources !=nil {_daef .Set ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s",_bebc .Resources .ToPdfObject ());};if _bebc .Matrix !=nil {_daef .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_bebc .Matrix );};return _bebc ._becda ;};
// NewPdfColorspaceDeviceRGB returns a new RGB colorspace object.
func NewPdfColorspaceDeviceRGB ()*PdfColorspaceDeviceRGB {return &PdfColorspaceDeviceRGB {}};
// PdfAnnotationLink represents Link annotations.
// (Section 12.5.6.5 p. 403).
type PdfAnnotationLink struct{*PdfAnnotation ;A _bcb .PdfObject ;Dest _bcb .PdfObject ;H _bcb .PdfObject ;PA _bcb .PdfObject ;QuadPoints _bcb .PdfObject ;BS _bcb .PdfObject ;_bda *PdfAction ;_gca *PdfReader ;};
// GetPageLabels returns the PageLabels entry in the PDF catalog.
// See section 12.4.2 "Page Labels" (p. 382 PDF32000_2008).
func (_daagd *PdfReader )GetPageLabels ()(_bcb .PdfObject ,error ){_eabdbc :=_bcb .ResolveReference (_daagd ._fccd .Get ("\u0050\u0061\u0067\u0065\u004c\u0061\u0062\u0065\u006c\u0073"));if _eabdbc ==nil {return nil ,nil ;};if !_daagd ._abdcg {_eaad :=_daagd .traverseObjectData (_eabdbc );if _eaad !=nil {return nil ,_eaad ;};};return _eabdbc ,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 (_gggea *PdfReader )Inspect ()(map[string ]int ,error ){return _gggea ._ecage .Inspect ()};
// ToPdfObject implements interface PdfModel.
func (_ead *PdfActionImportData )ToPdfObject ()_bcb .PdfObject {_ead .PdfAction .ToPdfObject ();_de :=_ead ._dce ;_fba :=_de .PdfObject .(*_bcb .PdfObjectDictionary );_fba .SetIfNotNil ("\u0053",_bcb .MakeName (string (ActionTypeImportData )));if _ead .F !=nil {_fba .Set ("\u0046",_ead .F .ToPdfObject ());};return _de ;};
// 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{_fegde PdfModel ;_gggf *_bcb .PdfIndirectObject ;Parent *PdfField ;Annotations []*PdfAnnotationWidget ;Kids []*PdfField ;FT *_bcb .PdfObjectName ;T *_bcb .PdfObjectString ;TU *_bcb .PdfObjectString ;TM *_bcb .PdfObjectString ;Ff *_bcb .PdfObjectInteger ;V _bcb .PdfObject ;DV _bcb .PdfObject ;AA _bcb .PdfObject ;};
// PdfShadingType1 is a Function-based shading.
type PdfShadingType1 struct{*PdfShading ;Domain *_bcb .PdfObjectArray ;Matrix *_bcb .PdfObjectArray ;Function []PdfFunction ;};
// SetAnnotations sets the annotations list.
func (_dacecg *PdfPage )SetAnnotations (annotations []*PdfAnnotation ){_dacecg ._adgce =annotations };func _fdcgg ()_d .Time {_dgagfb .Lock ();defer _dgagfb .Unlock ();return _egegc };
// PdfAnnotationFileAttachment represents FileAttachment annotations.
// (Section 12.5.6.15).
type PdfAnnotationFileAttachment struct{*PdfAnnotation ;*PdfAnnotationMarkup ;FS _bcb .PdfObject ;Name _bcb .PdfObject ;};
// PdfDate represents a date, which is a PDF string of the form:
// (D:YYYYMMDDHHmmSSOHH'mm)
type PdfDate struct{_ffcaf int64 ;_caegfa int64 ;_egaf int64 ;_dagbf int64 ;_dgdge int64 ;_adbfb int64 ;_ddadb byte ;_cdaaf int64 ;_afde int64 ;};func (_dg *PdfReader )newPdfActionNamedFromDict (_fbcg *_bcb .PdfObjectDictionary )(*PdfActionNamed ,error ){return &PdfActionNamed {N :_fbcg .Get ("\u004e")},nil ;};func (_bcea *PdfReader )newPdfAnnotationWatermarkFromDict (_adee *_bcb .PdfObjectDictionary )(*PdfAnnotationWatermark ,error ){_edbg :=PdfAnnotationWatermark {};_edbg .FixedPrint =_adee .Get ("\u0046\u0069\u0078\u0065\u0064\u0050\u0072\u0069\u006e\u0074");return &_edbg ,nil ;};func (_fgaa *LTV )buildCertChain (_dgdfb ,_ecbec []*_ffg .Certificate )([]*_ffg .Certificate ,map[string ]*_ffg .Certificate ,error ){_gbaca :=map[string ]*_ffg .Certificate {};for _ ,_geedb :=range _dgdfb {_gbaca [_geedb .Subject .CommonName ]=_geedb ;};_eedd :=_dgdfb ;for _ ,_aefa :=range _ecbec {_efacf :=_aefa .Subject .CommonName ;if _ ,_ccfeb :=_gbaca [_efacf ];_ccfeb {continue ;};_gbaca [_efacf ]=_aefa ;_eedd =append (_eedd ,_aefa );};if len (_eedd )==0{return nil ,nil ,ErrSignNoCertificates ;};var _dcbca error ;for _bbdbg :=_eedd [0];_bbdbg !=nil &&!_fgaa .CertClient .IsCA (_bbdbg );{_dbgbd ,_gdcca :=_gbaca [_bbdbg .Issuer .CommonName ];if !_gdcca {if _dbgbd ,_dcbca =_fgaa .CertClient .GetIssuer (_bbdbg );_dcbca !=nil {_cga .Log .Debug ("W\u0041\u0052\u004e\u003a\u0020\u0043\u006f\u0075\u006cd\u0020\u006e\u006f\u0074\u0020\u0072\u0065tr\u0069\u0065\u0076\u0065 \u0063\u0065\u0072\u0074\u0069\u0066\u0069\u0063\u0061te\u0020\u0069s\u0073\u0075\u0065\u0072\u003a\u0020\u0025\u0076",_dcbca );break ;};_gbaca [_bbdbg .Issuer .CommonName ]=_dbgbd ;_eedd =append (_eedd ,_dbgbd );};_bbdbg =_dbgbd ;};return _eedd ,_gbaca ,nil ;};
// Clear clears flag fl from the flag and returns the resulting flag.
func (_ggba FieldFlag )Clear (fl FieldFlag )FieldFlag {return FieldFlag (_ggba .Mask ()&^fl .Mask ())};func (_bbfd *PdfReader )newPdfAnnotationTextFromDict (_afgg *_bcb .PdfObjectDictionary )(*PdfAnnotationText ,error ){_afac :=PdfAnnotationText {};_bbd ,_dfb :=_bbfd .newPdfAnnotationMarkupFromDict (_afgg );if _dfb !=nil {return nil ,_dfb ;};_afac .PdfAnnotationMarkup =_bbd ;_afac .Open =_afgg .Get ("\u004f\u0070\u0065\u006e");_afac .Name =_afgg .Get ("\u004e\u0061\u006d\u0065");_afac .State =_afgg .Get ("\u0053\u0074\u0061t\u0065");_afac .StateModel =_afgg .Get ("\u0053\u0074\u0061\u0074\u0065\u004d\u006f\u0064\u0065\u006c");return &_afac ,nil ;};
// GetCustomInfo returns a custom info value for the specified name.
func (_dffa *PdfInfo )GetCustomInfo (name string )*_bcb .PdfObjectString {var _ffda *_bcb .PdfObjectString ;if _dffa ._affda ==nil {return _ffda ;};if _gffe ,_eafg :=_dffa ._affda .Get (*_bcb .MakeName (name )).(*_bcb .PdfObjectString );_eafg {_ffda =_gffe ;};return _ffda ;};
// PdfOutlineItem represents an outline item dictionary (Table 153 - pp. 376 - 377).
type PdfOutlineItem struct{PdfOutlineTreeNode ;Title *_bcb .PdfObjectString ;Parent *PdfOutlineTreeNode ;Prev *PdfOutlineTreeNode ;Next *PdfOutlineTreeNode ;Count *int64 ;Dest _bcb .PdfObject ;A _bcb .PdfObject ;SE _bcb .PdfObject ;C _bcb .PdfObject ;F _bcb .PdfObject ;_afff *_bcb .PdfIndirectObject ;};
// PdfAnnotation represents an annotation in PDF (section 12.5 p. 389).
type PdfAnnotation struct{_feb PdfModel ;Rect _bcb .PdfObject ;Contents _bcb .PdfObject ;P _bcb .PdfObject ;NM _bcb .PdfObject ;M _bcb .PdfObject ;F _bcb .PdfObject ;AP _bcb .PdfObject ;AS _bcb .PdfObject ;Border _bcb .PdfObject ;C _bcb .PdfObject ;StructParent _bcb .PdfObject ;OC _bcb .PdfObject ;_daa *_bcb .PdfIndirectObject ;};
// ToInteger convert to an integer format.
func (_eged *PdfColorCalGray )ToInteger (bits int )uint32 {_defd :=_edb .Pow (2,float64 (bits ))-1;return uint32 (_defd *_eged .Val ());};
// B returns the value of the blue component of the color.
func (_ddgf *PdfColorDeviceRGB )B ()float64 {return _ddgf [2]};
// ToPdfObject implements interface PdfModel.
func (_gaae *PdfAnnotationPopup )ToPdfObject ()_bcb .PdfObject {_gaae .PdfAnnotation .ToPdfObject ();_ebfe :=_gaae ._daa ;_cba :=_ebfe .PdfObject .(*_bcb .PdfObjectDictionary );_cba .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_bcb .MakeName ("\u0050\u006f\u0070u\u0070"));_cba .SetIfNotNil ("\u0050\u0061\u0072\u0065\u006e\u0074",_gaae .Parent );_cba .SetIfNotNil ("\u004f\u0070\u0065\u006e",_gaae .Open );return _ebfe ;};type pdfCIDFontType2 struct{fontCommon ;_egegg *_bcb .PdfIndirectObject ;_acgdf _ddd .TextEncoder ;
// Table 117 Entries in a CIDFont dictionary (page 269)
// Dictionary that defines the character collection of the CIDFont (required).
// See Table 116.
CIDSystemInfo *_bcb .PdfObjectDictionary ;
// Glyph metrics fields (optional).
DW _bcb .PdfObject ;W _bcb .PdfObject ;DW2 _bcb .PdfObject ;W2 _bcb .PdfObject ;
// CIDs to glyph indices mapping (optional).
CIDToGIDMap _bcb .PdfObject ;_ggfgf map[_ddd .CharCode ]float64 ;_adcad float64 ;_gggbf map[rune ]int ;};
// NewPdfAnnotationMovie returns a new movie annotation.
func NewPdfAnnotationMovie ()*PdfAnnotationMovie {_gfcg :=NewPdfAnnotation ();_ada :=&PdfAnnotationMovie {};_ada .PdfAnnotation =_gfcg ;_gfcg .SetContext (_ada );return _ada ;};func (_gaead *PdfFunctionType0 )processSamples ()error {_dccfa :=_cgb .ResampleBytes (_gaead ._cdcfa ,_gaead .BitsPerSample );_gaead ._agdbe =_dccfa ;return nil ;};
// ToPdfObject convert PdfInfo to pdf object.
func (_eege *PdfInfo )ToPdfObject ()_bcb .PdfObject {_cdedf :=_bcb .MakeDict ();_cdedf .SetIfNotNil ("\u0054\u0069\u0074l\u0065",_eege .Title );_cdedf .SetIfNotNil ("\u0041\u0075\u0074\u0068\u006f\u0072",_eege .Author );_cdedf .SetIfNotNil ("\u0053u\u0062\u006a\u0065\u0063\u0074",_eege .Subject );_cdedf .SetIfNotNil ("\u004b\u0065\u0079\u0077\u006f\u0072\u0064\u0073",_eege .Keywords );_cdedf .SetIfNotNil ("\u0043r\u0065\u0061\u0074\u006f\u0072",_eege .Creator );_cdedf .SetIfNotNil ("\u0050\u0072\u006f\u0064\u0075\u0063\u0065\u0072",_eege .Producer );_cdedf .SetIfNotNil ("\u0054r\u0061\u0070\u0070\u0065\u0064",_eege .Trapped );if _eege .CreationDate !=nil {_cdedf .SetIfNotNil ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065",_eege .CreationDate .ToPdfObject ());};if _eege .ModifiedDate !=nil {_cdedf .SetIfNotNil ("\u004do\u0064\u0044\u0061\u0074\u0065",_eege .ModifiedDate .ToPdfObject ());};for _ ,_dedb :=range _eege ._affda .Keys (){_cdedf .SetIfNotNil (_dedb ,_eege ._affda .Get (_dedb ));};return _cdedf ;};func _gdgfe (_gffg []byte )bool {if len (_gffg )< 4{return true ;};for _dbbgg :=range _gffg [:4]{_cede :=rune (_dbbgg );if !_gbb .Is (_gbb .ASCII_Hex_Digit ,_cede )&&!_gbb .IsSpace (_cede ){return true ;};};return false ;};
// AppendContentBytes creates a PDF stream from `cs` and appends it to the
// array of streams specified by the pages's Contents entry.
// If `wrapContents` is true, the content stream of the page is wrapped using
// a `q/Q` operator pair, so that its state does not affect the appended
// content stream.
func (_bcacbd *PdfPage )AppendContentBytes (cs []byte ,wrapContents bool )error {_cabb :=_bcacbd .GetContentStreamObjs ();wrapContents =wrapContents &&len (_cabb )> 0;_fegac :=_bcb .NewFlateEncoder ();_dacg :=_bcb .MakeArray ();if wrapContents {_egcgc ,_aaabd :=_bcb .MakeStream ([]byte ("\u0071\u000a"),_fegac );if _aaabd !=nil {return _aaabd ;};_dacg .Append (_egcgc );};_dacg .Append (_cabb ...);if wrapContents {_edgfd ,_gfbd :=_bcb .MakeStream ([]byte ("\u000a\u0051\u000a"),_fegac );if _gfbd !=nil {return _gfbd ;};_dacg .Append (_edgfd );};_agdcgb ,_ecdef :=_bcb .MakeStream (cs ,_fegac );if _ecdef !=nil {return _ecdef ;};_dacg .Append (_agdcgb );_bcacbd .Contents =_dacg ;return nil ;};
// L returns the value of the L component of the color.
func (_cbgg *PdfColorLab )L ()float64 {return _cbgg [0]};func _cccfe (_dgfgg _bcb .PdfObject )(*PdfColorspaceCalGray ,error ){_egc :=NewPdfColorspaceCalGray ();if _feab ,_bbdg :=_dgfgg .(*_bcb .PdfIndirectObject );_bbdg {_egc ._ecgg =_feab ;};_dgfgg =_bcb .TraceToDirectObject (_dgfgg );_fbbdf ,_dfcda :=_dgfgg .(*_bcb .PdfObjectArray );if !_dfcda {return nil ,_e .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _fbbdf .Len ()!=2{return nil ,_e .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0043\u0061\u006cG\u0072\u0061\u0079\u0020\u0063\u006f\u006c\u006f\u0072\u0073p\u0061\u0063\u0065");};_dgfgg =_bcb .TraceToDirectObject (_fbbdf .Get (0));_cded ,_dfcda :=_dgfgg .(*_bcb .PdfObjectName );if !_dfcda {return nil ,_e .Errorf ("\u0043\u0061\u006c\u0047\u0072\u0061\u0079\u0020\u006e\u0061m\u0065\u0020\u006e\u006f\u0074\u0020\u0061 \u004e\u0061\u006d\u0065\u0020\u006f\u0062\u006a\u0065\u0063\u0074");};if *_cded !="\u0043a\u006c\u0047\u0072\u0061\u0079"{return nil ,_e .Errorf ("\u006eo\u0074\u0020\u0061\u0020\u0043\u0061\u006c\u0047\u0072\u0061\u0079 \u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063\u0065");};_dgfgg =_bcb .TraceToDirectObject (_fbbdf .Get (1));_ccdda ,_dfcda :=_dgfgg .(*_bcb .PdfObjectDictionary );if !_dfcda {return nil ,_e .Errorf ("\u0043\u0061lG\u0072\u0061\u0079 \u0064\u0069\u0063\u0074 no\u0074 a\u0020\u0044\u0069\u0063\u0074\u0069\u006fna\u0072\u0079\u0020\u006f\u0062\u006a\u0065c\u0074");};_dgfgg =_ccdda .Get ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074");_dgfgg =_bcb .TraceToDirectObject (_dgfgg );_gefa ,_dfcda :=_dgfgg .(*_bcb .PdfObjectArray );if !_dfcda {return nil ,_e .Errorf ("C\u0061\u006c\u0047\u0072\u0061\u0079:\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020W\u0068\u0069\u0074e\u0050o\u0069\u006e\u0074");};if _gefa .Len ()!=3{return nil ,_e .Errorf ("\u0043\u0061\u006c\u0047\u0072\u0061y\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0057\u0068\u0069t\u0065\u0050\u006f\u0069\u006e\u0074\u0020a\u0072\u0072\u0061\u0079");};_bfgcf ,_gdbbe :=_gefa .GetAsFloat64Slice ();if _gdbbe !=nil {return nil ,_gdbbe ;};_egc .WhitePoint =_bfgcf ;_dgfgg =_ccdda .Get ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074");if _dgfgg !=nil {_dgfgg =_bcb .TraceToDirectObject (_dgfgg );_dded ,_dcee :=_dgfgg .(*_bcb .PdfObjectArray );if !_dcee {return nil ,_e .Errorf ("C\u0061\u006c\u0047\u0072\u0061\u0079:\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020B\u006c\u0061\u0063k\u0050o\u0069\u006e\u0074");};if _dded .Len ()!=3{return nil ,_e .Errorf ("\u0043\u0061\u006c\u0047\u0072\u0061y\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0042\u006c\u0061c\u006b\u0050\u006f\u0069\u006e\u0074\u0020a\u0072\u0072\u0061\u0079");};_faaa ,_aab :=_dded .GetAsFloat64Slice ();if _aab !=nil {return nil ,_aab ;};_egc .BlackPoint =_faaa ;};_dgfgg =_ccdda .Get ("\u0047\u0061\u006dm\u0061");if _dgfgg !=nil {_dgfgg =_bcb .TraceToDirectObject (_dgfgg );_efec ,_bdagc :=_bcb .GetNumberAsFloat (_dgfgg );if _bdagc !=nil {return nil ,_e .Errorf ("C\u0061\u006c\u0047\u0072\u0061\u0079:\u0020\u0067\u0061\u006d\u006d\u0061\u0020\u006e\u006ft\u0020\u0061\u0020n\u0075m\u0062\u0065\u0072");};_egc .Gamma =_efec ;};return _egc ,nil ;};
// HasXObjectByName checks if has XObject resource by name.
func (_gafg *PdfPage )HasXObjectByName (name _bcb .PdfObjectName )bool {_ffgd ,_edffa :=_gafg .Resources .XObject .(*_bcb .PdfObjectDictionary );if !_edffa {return false ;};if _gdgg :=_ffgd .Get (name );_gdgg !=nil {return true ;};return false ;};
// Set applies flag fl to the flag's bitmask and returns the combined flag.
func (_cdd FieldFlag )Set (fl FieldFlag )FieldFlag {return FieldFlag (_cdd .Mask ()|fl .Mask ())};const (TrappedUnknown PdfInfoTrapped ="\u0055n\u006b\u006e\u006f\u0077\u006e";TrappedTrue PdfInfoTrapped ="\u0054\u0072\u0075\u0065";TrappedFalse PdfInfoTrapped ="\u0046\u0061\u006cs\u0065";);
// PdfActionGoToE represents a GoToE action.
type PdfActionGoToE struct{*PdfAction ;F *PdfFilespec ;D _bcb .PdfObject ;NewWindow _bcb .PdfObject ;T _bcb .PdfObject ;};
// 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 _fb .ReadSeeker )(*PdfReader ,error ){_gffdf :=&PdfReader {_bcffa :rs ,_egfef :map[_bcb .PdfObject ]struct{}{},_dafbg :_ebgca (),_abdcg :true };_edbd ,_eedgg :=_bcb .NewParser (rs );if _eedgg !=nil {return nil ,_eedgg ;};_gffdf ._ecage =_edbd ;_bbfee ,_eedgg :=_gffdf .IsEncrypted ();if _eedgg !=nil {return nil ,_eedgg ;};if !_bbfee {_eedgg =_gffdf .loadStructure ();if _eedgg !=nil {return nil ,_eedgg ;};};return _gffdf ,nil ;};
// C returns the value of the C component of the color.
func (_fcddc *PdfColorCalRGB )C ()float64 {return _fcddc [2]};func _fgab (_ddfd *_bcb .PdfObjectDictionary ,_eeag *fontCommon )(*pdfCIDFontType2 ,error ){if _eeag ._abgg !="\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032"{_cga .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",_eeag );return nil ,_bcb .ErrRangeError ;};_fggaf :=_daad (_eeag );_eggf ,_fdeg :=_bcb .GetDict (_ddfd .Get ("\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f"));if !_fdeg {_cga .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",_eeag );return nil ,ErrRequiredAttributeMissing ;};_fggaf .CIDSystemInfo =_eggf ;_fggaf .DW =_ddfd .Get ("\u0044\u0057");_fggaf .W =_ddfd .Get ("\u0057");_fggaf .DW2 =_ddfd .Get ("\u0044\u0057\u0032");_fggaf .W2 =_ddfd .Get ("\u0057\u0032");_fggaf .CIDToGIDMap =_ddfd .Get ("C\u0049\u0044\u0054\u006f\u0047\u0049\u0044\u004d\u0061\u0070");_fggaf ._adcad =1000.0;if _egfa ,_fddf :=_bcb .GetNumberAsFloat (_fggaf .DW );_fddf ==nil {_fggaf ._adcad =_egfa ;};_bccgf ,_bedfb :=_bcfc (_fggaf .W );if _bedfb !=nil {return nil ,_bedfb ;};if _bccgf ==nil {_bccgf =map[_ddd .CharCode ]float64 {};};_fggaf ._ggfgf =_bccgf ;return _fggaf ,nil ;};
// SetDocInfo set document info.
// This will overwrite any globally declared document info.
func (_ecabd *PdfWriter )SetDocInfo (info *PdfInfo ){if _ecabd .hasObject (_ecabd ._gbfff ){delete (_ecabd ._affdb ,_ecabd ._gbfff );delete (_ecabd ._fddc ,_ecabd ._gbfff );for _dbggf ,_fffga :=range _ecabd ._adbc {if _fffga ==_ecabd ._gbfff {copy (_ecabd ._adbc [_dbggf :],_ecabd ._adbc [_dbggf +1:]);_ecabd ._adbc [len (_ecabd ._adbc )-1]=nil ;_ecabd ._adbc =_ecabd ._adbc [:len (_ecabd ._adbc )-1];break ;};};};_bgff :=_bcb .PdfIndirectObject {};_bgff .PdfObject =info .ToPdfObject ();_ecabd ._gbfff =&_bgff ;_ecabd .addObject (&_bgff );};
// PdfColorspaceCalRGB stores A, B, C components
type PdfColorspaceCalRGB struct{WhitePoint []float64 ;BlackPoint []float64 ;Gamma []float64 ;Matrix []float64 ;_acbd *_bcb .PdfObjectDictionary ;_fabd *_bcb .PdfIndirectObject ;};
// ToPdfObject returns a *PdfIndirectObject containing a *PdfObjectArray representation of the DeviceN colorspace.
// Format: [/DeviceN names alternateSpace tintTransform]
// or: [/DeviceN names alternateSpace tintTransform attributes]
func (_eddf *PdfColorspaceDeviceN )ToPdfObject ()_bcb .PdfObject {_efbcf :=_bcb .MakeArray (_bcb .MakeName ("\u0044e\u0076\u0069\u0063\u0065\u004e"));_efbcf .Append (_eddf .ColorantNames );_efbcf .Append (_eddf .AlternateSpace .ToPdfObject ());_efbcf .Append (_eddf .TintTransform .ToPdfObject ());if _eddf .Attributes !=nil {_efbcf .Append (_eddf .Attributes .ToPdfObject ());};if _eddf ._dcfed !=nil {_eddf ._dcfed .PdfObject =_efbcf ;return _eddf ._dcfed ;};return _efbcf ;};func _fabga (_dcadd *PdfField ,_gbge _bcb .PdfObject ){for _ ,_fdcee :=range _dcadd .Annotations {_fdcee .AS =_gbge ;_fdcee .ToPdfObject ();};};
// A returns the value of the A component of the color.
func (_gffb *PdfColorCalRGB )A ()float64 {return _gffb [0]};func (_bca *PdfReader )newPdfAnnotationMarkupFromDict (_abgd *_bcb .PdfObjectDictionary )(*PdfAnnotationMarkup ,error ){_afb :=&PdfAnnotationMarkup {};if _gde :=_abgd .Get ("\u0054");_gde !=nil {_afb .T =_gde ;};if _dfg :=_abgd .Get ("\u0050\u006f\u0070u\u0070");_dfg !=nil {_aee ,_cffc :=_dfg .(*_bcb .PdfIndirectObject );if !_cffc {if _ ,_ceaa :=_dfg .(*_bcb .PdfObjectNull );!_ceaa {return nil ,_ae .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 {_ecgf ,_egee :=_bca .newPdfAnnotationFromIndirectObject (_aee );if _egee !=nil {return nil ,_egee ;};if _ecgf !=nil {_acda ,_dgfg :=_ecgf ._feb .(*PdfAnnotationPopup );if !_dgfg {return nil ,_ae .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");};_afb .Popup =_acda ;};};};if _ccb :=_abgd .Get ("\u0043\u0041");_ccb !=nil {_afb .CA =_ccb ;};if _bfee :=_abgd .Get ("\u0052\u0043");_bfee !=nil {_afb .RC =_bfee ;};if _agbc :=_abgd .Get ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065");_agbc !=nil {_afb .CreationDate =_agbc ;};if _faed :=_abgd .Get ("\u0049\u0052\u0054");_faed !=nil {_afb .IRT =_faed ;};if _debc :=_abgd .Get ("\u0053\u0075\u0062\u006a");_debc !=nil {_afb .Subj =_debc ;};if _gabc :=_abgd .Get ("\u0052\u0054");_gabc !=nil {_afb .RT =_gabc ;};if _gdbg :=_abgd .Get ("\u0049\u0054");_gdbg !=nil {_afb .IT =_gdbg ;};if _aagb :=_abgd .Get ("\u0045\u0078\u0044\u0061\u0074\u0061");_aagb !=nil {_afb .ExData =_aagb ;};return _afb ,nil ;};
// SetXObjectFormByName adds the provided XObjectForm to the page resources.
// The added XObjectForm is identified by the specified name.
func (_aebcc *PdfPageResources )SetXObjectFormByName (keyName _bcb .PdfObjectName ,xform *XObjectForm )error {_ebef :=xform .ToPdfObject ().(*_bcb .PdfObjectStream );_fcedbf :=_aebcc .SetXObjectByName (keyName ,_ebef );return _fcedbf ;};
// String returns a string that describes `font`.
func (_cffa *PdfFont )String ()string {_ccbbd :="";if _cffa ._fgge .Encoder ()!=nil {_ccbbd =_cffa ._fgge .Encoder ().String ();};return _e .Sprintf ("\u0046\u004f\u004e\u0054\u007b\u0025\u0054\u0020\u0025s\u0020\u0025\u0073\u007d",_cffa ._fgge ,_cffa .baseFields ().coreString (),_ccbbd );};
// IsTiling specifies if the pattern is a tiling pattern.
func (_ddfdd *PdfPattern )IsTiling ()bool {return _ddfdd .PatternType ==1};func (_edef *PdfReader )newPdfActionTransFromDict (_bgb *_bcb .PdfObjectDictionary )(*PdfActionTrans ,error ){return &PdfActionTrans {Trans :_bgb .Get ("\u0054\u0072\u0061n\u0073")},nil ;};
// Optimizer is the interface that performs optimization of PDF object structure for output writing.
//
// Optimize receives a slice of input `objects`, performs optimization, including removing, replacing objects and
// output the optimized slice of objects.
type Optimizer interface{Optimize (_eedc []_bcb .PdfObject )([]_bcb .PdfObject ,error );};func (_geade *pdfFontSimple )baseFields ()*fontCommon {return &_geade .fontCommon };
// String returns a string representation of the field.
func (_dfbb *PdfField )String ()string {if _dfbd ,_beca :=_dfbb .ToPdfObject ().(*_bcb .PdfIndirectObject );_beca {return _e .Sprintf ("\u0025\u0054\u003a\u0020\u0025\u0073",_dfbb ._fegde ,_dfbd .PdfObject .String ());};return "";};
// FlattenFields flattens the form fields and annotations for the PDF loaded in `pdf` and makes
// non-editable.
// Looks up all widget annotations corresponding to form fields and flattens them by drawing the content
// through the content stream rather than annotations.
// References to flattened annotations will be removed from Page Annots array. For fields the AcroForm entry
// will be emptied.
// When `allannots` is true, all annotations will be flattened. Keep false if want to keep non-form related
// annotations intact.
// When `appgen` is not nil, it will be used to generate appearance streams for the field annotations.
func (_dffce *PdfReader )FlattenFields (allannots bool ,appgen FieldAppearanceGenerator )error {return _dffce .flattenFieldsWithOpts (allannots ,appgen ,nil );};func (_bafa *PdfReader )loadForms ()(*PdfAcroForm ,error ){if _bafa ._ecage .GetCrypter ()!=nil &&!_bafa ._ecage .IsAuthenticated (){return nil ,_e .Errorf ("\u0066\u0069\u006ce\u0020\u006e\u0065\u0065d\u0020\u0074\u006f\u0020\u0062\u0065\u0020d\u0065\u0063\u0072\u0079\u0070\u0074\u0065\u0064\u0020\u0066\u0069\u0072\u0073\u0074");};_fdgec :=_bafa ._fccd ;_bbaff :=_fdgec .Get ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d");if _bbaff ==nil {return nil ,nil ;};_eafac ,_ :=_bcb .GetIndirect (_bbaff );_bbaff =_bcb .TraceToDirectObject (_bbaff );if _bcb .IsNullObject (_bbaff ){_cga .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 ;};_gfad ,_egbed :=_bcb .GetDict (_bbaff );if !_egbed {_cga .Log .Debug ("\u0049n\u0076\u0061\u006c\u0069d\u0020\u0041\u0063\u0072\u006fF\u006fr\u006d \u0065\u006e\u0074\u0072\u0079\u0020\u0025T",_bbaff );_cga .Log .Debug ("\u0044\u006f\u0065\u0073 n\u006f\u0074\u0020\u0068\u0061\u0076\u0065\u0020\u0066\u006f\u0072\u006d\u0073");return nil ,_e .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0061\u0063\u0072\u006ff\u006fr\u006d \u0065\u006e\u0074\u0072\u0079\u0020\u0025T",_bbaff );};_cga .Log .Trace ("\u0048\u0061\u0073\u0020\u0041\u0063\u0072\u006f\u0020f\u006f\u0072\u006d\u0073");_cga .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 !_bafa ._abdcg {_gfagc :=_bafa .traverseObjectData (_gfad );if _gfagc !=nil {_cga .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",_gfagc );return nil ,_gfagc ;};};_afcba ,_fecaf :=_bafa .newPdfAcroFormFromDict (_eafac ,_gfad );if _fecaf !=nil {return nil ,_fecaf ;};return _afcba ,nil ;};
// GetContainingPdfObject returns the container of the outline (indirect object).
func (_gegd *PdfOutline )GetContainingPdfObject ()_bcb .PdfObject {return _gegd ._cdec };
// AlphaMap performs mapping of alpha data for transformations. Allows custom filtering of alpha data etc.
func (_dcgfb *Image )AlphaMap (mapFunc AlphaMapFunc ){for _bgebc ,_bcgbb :=range _dcgfb ._cdeb {_dcgfb ._cdeb [_bgebc ]=mapFunc (_bcgbb );};};
// NewPdfAnnotationCircle returns a new circle annotation.
func NewPdfAnnotationCircle ()*PdfAnnotationCircle {_edfd :=NewPdfAnnotation ();_cfec :=&PdfAnnotationCircle {};_cfec .PdfAnnotation =_edfd ;_cfec .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_edfd .SetContext (_cfec );return _cfec ;};func _cafcg (_fffgga _bcb .PdfObject )(*PdfFunctionType2 ,error ){_cgcag :=&PdfFunctionType2 {};var _cbgga *_bcb .PdfObjectDictionary ;if _aadc ,_egcca :=_fffgga .(*_bcb .PdfIndirectObject );_egcca {_ceea ,_ffcfa :=_aadc .PdfObject .(*_bcb .PdfObjectDictionary );if !_ffcfa {return nil ,_ae .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_cgcag ._cdfdg =_aadc ;_cbgga =_ceea ;}else if _bafcc ,_deea :=_fffgga .(*_bcb .PdfObjectDictionary );_deea {_cbgga =_bafcc ;}else {return nil ,_ae .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_cga .Log .Trace ("\u0046U\u004e\u0043\u0032\u003a\u0020\u0025s",_cbgga .String ());_ddecd ,_gfgg :=_bcb .TraceToDirectObject (_cbgga .Get ("\u0044\u006f\u006d\u0061\u0069\u006e")).(*_bcb .PdfObjectArray );if !_gfgg {_cga .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_ae .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 _ddecd .Len ()< 0||_ddecd .Len ()%2!=0{_cga .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u0072\u0061\u006e\u0067e\u0020\u0069\u006e\u0076al\u0069\u0064");return nil ,_ae .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0064\u006f\u006da\u0069\u006e\u0020\u0072an\u0067\u0065");};_gebe ,_egacf :=_ddecd .ToFloat64Array ();if _egacf !=nil {return nil ,_egacf ;};_cgcag .Domain =_gebe ;_ddecd ,_gfgg =_bcb .TraceToDirectObject (_cbgga .Get ("\u0052\u0061\u006eg\u0065")).(*_bcb .PdfObjectArray );if _gfgg {if _ddecd .Len ()< 0||_ddecd .Len ()%2!=0{return nil ,_ae .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0061\u006e\u0067\u0065");};_eaaaga ,_egcgg :=_ddecd .ToFloat64Array ();if _egcgg !=nil {return nil ,_egcgg ;};_cgcag .Range =_eaaaga ;};_ddecd ,_gfgg =_bcb .TraceToDirectObject (_cbgga .Get ("\u0043\u0030")).(*_bcb .PdfObjectArray );if _gfgg {_fbgac ,_ebgdg :=_ddecd .ToFloat64Array ();if _ebgdg !=nil {return nil ,_ebgdg ;};_cgcag .C0 =_fbgac ;};_ddecd ,_gfgg =_bcb .TraceToDirectObject (_cbgga .Get ("\u0043\u0031")).(*_bcb .PdfObjectArray );if _gfgg {_bdadd ,_afgb :=_ddecd .ToFloat64Array ();if _afgb !=nil {return nil ,_afgb ;};_cgcag .C1 =_bdadd ;};if len (_cgcag .C0 )!=len (_cgcag .C1 ){_cga .Log .Error ("\u0043\u0030\u0020\u0061nd\u0020\u0043\u0031\u0020\u006e\u006f\u0074\u0020\u006d\u0061\u0074\u0063\u0068\u0069n\u0067");return nil ,_bcb .ErrRangeError ;};N ,_egacf :=_bcb .GetNumberAsFloat (_bcb .TraceToDirectObject (_cbgga .Get ("\u004e")));if _egacf !=nil {_cga .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",_cbgga .String ());return nil ,_egacf ;};_cgcag .N =N ;return _cgcag ,nil ;};
// ToPdfObject returns a stream object.
func (_badga *XObjectImage )ToPdfObject ()_bcb .PdfObject {_gefgf :=_badga ._gddag ;_cdbbf :=_gefgf .PdfObjectDictionary ;if _badga .Filter !=nil {_cdbbf =_badga .Filter .MakeStreamDict ();_gefgf .PdfObjectDictionary =_cdbbf ;};_cdbbf .Set ("\u0054\u0079\u0070\u0065",_bcb .MakeName ("\u0058O\u0062\u006a\u0065\u0063\u0074"));_cdbbf .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_bcb .MakeName ("\u0049\u006d\u0061g\u0065"));_cdbbf .Set ("\u0057\u0069\u0064t\u0068",_bcb .MakeInteger (*(_badga .Width )));_cdbbf .Set ("\u0048\u0065\u0069\u0067\u0068\u0074",_bcb .MakeInteger (*(_badga .Height )));if _badga .BitsPerComponent !=nil {_cdbbf .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_bcb .MakeInteger (*(_badga .BitsPerComponent )));};if _badga .ColorSpace !=nil {_cdbbf .SetIfNotNil ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065",_badga .ColorSpace .ToPdfObject ());};_cdbbf .SetIfNotNil ("\u0049\u006e\u0074\u0065\u006e\u0074",_badga .Intent );_cdbbf .SetIfNotNil ("\u0049m\u0061\u0067\u0065\u004d\u0061\u0073k",_badga .ImageMask );_cdbbf .SetIfNotNil ("\u004d\u0061\u0073\u006b",_badga .Mask );_cdbbf .SetIfNotNil ("\u0044\u0065\u0063\u006f\u0064\u0065",_badga .Decode );_cdbbf .SetIfNotNil ("I\u006e\u0074\u0065\u0072\u0070\u006f\u006c\u0061\u0074\u0065",_badga .Interpolate );_cdbbf .SetIfNotNil ("\u0041\u006c\u0074e\u0072\u006e\u0061\u0074\u0069\u0076\u0065\u0073",_badga .Alternatives );_cdbbf .SetIfNotNil ("\u0053\u004d\u0061s\u006b",_badga .SMask );_cdbbf .SetIfNotNil ("S\u004d\u0061\u0073\u006b\u0049\u006e\u0044\u0061\u0074\u0061",_badga .SMaskInData );_cdbbf .SetIfNotNil ("\u004d\u0061\u0074t\u0065",_badga .Matte );_cdbbf .SetIfNotNil ("\u004e\u0061\u006d\u0065",_badga .Name );_cdbbf .SetIfNotNil ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074",_badga .StructParent );_cdbbf .SetIfNotNil ("\u0049\u0044",_badga .ID );_cdbbf .SetIfNotNil ("\u004f\u0050\u0049",_badga .OPI );_cdbbf .SetIfNotNil ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061",_badga .Metadata );_cdbbf .SetIfNotNil ("\u004f\u0043",_badga .OC );_cdbbf .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_bcb .MakeInteger (int64 (len (_badga .Stream ))));_gefgf .Stream =_badga .Stream ;return _gefgf ;};
// ColorFromFloats returns a new PdfColor based on the input slice of color
// components.
func (_cdgd *PdfColorspaceICCBased )ColorFromFloats (vals []float64 )(PdfColor ,error ){if _cdgd .Alternate ==nil {if _cdgd .N ==1{_agdc :=NewPdfColorspaceDeviceGray ();return _agdc .ColorFromFloats (vals );}else if _cdgd .N ==3{_cbggc :=NewPdfColorspaceDeviceRGB ();return _cbggc .ColorFromFloats (vals );}else if _cdgd .N ==4{_ccbd :=NewPdfColorspaceDeviceCMYK ();return _ccbd .ColorFromFloats (vals );}else {return nil ,_ae .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 _cdgd .Alternate .ColorFromFloats (vals );};
// NewPdfAnnotationSquiggly returns a new text squiggly annotation.
func NewPdfAnnotationSquiggly ()*PdfAnnotationSquiggly {_dceb :=NewPdfAnnotation ();_efgg :=&PdfAnnotationSquiggly {};_efgg .PdfAnnotation =_dceb ;_efgg .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_dceb .SetContext (_efgg );return _efgg ;};func _bdba (_cbadg *PdfPage ){_eegba :=_dd .GetLicenseKey ();if _eegba !=nil &&_eegba .IsLicensed (){return ;};_aecdac :=_bcb .PdfObjectName ("\u0055\u0046\u0031");if !_cbadg .Resources .HasFontByName (_aecdac ){_cbadg .Resources .SetFontByName (_aecdac ,DefaultFont ().ToPdfObject ());};var _fecf []string ;_fecf =append (_fecf ,"\u0071");_fecf =append (_fecf ,"\u0042\u0054");_fecf =append (_fecf ,_e .Sprintf ("\u002f%\u0073\u0020\u0031\u0034\u0020\u0054f",_aecdac .String ()));_fecf =append (_fecf ,"\u0031\u0020\u0030\u0020\u0030\u0020\u0072\u0067");_fecf =append (_fecf ,"\u0031\u0030\u0020\u0031\u0030\u0020\u0054\u0064");_eageb :="\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";_fecf =append (_fecf ,_e .Sprintf ("\u0028%\u0073\u0029\u0020\u0054\u006a",_eageb ));_fecf =append (_fecf ,"\u0045\u0054");_fecf =append (_fecf ,"\u0051");_ebeede :=_gc .Join (_fecf ,"\u000a");_cbadg .AddContentStreamByString (_ebeede );_cbadg .ToPdfObject ();};
// EnableAll LTV enables all signatures in the PDF document.
// The signing certificate chain is extracted from each signature dictionary.
// Optionally, additional certificates can be specified through the
// `extraCerts` parameter. The LTV client attempts to build the certificate
// chain up to a trusted root by downloading any missing certificates.
func (_aaaeb *LTV )EnableAll (extraCerts []*_ffg .Certificate )error {_gafe :=_aaaeb ._dfegg ._adcc .AcroForm ;for _ ,_gdffc :=range _gafe .AllFields (){_eddc ,_ :=_gdffc .GetContext ().(*PdfFieldSignature );if _eddc ==nil {continue ;};_bcbf :=_eddc .V ;if _bgdc :=_aaaeb .validateSig (_bcbf );_bgdc !=nil {_cga .Log .Debug ("\u0057\u0041\u0052N\u003a\u0020\u0053\u006b\u0069\u0070\u0070\u0069\u006e\u0067\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0073\u0069\u0067\u006e\u0061\u0074\u0075\u0072\u0065\u0020f\u0069\u0065\u006c\u0064\u003a\u0020\u0025\u0076",_bgdc );};if _eecad :=_aaaeb .Enable (_bcbf ,extraCerts );_eecad !=nil {return _eecad ;};};return nil ;};
// ColorToRGB converts a DeviceN color to an RGB color.
func (_efegg *PdfColorspaceDeviceN )ColorToRGB (color PdfColor )(PdfColor ,error ){if _efegg .AlternateSpace ==nil {return nil ,_ae .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 _efegg .AlternateSpace .ColorToRGB (color );};
// PdfAnnotationCircle represents Circle annotations.
// (Section 12.5.6.8).
type PdfAnnotationCircle struct{*PdfAnnotation ;*PdfAnnotationMarkup ;BS _bcb .PdfObject ;IC _bcb .PdfObject ;BE _bcb .PdfObject ;RD _bcb .PdfObject ;};
// PdfActionGoTo represents a GoTo action.
type PdfActionGoTo struct{*PdfAction ;D _bcb .PdfObject ;};
// ImageToRGB returns an error since an image cannot be defined in a pattern colorspace.
func (_aege *PdfColorspaceSpecialPattern )ImageToRGB (img Image )(Image ,error ){_cga .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 ,_ae .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");};
// AddWatermarkImage adds a watermark to the page.
func (_dddgd *PdfPage )AddWatermarkImage (ximg *XObjectImage ,opt WatermarkImageOptions )error {_bdaa ,_ccbda :=_dddgd .GetMediaBox ();if _ccbda !=nil {return _ccbda ;};_dfbbc :=_bdaa .Urx -_bdaa .Llx ;_fgecc :=_bdaa .Ury -_bdaa .Lly ;_aabc :=float64 (*ximg .Width );_bfedc :=(_dfbbc -_aabc )/2;if opt .FitToWidth {_aabc =_dfbbc ;_bfedc =0;};_dcebb :=_fgecc ;_deec :=float64 (0);if opt .PreserveAspectRatio {_dcebb =_aabc *float64 (*ximg .Height )/float64 (*ximg .Width );_deec =(_fgecc -_dcebb )/2;};if _dddgd .Resources ==nil {_dddgd .Resources =NewPdfPageResources ();};_abfba :=0;_dbcaf :=_bcb .PdfObjectName (_e .Sprintf ("\u0049\u006d\u0077%\u0064",_abfba ));for _dddgd .Resources .HasXObjectByName (_dbcaf ){_abfba ++;_dbcaf =_bcb .PdfObjectName (_e .Sprintf ("\u0049\u006d\u0077%\u0064",_abfba ));};_ccbda =_dddgd .AddImageResource (_dbcaf ,ximg );if _ccbda !=nil {return _ccbda ;};_abfba =0;_bbdfe :=_bcb .PdfObjectName (_e .Sprintf ("\u0047\u0053\u0025\u0064",_abfba ));for _dddgd .HasExtGState (_bbdfe ){_abfba ++;_bbdfe =_bcb .PdfObjectName (_e .Sprintf ("\u0047\u0053\u0025\u0064",_abfba ));};_dcce :=_bcb .MakeDict ();_dcce .Set ("\u0042\u004d",_bcb .MakeName ("\u004e\u006f\u0072\u006d\u0061\u006c"));_dcce .Set ("\u0043\u0041",_bcb .MakeFloat (opt .Alpha ));_dcce .Set ("\u0063\u0061",_bcb .MakeFloat (opt .Alpha ));_ccbda =_dddgd .AddExtGState (_bbdfe ,_dcce );if _ccbda !=nil {return _ccbda ;};_dbeb :=_e .Sprintf ("\u0071\u000a"+"\u002f%\u0073\u0020\u0067\u0073\u000a"+"%\u002e\u0030\u0066\u0020\u0030\u00200\u0020\u0025\u002e\u0030\u0066\u0020\u0025\u002e\u0034f\u0020\u0025\u002e4\u0066 \u0063\u006d\u000a"+"\u002f%\u0073\u0020\u0044\u006f\u000a"+"\u0051",_bbdfe ,_aabc ,_dcebb ,_bfedc ,_deec ,_dbcaf );_dddgd .AddContentStreamByString (_dbeb );return nil ;};func _bgege (_ebgd *_bcb .PdfObjectDictionary ,_bcce *fontCommon )(*pdfCIDFontType0 ,error ){if _bcce ._abgg !="\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0030"{_cga .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",_bcce );return nil ,_bcb .ErrRangeError ;};_beea :=_abgda (_bcce );_cfdc ,_fdef :=_bcb .GetDict (_ebgd .Get ("\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f"));if !_fdef {_cga .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",_bcce );return nil ,ErrRequiredAttributeMissing ;};_beea .CIDSystemInfo =_cfdc ;_beea .DW =_ebgd .Get ("\u0044\u0057");_beea .W =_ebgd .Get ("\u0057");_beea .DW2 =_ebgd .Get ("\u0044\u0057\u0032");_beea .W2 =_ebgd .Get ("\u0057\u0032");_beea ._becg =1000.0;if _caac ,_dbfa :=_bcb .GetNumberAsFloat (_beea .DW );_dbfa ==nil {_beea ._becg =_caac ;};_gggbg ,_gcfe :=_bcfc (_beea .W );if _gcfe !=nil {return nil ,_gcfe ;};if _gggbg ==nil {_gggbg =map[_ddd .CharCode ]float64 {};};_beea ._gdbd =_gggbg ;return _beea ,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 (_ccaa *PdfFont )RunesToCharcodeBytes (data []rune )([]byte ,int ){var _cfgef []_ddd .TextEncoder ;if _ffbg :=_ccaa .baseFields ()._ecbe ;_ffbg !=nil {_cfgef =append (_cfgef ,_ddd .NewCMapEncoder ("",nil ,_ffbg ));};if _dbdf :=_ccaa .Encoder ();_dbdf !=nil {_cfgef =append (_cfgef ,_dbdf );};var _dfce _ede .Buffer ;var _bgddd int ;for _ ,_eebbf :=range data {var _dadcfe bool ;for _ ,_gdffd :=range _cfgef {if _adaf :=_gdffd .Encode (string (_eebbf ));len (_adaf )> 0{_dfce .Write (_adaf );_dadcfe =true ;break ;};};if !_dadcfe {_cga .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",_eebbf );_bgddd ++;};};if _bgddd !=0{_cga .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 ),_bgddd ,_ccaa ,_cfgef );};return _dfce .Bytes (),_bgddd ;};
// ImageToRGB convert an indexed image to RGB.
func (_bdff *PdfColorspaceSpecialIndexed )ImageToRGB (img Image )(Image ,error ){N :=_bdff .Base .GetNumComponents ();if N < 1{return Image {},_e .Errorf ("\u0062\u0061d \u0062\u0061\u0073e\u0020\u0063\u006f\u006cors\u0070ac\u0065\u0020\u004e\u0075\u006d\u0043\u006fmp\u006f\u006e\u0065\u006e\u0074\u0073\u003d%\u0064",N );};_fade :=_fgd .NewImageBase (int (img .Width ),int (img .Height ),8,N ,nil ,img ._cdeb ,img ._fdggf );_cced :=_cgb .NewReader (img .getBase ());_fgcd :=_cgb .NewWriter (_fade );var (_gddba uint32 ;_fcda int ;_gcdc error ;);for {_gddba ,_gcdc =_cced .ReadSample ();if _gcdc ==_fb .EOF {break ;}else if _gcdc !=nil {return img ,_gcdc ;};_fcda =int (_gddba );_cga .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",_fcda ,N ,len (_bdff ._ddcb ));if (_fcda +1)*N > len (_bdff ._ddcb ){_fcda =len (_bdff ._ddcb )/N -1;_cga .Log .Trace ("C\u006c\u0069\u0070\u0070in\u0067 \u0074\u006f\u0020\u0069\u006ed\u0065\u0078\u003a\u0020\u0025\u0064",_fcda );if _fcda < 0{_cga .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 _bgaf :=_fcda *N ;_bgaf < (_fcda +1)*N ;_bgaf ++{if _gcdc =_fgcd .WriteSample (uint32 (_bdff ._ddcb [_bgaf ]));_gcdc !=nil {return img ,_gcdc ;};};};return _bdff .Base .ImageToRGB (_gagca (&_fade ));};
// SetContext set the sub annotation (context).
func (_agacc *PdfShading )SetContext (ctx PdfModel ){_agacc ._gcbd =ctx };
// SetImageHandler sets the image handler used by the package.
func SetImageHandler (imgHandling ImageHandler ){ImageHandling =imgHandling };
// NewPdfOutlineTree returns an initialized PdfOutline tree.
func NewPdfOutlineTree ()*PdfOutline {_bbdga :=NewPdfOutline ();_bbdga ._bfagd =&_bbdga ;return _bbdga ;};
// ToPdfObject returns the PDF representation of the shading dictionary.
func (_ggbca *PdfShadingType5 )ToPdfObject ()_bcb .PdfObject {_ggbca .PdfShading .ToPdfObject ();_gcfeg ,_ccbf :=_ggbca .getShadingDict ();if _ccbf !=nil {_cga .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 _ggbca .BitsPerCoordinate !=nil {_gcfeg .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065",_ggbca .BitsPerCoordinate );};if _ggbca .BitsPerComponent !=nil {_gcfeg .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_ggbca .BitsPerComponent );};if _ggbca .VerticesPerRow !=nil {_gcfeg .Set ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073\u0050e\u0072\u0052\u006f\u0077",_ggbca .VerticesPerRow );};if _ggbca .Decode !=nil {_gcfeg .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_ggbca .Decode );};if _ggbca .Function !=nil {if len (_ggbca .Function )==1{_gcfeg .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_ggbca .Function [0].ToPdfObject ());}else {_feeda :=_bcb .MakeArray ();for _ ,_adebe :=range _ggbca .Function {_feeda .Append (_adebe .ToPdfObject ());};_gcfeg .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_feeda );};};return _ggbca ._eced ;};
// NewImageFromGoImage creates a new NRGBA32 unidoc Image from a golang Image.
// If `goimg` is grayscale (*goimage.Gray8) then calls NewGrayImageFromGoImage instead.
func (_agcdg DefaultImageHandler )NewImageFromGoImage (goimg _ac .Image )(*Image ,error ){_cage ,_agcag :=_fgd .FromGoImage (goimg );if _agcag !=nil {return nil ,_agcag ;};_bffee :=_gagca (_cage .Base ());return &_bffee ,nil ;};
// GetRuneMetrics returns the character metrics for the specified rune.
// A bool flag is returned to indicate whether or not the entry was found.
func (_geacf pdfCIDFontType2 )GetRuneMetrics (r rune )(_acc .CharMetrics ,bool ){_dffe ,_aefb :=_geacf ._gggbf [r ];if !_aefb {_cgbc ,_eead :=_bcb .GetInt (_geacf .DW );if !_eead {return _acc .CharMetrics {},false ;};_dffe =int (*_cgbc );};return _acc .CharMetrics {Wx :float64 (_dffe )},true ;};func (_gbgc *PdfField )inherit (_febg func (*PdfField )bool )(bool ,error ){_dface :=map[*PdfField ]bool {};_ebafd :=false ;_ggce :=_gbgc ;for _ggce !=nil {if _ ,_eaff :=_dface [_ggce ];_eaff {return false ,_ae .New ("\u0072\u0065\u0063\u0075rs\u0069\u0076\u0065\u0020\u0074\u0072\u0061\u0076\u0065\u0072\u0073\u0061\u006c");};_bcead :=_febg (_ggce );if _bcead {_ebafd =true ;break ;};_dface [_ggce ]=true ;_ggce =_ggce .Parent ;};return _ebafd ,nil ;};
// ToPdfObject implements interface PdfModel.
func (_ddgg *PdfBorderStyle )ToPdfObject ()_bcb .PdfObject {_acac :=_bcb .MakeDict ();if _ddgg ._cec !=nil {if _faec ,_effe :=_ddgg ._cec .(*_bcb .PdfIndirectObject );_effe {_faec .PdfObject =_acac ;};};_acac .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_bcb .MakeName ("\u0042\u006f\u0072\u0064\u0065\u0072"));if _ddgg .W !=nil {_acac .Set ("\u0057",_bcb .MakeFloat (*_ddgg .W ));};if _ddgg .S !=nil {_acac .Set ("\u0053",_bcb .MakeName (_ddgg .S .GetPdfName ()));};if _ddgg .D !=nil {_acac .Set ("\u0044",_bcb .MakeArrayFromIntegers (*_ddgg .D ));};if _ddgg ._cec !=nil {return _ddgg ._cec ;};return _acac ;};func (_dab *PdfReader )newPdfActionSoundFromDict (_eec *_bcb .PdfObjectDictionary )(*PdfActionSound ,error ){return &PdfActionSound {Sound :_eec .Get ("\u0053\u006f\u0075n\u0064"),Volume :_eec .Get ("\u0056\u006f\u006c\u0075\u006d\u0065"),Synchronous :_eec .Get ("S\u0079\u006e\u0063\u0068\u0072\u006f\u006e\u006f\u0075\u0073"),Repeat :_eec .Get ("\u0052\u0065\u0070\u0065\u0061\u0074"),Mix :_eec .Get ("\u004d\u0069\u0078")},nil ;};
// CharcodeBytesToUnicode converts PDF character codes `data` to a Go unicode string.
//
// 9.10 Extraction of Text Content (page 292)
// The process of finding glyph descriptions in OpenType fonts by a conforming reader shall be the following:
// • For Type 1 fonts using “CFF” tables, the process shall be as described in 9.6.6.2, "Encodings
// for Type 1 Fonts".
// • For TrueType fonts using “glyf” tables, the process shall be as described in 9.6.6.4,
// "Encodings for TrueType Fonts". Since this process sometimes produces ambiguous results,
// conforming writers, instead of using a simple font, shall use a Type 0 font with an Identity-H
// encoding and use the glyph indices as character codes, as described following Table 118.
func (_cdcb *PdfFont )CharcodeBytesToUnicode (data []byte )(string ,int ,int ){_ffef ,_ ,_dfcg :=_cdcb .CharcodesToUnicodeWithStats (_cdcb .BytesToCharcodes (data ));_affa :=_ddd .ExpandLigatures (_ffef );return _affa ,_cg .RuneCountInString (_affa ),_dfcg ;};
// ToPdfObject implements interface PdfModel.
func (_eda *PdfActionHide )ToPdfObject ()_bcb .PdfObject {_eda .PdfAction .ToPdfObject ();_fcdd :=_eda ._dce ;_bcgd :=_fcdd .PdfObject .(*_bcb .PdfObjectDictionary );_bcgd .SetIfNotNil ("\u0053",_bcb .MakeName (string (ActionTypeHide )));_bcgd .SetIfNotNil ("\u0054",_eda .T );_bcgd .SetIfNotNil ("\u0048",_eda .H );return _fcdd ;};
// 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 (_bdagcg *PdfFont )CharcodesToStrings (charcodes []_ddd .CharCode )([]string ,int ,int ){_ddaa :=_bdagcg .baseFields ();_cgga :=make ([]string ,0,len (charcodes ));_aaabge :=0;for _ ,_bace :=range charcodes {if _ddaa ._ecbe !=nil {if _bbage ,_efeag :=_ddaa ._ecbe .CharcodeToUnicode (_dc .CharCode (_bace ));_efeag {_cgga =append (_cgga ,_bbage );continue ;};};_fcge :=_bdagcg .Encoder ();if _fcge !=nil {if _bbgb ,_bcacd :=_fcge .CharcodeToRune (_bace );_bcacd {_cgga =append (_cgga ,string (_bbgb ));continue ;};};_cga .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",_bace ,charcodes ,_ddaa .isCIDFont (),_bdagcg ,_fcge );_aaabge ++;_cgga =append (_cgga ,_dc .MissingCodeString );};if _aaabge !=0{_cga .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 ),_aaabge ,_bdagcg );};return _cgga ,len (_cgga ),_aaabge ;};
// DecodeArray returns the range of color component values in DeviceCMYK colorspace.
func (_ccdd *PdfColorspaceDeviceCMYK )DecodeArray ()[]float64 {return []float64 {0.0,1.0,0.0,1.0,0.0,1.0,0.0,1.0};};func (_fddfa *PdfAcroForm )filteredFields (_cafef FieldFilterFunc ,_ceega bool )[]*PdfField {if _fddfa ==nil {return nil ;};return _dcde (_fddfa .Fields ,_cafef ,_ceega );};func _abae (_dabe _bcb .PdfObject )(*PdfColorspaceSpecialPattern ,error ){_cga .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",_dabe .String (),_dabe );_gccg :=NewPdfColorspaceSpecialPattern ();if _adeea ,_cdae :=_dabe .(*_bcb .PdfIndirectObject );_cdae {_gccg ._ebgf =_adeea ;};_dabe =_bcb .TraceToDirectObject (_dabe );if _cbbg ,_bbdb :=_dabe .(*_bcb .PdfObjectName );_bbdb {if *_cbbg !="\u0050a\u0074\u0074\u0065\u0072\u006e"{return nil ,_e .Errorf ("\u0069\u006e\u0076a\u006c\u0069\u0064\u0020\u006e\u0061\u006d\u0065");};return _gccg ,nil ;};_efabf ,_dcadg :=_dabe .(*_bcb .PdfObjectArray );if !_dcadg {_cga .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",_dabe );return nil ,_e .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0050\u0061\u0074\u0074e\u0072n\u0020C\u0053\u0020\u006f\u0062\u006a\u0065\u0063t");};if _efabf .Len ()!=1&&_efabf .Len ()!=2{_cga .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",_efabf );return nil ,_e .Errorf ("\u0069n\u0076\u0061\u006c\u0069\u0064\u0020\u0050\u0061\u0074\u0074\u0065r\u006e\u0020\u0043\u0053\u0020\u0061\u0072\u0072\u0061\u0079");};_dabe =_efabf .Get (0);if _ecga ,_daac :=_dabe .(*_bcb .PdfObjectName );_daac {if *_ecga !="\u0050a\u0074\u0074\u0065\u0072\u006e"{_cga .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",_ecga );return nil ,_e .Errorf ("\u0069\u006e\u0076a\u006c\u0069\u0064\u0020\u006e\u0061\u006d\u0065");};};if _efabf .Len ()> 1{_dabe =_efabf .Get (1);_dabe =_bcb .TraceToDirectObject (_dabe );_ccee ,_bbacb :=NewPdfColorspaceFromPdfObject (_dabe );if _bbacb !=nil {return nil ,_bbacb ;};_gccg .UnderlyingCS =_ccee ;};_cga .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",_gccg .UnderlyingCS );return _gccg ,nil ;};func (_aeafd *PdfWriter )copyObjects (){_cgebc :=make (map[_bcb .PdfObject ]_bcb .PdfObject );_bfbfb :=make ([]_bcb .PdfObject ,0,len (_aeafd ._adbc ));_agccc :=make (map[_bcb .PdfObject ]struct{},len (_aeafd ._adbc ));_gaggf :=make (map[_bcb .PdfObject ]struct{});for _ ,_bfedg :=range _aeafd ._adbc {_gafdg :=_aeafd .copyObject (_bfedg ,_cgebc ,_gaggf ,false );if _ ,_dacde :=_gaggf [_bfedg ];_dacde {continue ;};_bfbfb =append (_bfbfb ,_gafdg );_agccc [_gafdg ]=struct{}{};};_aeafd ._adbc =_bfbfb ;_aeafd ._affdb =_agccc ;_aeafd ._gbfff =_aeafd .copyObject (_aeafd ._gbfff ,_cgebc ,nil ,false ).(*_bcb .PdfIndirectObject );_aeafd ._edecd =_aeafd .copyObject (_aeafd ._edecd ,_cgebc ,nil ,false ).(*_bcb .PdfIndirectObject );if _aeafd ._gbaeda !=nil {_aeafd ._gbaeda =_aeafd .copyObject (_aeafd ._gbaeda ,_cgebc ,nil ,false ).(*_bcb .PdfIndirectObject );};if _aeafd ._addfe {_aefeab :=make (map[_bcb .PdfObject ]int64 );for _egabg ,_adeeb :=range _aeafd ._bceg {if _dddbcd ,_ddfg :=_cgebc [_egabg ];_ddfg {_aefeab [_dddbcd ]=_adeeb ;}else {_cga .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");};};_aeafd ._bceg =_aefeab ;};};func (_gbaed *DSS )addOCSPs (_bgfa [][]byte )([]*_bcb .PdfObjectStream ,error ){return _gbaed .add (&_gbaed .OCSPs ,_gbaed ._fgbgb ,_bgfa );};
// 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 (_fgcc *PdfFieldButton )SetType (btype ButtonType ){_bdfe :=uint32 (0);if _fgcc .Ff !=nil {_bdfe =uint32 (*_fgcc .Ff );};switch btype {case ButtonTypePush :_bdfe |=FieldFlagPushbutton .Mask ();case ButtonTypeRadio :_bdfe |=FieldFlagRadio .Mask ();};_fgcc .Ff =_bcb .MakeInteger (int64 (_bdfe ));};
// IsEncrypted returns true if the PDF file is encrypted.
func (_eebaa *PdfReader )IsEncrypted ()(bool ,error ){return _eebaa ._ecage .IsEncrypted ()};func (_ffca *PdfReader )newPdfAnnotationPolygonFromDict (_fbe *_bcb .PdfObjectDictionary )(*PdfAnnotationPolygon ,error ){_gdc :=PdfAnnotationPolygon {};_dcf ,_feca :=_ffca .newPdfAnnotationMarkupFromDict (_fbe );if _feca !=nil {return nil ,_feca ;};_gdc .PdfAnnotationMarkup =_dcf ;_gdc .Vertices =_fbe .Get ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073");_gdc .LE =_fbe .Get ("\u004c\u0045");_gdc .BS =_fbe .Get ("\u0042\u0053");_gdc .IC =_fbe .Get ("\u0049\u0043");_gdc .BE =_fbe .Get ("\u0042\u0045");_gdc .IT =_fbe .Get ("\u0049\u0054");_gdc .Measure =_fbe .Get ("\u004de\u0061\u0073\u0075\u0072\u0065");return &_gdc ,nil ;};
// PdfShadingType6 is a Coons patch mesh.
type PdfShadingType6 struct{*PdfShading ;BitsPerCoordinate *_bcb .PdfObjectInteger ;BitsPerComponent *_bcb .PdfObjectInteger ;BitsPerFlag *_bcb .PdfObjectInteger ;Decode *_bcb .PdfObjectArray ;Function []PdfFunction ;};func (_dgbf *Image )samplesTrimPadding (_cfgea []uint32 )[]uint32 {_caea :=_dgbf .ColorComponents *int (_dgbf .Width )*int (_dgbf .Height );if len (_cfgea )==_caea {return _cfgea ;};_dfbfd :=make ([]uint32 ,_caea );_gfbf :=int (_dgbf .Width )*_dgbf .ColorComponents ;var _cbfcg ,_gfaca ,_fgceb ,_ecaa int ;_abcbd :=_fgd .BytesPerLine (int (_dgbf .Width ),int (_dgbf .BitsPerComponent ),_dgbf .ColorComponents );for _cbfcg =0;_cbfcg < int (_dgbf .Height );_cbfcg ++{_gfaca =_cbfcg *int (_dgbf .Width );_fgceb =_cbfcg *_abcbd ;for _ecaa =0;_ecaa < _gfbf ;_ecaa ++{_dfbfd [_gfaca +_ecaa ]=_cfgea [_fgceb +_ecaa ];};};return _dfbfd ;};
// LTV represents an LTV (Long-Term Validation) client. It is used to LTV
// enable signatures by adding validation and revocation data (certificate,
// OCSP and CRL information) to the DSS dictionary of a PDF document.
//
// LTV is added through the DSS by:
// - Adding certificates, OCSP and CRL information in the global scope of the
// DSS. The global data is used for validating any of the signatures present
// in the document.
// - Adding certificates, OCSP and CRL information for a single signature,
// through an entry in the VRI dictionary of the DSS. The added data is used
// for validating that particular signature only. This is the recommended
// method for adding validation data for a signature. However, this is not
// is not possible in the same revision the signature is applied. Validation
// data for a signature is added based on the Contents entry of the signature,
// which is known only after the revision is written. Even if the Contents
// are known (e.g. when signing externally), updating the DSS at that point
// would invalidate the calculated signature. As a result, if adding LTV
// in the same revision is a requirement, use the first method.
// See LTV.EnableChain.
// The client applies both methods, when possible.
//
// If `LTV.SkipExisting` is set to true (the default), validations are
// not added for signatures which are already present in the VRI entry of the
// document's DSS dictionary.
type LTV struct{
// CertClient is the client used to retrieve certificates.
CertClient *_ddg .CertClient ;
// OCSPClient is the client used to retrieve OCSP validation information.
OCSPClient *_ddg .OCSPClient ;
// CRLClient is the client used to retrieve CRL validation information.
CRLClient *_ddg .CRLClient ;
// SkipExisting specifies whether existing signature validations
// should be skipped.
SkipExisting bool ;_dfegg *PdfAppender ;_gddf *DSS ;};func (_ggef *PdfReader )newPdfAnnotationFromIndirectObject (_edeb *_bcb .PdfIndirectObject )(*PdfAnnotation ,error ){_dbf ,_aebe :=_edeb .PdfObject .(*_bcb .PdfObjectDictionary );if !_aebe {return nil ,_e .Errorf ("\u0061\u006e\u006e\u006f\u0074\u0061\u0074\u0069\u006f\u006e\u0020\u0069\u006e\u0064\u0069r\u0065\u0063\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0020\u006e\u006ft\u0020\u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0069\u006e\u0067\u0020a \u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079");};if model :=_ggef ._dafbg .GetModelFromPrimitive (_dbf );model !=nil {_gbe ,_fed :=model .(*PdfAnnotation );if !_fed {return nil ,_e .Errorf ("\u0063\u0061\u0063\u0068\u0065\u0064 \u006d\u006f\u0064\u0065\u006c\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0050D\u0046\u0020\u0061\u006e\u006e\u006f\u0074a\u0074\u0069\u006f\u006e");};return _gbe ,nil ;};_fecd :=&PdfAnnotation {};_fecd ._daa =_edeb ;_ggef ._dafbg .Register (_dbf ,_fecd );if _agf :=_dbf .Get ("\u0054\u0079\u0070\u0065");_agf !=nil {_dfe ,_gcad :=_agf .(*_bcb .PdfObjectName );if !_gcad {_cga .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",_agf );}else {if *_dfe !="\u0041\u006e\u006eo\u0074"{_cga .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",*_dfe );};};};if _dcef :=_dbf .Get ("\u0052\u0065\u0063\u0074");_dcef !=nil {_fecd .Rect =_dcef ;};if _bbb :=_dbf .Get ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073");_bbb !=nil {_fecd .Contents =_bbb ;};if _afgc :=_dbf .Get ("\u0050");_afgc !=nil {_fecd .P =_afgc ;};if _fffa :=_dbf .Get ("\u004e\u004d");_fffa !=nil {_fecd .NM =_fffa ;};if _eegg :=_dbf .Get ("\u004d");_eegg !=nil {_fecd .M =_eegg ;};if _fgbg :=_dbf .Get ("\u0046");_fgbg !=nil {_fecd .F =_fgbg ;};if _aaga :=_dbf .Get ("\u0041\u0050");_aaga !=nil {_fecd .AP =_aaga ;};if _aeg :=_dbf .Get ("\u0041\u0053");_aeg !=nil {_fecd .AS =_aeg ;};if _bccc :=_dbf .Get ("\u0042\u006f\u0072\u0064\u0065\u0072");_bccc !=nil {_fecd .Border =_bccc ;};if _ffe :=_dbf .Get ("\u0043");_ffe !=nil {_fecd .C =_ffe ;};if _gdbb :=_dbf .Get ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074");_gdbb !=nil {_fecd .StructParent =_gdbb ;};if _dae :=_dbf .Get ("\u004f\u0043");_dae !=nil {_fecd .OC =_dae ;};_bac :=_dbf .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065");if _bac ==nil {_cga .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");_fecd ._feb =nil ;return _fecd ,nil ;};_afee ,_gee :=_bac .(*_bcb .PdfObjectName );if !_gee {_cga .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",_bac );return nil ,_e .Errorf ("i\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0053\u0075\u0062\u0074\u0079\u0070\u0065\u0020\u006f\u0062\u006ae\u0063\u0074\u0020\u0074\u0079\u0070\u0065\u0020\u0021\u003d n\u0061\u006d\u0065 \u0028%\u0054\u0029",_bac );};switch *_afee {case "\u0054\u0065\u0078\u0074":_bddg ,_ddf :=_ggef .newPdfAnnotationTextFromDict (_dbf );if _ddf !=nil {return nil ,_ddf ;};_bddg .PdfAnnotation =_fecd ;_fecd ._feb =_bddg ;return _fecd ,nil ;case "\u004c\u0069\u006e\u006b":_aff ,_fbd :=_ggef .newPdfAnnotationLinkFromDict (_dbf );if _fbd !=nil {return nil ,_fbd ;};_aff .PdfAnnotation =_fecd ;_fecd ._feb =_aff ;return _fecd ,nil ;case "\u0046\u0072\u0065\u0065\u0054\u0065\u0078\u0074":_bgd ,_eed :=_ggef .newPdfAnnotationFreeTextFromDict (_dbf );if _eed !=nil {return nil ,_eed ;};_bgd .PdfAnnotation =_fecd ;_fecd ._feb =_bgd ;return _fecd ,nil ;case "\u004c\u0069\u006e\u0065":_acg ,_dbd :=_ggef .newPdfAnnotationLineFromDict (_dbf );if _dbd !=nil {return nil ,_dbd ;};_acg .PdfAnnotation =_fecd ;_fecd ._feb =_acg ;_cga .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",_fecd ,_fecd );_cga .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",_acg ,_acg );_cga .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",_acg .PdfAnnotationMarkup ,_acg .PdfAnnotationMarkup );return _fecd ,nil ;case "\u0053\u0071\u0075\u0061\u0072\u0065":_daec ,_bea :=_ggef .newPdfAnnotationSquareFromDict (_dbf );if _bea !=nil {return nil ,_bea ;};_daec .PdfAnnotation =_fecd ;_fecd ._feb =_daec ;return _fecd ,nil ;case "\u0043\u0069\u0072\u0063\u006c\u0065":_aac ,_cgged :=_ggef .newPdfAnnotationCircleFromDict (_dbf );if _cgged !=nil {return nil ,_cgged ;};_aac .PdfAnnotation =_fecd ;_fecd ._feb =_aac ;return _fecd ,nil ;case "\u0050o\u006c\u0079\u0067\u006f\u006e":_bbe ,_eggc :=_ggef .newPdfAnnotationPolygonFromDict (_dbf );if _eggc !=nil {return nil ,_eggc ;};_bbe .PdfAnnotation =_fecd ;_fecd ._feb =_bbe ;return _fecd ,nil ;case "\u0050\u006f\u006c\u0079\u004c\u0069\u006e\u0065":_eecf ,_dea :=_ggef .newPdfAnnotationPolyLineFromDict (_dbf );if _dea !=nil {return nil ,_dea ;};_eecf .PdfAnnotation =_fecd ;_fecd ._feb =_eecf ;return _fecd ,nil ;case "\u0048i\u0067\u0068\u006c\u0069\u0067\u0068t":_fcg ,_bfd :=_ggef .newPdfAnnotationHighlightFromDict (_dbf );if _bfd !=nil {return nil ,_bfd ;};_fcg .PdfAnnotation =_fecd ;_fecd ._feb =_fcg ;return _fecd ,nil ;case "\u0055n\u0064\u0065\u0072\u006c\u0069\u006ee":_gfb ,_cdg :=_ggef .newPdfAnnotationUnderlineFromDict (_dbf );if _cdg !=nil {return nil ,_cdg ;};_gfb .PdfAnnotation =_fecd ;_fecd ._feb =_gfb ;return _fecd ,nil ;case "\u0053\u0071\u0075\u0069\u0067\u0067\u006c\u0079":_agg ,_ageg :=_ggef .newPdfAnnotationSquigglyFromDict (_dbf );if _ageg !=nil {return nil ,_ageg ;};_agg .PdfAnnotation =_fecd ;_fecd ._feb =_agg ;return _fecd ,nil ;case "\u0053t\u0072\u0069\u006b\u0065\u004f\u0075t":_ggb ,_cbfd :=_ggef .newPdfAnnotationStrikeOut (_dbf );if _cbfd !=nil {return nil ,_cbfd ;};_ggb .PdfAnnotation =_fecd ;_fecd ._feb =_ggb ;return _fecd ,nil ;case "\u0043\u0061\u0072e\u0074":_eadf ,_dgb :=_ggef .newPdfAnnotationCaretFromDict (_dbf );if _dgb !=nil {return nil ,_dgb ;};_eadf .PdfAnnotation =_fecd ;_fecd ._feb =_eadf ;return _fecd ,nil ;case "\u0053\u0074\u0061m\u0070":_ffgg ,_dcebg :=_ggef .newPdfAnnotationStampFromDict (_dbf );if _dcebg !=nil {return nil ,_dcebg ;};_ffgg .PdfAnnotation =_fecd ;_fecd ._feb =_ffgg ;return _fecd ,nil ;case "\u0049\u006e\u006b":_gda ,_dced :=_ggef .newPdfAnnotationInkFromDict (_dbf );if _dced !=nil {return nil ,_dced ;};_gda .PdfAnnotation =_fecd ;_fecd ._feb =_gda ;return _fecd ,nil ;case "\u0050\u006f\u0070u\u0070":_agbd ,_dagc :=_ggef .newPdfAnnotationPopupFromDict (_dbf );if _dagc !=nil {return nil ,_dagc ;};_agbd .PdfAnnotation =_fecd ;_fecd ._feb =_agbd ;return _fecd ,nil ;case "\u0046\u0069\u006c\u0065\u0041\u0074\u0074\u0061\u0063h\u006d\u0065\u006e\u0074":_gdf ,_bae :=_ggef .newPdfAnnotationFileAttachmentFromDict (_dbf );if _bae !=nil {return nil ,_bae ;};_gdf .PdfAnnotation =_fecd ;_fecd ._feb =_gdf ;return _fecd ,nil ;case "\u0053\u006f\u0075n\u0064":_afa ,_fgaf :=_ggef .newPdfAnnotationSoundFromDict (_dbf );if _fgaf !=nil {return nil ,_fgaf ;};_afa .PdfAnnotation =_fecd ;_fecd ._feb =_afa ;return _fecd ,nil ;case "\u0052i\u0063\u0068\u004d\u0065\u0064\u0069a":_faef ,_ggdd :=_ggef .newPdfAnnotationRichMediaFromDict (_dbf );if _ggdd !=nil {return nil ,_ggdd ;};_faef .PdfAnnotation =_fecd ;_fecd ._feb =_faef ;return _fecd ,nil ;case "\u004d\u006f\u0076i\u0065":_baaa ,_efb :=_ggef .newPdfAnnotationMovieFromDict (_dbf );if _efb !=nil {return nil ,_efb ;};_baaa .PdfAnnotation =_fecd ;_fecd ._feb =_baaa ;return _fecd ,nil ;case "\u0053\u0063\u0072\u0065\u0065\u006e":_gfg ,_debf :=_ggef .newPdfAnnotationScreenFromDict (_dbf );if _debf !=nil {return nil ,_debf ;};_gfg .PdfAnnotation =_fecd ;_fecd ._feb =_gfg ;return _fecd ,nil ;case "\u0057\u0069\u0064\u0067\u0065\u0074":_gddd ,_dffc :=_ggef .newPdfAnnotationWidgetFromDict (_dbf );if _dffc !=nil {return nil ,_dffc ;};_gddd .PdfAnnotation =_fecd ;_fecd ._feb =_gddd ;return _fecd ,nil ;case "P\u0072\u0069\u006e\u0074\u0065\u0072\u004d\u0061\u0072\u006b":_cab ,_gcea :=_ggef .newPdfAnnotationPrinterMarkFromDict (_dbf );if _gcea !=nil {return nil ,_gcea ;};_cab .PdfAnnotation =_fecd ;_fecd ._feb =_cab ;return _fecd ,nil ;case "\u0054r\u0061\u0070\u004e\u0065\u0074":_dcb ,_gbdg :=_ggef .newPdfAnnotationTrapNetFromDict (_dbf );if _gbdg !=nil {return nil ,_gbdg ;};_dcb .PdfAnnotation =_fecd ;_fecd ._feb =_dcb ;return _fecd ,nil ;case "\u0057a\u0074\u0065\u0072\u006d\u0061\u0072k":_ggcd ,_fdd :=_ggef .newPdfAnnotationWatermarkFromDict (_dbf );if _fdd !=nil {return nil ,_fdd ;};_ggcd .PdfAnnotation =_fecd ;_fecd ._feb =_ggcd ;return _fecd ,nil ;case "\u0033\u0044":_abfb ,_dgf :=_ggef .newPdfAnnotation3DFromDict (_dbf );if _dgf !=nil {return nil ,_dgf ;};_abfb .PdfAnnotation =_fecd ;_fecd ._feb =_abfb ;return _fecd ,nil ;case "\u0050\u0072\u006f\u006a\u0065\u0063\u0074\u0069\u006f\u006e":_dcbb ,_ebg :=_ggef .newPdfAnnotationProjectionFromDict (_dbf );if _ebg !=nil {return nil ,_ebg ;};_dcbb .PdfAnnotation =_fecd ;_fecd ._feb =_dcbb ;return _fecd ,nil ;case "\u0052\u0065\u0064\u0061\u0063\u0074":_cee ,_cdea :=_ggef .newPdfAnnotationRedactFromDict (_dbf );if _cdea !=nil {return nil ,_cdea ;};_cee .PdfAnnotation =_fecd ;_fecd ._feb =_cee ;return _fecd ,nil ;};_cga .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",*_afee );return nil ,nil ;};
// ToPdfObject returns an indirect object containing the signature field dictionary.
func (_agff *PdfFieldSignature )ToPdfObject ()_bcb .PdfObject {if _agff .PdfAnnotationWidget !=nil {_agff .PdfAnnotationWidget .ToPdfObject ();};_agff .PdfField .ToPdfObject ();_eeba :=_agff ._gggf ;_fgcgc :=_eeba .PdfObject .(*_bcb .PdfObjectDictionary );_fgcgc .SetIfNotNil ("\u0046\u0054",_bcb .MakeName ("\u0053\u0069\u0067"));_fgcgc .SetIfNotNil ("\u004c\u006f\u0063\u006b",_agff .Lock );_fgcgc .SetIfNotNil ("\u0053\u0056",_agff .SV );if _agff .V !=nil {_fgcgc .SetIfNotNil ("\u0056",_agff .V .ToPdfObject ());};return _eeba ;};
// 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 ){_bcag ,_agfdd :=_ecd .Open (filePath );if _agfdd !=nil {_cga .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",_agfdd );return nil ,_agfdd ;};defer _bcag .Close ();return NewPdfFontFromTTF (_bcag );};
// SetContext sets the sub annotation (context).
func (_cce *PdfAnnotation )SetContext (ctx PdfModel ){_cce ._feb =ctx };var (ErrRequiredAttributeMissing =_ae .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 =_ae .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0061\u0074\u0074\u0072i\u0062\u0075\u0074\u0065");ErrTypeCheck =_ae .New ("\u0074\u0079\u0070\u0065\u0020\u0063\u0068\u0065\u0063\u006b");_aadab =_ae .New ("\u0072\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b\u0020e\u0072\u0072\u006f\u0072");ErrEncrypted =_ae .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 =_ae .New ("\u0066\u006fn\u0074\u0020\u006eo\u0074\u0020\u0064\u0065\u0066\u0069\u006e\u0065\u0064");ErrFontNotSupported =_bdd .Errorf ("u\u006e\u0073\u0075\u0070po\u0072t\u0065\u0064\u0020\u0066\u006fn\u0074\u0020\u0028\u0025\u0077\u0029",_bcb .ErrNotSupported );ErrType1CFontNotSupported =_bdd .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",_bcb .ErrNotSupported );ErrType3FontNotSupported =_bdd .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",_bcb .ErrNotSupported );ErrTTCmapNotSupported =_bdd .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",_bcb .ErrNotSupported );ErrSignNotEnoughSpace =_bdd .Errorf ("\u0069\u006e\u0073\u0075\u0066\u0066\u0069c\u0069\u0065\u006et\u0020\u0073\u0070a\u0063\u0065 \u0061\u006c\u006c\u006f\u0063\u0061t\u0065d \u0066\u006f\u0072\u0020\u0074\u0068\u0065\u0020\u0073\u0069\u0067\u006e\u0061\u0074\u0075\u0072\u0065\u0020\u0063\u006f\u006e\u0074\u0065\u006e\u0074\u0073");ErrSignNoCertificates =_bdd .Errorf ("\u0063\u006ful\u0064\u0020\u006eo\u0074\u0020\u0072\u0065tri\u0065ve\u0020\u0063\u0065\u0072\u0074\u0069\u0066ic\u0061\u0074\u0065\u0020\u0063\u0068\u0061i\u006e"););
// StdFontName represents name of a standard font.
type StdFontName =_acc .StdFontName ;
// NewPdfActionSound returns a new "sound" action.
func NewPdfActionSound ()*PdfActionSound {_df :=NewPdfAction ();_gf :=&PdfActionSound {};_gf .PdfAction =_df ;_df .SetContext (_gf );return _gf ;};
// GetContainingPdfObject returns the container of the DSS (indirect object).
func (_cgba *DSS )GetContainingPdfObject ()_bcb .PdfObject {return _cgba ._bdac };
// 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 ;_abcf *_bcb .PdfIndirectObject ;
// Type: Sig/DocTimeStamp
Type *_bcb .PdfObjectName ;Filter *_bcb .PdfObjectName ;SubFilter *_bcb .PdfObjectName ;Contents *_bcb .PdfObjectString ;Cert _bcb .PdfObject ;ByteRange *_bcb .PdfObjectArray ;Reference *_bcb .PdfObjectArray ;Changes *_bcb .PdfObjectArray ;Name *_bcb .PdfObjectString ;M *_bcb .PdfObjectString ;Location *_bcb .PdfObjectString ;Reason *_bcb .PdfObjectString ;ContactInfo *_bcb .PdfObjectString ;R *_bcb .PdfObjectInteger ;V *_bcb .PdfObjectInteger ;PropBuild *_bcb .PdfObjectDictionary ;PropAuthTime *_bcb .PdfObjectInteger ;PropAuthType *_bcb .PdfObjectName ;};
// GetIndirectObjectByNumber retrieves and returns a specific PdfObject by object number.
func (_gfbbg *PdfReader )GetIndirectObjectByNumber (number int )(_bcb .PdfObject ,error ){_ecbeaf ,_afbb :=_gfbbg ._ecage .LookupByNumber (number );return _ecbeaf ,_afbb ;};func _efbdf (_gfdc *_bcb .PdfObjectDictionary )(*PdfFieldButton ,error ){_dadaa :=&PdfFieldButton {};_dadaa .Opt ,_ =_bcb .GetArray (_gfdc .Get ("\u004f\u0070\u0074"));return _dadaa ,nil ;};
// ColorFromPdfObjects returns a new PdfColor based on the input slice of color
// components. The slice should contain a single PdfObjectFloat element.
func (_fgdeg *PdfColorspaceSpecialIndexed )ColorFromPdfObjects (objects []_bcb .PdfObject )(PdfColor ,error ){if len (objects )!=1{return nil ,_ae .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_daafa ,_dabb :=_bcb .GetNumbersAsFloat (objects );if _dabb !=nil {return nil ,_dabb ;};return _fgdeg .ColorFromFloats (_daafa );};
// Mask returns the uin32 bitmask for the specific flag.
func (_bcadc FieldFlag )Mask ()uint32 {return uint32 (_bcadc )};func (_gcd *PdfReader )newPdfActionRenditionFromDict (_cff *_bcb .PdfObjectDictionary )(*PdfActionRendition ,error ){return &PdfActionRendition {R :_cff .Get ("\u0052"),AN :_cff .Get ("\u0041\u004e"),OP :_cff .Get ("\u004f\u0050"),JS :_cff .Get ("\u004a\u0053")},nil ;};
// 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 (_gceaa *PdfFont )CharcodesToUnicodeWithStats (charcodes []_ddd .CharCode )(_bedgb []rune ,_gegf ,_fcca int ){_ggfb ,_gegf ,_fcca :=_gceaa .CharcodesToStrings (charcodes );return []rune (_gc .Join (_ggfb ,"")),_gegf ,_fcca ;};func (_ccgdf *PdfWriter )addObjects (_faafe _bcb .PdfObject )error {_cga .Log .Trace ("\u0041d\u0064i\u006e\u0067\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0073\u0021");if _gffce ,_fdggae :=_faafe .(*_bcb .PdfIndirectObject );_fdggae {_cga .Log .Trace ("\u0049\u006e\u0064\u0069\u0072\u0065\u0063\u0074");_cga .Log .Trace ("\u002d \u0025\u0073\u0020\u0028\u0025\u0070)",_faafe ,_gffce );_cga .Log .Trace ("\u002d\u0020\u0025\u0073",_gffce .PdfObject );if _ccgdf .addObject (_gffce ){_cbcea :=_ccgdf .addObjects (_gffce .PdfObject );if _cbcea !=nil {return _cbcea ;};};return nil ;};if _fdcfd ,_gabab :=_faafe .(*_bcb .PdfObjectStream );_gabab {_cga .Log .Trace ("\u0053\u0074\u0072\u0065\u0061\u006d");_cga .Log .Trace ("\u002d \u0025\u0073\u0020\u0025\u0070",_faafe ,_faafe );if _ccgdf .addObject (_fdcfd ){_abbdf :=_ccgdf .addObjects (_fdcfd .PdfObjectDictionary );if _abbdf !=nil {return _abbdf ;};};return nil ;};if _fecgd ,_fggcf :=_faafe .(*_bcb .PdfObjectDictionary );_fggcf {_cga .Log .Trace ("\u0044\u0069\u0063\u0074");_cga .Log .Trace ("\u002d\u0020\u0025\u0073",_faafe );for _ ,_abde :=range _fecgd .Keys (){_ggege :=_fecgd .Get (_abde );if _abbbg ,_efgga :=_ggege .(*_bcb .PdfObjectReference );_efgga {_ggege =_abbbg .Resolve ();_fecgd .Set (_abde ,_ggege );};if _abde !="\u0050\u0061\u0072\u0065\u006e\u0074"{if _adgba :=_ccgdf .addObjects (_ggege );_adgba !=nil {return _adgba ;};}else {if _ ,_adcfc :=_ggege .(*_bcb .PdfObjectNull );_adcfc {continue ;};if _decea :=_ccgdf .hasObject (_ggege );!_decea {_cga .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",_ggege ,_ggege ,_ggege );_ccgdf ._aabce [_ggege ]=append (_ccgdf ._aabce [_ggege ],_fecgd );};};};return nil ;};if _egccfb ,_agdba :=_faafe .(*_bcb .PdfObjectArray );_agdba {_cga .Log .Trace ("\u0041\u0072\u0072a\u0079");_cga .Log .Trace ("\u002d\u0020\u0025\u0073",_faafe );if _egccfb ==nil {return _ae .New ("\u0061\u0072\u0072a\u0079\u0020\u0069\u0073\u0020\u006e\u0069\u006c");};for _bcfgf ,_abefec :=range _egccfb .Elements (){if _acfcf ,_bbbbe :=_abefec .(*_bcb .PdfObjectReference );_bbbbe {_abefec =_acfcf .Resolve ();_egccfb .Set (_bcfgf ,_abefec );};if _dadfd :=_ccgdf .addObjects (_abefec );_dadfd !=nil {return _dadfd ;};};return nil ;};if _ ,_gbggdg :=_faafe .(*_bcb .PdfObjectReference );_gbggdg {_cga .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",_faafe );return _ae .New ("r\u0065\u0066\u0065\u0072en\u0063e\u0020\u006e\u006f\u0074\u0020a\u006c\u006c\u006f\u0077\u0065\u0064");};return nil ;};
// CharcodesToUnicode converts the character codes `charcodes` to a slice of runes.
// How it works:
// 1) Use the ToUnicode CMap if there is one.
// 2) Use the underlying font's encoding.
func (_dbfca *PdfFont )CharcodesToUnicode (charcodes []_ddd .CharCode )[]rune {_fbgge ,_ ,_ :=_dbfca .CharcodesToUnicodeWithStats (charcodes );return _fbgge ;};
// WriteToFile writes the Appender output to file specified by path.
func (_gdac *PdfAppender )WriteToFile (outputPath string )error {_ffcf ,_dcega :=_ecd .Create (outputPath );if _dcega !=nil {return _dcega ;};defer _ffcf .Close ();return _gdac .Write (_ffcf );};func (_ecdca *pdfFontSimple )addEncoding ()error {var (_deff string ;_caaaa map[_ddd .CharCode ]_ddd .GlyphName ;_fgfb _ddd .SimpleEncoder ;);if _ecdca .Encoder ()!=nil {_bead ,_cccgg :=_ecdca .Encoder ().(_ddd .SimpleEncoder );if _cccgg &&_bead !=nil {_deff =_bead .BaseName ();};};if _ecdca .Encoding !=nil {_ebeaf ,_baead ,_gedbf :=_ecdca .getFontEncoding ();if _gedbf !=nil {_cga .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",_ecdca ._daeb ,_ecdca ._abgg ,_ecdca .Encoding ,_ecdca .Encoding ,_gedbf );return _gedbf ;};if _ebeaf !=""{_deff =_ebeaf ;};_caaaa =_baead ;_fgfb ,_gedbf =_ddd .NewSimpleTextEncoder (_deff ,_caaaa );if _gedbf !=nil {return _gedbf ;};};if _fgfb ==nil {_bbgd :=_ecdca ._ecaed ;if _bbgd !=nil {switch _ecdca ._abgg {case "\u0054\u0079\u0070e\u0031":if _bbgd .fontFile !=nil &&_bbgd .fontFile ._ecge !=nil {_cga .Log .Debug ("\u0055\u0073\u0069\u006e\u0067\u0020\u0066\u006f\u006et\u0046\u0069\u006c\u0065");_fgfb =_bbgd .fontFile ._ecge ;};case "\u0054\u0072\u0075\u0065\u0054\u0079\u0070\u0065":if _bbgd ._bdecf !=nil {_cga .Log .Debug ("\u0055s\u0069n\u0067\u0020\u0046\u006f\u006e\u0074\u0046\u0069\u006c\u0065\u0032");_fdgc ,_bbda :=_bbgd ._bdecf .MakeEncoder ();if _bbda ==nil {_fgfb =_fdgc ;};};};};};if _fgfb !=nil {if _caaaa !=nil {_cga .Log .Trace ("\u0064\u0069\u0066fe\u0072\u0065\u006e\u0063\u0065\u0073\u003d\u0025\u002b\u0076\u0020\u0066\u006f\u006e\u0074\u003d\u0025\u0073",_caaaa ,_ecdca .baseFields ());_fgfb =_ddd .ApplyDifferences (_fgfb ,_caaaa );};_ecdca .SetEncoder (_fgfb );};return nil ;};
// IsColored specifies if the pattern is colored.
func (_gfdd *PdfTilingPattern )IsColored ()bool {if _gfdd .PaintType !=nil &&*_gfdd .PaintType ==1{return true ;};return false ;};
// Outline represents a PDF outline dictionary (Table 152 - p. 376).
// Currently, the Outline object can only be used to construct PDF outlines.
type Outline struct{Entries []*OutlineItem `json:"entries,omitempty"`;};func _dadac (_bcaef *_bcb .PdfObjectDictionary )(*PdfTilingPattern ,error ){_cgafe :=&PdfTilingPattern {};_begb :=_bcaef .Get ("\u0050a\u0069\u006e\u0074\u0054\u0079\u0070e");if _begb ==nil {_cga .Log .Debug ("\u0050\u0061\u0069\u006e\u0074\u0054\u0079\u0070\u0065\u0020\u006d\u0069s\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ;};_agegd ,_aadg :=_begb .(*_bcb .PdfObjectInteger );if !_aadg {_cga .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",_begb );return nil ,_bcb .ErrTypeError ;};_cgafe .PaintType =_agegd ;_begb =_bcaef .Get ("\u0054\u0069\u006c\u0069\u006e\u0067\u0054\u0079\u0070\u0065");if _begb ==nil {_cga .Log .Debug ("\u0054i\u006ci\u006e\u0067\u0054\u0079\u0070e\u0020\u006di\u0073\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ;};_fcdadg ,_aadg :=_begb .(*_bcb .PdfObjectInteger );if !_aadg {_cga .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",_begb );return nil ,_bcb .ErrTypeError ;};_cgafe .TilingType =_fcdadg ;_begb =_bcaef .Get ("\u0042\u0042\u006f\u0078");if _begb ==nil {_cga .Log .Debug ("\u0042\u0042\u006fx\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ;};_begb =_bcb .TraceToDirectObject (_begb );_aegf ,_aadg :=_begb .(*_bcb .PdfObjectArray );if !_aadg {_cga .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",_begb );return nil ,_bcb .ErrTypeError ;};_gcggf ,_gefga :=NewPdfRectangle (*_aegf );if _gefga !=nil {_cga .Log .Debug ("\u0042\u0042\u006f\u0078\u0020\u0065\u0072\u0072\u006fr\u003a\u0020\u0025\u0076",_gefga );return nil ,_gefga ;};_cgafe .BBox =_gcggf ;_begb =_bcaef .Get ("\u0058\u0053\u0074e\u0070");if _begb ==nil {_cga .Log .Debug ("\u0058\u0053\u0074\u0065\u0070\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ;};_gdgeg ,_gefga :=_bcb .GetNumberAsFloat (_begb );if _gefga !=nil {_cga .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",_gdgeg );return nil ,_gefga ;};_cgafe .XStep =_bcb .MakeFloat (_gdgeg );_begb =_bcaef .Get ("\u0059\u0053\u0074e\u0070");if _begb ==nil {_cga .Log .Debug ("\u0059\u0053\u0074\u0065\u0070\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ;};_acfb ,_gefga :=_bcb .GetNumberAsFloat (_begb );if _gefga !=nil {_cga .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",_acfb );return nil ,_gefga ;};_cgafe .YStep =_bcb .MakeFloat (_acfb );_begb =_bcaef .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");if _begb ==nil {_cga .Log .Debug ("\u0052\u0065\u0073\u006f\u0075\u0072\u0063\u0065\u0073\u0020\u006d\u0069s\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ;};_bcaef ,_aadg =_bcb .TraceToDirectObject (_begb ).(*_bcb .PdfObjectDictionary );if !_aadg {return nil ,_e .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0065\u0073\u006f\u0075\u0072\u0063e\u0020d\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u0020\u0028\u0025\u0054\u0029",_begb );};_eaaac ,_gefga :=NewPdfPageResourcesFromDict (_bcaef );if _gefga !=nil {return nil ,_gefga ;};_cgafe .Resources =_eaaac ;if _dggab :=_bcaef .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");_dggab !=nil {_badea ,_cedff :=_dggab .(*_bcb .PdfObjectArray );if !_cedff {_cga .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",_dggab );return nil ,_bcb .ErrTypeError ;};_cgafe .Matrix =_badea ;};return _cgafe ,nil ;};
// GetPageAsIndirectObject returns the page as a dictionary within an PdfIndirectObject.
func (_acgee *PdfPage )GetPageAsIndirectObject ()*_bcb .PdfIndirectObject {return _acgee ._cfabg };func (_egg *PdfReader )newPdfActionFromIndirectObject (_dca *_bcb .PdfIndirectObject )(*PdfAction ,error ){_ega ,_edd :=_dca .PdfObject .(*_bcb .PdfObjectDictionary );if !_edd {return nil ,_e .Errorf ("\u0061\u0063\u0074\u0069\u006f\u006e\u0020\u0069\u006e\u0064\u0069\u0072\u0065\u0063\u0074\u0020\u006f\u0062j\u0065\u0063\u0074\u0020\u006e\u006f\u0074 \u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0069\u006e\u0067\u0020a\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079");};if model :=_egg ._dafbg .GetModelFromPrimitive (_ega );model !=nil {_gdd ,_bfg :=model .(*PdfAction );if !_bfg {return nil ,_e .Errorf ("\u0063\u0061c\u0068\u0065\u0064\u0020\u006d\u006f\u0064\u0065\u006c\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0050\u0044\u0046\u0020\u0061\u0063ti\u006f\u006e");};return _gdd ,nil ;};_ccd :=&PdfAction {};_ccd ._dce =_dca ;_egg ._dafbg .Register (_ega ,_ccd );if _dag :=_ega .Get ("\u0054\u0079\u0070\u0065");_dag !=nil {_bfb ,_cgf :=_dag .(*_bcb .PdfObjectName );if !_cgf {_cga .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",_dag );}else {if *_bfb !="\u0041\u0063\u0074\u0069\u006f\u006e"{_cga .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",*_bfb );};_ccd .Type =_bfb ;};};if _eac :=_ega .Get ("\u004e\u0065\u0078\u0074");_eac !=nil {_ccd .Next =_eac ;};if _fca :=_ega .Get ("\u0053");_fca !=nil {_ccd .S =_fca ;};_eag ,_cd :=_ccd .S .(*_bcb .PdfObjectName );if !_cd {_cga .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",_ccd .S );return nil ,_e .Errorf ("\u0069\u006e\u0076al\u0069\u0064\u0020\u0053\u0020\u006f\u0062\u006a\u0065c\u0074 \u0074y\u0070e\u0020\u0021\u003d\u0020\u006e\u0061\u006d\u0065\u0020\u0028\u0025\u0054\u0029",_ccd .S );};_dcc :=PdfActionType (_eag .String ());switch _dcc {case ActionTypeGoTo :_dace ,_fa :=_egg .newPdfActionGotoFromDict (_ega );if _fa !=nil {return nil ,_fa ;};_dace .PdfAction =_ccd ;_ccd ._dda =_dace ;return _ccd ,nil ;case ActionTypeGoToR :_edfc ,_bff :=_egg .newPdfActionGotoRFromDict (_ega );if _bff !=nil {return nil ,_bff ;};_edfc .PdfAction =_ccd ;_ccd ._dda =_edfc ;return _ccd ,nil ;case ActionTypeGoToE :_cgg ,_bdb :=_egg .newPdfActionGotoEFromDict (_ega );if _bdb !=nil {return nil ,_bdb ;};_cgg .PdfAction =_ccd ;_ccd ._dda =_cgg ;return _ccd ,nil ;case ActionTypeLaunch :_eae ,_eca :=_egg .newPdfActionLaunchFromDict (_ega );if _eca !=nil {return nil ,_eca ;};_eae .PdfAction =_ccd ;_ccd ._dda =_eae ;return _ccd ,nil ;case ActionTypeThread :_acf ,_efg :=_egg .newPdfActionThreadFromDict (_ega );if _efg !=nil {return nil ,_efg ;};_acf .PdfAction =_ccd ;_ccd ._dda =_acf ;return _ccd ,nil ;case ActionTypeURI :_ege ,_acee :=_egg .newPdfActionURIFromDict (_ega );if _acee !=nil {return nil ,_acee ;};_ege .PdfAction =_ccd ;_ccd ._dda =_ege ;return _ccd ,nil ;case ActionTypeSound :_baaf ,_efc :=_egg .newPdfActionSoundFromDict (_ega );if _efc !=nil {return nil ,_efc ;};_baaf .PdfAction =_ccd ;_ccd ._dda =_baaf ;return _ccd ,nil ;case ActionTypeMovie :_bde ,_edae :=_egg .newPdfActionMovieFromDict (_ega );if _edae !=nil {return nil ,_edae ;};_bde .PdfAction =_ccd ;_ccd ._dda =_bde ;return _ccd ,nil ;case ActionTypeHide :_gede ,_bdf :=_egg .newPdfActionHideFromDict (_ega );if _bdf !=nil {return nil ,_bdf ;};_gede .PdfAction =_ccd ;_ccd ._dda =_gede ;return _ccd ,nil ;case ActionTypeNamed :_aag ,_baafb :=_egg .newPdfActionNamedFromDict (_ega );if _baafb !=nil {return nil ,_baafb ;};_aag .PdfAction =_ccd ;_ccd ._dda =_aag ;return _ccd ,nil ;case ActionTypeSubmitForm :_cfag ,_ggg :=_egg .newPdfActionSubmitFormFromDict (_ega );if _ggg !=nil {return nil ,_ggg ;};_cfag .PdfAction =_ccd ;_ccd ._dda =_cfag ;return _ccd ,nil ;case ActionTypeResetForm :_acb ,_fcbb :=_egg .newPdfActionResetFormFromDict (_ega );if _fcbb !=nil {return nil ,_fcbb ;};_acb .PdfAction =_ccd ;_ccd ._dda =_acb ;return _ccd ,nil ;case ActionTypeImportData :_cgge ,_fffe :=_egg .newPdfActionImportDataFromDict (_ega );if _fffe !=nil {return nil ,_fffe ;};_cgge .PdfAction =_ccd ;_ccd ._dda =_cgge ;return _ccd ,nil ;case ActionTypeSetOCGState :_gag ,_aeb :=_egg .newPdfActionSetOCGStateFromDict (_ega );if _aeb !=nil {return nil ,_aeb ;};_gag .PdfAction =_ccd ;_ccd ._dda =_gag ;return _ccd ,nil ;case ActionTypeRendition :_cbd ,_aeae :=_egg .newPdfActionRenditionFromDict (_ega );if _aeae !=nil {return nil ,_aeae ;};_cbd .PdfAction =_ccd ;_ccd ._dda =_cbd ;return _ccd ,nil ;case ActionTypeTrans :_gfe ,_ecgb :=_egg .newPdfActionTransFromDict (_ega );if _ecgb !=nil {return nil ,_ecgb ;};_gfe .PdfAction =_ccd ;_ccd ._dda =_gfe ;return _ccd ,nil ;case ActionTypeGoTo3DView :_beg ,_egd :=_egg .newPdfActionGoTo3DViewFromDict (_ega );if _egd !=nil {return nil ,_egd ;};_beg .PdfAction =_ccd ;_ccd ._dda =_beg ;return _ccd ,nil ;case ActionTypeJavaScript :_bffe ,_efad :=_egg .newPdfActionJavaScriptFromDict (_ega );if _efad !=nil {return nil ,_efad ;};_bffe .PdfAction =_ccd ;_ccd ._dda =_bffe ;return _ccd ,nil ;};_cga .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",_dcc );return nil ,nil ;};func (_ggac *DSS )addCerts (_cfacd [][]byte )([]*_bcb .PdfObjectStream ,error ){return _ggac .add (&_ggac .Certs ,_ggac ._dcbbe ,_cfacd );};func _eegab (_gecd *_bcb .PdfObjectDictionary )(*PdfFieldText ,error ){_edebb :=&PdfFieldText {};_edebb .DA ,_ =_bcb .GetString (_gecd .Get ("\u0044\u0041"));_edebb .Q ,_ =_bcb .GetInt (_gecd .Get ("\u0051"));_edebb .DS ,_ =_bcb .GetString (_gecd .Get ("\u0044\u0053"));_edebb .RV =_gecd .Get ("\u0052\u0056");_edebb .MaxLen ,_ =_bcb .GetInt (_gecd .Get ("\u004d\u0061\u0078\u004c\u0065\u006e"));return _edebb ,nil ;};
// ImageToRGB convert 1-component grayscale data to 3-component RGB.
func (_ffbc *PdfColorspaceDeviceGray )ImageToRGB (img Image )(Image ,error ){if img .ColorComponents !=1{return img ,_ae .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");};_cfcf ,_fcead :=_fgd .NewImage (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),img .ColorComponents ,img .Data ,img ._cdeb ,img ._fdggf );if _fcead !=nil {return img ,_fcead ;};_abfd ,_fcead :=_fgd .NRGBAConverter .Convert (_cfcf );if _fcead !=nil {return img ,_fcead ;};_fbdb :=_gagca (_abfd .Base ());_cga .Log .Trace ("\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079\u0020\u002d>\u0020\u0052\u0047\u0042");_cga .Log .Trace ("s\u0061\u006d\u0070\u006c\u0065\u0073\u003a\u0020\u0025\u0076",img .Data );_cga .Log .Trace ("\u0052G\u0042 \u0073\u0061\u006d\u0070\u006c\u0065\u0073\u003a\u0020\u0025\u0076",_fbdb .Data );_cga .Log .Trace ("\u0025\u0076\u0020\u002d\u003e\u0020\u0025\u0076",img ,_fbdb );return _fbdb ,nil ;};func (_fffc *pdfFontSimple )getFontDescriptor ()*PdfFontDescriptor {if _daadb :=_fffc ._ecaed ;_daadb !=nil {return _daadb ;};return _fffc ._ddee ;};
// NewPdfActionThread returns a new "thread" action.
func NewPdfActionThread ()*PdfActionThread {_fbf :=NewPdfAction ();_ga :=&PdfActionThread {};_ga .PdfAction =_fbf ;_fbf .SetContext (_ga );return _ga ;};
// ToPdfObject returns the PDF representation of the function.
func (_fccc *PdfFunctionType3 )ToPdfObject ()_bcb .PdfObject {_fagef :=_bcb .MakeDict ();_fagef .Set ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065",_bcb .MakeInteger (3));_acfff :=&_bcb .PdfObjectArray {};for _ ,_efff :=range _fccc .Domain {_acfff .Append (_bcb .MakeFloat (_efff ));};_fagef .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_acfff );if _fccc .Range !=nil {_feefd :=&_bcb .PdfObjectArray {};for _ ,_gedbb :=range _fccc .Range {_feefd .Append (_bcb .MakeFloat (_gedbb ));};_fagef .Set ("\u0052\u0061\u006eg\u0065",_feefd );};if _fccc .Functions !=nil {_ffeee :=&_bcb .PdfObjectArray {};for _ ,_eegdg :=range _fccc .Functions {_ffeee .Append (_eegdg .ToPdfObject ());};_fagef .Set ("\u0046u\u006e\u0063\u0074\u0069\u006f\u006es",_ffeee );};if _fccc .Bounds !=nil {_fafc :=&_bcb .PdfObjectArray {};for _ ,_cgff :=range _fccc .Bounds {_fafc .Append (_bcb .MakeFloat (_cgff ));};_fagef .Set ("\u0042\u006f\u0075\u006e\u0064\u0073",_fafc );};if _fccc .Encode !=nil {_egce :=&_bcb .PdfObjectArray {};for _ ,_ggadg :=range _fccc .Encode {_egce .Append (_bcb .MakeFloat (_ggadg ));};_fagef .Set ("\u0045\u006e\u0063\u006f\u0064\u0065",_egce );};if _fccc ._gfbgg !=nil {_fccc ._gfbgg .PdfObject =_fagef ;return _fccc ._gfbgg ;};return _fagef ;};
// Fill populates `form` with values provided by `provider`.
func (_gbcfc *PdfAcroForm )Fill (provider FieldValueProvider )error {return _gbcfc .fill (provider ,nil )};
// ColorFromPdfObjects returns a new PdfColor based on input color components. The input PdfObjects should
// be numeric.
func (_dada *PdfColorspaceDeviceN )ColorFromPdfObjects (objects []_bcb .PdfObject )(PdfColor ,error ){if len (objects )!=_dada .GetNumComponents (){return nil ,_ae .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_ccf ,_ccaf :=_bcb .GetNumbersAsFloat (objects );if _ccaf !=nil {return nil ,_ccaf ;};return _dada .ColorFromFloats (_ccf );};
// ToPdfObject implements interface PdfModel.
func (_acgb *PdfAnnotationHighlight )ToPdfObject ()_bcb .PdfObject {_acgb .PdfAnnotation .ToPdfObject ();_adbg :=_acgb ._daa ;_acbc :=_adbg .PdfObject .(*_bcb .PdfObjectDictionary );_acgb .PdfAnnotationMarkup .appendToPdfDictionary (_acbc );_acbc .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_bcb .MakeName ("\u0048i\u0067\u0068\u006c\u0069\u0067\u0068t"));_acbc .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_acgb .QuadPoints );return _adbg ;};
// ToPdfObject converts rectangle to a PDF object.
func (_feabe *PdfRectangle )ToPdfObject ()_bcb .PdfObject {return _bcb .MakeArray (_bcb .MakeFloat (_feabe .Llx ),_bcb .MakeFloat (_feabe .Lly ),_bcb .MakeFloat (_feabe .Urx ),_bcb .MakeFloat (_feabe .Ury ));};func (_cegd *PdfAppender )replaceObject (_efbe ,_bgge _bcb .PdfObject ){switch _aecb :=_efbe .(type ){case *_bcb .PdfIndirectObject :_cegd ._cfff [_bgge ]=_aecb .ObjectNumber ;case *_bcb .PdfObjectStream :_cegd ._cfff [_bgge ]=_aecb .ObjectNumber ;};};
// GetPageDict converts the Page to a PDF object dictionary.
func (_dbcg *PdfPage )GetPageDict ()*_bcb .PdfObjectDictionary {_feaf :=_dbcg ._fagg ;_feaf .Clear ();_feaf .Set ("\u0054\u0079\u0070\u0065",_bcb .MakeName ("\u0050\u0061\u0067\u0065"));_feaf .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_dbcg .Parent );if _dbcg .LastModified !=nil {_feaf .Set ("\u004c\u0061\u0073t\u004d\u006f\u0064\u0069\u0066\u0069\u0065\u0064",_dbcg .LastModified .ToPdfObject ());};if _dbcg .Resources !=nil {_feaf .Set ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s",_dbcg .Resources .ToPdfObject ());};if _dbcg .CropBox !=nil {_feaf .Set ("\u0043r\u006f\u0070\u0042\u006f\u0078",_dbcg .CropBox .ToPdfObject ());};if _dbcg .MediaBox !=nil {_feaf .Set ("\u004d\u0065\u0064\u0069\u0061\u0042\u006f\u0078",_dbcg .MediaBox .ToPdfObject ());};if _dbcg .BleedBox !=nil {_feaf .Set ("\u0042\u006c\u0065\u0065\u0064\u0042\u006f\u0078",_dbcg .BleedBox .ToPdfObject ());};if _dbcg .TrimBox !=nil {_feaf .Set ("\u0054r\u0069\u006d\u0042\u006f\u0078",_dbcg .TrimBox .ToPdfObject ());};if _dbcg .ArtBox !=nil {_feaf .Set ("\u0041\u0072\u0074\u0042\u006f\u0078",_dbcg .ArtBox .ToPdfObject ());};_feaf .SetIfNotNil ("\u0042\u006f\u0078C\u006f\u006c\u006f\u0072\u0049\u006e\u0066\u006f",_dbcg .BoxColorInfo );_feaf .SetIfNotNil ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073",_dbcg .Contents );if _dbcg .Rotate !=nil {_feaf .Set ("\u0052\u006f\u0074\u0061\u0074\u0065",_bcb .MakeInteger (*_dbcg .Rotate ));};_feaf .SetIfNotNil ("\u0047\u0072\u006fu\u0070",_dbcg .Group );_feaf .SetIfNotNil ("\u0054\u0068\u0075m\u0062",_dbcg .Thumb );_feaf .SetIfNotNil ("\u0042",_dbcg .B );_feaf .SetIfNotNil ("\u0044\u0075\u0072",_dbcg .Dur );_feaf .SetIfNotNil ("\u0054\u0072\u0061n\u0073",_dbcg .Trans );_feaf .SetIfNotNil ("\u0041\u0041",_dbcg .AA );_feaf .SetIfNotNil ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061",_dbcg .Metadata );_feaf .SetIfNotNil ("\u0050i\u0065\u0063\u0065\u0049\u006e\u0066o",_dbcg .PieceInfo );_feaf .SetIfNotNil ("\u0053\u0074\u0072\u0075\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074\u0073",_dbcg .StructParents );_feaf .SetIfNotNil ("\u0049\u0044",_dbcg .ID );_feaf .SetIfNotNil ("\u0050\u005a",_dbcg .PZ );_feaf .SetIfNotNil ("\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006fn\u0049\u006e\u0066\u006f",_dbcg .SeparationInfo );_feaf .SetIfNotNil ("\u0054\u0061\u0062\u0073",_dbcg .Tabs );_feaf .SetIfNotNil ("T\u0065m\u0070\u006c\u0061\u0074\u0065\u0049\u006e\u0073t\u0061\u006e\u0074\u0069at\u0065\u0064",_dbcg .TemplateInstantiated );_feaf .SetIfNotNil ("\u0050r\u0065\u0073\u0053\u0074\u0065\u0070s",_dbcg .PresSteps );_feaf .SetIfNotNil ("\u0055\u0073\u0065\u0072\u0055\u006e\u0069\u0074",_dbcg .UserUnit );_feaf .SetIfNotNil ("\u0056\u0050",_dbcg .VP );if _dbcg ._adgce !=nil {_edgbg :=_bcb .MakeArray ();for _ ,_eebbg :=range _dbcg ._adgce {if _dbfbd :=_eebbg .GetContext ();_dbfbd !=nil {_edgbg .Append (_dbfbd .ToPdfObject ());}else {_edgbg .Append (_eebbg .ToPdfObject ());};};if _edgbg .Len ()> 0{_feaf .Set ("\u0041\u006e\u006e\u006f\u0074\u0073",_edgbg );};}else if _dbcg .Annots !=nil {_feaf .SetIfNotNil ("\u0041\u006e\u006e\u006f\u0074\u0073",_dbcg .Annots );};return _feaf ;};
// ImageToRGB converts image in CalGray color space to RGB (A, B, C -> X, Y, Z).
func (_eadec *PdfColorspaceCalGray )ImageToRGB (img Image )(Image ,error ){_dfaf :=_cgb .NewReader (img .getBase ());_aggd :=_fgd .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),3,nil ,nil ,nil );_dcfe :=_cgb .NewWriter (_aggd );_fdba :=_edb .Pow (2,float64 (img .BitsPerComponent ))-1;_bdbdb :=make ([]uint32 ,3);var (_caeg uint32 ;ANorm ,X ,Y ,Z ,_eacda ,_fafa ,_egde float64 ;_ffdee error ;);for {_caeg ,_ffdee =_dfaf .ReadSample ();if _ffdee ==_fb .EOF {break ;}else if _ffdee !=nil {return img ,_ffdee ;};ANorm =float64 (_caeg )/_fdba ;X =_eadec .WhitePoint [0]*_edb .Pow (ANorm ,_eadec .Gamma );Y =_eadec .WhitePoint [1]*_edb .Pow (ANorm ,_eadec .Gamma );Z =_eadec .WhitePoint [2]*_edb .Pow (ANorm ,_eadec .Gamma );_eacda =3.240479*X +-1.537150*Y +-0.498535*Z ;_fafa =-0.969256*X +1.875992*Y +0.041556*Z ;_egde =0.055648*X +-0.204043*Y +1.057311*Z ;_eacda =_edb .Min (_edb .Max (_eacda ,0),1.0);_fafa =_edb .Min (_edb .Max (_fafa ,0),1.0);_egde =_edb .Min (_edb .Max (_egde ,0),1.0);_bdbdb [0]=uint32 (_eacda *_fdba );_bdbdb [1]=uint32 (_fafa *_fdba );_bdbdb [2]=uint32 (_egde *_fdba );if _ffdee =_dcfe .WriteSamples (_bdbdb );_ffdee !=nil {return img ,_ffdee ;};};return _gagca (&_aggd ),nil ;};
// PdfFont represents an underlying font structure which can be of type:
// - Type0
// - Type1
// - TrueType
// etc.
type PdfFont struct{_fgge pdfFont };
// NewPdfFontFromPdfObject loads a PdfFont from the dictionary `fontObj`. If there is a problem an
// error is returned.
func NewPdfFontFromPdfObject (fontObj _bcb .PdfObject )(*PdfFont ,error ){return _aabe (fontObj ,true )};func _agcd (_aaabg *_bcb .PdfObjectDictionary )(*PdfFieldChoice ,error ){_feed :=&PdfFieldChoice {};_feed .Opt ,_ =_bcb .GetArray (_aaabg .Get ("\u004f\u0070\u0074"));_feed .TI ,_ =_bcb .GetInt (_aaabg .Get ("\u0054\u0049"));_feed .I ,_ =_bcb .GetArray (_aaabg .Get ("\u0049"));return _feed ,nil ;};
// NewPdfColorspaceICCBased returns a new ICCBased colorspace object.
func NewPdfColorspaceICCBased (N int )(*PdfColorspaceICCBased ,error ){_egge :=&PdfColorspaceICCBased {};if N !=1&&N !=3&&N !=4{return nil ,_e .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u004e\u0020\u0028\u0031/\u0033\u002f\u0034\u0029");};_egge .N =N ;return _egge ,nil ;};func (_ecdg *pdfFontType0 )subsetRegistered ()error {_bbbab ,_cbfeg :=_ecdg .DescendantFont ._fgge .(*pdfCIDFontType2 );if !_cbfeg {_cga .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",_ecdg .DescendantFont );return nil ;};if _bbbab ==nil {return nil ;};if _bbbab ._ecaed ==nil {_cga .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 _ecdg ._cfaee ==nil {_cga .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 ;};_ceeca ,_cbfeg :=_bcb .GetStream (_bbbab ._ecaed .FontFile2 );if !_cbfeg {_cga .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 _ae .New ("\u0066\u006f\u006e\u0074fi\u006c\u0065\u0032\u0020\u006e\u006f\u0074\u0020\u0066\u006f\u0075\u006e\u0064");};_efdf ,_gcgb :=_bcb .DecodeStream (_ceeca );if _gcgb !=nil {_cga .Log .Debug ("\u0044\u0065c\u006f\u0064\u0065 \u0065\u0072\u0072\u006f\u0072\u003a\u0020\u0025\u0076",_gcgb );return _gcgb ;};_agbbd ,_gcgb :=_bd .Parse (_ede .NewReader (_efdf ));if _gcgb !=nil {_cga .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 (_ceeca .Stream ));return _gcgb ;};var _gcae []rune ;var _ccgea *_bd .Font ;switch _adfac :=_ecdg ._cfaee .(type ){case *_ddd .TrueTypeFontEncoder :_gcae =_adfac .RegisteredRunes ();_ccgea ,_gcgb =_agbbd .SubsetKeepRunes (_gcae );if _gcgb !=nil {_cga .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_gcgb );return _gcgb ;};_adfac .SubsetRegistered ();case *_ddd .IdentityEncoder :_gcae =_adfac .RegisteredRunes ();_edfcca :=make ([]_bd .GlyphIndex ,len (_gcae ));for _aeaag ,_gfaf :=range _gcae {_edfcca [_aeaag ]=_bd .GlyphIndex (_gfaf );};_ccgea ,_gcgb =_agbbd .SubsetKeepIndices (_edfcca );if _gcgb !=nil {_cga .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_gcgb );return _gcgb ;};case _ddd .SimpleEncoder :_bgea :=_adfac .Charcodes ();for _ ,_gadde :=range _bgea {_acag ,_ggdeg :=_adfac .CharcodeToRune (_gadde );if !_ggdeg {_cga .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",_gadde );continue ;};_gcae =append (_gcae ,_acag );};default:return _e .Errorf ("\u0075\u006e\u0073\u0075\u0070\u0070\u006f\u0072\u0074\u0065\u0064\u0020\u0065\u006e\u0063\u006f\u0064\u0065\u0072\u0020\u0066\u006f\u0072\u0020s\u0075\u0062\u0073\u0065\u0074t\u0069\u006eg\u003a\u0020\u0025\u0054",_ecdg ._cfaee );};var _cdcf _ede .Buffer ;_gcgb =_ccgea .Write (&_cdcf );if _gcgb !=nil {_cga .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_gcgb );return _gcgb ;};if _ecdg ._ecbe !=nil {_fgbfe :=make (map[_dc .CharCode ]rune ,len (_gcae ));for _ ,_egcbb :=range _gcae {_abgca ,_dgeb :=_ecdg ._cfaee .RuneToCharcode (_egcbb );if !_dgeb {continue ;};_fgbfe [_dc .CharCode (_abgca )]=_egcbb ;};_ecdg ._ecbe =_dc .NewToUnicodeCMap (_fgbfe );};_ceeca ,_gcgb =_bcb .MakeStream (_cdcf .Bytes (),_bcb .NewFlateEncoder ());if _gcgb !=nil {_cga .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_gcgb );return _gcgb ;};_ceeca .Set ("\u004ce\u006e\u0067\u0074\u0068\u0031",_bcb .MakeInteger (int64 (_cdcf .Len ())));if _cgdb ,_acgc :=_bcb .GetStream (_bbbab ._ecaed .FontFile2 );_acgc {*_cgdb =*_ceeca ;}else {_bbbab ._ecaed .FontFile2 =_ceeca ;};_fdaac :=_ddggc ();if len (_ecdg ._daeb )> 0{_ecdg ._daeb =_dgdf (_ecdg ._daeb ,_fdaac );};if len (_bbbab ._daeb )> 0{_bbbab ._daeb =_dgdf (_bbbab ._daeb ,_fdaac );};if len (_ecdg ._gbfc )> 0{_ecdg ._gbfc =_dgdf (_ecdg ._gbfc ,_fdaac );};if _bbbab ._ecaed !=nil {_bfbgc ,_gafc :=_bcb .GetName (_bbbab ._ecaed .FontName );if _gafc &&len (_bfbgc .String ())> 0{_cebbc :=_dgdf (_bfbgc .String (),_fdaac );_bbbab ._ecaed .FontName =_bcb .MakeName (_cebbc );};};return nil ;};
// AcroFormRepairOptions contains options for rebuilding the AcroForm.
type AcroFormRepairOptions struct{};
// SetOptimizer sets the optimizer to optimize PDF before writing.
func (_abdgd *PdfWriter )SetOptimizer (optimizer Optimizer ){_abdgd ._bgefd =optimizer };func (_ddbb *PdfReader )newPdfActionGoTo3DViewFromDict (_edfe *_bcb .PdfObjectDictionary )(*PdfActionGoTo3DView ,error ){return &PdfActionGoTo3DView {TA :_edfe .Get ("\u0054\u0041"),V :_edfe .Get ("\u0056")},nil ;};
// ToPdfObject returns the PDF representation of the VRI dictionary.
func (_ffcfd *VRI )ToPdfObject ()*_bcb .PdfObjectDictionary {_geadb :=_bcb .MakeDict ();_geadb .SetIfNotNil (_bcb .PdfObjectName ("\u0043\u0065\u0072\u0074"),_cbgcg (_ffcfd .Cert ));_geadb .SetIfNotNil (_bcb .PdfObjectName ("\u004f\u0043\u0053\u0050"),_cbgcg (_ffcfd .OCSP ));_geadb .SetIfNotNil (_bcb .PdfObjectName ("\u0043\u0052\u004c"),_cbgcg (_ffcfd .CRL ));_geadb .SetIfNotNil ("\u0054\u0055",_ffcfd .TU );_geadb .SetIfNotNil ("\u0054\u0053",_ffcfd .TS );return _geadb ;};
// 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 ){_dccf ,_dcda :=_edebg (basefont );if _dcda !=nil {return nil ,_dcda ;};if basefont !=SymbolName &&basefont !=ZapfDingbatsName {_dccf ._fdebc =_ddd .NewWinAnsiEncoder ();};return &PdfFont {_fgge :&_dccf },nil ;};
// PdfFontDescriptor specifies metrics and other attributes of a font and can refer to a FontFile
// for embedded fonts.
// 9.8 Font Descriptors (page 281)
type PdfFontDescriptor struct{FontName _bcb .PdfObject ;FontFamily _bcb .PdfObject ;FontStretch _bcb .PdfObject ;FontWeight _bcb .PdfObject ;Flags _bcb .PdfObject ;FontBBox _bcb .PdfObject ;ItalicAngle _bcb .PdfObject ;Ascent _bcb .PdfObject ;Descent _bcb .PdfObject ;Leading _bcb .PdfObject ;CapHeight _bcb .PdfObject ;XHeight _bcb .PdfObject ;StemV _bcb .PdfObject ;StemH _bcb .PdfObject ;AvgWidth _bcb .PdfObject ;MaxWidth _bcb .PdfObject ;MissingWidth _bcb .PdfObject ;FontFile _bcb .PdfObject ;FontFile2 _bcb .PdfObject ;FontFile3 _bcb .PdfObject ;CharSet _bcb .PdfObject ;_fefb int ;_adfb float64 ;*fontFile ;_bdecf *_acc .TtfType ;
// Additional entries for CIDFonts
Style _bcb .PdfObject ;Lang _bcb .PdfObject ;FD _bcb .PdfObject ;CIDSet _bcb .PdfObject ;_aaed *_bcb .PdfIndirectObject ;};
// 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 _bcb .PdfObject )(_bcb .PdfObjectName ,error ){var _adcef *_bcb .PdfObjectName ;var _afda *_bcb .PdfObjectArray ;if _bafgf ,_gggc :=obj .(*_bcb .PdfIndirectObject );_gggc {if _cfcb ,_cgec :=_bafgf .PdfObject .(*_bcb .PdfObjectArray );_cgec {_afda =_cfcb ;}else if _adgg ,_bcadg :=_bafgf .PdfObject .(*_bcb .PdfObjectName );_bcadg {_adcef =_adgg ;};}else if _gdfg ,_fcgaf :=obj .(*_bcb .PdfObjectArray );_fcgaf {_afda =_gdfg ;}else if _gcbfg ,_beec :=obj .(*_bcb .PdfObjectName );_beec {_adcef =_gcbfg ;};if _adcef !=nil {switch *_adcef {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 *_adcef ,nil ;case "\u0050a\u0074\u0074\u0065\u0072\u006e":return *_adcef ,nil ;};};if _afda !=nil &&_afda .Len ()> 0{if _ccae ,_bcfb :=_afda .Get (0).(*_bcb .PdfObjectName );_bcfb {switch *_ccae {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 _afda .Len ()==1{return *_ccae ,nil ;};case "\u0043a\u006c\u0047\u0072\u0061\u0079","\u0043\u0061\u006c\u0052\u0047\u0042","\u004c\u0061\u0062":return *_ccae ,nil ;case "\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064","\u0050a\u0074\u0074\u0065\u0072\u006e","\u0049n\u0064\u0065\u0078\u0065\u0064":return *_ccae ,nil ;case "\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e","\u0044e\u0076\u0069\u0063\u0065\u004e":return *_ccae ,nil ;};};};return "",nil ;};func (_dbfc *PdfAnnotationMarkup )appendToPdfDictionary (_ggefa *_bcb .PdfObjectDictionary ){_ggefa .SetIfNotNil ("\u0054",_dbfc .T );if _dbfc .Popup !=nil {_ggefa .Set ("\u0050\u006f\u0070u\u0070",_dbfc .Popup .ToPdfObject ());};_ggefa .SetIfNotNil ("\u0043\u0041",_dbfc .CA );_ggefa .SetIfNotNil ("\u0052\u0043",_dbfc .RC );_ggefa .SetIfNotNil ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065",_dbfc .CreationDate );_ggefa .SetIfNotNil ("\u0049\u0052\u0054",_dbfc .IRT );_ggefa .SetIfNotNil ("\u0053\u0075\u0062\u006a",_dbfc .Subj );_ggefa .SetIfNotNil ("\u0052\u0054",_dbfc .RT );_ggefa .SetIfNotNil ("\u0049\u0054",_dbfc .IT );_ggefa .SetIfNotNil ("\u0045\u0078\u0044\u0061\u0074\u0061",_dbfc .ExData );};
// NewPdfColorspaceSpecialSeparation returns a new separation color.
func NewPdfColorspaceSpecialSeparation ()*PdfColorspaceSpecialSeparation {_eee :=&PdfColorspaceSpecialSeparation {};return _eee ;};
// 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 _fb .ReadSeeker )(*PdfFont ,error ){const _ceadcg =_ddd .CharCode (32);const _ggec =_ddd .CharCode (255);_fgff ,_degd :=_fd .ReadAll (r );if _degd !=nil {_cga .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",_degd );return nil ,_degd ;};_aefc ,_degd :=_acc .TtfParse (_ede .NewReader (_fgff ));if _degd !=nil {_cga .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",_degd );return nil ,_degd ;};_bdgd :=&pdfFontSimple {_dgdfc :make (map[_ddd .CharCode ]float64 ),fontCommon :fontCommon {_abgg :"\u0054\u0072\u0075\u0065\u0054\u0079\u0070\u0065"}};_bdgd ._fdebc =_ddd .NewWinAnsiEncoder ();_bdgd ._daeb =_aefc .PostScriptName ;_bdgd .FirstChar =_bcb .MakeInteger (int64 (_ceadcg ));_bdgd .LastChar =_bcb .MakeInteger (int64 (_ggec ));_fgfdb :=1000.0/float64 (_aefc .UnitsPerEm );if len (_aefc .Widths )<=0{return nil ,_ae .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");};_afcd :=_fgfdb *float64 (_aefc .Widths [0]);_gfea :=make ([]float64 ,0,_ggec -_ceadcg +1);for _gfbb :=_ceadcg ;_gfbb <=_ggec ;_gfbb ++{_cegda ,_bfgfc :=_bdgd .Encoder ().CharcodeToRune (_gfbb );if !_bfgfc {_cga .Log .Debug ("\u0052u\u006e\u0065\u0020\u006eo\u0074\u0020\u0066\u006f\u0075n\u0064 \u0028c\u006f\u0064\u0065\u003a\u0020\u0025\u0064)",_gfbb );_gfea =append (_gfea ,_afcd );continue ;};_ddeea ,_dddgcb :=_aefc .Chars [_cegda ];if !_dddgcb {_cga .Log .Debug ("R\u0075\u006e\u0065\u0020no\u0074 \u0069\u006e\u0020\u0054\u0054F\u0020\u0043\u0068\u0061\u0072\u0073");_gfea =append (_gfea ,_afcd );continue ;};_adbfc :=_fgfdb *float64 (_aefc .Widths [_ddeea ]);_gfea =append (_gfea ,_adbfc );};_bdgd .Widths =_bcb .MakeIndirectObject (_bcb .MakeArrayFromFloats (_gfea ));if len (_gfea )< int (_ggec -_ceadcg +1){_cga .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 (_gfea ),255-32+1);return nil ,_bcb .ErrRangeError ;};for _cgbaa :=_ceadcg ;_cgbaa <=_ggec ;_cgbaa ++{_bdgd ._dgdfc [_cgbaa ]=_gfea [_cgbaa -_ceadcg ];};_bdgd .Encoding =_bcb .MakeName ("\u0057i\u006eA\u006e\u0073\u0069\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067");_dbfd :=&PdfFontDescriptor {};_dbfd .FontName =_bcb .MakeName (_aefc .PostScriptName );_dbfd .Ascent =_bcb .MakeFloat (_fgfdb *float64 (_aefc .TypoAscender ));_dbfd .Descent =_bcb .MakeFloat (_fgfdb *float64 (_aefc .TypoDescender ));_dbfd .CapHeight =_bcb .MakeFloat (_fgfdb *float64 (_aefc .CapHeight ));_dbfd .FontBBox =_bcb .MakeArrayFromFloats ([]float64 {_fgfdb *float64 (_aefc .Xmin ),_fgfdb *float64 (_aefc .Ymin ),_fgfdb *float64 (_aefc .Xmax ),_fgfdb *float64 (_aefc .Ymax )});_dbfd .ItalicAngle =_bcb .MakeFloat (_aefc .ItalicAngle );_dbfd .MissingWidth =_bcb .MakeFloat (_fgfdb *float64 (_aefc .Widths [0]));_baafbg ,_degd :=_bcb .MakeStream (_fgff ,_bcb .NewFlateEncoder ());if _degd !=nil {_cga .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",_degd );return nil ,_degd ;};_baafbg .PdfObjectDictionary .Set ("\u004ce\u006e\u0067\u0074\u0068\u0031",_bcb .MakeInteger (int64 (len (_fgff ))));_dbfd .FontFile2 =_baafbg ;if _aefc .Bold {_dbfd .StemV =_bcb .MakeInteger (120);}else {_dbfd .StemV =_bcb .MakeInteger (70);};_gced :=_eccbf ;if _aefc .IsFixedPitch {_gced |=_dbfb ;};if _aefc .ItalicAngle !=0{_gced |=_egac ;};_dbfd .Flags =_bcb .MakeInteger (int64 (_gced ));_bdgd ._ecaed =_dbfd ;_eagg :=&PdfFont {_fgge :_bdgd };return _eagg ,nil ;};
// GetContainingPdfObject returns the container of the resources object (indirect object).
func (_bfcd *PdfPageResources )GetContainingPdfObject ()_bcb .PdfObject {return _bfcd ._daggd };
// 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 (_ggdgd *XObjectForm )SetContentStream (content []byte ,encoder _bcb .StreamEncoder )error {_bafge :=content ;if encoder ==nil {if _ggdgd .Filter !=nil {encoder =_ggdgd .Filter ;}else {encoder =_bcb .NewRawEncoder ();};};_fdff ,_ddfbb :=encoder .EncodeBytes (_bafge );if _ddfbb !=nil {return _ddfbb ;};_bafge =_fdff ;_ggdgd .Stream =_bafge ;_ggdgd .Filter =encoder ;return nil ;};func _fgcb (_bgcg *_bcb .PdfObjectDictionary )(*PdfShadingType1 ,error ){_baaee :=PdfShadingType1 {};if _abfc :=_bgcg .Get ("\u0044\u006f\u006d\u0061\u0069\u006e");_abfc !=nil {_abfc =_bcb .TraceToDirectObject (_abfc );_bafgc ,_bbcgg :=_abfc .(*_bcb .PdfObjectArray );if !_bbcgg {_cga .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",_abfc );return nil ,_ae .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_baaee .Domain =_bafgc ;};if _eacaa :=_bgcg .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");_eacaa !=nil {_eacaa =_bcb .TraceToDirectObject (_eacaa );_egab ,_cfdg :=_eacaa .(*_bcb .PdfObjectArray );if !_cfdg {_cga .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",_eacaa );return nil ,_ae .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_baaee .Matrix =_egab ;};_eadab :=_bgcg .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");if _eadab ==nil {_cga .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 ;};_baaee .Function =[]PdfFunction {};if _bgebg ,_ffebb :=_eadab .(*_bcb .PdfObjectArray );_ffebb {for _ ,_fafg :=range _bgebg .Elements (){_acbffc ,_bfcg :=_acdfd (_fafg );if _bfcg !=nil {_cga .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",_bfcg );return nil ,_bfcg ;};_baaee .Function =append (_baaee .Function ,_acbffc );};}else {_eddaed ,_cgfb :=_acdfd (_eadab );if _cgfb !=nil {_cga .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",_cgfb );return nil ,_cgfb ;};_baaee .Function =append (_baaee .Function ,_eddaed );};return &_baaee ,nil ;};
// ToPdfObject implements interface PdfModel.
func (_eeg *PdfActionThread )ToPdfObject ()_bcb .PdfObject {_eeg .PdfAction .ToPdfObject ();_eg :=_eeg ._dce ;_gce :=_eg .PdfObject .(*_bcb .PdfObjectDictionary );_gce .SetIfNotNil ("\u0053",_bcb .MakeName (string (ActionTypeThread )));if _eeg .F !=nil {_gce .Set ("\u0046",_eeg .F .ToPdfObject ());};_gce .SetIfNotNil ("\u0044",_eeg .D );_gce .SetIfNotNil ("\u0042",_eeg .B );return _eg ;};
// NewPdfColorCalGray returns a new CalGray color.
func NewPdfColorCalGray (grayVal float64 )*PdfColorCalGray {_edde :=PdfColorCalGray (grayVal );return &_edde ;};
// 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 *_bcb .PdfObjectInteger ;ColorSpace PdfColorspace ;Background *_bcb .PdfObjectArray ;BBox *PdfRectangle ;AntiAlias *_bcb .PdfObjectBool ;_gcbd PdfModel ;_eced _bcb .PdfObject ;};
// ToGoImage converts the unidoc Image to a golang Image structure.
func (_aggaa *Image )ToGoImage ()(_ac .Image ,error ){_cga .Log .Trace ("\u0043\u006f\u006e\u0076er\u0074\u0069\u006e\u0067\u0020\u0074\u006f\u0020\u0067\u006f\u0020\u0069\u006d\u0061g\u0065");_ggbgab ,_fgcge :=_fgd .NewImage (int (_aggaa .Width ),int (_aggaa .Height ),int (_aggaa .BitsPerComponent ),_aggaa .ColorComponents ,_aggaa .Data ,_aggaa ._cdeb ,_aggaa ._fdggf );if _fgcge !=nil {return nil ,_fgcge ;};return _ggbgab ,nil ;};
// NewPdfField returns an initialized PdfField.
func NewPdfField ()*PdfField {return &PdfField {_gggf :_bcb .MakeIndirectObject (_bcb .MakeDict ())}};
// GetEncryptionMethod returns a descriptive information string about the encryption method used.
func (_fbbc *PdfReader )GetEncryptionMethod ()string {_febfd :=_fbbc ._ecage .GetCrypter ();return _febfd .String ();};
// ColorFromFloats returns a new PdfColor based on input color components.
func (_cgcb *PdfColorspaceDeviceN )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=_cgcb .GetNumComponents (){return nil ,_ae .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_aaff ,_eaabg :=_cgcb .TintTransform .Evaluate (vals );if _eaabg !=nil {return nil ,_eaabg ;};_efbd ,_eaabg :=_cgcb .AlternateSpace .ColorFromFloats (_aaff );if _eaabg !=nil {return nil ,_eaabg ;};return _efbd ,nil ;};
// PdfAnnotationStamp represents Stamp annotations.
// (Section 12.5.6.12).
type PdfAnnotationStamp struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Name _bcb .PdfObject ;};
// PdfAnnotationHighlight represents Highlight annotations.
// (Section 12.5.6.10).
type PdfAnnotationHighlight struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _bcb .PdfObject ;};func (_bdgad fontCommon )fontFlags ()int {if _bdgad ._ecaed ==nil {return 0;};return _bdgad ._ecaed ._fefb ;};
// 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 (_fdca *PdfColorspaceLab )ColorFromPdfObjects (objects []_bcb .PdfObject )(PdfColor ,error ){if len (objects )!=3{return nil ,_ae .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_gccd ,_gaec :=_bcb .GetNumbersAsFloat (objects );if _gaec !=nil {return nil ,_gaec ;};return _fdca .ColorFromFloats (_gccd );};
// NewPdfAction returns an initialized generic PDF action model.
func NewPdfAction ()*PdfAction {_abg :=&PdfAction {};_abg ._dce =_bcb .MakeIndirectObject (_bcb .MakeDict ());return _abg ;};
// ToPdfObject implements interface PdfModel.
func (_fffg *PdfAnnotationInk )ToPdfObject ()_bcb .PdfObject {_fffg .PdfAnnotation .ToPdfObject ();_ecc :=_fffg ._daa ;_gdda :=_ecc .PdfObject .(*_bcb .PdfObjectDictionary );_fffg .PdfAnnotationMarkup .appendToPdfDictionary (_gdda );_gdda .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_bcb .MakeName ("\u0049\u006e\u006b"));_gdda .SetIfNotNil ("\u0049n\u006b\u004c\u0069\u0073\u0074",_fffg .InkList );_gdda .SetIfNotNil ("\u0042\u0053",_fffg .BS );return _ecc ;};
// BaseFont returns the font's "BaseFont" field.
func (_fagc *PdfFont )BaseFont ()string {return _fagc .baseFields ()._daeb };
// GetContainingPdfObject returns the container of the outline item (indirect object).
func (_daece *PdfOutlineItem )GetContainingPdfObject ()_bcb .PdfObject {return _daece ._afff };
// ToPdfObject implements interface PdfModel.
func (_abe *PdfActionSetOCGState )ToPdfObject ()_bcb .PdfObject {_abe .PdfAction .ToPdfObject ();_ggd :=_abe ._dce ;_eba :=_ggd .PdfObject .(*_bcb .PdfObjectDictionary );_eba .SetIfNotNil ("\u0053",_bcb .MakeName (string (ActionTypeSetOCGState )));_eba .SetIfNotNil ("\u0053\u0074\u0061t\u0065",_abe .State );_eba .SetIfNotNil ("\u0050\u0072\u0065\u0073\u0065\u0072\u0076\u0065\u0052\u0042",_abe .PreserveRB );return _ggd ;};
// 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 (_egfdf *PdfPage )SetContentStreams (cStreams []string ,encoder _bcb .StreamEncoder )error {if len (cStreams )==0{_egfdf .Contents =nil ;return nil ;};if encoder ==nil {encoder =_bcb .NewRawEncoder ();};var _bfec []*_bcb .PdfObjectStream ;for _ ,_dgdga :=range cStreams {_agbgg :=&_bcb .PdfObjectStream {};_dcddd :=encoder .MakeStreamDict ();_bfebf ,_gdefa :=encoder .EncodeBytes ([]byte (_dgdga ));if _gdefa !=nil {return _gdefa ;};_dcddd .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_bcb .MakeInteger (int64 (len (_bfebf ))));_agbgg .PdfObjectDictionary =_dcddd ;_agbgg .Stream =_bfebf ;_bfec =append (_bfec ,_agbgg );};if len (_bfec )==1{_egfdf .Contents =_bfec [0];}else {_ebccgd :=_bcb .MakeArray ();for _ ,_ceee :=range _bfec {_ebccgd .Append (_ceee );};_egfdf .Contents =_ebccgd ;};return nil ;};
// ColorToRGB converts a CMYK32 color to an RGB color.
func (_gedf *PdfColorspaceDeviceCMYK )ColorToRGB (color PdfColor )(PdfColor ,error ){_febd ,_aedee :=color .(*PdfColorDeviceCMYK );if !_aedee {_cga .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 ,_ae .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_faaf :=_febd .C ();_dfac :=_febd .M ();_dagb :=_febd .Y ();_feef :=_febd .K ();_faaf =_faaf *(1-_feef )+_feef ;_dfac =_dfac *(1-_feef )+_feef ;_dagb =_dagb *(1-_feef )+_feef ;_dedc :=1-_faaf ;_eaage :=1-_dfac ;_febc :=1-_dagb ;return NewPdfColorDeviceRGB (_dedc ,_eaage ,_febc ),nil ;};
// SetContext sets the sub pattern (context). Either PdfTilingPattern or PdfShadingPattern.
func (_bddgg *PdfPattern )SetContext (ctx PdfModel ){_bddgg ._adccc =ctx };
// GetModelFromPrimitive returns the model corresponding to the `primitive` PdfObject.
func (_ffeaf *modelManager )GetModelFromPrimitive (primitive _bcb .PdfObject )PdfModel {model ,_bfca :=_ffeaf ._ecfgbb [primitive ];if !_bfca {return nil ;};return model ;};
// PdfShadingType3 is a Radial shading.
type PdfShadingType3 struct{*PdfShading ;Coords *_bcb .PdfObjectArray ;Domain *_bcb .PdfObjectArray ;Function []PdfFunction ;Extend *_bcb .PdfObjectArray ;};
// 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 (_ffaa *PdfSignature )bool ;Validate (_acdfb *PdfSignature ,_gabeb Hasher )(SignatureValidationResult ,error );
// InitSignature sets the PdfSignature parameters.
InitSignature (*PdfSignature )error ;NewDigest (_eebe *PdfSignature )(Hasher ,error );Sign (_ddfdg *PdfSignature ,_dbfae Hasher )error ;};
// NewPdfAnnotationRedact returns a new redact annotation.
func NewPdfAnnotationRedact ()*PdfAnnotationRedact {_gfed :=NewPdfAnnotation ();_gcb :=&PdfAnnotationRedact {};_gcb .PdfAnnotation =_gfed ;_gcb .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_gfed .SetContext (_gcb );return _gcb ;};func (_adgff *PdfReader )newPdfFieldFromIndirectObject (_fbdba *_bcb .PdfIndirectObject ,_daaba *PdfField )(*PdfField ,error ){if _babe ,_agbb :=_adgff ._dafbg .GetModelFromPrimitive (_fbdba ).(*PdfField );_agbb {return _babe ,nil ;};_gbdgf ,_cdabf :=_bcb .GetDict (_fbdba );if !_cdabf {return nil ,_e .Errorf ("\u0050\u0064f\u0046\u0069\u0065\u006c\u0064 \u0069\u006e\u0064\u0069\u0072e\u0063\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0020\u006e\u006f\u0074\u0020\u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0069\u006e\u0067\u0020\u0061\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079");};_bfgg :=NewPdfField ();_bfgg ._gggf =_fbdba ;_bfgg ._gggf .PdfObject =_gbdgf ;if _caaa ,_afgcd :=_bcb .GetName (_gbdgf .Get ("\u0046\u0054"));_afgcd {_bfgg .FT =_caaa ;};if _daaba !=nil {_bfgg .Parent =_daaba ;};_bfgg .T ,_ =_gbdgf .Get ("\u0054").(*_bcb .PdfObjectString );_bfgg .TU ,_ =_gbdgf .Get ("\u0054\u0055").(*_bcb .PdfObjectString );_bfgg .TM ,_ =_gbdgf .Get ("\u0054\u004d").(*_bcb .PdfObjectString );_bfgg .Ff ,_ =_gbdgf .Get ("\u0046\u0066").(*_bcb .PdfObjectInteger );_bfgg .V =_gbdgf .Get ("\u0056");_bfgg .DV =_gbdgf .Get ("\u0044\u0056");_bfgg .AA =_gbdgf .Get ("\u0041\u0041");_bffab :=_bfgg .FT ;if _bffab ==nil &&_daaba !=nil {_bffab =_daaba .FT ;};if _bffab !=nil {switch *_bffab {case "\u0054\u0078":_cfgbg ,_becfc :=_eegab (_gbdgf );if _becfc !=nil {return nil ,_becfc ;};_cfgbg .PdfField =_bfgg ;_bfgg ._fegde =_cfgbg ;case "\u0043\u0068":_dead ,_dafg :=_agcd (_gbdgf );if _dafg !=nil {return nil ,_dafg ;};_dead .PdfField =_bfgg ;_bfgg ._fegde =_dead ;case "\u0042\u0074\u006e":_dbae ,_dbcfc :=_efbdf (_gbdgf );if _dbcfc !=nil {return nil ,_dbcfc ;};_dbae .PdfField =_bfgg ;_bfgg ._fegde =_dbae ;case "\u0053\u0069\u0067":_gaed ,_daff :=_adgff .newPdfFieldSignatureFromDict (_gbdgf );if _daff !=nil {return nil ,_daff ;};_gaed .PdfField =_bfgg ;_bfgg ._fegde =_gaed ;default:_cga .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",*_bfgg .FT );return nil ,_ae .New ("\u0075\u006e\u0073\u0075pp\u006f\u0072\u0074\u0065\u0064\u0020\u0066\u0069\u0065\u006c\u0064\u0020\u0074\u0079p\u0065");};};if _gdefd ,_cbed :=_bcb .GetName (_gbdgf .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065"));_cbed {if *_gdefd =="\u0057\u0069\u0064\u0067\u0065\u0074"{_ffeg ,_dadca :=_adgff .newPdfAnnotationFromIndirectObject (_fbdba );if _dadca !=nil {return nil ,_dadca ;};_abaf ,_ddbf :=_ffeg .GetContext ().(*PdfAnnotationWidget );if !_ddbf {return nil ,_ae .New ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0077\u0069\u0064\u0067e\u0074 \u0061n\u006e\u006f\u0074\u0061\u0074\u0069\u006fn");};_abaf ._cbgd =_bfgg ;_abaf .Parent =_bfgg ._gggf ;_bfgg .Annotations =append (_bfgg .Annotations ,_abaf );return _bfgg ,nil ;};};_affcc :=true ;if _acef ,_bdffa :=_bcb .GetArray (_gbdgf .Get ("\u004b\u0069\u0064\u0073"));_bdffa {_adcab :=make ([]*_bcb .PdfIndirectObject ,0,_acef .Len ());for _ ,_bdcf :=range _acef .Elements (){_fcbgd ,_gabcc :=_bcb .GetIndirect (_bdcf );if !_gabcc {_dbfe ,_gddbb :=_bcb .GetStream (_bdcf );if _gddbb &&_dbfe .PdfObjectDictionary !=nil {_efcgb ,_dgac :=_bcb .GetNameVal (_dbfe .Get ("\u0054\u0079\u0070\u0065"));if _dgac &&_efcgb =="\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061"{_cga .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 ,_ae .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");};_gbeeg ,_bdfg :=_bcb .GetDict (_fcbgd );if !_bdfg {return nil ,ErrTypeCheck ;};if _affcc {_affcc =!_abcc (_gbeeg );};_adcab =append (_adcab ,_fcbgd );};for _ ,_abccg :=range _adcab {if _affcc {_geggf ,_ffcbf :=_adgff .newPdfAnnotationFromIndirectObject (_abccg );if _ffcbf !=nil {_cga .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",_ffcbf );return nil ,_ffcbf ;};_aagf ,_ggggd :=_geggf ._feb .(*PdfAnnotationWidget );if !_ggggd {return nil ,ErrTypeCheck ;};_aagf ._cbgd =_bfgg ;_bfgg .Annotations =append (_bfgg .Annotations ,_aagf );}else {_ecdd ,_eadfe :=_adgff .newPdfFieldFromIndirectObject (_abccg ,_bfgg );if _eadfe !=nil {_cga .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",_eadfe );return nil ,_eadfe ;};_bfgg .Kids =append (_bfgg .Kids ,_ecdd );};};};return _bfgg ,nil ;};
// NewPdfAcroForm returns a new PdfAcroForm with an intialized container (indirect object).
func NewPdfAcroForm ()*PdfAcroForm {return &PdfAcroForm {Fields :&[]*PdfField {},_gacgf :_bcb .MakeIndirectObject (_bcb .MakeDict ())};};func _abcc (_eeaa *_bcb .PdfObjectDictionary )bool {for _ ,_beff :=range _eeaa .Keys (){if _ ,_ebbbf :=_fedb [_beff .String ()];_ebbbf {return true ;};};return false ;};
// 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 ){_ccgf :=PdfDate {};_efbgad :=_bgaca .FindAllStringSubmatch (dateStr ,1);if len (_efbgad )< 1{return _ccgf ,_e .Errorf ("\u0069n\u0076\u0061\u006c\u0069\u0064\u0020\u0064\u0061\u0074\u0065\u0020s\u0074\u0072\u0069\u006e\u0067\u0020\u0028\u0025\u0073\u0029",dateStr );};if len (_efbgad [0])!=10{return _ccgf ,_ae .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");};_ccgf ._ffcaf ,_ =_ea .ParseInt (_efbgad [0][1],10,32);_ccgf ._caegfa ,_ =_ea .ParseInt (_efbgad [0][2],10,32);_ccgf ._egaf ,_ =_ea .ParseInt (_efbgad [0][3],10,32);_ccgf ._dagbf ,_ =_ea .ParseInt (_efbgad [0][4],10,32);_ccgf ._dgdge ,_ =_ea .ParseInt (_efbgad [0][5],10,32);_ccgf ._adbfb ,_ =_ea .ParseInt (_efbgad [0][6],10,32);if len (_efbgad [0][7])> 0{_ccgf ._ddadb =_efbgad [0][7][0];}else {_ccgf ._ddadb ='+';};if len (_efbgad [0][8])> 0{_ccgf ._cdaaf ,_ =_ea .ParseInt (_efbgad [0][8],10,32);}else {_ccgf ._cdaaf =0;};if len (_efbgad [0][9])> 0{_ccgf ._afde ,_ =_ea .ParseInt (_efbgad [0][9],10,32);}else {_ccgf ._afde =0;};return _ccgf ,nil ;};
// PdfAnnotationCaret represents Caret annotations.
// (Section 12.5.6.11).
type PdfAnnotationCaret struct{*PdfAnnotation ;*PdfAnnotationMarkup ;RD _bcb .PdfObject ;Sy _bcb .PdfObject ;};func _bdagg (_gefde _bcb .PdfObject )(*PdfPattern ,error ){_ffaea :=&PdfPattern {};var _cbgc *_bcb .PdfObjectDictionary ;if _dgeed ,_dgbfd :=_bcb .GetIndirect (_gefde );_dgbfd {_ffaea ._becda =_dgeed ;_agcae ,_bcabf :=_dgeed .PdfObject .(*_bcb .PdfObjectDictionary );if !_bcabf {_cga .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",_dgeed .PdfObject );return nil ,_bcb .ErrTypeError ;};_cbgc =_agcae ;}else if _cbdb ,_ddeee :=_bcb .GetStream (_gefde );_ddeee {_ffaea ._becda =_cbdb ;_cbgc =_cbdb .PdfObjectDictionary ;}else {_cga .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",_gefde );return nil ,_bcb .ErrTypeError ;};_aceeb :=_cbgc .Get ("P\u0061\u0074\u0074\u0065\u0072\u006e\u0054\u0079\u0070\u0065");if _aceeb ==nil {_cga .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 ;};_agdcf ,_afeb :=_aceeb .(*_bcb .PdfObjectInteger );if !_afeb {_cga .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",_aceeb );return nil ,_bcb .ErrTypeError ;};if *_agdcf !=1&&*_agdcf !=2{_cga .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",*_agdcf );return nil ,_bcb .ErrRangeError ;};_ffaea .PatternType =int64 (*_agdcf );switch *_agdcf {case 1:_deaa ,_ccef :=_dadac (_cbgc );if _ccef !=nil {return nil ,_ccef ;};_deaa .PdfPattern =_ffaea ;_ffaea ._adccc =_deaa ;return _ffaea ,nil ;case 2:_gdcd ,_fabgf :=_fbcgc (_cbgc );if _fabgf !=nil {return nil ,_fabgf ;};_gdcd .PdfPattern =_ffaea ;_ffaea ._adccc =_gdcd ;return _ffaea ,nil ;};return nil ,_ae .New ("\u0075n\u006bn\u006f\u0077\u006e\u0020\u0070\u0061\u0074\u0074\u0065\u0072\u006e");};
// GetContext returns the PdfField context which is the more specific field data type, e.g. PdfFieldButton
// for a button field.
func (_ceeg *PdfField )GetContext ()PdfModel {return _ceeg ._fegde };
// 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 *_bcb .PdfObjectArray ;ExtGState _bcb .PdfObject ;};
// NewPdfActionLaunch returns a new "launch" action.
func NewPdfActionLaunch ()*PdfActionLaunch {_ecg :=NewPdfAction ();_ca :=&PdfActionLaunch {};_ca .PdfAction =_ecg ;_ecg .SetContext (_ca );return _ca ;};
// RemovePage removes a page by number.
func (_cggeda *PdfAppender )RemovePage (pageNum int ){_bcgb :=pageNum -1;_cggeda ._cgcg =append (_cggeda ._cgcg [0:_bcgb ],_cggeda ._cgcg [pageNum :]...);};type modelManager struct{_eccaga map[PdfModel ]_bcb .PdfObject ;_ecfgbb map[_bcb .PdfObject ]PdfModel ;};func _dfaef ()string {_dgagfb .Lock ();defer _dgagfb .Unlock ();return _eaggce };func (_bdeg *PdfReader )newPdfActionGotoEFromDict (_cbg *_bcb .PdfObjectDictionary )(*PdfActionGoToE ,error ){_ddb ,_acdc :=_geg (_cbg .Get ("\u0046"));if _acdc !=nil {return nil ,_acdc ;};return &PdfActionGoToE {D :_cbg .Get ("\u0044"),NewWindow :_cbg .Get ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw"),T :_cbg .Get ("\u0054"),F :_ddb },nil ;};
// NewPdfColorspaceCalRGB returns a new CalRGB colorspace object.
func NewPdfColorspaceCalRGB ()*PdfColorspaceCalRGB {_cfbgc :=&PdfColorspaceCalRGB {};_cfbgc .BlackPoint =[]float64 {0.0,0.0,0.0};_cfbgc .Gamma =[]float64 {1.0,1.0,1.0};_cfbgc .Matrix =[]float64 {1,0,0,0,1,0,0,0,1};return _cfbgc ;};func (_gdfa *LTV )generateVRIKey (_eggeb *PdfSignature )(string ,error ){_dcagg ,_edcfb :=_ebeed (_eggeb .Contents .Bytes ());if _edcfb !=nil {return "",_edcfb ;};return _gc .ToUpper (_c .EncodeToString (_dcagg )),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 (_gfgf *PdfReader )FlattenFieldsWithOpts (appgen FieldAppearanceGenerator ,opts *FieldFlattenOpts )error {return _gfgf .flattenFieldsWithOpts (false ,appgen ,opts );};
// Height returns the height of `rect`.
func (_dcbacd *PdfRectangle )Height ()float64 {return _edb .Abs (_dcbacd .Ury -_dcbacd .Lly )};
// NewBorderStyle returns an initialized PdfBorderStyle.
func NewBorderStyle ()*PdfBorderStyle {_dcbe :=&PdfBorderStyle {};return _dcbe };
// ToPdfObject recursively builds the Outline tree PDF object.
func (_faae *PdfOutlineItem )ToPdfObject ()_bcb .PdfObject {_fbcdd :=_faae ._afff ;_cdadcg :=_fbcdd .PdfObject .(*_bcb .PdfObjectDictionary );_cdadcg .Set ("\u0054\u0069\u0074l\u0065",_faae .Title );if _faae .A !=nil {_cdadcg .Set ("\u0041",_faae .A );};if _ffbbd :=_cdadcg .Get ("\u0053\u0045");_ffbbd !=nil {_cdadcg .Remove ("\u0053\u0045");};if _faae .C !=nil {_cdadcg .Set ("\u0043",_faae .C );};if _faae .Dest !=nil {_cdadcg .Set ("\u0044\u0065\u0073\u0074",_faae .Dest );};if _faae .F !=nil {_cdadcg .Set ("\u0046",_faae .F );};if _faae .Count !=nil {_cdadcg .Set ("\u0043\u006f\u0075n\u0074",_bcb .MakeInteger (*_faae .Count ));};if _faae .Next !=nil {_cdadcg .Set ("\u004e\u0065\u0078\u0074",_faae .Next .ToPdfObject ());};if _faae .First !=nil {_cdadcg .Set ("\u0046\u0069\u0072s\u0074",_faae .First .ToPdfObject ());};if _faae .Prev !=nil {_cdadcg .Set ("\u0050\u0072\u0065\u0076",_faae .Prev .GetContext ().GetContainingPdfObject ());};if _faae .Last !=nil {_cdadcg .Set ("\u004c\u0061\u0073\u0074",_faae .Last .GetContext ().GetContainingPdfObject ());};if _faae .Parent !=nil {_cdadcg .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_faae .Parent .GetContext ().GetContainingPdfObject ());};return _fbcdd ;};
// SetPdfModifiedDate sets the ModDate attribute of the output PDF.
func SetPdfModifiedDate (modifiedDate _d .Time ){_dgagfb .Lock ();defer _dgagfb .Unlock ();_egegc =modifiedDate ;};
// ImageToRGB converts CalRGB colorspace image to RGB and returns the result.
func (_ggfe *PdfColorspaceCalRGB )ImageToRGB (img Image )(Image ,error ){_dfcfc :=_cgb .NewReader (img .getBase ());_gdaa :=_fgd .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),3,nil ,nil ,nil );_geec :=_cgb .NewWriter (_gdaa );_efgbg :=_edb .Pow (2,float64 (img .BitsPerComponent ))-1;_cbb :=make ([]uint32 ,3);var (_dcdf error ;_eedf ,_fafad ,_agbfa ,_bfda ,_gcgd ,_fegb float64 ;);for {_dcdf =_dfcfc .ReadSamples (_cbb );if _dcdf ==_fb .EOF {break ;}else if _dcdf !=nil {return img ,_dcdf ;};_eedf =float64 (_cbb [0])/_efgbg ;_fafad =float64 (_cbb [1])/_efgbg ;_agbfa =float64 (_cbb [2])/_efgbg ;_bfda =_ggfe .Matrix [0]*_edb .Pow (_eedf ,_ggfe .Gamma [0])+_ggfe .Matrix [3]*_edb .Pow (_fafad ,_ggfe .Gamma [1])+_ggfe .Matrix [6]*_edb .Pow (_agbfa ,_ggfe .Gamma [2]);_gcgd =_ggfe .Matrix [1]*_edb .Pow (_eedf ,_ggfe .Gamma [0])+_ggfe .Matrix [4]*_edb .Pow (_fafad ,_ggfe .Gamma [1])+_ggfe .Matrix [7]*_edb .Pow (_agbfa ,_ggfe .Gamma [2]);_fegb =_ggfe .Matrix [2]*_edb .Pow (_eedf ,_ggfe .Gamma [0])+_ggfe .Matrix [5]*_edb .Pow (_fafad ,_ggfe .Gamma [1])+_ggfe .Matrix [8]*_edb .Pow (_agbfa ,_ggfe .Gamma [2]);_eedf =3.240479*_bfda +-1.537150*_gcgd +-0.498535*_fegb ;_fafad =-0.969256*_bfda +1.875992*_gcgd +0.041556*_fegb ;_agbfa =0.055648*_bfda +-0.204043*_gcgd +1.057311*_fegb ;_eedf =_edb .Min (_edb .Max (_eedf ,0),1.0);_fafad =_edb .Min (_edb .Max (_fafad ,0),1.0);_agbfa =_edb .Min (_edb .Max (_agbfa ,0),1.0);_cbb [0]=uint32 (_eedf *_efgbg );_cbb [1]=uint32 (_fafad *_efgbg );_cbb [2]=uint32 (_agbfa *_efgbg );if _dcdf =_geec .WriteSamples (_cbb );_dcdf !=nil {return img ,_dcdf ;};};return _gagca (&_gdaa ),nil ;};func (_bcdfd *PdfReader )buildPageList (_eaffc *_bcb .PdfIndirectObject ,_gbfdb *_bcb .PdfIndirectObject ,_cbdbd map[_bcb .PdfObject ]struct{})error {if _eaffc ==nil {return nil ;};if _ ,_fcgeb :=_cbdbd [_eaffc ];_fcgeb {_cga .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",_eaffc .ObjectNumber );return nil ;};_cbdbd [_eaffc ]=struct{}{};_aedgc ,_ebgee :=_eaffc .PdfObject .(*_bcb .PdfObjectDictionary );if !_ebgee {return _ae .New ("n\u006f\u0064\u0065\u0020no\u0074 \u0061\u0020\u0064\u0069\u0063t\u0069\u006f\u006e\u0061\u0072\u0079");};_ggaf ,_ebgee :=(*_aedgc ).Get ("\u0054\u0079\u0070\u0065").(*_bcb .PdfObjectName );if !_ebgee {if _aedgc .Get ("\u004b\u0069\u0064\u0073")==nil {return _ae .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");};_cga .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.");_ggaf =_bcb .MakeName ("\u0050\u0061\u0067e\u0073");_aedgc .Set ("\u0054\u0079\u0070\u0065",_ggaf );};_cga .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",*_ggaf ,_eaffc );if *_ggaf =="\u0050\u0061\u0067\u0065"{_ggced ,_geafge :=_bcdfd .newPdfPageFromDict (_aedgc );if _geafge !=nil {return _geafge ;};_ggced .setContainer (_eaffc );if _gbfdb !=nil {_aedgc .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_gbfdb );};_bcdfd ._fcff =append (_bcdfd ._fcff ,_eaffc );_bcdfd .PageList =append (_bcdfd .PageList ,_ggced );return nil ;};if *_ggaf !="\u0050\u0061\u0067e\u0073"{_cga .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",_ggaf );return _ae .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 _gbfdb !=nil {_aedgc .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_gbfdb );};if !_bcdfd ._abdcg {_fbbgaf :=_bcdfd .traverseObjectData (_eaffc );if _fbbgaf !=nil {return _fbbgaf ;};};_dgcba ,_edbce :=_bcdfd ._ecage .Resolve (_aedgc .Get ("\u004b\u0069\u0064\u0073"));if _edbce !=nil {_cga .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 _edbce ;};var _caec *_bcb .PdfObjectArray ;_caec ,_ebgee =_dgcba .(*_bcb .PdfObjectArray );if !_ebgee {_eeagb ,_cbafba :=_dgcba .(*_bcb .PdfIndirectObject );if !_cbafba {return _ae .New ("\u0069\u006e\u0076\u0061li\u0064\u0020\u004b\u0069\u0064\u0073\u0020\u006f\u0062\u006a\u0065\u0063\u0074");};_caec ,_ebgee =_eeagb .PdfObject .(*_bcb .PdfObjectArray );if !_ebgee {return _ae .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");};};_cga .Log .Trace ("\u004b\u0069\u0064\u0073\u003a\u0020\u0025\u0073",_caec );for _gffgb ,_acbe :=range _caec .Elements (){_dfdb ,_fddeb :=_bcb .GetIndirect (_acbe );if !_fddeb {_cga .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",_dfdb );return _ae .New ("\u0070a\u0067\u0065\u0020\u006e\u006f\u0074\u0020\u0069\u006e\u0064\u0069r\u0065\u0063\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074");};_caec .Set (_gffgb ,_dfdb );_edbce =_bcdfd .buildPageList (_dfdb ,_eaffc ,_cbdbd );if _edbce !=nil {return _edbce ;};};return nil ;};
// PdfReader represents a PDF file reader. It is a frontend to the lower level parsing mechanism and provides
// a higher level access to work with PDF structure and information, such as the page structure etc.
type PdfReader struct{_ecage *_bcb .PdfParser ;_edgge _bcb .PdfObject ;_cegfeb *_bcb .PdfIndirectObject ;_fcggb *_bcb .PdfObjectDictionary ;_fcff []*_bcb .PdfIndirectObject ;PageList []*PdfPage ;_fddge int ;_fccd *_bcb .PdfObjectDictionary ;_gbged *PdfOutlineTreeNode ;AcroForm *PdfAcroForm ;DSS *DSS ;_dafbg *modelManager ;_abdcg bool ;_egfef map[_bcb .PdfObject ]struct{};_bcffa _fb .ReadSeeker ;};
// GetRuneMetrics returns the character metrics for the specified rune.
// A bool flag is returned to indicate whether or not the entry was found.
func (_ffeaa pdfFontType0 )GetRuneMetrics (r rune )(_acc .CharMetrics ,bool ){if _ffeaa .DescendantFont ==nil {_cga .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",_ffeaa );return _acc .CharMetrics {},false ;};return _ffeaa .DescendantFont .GetRuneMetrics (r );};func (_daed *PdfReader )newPdfAnnotationSoundFromDict (_acbf *_bcb .PdfObjectDictionary )(*PdfAnnotationSound ,error ){_ccge :=PdfAnnotationSound {};_dde ,_bag :=_daed .newPdfAnnotationMarkupFromDict (_acbf );if _bag !=nil {return nil ,_bag ;};_ccge .PdfAnnotationMarkup =_dde ;_ccge .Name =_acbf .Get ("\u004e\u0061\u006d\u0065");_ccge .Sound =_acbf .Get ("\u0053\u006f\u0075n\u0064");return &_ccge ,nil ;};
// CharMetrics represents width and height metrics of a glyph.
type CharMetrics =_acc .CharMetrics ;
// PdfAnnotationWatermark represents Watermark annotations.
// (Section 12.5.6.22).
type PdfAnnotationWatermark struct{*PdfAnnotation ;FixedPrint _bcb .PdfObject ;};
// NewPdfAnnotationUnderline returns a new text underline annotation.
func NewPdfAnnotationUnderline ()*PdfAnnotationUnderline {_adc :=NewPdfAnnotation ();_gbfa :=&PdfAnnotationUnderline {};_gbfa .PdfAnnotation =_adc ;_gbfa .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_adc .SetContext (_gbfa );return _gbfa ;};type pdfFontType0 struct{fontCommon ;_bfaeg *_bcb .PdfIndirectObject ;_cfaee _ddd .TextEncoder ;Encoding _bcb .PdfObject ;DescendantFont *PdfFont ;_abeeb *_dc .CMap ;};
// GetSubFilter returns SubFilter value or empty string.
func (_dbffe *pdfSignDictionary )GetSubFilter ()string {_ecbed :=_dbffe .Get ("\u0053u\u0062\u0046\u0069\u006c\u0074\u0065r");if _ecbed ==nil {return "";};if _aaaef ,_fggcd :=_bcb .GetNameVal (_ecbed );_fggcd {return _aaaef ;};return "";};
// Encoder returns the font's text encoder.
func (_edgbfg *pdfFontSimple )Encoder ()_ddd .TextEncoder {if _edgbfg ._fdebc !=nil {return _edgbfg ._fdebc ;};if _edgbfg ._bcdf !=nil {return _edgbfg ._bcdf ;};_aeab ,_ :=_ddd .NewSimpleTextEncoder ("\u0053\u0074a\u006e\u0064\u0061r\u0064\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",nil );return _aeab ;};
// AddExtension adds the specified extension to the Extensions dictionary.
// See section 7.1.2 "Extensions Dictionary" (pp. 108-109 PDF32000_2008).
func (_fgdegf *PdfWriter )AddExtension (extName ,baseVersion string ,extLevel int ){_bedde ,_eefbc :=_bcb .GetDict (_fgdegf ._ggfec .Get ("\u0045\u0078\u0074\u0065\u006e\u0073\u0069\u006f\u006e\u0073"));if !_eefbc {_bedde =_bcb .MakeDict ();_fgdegf ._ggfec .Set ("\u0045\u0078\u0074\u0065\u006e\u0073\u0069\u006f\u006e\u0073",_bedde );};_agcbd ,_eefbc :=_bcb .GetDict (_bedde .Get (_bcb .PdfObjectName (extName )));if !_eefbc {_agcbd =_bcb .MakeDict ();_bedde .Set (_bcb .PdfObjectName (extName ),_agcbd );};if _afab ,_ :=_bcb .GetNameVal (_agcbd .Get ("B\u0061\u0073\u0065\u0056\u0065\u0072\u0073\u0069\u006f\u006e"));_afab !=baseVersion {_agcbd .Set ("B\u0061\u0073\u0065\u0056\u0065\u0072\u0073\u0069\u006f\u006e",_bcb .MakeName (baseVersion ));};if _edafa ,_ :=_bcb .GetIntVal (_agcbd .Get ("\u0045\u0078\u0074\u0065\u006e\u0073\u0069\u006f\u006eL\u0065\u0076\u0065\u006c"));_edafa !=extLevel {_agcbd .Set ("\u0045\u0078\u0074\u0065\u006e\u0073\u0069\u006f\u006eL\u0065\u0076\u0065\u006c",_bcb .MakeInteger (int64 (extLevel )));};};func (_ecdb *PdfReader )newPdfActionResetFormFromDict (_dfc *_bcb .PdfObjectDictionary )(*PdfActionResetForm ,error ){return &PdfActionResetForm {Fields :_dfc .Get ("\u0046\u0069\u0065\u006c\u0064\u0073"),Flags :_dfc .Get ("\u0046\u006c\u0061g\u0073")},nil ;};
// PdfOutlineTreeNode contains common fields used by the outline and outline
// item objects.
type PdfOutlineTreeNode struct{_bfagd interface{};First *PdfOutlineTreeNode ;Last *PdfOutlineTreeNode ;};
// PdfAnnotationMovie represents Movie annotations.
// (Section 12.5.6.17).
type PdfAnnotationMovie struct{*PdfAnnotation ;T _bcb .PdfObject ;Movie _bcb .PdfObject ;A _bcb .PdfObject ;};
// GenerateXObjectName generates an unused XObject name that can be used for
// adding new XObjects. Uses format XObj1, XObj2, ...
func (_cbcae *PdfPageResources )GenerateXObjectName ()_bcb .PdfObjectName {_adgb :=1;for {_geebb :=_bcb .MakeName (_e .Sprintf ("\u0058\u004f\u0062\u006a\u0025\u0064",_adgb ));if !_cbcae .HasXObjectByName (*_geebb ){return *_geebb ;};_adgb ++;};};
// GetNumComponents returns the number of color components of the colorspace device.
// Returns 1 for a CalGray device.
func (_efeg *PdfColorspaceCalGray )GetNumComponents ()int {return 1};
// ColorToRGB converts gray -> rgb for a single color component.
func (_dcdg *PdfColorspaceDeviceGray )ColorToRGB (color PdfColor )(PdfColor ,error ){_cbgf ,_abd :=color .(*PdfColorDeviceGray );if !_abd {_cga .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 ,_ae .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};return NewPdfColorDeviceRGB (float64 (*_cbgf ),float64 (*_cbgf ),float64 (*_cbgf )),nil ;};
// PdfActionGoTo3DView represents a GoTo3DView action.
type PdfActionGoTo3DView struct{*PdfAction ;TA _bcb .PdfObject ;V _bcb .PdfObject ;};const (RC4_128bit =EncryptionAlgorithm (iota );AES_128bit ;AES_256bit ;);func (_debec *pdfCIDFontType0 )baseFields ()*fontCommon {return &_debec .fontCommon };func (_aedgb *DSS )generateHashMaps ()error {_cfca ,_cffg :=_aedgb .generateHashMap (_aedgb .Certs );if _cffg !=nil {return _cffg ;};_ggca ,_cffg :=_aedgb .generateHashMap (_aedgb .OCSPs );if _cffg !=nil {return _cffg ;};_agca ,_cffg :=_aedgb .generateHashMap (_aedgb .CRLs );if _cffg !=nil {return _cffg ;};_aedgb ._dcbbe =_cfca ;_aedgb ._fgbgb =_ggca ;_aedgb ._acaf =_agca ;return nil ;};func (_eaaca *PdfWriter )writeBytes (_fgacd []byte ){if _eaaca ._gaacd !=nil {return ;};_aeeaf ,_bfbaa :=_eaaca ._aefcaa .Write (_fgacd );_eaaca ._cdgbg +=int64 (_aeeaf );_eaaca ._gaacd =_bfbaa ;};
// PdfAnnotation3D represents 3D annotations.
// (Section 13.6.2).
type PdfAnnotation3D struct{*PdfAnnotation ;T3DD _bcb .PdfObject ;T3DV _bcb .PdfObject ;T3DA _bcb .PdfObject ;T3DI _bcb .PdfObject ;T3DB _bcb .PdfObject ;};
// Encoder returns the font's text encoder.
func (_aabg pdfCIDFontType0 )Encoder ()_ddd .TextEncoder {return _aabg ._dbceg };
// 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 ;
// NewPdfActionMovie returns a new "movie" action.
func NewPdfActionMovie ()*PdfActionMovie {_aa :=NewPdfAction ();_efa :=&PdfActionMovie {};_efa .PdfAction =_aa ;_aa .SetContext (_efa );return _efa ;};
// ToPdfObject implements interface PdfModel.
func (_cfedg *PdfFilespec )ToPdfObject ()_bcb .PdfObject {_gccb :=_cfedg .getDict ();_gccb .Clear ();_gccb .Set ("\u0054\u0079\u0070\u0065",_bcb .MakeName ("\u0046\u0069\u006c\u0065\u0073\u0070\u0065\u0063"));_gccb .SetIfNotNil ("\u0046\u0053",_cfedg .FS );_gccb .SetIfNotNil ("\u0046",_cfedg .F );_gccb .SetIfNotNil ("\u0055\u0046",_cfedg .UF );_gccb .SetIfNotNil ("\u0044\u004f\u0053",_cfedg .DOS );_gccb .SetIfNotNil ("\u004d\u0061\u0063",_cfedg .Mac );_gccb .SetIfNotNil ("\u0055\u006e\u0069\u0078",_cfedg .Unix );_gccb .SetIfNotNil ("\u0049\u0044",_cfedg .ID );_gccb .SetIfNotNil ("\u0056",_cfedg .V );_gccb .SetIfNotNil ("\u0045\u0046",_cfedg .EF );_gccb .SetIfNotNil ("\u0052\u0046",_cfedg .RF );_gccb .SetIfNotNil ("\u0044\u0065\u0073\u0063",_cfedg .Desc );_gccb .SetIfNotNil ("\u0043\u0049",_cfedg .CI );return _cfedg ._dcgf ;};
// ToPdfObject implements interface PdfModel.
func (_bbbe *PdfAnnotationRedact )ToPdfObject ()_bcb .PdfObject {_bbbe .PdfAnnotation .ToPdfObject ();_aacb :=_bbbe ._daa ;_cagb :=_aacb .PdfObject .(*_bcb .PdfObjectDictionary );_bbbe .PdfAnnotationMarkup .appendToPdfDictionary (_cagb );_cagb .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_bcb .MakeName ("\u0052\u0065\u0064\u0061\u0063\u0074"));_cagb .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_bbbe .QuadPoints );_cagb .SetIfNotNil ("\u0049\u0043",_bbbe .IC );_cagb .SetIfNotNil ("\u0052\u004f",_bbbe .RO );_cagb .SetIfNotNil ("O\u0076\u0065\u0072\u006c\u0061\u0079\u0054\u0065\u0078\u0074",_bbbe .OverlayText );_cagb .SetIfNotNil ("\u0052\u0065\u0070\u0065\u0061\u0074",_bbbe .Repeat );_cagb .SetIfNotNil ("\u0044\u0041",_bbbe .DA );_cagb .SetIfNotNil ("\u0051",_bbbe .Q );return _aacb ;};var _ _bcb .PdfObject =&pdfSignDictionary {};func (_gegcc *PdfReader )traverseObjectData (_bcfd _bcb .PdfObject )error {return _bcb .ResolveReferencesDeep (_bcfd ,_gegcc ._egfef );};
// PdfFilespec represents a file specification which can either refer to an external or embedded file.
type PdfFilespec struct{Type _bcb .PdfObject ;FS _bcb .PdfObject ;F _bcb .PdfObject ;UF _bcb .PdfObject ;DOS _bcb .PdfObject ;Mac _bcb .PdfObject ;Unix _bcb .PdfObject ;ID _bcb .PdfObject ;V _bcb .PdfObject ;EF _bcb .PdfObject ;RF _bcb .PdfObject ;Desc _bcb .PdfObject ;CI _bcb .PdfObject ;_dcgf _bcb .PdfObject ;};func (_bbbdg fontCommon )isCIDFont ()bool {if _bbbdg ._abgg ==""{_cga .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",_bbbdg );};_fgfc :=false ;switch _bbbdg ._abgg {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":_fgfc =true ;};_cga .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",_fgfc ,_bbbdg );return _fgfc ;};
// AllFields returns a flattened list of all fields in the form.
func (_bgfec *PdfAcroForm )AllFields ()[]*PdfField {if _bgfec ==nil {return nil ;};var _dafd []*PdfField ;if _bgfec .Fields !=nil {for _ ,_facf :=range *_bgfec .Fields {_dafd =append (_dafd ,_baced (_facf )...);};};return _dafd ;};
// Read reads an image and loads into a new Image object with an RGB
// colormap and 8 bits per component.
func (_dgfc DefaultImageHandler )Read (reader _fb .Reader )(*Image ,error ){_cdbe ,_ ,_ebae :=_ac .Decode (reader );if _ebae !=nil {_cga .Log .Debug ("\u0045\u0072\u0072or\u0020\u0064\u0065\u0063\u006f\u0064\u0069\u006e\u0067\u0020\u0066\u0069\u006c\u0065\u003a\u0020\u0025\u0073",_ebae );return nil ,_ebae ;};return _dgfc .NewImageFromGoImage (_cdbe );};
// GetContentStreams returns the content stream as an array of strings.
func (_gfca *PdfPage )GetContentStreams ()([]string ,error ){_dabc :=_gfca .GetContentStreamObjs ();var _cffb []string ;for _ ,_cdbed :=range _dabc {_bffba ,_bbbfg :=_efbgag (_cdbed );if _bbbfg !=nil {return nil ,_bbbfg ;};_cffb =append (_cffb ,_bffba );};return _cffb ,nil ;};
// NewDSS returns a new DSS dictionary.
func NewDSS ()*DSS {return &DSS {_bdac :_bcb .MakeIndirectObject (_bcb .MakeDict ()),VRI :map[string ]*VRI {}};};
// 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 ){_geeec ,_aaccc :=_ecd .Open (filePath );if _aaccc !=nil {_cga .Log .Debug ("\u0045\u0052\u0052OR\u003a\u0020\u006f\u0070\u0065\u006e\u0069\u006e\u0067\u0020\u0066\u0069\u006c\u0065\u003a\u0020\u0025\u0076",_aaccc );return nil ,_aaccc ;};defer _geeec .Close ();return NewCompositePdfFontFromTTF (_geeec );};
// ToPdfObject implements interface PdfModel.
func (_ace *PdfActionJavaScript )ToPdfObject ()_bcb .PdfObject {_ace .PdfAction .ToPdfObject ();_cbf :=_ace ._dce ;_fdgb :=_cbf .PdfObject .(*_bcb .PdfObjectDictionary );_fdgb .SetIfNotNil ("\u0053",_bcb .MakeName (string (ActionTypeJavaScript )));_fdgb .SetIfNotNil ("\u004a\u0053",_ace .JS );return _cbf ;};
// PdfFunction interface represents the common methods of a function in PDF.
type PdfFunction interface{Evaluate ([]float64 )([]float64 ,error );ToPdfObject ()_bcb .PdfObject ;};
// PdfFunctionType0 uses a sequence of sample values (contained in a stream) to provide an approximation
// for functions whose domains and ranges are bounded. The samples are organized as an m-dimensional
// table in which each entry has n components
type PdfFunctionType0 struct{Domain []float64 ;Range []float64 ;NumInputs int ;NumOutputs int ;Size []int ;BitsPerSample int ;Order int ;Encode []float64 ;Decode []float64 ;_cdcfa []byte ;_agdbe []uint32 ;_gdbc *_bcb .PdfObjectStream ;};
// GetNumComponents returns the number of color components (1 for Separation).
func (_ggbg *PdfColorspaceSpecialSeparation )GetNumComponents ()int {return 1};
// NewPdfAnnotationScreen returns a new screen annotation.
func NewPdfAnnotationScreen ()*PdfAnnotationScreen {_fde :=NewPdfAnnotation ();_adba :=&PdfAnnotationScreen {};_adba .PdfAnnotation =_fde ;_fde .SetContext (_adba );return _adba ;};
// ValidateSignatures validates digital signatures in the document.
func (_bdcca *PdfReader )ValidateSignatures (handlers []SignatureHandler )([]SignatureValidationResult ,error ){if _bdcca .AcroForm ==nil {return nil ,nil ;};if _bdcca .AcroForm .Fields ==nil {return nil ,nil ;};type sigFieldPair struct{_baaed *PdfSignature ;_eddbg *PdfField ;_befad SignatureHandler ;};var _ccgbe []*sigFieldPair ;for _ ,_bbce :=range _bdcca .AcroForm .AllFields (){if _bbce .V ==nil {continue ;};if _ggdaf ,_efgdg :=_bcb .GetDict (_bbce .V );_efgdg {if _aacgb ,_cfagf :=_bcb .GetNameVal (_ggdaf .Get ("\u0054\u0079\u0070\u0065"));_cfagf &&_aacgb =="\u0053\u0069\u0067"{_edeg ,_bcbgf :=_bcb .GetIndirect (_bbce .V );if !_bcbgf {_cga .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 ;};_feffa ,_aebfc :=_bdcca .newPdfSignatureFromIndirect (_edeg );if _aebfc !=nil {return nil ,_aebfc ;};var _fadb SignatureHandler ;for _ ,_gecdd :=range handlers {if _gecdd .IsApplicable (_feffa ){_fadb =_gecdd ;break ;};};_ccgbe =append (_ccgbe ,&sigFieldPair {_baaed :_feffa ,_eddbg :_bbce ,_befad :_fadb });};};};var _cccbg []SignatureValidationResult ;for _ ,_ceeaa :=range _ccgbe {_ecaedf :=SignatureValidationResult {IsSigned :true ,Fields :[]*PdfField {_ceeaa ._eddbg }};if _ceeaa ._befad ==nil {_ecaedf .Errors =append (_ecaedf .Errors ,"\u0068a\u006ed\u006c\u0065\u0072\u0020\u006e\u006f\u0074\u0020\u0073\u0065\u0074");_cccbg =append (_cccbg ,_ecaedf );continue ;};_acbcb ,_dfeae :=_ceeaa ._befad .NewDigest (_ceeaa ._baaed );if _dfeae !=nil {_ecaedf .Errors =append (_ecaedf .Errors ,"\u0064\u0069\u0067e\u0073\u0074\u0020\u0065\u0072\u0072\u006f\u0072",_dfeae .Error ());_cccbg =append (_cccbg ,_ecaedf );continue ;};_affac :=_ceeaa ._baaed .ByteRange ;if _affac ==nil {_ecaedf .Errors =append (_ecaedf .Errors ,"\u0042\u0079\u0074\u0065\u0052\u0061\u006e\u0067\u0065\u0020\u006e\u006ft\u0020\u0073\u0065\u0074");_cccbg =append (_cccbg ,_ecaedf );continue ;};for _aceebe :=0;_aceebe < _affac .Len ();_aceebe =_aceebe +2{_dgcd ,_ :=_bcb .GetNumberAsInt64 (_affac .Get (_aceebe ));_ccacb ,_ :=_bcb .GetIntVal (_affac .Get (_aceebe +1));if _ ,_dgfbb :=_bdcca ._bcffa .Seek (_dgcd ,_fb .SeekStart );_dgfbb !=nil {return nil ,_dgfbb ;};_gggfe :=make ([]byte ,_ccacb );if _ ,_dceead :=_bdcca ._bcffa .Read (_gggfe );_dceead !=nil {return nil ,_dceead ;};_acbcb .Write (_gggfe );};_gcde ,_dfeae :=_ceeaa ._befad .Validate (_ceeaa ._baaed ,_acbcb );if _dfeae !=nil {return nil ,_dfeae ;};_gcde .Name =_ceeaa ._baaed .Name .Decoded ();_gcde .Reason =_ceeaa ._baaed .Reason .Decoded ();if _ceeaa ._baaed .M !=nil {_aebaa ,_cdebd :=NewPdfDate (_ceeaa ._baaed .M .String ());if _cdebd !=nil {_gcde .Errors =append (_gcde .Errors ,_cdebd .Error ());continue ;};_gcde .Date =_aebaa ;};_gcde .ContactInfo =_ceeaa ._baaed .ContactInfo .Decoded ();_gcde .Location =_ceeaa ._baaed .Location .Decoded ();_gcde .Fields =_ecaedf .Fields ;_cccbg =append (_cccbg ,_gcde );};return _cccbg ,nil ;};
// PdfColorLab represents a color in the L*, a*, b* 3 component colorspace.
// Each component is defined in the range 0.0 - 1.0 where 1.0 is the primary intensity.
type PdfColorLab [3]float64 ;
// String returns a string describing the font descriptor.
func (_aeaa *PdfFontDescriptor )String ()string {var _fbga []string ;if _aeaa .FontName !=nil {_fbga =append (_fbga ,_aeaa .FontName .String ());};if _aeaa .FontFamily !=nil {_fbga =append (_fbga ,_aeaa .FontFamily .String ());};if _aeaa .fontFile !=nil {_fbga =append (_fbga ,_aeaa .fontFile .String ());};if _aeaa ._bdecf !=nil {_fbga =append (_fbga ,_aeaa ._bdecf .String ());};_fbga =append (_fbga ,_e .Sprintf ("\u0046\u006f\u006et\u0046\u0069\u006c\u0065\u0033\u003d\u0025\u0074",_aeaa .FontFile3 !=nil ));return _e .Sprintf ("\u0046\u004f\u004e\u0054_D\u0045\u0053\u0043\u0052\u0049\u0050\u0054\u004f\u0052\u007b\u0025\u0073\u007d",_gc .Join (_fbga ,"\u002c\u0020"));};
// XObjectType represents the type of an XObject.
type XObjectType int ;func _daad (_bcadd *fontCommon )*pdfCIDFontType2 {return &pdfCIDFontType2 {fontCommon :*_bcadd }};
// PdfActionSetOCGState represents a SetOCGState action.
type PdfActionSetOCGState struct{*PdfAction ;State _bcb .PdfObject ;PreserveRB _bcb .PdfObject ;};
// GetTrailer returns the PDF's trailer dictionary.
func (_bcdc *PdfReader )GetTrailer ()(*_bcb .PdfObjectDictionary ,error ){_ecgfe :=_bcdc ._ecage .GetTrailer ();if _ecgfe ==nil {return nil ,_ae .New ("\u0074r\u0061i\u006c\u0065\u0072\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};return _ecgfe ,nil ;};func _eacde (_fbefd *_bcb .PdfObjectDictionary )(*PdfShadingType7 ,error ){_cdcfg :=PdfShadingType7 {};_fdgga :=_fbefd .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065");if _fdgga ==nil {_cga .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 ;};_ggfdda ,_fccee :=_fdgga .(*_bcb .PdfObjectInteger );if !_fccee {_cga .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",_fdgga );return nil ,_bcb .ErrTypeError ;};_cdcfg .BitsPerCoordinate =_ggfdda ;_fdgga =_fbefd .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074");if _fdgga ==nil {_cga .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 ;};_ggfdda ,_fccee =_fdgga .(*_bcb .PdfObjectInteger );if !_fccee {_cga .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",_fdgga );return nil ,_bcb .ErrTypeError ;};_cdcfg .BitsPerComponent =_ggfdda ;_fdgga =_fbefd .Get ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067");if _fdgga ==nil {_cga .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 ;};_ggfdda ,_fccee =_fdgga .(*_bcb .PdfObjectInteger );if !_fccee {_cga .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",_fdgga );return nil ,_bcb .ErrTypeError ;};_cdcfg .BitsPerComponent =_ggfdda ;_fdgga =_fbefd .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");if _fdgga ==nil {_cga .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 ;};_gfcgd ,_fccee :=_fdgga .(*_bcb .PdfObjectArray );if !_fccee {_cga .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",_fdgga );return nil ,_bcb .ErrTypeError ;};_cdcfg .Decode =_gfcgd ;if _afdc :=_fbefd .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");_afdc !=nil {_cdcfg .Function =[]PdfFunction {};if _gffad ,_gegcg :=_afdc .(*_bcb .PdfObjectArray );_gegcg {for _ ,_eddg :=range _gffad .Elements (){_fafgf ,_ggfgd :=_acdfd (_eddg );if _ggfgd !=nil {_cga .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",_ggfgd );return nil ,_ggfgd ;};_cdcfg .Function =append (_cdcfg .Function ,_fafgf );};}else {_abbfc ,_ceggd :=_acdfd (_afdc );if _ceggd !=nil {_cga .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",_ceggd );return nil ,_ceggd ;};_cdcfg .Function =append (_cdcfg .Function ,_abbfc );};};return &_cdcfg ,nil ;};
// GetPdfInfo returns the PDF info dictionary.
func (_aeaab *PdfReader )GetPdfInfo ()(*PdfInfo ,error ){_cbcbb :=PdfInfo {};_gfece ,_fedaf :=_aeaab .GetTrailer ();if _fedaf !=nil {return nil ,_fedaf ;};var _dgaae *_bcb .PdfObjectDictionary ;_fcgcf :=_gfece .Get ("\u0049\u006e\u0066\u006f");switch _gegba :=_fcgcf .(type ){case *_bcb .PdfObjectReference :_aefdg :=_gegba ;_fcgcf ,_fedaf =_aeaab .GetIndirectObjectByNumber (int (_aefdg .ObjectNumber ));_fcgcf =_bcb .TraceToDirectObject (_fcgcf );if _fedaf !=nil {return nil ,_fedaf ;};_dgaae ,_ =_fcgcf .(*_bcb .PdfObjectDictionary );case *_bcb .PdfObjectDictionary :_dgaae =_gegba ;};if _dgaae ==nil {return nil ,_ae .New ("I\u006e\u0066\u006f\u0020\u0064\u0069c\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u0020\u006eo\u0074\u0020\u0070r\u0065s\u0065\u006e\u0074");};for _ ,_cgabg :=range _dgaae .Keys (){switch _cgabg {case "\u0054\u0069\u0074l\u0065":_cbcbb .Title ,_ =_bcb .GetString (_dgaae .Get ("\u0054\u0069\u0074l\u0065"));case "\u0041\u0075\u0074\u0068\u006f\u0072":_cbcbb .Author ,_ =_bcb .GetString (_dgaae .Get ("\u0041\u0075\u0074\u0068\u006f\u0072"));case "\u0053u\u0062\u006a\u0065\u0063\u0074":_cbcbb .Subject ,_ =_bcb .GetString (_dgaae .Get ("\u0053u\u0062\u006a\u0065\u0063\u0074"));case "\u004b\u0065\u0079\u0077\u006f\u0072\u0064\u0073":_cbcbb .Keywords ,_ =_bcb .GetString (_dgaae .Get ("\u004b\u0065\u0079\u0077\u006f\u0072\u0064\u0073"));case "\u0043r\u0065\u0061\u0074\u006f\u0072":_cbcbb .Creator ,_ =_bcb .GetString (_dgaae .Get ("\u0043r\u0065\u0061\u0074\u006f\u0072"));case "\u0050\u0072\u006f\u0064\u0075\u0063\u0065\u0072":_cbcbb .Producer ,_ =_bcb .GetString (_dgaae .Get ("\u0050\u0072\u006f\u0064\u0075\u0063\u0065\u0072"));case "\u0054r\u0061\u0070\u0070\u0065\u0064":_cbcbb .Trapped ,_ =_bcb .GetName (_dgaae .Get ("\u0054r\u0061\u0070\u0070\u0065\u0064"));case "\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065":if _ccaae ,_begd :=_bcb .GetString (_dgaae .Get ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065"));_begd &&_ccaae .String ()!=""{_aebce ,_deage :=NewPdfDate (_ccaae .String ());if _deage !=nil {return nil ,_deage ;};_cbcbb .CreationDate =&_aebce ;};case "\u004do\u0064\u0044\u0061\u0074\u0065":if _bddb ,_gffdg :=_bcb .GetString (_dgaae .Get ("\u004do\u0064\u0044\u0061\u0074\u0065"));_gffdg &&_bddb .String ()!=""{_egcbc ,_eefgf :=NewPdfDate (_bddb .String ());if _eefgf !=nil {return nil ,_eefgf ;};_cbcbb .ModifiedDate =&_egcbc ;};default:_acacd ,_ :=_bcb .GetString (_dgaae .Get (_cgabg ));if _cbcbb ._affda ==nil {_cbcbb ._affda =_bcb .MakeDict ();};_cbcbb ._affda .Set (_cgabg ,_acacd );};};return &_cbcbb ,nil ;};var (CourierName =_acc .CourierName ;CourierBoldName =_acc .CourierBoldName ;CourierObliqueName =_acc .CourierObliqueName ;CourierBoldObliqueName =_acc .CourierBoldObliqueName ;HelveticaName =_acc .HelveticaName ;HelveticaBoldName =_acc .HelveticaBoldName ;HelveticaObliqueName =_acc .HelveticaObliqueName ;HelveticaBoldObliqueName =_acc .HelveticaBoldObliqueName ;SymbolName =_acc .SymbolName ;ZapfDingbatsName =_acc .ZapfDingbatsName ;TimesRomanName =_acc .TimesRomanName ;TimesBoldName =_acc .TimesBoldName ;TimesItalicName =_acc .TimesItalicName ;TimesBoldItalicName =_acc .TimesBoldItalicName ;);func (_gceg *LTV )validateSig (_dcdfa *PdfSignature )error {if _dcdfa ==nil ||_dcdfa .Contents ==nil ||len (_dcdfa .Contents .Bytes ())==0{return _e .Errorf ("i\u006e\u0076\u0061\u006c\u0069\u0064 \u0073\u0069\u0067\u006e\u0061\u0074\u0075\u0072\u0065 \u0066\u0069\u0065l\u0064:\u0020\u0025\u0076",_dcdfa );};return nil ;};
// ToPdfObject returns the PDF representation of the function.
func (_bbcdc *PdfFunctionType0 )ToPdfObject ()_bcb .PdfObject {if _bbcdc ._gdbc ==nil {_bbcdc ._gdbc =&_bcb .PdfObjectStream {};};_cbba :=_bcb .MakeDict ();_cbba .Set ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065",_bcb .MakeInteger (0));_cggad :=&_bcb .PdfObjectArray {};for _ ,_bgfc :=range _bbcdc .Domain {_cggad .Append (_bcb .MakeFloat (_bgfc ));};_cbba .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_cggad );_fdbb :=&_bcb .PdfObjectArray {};for _ ,_gdebe :=range _bbcdc .Range {_fdbb .Append (_bcb .MakeFloat (_gdebe ));};_cbba .Set ("\u0052\u0061\u006eg\u0065",_fdbb );_gdced :=&_bcb .PdfObjectArray {};for _ ,_fggad :=range _bbcdc .Size {_gdced .Append (_bcb .MakeInteger (int64 (_fggad )));};_cbba .Set ("\u0053\u0069\u007a\u0065",_gdced );_cbba .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0053\u0061\u006d\u0070\u006c\u0065",_bcb .MakeInteger (int64 (_bbcdc .BitsPerSample )));if _bbcdc .Order !=1{_cbba .Set ("\u004f\u0072\u0064e\u0072",_bcb .MakeInteger (int64 (_bbcdc .Order )));};_cbba .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_bcb .MakeInteger (int64 (len (_bbcdc ._cdcfa ))));_bbcdc ._gdbc .Stream =_bbcdc ._cdcfa ;_bbcdc ._gdbc .PdfObjectDictionary =_cbba ;return _bbcdc ._gdbc ;};
// GetNumComponents returns the number of color components (4 for CMYK32).
func (_cafb *PdfColorDeviceCMYK )GetNumComponents ()int {return 4};
// SetContext sets the specific fielddata type, e.g. would be PdfFieldButton for a button field.
func (_cdaeg *PdfField )SetContext (ctx PdfModel ){_cdaeg ._fegde =ctx };func _fbcgf ()string {_dgagfb .Lock ();defer _dgagfb .Unlock ();_acccf :=_dd .GetLicenseKey ();if len (_ggdgb )> 0&&(_acccf .IsLicensed ()||_ebefc ){return _ggdgb ;};return _e .Sprintf ("\u0055\u006e\u0069Do\u0063\u0020\u0076\u0025\u0073\u0020\u0028\u0025\u0073)\u0020-\u0020h\u0074t\u0070\u003a\u002f\u002f\u0075\u006e\u0069\u0064\u006f\u0063\u002e\u0069\u006f",_bcfbf (),_acccf .TypeToString ());};
// 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 (_edfef *PdfReader )GetOutlinesFlattened ()([]*PdfOutlineTreeNode ,[]string ,error ){var _fgaag []*PdfOutlineTreeNode ;var _abda []string ;var _gcbee func (*PdfOutlineTreeNode ,*[]*PdfOutlineTreeNode ,*[]string ,int );_gcbee =func (_dedcf *PdfOutlineTreeNode ,_adaaa *[]*PdfOutlineTreeNode ,_caef *[]string ,_gbgge int ){if _dedcf ==nil {return ;};if _dedcf ._bfagd ==nil {_cga .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 ;};_cdbcc ,_bbgdd :=_dedcf ._bfagd .(*PdfOutlineItem );if _bbgdd {*_adaaa =append (*_adaaa ,&_cdbcc .PdfOutlineTreeNode );_fdcf :=_gc .Repeat ("\u0020",_gbgge *2)+_cdbcc .Title .Decoded ();*_caef =append (*_caef ,_fdcf );};if _dedcf .First !=nil {_caag :=_gc .Repeat ("\u0020",_gbgge *2)+"\u002b";*_caef =append (*_caef ,_caag );_gcbee (_dedcf .First ,_adaaa ,_caef ,_gbgge +1);};if _bbgdd &&_cdbcc .Next !=nil {_gcbee (_cdbcc .Next ,_adaaa ,_caef ,_gbgge );};};_gcbee (_edfef ._gbged ,&_fgaag ,&_abda ,0);return _fgaag ,_abda ,nil ;};
// Val returns the color value.
func (_bdfc *PdfColorDeviceGray )Val ()float64 {return float64 (*_bdfc )};
// ImageToRGB converts ICCBased colorspace image to RGB and returns the result.
func (_ffba *PdfColorspaceICCBased )ImageToRGB (img Image )(Image ,error ){if _ffba .Alternate ==nil {_cga .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 _ffba .N ==1{_cga .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");_acfg :=NewPdfColorspaceDeviceGray ();return _acfg .ImageToRGB (img );}else if _ffba .N ==3{_cga .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 _ffba .N ==4{_cga .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");_fcbdf :=NewPdfColorspaceDeviceCMYK ();return _fcbdf .ImageToRGB (img );}else {return img ,_ae .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");};};_cga .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",_ffba );_gabe ,_fbffd :=_ffba .Alternate .ImageToRGB (img );_cga .Log .Trace ("I\u0043C\u0020\u0049\u006e\u0070\u0075\u0074\u0020\u0069m\u0061\u0067\u0065\u003a %\u002b\u0076",img );_cga .Log .Trace ("I\u0043\u0043\u0020\u004fut\u0070u\u0074\u0020\u0069\u006d\u0061g\u0065\u003a\u0020\u0025\u002b\u0076",_gabe );return _gabe ,_fbffd ;};
// UpdateXObjectImageFromImage creates a new XObject Image from an
// Image object `img` and default masks from xobjIn.
// The default masks are overridden if img.hasAlpha
// If `encoder` is nil, uses raw encoding (none).
func UpdateXObjectImageFromImage (xobjIn *XObjectImage ,img *Image ,cs PdfColorspace ,encoder _bcb .StreamEncoder )(*XObjectImage ,error ){if encoder ==nil {encoder =_bcb .NewRawEncoder ();};encoder .UpdateParams (img .GetParamsDict ());_aggcf ,_feege :=encoder .EncodeBytes (img .Data );if _feege !=nil {_cga .Log .Debug ("\u0045\u0072\u0072or\u0020\u0077\u0069\u0074\u0068\u0020\u0065\u006e\u0063\u006f\u0064\u0069\u006e\u0067\u003a\u0020\u0025\u0076",_feege );return nil ,_feege ;};_gfbdd :=NewXObjectImage ();_acgdgf :=img .Width ;_gccac :=img .Height ;_gfbdd .Width =&_acgdgf ;_gfbdd .Height =&_gccac ;_bbdge :=img .BitsPerComponent ;_gfbdd .BitsPerComponent =&_bbdge ;_gfbdd .Filter =encoder ;_gfbdd .Stream =_aggcf ;if cs ==nil {if img .ColorComponents ==1{_gfbdd .ColorSpace =NewPdfColorspaceDeviceGray ();}else if img .ColorComponents ==3{_gfbdd .ColorSpace =NewPdfColorspaceDeviceRGB ();}else if img .ColorComponents ==4{_gfbdd .ColorSpace =NewPdfColorspaceDeviceCMYK ();}else {return nil ,_ae .New ("c\u006fl\u006f\u0072\u0073\u0070\u0061\u0063\u0065\u0020u\u006e\u0064\u0065\u0066in\u0065\u0064");};}else {_gfbdd .ColorSpace =cs ;};if len (img ._cdeb )!=0{_cdge :=NewXObjectImage ();_cdge .Filter =encoder ;_dcgdc ,_faffa :=encoder .EncodeBytes (img ._cdeb );if _faffa !=nil {_cga .Log .Debug ("\u0045\u0072\u0072or\u0020\u0077\u0069\u0074\u0068\u0020\u0065\u006e\u0063\u006f\u0064\u0069\u006e\u0067\u003a\u0020\u0025\u0076",_faffa );return nil ,_faffa ;};_cdge .Stream =_dcgdc ;_cdge .BitsPerComponent =_gfbdd .BitsPerComponent ;_cdge .Width =&img .Width ;_cdge .Height =&img .Height ;_cdge .ColorSpace =NewPdfColorspaceDeviceGray ();_gfbdd .SMask =_cdge .ToPdfObject ();}else {_gfbdd .SMask =xobjIn .SMask ;_gfbdd .ImageMask =xobjIn .ImageMask ;if _gfbdd .ColorSpace .GetNumComponents ()==1{_cadgg (_gfbdd );};};return _gfbdd ,nil ;};
// ToPdfObject returns the PDF representation of the shading dictionary.
func (_dddbc *PdfShadingType1 )ToPdfObject ()_bcb .PdfObject {_dddbc .PdfShading .ToPdfObject ();_agdcge ,_bfagf :=_dddbc .getShadingDict ();if _bfagf !=nil {_cga .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 _dddbc .Domain !=nil {_agdcge .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_dddbc .Domain );};if _dddbc .Matrix !=nil {_agdcge .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_dddbc .Matrix );};if _dddbc .Function !=nil {if len (_dddbc .Function )==1{_agdcge .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_dddbc .Function [0].ToPdfObject ());}else {_fcaged :=_bcb .MakeArray ();for _ ,_aebcd :=range _dddbc .Function {_fcaged .Append (_aebcd .ToPdfObject ());};_agdcge .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_fcaged );};};return _dddbc ._eced ;};const (XObjectTypeUndefined XObjectType =iota ;XObjectTypeImage ;XObjectTypeForm ;XObjectTypePS ;XObjectTypeUnknown ;);func (_cfb *PdfReader )newPdfAnnotationHighlightFromDict (_geaa *_bcb .PdfObjectDictionary )(*PdfAnnotationHighlight ,error ){_baea :=PdfAnnotationHighlight {};_gabb ,_adef :=_cfb .newPdfAnnotationMarkupFromDict (_geaa );if _adef !=nil {return nil ,_adef ;};_baea .PdfAnnotationMarkup =_gabb ;_baea .QuadPoints =_geaa .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");return &_baea ,nil ;};
// NewPdfAnnotationCaret returns a new caret annotation.
func NewPdfAnnotationCaret ()*PdfAnnotationCaret {_afcb :=NewPdfAnnotation ();_deg :=&PdfAnnotationCaret {};_deg .PdfAnnotation =_afcb ;_deg .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_afcb .SetContext (_deg );return _deg ;};
// BytesToCharcodes converts the bytes in a PDF string to character codes.
func (_cefg *PdfFont )BytesToCharcodes (data []byte )[]_ddd .CharCode {_cga .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 _eefgg ,_bcffc :=_cefg ._fgge .(*pdfFontType0 );_bcffc &&_eefgg ._abeeb !=nil {if _becd ,_ggaa :=_eefgg .bytesToCharcodes (data );_ggaa {return _becd ;};};_dgcbb :=make ([]_ddd .CharCode ,0,len (data )+len (data )%2);if _cefg .baseFields ().isCIDFont (){if len (data )==1{data =[]byte {0,data [0]};};if len (data )%2!=0{_cga .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 _eded :=0;_eded < len (data );_eded +=2{_acecd :=uint16 (data [_eded ])<<8|uint16 (data [_eded +1]);_dgcbb =append (_dgcbb ,_ddd .CharCode (_acecd ));};}else {for _ ,_feaaa :=range data {_dgcbb =append (_dgcbb ,_ddd .CharCode (_feaaa ));};};return _dgcbb ;};
// FieldFlag represents form field flags. Some of the flags can apply to all types of fields whereas other
// flags are specific.
type FieldFlag uint32 ;func _dbcd (_bbff _bcb .PdfObject )(*PdfColorspaceSpecialSeparation ,error ){_gbad :=NewPdfColorspaceSpecialSeparation ();if _cccfed ,_ffdea :=_bbff .(*_bcb .PdfIndirectObject );_ffdea {_gbad ._caa =_cccfed ;};_bbff =_bcb .TraceToDirectObject (_bbff );_fgef ,_geddc :=_bbff .(*_bcb .PdfObjectArray );if !_geddc {return nil ,_e .Errorf ("\u0073\u0065p\u0061\u0072\u0061\u0074\u0069\u006f\u006e\u0020\u0043\u0053\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006f\u0062je\u0063\u0074");};if _fgef .Len ()!=4{return nil ,_e .Errorf ("\u0073\u0065p\u0061\u0072\u0061\u0074i\u006f\u006e \u0043\u0053\u003a\u0020\u0049\u006e\u0063\u006fr\u0072\u0065\u0063\u0074\u0020\u0061\u0072\u0072\u0061\u0079\u0020\u006ce\u006e\u0067\u0074\u0068");};_bbff =_fgef .Get (0);_agec ,_geddc :=_bbff .(*_bcb .PdfObjectName );if !_geddc {return nil ,_e .Errorf ("\u0073\u0065\u0070ar\u0061\u0074\u0069\u006f\u006e\u0020\u0043\u0053\u003a \u0069n\u0076a\u006ci\u0064\u0020\u0066\u0061\u006d\u0069\u006c\u0079\u0020\u006e\u0061\u006d\u0065");};if *_agec !="\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e"{return nil ,_e .Errorf ("\u0073\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e\u0020\u0043\u0053\u003a\u0020w\u0072o\u006e\u0067\u0020\u0066\u0061\u006d\u0069\u006c\u0079\u0020\u006e\u0061\u006d\u0065");};_bbff =_fgef .Get (1);_agec ,_geddc =_bbff .(*_bcb .PdfObjectName );if !_geddc {return nil ,_e .Errorf ("\u0073\u0065pa\u0072\u0061\u0074i\u006f\u006e\u0020\u0043S: \u0049nv\u0061\u006c\u0069\u0064\u0020\u0063\u006flo\u0072\u0061\u006e\u0074\u0020\u006e\u0061m\u0065");};_gbad .ColorantName =_agec ;_bbff =_fgef .Get (2);_bcbc ,_ageb :=NewPdfColorspaceFromPdfObject (_bbff );if _ageb !=nil {return nil ,_ageb ;};_gbad .AlternateSpace =_bcbc ;_gbeea ,_ageb :=_acdfd (_fgef .Get (3));if _ageb !=nil {return nil ,_ageb ;};_gbad .TintTransform =_gbeea ;return _gbad ,nil ;};
// PdfAnnotationFreeText represents FreeText annotations.
// (Section 12.5.6.6).
type PdfAnnotationFreeText struct{*PdfAnnotation ;*PdfAnnotationMarkup ;DA _bcb .PdfObject ;Q _bcb .PdfObject ;RC _bcb .PdfObject ;DS _bcb .PdfObject ;CL _bcb .PdfObject ;IT _bcb .PdfObject ;BE _bcb .PdfObject ;RD _bcb .PdfObject ;BS _bcb .PdfObject ;LE _bcb .PdfObject ;};
// StringToCharcodeBytes maps the provided string runes to charcode bytes and
// it returns the resulting slice of bytes, along with the number of runes
// which could not be converted. If the number of misses is 0, all string runes
// were successfully converted.
func (_aggde *PdfFont )StringToCharcodeBytes (str string )([]byte ,int ){return _aggde .RunesToCharcodeBytes ([]rune (str ));};func _dfcgc (_cbdeg *_bcb .PdfObjectDictionary ,_fdgg *fontCommon )(*pdfFontType0 ,error ){_gadbb ,_cfcdg :=_bcb .GetArray (_cbdeg .Get ("\u0044e\u0073c\u0065\u006e\u0064\u0061\u006e\u0074\u0046\u006f\u006e\u0074\u0073"));if !_cfcdg {_cga .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",_fdgg );return nil ,_bcb .ErrRangeError ;};if _gadbb .Len ()!=1{_cga .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",_gadbb .Len ());return nil ,_bcb .ErrRangeError ;};_dgba ,_gaeg :=_aabe (_gadbb .Get (0),false );if _gaeg !=nil {_cga .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",_gaeg ,_fdgg );return nil ,_gaeg ;};_efgcc :=_fcbgc (_fdgg );_efgcc .DescendantFont =_dgba ;_eaaaa ,_cfcdg :=_bcb .GetNameVal (_cbdeg .Get ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067"));if _cfcdg {if _eaaaa =="\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079\u002d\u0048"||_eaaaa =="\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079\u002d\u0056"{_efgcc ._cfaee =_ddd .NewIdentityTextEncoder (_eaaaa );}else if _dc .IsPredefinedCMap (_eaaaa ){_efgcc ._abeeb ,_gaeg =_dc .LoadPredefinedCMap (_eaaaa );if _gaeg !=nil {_cga .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",_eaaaa ,_gaeg );};}else {_cga .Log .Debug ("\u0055\u006e\u0068\u0061\u006e\u0064\u006c\u0065\u0064\u0020\u0063\u006da\u0070\u0020\u0025\u0071",_eaaaa );};};if _dbcdb :=_dgba .baseFields ()._ecbe ;_dbcdb !=nil {if _fgbd :=_dbcdb .Name ();_fgbd =="\u0041d\u006fb\u0065\u002d\u0043\u004e\u0053\u0031\u002d\u0055\u0043\u0053\u0032"||_fgbd =="\u0041\u0064\u006f\u0062\u0065\u002d\u0047\u0042\u0031-\u0055\u0043\u0053\u0032"||_fgbd =="\u0041\u0064\u006f\u0062\u0065\u002d\u004a\u0061\u0070\u0061\u006e\u0031-\u0055\u0043\u0053\u0032"||_fgbd =="\u0041\u0064\u006f\u0062\u0065\u002d\u004b\u006f\u0072\u0065\u0061\u0031-\u0055\u0043\u0053\u0032"{_efgcc ._cfaee =_ddd .NewCMapEncoder (_eaaaa ,_efgcc ._abeeb ,_dbcdb );};};return _efgcc ,nil ;};
// SetReason sets the `Reason` field of the signature.
func (_baeed *PdfSignature )SetReason (reason string ){_baeed .Reason =_bcb .MakeString (reason )};
// NewPdfAppender creates a new Pdf appender from a Pdf reader.
func NewPdfAppender (reader *PdfReader )(*PdfAppender ,error ){_gdeg :=&PdfAppender {_baeab :reader ._bcffa ,Reader :reader ,_bbdf :reader ._ecage ,_ebca :reader ._egfef };_gceb ,_cacfb :=_gdeg ._baeab .Seek (0,_fb .SeekEnd );if _cacfb !=nil {return nil ,_cacfb ;};_gdeg ._def =_gceb ;if _ ,_cacfb =_gdeg ._baeab .Seek (0,_fb .SeekStart );_cacfb !=nil {return nil ,_cacfb ;};_gdeg ._adcc ,_cacfb =NewPdfReader (_gdeg ._baeab );if _cacfb !=nil {return nil ,_cacfb ;};for _ ,_fcga :=range _gdeg .Reader .GetObjectNums (){if _gdeg ._ebga < _fcga {_gdeg ._ebga =_fcga ;};};_gdeg ._bcf =_gdeg ._bbdf .GetXrefTable ();_gdeg ._edga =_gdeg ._bbdf .GetXrefOffset ();_gdeg ._cgcg =append (_gdeg ._cgcg ,_gdeg ._adcc .PageList ...);_gdeg ._bfbb =make (map[_bcb .PdfObject ]struct{});_gdeg ._cfff =make (map[_bcb .PdfObject ]int64 );_gdeg ._feea =make (map[_bcb .PdfObject ]struct{});_gdeg ._acdf =_gdeg ._adcc .AcroForm ;_gdeg ._fbb =_gdeg ._adcc .DSS ;return _gdeg ,nil ;};
// 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 ;};
// ToPdfObject returns the PDF representation of the DSS dictionary.
func (_ffff *DSS )ToPdfObject ()_bcb .PdfObject {_cafg :=_ffff ._bdac .PdfObject .(*_bcb .PdfObjectDictionary );_cafg .Clear ();_fadc :=_bcb .MakeDict ();for _afdf ,_dagg :=range _ffff .VRI {_fadc .Set (*_bcb .MakeName (_afdf ),_dagg .ToPdfObject ());};_cafg .SetIfNotNil ("\u0043\u0065\u0072t\u0073",_cbgcg (_ffff .Certs ));_cafg .SetIfNotNil ("\u004f\u0043\u0053P\u0073",_cbgcg (_ffff .OCSPs ));_cafg .SetIfNotNil ("\u0043\u0052\u004c\u0073",_cbgcg (_ffff .CRLs ));_cafg .Set ("\u0056\u0052\u0049",_fadc );return _ffff ._bdac ;};func _fcdab (_bfbac *_bcb .PdfObjectDictionary )(*PdfShadingType2 ,error ){_bbgee :=PdfShadingType2 {};_gdbcb :=_bfbac .Get ("\u0043\u006f\u006f\u0072\u0064\u0073");if _gdbcb ==nil {_cga .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 ;};_dgdfg ,_deaef :=_gdbcb .(*_bcb .PdfObjectArray );if !_deaef {_cga .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",_gdbcb );return nil ,_ae .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};if _dgdfg .Len ()!=4{_cga .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",_dgdfg .Len ());return nil ,_ae .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0061\u0074\u0074\u0072i\u0062\u0075\u0074\u0065");};_bbgee .Coords =_dgdfg ;if _ecffb :=_bfbac .Get ("\u0044\u006f\u006d\u0061\u0069\u006e");_ecffb !=nil {_ecffb =_bcb .TraceToDirectObject (_ecffb );_agdaf ,_dafbf :=_ecffb .(*_bcb .PdfObjectArray );if !_dafbf {_cga .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",_ecffb );return nil ,_ae .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_bbgee .Domain =_agdaf ;};_gdbcb =_bfbac .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");if _gdbcb ==nil {_cga .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 ;};_bbgee .Function =[]PdfFunction {};if _aeebd ,_agbbda :=_gdbcb .(*_bcb .PdfObjectArray );_agbbda {for _ ,_cadce :=range _aeebd .Elements (){_fbfde ,_eccfb :=_acdfd (_cadce );if _eccfb !=nil {_cga .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",_eccfb );return nil ,_eccfb ;};_bbgee .Function =append (_bbgee .Function ,_fbfde );};}else {_fgefe ,_decec :=_acdfd (_gdbcb );if _decec !=nil {_cga .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",_decec );return nil ,_decec ;};_bbgee .Function =append (_bbgee .Function ,_fgefe );};if _baaaf :=_bfbac .Get ("\u0045\u0078\u0074\u0065\u006e\u0064");_baaaf !=nil {_baaaf =_bcb .TraceToDirectObject (_baaaf );_gagfad ,_abea :=_baaaf .(*_bcb .PdfObjectArray );if !_abea {_cga .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",_baaaf );return nil ,_bcb .ErrTypeError ;};if _gagfad .Len ()!=2{_cga .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",_gagfad .Len ());return nil ,ErrInvalidAttribute ;};_bbgee .Extend =_gagfad ;};return &_bbgee ,nil ;};
// ToPdfObject implements interface PdfModel.
func (_dcac *PdfAnnotationLink )ToPdfObject ()_bcb .PdfObject {_dcac .PdfAnnotation .ToPdfObject ();_bdae :=_dcac ._daa ;_ddc :=_bdae .PdfObject .(*_bcb .PdfObjectDictionary );_ddc .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_bcb .MakeName ("\u004c\u0069\u006e\u006b"));if _dcac ._bda !=nil &&_dcac ._bda ._dda !=nil {_ddc .Set ("\u0041",_dcac ._bda ._dda .ToPdfObject ());}else if _dcac .A !=nil {_ddc .Set ("\u0041",_dcac .A );};_ddc .SetIfNotNil ("\u0044\u0065\u0073\u0074",_dcac .Dest );_ddc .SetIfNotNil ("\u0048",_dcac .H );_ddc .SetIfNotNil ("\u0050\u0041",_dcac .PA );_ddc .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_dcac .QuadPoints );_ddc .SetIfNotNil ("\u0042\u0053",_dcac .BS );return _bdae ;};
// SetShadingByName sets a shading resource specified by keyName.
func (_ddfcd *PdfPageResources )SetShadingByName (keyName _bcb .PdfObjectName ,shadingObj _bcb .PdfObject )error {if _ddfcd .Shading ==nil {_ddfcd .Shading =_bcb .MakeDict ();};_dgfgee ,_fgbab :=_ddfcd .Shading .(*_bcb .PdfObjectDictionary );if !_fgbab {return _bcb .ErrTypeError ;};_dgfgee .Set (keyName ,shadingObj );return nil ;};func (_gacb *PdfReader )newPdfAnnotationStampFromDict (_baeb *_bcb .PdfObjectDictionary )(*PdfAnnotationStamp ,error ){_afd :=PdfAnnotationStamp {};_dgdd ,_dabd :=_gacb .newPdfAnnotationMarkupFromDict (_baeb );if _dabd !=nil {return nil ,_dabd ;};_afd .PdfAnnotationMarkup =_dgdd ;_afd .Name =_baeb .Get ("\u004e\u0061\u006d\u0065");return &_afd ,nil ;};
// PdfAnnotationInk represents Ink annotations.
// (Section 12.5.6.13).
type PdfAnnotationInk struct{*PdfAnnotation ;*PdfAnnotationMarkup ;InkList _bcb .PdfObject ;BS _bcb .PdfObject ;};
// ToPdfObject returns the PDF representation of the shading dictionary.
func (_afdae *PdfShading )ToPdfObject ()_bcb .PdfObject {_fabbf :=_afdae ._eced ;_dabeda ,_becdf :=_afdae .getShadingDict ();if _becdf !=nil {_cga .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 _afdae .ShadingType !=nil {_dabeda .Set ("S\u0068\u0061\u0064\u0069\u006e\u0067\u0054\u0079\u0070\u0065",_afdae .ShadingType );};if _afdae .ColorSpace !=nil {_dabeda .Set ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065",_afdae .ColorSpace .ToPdfObject ());};if _afdae .Background !=nil {_dabeda .Set ("\u0042\u0061\u0063\u006b\u0067\u0072\u006f\u0075\u006e\u0064",_afdae .Background );};if _afdae .BBox !=nil {_dabeda .Set ("\u0042\u0042\u006f\u0078",_afdae .BBox .ToPdfObject ());};if _afdae .AntiAlias !=nil {_dabeda .Set ("\u0041n\u0074\u0069\u0041\u006c\u0069\u0061s",_afdae .AntiAlias );};return _fabbf ;};
// ToPdfObject implements interface PdfModel.
func (_bdg *PdfActionLaunch )ToPdfObject ()_bcb .PdfObject {_bdg .PdfAction .ToPdfObject ();_gace :=_bdg ._dce ;_dac :=_gace .PdfObject .(*_bcb .PdfObjectDictionary );_dac .SetIfNotNil ("\u0053",_bcb .MakeName (string (ActionTypeLaunch )));if _bdg .F !=nil {_dac .Set ("\u0046",_bdg .F .ToPdfObject ());};_dac .SetIfNotNil ("\u0057\u0069\u006e",_bdg .Win );_dac .SetIfNotNil ("\u004d\u0061\u0063",_bdg .Mac );_dac .SetIfNotNil ("\u0055\u006e\u0069\u0078",_bdg .Unix );_dac .SetIfNotNil ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw",_bdg .NewWindow );return _gace ;};
// PdfActionType represents an action type in PDF (section 12.6.4 p. 417).
type PdfActionType string ;
// NewPdfActionSetOCGState returns a new "named" action.
func NewPdfActionSetOCGState ()*PdfActionSetOCGState {_ceg :=NewPdfAction ();_fgb :=&PdfActionSetOCGState {};_fgb .PdfAction =_ceg ;_ceg .SetContext (_fgb );return _fgb ;};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";);
// ColorToRGB verifies that the input color is an RGB color. Method exists in
// order to satisfy the PdfColorspace interface.
func (_deebf *PdfColorspaceDeviceRGB )ColorToRGB (color PdfColor )(PdfColor ,error ){_aead ,_eebg :=color .(*PdfColorDeviceRGB );if !_eebg {_cga .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 ,_ae .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};return _aead ,nil ;};
// IsCID returns true if the underlying font is CID.
func (_gbgcd *PdfFont )IsCID ()bool {return _gbgcd .baseFields ().isCIDFont ()};var ImageHandling ImageHandler =DefaultImageHandler {};
// 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 ;
// ImageToRGB converts an Image in a given PdfColorspace to an RGB image.
func (_befc *PdfColorspaceDeviceN )ImageToRGB (img Image )(Image ,error ){_geee :=_cgb .NewReader (img .getBase ());_eccag :=_fgd .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),img .ColorComponents ,nil ,img ._cdeb ,img ._fdggf );_fdeb :=_cgb .NewWriter (_eccag );_gbdb :=_edb .Pow (2,float64 (img .BitsPerComponent ))-1;_gaaf :=_befc .GetNumComponents ();_cefa :=make ([]uint32 ,_gaaf );_accge :=make ([]float64 ,_gaaf );for {_ccfd :=_geee .ReadSamples (_cefa );if _ccfd ==_fb .EOF {break ;}else if _ccfd !=nil {return img ,_ccfd ;};for _efd :=0;_efd < _gaaf ;_efd ++{_daca :=float64 (_cefa [_efd ])/_gbdb ;_accge [_efd ]=_daca ;};_gfgef ,_ccfd :=_befc .TintTransform .Evaluate (_accge );if _ccfd !=nil {return img ,_ccfd ;};for _ ,_gded :=range _gfgef {_gded =_edb .Min (_edb .Max (0,_gded ),1.0);if _ccfd =_fdeb .WriteSample (uint32 (_gded *_gbdb ));_ccfd !=nil {return img ,_ccfd ;};};};return _befc .AlternateSpace .ImageToRGB (_gagca (&_eccag ));};
// Set sets the colorspace corresponding to key. Add to Names if not set.
func (_fbefef *PdfPageResourcesColorspaces )Set (key _bcb .PdfObjectName ,val PdfColorspace ){if _ ,_dgfge :=_fbefef .Colorspaces [string (key )];!_dgfge {_fbefef .Names =append (_fbefef .Names ,string (key ));};_fbefef .Colorspaces [string (key )]=val ;};
// NewPdfOutlineItem returns an initialized PdfOutlineItem.
func NewPdfOutlineItem ()*PdfOutlineItem {_bceada :=&PdfOutlineItem {_afff :_bcb .MakeIndirectObject (_bcb .MakeDict ())};_bceada ._bfagd =_bceada ;return _bceada ;};func (_fcaf *DSS )addCRLs (_cfeg [][]byte )([]*_bcb .PdfObjectStream ,error ){return _fcaf .add (&_fcaf .CRLs ,_fcaf ._acaf ,_cfeg );};
// XObjectForm (Table 95 in 8.10.2).
type XObjectForm struct{Filter _bcb .StreamEncoder ;FormType _bcb .PdfObject ;BBox _bcb .PdfObject ;Matrix _bcb .PdfObject ;Resources *PdfPageResources ;Group _bcb .PdfObject ;Ref _bcb .PdfObject ;MetaData _bcb .PdfObject ;PieceInfo _bcb .PdfObject ;LastModified _bcb .PdfObject ;StructParent _bcb .PdfObject ;StructParents _bcb .PdfObject ;OPI _bcb .PdfObject ;OC _bcb .PdfObject ;Name _bcb .PdfObject ;
// Stream data.
Stream []byte ;_egcgbg *_bcb .PdfObjectStream ;};
// ReplacePage replaces the original page to a new page.
func (_gefc *PdfAppender )ReplacePage (pageNum int ,page *PdfPage ){_ffee :=pageNum -1;for _fcc :=range _gefc ._cgcg {if _fcc ==_ffee {_bcbda :=page .Duplicate ();_bdba (_bcbda );_gefc ._cgcg [_fcc ]=_bcbda ;};};};
// IsCheckbox returns true if the button field represents a checkbox, false otherwise.
func (_bcccf *PdfFieldButton )IsCheckbox ()bool {return _bcccf .GetType ()==ButtonTypeCheckbox };
// GetXObjectImageByName returns the XObjectImage with the specified name from the
// page resources, if it exists.
func (_agbgga *PdfPageResources )GetXObjectImageByName (keyName _bcb .PdfObjectName )(*XObjectImage ,error ){_bffdd ,_eegeb :=_agbgga .GetXObjectByName (keyName );if _bffdd ==nil {return nil ,nil ;};if _eegeb !=XObjectTypeImage {return nil ,_ae .New ("\u006e\u006f\u0074 \u0061\u006e\u0020\u0069\u006d\u0061\u0067\u0065");};_gaddcb ,_ccbdd :=NewXObjectImageFromStream (_bffdd );if _ccbdd !=nil {return nil ,_ccbdd ;};return _gaddcb ,nil ;};
// NewPdfActionGoTo returns a new "go to" action.
func NewPdfActionGoTo ()*PdfActionGoTo {_ef :=NewPdfAction ();_edg :=&PdfActionGoTo {};_edg .PdfAction =_ef ;_ef .SetContext (_edg );return _edg ;};func _aabe (_cedg _bcb .PdfObject ,_dafc bool )(*PdfFont ,error ){_bgcff ,_ffgcd ,_dbeffc :=_ecggg (_cedg );if _dbeffc !=nil {if _dbeffc ==ErrType3FontNotSupported ||_dbeffc ==ErrType1CFontNotSupported {_fbeg ,_cdfa :=_bdfd (_bgcff ,_ffgcd ,nil );if _cdfa !=nil {_cga .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",_ffgcd ,_cdfa );return nil ,_dbeffc ;};return &PdfFont {_fgge :_fbeg },_dbeffc ;};return nil ,_dbeffc ;};_egcg :=&PdfFont {};switch _ffgcd ._abgg {case "\u0054\u0079\u0070e\u0030":if !_dafc {_cga .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",_ffgcd );return nil ,_ae .New ("\u0063\u0079\u0063\u006cic\u0061\u006c\u0020\u0074\u0079\u0070\u0065\u0030\u0020\u006c\u006f\u0061\u0064\u0069n\u0067");};_ddbc ,_eaac :=_dfcgc (_bgcff ,_ffgcd );if _eaac !=nil {_cga .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",_ffgcd ,_eaac );return nil ,_eaac ;};_egcg ._fgge =_ddbc ;case "\u0054\u0079\u0070e\u0031","\u0054\u0079\u0070e\u0033","\u004dM\u0054\u0079\u0070\u0065\u0031","\u0054\u0072\u0075\u0065\u0054\u0079\u0070\u0065":var _fega *pdfFontSimple ;_bbfg ,_fgba :=_acc .NewStdFontByName (_acc .StdFontName (_ffgcd ._daeb ));if _fgba {_bcbcc :=_egdb (_bbfg );_egcg ._fgge =&_bcbcc ;_bdcb :=_bcb .TraceToDirectObject (_bcbcc .ToPdfObject ());_bccg ,_bfdag ,_aeged :=_ecggg (_bdcb );if _aeged !=nil {_cga .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",_ffgcd ,_bcbcc );return nil ,_aeged ;};for _ ,_bdga :=range _bgcff .Keys (){_bccg .Set (_bdga ,_bgcff .Get (_bdga ));};_fega ,_aeged =_bdfd (_bccg ,_bfdag ,_bcbcc ._bcdf );if _aeged !=nil {_cga .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",_ffgcd ,_bcbcc );return nil ,_aeged ;};_fega ._dgdfc =_bcbcc ._dgdfc ;_fega ._gbggc =_bcbcc ._gbggc ;}else {_fega ,_dbeffc =_bdfd (_bgcff ,_ffgcd ,nil );if _dbeffc !=nil {_cga .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",_ffgcd ,_dbeffc );return nil ,_dbeffc ;};};_dbeffc =_fega .addEncoding ();if _dbeffc !=nil {return nil ,_dbeffc ;};if _fgba {_fega .updateStandard14Font ();};if _fgba &&_fega ._fdebc ==nil &&_fega ._bcdf ==nil {_cga .Log .Error ("\u0073\u0069\u006d\u0070\u006c\u0065\u0066\u006f\u006e\u0074\u003d\u0025\u0073",_fega );_cga .Log .Error ("\u0066n\u0074\u003d\u0025\u002b\u0076",_bbfg );};if len (_fega ._dgdfc )==0{_cga .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a \u004e\u006f\u0020\u0077\u0069d\u0074h\u0073.\u0020\u0066\u006f\u006e\u0074\u003d\u0025s",_fega );};_egcg ._fgge =_fega ;case "\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0030":_fbcee ,_bdcac :=_bgege (_bgcff ,_ffgcd );if _bdcac !=nil {_cga .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",_bdcac );return nil ,_bdcac ;};_egcg ._fgge =_fbcee ;case "\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032":_edbf ,_daaa :=_fgab (_bgcff ,_ffgcd );if _daaa !=nil {_cga .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",_ffgcd ,_daaa );return nil ,_daaa ;};_egcg ._fgge =_edbf ;default:_cga .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",_ffgcd );return nil ,_e .Errorf ("\u0075\u006e\u0073\u0075\u0070\u0070\u006f\u0072\u0074\u0065d\u0020\u0066\u006f\u006e\u0074\u0020\u0074y\u0070\u0065\u003a\u0020\u0066\u006f\u006e\u0074\u003d\u0025\u0073",_ffgcd );};return _egcg ,nil ;};
// ToPdfObject returns the button field dictionary within an indirect object.
func (_bbae *PdfFieldButton )ToPdfObject ()_bcb .PdfObject {_bbae .PdfField .ToPdfObject ();_dgfgb :=_bbae ._gggf ;_ecac :=_dgfgb .PdfObject .(*_bcb .PdfObjectDictionary );_ecac .Set ("\u0046\u0054",_bcb .MakeName ("\u0042\u0074\u006e"));if _bbae .Opt !=nil {_ecac .Set ("\u004f\u0070\u0074",_bbae .Opt );};return _dgfgb ;};
// 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 (_bebfd *PdfColorspaceLab )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=3{return nil ,_ae .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_eeaf :=vals [0];if _eeaf < 0.0||_eeaf > 100.0{_cga .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",_eeaf );return nil ,_ae .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_ababb :=vals [1];_eecc :=float64 (-100);_gabd :=float64 (100);if len (_bebfd .Range )> 1{_eecc =_bebfd .Range [0];_gabd =_bebfd .Range [1];};if _ababb < _eecc ||_ababb > _gabd {_cga .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",_ababb ,_eecc ,_gabd );return nil ,_ae .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_gbcg :=vals [2];_gbae :=float64 (-100);_dadcf :=float64 (100);if len (_bebfd .Range )> 3{_gbae =_bebfd .Range [2];_dadcf =_bebfd .Range [3];};if _gbcg < _gbae ||_gbcg > _dadcf {_cga .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",_gbcg ,_gbae ,_dadcf );return nil ,_ae .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_agcg :=NewPdfColorLab (_eeaf ,_ababb ,_gbcg );return _agcg ,nil ;};
// ToPdfObject returns the PDF representation of the outline tree node.
func (_bebdf *PdfOutlineTreeNode )ToPdfObject ()_bcb .PdfObject {return _bebdf .GetContext ().ToPdfObject ();};
// DecodeArray returns the range of color component values in CalRGB colorspace.
func (_fgeb *PdfColorspaceCalRGB )DecodeArray ()[]float64 {return []float64 {0.0,1.0,0.0,1.0,0.0,1.0};};
// GetNamedDestinations returns the Names entry in the PDF catalog.
// See section 12.3.2.3 "Named Destinations" (p. 367 PDF32000_2008).
func (_ddbge *PdfReader )GetNamedDestinations ()(_bcb .PdfObject ,error ){_bdbf :=_bcb .ResolveReference (_ddbge ._fccd .Get ("\u004e\u0061\u006de\u0073"));if _bdbf ==nil {return nil ,nil ;};if !_ddbge ._abdcg {_gadec :=_ddbge .traverseObjectData (_bdbf );if _gadec !=nil {return nil ,_gadec ;};};return _bdbf ,nil ;};func (_egba *PdfReader )loadDSS ()(*DSS ,error ){if _egba ._ecage .GetCrypter ()!=nil &&!_egba ._ecage .IsAuthenticated (){return nil ,_e .Errorf ("\u0066\u0069\u006ce\u0020\u006e\u0065\u0065d\u0020\u0074\u006f\u0020\u0062\u0065\u0020d\u0065\u0063\u0072\u0079\u0070\u0074\u0065\u0064\u0020\u0066\u0069\u0072\u0073\u0074");};_cfdae :=_egba ._fccd .Get ("\u0044\u0053\u0053");if _cfdae ==nil {return nil ,nil ;};_deaff ,_ :=_bcb .GetIndirect (_cfdae );_cfdae =_bcb .TraceToDirectObject (_cfdae );switch _dbcac :=_cfdae .(type ){case *_bcb .PdfObjectNull :return nil ,nil ;case *_bcb .PdfObjectDictionary :return _edgg (_deaff ,_dbcac );};return nil ,_e .Errorf ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0044\u0053\u0053 \u0065\u006e\u0074\u0072y \u0025\u0054",_cfdae );};
// PdfShadingType7 is a Tensor-product patch mesh.
type PdfShadingType7 struct{*PdfShading ;BitsPerCoordinate *_bcb .PdfObjectInteger ;BitsPerComponent *_bcb .PdfObjectInteger ;BitsPerFlag *_bcb .PdfObjectInteger ;Decode *_bcb .PdfObjectArray ;Function []PdfFunction ;};func (_cac *PdfReader )newPdfAnnotationUnderlineFromDict (_aaa *_bcb .PdfObjectDictionary )(*PdfAnnotationUnderline ,error ){_fcde :=PdfAnnotationUnderline {};_cbfe ,_cbfdf :=_cac .newPdfAnnotationMarkupFromDict (_aaa );if _cbfdf !=nil {return nil ,_cbfdf ;};_fcde .PdfAnnotationMarkup =_cbfe ;_fcde .QuadPoints =_aaa .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");return &_fcde ,nil ;};
// GetXObjectByName returns the XObject with the specified keyName and the object type.
func (_cadd *PdfPageResources )GetXObjectByName (keyName _bcb .PdfObjectName )(*_bcb .PdfObjectStream ,XObjectType ){if _cadd .XObject ==nil {return nil ,XObjectTypeUndefined ;};_gdaag ,_abad :=_bcb .TraceToDirectObject (_cadd .XObject ).(*_bcb .PdfObjectDictionary );if !_abad {_cga .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",_bcb .TraceToDirectObject (_cadd .XObject ));return nil ,XObjectTypeUndefined ;};if _cfdfe :=_gdaag .Get (keyName );_cfdfe !=nil {_cebea ,_aaec :=_bcb .GetStream (_cfdfe );if !_aaec {_cga .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",_cfdfe );return nil ,XObjectTypeUndefined ;};_cgabf :=_cebea .PdfObjectDictionary ;_aedc ,_aaec :=_bcb .TraceToDirectObject (_cgabf .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065")).(*_bcb .PdfObjectName );if !_aaec {_cga .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",_cgabf .String ());return nil ,XObjectTypeUndefined ;};if *_aedc =="\u0049\u006d\u0061g\u0065"{return _cebea ,XObjectTypeImage ;}else if *_aedc =="\u0046\u006f\u0072\u006d"{return _cebea ,XObjectTypeForm ;}else if *_aedc =="\u0050\u0053"{return _cebea ,XObjectTypePS ;}else {_cga .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",*_aedc );return nil ,XObjectTypeUndefined ;};}else {return nil ,XObjectTypeUndefined ;};};
// NewPdfAnnotationRichMedia returns a new rich media annotation.
func NewPdfAnnotationRichMedia ()*PdfAnnotationRichMedia {_cfed :=NewPdfAnnotation ();_dgd :=&PdfAnnotationRichMedia {};_dgd .PdfAnnotation =_cfed ;_cfed .SetContext (_dgd );return _dgd ;};
// 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 _bcb .StreamEncoder )(*XObjectImage ,error ){_cgfgf :=NewXObjectImage ();return UpdateXObjectImageFromImage (_cgfgf ,img ,cs ,encoder );};
// GetFontDescriptor returns the font descriptor for `font`.
func (_fbgb PdfFont )GetFontDescriptor ()(*PdfFontDescriptor ,error ){return _fbgb ._fgge .getFontDescriptor (),nil ;};
// ToPdfObject returns a PDF object representation of the outline.
func (_cbgfd *Outline )ToPdfObject ()_bcb .PdfObject {return _cbgfd .ToPdfOutline ().ToPdfObject ()};
// NewPdfOutline returns an initialized PdfOutline.
func NewPdfOutline ()*PdfOutline {_acbfb :=&PdfOutline {_cdec :_bcb .MakeIndirectObject (_bcb .MakeDict ())};_acbfb ._bfagd =_acbfb ;return _acbfb ;};func (_bab *PdfReader )newPdfActionSetOCGStateFromDict (_eeb *_bcb .PdfObjectDictionary )(*PdfActionSetOCGState ,error ){return &PdfActionSetOCGState {State :_eeb .Get ("\u0053\u0074\u0061t\u0065"),PreserveRB :_eeb .Get ("\u0050\u0072\u0065\u0073\u0065\u0072\u0076\u0065\u0052\u0042")},nil ;};
// ToPdfObject converts the pdfCIDFontType0 to a PDF representation.
func (_ggggb *pdfCIDFontType0 )ToPdfObject ()_bcb .PdfObject {return _bcb .MakeNull ()};
// NewPdfAnnotationWidget returns an initialized annotation widget.
func NewPdfAnnotationWidget ()*PdfAnnotationWidget {_bffa :=NewPdfAnnotation ();_dbcf :=&PdfAnnotationWidget {};_dbcf .PdfAnnotation =_bffa ;_bffa .SetContext (_dbcf );return _dbcf ;};func (_dbcb *PdfReader )newPdfAnnotation3DFromDict (_fdb *_bcb .PdfObjectDictionary )(*PdfAnnotation3D ,error ){_dacf :=PdfAnnotation3D {};_dacf .T3DD =_fdb .Get ("\u0033\u0044\u0044");_dacf .T3DV =_fdb .Get ("\u0033\u0044\u0056");_dacf .T3DA =_fdb .Get ("\u0033\u0044\u0041");_dacf .T3DI =_fdb .Get ("\u0033\u0044\u0049");_dacf .T3DB =_fdb .Get ("\u0033\u0044\u0042");return &_dacf ,nil ;};
// PdfActionSubmitForm represents a submitForm action.
type PdfActionSubmitForm struct{*PdfAction ;F *PdfFilespec ;Fields _bcb .PdfObject ;Flags _bcb .PdfObject ;};
// ToPdfObject converts the PdfFont object to its PDF representation.
func (_dbea *PdfFont )ToPdfObject ()_bcb .PdfObject {if _dbea ._fgge ==nil {_cga .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 _bcb .MakeNull ();};return _dbea ._fgge .ToPdfObject ();};
// GetPage returns the PdfPage model for the specified page number.
func (_bbfba *PdfReader )GetPage (pageNumber int )(*PdfPage ,error ){if _bbfba ._ecage .GetCrypter ()!=nil &&!_bbfba ._ecage .IsAuthenticated (){return nil ,_e .Errorf ("\u0066\u0069\u006c\u0065\u0020\u006e\u0065\u0065\u0064\u0073\u0020\u0074\u006f\u0020\u0062e\u0020d\u0065\u0063\u0072\u0079\u0070\u0074\u0065\u0064\u0020\u0066\u0069\u0072\u0073\u0074");};if len (_bbfba ._fcff )< pageNumber {return nil ,_ae .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");};_bfaggd :=pageNumber -1;if _bfaggd < 0{return nil ,_e .Errorf ("\u0070\u0061\u0067\u0065\u0020\u006e\u0075\u006d\u0062\u0065r\u0069\u006e\u0067\u0020\u006d\u0075\u0073t\u0020\u0073\u0074\u0061\u0072\u0074\u0020\u0061\u0074\u0020\u0031");};_gcfg :=_bbfba .PageList [_bfaggd ];return _gcfg ,nil ;};
// DSS represents a Document Security Store dictionary.
// The DSS dictionary contains both global and signature specific validation
// information. The certificates and revocation data in the `Certs`, `OCSPs`,
// and `CRLs` fields can be used to validate any signature in the document.
// Additionally, the VRI entry contains validation data per signature.
// The keys in the VRI entry are calculated as upper(hex(sha1(sig.Contents))).
// The values are VRI dictionaries containing certificates and revocation
// information used for validating a single signature.
// See ETSI TS 102 778-4 V1.1.1 for more information.
type DSS struct{_bdac *_bcb .PdfIndirectObject ;Certs []*_bcb .PdfObjectStream ;OCSPs []*_bcb .PdfObjectStream ;CRLs []*_bcb .PdfObjectStream ;VRI map[string ]*VRI ;_dcbbe map[string ]*_bcb .PdfObjectStream ;_fgbgb map[string ]*_bcb .PdfObjectStream ;_acaf map[string ]*_bcb .PdfObjectStream ;};func _ebgca ()*modelManager {_fdab :=modelManager {};_fdab ._eccaga =map[PdfModel ]_bcb .PdfObject {};_fdab ._ecfgbb =map[_bcb .PdfObject ]PdfModel {};return &_fdab ;};var (_gebfd =_ec .MustCompile ("\u005cd\u002b\u0020\u0064\u0069c\u0074\u005c\u0073\u002b\u0028d\u0075p\u005cs\u002b\u0029\u003f\u0062\u0065\u0067\u0069n");_gbeec =_ec .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");_cdfce =_ec .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");_dgbdb ="\u002f\u0045\u006e\u0063od\u0069\u006e\u0067\u0020\u0032\u0035\u0036\u0020\u0061\u0072\u0072\u0061\u0079";_gdgb ="\u0072\u0065\u0061d\u006f\u006e\u006c\u0079\u0020\u0064\u0065\u0066";_ddfc ="\u0063\u0075\u0072\u0072\u0065\u006e\u0074\u0066\u0069\u006c\u0065\u0020e\u0065\u0078\u0065\u0063";);
// UpdateObject marks `obj` as updated and to be included in the following revision.
func (_cbde *PdfAppender )UpdateObject (obj _bcb .PdfObject ){_cbde .replaceObject (obj ,obj );if _ ,_degg :=_cbde ._bfbb [obj ];!_degg {_cbde ._eebb =append (_cbde ._eebb ,obj );_cbde ._bfbb [obj ]=struct{}{};};};
// ToPdfObject returns colorspace in a PDF object format [name stream]
func (_bgaaf *PdfColorspaceICCBased )ToPdfObject ()_bcb .PdfObject {_fcagc :=&_bcb .PdfObjectArray {};_fcagc .Append (_bcb .MakeName ("\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064"));var _ebfb *_bcb .PdfObjectStream ;if _bgaaf ._gdgc !=nil {_ebfb =_bgaaf ._gdgc ;}else {_ebfb =&_bcb .PdfObjectStream {};};_dcdbc :=_bcb .MakeDict ();_dcdbc .Set ("\u004e",_bcb .MakeInteger (int64 (_bgaaf .N )));if _bgaaf .Alternate !=nil {_dcdbc .Set ("\u0041l\u0074\u0065\u0072\u006e\u0061\u0074e",_bgaaf .Alternate .ToPdfObject ());};if _bgaaf .Metadata !=nil {_dcdbc .Set ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061",_bgaaf .Metadata );};if _bgaaf .Range !=nil {var _bggb []_bcb .PdfObject ;for _ ,_aedgg :=range _bgaaf .Range {_bggb =append (_bggb ,_bcb .MakeFloat (_aedgg ));};_dcdbc .Set ("\u0052\u0061\u006eg\u0065",_bcb .MakeArray (_bggb ...));};_dcdbc .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_bcb .MakeInteger (int64 (len (_bgaaf .Data ))));_ebfb .Stream =_bgaaf .Data ;_ebfb .PdfObjectDictionary =_dcdbc ;_fcagc .Append (_ebfb );if _bgaaf ._aaadb !=nil {_bgaaf ._aaadb .PdfObject =_fcagc ;return _bgaaf ._aaadb ;};return _fcagc ;};func (_cfge *PdfReader )newPdfActionThreadFromDict (_fcdf *_bcb .PdfObjectDictionary )(*PdfActionThread ,error ){_eagd ,_gdb :=_geg (_fcdf .Get ("\u0046"));if _gdb !=nil {return nil ,_gdb ;};return &PdfActionThread {D :_fcdf .Get ("\u0044"),B :_fcdf .Get ("\u0042"),F :_eagd },nil ;};func _dbe (_gdbbc *PdfPage )map[_bcb .PdfObjectName ]_bcb .PdfObject {_ffdg :=make (map[_bcb .PdfObjectName ]_bcb .PdfObject );if _gdbbc .Resources ==nil {return _ffdg ;};if _gdbbc .Resources .Font !=nil {if _dfgd ,_ecfg :=_bcb .GetDict (_gdbbc .Resources .Font );_ecfg {for _ ,_geb :=range _dfgd .Keys (){_ffdg [_geb ]=_dfgd .Get (_geb );};};};if _gdbbc .Resources .ExtGState !=nil {if _aaef ,_dgfbg :=_bcb .GetDict (_gdbbc .Resources .ExtGState );_dgfbg {for _ ,_eece :=range _aaef .Keys (){_ffdg [_eece ]=_aaef .Get (_eece );};};};if _gdbbc .Resources .XObject !=nil {if _dddg ,_fegd :=_bcb .GetDict (_gdbbc .Resources .XObject );_fegd {for _ ,_aedf :=range _dddg .Keys (){_ffdg [_aedf ]=_dddg .Get (_aedf );};};};if _gdbbc .Resources .Pattern !=nil {if _gdff ,_dfcf :=_bcb .GetDict (_gdbbc .Resources .Pattern );_dfcf {for _ ,_cccca :=range _gdff .Keys (){_ffdg [_cccca ]=_gdff .Get (_cccca );};};};if _gdbbc .Resources .Shading !=nil {if _fbaf ,_dcgb :=_bcb .GetDict (_gdbbc .Resources .Shading );_dcgb {for _ ,_gbbf :=range _fbaf .Keys (){_ffdg [_gbbf ]=_fbaf .Get (_gbbf );};};};if _gdbbc .Resources .ProcSet !=nil {if _eefga ,_gacg :=_bcb .GetDict (_gdbbc .Resources .ProcSet );_gacg {for _ ,_bdbg :=range _eefga .Keys (){_ffdg [_bdbg ]=_eefga .Get (_bdbg );};};};if _gdbbc .Resources .Properties !=nil {if _fefc ,_gcg :=_bcb .GetDict (_gdbbc .Resources .Properties );_gcg {for _ ,_gfda :=range _fefc .Keys (){_ffdg [_gfda ]=_fefc .Get (_gfda );};};};return _ffdg ;};
// NewPdfPageResourcesColorspaces returns a new PdfPageResourcesColorspaces object.
func NewPdfPageResourcesColorspaces ()*PdfPageResourcesColorspaces {_fefdb :=&PdfPageResourcesColorspaces {};_fefdb .Names =[]string {};_fefdb .Colorspaces =map[string ]PdfColorspace {};_fefdb ._fggf =&_bcb .PdfIndirectObject {};return _fefdb ;};
// NewPdfAnnotationSound returns a new sound annotation.
func NewPdfAnnotationSound ()*PdfAnnotationSound {_cfade :=NewPdfAnnotation ();_aed :=&PdfAnnotationSound {};_aed .PdfAnnotation =_cfade ;_aed .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_cfade .SetContext (_aed );return _aed ;};func (_egccf *PdfShading )getShadingDict ()(*_bcb .PdfObjectDictionary ,error ){_bgef :=_egccf ._eced ;if _ccgaa ,_fgdee :=_bgef .(*_bcb .PdfIndirectObject );_fgdee {_egffe ,_bddgd :=_ccgaa .PdfObject .(*_bcb .PdfObjectDictionary );if !_bddgd {return nil ,_bcb .ErrTypeError ;};return _egffe ,nil ;}else if _faccf ,_aaag :=_bgef .(*_bcb .PdfObjectStream );_aaag {return _faccf .PdfObjectDictionary ,nil ;}else if _dgcac ,_dddcd :=_bgef .(*_bcb .PdfObjectDictionary );_dddcd {return _dgcac ,nil ;}else {_cga .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 ,_bcb .ErrTypeError ;};};
// PdfAnnotationUnderline represents Underline annotations.
// (Section 12.5.6.10).
type PdfAnnotationUnderline struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _bcb .PdfObject ;};
// PdfShadingType4 is a Free-form Gouraud-shaded triangle mesh.
type PdfShadingType4 struct{*PdfShading ;BitsPerCoordinate *_bcb .PdfObjectInteger ;BitsPerComponent *_bcb .PdfObjectInteger ;BitsPerFlag *_bcb .PdfObjectInteger ;Decode *_bcb .PdfObjectArray ;Function []PdfFunction ;};
// GetPrimitiveFromModel returns the primitive object corresponding to the input `model`.
func (_cafgc *modelManager )GetPrimitiveFromModel (model PdfModel )_bcb .PdfObject {_bceb ,_egff :=_cafgc ._eccaga [model ];if !_egff {return nil ;};return _bceb ;};var _dbcc =_ec .MustCompile ("\u005b\\\u006e\u005c\u0072\u005d\u002b");func _gagca (_agbdg *_fgd .ImageBase )(_ababe Image ){_ababe .Width =int64 (_agbdg .Width );_ababe .Height =int64 (_agbdg .Height );_ababe .BitsPerComponent =int64 (_agbdg .BitsPerComponent );_ababe .ColorComponents =_agbdg .ColorComponents ;_ababe .Data =_agbdg .Data ;_ababe ._fdggf =_agbdg .Decode ;_ababe ._cdeb =_agbdg .Alpha ;return _ababe ;};
// PdfPage represents a page in a PDF document. (7.7.3.3 - Table 30).
type PdfPage struct{Parent _bcb .PdfObject ;LastModified *PdfDate ;Resources *PdfPageResources ;CropBox *PdfRectangle ;MediaBox *PdfRectangle ;BleedBox *PdfRectangle ;TrimBox *PdfRectangle ;ArtBox *PdfRectangle ;BoxColorInfo _bcb .PdfObject ;Contents _bcb .PdfObject ;Rotate *int64 ;Group _bcb .PdfObject ;Thumb _bcb .PdfObject ;B _bcb .PdfObject ;Dur _bcb .PdfObject ;Trans _bcb .PdfObject ;AA _bcb .PdfObject ;Metadata _bcb .PdfObject ;PieceInfo _bcb .PdfObject ;StructParents _bcb .PdfObject ;ID _bcb .PdfObject ;PZ _bcb .PdfObject ;SeparationInfo _bcb .PdfObject ;Tabs _bcb .PdfObject ;TemplateInstantiated _bcb .PdfObject ;PresSteps _bcb .PdfObject ;UserUnit _bcb .PdfObject ;VP _bcb .PdfObject ;Annots _bcb .PdfObject ;_adgce []*PdfAnnotation ;_fagg *_bcb .PdfObjectDictionary ;_cfabg *_bcb .PdfIndirectObject ;_eeeba *PdfReader ;};func (_adb *PdfReader )newPdfActionHideFromDict (_egeg *_bcb .PdfObjectDictionary )(*PdfActionHide ,error ){return &PdfActionHide {T :_egeg .Get ("\u0054"),H :_egeg .Get ("\u0048")},nil ;};
// NewPdfAnnotationWatermark returns a new watermark annotation.
func NewPdfAnnotationWatermark ()*PdfAnnotationWatermark {_fce :=NewPdfAnnotation ();_ffd :=&PdfAnnotationWatermark {};_ffd .PdfAnnotation =_fce ;_fce .SetContext (_ffd );return _ffd ;};
// GetShadingByName gets the shading specified by keyName. Returns nil if not existing.
// The bool flag indicated whether it was found or not.
func (_fdcc *PdfPageResources )GetShadingByName (keyName _bcb .PdfObjectName )(*PdfShading ,bool ){if _fdcc .Shading ==nil {return nil ,false ;};_bdfec ,_ddbfb :=_bcb .TraceToDirectObject (_fdcc .Shading ).(*_bcb .PdfObjectDictionary );if !_ddbfb {_cga .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",_fdcc .Shading );return nil ,false ;};if _afge :=_bdfec .Get (keyName );_afge !=nil {_ccac ,_cdcc :=_cdgdf (_afge );if _cdcc !=nil {_cga .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",_cdcc );return nil ,false ;};return _ccac ,true ;};return nil ,false ;};
// 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 (_cgagc byte )byte ;
// PdfColorPattern represents a pattern color.
type PdfColorPattern struct{Color PdfColor ;PatternName _bcb .PdfObjectName ;};
// ToPdfObject converts PdfAcroForm to a PdfObject, i.e. an indirect object containing the
// AcroForm dictionary.
func (_egadd *PdfAcroForm )ToPdfObject ()_bcb .PdfObject {_ggad :=_egadd ._gacgf ;_gdfbf :=_ggad .PdfObject .(*_bcb .PdfObjectDictionary );if _egadd .Fields !=nil {_gbbab :=_bcb .PdfObjectArray {};for _ ,_acff :=range *_egadd .Fields {_begce :=_acff .GetContext ();if _begce !=nil {_gbbab .Append (_begce .ToPdfObject ());}else {_gbbab .Append (_acff .ToPdfObject ());};};_gdfbf .Set ("\u0046\u0069\u0065\u006c\u0064\u0073",&_gbbab );};if _egadd .NeedAppearances !=nil {_gdfbf .Set ("\u004ee\u0065d\u0041\u0070\u0070\u0065\u0061\u0072\u0061\u006e\u0063\u0065\u0073",_egadd .NeedAppearances );};if _egadd .SigFlags !=nil {_gdfbf .Set ("\u0053\u0069\u0067\u0046\u006c\u0061\u0067\u0073",_egadd .SigFlags );};if _egadd .CO !=nil {_gdfbf .Set ("\u0043\u004f",_egadd .CO );};if _egadd .DR !=nil {_gdfbf .Set ("\u0044\u0052",_egadd .DR .ToPdfObject ());};if _egadd .DA !=nil {_gdfbf .Set ("\u0044\u0041",_egadd .DA );};if _egadd .Q !=nil {_gdfbf .Set ("\u0051",_egadd .Q );};if _egadd .XFA !=nil {_gdfbf .Set ("\u0058\u0046\u0041",_egadd .XFA );};return _ggad ;};
// NewPdfActionGoToR returns a new "go to remote" action.
func NewPdfActionGoToR ()*PdfActionGoToR {_accb :=NewPdfAction ();_fe :=&PdfActionGoToR {};_fe .PdfAction =_accb ;_accb .SetContext (_fe );return _fe ;};
// PdfColorspaceDeviceRGB represents an RGB colorspace.
type PdfColorspaceDeviceRGB struct{};
// GetContainingPdfObject implements interface PdfModel.
func (_acefa *PdfFilespec )GetContainingPdfObject ()_bcb .PdfObject {return _acefa ._dcgf };
// ColorAt returns the color of the image pixel specified by the x and y coordinates.
func (_gafca *Image )ColorAt (x ,y int )(_b .Color ,error ){_bfdf :=_fgd .BytesPerLine (int (_gafca .Width ),int (_gafca .BitsPerComponent ),_gafca .ColorComponents );switch _gafca .ColorComponents {case 1:return _fgd .ColorAtGrayscale (x ,y ,int (_gafca .BitsPerComponent ),_bfdf ,_gafca .Data ,_gafca ._fdggf );case 3:return _fgd .ColorAtNRGBA (x ,y ,int (_gafca .Width ),_bfdf ,int (_gafca .BitsPerComponent ),_gafca .Data ,_gafca ._cdeb ,_gafca ._fdggf );case 4:return _fgd .ColorAtCMYK (x ,y ,int (_gafca .Width ),_gafca .Data ,_gafca ._fdggf );};_cga .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",_gafca .ColorComponents ,_gafca .BitsPerComponent );return nil ,_ae .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");};
// PdfShadingType5 is a Lattice-form Gouraud-shaded triangle mesh.
type PdfShadingType5 struct{*PdfShading ;BitsPerCoordinate *_bcb .PdfObjectInteger ;BitsPerComponent *_bcb .PdfObjectInteger ;VerticesPerRow *_bcb .PdfObjectInteger ;Decode *_bcb .PdfObjectArray ;Function []PdfFunction ;};
// EnableByName LTV enables the signature dictionary of the PDF AcroForm
// field identified the specified name. The signing certificate chain is
// extracted from the signature dictionary. Optionally, additional certificates
// can be specified through the `extraCerts` parameter. The LTV client attempts
// to build the certificate chain up to a trusted root by downloading any
// missing certificates.
func (_eeaad *LTV )EnableByName (name string ,extraCerts []*_ffg .Certificate )error {_dddgcc :=_eeaad ._dfegg ._adcc .AcroForm ;for _ ,_ffbb :=range _dddgcc .AllFields (){_egdedf ,_ :=_ffbb .GetContext ().(*PdfFieldSignature );if _egdedf ==nil {continue ;};if _adccdf :=_egdedf .PartialName ();_adccdf !=name {continue ;};return _eeaad .Enable (_egdedf .V ,extraCerts );};return nil ;};
// GetNumComponents returns the number of color components of the colorspace device.
// Returns 4 for a CMYK32 device.
func (_gaag *PdfColorspaceDeviceCMYK )GetNumComponents ()int {return 4};func (_ccg *PdfAnnotation )String ()string {_gggg :="";_gfc ,_cagg :=_ccg .ToPdfObject ().(*_bcb .PdfIndirectObject );if _cagg {_gggg =_e .Sprintf ("\u0025\u0054\u003a\u0020\u0025\u0073",_ccg ._feb ,_gfc .PdfObject .String ());};return _gggg ;};func _acbg (_bcbb _bcb .PdfObject )(*PdfColorspaceCalRGB ,error ){_fgce :=NewPdfColorspaceCalRGB ();if _cgfa ,_dbeff :=_bcbb .(*_bcb .PdfIndirectObject );_dbeff {_fgce ._fabd =_cgfa ;};_bcbb =_bcb .TraceToDirectObject (_bcbb );_bedf ,_febcb :=_bcbb .(*_bcb .PdfObjectArray );if !_febcb {return nil ,_e .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _bedf .Len ()!=2{return nil ,_e .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0043\u0061\u006c\u0052G\u0042 \u0063o\u006c\u006f\u0072\u0073\u0070\u0061\u0063e");};_bcbb =_bcb .TraceToDirectObject (_bedf .Get (0));_bdgb ,_febcb :=_bcbb .(*_bcb .PdfObjectName );if !_febcb {return nil ,_e .Errorf ("\u0043\u0061l\u0052\u0047\u0042\u0020\u006e\u0061\u006d\u0065\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u004e\u0061\u006d\u0065\u0020\u006f\u0062je\u0063\u0074");};if *_bdgb !="\u0043\u0061\u006c\u0052\u0047\u0042"{return nil ,_e .Errorf ("\u006e\u006f\u0074 a\u0020\u0043\u0061\u006c\u0052\u0047\u0042\u0020\u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063\u0065");};_bcbb =_bcb .TraceToDirectObject (_bedf .Get (1));_fbdf ,_febcb :=_bcbb .(*_bcb .PdfObjectDictionary );if !_febcb {return nil ,_e .Errorf ("\u0043\u0061l\u0052\u0047\u0042\u0020\u006e\u0061\u006d\u0065\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u004e\u0061\u006d\u0065\u0020\u006f\u0062je\u0063\u0074");};_bcbb =_fbdf .Get ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074");_bcbb =_bcb .TraceToDirectObject (_bcbb );_ffggbe ,_febcb :=_bcbb .(*_bcb .PdfObjectArray );if !_febcb {return nil ,_e .Errorf ("\u0043\u0061\u006c\u0052\u0047\u0042\u003a\u0020\u0049\u006e\u0076a\u006c\u0069\u0064\u0020\u0057\u0068\u0069\u0074\u0065\u0050o\u0069\u006e\u0074");};if _ffggbe .Len ()!=3{return nil ,_e .Errorf ("\u0043\u0061\u006c\u0052\u0047\u0042\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064 \u0057h\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074\u0020\u0061\u0072\u0072\u0061\u0079");};_abgc ,_ccddg :=_ffggbe .GetAsFloat64Slice ();if _ccddg !=nil {return nil ,_ccddg ;};_fgce .WhitePoint =_abgc ;_bcbb =_fbdf .Get ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074");if _bcbb !=nil {_bcbb =_bcb .TraceToDirectObject (_bcbb );_ceed ,_gedd :=_bcbb .(*_bcb .PdfObjectArray );if !_gedd {return nil ,_e .Errorf ("\u0043\u0061\u006c\u0052\u0047\u0042\u003a\u0020\u0049\u006e\u0076a\u006c\u0069\u0064\u0020\u0042\u006c\u0061\u0063\u006b\u0050o\u0069\u006e\u0074");};if _ceed .Len ()!=3{return nil ,_e .Errorf ("\u0043\u0061\u006c\u0052\u0047\u0042\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064 \u0042l\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074\u0020\u0061\u0072\u0072\u0061\u0079");};_adcdg ,_gdcg :=_ceed .GetAsFloat64Slice ();if _gdcg !=nil {return nil ,_gdcg ;};_fgce .BlackPoint =_adcdg ;};_bcbb =_fbdf .Get ("\u0047\u0061\u006dm\u0061");if _bcbb !=nil {_bcbb =_bcb .TraceToDirectObject (_bcbb );_bbbf ,_dbec :=_bcbb .(*_bcb .PdfObjectArray );if !_dbec {return nil ,_e .Errorf ("C\u0061\u006c\u0052\u0047B:\u0020I\u006e\u0076\u0061\u006c\u0069d\u0020\u0047\u0061\u006d\u006d\u0061");};if _bbbf .Len ()!=3{return nil ,_e .Errorf ("C\u0061\u006c\u0052\u0047\u0042\u003a \u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0047a\u006d\u006d\u0061 \u0061r\u0072\u0061\u0079");};_ddeg ,_aecd :=_bbbf .GetAsFloat64Slice ();if _aecd !=nil {return nil ,_aecd ;};_fgce .Gamma =_ddeg ;};_bcbb =_fbdf .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");if _bcbb !=nil {_bcbb =_bcb .TraceToDirectObject (_bcbb );_efef ,_cffcf :=_bcbb .(*_bcb .PdfObjectArray );if !_cffcf {return nil ,_e .Errorf ("\u0043\u0061\u006c\u0052GB\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u004d\u0061\u0074\u0072i\u0078");};if _efef .Len ()!=9{_cga .Log .Error ("\u004d\u0061t\u0072\u0069\u0078 \u0061\u0072\u0072\u0061\u0079\u003a\u0020\u0025\u0073",_efef .String ());return nil ,_e .Errorf ("\u0043\u0061\u006c\u0052G\u0042\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064 \u004da\u0074\u0072\u0069\u0078\u0020\u0061\u0072r\u0061\u0079");};_debg ,_ebgg :=_efef .GetAsFloat64Slice ();if _ebgg !=nil {return nil ,_ebgg ;};_fgce .Matrix =_debg ;};return _fgce ,nil ;};
// NewPdfDateFromTime will create a PdfDate based on the given time
func NewPdfDateFromTime (timeObj _d .Time )(PdfDate ,error ){_cggbc :=timeObj .Format ("\u002d\u0030\u0037\u003a\u0030\u0030");_fgfdc ,_ :=_ea .ParseInt (_cggbc [1:3],10,32);_cgeee ,_ :=_ea .ParseInt (_cggbc [4:6],10,32);return PdfDate {_ffcaf :int64 (timeObj .Year ()),_caegfa :int64 (timeObj .Month ()),_egaf :int64 (timeObj .Day ()),_dagbf :int64 (timeObj .Hour ()),_dgdge :int64 (timeObj .Minute ()),_adbfb :int64 (timeObj .Second ()),_ddadb :_cggbc [0],_cdaaf :_fgfdc ,_afde :_cgeee },nil ;};
// GetContainingPdfObject returns the container of the shading object (indirect object).
func (_cdecd *PdfShading )GetContainingPdfObject ()_bcb .PdfObject {return _cdecd ._eced };
// SetPdfCreationDate sets the CreationDate attribute of the output PDF.
func SetPdfCreationDate (creationDate _d .Time ){_dgagfb .Lock ();defer _dgagfb .Unlock ();_afad =creationDate ;};
// ToJBIG2Image converts current image to the core.JBIG2Image.
func (_eegaf *Image )ToJBIG2Image ()(*_bcb .JBIG2Image ,error ){_ebfef ,_cabe :=_eegaf .ToGoImage ();if _cabe !=nil {return nil ,_cabe ;};return _bcb .GoImageToJBIG2 (_ebfef ,_bcb .JB2ImageAutoThreshold );};func (_cgeb *PdfFont )baseFields ()*fontCommon {if _cgeb ._fgge ==nil {_cga .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 _cgeb ._fgge .baseFields ();};
// ToPdfObject implements interface PdfModel.
func (_edbgb *PdfAnnotationLine )ToPdfObject ()_bcb .PdfObject {_edbgb .PdfAnnotation .ToPdfObject ();_agfa :=_edbgb ._daa ;_aecff :=_agfa .PdfObject .(*_bcb .PdfObjectDictionary );_edbgb .PdfAnnotationMarkup .appendToPdfDictionary (_aecff );_aecff .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_bcb .MakeName ("\u004c\u0069\u006e\u0065"));_aecff .SetIfNotNil ("\u004c",_edbgb .L );_aecff .SetIfNotNil ("\u0042\u0053",_edbgb .BS );_aecff .SetIfNotNil ("\u004c\u0045",_edbgb .LE );_aecff .SetIfNotNil ("\u0049\u0043",_edbgb .IC );_aecff .SetIfNotNil ("\u004c\u004c",_edbgb .LL );_aecff .SetIfNotNil ("\u004c\u004c\u0045",_edbgb .LLE );_aecff .SetIfNotNil ("\u0043\u0061\u0070",_edbgb .Cap );_aecff .SetIfNotNil ("\u0049\u0054",_edbgb .IT );_aecff .SetIfNotNil ("\u004c\u004c\u004f",_edbgb .LLO );_aecff .SetIfNotNil ("\u0043\u0050",_edbgb .CP );_aecff .SetIfNotNil ("\u004de\u0061\u0073\u0075\u0072\u0065",_edbgb .Measure );_aecff .SetIfNotNil ("\u0043\u004f",_edbgb .CO );return _agfa ;};
// 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 ;_cdfdg *_bcb .PdfIndirectObject ;};
// Insert adds a top level outline item in the outline,
// at the specified index.
func (_gdag *Outline )Insert (index uint ,item *OutlineItem ){_beeag :=uint (len (_gdag .Entries ));if index > _beeag {index =_beeag ;};_gdag .Entries =append (_gdag .Entries [:index ],append ([]*OutlineItem {item },_gdag .Entries [index :]...)...);};
// AddAnnotation appends `annot` to the list of page annotations.
func (_bbaae *PdfPage )AddAnnotation (annot *PdfAnnotation ){if _bbaae ._adgce ==nil {_bbaae .GetAnnotations ();};_bbaae ._adgce =append (_bbaae ._adgce ,annot );};func (_bgf *PdfReader )newPdfAnnotationRichMediaFromDict (_adfg *_bcb .PdfObjectDictionary )(*PdfAnnotationRichMedia ,error ){_cdc :=&PdfAnnotationRichMedia {};_cdc .RichMediaSettings =_adfg .Get ("\u0052\u0069\u0063\u0068\u004d\u0065\u0064\u0069\u0061\u0053\u0065\u0074t\u0069\u006e\u0067\u0073");_cdc .RichMediaContent =_adfg .Get ("\u0052\u0069c\u0068\u004d\u0065d\u0069\u0061\u0043\u006f\u006e\u0074\u0065\u006e\u0074");return _cdc ,nil ;};
// DecodeArray returns the range of color component values in the Lab colorspace.
func (_dcca *PdfColorspaceLab )DecodeArray ()[]float64 {_fccb :=[]float64 {0,100};if _dcca .Range !=nil &&len (_dcca .Range )==4{_fccb =append (_fccb ,_dcca .Range ...);}else {_fccb =append (_fccb ,-100,100,-100,100);};return _fccb ;};
// 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 _bcb .PdfObject ;_ddcb []byte ;_gcgga *_bcb .PdfIndirectObject ;};
// ColorToRGB converts a ICCBased color to an RGB color.
func (_baed *PdfColorspaceICCBased )ColorToRGB (color PdfColor )(PdfColor ,error ){if _baed .Alternate ==nil {_cga .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 _baed .N ==1{_cga .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");_aeec :=NewPdfColorspaceDeviceGray ();return _aeec .ColorToRGB (color );}else if _baed .N ==3{_cga .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 _baed .N ==4{_cga .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");_fdgbe :=NewPdfColorspaceDeviceCMYK ();return _fdgbe .ColorToRGB (color );}else {return nil ,_ae .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");};};_cga .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",_baed );return _baed .Alternate .ColorToRGB (color );};
// 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 ;
// ToOutlineTree returns a low level PdfOutlineTreeNode object, based on
// the current instance.
func (_cagbc *Outline )ToOutlineTree ()*PdfOutlineTreeNode {return &_cagbc .ToPdfOutline ().PdfOutlineTreeNode ;};
// Items returns all children outline items.
func (_edfaf *Outline )Items ()[]*OutlineItem {return _edfaf .Entries };
// 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 (_bbfe *PdfFont )FontDescriptor ()*PdfFontDescriptor {if _bbfe .baseFields ()._ecaed !=nil {return _bbfe .baseFields ()._ecaed ;};if _cegfe :=_bbfe ._fgge .getFontDescriptor ();_cegfe !=nil {return _cegfe ;};_cga .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",_bbfe );return nil ;};
// A returns the value of the A component of the color.
func (_gabcf *PdfColorLab )A ()float64 {return _gabcf [1]};
// ImageToRGB returns the passed in image. Method exists in order to satisfy
// the PdfColorspace interface.
func (_caff *PdfColorspaceDeviceRGB )ImageToRGB (img Image )(Image ,error ){return img ,nil };func _bcfc (_bede _bcb .PdfObject )(map[_ddd .CharCode ]float64 ,error ){if _bede ==nil {return nil ,nil ;};_ecced ,_gabcg :=_bcb .GetArray (_bede );if !_gabcg {return nil ,nil ;};_afed :=map[_ddd .CharCode ]float64 {};_badf :=_ecced .Len ();for _baad :=0;_baad < _badf -1;_baad ++{_eeca :=_bcb .TraceToDirectObject (_ecced .Get (_baad ));_agggc ,_eebgg :=_bcb .GetIntVal (_eeca );if !_eebgg {return nil ,_e .Errorf ("\u0042a\u0064\u0020\u0066\u006fn\u0074\u0020\u0057\u0020\u006fb\u006a0\u003a \u0069\u003d\u0025\u0064\u0020\u0025\u0023v",_baad ,_eeca );};_baad ++;if _baad > _badf -1{return nil ,_e .Errorf ("\u0042\u0061\u0064\u0020\u0066\u006f\u006e\u0074\u0020\u0057\u0020a\u0072\u0072\u0061\u0079\u003a\u0020\u0061\u0072\u0072\u0032=\u0025\u002b\u0076",_ecced );};_gfbeg :=_bcb .TraceToDirectObject (_ecced .Get (_baad ));switch _gfbeg .(type ){case *_bcb .PdfObjectArray :_gbbfb ,_ :=_bcb .GetArray (_gfbeg );if _ebdfg ,_fbca :=_gbbfb .ToFloat64Array ();_fbca ==nil {for _faeef :=0;_faeef < len (_ebdfg );_faeef ++{_afed [_ddd .CharCode (_agggc +_faeef )]=_ebdfg [_faeef ];};}else {return nil ,_e .Errorf ("\u0042\u0061\u0064 \u0066\u006f\u006e\u0074 \u0057\u0020\u0061\u0072\u0072\u0061\u0079 \u006f\u0062\u006a\u0031\u003a\u0020\u0069\u003d\u0025\u0064\u0020\u0025\u0023\u0076",_baad ,_gfbeg );};case *_bcb .PdfObjectInteger :_ebafe ,_eegda :=_bcb .GetIntVal (_gfbeg );if !_eegda {return nil ,_e .Errorf ("\u0042\u0061d\u0020\u0066\u006f\u006e\u0074\u0020\u0057\u0020\u0069\u006e\u0074\u0020\u006f\u0062\u006a\u0031\u003a\u0020\u0069\u003d\u0025\u0064 %\u0023\u0076",_baad ,_gfbeg );};_baad ++;if _baad > _badf -1{return nil ,_e .Errorf ("\u0042\u0061\u0064\u0020\u0066\u006f\u006e\u0074\u0020\u0057\u0020a\u0072\u0072\u0061\u0079\u003a\u0020\u0061\u0072\u0072\u0032=\u0025\u002b\u0076",_ecced );};_fbdae :=_ecced .Get (_baad );_acfgb ,_edcfg :=_bcb .GetNumberAsFloat (_fbdae );if _edcfg !=nil {return nil ,_e .Errorf ("\u0042\u0061d\u0020\u0066\u006f\u006e\u0074\u0020\u0057\u0020\u0069\u006e\u0074\u0020\u006f\u0062\u006a\u0032\u003a\u0020\u0069\u003d\u0025\u0064 %\u0023\u0076",_baad ,_fbdae );};for _deeg :=_agggc ;_deeg <=_ebafe ;_deeg ++{_afed [_ddd .CharCode (_deeg )]=_acfgb ;};default:return nil ,_e .Errorf ("\u0042\u0061\u0064\u0020\u0066\u006f\u006e\u0074\u0020\u0057 \u006f\u0062\u006a\u0031\u0020\u0074\u0079p\u0065\u003a\u0020\u0069\u003d\u0025\u0064\u0020\u0025\u0023\u0076",_baad ,_gfbeg );};};return _afed ,nil ;};
// PdfColorCalGray represents a CalGray colorspace.
type PdfColorCalGray float64 ;func (_deag *PdfAppender )updateObjectsDeep (_bege _bcb .PdfObject ,_cegc map[_bcb .PdfObject ]struct{}){if _cegc ==nil {_cegc =map[_bcb .PdfObject ]struct{}{};};if _ ,_dcdc :=_cegc [_bege ];_dcdc ||_bege ==nil {return ;};_cegc [_bege ]=struct{}{};_cgeg :=_bcb .ResolveReferencesDeep (_bege ,_deag ._ebca );if _cgeg !=nil {_cga .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_cgeg );};switch _adce :=_bege .(type ){case *_bcb .PdfIndirectObject :switch {case _adce .GetParser ()==_deag ._adcc ._ecage :return ;case _adce .GetParser ()==_deag .Reader ._ecage :_agbf ,_ :=_deag ._adcc .GetIndirectObjectByNumber (int (_adce .ObjectNumber ));_fbgg ,_accf :=_agbf .(*_bcb .PdfIndirectObject );if _accf &&_fbgg !=nil {if _fbgg .PdfObject !=_adce .PdfObject &&_fbgg .PdfObject .WriteString ()!=_adce .PdfObject .WriteString (){_deag .addNewObject (_bege );_deag ._cfff [_bege ]=_adce .ObjectNumber ;};};default:_deag .addNewObject (_bege );};_deag .updateObjectsDeep (_adce .PdfObject ,_cegc );case *_bcb .PdfObjectArray :for _ ,_cdga :=range _adce .Elements (){_deag .updateObjectsDeep (_cdga ,_cegc );};case *_bcb .PdfObjectDictionary :for _ ,_gef :=range _adce .Keys (){_deag .updateObjectsDeep (_adce .Get (_gef ),_cegc );};case *_bcb .PdfObjectStreams :if _adce .GetParser ()!=_deag ._adcc ._ecage {for _ ,_cdcd :=range _adce .Elements (){_deag .updateObjectsDeep (_cdcd ,_cegc );};};case *_bcb .PdfObjectStream :switch {case _adce .GetParser ()==_deag ._adcc ._ecage :return ;case _adce .GetParser ()==_deag .Reader ._ecage :if _gagf ,_dgcb :=_deag ._adcc ._ecage .LookupByReference (_adce .PdfObjectReference );_dgcb ==nil {var _agbgc bool ;if _ffa ,_bfdd :=_bcb .GetStream (_gagf );_bfdd &&_ede .Equal (_ffa .Stream ,_adce .Stream ){_agbgc =true ;};if _bcac ,_babc :=_bcb .GetDict (_gagf );_agbgc &&_babc {_agbgc =_bcac .WriteString ()==_adce .PdfObjectDictionary .WriteString ();};if _agbgc {return ;};};if _adce .ObjectNumber !=0{_deag ._cfff [_bege ]=_adce .ObjectNumber ;};default:if _ ,_cgd :=_deag ._bfbb [_bege ];!_cgd {_deag .addNewObject (_bege );};};_deag .updateObjectsDeep (_adce .PdfObjectDictionary ,_cegc );};};
// 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 (_dgae *PdfFont )SubsetRegistered ()error {switch _cgdf :=_dgae ._fgge .(type ){case *pdfFontType0 :_abee :=_cgdf .subsetRegistered ();if _abee !=nil {_cga .Log .Debug ("\u0053\u0075b\u0073\u0065\u0074 \u0065\u0072\u0072\u006f\u0072\u003a\u0020\u0025\u0076",_abee );return _abee ;};if _cgdf ._bfaeg !=nil {if _cgdf ._cfaee !=nil {_cgdf ._cfaee .ToPdfObject ();};_cgdf .ToPdfObject ();};default:_cga .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",_cgdf );};return nil ;};
// PdfAcroForm represents the AcroForm dictionary used for representation of form data in PDF.
type PdfAcroForm struct{Fields *[]*PdfField ;NeedAppearances *_bcb .PdfObjectBool ;SigFlags *_bcb .PdfObjectInteger ;CO *_bcb .PdfObjectArray ;DR *PdfPageResources ;DA *_bcb .PdfObjectString ;Q *_bcb .PdfObjectInteger ;XFA _bcb .PdfObject ;_gacgf *_bcb .PdfIndirectObject ;};
// Write writes the Appender output to io.Writer.
// It can only be called once and further invocations will result in an error.
func (_eade *PdfAppender )Write (w _fb .Writer )error {if _eade ._dgfdf {return _ae .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");};_ggbb :=NewPdfWriter ();_ccab ,_cagc :=_bcb .GetDict (_ggbb ._gbff );if !_cagc {return _ae .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");};_baafe ,_cagc :=_ccab .Get ("\u004b\u0069\u0064\u0073").(*_bcb .PdfObjectArray );if !_cagc {return _ae .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");};_adceg ,_cagc :=_ccab .Get ("\u0043\u006f\u0075n\u0074").(*_bcb .PdfObjectInteger );if !_cagc {return _ae .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");};_fbbd :=_eade ._adcc ._ecage ;_daee :=_fbbd .GetTrailer ();if _daee ==nil {return _ae .New ("\u006di\u0073s\u0069\u006e\u0067\u0020\u0074\u0072\u0061\u0069\u006c\u0065\u0072");};_gage ,_cagc :=_bcb .GetIndirect (_daee .Get ("\u0052\u006f\u006f\u0074"));if !_cagc {return _ae .New ("c\u0061\u0074\u0061\u006c\u006f\u0067 \u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0065\u0072 \u006e\u006f\u0074 \u0066o\u0075\u006e\u0064");};_bagc ,_cagc :=_bcb .GetDict (_gage );if !_cagc {_cga .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",_gage ,*_daee );return _ae .New ("\u006di\u0073s\u0069\u006e\u0067\u0020\u0063\u0061\u0074\u0061\u006c\u006f\u0067");};for _ ,_ddfe :=range _bagc .Keys (){if _ggbb ._ggfec .Get (_ddfe )==nil {_cdeg :=_bagc .Get (_ddfe );_ggbb ._ggfec .Set (_ddfe ,_cdeg );};};if _eade ._acdf !=nil {_ggbb ._ggfec .Set ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d",_eade ._acdf .ToPdfObject ());_eade .updateObjectsDeep (_eade ._acdf .ToPdfObject (),nil );};if _eade ._fbb !=nil {_eade .updateObjectsDeep (_eade ._fbb .ToPdfObject (),nil );_ggbb ._ggfec .Set ("\u0044\u0053\u0053",_eade ._fbb .GetContainingPdfObject ());};if _ggbb ._fcebf < 2{_ggbb .AddExtension ("\u0045\u0053\u0049\u0043","\u0031\u002e\u0037",5);_ggbb .AddExtension ("\u0041\u0044\u0042\u0045","\u0031\u002e\u0037",8);};_eade .addNewObject (_ggbb ._gbfff );_eade .addNewObject (_ggbb ._edecd );_becf :=false ;if len (_eade ._adcc .PageList )!=len (_eade ._cgcg ){_becf =true ;}else {for _gcgg :=range _eade ._adcc .PageList {switch {case _eade ._cgcg [_gcgg ]==_eade ._adcc .PageList [_gcgg ]:case _eade ._cgcg [_gcgg ]==_eade .Reader .PageList [_gcgg ]:default:_becf =true ;};if _becf {break ;};};};if _becf {_eade .updateObjectsDeep (_ggbb ._gbff ,nil );}else {_eade ._feea [_ggbb ._gbff ]=struct{}{};};_ggbb ._gbff .ObjectNumber =_eade .Reader ._cegfeb .ObjectNumber ;_eade ._cfff [_ggbb ._gbff ]=_eade .Reader ._cegfeb .ObjectNumber ;_febf :=[]_bcb .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 _ ,_defg :=range _eade ._cgcg {_acfa :=_defg .ToPdfObject ();*_adceg =*_adceg +1;if _fbfc ,_fgca :=_acfa .(*_bcb .PdfIndirectObject );_fgca &&_fbfc .GetParser ()==_eade ._adcc ._ecage {_baafe .Append (&_fbfc .PdfObjectReference );continue ;};if _gecf ,_bedc :=_bcb .GetDict (_acfa );_bedc {_ecea ,_bbcd :=_gecf .Get ("\u0050\u0061\u0072\u0065\u006e\u0074").(*_bcb .PdfIndirectObject );for _bbcd {_cga .Log .Trace ("\u0050a\u0067e\u0020\u0050\u0061\u0072\u0065\u006e\u0074\u003a\u0020\u0025\u0054",_ecea );_fdaa ,_fdf :=_ecea .PdfObject .(*_bcb .PdfObjectDictionary );if !_fdf {return _ae .New ("i\u006e\u0076\u0061\u006cid\u0020P\u0061\u0072\u0065\u006e\u0074 \u006f\u0062\u006a\u0065\u0063\u0074");};for _ ,_dgag :=range _febf {_cga .Log .Trace ("\u0046\u0069\u0065\u006c\u0064\u0020\u0025\u0073",_dgag );if _gecf .Get (_dgag )!=nil {_cga .Log .Trace ("\u002d \u0070a\u0067\u0065\u0020\u0068\u0061s\u0020\u0061l\u0072\u0065\u0061\u0064\u0079");continue ;};if _acaa :=_fdaa .Get (_dgag );_acaa !=nil {_cga .Log .Trace ("\u0049\u006e\u0068\u0065ri\u0074\u0069\u006e\u0067\u0020\u0066\u0069\u0065\u006c\u0064\u0020\u0025\u0073",_dgag );_gecf .Set (_dgag ,_acaa );};};_ecea ,_bbcd =_fdaa .Get ("\u0050\u0061\u0072\u0065\u006e\u0074").(*_bcb .PdfIndirectObject );_cga .Log .Trace ("\u004ee\u0078t\u0020\u0070\u0061\u0072\u0065\u006e\u0074\u003a\u0020\u0025\u0054",_fdaa .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"));};_gecf .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_ggbb ._gbff );};_eade .updateObjectsDeep (_acfa ,nil );_baafe .Append (_acfa );};if _ ,_ebe :=_eade ._baeab .Seek (0,_fb .SeekStart );_ebe !=nil {return _ebe ;};_gbdga :=make (map[SignatureHandler ]_fb .Writer );_cbdf :=_bcb .MakeArray ();for _ ,_ffga :=range _eade ._eebb {if _fecdf ,_ebdf :=_bcb .GetIndirect (_ffga );_ebdf {if _gfge ,_bgcf :=_fecdf .PdfObject .(*pdfSignDictionary );_bgcf {_ceec :=*_gfge ._afebe ;var _edfcc error ;_gbdga [_ceec ],_edfcc =_ceec .NewDigest (_gfge ._dgcc );if _edfcc !=nil {return _edfcc ;};_cbdf .Append (_bcb .MakeInteger (0xfffff),_bcb .MakeInteger (0xfffff));};};};if _cbdf .Len ()> 0{_cbdf .Append (_bcb .MakeInteger (0xfffff),_bcb .MakeInteger (0xfffff));};for _ ,_aaaa :=range _eade ._eebb {if _gbfe ,_beb :=_bcb .GetIndirect (_aaaa );_beb {if _dagce ,_gga :=_gbfe .PdfObject .(*pdfSignDictionary );_gga {_dagce .Set ("\u0042y\u0074\u0065\u0052\u0061\u006e\u0067e",_cbdf );};};};_baag :=len (_gbdga )> 0;var _eggd _fb .Reader =_eade ._baeab ;if _baag {_abc :=make ([]_fb .Writer ,0,len (_gbdga ));for _ ,_ddec :=range _gbdga {_abc =append (_abc ,_ddec );};_eggd =_fb .TeeReader (_eade ._baeab ,_fb .MultiWriter (_abc ...));};_bccd ,_gdaf :=_fb .Copy (w ,_eggd );if _gdaf !=nil {return _gdaf ;};if len (_eade ._eebb )==0{return nil ;};_ggbb ._ddac =_bccd ;_ggbb .ObjNumOffset =_eade ._ebga ;_ggbb ._addfe =true ;_ggbb ._dbacc =_eade ._bcf ;_ggbb ._ecded =_eade ._edga ;_ggbb ._acaeg =_eade ._def ;_ggbb ._cacaf =_eade ._adcc .PdfVersion ().Minor ;_ggbb ._bceg =_eade ._cfff ;_faf :=_eade ._bbdf .GetXrefType ();if _faf !=nil {_dbgd :=*_faf ==_bcb .XrefTypeObjectStream ;_ggbb ._bgeec =&_dbgd ;};_ggbb ._affdb =map[_bcb .PdfObject ]struct{}{};_ggbb ._adbc =[]_bcb .PdfObject {};for _ ,_bebg :=range _eade ._eebb {if _ ,_feeg :=_eade ._feea [_bebg ];_feeg {continue ;};_ggbb .addObject (_bebg );};_acec :=w ;if _baag {_acec =_ede .NewBuffer (nil );};if _feff :=_ggbb .Write (_acec );_feff !=nil {return _feff ;};if _baag {_bfae :=_acec .(*_ede .Buffer ).Bytes ();_ffcac :=_bcb .MakeArray ();var _fcbd []*pdfSignDictionary ;var _eegb int64 ;for _ ,_ddca :=range _ggbb ._adbc {if _badc ,_dadc :=_bcb .GetIndirect (_ddca );_dadc {if _eaf ,_eefa :=_badc .PdfObject .(*pdfSignDictionary );_eefa {_fcbd =append (_fcbd ,_eaf );_bgcbb :=_eaf ._afgeg +int64 (_eaf ._adgcec );_ffcac .Append (_bcb .MakeInteger (_eegb ),_bcb .MakeInteger (_bgcbb -_eegb ));_eegb =_eaf ._afgeg +int64 (_eaf ._gdbcc );};};};_ffcac .Append (_bcb .MakeInteger (_eegb ),_bcb .MakeInteger (_bccd +int64 (len (_bfae ))-_eegb ));_aggb :=[]byte (_ffcac .WriteString ());for _ ,_bgeb :=range _fcbd {_ddbbd :=int (_bgeb ._afgeg -_bccd );for _fdgeb :=_bgeb ._bbdgaf ;_fdgeb < _bgeb ._debba ;_fdgeb ++{_bfae [_ddbbd +_fdgeb ]=' ';};_fdcea :=_bfae [_ddbbd +_bgeb ._bbdgaf :_ddbbd +_bgeb ._debba ];copy (_fdcea ,_aggb );};var _dddgc int ;for _ ,_gaba :=range _fcbd {_bcgdc :=int (_gaba ._afgeg -_bccd );_ecce :=_bfae [_dddgc :_bcgdc +_gaba ._adgcec ];_adadg :=*_gaba ._afebe ;_gbdga [_adadg ].Write (_ecce );_dddgc =_bcgdc +_gaba ._gdbcc ;};for _ ,_dfeg :=range _fcbd {_cecb :=_bfae [_dddgc :];_eggca :=*_dfeg ._afebe ;_gbdga [_eggca ].Write (_cecb );};for _ ,_eccg :=range _fcbd {_fcgg :=int (_eccg ._afgeg -_bccd );_cfgg :=*_eccg ._afebe ;_adgf :=_gbdga [_cfgg ];if _gebcc :=_cfgg .Sign (_eccg ._dgcc ,_adgf );_gebcc !=nil {return _gebcc ;};_eccg ._dgcc .ByteRange =_ffcac ;_faab :=[]byte (_eccg ._dgcc .Contents .WriteString ());for _bbec :=_eccg ._bbdgaf ;_bbec < _eccg ._debba ;_bbec ++{_bfae [_fcgg +_bbec ]=' ';};for _bggc :=_eccg ._adgcec ;_bggc < _eccg ._gdbcc ;_bggc ++{_bfae [_fcgg +_bggc ]=' ';};_ffeae :=_bfae [_fcgg +_eccg ._bbdgaf :_fcgg +_eccg ._debba ];copy (_ffeae ,_aggb );_ffeae =_bfae [_fcgg +_eccg ._adgcec :_fcgg +_eccg ._gdbcc ];copy (_ffeae ,_faab );};_gfeb :=_ede .NewBuffer (_bfae );_ ,_gdaf =_fb .Copy (w ,_gfeb );if _gdaf !=nil {return _gdaf ;};};_eade ._dgfdf =true ;return nil ;};
// Width returns the width of `rect`.
func (_addcba *PdfRectangle )Width ()float64 {return _edb .Abs (_addcba .Urx -_addcba .Llx )};
// 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 _bcb .StreamEncoder ;Intent _bcb .PdfObject ;ImageMask _bcb .PdfObject ;Mask _bcb .PdfObject ;Matte _bcb .PdfObject ;Decode _bcb .PdfObject ;Interpolate _bcb .PdfObject ;Alternatives _bcb .PdfObject ;SMask _bcb .PdfObject ;SMaskInData _bcb .PdfObject ;Name _bcb .PdfObject ;StructParent _bcb .PdfObject ;ID _bcb .PdfObject ;OPI _bcb .PdfObject ;Metadata _bcb .PdfObject ;OC _bcb .PdfObject ;Stream []byte ;_gddag *_bcb .PdfObjectStream ;};
// GetContainingPdfObject implements interface PdfModel.
func (_dffgc *PdfSignature )GetContainingPdfObject ()_bcb .PdfObject {return _dffgc ._abcf };
// PdfAnnotationPrinterMark represents PrinterMark annotations.
// (Section 12.5.6.20).
type PdfAnnotationPrinterMark struct{*PdfAnnotation ;MN _bcb .PdfObject ;};
// ToGoTime returns the date in time.Time format.
func (_egae PdfDate )ToGoTime ()_d .Time {_geaag :=int (_egae ._cdaaf *60*60+_egae ._afde *60);switch _egae ._ddadb {case '-':_geaag =-_geaag ;case 'Z':_geaag =0;};_eceb :=_e .Sprintf ("\u0055\u0054\u0043\u0025\u0063\u0025\u002e\u0032\u0064\u0025\u002e\u0032\u0064",_egae ._ddadb ,_egae ._cdaaf ,_egae ._afde );_acbfa :=_d .FixedZone (_eceb ,_geaag );return _d .Date (int (_egae ._ffcaf ),_d .Month (_egae ._caegfa ),int (_egae ._egaf ),int (_egae ._dagbf ),int (_egae ._dgdge ),int (_egae ._adbfb ),0,_acbfa );};func (_fga *PdfReader )newPdfActionImportDataFromDict (_dff *_bcb .PdfObjectDictionary )(*PdfActionImportData ,error ){_bgcd ,_ebf :=_geg (_dff .Get ("\u0046"));if _ebf !=nil {return nil ,_ebf ;};return &PdfActionImportData {F :_bgcd },nil ;};
// ToPdfObject converts date to a PDF string object.
func (_ffgb *PdfDate )ToPdfObject ()_bcb .PdfObject {_fgag :=_e .Sprintf ("\u0044\u003a\u0025\u002e\u0034\u0064\u0025\u002e\u0032\u0064\u0025\u002e\u0032\u0064\u0025\u002e\u0032\u0064\u0025\u002e\u0032\u0064\u0025\u002e2\u0064\u0025\u0063\u0025\u002e2\u0064\u0027%\u002e\u0032\u0064\u0027",_ffgb ._ffcaf ,_ffgb ._caegfa ,_ffgb ._egaf ,_ffgb ._dagbf ,_ffgb ._dgdge ,_ffgb ._adbfb ,_ffgb ._ddadb ,_ffgb ._cdaaf ,_ffgb ._afde );return _bcb .MakeString (_fgag );};
// SetBorderWidth sets the style's border width.
func (_eaag *PdfBorderStyle )SetBorderWidth (width float64 ){_eaag .W =&width };
// IsShading specifies if the pattern is a shading pattern.
func (_abgb *PdfPattern )IsShading ()bool {return _abgb .PatternType ==2};func (_deggd *PdfAcroForm )signatureFields ()[]*PdfFieldSignature {var _cdgcac []*PdfFieldSignature ;for _ ,_gegc :=range _deggd .AllFields (){switch _adccb :=_gegc .GetContext ().(type ){case *PdfFieldSignature :_gfcd :=_adccb ;_cdgcac =append (_cdgcac ,_gfcd );};};return _cdgcac ;};func (_ddcc *LTV )getCerts (_agbge []*_ffg .Certificate )([][]byte ,error ){_beae :=make ([][]byte ,0,len (_agbge ));for _ ,_cebf :=range _agbge {_beae =append (_beae ,_cebf .Raw );};return _beae ,nil ;};
// ToPdfObject implements interface PdfModel.
func (_adfd *PdfAnnotationWatermark )ToPdfObject ()_bcb .PdfObject {_adfd .PdfAnnotation .ToPdfObject ();_gdfb :=_adfd ._daa ;_cfbg :=_gdfb .PdfObject .(*_bcb .PdfObjectDictionary );_cfbg .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_bcb .MakeName ("\u0057a\u0074\u0065\u0072\u006d\u0061\u0072k"));_cfbg .SetIfNotNil ("\u0046\u0069\u0078\u0065\u0064\u0050\u0072\u0069\u006e\u0074",_adfd .FixedPrint );return _gdfb ;};
// NewPdfAnnotationFreeText returns a new free text annotation.
func NewPdfAnnotationFreeText ()*PdfAnnotationFreeText {_bbf :=NewPdfAnnotation ();_dfa :=&PdfAnnotationFreeText {};_dfa .PdfAnnotation =_bbf ;_dfa .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_bbf .SetContext (_dfa );return _dfa ;};
// Has checks if flag fl is set in flag and returns true if so, false otherwise.
func (_dccd FieldFlag )Has (fl FieldFlag )bool {return (_dccd .Mask ()&fl .Mask ())> 0};func (_cgaf *pdfCIDFontType2 )baseFields ()*fontCommon {return &_cgaf .fontCommon };func _gdebef ()string {_dgagfb .Lock ();defer _dgagfb .Unlock ();return _bafad };
// ToPdfObject returns the PDF representation of the colorspace.
func (_bgdb *PdfColorspaceSpecialSeparation )ToPdfObject ()_bcb .PdfObject {_gdgf :=_bcb .MakeArray (_bcb .MakeName ("\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e"));_gdgf .Append (_bgdb .ColorantName );_gdgf .Append (_bgdb .AlternateSpace .ToPdfObject ());_gdgf .Append (_bgdb .TintTransform .ToPdfObject ());if _bgdb ._caa !=nil {_bgdb ._caa .PdfObject =_gdgf ;return _bgdb ._caa ;};return _gdgf ;};
// 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 *_bcb .PdfObjectInteger ;TilingType *_bcb .PdfObjectInteger ;BBox *PdfRectangle ;XStep *_bcb .PdfObjectFloat ;YStep *_bcb .PdfObjectFloat ;Resources *PdfPageResources ;Matrix *_bcb .PdfObjectArray ;};
// PdfVersion returns version of the PDF file.
func (_caca *PdfReader )PdfVersion ()_bcb .Version {return _caca ._ecage .PdfVersion ()};
// Normalize swaps (Llx,Urx) if Urx < Llx, and (Lly,Ury) if Ury < Lly.
func (_eaaf *PdfRectangle )Normalize (){if _eaaf .Llx > _eaaf .Urx {_eaaf .Llx ,_eaaf .Urx =_eaaf .Urx ,_eaaf .Llx ;};if _eaaf .Lly > _eaaf .Ury {_eaaf .Lly ,_eaaf .Ury =_eaaf .Ury ,_eaaf .Lly ;};};
// ToPdfObject implements interface PdfModel.
func (_bcg *PdfActionGoToR )ToPdfObject ()_bcb .PdfObject {_bcg .PdfAction .ToPdfObject ();_afc :=_bcg ._dce ;_bfa :=_afc .PdfObject .(*_bcb .PdfObjectDictionary );_bfa .SetIfNotNil ("\u0053",_bcb .MakeName (string (ActionTypeGoToR )));if _bcg .F !=nil {_bfa .Set ("\u0046",_bcg .F .ToPdfObject ());};_bfa .SetIfNotNil ("\u0044",_bcg .D );_bfa .SetIfNotNil ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw",_bcg .NewWindow );return _afc ;};
// ImageToGray returns a new grayscale image based on the passed in RGB image.
func (_ebfa *PdfColorspaceDeviceRGB )ImageToGray (img Image )(Image ,error ){if img .ColorComponents !=3{return img ,_ae .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");};_cffd ,_eea :=_fgd .NewImage (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),img .ColorComponents ,img .Data ,img ._cdeb ,img ._fdggf );if _eea !=nil {return img ,_eea ;};_gead ,_eea :=_fgd .GrayConverter .Convert (_cffd );if _eea !=nil {return img ,_eea ;};return _gagca (_gead .Base ()),nil ;};
// SetLocation sets the `Location` field of the signature.
func (_bdeag *PdfSignature )SetLocation (location string ){_bdeag .Location =_bcb .MakeString (location )};
// GetOutlines returns a high-level Outline object, based on the outline tree
// of the reader.
func (_gaaa *PdfReader )GetOutlines ()(*Outline ,error ){if _gaaa ==nil {return nil ,_ae .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");};_adgcef :=_gaaa .GetOutlineTree ();if _adgcef ==nil {return nil ,_ae .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 _begbc func (_cgddc *PdfOutlineTreeNode ,_ebacf *[]*OutlineItem );_begbc =func (_fggc *PdfOutlineTreeNode ,_bdeeb *[]*OutlineItem ){if _fggc ==nil {return ;};if _fggc ._bfagd ==nil {_cga .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 _cbaga *OutlineItem ;if _cbcfc ,_dbccb :=_fggc ._bfagd .(*PdfOutlineItem );_dbccb {_fecg :=_cbcfc .Dest ;if (_fecg ==nil ||_bcb .IsNullObject (_fecg ))&&_cbcfc .A !=nil {if _ecfb ,_ffbdg :=_bcb .GetDict (_cbcfc .A );_ffbdg {_fecg ,_ =_bcb .GetArray (_ecfb .Get ("\u0044"));};};var _dbbbe OutlineDest ;if _fecg !=nil &&!_bcb .IsNullObject (_fecg ){if _aece ,_aeedg :=_cdbb (_fecg ,_gaaa );_aeedg ==nil {_dbbbe =*_aece ;}else {_cga .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",_fecg ,_aeedg );};};_cbaga =NewOutlineItem (_cbcfc .Title .Decoded (),_dbbbe );*_bdeeb =append (*_bdeeb ,_cbaga );if _cbcfc .Next !=nil {_begbc (_cbcfc .Next ,_bdeeb );};};if _fggc .First !=nil {if _cbaga !=nil {_bdeeb =&_cbaga .Entries ;};_begbc (_fggc .First ,_bdeeb );};};_egfab :=NewOutline ();_begbc (_adgcef ,&_egfab .Entries );return _egfab ,nil ;};
// PdfInfo holds document information that will overwrite
// document information global variables defined above.
type PdfInfo struct{Title *_bcb .PdfObjectString ;Author *_bcb .PdfObjectString ;Subject *_bcb .PdfObjectString ;Keywords *_bcb .PdfObjectString ;Creator *_bcb .PdfObjectString ;Producer *_bcb .PdfObjectString ;CreationDate *PdfDate ;ModifiedDate *PdfDate ;Trapped *_bcb .PdfObjectName ;_affda *_bcb .PdfObjectDictionary ;};
// ColorFromFloats returns a new PdfColor based on the input slice of color
// components. The slice should contain a single element.
func (_cfef *PdfColorspaceSpecialIndexed )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=1{return nil ,_ae .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};N :=_cfef .Base .GetNumComponents ();_dcae :=int (vals [0])*N ;if _dcae < 0||(_dcae +N -1)>=len (_cfef ._ddcb ){return nil ,_ae .New ("\u006f\u0075\u0074\u0073\u0069\u0064\u0065\u0020\u0072\u0061\u006e\u0067\u0065");};_accfd :=_cfef ._ddcb [_dcae :_dcae +N ];var _adda []float64 ;for _ ,_ccdf :=range _accfd {_adda =append (_adda ,float64 (_ccdf )/255.0);};_egeb ,_faga :=_cfef .Base .ColorFromFloats (_adda );if _faga !=nil {return nil ,_faga ;};return _egeb ,nil ;};
// NewPdfActionGoToE returns a new "go to embedded" action.
func NewPdfActionGoToE ()*PdfActionGoToE {_bf :=NewPdfAction ();_ecf :=&PdfActionGoToE {};_ecf .PdfAction =_bf ;_bf .SetContext (_ecf );return _ecf ;};
// NewPdfColorspaceSpecialIndexed returns a new Indexed color.
func NewPdfColorspaceSpecialIndexed ()*PdfColorspaceSpecialIndexed {return &PdfColorspaceSpecialIndexed {HiVal :255};};
// PdfColorspaceLab is a L*, a*, b* 3 component colorspace.
type PdfColorspaceLab struct{WhitePoint []float64 ;BlackPoint []float64 ;Range []float64 ;_fbdc *_bcb .PdfIndirectObject ;};
// NewGrayImageFromGoImage creates a new grayscale unidoc Image from a golang Image.
func (_gfbge DefaultImageHandler )NewGrayImageFromGoImage (goimg _ac .Image )(*Image ,error ){_bedec :=goimg .Bounds ();_eadce :=&Image {Width :int64 (_bedec .Dx ()),Height :int64 (_bedec .Dy ()),ColorComponents :1,BitsPerComponent :8};switch _eeccc :=goimg .(type ){case *_ac .Gray :if len (_eeccc .Pix )!=_bedec .Dx ()*_bedec .Dy (){_edbb ,_adaa :=_fgd .GrayConverter .Convert (goimg );if _adaa !=nil {return nil ,_adaa ;};_eadce .Data =_edbb .Pix ();}else {_eadce .Data =_eeccc .Pix ;};case *_ac .Gray16 :_eadce .BitsPerComponent =16;if len (_eeccc .Pix )!=_bedec .Dx ()*_bedec .Dy ()*2{_aggce ,_ecfgb :=_fgd .Gray16Converter .Convert (goimg );if _ecfgb !=nil {return nil ,_ecfgb ;};_eadce .Data =_aggce .Pix ();}else {_eadce .Data =_eeccc .Pix ;};default:_gaeff ,_ecbb :=_fgd .GrayConverter .Convert (goimg );if _ecbb !=nil {return nil ,_ecbb ;};_eadce .Data =_gaeff .Pix ();};return _eadce ,nil ;};
// ColorFromFloats returns a new PdfColor based on the input slice of color
// components. The slice should contain a single element.
func (_bdcad *PdfColorspaceSpecialSeparation )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=1{return nil ,_ae .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_bbab :=vals [0];_bfge :=[]float64 {_bbab };_adde ,_edefe :=_bdcad .TintTransform .Evaluate (_bfge );if _edefe !=nil {_cga .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",_edefe );_cga .Log .Trace ("\u0054\u0069\u006e\u0074 t\u0072\u0061\u006e\u0073\u0066\u006f\u0072\u006d\u003a\u0020\u0025\u002b\u0076",_bdcad .TintTransform );return nil ,_edefe ;};_cga .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",_adde ,_bdcad .AlternateSpace );_dcec ,_edefe :=_bdcad .AlternateSpace .ColorFromFloats (_adde );if _edefe !=nil {_cga .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",_edefe );return nil ,_edefe ;};return _dcec ,nil ;};
// ToPdfObject implements interface PdfModel.
func (_aecg *PdfActionGoToE )ToPdfObject ()_bcb .PdfObject {_aecg .PdfAction .ToPdfObject ();_ee :=_aecg ._dce ;_bee :=_ee .PdfObject .(*_bcb .PdfObjectDictionary );_bee .SetIfNotNil ("\u0053",_bcb .MakeName (string (ActionTypeGoToE )));if _aecg .F !=nil {_bee .Set ("\u0046",_aecg .F .ToPdfObject ());};_bee .SetIfNotNil ("\u0044",_aecg .D );_bee .SetIfNotNil ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw",_aecg .NewWindow );_bee .SetIfNotNil ("\u0054",_aecg .T );return _ee ;};
// ToPdfObject returns the PDF representation of the function.
func (_dbgaf *PdfFunctionType2 )ToPdfObject ()_bcb .PdfObject {_cbfc :=_bcb .MakeDict ();_cbfc .Set ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065",_bcb .MakeInteger (2));_egea :=&_bcb .PdfObjectArray {};for _ ,_daggg :=range _dbgaf .Domain {_egea .Append (_bcb .MakeFloat (_daggg ));};_cbfc .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_egea );if _dbgaf .Range !=nil {_bcab :=&_bcb .PdfObjectArray {};for _ ,_accc :=range _dbgaf .Range {_bcab .Append (_bcb .MakeFloat (_accc ));};_cbfc .Set ("\u0052\u0061\u006eg\u0065",_bcab );};if _dbgaf .C0 !=nil {_cebbca :=&_bcb .PdfObjectArray {};for _ ,_fdbag :=range _dbgaf .C0 {_cebbca .Append (_bcb .MakeFloat (_fdbag ));};_cbfc .Set ("\u0043\u0030",_cebbca );};if _dbgaf .C1 !=nil {_afeeg :=&_bcb .PdfObjectArray {};for _ ,_agdbf :=range _dbgaf .C1 {_afeeg .Append (_bcb .MakeFloat (_agdbf ));};_cbfc .Set ("\u0043\u0031",_afeeg );};_cbfc .Set ("\u004e",_bcb .MakeFloat (_dbgaf .N ));if _dbgaf ._cdfdg !=nil {_dbgaf ._cdfdg .PdfObject =_cbfc ;return _dbgaf ._cdfdg ;};return _cbfc ;};
// 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 (_cbee *PdfAppender )Sign (pageNum int ,field *PdfFieldSignature )error {if field ==nil {return _ae .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");};_dbef :=field .V ;if _dbef ==nil {return _ae .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");};_aebf :=pageNum -1;if _aebf < 0||_aebf > len (_cbee ._cgcg )-1{return _e .Errorf ("\u0070\u0061\u0067\u0065\u0020\u0025\u0064\u0020\u006e\u006f\u0074\u0020f\u006f\u0075\u006e\u0064",pageNum );};_cdac :=_cbee .Reader .PageList [_aebf ];field .P =_cdac .ToPdfObject ();if field .T ==nil ||field .T .String ()==""{field .T =_bcb .MakeString (_e .Sprintf ("\u0053\u0069\u0067n\u0061\u0074\u0075\u0072\u0065\u0020\u0025\u0064",pageNum ));};_cdac .AddAnnotation (field .PdfAnnotationWidget .PdfAnnotation );if _cbee ._acdf ==_cbee ._adcc .AcroForm {_cbee ._acdf =_cbee .Reader .AcroForm ;};_ecca :=_cbee ._acdf ;if _ecca ==nil {_ecca =NewPdfAcroForm ();};_ecca .SigFlags =_bcb .MakeInteger (3);_aefe :=append (_ecca .AllFields (),field .PdfField );_ecca .Fields =&_aefe ;_cbee .ReplaceAcroForm (_ecca );_cbee .UpdatePage (_cdac );_cbee ._cgcg [_aebf ]=_cdac ;return nil ;};func (_dafb *Image )samplesAddPadding (_gbbag []uint32 )[]uint32 {_feac :=_fgd .BytesPerLine (int (_dafb .Width ),int (_dafb .BitsPerComponent ),_dafb .ColorComponents )*(8/int (_dafb .BitsPerComponent ));_fcdbb :=_feac *int (_dafb .Height );if len (_gbbag )==_fcdbb {return _gbbag ;};_aafd :=make ([]uint32 ,_fcdbb );_afgd :=int (_dafb .Width )*_dafb .ColorComponents ;for _bggeg :=0;_bggeg < int (_dafb .Height );_bggeg ++{_deedd :=_bggeg *int (_dafb .Width );_acefb :=_bggeg *_feac ;for _ccbg :=0;_ccbg < _afgd ;_ccbg ++{_aafd [_acefb +_ccbg ]=_gbbag [_deedd +_ccbg ];};};return _aafd ;};
// 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 ()_bcb .PdfObject ;GetContainingPdfObject ()_bcb .PdfObject ;};func _dgdf (_addc ,_dgcbd string )string {if _gc .Contains (_addc ,"\u002b"){_cgcdg :=_gc .Split (_addc ,"\u002b");if len (_cgcdg )==2{_addc =_cgcdg [1];};};return _dgcbd +"\u002b"+_addc ;};
// PdfAnnotationPolygon represents Polygon annotations.
// (Section 12.5.6.9).
type PdfAnnotationPolygon struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Vertices _bcb .PdfObject ;LE _bcb .PdfObject ;BS _bcb .PdfObject ;IC _bcb .PdfObject ;BE _bcb .PdfObject ;IT _bcb .PdfObject ;Measure _bcb .PdfObject ;};
// GetContainingPdfObject returns the containing object for the PdfField, i.e. an indirect object
// containing the field dictionary.
func (_dfef *PdfField )GetContainingPdfObject ()_bcb .PdfObject {return _dfef ._gggf };func (_bcgdb *PdfReader )newPdfAnnotationMovieFromDict (_fcea *_bcb .PdfObjectDictionary )(*PdfAnnotationMovie ,error ){_cdgb :=PdfAnnotationMovie {};_cdgb .T =_fcea .Get ("\u0054");_cdgb .Movie =_fcea .Get ("\u004d\u006f\u0076i\u0065");_cdgb .A =_fcea .Get ("\u0041");return &_cdgb ,nil ;};
// ToPdfObject implements interface PdfModel.
func (_edbcf *PdfSignature )ToPdfObject ()_bcb .PdfObject {_gecff :=_edbcf ._abcf ;var _gfefdc *_bcb .PdfObjectDictionary ;if _gcedb ,_caeaf :=_gecff .PdfObject .(*pdfSignDictionary );_caeaf {_gfefdc =_gcedb .PdfObjectDictionary ;}else {_gfefdc =_gecff .PdfObject .(*_bcb .PdfObjectDictionary );};_gfefdc .SetIfNotNil ("\u0054\u0079\u0070\u0065",_edbcf .Type );_gfefdc .SetIfNotNil ("\u0046\u0069\u006c\u0074\u0065\u0072",_edbcf .Filter );_gfefdc .SetIfNotNil ("\u0053u\u0062\u0046\u0069\u006c\u0074\u0065r",_edbcf .SubFilter );_gfefdc .SetIfNotNil ("\u0042y\u0074\u0065\u0052\u0061\u006e\u0067e",_edbcf .ByteRange );_gfefdc .SetIfNotNil ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073",_edbcf .Contents );_gfefdc .SetIfNotNil ("\u0043\u0065\u0072\u0074",_edbcf .Cert );_gfefdc .SetIfNotNil ("\u004e\u0061\u006d\u0065",_edbcf .Name );_gfefdc .SetIfNotNil ("\u0052\u0065\u0061\u0073\u006f\u006e",_edbcf .Reason );_gfefdc .SetIfNotNil ("\u004d",_edbcf .M );_gfefdc .SetIfNotNil ("\u0052e\u0066\u0065\u0072\u0065\u006e\u0063e",_edbcf .Reference );_gfefdc .SetIfNotNil ("\u0043h\u0061\u006e\u0067\u0065\u0073",_edbcf .Changes );_gfefdc .SetIfNotNil ("C\u006f\u006e\u0074\u0061\u0063\u0074\u0049\u006e\u0066\u006f",_edbcf .ContactInfo );return _gecff ;};
// GetAsShadingPattern returns a shading pattern. Check with IsShading() prior to using this.
func (_afdb *PdfPattern )GetAsShadingPattern ()*PdfShadingPattern {return _afdb ._adccc .(*PdfShadingPattern );};func (_dad *PdfReader )newPdfActionSubmitFormFromDict (_fae *_bcb .PdfObjectDictionary )(*PdfActionSubmitForm ,error ){_ecae ,_efe :=_geg (_fae .Get ("\u0046"));if _efe !=nil {return nil ,_efe ;};return &PdfActionSubmitForm {F :_ecae ,Fields :_fae .Get ("\u0046\u0069\u0065\u006c\u0064\u0073"),Flags :_fae .Get ("\u0046\u006c\u0061g\u0073")},nil ;};
// GetCharMetrics returns the character metrics for the specified character code. A bool flag is
// returned to indicate whether or not the entry was found in the glyph to charcode mapping.
// How it works:
// 1) Return a value the /Widths array (charWidths) if there is one.
// 2) If the font has the same name as a standard 14 font then return width=250.
// 3) Otherwise return no match and let the caller substitute a default.
func (_bcaf pdfFontSimple )GetCharMetrics (code _ddd .CharCode )(_acc .CharMetrics ,bool ){if _gbba ,_faad :=_bcaf ._dgdfc [code ];_faad {return _acc .CharMetrics {Wx :_gbba },true ;};if _acc .IsStdFont (_acc .StdFontName (_bcaf ._daeb )){return _acc .CharMetrics {Wx :250},true ;};return _acc .CharMetrics {},false ;};func (_dbb *PdfReader )newPdfAnnotationLinkFromDict (_fgf *_bcb .PdfObjectDictionary )(*PdfAnnotationLink ,error ){_gdba :=PdfAnnotationLink {};_gdba .A =_fgf .Get ("\u0041");_gdba .Dest =_fgf .Get ("\u0044\u0065\u0073\u0074");_gdba .H =_fgf .Get ("\u0048");_gdba .PA =_fgf .Get ("\u0050\u0041");_gdba .QuadPoints =_fgf .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");_gdba .BS =_fgf .Get ("\u0042\u0053");return &_gdba ,nil ;};func (_accfe *PdfReader )loadStructure ()error {if _accfe ._ecage .GetCrypter ()!=nil &&!_accfe ._ecage .IsAuthenticated (){return _e .Errorf ("\u0066\u0069\u006ce\u0020\u006e\u0065\u0065d\u0020\u0074\u006f\u0020\u0062\u0065\u0020d\u0065\u0063\u0072\u0079\u0070\u0074\u0065\u0064\u0020\u0066\u0069\u0072\u0073\u0074");};_abbbf :=_accfe ._ecage .GetTrailer ();if _abbbf ==nil {return _e .Errorf ("\u006di\u0073s\u0069\u006e\u0067\u0020\u0074\u0072\u0061\u0069\u006c\u0065\u0072");};_fgbcg ,_fcabe :=_abbbf .Get ("\u0052\u006f\u006f\u0074").(*_bcb .PdfObjectReference );if !_fcabe {return _e .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0052\u006f\u006ft\u0020\u0028\u0074\u0072\u0061\u0069\u006c\u0065\u0072\u003a \u0025\u0073\u0029",_abbbf );};_efbgd ,_ceadd :=_accfe ._ecage .LookupByReference (*_fgbcg );if _ceadd !=nil {_cga .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",_ceadd );return _ceadd ;};_bbabe ,_fcabe :=_efbgd .(*_bcb .PdfIndirectObject );if !_fcabe {_cga .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",_efbgd ,*_abbbf );return _ae .New ("\u006di\u0073s\u0069\u006e\u0067\u0020\u0063\u0061\u0074\u0061\u006c\u006f\u0067");};_affcb ,_fcabe :=(*_bbabe ).PdfObject .(*_bcb .PdfObjectDictionary );if !_fcabe {_cga .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",_bbabe .PdfObject );return _ae .New ("\u0069n\u0076a\u006c\u0069\u0064\u0020\u0063\u0061\u0074\u0061\u006c\u006f\u0067");};_cga .Log .Trace ("C\u0061\u0074\u0061\u006c\u006f\u0067\u003a\u0020\u0025\u0073",_affcb );_ggdb ,_fcabe :=_affcb .Get ("\u0050\u0061\u0067e\u0073").(*_bcb .PdfObjectReference );if !_fcabe {return _ae .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");};_facbcc ,_ceadd :=_accfe ._ecage .LookupByReference (*_ggdb );if _ceadd !=nil {_cga .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 _ceadd ;};_dffef ,_fcabe :=_facbcc .(*_bcb .PdfIndirectObject );if !_fcabe {_cga .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");_cga .Log .Debug ("\u006f\u0070\u003a\u0020\u0025\u0070",_dffef );return _ae .New ("p\u0061g\u0065\u0073\u0020\u006f\u0062\u006a\u0065\u0063t\u0020\u0069\u006e\u0076al\u0069\u0064");};_aaea ,_fcabe :=_dffef .PdfObject .(*_bcb .PdfObjectDictionary );if !_fcabe {_cga .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",_dffef );return _ae .New ("p\u0061g\u0065\u0073\u0020\u006f\u0062\u006a\u0065\u0063t\u0020\u0069\u006e\u0076al\u0069\u0064");};_bdgadf ,_fcabe :=_bcb .GetInt (_aaea .Get ("\u0043\u006f\u0075n\u0074"));if !_fcabe {_cga .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 _ae .New ("\u0070\u0061\u0067\u0065s \u0063\u006f\u0075\u006e\u0074\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064");};if _ ,_fcabe =_bcb .GetName (_aaea .Get ("\u0054\u0079\u0070\u0065"));!_fcabe {_cga .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");_aaea .Set ("\u0054\u0079\u0070\u0065",_bcb .MakeName ("\u0050\u0061\u0067e\u0073"));};_accfe ._edgge =_fgbcg ;_accfe ._fccd =_affcb ;_accfe ._fcggb =_aaea ;_accfe ._cegfeb =_dffef ;_accfe ._fddge =int (*_bdgadf );_accfe ._fcff =[]*_bcb .PdfIndirectObject {};_gfgea :=map[_bcb .PdfObject ]struct{}{};_ceadd =_accfe .buildPageList (_dffef ,nil ,_gfgea );if _ceadd !=nil {return _ceadd ;};_cga .Log .Trace ("\u002d\u002d\u002d");_cga .Log .Trace ("\u0054\u004f\u0043");_cga .Log .Trace ("\u0050\u0061\u0067e\u0073");_cga .Log .Trace ("\u0025\u0064\u003a\u0020\u0025\u0073",len (_accfe ._fcff ),_accfe ._fcff );_accfe ._gbged ,_ceadd =_accfe .loadOutlines ();if _ceadd !=nil {_cga .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",_ceadd );return _ceadd ;};_accfe .AcroForm ,_ceadd =_accfe .loadForms ();if _ceadd !=nil {return _ceadd ;};_accfe .DSS ,_ceadd =_accfe .loadDSS ();if _ceadd !=nil {return _ceadd ;};return nil ;};
// ToPdfObject returns the PDF representation of the colorspace.
func (_ffdd *PdfPageResourcesColorspaces )ToPdfObject ()_bcb .PdfObject {_ccecf :=_bcb .MakeDict ();for _ ,_eegbe :=range _ffdd .Names {_ccecf .Set (_bcb .PdfObjectName (_eegbe ),_ffdd .Colorspaces [_eegbe ].ToPdfObject ());};if _ffdd ._fggf !=nil {_ffdd ._fggf .PdfObject =_ccecf ;return _ffdd ._fggf ;};return _ccecf ;};func _efed (_fcbba _bcb .PdfObject )(*fontFile ,error ){_cga .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",_fcbba );_fcce :=&fontFile {};_fcbba =_bcb .TraceToDirectObject (_fcbba );_efada ,_gfac :=_fcbba .(*_bcb .PdfObjectStream );if !_gfac {_cga .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",_fcbba );return nil ,_bcb .ErrTypeError ;};_adbae :=_efada .PdfObjectDictionary ;_gabcga ,_fege :=_bcb .DecodeStream (_efada );if _fege !=nil {return nil ,_fege ;};_gcdcc ,_gfac :=_bcb .GetNameVal (_adbae .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065"));if !_gfac {_fcce ._cecc =_gcdcc ;if _gcdcc =="\u0054\u0079\u0070\u0065\u0031\u0043"{_cga .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 ;};};_cbedd ,_ :=_bcb .GetIntVal (_adbae .Get ("\u004ce\u006e\u0067\u0074\u0068\u0031"));_edec ,_ :=_bcb .GetIntVal (_adbae .Get ("\u004ce\u006e\u0067\u0074\u0068\u0032"));if _cbedd > len (_gabcga ){_cbedd =len (_gabcga );};if _cbedd +_edec > len (_gabcga ){_edec =len (_gabcga )-_cbedd ;};_abfa :=_gabcga [:_cbedd ];var _aebfe []byte ;if _edec > 0{_aebfe =_gabcga [_cbedd :_cbedd +_edec ];};if _cbedd > 0&&_edec > 0{_cgeef :=_fcce .loadFromSegments (_abfa ,_aebfe );if _cgeef !=nil {return nil ,_cgeef ;};};return _fcce ,nil ;};func _fcgb (_ceadb *PdfField ,_gbdc _bcb .PdfObject )error {switch _ceadb .GetContext ().(type ){case *PdfFieldText :switch _agee :=_gbdc .(type ){case *_bcb .PdfObjectName :_eaeb :=_agee ;_cga .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",_eaeb .String ());_ceadb .V =_bcb .MakeEncodedString (_agee .String (),true );case *_bcb .PdfObjectString :_ceadb .V =_bcb .MakeEncodedString (_agee .String (),true );default:_cga .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",_agee ,_agee );};case *PdfFieldButton :switch _gbdc .(type ){case *_bcb .PdfObjectName :if len (_gbdc .String ())> 0{_ceadb .V =_gbdc ;_fabga (_ceadb ,_gbdc );};case *_bcb .PdfObjectString :if len (_gbdc .String ())> 0{_ceadb .V =_bcb .MakeName (_gbdc .String ());_fabga (_ceadb ,_ceadb .V );};default:_cga .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",_ceadb .PartialName (),_gbdc );_ceadb .V =_gbdc ;};case *PdfFieldChoice :switch _gbdc .(type ){case *_bcb .PdfObjectName :if len (_gbdc .String ())> 0{_ceadb .V =_bcb .MakeString (_gbdc .String ());_fabga (_ceadb ,_gbdc );};case *_bcb .PdfObjectString :if len (_gbdc .String ())> 0{_ceadb .V =_gbdc ;_fabga (_ceadb ,_bcb .MakeName (_gbdc .String ()));};default:_cga .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",_ceadb .PartialName (),_gbdc );_ceadb .V =_gbdc ;};case *PdfFieldSignature :_cga .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",_ceadb .PartialName (),_gbdc );};return nil ;};
// OutlineItem represents a PDF outline item dictionary (Table 153 - pp. 376 - 377).
type OutlineItem struct{Title string `json:"title"`;Dest OutlineDest `json:"dest"`;Entries []*OutlineItem `json:"entries,omitempty"`;};func _dddd (_ddecf *_bcb .PdfObjectArray )(float64 ,error ){_edfga ,_gcac :=_ddecf .ToFloat64Array ();if _gcac !=nil {_cga .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",_ddecf ,_gcac );};switch len (_edfga ){case 1:return _edfga [0],nil ;case 3:_dcfff :=PdfColorspaceDeviceRGB {};_fbad ,_ggbd :=_dcfff .ColorFromFloats (_edfga );if _ggbd !=nil {return 0.0,_ggbd ;};return _fbad .(*PdfColorDeviceRGB ).ToGray ().Val (),nil ;case 4:_fedgd :=PdfColorspaceDeviceCMYK {};_gcadab ,_ceggc :=_fedgd .ColorFromFloats (_edfga );if _ceggc !=nil {return 0.0,_ceggc ;};_faecg ,_ceggc :=_fedgd .ColorToRGB (_gcadab .(*PdfColorDeviceCMYK ));if _ceggc !=nil {return 0.0,_ceggc ;};return _faecg .(*PdfColorDeviceRGB ).ToGray ().Val (),nil ;};_gcac =_ae .New ("\u0062a\u0064 \u004d\u0061\u0074\u0074\u0065\u0020\u0063\u006f\u006c\u006f\u0072");_cga .Log .Error ("\u0074\u006f\u0047ra\u0079\u003a\u0020\u006d\u0061\u0074\u0074\u0065\u003d\u0025\u0073\u0020\u0065\u0072\u0072\u003d\u0025\u0076",_ddecf ,_gcac );return 0.0,_gcac ;};
// DefaultImageHandler is the default implementation of the ImageHandler using the standard go library.
type DefaultImageHandler struct{};
// FieldAppearanceGenerator generates appearance stream for a given field.
type FieldAppearanceGenerator interface{ContentStreamWrapper ;GenerateAppearanceDict (_cbfb *PdfAcroForm ,_afaf *PdfField ,_agbe *PdfAnnotationWidget )(*_bcb .PdfObjectDictionary ,error );};
// PdfInfoTrapped specifies pdf trapped information.
type PdfInfoTrapped string ;func (_fge *PdfReader )newPdfActionLaunchFromDict (_dfd *_bcb .PdfObjectDictionary )(*PdfActionLaunch ,error ){_fbc ,_ade :=_geg (_dfd .Get ("\u0046"));if _ade !=nil {return nil ,_ade ;};return &PdfActionLaunch {Win :_dfd .Get ("\u0057\u0069\u006e"),Mac :_dfd .Get ("\u004d\u0061\u0063"),Unix :_dfd .Get ("\u0055\u006e\u0069\u0078"),NewWindow :_dfd .Get ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw"),F :_fbc },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 (_aegac *PdfPageResources )GetColorspaces ()(*PdfPageResourcesColorspaces ,error ){if _aegac ._dcga !=nil {return _aegac ._dcga ,nil ;};if _aegac .ColorSpace ==nil {return nil ,nil ;};_debae ,_dece :=_ebdg (_aegac .ColorSpace );if _dece !=nil {return nil ,_dece ;};_aegac ._dcga =_debae ;return _aegac ._dcga ,nil ;};func _fbdg (_fgga _bcb .PdfObject )(*PdfColorspaceSpecialIndexed ,error ){_cdag :=NewPdfColorspaceSpecialIndexed ();if _ccdg ,_dfec :=_fgga .(*_bcb .PdfIndirectObject );_dfec {_cdag ._gcgga =_ccdg ;};_fgga =_bcb .TraceToDirectObject (_fgga );_eage ,_abbf :=_fgga .(*_bcb .PdfObjectArray );if !_abbf {return nil ,_e .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _eage .Len ()!=4{return nil ,_e .Errorf ("\u0069\u006e\u0064\u0065\u0078\u0065\u0064\u0020\u0043\u0053\u003a\u0020\u0069\u006e\u0076a\u006ci\u0064\u0020\u0061\u0072\u0072\u0061\u0079\u0020\u006c\u0065\u006e\u0067\u0074\u0068");};_fgga =_eage .Get (0);_bagg ,_abbf :=_fgga .(*_bcb .PdfObjectName );if !_abbf {return nil ,_e .Errorf ("\u0069n\u0064\u0065\u0078\u0065\u0064\u0020\u0043\u0053\u003a\u0020\u0069n\u0076\u0061\u006c\u0069\u0064\u0020\u006e\u0061\u006d\u0065");};if *_bagg !="\u0049n\u0064\u0065\u0078\u0065\u0064"{return nil ,_e .Errorf ("\u0069\u006e\u0064\u0065xe\u0064\u0020\u0043\u0053\u003a\u0020\u0077\u0072\u006f\u006e\u0067\u0020\u006e\u0061m\u0065");};_fgga =_eage .Get (1);_begca ,_add :=DetermineColorspaceNameFromPdfObject (_fgga );if _add !=nil {return nil ,_add ;};if _begca =="\u0049n\u0064\u0065\u0078\u0065\u0064"||_begca =="\u0050a\u0074\u0074\u0065\u0072\u006e"{_cga .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",_begca );return nil ,_aadab ;};_fabg ,_add :=NewPdfColorspaceFromPdfObject (_fgga );if _add !=nil {return nil ,_add ;};_cdag .Base =_fabg ;_fgga =_eage .Get (2);_cfbb ,_add :=_bcb .GetNumberAsInt64 (_fgga );if _add !=nil {return nil ,_add ;};if _cfbb > 255{return nil ,_e .Errorf ("\u0069n\u0064\u0065\u0078\u0065d\u0020\u0043\u0053\u003a\u0020I\u006ev\u0061l\u0069\u0064\u0020\u0068\u0069\u0076\u0061l");};_cdag .HiVal =int (_cfbb );_fgga =_eage .Get (3);_cdag .Lookup =_fgga ;_fgga =_bcb .TraceToDirectObject (_fgga );var _abdg []byte ;if _cgef ,_gdec :=_fgga .(*_bcb .PdfObjectString );_gdec {_abdg =_cgef .Bytes ();_cga .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",_abdg );}else if _fbbdfg ,_abba :=_fgga .(*_bcb .PdfObjectStream );_abba {_cga .Log .Trace ("\u0049n\u0064e\u0078\u0065\u0064\u0020\u0073t\u0072\u0065a\u006d\u003a\u0020\u0025\u0073",_fgga .String ());_cga .Log .Trace ("\u0045\u006e\u0063\u006fde\u0064\u0020\u0028\u0025\u0064\u0029\u0020\u003a\u0020\u0025\u0023\u0020\u0078",len (_fbbdfg .Stream ),_fbbdfg .Stream );_cacb ,_cafe :=_bcb .DecodeStream (_fbbdfg );if _cafe !=nil {return nil ,_cafe ;};_cga .Log .Trace ("\u0044e\u0063o\u0064\u0065\u0064\u0020\u0028%\u0064\u0029 \u003a\u0020\u0025\u0020\u0058",len (_cacb ),_cacb );_abdg =_cacb ;}else {_cga .Log .Debug ("\u0054\u0079\u0070\u0065\u003a\u0020\u0025\u0054",_fgga );return nil ,_e .Errorf ("\u0069\u006e\u0064\u0065\u0078\u0065\u0064\u0020\u0043\u0053\u003a\u0020\u0049\u006e\u0076a\u006ci\u0064\u0020\u0074\u0061\u0062\u006c\u0065\u0020\u0066\u006f\u0072\u006d\u0061\u0074");};if len (_abdg )< _cdag .Base .GetNumComponents ()*(_cdag .HiVal +1){_cga .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");_cga .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 (_abdg ),_cdag .Base .GetNumComponents (),_cdag .HiVal );}else {_abdg =_abdg [:_cdag .Base .GetNumComponents ()*(_cdag .HiVal +1)];};_cdag ._ddcb =_abdg ;return _cdag ,nil ;};
// NewStandard14FontMustCompile returns the standard 14 font named `basefont` as a *PdfFont.
// If `basefont` is one of the 14 Standard14Font values defined above then NewStandard14FontMustCompile
// is guaranteed to succeed.
func NewStandard14FontMustCompile (basefont StdFontName )*PdfFont {_cgag ,_feadb :=NewStandard14Font (basefont );if _feadb !=nil {panic (_e .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0053\u0074\u0061n\u0064\u0061\u0072\u0064\u0031\u0034\u0046\u006f\u006e\u0074 \u0025\u0023\u0071",basefont ));};return _cgag ;};
// PdfActionURI represents an URI action.
type PdfActionURI struct{*PdfAction ;URI _bcb .PdfObject ;IsMap _bcb .PdfObject ;};
// AppendContentStream adds content stream by string. Appends to the last
// contentstream instance if many.
func (_ecad *PdfPage )AppendContentStream (contentStr string )error {_dcbda ,_bggcf :=_ecad .GetContentStreams ();if _bggcf !=nil {return _bggcf ;};if len (_dcbda )==0{_dcbda =[]string {contentStr };return _ecad .SetContentStreams (_dcbda ,_bcb .NewFlateEncoder ());};var _cfffg _ede .Buffer ;_cfffg .WriteString (_dcbda [len (_dcbda )-1]);_cfffg .WriteString ("\u000a");_cfffg .WriteString (contentStr );_dcbda [len (_dcbda )-1]=_cfffg .String ();return _ecad .SetContentStreams (_dcbda ,_bcb .NewFlateEncoder ());};
// GetContext returns the annotation context which contains the specific type-dependent context.
// The context represents the subannotation.
func (_cfae *PdfAnnotation )GetContext ()PdfModel {if _cfae ==nil {return nil ;};return _cfae ._feb ;};func (_dbca *PdfReader )newPdfAnnotationProjectionFromDict (_gccab *_bcb .PdfObjectDictionary )(*PdfAnnotationProjection ,error ){_fdc :=&PdfAnnotationProjection {};_fgda ,_bfgd :=_dbca .newPdfAnnotationMarkupFromDict (_gccab );if _bfgd !=nil {return nil ,_bfgd ;};_fdc .PdfAnnotationMarkup =_fgda ;return _fdc ,nil ;};
// ToPdfObject returns the PDF representation of the colorspace.
func (_baaad *PdfColorspaceDeviceGray )ToPdfObject ()_bcb .PdfObject {return _bcb .MakeName ("\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079");};
// DecodeArray returns the range of color component values in DeviceGray colorspace.
func (_eggcb *PdfColorspaceDeviceGray )DecodeArray ()[]float64 {return []float64 {0,1.0}};
// AddOutlineTree adds outlines to a PDF file.
func (_cacgc *PdfWriter )AddOutlineTree (outlineTree *PdfOutlineTreeNode ){_cacgc ._eefac =outlineTree };func (_bgee *PdfReader )newPdfAnnotationPolyLineFromDict (_agd *_bcb .PdfObjectDictionary )(*PdfAnnotationPolyLine ,error ){_cccd :=PdfAnnotationPolyLine {};_dcaa ,_ffea :=_bgee .newPdfAnnotationMarkupFromDict (_agd );if _ffea !=nil {return nil ,_ffea ;};_cccd .PdfAnnotationMarkup =_dcaa ;_cccd .Vertices =_agd .Get ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073");_cccd .LE =_agd .Get ("\u004c\u0045");_cccd .BS =_agd .Get ("\u0042\u0053");_cccd .IC =_agd .Get ("\u0049\u0043");_cccd .BE =_agd .Get ("\u0042\u0045");_cccd .IT =_agd .Get ("\u0049\u0054");_cccd .Measure =_agd .Get ("\u004de\u0061\u0073\u0075\u0072\u0065");return &_cccd ,nil ;};
// ColorFromPdfObjects gets the color from a series of pdf objects (3 for rgb).
func (_fada *PdfColorspaceDeviceRGB )ColorFromPdfObjects (objects []_bcb .PdfObject )(PdfColor ,error ){if len (objects )!=3{return nil ,_ae .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_efbcg ,_fagf :=_bcb .GetNumbersAsFloat (objects );if _fagf !=nil {return nil ,_fagf ;};return _fada .ColorFromFloats (_efbcg );};func (_ebc *PdfReader )newPdfAnnotationScreenFromDict (_ccbb *_bcb .PdfObjectDictionary )(*PdfAnnotationScreen ,error ){_bacc :=PdfAnnotationScreen {};_bacc .T =_ccbb .Get ("\u0054");_bacc .MK =_ccbb .Get ("\u004d\u004b");_bacc .A =_ccbb .Get ("\u0041");_bacc .AA =_ccbb .Get ("\u0041\u0041");return &_bacc ,nil ;};
// NewCompositePdfFontFromTTF loads a composite TTF font. Composite fonts can
// be used to represent unicode fonts which can have multi-byte character codes, representing a wide
// range of values. They are often used for symbolic languages, including Chinese, Japanese and Korean.
// It is represented by a Type0 Font with an underlying CIDFontType2 and an Identity-H encoding map.
// TODO: May be extended in the future to support a larger variety of CMaps and vertical fonts.
// NOTE: For simple fonts, use NewPdfFontFromTTF.
func NewCompositePdfFontFromTTF (r _fb .ReadSeeker )(*PdfFont ,error ){_gbfd ,_ecacc :=_fd .ReadAll (r );if _ecacc !=nil {_cga .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",_ecacc );return nil ,_ecacc ;};_dgfdg ,_ecacc :=_acc .TtfParse (_ede .NewReader (_gbfd ));if _ecacc !=nil {_cga .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",_ecacc );return nil ,_ecacc ;};_egda :=&pdfCIDFontType2 {fontCommon :fontCommon {_abgg :"\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032"},CIDToGIDMap :_bcb .MakeName ("\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079")};_agag :=make ([]rune ,0,len (_dgfdg .Chars ));for _dcdgg :=range _dgfdg .Chars {_agag =append (_agag ,_dcdgg );};_ed .Slice (_agag ,func (_eddae ,_bfed int )bool {return _agag [_eddae ]< _agag [_bfed ]});_fcgc :=1000.0/float64 (_dgfdg .UnitsPerEm );if len (_dgfdg .Widths )<=0{return nil ,_ae .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");};_bbge :=_fcgc *float64 (_dgfdg .Widths [0]);_ebadc :=make (map[rune ]int );for _ ,_bdbde :=range _agag {_eacdc :=_dgfdg .Chars [_bdbde ];_fbag :=_fcgc *float64 (_dgfdg .Widths [_eacdc ]);_ebadc [_bdbde ]=int (_fbag );};_egda ._gggbf =_ebadc ;_egda .DW =_bcb .MakeInteger (int64 (_bbge ));_cbdgc :=_fbgf (_agag ,_ebadc ,_dgfdg .Chars );_egda .W =_bcb .MakeIndirectObject (_cbdgc );_acgeg :=_bcb .MakeDict ();_acgeg .Set ("\u004f\u0072\u0064\u0065\u0072\u0069\u006e\u0067",_bcb .MakeString ("\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079"));_acgeg .Set ("\u0052\u0065\u0067\u0069\u0073\u0074\u0072\u0079",_bcb .MakeString ("\u0041\u0064\u006fb\u0065"));_acgeg .Set ("\u0053\u0075\u0070\u0070\u006c\u0065\u006d\u0065\u006e\u0074",_bcb .MakeInteger (0));_egda .CIDSystemInfo =_acgeg ;_cbad :=&PdfFontDescriptor {FontName :_bcb .MakeName (_dgfdg .PostScriptName ),Ascent :_bcb .MakeFloat (_fcgc *float64 (_dgfdg .TypoAscender )),Descent :_bcb .MakeFloat (_fcgc *float64 (_dgfdg .TypoDescender )),CapHeight :_bcb .MakeFloat (_fcgc *float64 (_dgfdg .CapHeight )),FontBBox :_bcb .MakeArrayFromFloats ([]float64 {_fcgc *float64 (_dgfdg .Xmin ),_fcgc *float64 (_dgfdg .Ymin ),_fcgc *float64 (_dgfdg .Xmax ),_fcgc *float64 (_dgfdg .Ymax )}),ItalicAngle :_bcb .MakeFloat (_dgfdg .ItalicAngle ),MissingWidth :_bcb .MakeFloat (_fcgc *float64 (_dgfdg .Widths [0]))};_edfaa ,_ecacc :=_bcb .MakeStream (_gbfd ,_bcb .NewFlateEncoder ());if _ecacc !=nil {_cga .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",_ecacc );return nil ,_ecacc ;};_edfaa .PdfObjectDictionary .Set ("\u004ce\u006e\u0067\u0074\u0068\u0031",_bcb .MakeInteger (int64 (len (_gbfd ))));_cbad .FontFile2 =_edfaa ;if _dgfdg .Bold {_cbad .StemV =_bcb .MakeInteger (120);}else {_cbad .StemV =_bcb .MakeInteger (70);};_gbfb :=_cedf ;if _dgfdg .IsFixedPitch {_gbfb |=_dbfb ;};if _dgfdg .ItalicAngle !=0{_gbfb |=_egac ;};_cbad .Flags =_bcb .MakeInteger (int64 (_gbfb ));_egda ._daeb =_dgfdg .PostScriptName ;_egda ._ecaed =_cbad ;_bdcfc :=pdfFontType0 {fontCommon :fontCommon {_abgg :"\u0054\u0079\u0070e\u0030",_daeb :_dgfdg .PostScriptName },DescendantFont :&PdfFont {_fgge :_egda },Encoding :_bcb .MakeName ("\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079\u002d\u0048"),_cfaee :_dgfdg .NewEncoder ()};if len (_dgfdg .Chars )> 0{_dacdc :=make (map[_dc .CharCode ]rune ,len (_dgfdg .Chars ));for _baebe ,_bdad :=range _dgfdg .Chars {_gfdf :=_dc .CharCode (_bdad );if _fabe ,_dbade :=_dacdc [_gfdf ];!_dbade ||(_dbade &&_fabe > _baebe ){_dacdc [_gfdf ]=_baebe ;};};_bdcfc ._ecbe =_dc .NewToUnicodeCMap (_dacdc );};_bdadf :=PdfFont {_fgge :&_bdcfc };return &_bdadf ,nil ;};
// SignatureValidationResult defines the response from the signature validation handler.
type SignatureValidationResult struct{
// List of errors when validating the signature.
Errors []string ;IsSigned bool ;IsVerified bool ;IsTrusted bool ;Fields []*PdfField ;Name string ;Date PdfDate ;Reason string ;Location string ;ContactInfo string ;
// GeneralizedTime is the time at which the time-stamp token has been created by the TSA (RFC 3161).
GeneralizedTime _d .Time ;};func _fagdd (_abeef *_bcb .PdfObjectDictionary )(*PdfShadingType3 ,error ){_gafa :=PdfShadingType3 {};_bagaa :=_abeef .Get ("\u0043\u006f\u006f\u0072\u0064\u0073");if _bagaa ==nil {_cga .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 ;};_deefg ,_cddf :=_bagaa .(*_bcb .PdfObjectArray );if !_cddf {_cga .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",_bagaa );return nil ,_bcb .ErrTypeError ;};if _deefg .Len ()!=6{_cga .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",_deefg .Len ());return nil ,ErrInvalidAttribute ;};_gafa .Coords =_deefg ;if _cdbbe :=_abeef .Get ("\u0044\u006f\u006d\u0061\u0069\u006e");_cdbbe !=nil {_cdbbe =_bcb .TraceToDirectObject (_cdbbe );_gcga ,_aefeac :=_cdbbe .(*_bcb .PdfObjectArray );if !_aefeac {_cga .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",_cdbbe );return nil ,_bcb .ErrTypeError ;};_gafa .Domain =_gcga ;};_bagaa =_abeef .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");if _bagaa ==nil {_cga .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 ;};_gafa .Function =[]PdfFunction {};if _fcebg ,_babeb :=_bagaa .(*_bcb .PdfObjectArray );_babeb {for _ ,_ecfab :=range _fcebg .Elements (){_dggae ,_edfgd :=_acdfd (_ecfab );if _edfgd !=nil {_cga .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",_edfgd );return nil ,_edfgd ;};_gafa .Function =append (_gafa .Function ,_dggae );};}else {_dbed ,_gcbaf :=_acdfd (_bagaa );if _gcbaf !=nil {_cga .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",_gcbaf );return nil ,_gcbaf ;};_gafa .Function =append (_gafa .Function ,_dbed );};if _efce :=_abeef .Get ("\u0045\u0078\u0074\u0065\u006e\u0064");_efce !=nil {_efce =_bcb .TraceToDirectObject (_efce );_gfbfd ,_bcdd :=_efce .(*_bcb .PdfObjectArray );if !_bcdd {_cga .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",_efce );return nil ,_bcb .ErrTypeError ;};if _gfbfd .Len ()!=2{_cga .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",_gfbfd .Len ());return nil ,ErrInvalidAttribute ;};_gafa .Extend =_gfbfd ;};return &_gafa ,nil ;};
// EncryptOptions represents encryption options for an output PDF.
type EncryptOptions struct{Permissions _aec .Permissions ;Algorithm EncryptionAlgorithm ;};
// ColorToRGB converts a Lab color to an RGB color.
func (_eaef *PdfColorspaceLab )ColorToRGB (color PdfColor )(PdfColor ,error ){_cafc :=func (_cggb float64 )float64 {if _cggb >=6.0/29{return _cggb *_cggb *_cggb ;};return 108.0/841*(_cggb -4/29);};_fbbg ,_bfgff :=color .(*PdfColorLab );if !_bfgff {_cga .Log .Debug ("\u0069\u006e\u0070\u0075t \u0063\u006f\u006c\u006f\u0072\u0020\u006e\u006f\u0074\u0020\u006c\u0061\u0062");return nil ,_ae .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};LStar :=_fbbg .L ();AStar :=_fbbg .A ();BStar :=_fbbg .B ();L :=(LStar +16)/116+AStar /500;M :=(LStar +16)/116;N :=(LStar +16)/116-BStar /200;X :=_eaef .WhitePoint [0]*_cafc (L );Y :=_eaef .WhitePoint [1]*_cafc (M );Z :=_eaef .WhitePoint [2]*_cafc (N );_gcfa :=3.240479*X +-1.537150*Y +-0.498535*Z ;_ebfd :=-0.969256*X +1.875992*Y +0.041556*Z ;_efbga :=0.055648*X +-0.204043*Y +1.057311*Z ;_gcfa =_edb .Min (_edb .Max (_gcfa ,0),1.0);_ebfd =_edb .Min (_edb .Max (_ebfd ,0),1.0);_efbga =_edb .Min (_edb .Max (_efbga ,0),1.0);return NewPdfColorDeviceRGB (_gcfa ,_ebfd ,_efbga ),nil ;};
// GetPatternByName gets the pattern specified by keyName. Returns nil if not existing.
// The bool flag indicated whether it was found or not.
func (_bfcba *PdfPageResources )GetPatternByName (keyName _bcb .PdfObjectName )(*PdfPattern ,bool ){if _bfcba .Pattern ==nil {return nil ,false ;};_gaged ,_cccgc :=_bcb .TraceToDirectObject (_bfcba .Pattern ).(*_bcb .PdfObjectDictionary );if !_cccgc {_cga .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",_bfcba .Pattern );return nil ,false ;};if _fceb :=_gaged .Get (keyName );_fceb !=nil {_fbgfd ,_deefa :=_bdagg (_fceb );if _deefa !=nil {_cga .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",_deefa );return nil ,false ;};return _fbgfd ,true ;};return nil ,false ;};
// ToPdfOutline returns a low level PdfOutline object, based on the current
// instance.
func (_cfgdd *Outline )ToPdfOutline ()*PdfOutline {_gdcab :=NewPdfOutline ();var _cbfde []*PdfOutlineItem ;var _abccf int64 ;var _ceedg *PdfOutlineItem ;for _ ,_aaddd :=range _cfgdd .Entries {_gafb ,_gdcgc :=_aaddd .ToPdfOutlineItem ();_gafb .Parent =&_gdcab .PdfOutlineTreeNode ;if _ceedg !=nil {_ceedg .Next =&_gafb .PdfOutlineTreeNode ;_gafb .Prev =&_ceedg .PdfOutlineTreeNode ;};_cbfde =append (_cbfde ,_gafb );_abccf +=_gdcgc ;_ceedg =_gafb ;};_bedcc :=int64 (len (_cbfde ));_abccf +=_bedcc ;if _bedcc > 0{_gdcab .First =&_cbfde [0].PdfOutlineTreeNode ;_gdcab .Last =&_cbfde [_bedcc -1].PdfOutlineTreeNode ;_gdcab .Count =&_abccf ;};return _gdcab ;};func (_eegdgg Image )getBase ()_fgd .ImageBase {return _fgd .NewImageBase (int (_eegdgg .Width ),int (_eegdgg .Height ),int (_eegdgg .BitsPerComponent ),_eegdgg .ColorComponents ,_eegdgg .Data ,_eegdgg ._cdeb ,_eegdgg ._fdggf );};
// ToPdfObject implements interface PdfModel.
func (_bfea *PdfAnnotationSound )ToPdfObject ()_bcb .PdfObject {_bfea .PdfAnnotation .ToPdfObject ();_ccea :=_bfea ._daa ;_acgbb :=_ccea .PdfObject .(*_bcb .PdfObjectDictionary );_bfea .PdfAnnotationMarkup .appendToPdfDictionary (_acgbb );_acgbb .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_bcb .MakeName ("\u0053\u006f\u0075n\u0064"));_acgbb .SetIfNotNil ("\u0053\u006f\u0075n\u0064",_bfea .Sound );_acgbb .SetIfNotNil ("\u004e\u0061\u006d\u0065",_bfea .Name );return _ccea ;};func (_bdfcb *PdfWriter )writeString (_febcc string ){if _bdfcb ._gaacd !=nil {return ;};_beaee ,_daaga :=_bdfcb ._aefcaa .WriteString (_febcc );_bdfcb ._cdgbg +=int64 (_beaee );_bdfcb ._gaacd =_daaga ;};func (_ebdd *Image )resampleLowBits (_fffad []uint32 ){_cadcd :=_fgd .BytesPerLine (int (_ebdd .Width ),int (_ebdd .BitsPerComponent ),_ebdd .ColorComponents );_cefcd :=make ([]byte ,_ebdd .ColorComponents *_cadcd *int (_ebdd .Height ));_cabgf :=int (_ebdd .BitsPerComponent )*_ebdd .ColorComponents *int (_ebdd .Width );_cdcgg :=uint8 (8);var (_gbbfg ,_bdeaa int ;_dbde uint32 ;);for _eabacb :=0;_eabacb < int (_ebdd .Height );_eabacb ++{_bdeaa =_eabacb *_cadcd ;for _cedfa :=0;_cedfa < _cabgf ;_cedfa ++{_dbde =_fffad [_gbbfg ];_cdcgg -=uint8 (_ebdd .BitsPerComponent );_cefcd [_bdeaa ]|=byte (_dbde )<<_cdcgg ;if _cdcgg ==0{_cdcgg =8;_bdeaa ++;};_gbbfg ++;};};_ebdd .Data =_cefcd ;};
// GetContentStream returns the pattern cell's content stream
func (_fdecc *PdfTilingPattern )GetContentStream ()([]byte ,error ){_dbcca ,_ ,_dbdc :=_fdecc .GetContentStreamWithEncoder ();return _dbcca ,_dbdc ;};
// AddContentStreamByString adds content stream by string. Puts the content
// string into a stream object and points the content stream towards it.
func (_adgde *PdfPage )AddContentStreamByString (contentStr string )error {_dcdd ,_dabed :=_bcb .MakeStream ([]byte (contentStr ),_bcb .NewFlateEncoder ());if _dabed !=nil {return _dabed ;};if _adgde .Contents ==nil {_adgde .Contents =_dcdd ;}else {_ccdb :=_bcb .TraceToDirectObject (_adgde .Contents );_bcfba ,_ddeb :=_ccdb .(*_bcb .PdfObjectArray );if !_ddeb {_bcfba =_bcb .MakeArray (_ccdb );};_bcfba .Append (_dcdd );_adgde .Contents =_bcfba ;};return nil ;};
// PdfAnnotationStrikeOut represents StrikeOut annotations.
// (Section 12.5.6.10).
type PdfAnnotationStrikeOut struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _bcb .PdfObject ;};func _bdfd (_dedea *_bcb .PdfObjectDictionary ,_eaea *fontCommon ,_cdbc _ddd .TextEncoder )(*pdfFontSimple ,error ){_dedcg :=_ddada (_eaea );_dedcg ._bcdf =_cdbc ;if _cdbc ==nil {_dadb :=_dedea .Get ("\u0046i\u0072\u0073\u0074\u0043\u0068\u0061r");if _dadb ==nil {_dadb =_bcb .MakeInteger (0);};_dedcg .FirstChar =_dadb ;_gcfcfd ,_dcbac :=_bcb .GetIntVal (_dadb );if !_dcbac {_cga .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",_dadb );return nil ,_bcb .ErrTypeError ;};_bdea :=_ddd .CharCode (_gcfcfd );_dadb =_dedea .Get ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072");if _dadb ==nil {_dadb =_bcb .MakeInteger (255);};_dedcg .LastChar =_dadb ;_gcfcfd ,_dcbac =_bcb .GetIntVal (_dadb );if !_dcbac {_cga .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",_dadb );return nil ,_bcb .ErrTypeError ;};_ccedc :=_ddd .CharCode (_gcfcfd );_dedcg ._dgdfc =make (map[_ddd .CharCode ]float64 );_dadb =_dedea .Get ("\u0057\u0069\u0064\u0074\u0068\u0073");if _dadb !=nil {_dedcg .Widths =_dadb ;_eabbd ,_gfcgab :=_bcb .GetArray (_dadb );if !_gfcgab {_cga .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",_dadb );return nil ,_bcb .ErrTypeError ;};_cace ,_cegdc :=_eabbd .ToFloat64Array ();if _cegdc !=nil {_cga .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 ,_cegdc ;};if len (_cace )!=int (_ccedc -_bdea +1){_cga .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",_ccedc -_bdea +1,len (_cace ));return nil ,_bcb .ErrRangeError ;};for _bfagg ,_feffd :=range _cace {_dedcg ._dgdfc [_bdea +_ddd .CharCode (_bfagg )]=_feffd ;};};};_dedcg .Encoding =_bcb .TraceToDirectObject (_dedea .Get ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067"));return _dedcg ,nil ;};func (_fbegc *PdfReader )newPdfSignatureFromIndirect (_cfbba *_bcb .PdfIndirectObject )(*PdfSignature ,error ){_ffgdd ,_ddbcb :=_cfbba .PdfObject .(*_bcb .PdfObjectDictionary );if !_ddbcb {_cga .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 _egga ,_cabcd :=_fbegc ._dafbg .GetModelFromPrimitive (_cfbba ).(*PdfSignature );_cabcd {return _egga ,nil ;};_gdegag :=&PdfSignature {};_gdegag ._abcf =_cfbba ;_gdegag .Type ,_ =_bcb .GetName (_ffgdd .Get ("\u0054\u0079\u0070\u0065"));_gdegag .Filter ,_ddbcb =_bcb .GetName (_ffgdd .Get ("\u0046\u0069\u006c\u0074\u0065\u0072"));if !_ddbcb {_cga .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 ;};_gdegag .SubFilter ,_ =_bcb .GetName (_ffgdd .Get ("\u0053u\u0062\u0046\u0069\u006c\u0074\u0065r"));_gdegag .Contents ,_ddbcb =_bcb .GetString (_ffgdd .Get ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073"));if !_ddbcb {_cga .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 ;};_gdegag .Cert =_ffgdd .Get ("\u0043\u0065\u0072\u0074");_gdegag .ByteRange ,_ =_bcb .GetArray (_ffgdd .Get ("\u0042y\u0074\u0065\u0052\u0061\u006e\u0067e"));_gdegag .Reference ,_ =_bcb .GetArray (_ffgdd .Get ("\u0052e\u0066\u0065\u0072\u0065\u006e\u0063e"));_gdegag .Changes ,_ =_bcb .GetArray (_ffgdd .Get ("\u0043h\u0061\u006e\u0067\u0065\u0073"));_gdegag .Name ,_ =_bcb .GetString (_ffgdd .Get ("\u004e\u0061\u006d\u0065"));_gdegag .M ,_ =_bcb .GetString (_ffgdd .Get ("\u004d"));_gdegag .Location ,_ =_bcb .GetString (_ffgdd .Get ("\u004c\u006f\u0063\u0061\u0074\u0069\u006f\u006e"));_gdegag .Reason ,_ =_bcb .GetString (_ffgdd .Get ("\u0052\u0065\u0061\u0073\u006f\u006e"));_gdegag .ContactInfo ,_ =_bcb .GetString (_ffgdd .Get ("C\u006f\u006e\u0074\u0061\u0063\u0074\u0049\u006e\u0066\u006f"));_gdegag .R ,_ =_bcb .GetInt (_ffgdd .Get ("\u0052"));_gdegag .V ,_ =_bcb .GetInt (_ffgdd .Get ("\u0056"));_gdegag .PropBuild ,_ =_bcb .GetDict (_ffgdd .Get ("\u0050\u0072\u006f\u0070\u005f\u0042\u0075\u0069\u006c\u0064"));_gdegag .PropAuthTime ,_ =_bcb .GetInt (_ffgdd .Get ("\u0050\u0072\u006f\u0070\u005f\u0041\u0075\u0074\u0068\u0054\u0069\u006d\u0065"));_gdegag .PropAuthType ,_ =_bcb .GetName (_ffgdd .Get ("\u0050\u0072\u006f\u0070\u005f\u0041\u0075\u0074\u0068\u0054\u0079\u0070\u0065"));return _gdegag ,nil ;};
// GetCharMetrics returns the char metrics for character code `code`.
func (_dddge pdfCIDFontType2 )GetCharMetrics (code _ddd .CharCode )(_acc .CharMetrics ,bool ){if _aagfd ,_cccgd :=_dddge ._ggfgf [code ];_cccgd {return _acc .CharMetrics {Wx :_aagfd },true ;};_fafaa :=rune (code );_cedb ,_ebbc :=_dddge ._gggbf [_fafaa ];if !_ebbc {_cedb =int (_dddge ._adcad );};return _acc .CharMetrics {Wx :float64 (_cedb )},true ;};func _edfca (_ecaf *_bcb .PdfObjectStream )(*PdfFunctionType4 ,error ){_ebbaf :=&PdfFunctionType4 {};_ebbaf ._bbffg =_ecaf ;_bccb :=_ecaf .PdfObjectDictionary ;_aeaed ,_ebcg :=_bcb .TraceToDirectObject (_bccb .Get ("\u0044\u006f\u006d\u0061\u0069\u006e")).(*_bcb .PdfObjectArray );if !_ebcg {_cga .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_ae .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 _aeaed .Len ()%2!=0{_cga .Log .Error ("\u0044\u006f\u006d\u0061\u0069\u006e\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");return nil ,_ae .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0064\u006f\u006da\u0069\u006e\u0020\u0072an\u0067\u0065");};_acggc ,_cadb :=_aeaed .ToFloat64Array ();if _cadb !=nil {return nil ,_cadb ;};_ebbaf .Domain =_acggc ;_aeaed ,_ebcg =_bcb .TraceToDirectObject (_bccb .Get ("\u0052\u0061\u006eg\u0065")).(*_bcb .PdfObjectArray );if _ebcg {if _aeaed .Len ()< 0||_aeaed .Len ()%2!=0{return nil ,_ae .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0061\u006e\u0067\u0065");};_dcbdbb ,_dffg :=_aeaed .ToFloat64Array ();if _dffg !=nil {return nil ,_dffg ;};_ebbaf .Range =_dcbdbb ;};_ffbf ,_cadb :=_bcb .DecodeStream (_ecaf );if _cadb !=nil {return nil ,_cadb ;};_ebbaf ._gfdef =_ffbf ;_gdfd :=_fc .NewPSParser (_ffbf );_gaaff ,_cadb :=_gdfd .Parse ();if _cadb !=nil {return nil ,_cadb ;};_ebbaf .Program =_gaaff ;return _ebbaf ,nil ;};
// SetDecode sets the decode image float slice.
func (_gbfeg *Image )SetDecode (decode []float64 ){_gbfeg ._fdggf =decode };func _cdbb (_cggg _bcb .PdfObject ,_ffccce *PdfReader )(*OutlineDest ,error ){_feced ,_fcdgd :=_bcb .GetArray (_cggg );if !_fcdgd {return nil ,_ae .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");};_dbaeg :=_feced .Len ();if _dbaeg < 2{return nil ,_e .Errorf ("\u0069n\u0076\u0061l\u0069\u0064\u0020\u006fu\u0074\u006c\u0069n\u0065\u0020\u0064\u0065\u0073\u0074\u0069\u006e\u0061ti\u006f\u006e\u0020a\u0072\u0072a\u0079\u0020\u006c\u0065\u006e\u0067t\u0068\u003a \u0025\u0064",_dbaeg );};_fcdc :=&OutlineDest {Mode :"\u0046\u0069\u0074"};_gabff :=_feced .Get (0);if _afcg ,_adbb :=_bcb .GetIndirect (_gabff );_adbb {if _ ,_bbfb ,_fcad :=_ffccce .PageFromIndirectObject (_afcg );_fcad ==nil {_fcdc .Page =int64 (_bbfb -1);}else {_cga .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",_afcg );};_fcdc .PageObj =_afcg ;}else if _eaabga ,_cccdg :=_bcb .GetIntVal (_gabff );_cccdg {if _eaabga >=0&&_eaabga < len (_ffccce .PageList ){_fcdc .PageObj =_ffccce .PageList [_eaabga ].GetPageAsIndirectObject ();}else {_cga .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",_eaabga );};_fcdc .Page =int64 (_eaabga );}else {return nil ,_e .Errorf ("\u0069\u006eva\u006c\u0069\u0064 \u006f\u0075\u0074\u006cine\u0020de\u0073\u0074\u0069\u006e\u0061\u0074\u0069on\u0020\u0070\u0061\u0067\u0065\u003a\u0020%\u0054",_gabff );};_gbeg ,_fcdgd :=_bcb .GetNameVal (_feced .Get (1));if !_fcdgd {_cga .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",_feced .Get (1));return _fcdc ,nil ;};switch _gbeg {case "\u0046\u0069\u0074","\u0046\u0069\u0074\u0042":case "\u0046\u0069\u0074\u0048","\u0046\u0069\u0074B\u0048":if _dbaeg > 2{_fcdc .Y ,_ =_bcb .GetNumberAsFloat (_bcb .TraceToDirectObject (_feced .Get (2)));};case "\u0046\u0069\u0074\u0056","\u0046\u0069\u0074B\u0056":if _dbaeg > 2{_fcdc .X ,_ =_bcb .GetNumberAsFloat (_bcb .TraceToDirectObject (_feced .Get (2)));};case "\u0058\u0059\u005a":if _dbaeg > 4{_fcdc .X ,_ =_bcb .GetNumberAsFloat (_bcb .TraceToDirectObject (_feced .Get (2)));_fcdc .Y ,_ =_bcb .GetNumberAsFloat (_bcb .TraceToDirectObject (_feced .Get (3)));_fcdc .Zoom ,_ =_bcb .GetNumberAsFloat (_bcb .TraceToDirectObject (_feced .Get (4)));};default:_gbeg ="\u0046\u0069\u0074";};_fcdc .Mode =_gbeg ;return _fcdc ,nil ;};
// NewPdfSignature creates a new PdfSignature object.
func NewPdfSignature (handler SignatureHandler )*PdfSignature {_dgagf :=&PdfSignature {Type :_bcb .MakeName ("\u0053\u0069\u0067"),Handler :handler };_ccdgg :=&pdfSignDictionary {PdfObjectDictionary :_bcb .MakeDict (),_afebe :&handler ,_dgcc :_dgagf };_dgagf ._abcf =_bcb .MakeIndirectObject (_ccdgg );return _dgagf ;};
// ToPdfObject converts the PdfPage to a dictionary within an indirect object container.
func (_caeeb *PdfPage )ToPdfObject ()_bcb .PdfObject {_afgge :=_caeeb ._cfabg ;_caeeb .GetPageDict ();return _afgge ;};
// NewPdfAnnotationPrinterMark returns a new printermark annotation.
func NewPdfAnnotationPrinterMark ()*PdfAnnotationPrinterMark {_cfc :=NewPdfAnnotation ();_gaa :=&PdfAnnotationPrinterMark {};_gaa .PdfAnnotation =_cfc ;_cfc .SetContext (_gaa );return _gaa ;};type pdfSignDictionary struct{*_bcb .PdfObjectDictionary ;_afebe *SignatureHandler ;_dgcc *PdfSignature ;_afgeg int64 ;_adgcec int ;_gdbcc int ;_bbdgaf int ;_debba int ;};
// SetPdfTitle sets the Title attribute of the output PDF.
func SetPdfTitle (title string ){_dgagfb .Lock ();defer _dgagfb .Unlock ();_eafae =title };
// ToPdfObject converts colorspace to a PDF object. [/Indexed base hival lookup]
func (_dgbd *PdfColorspaceSpecialIndexed )ToPdfObject ()_bcb .PdfObject {_ggae :=_bcb .MakeArray (_bcb .MakeName ("\u0049n\u0064\u0065\u0078\u0065\u0064"));_ggae .Append (_dgbd .Base .ToPdfObject ());_ggae .Append (_bcb .MakeInteger (int64 (_dgbd .HiVal )));_ggae .Append (_dgbd .Lookup );if _dgbd ._gcgga !=nil {_dgbd ._gcgga .PdfObject =_ggae ;return _dgbd ._gcgga ;};return _ggae ;};
// SetContext sets the sub action (context).
func (_ab *PdfAction )SetContext (ctx PdfModel ){_ab ._dda =ctx };
// NewPdfColorspaceSpecialPattern returns a new pattern color.
func NewPdfColorspaceSpecialPattern ()*PdfColorspaceSpecialPattern {return &PdfColorspaceSpecialPattern {};};func _eccaa (_aedef _bcb .PdfObject )(*PdfColorspaceICCBased ,error ){_dgaa :=&PdfColorspaceICCBased {};if _cbcb ,_aeba :=_aedef .(*_bcb .PdfIndirectObject );_aeba {_dgaa ._aaadb =_cbcb ;};_aedef =_bcb .TraceToDirectObject (_aedef );_cgad ,_acbfc :=_aedef .(*_bcb .PdfObjectArray );if !_acbfc {return nil ,_e .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _cgad .Len ()!=2{return nil ,_e .Errorf ("i\u006e\u0076\u0061\u006c\u0069\u0064 \u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064\u0020c\u006f\u006c\u006fr\u0073p\u0061\u0063\u0065");};_aedef =_bcb .TraceToDirectObject (_cgad .Get (0));_fead ,_acbfc :=_aedef .(*_bcb .PdfObjectName );if !_acbfc {return nil ,_e .Errorf ("\u0049\u0043\u0043B\u0061\u0073\u0065\u0064 \u006e\u0061\u006d\u0065\u0020\u006e\u006ft\u0020\u0061\u0020\u004e\u0061\u006d\u0065\u0020\u006f\u0062\u006a\u0065\u0063\u0074");};if *_fead !="\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064"{return nil ,_e .Errorf ("\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0049\u0043\u0043\u0042a\u0073\u0065\u0064\u0020\u0063\u006f\u006c\u006f\u0072\u0073p\u0061\u0063\u0065");};_aedef =_cgad .Get (1);_acgd ,_acbfc :=_bcb .GetStream (_aedef );if !_acbfc {_cga .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",_aedef );return nil ,_e .Errorf ("\u0049\u0043\u0043Ba\u0073\u0065\u0064\u0020\u0073\u0074\u0072\u0065\u0061\u006d\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064");};_gddcf :=_acgd .PdfObjectDictionary ;_cbded ,_acbfc :=_gddcf .Get ("\u004e").(*_bcb .PdfObjectInteger );if !_acbfc {return nil ,_e .Errorf ("I\u0043\u0043\u0042\u0061\u0073\u0065d\u0020\u006d\u0069\u0073\u0073\u0069n\u0067\u0020\u004e\u0020\u0066\u0072\u006fm\u0020\u0073\u0074\u0072\u0065\u0061\u006d\u0020\u0064\u0069c\u0074");};if *_cbded !=1&&*_cbded !=3&&*_cbded !=4{return nil ,_e .Errorf ("\u0049\u0043\u0043\u0042\u0061s\u0065\u0064\u0020\u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063\u0065 \u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u004e\u0020\u0028\u006e\u006f\u0074\u0020\u0031\u002c\u0033\u002c\u0034\u0029");};_dgaa .N =int (*_cbded );if _geddg :=_gddcf .Get ("\u0041l\u0074\u0065\u0072\u006e\u0061\u0074e");_geddg !=nil {_accba ,_dfegf :=NewPdfColorspaceFromPdfObject (_geddg );if _dfegf !=nil {return nil ,_dfegf ;};_dgaa .Alternate =_accba ;};if _aebd :=_gddcf .Get ("\u0052\u0061\u006eg\u0065");_aebd !=nil {_aebd =_bcb .TraceToDirectObject (_aebd );_fddg ,_bfag :=_aebd .(*_bcb .PdfObjectArray );if !_bfag {return nil ,_e .Errorf ("I\u0043\u0043\u0042\u0061\u0073\u0065d\u0020\u0052\u0061\u006e\u0067\u0065\u0020\u006e\u006ft\u0020\u0061\u006e \u0061r\u0072\u0061\u0079");};if _fddg .Len ()!=2*_dgaa .N {return nil ,_e .Errorf ("\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064\u0020\u0052\u0061\u006e\u0067e\u0020\u0077\u0072\u006f\u006e\u0067 \u006e\u0075\u006d\u0062\u0065\u0072\u0020\u006f\u0066\u0020\u0065\u006c\u0065m\u0065\u006e\u0074\u0073");};_efab ,_dbfg :=_fddg .GetAsFloat64Slice ();if _dbfg !=nil {return nil ,_dbfg ;};_dgaa .Range =_efab ;}else {_dgaa .Range =make ([]float64 ,2*_dgaa .N );for _gffa :=0;_gffa < _dgaa .N ;_gffa ++{_dgaa .Range [2*_gffa ]=0.0;_dgaa .Range [2*_gffa +1]=1.0;};};if _effd :=_gddcf .Get ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");_effd !=nil {_ccde ,_adca :=_effd .(*_bcb .PdfObjectStream );if !_adca {return nil ,_e .Errorf ("\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064\u0020\u004de\u0074\u0061\u0064\u0061\u0074\u0061\u0020n\u006f\u0074\u0020\u0061\u0020\u0073\u0074\u0072\u0065\u0061\u006d");};_dgaa .Metadata =_ccde ;};_cfedd ,_ccceg :=_bcb .DecodeStream (_acgd );if _ccceg !=nil {return nil ,_ccceg ;};_dgaa .Data =_cfedd ;_dgaa ._gdgc =_acgd ;return _dgaa ,nil ;};var _fedb =map[string ]struct{}{"\u0046\u0054":{},"\u004b\u0069\u0064\u0073":{},"\u0054":{},"\u0054\u0055":{},"\u0054\u004d":{},"\u0046\u0066":{},"\u0056":{},"\u0044\u0056":{},"\u0041\u0041":{},"\u0044\u0041":{},"\u0051":{},"\u0044\u0053":{},"\u0052\u0056":{}};func (_cebe *PdfAcroForm )fill (_cbae FieldValueProvider ,_cebd FieldAppearanceGenerator )error {if _cebe ==nil {return nil ;};_caae ,_cfcfg :=_cbae .FieldValues ();if _cfcfg !=nil {return _cfcfg ;};for _ ,_bdcfb :=range _cebe .AllFields (){_acdbg :=_bdcfb .PartialName ();_ccgd ,_cadf :=_caae [_acdbg ];if !_cadf {if _beeec ,_ggcfb :=_bdcfb .FullName ();_ggcfb ==nil {_ccgd ,_cadf =_caae [_beeec ];};};if !_cadf {_cga .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",_acdbg );continue ;};if _afeae :=_fcgb (_bdcfb ,_ccgd );_afeae !=nil {return _afeae ;};if _cebd ==nil {continue ;};for _ ,_aafff :=range _bdcfb .Annotations {_edfbe ,_aecbe :=_cebd .GenerateAppearanceDict (_cebe ,_bdcfb ,_aafff );if _aecbe !=nil {return _aecbe ;};_aafff .AP =_edfbe ;_aafff .ToPdfObject ();};};return nil ;};func (_agce *PdfColorspaceCalRGB )String ()string {return "\u0043\u0061\u006c\u0052\u0047\u0042"};
// GetContentStreamObjs returns a slice of PDF objects containing the content
// streams of the page.
func (_faabc *PdfPage )GetContentStreamObjs ()[]_bcb .PdfObject {if _faabc .Contents ==nil {return nil ;};_cgfdd :=_bcb .TraceToDirectObject (_faabc .Contents );if _aeca ,_egcgb :=_cgfdd .(*_bcb .PdfObjectArray );_egcgb {return _aeca .Elements ();};return []_bcb .PdfObject {_cgfdd };};
// HasColorspaceByName checks if the colorspace with the specified name exists in the page resources.
func (_agac *PdfPageResources )HasColorspaceByName (keyName _bcb .PdfObjectName )bool {_ffbe ,_fdfbd :=_agac .GetColorspaces ();if _fdfbd !=nil {_cga .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",_fdfbd );return false ;};if _ffbe ==nil {return false ;};_ ,_aegcb :=_ffbe .Colorspaces [string (keyName )];return _aegcb ;};
// String returns a human readable description of `fontfile`.
func (_geddf *fontFile )String ()string {_defb :="\u005b\u004e\u006f\u006e\u0065\u005d";if _geddf ._ecge !=nil {_defb =_geddf ._ecge .String ();};return _e .Sprintf ("\u0046O\u004e\u0054\u0046\u0049\u004c\u0045\u007b\u0025\u0023\u0071\u0020e\u006e\u0063\u006f\u0064\u0065\u0072\u003d\u0025\u0073\u007d",_geddf ._cfgbe ,_defb );};
// ToPdfObject returns the PDF representation of the page resources.
func (_cefb *PdfPageResources )ToPdfObject ()_bcb .PdfObject {_ffddf :=_cefb ._daggd ;_ffddf .SetIfNotNil ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e",_cefb .ExtGState );if _cefb ._dcga !=nil {_cefb .ColorSpace =_cefb ._dcga .ToPdfObject ();};_ffddf .SetIfNotNil ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065",_cefb .ColorSpace );_ffddf .SetIfNotNil ("\u0050a\u0074\u0074\u0065\u0072\u006e",_cefb .Pattern );_ffddf .SetIfNotNil ("\u0053h\u0061\u0064\u0069\u006e\u0067",_cefb .Shading );_ffddf .SetIfNotNil ("\u0058O\u0062\u006a\u0065\u0063\u0074",_cefb .XObject );_ffddf .SetIfNotNil ("\u0046\u006f\u006e\u0074",_cefb .Font );_ffddf .SetIfNotNil ("\u0050r\u006f\u0063\u0053\u0065\u0074",_cefb .ProcSet );_ffddf .SetIfNotNil ("\u0050\u0072\u006f\u0070\u0065\u0072\u0074\u0069\u0065\u0073",_cefb .Properties );return _ffddf ;};func _beaf ()string {_dgagfb .Lock ();defer _dgagfb .Unlock ();return _gedgd };
// NewPdfWriter initializes a new PdfWriter.
func NewPdfWriter ()PdfWriter {_fcccb :=PdfWriter {};_fcccb ._affdb =map[_bcb .PdfObject ]struct{}{};_fcccb ._adbc =[]_bcb .PdfObject {};_fcccb ._aabce =map[_bcb .PdfObject ][]*_bcb .PdfObjectDictionary {};_fcccb ._fddc =map[_bcb .PdfObject ]struct{}{};_fcccb ._fcebf =1;_fcccb ._cacaf =3;_ccbegc :=_bcb .MakeDict ();_efdg :=[]struct{_faabfb _bcb .PdfObjectName ;_gbdd string ;}{{"\u0050\u0072\u006f\u0064\u0075\u0063\u0065\u0072",_fbcgf ()},{"\u0043r\u0065\u0061\u0074\u006f\u0072",_affcd ()},{"\u0041\u0075\u0074\u0068\u006f\u0072",_gdebef ()},{"\u0053u\u0062\u006a\u0065\u0063\u0074",_beaf ()},{"\u0054\u0069\u0074l\u0065",_caafe ()},{"\u004b\u0065\u0079\u0077\u006f\u0072\u0064\u0073",_dfaef ()}};for _ ,_dadag :=range _efdg {if _dadag ._gbdd !=""{_ccbegc .Set (_dadag ._faabfb ,_bcb .MakeString (_dadag ._gbdd ));};};if _cgbf :=_fbgd ();!_cgbf .IsZero (){if _ebcag ,_fede :=NewPdfDateFromTime (_cgbf );_fede ==nil {_ccbegc .Set ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065",_ebcag .ToPdfObject ());};};if _aecge :=_fdcgg ();!_aecge .IsZero (){if _gbadaf ,_cggbd :=NewPdfDateFromTime (_aecge );_cggbd ==nil {_ccbegc .Set ("\u004do\u0064\u0044\u0061\u0074\u0065",_gbadaf .ToPdfObject ());};};_bdge :=_bcb .PdfIndirectObject {};_bdge .PdfObject =_ccbegc ;_fcccb ._gbfff =&_bdge ;_fcccb .addObject (&_bdge );_bbed :=_bcb .PdfIndirectObject {};_agbbdb :=_bcb .MakeDict ();_agbbdb .Set ("\u0054\u0079\u0070\u0065",_bcb .MakeName ("\u0043a\u0074\u0061\u006c\u006f\u0067"));_bbed .PdfObject =_agbbdb ;_fcccb ._edecd =&_bbed ;_fcccb .addObject (_fcccb ._edecd );_eeac :=_bcb .PdfIndirectObject {};_bafddg :=_bcb .MakeDict ();_bafddg .Set ("\u0054\u0079\u0070\u0065",_bcb .MakeName ("\u0050\u0061\u0067e\u0073"));_ebafb :=_bcb .PdfObjectArray {};_bafddg .Set ("\u004b\u0069\u0064\u0073",&_ebafb );_bafddg .Set ("\u0043\u006f\u0075n\u0074",_bcb .MakeInteger (0));_eeac .PdfObject =_bafddg ;_fcccb ._gbff =&_eeac ;_fcccb ._ddcfa =map[_bcb .PdfObject ]struct{}{};_fcccb .addObject (_fcccb ._gbff );_agbbdb .Set ("\u0050\u0061\u0067e\u0073",&_eeac );_fcccb ._ggfec =_agbbdb ;_cga .Log .Trace ("\u0043\u0061\u0074\u0061\u006c\u006f\u0067\u0020\u0025\u0073",_bbed );return _fcccb ;};
// Encoder returns the font's text encoder.
func (_fbbdg pdfCIDFontType2 )Encoder ()_ddd .TextEncoder {return _fbbdg ._acgdf };func (_cbcd *DSS )add (_badb *[]*_bcb .PdfObjectStream ,_gebd map[string ]*_bcb .PdfObjectStream ,_eecfd [][]byte )([]*_bcb .PdfObjectStream ,error ){_aebee :=make ([]*_bcb .PdfObjectStream ,0,len (_eecfd ));for _ ,_ffgc :=range _eecfd {_gfff ,_dfcde :=_ebeed (_ffgc );if _dfcde !=nil {return nil ,_dfcde ;};_afdd ,_edfec :=_gebd [string (_gfff )];if !_edfec {_afdd ,_dfcde =_bcb .MakeStream (_ffgc ,_bcb .NewRawEncoder ());if _dfcde !=nil {return nil ,_dfcde ;};_gebd [string (_gfff )]=_afdd ;*_badb =append (*_badb ,_afdd );};_aebee =append (_aebee ,_afdd );};return _aebee ,nil ;};
// GetContext returns a reference to the subpattern entry: either PdfTilingPattern or PdfShadingPattern.
func (_ggcg *PdfPattern )GetContext ()PdfModel {return _ggcg ._adccc };
// GetOutlineTree returns the outline tree.
func (_cagee *PdfReader )GetOutlineTree ()*PdfOutlineTreeNode {return _cagee ._gbged };
// GetAction returns the PDF action for the annotation link.
func (_efcd *PdfAnnotationLink )GetAction ()(*PdfAction ,error ){if _efcd ._bda !=nil {return _efcd ._bda ,nil ;};if _efcd .A ==nil {return nil ,nil ;};if _efcd ._gca ==nil {return nil ,nil ;};_fee ,_cgfc :=_efcd ._gca .loadAction (_efcd .A );if _cgfc !=nil {return nil ,_cgfc ;};_efcd ._bda =_fee ;return _efcd ._bda ,nil ;};func (_eaeg fontCommon )asPdfObjectDictionary (_feaeg string )*_bcb .PdfObjectDictionary {if _feaeg !=""&&_eaeg ._abgg !=""&&_feaeg !=_eaeg ._abgg {_cga .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",_feaeg ,_eaeg );}else if _feaeg ==""&&_eaeg ._abgg ==""{_cga .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",_eaeg );}else if _eaeg ._abgg ==""{_eaeg ._abgg =_feaeg ;};_agdcg :=_bcb .MakeDict ();_agdcg .Set ("\u0054\u0079\u0070\u0065",_bcb .MakeName ("\u0046\u006f\u006e\u0074"));_agdcg .Set ("\u0042\u0061\u0073\u0065\u0046\u006f\u006e\u0074",_bcb .MakeName (_eaeg ._daeb ));_agdcg .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_bcb .MakeName (_eaeg ._abgg ));if _eaeg ._ecaed !=nil {_agdcg .Set ("\u0046\u006f\u006e\u0074\u0044\u0065\u0073\u0063\u0072i\u0070\u0074\u006f\u0072",_eaeg ._ecaed .ToPdfObject ());};if _eaeg ._ebfc !=nil {_agdcg .Set ("\u0054o\u0055\u006e\u0069\u0063\u006f\u0064e",_eaeg ._ebfc );}else if _eaeg ._ecbe !=nil {_fedd ,_cbafb :=_eaeg ._ecbe .Stream ();if _cbafb !=nil {_cga .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",_cbafb );}else {_agdcg .Set ("\u0054o\u0055\u006e\u0069\u0063\u006f\u0064e",_fedd );};};return _agdcg ;};
// C returns the value of the cyan component of the color.
func (_deae *PdfColorDeviceCMYK )C ()float64 {return _deae [0]};
// ToPdfObject implements interface PdfModel.
func (_gcc *PdfActionNamed )ToPdfObject ()_bcb .PdfObject {_gcc .PdfAction .ToPdfObject ();_edf :=_gcc ._dce ;_cb :=_edf .PdfObject .(*_bcb .PdfObjectDictionary );_cb .SetIfNotNil ("\u0053",_bcb .MakeName (string (ActionTypeNamed )));_cb .SetIfNotNil ("\u004e",_gcc .N );return _edf ;};
// SetFontByName sets the font specified by keyName to the given object.
func (_cffbc *PdfPageResources )SetFontByName (keyName _bcb .PdfObjectName ,obj _bcb .PdfObject )error {if _cffbc .Font ==nil {_cffbc .Font =_bcb .MakeDict ();};_fgfee ,_fgdce :=_bcb .TraceToDirectObject (_cffbc .Font ).(*_bcb .PdfObjectDictionary );if !_fgdce {_cga .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",_bcb .TraceToDirectObject (_cffbc .Font ));return _bcb .ErrTypeError ;};_fgfee .Set (keyName ,obj );return nil ;};func _cfba (_abcce _bcb .PdfObject ,_dcff *fontCommon )(*_dc .CMap ,error ){_cbdg ,_gaccf :=_bcb .GetStream (_abcce );if !_gaccf {_cga .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",_abcce );return nil ,_bcb .ErrTypeError ;};_cfeb ,_ggbga :=_bcb .DecodeStream (_cbdg );if _ggbga !=nil {return nil ,_ggbga ;};_fcfcg ,_ggbga :=_dc .LoadCmapFromData (_cfeb ,!_dcff .isCIDFont ());if _ggbga !=nil {_cga .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",_cbdg .ObjectNumber ,_ggbga );};return _fcfcg ,_ggbga ;};func _bgcc (_ggcb string )(map[_ddd .CharCode ]_ddd .GlyphName ,error ){_eegdd :=_gc .Split (_ggcb ,"\u000a");_edffd :=make (map[_ddd .CharCode ]_ddd .GlyphName );for _ ,_cefgb :=range _eegdd {_dgadb :=_cdfce .FindStringSubmatch (_cefgb );if _dgadb ==nil {continue ;};_efdd ,_gcafc :=_dgadb [1],_dgadb [2];_fafaf ,_gegbe :=_ea .Atoi (_efdd );if _gegbe !=nil {_cga .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",_cefgb );return nil ,_bcb .ErrTypeError ;};_edffd [_ddd .CharCode (_fafaf )]=_ddd .GlyphName (_gcafc );};_cga .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",_edffd );return _edffd ,nil ;};
// SetVersion sets the PDF version of the output file.
func (_eafd *PdfWriter )SetVersion (majorVersion ,minorVersion int ){_eafd ._fcebf =majorVersion ;_eafd ._cacaf =minorVersion ;};func _edebg (_gcada StdFontName )(pdfFontSimple ,error ){_cgfg ,_egfd :=_acc .NewStdFontByName (_gcada );if !_egfd {return pdfFontSimple {},ErrFontNotSupported ;};_fgfd :=_egdb (_cgfg );return _fgfd ,nil ;};
// ToPdfOutlineItem returns a low level PdfOutlineItem object,
// based on the current instance.
func (_degfe *OutlineItem )ToPdfOutlineItem ()(*PdfOutlineItem ,int64 ){_ededb :=NewPdfOutlineItem ();_ededb .Title =_bcb .MakeEncodedString (_degfe .Title ,true );_ededb .Dest =_degfe .Dest .ToPdfObject ();var _deac []*PdfOutlineItem ;var _dgffe int64 ;var _aggceb *PdfOutlineItem ;for _ ,_dbaee :=range _degfe .Entries {_bdda ,_bbffc :=_dbaee .ToPdfOutlineItem ();_bdda .Parent =&_ededb .PdfOutlineTreeNode ;if _aggceb !=nil {_aggceb .Next =&_bdda .PdfOutlineTreeNode ;_bdda .Prev =&_aggceb .PdfOutlineTreeNode ;};_deac =append (_deac ,_bdda );_dgffe +=_bbffc ;_aggceb =_bdda ;};_fgcgce :=len (_deac );_dgffe +=int64 (_fgcgce );if _fgcgce > 0{_ededb .First =&_deac [0].PdfOutlineTreeNode ;_ededb .Last =&_deac [_fgcgce -1].PdfOutlineTreeNode ;_ededb .Count =&_dgffe ;};return _ededb ,_dgffe ;};
// PdfActionTrans represents a trans action.
type PdfActionTrans struct{*PdfAction ;Trans _bcb .PdfObject ;};
// HasFontByName checks if has font resource by name.
func (_gbeda *PdfPage )HasFontByName (name _bcb .PdfObjectName )bool {_dfece ,_eeaba :=_gbeda .Resources .Font .(*_bcb .PdfObjectDictionary );if !_eeaba {return false ;};if _cggac :=_dfece .Get (name );_cggac !=nil {return true ;};return false ;};
// IsPush returns true if the button field represents a push button, false otherwise.
func (_bebdb *PdfFieldButton )IsPush ()bool {return _bebdb .GetType ()==ButtonTypePush };
// 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 (_dbga *PdfColorspaceSpecialPattern )ColorFromPdfObjects (objects []_bcb .PdfObject )(PdfColor ,error ){if len (objects )< 1{return nil ,_ae .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");};_gacc :=&PdfColorPattern {};_egb ,_ebaf :=objects [len (objects )-1].(*_bcb .PdfObjectName );if !_ebaf {_cga .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 ;};_gacc .PatternName =*_egb ;if len (objects )> 1{_ggged :=objects [0:len (objects )-1];if _dbga .UnderlyingCS ==nil {_cga .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 ,_ae .New ("\u0075n\u0064\u0065\u0072\u006cy\u0069\u006e\u0067\u0020\u0043S\u0020n\u006ft\u0020\u0064\u0065\u0066\u0069\u006e\u0065d");};_fage ,_ceadc :=_dbga .UnderlyingCS .ColorFromPdfObjects (_ggged );if _ceadc !=nil {_cga .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",_ceadc );return nil ,_ceadc ;};_gacc .Color =_fage ;};return _gacc ,nil ;};
// NewPdfColorspaceFromPdfObject loads a PdfColorspace from a PdfObject. Returns an error if there is
// a failure in loading.
func NewPdfColorspaceFromPdfObject (obj _bcb .PdfObject )(PdfColorspace ,error ){var _gdg *_bcb .PdfIndirectObject ;var _bdbc *_bcb .PdfObjectName ;var _ebaa *_bcb .PdfObjectArray ;if _ffb ,_aeeb :=obj .(*_bcb .PdfIndirectObject );_aeeb {_gdg =_ffb ;};obj =_bcb .TraceToDirectObject (obj );switch _bagd :=obj .(type ){case *_bcb .PdfObjectArray :_ebaa =_bagd ;case *_bcb .PdfObjectName :_bdbc =_bagd ;};if _bdbc !=nil {switch *_bdbc {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:_cga .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",*_bdbc );return nil ,_aadab ;};};if _ebaa !=nil &&_ebaa .Len ()> 0{var _fbff _bcb .PdfObject =_gdg ;if _gdg ==nil {_fbff =_ebaa ;};if _eacf ,_gade :=_bcb .GetName (_ebaa .Get (0));_gade {switch _eacf .String (){case "\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079":if _ebaa .Len ()==1{return NewPdfColorspaceDeviceGray (),nil ;};case "\u0044e\u0076\u0069\u0063\u0065\u0052\u0047B":if _ebaa .Len ()==1{return NewPdfColorspaceDeviceRGB (),nil ;};case "\u0044\u0065\u0076\u0069\u0063\u0065\u0043\u004d\u0059\u004b":if _ebaa .Len ()==1{return NewPdfColorspaceDeviceCMYK (),nil ;};case "\u0043a\u006c\u0047\u0072\u0061\u0079":return _cccfe (_fbff );case "\u0043\u0061\u006c\u0052\u0047\u0042":return _acbg (_fbff );case "\u004c\u0061\u0062":return _bgdd (_fbff );case "\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064":return _eccaa (_fbff );case "\u0050a\u0074\u0074\u0065\u0072\u006e":return _abae (_fbff );case "\u0049n\u0064\u0065\u0078\u0065\u0064":return _fbdg (_fbff );case "\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e":return _dbcd (_fbff );case "\u0044e\u0076\u0069\u0063\u0065\u004e":return _aga (_fbff );default:_cga .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",*_eacf );};};};_cga .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 ;};
// SetPdfKeywords sets the Keywords attribute of the output PDF.
func SetPdfKeywords (keywords string ){_dgagfb .Lock ();defer _dgagfb .Unlock ();_eaggce =keywords };func (_fcdg *PdfReader )newPdfAnnotationSquigglyFromDict (_cabf *_bcb .PdfObjectDictionary )(*PdfAnnotationSquiggly ,error ){_dgfd :=PdfAnnotationSquiggly {};_fgac ,_fad :=_fcdg .newPdfAnnotationMarkupFromDict (_cabf );if _fad !=nil {return nil ,_fad ;};_dgfd .PdfAnnotationMarkup =_fgac ;_dgfd .QuadPoints =_cabf .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");return &_dgfd ,nil ;};
// AddExtGState add External Graphics State (GState). The gsDict can be specified
// either directly as a dictionary or an indirect object containing a dictionary.
func (_fefbg *PdfPageResources )AddExtGState (gsName _bcb .PdfObjectName ,gsDict _bcb .PdfObject )error {if _fefbg .ExtGState ==nil {_fefbg .ExtGState =_bcb .MakeDict ();};_gbcc :=_fefbg .ExtGState ;_dedg ,_gdagf :=_bcb .TraceToDirectObject (_gbcc ).(*_bcb .PdfObjectDictionary );if !_gdagf {_cga .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",_gbcc ,_bcb .TraceToDirectObject (_gbcc ));return _bcb .ErrTypeError ;};_dedg .Set (gsName ,gsDict );return nil ;};
// GetNumComponents returns the number of color components (3 for RGB).
func (_gfcb *PdfColorDeviceRGB )GetNumComponents ()int {return 3};
// SetColorspaceByName adds the provided colorspace to the page resources.
func (_eageea *PdfPageResources )SetColorspaceByName (keyName _bcb .PdfObjectName ,cs PdfColorspace )error {_eaegd ,_abcd :=_eageea .GetColorspaces ();if _abcd !=nil {_cga .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",_abcd );return _abcd ;};if _eaegd ==nil {_eaegd =NewPdfPageResourcesColorspaces ();_eageea .SetColorSpace (_eaegd );};_eaegd .Set (keyName ,cs );return nil ;};
// GetParamsDict returns *core.PdfObjectDictionary with a set of basic image parameters.
func (_cacc *Image )GetParamsDict ()*_bcb .PdfObjectDictionary {_addcb :=_bcb .MakeDict ();_addcb .Set ("\u0057\u0069\u0064t\u0068",_bcb .MakeInteger (_cacc .Width ));_addcb .Set ("\u0048\u0065\u0069\u0067\u0068\u0074",_bcb .MakeInteger (_cacc .Height ));_addcb .Set ("\u0043o\u006co\u0072\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074\u0073",_bcb .MakeInteger (int64 (_cacc .ColorComponents )));_addcb .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_bcb .MakeInteger (_cacc .BitsPerComponent ));return _addcb ;};
// DecodeArray returns the range of color component values in CalGray colorspace.
func (_beeea *PdfColorspaceCalGray )DecodeArray ()[]float64 {return []float64 {0.0,1.0}};
// NewPdfActionGoTo3DView returns a new "goTo3DView" action.
func NewPdfActionGoTo3DView ()*PdfActionGoTo3DView {_gac :=NewPdfAction ();_aae :=&PdfActionGoTo3DView {};_aae .PdfAction =_gac ;_gac .SetContext (_aae );return _aae ;};func (_agga *PdfColorspaceDeviceGray )String ()string {return "\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079";};func (_gfcga *pdfFontType0 )baseFields ()*fontCommon {return &_gfcga .fontCommon };func _fbcgc (_egbg *_bcb .PdfObjectDictionary )(*PdfShadingPattern ,error ){_ebffa :=&PdfShadingPattern {};_aeff :=_egbg .Get ("\u0053h\u0061\u0064\u0069\u006e\u0067");if _aeff ==nil {_cga .Log .Debug ("\u0053h\u0061d\u0069\u006e\u0067\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ;};_adafd ,_cgeae :=_cdgdf (_aeff );if _cgeae !=nil {_cga .Log .Debug ("\u0045r\u0072\u006f\u0072\u0020l\u006f\u0061\u0064\u0069\u006eg\u0020s\u0068a\u0064\u0069\u006e\u0067\u003a\u0020\u0025v",_cgeae );return nil ,_cgeae ;};_ebffa .Shading =_adafd ;if _gdbbfc :=_egbg .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");_gdbbfc !=nil {_cedfag ,_cdadg :=_gdbbfc .(*_bcb .PdfObjectArray );if !_cdadg {_cga .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",_gdbbfc );return nil ,_bcb .ErrTypeError ;};_ebffa .Matrix =_cedfag ;};if _ebeag :=_egbg .Get ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e");_ebeag !=nil {_ebffa .ExtGState =_ebeag ;};return _ebffa ,nil ;};
// ColorFromFloats returns a new PdfColor based on the input slice of color
// components. The slice should contain three elements representing the
// A, B and C components of the color. The values of the elements should be
// between 0 and 1.
func (_cceaa *PdfColorspaceCalRGB )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=3{return nil ,_ae .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_gbgb :=vals [0];if _gbgb < 0.0||_gbgb > 1.0{return nil ,_ae .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_agfg :=vals [1];if _agfg < 0.0||_agfg > 1.0{return nil ,_ae .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_fbda :=vals [2];if _fbda < 0.0||_fbda > 1.0{return nil ,_ae .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_ddba :=NewPdfColorCalRGB (_gbgb ,_agfg ,_fbda );return _ddba ,nil ;};func _ffbd (_bdgbd string )map[string ]string {_cgab :=_dbcc .Split (_bdgbd ,-1);_ebaac :=map[string ]string {};for _ ,_bbgge :=range _cgab {_adbgc :=_gbeec .FindStringSubmatch (_bbgge );if _adbgc ==nil {continue ;};_beab ,_afbgf :=_adbgc [1],_adbgc [2];_ebaac [_beab ]=_afbgf ;};return _ebaac ;};func _gcee (_cdgcc *PdfAnnotation )(*XObjectForm ,*PdfRectangle ,error ){_cefc ,_cbaf :=_bcb .GetDict (_cdgcc .AP );if !_cbaf {return nil ,nil ,_ae .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 _cefc ==nil {return nil ,nil ,nil ;};_dcbec ,_cbaf :=_bcb .GetArray (_cdgcc .Rect );if !_cbaf ||_dcbec .Len ()!=4{return nil ,nil ,_ae .New ("\u0072\u0065\u0063t\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064");};_gffac ,_eddb :=NewPdfRectangle (*_dcbec );if _eddb !=nil {return nil ,nil ,_eddb ;};_bbbaa :=_bcb .TraceToDirectObject (_cefc .Get ("\u004e"));switch _ffcae :=_bbbaa .(type ){case *_bcb .PdfObjectStream :_dacd :=_ffcae ;_abcb ,_fbee :=NewXObjectFormFromStream (_dacd );return _abcb ,_gffac ,_fbee ;case *_bcb .PdfObjectDictionary :_dadf :=_ffcae ;_eebaf ,_cgegf :=_bcb .GetName (_cdgcc .AS );if !_cgegf {return nil ,nil ,nil ;};if _dadf .Get (*_eebaf )==nil {_cga .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 ;};_gbgdc ,_cgegf :=_bcb .GetStream (_dadf .Get (*_eebaf ));if !_cgegf {_cga .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",_eebaf );return nil ,nil ,_ae .New ("\u0073\u0074\u0072\u0065\u0061\u006d\u0020\u006d\u0069s\u0073\u0069\u006e\u0067");};_geca ,_dafae :=NewXObjectFormFromStream (_gbgdc );return _geca ,_gffac ,_dafae ;};_cga .Log .Debug ("\u0049\u006e\u0076\u0061li\u0064\u0020\u0074\u0079\u0070\u0065\u0020\u0066\u006f\u0072\u0020\u004e\u003a\u0020%\u0054",_bbbaa );return nil ,nil ,_ae .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};
// SetPageLabels sets the PageLabels entry in the PDF catalog.
// See section 12.4.2 "Page Labels" (p. 382 PDF32000_2008).
func (_gafeg *PdfWriter )SetPageLabels (pageLabels _bcb .PdfObject )error {if pageLabels ==nil {return nil ;};_cga .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");_gafeg ._ggfec .Set ("\u0050\u0061\u0067\u0065\u004c\u0061\u0062\u0065\u006c\u0073",pageLabels );return _gafeg .addObjects (pageLabels );};
// SetForms sets the Acroform for a PDF file.
func (_befae *PdfWriter )SetForms (form *PdfAcroForm )error {_befae ._gbbc =form ;return nil };func (_decfc *pdfFontType0 )getFontDescriptor ()*PdfFontDescriptor {if _decfc ._ecaed ==nil &&_decfc .DescendantFont !=nil {return _decfc .DescendantFont .FontDescriptor ();};return _decfc ._ecaed ;};
// GetOCProperties returns the optional content properties PdfObject.
func (_bgfca *PdfReader )GetOCProperties ()(_bcb .PdfObject ,error ){_egefd :=_bgfca ._fccd ;_cagf :=_egefd .Get ("\u004f\u0043\u0050r\u006f\u0070\u0065\u0072\u0074\u0069\u0065\u0073");_cagf =_bcb .ResolveReference (_cagf );if !_bgfca ._abdcg {_gefdb :=_bgfca .traverseObjectData (_cagf );if _gefdb !=nil {return nil ,_gefdb ;};};return _cagf ,nil ;};
// SetPatternByName sets a pattern resource specified by keyName.
func (_eefd *PdfPageResources )SetPatternByName (keyName _bcb .PdfObjectName ,pattern _bcb .PdfObject )error {if _eefd .Pattern ==nil {_eefd .Pattern =_bcb .MakeDict ();};_fabf ,_bbbef :=_eefd .Pattern .(*_bcb .PdfObjectDictionary );if !_bbbef {return _bcb .ErrTypeError ;};_fabf .Set (keyName ,pattern );return nil ;};
// ToPdfObject returns the PdfFontDescriptor as a PDF dictionary inside an indirect object.
func (_dddb *PdfFontDescriptor )ToPdfObject ()_bcb .PdfObject {_edfbf :=_bcb .MakeDict ();if _dddb ._aaed ==nil {_dddb ._aaed =&_bcb .PdfIndirectObject {};};_dddb ._aaed .PdfObject =_edfbf ;_edfbf .Set ("\u0054\u0079\u0070\u0065",_bcb .MakeName ("\u0046\u006f\u006e\u0074\u0044\u0065\u0073\u0063\u0072i\u0070\u0074\u006f\u0072"));if _dddb .FontName !=nil {_edfbf .Set ("\u0046\u006f\u006e\u0074\u004e\u0061\u006d\u0065",_dddb .FontName );};if _dddb .FontFamily !=nil {_edfbf .Set ("\u0046\u006f\u006e\u0074\u0046\u0061\u006d\u0069\u006c\u0079",_dddb .FontFamily );};if _dddb .FontStretch !=nil {_edfbf .Set ("F\u006f\u006e\u0074\u0053\u0074\u0072\u0065\u0074\u0063\u0068",_dddb .FontStretch );};if _dddb .FontWeight !=nil {_edfbf .Set ("\u0046\u006f\u006e\u0074\u0057\u0065\u0069\u0067\u0068\u0074",_dddb .FontWeight );};if _dddb .Flags !=nil {_edfbf .Set ("\u0046\u006c\u0061g\u0073",_dddb .Flags );};if _dddb .FontBBox !=nil {_edfbf .Set ("\u0046\u006f\u006e\u0074\u0042\u0042\u006f\u0078",_dddb .FontBBox );};if _dddb .ItalicAngle !=nil {_edfbf .Set ("I\u0074\u0061\u006c\u0069\u0063\u0041\u006e\u0067\u006c\u0065",_dddb .ItalicAngle );};if _dddb .Ascent !=nil {_edfbf .Set ("\u0041\u0073\u0063\u0065\u006e\u0074",_dddb .Ascent );};if _dddb .Descent !=nil {_edfbf .Set ("\u0044e\u0073\u0063\u0065\u006e\u0074",_dddb .Descent );};if _dddb .Leading !=nil {_edfbf .Set ("\u004ce\u0061\u0064\u0069\u006e\u0067",_dddb .Leading );};if _dddb .CapHeight !=nil {_edfbf .Set ("\u0043a\u0070\u0048\u0065\u0069\u0067\u0068t",_dddb .CapHeight );};if _dddb .XHeight !=nil {_edfbf .Set ("\u0058H\u0065\u0069\u0067\u0068\u0074",_dddb .XHeight );};if _dddb .StemV !=nil {_edfbf .Set ("\u0053\u0074\u0065m\u0056",_dddb .StemV );};if _dddb .StemH !=nil {_edfbf .Set ("\u0053\u0074\u0065m\u0048",_dddb .StemH );};if _dddb .AvgWidth !=nil {_edfbf .Set ("\u0041\u0076\u0067\u0057\u0069\u0064\u0074\u0068",_dddb .AvgWidth );};if _dddb .MaxWidth !=nil {_edfbf .Set ("\u004d\u0061\u0078\u0057\u0069\u0064\u0074\u0068",_dddb .MaxWidth );};if _dddb .MissingWidth !=nil {_edfbf .Set ("\u004d\u0069\u0073s\u0069\u006e\u0067\u0057\u0069\u0064\u0074\u0068",_dddb .MissingWidth );};if _dddb .FontFile !=nil {_edfbf .Set ("\u0046\u006f\u006e\u0074\u0046\u0069\u006c\u0065",_dddb .FontFile );};if _dddb .FontFile2 !=nil {_edfbf .Set ("\u0046o\u006e\u0074\u0046\u0069\u006c\u00652",_dddb .FontFile2 );};if _dddb .FontFile3 !=nil {_edfbf .Set ("\u0046o\u006e\u0074\u0046\u0069\u006c\u00653",_dddb .FontFile3 );};if _dddb .CharSet !=nil {_edfbf .Set ("\u0043h\u0061\u0072\u0053\u0065\u0074",_dddb .CharSet );};if _dddb .Style !=nil {_edfbf .Set ("\u0046\u006f\u006e\u0074\u004e\u0061\u006d\u0065",_dddb .FontName );};if _dddb .Lang !=nil {_edfbf .Set ("\u004c\u0061\u006e\u0067",_dddb .Lang );};if _dddb .FD !=nil {_edfbf .Set ("\u0046\u0044",_dddb .FD );};if _dddb .CIDSet !=nil {_edfbf .Set ("\u0043\u0049\u0044\u0053\u0065\u0074",_dddb .CIDSet );};return _dddb ._aaed ;};
// 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 (_cdfe DefaultImageHandler )Compress (input *Image ,quality int64 )(*Image ,error ){return input ,nil ;};func (_acgg *PdfReader )newPdfAnnotationFreeTextFromDict (_gfbe *_bcb .PdfObjectDictionary )(*PdfAnnotationFreeText ,error ){_bge :=PdfAnnotationFreeText {};_gfaa ,_fbg :=_acgg .newPdfAnnotationMarkupFromDict (_gfbe );if _fbg !=nil {return nil ,_fbg ;};_bge .PdfAnnotationMarkup =_gfaa ;_bge .DA =_gfbe .Get ("\u0044\u0041");_bge .Q =_gfbe .Get ("\u0051");_bge .RC =_gfbe .Get ("\u0052\u0043");_bge .DS =_gfbe .Get ("\u0044\u0053");_bge .CL =_gfbe .Get ("\u0043\u004c");_bge .IT =_gfbe .Get ("\u0049\u0054");_bge .BE =_gfbe .Get ("\u0042\u0045");_bge .RD =_gfbe .Get ("\u0052\u0044");_bge .BS =_gfbe .Get ("\u0042\u0053");_bge .LE =_gfbe .Get ("\u004c\u0045");return &_bge ,nil ;};func (_edfbeg *PdfWriter )writeObject (_cbgfa int ,_aced _bcb .PdfObject ){_cga .Log .Trace ("\u0057\u0072\u0069\u0074\u0065\u0020\u006f\u0062\u006a \u0023\u0025\u0064\u000a",_cbgfa );if _caeed ,_dgcbda :=_aced .(*_bcb .PdfIndirectObject );_dgcbda {_edfbeg ._cddbc [_cbgfa ]=crossReference {Type :1,Offset :_edfbeg ._cdgbg ,Generation :_caeed .GenerationNumber };_dbfee :=_e .Sprintf ("\u0025d\u0020\u0030\u0020\u006f\u0062\u006a\n",_cbgfa );if _fbab ,_edcda :=_caeed .PdfObject .(*pdfSignDictionary );_edcda {_fbab ._afgeg =_edfbeg ._cdgbg +int64 (len (_dbfee ));};if _caeed .PdfObject ==nil {_cga .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");_caeed .PdfObject =_bcb .MakeNull ();};_dbfee +=_caeed .PdfObject .WriteString ();_dbfee +="\u000a\u0065\u006e\u0064\u006f\u0062\u006a\u000a";_edfbeg .writeString (_dbfee );return ;};if _ccbea ,_aedcd :=_aced .(*_bcb .PdfObjectStream );_aedcd {_edfbeg ._cddbc [_cbgfa ]=crossReference {Type :1,Offset :_edfbeg ._cdgbg ,Generation :_ccbea .GenerationNumber };_bbbbea :=_e .Sprintf ("\u0025d\u0020\u0030\u0020\u006f\u0062\u006a\n",_cbgfa );_bbbbea +=_ccbea .PdfObjectDictionary .WriteString ();_bbbbea +="\u000a\u0073\u0074\u0072\u0065\u0061\u006d\u000a";_edfbeg .writeString (_bbbbea );_edfbeg .writeBytes (_ccbea .Stream );_edfbeg .writeString ("\u000ae\u006ed\u0073\u0074\u0072\u0065\u0061m\u000a\u0065n\u0064\u006f\u0062\u006a\u000a");return ;};if _gfegd ,_aegfa :=_aced .(*_bcb .PdfObjectStreams );_aegfa {_edfbeg ._cddbc [_cbgfa ]=crossReference {Type :1,Offset :_edfbeg ._cdgbg ,Generation :_gfegd .GenerationNumber };_geef :=_e .Sprintf ("\u0025d\u0020\u0030\u0020\u006f\u0062\u006a\n",_cbgfa );var _gbaa []string ;var _defff string ;var _aacef int64 ;for _dgace ,_ddacg :=range _gfegd .Elements (){_gbaae ,_acbfd :=_ddacg .(*_bcb .PdfIndirectObject );if !_acbfd {_cga .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",_cbgfa ,_ddacg );continue ;};_cadae :=_gbaae .PdfObject .WriteString ()+"\u0020";_defff =_defff +_cadae ;_gbaa =append (_gbaa ,_e .Sprintf ("\u0025\u0064\u0020%\u0064",_gbaae .ObjectNumber ,_aacef ));_edfbeg ._cddbc [int (_gbaae .ObjectNumber )]=crossReference {Type :2,ObjectNumber :_cbgfa ,Index :_dgace };_aacef =_aacef +int64 (len ([]byte (_cadae )));};_fdgf :=_gc .Join (_gbaa ,"\u0020")+"\u0020";_dedef :=_bcb .NewFlateEncoder ();_ecffd :=_dedef .MakeStreamDict ();_ecffd .Set (_bcb .PdfObjectName ("\u0054\u0079\u0070\u0065"),_bcb .MakeName ("\u004f\u0062\u006a\u0053\u0074\u006d"));_gcec :=int64 (_gfegd .Len ());_ecffd .Set (_bcb .PdfObjectName ("\u004e"),_bcb .MakeInteger (_gcec ));_fffac :=int64 (len (_fdgf ));_ecffd .Set (_bcb .PdfObjectName ("\u0046\u0069\u0072s\u0074"),_bcb .MakeInteger (_fffac ));_bebfge ,_ :=_dedef .EncodeBytes ([]byte (_fdgf +_defff ));_agef :=int64 (len (_bebfge ));_ecffd .Set (_bcb .PdfObjectName ("\u004c\u0065\u006e\u0067\u0074\u0068"),_bcb .MakeInteger (_agef ));_geef +=_ecffd .WriteString ();_geef +="\u000a\u0073\u0074\u0072\u0065\u0061\u006d\u000a";_edfbeg .writeString (_geef );_edfbeg .writeBytes (_bebfge );_edfbeg .writeString ("\u000ae\u006ed\u0073\u0074\u0072\u0065\u0061m\u000a\u0065n\u0064\u006f\u0062\u006a\u000a");return ;};_edfbeg .writeString (_aced .WriteString ());};func (_acggb *PdfReader )newPdfOutlineItemFromIndirectObject (_dgga *_bcb .PdfIndirectObject )(*PdfOutlineItem ,error ){_eaaba ,_fbcdg :=_dgga .PdfObject .(*_bcb .PdfObjectDictionary );if !_fbcdg {return nil ,_e .Errorf ("\u006f\u0075\u0074l\u0069\u006e\u0065\u0020o\u0062\u006a\u0065\u0063\u0074\u0020\u006eo\u0074\u0020\u0061\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079");};_gafd :=NewPdfOutlineItem ();_gdfff :=_eaaba .Get ("\u0054\u0069\u0074l\u0065");if _gdfff ==nil {return nil ,_e .Errorf ("\u006d\u0069\u0073s\u0069\u006e\u0067\u0020\u0054\u0069\u0074\u006c\u0065\u0020\u0066\u0072\u006f\u006d\u0020\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0020\u0049\u0074\u0065\u006d\u0020\u0028r\u0065\u0071\u0075\u0069\u0072\u0065\u0064\u0029");};_fbbb ,_deadb :=_bcb .GetString (_gdfff );if !_deadb {return nil ,_e .Errorf ("\u0074\u0069\u0074le\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0073\u0074\u0072\u0069\u006e\u0067\u0020\u0028\u0025\u0054\u0029",_gdfff );};_gafd .Title =_fbbb ;if _ecagf :=_eaaba .Get ("\u0043\u006f\u0075n\u0074");_ecagf !=nil {_bgbc ,_fcbdb :=_ecagf .(*_bcb .PdfObjectInteger );if !_fcbdb {return nil ,_e .Errorf ("\u0063o\u0075\u006e\u0074\u0020n\u006f\u0074\u0020\u0061\u006e \u0069n\u0074e\u0067\u0065\u0072\u0020\u0028\u0025\u0054)",_ecagf );};_bdab :=int64 (*_bgbc );_gafd .Count =&_bdab ;};if _bafdf :=_eaaba .Get ("\u0044\u0065\u0073\u0074");_bafdf !=nil {_gafd .Dest =_bcb .ResolveReference (_bafdf );if !_acggb ._abdcg {_afcgb :=_acggb .traverseObjectData (_gafd .Dest );if _afcgb !=nil {return nil ,_afcgb ;};};};if _aega :=_eaaba .Get ("\u0041");_aega !=nil {_gafd .A =_bcb .ResolveReference (_aega );if !_acggb ._abdcg {_dedd :=_acggb .traverseObjectData (_gafd .A );if _dedd !=nil {return nil ,_dedd ;};};};if _fgffb :=_eaaba .Get ("\u0053\u0045");_fgffb !=nil {_gafd .SE =nil ;};if _febb :=_eaaba .Get ("\u0043");_febb !=nil {_gafd .C =_bcb .ResolveReference (_febb );};if _dabgg :=_eaaba .Get ("\u0046");_dabgg !=nil {_gafd .F =_bcb .ResolveReference (_dabgg );};return _gafd ,nil ;};
// ToPdfObject implements interface PdfModel.
func (_efgf *PdfAnnotation3D )ToPdfObject ()_bcb .PdfObject {_efgf .PdfAnnotation .ToPdfObject ();_agfe :=_efgf ._daa ;_bdca :=_agfe .PdfObject .(*_bcb .PdfObjectDictionary );_bdca .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_bcb .MakeName ("\u0033\u0044"));_bdca .SetIfNotNil ("\u0033\u0044\u0044",_efgf .T3DD );_bdca .SetIfNotNil ("\u0033\u0044\u0056",_efgf .T3DV );_bdca .SetIfNotNil ("\u0033\u0044\u0041",_efgf .T3DA );_bdca .SetIfNotNil ("\u0033\u0044\u0049",_efgf .T3DI );_bdca .SetIfNotNil ("\u0033\u0044\u0042",_efgf .T3DB );return _agfe ;};
// ToPdfObject returns the PDF representation of the colorspace.
func (_gcgc *PdfColorspaceDeviceRGB )ToPdfObject ()_bcb .PdfObject {return _bcb .MakeName ("\u0044e\u0076\u0069\u0063\u0065\u0052\u0047B");};
// ToInteger convert to an integer format.
func (_adfa *PdfColorCalRGB )ToInteger (bits int )[3]uint32 {_efgd :=_edb .Pow (2,float64 (bits ))-1;return [3]uint32 {uint32 (_efgd *_adfa .A ()),uint32 (_efgd *_adfa .B ()),uint32 (_efgd *_adfa .C ())};};
// 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 *_bcb .PdfIndirectObject ;SV *_bcb .PdfIndirectObject ;};func _ebdg (_fgafc _bcb .PdfObject )(*PdfPageResourcesColorspaces ,error ){_bcgaf :=&PdfPageResourcesColorspaces {};if _daadg ,_gbefb :=_fgafc .(*_bcb .PdfIndirectObject );_gbefb {_bcgaf ._fggf =_daadg ;_fgafc =_daadg .PdfObject ;};_geafa ,_bacb :=_bcb .GetDict (_fgafc );if !_bacb {return nil ,_ae .New ("\u0043\u0053\u0020at\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};_bcgaf .Names =[]string {};_bcgaf .Colorspaces =map[string ]PdfColorspace {};for _ ,_dceeab :=range _geafa .Keys (){_dbda :=_geafa .Get (_dceeab );_bcgaf .Names =append (_bcgaf .Names ,string (_dceeab ));_agcc ,_cgcad :=NewPdfColorspaceFromPdfObject (_dbda );if _cgcad !=nil {return nil ,_cgcad ;};_bcgaf .Colorspaces [string (_dceeab )]=_agcc ;};return _bcgaf ,nil ;};
// NewPdfAnnotation3D returns a new 3d annotation.
func NewPdfAnnotation3D ()*PdfAnnotation3D {_aecf :=NewPdfAnnotation ();_bfbg :=&PdfAnnotation3D {};_bfbg .PdfAnnotation =_aecf ;_aecf .SetContext (_bfbg );return _bfbg ;};
// PdfColorspaceDeviceCMYK represents a CMYK32 colorspace.
type PdfColorspaceDeviceCMYK struct{};
// ToPdfObject returns the PDF representation of the shading dictionary.
func (_cbdfd *PdfShadingType3 )ToPdfObject ()_bcb .PdfObject {_cbdfd .PdfShading .ToPdfObject ();_cedfe ,_bcgfe :=_cbdfd .getShadingDict ();if _bcgfe !=nil {_cga .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 _cbdfd .Coords !=nil {_cedfe .Set ("\u0043\u006f\u006f\u0072\u0064\u0073",_cbdfd .Coords );};if _cbdfd .Domain !=nil {_cedfe .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_cbdfd .Domain );};if _cbdfd .Function !=nil {if len (_cbdfd .Function )==1{_cedfe .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_cbdfd .Function [0].ToPdfObject ());}else {_face :=_bcb .MakeArray ();for _ ,_cafa :=range _cbdfd .Function {_face .Append (_cafa .ToPdfObject ());};_cedfe .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_face );};};if _cbdfd .Extend !=nil {_cedfe .Set ("\u0045\u0078\u0074\u0065\u006e\u0064",_cbdfd .Extend );};return _cbdfd ._eced ;};
// SetFilter sets compression filter. Decodes with current filter sets and
// encodes the data with the new filter.
func (_bcdfde *XObjectImage )SetFilter (encoder _bcb .StreamEncoder )error {_fgcdbd :=_bcdfde .Stream ;_agggd ,_fbfg :=_bcdfde .Filter .DecodeBytes (_fgcdbd );if _fbfg !=nil {return _fbfg ;};_bcdfde .Filter =encoder ;encoder .UpdateParams (_bcdfde .getParamsDict ());_fgcdbd ,_fbfg =encoder .EncodeBytes (_agggd );if _fbfg !=nil {return _fbfg ;};_bcdfde .Stream =_fgcdbd ;return nil ;};
// SetPdfAuthor sets the Author attribute of the output PDF.
func SetPdfAuthor (author string ){_dgagfb .Lock ();defer _dgagfb .Unlock ();_bafad =author };
// PdfBorderStyle represents a border style dictionary (12.5.4 Border Styles p. 394).
type PdfBorderStyle struct{W *float64 ;S *BorderStyle ;D *[]int ;_cec _bcb .PdfObject ;};
// NewXObjectImageFromStream builds the image xobject from a stream object.
// An image dictionary is the dictionary portion of a stream object representing an image XObject.
func NewXObjectImageFromStream (stream *_bcb .PdfObjectStream )(*XObjectImage ,error ){_fegfe :=&XObjectImage {};_fegfe ._gddag =stream ;_efggg :=*(stream .PdfObjectDictionary );_agcec ,_cgcbc :=_bcb .NewEncoderFromStream (stream );if _cgcbc !=nil {return nil ,_cgcbc ;};_fegfe .Filter =_agcec ;if _edfgdd :=_bcb .TraceToDirectObject (_efggg .Get ("\u0057\u0069\u0064t\u0068"));_edfgdd !=nil {_adgcf ,_fgeeb :=_edfgdd .(*_bcb .PdfObjectInteger );if !_fgeeb {return nil ,_ae .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");};_aebde :=int64 (*_adgcf );_fegfe .Width =&_aebde ;}else {return nil ,_ae .New ("\u0077\u0069\u0064\u0074\u0068\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};if _fcaa :=_bcb .TraceToDirectObject (_efggg .Get ("\u0048\u0065\u0069\u0067\u0068\u0074"));_fcaa !=nil {_aaeef ,_acba :=_fcaa .(*_bcb .PdfObjectInteger );if !_acba {return nil ,_ae .New ("i\u006e\u0076\u0061\u006c\u0069\u0064 \u0069\u006d\u0061\u0067\u0065\u0020\u0068\u0065\u0069g\u0068\u0074\u0020o\u0062j\u0065\u0063\u0074");};_eaccb :=int64 (*_aaeef );_fegfe .Height =&_eaccb ;}else {return nil ,_ae .New ("\u0068\u0065\u0069\u0067\u0068\u0074\u0020\u006d\u0069s\u0073\u0069\u006e\u0067");};if _ffaac :=_bcb .TraceToDirectObject (_efggg .Get ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065"));_ffaac !=nil {_adcb ,_dfdf :=NewPdfColorspaceFromPdfObject (_ffaac );if _dfdf !=nil {return nil ,_dfdf ;};_fegfe .ColorSpace =_adcb ;}else {_cga .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");_fegfe .ColorSpace =NewPdfColorspaceDeviceGray ();};if _bcfdg :=_bcb .TraceToDirectObject (_efggg .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074"));_bcfdg !=nil {_gbbagb ,_beaag :=_bcfdg .(*_bcb .PdfObjectInteger );if !_beaag {return nil ,_ae .New ("i\u006e\u0076\u0061\u006c\u0069\u0064 \u0069\u006d\u0061\u0067\u0065\u0020\u0068\u0065\u0069g\u0068\u0074\u0020o\u0062j\u0065\u0063\u0074");};_cggga :=int64 (*_gbbagb );_fegfe .BitsPerComponent =&_cggga ;};_fegfe .Intent =_efggg .Get ("\u0049\u006e\u0074\u0065\u006e\u0074");_fegfe .ImageMask =_efggg .Get ("\u0049m\u0061\u0067\u0065\u004d\u0061\u0073k");_fegfe .Mask =_efggg .Get ("\u004d\u0061\u0073\u006b");_fegfe .Decode =_efggg .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");_fegfe .Interpolate =_efggg .Get ("I\u006e\u0074\u0065\u0072\u0070\u006f\u006c\u0061\u0074\u0065");_fegfe .Alternatives =_efggg .Get ("\u0041\u006c\u0074e\u0072\u006e\u0061\u0074\u0069\u0076\u0065\u0073");_fegfe .SMask =_efggg .Get ("\u0053\u004d\u0061s\u006b");_fegfe .SMaskInData =_efggg .Get ("S\u004d\u0061\u0073\u006b\u0049\u006e\u0044\u0061\u0074\u0061");_fegfe .Matte =_efggg .Get ("\u004d\u0061\u0074t\u0065");_fegfe .Name =_efggg .Get ("\u004e\u0061\u006d\u0065");_fegfe .StructParent =_efggg .Get ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074");_fegfe .ID =_efggg .Get ("\u0049\u0044");_fegfe .OPI =_efggg .Get ("\u004f\u0050\u0049");_fegfe .Metadata =_efggg .Get ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");_fegfe .OC =_efggg .Get ("\u004f\u0043");_fegfe .Stream =stream .Stream ;return _fegfe ,nil ;};func (_aad *PdfReader )newPdfAnnotationInkFromDict (_dgff *_bcb .PdfObjectDictionary )(*PdfAnnotationInk ,error ){_dbaa :=PdfAnnotationInk {};_gcca ,_bbga :=_aad .newPdfAnnotationMarkupFromDict (_dgff );if _bbga !=nil {return nil ,_bbga ;};_dbaa .PdfAnnotationMarkup =_gcca ;_dbaa .InkList =_dgff .Get ("\u0049n\u006b\u004c\u0069\u0073\u0074");_dbaa .BS =_dgff .Get ("\u0042\u0053");return &_dbaa ,nil ;};func _ecggg (_effdc _bcb .PdfObject )(*_bcb .PdfObjectDictionary ,*fontCommon ,error ){_dbad :=&fontCommon {};if _ccaed ,_fdfe :=_effdc .(*_bcb .PdfIndirectObject );_fdfe {_dbad ._dgbe =_ccaed .ObjectNumber ;};_fcbdd ,_ggffb :=_bcb .GetDict (_effdc );if !_ggffb {_cga .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",_effdc );return nil ,nil ,ErrFontNotSupported ;};_gdbbb ,_ggffb :=_bcb .GetNameVal (_fcbdd .Get ("\u0054\u0079\u0070\u0065"));if !_ggffb {_cga .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 _gdbbb !="\u0046\u006f\u006e\u0074"{_cga .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.",_gdbbb ,"\u0046\u006f\u006e\u0074");return nil ,nil ,_bcb .ErrTypeError ;};_ffbgg ,_ggffb :=_bcb .GetNameVal (_fcbdd .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065"));if !_ggffb {_cga .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 ;};_dbad ._abgg =_ffbgg ;_decf ,_ggffb :=_bcb .GetNameVal (_fcbdd .Get ("\u004e\u0061\u006d\u0065"));if _ggffb {_dbad ._gbfc =_decf ;};if _ffbgg =="\u0054\u0079\u0070e\u0033"{_cga .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",_fcbdd );return _fcbdd ,_dbad ,ErrType3FontNotSupported ;};_fdcg ,_ggffb :=_bcb .GetNameVal (_fcbdd .Get ("\u0042\u0061\u0073\u0065\u0046\u006f\u006e\u0074"));if !_ggffb {_cga .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 _fcbdd ,_dbad ,ErrRequiredAttributeMissing ;};_dbad ._daeb =_fdcg ;_cfbgg :=_fcbdd .Get ("\u0046\u006f\u006e\u0074\u0044\u0065\u0073\u0063\u0072i\u0070\u0074\u006f\u0072");if _cfbgg !=nil {_cbdd ,_eeabg :=_edgc (_cfbgg );if _eeabg !=nil {_cga .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",_eeabg );return _fcbdd ,_dbad ,_eeabg ;};_dbad ._ecaed =_cbdd ;};_gdeb :=_fcbdd .Get ("\u0054o\u0055\u006e\u0069\u0063\u006f\u0064e");if _gdeb !=nil {_dbad ._ebfc =_bcb .TraceToDirectObject (_gdeb );_edcd ,_egcb :=_cfba (_dbad ._ebfc ,_dbad );if _egcb !=nil {return _fcbdd ,_dbad ,_egcb ;};_dbad ._ecbe =_edcd ;}else if _ffbgg =="\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0030"||_ffbgg =="\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032"{_adccd ,_eaffg :=_dc .NewCIDSystemInfo (_fcbdd .Get ("\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f"));if _eaffg !=nil {return _fcbdd ,_dbad ,_eaffg ;};_bfbf :=_e .Sprintf ("\u0025\u0073\u002d\u0025\u0073\u002d\u0055\u0043\u0053\u0032",_adccd .Registry ,_adccd .Ordering );if _dc .IsPredefinedCMap (_bfbf ){_dbad ._ecbe ,_eaffg =_dc .LoadPredefinedCMap (_bfbf );if _eaffg !=nil {_cga .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",_bfbf ,_eaffg );};};};return _fcbdd ,_dbad ,nil ;};
// SetPdfProducer sets the Producer attribute of the output PDF.
func SetPdfProducer (producer string ){_dgagfb .Lock ();defer _dgagfb .Unlock ();_ggdgb =producer };
// SetPdfSubject sets the Subject attribute of the output PDF.
func SetPdfSubject (subject string ){_dgagfb .Lock ();defer _dgagfb .Unlock ();_gedgd =subject };
// 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 (_feaa *PdfColorspaceDeviceRGB )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=3{return nil ,_ae .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_cggc :=vals [0];if _cggc < 0.0||_cggc > 1.0{return nil ,_ae .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_bgbbf :=vals [1];if _bgbbf < 0.0||_bgbbf > 1.0{return nil ,_ae .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_caf :=vals [2];if _caf < 0.0||_caf > 1.0{return nil ,_ae .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_fgcg :=NewPdfColorDeviceRGB (_cggc ,_bgbbf ,_caf );return _fgcg ,nil ;};
// ToPdfObject implements interface PdfModel.
// Note: Call the sub-annotation's ToPdfObject to set both the generic and non-generic information.
func (_ggge *PdfAnnotation )ToPdfObject ()_bcb .PdfObject {_affd :=_ggge ._daa ;_gacbb :=_affd .PdfObject .(*_bcb .PdfObjectDictionary );_gacbb .Clear ();_gacbb .Set ("\u0054\u0079\u0070\u0065",_bcb .MakeName ("\u0041\u006e\u006eo\u0074"));_gacbb .SetIfNotNil ("\u0052\u0065\u0063\u0074",_ggge .Rect );_gacbb .SetIfNotNil ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073",_ggge .Contents );_gacbb .SetIfNotNil ("\u0050",_ggge .P );_gacbb .SetIfNotNil ("\u004e\u004d",_ggge .NM );_gacbb .SetIfNotNil ("\u004d",_ggge .M );_gacbb .SetIfNotNil ("\u0046",_ggge .F );_gacbb .SetIfNotNil ("\u0041\u0050",_ggge .AP );_gacbb .SetIfNotNil ("\u0041\u0053",_ggge .AS );_gacbb .SetIfNotNil ("\u0042\u006f\u0072\u0064\u0065\u0072",_ggge .Border );_gacbb .SetIfNotNil ("\u0043",_ggge .C );_gacbb .SetIfNotNil ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074",_ggge .StructParent );_gacbb .SetIfNotNil ("\u004f\u0043",_ggge .OC );return _affd ;};
// NewReaderForText makes a new PdfReader for an input PDF content string. For use in testing.
func NewReaderForText (txt string )*PdfReader {return &PdfReader {_egfef :map[_bcb .PdfObject ]struct{}{},_dafbg :_ebgca (),_ecage :_bcb .NewParserFromString (txt )};};func _eggfc (_eaed *_bcb .PdfIndirectObject )(*PdfOutline ,error ){_ecfa ,_ffeb :=_eaed .PdfObject .(*_bcb .PdfObjectDictionary );if !_ffeb {return nil ,_e .Errorf ("\u006f\u0075\u0074l\u0069\u006e\u0065\u0020o\u0062\u006a\u0065\u0063\u0074\u0020\u006eo\u0074\u0020\u0061\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079");};_fdggc :=NewPdfOutline ();if _fagd :=_ecfa .Get ("\u0054\u0079\u0070\u0065");_fagd !=nil {_cefd ,_caeb :=_fagd .(*_bcb .PdfObjectName );if _caeb {if *_cefd !="\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0073"{_cga .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",*_cefd );};};};if _gggae :=_ecfa .Get ("\u0043\u006f\u0075n\u0074");_gggae !=nil {_agfaf ,_abgcd :=_bcb .GetNumberAsInt64 (_gggae );if _abgcd !=nil {return nil ,_abgcd ;};_fdggc .Count =&_agfaf ;};return _fdggc ,nil ;};const (BorderStyleSolid BorderStyle =iota ;BorderStyleDashed BorderStyle =iota ;BorderStyleBeveled BorderStyle =iota ;BorderStyleInset BorderStyle =iota ;BorderStyleUnderline BorderStyle =iota ;);func _agcca (_dbdeb *_bcb .PdfObjectDictionary )(*PdfShadingType5 ,error ){_edfba :=PdfShadingType5 {};_ffaec :=_dbdeb .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065");if _ffaec ==nil {_cga .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 ;};_acdg ,_egfec :=_ffaec .(*_bcb .PdfObjectInteger );if !_egfec {_cga .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",_ffaec );return nil ,_bcb .ErrTypeError ;};_edfba .BitsPerCoordinate =_acdg ;_ffaec =_dbdeb .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074");if _ffaec ==nil {_cga .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 ;};_acdg ,_egfec =_ffaec .(*_bcb .PdfObjectInteger );if !_egfec {_cga .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",_ffaec );return nil ,_bcb .ErrTypeError ;};_edfba .BitsPerComponent =_acdg ;_ffaec =_dbdeb .Get ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073\u0050e\u0072\u0052\u006f\u0077");if _ffaec ==nil {_cga .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 ;};_acdg ,_egfec =_ffaec .(*_bcb .PdfObjectInteger );if !_egfec {_cga .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",_ffaec );return nil ,_bcb .ErrTypeError ;};_edfba .VerticesPerRow =_acdg ;_ffaec =_dbdeb .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");if _ffaec ==nil {_cga .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 ;};_fdfecb ,_egfec :=_ffaec .(*_bcb .PdfObjectArray );if !_egfec {_cga .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",_ffaec );return nil ,_bcb .ErrTypeError ;};_edfba .Decode =_fdfecb ;if _ddde :=_dbdeb .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");_ddde !=nil {_edfba .Function =[]PdfFunction {};if _gcadf ,_eefe :=_ddde .(*_bcb .PdfObjectArray );_eefe {for _ ,_adbga :=range _gcadf .Elements (){_dcadc ,_dagcb :=_acdfd (_adbga );if _dagcb !=nil {_cga .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",_dagcb );return nil ,_dagcb ;};_edfba .Function =append (_edfba .Function ,_dcadc );};}else {_feccg ,_efcc :=_acdfd (_ddde );if _efcc !=nil {_cga .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",_efcc );return nil ,_efcc ;};_edfba .Function =append (_edfba .Function ,_feccg );};};return &_edfba ,nil ;};
// NewPdfActionJavaScript returns a new "javaScript" action.
func NewPdfActionJavaScript ()*PdfActionJavaScript {_gad :=NewPdfAction ();_cge :=&PdfActionJavaScript {};_cge .PdfAction =_gad ;_gad .SetContext (_cge );return _cge ;};
// VRI represents a Validation-Related Information dictionary.
// The VRI dictionary contains validation data in the form of
// certificates, OCSP and CRL information, for a single signature.
// See ETSI TS 102 778-4 V1.1.1 for more information.
type VRI struct{Cert []*_bcb .PdfObjectStream ;OCSP []*_bcb .PdfObjectStream ;CRL []*_bcb .PdfObjectStream ;TU *_bcb .PdfObjectString ;TS *_bcb .PdfObjectString ;};func (_bedea *PdfReader )loadOutlines ()(*PdfOutlineTreeNode ,error ){if _bedea ._ecage .GetCrypter ()!=nil &&!_bedea ._ecage .IsAuthenticated (){return nil ,_e .Errorf ("\u0066\u0069\u006ce\u0020\u006e\u0065\u0065d\u0020\u0074\u006f\u0020\u0062\u0065\u0020d\u0065\u0063\u0072\u0079\u0070\u0074\u0065\u0064\u0020\u0066\u0069\u0072\u0073\u0074");};_cabgg :=_bedea ._fccd ;_debgc :=_cabgg .Get ("\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0073");if _debgc ==nil {return nil ,nil ;};_cga .Log .Trace ("\u002d\u0048\u0061\u0073\u0020\u006f\u0075\u0074\u006c\u0069\u006e\u0065\u0073");_cgdd :=_bcb .ResolveReference (_debgc );_cga .Log .Trace ("\u004f\u0075t\u006c\u0069\u006ee\u0020\u0072\u006f\u006f\u0074\u003a\u0020\u0025\u0076",_cgdd );if _gcceg :=_bcb .IsNullObject (_cgdd );_gcceg {_cga .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 ;};_gfgcg ,_ffgfg :=_cgdd .(*_bcb .PdfIndirectObject );if !_ffgfg {if _ ,_cefcb :=_bcb .GetDict (_cgdd );!_cefcb {_cga .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 ;};_cga .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");_gfgcg =_bcb .MakeIndirectObject (_cgdd );};_fdcgd ,_ffgfg :=_gfgcg .PdfObject .(*_bcb .PdfObjectDictionary );if !_ffgfg {return nil ,_ae .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");};_cga .Log .Trace ("O\u0075\u0074\u006c\u0069ne\u0020r\u006f\u006f\u0074\u0020\u0064i\u0063\u0074\u003a\u0020\u0025\u0076",_fdcgd );_edbc ,_ ,_bgbae :=_bedea .buildOutlineTree (_gfgcg ,nil ,nil ,nil );if _bgbae !=nil {return nil ,_bgbae ;};_cga .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",_edbc );return _edbc ,nil ;};
// GetContentStream returns the XObject Form's content stream.
func (_aacefg *XObjectForm )GetContentStream ()([]byte ,error ){_babab ,_agegg :=_bcb .DecodeStream (_aacefg ._egcgbg );if _agegg !=nil {return nil ,_agegg ;};return _babab ,nil ;};
// NewPdfAnnotation returns an initialized generic PDF annotation model.
func NewPdfAnnotation ()*PdfAnnotation {_fgde :=&PdfAnnotation {};_fgde ._daa =_bcb .MakeIndirectObject (_bcb .MakeDict ());return _fgde ;};
// DecodeArray returns the component range values for the Separation colorspace.
func (_dabfb *PdfColorspaceSpecialSeparation )DecodeArray ()[]float64 {return []float64 {0,1.0}};
// DecodeArray returns the range of color component values in DeviceRGB colorspace.
func (_bebf *PdfColorspaceDeviceRGB )DecodeArray ()[]float64 {return []float64 {0.0,1.0,0.0,1.0,0.0,1.0};};func _cfcbg (_dgeee _bcb .PdfObject )[]*_bcb .PdfObjectStream {if _dgeee ==nil {return nil ;};_fbfa ,_ceede :=_bcb .GetArray (_dgeee );if !_ceede ||_fbfa .Len ()==0{return nil ;};_bbcce :=make ([]*_bcb .PdfObjectStream ,0,_fbfa .Len ());for _ ,_bceee :=range _fbfa .Elements (){if _edaeg ,_abfe :=_bcb .GetStream (_bceee );_abfe {_bbcce =append (_bbcce ,_edaeg );};};return _bbcce ;};var _ebefc =false ;
// GetDescent returns the Descent of the font `descriptor`.
func (_dgad *PdfFontDescriptor )GetDescent ()(float64 ,error ){return _bcb .GetNumberAsFloat (_dgad .Descent );};
// SetContentStream sets the pattern cell's content stream.
func (_baceg *PdfTilingPattern )SetContentStream (content []byte ,encoder _bcb .StreamEncoder )error {_dggbc ,_fdeca :=_baceg ._becda .(*_bcb .PdfObjectStream );if !_fdeca {_cga .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",_baceg ._becda );return _bcb .ErrTypeError ;};if encoder ==nil {encoder =_bcb .NewRawEncoder ();};_efffa :=_dggbc .PdfObjectDictionary ;_bgabb :=encoder .MakeStreamDict ();_efffa .Merge (_bgabb );_ccff ,_edfgeg :=encoder .EncodeBytes (content );if _edfgeg !=nil {return _edfgeg ;};_efffa .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_bcb .MakeInteger (int64 (len (_ccff ))));_dggbc .Stream =_ccff ;return nil ;};
// NewPdfColorDeviceCMYK returns a new CMYK32 color.
func NewPdfColorDeviceCMYK (c ,m ,y ,k float64 )*PdfColorDeviceCMYK {_gdffb :=PdfColorDeviceCMYK {c ,m ,y ,k };return &_gdffb ;};
// ToPdfObject return the CalGray colorspace as a PDF object (name dictionary).
func (_ffdf *PdfColorspaceCalGray )ToPdfObject ()_bcb .PdfObject {_dbbe :=&_bcb .PdfObjectArray {};_dbbe .Append (_bcb .MakeName ("\u0043a\u006c\u0047\u0072\u0061\u0079"));_afcc :=_bcb .MakeDict ();if _ffdf .WhitePoint !=nil {_afcc .Set ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074",_bcb .MakeArray (_bcb .MakeFloat (_ffdf .WhitePoint [0]),_bcb .MakeFloat (_ffdf .WhitePoint [1]),_bcb .MakeFloat (_ffdf .WhitePoint [2])));}else {_cga .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 _ffdf .BlackPoint !=nil {_afcc .Set ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074",_bcb .MakeArray (_bcb .MakeFloat (_ffdf .BlackPoint [0]),_bcb .MakeFloat (_ffdf .BlackPoint [1]),_bcb .MakeFloat (_ffdf .BlackPoint [2])));};_afcc .Set ("\u0047\u0061\u006dm\u0061",_bcb .MakeFloat (_ffdf .Gamma ));_dbbe .Append (_afcc );if _ffdf ._ecgg !=nil {_ffdf ._ecgg .PdfObject =_dbbe ;return _ffdf ._ecgg ;};return _dbbe ;};
// PdfShadingType2 is an Axial shading.
type PdfShadingType2 struct{*PdfShading ;Coords *_bcb .PdfObjectArray ;Domain *_bcb .PdfObjectArray ;Function []PdfFunction ;Extend *_bcb .PdfObjectArray ;};
// ColorFromPdfObjects returns a new PdfColor based on the input slice of color
// components. The slice should contain a single PdfObjectFloat element.
func (_beag *PdfColorspaceSpecialSeparation )ColorFromPdfObjects (objects []_bcb .PdfObject )(PdfColor ,error ){if len (objects )!=1{return nil ,_ae .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_fbef ,_aadd :=_bcb .GetNumbersAsFloat (objects );if _aadd !=nil {return nil ,_aadd ;};return _beag .ColorFromFloats (_fbef );};
// ToPdfObject implements interface PdfModel.
func (_dfcd *PdfAnnotationFileAttachment )ToPdfObject ()_bcb .PdfObject {_dfcd .PdfAnnotation .ToPdfObject ();_dcgdf :=_dfcd ._daa ;_dcag :=_dcgdf .PdfObject .(*_bcb .PdfObjectDictionary );_dfcd .PdfAnnotationMarkup .appendToPdfDictionary (_dcag );_dcag .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_bcb .MakeName ("\u0046\u0069\u006c\u0065\u0041\u0074\u0074\u0061\u0063h\u006d\u0065\u006e\u0074"));_dcag .SetIfNotNil ("\u0046\u0053",_dfcd .FS );_dcag .SetIfNotNil ("\u004e\u0061\u006d\u0065",_dfcd .Name );return _dcgdf ;};func _ebdb (_dgdc *_bcb .PdfObjectStream )(*PdfFunctionType0 ,error ){_gdgce :=&PdfFunctionType0 {};_gdgce ._gdbc =_dgdc ;_dbcdf :=_dgdc .PdfObjectDictionary ;_fgcdb ,_bgbf :=_bcb .TraceToDirectObject (_dbcdf .Get ("\u0044\u006f\u006d\u0061\u0069\u006e")).(*_bcb .PdfObjectArray );if !_bgbf {_cga .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_ae .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 _fgcdb .Len ()< 0||_fgcdb .Len ()%2!=0{_cga .Log .Error ("\u0044\u006f\u006d\u0061\u0069\u006e\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");return nil ,_ae .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0064\u006f\u006da\u0069\u006e\u0020\u0072an\u0067\u0065");};_gdgce .NumInputs =_fgcdb .Len ()/2;_baceda ,_eggea :=_fgcdb .ToFloat64Array ();if _eggea !=nil {return nil ,_eggea ;};_gdgce .Domain =_baceda ;_fgcdb ,_bgbf =_bcb .TraceToDirectObject (_dbcdf .Get ("\u0052\u0061\u006eg\u0065")).(*_bcb .PdfObjectArray );if !_bgbf {_cga .Log .Error ("\u0052\u0061\u006e\u0067e \u006e\u006f\u0074\u0020\u0073\u0070\u0065\u0063\u0069\u0066\u0069\u0065\u0064");return nil ,_ae .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 _fgcdb .Len ()< 0||_fgcdb .Len ()%2!=0{return nil ,_ae .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0061\u006e\u0067\u0065");};_gdgce .NumOutputs =_fgcdb .Len ()/2;_adbfcc ,_eggea :=_fgcdb .ToFloat64Array ();if _eggea !=nil {return nil ,_eggea ;};_gdgce .Range =_adbfcc ;_fgcdb ,_bgbf =_bcb .TraceToDirectObject (_dbcdf .Get ("\u0053\u0069\u007a\u0065")).(*_bcb .PdfObjectArray );if !_bgbf {_cga .Log .Error ("\u0053i\u007ae\u0020\u006e\u006f\u0074\u0020s\u0070\u0065c\u0069\u0066\u0069\u0065\u0064");return nil ,_ae .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");};_gbfad ,_eggea :=_fgcdb .ToIntegerArray ();if _eggea !=nil {return nil ,_eggea ;};if len (_gbfad )!=_gdgce .NumInputs {_cga .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 ,_ae .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_gdgce .Size =_gbfad ;_cgda ,_bgbf :=_bcb .TraceToDirectObject (_dbcdf .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0053\u0061\u006d\u0070\u006c\u0065")).(*_bcb .PdfObjectInteger );if !_bgbf {_cga .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 ,_ae .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 *_cgda !=1&&*_cgda !=2&&*_cgda !=4&&*_cgda !=8&&*_cgda !=12&&*_cgda !=16&&*_cgda !=24&&*_cgda !=32{_cga .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",*_cgda );return nil ,_ae .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_gdgce .BitsPerSample =int (*_cgda );_gdgce .Order =1;_ceda ,_bgbf :=_bcb .TraceToDirectObject (_dbcdf .Get ("\u004f\u0072\u0064e\u0072")).(*_bcb .PdfObjectInteger );if _bgbf {if *_ceda !=1&&*_ceda !=3{_cga .Log .Error ("\u0049n\u0076a\u006c\u0069\u0064\u0020\u006fr\u0064\u0065r\u0020\u0028\u0025\u0064\u0029",*_ceda );return nil ,_ae .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_gdgce .Order =int (*_ceda );};_fgcdb ,_bgbf =_bcb .TraceToDirectObject (_dbcdf .Get ("\u0045\u006e\u0063\u006f\u0064\u0065")).(*_bcb .PdfObjectArray );if _bgbf {_dcbdb ,_facb :=_fgcdb .ToFloat64Array ();if _facb !=nil {return nil ,_facb ;};_gdgce .Encode =_dcbdb ;};_fgcdb ,_bgbf =_bcb .TraceToDirectObject (_dbcdf .Get ("\u0044\u0065\u0063\u006f\u0064\u0065")).(*_bcb .PdfObjectArray );if _bgbf {_agdf ,_eagc :=_fgcdb .ToFloat64Array ();if _eagc !=nil {return nil ,_eagc ;};_gdgce .Decode =_agdf ;};_eccge ,_eggea :=_bcb .DecodeStream (_dgdc );if _eggea !=nil {return nil ,_eggea ;};_gdgce ._cdcfa =_eccge ;return _gdgce ,nil ;};
// PdfAnnotationProjection represents Projection annotations.
type PdfAnnotationProjection struct{*PdfAnnotation ;*PdfAnnotationMarkup ;};
// PdfAnnotationRichMedia represents Rich Media annotations.
type PdfAnnotationRichMedia struct{*PdfAnnotation ;RichMediaSettings _bcb .PdfObject ;RichMediaContent _bcb .PdfObject ;};
// Val returns the value of the color.
func (_bfba *PdfColorCalGray )Val ()float64 {return float64 (*_bfba )};
// 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 (_egfe *Image )ConvertToBinary ()error {if _egfe .ColorComponents ==1&&_egfe .BitsPerComponent ==1{return nil ;};_adeeac ,_ffccc :=_egfe .ToGoImage ();if _ffccc !=nil {return _ffccc ;};_bgfac ,_ffccc :=_fgd .MonochromeConverter .Convert (_adeeac );if _ffccc !=nil {return _ffccc ;};_egfe .BitsPerComponent =1;_egfe .ColorComponents =1;_egfe .Data =_bgfac .Base ().Data ;return nil ;};type pdfFont interface{_acc .Font ;
// ToPdfObject returns a PDF representation of the font and implements interface Model.
ToPdfObject ()_bcb .PdfObject ;getFontDescriptor ()*PdfFontDescriptor ;baseFields ()*fontCommon ;};
// ToPdfObject recursively builds the Outline tree PDF object.
func (_edfea *PdfOutline )ToPdfObject ()_bcb .PdfObject {_baaea :=_edfea ._cdec ;_bdgdd :=_baaea .PdfObject .(*_bcb .PdfObjectDictionary );_bdgdd .Set ("\u0054\u0079\u0070\u0065",_bcb .MakeName ("\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0073"));if _edfea .First !=nil {_bdgdd .Set ("\u0046\u0069\u0072s\u0074",_edfea .First .ToPdfObject ());};if _edfea .Last !=nil {_bdgdd .Set ("\u004c\u0061\u0073\u0074",_edfea .Last .GetContext ().GetContainingPdfObject ());};if _edfea .Parent !=nil {_bdgdd .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_edfea .Parent .GetContext ().GetContainingPdfObject ());};if _edfea .Count !=nil {_bdgdd .Set ("\u0043\u006f\u0075n\u0074",_bcb .MakeInteger (*_edfea .Count ));};return _baaea ;};
// ToPdfObject returns a stream object.
func (_fgdg *XObjectForm )ToPdfObject ()_bcb .PdfObject {_fbege :=_fgdg ._egcgbg ;_dgefa :=_fbege .PdfObjectDictionary ;if _fgdg .Filter !=nil {_dgefa =_fgdg .Filter .MakeStreamDict ();_fbege .PdfObjectDictionary =_dgefa ;};_dgefa .Set ("\u0054\u0079\u0070\u0065",_bcb .MakeName ("\u0058O\u0062\u006a\u0065\u0063\u0074"));_dgefa .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_bcb .MakeName ("\u0046\u006f\u0072\u006d"));_dgefa .SetIfNotNil ("\u0046\u006f\u0072\u006d\u0054\u0079\u0070\u0065",_fgdg .FormType );_dgefa .SetIfNotNil ("\u0042\u0042\u006f\u0078",_fgdg .BBox );_dgefa .SetIfNotNil ("\u004d\u0061\u0074\u0072\u0069\u0078",_fgdg .Matrix );if _fgdg .Resources !=nil {_dgefa .SetIfNotNil ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s",_fgdg .Resources .ToPdfObject ());};_dgefa .SetIfNotNil ("\u0047\u0072\u006fu\u0070",_fgdg .Group );_dgefa .SetIfNotNil ("\u0052\u0065\u0066",_fgdg .Ref );_dgefa .SetIfNotNil ("\u004d\u0065\u0074\u0061\u0044\u0061\u0074\u0061",_fgdg .MetaData );_dgefa .SetIfNotNil ("\u0050i\u0065\u0063\u0065\u0049\u006e\u0066o",_fgdg .PieceInfo );_dgefa .SetIfNotNil ("\u004c\u0061\u0073t\u004d\u006f\u0064\u0069\u0066\u0069\u0065\u0064",_fgdg .LastModified );_dgefa .SetIfNotNil ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074",_fgdg .StructParent );_dgefa .SetIfNotNil ("\u0053\u0074\u0072\u0075\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074\u0073",_fgdg .StructParents );_dgefa .SetIfNotNil ("\u004f\u0050\u0049",_fgdg .OPI );_dgefa .SetIfNotNil ("\u004f\u0043",_fgdg .OC );_dgefa .SetIfNotNil ("\u004e\u0061\u006d\u0065",_fgdg .Name );_dgefa .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_bcb .MakeInteger (int64 (len (_fgdg .Stream ))));_fbege .Stream =_fgdg .Stream ;return _fbege ;};func _efbgag (_adaaf _bcb .PdfObject )(string ,error ){_adaaf =_bcb .TraceToDirectObject (_adaaf );switch _cfbaa :=_adaaf .(type ){case *_bcb .PdfObjectString :return _cfbaa .Str (),nil ;case *_bcb .PdfObjectStream :_eebf ,_gfdg :=_bcb .DecodeStream (_cfbaa );if _gfdg !=nil {return "",_gfdg ;};return string (_eebf ),nil ;};return "",_e .Errorf ("\u0069\u006e\u0076\u0061\u006ci\u0064\u0020\u0063\u006f\u006e\u0074\u0065\u006e\u0074\u0020\u0073\u0074\u0072e\u0061\u006d\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0020\u0068\u006f\u006c\u0064\u0065\u0072\u0020\u0028\u0025\u0054\u0029",_adaaf );};func _cdgdf (_gdgge _bcb .PdfObject )(*PdfShading ,error ){_fcfaf :=&PdfShading {};var _ggdega *_bcb .PdfObjectDictionary ;if _edgfe ,_aafe :=_bcb .GetIndirect (_gdgge );_aafe {_fcfaf ._eced =_edgfe ;_dgcf ,_dfcgg :=_edgfe .PdfObject .(*_bcb .PdfObjectDictionary );if !_dfcgg {_cga .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 ,_bcb .ErrTypeError ;};_ggdega =_dgcf ;}else if _beffg ,_afgbb :=_bcb .GetStream (_gdgge );_afgbb {_fcfaf ._eced =_beffg ;_ggdega =_beffg .PdfObjectDictionary ;}else if _bcabg ,_aebdd :=_bcb .GetDict (_gdgge );_aebdd {_fcfaf ._eced =_bcabg ;_ggdega =_bcabg ;}else {_cga .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",_gdgge );return nil ,_bcb .ErrTypeError ;};if _ggdega ==nil {_cga .Log .Debug ("\u0044i\u0063t\u0069\u006f\u006e\u0061\u0072y\u0020\u006di\u0073\u0073\u0069\u006e\u0067");return nil ,_ae .New ("\u0064\u0069\u0063t\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};_gdgge =_ggdega .Get ("S\u0068\u0061\u0064\u0069\u006e\u0067\u0054\u0079\u0070\u0065");if _gdgge ==nil {_cga .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 ;};_gdgge =_bcb .TraceToDirectObject (_gdgge );_agfc ,_ccefb :=_gdgge .(*_bcb .PdfObjectInteger );if !_ccefb {_cga .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",_gdgge );return nil ,_bcb .ErrTypeError ;};if *_agfc < 1||*_agfc > 7{_cga .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",*_agfc );return nil ,_bcb .ErrTypeError ;};_fcfaf .ShadingType =_agfc ;_gdgge =_ggdega .Get ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065");if _gdgge ==nil {_cga .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 ;};_aagc ,_bbbfe :=NewPdfColorspaceFromPdfObject (_gdgge );if _bbbfe !=nil {_cga .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",_bbbfe );return nil ,_bbbfe ;};_fcfaf .ColorSpace =_aagc ;_gdgge =_ggdega .Get ("\u0042\u0061\u0063\u006b\u0067\u0072\u006f\u0075\u006e\u0064");if _gdgge !=nil {_gdgge =_bcb .TraceToDirectObject (_gdgge );_fgfg ,_gcadd :=_gdgge .(*_bcb .PdfObjectArray );if !_gcadd {_cga .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)",_gdgge );return nil ,_bcb .ErrTypeError ;};_fcfaf .Background =_fgfg ;};_gdgge =_ggdega .Get ("\u0042\u0042\u006f\u0078");if _gdgge !=nil {_gdgge =_bcb .TraceToDirectObject (_gdgge );_deeda ,_dbefg :=_gdgge .(*_bcb .PdfObjectArray );if !_dbefg {_cga .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)",_gdgge );return nil ,_bcb .ErrTypeError ;};_gcaaed ,_caged :=NewPdfRectangle (*_deeda );if _caged !=nil {_cga .Log .Debug ("\u0042\u0042\u006f\u0078\u0020\u0065\u0072\u0072\u006fr\u003a\u0020\u0025\u0076",_caged );return nil ,_caged ;};_fcfaf .BBox =_gcaaed ;};_gdgge =_ggdega .Get ("\u0041n\u0074\u0069\u0041\u006c\u0069\u0061s");if _gdgge !=nil {_gdgge =_bcb .TraceToDirectObject (_gdgge );_bgde ,_fagab :=_gdgge .(*_bcb .PdfObjectBool );if !_fagab {_cga .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",_gdgge );return nil ,_bcb .ErrTypeError ;};_fcfaf .AntiAlias =_bgde ;};switch *_agfc {case 1:_fcggf ,_bcacbdb :=_fgcb (_ggdega );if _bcacbdb !=nil {return nil ,_bcacbdb ;};_fcggf .PdfShading =_fcfaf ;_fcfaf ._gcbd =_fcggf ;return _fcfaf ,nil ;case 2:_cfdd ,_fbba :=_fcdab (_ggdega );if _fbba !=nil {return nil ,_fbba ;};_cfdd .PdfShading =_fcfaf ;_fcfaf ._gcbd =_cfdd ;return _fcfaf ,nil ;case 3:_bdbe ,_baagd :=_fagdd (_ggdega );if _baagd !=nil {return nil ,_baagd ;};_bdbe .PdfShading =_fcfaf ;_fcfaf ._gcbd =_bdbe ;return _fcfaf ,nil ;case 4:_gfdgc ,_dggg :=_adgcee (_ggdega );if _dggg !=nil {return nil ,_dggg ;};_gfdgc .PdfShading =_fcfaf ;_fcfaf ._gcbd =_gfdgc ;return _fcfaf ,nil ;case 5:_bbggd ,_dgfgbe :=_agcca (_ggdega );if _dgfgbe !=nil {return nil ,_dgfgbe ;};_bbggd .PdfShading =_fcfaf ;_fcfaf ._gcbd =_bbggd ;return _fcfaf ,nil ;case 6:_edfecb ,_gefaab :=_fbfe (_ggdega );if _gefaab !=nil {return nil ,_gefaab ;};_edfecb .PdfShading =_fcfaf ;_fcfaf ._gcbd =_edfecb ;return _fcfaf ,nil ;case 7:_bebdfa ,_degbd :=_eacde (_ggdega );if _degbd !=nil {return nil ,_degbd ;};_bebdfa .PdfShading =_fcfaf ;_fcfaf ._gcbd =_bebdfa ;return _fcfaf ,nil ;};return nil ,_ae .New ("u\u006ek\u006e\u006f\u0077\u006e\u0020\u0073\u0068\u0061d\u0069\u006e\u0067\u0020ty\u0070\u0065");};
// PdfFieldText represents a text field where user can enter text.
type PdfFieldText struct{*PdfField ;DA *_bcb .PdfObjectString ;Q *_bcb .PdfObjectInteger ;DS *_bcb .PdfObjectString ;RV _bcb .PdfObject ;MaxLen *_bcb .PdfObjectInteger ;};func _baced (_fbeeb *PdfField )[]*PdfField {_bcagb :=[]*PdfField {_fbeeb };for _ ,_gdce :=range _fbeeb .Kids {_bcagb =append (_bcagb ,_baced (_gdce )...);};return _bcagb ;};
// 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 (_fdbbg *PdfReader )RepairAcroForm (opts *AcroFormRepairOptions )error {var _afccfd []*PdfField ;_gbbb :=map[*_bcb .PdfIndirectObject ]struct{}{};for _ ,_edcad :=range _fdbbg .PageList {_acgdg ,_gbgda :=_edcad .GetAnnotations ();if _gbgda !=nil {return _gbgda ;};for _ ,_babg :=range _acgdg {var _fcfa *PdfField ;switch _bdedg :=_babg .GetContext ().(type ){case *PdfAnnotationWidget :if _bdedg ._cbgd !=nil {_fcfa =_bdedg ._cbgd ;break ;};if _eabdb ,_ecaac :=_bcb .GetIndirect (_bdedg .Parent );_ecaac {_fcfa ,_gbgda =_fdbbg .newPdfFieldFromIndirectObject (_eabdb ,nil );if _gbgda ==nil {break ;};_cga .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",_eabdb ,_gbgda );};if _bdedg ._daa !=nil {_fcfa ,_gbgda =_fdbbg .newPdfFieldFromIndirectObject (_bdedg ._daa ,nil );if _gbgda ==nil {break ;};_cga .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",_bdedg ._daa ,_gbgda );};};if _fcfa ==nil {continue ;};if _ ,_ebbf :=_gbbb [_fcfa ._gggf ];_ebbf {continue ;};_gbbb [_fcfa ._gggf ]=struct{}{};_afccfd =append (_afccfd ,_fcfa );};};if len (_afccfd )==0{return nil ;};if _fdbbg .AcroForm ==nil {_fdbbg .AcroForm =NewPdfAcroForm ();};_fdbbg .AcroForm .Fields =&_afccfd ;return nil ;};
// Write writes out the PDF.
func (_fcaed *PdfWriter )Write (writer _fb .Writer )error {_cga .Log .Trace ("\u0057r\u0069\u0074\u0065\u0028\u0029");_ddgfc :=_dd .GetLicenseKey ();if (_ddgfc ==nil ||!_ddgfc .IsLicensed ())&&!_ebefc {_e .Printf ("\u0055\u006e\u006c\u0069\u0063\u0065\u006e\u0073\u0065\u0064\u0020c\u006f\u0070\u0079\u0020\u006f\u0066\u0020\u0055\u006e\u0069P\u0044\u0046\u000a");_e .Println ("-\u0020\u0047\u0065\u0074\u0020\u0061\u0020\u0066\u0072e\u0065\u0020\u0074\u0072\u0069\u0061\u006c l\u0069\u0063\u0065\u006es\u0065\u0020\u006f\u006e\u0020\u0068\u0074\u0074\u0070s:\u002f\u002fu\u006e\u0069\u0064\u006f\u0063\u002e\u0069\u006f");return _ae .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 _fcaed ._eefac !=nil {_cga .Log .Trace ("\u004f\u0075t\u006c\u0069\u006ee\u0054\u0072\u0065\u0065\u003a\u0020\u0025\u002b\u0076",_fcaed ._eefac );_bbfdg :=_fcaed ._eefac .ToPdfObject ();_cga .Log .Trace ("\u004fu\u0074\u006c\u0069\u006e\u0065\u0073\u003a\u0020\u0025\u002b\u0076 \u0028\u0025\u0054\u002c\u0020\u0070\u003a\u0025\u0070\u0029",_bbfdg ,_bbfdg ,_bbfdg );_fcaed ._ggfec .Set ("\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0073",_bbfdg );_gdceg :=_fcaed .addObjects (_bbfdg );if _gdceg !=nil {return _gdceg ;};};if _fcaed ._gbbc !=nil {_cga .Log .Trace ("\u0057r\u0069t\u0069\u006e\u0067\u0020\u0061c\u0072\u006f \u0066\u006f\u0072\u006d\u0073");_beada :=_fcaed ._gbbc .ToPdfObject ();_cga .Log .Trace ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d\u003a\u0020\u0025\u002b\u0076",_beada );_fcaed ._ggfec .Set ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d",_beada );_gagge :=_fcaed .addObjects (_beada );if _gagge !=nil {return _gagge ;};};for _gggfc ,_deffaa :=range _fcaed ._aabce {if !_fcaed .hasObject (_gggfc ){_cga .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",_gggfc ,_gggfc ,_gggfc );for _ ,_egaef :=range _deffaa {for _ ,_bdgf :=range _egaef .Keys (){_cfcga :=_egaef .Get (_bdgf );if _cfcga ==_gggfc {_cga .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");_egaef .Set (_bdgf ,_bcb .MakeNull ());break ;};};};};};_fcaed ._ggfec .Set ("\u0056e\u0072\u0073\u0069\u006f\u006e",_bcb .MakeName (_e .Sprintf ("\u0025\u0064\u002e%\u0064",_fcaed ._fcebf ,_fcaed ._cacaf )));_fcaed .copyObjects ();if _fcaed ._bgefd !=nil {var _afbc error ;_fcaed ._adbc ,_afbc =_fcaed ._bgefd .Optimize (_fcaed ._adbc );if _afbc !=nil {return _afbc ;};_bacef :=make (map[_bcb .PdfObject ]struct{},len (_fcaed ._adbc ));for _ ,_fgdab :=range _fcaed ._adbc {_bacef [_fgdab ]=struct{}{};};_fcaed ._affdb =_bacef ;};_fcaed ._cdgbg =_fcaed ._ddac ;_fcaed ._aefcaa =_ff .NewWriter (writer );_eafca :=_fcaed ._fcebf > 1||(_fcaed ._fcebf ==1&&_fcaed ._cacaf > 4);if _fcaed ._bgeec !=nil {_eafca =*_fcaed ._bgeec ;};_fgeg :=make (map[_bcb .PdfObject ]bool );for _ ,_fadf :=range _fcaed ._adbc {if _ccecb ,_acbdd :=_fadf .(*_bcb .PdfObjectStreams );_acbdd {_eafca =true ;for _ ,_fddca :=range _ccecb .Elements (){_fgeg [_fddca ]=true ;if _agebd ,_dfacd :=_fddca .(*_bcb .PdfIndirectObject );_dfacd {_fgeg [_agebd .PdfObject ]=true ;};};};};if _eafca &&_fcaed ._fcebf ==1&&_fcaed ._cacaf < 5{_fcaed ._cacaf =5;};if _fcaed ._addfe {_fcaed .writeString ("\u000a");}else {_fcaed .writeString (_e .Sprintf ("\u0025\u0025\u0050D\u0046\u002d\u0025\u0064\u002e\u0025\u0064\u000a",_fcaed ._fcebf ,_fcaed ._cacaf ));_fcaed .writeString ("\u0025\u00e2\u00e3\u00cf\u00d3\u000a");};_fcaed .updateObjectNumbers ();_cga .Log .Trace ("\u0057\u0072\u0069\u0074\u0069\u006e\u0067\u0020\u0025d\u0020\u006f\u0062\u006a",len (_fcaed ._adbc ));_fcaed ._cddbc =make (map[int ]crossReference );_fcaed ._cddbc [0]=crossReference {Type :0,ObjectNumber :0,Generation :0xFFFF};if _fcaed ._dbacc .ObjectMap !=nil {for _egbf ,_ebgad :=range _fcaed ._dbacc .ObjectMap {if _egbf ==0{continue ;};if _ebgad .XType ==_bcb .XrefTypeObjectStream {_adbbc :=crossReference {Type :2,ObjectNumber :_ebgad .OsObjNumber ,Index :_ebgad .OsObjIndex };_fcaed ._cddbc [_egbf ]=_adbbc ;};if _ebgad .XType ==_bcb .XrefTypeTableEntry {_bgce :=crossReference {Type :1,ObjectNumber :_ebgad .ObjectNumber ,Offset :_ebgad .Offset };_fcaed ._cddbc [_egbf ]=_bgce ;};};};for _ ,_fdaca :=range _fcaed ._adbc {if _egabfd :=_fgeg [_fdaca ];_egabfd {continue ;};_bdgg :=int64 (0);switch _egbd :=_fdaca .(type ){case *_bcb .PdfIndirectObject :_bdgg =_egbd .ObjectNumber ;case *_bcb .PdfObjectStream :_bdgg =_egbd .ObjectNumber ;case *_bcb .PdfObjectStreams :_bdgg =_egbd .ObjectNumber ;default:_cga .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",_fdaca );return ErrTypeCheck ;};if _fcaed ._bggda !=nil &&_fdaca !=_fcaed ._gbaeda {_gdad :=_fcaed ._bggda .Encrypt (_fdaca ,_bdgg ,0);if _gdad !=nil {_cga .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",_gdad );return _gdad ;};};_fcaed .writeObject (int (_bdgg ),_fdaca );};_aadgb :=_fcaed ._cdgbg ;var _gceabb int ;for _bcceg :=range _fcaed ._cddbc {if _bcceg > _gceabb {_gceabb =_bcceg ;};};if _eafca {_gabfg :=_gceabb +1;_fcaed ._cddbc [_gabfg ]=crossReference {Type :1,ObjectNumber :_gabfg ,Offset :_aadgb };_cadcg :=_ede .NewBuffer (nil );_bfdcd :=_bcb .MakeArray ();for _facgg :=0;_facgg <=_gceabb ;{for ;_facgg <=_gceabb ;_facgg ++{_dedag ,_fafe :=_fcaed ._cddbc [_facgg ];if _fafe &&(!_fcaed ._addfe ||_fcaed ._addfe &&(_dedag .Type ==1&&_dedag .Offset >=_fcaed ._acaeg ||_dedag .Type ==0)){break ;};};var _cefca int ;for _cefca =_facgg +1;_cefca <=_gceabb ;_cefca ++{_ddgb ,_fadbc :=_fcaed ._cddbc [_cefca ];if _fadbc &&(!_fcaed ._addfe ||_fcaed ._addfe &&(_ddgb .Type ==1&&_ddgb .Offset > _fcaed ._acaeg )){continue ;};break ;};_bfdcd .Append (_bcb .MakeInteger (int64 (_facgg )),_bcb .MakeInteger (int64 (_cefca -_facgg )));for _dbgdf :=_facgg ;_dbgdf < _cefca ;_dbgdf ++{_efge :=_fcaed ._cddbc [_dbgdf ];switch _efge .Type {case 0:_g .Write (_cadcg ,_g .BigEndian ,byte (0));_g .Write (_cadcg ,_g .BigEndian ,uint32 (0));_g .Write (_cadcg ,_g .BigEndian ,uint16 (0xFFFF));case 1:_g .Write (_cadcg ,_g .BigEndian ,byte (1));_g .Write (_cadcg ,_g .BigEndian ,uint32 (_efge .Offset ));_g .Write (_cadcg ,_g .BigEndian ,uint16 (_efge .Generation ));case 2:_g .Write (_cadcg ,_g .BigEndian ,byte (2));_g .Write (_cadcg ,_g .BigEndian ,uint32 (_efge .ObjectNumber ));_g .Write (_cadcg ,_g .BigEndian ,uint16 (_efge .Index ));};};_facgg =_cefca +1;};_daffd ,_egbaf :=_bcb .MakeStream (_cadcg .Bytes (),_bcb .NewFlateEncoder ());if _egbaf !=nil {return _egbaf ;};_daffd .ObjectNumber =int64 (_gabfg );_daffd .PdfObjectDictionary .Set ("\u0054\u0079\u0070\u0065",_bcb .MakeName ("\u0058\u0052\u0065\u0066"));_daffd .PdfObjectDictionary .Set ("\u0057",_bcb .MakeArray (_bcb .MakeInteger (1),_bcb .MakeInteger (4),_bcb .MakeInteger (2)));_daffd .PdfObjectDictionary .Set ("\u0049\u006e\u0064e\u0078",_bfdcd );_daffd .PdfObjectDictionary .Set ("\u0053\u0069\u007a\u0065",_bcb .MakeInteger (int64 (_gabfg +1)));_daffd .PdfObjectDictionary .Set ("\u0049\u006e\u0066\u006f",_fcaed ._gbfff );_daffd .PdfObjectDictionary .Set ("\u0052\u006f\u006f\u0074",_fcaed ._edecd );if _fcaed ._addfe &&_fcaed ._ecded > 0{_daffd .PdfObjectDictionary .Set ("\u0050\u0072\u0065\u0076",_bcb .MakeInteger (_fcaed ._ecded ));};if _fcaed ._bggda !=nil {_daffd .Set ("\u0045n\u0063\u0072\u0079\u0070\u0074",_fcaed ._gbaeda );_daffd .Set ("\u0049\u0044",_fcaed ._ccbeb );_cga .Log .Trace ("\u0049d\u0073\u003a\u0020\u0025\u0073",_fcaed ._ccbeb );};_fcaed .writeObject (int (_daffd .ObjectNumber ),_daffd );}else {_fcaed .writeString ("\u0078\u0072\u0065\u0066\u000d\u000a");for _cfcbf :=0;_cfcbf <=_gceabb ;{for ;_cfcbf <=_gceabb ;_cfcbf ++{_acefcd ,_bgebcf :=_fcaed ._cddbc [_cfcbf ];if _bgebcf &&(!_fcaed ._addfe ||_fcaed ._addfe &&(_acefcd .Type ==1&&_acefcd .Offset >=_fcaed ._acaeg ||_acefcd .Type ==0)){break ;};};var _dgaed int ;for _dgaed =_cfcbf +1;_dgaed <=_gceabb ;_dgaed ++{_cafd ,_gbde :=_fcaed ._cddbc [_dgaed ];if _gbde &&(!_fcaed ._addfe ||_fcaed ._addfe &&(_cafd .Type ==1&&_cafd .Offset > _fcaed ._acaeg )){continue ;};break ;};_gafga :=_e .Sprintf ("\u0025d\u0020\u0025\u0064\u000d\u000a",_cfcbf ,_dgaed -_cfcbf );_fcaed .writeString (_gafga );for _edcbd :=_cfcbf ;_edcbd < _dgaed ;_edcbd ++{_cccfa :=_fcaed ._cddbc [_edcbd ];switch _cccfa .Type {case 0:_gafga =_e .Sprintf ("\u0025\u002e\u0031\u0030\u0064\u0020\u0025\u002e\u0035d\u0020\u0066\u000d\u000a",0,65535);_fcaed .writeString (_gafga );case 1:_gafga =_e .Sprintf ("\u0025\u002e\u0031\u0030\u0064\u0020\u0025\u002e\u0035d\u0020\u006e\u000d\u000a",_cccfa .Offset ,0);_fcaed .writeString (_gafga );};};_cfcbf =_dgaed +1;};_deacd :=_bcb .MakeDict ();_deacd .Set ("\u0049\u006e\u0066\u006f",_fcaed ._gbfff );_deacd .Set ("\u0052\u006f\u006f\u0074",_fcaed ._edecd );_deacd .Set ("\u0053\u0069\u007a\u0065",_bcb .MakeInteger (int64 (_gceabb +1)));if _fcaed ._addfe &&_fcaed ._ecded > 0{_deacd .Set ("\u0050\u0072\u0065\u0076",_bcb .MakeInteger (_fcaed ._ecded ));};if _fcaed ._bggda !=nil {_deacd .Set ("\u0045n\u0063\u0072\u0079\u0070\u0074",_fcaed ._gbaeda );_deacd .Set ("\u0049\u0044",_fcaed ._ccbeb );_cga .Log .Trace ("\u0049d\u0073\u003a\u0020\u0025\u0073",_fcaed ._ccbeb );};_fcaed .writeString ("\u0074\u0072\u0061\u0069\u006c\u0065\u0072\u000a");_fcaed .writeString (_deacd .WriteString ());_fcaed .writeString ("\u000a");};_cdgac :=_e .Sprintf ("\u0073\u0074\u0061\u0072\u0074\u0078\u0072\u0065\u0066\u000a\u0025\u0064\u000a",_aadgb );_fcaed .writeString (_cdgac );_fcaed .writeString ("\u0025\u0025\u0045\u004f\u0046\u000a");if _fcaed ._gaacd ==nil {_fcaed ._gaacd =_fcaed ._aefcaa .Flush ();};return _fcaed ._gaacd ;};func (_gba *PdfReader )newPdfAnnotationLineFromDict (_bcae *_bcb .PdfObjectDictionary )(*PdfAnnotationLine ,error ){_bba :=PdfAnnotationLine {};_fag ,_ffc :=_gba .newPdfAnnotationMarkupFromDict (_bcae );if _ffc !=nil {return nil ,_ffc ;};_bba .PdfAnnotationMarkup =_fag ;_bba .L =_bcae .Get ("\u004c");_bba .BS =_bcae .Get ("\u0042\u0053");_bba .LE =_bcae .Get ("\u004c\u0045");_bba .IC =_bcae .Get ("\u0049\u0043");_bba .LL =_bcae .Get ("\u004c\u004c");_bba .LLE =_bcae .Get ("\u004c\u004c\u0045");_bba .Cap =_bcae .Get ("\u0043\u0061\u0070");_bba .IT =_bcae .Get ("\u0049\u0054");_bba .LLO =_bcae .Get ("\u004c\u004c\u004f");_bba .CP =_bcae .Get ("\u0043\u0050");_bba .Measure =_bcae .Get ("\u004de\u0061\u0073\u0075\u0072\u0065");_bba .CO =_bcae .Get ("\u0043\u004f");return &_bba ,nil ;};
// M returns the value of the magenta component of the color.
func (_dcdgd *PdfColorDeviceCMYK )M ()float64 {return _dcdgd [1]};
// 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 *_bcb .PdfIndirectObject `json:"-"`;Page int64 `json:"page"`;Mode string `json:"mode"`;X float64 `json:"x"`;Y float64 `json:"y"`;Zoom float64 `json:"zoom"`;};
// Encrypt encrypts the output file with a specified user/owner password.
func (_aabgc *PdfWriter )Encrypt (userPass ,ownerPass []byte ,options *EncryptOptions )error {_bgebce :=RC4_128bit ;if options !=nil {_bgebce =options .Algorithm ;};_cabdgg :=_aec .PermOwner ;if options !=nil {_cabdgg =options .Permissions ;};var _bgffa _fg .Filter ;switch _bgebce {case RC4_128bit :_bgffa =_fg .NewFilterV2 (16);case AES_128bit :_bgffa =_fg .NewFilterAESV2 ();case AES_256bit :_bgffa =_fg .NewFilterAESV3 ();default:return _e .Errorf ("\u0075n\u0073\u0075\u0070\u0070o\u0072\u0074\u0065\u0064\u0020a\u006cg\u006fr\u0069\u0074\u0068\u006d\u003a\u0020\u0025v",options .Algorithm );};_faceg ,_adeca ,_fdcge :=_bcb .PdfCryptNewEncrypt (_bgffa ,userPass ,ownerPass ,_cabdgg );if _fdcge !=nil {return _fdcge ;};_aabgc ._bggda =_faceg ;if _adeca .Major !=0{_aabgc .SetVersion (_adeca .Major ,_adeca .Minor );};_aabgc ._adaeb =_adeca .Encrypt ;_aabgc ._ccbeb =_bcb .MakeArray (_bcb .MakeHexString (_adeca .ID0 ),_bcb .MakeHexString (_adeca .ID1 ));_cbcbbb :=_bcb .MakeIndirectObject (_adeca .Encrypt );_aabgc ._gbaeda =_cbcbbb ;_aabgc .addObject (_cbcbbb );return nil ;};
// ToPdfObject returns the PDF representation of the shading dictionary.
func (_dcea *PdfShadingType7 )ToPdfObject ()_bcb .PdfObject {_dcea .PdfShading .ToPdfObject ();_cebg ,_ebafdd :=_dcea .getShadingDict ();if _ebafdd !=nil {_cga .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 _dcea .BitsPerCoordinate !=nil {_cebg .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065",_dcea .BitsPerCoordinate );};if _dcea .BitsPerComponent !=nil {_cebg .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_dcea .BitsPerComponent );};if _dcea .BitsPerFlag !=nil {_cebg .Set ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067",_dcea .BitsPerFlag );};if _dcea .Decode !=nil {_cebg .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_dcea .Decode );};if _dcea .Function !=nil {if len (_dcea .Function )==1{_cebg .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_dcea .Function [0].ToPdfObject ());}else {_eccab :=_bcb .MakeArray ();for _ ,_gfddf :=range _dcea .Function {_eccab .Append (_gfddf .ToPdfObject ());};_cebg .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_eccab );};};return _dcea ._eced ;};func (_ebdcd PdfFont )actualFont ()pdfFont {if _ebdcd ._fgge ==nil {_cga .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",_ebdcd );};return _ebdcd ._fgge ;};
// PdfAnnotationPopup represents Popup annotations.
// (Section 12.5.6.14).
type PdfAnnotationPopup struct{*PdfAnnotation ;Parent _bcb .PdfObject ;Open _bcb .PdfObject ;};func _agad (_eccd *_bcb .PdfObjectDictionary )*VRI {_gefd ,_ :=_bcb .GetString (_eccd .Get ("\u0054\u0055"));_cbbf ,_ :=_bcb .GetString (_eccd .Get ("\u0054\u0053"));return &VRI {Cert :_cfcbg (_eccd .Get ("\u0043\u0065\u0072\u0074")),OCSP :_cfcbg (_eccd .Get ("\u004f\u0043\u0053\u0050")),CRL :_cfcbg (_eccd .Get ("\u0043\u0052\u004c")),TU :_gefd ,TS :_cbbf };};func (_cccf *PdfAppender )mergeResources (_bbdff ,_gfedg _bcb .PdfObject ,_fdbg map[_bcb .PdfObjectName ]_bcb .PdfObjectName )_bcb .PdfObject {if _gfedg ==nil &&_bbdff ==nil {return nil ;};if _gfedg ==nil {return _bbdff ;};_gbeb ,_ecgbb :=_bcb .GetDict (_gfedg );if !_ecgbb {return _bbdff ;};if _bbdff ==nil {_bga :=_bcb .MakeDict ();_bga .Merge (_gbeb );return _gfedg ;};_adgc ,_ecgbb :=_bcb .GetDict (_bbdff );if !_ecgbb {_cga .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");_adgc =_bcb .MakeDict ();};for _ ,_daaf :=range _gbeb .Keys (){if _eaca ,_ebda :=_fdbg [_daaf ];_ebda {_adgc .Set (_eaca ,_gbeb .Get (_daaf ));}else {_adgc .Set (_daaf ,_gbeb .Get (_daaf ));};};return _adgc ;};func (_dega *XObjectImage )getParamsDict ()*_bcb .PdfObjectDictionary {_fgdf :=_bcb .MakeDict ();_fgdf .Set ("\u0057\u0069\u0064t\u0068",_bcb .MakeInteger (*_dega .Width ));_fgdf .Set ("\u0048\u0065\u0069\u0067\u0068\u0074",_bcb .MakeInteger (*_dega .Height ));_fgdf .Set ("\u0043o\u006co\u0072\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074\u0073",_bcb .MakeInteger (int64 (_dega .ColorSpace .GetNumComponents ())));_fgdf .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_bcb .MakeInteger (*_dega .BitsPerComponent ));return _fgdf ;};
// SetDate sets the `M` field of the signature.
func (_adfge *PdfSignature )SetDate (date _d .Time ,format string ){if format ==""{format ="\u0044\u003a\u003200\u0036\u0030\u0031\u0030\u0032\u0031\u0035\u0030\u0034\u0030\u0035\u002d\u0030\u0037\u0027\u0030\u0030\u0027";};_adfge .M =_bcb .MakeString (date .Format (format ));};
// ToPdfObject returns the PDF representation of the function.
func (_bfcca *PdfFunctionType4 )ToPdfObject ()_bcb .PdfObject {_gacd :=_bfcca ._bbffg ;if _gacd ==nil {_bfcca ._bbffg =&_bcb .PdfObjectStream {};_gacd =_bfcca ._bbffg ;};_fgabf :=_bcb .MakeDict ();_fgabf .Set ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065",_bcb .MakeInteger (4));_gfafb :=&_bcb .PdfObjectArray {};for _ ,_bcaaf :=range _bfcca .Domain {_gfafb .Append (_bcb .MakeFloat (_bcaaf ));};_fgabf .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_gfafb );_dbff :=&_bcb .PdfObjectArray {};for _ ,_aegd :=range _bfcca .Range {_dbff .Append (_bcb .MakeFloat (_aegd ));};_fgabf .Set ("\u0052\u0061\u006eg\u0065",_dbff );if _bfcca ._gfdef ==nil &&_bfcca .Program !=nil {_bfcca ._gfdef =[]byte (_bfcca .Program .String ());};_fgabf .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_bcb .MakeInteger (int64 (len (_bfcca ._gfdef ))));_gacd .Stream =_bfcca ._gfdef ;_gacd .PdfObjectDictionary =_fgabf ;return _gacd ;};
// ColorToRGB converts a color in Separation colorspace to RGB colorspace.
func (_eaefe *PdfColorspaceSpecialSeparation )ColorToRGB (color PdfColor )(PdfColor ,error ){if _eaefe .AlternateSpace ==nil {return nil ,_ae .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 _eaefe .AlternateSpace .ColorToRGB (color );};
// 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 (_gbggd *PdfReader )GetObjectNums ()[]int {return _gbggd ._ecage .GetObjectNums ()};
// GetRuneMetrics returns the character metrics for the specified rune.
// A bool flag is returned to indicate whether or not the entry was found.
func (_aedd pdfCIDFontType0 )GetRuneMetrics (r rune )(_acc .CharMetrics ,bool ){return _acc .CharMetrics {Wx :_aedd ._becg },true ;};
// AddPage adds a page to the PDF file. The new page should be an indirect object.
func (_fbde *PdfWriter )AddPage (page *PdfPage )error {_bdba (page );_egabf :=page .ToPdfObject ();_cga .Log .Trace ("\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d");_cga .Log .Trace ("\u0041p\u0070\u0065\u006e\u0064i\u006e\u0067\u0020\u0074\u006f \u0070a\u0067e\u0020\u006c\u0069\u0073\u0074\u0020\u0025T",_egabf );_ecddd ,_dggag :=_bcb .GetIndirect (_egabf );if !_dggag {return _ae .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");};_cga .Log .Trace ("\u0025\u0073",_ecddd );_cga .Log .Trace ("\u0025\u0073",_ecddd .PdfObject );_bbfbe ,_dggag :=_bcb .GetDict (_ecddd .PdfObject );if !_dggag {return _ae .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");};_cacg ,_dggag :=_bcb .GetName (_bbfbe .Get ("\u0054\u0079\u0070\u0065"));if !_dggag {return _e .Errorf ("\u0070\u0061\u0067\u0065\u0020\u0073\u0068\u006f\u0075\u006c\u0064\u0020\u0068\u0061\u0076\u0065\u0020\u0061\u0020\u0054y\u0070\u0065\u0020\u006b\u0065\u0079\u0020\u0077\u0069t\u0068\u0020\u0061\u0020\u0076\u0061\u006c\u0075\u0065\u0020\u006f\u0066\u0020t\u0079\u0070\u0065\u0020\u006e\u0061m\u0065\u0020\u0028%\u0054\u0029",_bbfbe .Get ("\u0054\u0079\u0070\u0065"));};if _cacg .String ()!="\u0050\u0061\u0067\u0065"{return _ae .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");};_bcfec :=[]_bcb .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"};_cabdd ,_aebac :=_bcb .GetIndirect (_bbfbe .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"));_cga .Log .Trace ("P\u0061g\u0065\u0020\u0050\u0061\u0072\u0065\u006e\u0074:\u0020\u0025\u0054\u0020(%\u0076\u0029",_bbfbe .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"),_aebac );for _aebac {_cga .Log .Trace ("\u0050a\u0067e\u0020\u0050\u0061\u0072\u0065\u006e\u0074\u003a\u0020\u0025\u0054",_cabdd );_affb ,_bdbgc :=_bcb .GetDict (_cabdd .PdfObject );if !_bdbgc {return _ae .New ("i\u006e\u0076\u0061\u006cid\u0020P\u0061\u0072\u0065\u006e\u0074 \u006f\u0062\u006a\u0065\u0063\u0074");};for _ ,_cdbceb :=range _bcfec {_cga .Log .Trace ("\u0046\u0069\u0065\u006c\u0064\u0020\u0025\u0073",_cdbceb );if _bbfbe .Get (_cdbceb )!=nil {_cga .Log .Trace ("\u002d \u0070a\u0067\u0065\u0020\u0068\u0061s\u0020\u0061l\u0072\u0065\u0061\u0064\u0079");continue ;};if _gceag :=_affb .Get (_cdbceb );_gceag !=nil {_cga .Log .Trace ("\u0049\u006e\u0068\u0065ri\u0074\u0069\u006e\u0067\u0020\u0066\u0069\u0065\u006c\u0064\u0020\u0025\u0073",_cdbceb );_bbfbe .Set (_cdbceb ,_gceag );};};_cabdd ,_aebac =_bcb .GetIndirect (_affb .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"));_cga .Log .Trace ("\u004ee\u0078t\u0020\u0070\u0061\u0072\u0065\u006e\u0074\u003a\u0020\u0025\u0054",_affb .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"));};_cga .Log .Trace ("\u0054\u0072\u0061\u0076\u0065\u0072\u0073\u0061\u006c \u0064\u006f\u006e\u0065");_bbfbe .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_fbde ._gbff );_ecddd .PdfObject =_bbfbe ;_ecbeg ,_dggag :=_bcb .GetDict (_fbde ._gbff .PdfObject );if !_dggag {return _ae .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");};_gdbdc ,_dggag :=_bcb .GetArray (_ecbeg .Get ("\u004b\u0069\u0064\u0073"));if !_dggag {return _ae .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");};_gdbdc .Append (_ecddd );_fbde ._ddcfa [_bbfbe ]=struct{}{};_ecbf ,_dggag :=_bcb .GetInt (_ecbeg .Get ("\u0043\u006f\u0075n\u0074"));if !_dggag {return _ae .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");};*_ecbf =*_ecbf +1;_fbde .addObject (_ecddd );_ebace :=_fbde .addObjects (_bbfbe );if _ebace !=nil {return _ebace ;};return nil ;};func _ggbaa (_eccbe _bcb .PdfObject ){_cga .Log .Debug ("\u006f\u0062\u006a\u003a\u0020\u0025\u0054\u0020\u0025\u0073",_eccbe ,_eccbe .String ());if _dbdg ,_fedad :=_eccbe .(*_bcb .PdfObjectStream );_fedad {_egeef ,_ececg :=_bcb .DecodeStream (_dbdg );if _ececg !=nil {_cga .Log .Debug ("\u0045r\u0072\u006f\u0072\u003a\u0020\u0025v",_ececg );return ;};_cga .Log .Debug ("D\u0065\u0063\u006f\u0064\u0065\u0064\u003a\u0020\u0025\u0073",_egeef );}else if _bgebcd ,_febbe :=_eccbe .(*_bcb .PdfIndirectObject );_febbe {_cga .Log .Debug ("\u0025\u0054\u0020%\u0076",_bgebcd .PdfObject ,_bgebcd .PdfObject );_cga .Log .Debug ("\u0025\u0073",_bgebcd .PdfObject .String ());};};
// NewXObjectImage returns a new XObjectImage.
func NewXObjectImage ()*XObjectImage {_cfegea :=&XObjectImage {};_ffdc :=&_bcb .PdfObjectStream {};_ffdc .PdfObjectDictionary =_bcb .MakeDict ();_cfegea ._gddag =_ffdc ;return _cfegea ;};func (_gbed *PdfPage )getParentResources ()(*PdfPageResources ,error ){_aaabgg :=_gbed .Parent ;for _aaabgg !=nil {_bfad ,_ffae :=_bcb .GetDict (_aaabgg );if !_ffae {_cga .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 ,_ae .New ("i\u006e\u0076\u0061\u006cid\u0020p\u0061\u0072\u0065\u006e\u0074 \u006f\u0062\u006a\u0065\u0063\u0074");};if _acaaf :=_bfad .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");_acaaf !=nil {_fffbf ,_dcfg :=_bcb .GetDict (_acaaf );if !_dcfg {return nil ,_ae .New ("i\u006e\u0076\u0061\u006cid\u0020r\u0065\u0073\u006f\u0075\u0072c\u0065\u0020\u0064\u0069\u0063\u0074");};_ffgf ,_ddefe :=NewPdfPageResourcesFromDict (_fffbf );if _ddefe !=nil {return nil ,_ddefe ;};return _ffgf ,nil ;};_aaabgg =_bfad .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");};return nil ,nil ;};
// Hasher is the interface that wraps the basic Write method.
type Hasher interface{Write (_gadee []byte )(_agaf int ,_ccgg error );};func (_gbeed *pdfCIDFontType2 )getFontDescriptor ()*PdfFontDescriptor {return _gbeed ._ecaed };
// ToPdfObject implements interface PdfModel.
func (_bfc *PdfAnnotationFreeText )ToPdfObject ()_bcb .PdfObject {_bfc .PdfAnnotation .ToPdfObject ();_fdce :=_bfc ._daa ;_ebdc :=_fdce .PdfObject .(*_bcb .PdfObjectDictionary );_bfc .PdfAnnotationMarkup .appendToPdfDictionary (_ebdc );_ebdc .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_bcb .MakeName ("\u0046\u0072\u0065\u0065\u0054\u0065\u0078\u0074"));_ebdc .SetIfNotNil ("\u0044\u0041",_bfc .DA );_ebdc .SetIfNotNil ("\u0051",_bfc .Q );_ebdc .SetIfNotNil ("\u0052\u0043",_bfc .RC );_ebdc .SetIfNotNil ("\u0044\u0053",_bfc .DS );_ebdc .SetIfNotNil ("\u0043\u004c",_bfc .CL );_ebdc .SetIfNotNil ("\u0049\u0054",_bfc .IT );_ebdc .SetIfNotNil ("\u0042\u0045",_bfc .BE );_ebdc .SetIfNotNil ("\u0052\u0044",_bfc .RD );_ebdc .SetIfNotNil ("\u0042\u0053",_bfc .BS );_ebdc .SetIfNotNil ("\u004c\u0045",_bfc .LE );return _fdce ;};
// GetCerts returns the signature certificate chain.
func (_afccfe *PdfSignature )GetCerts ()([]*_ffg .Certificate ,error ){var _defcc []func ()([]*_ffg .Certificate ,error );switch _gddec ,_ :=_bcb .GetNameVal (_afccfe .SubFilter );_gddec {case "\u0061\u0064\u0062\u0065.p\u006b\u0063\u0073\u0037\u002e\u0064\u0065\u0074\u0061\u0063\u0068\u0065\u0064","\u0045\u0054\u0053\u0049.C\u0041\u0064\u0045\u0053\u002e\u0064\u0065\u0074\u0061\u0063\u0068\u0065\u0064":_defcc =append (_defcc ,_afccfe .extractChainFromPKCS7 ,_afccfe .extractChainFromCert );case "\u0061d\u0062e\u002e\u0078\u0035\u0030\u0039.\u0072\u0073a\u005f\u0073\u0068\u0061\u0031":_defcc =append (_defcc ,_afccfe .extractChainFromCert );case "\u0045\u0054\u0053I\u002e\u0052\u0046\u0043\u0033\u0031\u0036\u0031":_defcc =append (_defcc ,_afccfe .extractChainFromPKCS7 );default:return nil ,_e .Errorf ("\u0075n\u0073\u0075\u0070\u0070o\u0072\u0074\u0065\u0064\u0020S\u0075b\u0046i\u006c\u0074\u0065\u0072\u003a\u0020\u0025s",_gddec );};for _ ,_dabbg :=range _defcc {_ebggc ,_gaffd :=_dabbg ();if _gaffd !=nil {return nil ,_gaffd ;};if len (_ebggc )> 0{return _ebggc ,nil ;};};return nil ,ErrSignNoCertificates ;};func (_bafg *PdfReader )newPdfAnnotationPopupFromDict (_eaabd *_bcb .PdfObjectDictionary )(*PdfAnnotationPopup ,error ){_gaac :=PdfAnnotationPopup {};_gaac .Parent =_eaabd .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");_gaac .Open =_eaabd .Get ("\u004f\u0070\u0065\u006e");return &_gaac ,nil ;};
// GetCharMetrics returns the char metrics for character code `code`.
func (_fcbe pdfFontType0 )GetCharMetrics (code _ddd .CharCode )(_acc .CharMetrics ,bool ){if _fcbe .DescendantFont ==nil {_cga .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",_fcbe );return _acc .CharMetrics {},false ;};return _fcbe .DescendantFont .GetCharMetrics (code );};
// 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 *_bcb .PdfObjectName ;Colorants _bcb .PdfObject ;Process _bcb .PdfObject ;MixingHints _bcb .PdfObject ;_dbgdg *_bcb .PdfIndirectObject ;};
// G returns the value of the green component of the color.
func (_gcade *PdfColorDeviceRGB )G ()float64 {return _gcade [1]};
// GetNumComponents returns the number of color components (1 for grayscale).
func (_aacc *PdfColorDeviceGray )GetNumComponents ()int {return 1};
// ToPdfObject implements interface PdfModel.
func (_cc *PdfActionSubmitForm )ToPdfObject ()_bcb .PdfObject {_cc .PdfAction .ToPdfObject ();_accg :=_cc ._dce ;_fgc :=_accg .PdfObject .(*_bcb .PdfObjectDictionary );_fgc .SetIfNotNil ("\u0053",_bcb .MakeName (string (ActionTypeSubmitForm )));if _cc .F !=nil {_fgc .Set ("\u0046",_cc .F .ToPdfObject ());};_fgc .SetIfNotNil ("\u0046\u0069\u0065\u006c\u0064\u0073",_cc .Fields );_fgc .SetIfNotNil ("\u0046\u006c\u0061g\u0073",_cc .Flags );return _accg ;};
// 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 (_agda *PdfColorspaceDeviceCMYK )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=4{return nil ,_ae .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_fcbg :=vals [0];if _fcbg < 0.0||_fcbg > 1.0{return nil ,_ae .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_fcag :=vals [1];if _fcag < 0.0||_fcag > 1.0{return nil ,_ae .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_eccf :=vals [2];if _eccf < 0.0||_eccf > 1.0{return nil ,_ae .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_abdc :=vals [3];if _abdc < 0.0||_abdc > 1.0{return nil ,_ae .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_ebbb :=NewPdfColorDeviceCMYK (_fcbg ,_fcag ,_eccf ,_abdc );return _ebbb ,nil ;};
// ColorFromPdfObjects gets the color from a series of pdf objects (4 for cmyk).
func (_gae *PdfColorspaceDeviceCMYK )ColorFromPdfObjects (objects []_bcb .PdfObject )(PdfColor ,error ){if len (objects )!=4{return nil ,_ae .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_bdbb ,_fbcca :=_bcb .GetNumbersAsFloat (objects );if _fbcca !=nil {return nil ,_fbcca ;};return _gae .ColorFromFloats (_bdbb );};func (_dbc *PdfReader )newPdfActionGotoRFromDict (_agcb *_bcb .PdfObjectDictionary )(*PdfActionGoToR ,error ){_efcg ,_eef :=_geg (_agcb .Get ("\u0046"));if _eef !=nil {return nil ,_eef ;};return &PdfActionGoToR {D :_agcb .Get ("\u0044"),NewWindow :_agcb .Get ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw"),F :_efcg },nil ;};func (_ffdfd *LTV )enable (_gdfcg ,_fgfe []*_ffg .Certificate ,_ddbg string )error {_abdb ,_cbbb ,_decba :=_ffdfd .buildCertChain (_gdfcg ,_fgfe );if _decba !=nil {return _decba ;};_egeaf ,_decba :=_ffdfd .getCerts (_abdb );if _decba !=nil {return _decba ;};_ggga ,_decba :=_ffdfd .getOCSPs (_abdb ,_cbbb );if _decba !=nil {return _decba ;};_adbgb ,_decba :=_ffdfd .getCRLs (_abdb );if _decba !=nil {return _decba ;};_gddg :=_ffdfd ._gddf ;_gdbbf ,_decba :=_gddg .addCerts (_egeaf );if _decba !=nil {return _decba ;};_gfafbf ,_decba :=_gddg .addOCSPs (_ggga );if _decba !=nil {return _decba ;};_cdgga ,_decba :=_gddg .addCRLs (_adbgb );if _decba !=nil {return _decba ;};if _ddbg !=""{_gddg .VRI [_ddbg ]=&VRI {Cert :_gdbbf ,OCSP :_gfafbf ,CRL :_cdgga };};_ffdfd ._dfegg .SetDSS (_gddg );return nil ;};func (_edgf *fontFile )parseASCIIPart (_adfe []byte )error {if len (_adfe )< 2||string (_adfe [:2])!="\u0025\u0021"{return _ae .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");};_gcgbd ,_faefg ,_aacga :=_cgfef (_adfe );if _aacga !=nil {return _aacga ;};_gedg :=_ffbd (_gcgbd );_edgf ._cfgbe =_gedg ["\u0046\u006f\u006e\u0074\u004e\u0061\u006d\u0065"];if _edgf ._cfgbe ==""{_cga .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 _faefg !=""{_bfdbd ,_agcgc :=_bgcc (_faefg );if _agcgc !=nil {return _agcgc ;};_ggdea ,_agcgc :=_ddd .NewCustomSimpleTextEncoder (_bfdbd ,nil );if _agcgc !=nil {_cga .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",_agcgc );return nil ;};_edgf ._ecge =_ggdea ;};return nil ;};
// Register registers (caches) a model to primitive object relationship.
func (_bbagd *modelManager )Register (primitive _bcb .PdfObject ,model PdfModel ){_bbagd ._eccaga [model ]=primitive ;_bbagd ._ecfgbb [primitive ]=model ;};func (_fbcdda *PdfSignature )extractChainFromPKCS7 ()([]*_ffg .Certificate ,error ){_gggdb ,_acgcd :=_ce .Parse (_fbcdda .Contents .Bytes ());if _acgcd !=nil {return nil ,_acgcd ;};return _gggdb .Certificates ,nil ;};
// GetNumPages returns the number of pages in the document.
func (_egcea *PdfReader )GetNumPages ()(int ,error ){if _egcea ._ecage .GetCrypter ()!=nil &&!_egcea ._ecage .IsAuthenticated (){return 0,_e .Errorf ("\u0066\u0069\u006ce\u0020\u006e\u0065\u0065d\u0020\u0074\u006f\u0020\u0062\u0065\u0020d\u0065\u0063\u0072\u0079\u0070\u0074\u0065\u0064\u0020\u0066\u0069\u0072\u0073\u0074");};return len (_egcea ._fcff ),nil ;};
// ToPdfObject implements interface PdfModel.
func (_ddbe *PdfAnnotationRichMedia )ToPdfObject ()_bcb .PdfObject {_ddbe .PdfAnnotation .ToPdfObject ();_gfcc :=_ddbe ._daa ;_bcgac :=_gfcc .PdfObject .(*_bcb .PdfObjectDictionary );_bcgac .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_bcb .MakeName ("\u0052i\u0063\u0068\u004d\u0065\u0064\u0069a"));_bcgac .SetIfNotNil ("\u0052\u0069\u0063\u0068\u004d\u0065\u0064\u0069\u0061\u0053\u0065\u0074t\u0069\u006e\u0067\u0073",_ddbe .RichMediaSettings );_bcgac .SetIfNotNil ("\u0052\u0069c\u0068\u004d\u0065d\u0069\u0061\u0043\u006f\u006e\u0074\u0065\u006e\u0074",_ddbe .RichMediaContent );return _gfcc ;};
// BorderEffect represents a border effect (Table 167 p. 395).
type BorderEffect int ;
// Decrypt decrypts the PDF file with a specified password. Also tries to
// decrypt with an empty password. Returns true if successful,
// false otherwise.
func (_fgeda *PdfReader )Decrypt (password []byte )(bool ,error ){_baee ,_dfccb :=_fgeda ._ecage .Decrypt (password );if _dfccb !=nil {return false ,_dfccb ;};if !_baee {return false ,nil ;};_dfccb =_fgeda .loadStructure ();if _dfccb !=nil {_cga .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",_dfccb );return false ,_dfccb ;};return true ,nil ;};
// Encoder returns the font's text encoder.
func (_gdfec *PdfFont )Encoder ()_ddd .TextEncoder {_beaab :=_gdfec .actualFont ();if _beaab ==nil {_cga .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",_gdfec ._fgge );return nil ;};return _beaab .Encoder ();};
// AddFont adds a font dictionary to the Font resources.
func (_gfggg *PdfPage )AddFont (name _bcb .PdfObjectName ,font _bcb .PdfObject )error {if _gfggg .Resources ==nil {_gfggg .Resources =NewPdfPageResources ();};if _gfggg .Resources .Font ==nil {_gfggg .Resources .Font =_bcb .MakeDict ();};_eegbb ,_cfgag :=_bcb .TraceToDirectObject (_gfggg .Resources .Font ).(*_bcb .PdfObjectDictionary );if !_cfgag {_cga .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",_bcb .TraceToDirectObject (_gfggg .Resources .Font ));return _ae .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_eegbb .Set (name ,font );return nil ;};
// ToPdfObject returns a PDF object representation of the outline item.
func (_faeec *OutlineItem )ToPdfObject ()_bcb .PdfObject {_afaad ,_ :=_faeec .ToPdfOutlineItem ();return _afaad .ToPdfObject ();};
// AddExtGState adds a graphics state to the XObject resources.
func (_bcgf *PdfPage )AddExtGState (name _bcb .PdfObjectName ,egs *_bcb .PdfObjectDictionary )error {if _bcgf .Resources ==nil {_bcgf .Resources =NewPdfPageResources ();};if _bcgf .Resources .ExtGState ==nil {_bcgf .Resources .ExtGState =_bcb .MakeDict ();};_ebed ,_fddb :=_bcb .TraceToDirectObject (_bcgf .Resources .ExtGState ).(*_bcb .PdfObjectDictionary );if !_fddb {_cga .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",_bcb .TraceToDirectObject (_bcgf .Resources .ExtGState ));return _ae .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_ebed .Set (name ,egs );return nil ;};func _aga (_dfed _bcb .PdfObject )(*PdfColorspaceDeviceN ,error ){_cdacd :=NewPdfColorspaceDeviceN ();if _gbda ,_dagd :=_dfed .(*_bcb .PdfIndirectObject );_dagd {_cdacd ._dcfed =_gbda ;};_dfed =_bcb .TraceToDirectObject (_dfed );_beac ,_dbac :=_dfed .(*_bcb .PdfObjectArray );if !_dbac {return nil ,_e .Errorf ("\u0064\u0065\u0076\u0069\u0063\u0065\u004e\u0020\u0043\u0053\u003a \u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006f\u0062j\u0065\u0063\u0074");};if _beac .Len ()!=4&&_beac .Len ()!=5{return nil ,_e .Errorf ("\u0064\u0065\u0076ic\u0065\u004e\u0020\u0043\u0053\u003a\u0020\u0049\u006ec\u006fr\u0072e\u0063t\u0020\u0061\u0072\u0072\u0061\u0079\u0020\u006c\u0065\u006e\u0067\u0074\u0068");};_dfed =_beac .Get (0);_bafdd ,_dbac :=_dfed .(*_bcb .PdfObjectName );if !_dbac {return nil ,_e .Errorf ("\u0064\u0065\u0076i\u0063\u0065\u004e\u0020C\u0053\u003a\u0020\u0069\u006e\u0076\u0061l\u0069\u0064\u0020\u0066\u0061\u006d\u0069\u006c\u0079\u0020\u006e\u0061\u006d\u0065");};if *_bafdd !="\u0044e\u0076\u0069\u0063\u0065\u004e"{return nil ,_e .Errorf ("\u0064\u0065v\u0069\u0063\u0065\u004e\u0020\u0043\u0053\u003a\u0020\u0077\u0072\u006f\u006e\u0067\u0020\u0066\u0061\u006d\u0069\u006c\u0079\u0020na\u006d\u0065");};_dfed =_beac .Get (1);_dfed =_bcb .TraceToDirectObject (_dfed );_cgcd ,_dbac :=_dfed .(*_bcb .PdfObjectArray );if !_dbac {return nil ,_e .Errorf ("\u0064\u0065\u0076i\u0063\u0065\u004e\u0020C\u0053\u003a\u0020\u0049\u006e\u0076\u0061l\u0069\u0064\u0020\u006e\u0061\u006d\u0065\u0073\u0020\u0061\u0072\u0072\u0061\u0079");};_cdacd .ColorantNames =_cgcd ;_dfed =_beac .Get (2);_eeeb ,_efbaf :=NewPdfColorspaceFromPdfObject (_dfed );if _efbaf !=nil {return nil ,_efbaf ;};_cdacd .AlternateSpace =_eeeb ;_gdefc ,_efbaf :=_acdfd (_beac .Get (3));if _efbaf !=nil {return nil ,_efbaf ;};_cdacd .TintTransform =_gdefc ;if _beac .Len ()==5{_eada ,_caeec :=_egdf (_beac .Get (4));if _caeec !=nil {return nil ,_caeec ;};_cdacd .Attributes =_eada ;};return _cdacd ,nil ;};
// String returns a string representation of what flags are set.
func (_geag FieldFlag )String ()string {_fcfc :="";if _geag ==FieldFlagClear {_fcfc ="\u0043\u006c\u0065a\u0072";return _fcfc ;};if _geag &FieldFlagReadOnly > 0{_fcfc +="\u007cR\u0065\u0061\u0064\u004f\u006e\u006cy";};if _geag &FieldFlagRequired > 0{_fcfc +="\u007cR\u0065\u0061\u0064\u004f\u006e\u006cy";};if _geag &FieldFlagNoExport > 0{_fcfc +="\u007cN\u006f\u0045\u0078\u0070\u006f\u0072t";};if _geag &FieldFlagNoToggleToOff > 0{_fcfc +="\u007c\u004e\u006f\u0054\u006f\u0067\u0067\u006c\u0065T\u006f\u004f\u0066\u0066";};if _geag &FieldFlagRadio > 0{_fcfc +="\u007c\u0052\u0061\u0064\u0069\u006f";};if _geag &FieldFlagPushbutton > 0{_fcfc +="|\u0050\u0075\u0073\u0068\u0062\u0075\u0074\u0074\u006f\u006e";};if _geag &FieldFlagRadiosInUnision > 0{_fcfc +="\u007c\u0052a\u0064\u0069\u006fs\u0049\u006e\u0055\u006e\u0069\u0073\u0069\u006f\u006e";};if _geag &FieldFlagMultiline > 0{_fcfc +="\u007c\u004d\u0075\u006c\u0074\u0069\u006c\u0069\u006e\u0065";};if _geag &FieldFlagPassword > 0{_fcfc +="\u007cP\u0061\u0073\u0073\u0077\u006f\u0072d";};if _geag &FieldFlagFileSelect > 0{_fcfc +="|\u0046\u0069\u006c\u0065\u0053\u0065\u006c\u0065\u0063\u0074";};if _geag &FieldFlagDoNotScroll > 0{_fcfc +="\u007c\u0044\u006fN\u006f\u0074\u0053\u0063\u0072\u006f\u006c\u006c";};if _geag &FieldFlagComb > 0{_fcfc +="\u007c\u0043\u006fm\u0062";};if _geag &FieldFlagRichText > 0{_fcfc +="\u007cR\u0069\u0063\u0068\u0054\u0065\u0078t";};if _geag &FieldFlagDoNotSpellCheck > 0{_fcfc +="\u007c\u0044o\u004e\u006f\u0074S\u0070\u0065\u006c\u006c\u0043\u0068\u0065\u0063\u006b";};if _geag &FieldFlagCombo > 0{_fcfc +="\u007c\u0043\u006f\u006d\u0062\u006f";};if _geag &FieldFlagEdit > 0{_fcfc +="\u007c\u0045\u0064i\u0074";};if _geag &FieldFlagSort > 0{_fcfc +="\u007c\u0053\u006fr\u0074";};if _geag &FieldFlagMultiSelect > 0{_fcfc +="\u007c\u004d\u0075l\u0074\u0069\u0053\u0065\u006c\u0065\u0063\u0074";};if _geag &FieldFlagCommitOnSelChange > 0{_fcfc +="\u007cC\u006fm\u006d\u0069\u0074\u004f\u006eS\u0065\u006cC\u0068\u0061\u006e\u0067\u0065";};return _gc .Trim (_fcfc ,"\u007c");};
// 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 *_bcb .PdfObjectStream ;Data []byte ;_aaadb *_bcb .PdfIndirectObject ;_gdgc *_bcb .PdfObjectStream ;};
// PdfActionThread represents a thread action.
type PdfActionThread struct{*PdfAction ;F *PdfFilespec ;D _bcb .PdfObject ;B _bcb .PdfObject ;};
// ToPdfObject implements interface PdfModel.
func (_ddaf *PdfAnnotationMovie )ToPdfObject ()_bcb .PdfObject {_ddaf .PdfAnnotation .ToPdfObject ();_dgbb :=_ddaf ._daa ;_efbg :=_dgbb .PdfObject .(*_bcb .PdfObjectDictionary );_efbg .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_bcb .MakeName ("\u004d\u006f\u0076i\u0065"));_efbg .SetIfNotNil ("\u0054",_ddaf .T );_efbg .SetIfNotNil ("\u004d\u006f\u0076i\u0065",_ddaf .Movie );_efbg .SetIfNotNil ("\u0041",_ddaf .A );return _dgbb ;};
// ToPdfObject returns a PdfObject representation of PdfColorspaceDeviceNAttributes as a PdfObjectDictionary directly
// or indirectly within an indirect object container.
func (_fcgac *PdfColorspaceDeviceNAttributes )ToPdfObject ()_bcb .PdfObject {_ddafb :=_bcb .MakeDict ();if _fcgac .Subtype !=nil {_ddafb .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fcgac .Subtype );};_ddafb .SetIfNotNil ("\u0043o\u006c\u006f\u0072\u0061\u006e\u0074s",_fcgac .Colorants );_ddafb .SetIfNotNil ("\u0050r\u006f\u0063\u0065\u0073\u0073",_fcgac .Process );_ddafb .SetIfNotNil ("M\u0069\u0078\u0069\u006e\u0067\u0048\u0069\u006e\u0074\u0073",_fcgac .MixingHints );if _fcgac ._dbgdg !=nil {_fcgac ._dbgdg .PdfObject =_ddafb ;return _fcgac ._dbgdg ;};return _ddafb ;};
// PdfActionRendition represents a Rendition action.
type PdfActionRendition struct{*PdfAction ;R _bcb .PdfObject ;AN _bcb .PdfObject ;OP _bcb .PdfObject ;JS _bcb .PdfObject ;};func (_bfagge *PdfWriter )addObject (_aafb _bcb .PdfObject )bool {_cedffe :=_bfagge .hasObject (_aafb );if !_cedffe {_dfdg :=_bcb .ResolveReferencesDeep (_aafb ,_bfagge ._fddc );if _dfdg !=nil {_cga .Log .Debug ("E\u0052R\u004f\u0052\u003a\u0020\u0025\u0076\u0020\u002d \u0073\u006b\u0069\u0070pi\u006e\u0067",_dfdg );};_bfagge ._adbc =append (_bfagge ._adbc ,_aafb );_bfagge ._affdb [_aafb ]=struct{}{};return true ;};return false ;};
// GetNumComponents returns the number of color components (3 for Lab).
func (_fdde *PdfColorLab )GetNumComponents ()int {return 3};func (_fabc *DSS )generateHashMap (_ccfdg []*_bcb .PdfObjectStream )(map[string ]*_bcb .PdfObjectStream ,error ){_cdacb :=map[string ]*_bcb .PdfObjectStream {};for _ ,_agdg :=range _ccfdg {_gegg ,_gbab :=_bcb .DecodeStream (_agdg );if _gbab !=nil {return nil ,_gbab ;};_edfb ,_gbab :=_ebeed (_gegg );if _gbab !=nil {return nil ,_gbab ;};_cdacb [string (_edfb )]=_agdg ;};return _cdacb ,nil ;};
// NewPdfColorspaceLab returns a new Lab colorspace object.
func NewPdfColorspaceLab ()*PdfColorspaceLab {_fcgge :=&PdfColorspaceLab {};_fcgge .BlackPoint =[]float64 {0.0,0.0,0.0};_fcgge .Range =[]float64 {-100,100,-100,100};return _fcgge ;};
// IsTerminal returns true for terminal fields, false otherwise.
// Terminal fields are fields whose descendants are only widget annotations.
func (_geaae *PdfField )IsTerminal ()bool {return len (_geaae .Kids )==0};
// NewXObjectForm creates a brand new XObject Form. Creates a new underlying PDF object stream primitive.
func NewXObjectForm ()*XObjectForm {_egefa :=&XObjectForm {};_dabede :=&_bcb .PdfObjectStream {};_dabede .PdfObjectDictionary =_bcb .MakeDict ();_egefa ._egcgbg =_dabede ;return _egefa ;};
// ToPdfObject implements interface PdfModel.
func (_cfg *PdfActionResetForm )ToPdfObject ()_bcb .PdfObject {_cfg .PdfAction .ToPdfObject ();_ggf :=_cfg ._dce ;_bgc :=_ggf .PdfObject .(*_bcb .PdfObjectDictionary );_bgc .SetIfNotNil ("\u0053",_bcb .MakeName (string (ActionTypeResetForm )));_bgc .SetIfNotNil ("\u0046\u0069\u0065\u006c\u0064\u0073",_cfg .Fields );_bgc .SetIfNotNil ("\u0046\u006c\u0061g\u0073",_cfg .Flags );return _ggf ;};
// 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 };};
// ToPdfObject implements interface PdfModel.
func (_gcaf *PdfAnnotationWidget )ToPdfObject ()_bcb .PdfObject {_gcaf .PdfAnnotation .ToPdfObject ();_efae :=_gcaf ._daa ;_affe :=_efae .PdfObject .(*_bcb .PdfObjectDictionary );if _gcaf ._eaa {return _efae ;};_gcaf ._eaa =true ;_affe .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_bcb .MakeName ("\u0057\u0069\u0064\u0067\u0065\u0074"));_affe .SetIfNotNil ("\u0048",_gcaf .H );_affe .SetIfNotNil ("\u004d\u004b",_gcaf .MK );_affe .SetIfNotNil ("\u0041",_gcaf .A );_affe .SetIfNotNil ("\u0041\u0041",_gcaf .AA );_affe .SetIfNotNil ("\u0042\u0053",_gcaf .BS );_eacd :=_gcaf .Parent ;if _gcaf ._cbgd !=nil {if _gcaf ._cbgd ._gggf ==_gcaf ._daa {_gcaf ._cbgd .ToPdfObject ();};_eacd =_gcaf ._cbgd .GetContainingPdfObject ();};if _eacd !=_efae {_affe .SetIfNotNil ("\u0050\u0061\u0072\u0065\u006e\u0074",_eacd );};_gcaf ._eaa =false ;return _efae ;};
// 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 ;
// PdfActionResetForm represents a resetForm action.
type PdfActionResetForm struct{*PdfAction ;Fields _bcb .PdfObject ;Flags _bcb .PdfObject ;};
// CustomKeys returns all custom info keys as list.
func (_aebg *PdfInfo )CustomKeys ()[]string {if _aebg ._affda ==nil {return nil ;};_gaafe :=make ([]string ,len (_aebg ._affda .Keys ()));for _ ,_ccdc :=range _aebg ._affda .Keys (){_gaafe =append (_gaafe ,_ccdc .String ());};return _gaafe ;};
// PdfColorspaceCalGray represents CalGray color space.
type PdfColorspaceCalGray struct{WhitePoint []float64 ;BlackPoint []float64 ;Gamma float64 ;_ecgg *_bcb .PdfIndirectObject ;};
// NewOutlineItem returns a new outline item instance.
func NewOutlineItem (title string ,dest OutlineDest )*OutlineItem {return &OutlineItem {Title :title ,Dest :dest };};
// NewXObjectFormFromStream builds the Form XObject from a stream object.
// TODO: Should this be exposed? Consider different access points.
func NewXObjectFormFromStream (stream *_bcb .PdfObjectStream )(*XObjectForm ,error ){_fdaab :=&XObjectForm {};_fdaab ._egcgbg =stream ;_dfab :=*(stream .PdfObjectDictionary );_bgca ,_eeef :=_bcb .NewEncoderFromStream (stream );if _eeef !=nil {return nil ,_eeef ;};_fdaab .Filter =_bgca ;if _fagae :=_dfab .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065");_fagae !=nil {_bfbbg ,_cadba :=_fagae .(*_bcb .PdfObjectName );if !_cadba {return nil ,_ae .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if *_bfbbg !="\u0046\u006f\u0072\u006d"{_cga .Log .Debug ("I\u006ev\u0061\u006c\u0069\u0064\u0020\u0066\u006f\u0072m\u0020\u0073\u0075\u0062ty\u0070\u0065");return nil ,_ae .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0066\u006f\u0072m\u0020\u0073\u0075\u0062ty\u0070\u0065");};};if _dfbed :=_dfab .Get ("\u0046\u006f\u0072\u006d\u0054\u0079\u0070\u0065");_dfbed !=nil {_fdaab .FormType =_dfbed ;};if _ddaec :=_dfab .Get ("\u0042\u0042\u006f\u0078");_ddaec !=nil {_fdaab .BBox =_ddaec ;};if _efcf :=_dfab .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");_efcf !=nil {_fdaab .Matrix =_efcf ;};if _ececa :=_dfab .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");_ececa !=nil {_ececa =_bcb .TraceToDirectObject (_ececa );_defa ,_beeda :=_ececa .(*_bcb .PdfObjectDictionary );if !_beeda {_cga .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 ,_bcb .ErrTypeError ;};_fdcb ,_efcbe :=NewPdfPageResourcesFromDict (_defa );if _efcbe !=nil {_cga .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 ,_efcbe ;};_fdaab .Resources =_fdcb ;_cga .Log .Trace ("\u0046\u006f\u0072\u006d r\u0065\u0073\u006f\u0075\u0072\u0063\u0065\u0073\u003a\u0020\u0025\u0023\u0076",_fdaab .Resources );};_fdaab .Group =_dfab .Get ("\u0047\u0072\u006fu\u0070");_fdaab .Ref =_dfab .Get ("\u0052\u0065\u0066");_fdaab .MetaData =_dfab .Get ("\u004d\u0065\u0074\u0061\u0044\u0061\u0074\u0061");_fdaab .PieceInfo =_dfab .Get ("\u0050i\u0065\u0063\u0065\u0049\u006e\u0066o");_fdaab .LastModified =_dfab .Get ("\u004c\u0061\u0073t\u004d\u006f\u0064\u0069\u0066\u0069\u0065\u0064");_fdaab .StructParent =_dfab .Get ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074");_fdaab .StructParents =_dfab .Get ("\u0053\u0074\u0072\u0075\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074\u0073");_fdaab .OPI =_dfab .Get ("\u004f\u0050\u0049");_fdaab .OC =_dfab .Get ("\u004f\u0043");_fdaab .Name =_dfab .Get ("\u004e\u0061\u006d\u0065");_fdaab .Stream =stream .Stream ;return _fdaab ,nil ;};
// NewPdfActionURI returns a new "Uri" action.
func NewPdfActionURI ()*PdfActionURI {_agc :=NewPdfAction ();_acd :=&PdfActionURI {};_acd .PdfAction =_agc ;_agc .SetContext (_acd );return _acd ;};func (_fbefe *PdfFilespec )getDict ()*_bcb .PdfObjectDictionary {if _gcfcf ,_bgeg :=_fbefe ._dcgf .(*_bcb .PdfIndirectObject );_bgeg {_eeaaa ,_cadcb :=_gcfcf .PdfObject .(*_bcb .PdfObjectDictionary );if !_cadcb {return nil ;};return _eeaaa ;}else if _dafga ,_fcae :=_fbefe ._dcgf .(*_bcb .PdfObjectDictionary );_fcae {return _dafga ;}else {_cga .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",_fbefe ._dcgf );return nil ;};};
// NewPdfPageResources returns a new PdfPageResources object.
func NewPdfPageResources ()*PdfPageResources {_bedcd :=&PdfPageResources {};_bedcd ._daggd =_bcb .MakeDict ();return _bedcd ;};func (_degb *PdfReader )newPdfAnnotationTrapNetFromDict (_dgg *_bcb .PdfObjectDictionary )(*PdfAnnotationTrapNet ,error ){_adadf :=PdfAnnotationTrapNet {};return &_adadf ,nil ;};func (_eaggc *pdfFontSimple )updateStandard14Font (){_aeaac ,_fceadd :=_eaggc .Encoder ().(_ddd .SimpleEncoder );if !_fceadd {_cga .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",_eaggc .Encoder (),_eaggc );return ;};_cccb :=_aeaac .Charcodes ();_eaggc ._dgdfc =make (map[_ddd .CharCode ]float64 ,len (_cccb ));for _ ,_ebee :=range _cccb {_gecad ,_ :=_aeaac .CharcodeToRune (_ebee );_eaggc ._dgdfc [_ebee ]=_eaggc ._gbggc [_gecad ].Wx ;};};
// GetContainingPdfObject returns the container of the image object (indirect object).
func (_dgaf *XObjectImage )GetContainingPdfObject ()_bcb .PdfObject {return _dgaf ._gddag };
// ImageToRGB converts an image in CMYK32 colorspace to an RGB image.
func (_cead *PdfColorspaceDeviceCMYK )ImageToRGB (img Image )(Image ,error ){_cga .Log .Trace ("\u0043\u004d\u0059\u004b\u0033\u0032\u0020\u002d\u003e\u0020\u0052\u0047\u0042");_cga .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 );_cga .Log .Trace ("\u004c\u0065\u006e \u0064\u0061\u0074\u0061\u003a\u0020\u0025\u0064",len (img .Data ));_cga .Log .Trace ("H\u0065\u0069\u0067\u0068t:\u0020%\u0064\u002c\u0020\u0057\u0069d\u0074\u0068\u003a\u0020\u0025\u0064",img .Height ,img .Width );_dbdb ,_eegd :=_fgd .NewImage (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),img .ColorComponents ,img .Data ,img ._cdeb ,img ._fdggf );if _eegd !=nil {return Image {},_eegd ;};_aacd ,_eegd :=_fgd .NRGBAConverter .Convert (_dbdb );if _eegd !=nil {return Image {},_eegd ;};return _gagca (_aacd .Base ()),nil ;};
// GetAllContentStreams gets all the content streams for a page as one string.
func (_ecaea *PdfPage )GetAllContentStreams ()(string ,error ){_ccbeg ,_gddcfd :=_ecaea .GetContentStreams ();if _gddcfd !=nil {return "",_gddcfd ;};return _gc .Join (_ccbeg ,"\u0020"),nil ;};func _cgfef (_bade []byte )(_gbcf ,_caba string ,_acbde error ){_cga .Log .Trace ("g\u0065\u0074\u0041\u0053CI\u0049S\u0065\u0063\u0074\u0069\u006fn\u0073\u003a\u0020\u0025\u0064\u0020",len (_bade ));_fbdac :=_gebfd .FindIndex (_bade );if _fbdac ==nil {_cga .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 "","",_bcb .ErrTypeError ;};_agdad :=_fbdac [1];_cbfba :=_gc .Index (string (_bade [_agdad :]),_dgbdb );if _cbfba < 0{_gbcf =string (_bade [_agdad :]);return _gbcf ,"",nil ;};_dbcdg :=_agdad +_cbfba ;_gbcf =string (_bade [_agdad :_dbcdg ]);_bdbdf :=_dbcdg ;_cbfba =_gc .Index (string (_bade [_bdbdf :]),_gdgb );if _cbfba < 0{_cga .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",_acbde );return "","",_bcb .ErrTypeError ;};_acadc :=_bdbdf +_cbfba ;_caba =string (_bade [_bdbdf :_acadc ]);return _gbcf ,_caba ,nil ;};
// EncryptionAlgorithm is used in EncryptOptions to change the default algorithm used to encrypt the document.
type EncryptionAlgorithm int ;
// ImageToRGB converts an image with samples in Separation CS to an image with samples specified in
// DeviceRGB CS.
func (_cef *PdfColorspaceSpecialSeparation )ImageToRGB (img Image )(Image ,error ){_agfd :=_cgb .NewReader (img .getBase ());_cbce :=_fgd .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),_cef .AlternateSpace .GetNumComponents (),nil ,img ._cdeb ,nil );_eedb :=_cgb .NewWriter (_cbce );_ggfd :=_edb .Pow (2,float64 (img .BitsPerComponent ))-1;_cga .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");_cga .Log .Trace ("\u0054i\u006et\u0054\u0072\u0061\u006e\u0073f\u006f\u0072m\u003a\u0020\u0025\u002b\u0076",_cef .TintTransform );_eedg :=_cef .AlternateSpace .DecodeArray ();var (_fcdad uint32 ;_adeb error ;);for {_fcdad ,_adeb =_agfd .ReadSample ();if _adeb ==_fb .EOF {break ;};if _adeb !=nil {return img ,_adeb ;};_aggc :=float64 (_fcdad )/_ggfd ;_agcgb ,_gadd :=_cef .TintTransform .Evaluate ([]float64 {_aggc });if _gadd !=nil {return img ,_gadd ;};for _gfba ,_beeed :=range _agcgb {_edebd :=_fgd .LinearInterpolate (_beeed ,_eedg [_gfba *2],_eedg [_gfba *2+1],0,1);if _gadd =_eedb .WriteSample (uint32 (_edebd *_ggfd ));_gadd !=nil {return img ,_gadd ;};};};return _cef .AlternateSpace .ImageToRGB (_gagca (&_cbce ));};
// GetContainingPdfObject returns the container of the pattern object (indirect object).
func (_afef *PdfPattern )GetContainingPdfObject ()_bcb .PdfObject {return _afef ._becda };
// PdfAnnotationScreen represents Screen annotations.
// (Section 12.5.6.18).
type PdfAnnotationScreen struct{*PdfAnnotation ;T _bcb .PdfObject ;MK _bcb .PdfObject ;A _bcb .PdfObject ;AA _bcb .PdfObject ;};
// DecodeArray returns the component range values for the Indexed colorspace.
func (_daab *PdfColorspaceSpecialIndexed )DecodeArray ()[]float64 {return []float64 {0,float64 (_daab .HiVal )};};
// GetContainingPdfObject implements interface PdfModel.
func (_db *PdfAction )GetContainingPdfObject ()_bcb .PdfObject {return _db ._dce };func _dcde (_egefe *[]*PdfField ,_cdbfc FieldFilterFunc ,_abfg bool )[]*PdfField {if _egefe ==nil {return nil ;};_gddac :=*_egefe ;if len (*_egefe )==0{return nil ;};_bgbgf :=_gddac [:0];if _cdbfc ==nil {_cdbfc =func (*PdfField )bool {return true };};var _ecff []*PdfField ;for _ ,_ggfdd :=range _gddac {_ffefb :=_cdbfc (_ggfdd );if _ffefb {_ecff =append (_ecff ,_ggfdd );if len (_ggfdd .Kids )> 0{_ecff =append (_ecff ,_dcde (&_ggfdd .Kids ,_cdbfc ,_abfg )...);};};if !_abfg ||!_ffefb ||len (_ggfdd .Kids )> 0{_bgbgf =append (_bgbgf ,_ggfdd );};};*_egefe =_bgbgf ;return _ecff ;};
// GetMediaBox gets the inheritable media box value, either from the page
// or a higher up page/pages struct.
func (_dagcc *PdfPage )GetMediaBox ()(*PdfRectangle ,error ){if _dagcc .MediaBox !=nil {return _dagcc .MediaBox ,nil ;};_eggde :=_dagcc .Parent ;for _eggde !=nil {_bgaabc ,_gecb :=_bcb .GetDict (_eggde );if !_gecb {return nil ,_ae .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 _cfdcd :=_bgaabc .Get ("\u004d\u0065\u0064\u0069\u0061\u0042\u006f\u0078");_cfdcd !=nil {_gbfgf ,_dcbace :=_bcb .GetArray (_cfdcd );if !_dcbace {return nil ,_ae .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006d\u0065\u0064\u0069a\u0020\u0062\u006f\u0078");};_fbcgg ,_ageda :=NewPdfRectangle (*_gbfgf );if _ageda !=nil {return nil ,_ageda ;};return _fbcgg ,nil ;};_eggde =_bgaabc .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");};return nil ,_ae .New ("m\u0065\u0064\u0069\u0061 b\u006fx\u0020\u006e\u006f\u0074\u0020d\u0065\u0066\u0069\u006e\u0065\u0064");};
// NewPdfPageResourcesFromDict creates and returns a new PdfPageResources object
// from the input dictionary.
func NewPdfPageResourcesFromDict (dict *_bcb .PdfObjectDictionary )(*PdfPageResources ,error ){_ecfbf :=NewPdfPageResources ();if _ccccg :=dict .Get ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e");_ccccg !=nil {_ecfbf .ExtGState =_ccccg ;};if _bcafd :=dict .Get ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065");_bcafd !=nil &&!_bcb .IsNullObject (_bcafd ){_ecfbf .ColorSpace =_bcafd ;};if _acfe :=dict .Get ("\u0050a\u0074\u0074\u0065\u0072\u006e");_acfe !=nil {_ecfbf .Pattern =_acfe ;};if _eccbb :=dict .Get ("\u0053h\u0061\u0064\u0069\u006e\u0067");_eccbb !=nil {_ecfbf .Shading =_eccbb ;};if _dbgdb :=dict .Get ("\u0058O\u0062\u006a\u0065\u0063\u0074");_dbgdb !=nil {_ecfbf .XObject =_dbgdb ;};if _dbcdgg :=_bcb .ResolveReference (dict .Get ("\u0046\u006f\u006e\u0074"));_dbcdgg !=nil {_ecfbf .Font =_dbcdgg ;};if _fcfdf :=dict .Get ("\u0050r\u006f\u0063\u0053\u0065\u0074");_fcfdf !=nil {_ecfbf .ProcSet =_fcfdf ;};if _ceaf :=dict .Get ("\u0050\u0072\u006f\u0070\u0065\u0072\u0074\u0069\u0065\u0073");_ceaf !=nil {_ecfbf .Properties =_ceaf ;};return _ecfbf ,nil ;};func _affcd ()string {_dgagfb .Lock ();defer _dgagfb .Unlock ();if len (_aacca )> 0{return _aacca ;};return "\u0055n\u0069\u0044\u006f\u0063 \u002d\u0020\u0068\u0074\u0074p\u003a/\u002fu\u006e\u0069\u0064\u006f\u0063\u002e\u0069o";};
// ToInteger convert to an integer format.
func (_fcf *PdfColorDeviceRGB )ToInteger (bits int )[3]uint32 {_ggbbg :=_edb .Pow (2,float64 (bits ))-1;return [3]uint32 {uint32 (_ggbbg *_fcf .R ()),uint32 (_ggbbg *_fcf .G ()),uint32 (_ggbbg *_fcf .B ())};};func (_eefb *PdfReader )loadAction (_cccc _bcb .PdfObject )(*PdfAction ,error ){if _bed ,_bbbd :=_bcb .GetIndirect (_cccc );_bbbd {_gcf ,_edda :=_eefb .newPdfActionFromIndirectObject (_bed );if _edda !=nil {return nil ,_edda ;};return _gcf ,nil ;}else if !_bcb .IsNullObject (_cccc ){return nil ,_ae .New ("\u0061\u0063\u0074\u0069\u006fn\u0020\u0073\u0068\u006f\u0075\u006c\u0064\u0020\u0070\u006f\u0069\u006e\u0074 \u0074\u006f\u0020\u0061\u006e\u0020\u0069\u006e\u0064\u0069\u0072\u0065\u0063\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074");};return nil ,nil ;};func _edgc (_debd _bcb .PdfObject )(*PdfFontDescriptor ,error ){_ccbe :=&PdfFontDescriptor {};_debd =_bcb .ResolveReference (_debd );if _geaec ,_beaaf :=_debd .(*_bcb .PdfIndirectObject );_beaaf {_ccbe ._aaed =_geaec ;_debd =_geaec .PdfObject ;};_dfbe ,_fegg :=_bcb .GetDict (_debd );if !_fegg {_cga .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",_debd );return nil ,_bcb .ErrTypeError ;};if _bdaf :=_dfbe .Get ("\u0046\u006f\u006e\u0074\u004e\u0061\u006d\u0065");_bdaf !=nil {_ccbe .FontName =_bdaf ;}else {_cga .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");};_cgefc ,_ :=_bcb .GetName (_ccbe .FontName );if _cecg :=_dfbe .Get ("\u0054\u0079\u0070\u0065");_cecg !=nil {_bdgba ,_acadg :=_cecg .(*_bcb .PdfObjectName );if !_acadg ||string (*_bdgba )!="\u0046\u006f\u006e\u0074\u0044\u0065\u0073\u0063\u0072i\u0070\u0074\u006f\u0072"{_cga .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",_cecg ,_cgefc ,_ccbe .FontName );};}else {_cga .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",_cgefc ,_ccbe .FontName );};_ccbe .FontFamily =_dfbe .Get ("\u0046\u006f\u006e\u0074\u0046\u0061\u006d\u0069\u006c\u0079");_ccbe .FontStretch =_dfbe .Get ("F\u006f\u006e\u0074\u0053\u0074\u0072\u0065\u0074\u0063\u0068");_ccbe .FontWeight =_dfbe .Get ("\u0046\u006f\u006e\u0074\u0057\u0065\u0069\u0067\u0068\u0074");_ccbe .Flags =_dfbe .Get ("\u0046\u006c\u0061g\u0073");_ccbe .FontBBox =_dfbe .Get ("\u0046\u006f\u006e\u0074\u0042\u0042\u006f\u0078");_ccbe .ItalicAngle =_dfbe .Get ("I\u0074\u0061\u006c\u0069\u0063\u0041\u006e\u0067\u006c\u0065");_ccbe .Ascent =_dfbe .Get ("\u0041\u0073\u0063\u0065\u006e\u0074");_ccbe .Descent =_dfbe .Get ("\u0044e\u0073\u0063\u0065\u006e\u0074");_ccbe .Leading =_dfbe .Get ("\u004ce\u0061\u0064\u0069\u006e\u0067");_ccbe .CapHeight =_dfbe .Get ("\u0043a\u0070\u0048\u0065\u0069\u0067\u0068t");_ccbe .XHeight =_dfbe .Get ("\u0058H\u0065\u0069\u0067\u0068\u0074");_ccbe .StemV =_dfbe .Get ("\u0053\u0074\u0065m\u0056");_ccbe .StemH =_dfbe .Get ("\u0053\u0074\u0065m\u0048");_ccbe .AvgWidth =_dfbe .Get ("\u0041\u0076\u0067\u0057\u0069\u0064\u0074\u0068");_ccbe .MaxWidth =_dfbe .Get ("\u004d\u0061\u0078\u0057\u0069\u0064\u0074\u0068");_ccbe .MissingWidth =_dfbe .Get ("\u004d\u0069\u0073s\u0069\u006e\u0067\u0057\u0069\u0064\u0074\u0068");_ccbe .FontFile =_dfbe .Get ("\u0046\u006f\u006e\u0074\u0046\u0069\u006c\u0065");_ccbe .FontFile2 =_dfbe .Get ("\u0046o\u006e\u0074\u0046\u0069\u006c\u00652");_ccbe .FontFile3 =_dfbe .Get ("\u0046o\u006e\u0074\u0046\u0069\u006c\u00653");_ccbe .CharSet =_dfbe .Get ("\u0043h\u0061\u0072\u0053\u0065\u0074");_ccbe .Style =_dfbe .Get ("\u0053\u0074\u0079l\u0065");_ccbe .Lang =_dfbe .Get ("\u004c\u0061\u006e\u0067");_ccbe .FD =_dfbe .Get ("\u0046\u0044");_ccbe .CIDSet =_dfbe .Get ("\u0043\u0049\u0044\u0053\u0065\u0074");if _ccbe .Flags !=nil {if _bbaf ,_eafa :=_bcb .GetIntVal (_ccbe .Flags );_eafa {_ccbe ._fefb =_bbaf ;};};if _ccbe .MissingWidth !=nil {if _gaab ,_adae :=_bcb .GetNumberAsFloat (_ccbe .MissingWidth );_adae ==nil {_ccbe ._adfb =_gaab ;};};if _ccbe .FontFile !=nil {_aaca ,_geafe :=_efed (_ccbe .FontFile );if _geafe !=nil {return _ccbe ,_geafe ;};_cga .Log .Trace ("f\u006f\u006e\u0074\u0046\u0069\u006c\u0065\u003d\u0025\u0073",_aaca );_ccbe .fontFile =_aaca ;};if _ccbe .FontFile2 !=nil {_fgecg ,_efgdf :=_acc .NewFontFile2FromPdfObject (_ccbe .FontFile2 );if _efgdf !=nil {return _ccbe ,_efgdf ;};_cga .Log .Trace ("\u0066\u006f\u006et\u0046\u0069\u006c\u0065\u0032\u003d\u0025\u0073",_fgecg .String ());_ccbe ._bdecf =&_fgecg ;};return _ccbe ,nil ;};
// ImageToRGB converts Lab colorspace image to RGB and returns the result.
func (_afbge *PdfColorspaceLab )ImageToRGB (img Image )(Image ,error ){_fgbb :=func (_abb float64 )float64 {if _abb >=6.0/29{return _abb *_abb *_abb ;};return 108.0/841*(_abb -4/29);};_fecda :=img ._fdggf ;if len (_fecda )!=6{_cga .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");_fecda =_afbge .DecodeArray ();};_bebfa :=_cgb .NewReader (img .getBase ());_afga :=_fgd .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),3,nil ,img ._cdeb ,img ._fdggf );_ggda :=_cgb .NewWriter (_afga );_dcdb :=_edb .Pow (2,float64 (img .BitsPerComponent ))-1;_cdf :=make ([]uint32 ,3);var (_bfeb error ;Ls ,As ,Bs ,L ,M ,N ,X ,Y ,Z ,_gfcce ,_bgeea ,_gddc float64 ;);for {_bfeb =_bebfa .ReadSamples (_cdf );if _bfeb ==_fb .EOF {break ;}else if _bfeb !=nil {return img ,_bfeb ;};Ls =float64 (_cdf [0])/_dcdb ;As =float64 (_cdf [1])/_dcdb ;Bs =float64 (_cdf [2])/_dcdb ;Ls =_fgd .LinearInterpolate (Ls ,0.0,1.0,_fecda [0],_fecda [1]);As =_fgd .LinearInterpolate (As ,0.0,1.0,_fecda [2],_fecda [3]);Bs =_fgd .LinearInterpolate (Bs ,0.0,1.0,_fecda [4],_fecda [5]);L =(Ls +16)/116+As /500;M =(Ls +16)/116;N =(Ls +16)/116-Bs /200;X =_afbge .WhitePoint [0]*_fgbb (L );Y =_afbge .WhitePoint [1]*_fgbb (M );Z =_afbge .WhitePoint [2]*_fgbb (N );_gfcce =3.240479*X +-1.537150*Y +-0.498535*Z ;_bgeea =-0.969256*X +1.875992*Y +0.041556*Z ;_gddc =0.055648*X +-0.204043*Y +1.057311*Z ;_gfcce =_edb .Min (_edb .Max (_gfcce ,0),1.0);_bgeea =_edb .Min (_edb .Max (_bgeea ,0),1.0);_gddc =_edb .Min (_edb .Max (_gddc ,0),1.0);_cdf [0]=uint32 (_gfcce *_dcdb );_cdf [1]=uint32 (_bgeea *_dcdb );_cdf [2]=uint32 (_gddc *_dcdb );if _bfeb =_ggda .WriteSamples (_cdf );_bfeb !=nil {return img ,_bfeb ;};};return _gagca (&_afga ),nil ;};func (_aeffe *PdfWriter )copyObject (_agfff _bcb .PdfObject ,_gbbfd map[_bcb .PdfObject ]_bcb .PdfObject ,_cebbg map[_bcb .PdfObject ]struct{},_cfbd bool )_bcb .PdfObject {_bgccc :=!_aeffe ._addfe &&_cebbg !=nil ;if _ggade ,_eceea :=_gbbfd [_agfff ];_eceea {if _bgccc &&!_cfbd {delete (_cebbg ,_agfff );};return _ggade ;};_afbba :=_agfff ;switch _addcf :=_agfff .(type ){case *_bcb .PdfObjectArray :_cdgf :=_bcb .MakeArray ();_afbba =_cdgf ;_gbbfd [_agfff ]=_afbba ;for _ ,_gbcd :=range _addcf .Elements (){_cdgf .Append (_aeffe .copyObject (_gbcd ,_gbbfd ,_cebbg ,_cfbd ));};case *_bcb .PdfObjectStreams :_bfga :=&_bcb .PdfObjectStreams {PdfObjectReference :_addcf .PdfObjectReference };_afbba =_bfga ;_gbbfd [_agfff ]=_afbba ;for _ ,_dabgb :=range _addcf .Elements (){_bfga .Append (_aeffe .copyObject (_dabgb ,_gbbfd ,_cebbg ,_cfbd ));};case *_bcb .PdfObjectStream :_abadc :=&_bcb .PdfObjectStream {Stream :_addcf .Stream ,PdfObjectReference :_addcf .PdfObjectReference };_afbba =_abadc ;_gbbfd [_agfff ]=_afbba ;_abadc .PdfObjectDictionary =_aeffe .copyObject (_addcf .PdfObjectDictionary ,_gbbfd ,_cebbg ,_cfbd ).(*_bcb .PdfObjectDictionary );case *_bcb .PdfObjectDictionary :var _caebe bool ;if _bgccc &&!_cfbd {if _dccdf ,_ :=_bcb .GetNameVal (_addcf .Get ("\u0054\u0079\u0070\u0065"));_dccdf =="\u0050\u0061\u0067\u0065"{_ ,_gbgef :=_aeffe ._ddcfa [_addcf ];_cfbd =!_gbgef ;_caebe =_cfbd ;};};_aaefd :=_bcb .MakeDict ();_afbba =_aaefd ;_gbbfd [_agfff ]=_afbba ;for _ ,_abbd :=range _addcf .Keys (){_aaefd .Set (_abbd ,_aeffe .copyObject (_addcf .Get (_abbd ),_gbbfd ,_cebbg ,_cfbd ));};if _caebe {_afbba =_bcb .MakeNull ();_cfbd =false ;};case *_bcb .PdfIndirectObject :_fcfdd :=&_bcb .PdfIndirectObject {PdfObjectReference :_addcf .PdfObjectReference };_afbba =_fcfdd ;_gbbfd [_agfff ]=_afbba ;_fcfdd .PdfObject =_aeffe .copyObject (_addcf .PdfObject ,_gbbfd ,_cebbg ,_cfbd );case *_bcb .PdfObjectString :_eeabe :=*_addcf ;_afbba =&_eeabe ;_gbbfd [_agfff ]=_afbba ;case *_bcb .PdfObjectName :_bcafa :=*_addcf ;_afbba =&_bcafa ;_gbbfd [_agfff ]=_afbba ;case *_bcb .PdfObjectNull :_afbba =_bcb .MakeNull ();_gbbfd [_agfff ]=_afbba ;case *_bcb .PdfObjectInteger :_decagc :=*_addcf ;_afbba =&_decagc ;_gbbfd [_agfff ]=_afbba ;case *_bcb .PdfObjectReference :_aeea :=*_addcf ;_afbba =&_aeea ;_gbbfd [_agfff ]=_afbba ;case *_bcb .PdfObjectFloat :_gceea :=*_addcf ;_afbba =&_gceea ;_gbbfd [_agfff ]=_afbba ;case *_bcb .PdfObjectBool :_eedgc :=*_addcf ;_afbba =&_eedgc ;_gbbfd [_agfff ]=_afbba ;case *pdfSignDictionary :_gbedb :=&pdfSignDictionary {PdfObjectDictionary :_bcb .MakeDict (),_afebe :_addcf ._afebe ,_dgcc :_addcf ._dgcc };_afbba =_gbedb ;_gbbfd [_agfff ]=_afbba ;for _ ,_fecdb :=range _addcf .Keys (){_gbedb .Set (_fecdb ,_aeffe .copyObject (_addcf .Get (_fecdb ),_gbbfd ,_cebbg ,_cfbd ));};default:_cga .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",_agfff );};if _bgccc &&_cfbd {_cebbg [_agfff ]=struct{}{};};return _afbba ;};var _fegbg =map[string ]struct{}{"\u0054\u0069\u0074l\u0065":{},"\u0041\u0075\u0074\u0068\u006f\u0072":{},"\u0053u\u0062\u006a\u0065\u0063\u0074":{},"\u004b\u0065\u0079\u0077\u006f\u0072\u0064\u0073":{},"\u0043r\u0065\u0061\u0074\u006f\u0072":{},"\u0050\u0072\u006f\u0064\u0075\u0063\u0065\u0072":{},"\u0054r\u0061\u0070\u0070\u0065\u0064":{},"\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065":{},"\u004do\u0064\u0044\u0061\u0074\u0065":{}};func (_fdge *PdfReader )newPdfAnnotationWidgetFromDict (_bafd *_bcb .PdfObjectDictionary )(*PdfAnnotationWidget ,error ){_dgc :=PdfAnnotationWidget {};_dgc .H =_bafd .Get ("\u0048");_dgc .MK =_bafd .Get ("\u004d\u004b");_dgc .A =_bafd .Get ("\u0041");_dgc .AA =_bafd .Get ("\u0041\u0041");_dgc .BS =_bafd .Get ("\u0042\u0053");_dgc .Parent =_bafd .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");return &_dgc ,nil ;};
// Insert adds an outline item as a child of the current outline item,
// at the specified index.
func (_bcbe *OutlineItem )Insert (index uint ,item *OutlineItem ){_agae :=uint (len (_bcbe .Entries ));if index > _agae {index =_agae ;};_bcbe .Entries =append (_bcbe .Entries [:index ],append ([]*OutlineItem {item },_bcbe .Entries [index :]...)...);};
// Encoder returns the font's text encoder.
func (_eabg pdfFontType0 )Encoder ()_ddd .TextEncoder {return _eabg ._cfaee };
// ToInteger convert to an integer format.
func (_gceab *PdfColorLab )ToInteger (bits int )[3]uint32 {_aefg :=_edb .Pow (2,float64 (bits ))-1;return [3]uint32 {uint32 (_aefg *_gceab .L ()),uint32 (_aefg *_gceab .A ()),uint32 (_aefg *_gceab .B ())};};
// GetContentStreamWithEncoder returns the pattern cell's content stream and its encoder
func (_bcgfb *PdfTilingPattern )GetContentStreamWithEncoder ()([]byte ,_bcb .StreamEncoder ,error ){_bfeaa ,_abdgg :=_bcgfb ._becda .(*_bcb .PdfObjectStream );if !_abdgg {_cga .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",_bcgfb ._becda );return nil ,nil ,_bcb .ErrTypeError ;};_baade ,_cbea :=_bcb .DecodeStream (_bfeaa );if _cbea !=nil {_cga .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",_cbea );return nil ,nil ,_cbea ;};_becc ,_cbea :=_bcb .NewEncoderFromStream (_bfeaa );if _cbea !=nil {_cga .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",_cbea );return nil ,nil ,_cbea ;};return _baade ,_becc ,nil ;};
// PdfBorderEffect represents a PDF border effect.
type PdfBorderEffect struct{S *BorderEffect ;I *float64 ;};
// NewOutlineBookmark returns an initialized PdfOutlineItem for a given bookmark title and page.
func NewOutlineBookmark (title string ,page *_bcb .PdfIndirectObject )*PdfOutlineItem {_ecab :=PdfOutlineItem {};_ecab ._bfagd =&_ecab ;_ecab .Title =_bcb .MakeString (title );_dcgba :=_bcb .MakeArray ();_dcgba .Append (page );_dcgba .Append (_bcb .MakeName ("\u0046\u0069\u0074"));_ecab .Dest =_dcgba ;return &_ecab ;};
// ToPdfObject implements interface PdfModel.
func (_cad *PdfAnnotationSquiggly )ToPdfObject ()_bcb .PdfObject {_cad .PdfAnnotation .ToPdfObject ();_ece :=_cad ._daa ;_dbgb :=_ece .PdfObject .(*_bcb .PdfObjectDictionary );_cad .PdfAnnotationMarkup .appendToPdfDictionary (_dbgb );_dbgb .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_bcb .MakeName ("\u0053\u0071\u0075\u0069\u0067\u0067\u006c\u0079"));_dbgb .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_cad .QuadPoints );return _ece ;};
// GetNumComponents returns the number of color components (1 for CalGray).
func (_aebc *PdfColorCalGray )GetNumComponents ()int {return 1};
// String implements interface PdfObject.
func (_ag *PdfAction )String ()string {_ebd ,_be :=_ag .ToPdfObject ().(*_bcb .PdfIndirectObject );if _be {return _e .Sprintf ("\u0025\u0054\u003a\u0020\u0025\u0073",_ag ._dda ,_ebd .PdfObject .String ());};return "";};
// PdfAnnotationText represents Text annotations.
// (Section 12.5.6.4 p. 402).
type PdfAnnotationText struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Open _bcb .PdfObject ;Name _bcb .PdfObject ;State _bcb .PdfObject ;StateModel _bcb .PdfObject ;};
// ToPdfObject converts the pdfCIDFontType2 to a PDF representation.
func (_gdbbbb *pdfCIDFontType2 )ToPdfObject ()_bcb .PdfObject {if _gdbbbb ._egegg ==nil {_gdbbbb ._egegg =&_bcb .PdfIndirectObject {};};_agba :=_gdbbbb .baseFields ().asPdfObjectDictionary ("\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032");_gdbbbb ._egegg .PdfObject =_agba ;if _gdbbbb .CIDSystemInfo !=nil {_agba .Set ("\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f",_gdbbbb .CIDSystemInfo );};if _gdbbbb .DW !=nil {_agba .Set ("\u0044\u0057",_gdbbbb .DW );};if _gdbbbb .DW2 !=nil {_agba .Set ("\u0044\u0057\u0032",_gdbbbb .DW2 );};if _gdbbbb .W !=nil {_agba .Set ("\u0057",_gdbbbb .W );};if _gdbbbb .W2 !=nil {_agba .Set ("\u0057\u0032",_gdbbbb .W2 );};if _gdbbbb .CIDToGIDMap !=nil {_agba .Set ("C\u0049\u0044\u0054\u006f\u0047\u0049\u0044\u004d\u0061\u0070",_gdbbbb .CIDToGIDMap );};return _gdbbbb ._egegg ;};
// Flags returns the field flags for the field accounting for any inherited flags.
func (_befff *PdfField )Flags ()FieldFlag {var _afdg FieldFlag ;_acecc ,_ababa :=_befff .inherit (func (_cfgd *PdfField )bool {if _cfgd .Ff !=nil {_afdg =FieldFlag (*_befff .Ff );return true ;};return false ;});if _ababa !=nil {_cga .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",_ababa );};if !_acecc {_cga .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 _afdg ;};func (_gfa *PdfReader )newPdfActionJavaScriptFromDict (_cfac *_bcb .PdfObjectDictionary )(*PdfActionJavaScript ,error ){return &PdfActionJavaScript {JS :_cfac .Get ("\u004a\u0053")},nil ;};
// NewPdfFilespecFromObj creates and returns a new PdfFilespec object.
func NewPdfFilespecFromObj (obj _bcb .PdfObject )(*PdfFilespec ,error ){_eegea :=&PdfFilespec {};var _eedgd *_bcb .PdfObjectDictionary ;if _dgbc ,_efdc :=_bcb .GetIndirect (obj );_efdc {_eegea ._dcgf =_dgbc ;_bcgdd ,_aace :=_bcb .GetDict (_dgbc .PdfObject );if !_aace {_cga .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 ,_bcb .ErrTypeError ;};_eedgd =_bcgdd ;}else if _cbeb ,_efabfd :=_bcb .GetDict (obj );_efabfd {_eegea ._dcgf =_cbeb ;_eedgd =_cbeb ;}else {_cga .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 ,_bcb .ErrTypeError ;};if _eedgd ==nil {_cga .Log .Debug ("\u0044i\u0063t\u0069\u006f\u006e\u0061\u0072y\u0020\u006di\u0073\u0073\u0069\u006e\u0067");return nil ,_ae .New ("\u0064\u0069\u0063t\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};if _dggf :=_eedgd .Get ("\u0054\u0079\u0070\u0065");_dggf !=nil {_adcdc ,_gcebf :=_dggf .(*_bcb .PdfObjectName );if !_gcebf {_cga .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",_dggf );}else {if *_adcdc !="\u0046\u0069\u006c\u0065\u0073\u0070\u0065\u0063"{_cga .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",*_adcdc );};};};if _gbbg :=_eedgd .Get ("\u0046\u0053");_gbbg !=nil {_eegea .FS =_gbbg ;};if _fgced :=_eedgd .Get ("\u0046");_fgced !=nil {_eegea .F =_fgced ;};if _baec :=_eedgd .Get ("\u0055\u0046");_baec !=nil {_eegea .UF =_baec ;};if _adbf :=_eedgd .Get ("\u0044\u004f\u0053");_adbf !=nil {_eegea .DOS =_adbf ;};if _gdea :=_eedgd .Get ("\u004d\u0061\u0063");_gdea !=nil {_eegea .Mac =_gdea ;};if _gaagc :=_eedgd .Get ("\u0055\u006e\u0069\u0078");_gaagc !=nil {_eegea .Unix =_gaagc ;};if _dge :=_eedgd .Get ("\u0049\u0044");_dge !=nil {_eegea .ID =_dge ;};if _edff :=_eedgd .Get ("\u0056");_edff !=nil {_eegea .V =_edff ;};if _ggfg :=_eedgd .Get ("\u0045\u0046");_ggfg !=nil {_eegea .EF =_ggfg ;};if _deee :=_eedgd .Get ("\u0052\u0046");_deee !=nil {_eegea .RF =_deee ;};if _abdf :=_eedgd .Get ("\u0044\u0065\u0073\u0063");_abdf !=nil {_eegea .Desc =_abdf ;};if _bbgg :=_eedgd .Get ("\u0043\u0049");_bbgg !=nil {_eegea .CI =_bbgg ;};return _eegea ,nil ;};
// SetFlag sets the flag for the field.
func (_bbdfg *PdfField )SetFlag (flag FieldFlag ){_bbdfg .Ff =_bcb .MakeInteger (int64 (flag ))};
// SetPdfCreator sets the Creator attribute of the output PDF.
func SetPdfCreator (creator string ){_dgagfb .Lock ();defer _dgagfb .Unlock ();_aacca =creator };
// GetRuneMetrics returns the character metrics for the rune.
// A bool flag is returned to indicate whether or not the entry was found.
func (_efbee pdfFontSimple )GetRuneMetrics (r rune )(_acc .CharMetrics ,bool ){if _efbee ._gbggc !=nil {_cdgca ,_abgcg :=_efbee ._gbggc [r ];if _abgcg {return _cdgca ,true ;};};_bfccc :=_efbee .Encoder ();if _bfccc ==nil {_cga .Log .Debug ("\u004e\u006f\u0020en\u0063\u006f\u0064\u0065\u0072\u0020\u0066\u006f\u0072\u0020\u0066\u006f\u006e\u0074\u0073\u003d\u0025\u0073",_efbee );return _acc .CharMetrics {},false ;};_adec ,_acfc :=_bfccc .RuneToCharcode (r );if !_acfc {if r !=' '{_cga .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 ,_efbee );};return _acc .CharMetrics {},false ;};_cfcfa ,_fged :=_efbee .GetCharMetrics (_adec );return _cfcfa ,_fged ;};func (_dcgg *PdfColorspaceICCBased )String ()string {return "\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064";};
// ToPdfObject implements interface PdfModel.
func (_deb *PdfActionRendition )ToPdfObject ()_bcb .PdfObject {_deb .PdfAction .ToPdfObject ();_fff :=_deb ._dce ;_afg :=_fff .PdfObject .(*_bcb .PdfObjectDictionary );_afg .SetIfNotNil ("\u0053",_bcb .MakeName (string (ActionTypeRendition )));_afg .SetIfNotNil ("\u0052",_deb .R );_afg .SetIfNotNil ("\u0041\u004e",_deb .AN );_afg .SetIfNotNil ("\u004f\u0050",_deb .OP );_afg .SetIfNotNil ("\u004a\u0053",_deb .JS );return _fff ;};func (_ceef fontCommon )coreString ()string {_dcge :="";if _ceef ._ecaed !=nil {_dcge =_ceef ._ecaed .String ();};return _e .Sprintf ("\u0025#\u0071\u0020%\u0023\u0071\u0020%\u0071\u0020\u006f\u0062\u006a\u003d\u0025d\u0020\u0054\u006f\u0055\u006e\u0069c\u006f\u0064\u0065\u003d\u0025\u0074\u0020\u0066\u006c\u0061\u0067s\u003d\u0030\u0078\u0025\u0030\u0078\u0020\u0025\u0073",_ceef ._abgg ,_ceef ._daeb ,_ceef ._gbfc ,_ceef ._dgbe ,_ceef ._ebfc !=nil ,_ceef .fontFlags (),_dcge );};func _acbff (_ebgb _bcb .PdfObject )(*PdfBorderStyle ,error ){_edgb :=&PdfBorderStyle {};_edgb ._cec =_ebgb ;var _cabfg *_bcb .PdfObjectDictionary ;_ebgb =_bcb .TraceToDirectObject (_ebgb );_cabfg ,_edc :=_ebgb .(*_bcb .PdfObjectDictionary );if !_edc {return nil ,_ae .New ("\u0074\u0079\u0070\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};if _feda :=_cabfg .Get ("\u0054\u0079\u0070\u0065");_feda !=nil {_ffggb ,_edcf :=_feda .(*_bcb .PdfObjectName );if !_edcf {_cga .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",_feda );}else {if *_ffggb !="\u0042\u006f\u0072\u0064\u0065\u0072"{_cga .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",*_ffggb );};};};if _dgfb :=_cabfg .Get ("\u0057");_dgfb !=nil {_ggbe ,_aef :=_bcb .GetNumberAsFloat (_dgfb );if _aef !=nil {_cga .Log .Debug ("\u0045\u0072\u0072\u006fr \u0072\u0065\u0074\u0072\u0069\u0065\u0076\u0069\u006e\u0067\u0020\u0057\u003a\u0020%\u0076",_aef );return nil ,_aef ;};_edgb .W =&_ggbe ;};if _bfdb :=_cabfg .Get ("\u0053");_bfdb !=nil {_eabd ,_ggfa :=_bfdb .(*_bcb .PdfObjectName );if !_ggfa {return nil ,_ae .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 _bffb BorderStyle ;switch *_eabd {case "\u0053":_bffb =BorderStyleSolid ;case "\u0044":_bffb =BorderStyleDashed ;case "\u0042":_bffb =BorderStyleBeveled ;case "\u0049":_bffb =BorderStyleInset ;case "\u0055":_bffb =BorderStyleUnderline ;default:_cga .Log .Debug ("I\u006e\u0076\u0061\u006cid\u0020s\u0074\u0079\u006c\u0065\u0020n\u0061\u006d\u0065\u0020\u0025\u0073",*_eabd );return nil ,_ae .New ("\u0073\u0074\u0079\u006ce \u0074\u0079\u0070\u0065\u0020\u0072\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065c\u006b");};_edgb .S =&_bffb ;};if _eagb :=_cabfg .Get ("\u0044");_eagb !=nil {_gbdge ,_cfbc :=_eagb .(*_bcb .PdfObjectArray );if !_cfbc {_cga .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",_eagb );return nil ,_ae .New ("\u0062o\u0072\u0064\u0065\u0072 \u0044\u0020\u0074\u0079\u0070e\u0020c\u0068e\u0063\u006b\u0020\u0065\u0072\u0072\u006fr");};_ddga ,_bbag :=_gbdge .ToIntegerArray ();if _bbag !=nil {_cga .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",_bbag );return nil ,_bbag ;};_edgb .D =&_ddga ;};return _edgb ,nil ;};
// DecodeArray returns an empty slice as there are no components associated with pattern colorspace.
func (_fbdd *PdfColorspaceSpecialPattern )DecodeArray ()[]float64 {return []float64 {}};
// 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 (_eabc *Image )GetSamples ()[]uint32 {_addab :=_cgb .ResampleBytes (_eabc .Data ,int (_eabc .BitsPerComponent ));if _eabc .BitsPerComponent < 8{_addab =_eabc .samplesTrimPadding (_addab );};_ddce :=int (_eabc .Width )*int (_eabc .Height )*_eabc .ColorComponents ;if len (_addab )< _ddce {_cga .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 (_addab ),_ddce );return _addab ;}else if len (_addab )> _ddce {_cga .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 (_addab ),_ddce );_addab =_addab [:_ddce ];};return _addab ;};
// ToPdfObject returns the PDF representation of the shading dictionary.
func (_dddgf *PdfShadingType6 )ToPdfObject ()_bcb .PdfObject {_dddgf .PdfShading .ToPdfObject ();_cgce ,_gdefcf :=_dddgf .getShadingDict ();if _gdefcf !=nil {_cga .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 _dddgf .BitsPerCoordinate !=nil {_cgce .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065",_dddgf .BitsPerCoordinate );};if _dddgf .BitsPerComponent !=nil {_cgce .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_dddgf .BitsPerComponent );};if _dddgf .BitsPerFlag !=nil {_cgce .Set ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067",_dddgf .BitsPerFlag );};if _dddgf .Decode !=nil {_cgce .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_dddgf .Decode );};if _dddgf .Function !=nil {if len (_dddgf .Function )==1{_cgce .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_dddgf .Function [0].ToPdfObject ());}else {_aegce :=_bcb .MakeArray ();for _ ,_gbebc :=range _dddgf .Function {_aegce .Append (_gbebc .ToPdfObject ());};_cgce .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_aegce );};};return _dddgf ._eced ;};
// 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 (_gfec *PdfColorspaceDeviceGray )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=1{return nil ,_ae .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_gcbe :=vals [0];if _gcbe < 0.0||_gcbe > 1.0{_cga .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 _gcbe < 0.0{_gcbe =0.0;}else if _gcbe > 1.0{_gcbe =1.0;};return NewPdfColorDeviceGray (_gcbe ),nil ;};
// FieldValueProvider provides field values from a data source such as FDF, JSON or any other.
type FieldValueProvider interface{FieldValues ()(map[string ]_bcb .PdfObject ,error );};
// Add appends an outline item as a child of the current outline item.
func (_gbcee *OutlineItem )Add (item *OutlineItem ){_gbcee .Entries =append (_gbcee .Entries ,item )};
// PdfActionLaunch represents a launch action.
type PdfActionLaunch struct{*PdfAction ;F *PdfFilespec ;Win _bcb .PdfObject ;Mac _bcb .PdfObject ;Unix _bcb .PdfObject ;NewWindow _bcb .PdfObject ;};
// Initialize initializes the PdfSignature.
func (_gdgcg *PdfSignature )Initialize ()error {if _gdgcg .Handler ==nil {return _ae .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 _gdgcg .Handler .InitSignature (_gdgcg );};
// GetContext returns the action context which contains the specific type-dependent context.
// The context represents the subaction.
func (_gbf *PdfAction )GetContext ()PdfModel {if _gbf ==nil {return nil ;};return _gbf ._dda ;};
// GetXObjectByName gets XObject by name.
func (_ggaad *PdfPage )GetXObjectByName (name _bcb .PdfObjectName )(_bcb .PdfObject ,bool ){_dgca ,_eeee :=_ggaad .Resources .XObject .(*_bcb .PdfObjectDictionary );if !_eeee {return nil ,false ;};if _fbfb :=_dgca .Get (name );_fbfb !=nil {return _fbfb ,true ;};return nil ,false ;};func _ddggc ()string {_cgfcg :="\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 _bfaf _ede .Buffer ;for _deab :=0;_deab < 6;_deab ++{_bfaf .WriteRune (rune (_cgfcg [_ad .Intn (len (_cgfcg ))]));};return _bfaf .String ();};var _ pdfFont =(*pdfCIDFontType2 )(nil );
// GetContainingPdfObject returns the page as a dictionary within an PdfIndirectObject.
func (_adcfe *PdfPage )GetContainingPdfObject ()_bcb .PdfObject {return _adcfe ._cfabg };
// PdfFieldButton represents a button field which includes push buttons, checkboxes, and radio buttons.
type PdfFieldButton struct{*PdfField ;Opt *_bcb .PdfObjectArray ;};
// ButtonType represents the subtype of a button field, can be one of:
// - Checkbox (ButtonTypeCheckbox)
// - PushButton (ButtonTypePushButton)
// - RadioButton (ButtonTypeRadioButton)
type ButtonType int ;
// ToPdfObject implements interface PdfModel.
func (_fdg *PdfActionSound )ToPdfObject ()_bcb .PdfObject {_fdg .PdfAction .ToPdfObject ();_cegf :=_fdg ._dce ;_bb :=_cegf .PdfObject .(*_bcb .PdfObjectDictionary );_bb .SetIfNotNil ("\u0053",_bcb .MakeName (string (ActionTypeSound )));_bb .SetIfNotNil ("\u0053\u006f\u0075n\u0064",_fdg .Sound );_bb .SetIfNotNil ("\u0056\u006f\u006c\u0075\u006d\u0065",_fdg .Volume );_bb .SetIfNotNil ("S\u0079\u006e\u0063\u0068\u0072\u006f\u006e\u006f\u0075\u0073",_fdg .Synchronous );_bb .SetIfNotNil ("\u0052\u0065\u0070\u0065\u0061\u0074",_fdg .Repeat );_bb .SetIfNotNil ("\u004d\u0069\u0078",_fdg .Mix );return _cegf ;};
// PdfActionJavaScript represents a javaScript action.
type PdfActionJavaScript struct{*PdfAction ;JS _bcb .PdfObject ;};
// ToGray returns a PdfColorDeviceGray color based on the current RGB color.
func (_cegfb *PdfColorDeviceRGB )ToGray ()*PdfColorDeviceGray {_bbgc :=0.3*_cegfb .R ()+0.59*_cegfb .G ()+0.11*_cegfb .B ();_bbgc =_edb .Min (_edb .Max (_bbgc ,0.0),1.0);return NewPdfColorDeviceGray (_bbgc );};
// B returns the value of the B component of the color.
func (_bacg *PdfColorLab )B ()float64 {return _bacg [2]};
// NewPdfColorspaceDeviceGray returns a new grayscale colorspace.
func NewPdfColorspaceDeviceGray ()*PdfColorspaceDeviceGray {return &PdfColorspaceDeviceGray {}};
// ToPdfObject returns the PDF representation of the pattern.
func (_abdce *PdfPattern )ToPdfObject ()_bcb .PdfObject {_abaa :=_abdce .getDict ();_abaa .Set ("\u0054\u0079\u0070\u0065",_bcb .MakeName ("\u0050a\u0074\u0074\u0065\u0072\u006e"));_abaa .Set ("P\u0061\u0074\u0074\u0065\u0072\u006e\u0054\u0079\u0070\u0065",_bcb .MakeInteger (_abdce .PatternType ));return _abdce ._becda ;};func (_cdff *LTV )getCRLs (_afdfg []*_ffg .Certificate )([][]byte ,error ){_cfbe :=make ([][]byte ,0,len (_afdfg ));for _ ,_eabaf :=range _afdfg {for _ ,_bgcffg :=range _eabaf .CRLDistributionPoints {if _cdff .CertClient .IsCA (_eabaf ){continue ;};_ecbea ,_fgcgf :=_cdff .CRLClient .MakeRequest (_bgcffg ,_eabaf );if _fgcgf !=nil {_cga .Log .Debug ("W\u0041\u0052\u004e\u003a\u0020\u0043R\u004c\u0020\u0072\u0065\u0071\u0075\u0065\u0073\u0074 \u0065\u0072\u0072o\u0072:\u0020\u0025\u0076",_fgcgf );continue ;};_cfbe =append (_cfbe ,_ecbea );};};return _cfbe ,nil ;};func (_beeg *fontFile )loadFromSegments (_dgcg ,_aefcf []byte )error {_cga .Log .Trace ("\u006c\u006f\u0061dF\u0072\u006f\u006d\u0053\u0065\u0067\u006d\u0065\u006e\u0074\u0073\u003a\u0020\u0025\u0064\u0020\u0025\u0064",len (_dgcg ),len (_aefcf ));_dafcc :=_beeg .parseASCIIPart (_dgcg );if _dafcc !=nil {return _dafcc ;};_cga .Log .Trace ("f\u006f\u006e\u0074\u0066\u0069\u006c\u0065\u003d\u0025\u0073",_beeg );if len (_aefcf )==0{return nil ;};_cga .Log .Trace ("f\u006f\u006e\u0074\u0066\u0069\u006c\u0065\u003d\u0025\u0073",_beeg );return nil ;};func (_fccg *PdfReader )buildOutlineTree (_eccdf _bcb .PdfObject ,_cdfef *PdfOutlineTreeNode ,_beffd *PdfOutlineTreeNode ,_bcfgg map[_bcb .PdfObject ]struct{})(*PdfOutlineTreeNode ,*PdfOutlineTreeNode ,error ){if _bcfgg ==nil {_bcfgg =map[_bcb .PdfObject ]struct{}{};};_bcfgg [_eccdf ]=struct{}{};_gfcaa ,_abfbb :=_eccdf .(*_bcb .PdfIndirectObject );if !_abfbb {return nil ,nil ,_e .Errorf ("\u006f\u0075\u0074\u006c\u0069\u006e\u0065 \u0063\u006f\u006et\u0061\u0069\u006e\u0065r\u0020\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0069\u006e\u0064\u0069\u0072\u0065\u0063\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0020\u0025\u0054",_eccdf );};_fbdgf ,_fgbca :=_gfcaa .PdfObject .(*_bcb .PdfObjectDictionary );if !_fgbca {return nil ,nil ,_ae .New ("\u006e\u006f\u0074 a\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u0020\u006f\u0062\u006a\u0065\u0063\u0074");};_cga .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",_fbdgf ,_gfcaa ,_gfcaa );if _bfacd :=_fbdgf .Get ("\u0054\u0069\u0074l\u0065");_bfacd !=nil {_beeb ,_efdfc :=_fccg .newPdfOutlineItemFromIndirectObject (_gfcaa );if _efdfc !=nil {return nil ,nil ,_efdfc ;};_beeb .Parent =_cdfef ;_beeb .Prev =_beffd ;_bgabc :=_bcb .ResolveReference (_fbdgf .Get ("\u0046\u0069\u0072s\u0074"));if _ ,_bdde :=_bcfgg [_bgabc ];_bgabc !=nil &&_bgabc !=_gfcaa &&!_bdde {if !_bcb .IsNullObject (_bgabc ){_gaaea ,_cbcdf ,_ebdff :=_fccg .buildOutlineTree (_bgabc ,&_beeb .PdfOutlineTreeNode ,nil ,_bcfgg );if _ebdff !=nil {_cga .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",_ebdff );}else {_beeb .First =_gaaea ;_beeb .Last =_cbcdf ;};};};_bfeba :=_bcb .ResolveReference (_fbdgf .Get ("\u004e\u0065\u0078\u0074"));if _ ,_bfacb :=_bcfgg [_bfeba ];_bfeba !=nil &&_bfeba !=_gfcaa &&!_bfacb {if !_bcb .IsNullObject (_bfeba ){_caebf ,_eadcf ,_fbfba :=_fccg .buildOutlineTree (_bfeba ,_cdfef ,&_beeb .PdfOutlineTreeNode ,_bcfgg );if _fbfba !=nil {_cga .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",_fbfba );}else {_beeb .Next =_caebf ;return &_beeb .PdfOutlineTreeNode ,_eadcf ,nil ;};};};return &_beeb .PdfOutlineTreeNode ,&_beeb .PdfOutlineTreeNode ,nil ;};_ecdbe ,_gebgb :=_eggfc (_gfcaa );if _gebgb !=nil {return nil ,nil ,_gebgb ;};_ecdbe .Parent =_cdfef ;if _gcede :=_fbdgf .Get ("\u0046\u0069\u0072s\u0074");_gcede !=nil {_gcede =_bcb .ResolveReference (_gcede );if _ ,_fccf :=_bcfgg [_gcede ];_gcede !=nil &&_gcede !=_gfcaa &&!_fccf {_gefb :=_bcb .TraceToDirectObject (_gcede );if _ ,_dcacg :=_gefb .(*_bcb .PdfObjectNull );!_dcacg &&_gefb !=nil {_fccda ,_dbfcf ,_ccga :=_fccg .buildOutlineTree (_gcede ,&_ecdbe .PdfOutlineTreeNode ,nil ,_bcfgg );if _ccga !=nil {_cga .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",_ccga );}else {_ecdbe .First =_fccda ;_ecdbe .Last =_dbfcf ;};};};};return &_ecdbe .PdfOutlineTreeNode ,&_ecdbe .PdfOutlineTreeNode ,nil ;};func (_dfbae *PdfReader )loadAnnotations (_aecdaf _bcb .PdfObject )([]*PdfAnnotation ,error ){_beedf ,_dbeg :=_bcb .GetArray (_aecdaf );if !_dbeg {return nil ,_e .Errorf ("\u0041\u006e\u006e\u006fts\u0020\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0061\u0072\u0072\u0061\u0079");};var _ccbbdf []*PdfAnnotation ;for _ ,_cfgddf :=range _beedf .Elements (){_cfgddf =_bcb .ResolveReference (_cfgddf );if _ ,_fcedb :=_cfgddf .(*_bcb .PdfObjectNull );_fcedb {continue ;};_dffac ,_fffb :=_cfgddf .(*_bcb .PdfObjectDictionary );_eccaaf ,_bbdc :=_cfgddf .(*_bcb .PdfIndirectObject );if _fffb {_eccaaf =&_bcb .PdfIndirectObject {};_eccaaf .PdfObject =_dffac ;}else {if !_bbdc {return nil ,_e .Errorf ("\u0061\u006eno\u0074\u0061\u0074i\u006f\u006e\u0020\u006eot \u0069n \u0061\u006e\u0020\u0069\u006e\u0064\u0069re\u0063\u0074\u0020\u006f\u0062\u006a\u0065c\u0074");};};_eegc ,_ecece :=_dfbae .newPdfAnnotationFromIndirectObject (_eccaaf );if _ecece !=nil {return nil ,_ecece ;};switch _cfee :=_eegc .GetContext ().(type ){case *PdfAnnotationWidget :for _ ,_bdcbb :=range _dfbae .AcroForm .AllFields (){if _bdcbb ._gggf ==_cfee .Parent {_cfee ._cbgd =_bdcbb ;break ;};};};if _eegc !=nil {_ccbbdf =append (_ccbbdf ,_eegc );};};return _ccbbdf ,nil ;};
// ToPdfObject implements interface PdfModel.
func (_bgbb *PdfAnnotationStrikeOut )ToPdfObject ()_bcb .PdfObject {_bgbb .PdfAnnotation .ToPdfObject ();_agbg :=_bgbb ._daa ;_ggcf :=_agbg .PdfObject .(*_bcb .PdfObjectDictionary );_bgbb .PdfAnnotationMarkup .appendToPdfDictionary (_ggcf );_ggcf .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_bcb .MakeName ("\u0053t\u0072\u0069\u006b\u0065\u004f\u0075t"));_ggcf .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_bgbb .QuadPoints );return _agbg ;};func _caafe ()string {_dgagfb .Lock ();defer _dgagfb .Unlock ();return _eafae };
// ToImage converts an object to an Image which can be transformed or saved out.
// The image data is decoded and the Image returned.
func (_agacf *XObjectImage )ToImage ()(*Image ,error ){_daaad :=&Image {};if _agacf .Height ==nil {return nil ,_ae .New ("\u0068e\u0069\u0067\u0068\u0074\u0020\u0061\u0074\u0074\u0072\u0069\u0062u\u0074\u0065\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};_daaad .Height =*_agacf .Height ;if _agacf .Width ==nil {return nil ,_ae .New ("\u0077\u0069\u0064th\u0020\u0061\u0074\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};_daaad .Width =*_agacf .Width ;if _agacf .BitsPerComponent ==nil {return nil ,_ae .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");};_daaad .BitsPerComponent =*_agacf .BitsPerComponent ;_daaad .ColorComponents =_agacf .ColorSpace .GetNumComponents ();_agacf ._gddag .Set ("\u0043o\u006co\u0072\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074\u0073",_bcb .MakeInteger (int64 (_daaad .ColorComponents )));_cdaadc ,_febfc :=_bcb .DecodeStream (_agacf ._gddag );if _febfc !=nil {return nil ,_febfc ;};_daaad .Data =_cdaadc ;if _agacf .Decode !=nil {_abdee ,_eadbb :=_agacf .Decode .(*_bcb .PdfObjectArray );if !_eadbb {_cga .Log .Debug ("I\u006e\u0076\u0061\u006cid\u0020D\u0065\u0063\u006f\u0064\u0065 \u006f\u0062\u006a\u0065\u0063\u0074");return nil ,_ae .New ("\u0069\u006e\u0076a\u006c\u0069\u0064\u0020\u0074\u0079\u0070\u0065");};_ggaea ,_geff :=_abdee .ToFloat64Array ();if _geff !=nil {return nil ,_geff ;};_daaad ._fdggf =_ggaea ;};return _daaad ,nil ;};
// ColorFromFloats returns a new PdfColor based on the input slice of color
// components.
func (_bbcg *PdfColorspaceSpecialPattern )ColorFromFloats (vals []float64 )(PdfColor ,error ){if _bbcg .UnderlyingCS ==nil {return nil ,_ae .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 _bbcg .UnderlyingCS .ColorFromFloats (vals );};
// DecodeArray returns the range of color component values in the ICCBased colorspace.
func (_faaad *PdfColorspaceICCBased )DecodeArray ()[]float64 {return _faaad .Range };
// ToPdfObject returns the PDF representation of the colorspace.
func (_bcfg *PdfColorspaceSpecialPattern )ToPdfObject ()_bcb .PdfObject {if _bcfg .UnderlyingCS ==nil {return _bcb .MakeName ("\u0050a\u0074\u0074\u0065\u0072\u006e");};_aaae :=_bcb .MakeArray (_bcb .MakeName ("\u0050a\u0074\u0074\u0065\u0072\u006e"));_aaae .Append (_bcfg .UnderlyingCS .ToPdfObject ());if _bcfg ._ebgf !=nil {_bcfg ._ebgf .PdfObject =_aaae ;return _bcfg ._ebgf ;};return _aaae ;};
// ToPdfObject implements interface PdfModel.
func (_fdec *PdfAnnotationPrinterMark )ToPdfObject ()_bcb .PdfObject {_fdec .PdfAnnotation .ToPdfObject ();_efcb :=_fdec ._daa ;_ffde :=_efcb .PdfObject .(*_bcb .PdfObjectDictionary );_ffde .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_bcb .MakeName ("P\u0072\u0069\u006e\u0074\u0065\u0072\u004d\u0061\u0072\u006b"));_ffde .SetIfNotNil ("\u004d\u004e",_fdec .MN );return _efcb ;};
// HasExtGState checks whether a font is defined by the specified keyName.
func (_aceg *PdfPageResources )HasExtGState (keyName _bcb .PdfObjectName )bool {_ ,_gdcef :=_aceg .GetFontByName (keyName );return _gdcef ;};
// Evaluate runs the function on the passed in slice and returns the results.
func (_aadaf *PdfFunctionType0 )Evaluate (x []float64 )([]float64 ,error ){if len (x )!=_aadaf .NumInputs {_cga .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 ,_ae .New ("\u0072\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b\u0020e\u0072\u0072\u006f\u0072");};if _aadaf ._agdbe ==nil {_ffbag :=_aadaf .processSamples ();if _ffbag !=nil {return nil ,_ffbag ;};};_defc :=_aadaf .Encode ;if _defc ==nil {_defc =[]float64 {};for _egdg :=0;_egdg < len (_aadaf .Size );_egdg ++{_defc =append (_defc ,0);_defc =append (_defc ,float64 (_aadaf .Size [_egdg ]-1));};};_cebde :=_aadaf .Decode ;if _cebde ==nil {_cebde =_aadaf .Range ;};_adadd :=make ([]int ,len (x ));for _gfde :=0;_gfde < len (x );_gfde ++{_eeff :=x [_gfde ];_gcdd :=_edb .Min (_edb .Max (_eeff ,_aadaf .Domain [2*_gfde ]),_aadaf .Domain [2*_gfde +1]);_cegdf :=_fgd .LinearInterpolate (_gcdd ,_aadaf .Domain [2*_gfde ],_aadaf .Domain [2*_gfde +1],_defc [2*_gfde ],_defc [2*_gfde +1]);_decb :=_edb .Min (_edb .Max (_cegdf ,0),float64 (_aadaf .Size [_gfde ]-1));_fbcf :=int (_edb .Floor (_decb +0.5));if _fbcf < 0{_fbcf =0;}else if _fbcf > _aadaf .Size [_gfde ]{_fbcf =_aadaf .Size [_gfde ]-1;};_adadd [_gfde ]=_fbcf ;};_gdca :=_adadd [0];for _egbe :=1;_egbe < _aadaf .NumInputs ;_egbe ++{_fcfcf :=_adadd [_egbe ];for _bfeda :=0;_bfeda < _egbe ;_bfeda ++{_fcfcf *=_aadaf .Size [_bfeda ];};_gdca +=_fcfcf ;};_gdca *=_aadaf .NumOutputs ;var _defgg []float64 ;for _abfgf :=0;_abfgf < _aadaf .NumOutputs ;_abfgf ++{_gfag :=_gdca +_abfgf ;if _gfag >=len (_aadaf ._agdbe ){_cga .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 ;};_cffgd :=_aadaf ._agdbe [_gfag ];_bddgf :=_fgd .LinearInterpolate (float64 (_cffgd ),0,_edb .Pow (2,float64 (_aadaf .BitsPerSample )),_cebde [2*_abfgf ],_cebde [2*_abfgf +1]);_gaff :=_edb .Min (_edb .Max (_bddgf ,_aadaf .Range [2*_abfgf ]),_aadaf .Range [2*_abfgf +1]);_defgg =append (_defgg ,_gaff );};return _defgg ,nil ;};
// DefaultFont returns the default font, which is currently the built in Helvetica.
func DefaultFont ()*PdfFont {_gffdd ,_gcbg :=_acc .NewStdFontByName (HelveticaName );if !_gcbg {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");};_afdfe :=_egdb (_gffdd );return &PdfFont {_fgge :&_afdfe };};
// SetName sets the `Name` field of the signature.
func (_adbeg *PdfSignature )SetName (name string ){_adbeg .Name =_bcb .MakeString (name )};var _cgcc =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"};
// GetContainingPdfObject returns the container of the PdfAcroForm (indirect object).
func (_agbga *PdfAcroForm )GetContainingPdfObject ()_bcb .PdfObject {return _agbga ._gacgf };
// AddCustomInfo adds a custom info into document info dictionary.
func (_eaaa *PdfInfo )AddCustomInfo (name string ,value string )error {if _eaaa ._affda ==nil {_eaaa ._affda =_bcb .MakeDict ();};if _ ,_gdega :=_fegbg [name ];_gdega {return _e .Errorf ("\u0063\u0061\u006e\u006e\u006ft\u0020\u0075\u0073\u0065\u0020\u0073\u0074\u0061\u006e\u0064\u0061\u0072\u0064 \u0069\u006e\u0066\u006f\u0020\u006b\u0065\u0079\u0020\u0025\u0073\u0020\u0061\u0073\u0020\u0063\u0075\u0073\u0074\u006f\u006d\u0020\u0066\u0069\u0065\u006c\u0064\u0020\u006b\u0065y",name );};_eaaa ._affda .SetIfNotNil (*_bcb .MakeName (name ),_bcb .MakeString (value ));return nil ;};func _abgda (_fgdad *fontCommon )*pdfCIDFontType0 {return &pdfCIDFontType0 {fontCommon :*_fgdad }};
// NewPdfAnnotationInk returns a new ink annotation.
func NewPdfAnnotationInk ()*PdfAnnotationInk {_cfad :=NewPdfAnnotation ();_gbg :=&PdfAnnotationInk {};_gbg .PdfAnnotation =_cfad ;_gbg .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_cfad .SetContext (_gbg );return _gbg ;};func (_degbc *PdfReader )lookupPageByObject (_baaag _bcb .PdfObject )(*PdfPage ,error ){return nil ,_ae .New ("\u0070\u0061\u0067\u0065\u0020\u006e\u006f\u0074\u0020f\u006f\u0075\u006e\u0064");};
// 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 *_bcb .PdfObjectArray ;AlternateSpace PdfColorspace ;TintTransform PdfFunction ;Attributes *PdfColorspaceDeviceNAttributes ;_dcfed *_bcb .PdfIndirectObject ;};
// GetColorspaceByName returns the colorspace with the specified name from the page resources.
func (_afegd *PdfPageResources )GetColorspaceByName (keyName _bcb .PdfObjectName )(PdfColorspace ,bool ){_ebadf ,_edaea :=_afegd .GetColorspaces ();if _edaea !=nil {_cga .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",_edaea );return nil ,false ;};if _ebadf ==nil {return nil ,false ;};_dbbed ,_acbb :=_ebadf .Colorspaces [string (keyName )];if !_acbb {return nil ,false ;};return _dbbed ,true ;};
// 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 _bcb .PdfObjectArray )(*PdfRectangle ,error ){_gfeced :=PdfRectangle {};if arr .Len ()!=4{return nil ,_ae .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 _deccc error ;_gfeced .Llx ,_deccc =_bcb .GetNumberAsFloat (arr .Get (0));if _deccc !=nil {return nil ,_deccc ;};_gfeced .Lly ,_deccc =_bcb .GetNumberAsFloat (arr .Get (1));if _deccc !=nil {return nil ,_deccc ;};_gfeced .Urx ,_deccc =_bcb .GetNumberAsFloat (arr .Get (2));if _deccc !=nil {return nil ,_deccc ;};_gfeced .Ury ,_deccc =_bcb .GetNumberAsFloat (arr .Get (3));if _deccc !=nil {return nil ,_deccc ;};return &_gfeced ,nil ;};func _fbgf (_gbac []rune ,_eceg map[rune ]int ,_gefg map[rune ]_acc .GID )*_bcb .PdfObjectArray {_acga :=&_bcb .PdfObjectArray {};for _efeeb :=0;_efeeb < len (_gbac );{_aefea :=_eceg [_gbac [_efeeb ]];_gdaca :=_efeeb ;for _cdaa :=_efeeb +1;_cdaa < len (_gbac );_cdaa ++{_gcfag :=_eceg [_gbac [_cdaa ]];if _aefea ==_gcfag {_gdaca =_cdaa ;}else {break ;};};_bfac :=_gefg [_gbac [_efeeb ]];_abefe :=_gefg [_gbac [_gdaca ]];_acga .Append (_bcb .MakeInteger (int64 (_bfac )));_acga .Append (_bcb .MakeInteger (int64 (_abefe )));_acga .Append (_bcb .MakeInteger (int64 (_aefea )));_efeeb =_gdaca +1;};return _acga ;};
// ToPdfObject implements interface PdfModel.
func (_gab *PdfActionMovie )ToPdfObject ()_bcb .PdfObject {_gab .PdfAction .ToPdfObject ();_eega :=_gab ._dce ;_fcd :=_eega .PdfObject .(*_bcb .PdfObjectDictionary );_fcd .SetIfNotNil ("\u0053",_bcb .MakeName (string (ActionTypeMovie )));_fcd .SetIfNotNil ("\u0041\u006e\u006e\u006f\u0074\u0061\u0074\u0069\u006f\u006e",_gab .Annotation );_fcd .SetIfNotNil ("\u0054",_gab .T );_fcd .SetIfNotNil ("\u004fp\u0065\u0072\u0061\u0074\u0069\u006fn",_gab .Operation );return _eega ;};const (_dbfb =0x00001;_gdgfcf =0x00002;_cedf =0x00004;_aacge =0x00008;_eccbf =0x00020;_egac =0x00040;_agfde =0x10000;_bcgg =0x20000;_ebgag =0x40000;);
// Subtype returns the font's "Subtype" field.
func (_agecd *PdfFont )Subtype ()string {_aagfc :=_agecd .baseFields ()._abgg ;if _dfea ,_gaf :=_agecd ._fgge .(*pdfFontType0 );_gaf {_aagfc =_aagfc +"\u003a"+_dfea .DescendantFont .Subtype ();};return _aagfc ;};
// ToPdfObject implements interface PdfModel.
func (_ggc *PdfActionGoTo3DView )ToPdfObject ()_bcb .PdfObject {_ggc .PdfAction .ToPdfObject ();_ged :=_ggc ._dce ;_gge :=_ged .PdfObject .(*_bcb .PdfObjectDictionary );_gge .SetIfNotNil ("\u0053",_bcb .MakeName (string (ActionTypeGoTo3DView )));_gge .SetIfNotNil ("\u0054\u0041",_ggc .TA );_gge .SetIfNotNil ("\u0056",_ggc .V );return _ged ;};
// ToPdfObject implements interface PdfModel.
func (_edfa *PdfAnnotationStamp )ToPdfObject ()_bcb .PdfObject {_edfa .PdfAnnotation .ToPdfObject ();_fab :=_edfa ._daa ;_eebc :=_fab .PdfObject .(*_bcb .PdfObjectDictionary );_edfa .PdfAnnotationMarkup .appendToPdfDictionary (_eebc );_eebc .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_bcb .MakeName ("\u0053\u0074\u0061m\u0070"));_eebc .SetIfNotNil ("\u004e\u0061\u006d\u0065",_edfa .Name );return _fab ;};
// NewPdfAnnotationLink returns a new link annotation.
func NewPdfAnnotationLink ()*PdfAnnotationLink {_cea :=NewPdfAnnotation ();_bbg :=&PdfAnnotationLink {};_bbg .PdfAnnotation =_cea ;_cea .SetContext (_bbg );return _bbg ;};
// GetAlphabet returns a map of the runes in `text` and their frequencies.
func GetAlphabet (text string )map[rune ]int {_eeea :=map[rune ]int {};for _ ,_efbce :=range text {_eeea [_efbce ]++;};return _eeea ;};