unipdf/model/model.go
2023-09-07 17:40:17 +00:00

4994 lines
742 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 (_da "bufio";_cb "bytes";_fd "crypto/md5";_eg "crypto/rand";_gee "crypto/sha1";_ge "crypto/x509";_df "encoding/binary";_ed "encoding/hex";_ce "errors";_d "fmt";_ffe "github.com/unidoc/pkcs7";_aa "github.com/unidoc/unipdf/v3/common";
_fg "github.com/unidoc/unipdf/v3/core";_gb "github.com/unidoc/unipdf/v3/core/security";_bgf "github.com/unidoc/unipdf/v3/core/security/crypt";_fc "github.com/unidoc/unipdf/v3/internal/cmap";_cc "github.com/unidoc/unipdf/v3/internal/imageutil";_bec "github.com/unidoc/unipdf/v3/internal/license";
_ade "github.com/unidoc/unipdf/v3/internal/sampling";_dg "github.com/unidoc/unipdf/v3/internal/textencoding";_ag "github.com/unidoc/unipdf/v3/internal/timeutils";_gbe "github.com/unidoc/unipdf/v3/internal/transform";_dab "github.com/unidoc/unipdf/v3/model/internal/docutil";
_eed "github.com/unidoc/unipdf/v3/model/internal/fonts";_gbb "github.com/unidoc/unipdf/v3/model/mdp";_af "github.com/unidoc/unipdf/v3/model/sigutil";_bc "github.com/unidoc/unipdf/v3/ps";_eee "github.com/unidoc/unitype";_bb "golang.org/x/xerrors";_e "hash";
_ac "image";_be "image/color";_ "image/gif";_ "image/png";_ff "io";_ga "io/ioutil";_ef "math";_bf "math/rand";_c "os";_ee "regexp";_ad "sort";_bad "strconv";_dc "strings";_f "sync";_g "time";_dfa "unicode";_bg "unicode/utf8";);
// ToPdfObject implements interface PdfModel.
func (_egcbc *PdfAnnotationCircle )ToPdfObject ()_fg .PdfObject {_egcbc .PdfAnnotation .ToPdfObject ();_cfccc :=_egcbc ._agb ;_aed :=_cfccc .PdfObject .(*_fg .PdfObjectDictionary );_egcbc .PdfAnnotationMarkup .appendToPdfDictionary (_aed );_aed .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fg .MakeName ("\u0043\u0069\u0072\u0063\u006c\u0065"));
_aed .SetIfNotNil ("\u0042\u0053",_egcbc .BS );_aed .SetIfNotNil ("\u0049\u0043",_egcbc .IC );_aed .SetIfNotNil ("\u0042\u0045",_egcbc .BE );_aed .SetIfNotNil ("\u0052\u0044",_egcbc .RD );return _cfccc ;};
// Width returns the width of `rect`.
func (_dgeg *PdfRectangle )Width ()float64 {return _ef .Abs (_dgeg .Urx -_dgeg .Llx )};
// EncryptionAlgorithm is used in EncryptOptions to change the default algorithm used to encrypt the document.
type EncryptionAlgorithm int ;
// NewPdfColorPatternType2 returns an empty color shading pattern type 2 (Axial).
func NewPdfColorPatternType2 ()*PdfColorPatternType2 {_fbbdf :=&PdfColorPatternType2 {};return _fbbdf ;};
// AddCRLs adds CRLs to DSS.
func (_gacb *DSS )AddCRLs (crls [][]byte )([]*_fg .PdfObjectStream ,error ){return _gacb .add (&_gacb .CRLs ,_gacb ._fdcc ,crls );};
// NewPdfColorspaceDeviceCMYK returns a new CMYK32 colorspace object.
func NewPdfColorspaceDeviceCMYK ()*PdfColorspaceDeviceCMYK {return &PdfColorspaceDeviceCMYK {}};func (_dgcgc *PdfAcroForm )fill (_ebbac FieldValueProvider ,_adff FieldAppearanceGenerator )error {if _dgcgc ==nil {return nil ;};_caabf ,_daadf :=_ebbac .FieldValues ();
if _daadf !=nil {return _daadf ;};for _ ,_cagcf :=range _dgcgc .AllFields (){_bfagf :=_cagcf .PartialName ();_cgbgd ,_fcbgf :=_caabf [_bfagf ];if !_fcbgf {if _aacbg ,_cfbe :=_cagcf .FullName ();_cfbe ==nil {_cgbgd ,_fcbgf =_caabf [_aacbg ];};};if !_fcbgf {_aa .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",_bfagf );
continue ;};if _fagaf :=_dcbce (_cagcf ,_cgbgd );_fagaf !=nil {return _fagaf ;};if _adff ==nil {continue ;};for _ ,_ccgad :=range _cagcf .Annotations {_gbde ,_ddfc :=_adff .GenerateAppearanceDict (_dgcgc ,_cagcf ,_ccgad );if _ddfc !=nil {return _ddfc ;
};_ccgad .AP =_gbde ;_ccgad .ToPdfObject ();};};return nil ;};
// PdfAnnotationMarkup represents additional fields for mark-up annotations.
// (Section 12.5.6.2 p. 399).
type PdfAnnotationMarkup struct{T _fg .PdfObject ;Popup *PdfAnnotationPopup ;CA _fg .PdfObject ;RC _fg .PdfObject ;CreationDate _fg .PdfObject ;IRT _fg .PdfObject ;Subj _fg .PdfObject ;RT _fg .PdfObject ;IT _fg .PdfObject ;ExData _fg .PdfObject ;};
// NewPdfColorspaceCalRGB returns a new CalRGB colorspace object.
func NewPdfColorspaceCalRGB ()*PdfColorspaceCalRGB {_deddb :=&PdfColorspaceCalRGB {};_deddb .BlackPoint =[]float64 {0.0,0.0,0.0};_deddb .Gamma =[]float64 {1.0,1.0,1.0};_deddb .Matrix =[]float64 {1,0,0,0,1,0,0,0,1};return _deddb ;};var _cdaa =_ee .MustCompile ("\u005b\\\u006e\u005c\u0072\u005d\u002b");
// AnnotFilterFunc represents a PDF annotation filtering function. If the function
// returns true, the annotation is kept, otherwise it is discarded.
type AnnotFilterFunc func (*PdfAnnotation )bool ;
// SetAnnotations sets the annotations list.
func (_ccdbd *PdfPage )SetAnnotations (annotations []*PdfAnnotation ){_ccdbd ._fbbb =annotations };
// SetContext sets the sub annotation (context).
func (_fgag *PdfAnnotation )SetContext (ctx PdfModel ){_fgag ._cbea =ctx };
// PdfColorspaceLab is a L*, a*, b* 3 component colorspace.
type PdfColorspaceLab struct{WhitePoint []float64 ;BlackPoint []float64 ;Range []float64 ;_fabgc *_fg .PdfIndirectObject ;};
// Subtype returns the font's "Subtype" field.
func (_cebeb *PdfFont )Subtype ()string {_fegaf :=_cebeb .baseFields ()._ggcfc ;if _aeaf ,_acdc :=_cebeb ._gcaeff .(*pdfFontType0 );_acdc {_fegaf =_fegaf +"\u003a"+_aeaf .DescendantFont .Subtype ();};return _fegaf ;};func _afggf ()string {_baacg .Lock ();
defer _baacg .Unlock ();return _dfeegf };
// GetStructRoot gets the StructTreeRoot object
func (_fabgd *PdfPage )GetStructTreeRoot ()(*_fg .PdfObject ,bool ){_edaab ,_gdefb :=_fabgd ._dedef .GetCatalogStructTreeRoot ();return &_edaab ,_gdefb ;};
// GetModelFromPrimitive returns the model corresponding to the `primitive` PdfObject.
func (_egdfb *modelManager )GetModelFromPrimitive (primitive _fg .PdfObject )PdfModel {model ,_bggaf :=_egdfb ._fbbfaf [primitive ];if !_bggaf {return nil ;};return model ;};
// NewPdfColorspaceDeviceGray returns a new grayscale colorspace.
func NewPdfColorspaceDeviceGray ()*PdfColorspaceDeviceGray {return &PdfColorspaceDeviceGray {}};
// GetContainingPdfObject implements interface PdfModel.
func (_fggd *PdfAnnotation )GetContainingPdfObject ()_fg .PdfObject {return _fggd ._agb };
// PdfColorspaceDeviceCMYK represents a CMYK32 colorspace.
type PdfColorspaceDeviceCMYK struct{};func (_abada *pdfFontType0 )bytesToCharcodes (_egae []byte )([]_dg .CharCode ,bool ){if _abada ._abeac ==nil {return nil ,false ;};_ebgdc ,_ebgce :=_abada ._abeac .BytesToCharcodes (_egae );if !_ebgce {return nil ,false ;
};_cece :=make ([]_dg .CharCode ,len (_ebgdc ));for _efccb ,_bfadc :=range _ebgdc {_cece [_efccb ]=_dg .CharCode (_bfadc );};return _cece ,true ;};func (_egcca *PdfSignature )extractChainFromCert ()([]*_ge .Certificate ,error ){var _cdeaa *_fg .PdfObjectArray ;
switch _gdfd :=_egcca .Cert .(type ){case *_fg .PdfObjectString :_cdeaa =_fg .MakeArray (_gdfd );case *_fg .PdfObjectArray :_cdeaa =_gdfd ;default:return nil ,_d .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",_gdfd );
};var _dddae _cb .Buffer ;for _ ,_fdgad :=range _cdeaa .Elements (){_ccbed ,_adda :=_fg .GetString (_fdgad );if !_adda {return nil ,_d .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",_fdgad );
};if _ ,_efbff :=_dddae .Write (_ccbed .Bytes ());_efbff !=nil {return nil ,_efbff ;};};return _ge .ParseCertificates (_dddae .Bytes ());};
// 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 (_dbfad *PdfReader )CheckAccessRights (password []byte )(bool ,_gb .Permissions ,error ){return _dbfad ._ccgg .CheckAccessRights (password );};func (_dafc *DSS )add (_ddfg *[]*_fg .PdfObjectStream ,_feaa map[string ]*_fg .PdfObjectStream ,_fgga [][]byte )([]*_fg .PdfObjectStream ,error ){_cegd :=make ([]*_fg .PdfObjectStream ,0,len (_fgga ));
for _ ,_dgea :=range _fgga {_daef ,_cbgc :=_egbc (_dgea );if _cbgc !=nil {return nil ,_cbgc ;};_fbged ,_baccc :=_feaa [string (_daef )];if !_baccc {_fbged ,_cbgc =_fg .MakeStream (_dgea ,_fg .NewRawEncoder ());if _cbgc !=nil {return nil ,_cbgc ;};_feaa [string (_daef )]=_fbged ;
*_ddfg =append (*_ddfg ,_fbged );};_cegd =append (_cegd ,_fbged );};return _cegd ,nil ;};
// ToPdfObject implements interface PdfModel.
func (_befb *PdfAnnotationLine )ToPdfObject ()_fg .PdfObject {_befb .PdfAnnotation .ToPdfObject ();_aggd :=_befb ._agb ;_ccf :=_aggd .PdfObject .(*_fg .PdfObjectDictionary );_befb .PdfAnnotationMarkup .appendToPdfDictionary (_ccf );_ccf .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fg .MakeName ("\u004c\u0069\u006e\u0065"));
_ccf .SetIfNotNil ("\u004c",_befb .L );_ccf .SetIfNotNil ("\u0042\u0053",_befb .BS );_ccf .SetIfNotNil ("\u004c\u0045",_befb .LE );_ccf .SetIfNotNil ("\u0049\u0043",_befb .IC );_ccf .SetIfNotNil ("\u004c\u004c",_befb .LL );_ccf .SetIfNotNil ("\u004c\u004c\u0045",_befb .LLE );
_ccf .SetIfNotNil ("\u0043\u0061\u0070",_befb .Cap );_ccf .SetIfNotNil ("\u0049\u0054",_befb .IT );_ccf .SetIfNotNil ("\u004c\u004c\u004f",_befb .LLO );_ccf .SetIfNotNil ("\u0043\u0050",_befb .CP );_ccf .SetIfNotNil ("\u004de\u0061\u0073\u0075\u0072\u0065",_befb .Measure );
_ccf .SetIfNotNil ("\u0043\u004f",_befb .CO );return _aggd ;};func (_gcd *PdfReader )newPdfActionHideFromDict (_dedd *_fg .PdfObjectDictionary )(*PdfActionHide ,error ){return &PdfActionHide {T :_dedd .Get ("\u0054"),H :_dedd .Get ("\u0048")},nil ;};
// NewPdfActionSound returns a new "sound" action.
func NewPdfActionSound ()*PdfActionSound {_cbe :=NewPdfAction ();_cf :=&PdfActionSound {};_cf .PdfAction =_cbe ;_cbe .SetContext (_cf );return _cf ;};func (_ecgeb *PdfWriter )writeAcroFormFields ()error {if _ecgeb ._feaea ==nil {return nil ;};_aa .Log .Trace ("\u0057r\u0069t\u0069\u006e\u0067\u0020\u0061c\u0072\u006f \u0066\u006f\u0072\u006d\u0073");
_ceaaf :=_ecgeb ._feaea .ToPdfObject ();_aa .Log .Trace ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d\u003a\u0020\u0025\u002b\u0076",_ceaaf );_ecgeb ._cgacf .Set ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d",_ceaaf );_eedeec :=_ecgeb .addObjects (_ceaaf );
if _eedeec !=nil {return _eedeec ;};return nil ;};
// NewGrayImageFromGoImage creates a new grayscale unidoc Image from a golang Image.
func (_cbffe DefaultImageHandler )NewGrayImageFromGoImage (goimg _ac .Image )(*Image ,error ){_bbede :=goimg .Bounds ();_dgagbd :=&Image {Width :int64 (_bbede .Dx ()),Height :int64 (_bbede .Dy ()),ColorComponents :1,BitsPerComponent :8};switch _egdbf :=goimg .(type ){case *_ac .Gray :if len (_egdbf .Pix )!=_bbede .Dx ()*_bbede .Dy (){_dbbcc ,_afeef :=_cc .GrayConverter .Convert (goimg );
if _afeef !=nil {return nil ,_afeef ;};_dgagbd .Data =_dbbcc .Pix ();}else {_dgagbd .Data =_egdbf .Pix ;};case *_ac .Gray16 :_dgagbd .BitsPerComponent =16;if len (_egdbf .Pix )!=_bbede .Dx ()*_bbede .Dy ()*2{_cgfae ,_bfbge :=_cc .Gray16Converter .Convert (goimg );
if _bfbge !=nil {return nil ,_bfbge ;};_dgagbd .Data =_cgfae .Pix ();}else {_dgagbd .Data =_egdbf .Pix ;};case _cc .Image :_fafcb :=_egdbf .Base ();if _fafcb .ColorComponents ==1{_dgagbd .BitsPerComponent =int64 (_fafcb .BitsPerComponent );_dgagbd .Data =_fafcb .Data ;
return _dgagbd ,nil ;};_badea ,_fdbfc :=_cc .GrayConverter .Convert (goimg );if _fdbfc !=nil {return nil ,_fdbfc ;};_dgagbd .Data =_badea .Pix ();default:_ebgaa ,_bbbc :=_cc .GrayConverter .Convert (goimg );if _bbbc !=nil {return nil ,_bbbc ;};_dgagbd .Data =_ebgaa .Pix ();
};return _dgagbd ,nil ;};
// GetContext returns the annotation context which contains the specific type-dependent context.
// The context represents the subannotation.
func (_acc *PdfAnnotation )GetContext ()PdfModel {if _acc ==nil {return nil ;};return _acc ._cbea ;};
// NewPdfAnnotationPopup returns a new popup annotation.
func NewPdfAnnotationPopup ()*PdfAnnotationPopup {_dcba :=NewPdfAnnotation ();_cgg :=&PdfAnnotationPopup {};_cgg .PdfAnnotation =_dcba ;_dcba .SetContext (_cgg );return _cgg ;};
// Flags returns the field flags for the field accounting for any inherited flags.
func (_ddfa *PdfField )Flags ()FieldFlag {var _ceff FieldFlag ;_dgag ,_agfebc :=_ddfa .inherit (func (_fbcad *PdfField )bool {if _fbcad .Ff !=nil {_ceff =FieldFlag (*_fbcad .Ff );return true ;};return false ;});if _agfebc !=nil {_aa .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",_agfebc );
};if !_dgag {_aa .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 _ceff ;};
// NewPdfAnnotation3D returns a new 3d annotation.
func NewPdfAnnotation3D ()*PdfAnnotation3D {_cfab :=NewPdfAnnotation ();_eeda :=&PdfAnnotation3D {};_eeda .PdfAnnotation =_cfab ;_cfab .SetContext (_eeda );return _eeda ;};
// ColorFromFloats returns a new PdfColor based on the input slice of color
// components.
func (_fdac *PdfColorspaceSpecialPattern )ColorFromFloats (vals []float64 )(PdfColor ,error ){if _fdac .UnderlyingCS ==nil {return nil ,_ce .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 _fdac .UnderlyingCS .ColorFromFloats (vals );};
// SetBorderWidth sets the style's border width.
func (_cgfa *PdfBorderStyle )SetBorderWidth (width float64 ){_cgfa .W =&width };
// IsShading specifies if the pattern is a shading pattern.
func (_ddeed *PdfPattern )IsShading ()bool {return _ddeed .PatternType ==2};func (_eaff *PdfColorspaceCalGray )String ()string {return "\u0043a\u006c\u0047\u0072\u0061\u0079"};func (_fddg *PdfPage )getParentResources ()(*PdfPageResources ,error ){_edbd :=_fddg .Parent ;
for _edbd !=nil {_ccbdce ,_gbagc :=_fg .GetDict (_edbd );if !_gbagc {_aa .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 ,_ce .New ("i\u006e\u0076\u0061\u006cid\u0020p\u0061\u0072\u0065\u006e\u0074 \u006f\u0062\u006a\u0065\u0063\u0074");
};if _cdce :=_ccbdce .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");_cdce !=nil {_cgabe ,_defcc :=_fg .GetDict (_cdce );if !_defcc {return nil ,_ce .New ("i\u006e\u0076\u0061\u006cid\u0020r\u0065\u0073\u006f\u0075\u0072c\u0065\u0020\u0064\u0069\u0063\u0074");
};_cafce ,_fcbbd :=NewPdfPageResourcesFromDict (_cgabe );if _fcbbd !=nil {return nil ,_fcbbd ;};return _cafce ,nil ;};_edbd =_ccbdce .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");};return nil ,nil ;};
// ToPdfObject implements interface PdfModel.
func (_abfba *PdfAnnotationPrinterMark )ToPdfObject ()_fg .PdfObject {_abfba .PdfAnnotation .ToPdfObject ();_bdbg :=_abfba ._agb ;_bcfd :=_bdbg .PdfObject .(*_fg .PdfObjectDictionary );_bcfd .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fg .MakeName ("P\u0072\u0069\u006e\u0074\u0065\u0072\u004d\u0061\u0072\u006b"));
_bcfd .SetIfNotNil ("\u004d\u004e",_abfba .MN );return _bdbg ;};func _ffaa (_ggfg *fontCommon )*pdfCIDFontType2 {return &pdfCIDFontType2 {fontCommon :*_ggfg }};
// ToPdfObject returns colorspace in a PDF object format [name dictionary]
func (_gdf *PdfColorspaceLab )ToPdfObject ()_fg .PdfObject {_dcbaf :=_fg .MakeArray ();_dcbaf .Append (_fg .MakeName ("\u004c\u0061\u0062"));_deca :=_fg .MakeDict ();if _gdf .WhitePoint !=nil {_fbdd :=_fg .MakeArray (_fg .MakeFloat (_gdf .WhitePoint [0]),_fg .MakeFloat (_gdf .WhitePoint [1]),_fg .MakeFloat (_gdf .WhitePoint [2]));
_deca .Set ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074",_fbdd );}else {_aa .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 _gdf .BlackPoint !=nil {_cdga :=_fg .MakeArray (_fg .MakeFloat (_gdf .BlackPoint [0]),_fg .MakeFloat (_gdf .BlackPoint [1]),_fg .MakeFloat (_gdf .BlackPoint [2]));_deca .Set ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074",_cdga );};
if _gdf .Range !=nil {_edafd :=_fg .MakeArray (_fg .MakeFloat (_gdf .Range [0]),_fg .MakeFloat (_gdf .Range [1]),_fg .MakeFloat (_gdf .Range [2]),_fg .MakeFloat (_gdf .Range [3]));_deca .Set ("\u0052\u0061\u006eg\u0065",_edafd );};_dcbaf .Append (_deca );
if _gdf ._fabgc !=nil {_gdf ._fabgc .PdfObject =_dcbaf ;return _gdf ._fabgc ;};return _dcbaf ;};func (_acgg *PdfReader )newPdfActionRenditionFromDict (_aef *_fg .PdfObjectDictionary )(*PdfActionRendition ,error ){return &PdfActionRendition {R :_aef .Get ("\u0052"),AN :_aef .Get ("\u0041\u004e"),OP :_aef .Get ("\u004f\u0050"),JS :_aef .Get ("\u004a\u0053")},nil ;
};
// SetImageHandler sets the image handler used by the package.
func SetImageHandler (imgHandling ImageHandler ){ImageHandling =imgHandling };
// PdfAnnotationCircle represents Circle annotations.
// (Section 12.5.6.8).
type PdfAnnotationCircle struct{*PdfAnnotation ;*PdfAnnotationMarkup ;BS _fg .PdfObject ;IC _fg .PdfObject ;BE _fg .PdfObject ;RD _fg .PdfObject ;};
// ToPdfObject implements interface PdfModel.
func (_adac *PdfAnnotationInk )ToPdfObject ()_fg .PdfObject {_adac .PdfAnnotation .ToPdfObject ();_dfbgd :=_adac ._agb ;_ddge :=_dfbgd .PdfObject .(*_fg .PdfObjectDictionary );_adac .PdfAnnotationMarkup .appendToPdfDictionary (_ddge );_ddge .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fg .MakeName ("\u0049\u006e\u006b"));
_ddge .SetIfNotNil ("\u0049n\u006b\u004c\u0069\u0073\u0074",_adac .InkList );_ddge .SetIfNotNil ("\u0042\u0053",_adac .BS );return _dfbgd ;};
// 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 *_fg .PdfObjectName ;AlternateSpace PdfColorspace ;TintTransform PdfFunction ;_adacb *_fg .PdfIndirectObject ;};func (_abdcf *PdfWriter )copyObjects (){_bfdfa :=make (map[_fg .PdfObject ]_fg .PdfObject );
_gbba :=make ([]_fg .PdfObject ,0,len (_abdcf ._bbfd ));_aabbd :=make (map[_fg .PdfObject ]struct{},len (_abdcf ._bbfd ));_cbdae :=make (map[_fg .PdfObject ]struct{});for _ ,_bgcef :=range _abdcf ._bbfd {_cdeca :=_abdcf .copyObject (_bgcef ,_bfdfa ,_cbdae ,false );
if _ ,_dgagg :=_cbdae [_bgcef ];_dgagg {continue ;};_gbba =append (_gbba ,_cdeca );_aabbd [_cdeca ]=struct{}{};};_abdcf ._bbfd =_gbba ;_abdcf ._gcbec =_aabbd ;_abdcf ._deabg =_abdcf .copyObject (_abdcf ._deabg ,_bfdfa ,nil ,false ).(*_fg .PdfIndirectObject );
_abdcf ._cegde =_abdcf .copyObject (_abdcf ._cegde ,_bfdfa ,nil ,false ).(*_fg .PdfIndirectObject );if _abdcf ._abgdg !=nil {_abdcf ._abgdg =_abdcf .copyObject (_abdcf ._abgdg ,_bfdfa ,nil ,false ).(*_fg .PdfIndirectObject );};if _abdcf ._cdafg {_fccadb :=make (map[_fg .PdfObject ]int64 );
for _cedad ,_daaeb :=range _abdcf ._cbeab {if _cedeed ,_dccge :=_bfdfa [_cedad ];_dccge {_fccadb [_cedeed ]=_daaeb ;}else {_aa .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");
};};_abdcf ._cbeab =_fccadb ;};};
// PageFromIndirectObject returns the PdfPage and page number for a given indirect object.
func (_agbeg *PdfReader )PageFromIndirectObject (ind *_fg .PdfIndirectObject )(*PdfPage ,int ,error ){if len (_agbeg .PageList )!=len (_agbeg ._bgce ){return nil ,0,_ce .New ("\u0070\u0061\u0067\u0065\u0020\u006c\u0069\u0073\u0074\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");
};for _agaef ,_gacg :=range _agbeg ._bgce {if _gacg ==ind {return _agbeg .PageList [_agaef ],_agaef +1,nil ;};};return nil ,0,_ce .New ("\u0070\u0061\u0067\u0065\u0020\u006e\u006f\u0074\u0020f\u006f\u0075\u006e\u0064");};
// IsTiling specifies if the pattern is a tiling pattern.
func (_ccbfg *PdfPattern )IsTiling ()bool {return _ccbfg .PatternType ==1};
// ToPdfObject implements interface PdfModel.
func (_deed *PdfAnnotationPopup )ToPdfObject ()_fg .PdfObject {_deed .PdfAnnotation .ToPdfObject ();_adc :=_deed ._agb ;_beec :=_adc .PdfObject .(*_fg .PdfObjectDictionary );_beec .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fg .MakeName ("\u0050\u006f\u0070u\u0070"));
_beec .SetIfNotNil ("\u0050\u0061\u0072\u0065\u006e\u0074",_deed .Parent );_beec .SetIfNotNil ("\u004f\u0070\u0065\u006e",_deed .Open );return _adc ;};func (_ddf *PdfReader )newPdfActionGoTo3DViewFromDict (_eeea *_fg .PdfObjectDictionary )(*PdfActionGoTo3DView ,error ){return &PdfActionGoTo3DView {TA :_eeea .Get ("\u0054\u0041"),V :_eeea .Get ("\u0056")},nil ;
};
// PdfDate represents a date, which is a PDF string of the form:
// (D:YYYYMMDDHHmmSSOHH'mm)
type PdfDate struct{_fddef int64 ;_agbab int64 ;_adaba int64 ;_bedbf int64 ;_fgdec int64 ;_cfebe int64 ;_ebdc byte ;_eedgc int64 ;_gfcga int64 ;};
// GetContext returns the PdfField context which is the more specific field data type, e.g. PdfFieldButton
// for a button field.
func (_cfgeaf *PdfField )GetContext ()PdfModel {return _cfgeaf ._abcbb };
// PdfAnnotationLine represents Line annotations.
// (Section 12.5.6.7).
type PdfAnnotationLine struct{*PdfAnnotation ;*PdfAnnotationMarkup ;L _fg .PdfObject ;BS _fg .PdfObject ;LE _fg .PdfObject ;IC _fg .PdfObject ;LL _fg .PdfObject ;LLE _fg .PdfObject ;Cap _fg .PdfObject ;IT _fg .PdfObject ;LLO _fg .PdfObject ;CP _fg .PdfObject ;
Measure _fg .PdfObject ;CO _fg .PdfObject ;};
// 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 (_acbcb *PdfAcroForm )FillWithAppearance (provider FieldValueProvider ,appGen FieldAppearanceGenerator )error {_gdbb :=_acbcb .fill (provider ,appGen );if _gdbb !=nil {return _gdbb ;};if _ ,_feaab :=provider .(FieldImageProvider );_feaab {_gdbb =_acbcb .fillImageWithAppearance (provider .(FieldImageProvider ),appGen );
};return _gdbb ;};
// AddCustomInfo adds a custom info into document info dictionary.
func (_eebdc *PdfInfo )AddCustomInfo (name string ,value string )error {if _eebdc ._aaee ==nil {_eebdc ._aaee =_fg .MakeDict ();};if _ ,_fafgb :=_dcede [name ];_fafgb {return _d .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 );
};_eebdc ._aaee .SetIfNotNil (*_fg .MakeName (name ),_fg .MakeString (value ));return nil ;};
// 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 (_ccdfc *PdfColorspaceSpecialPattern )ColorToRGB (color PdfColor )(PdfColor ,error ){_dadga ,_bgdc :=color .(*PdfColorPattern );if !_bgdc {_aa .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 _dadga .Color ==nil {return color ,nil ;};if _ccdfc .UnderlyingCS ==nil {return nil ,_ce .New ("\u0075n\u0064\u0065\u0072\u006cy\u0069\u006e\u0067\u0020\u0043S\u0020n\u006ft\u0020\u0064\u0065\u0066\u0069\u006e\u0065d");};
return _ccdfc .UnderlyingCS .ColorToRGB (_dadga .Color );};
// ToPdfObject implements interface PdfModel.
func (_aeg *PdfActionThread )ToPdfObject ()_fg .PdfObject {_aeg .PdfAction .ToPdfObject ();_dac :=_aeg ._bda ;_caa :=_dac .PdfObject .(*_fg .PdfObjectDictionary );_caa .SetIfNotNil ("\u0053",_fg .MakeName (string (ActionTypeThread )));if _aeg .F !=nil {_caa .Set ("\u0046",_aeg .F .ToPdfObject ());
};_caa .SetIfNotNil ("\u0044",_aeg .D );_caa .SetIfNotNil ("\u0042",_aeg .B );return _dac ;};func (_bdfab *PdfWriter )writeObject (_ggadd int ,_fgdfde _fg .PdfObject ){_aa .Log .Trace ("\u0057\u0072\u0069\u0074\u0065\u0020\u006f\u0062\u006a \u0023\u0025\u0064\u000a",_ggadd );
if _bdbca ,_egbed :=_fgdfde .(*_fg .PdfIndirectObject );_egbed {_bdfab ._aafgd [_ggadd ]=crossReference {Type :1,Offset :_bdfab ._fcgga ,Generation :_bdbca .GenerationNumber };_cgdaf :=_d .Sprintf ("\u0025d\u0020\u0030\u0020\u006f\u0062\u006a\n",_ggadd );
if _ddaee ,_badbge :=_bdbca .PdfObject .(*pdfSignDictionary );_badbge {_ddaee ._gaage =_bdfab ._fcgga +int64 (len (_cgdaf ));};if _bdbca .PdfObject ==nil {_aa .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");
_bdbca .PdfObject =_fg .MakeNull ();};_cgdaf +=_bdbca .PdfObject .WriteString ();_cgdaf +="\u000a\u0065\u006e\u0064\u006f\u0062\u006a\u000a";_bdfab .writeString (_cgdaf );return ;};if _aefbg ,_aabge :=_fgdfde .(*_fg .PdfObjectStream );_aabge {_bdfab ._aafgd [_ggadd ]=crossReference {Type :1,Offset :_bdfab ._fcgga ,Generation :_aefbg .GenerationNumber };
_dcbcfa :=_d .Sprintf ("\u0025d\u0020\u0030\u0020\u006f\u0062\u006a\n",_ggadd );_dcbcfa +=_aefbg .PdfObjectDictionary .WriteString ();_dcbcfa +="\u000a\u0073\u0074\u0072\u0065\u0061\u006d\u000a";_bdfab .writeString (_dcbcfa );_bdfab .writeBytes (_aefbg .Stream );
_bdfab .writeString ("\u000ae\u006ed\u0073\u0074\u0072\u0065\u0061m\u000a\u0065n\u0064\u006f\u0062\u006a\u000a");return ;};if _dfbfb ,_eecbb :=_fgdfde .(*_fg .PdfObjectStreams );_eecbb {_bdfab ._aafgd [_ggadd ]=crossReference {Type :1,Offset :_bdfab ._fcgga ,Generation :_dfbfb .GenerationNumber };
_geafd :=_d .Sprintf ("\u0025d\u0020\u0030\u0020\u006f\u0062\u006a\n",_ggadd );var _caaea []string ;var _ffeee string ;var _cgcdf int64 ;for _acbaf ,_cdeaf :=range _dfbfb .Elements (){_cgee ,_aebcf :=_cdeaf .(*_fg .PdfIndirectObject );if !_aebcf {_aa .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",_ggadd ,_cdeaf );
continue ;};_eedfd :=_cgee .PdfObject .WriteString ()+"\u0020";_ffeee =_ffeee +_eedfd ;_caaea =append (_caaea ,_d .Sprintf ("\u0025\u0064\u0020%\u0064",_cgee .ObjectNumber ,_cgcdf ));_bdfab ._aafgd [int (_cgee .ObjectNumber )]=crossReference {Type :2,ObjectNumber :_ggadd ,Index :_acbaf };
_cgcdf =_cgcdf +int64 (len ([]byte (_eedfd )));};_abgfa :=_dc .Join (_caaea ,"\u0020")+"\u0020";_aeabf :=_fg .NewFlateEncoder ();_dfeega :=_aeabf .MakeStreamDict ();_dfeega .Set (_fg .PdfObjectName ("\u0054\u0079\u0070\u0065"),_fg .MakeName ("\u004f\u0062\u006a\u0053\u0074\u006d"));
_aadfb :=int64 (_dfbfb .Len ());_dfeega .Set (_fg .PdfObjectName ("\u004e"),_fg .MakeInteger (_aadfb ));_ceafe :=int64 (len (_abgfa ));_dfeega .Set (_fg .PdfObjectName ("\u0046\u0069\u0072s\u0074"),_fg .MakeInteger (_ceafe ));_bfgg ,_ :=_aeabf .EncodeBytes ([]byte (_abgfa +_ffeee ));
_gecac :=int64 (len (_bfgg ));_dfeega .Set (_fg .PdfObjectName ("\u004c\u0065\u006e\u0067\u0074\u0068"),_fg .MakeInteger (_gecac ));_geafd +=_dfeega .WriteString ();_geafd +="\u000a\u0073\u0074\u0072\u0065\u0061\u006d\u000a";_bdfab .writeString (_geafd );
_bdfab .writeBytes (_bfgg );_bdfab .writeString ("\u000ae\u006ed\u0073\u0074\u0072\u0065\u0061m\u000a\u0065n\u0064\u006f\u0062\u006a\u000a");return ;};_bdfab .writeString (_fgdfde .WriteString ());};
// PdfAnnotationUnderline represents Underline annotations.
// (Section 12.5.6.10).
type PdfAnnotationUnderline struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _fg .PdfObject ;};
// ToPdfObject implements interface PdfModel.
func (_bcbdd *PdfFilespec )ToPdfObject ()_fg .PdfObject {_aaed :=_bcbdd .getDict ();_aaed .Clear ();_aaed .Set ("\u0054\u0079\u0070\u0065",_fg .MakeName ("\u0046\u0069\u006c\u0065\u0073\u0070\u0065\u0063"));_aaed .SetIfNotNil ("\u0046\u0053",_bcbdd .FS );
_aaed .SetIfNotNil ("\u0046",_bcbdd .F );_aaed .SetIfNotNil ("\u0055\u0046",_bcbdd .UF );_aaed .SetIfNotNil ("\u0044\u004f\u0053",_bcbdd .DOS );_aaed .SetIfNotNil ("\u004d\u0061\u0063",_bcbdd .Mac );_aaed .SetIfNotNil ("\u0055\u006e\u0069\u0078",_bcbdd .Unix );
_aaed .SetIfNotNil ("\u0049\u0044",_bcbdd .ID );_aaed .SetIfNotNil ("\u0056",_bcbdd .V );_aaed .SetIfNotNil ("\u0045\u0046",_bcbdd .EF );_aaed .SetIfNotNil ("\u0052\u0046",_bcbdd .RF );_aaed .SetIfNotNil ("\u0044\u0065\u0073\u0063",_bcbdd .Desc );_aaed .SetIfNotNil ("\u0043\u0049",_bcbdd .CI );
return _bcbdd ._ccbdc ;};func (_eccc *PdfReader )newPdfAnnotationLinkFromDict (_egca *_fg .PdfObjectDictionary )(*PdfAnnotationLink ,error ){_efa :=PdfAnnotationLink {};_efa .A =_egca .Get ("\u0041");_efa .Dest =_egca .Get ("\u0044\u0065\u0073\u0074");
_efa .H =_egca .Get ("\u0048");_efa .PA =_egca .Get ("\u0050\u0041");_efa .QuadPoints =_egca .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");_efa .BS =_egca .Get ("\u0042\u0053");return &_efa ,nil ;};func (_gead *fontFile )loadFromSegments (_dfae ,_bageg []byte )error {_aa .Log .Trace ("\u006c\u006f\u0061dF\u0072\u006f\u006d\u0053\u0065\u0067\u006d\u0065\u006e\u0074\u0073\u003a\u0020\u0025\u0064\u0020\u0025\u0064",len (_dfae ),len (_bageg ));
_eaace :=_gead .parseASCIIPart (_dfae );if _eaace !=nil {return _eaace ;};_aa .Log .Trace ("f\u006f\u006e\u0074\u0066\u0069\u006c\u0065\u003d\u0025\u0073",_gead );if len (_bageg )==0{return nil ;};_aa .Log .Trace ("f\u006f\u006e\u0074\u0066\u0069\u006c\u0065\u003d\u0025\u0073",_gead );
return nil ;};func _adggf ()string {_baacg .Lock ();defer _baacg .Unlock ();return _ggbag };var _ pdfFont =(*pdfFontType0 )(nil );func (_fggg *PdfReader )newPdfAnnotationFileAttachmentFromDict (_fbbg *_fg .PdfObjectDictionary )(*PdfAnnotationFileAttachment ,error ){_bdbc :=PdfAnnotationFileAttachment {};
_feff ,_bfe :=_fggg .newPdfAnnotationMarkupFromDict (_fbbg );if _bfe !=nil {return nil ,_bfe ;};_bdbc .PdfAnnotationMarkup =_feff ;_bdbc .FS =_fbbg .Get ("\u0046\u0053");_bdbc .Name =_fbbg .Get ("\u004e\u0061\u006d\u0065");return &_bdbc ,nil ;};
// NewPdfAnnotationProjection returns a new projection annotation.
func NewPdfAnnotationProjection ()*PdfAnnotationProjection {_geg :=NewPdfAnnotation ();_gcab :=&PdfAnnotationProjection {};_gcab .PdfAnnotation =_geg ;_gcab .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_geg .SetContext (_gcab );return _gcab ;};
// SetContentStream sets the pattern cell's content stream.
func (_bggffc *PdfTilingPattern )SetContentStream (content []byte ,encoder _fg .StreamEncoder )error {_dagbb ,_cabeg :=_bggffc ._gaac .(*_fg .PdfObjectStream );if !_cabeg {_aa .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",_bggffc ._gaac );
return _fg .ErrTypeError ;};if encoder ==nil {encoder =_fg .NewRawEncoder ();};_dbbe :=_dagbb .PdfObjectDictionary ;_cgge :=encoder .MakeStreamDict ();_dbbe .Merge (_cgge );_ebcad ,_fbad :=encoder .EncodeBytes (content );if _fbad !=nil {return _fbad ;};
_dbbe .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_fg .MakeInteger (int64 (len (_ebcad ))));_dagbb .Stream =_ebcad ;return nil ;};
// ToPdfObject converts the font to a PDF representation.
func (_dgeag *pdfFontType3 )ToPdfObject ()_fg .PdfObject {if _dgeag ._bdfc ==nil {_dgeag ._bdfc =&_fg .PdfIndirectObject {};};_agfdg :=_dgeag .baseFields ().asPdfObjectDictionary ("\u0054\u0079\u0070e\u0033");_dgeag ._bdfc .PdfObject =_agfdg ;if _dgeag .FirstChar !=nil {_agfdg .Set ("\u0046i\u0072\u0073\u0074\u0043\u0068\u0061r",_dgeag .FirstChar );
};if _dgeag .LastChar !=nil {_agfdg .Set ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072",_dgeag .LastChar );};if _dgeag .Widths !=nil {_agfdg .Set ("\u0057\u0069\u0064\u0074\u0068\u0073",_dgeag .Widths );};if _dgeag .Encoding !=nil {_agfdg .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_dgeag .Encoding );
}else if _dgeag ._efad !=nil {_defb :=_dgeag ._efad .ToPdfObject ();if _defb !=nil {_agfdg .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_defb );};};if _dgeag .FontBBox !=nil {_agfdg .Set ("\u0046\u006f\u006e\u0074\u0042\u0042\u006f\u0078",_dgeag .FontBBox );
};if _dgeag .FontMatrix !=nil {_agfdg .Set ("\u0046\u006f\u006e\u0074\u004d\u0061\u0074\u0069\u0072\u0078",_dgeag .FontMatrix );};if _dgeag .CharProcs !=nil {_agfdg .Set ("\u0043h\u0061\u0072\u0050\u0072\u006f\u0063s",_dgeag .CharProcs );};if _dgeag .Resources !=nil {_agfdg .Set ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s",_dgeag .Resources );
};return _dgeag ._bdfc ;};
// PdfActionSubmitForm represents a submitForm action.
type PdfActionSubmitForm struct{*PdfAction ;F *PdfFilespec ;Fields _fg .PdfObject ;Flags _fg .PdfObject ;};
// ToPdfObject returns the PDF representation of the function.
func (_aaegf *PdfFunctionType3 )ToPdfObject ()_fg .PdfObject {_aecaf :=_fg .MakeDict ();_aecaf .Set ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065",_fg .MakeInteger (3));_eceb :=&_fg .PdfObjectArray {};for _ ,_edgad :=range _aaegf .Domain {_eceb .Append (_fg .MakeFloat (_edgad ));
};_aecaf .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_eceb );if _aaegf .Range !=nil {_dfcd :=&_fg .PdfObjectArray {};for _ ,_dfcbe :=range _aaegf .Range {_dfcd .Append (_fg .MakeFloat (_dfcbe ));};_aecaf .Set ("\u0052\u0061\u006eg\u0065",_dfcd );};if _aaegf .Functions !=nil {_ddade :=&_fg .PdfObjectArray {};
for _ ,_dbdeg :=range _aaegf .Functions {_ddade .Append (_dbdeg .ToPdfObject ());};_aecaf .Set ("\u0046u\u006e\u0063\u0074\u0069\u006f\u006es",_ddade );};if _aaegf .Bounds !=nil {_dbbcb :=&_fg .PdfObjectArray {};for _ ,_cadc :=range _aaegf .Bounds {_dbbcb .Append (_fg .MakeFloat (_cadc ));
};_aecaf .Set ("\u0042\u006f\u0075\u006e\u0064\u0073",_dbbcb );};if _aaegf .Encode !=nil {_gcaa :=&_fg .PdfObjectArray {};for _ ,_bded :=range _aaegf .Encode {_gcaa .Append (_fg .MakeFloat (_bded ));};_aecaf .Set ("\u0045\u006e\u0063\u006f\u0064\u0065",_gcaa );
};if _aaegf ._daga !=nil {_aaegf ._daga .PdfObject =_aecaf ;return _aaegf ._daga ;};return _aecaf ;};func (_eaac *PdfReader )newPdfAnnotationHighlightFromDict (_gdc *_fg .PdfObjectDictionary )(*PdfAnnotationHighlight ,error ){_bddd :=PdfAnnotationHighlight {};
_ecace ,_eab :=_eaac .newPdfAnnotationMarkupFromDict (_gdc );if _eab !=nil {return nil ,_eab ;};_bddd .PdfAnnotationMarkup =_ecace ;_bddd .QuadPoints =_gdc .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");return &_bddd ,nil ;};
// GetContainingPdfObject returns the container of the pattern object (indirect object).
func (_aaaga *PdfPattern )GetContainingPdfObject ()_fg .PdfObject {return _aaaga ._gaac };
// NewPdfActionRendition returns a new "rendition" action.
func NewPdfActionRendition ()*PdfActionRendition {_ddc :=NewPdfAction ();_agf :=&PdfActionRendition {};_agf .PdfAction =_ddc ;_ddc .SetContext (_agf );return _agf ;};var (_baacg _f .Mutex ;_dfeegf ="";_dfdeae _g .Time ;_gfebcg ="";_fdcca ="";_fbefe _g .Time ;
_egdda ="";_ggbag ="";_ebfgc ="";);
// ToPdfObject returns the PDF representation of the colorspace.
func (_gebb *PdfColorspaceSpecialPattern )ToPdfObject ()_fg .PdfObject {if _gebb .UnderlyingCS ==nil {return _fg .MakeName ("\u0050a\u0074\u0074\u0065\u0072\u006e");};_ccea :=_fg .MakeArray (_fg .MakeName ("\u0050a\u0074\u0074\u0065\u0072\u006e"));_ccea .Append (_gebb .UnderlyingCS .ToPdfObject ());
if _gebb ._agcec !=nil {_gebb ._agcec .PdfObject =_ccea ;return _gebb ._agcec ;};return _ccea ;};
// PageProcessCallback callback function used in page loading
// that could be used to modify the page content.
//
// If an error is returned, the `ToWriter` process would fail.
//
// This callback, if defined, will take precedence over `PageCallback` callback.
type PageProcessCallback func (_afad int ,_ebdbf *PdfPage )error ;
// ToPdfObject implements interface PdfModel.
// Note: Call the sub-annotation's ToPdfObject to set both the generic and non-generic information.
func (_acbe *PdfAnnotation )ToPdfObject ()_fg .PdfObject {_dbe :=_acbe ._agb ;_acca :=_dbe .PdfObject .(*_fg .PdfObjectDictionary );_acca .Clear ();_acca .Set ("\u0054\u0079\u0070\u0065",_fg .MakeName ("\u0041\u006e\u006eo\u0074"));_acca .SetIfNotNil ("\u0052\u0065\u0063\u0074",_acbe .Rect );
_acca .SetIfNotNil ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073",_acbe .Contents );_acca .SetIfNotNil ("\u0050",_acbe .P );_acca .SetIfNotNil ("\u004e\u004d",_acbe .NM );_acca .SetIfNotNil ("\u004d",_acbe .M );_acca .SetIfNotNil ("\u0046",_acbe .F );
_acca .SetIfNotNil ("\u0041\u0050",_acbe .AP );_acca .SetIfNotNil ("\u0041\u0053",_acbe .AS );_acca .SetIfNotNil ("\u0042\u006f\u0072\u0064\u0065\u0072",_acbe .Border );_acca .SetIfNotNil ("\u0043",_acbe .C );_acca .SetIfNotNil ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074",_acbe .StructParent );
_acca .SetIfNotNil ("\u004f\u0043",_acbe .OC );return _dbe ;};
// Set applies flag fl to the flag's bitmask and returns the combined flag.
func (_ccbdb FieldFlag )Set (fl FieldFlag )FieldFlag {return FieldFlag (_ccbdb .Mask ()|fl .Mask ())};func (_cddf *PdfReader )newPdfAnnotationWatermarkFromDict (_dddcb *_fg .PdfObjectDictionary )(*PdfAnnotationWatermark ,error ){_gede :=PdfAnnotationWatermark {};
_gede .FixedPrint =_dddcb .Get ("\u0046\u0069\u0078\u0065\u0064\u0050\u0072\u0069\u006e\u0074");return &_gede ,nil ;};func (_gcdf *PdfReader )newPdfActionSetOCGStateFromDict (_bdee *_fg .PdfObjectDictionary )(*PdfActionSetOCGState ,error ){return &PdfActionSetOCGState {State :_bdee .Get ("\u0053\u0074\u0061t\u0065"),PreserveRB :_bdee .Get ("\u0050\u0072\u0065\u0073\u0065\u0072\u0076\u0065\u0052\u0042")},nil ;
};
// IsCID returns true if the underlying font is CID.
func (_babc *PdfFont )IsCID ()bool {return _babc .baseFields ().isCIDFont ()};
// ToPdfObject implements interface PdfModel.
func (_aggg *PdfAnnotation3D )ToPdfObject ()_fg .PdfObject {_aggg .PdfAnnotation .ToPdfObject ();_cgfc :=_aggg ._agb ;_afac :=_cgfc .PdfObject .(*_fg .PdfObjectDictionary );_afac .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fg .MakeName ("\u0033\u0044"));
_afac .SetIfNotNil ("\u0033\u0044\u0044",_aggg .T3DD );_afac .SetIfNotNil ("\u0033\u0044\u0056",_aggg .T3DV );_afac .SetIfNotNil ("\u0033\u0044\u0041",_aggg .T3DA );_afac .SetIfNotNil ("\u0033\u0044\u0049",_aggg .T3DI );_afac .SetIfNotNil ("\u0033\u0044\u0042",_aggg .T3DB );
return _cgfc ;};func (_eafd *pdfFontType3 )baseFields ()*fontCommon {return &_eafd .fontCommon };func (_fcd *PdfReader )newPdfAnnotationWidgetFromDict (_fbfa *_fg .PdfObjectDictionary )(*PdfAnnotationWidget ,error ){_cafd :=PdfAnnotationWidget {};_cafd .H =_fbfa .Get ("\u0048");
_cafd .MK =_fbfa .Get ("\u004d\u004b");_cafd .A =_fbfa .Get ("\u0041");_cafd .AA =_fbfa .Get ("\u0041\u0041");_cafd .BS =_fbfa .Get ("\u0042\u0053");_cafd .Parent =_fbfa .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");return &_cafd ,nil ;};func (_bdgc *PdfAppender )replaceObject (_cddb ,_cbfc _fg .PdfObject ){switch _bbgb :=_cddb .(type ){case *_fg .PdfIndirectObject :_bdgc ._dcbad [_cbfc ]=_bbgb .ObjectNumber ;
case *_fg .PdfObjectStream :_bdgc ._dcbad [_cbfc ]=_bbgb .ObjectNumber ;};};func (_gcgcb *Image )resampleLowBits (_fbffg []uint32 ){_cbbee :=_cc .BytesPerLine (int (_gcgcb .Width ),int (_gcgcb .BitsPerComponent ),_gcgcb .ColorComponents );_fgcae :=make ([]byte ,_gcgcb .ColorComponents *_cbbee *int (_gcgcb .Height ));
_dfbf :=int (_gcgcb .BitsPerComponent )*_gcgcb .ColorComponents *int (_gcgcb .Width );_bdgb :=uint8 (8);var (_gabe ,_afcbc int ;_gged uint32 ;);for _bdba :=0;_bdba < int (_gcgcb .Height );_bdba ++{_afcbc =_bdba *_cbbee ;for _accc :=0;_accc < _dfbf ;_accc ++{_gged =_fbffg [_gabe ];
_bdgb -=uint8 (_gcgcb .BitsPerComponent );_fgcae [_afcbc ]|=byte (_gged )<<_bdgb ;if _bdgb ==0{_bdgb =8;_afcbc ++;};_gabe ++;};};_gcgcb .Data =_fgcae ;};func (_cacf *PdfReader )newPdfAnnotationRichMediaFromDict (_bbcc *_fg .PdfObjectDictionary )(*PdfAnnotationRichMedia ,error ){_fbg :=&PdfAnnotationRichMedia {};
_fbg .RichMediaSettings =_bbcc .Get ("\u0052\u0069\u0063\u0068\u004d\u0065\u0064\u0069\u0061\u0053\u0065\u0074t\u0069\u006e\u0067\u0073");_fbg .RichMediaContent =_bbcc .Get ("\u0052\u0069c\u0068\u004d\u0065d\u0069\u0061\u0043\u006f\u006e\u0074\u0065\u006e\u0074");
return _fbg ,nil ;};
// NewPdfFontFromTTF loads a TTF font and returns a PdfFont type that can be
// used in text styling functions.
// Uses a WinAnsiTextEncoder and loads only character codes 32-255.
// NOTE: For composite fonts such as used in symbolic languages, use NewCompositePdfFontFromTTF.
func NewPdfFontFromTTF (r _ff .ReadSeeker )(*PdfFont ,error ){const _begcd =_dg .CharCode (32);const _bbgdg =_dg .CharCode (255);_cedag ,_gfcg :=_ga .ReadAll (r );if _gfcg !=nil {_aa .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",_gfcg );
return nil ,_gfcg ;};_ffgf ,_gfcg :=_eed .TtfParse (_cb .NewReader (_cedag ));if _gfcg !=nil {_aa .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",_gfcg );
return nil ,_gfcg ;};_bcdcd :=&pdfFontSimple {_fcgbd :make (map[_dg .CharCode ]float64 ),fontCommon :fontCommon {_ggcfc :"\u0054\u0072\u0075\u0065\u0054\u0079\u0070\u0065"}};_bcdcd ._bdgda =_dg .NewWinAnsiEncoder ();_bcdcd ._aefg =_ffgf .PostScriptName ;
_bcdcd .FirstChar =_fg .MakeInteger (int64 (_begcd ));_bcdcd .LastChar =_fg .MakeInteger (int64 (_bbgdg ));_dcegcc :=1000.0/float64 (_ffgf .UnitsPerEm );if len (_ffgf .Widths )<=0{return nil ,_ce .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");
};_fccb :=_dcegcc *float64 (_ffgf .Widths [0]);_eaagb :=make ([]float64 ,0,_bbgdg -_begcd +1);for _edcbd :=_begcd ;_edcbd <=_bbgdg ;_edcbd ++{_fgbge ,_bddgd :=_bcdcd .Encoder ().CharcodeToRune (_edcbd );if !_bddgd {_aa .Log .Debug ("\u0052u\u006e\u0065\u0020\u006eo\u0074\u0020\u0066\u006f\u0075n\u0064 \u0028c\u006f\u0064\u0065\u003a\u0020\u0025\u0064)",_edcbd );
_eaagb =append (_eaagb ,_fccb );continue ;};_feab ,_ccdgc :=_ffgf .Chars [_fgbge ];if !_ccdgc {_aa .Log .Debug ("R\u0075\u006e\u0065\u0020no\u0074 \u0069\u006e\u0020\u0054\u0054F\u0020\u0043\u0068\u0061\u0072\u0073");_eaagb =append (_eaagb ,_fccb );continue ;
};_gddf :=_dcegcc *float64 (_ffgf .Widths [_feab ]);_eaagb =append (_eaagb ,_gddf );};_bcdcd .Widths =_fg .MakeIndirectObject (_fg .MakeArrayFromFloats (_eaagb ));if len (_eaagb )< int (_bbgdg -_begcd +1){_aa .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 (_eaagb ),255-32+1);
return nil ,_fg .ErrRangeError ;};for _fefg :=_begcd ;_fefg <=_bbgdg ;_fefg ++{_bcdcd ._fcgbd [_fefg ]=_eaagb [_fefg -_begcd ];};_bcdcd .Encoding =_fg .MakeName ("\u0057i\u006eA\u006e\u0073\u0069\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067");_faccf :=&PdfFontDescriptor {};
_faccf .FontName =_fg .MakeName (_ffgf .PostScriptName );_faccf .Ascent =_fg .MakeFloat (_dcegcc *float64 (_ffgf .TypoAscender ));_faccf .Descent =_fg .MakeFloat (_dcegcc *float64 (_ffgf .TypoDescender ));_faccf .CapHeight =_fg .MakeFloat (_dcegcc *float64 (_ffgf .CapHeight ));
_faccf .FontBBox =_fg .MakeArrayFromFloats ([]float64 {_dcegcc *float64 (_ffgf .Xmin ),_dcegcc *float64 (_ffgf .Ymin ),_dcegcc *float64 (_ffgf .Xmax ),_dcegcc *float64 (_ffgf .Ymax )});_faccf .ItalicAngle =_fg .MakeFloat (_ffgf .ItalicAngle );_faccf .MissingWidth =_fg .MakeFloat (_dcegcc *float64 (_ffgf .Widths [0]));
_dfabd ,_gfcg :=_fg .MakeStream (_cedag ,_fg .NewFlateEncoder ());if _gfcg !=nil {_aa .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",_gfcg );
return nil ,_gfcg ;};_dfabd .PdfObjectDictionary .Set ("\u004ce\u006e\u0067\u0074\u0068\u0031",_fg .MakeInteger (int64 (len (_cedag ))));_faccf .FontFile2 =_dfabd ;if _ffgf .Bold {_faccf .StemV =_fg .MakeInteger (120);}else {_faccf .StemV =_fg .MakeInteger (70);
};_dedc :=_fdcfe ;if _ffgf .IsFixedPitch {_dedc |=_aeada ;};if _ffgf .ItalicAngle !=0{_dedc |=_aedcf ;};_faccf .Flags =_fg .MakeInteger (int64 (_dedc ));_bcdcd ._cdgef =_faccf ;_gfebg :=&PdfFont {_gcaeff :_bcdcd };return _gfebg ,nil ;};
// NewPdfActionGoToR returns a new "go to remote" action.
func NewPdfActionGoToR ()*PdfActionGoToR {_ecd :=NewPdfAction ();_ege :=&PdfActionGoToR {};_ege .PdfAction =_ecd ;_ecd .SetContext (_ege );return _ege ;};const (_aeada =0x00001;_feea =0x00002;_dbbc =0x00004;_ddcf =0x00008;_fdcfe =0x00020;_aedcf =0x00040;
_cccff =0x10000;_edcag =0x20000;_abfe =0x40000;);func (_eafb *LTV )validateSig (_gadb *PdfSignature )error {if _gadb ==nil ||_gadb .Contents ==nil ||len (_gadb .Contents .Bytes ())==0{return _d .Errorf ("i\u006e\u0076\u0061\u006c\u0069\u0064 \u0073\u0069\u0067\u006e\u0061\u0074\u0075\u0072\u0065 \u0066\u0069\u0065l\u0064:\u0020\u0025\u0076",_gadb );
};return nil ;};
// ImageToRGB converts an image in CMYK32 colorspace to an RGB image.
func (_geecb *PdfColorspaceDeviceCMYK )ImageToRGB (img Image )(Image ,error ){_aa .Log .Trace ("\u0043\u004d\u0059\u004b\u0033\u0032\u0020\u002d\u003e\u0020\u0052\u0047\u0042");_aa .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 );
_aa .Log .Trace ("\u004c\u0065\u006e \u0064\u0061\u0074\u0061\u003a\u0020\u0025\u0064",len (img .Data ));_aa .Log .Trace ("H\u0065\u0069\u0067\u0068t:\u0020%\u0064\u002c\u0020\u0057\u0069d\u0074\u0068\u003a\u0020\u0025\u0064",img .Height ,img .Width );
_bggff ,_bfbg :=_cc .NewImage (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),img .ColorComponents ,img .Data ,img ._gccd ,img ._dbge );if _bfbg !=nil {return Image {},_bfbg ;};_bddg ,_bfbg :=_cc .NRGBAConverter .Convert (_bggff );if _bfbg !=nil {return Image {},_bfbg ;
};return _adad (_bddg .Base ()),nil ;};
// NewPdfAnnotationPolygon returns a new polygon annotation.
func NewPdfAnnotationPolygon ()*PdfAnnotationPolygon {_fegd :=NewPdfAnnotation ();_fgc :=&PdfAnnotationPolygon {};_fgc .PdfAnnotation =_fegd ;_fgc .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_fegd .SetContext (_fgc );return _fgc ;};
// GetPdfName returns the PDF name used to indicate the border style.
// (Table 166 p. 395).
func (_eaad *BorderStyle )GetPdfName ()string {switch *_eaad {case BorderStyleSolid :return "\u0053";case BorderStyleDashed :return "\u0044";case BorderStyleBeveled :return "\u0042";case BorderStyleInset :return "\u0049";case BorderStyleUnderline :return "\u0055";
};return "";};func (_faa *PdfReader )newPdfActionURIFromDict (_gaad *_fg .PdfObjectDictionary )(*PdfActionURI ,error ){return &PdfActionURI {URI :_gaad .Get ("\u0055\u0052\u0049"),IsMap :_gaad .Get ("\u0049\u0073\u004da\u0070")},nil ;};
// WriteToFile writes the Appender output to file specified by path.
func (_fdbb *PdfAppender )WriteToFile (outputPath string )error {_bag ,_faefb :=_c .Create (outputPath );if _faefb !=nil {return _faefb ;};defer _bag .Close ();return _fdbb .Write (_bag );};
// PdfShadingPatternType3 is shading patterns that will use a Type 3 shading pattern (Radial).
type PdfShadingPatternType3 struct{*PdfPattern ;Shading *PdfShadingType3 ;Matrix *_fg .PdfObjectArray ;ExtGState _fg .PdfObject ;};
// SetXObjectImageByName adds the provided XObjectImage to the page resources.
// The added XObjectImage is identified by the specified name.
func (_dfgc *PdfPageResources )SetXObjectImageByName (keyName _fg .PdfObjectName ,ximg *XObjectImage )error {_cbggg :=ximg .ToPdfObject ().(*_fg .PdfObjectStream );_ddfd :=_dfgc .SetXObjectByName (keyName ,_cbggg );return _ddfd ;};
// PdfFont represents an underlying font structure which can be of type:
// - Type0
// - Type1
// - TrueType
// etc.
type PdfFont struct{_gcaeff pdfFont };
// NewPdfColorspaceFromPdfObject loads a PdfColorspace from a PdfObject. Returns an error if there is
// a failure in loading.
func NewPdfColorspaceFromPdfObject (obj _fg .PdfObject )(PdfColorspace ,error ){if obj ==nil {return nil ,nil ;};var _ccga *_fg .PdfIndirectObject ;var _dbba *_fg .PdfObjectName ;var _beed *_fg .PdfObjectArray ;if _abcf ,_cdfd :=obj .(*_fg .PdfIndirectObject );
_cdfd {_ccga =_abcf ;};obj =_fg .TraceToDirectObject (obj );switch _dcda :=obj .(type ){case *_fg .PdfObjectArray :_beed =_dcda ;case *_fg .PdfObjectName :_dbba =_dcda ;};if _dbba !=nil {switch *_dbba {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:_aa .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",*_dbba );return nil ,_gbfa ;};};if _beed !=nil &&_beed .Len ()> 0{var _eeaa _fg .PdfObject =_ccga ;
if _ccga ==nil {_eeaa =_beed ;};if _caaaa ,_bfbf :=_fg .GetName (_beed .Get (0));_bfbf {switch _caaaa .String (){case "\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079":if _beed .Len ()==1{return NewPdfColorspaceDeviceGray (),nil ;};case "\u0044e\u0076\u0069\u0063\u0065\u0052\u0047B":if _beed .Len ()==1{return NewPdfColorspaceDeviceRGB (),nil ;
};case "\u0044\u0065\u0076\u0069\u0063\u0065\u0043\u004d\u0059\u004b":if _beed .Len ()==1{return NewPdfColorspaceDeviceCMYK (),nil ;};case "\u0043a\u006c\u0047\u0072\u0061\u0079":return _egdcc (_eeaa );case "\u0043\u0061\u006c\u0052\u0047\u0042":return _gfeff (_eeaa );
case "\u004c\u0061\u0062":return _adfa (_eeaa );case "\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064":return _gbccc (_eeaa );case "\u0050a\u0074\u0074\u0065\u0072\u006e":return _aefba (_eeaa );case "\u0049n\u0064\u0065\u0078\u0065\u0064":return _fffa (_eeaa );
case "\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e":return _fgbd (_eeaa );case "\u0044e\u0076\u0069\u0063\u0065\u004e":return _cagc (_eeaa );default:_aa .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",*_caaaa );
};};};_aa .Log .Debug ("\u0050\u0044\u0046\u0020\u0046i\u006c\u0065\u0020\u0045\u0072\u0072\u006f\u0072\u003a\u0020\u0043\u006f\u006co\u0072\u0073\u0070\u0061\u0063\u0065\u0020\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072\u003a\u0020\u0025\u0073",obj .String ());
return nil ,ErrTypeCheck ;};func _aedef (_eaadce []*_fg .PdfObjectStream )*_fg .PdfObjectArray {if len (_eaadce )==0{return nil ;};_eccf :=make ([]_fg .PdfObject ,0,len (_eaadce ));for _ ,_dbgg :=range _eaadce {_eccf =append (_eccf ,_dbgg );};return _fg .MakeArray (_eccf ...);
};
// C returns the value of the C component of the color.
func (_edcae *PdfColorCalRGB )C ()float64 {return _edcae [2]};
// AlphaMap performs mapping of alpha data for transformations. Allows custom filtering of alpha data etc.
func (_acge *Image )AlphaMap (mapFunc AlphaMapFunc ){for _gaaaa ,_dddba :=range _acge ._gccd {_acge ._gccd [_gaaaa ]=mapFunc (_dddba );};};
// 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 (_gaaee *PdfFont )CharcodesToStrings (charcodes []_dg .CharCode )([]string ,int ,int ){_gbabe :=_gaaee .baseFields ();_dedfg :=make ([]string ,0,len (charcodes ));_ddgbb :=0;_dagfc :=_gaaee .Encoder ();_ggef :=_gbabe ._agab !=nil &&_gaaee .IsSimple ()&&_gaaee .Subtype ()=="\u0054\u0072\u0075\u0065\u0054\u0079\u0070\u0065"&&!_dc .Contains (_gbabe ._agab .Name (),"\u0049d\u0065\u006e\u0074\u0069\u0074\u0079-");
if !_ggef &&_dagfc !=nil {switch _cdadb :=_dagfc .(type ){case _dg .SimpleEncoder :_cgecfd :=_cdadb .BaseName ();if _ ,_eeeg :=_cgdb [_cgecfd ];_eeeg {for _ ,_agcg :=range charcodes {if _dfebd ,_abcbe :=_dagfc .CharcodeToRune (_agcg );_abcbe {_dedfg =append (_dedfg ,string (_dfebd ));
}else {_aa .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",_agcg ,charcodes ,_gbabe .isCIDFont (),_gaaee ,_dagfc );
_ddgbb ++;_dedfg =append (_dedfg ,_fc .MissingCodeString );};};return _dedfg ,len (_dedfg ),_ddgbb ;};};};for _ ,_bcga :=range charcodes {if _gbabe ._agab !=nil {if _cgfbb ,_cgggb :=_gbabe ._agab .CharcodeToUnicode (_fc .CharCode (_bcga ));_cgggb {_dedfg =append (_dedfg ,_cgfbb );
continue ;};};if _dagfc !=nil {if _egb ,_baaaf :=_dagfc .CharcodeToRune (_bcga );_baaaf {_dedfg =append (_dedfg ,string (_egb ));continue ;};};_aa .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",_bcga ,charcodes ,_gbabe .isCIDFont (),_gaaee ,_dagfc );
_ddgbb ++;_dedfg =append (_dedfg ,_fc .MissingCodeString );};if _ddgbb !=0{_aa .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 ),_ddgbb ,_gaaee );
};return _dedfg ,len (_dedfg ),_ddgbb ;};
// PdfActionSetOCGState represents a SetOCGState action.
type PdfActionSetOCGState struct{*PdfAction ;State _fg .PdfObject ;PreserveRB _fg .PdfObject ;};
// ToPdfObject returns a PDF object representation of the outline destination.
func (_dbec OutlineDest )ToPdfObject ()_fg .PdfObject {if (_dbec .PageObj ==nil &&_dbec .Page < 0)||_dbec .Mode ==""{return _fg .MakeNull ();};_dedcf :=_fg .MakeArray ();if _dbec .PageObj !=nil {_dedcf .Append (_dbec .PageObj );}else {_dedcf .Append (_fg .MakeInteger (_dbec .Page ));
};_dedcf .Append (_fg .MakeName (_dbec .Mode ));switch _dbec .Mode {case "\u0046\u0069\u0074","\u0046\u0069\u0074\u0042":case "\u0046\u0069\u0074\u0048","\u0046\u0069\u0074B\u0048":_dedcf .Append (_fg .MakeFloat (_dbec .Y ));case "\u0046\u0069\u0074\u0056","\u0046\u0069\u0074B\u0056":_dedcf .Append (_fg .MakeFloat (_dbec .X ));
case "\u0058\u0059\u005a":_dedcf .Append (_fg .MakeFloat (_dbec .X ));_dedcf .Append (_fg .MakeFloat (_dbec .Y ));_dedcf .Append (_fg .MakeFloat (_dbec .Zoom ));default:_dedcf .Set (1,_fg .MakeName ("\u0046\u0069\u0074"));};return _dedcf ;};func (_ceac fontCommon )coreString ()string {_cbdc :="";
if _ceac ._cdgef !=nil {_cbdc =_ceac ._cdgef .String ();};return _d .Sprintf ("\u0025#\u0071\u0020%\u0023\u0071\u0020%\u0071\u0020\u006f\u0062\u006a\u003d\u0025d\u0020\u0054\u006f\u0055\u006e\u0069c\u006f\u0064\u0065\u003d\u0025\u0074\u0020\u0066\u006c\u0061\u0067s\u003d\u0030\u0078\u0025\u0030\u0078\u0020\u0025\u0073",_ceac ._ggcfc ,_ceac ._aefg ,_ceac ._edad ,_ceac ._dgagb ,_ceac ._eggb !=nil ,_ceac .fontFlags (),_cbdc );
};func (_ebggdb *PdfReader )newPdfSignatureFromIndirect (_dfdff *_fg .PdfIndirectObject )(*PdfSignature ,error ){_gegd ,_ffdbg :=_dfdff .PdfObject .(*_fg .PdfObjectDictionary );if !_ffdbg {_aa .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 _fdccb ,_fffec :=_ebggdb ._edebb .GetModelFromPrimitive (_dfdff ).(*PdfSignature );_fffec {return _fdccb ,nil ;};_aeea :=&PdfSignature {};_aeea ._fbbgf =_dfdff ;_aeea .Type ,_ =_fg .GetName (_gegd .Get ("\u0054\u0079\u0070\u0065"));
_aeea .Filter ,_ffdbg =_fg .GetName (_gegd .Get ("\u0046\u0069\u006c\u0074\u0065\u0072"));if !_ffdbg {_aa .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 ;};_aeea .SubFilter ,_ =_fg .GetName (_gegd .Get ("\u0053u\u0062\u0046\u0069\u006c\u0074\u0065r"));_aeea .Contents ,_ffdbg =_fg .GetString (_gegd .Get ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073"));if !_ffdbg {_aa .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 ;};if _fdccd ,_aafedd :=_fg .GetArray (_gegd .Get ("\u0052e\u0066\u0065\u0072\u0065\u006e\u0063e"));_aafedd {_aeea .Reference =_fg .MakeArray ();for _ ,_eaab :=range _fdccd .Elements (){_gabcf ,_adfbg :=_fg .GetDict (_eaab );
if !_adfbg {_aa .Log .Error ("\u0045\u0052R\u004f\u0052\u003a\u0020R\u0065\u0066e\u0072\u0065\u006e\u0063\u0065\u0020\u0063\u006fn\u0074\u0065\u006e\u0074\u0073\u0020\u0069\u006e\u0076\u0061\u006c\u0069d\u0061\u0074\u0065\u0064");return nil ,ErrInvalidAttribute ;
};_gbcbe ,_cfgeb :=_ebggdb .newPdfSignatureReferenceFromDict (_gabcf );if _cfgeb !=nil {return nil ,_cfgeb ;};_aeea .Reference .Append (_gbcbe .ToPdfObject ());};};_aeea .Cert =_gegd .Get ("\u0043\u0065\u0072\u0074");_aeea .ByteRange ,_ =_fg .GetArray (_gegd .Get ("\u0042y\u0074\u0065\u0052\u0061\u006e\u0067e"));
_aeea .Changes ,_ =_fg .GetArray (_gegd .Get ("\u0043h\u0061\u006e\u0067\u0065\u0073"));_aeea .Name ,_ =_fg .GetString (_gegd .Get ("\u004e\u0061\u006d\u0065"));_aeea .M ,_ =_fg .GetString (_gegd .Get ("\u004d"));_aeea .Location ,_ =_fg .GetString (_gegd .Get ("\u004c\u006f\u0063\u0061\u0074\u0069\u006f\u006e"));
_aeea .Reason ,_ =_fg .GetString (_gegd .Get ("\u0052\u0065\u0061\u0073\u006f\u006e"));_aeea .ContactInfo ,_ =_fg .GetString (_gegd .Get ("C\u006f\u006e\u0074\u0061\u0063\u0074\u0049\u006e\u0066\u006f"));_aeea .R ,_ =_fg .GetInt (_gegd .Get ("\u0052"));
_aeea .V ,_ =_fg .GetInt (_gegd .Get ("\u0056"));_aeea .PropBuild ,_ =_fg .GetDict (_gegd .Get ("\u0050\u0072\u006f\u0070\u005f\u0042\u0075\u0069\u006c\u0064"));_aeea .PropAuthTime ,_ =_fg .GetInt (_gegd .Get ("\u0050\u0072\u006f\u0070\u005f\u0041\u0075\u0074\u0068\u0054\u0069\u006d\u0065"));
_aeea .PropAuthType ,_ =_fg .GetName (_gegd .Get ("\u0050\u0072\u006f\u0070\u005f\u0041\u0075\u0074\u0068\u0054\u0079\u0070\u0065"));_ebggdb ._edebb .Register (_dfdff ,_aeea );return _aeea ,nil ;};
// PdfSignatureReference represents a PDF signature reference dictionary and is used for signing via form signature fields.
// (Section 12.8.1, Table 253 - Entries in a signature reference dictionary p. 469 in PDF32000_2008).
type PdfSignatureReference struct{_gafdc *_fg .PdfObjectDictionary ;Type *_fg .PdfObjectName ;TransformMethod *_fg .PdfObjectName ;TransformParams _fg .PdfObject ;Data _fg .PdfObject ;DigestMethod *_fg .PdfObjectName ;};
// GetCharMetrics returns the char metrics for character code `code`.
func (_eggcf pdfCIDFontType0 )GetCharMetrics (code _dg .CharCode )(_eed .CharMetrics ,bool ){_afdfa :=_eggcf ._cgda ;if _cacfg ,_adae :=_eggcf ._fceed [code ];_adae {_afdfa =_cacfg ;};return _eed .CharMetrics {Wx :_afdfa },true ;};
// GetRuneMetrics returns the character metrics for the specified rune.
// A bool flag is returned to indicate whether or not the entry was found.
func (_fafcc pdfCIDFontType2 )GetRuneMetrics (r rune )(_eed .CharMetrics ,bool ){_dcad ,_ebgf :=_fafcc ._ebda [r ];if !_ebgf {_bbcga ,_bacg :=_fg .GetInt (_fafcc .DW );if !_bacg {return _eed .CharMetrics {},false ;};_dcad =int (*_bbcga );};return _eed .CharMetrics {Wx :float64 (_dcad )},true ;
};
// 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 _fg .PdfObject )(_fg .PdfObjectName ,error ){var _cafc *_fg .PdfObjectName ;var _abee *_fg .PdfObjectArray ;if _ebgd ,_bdgdd :=obj .(*_fg .PdfIndirectObject );_bdgdd {if _bbdg ,_feadd :=_ebgd .PdfObject .(*_fg .PdfObjectArray );
_feadd {_abee =_bbdg ;}else if _bfcc ,_gege :=_ebgd .PdfObject .(*_fg .PdfObjectName );_gege {_cafc =_bfcc ;};}else if _bebee ,_aaeg :=obj .(*_fg .PdfObjectArray );_aaeg {_abee =_bebee ;}else if _eac ,_ecdd :=obj .(*_fg .PdfObjectName );_ecdd {_cafc =_eac ;
};if _cafc !=nil {switch *_cafc {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 *_cafc ,nil ;case "\u0050a\u0074\u0074\u0065\u0072\u006e":return *_cafc ,nil ;
};};if _abee !=nil &&_abee .Len ()> 0{if _gaec ,_aedd :=_abee .Get (0).(*_fg .PdfObjectName );_aedd {switch *_gaec {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 _abee .Len ()==1{return *_gaec ,nil ;
};case "\u0043a\u006c\u0047\u0072\u0061\u0079","\u0043\u0061\u006c\u0052\u0047\u0042","\u004c\u0061\u0062":return *_gaec ,nil ;case "\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064","\u0050a\u0074\u0074\u0065\u0072\u006e","\u0049n\u0064\u0065\u0078\u0065\u0064":return *_gaec ,nil ;
case "\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e","\u0044e\u0076\u0069\u0063\u0065\u004e":return *_gaec ,nil ;};};};return "",nil ;};
// GetCustomInfo returns a custom info value for the specified name.
func (_eabb *PdfInfo )GetCustomInfo (name string )*_fg .PdfObjectString {var _fgcd *_fg .PdfObjectString ;if _eabb ._aaee ==nil {return _fgcd ;};if _baae ,_cafgd :=_eabb ._aaee .Get (*_fg .MakeName (name )).(*_fg .PdfObjectString );_cafgd {_fgcd =_baae ;
};return _fgcd ;};func _abbbg ()string {_baacg .Lock ();defer _baacg .Unlock ();return _fdcca };
// PdfColorCalRGB represents a color in the Colorimetric CIE RGB colorspace.
// A, B, C components
// Each component is defined in the range 0.0 - 1.0 where 1.0 is the primary intensity.
type PdfColorCalRGB [3]float64 ;
// DecodeArray returns the range of color component values in DeviceGray colorspace.
func (_affc *PdfColorspaceDeviceGray )DecodeArray ()[]float64 {return []float64 {0,1.0}};
// PdfActionNamed represents a named action.
type PdfActionNamed struct{*PdfAction ;N _fg .PdfObject ;};func _gcgcc (_dcbc string )(map[_dg .CharCode ]_dg .GlyphName ,error ){_cbaa :=_dc .Split (_dcbc ,"\u000a");_bbeb :=make (map[_dg .CharCode ]_dg .GlyphName );for _ ,_efbe :=range _cbaa {_dadfb :=_caab .FindStringSubmatch (_efbe );
if _dadfb ==nil {continue ;};_bgdcg ,_eefcd :=_dadfb [1],_dadfb [2];_faeda ,_eabgd :=_bad .Atoi (_bgdcg );if _eabgd !=nil {_aa .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",_efbe );
return nil ,_fg .ErrTypeError ;};_bbeb [_dg .CharCode (_faeda )]=_dg .GlyphName (_eefcd );};_aa .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",_bbeb );
return _bbeb ,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 ;_daff *_fg .PdfIndirectObject ;};type pdfFontType0 struct{fontCommon ;_cgacd *_fg .PdfIndirectObject ;_bcacf _dg .TextEncoder ;Encoding _fg .PdfObject ;DescendantFont *PdfFont ;
_abeac *_fc .CMap ;};func (_effeg *pdfFontSimple )baseFields ()*fontCommon {return &_effeg .fontCommon };func (_bbge *PdfAppender )mergeResources (_gfg ,_effc _fg .PdfObject ,_ggd map[_fg .PdfObjectName ]_fg .PdfObjectName )_fg .PdfObject {if _effc ==nil &&_gfg ==nil {return nil ;
};if _effc ==nil {return _gfg ;};_fgfc ,_gad :=_fg .GetDict (_effc );if !_gad {return _gfg ;};if _gfg ==nil {_cbffa :=_fg .MakeDict ();_cbffa .Merge (_fgfc );return _effc ;};_ceed ,_gad :=_fg .GetDict (_gfg );if !_gad {_aa .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");
_ceed =_fg .MakeDict ();};for _ ,_eged :=range _fgfc .Keys (){if _bebd ,_gdee :=_ggd [_eged ];_gdee {_ceed .Set (_bebd ,_fgfc .Get (_eged ));}else {_ceed .Set (_eged ,_fgfc .Get (_eged ));};};return _ceed ;};func _fbace (_ababa *_fg .PdfObjectStream )(*PdfFunctionType0 ,error ){_gaaa :=&PdfFunctionType0 {};
_gaaa ._ddgf =_ababa ;_ebag :=_ababa .PdfObjectDictionary ;_dgbbc ,_ddccbg :=_fg .TraceToDirectObject (_ebag .Get ("\u0044\u006f\u006d\u0061\u0069\u006e")).(*_fg .PdfObjectArray );if !_ddccbg {_aa .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");
return nil ,_ce .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 _dgbbc .Len ()< 0||_dgbbc .Len ()%2!=0{_aa .Log .Error ("\u0044\u006f\u006d\u0061\u0069\u006e\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");
return nil ,_ce .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0064\u006f\u006da\u0069\u006e\u0020\u0072an\u0067\u0065");};_gaaa .NumInputs =_dgbbc .Len ()/2;_bgbgf ,_fecec :=_dgbbc .ToFloat64Array ();if _fecec !=nil {return nil ,_fecec ;};_gaaa .Domain =_bgbgf ;
_dgbbc ,_ddccbg =_fg .TraceToDirectObject (_ebag .Get ("\u0052\u0061\u006eg\u0065")).(*_fg .PdfObjectArray );if !_ddccbg {_aa .Log .Error ("\u0052\u0061\u006e\u0067e \u006e\u006f\u0074\u0020\u0073\u0070\u0065\u0063\u0069\u0066\u0069\u0065\u0064");return nil ,_ce .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 _dgbbc .Len ()< 0||_dgbbc .Len ()%2!=0{return nil ,_ce .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0061\u006e\u0067\u0065");};_gaaa .NumOutputs =_dgbbc .Len ()/2;_fgff ,_fecec :=_dgbbc .ToFloat64Array ();if _fecec !=nil {return nil ,_fecec ;
};_gaaa .Range =_fgff ;_dgbbc ,_ddccbg =_fg .TraceToDirectObject (_ebag .Get ("\u0053\u0069\u007a\u0065")).(*_fg .PdfObjectArray );if !_ddccbg {_aa .Log .Error ("\u0053i\u007ae\u0020\u006e\u006f\u0074\u0020s\u0070\u0065c\u0069\u0066\u0069\u0065\u0064");
return nil ,_ce .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");};_bgda ,_fecec :=_dgbbc .ToIntegerArray ();
if _fecec !=nil {return nil ,_fecec ;};if len (_bgda )!=_gaaa .NumInputs {_aa .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 ,_ce .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_gaaa .Size =_bgda ;_bgee ,_ddccbg :=_fg .TraceToDirectObject (_ebag .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0053\u0061\u006d\u0070\u006c\u0065")).(*_fg .PdfObjectInteger );
if !_ddccbg {_aa .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 ,_ce .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 *_bgee !=1&&*_bgee !=2&&*_bgee !=4&&*_bgee !=8&&*_bgee !=12&&*_bgee !=16&&*_bgee !=24&&*_bgee !=32{_aa .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",*_bgee );
return nil ,_ce .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_gaaa .BitsPerSample =int (*_bgee );_gaaa .Order =1;_cada ,_ddccbg :=_fg .TraceToDirectObject (_ebag .Get ("\u004f\u0072\u0064e\u0072")).(*_fg .PdfObjectInteger );
if _ddccbg {if *_cada !=1&&*_cada !=3{_aa .Log .Error ("\u0049n\u0076a\u006c\u0069\u0064\u0020\u006fr\u0064\u0065r\u0020\u0028\u0025\u0064\u0029",*_cada );return nil ,_ce .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_gaaa .Order =int (*_cada );
};_dgbbc ,_ddccbg =_fg .TraceToDirectObject (_ebag .Get ("\u0045\u006e\u0063\u006f\u0064\u0065")).(*_fg .PdfObjectArray );if _ddccbg {_gebd ,_acbd :=_dgbbc .ToFloat64Array ();if _acbd !=nil {return nil ,_acbd ;};_gaaa .Encode =_gebd ;};_dgbbc ,_ddccbg =_fg .TraceToDirectObject (_ebag .Get ("\u0044\u0065\u0063\u006f\u0064\u0065")).(*_fg .PdfObjectArray );
if _ddccbg {_bcdb ,_febd :=_dgbbc .ToFloat64Array ();if _febd !=nil {return nil ,_febd ;};_gaaa .Decode =_bcdb ;};_ggcgg ,_fecec :=_fg .DecodeStream (_ababa );if _fecec !=nil {return nil ,_fecec ;};_gaaa ._cfed =_ggcgg ;return _gaaa ,nil ;};
// GetCharMetrics returns the char metrics for character code `code`.
func (_gcdg pdfFontType0 )GetCharMetrics (code _dg .CharCode )(_eed .CharMetrics ,bool ){if _gcdg .DescendantFont ==nil {_aa .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",_gcdg );
return _eed .CharMetrics {},false ;};return _gcdg .DescendantFont .GetCharMetrics (code );};
// GetOutlines returns a high-level Outline object, based on the outline tree
// of the reader.
func (_cbaedb *PdfReader )GetOutlines ()(*Outline ,error ){if _cbaedb ==nil {return nil ,_ce .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");
};_eacfa :=_cbaedb .GetOutlineTree ();if _eacfa ==nil {return nil ,_ce .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 _gfdcd func (_fgefc *PdfOutlineTreeNode ,_ecbgg *[]*OutlineItem );_gfdcd =func (_bbag *PdfOutlineTreeNode ,_cfdgd *[]*OutlineItem ){if _bbag ==nil {return ;};if _bbag ._gfcge ==nil {_aa .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 _babf *OutlineItem ;if _cadgg ,_edfdd :=_bbag ._gfcge .(*PdfOutlineItem );_edfdd {_fgdfd :=_cadgg .Dest ;if (_fgdfd ==nil ||_fg .IsNullObject (_fgdfd ))&&_cadgg .A !=nil {if _bcgcg ,_eaafgc :=_fg .GetDict (_cadgg .A );_eaafgc {if _baedd ,_egbb :=_fg .GetArray (_bcgcg .Get ("\u0044"));
_egbb {_fgdfd =_baedd ;}else {_aabgc ,_egaef :=_fg .GetString (_bcgcg .Get ("\u0044"));if !_egaef {return ;};_ddged ,_egaef :=_cbaedb ._cgegd .Get ("\u004e\u0061\u006de\u0073").(*_fg .PdfObjectReference );if !_egaef {return ;};_bcdaa ,_cgcfa :=_cbaedb ._ccgg .LookupByReference (*_ddged );
if _cgcfa !=nil {_aa .Log .Debug ("\u0045\u0052\u0052O\u0052\u003a\u0020\u0046\u0061\u0069\u006c\u0065\u0064\u0020\u0074\u006f\u0020\u0072\u0065\u0061\u0064\u0020\u006e\u0061\u006d\u0065\u0073\u0020\u0072\u0065\u0066\u0065\u0072e\u006e\u0063\u0065\u0020\u0028\u0025\u0073\u0029",_cgcfa .Error ());
return ;};_badcb ,_egaef :=_bcdaa .(*_fg .PdfIndirectObject );if !_egaef {return ;};_gdadf :=map[_fg .PdfObject ]struct{}{};_cgcfa =_cbaedb .buildNameNodes (_badcb ,_gdadf );if _cgcfa !=nil {_aa .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0046\u0061\u0069\u006c\u0065\u0064\u0020\u0074\u006f\u0020\u0062\u0075\u0069\u006c\u0064\u0020\u006ea\u006d\u0065\u0020\u006e\u006fd\u0065\u0073 \u0028\u0025\u0073\u0029",_cgcfa .Error ());
return ;};for _bdecd :=range _gdadf {_eadce ,_dacaa :=_fg .GetDict (_bdecd );if !_dacaa {continue ;};_ggfcg ,_dacaa :=_fg .GetArray (_eadce .Get ("\u004e\u0061\u006de\u0073"));if !_dacaa {continue ;};for _cadec ,_aebdc :=range _ggfcg .Elements (){switch _aebdc .(type ){case *_fg .PdfObjectString :if _aebdc .String ()==_aabgc .String (){if _bebfb :=_ggfcg .Get (_cadec +1);
_bebfb !=nil {if _caca ,_cgcc :=_fg .GetDict (_bebfb );_cgcc {_fgdfd =_caca .Get ("\u0044");break ;};};};};};};};};};var _ccaba OutlineDest ;if _fgdfd !=nil &&!_fg .IsNullObject (_fgdfd ){if _egaff ,_dcaa :=_agcbc (_fgdfd ,_cbaedb );_dcaa ==nil {_ccaba =*_egaff ;
}else {_aa .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",_fgdfd ,_dcaa );
};};_babf =NewOutlineItem (_cadgg .Title .Decoded (),_ccaba );*_cfdgd =append (*_cfdgd ,_babf );if _cadgg .Next !=nil {_gfdcd (_cadgg .Next ,_cfdgd );};};if _bbag .First !=nil {if _babf !=nil {_cfdgd =&_babf .Entries ;};_gfdcd (_bbag .First ,_cfdgd );};
};_fabc :=NewOutline ();_gfdcd (_eacfa ,&_fabc .Entries );return _fabc ,nil ;};
// GetContainingPdfObject implements interface PdfModel.
func (_ca *PdfAction )GetContainingPdfObject ()_fg .PdfObject {return _ca ._bda };
// 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 ;
// AnnotFilterFunc allows filtering the annotations in the flattening
// process. If the filter function returns true, the annotation is flattened,
// otherwise it is skipped.
AnnotFilterFunc AnnotFilterFunc ;};
// NewPdfShadingType3 creates an empty shading type 3 dictionary.
func NewPdfShadingType3 ()*PdfShadingType3 {_gaee :=&PdfShadingType3 {};_gaee .PdfShading =&PdfShading {};_gaee .PdfShading ._cbabf =_fg .MakeIndirectObject (_fg .MakeDict ());_gaee .PdfShading ._bcbef =_gaee ;return _gaee ;};
// ColorToRGB verifies that the input color is an RGB color. Method exists in
// order to satisfy the PdfColorspace interface.
func (_acdd *PdfColorspaceDeviceRGB )ColorToRGB (color PdfColor )(PdfColor ,error ){_cfdb ,_ggbd :=color .(*PdfColorDeviceRGB );if !_ggbd {_aa .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 ,_ce .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};return _cfdb ,nil ;};func _aafff ()*modelManager {_gfcce :=modelManager {};_gfcce ._abga =map[PdfModel ]_fg .PdfObject {};_gfcce ._fbbfaf =map[_fg .PdfObject ]PdfModel {};
return &_gfcce ;};func _cfdcd (_ebegef *_fg .PdfObjectStream )(*PdfFunctionType4 ,error ){_afggb :=&PdfFunctionType4 {};_afggb ._dega =_ebegef ;_fdfb :=_ebegef .PdfObjectDictionary ;_gacae ,_daea :=_fg .TraceToDirectObject (_fdfb .Get ("\u0044\u006f\u006d\u0061\u0069\u006e")).(*_fg .PdfObjectArray );
if !_daea {_aa .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_ce .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 _gacae .Len ()%2!=0{_aa .Log .Error ("\u0044\u006f\u006d\u0061\u0069\u006e\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");return nil ,_ce .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0064\u006f\u006da\u0069\u006e\u0020\u0072an\u0067\u0065");};_aede ,_bfcf :=_gacae .ToFloat64Array ();
if _bfcf !=nil {return nil ,_bfcf ;};_afggb .Domain =_aede ;_gacae ,_daea =_fg .TraceToDirectObject (_fdfb .Get ("\u0052\u0061\u006eg\u0065")).(*_fg .PdfObjectArray );if _daea {if _gacae .Len ()< 0||_gacae .Len ()%2!=0{return nil ,_ce .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0061\u006e\u0067\u0065");
};_aacdf ,_caaca :=_gacae .ToFloat64Array ();if _caaca !=nil {return nil ,_caaca ;};_afggb .Range =_aacdf ;};_caae ,_bfcf :=_fg .DecodeStream (_ebegef );if _bfcf !=nil {return nil ,_bfcf ;};_afggb ._dedbd =_caae ;_dcdeg :=_bc .NewPSParser (_caae );_gagdg ,_bfcf :=_dcdeg .Parse ();
if _bfcf !=nil {return nil ,_bfcf ;};_afggb .Program =_gagdg ;return _afggb ,nil ;};
// Initialize initializes the PdfSignature.
func (_cfacc *PdfSignature )Initialize ()error {if _cfacc .Handler ==nil {return _ce .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 _cfacc .Handler .InitSignature (_cfacc );};
// UpdateObject marks `obj` as updated and to be included in the following revision.
func (_gaef *PdfAppender )UpdateObject (obj _fg .PdfObject ){_gaef .replaceObject (obj ,obj );if _ ,_aeab :=_gaef ._aec [obj ];!_aeab {_gaef ._gcdb =append (_gaef ._gcdb ,obj );_gaef ._aec [obj ]=struct{}{};};};
// ToPdfObject implements interface PdfModel.
func (_adag *PdfAnnotationFreeText )ToPdfObject ()_fg .PdfObject {_adag .PdfAnnotation .ToPdfObject ();_gebe :=_adag ._agb ;_adf :=_gebe .PdfObject .(*_fg .PdfObjectDictionary );_adag .PdfAnnotationMarkup .appendToPdfDictionary (_adf );_adf .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fg .MakeName ("\u0046\u0072\u0065\u0065\u0054\u0065\u0078\u0074"));
_adf .SetIfNotNil ("\u0044\u0041",_adag .DA );_adf .SetIfNotNil ("\u0051",_adag .Q );_adf .SetIfNotNil ("\u0052\u0043",_adag .RC );_adf .SetIfNotNil ("\u0044\u0053",_adag .DS );_adf .SetIfNotNil ("\u0043\u004c",_adag .CL );_adf .SetIfNotNil ("\u0049\u0054",_adag .IT );
_adf .SetIfNotNil ("\u0042\u0045",_adag .BE );_adf .SetIfNotNil ("\u0052\u0044",_adag .RD );_adf .SetIfNotNil ("\u0042\u0053",_adag .BS );_adf .SetIfNotNil ("\u004c\u0045",_adag .LE );return _gebe ;};
// 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 (_dfeb *PdfColorspaceCalRGB )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=3{return nil ,_ce .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_bdcc :=vals [0];if _bdcc < 0.0||_bdcc > 1.0{_aa .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_bdcc );
return nil ,ErrColorOutOfRange ;};_bddcf :=vals [1];if _bddcf < 0.0||_bddcf > 1.0{_aa .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_bddcf );return nil ,ErrColorOutOfRange ;
};_geebf :=vals [2];if _geebf < 0.0||_geebf > 1.0{_aa .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_geebf );return nil ,ErrColorOutOfRange ;};_cdbd :=NewPdfColorCalRGB (_bdcc ,_bddcf ,_geebf );
return _cdbd ,nil ;};
// GetNumComponents returns the number of color components (3 for RGB).
func (_ccb *PdfColorDeviceRGB )GetNumComponents ()int {return 3};
// NewBorderStyle returns an initialized PdfBorderStyle.
func NewBorderStyle ()*PdfBorderStyle {_aea :=&PdfBorderStyle {};return _aea };
// ToPdfObject implements interface PdfModel.
func (_efeg *PdfBorderStyle )ToPdfObject ()_fg .PdfObject {_cgdeb :=_fg .MakeDict ();if _efeg ._ebeb !=nil {if _cbgg ,_baed :=_efeg ._ebeb .(*_fg .PdfIndirectObject );_baed {_cbgg .PdfObject =_cgdeb ;};};_cgdeb .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fg .MakeName ("\u0042\u006f\u0072\u0064\u0065\u0072"));
if _efeg .W !=nil {_cgdeb .Set ("\u0057",_fg .MakeFloat (*_efeg .W ));};if _efeg .S !=nil {_cgdeb .Set ("\u0053",_fg .MakeName (_efeg .S .GetPdfName ()));};if _efeg .D !=nil {_cgdeb .Set ("\u0044",_fg .MakeArrayFromIntegers (*_efeg .D ));};if _efeg ._ebeb !=nil {return _efeg ._ebeb ;
};return _cgdeb ;};
// CharMetrics represents width and height metrics of a glyph.
type CharMetrics =_eed .CharMetrics ;
// 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 (_bfec byte )byte ;
// FieldImageProvider provides fields images for specified fields.
type FieldImageProvider interface{FieldImageValues ()(map[string ]*Image ,error );};
// AddExtGState adds a graphics state to the XObject resources.
func (_cbda *PdfPage )AddExtGState (name _fg .PdfObjectName ,egs *_fg .PdfObjectDictionary )error {if _cbda .Resources ==nil {_cbda .Resources =NewPdfPageResources ();};if _cbda .Resources .ExtGState ==nil {_cbda .Resources .ExtGState =_fg .MakeDict ();
};_gdgd ,_eecdbe :=_fg .TraceToDirectObject (_cbda .Resources .ExtGState ).(*_fg .PdfObjectDictionary );if !_eecdbe {_aa .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",_fg .TraceToDirectObject (_cbda .Resources .ExtGState ));
return _ce .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_gdgd .Set (name ,egs );return nil ;};
// NewPdfColorPatternType3 returns an empty color shading pattern type 3 (Radial).
func NewPdfColorPatternType3 ()*PdfColorPatternType3 {_dfcc :=&PdfColorPatternType3 {};return _dfcc };
// B returns the value of the blue component of the color.
func (_dcef *PdfColorDeviceRGB )B ()float64 {return _dcef [2]};
// ColorToRGB converts a CalGray color to an RGB color.
func (_eace *PdfColorspaceCalGray )ColorToRGB (color PdfColor )(PdfColor ,error ){_bdgec ,_bgdd :=color .(*PdfColorCalGray );if !_bgdd {_aa .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 ,_ce .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};ANorm :=_bdgec .Val ();X :=_eace .WhitePoint [0]*_ef .Pow (ANorm ,_eace .Gamma );Y :=_eace .WhitePoint [1]*_ef .Pow (ANorm ,_eace .Gamma );
Z :=_eace .WhitePoint [2]*_ef .Pow (ANorm ,_eace .Gamma );_ecec :=3.240479*X +-1.537150*Y +-0.498535*Z ;_gcgc :=-0.969256*X +1.875992*Y +0.041556*Z ;_fage :=0.055648*X +-0.204043*Y +1.057311*Z ;_ecec =_ef .Min (_ef .Max (_ecec ,0),1.0);_gcgc =_ef .Min (_ef .Max (_gcgc ,0),1.0);
_fage =_ef .Min (_ef .Max (_fage ,0),1.0);return NewPdfColorDeviceRGB (_ecec ,_gcgc ,_fage ),nil ;};
// NewPdfOutlineTree returns an initialized PdfOutline tree.
func NewPdfOutlineTree ()*PdfOutline {_daecd :=NewPdfOutline ();_daecd ._gfcge =&_daecd ;return _daecd ;};
// GetNumComponents returns the number of color components (1 for grayscale).
func (_aac *PdfColorDeviceGray )GetNumComponents ()int {return 1};func (_ffbd *PdfColorspaceDeviceRGB )String ()string {return "\u0044e\u0076\u0069\u0063\u0065\u0052\u0047B";};
// GetXObjectByName gets XObject by name.
func (_gbce *PdfPage )GetXObjectByName (name _fg .PdfObjectName )(_fg .PdfObject ,bool ){_cdbbe ,_abfa :=_gbce .Resources .XObject .(*_fg .PdfObjectDictionary );if !_abfa {return nil ,false ;};if _ggfaa :=_cdbbe .Get (name );_ggfaa !=nil {return _ggfaa ,true ;
};return nil ,false ;};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<<26);
FieldFlagDoNotSpellCheck FieldFlag =(1<<22);FieldFlagCombo FieldFlag =(1<<17);FieldFlagEdit FieldFlag =(1<<18);FieldFlagSort FieldFlag =(1<<19);FieldFlagMultiSelect FieldFlag =(1<<21);FieldFlagCommitOnSelChange FieldFlag =(1<<27););func (_gefgc *PdfAcroForm )filteredFields (_cacca FieldFilterFunc ,_bebb bool )[]*PdfField {if _gefgc ==nil {return nil ;
};return _gcbgc (_gefgc .Fields ,_cacca ,_bebb );};func (_geda *Image )samplesTrimPadding (_bebbe []uint32 )[]uint32 {_ccdb :=_geda .ColorComponents *int (_geda .Width )*int (_geda .Height );if len (_bebbe )==_ccdb {return _bebbe ;};_ggdff :=make ([]uint32 ,_ccdb );
_cadd :=int (_geda .Width )*_geda .ColorComponents ;var _fgbfa ,_cafdf ,_daagf ,_eebcf int ;_aeagcd :=_cc .BytesPerLine (int (_geda .Width ),int (_geda .BitsPerComponent ),_geda .ColorComponents );for _fgbfa =0;_fgbfa < int (_geda .Height );_fgbfa ++{_cafdf =_fgbfa *int (_geda .Width );
_daagf =_fgbfa *_aeagcd ;for _eebcf =0;_eebcf < _cadd ;_eebcf ++{_ggdff [_cafdf +_eebcf ]=_bebbe [_daagf +_eebcf ];};};return _ggdff ;};
// PdfAnnotationInk represents Ink annotations.
// (Section 12.5.6.13).
type PdfAnnotationInk struct{*PdfAnnotation ;*PdfAnnotationMarkup ;InkList _fg .PdfObject ;BS _fg .PdfObject ;};
// GetDocMDPPermission returns the DocMDP level of the restrictions
func (_egba *PdfSignature )GetDocMDPPermission ()(_gbb .DocMDPPermission ,bool ){for _ ,_fafbf :=range _egba .Reference .Elements (){if _dafdg ,_fbccg :=_fg .GetDict (_fafbf );_fbccg {if _effg ,_faebb :=_fg .GetNameVal (_dafdg .Get ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u004d\u0065\u0074\u0068\u006f\u0064"));
_faebb &&_effg =="\u0044\u006f\u0063\u004d\u0044\u0050"{if _egddd ,_gffb :=_fg .GetDict (_dafdg .Get ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u0050\u0061\u0072\u0061\u006d\u0073"));_gffb {if P ,_aaeae :=_fg .GetIntVal (_egddd .Get ("\u0050"));_aaeae {return _gbb .DocMDPPermission (P ),true ;
};};};};};return 0,false ;};
// Encoder returns the font's text encoder.
func (_ffeec pdfFontType0 )Encoder ()_dg .TextEncoder {return _ffeec ._bcacf };type fontCommon struct{_aefg string ;_ggcfc string ;_edad string ;_eggb _fg .PdfObject ;_agab *_fc .CMap ;_cdgef *PdfFontDescriptor ;_dgagb int64 ;};
// 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 ;_aceef *_fg .PdfIndirectObject ;};
// GetRevisionNumber returns the version of the current Pdf document
func (_bbgff *PdfReader )GetRevisionNumber ()int {return _bbgff ._ccgg .GetRevisionNumber ()};
// PdfActionTrans represents a trans action.
type PdfActionTrans struct{*PdfAction ;Trans _fg .PdfObject ;};
// Add appends an outline item as a child of the current outline item.
func (_bgdad *OutlineItem )Add (item *OutlineItem ){_bgdad .Entries =append (_bgdad .Entries ,item )};func (_dcdd *PdfColorspaceICCBased )String ()string {return "\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064";};
// 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 (_dbef *PdfOutlineTreeNode )GetContext ()PdfModel {if _cdef ,_ggag :=_dbef ._gfcge .(*PdfOutline );_ggag {return _cdef ;};if _abbafb ,_deafg :=_dbef ._gfcge .(*PdfOutlineItem );_deafg {return _abbafb ;};_aa .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 ;};
// PdfInfo holds document information that will overwrite
// document information global variables defined above.
type PdfInfo struct{Title *_fg .PdfObjectString ;Author *_fg .PdfObjectString ;Subject *_fg .PdfObjectString ;Keywords *_fg .PdfObjectString ;Creator *_fg .PdfObjectString ;Producer *_fg .PdfObjectString ;CreationDate *PdfDate ;ModifiedDate *PdfDate ;Trapped *_fg .PdfObjectName ;
_aaee *_fg .PdfObjectDictionary ;};
// GetEncryptionMethod returns a descriptive information string about the encryption method used.
func (_ccdce *PdfReader )GetEncryptionMethod ()string {_cdgab :=_ccdce ._ccgg .GetCrypter ();return _cdgab .String ();};
// GetCatalogStructTreeRoot gets the catalog StructTreeRoot object.
func (_fbagg *PdfReader )GetCatalogStructTreeRoot ()(_fg .PdfObject ,bool ){if _fbagg ._cgegd ==nil {return nil ,false ;};_agffb :=_fbagg ._cgegd .Get ("\u0053\u0074\u0072\u0075\u0063\u0074\u0054\u0072\u0065e\u0052\u006f\u006f\u0074");return _agffb ,_agffb !=nil ;
};
// Resample resamples the image data converting from current BitsPerComponent to a target BitsPerComponent
// value. Sets the image's BitsPerComponent to the target value following resampling.
//
// For example, converting an 8-bit RGB image to 1-bit grayscale (common for scanned images):
// // Convert RGB image to grayscale.
// rgbColorSpace := pdf.NewPdfColorspaceDeviceRGB()
// grayImage, err := rgbColorSpace.ImageToGray(rgbImage)
// if err != nil {
// return err
// }
// // Resample as 1 bit.
// grayImage.Resample(1)
func (_ffgbb *Image )Resample (targetBitsPerComponent int64 ){if _ffgbb .BitsPerComponent ==targetBitsPerComponent {return ;};_fdbea :=_ffgbb .GetSamples ();if targetBitsPerComponent < _ffgbb .BitsPerComponent {_bgged :=_ffgbb .BitsPerComponent -targetBitsPerComponent ;
for _dddf :=range _fdbea {_fdbea [_dddf ]>>=uint (_bgged );};}else if targetBitsPerComponent > _ffgbb .BitsPerComponent {_gbgeb :=targetBitsPerComponent -_ffgbb .BitsPerComponent ;for _cdbfg :=range _fdbea {_fdbea [_cdbfg ]<<=uint (_gbgeb );};};_ffgbb .BitsPerComponent =targetBitsPerComponent ;
if _ffgbb .BitsPerComponent < 8{_ffgbb .resampleLowBits (_fdbea );return ;};_edbc :=_cc .BytesPerLine (int (_ffgbb .Width ),int (_ffgbb .BitsPerComponent ),_ffgbb .ColorComponents );_gefeb :=make ([]byte ,_edbc *int (_ffgbb .Height ));var (_gaabea ,_dcddc ,_agabc ,_dagfd int ;
_efcfb uint32 ;);for _agabc =0;_agabc < int (_ffgbb .Height );_agabc ++{_gaabea =_agabc *_edbc ;_dcddc =(_agabc +1)*_edbc -1;_eegde :=_ade .ResampleUint32 (_fdbea [_gaabea :_dcddc ],int (targetBitsPerComponent ),8);for _dagfd ,_efcfb =range _eegde {_gefeb [_dagfd +_gaabea ]=byte (_efcfb );
};};_ffgbb .Data =_gefeb ;};
// GetNumComponents returns the number of input color components, i.e. that are input to the tint transform.
func (_daec *PdfColorspaceDeviceN )GetNumComponents ()int {return _daec .ColorantNames .Len ()};
// 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 (_gggc *PdfColorspaceCalRGB )ColorFromPdfObjects (objects []_fg .PdfObject )(PdfColor ,error ){if len (objects )!=3{return nil ,_ce .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_bbdae ,_bfde :=_fg .GetNumbersAsFloat (objects );
if _bfde !=nil {return nil ,_bfde ;};return _gggc .ColorFromFloats (_bbdae );};func (_gfbf *PdfReader )newPdfActionTransFromDict (_fdg *_fg .PdfObjectDictionary )(*PdfActionTrans ,error ){return &PdfActionTrans {Trans :_fdg .Get ("\u0054\u0072\u0061n\u0073")},nil ;
};
// PdfAnnotationRedact represents Redact annotations.
// (Section 12.5.6.23).
type PdfAnnotationRedact struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _fg .PdfObject ;IC _fg .PdfObject ;RO _fg .PdfObject ;OverlayText _fg .PdfObject ;Repeat _fg .PdfObject ;DA _fg .PdfObject ;Q _fg .PdfObject ;};
// ToPdfObject implements interface PdfModel.
func (_cg *PdfAction )ToPdfObject ()_fg .PdfObject {_agc :=_cg ._bda ;_ec :=_agc .PdfObject .(*_fg .PdfObjectDictionary );_ec .Clear ();_ec .Set ("\u0054\u0079\u0070\u0065",_fg .MakeName ("\u0041\u0063\u0074\u0069\u006f\u006e"));_ec .SetIfNotNil ("\u0053",_cg .S );
_ec .SetIfNotNil ("\u004e\u0065\u0078\u0074",_cg .Next );return _agc ;};
// NewPdfAnnotationSquiggly returns a new text squiggly annotation.
func NewPdfAnnotationSquiggly ()*PdfAnnotationSquiggly {_efcg :=NewPdfAnnotation ();_afg :=&PdfAnnotationSquiggly {};_afg .PdfAnnotation =_efcg ;_afg .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_efcg .SetContext (_afg );return _afg ;};
// NewPdfColorPattern returns an empty color pattern.
func NewPdfColorPattern ()*PdfColorPattern {_dgcd :=&PdfColorPattern {};return _dgcd };
// 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 (_fgead *PdfFont )StringToCharcodeBytes (str string )([]byte ,int ){return _fgead .RunesToCharcodeBytes ([]rune (str ));};
// Evaluate runs the function. Input is [x1 x2 x3].
func (_ebfaac *PdfFunctionType4 )Evaluate (xVec []float64 )([]float64 ,error ){if _ebfaac ._babdc ==nil {_ebfaac ._babdc =_bc .NewPSExecutor (_ebfaac .Program );};var _aceg []_bc .PSObject ;for _ ,_bbff :=range xVec {_aceg =append (_aceg ,_bc .MakeReal (_bbff ));
};_cfcag ,_edbab :=_ebfaac ._babdc .Execute (_aceg );if _edbab !=nil {return nil ,_edbab ;};_ffadd ,_edbab :=_bc .PSObjectArrayToFloat64Array (_cfcag );if _edbab !=nil {return nil ,_edbab ;};return _ffadd ,nil ;};func (_bgbed *PdfAcroForm )fillImageWithAppearance (_gegfg FieldImageProvider ,_eaaaf FieldAppearanceGenerator )error {if _bgbed ==nil {return nil ;
};_gagf ,_bcdca :=_gegfg .FieldImageValues ();if _bcdca !=nil {return _bcdca ;};for _ ,_cfdcf :=range _bgbed .AllFields (){_deac :=_cfdcf .PartialName ();_gebcd ,_gcdc :=_gagf [_deac ];if !_gcdc {if _debf ,_efbec :=_cfdcf .FullName ();_efbec ==nil {_gebcd ,_gcdc =_gagf [_debf ];
};};if !_gcdc {_aa .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",_deac );
continue ;};switch _dcfgaf :=_cfdcf .GetContext ().(type ){case *PdfFieldButton :if _dcfgaf .IsPush (){_dcfgaf .SetFillImage (_gebcd );};};if _eaaaf ==nil {continue ;};for _ ,_fafdc :=range _cfdcf .Annotations {_gdfe ,_beaff :=_eaaaf .GenerateAppearanceDict (_bgbed ,_cfdcf ,_fafdc );
if _beaff !=nil {return _beaff ;};_fafdc .AP =_gdfe ;_fafdc .ToPdfObject ();};};return nil ;};func (_bcadf *PdfWriter )writeOutlines ()error {if _bcadf ._baebg ==nil {return nil ;};_aa .Log .Trace ("\u004f\u0075t\u006c\u0069\u006ee\u0054\u0072\u0065\u0065\u003a\u0020\u0025\u002b\u0076",_bcadf ._baebg );
_gfgbb :=_bcadf ._baebg .ToPdfObject ();_aa .Log .Trace ("\u004fu\u0074\u006c\u0069\u006e\u0065\u0073\u003a\u0020\u0025\u002b\u0076 \u0028\u0025\u0054\u002c\u0020\u0070\u003a\u0025\u0070\u0029",_gfgbb ,_gfgbb ,_gfgbb );_bcadf ._cgacf .Set ("\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0073",_gfgbb );
_adcf :=_bcadf .addObjects (_gfgbb );if _adcf !=nil {return _adcf ;};return nil ;};func (_dfge *PdfShading )getShadingDict ()(*_fg .PdfObjectDictionary ,error ){_fbfdf :=_dfge ._cbabf ;if _egbe ,_dbgca :=_fbfdf .(*_fg .PdfIndirectObject );_dbgca {_edebc ,_ccddf :=_egbe .PdfObject .(*_fg .PdfObjectDictionary );
if !_ccddf {return nil ,_fg .ErrTypeError ;};return _edebc ,nil ;}else if _cacfdc ,_caecb :=_fbfdf .(*_fg .PdfObjectStream );_caecb {return _cacfdc .PdfObjectDictionary ,nil ;}else if _feffd ,_ffgbf :=_fbfdf .(*_fg .PdfObjectDictionary );_ffgbf {return _feffd ,nil ;
}else {_aa .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 ,_fg .ErrTypeError ;};};
// GetParamsDict returns *core.PdfObjectDictionary with a set of basic image parameters.
func (_fabf *Image )GetParamsDict ()*_fg .PdfObjectDictionary {_aacf :=_fg .MakeDict ();_aacf .Set ("\u0057\u0069\u0064t\u0068",_fg .MakeInteger (_fabf .Width ));_aacf .Set ("\u0048\u0065\u0069\u0067\u0068\u0074",_fg .MakeInteger (_fabf .Height ));_aacf .Set ("\u0043o\u006co\u0072\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074\u0073",_fg .MakeInteger (int64 (_fabf .ColorComponents )));
_aacf .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_fg .MakeInteger (_fabf .BitsPerComponent ));return _aacf ;};
// ToPdfObject sets the common field elements.
// Note: Call the more field context's ToPdfObject to set both the generic and
// non-generic information.
func (_eaddg *PdfField )ToPdfObject ()_fg .PdfObject {_edafg :=_eaddg ._daecc ;_gfba :=_edafg .PdfObject .(*_fg .PdfObjectDictionary );_bgcd :=_fg .MakeArray ();for _ ,_faadd :=range _eaddg .Kids {_bgcd .Append (_faadd .ToPdfObject ());};for _ ,_ggfa :=range _eaddg .Annotations {if _ggfa ._agb !=_eaddg ._daecc {_bgcd .Append (_ggfa .GetContext ().ToPdfObject ());
};};if _eaddg .Parent !=nil {_gfba .SetIfNotNil ("\u0050\u0061\u0072\u0065\u006e\u0074",_eaddg .Parent .GetContainingPdfObject ());};if _bgcd .Len ()> 0{_gfba .Set ("\u004b\u0069\u0064\u0073",_bgcd );};_gfba .SetIfNotNil ("\u0046\u0054",_eaddg .FT );_gfba .SetIfNotNil ("\u0054",_eaddg .T );
_gfba .SetIfNotNil ("\u0054\u0055",_eaddg .TU );_gfba .SetIfNotNil ("\u0054\u004d",_eaddg .TM );_gfba .SetIfNotNil ("\u0046\u0066",_eaddg .Ff );_gfba .SetIfNotNil ("\u0056",_eaddg .V );_gfba .SetIfNotNil ("\u0044\u0056",_eaddg .DV );_gfba .SetIfNotNil ("\u0041\u0041",_eaddg .AA );
if _eaddg .VariableText !=nil {_gfba .SetIfNotNil ("\u0044\u0041",_eaddg .VariableText .DA );_gfba .SetIfNotNil ("\u0051",_eaddg .VariableText .Q );_gfba .SetIfNotNil ("\u0044\u0053",_eaddg .VariableText .DS );_gfba .SetIfNotNil ("\u0052\u0056",_eaddg .VariableText .RV );
};return _edafg ;};func (_dcbf *PdfReader )newPdfAnnotationCircleFromDict (_ccd *_fg .PdfObjectDictionary )(*PdfAnnotationCircle ,error ){_cbc :=PdfAnnotationCircle {};_gfd ,_ffab :=_dcbf .newPdfAnnotationMarkupFromDict (_ccd );if _ffab !=nil {return nil ,_ffab ;
};_cbc .PdfAnnotationMarkup =_gfd ;_cbc .BS =_ccd .Get ("\u0042\u0053");_cbc .IC =_ccd .Get ("\u0049\u0043");_cbc .BE =_ccd .Get ("\u0042\u0045");_cbc .RD =_ccd .Get ("\u0052\u0044");return &_cbc ,nil ;};
// Fill populates `form` with values provided by `provider`.
func (_faaba *PdfAcroForm )Fill (provider FieldValueProvider )error {return _faaba .fill (provider ,nil )};
// GetXObjectFormByName returns the XObjectForm with the specified name from the
// page resources, if it exists.
func (_aegea *PdfPageResources )GetXObjectFormByName (keyName _fg .PdfObjectName )(*XObjectForm ,error ){_dbdbfe ,_gdgb :=_aegea .GetXObjectByName (keyName );if _dbdbfe ==nil {return nil ,nil ;};if _gdgb !=XObjectTypeForm {return nil ,_ce .New ("\u006e\u006f\u0074\u0020\u0061\u0020\u0066\u006f\u0072\u006d");
};_ebgcf ,_geaab :=NewXObjectFormFromStream (_dbdbfe );if _geaab !=nil {return nil ,_geaab ;};return _ebgcf ,nil ;};
// ToPdfObject returns the PDF representation of the outline tree node.
func (_aafffe *PdfOutlineTreeNode )ToPdfObject ()_fg .PdfObject {return _aafffe .GetContext ().ToPdfObject ();};
// Encrypt encrypts the output file with a specified user/owner password.
func (_ebecf *PdfWriter )Encrypt (userPass ,ownerPass []byte ,options *EncryptOptions )error {_deaef :=RC4_128bit ;if options !=nil {_deaef =options .Algorithm ;};_gbedb :=_gb .PermOwner ;if options !=nil {_gbedb =options .Permissions ;};var _cgfg _bgf .Filter ;
switch _deaef {case RC4_128bit :_cgfg =_bgf .NewFilterV2 (16);case AES_128bit :_cgfg =_bgf .NewFilterAESV2 ();case AES_256bit :_cgfg =_bgf .NewFilterAESV3 ();default:return _d .Errorf ("\u0075n\u0073\u0075\u0070\u0070o\u0072\u0074\u0065\u0064\u0020a\u006cg\u006fr\u0069\u0074\u0068\u006d\u003a\u0020\u0025v",options .Algorithm );
};_cfcgd ,_cgggc ,_daed :=_fg .PdfCryptNewEncrypt (_cgfg ,userPass ,ownerPass ,_gbedb );if _daed !=nil {return _daed ;};_ebecf ._bbdbd =_cfcgd ;if _cgggc .Major !=0{_ebecf .SetVersion (_cgggc .Major ,_cgggc .Minor );};_ebecf ._fagba =_cgggc .Encrypt ;_ebecf ._deeab ,_ebecf ._ccccb =_cgggc .ID0 ,_cgggc .ID1 ;
_cdbbd :=_fg .MakeIndirectObject (_cgggc .Encrypt );_ebecf ._abgdg =_cdbbd ;_ebecf .addObject (_cdbbd );return nil ;};
// GetPage returns the PdfPage model for the specified page number.
func (_ddddc *PdfReader )GetPage (pageNumber int )(*PdfPage ,error ){if _ddddc ._ccgg .GetCrypter ()!=nil &&!_ddddc ._ccgg .IsAuthenticated (){return nil ,_d .Errorf ("\u0066\u0069\u006c\u0065\u0020\u006e\u0065\u0065\u0064\u0073\u0020\u0074\u006f\u0020\u0062e\u0020d\u0065\u0063\u0072\u0079\u0070\u0074\u0065\u0064\u0020\u0066\u0069\u0072\u0073\u0074");
};if len (_ddddc ._bgce )< pageNumber {return nil ,_ce .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");
};_affbc :=pageNumber -1;if _affbc < 0{return nil ,_d .Errorf ("\u0070\u0061\u0067\u0065\u0020\u006e\u0075\u006d\u0062\u0065r\u0069\u006e\u0067\u0020\u006d\u0075\u0073t\u0020\u0073\u0074\u0061\u0072\u0074\u0020\u0061\u0074\u0020\u0031");};_bced :=_ddddc .PageList [_affbc ];
return _bced ,nil ;};
// 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 (_bffe *LTV )EnableChain (chain []*_ge .Certificate )error {return _bffe .enable (nil ,chain ,"")};
// PdfPage represents a page in a PDF document. (7.7.3.3 - Table 30).
type PdfPage struct{Parent _fg .PdfObject ;LastModified *PdfDate ;Resources *PdfPageResources ;CropBox *PdfRectangle ;MediaBox *PdfRectangle ;BleedBox *PdfRectangle ;TrimBox *PdfRectangle ;ArtBox *PdfRectangle ;BoxColorInfo _fg .PdfObject ;Contents _fg .PdfObject ;
Rotate *int64 ;Group _fg .PdfObject ;Thumb _fg .PdfObject ;B _fg .PdfObject ;Dur _fg .PdfObject ;Trans _fg .PdfObject ;AA _fg .PdfObject ;Metadata _fg .PdfObject ;PieceInfo _fg .PdfObject ;StructParents _fg .PdfObject ;ID _fg .PdfObject ;PZ _fg .PdfObject ;
SeparationInfo _fg .PdfObject ;Tabs _fg .PdfObject ;TemplateInstantiated _fg .PdfObject ;PresSteps _fg .PdfObject ;UserUnit _fg .PdfObject ;VP _fg .PdfObject ;Annots _fg .PdfObject ;_fbbb []*PdfAnnotation ;_eebge *_fg .PdfObjectDictionary ;_aebf *_fg .PdfIndirectObject ;
_cceb _fg .PdfObjectDictionary ;_dedef *PdfReader ;};
// GetDescent returns the Descent of the font `descriptor`.
func (_ggbfg *PdfFontDescriptor )GetDescent ()(float64 ,error ){return _fg .GetNumberAsFloat (_ggbfg .Descent );};func _fbdc ()_g .Time {_baacg .Lock ();defer _baacg .Unlock ();return _fbefe };func _gfegc (_gaffda _fg .PdfObject )[]*_fg .PdfObjectStream {if _gaffda ==nil {return nil ;
};_bageda ,_bgec :=_fg .GetArray (_gaffda );if !_bgec ||_bageda .Len ()==0{return nil ;};_ageb :=make ([]*_fg .PdfObjectStream ,0,_bageda .Len ());for _ ,_beeaae :=range _bageda .Elements (){if _ebedf ,_badg :=_fg .GetStream (_beeaae );_badg {_ageb =append (_ageb ,_ebedf );
};};return _ageb ;};
// Insert adds a top level outline item in the outline,
// at the specified index.
func (_fbbe *Outline )Insert (index uint ,item *OutlineItem ){_deedb :=uint (len (_fbbe .Entries ));if index > _deedb {index =_deedb ;};_fbbe .Entries =append (_fbbe .Entries [:index ],append ([]*OutlineItem {item },_fbbe .Entries [index :]...)...);};
// SetNameDictionary sets the Names entry in the PDF catalog.
// See section 7.7.4 "Name Dictionary" (p. 80 PDF32000_2008).
func (_gggbd *PdfWriter )SetNameDictionary (names _fg .PdfObject )error {if names ==nil {return nil ;};_aa .Log .Trace ("\u0053e\u0074\u0074\u0069\u006e\u0067\u0020\u0063\u0061\u0074\u0061\u006co\u0067\u0020\u004e\u0061\u006d\u0065\u0073\u002e\u002e\u002e");
_gggbd ._cgacf .Set ("\u004e\u0061\u006de\u0073",names );return _gggbd .addObjects (names );};
// 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 *_fg .PdfObjectName ;Colorants _fg .PdfObject ;Process _fg .PdfObject ;MixingHints _fg .PdfObject ;_eagf *_fg .PdfIndirectObject ;};
// NewPdfColorspaceLab returns a new Lab colorspace object.
func NewPdfColorspaceLab ()*PdfColorspaceLab {_egec :=&PdfColorspaceLab {};_egec .BlackPoint =[]float64 {0.0,0.0,0.0};_egec .Range =[]float64 {-100,100,-100,100};return _egec ;};func _afdf (_agddg *_fg .PdfObjectDictionary ,_egeeb *fontCommon )(*pdfFontType0 ,error ){_aaeea ,_eacdf :=_fg .GetArray (_agddg .Get ("\u0044e\u0073c\u0065\u006e\u0064\u0061\u006e\u0074\u0046\u006f\u006e\u0074\u0073"));
if !_eacdf {_aa .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",_egeeb );
return nil ,_fg .ErrRangeError ;};if _aaeea .Len ()!=1{_aa .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",_aaeea .Len ());return nil ,_fg .ErrRangeError ;
};_ggda ,_effdc :=_bfab (_aaeea .Get (0),false );if _effdc !=nil {_aa .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",_effdc ,_egeeb );
return nil ,_effdc ;};_gfag :=_cabb (_egeeb );_gfag .DescendantFont =_ggda ;_abgcc ,_eacdf :=_fg .GetNameVal (_agddg .Get ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067"));if _eacdf {if _abgcc =="\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079\u002d\u0048"||_abgcc =="\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079\u002d\u0056"{_gfag ._bcacf =_dg .NewIdentityTextEncoder (_abgcc );
}else if _fc .IsPredefinedCMap (_abgcc ){_gfag ._abeac ,_effdc =_fc .LoadPredefinedCMap (_abgcc );if _effdc !=nil {_aa .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",_abgcc ,_effdc );
};}else {_aa .Log .Debug ("\u0055\u006e\u0068\u0061\u006e\u0064\u006c\u0065\u0064\u0020\u0063\u006da\u0070\u0020\u0025\u0071",_abgcc );};};if _aeaad :=_ggda .baseFields ()._agab ;_aeaad !=nil {if _ecfeb :=_aeaad .Name ();_ecfeb =="\u0041d\u006fb\u0065\u002d\u0043\u004e\u0053\u0031\u002d\u0055\u0043\u0053\u0032"||_ecfeb =="\u0041\u0064\u006f\u0062\u0065\u002d\u0047\u0042\u0031-\u0055\u0043\u0053\u0032"||_ecfeb =="\u0041\u0064\u006f\u0062\u0065\u002d\u004a\u0061\u0070\u0061\u006e\u0031-\u0055\u0043\u0053\u0032"||_ecfeb =="\u0041\u0064\u006f\u0062\u0065\u002d\u004b\u006f\u0072\u0065\u0061\u0031-\u0055\u0043\u0053\u0032"{_gfag ._bcacf =_dg .NewCMapEncoder (_abgcc ,_gfag ._abeac ,_aeaad );
};};return _gfag ,nil ;};
// ToPdfObject returns the button field dictionary within an indirect object.
func (_bdabc *PdfFieldButton )ToPdfObject ()_fg .PdfObject {_bdabc .PdfField .ToPdfObject ();_cecgb :=_bdabc ._daecc ;_aaggf :=_cecgb .PdfObject .(*_fg .PdfObjectDictionary );_aaggf .Set ("\u0046\u0054",_fg .MakeName ("\u0042\u0074\u006e"));if _bdabc .Opt !=nil {_aaggf .Set ("\u004f\u0070\u0074",_bdabc .Opt );
};return _cecgb ;};
// ToPdfObject implements interface PdfModel.
func (_gc *PdfActionNamed )ToPdfObject ()_fg .PdfObject {_gc .PdfAction .ToPdfObject ();_adg :=_gc ._bda ;_cfa :=_adg .PdfObject .(*_fg .PdfObjectDictionary );_cfa .SetIfNotNil ("\u0053",_fg .MakeName (string (ActionTypeNamed )));_cfa .SetIfNotNil ("\u004e",_gc .N );
return _adg ;};func _abfbd (_ffbeg *fontCommon )*pdfFontSimple {return &pdfFontSimple {fontCommon :*_ffbeg }};
// 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 *_fg .PdfObjectInteger ;TilingType *_fg .PdfObjectInteger ;BBox *PdfRectangle ;XStep *_fg .PdfObjectFloat ;YStep *_fg .PdfObjectFloat ;Resources *PdfPageResources ;Matrix *_fg .PdfObjectArray ;};func (_gdbe *PdfAppender )addNewObject (_efga _fg .PdfObject ){if _ ,_dadd :=_gdbe ._aec [_efga ];
!_dadd {_gdbe ._gcdb =append (_gdbe ._gcdb ,_efga );_gdbe ._aec [_efga ]=struct{}{};};};
// SetContext set the sub annotation (context).
func (_agabg *PdfShading )SetContext (ctx PdfModel ){_agabg ._bcbef =ctx };func (_eaec *LTV )generateVRIKey (_bbcfd *PdfSignature )(string ,error ){_ggbc ,_baccf :=_egbc (_bbcfd .Contents .Bytes ());if _baccf !=nil {return "",_baccf ;};return _dc .ToUpper (_ed .EncodeToString (_ggbc )),nil ;
};
// ToPdfObject returns the PDF representation of the page resources.
func (_gfgb *PdfPageResources )ToPdfObject ()_fg .PdfObject {_gdgdd :=_gfgb ._cgce ;_gdgdd .SetIfNotNil ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e",_gfgb .ExtGState );if _gfgb ._edbg !=nil {_gfgb .ColorSpace =_gfgb ._edbg .ToPdfObject ();};_gdgdd .SetIfNotNil ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065",_gfgb .ColorSpace );
_gdgdd .SetIfNotNil ("\u0050a\u0074\u0074\u0065\u0072\u006e",_gfgb .Pattern );_gdgdd .SetIfNotNil ("\u0053h\u0061\u0064\u0069\u006e\u0067",_gfgb .Shading );_gdgdd .SetIfNotNil ("\u0058O\u0062\u006a\u0065\u0063\u0074",_gfgb .XObject );_gdgdd .SetIfNotNil ("\u0046\u006f\u006e\u0074",_gfgb .Font );
_gdgdd .SetIfNotNil ("\u0050r\u006f\u0063\u0053\u0065\u0074",_gfgb .ProcSet );_gdgdd .SetIfNotNil ("\u0050\u0072\u006f\u0070\u0065\u0072\u0074\u0069\u0065\u0073",_gfgb .Properties );return _gdgdd ;};
// ToPdfObject implements interface PdfModel.
func (_dbb *PdfAnnotationFileAttachment )ToPdfObject ()_fg .PdfObject {_dbb .PdfAnnotation .ToPdfObject ();_faba :=_dbb ._agb ;_ffge :=_faba .PdfObject .(*_fg .PdfObjectDictionary );_dbb .PdfAnnotationMarkup .appendToPdfDictionary (_ffge );_ffge .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fg .MakeName ("\u0046\u0069\u006c\u0065\u0041\u0074\u0074\u0061\u0063h\u006d\u0065\u006e\u0074"));
_ffge .SetIfNotNil ("\u0046\u0053",_dbb .FS );_ffge .SetIfNotNil ("\u004e\u0061\u006d\u0065",_dbb .Name );return _faba ;};
// PdfColorPattern represents a pattern color.
type PdfColorPattern struct{Color PdfColor ;PatternName _fg .PdfObjectName ;};
// ToPdfObject returns the PDF representation of the colorspace.
func (_abbf *PdfColorspaceDeviceGray )ToPdfObject ()_fg .PdfObject {return _fg .MakeName ("\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079");};func (_eaadc *PdfSignature )extractChainFromPKCS7 ()([]*_ge .Certificate ,error ){_ddccf ,_bgbb :=_ffe .Parse (_eaadc .Contents .Bytes ());
if _bgbb !=nil {return nil ,_bgbb ;};return _ddccf .Certificates ,nil ;};
// PdfTransformParamsDocMDP represents a transform parameters dictionary for the DocMDP method and is used to detect
// modifications relative to a signature field that is signed by the author of a document.
// (Section 12.8.2.2, Table 254 - Entries in the DocMDP transform parameters dictionary p. 471 in PDF32000_2008).
type PdfTransformParamsDocMDP struct{Type *_fg .PdfObjectName ;P *_fg .PdfObjectInteger ;V *_fg .PdfObjectName ;};
// PdfPageResources is a Page resources model.
// Implements PdfModel.
type PdfPageResources struct{ExtGState _fg .PdfObject ;ColorSpace _fg .PdfObject ;Pattern _fg .PdfObject ;Shading _fg .PdfObject ;XObject _fg .PdfObject ;Font _fg .PdfObject ;ProcSet _fg .PdfObject ;Properties _fg .PdfObject ;_cgce *_fg .PdfObjectDictionary ;
_edbg *PdfPageResourcesColorspaces ;};
// 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 _fg .PdfObject ;_acce []byte ;_gfeg *_fg .PdfIndirectObject ;};
// PdfActionGoToE represents a GoToE action.
type PdfActionGoToE struct{*PdfAction ;F *PdfFilespec ;D _fg .PdfObject ;NewWindow _fg .PdfObject ;T _fg .PdfObject ;};
// B returns the value of the B component of the color.
func (_addf *PdfColorLab )B ()float64 {return _addf [2]};
// GetAsShadingPattern returns a shading pattern. Check with IsShading() prior to using this.
func (_bfdfg *PdfPattern )GetAsShadingPattern ()*PdfShadingPattern {return _bfdfg ._ccdc .(*PdfShadingPattern );};func _cagc (_agedf _fg .PdfObject )(*PdfColorspaceDeviceN ,error ){_gaba :=NewPdfColorspaceDeviceN ();if _ggde ,_bbfa :=_agedf .(*_fg .PdfIndirectObject );
_bbfa {_gaba ._cggda =_ggde ;};_agedf =_fg .TraceToDirectObject (_agedf );_gdba ,_cdaf :=_agedf .(*_fg .PdfObjectArray );if !_cdaf {return nil ,_d .Errorf ("\u0064\u0065\u0076\u0069\u0063\u0065\u004e\u0020\u0043\u0053\u003a \u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006f\u0062j\u0065\u0063\u0074");
};if _gdba .Len ()!=4&&_gdba .Len ()!=5{return nil ,_d .Errorf ("\u0064\u0065\u0076ic\u0065\u004e\u0020\u0043\u0053\u003a\u0020\u0049\u006ec\u006fr\u0072e\u0063t\u0020\u0061\u0072\u0072\u0061\u0079\u0020\u006c\u0065\u006e\u0067\u0074\u0068");};_agedf =_gdba .Get (0);
_ggdg ,_cdaf :=_agedf .(*_fg .PdfObjectName );if !_cdaf {return nil ,_d .Errorf ("\u0064\u0065\u0076i\u0063\u0065\u004e\u0020C\u0053\u003a\u0020\u0069\u006e\u0076\u0061l\u0069\u0064\u0020\u0066\u0061\u006d\u0069\u006c\u0079\u0020\u006e\u0061\u006d\u0065");
};if *_ggdg !="\u0044e\u0076\u0069\u0063\u0065\u004e"{return nil ,_d .Errorf ("\u0064\u0065v\u0069\u0063\u0065\u004e\u0020\u0043\u0053\u003a\u0020\u0077\u0072\u006f\u006e\u0067\u0020\u0066\u0061\u006d\u0069\u006c\u0079\u0020na\u006d\u0065");};_agedf =_gdba .Get (1);
_agedf =_fg .TraceToDirectObject (_agedf );_fdbf ,_cdaf :=_agedf .(*_fg .PdfObjectArray );if !_cdaf {return nil ,_d .Errorf ("\u0064\u0065\u0076i\u0063\u0065\u004e\u0020C\u0053\u003a\u0020\u0049\u006e\u0076\u0061l\u0069\u0064\u0020\u006e\u0061\u006d\u0065\u0073\u0020\u0061\u0072\u0072\u0061\u0079");
};_gaba .ColorantNames =_fdbf ;_agedf =_gdba .Get (2);_ddbg ,_gbbf :=NewPdfColorspaceFromPdfObject (_agedf );if _gbbf !=nil {return nil ,_gbbf ;};_gaba .AlternateSpace =_ddbg ;_gfefd ,_gbbf :=_defgb (_gdba .Get (3));if _gbbf !=nil {return nil ,_gbbf ;};
_gaba .TintTransform =_gfefd ;if _gdba .Len ()==5{_defad ,_eeacc :=_daaa (_gdba .Get (4));if _eeacc !=nil {return nil ,_eeacc ;};_gaba .Attributes =_defad ;};return _gaba ,nil ;};
// SetDocInfo set document info.
// This will overwrite any globally declared document info.
func (_adeag *PdfWriter )SetDocInfo (info *PdfInfo ){_adeag .setDocInfo (info .ToPdfObject ())};
// PdfAnnotationSquare represents Square annotations.
// (Section 12.5.6.8).
type PdfAnnotationSquare struct{*PdfAnnotation ;*PdfAnnotationMarkup ;BS _fg .PdfObject ;IC _fg .PdfObject ;BE _fg .PdfObject ;RD _fg .PdfObject ;};
// DefaultFont returns the default font, which is currently the built in Helvetica.
func DefaultFont ()*PdfFont {_ccdg ,_agdd :=_eed .NewStdFontByName (HelveticaName );if !_agdd {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");
};_gdcca :=_dfebg (_ccdg );return &PdfFont {_gcaeff :&_gdcca };};
// ToPdfObject returns the PdfFontDescriptor as a PDF dictionary inside an indirect object.
func (_bbbec *PdfFontDescriptor )ToPdfObject ()_fg .PdfObject {_gdcdb :=_fg .MakeDict ();if _bbbec ._cgcdc ==nil {_bbbec ._cgcdc =&_fg .PdfIndirectObject {};};_bbbec ._cgcdc .PdfObject =_gdcdb ;_gdcdb .Set ("\u0054\u0079\u0070\u0065",_fg .MakeName ("\u0046\u006f\u006e\u0074\u0044\u0065\u0073\u0063\u0072i\u0070\u0074\u006f\u0072"));
if _bbbec .FontName !=nil {_gdcdb .Set ("\u0046\u006f\u006e\u0074\u004e\u0061\u006d\u0065",_bbbec .FontName );};if _bbbec .FontFamily !=nil {_gdcdb .Set ("\u0046\u006f\u006e\u0074\u0046\u0061\u006d\u0069\u006c\u0079",_bbbec .FontFamily );};if _bbbec .FontStretch !=nil {_gdcdb .Set ("F\u006f\u006e\u0074\u0053\u0074\u0072\u0065\u0074\u0063\u0068",_bbbec .FontStretch );
};if _bbbec .FontWeight !=nil {_gdcdb .Set ("\u0046\u006f\u006e\u0074\u0057\u0065\u0069\u0067\u0068\u0074",_bbbec .FontWeight );};if _bbbec .Flags !=nil {_gdcdb .Set ("\u0046\u006c\u0061g\u0073",_bbbec .Flags );};if _bbbec .FontBBox !=nil {_gdcdb .Set ("\u0046\u006f\u006e\u0074\u0042\u0042\u006f\u0078",_bbbec .FontBBox );
};if _bbbec .ItalicAngle !=nil {_gdcdb .Set ("I\u0074\u0061\u006c\u0069\u0063\u0041\u006e\u0067\u006c\u0065",_bbbec .ItalicAngle );};if _bbbec .Ascent !=nil {_gdcdb .Set ("\u0041\u0073\u0063\u0065\u006e\u0074",_bbbec .Ascent );};if _bbbec .Descent !=nil {_gdcdb .Set ("\u0044e\u0073\u0063\u0065\u006e\u0074",_bbbec .Descent );
};if _bbbec .Leading !=nil {_gdcdb .Set ("\u004ce\u0061\u0064\u0069\u006e\u0067",_bbbec .Leading );};if _bbbec .CapHeight !=nil {_gdcdb .Set ("\u0043a\u0070\u0048\u0065\u0069\u0067\u0068t",_bbbec .CapHeight );};if _bbbec .XHeight !=nil {_gdcdb .Set ("\u0058H\u0065\u0069\u0067\u0068\u0074",_bbbec .XHeight );
};if _bbbec .StemV !=nil {_gdcdb .Set ("\u0053\u0074\u0065m\u0056",_bbbec .StemV );};if _bbbec .StemH !=nil {_gdcdb .Set ("\u0053\u0074\u0065m\u0048",_bbbec .StemH );};if _bbbec .AvgWidth !=nil {_gdcdb .Set ("\u0041\u0076\u0067\u0057\u0069\u0064\u0074\u0068",_bbbec .AvgWidth );
};if _bbbec .MaxWidth !=nil {_gdcdb .Set ("\u004d\u0061\u0078\u0057\u0069\u0064\u0074\u0068",_bbbec .MaxWidth );};if _bbbec .MissingWidth !=nil {_gdcdb .Set ("\u004d\u0069\u0073s\u0069\u006e\u0067\u0057\u0069\u0064\u0074\u0068",_bbbec .MissingWidth );};
if _bbbec .FontFile !=nil {_gdcdb .Set ("\u0046\u006f\u006e\u0074\u0046\u0069\u006c\u0065",_bbbec .FontFile );};if _bbbec .FontFile2 !=nil {_gdcdb .Set ("\u0046o\u006e\u0074\u0046\u0069\u006c\u00652",_bbbec .FontFile2 );};if _bbbec .FontFile3 !=nil {_gdcdb .Set ("\u0046o\u006e\u0074\u0046\u0069\u006c\u00653",_bbbec .FontFile3 );
};if _bbbec .CharSet !=nil {_gdcdb .Set ("\u0043h\u0061\u0072\u0053\u0065\u0074",_bbbec .CharSet );};if _bbbec .Style !=nil {_gdcdb .Set ("\u0046\u006f\u006e\u0074\u004e\u0061\u006d\u0065",_bbbec .FontName );};if _bbbec .Lang !=nil {_gdcdb .Set ("\u004c\u0061\u006e\u0067",_bbbec .Lang );
};if _bbbec .FD !=nil {_gdcdb .Set ("\u0046\u0044",_bbbec .FD );};if _bbbec .CIDSet !=nil {_gdcdb .Set ("\u0043\u0049\u0044\u0053\u0065\u0074",_bbbec .CIDSet );};return _bbbec ._cgcdc ;};
// GetContainingPdfObject returns the container of the DSS (indirect object).
func (_cgecf *DSS )GetContainingPdfObject ()_fg .PdfObject {return _cgecf ._gbaf };
// String implements interface PdfObject.
func (_bgg *PdfAction )String ()string {_de ,_ab :=_bgg .ToPdfObject ().(*_fg .PdfIndirectObject );if _ab {return _d .Sprintf ("\u0025\u0054\u003a\u0020\u0025\u0073",_bgg ._bd ,_de .PdfObject .String ());};return "";};
// ColorFromFloats returns a new PdfColor based on the input slice of color
// components. The slice should contain a single element.
func (_acef *PdfColorspaceSpecialIndexed )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=1{return nil ,_ce .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};N :=_acef .Base .GetNumComponents ();_ffde :=int (vals [0])*N ;
if _ffde < 0||(_ffde +N -1)>=len (_acef ._acce ){_aa .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_ffde );return nil ,ErrColorOutOfRange ;};_bbee :=_acef ._acce [_ffde :_ffde +N ];
var _debc []float64 ;for _ ,_eaga :=range _bbee {_debc =append (_debc ,float64 (_eaga )/255.0);};_ggbab ,_facga :=_acef .Base .ColorFromFloats (_debc );if _facga !=nil {return nil ,_facga ;};return _ggbab ,nil ;};
// GetContainingPdfObject returns the containing object for the PdfField, i.e. an indirect object
// containing the field dictionary.
func (_dffb *PdfField )GetContainingPdfObject ()_fg .PdfObject {return _dffb ._daecc };func (_agef *PdfReader )newPdfAnnotationTrapNetFromDict (_aegd *_fg .PdfObjectDictionary )(*PdfAnnotationTrapNet ,error ){_ebbg :=PdfAnnotationTrapNet {};return &_ebbg ,nil ;
};type modelManager struct{_abga map[PdfModel ]_fg .PdfObject ;_fbbfaf map[_fg .PdfObject ]PdfModel ;};
// NewPdfColorspaceSpecialPattern returns a new pattern color.
func NewPdfColorspaceSpecialPattern ()*PdfColorspaceSpecialPattern {return &PdfColorspaceSpecialPattern {};};
// NewPdfSignatureReferenceDocMDP returns PdfSignatureReference for the transformParams.
func NewPdfSignatureReferenceDocMDP (transformParams *PdfTransformParamsDocMDP )*PdfSignatureReference {return &PdfSignatureReference {Type :_fg .MakeName ("\u0053\u0069\u0067\u0052\u0065\u0066"),TransformMethod :_fg .MakeName ("\u0044\u006f\u0063\u004d\u0044\u0050"),TransformParams :transformParams .ToPdfObject ()};
};
// NewPdfColorDeviceRGB returns a new PdfColorDeviceRGB based on the r,g,b component values.
func NewPdfColorDeviceRGB (r ,g ,b float64 )*PdfColorDeviceRGB {_bgef :=PdfColorDeviceRGB {r ,g ,b };return &_bgef ;};
// 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 (_bce *PdfReader )newPdfAnnotationStrikeOut (_cbg *_fg .PdfObjectDictionary )(*PdfAnnotationStrikeOut ,error ){_cacd :=PdfAnnotationStrikeOut {};_fef ,_faea :=_bce .newPdfAnnotationMarkupFromDict (_cbg );if _faea !=nil {return nil ,_faea ;
};_cacd .PdfAnnotationMarkup =_fef ;_cacd .QuadPoints =_cbg .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");return &_cacd ,nil ;};
// PdfAnnotationScreen represents Screen annotations.
// (Section 12.5.6.18).
type PdfAnnotationScreen struct{*PdfAnnotation ;T _fg .PdfObject ;MK _fg .PdfObject ;A _fg .PdfObject ;AA _fg .PdfObject ;};
// NewPdfAnnotationCaret returns a new caret annotation.
func NewPdfAnnotationCaret ()*PdfAnnotationCaret {_acdg :=NewPdfAnnotation ();_beac :=&PdfAnnotationCaret {};_beac .PdfAnnotation =_acdg ;_beac .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_acdg .SetContext (_beac );return _beac ;};func (_fgee *pdfFontType0 )subsetRegistered ()error {_ddff ,_bbgf :=_fgee .DescendantFont ._gcaeff .(*pdfCIDFontType2 );
if !_bbgf {_aa .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",_fgee .DescendantFont );return nil ;};if _ddff ==nil {return nil ;
};if _ddff ._cdgef ==nil {_aa .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 _fgee ._bcacf ==nil {_aa .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 ;};_becd ,_bbgf :=_fg .GetStream (_ddff ._cdgef .FontFile2 );if !_bbgf {_aa .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 _ce .New ("\u0066\u006f\u006e\u0074fi\u006c\u0065\u0032\u0020\u006e\u006f\u0074\u0020\u0066\u006f\u0075\u006e\u0064");};_gcafc ,_ccecc :=_fg .DecodeStream (_becd );if _ccecc !=nil {_aa .Log .Debug ("\u0044\u0065c\u006f\u0064\u0065 \u0065\u0072\u0072\u006f\u0072\u003a\u0020\u0025\u0076",_ccecc );
return _ccecc ;};_bace ,_ccecc :=_eee .Parse (_cb .NewReader (_gcafc ));if _ccecc !=nil {_aa .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 (_becd .Stream ));
return _ccecc ;};var _edadc []rune ;var _ffebe *_eee .Font ;switch _dadde :=_fgee ._bcacf .(type ){case *_dg .TrueTypeFontEncoder :_edadc =_dadde .RegisteredRunes ();_ffebe ,_ccecc =_bace .SubsetKeepRunes (_edadc );if _ccecc !=nil {_aa .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_ccecc );
return _ccecc ;};_dadde .SubsetRegistered ();case *_dg .IdentityEncoder :_edadc =_dadde .RegisteredRunes ();_fgaf :=make ([]_eee .GlyphIndex ,len (_edadc ));for _gced ,_fdcfgb :=range _edadc {_fgaf [_gced ]=_eee .GlyphIndex (_fdcfgb );};_ffebe ,_ccecc =_bace .SubsetKeepIndices (_fgaf );
if _ccecc !=nil {_aa .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_ccecc );return _ccecc ;};case _dg .SimpleEncoder :_bffb :=_dadde .Charcodes ();for _ ,_gaccb :=range _bffb {_acbc ,_dbgdg :=_dadde .CharcodeToRune (_gaccb );if !_dbgdg {_aa .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",_gaccb );
continue ;};_edadc =append (_edadc ,_acbc );};default:return _d .Errorf ("\u0075\u006e\u0073\u0075\u0070\u0070\u006f\u0072\u0074\u0065\u0064\u0020\u0065\u006e\u0063\u006f\u0064\u0065\u0072\u0020\u0066\u006f\u0072\u0020s\u0075\u0062\u0073\u0065\u0074t\u0069\u006eg\u003a\u0020\u0025\u0054",_fgee ._bcacf );
};var _ggdcd _cb .Buffer ;_ccecc =_ffebe .Write (&_ggdcd );if _ccecc !=nil {_aa .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_ccecc );return _ccecc ;};if _fgee ._agab !=nil {_ceeg :=make (map[_fc .CharCode ]rune ,len (_edadc ));for _ ,_bbbef :=range _edadc {_afef ,_cfeg :=_fgee ._bcacf .RuneToCharcode (_bbbef );
if !_cfeg {continue ;};_ceeg [_fc .CharCode (_afef )]=_bbbef ;};_fgee ._agab =_fc .NewToUnicodeCMap (_ceeg );};_becd ,_ccecc =_fg .MakeStream (_ggdcd .Bytes (),_fg .NewFlateEncoder ());if _ccecc !=nil {_aa .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_ccecc );
return _ccecc ;};_becd .Set ("\u004ce\u006e\u0067\u0074\u0068\u0031",_fg .MakeInteger (int64 (_ggdcd .Len ())));if _abaad ,_gcde :=_fg .GetStream (_ddff ._cdgef .FontFile2 );_gcde {*_abaad =*_becd ;}else {_ddff ._cdgef .FontFile2 =_becd ;};_ebfgg :=_agae ();
if len (_fgee ._aefg )> 0{_fgee ._aefg =_gcccf (_fgee ._aefg ,_ebfgg );};if len (_ddff ._aefg )> 0{_ddff ._aefg =_gcccf (_ddff ._aefg ,_ebfgg );};if len (_fgee ._edad )> 0{_fgee ._edad =_gcccf (_fgee ._edad ,_ebfgg );};if _ddff ._cdgef !=nil {_dcddb ,_aegba :=_fg .GetName (_ddff ._cdgef .FontName );
if _aegba &&len (_dcddb .String ())> 0{_cdbb :=_gcccf (_dcddb .String (),_ebfgg );_ddff ._cdgef .FontName =_fg .MakeName (_cdbb );};};return nil ;};
// ToPdfObject returns the PDF representation of the function.
func (_ccdac *PdfFunctionType2 )ToPdfObject ()_fg .PdfObject {_bcdcg :=_fg .MakeDict ();_bcdcg .Set ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065",_fg .MakeInteger (2));_feafe :=&_fg .PdfObjectArray {};for _ ,_adedg :=range _ccdac .Domain {_feafe .Append (_fg .MakeFloat (_adedg ));
};_bcdcg .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_feafe );if _ccdac .Range !=nil {_ecece :=&_fg .PdfObjectArray {};for _ ,_fedba :=range _ccdac .Range {_ecece .Append (_fg .MakeFloat (_fedba ));};_bcdcg .Set ("\u0052\u0061\u006eg\u0065",_ecece );};
if _ccdac .C0 !=nil {_cedee :=&_fg .PdfObjectArray {};for _ ,_aeafa :=range _ccdac .C0 {_cedee .Append (_fg .MakeFloat (_aeafa ));};_bcdcg .Set ("\u0043\u0030",_cedee );};if _ccdac .C1 !=nil {_fgadd :=&_fg .PdfObjectArray {};for _ ,_gcad :=range _ccdac .C1 {_fgadd .Append (_fg .MakeFloat (_gcad ));
};_bcdcg .Set ("\u0043\u0031",_fgadd );};_bcdcg .Set ("\u004e",_fg .MakeFloat (_ccdac .N ));if _ccdac ._aceef !=nil {_ccdac ._aceef .PdfObject =_bcdcg ;return _ccdac ._aceef ;};return _bcdcg ;};
// ToPdfObject returns the PDF representation of the function.
func (_gccfb *PdfFunctionType4 )ToPdfObject ()_fg .PdfObject {_bebeb :=_gccfb ._dega ;if _bebeb ==nil {_gccfb ._dega =&_fg .PdfObjectStream {};_bebeb =_gccfb ._dega ;};_ebedg :=_fg .MakeDict ();_ebedg .Set ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065",_fg .MakeInteger (4));
_fgfbd :=&_fg .PdfObjectArray {};for _ ,_cfedd :=range _gccfb .Domain {_fgfbd .Append (_fg .MakeFloat (_cfedd ));};_ebedg .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_fgfbd );_gaegf :=&_fg .PdfObjectArray {};for _ ,_cgaeg :=range _gccfb .Range {_gaegf .Append (_fg .MakeFloat (_cgaeg ));
};_ebedg .Set ("\u0052\u0061\u006eg\u0065",_gaegf );if _gccfb ._dedbd ==nil &&_gccfb .Program !=nil {_gccfb ._dedbd =[]byte (_gccfb .Program .String ());};_ebedg .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_fg .MakeInteger (int64 (len (_gccfb ._dedbd ))));
_bebeb .Stream =_gccfb ._dedbd ;_bebeb .PdfObjectDictionary =_ebedg ;return _bebeb ;};
// HasFontByName checks if has font resource by name.
func (_faaa *PdfPage )HasFontByName (name _fg .PdfObjectName )bool {_fdgb ,_egcad :=_faaa .Resources .Font .(*_fg .PdfObjectDictionary );if !_egcad {return false ;};if _ffca :=_fdgb .Get (name );_ffca !=nil {return true ;};return false ;};
// ToPdfObject implements interface PdfModel.
func (_dcegc *PdfAnnotationStamp )ToPdfObject ()_fg .PdfObject {_dcegc .PdfAnnotation .ToPdfObject ();_abff :=_dcegc ._agb ;_aade :=_abff .PdfObject .(*_fg .PdfObjectDictionary );_dcegc .PdfAnnotationMarkup .appendToPdfDictionary (_aade );_aade .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fg .MakeName ("\u0053\u0074\u0061m\u0070"));
_aade .SetIfNotNil ("\u004e\u0061\u006d\u0065",_dcegc .Name );return _abff ;};func (_dfgg *PdfWriter )adjustXRefAffectedVersion (_eacgf bool ){if _eacgf &&_dfgg ._fbbec .Major ==1&&_dfgg ._fbbec .Minor < 5{_dfgg ._fbbec .Minor =5;};};func _agddd (_ggefc string )map[string ]string {_gfcc :=_cdaa .Split (_ggefc ,-1);
_febf :=map[string ]string {};for _ ,_beceg :=range _gfcc {_cgdea :=_fbegb .FindStringSubmatch (_beceg );if _cgdea ==nil {continue ;};_effag ,_gdafb :=_cgdea [1],_cgdea [2];_febf [_effag ]=_gdafb ;};return _febf ;};
// NewPdfTransformParamsDocMDP create a PdfTransformParamsDocMDP with the specific permissions.
func NewPdfTransformParamsDocMDP (permission _gbb .DocMDPPermission )*PdfTransformParamsDocMDP {return &PdfTransformParamsDocMDP {Type :_fg .MakeName ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u0050\u0061\u0072\u0061\u006d\u0073"),P :_fg .MakeInteger (int64 (permission )),V :_fg .MakeName ("\u0031\u002e\u0032")};
};
// ToPdfObject implements interface PdfModel.
func (_gffd *PdfAnnotationRedact )ToPdfObject ()_fg .PdfObject {_gffd .PdfAnnotation .ToPdfObject ();_dcfe :=_gffd ._agb ;_dad :=_dcfe .PdfObject .(*_fg .PdfObjectDictionary );_gffd .PdfAnnotationMarkup .appendToPdfDictionary (_dad );_dad .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fg .MakeName ("\u0052\u0065\u0064\u0061\u0063\u0074"));
_dad .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_gffd .QuadPoints );_dad .SetIfNotNil ("\u0049\u0043",_gffd .IC );_dad .SetIfNotNil ("\u0052\u004f",_gffd .RO );_dad .SetIfNotNil ("O\u0076\u0065\u0072\u006c\u0061\u0079\u0054\u0065\u0078\u0074",_gffd .OverlayText );
_dad .SetIfNotNil ("\u0052\u0065\u0070\u0065\u0061\u0074",_gffd .Repeat );_dad .SetIfNotNil ("\u0044\u0041",_gffd .DA );_dad .SetIfNotNil ("\u0051",_gffd .Q );return _dcfe ;};
// NewPdfReaderWithOpts creates a new PdfReader for an input io.ReadSeeker interface
// with a ReaderOpts.
// If ReaderOpts is nil it will be set to default value from NewReaderOpts.
func NewPdfReaderWithOpts (rs _ff .ReadSeeker ,opts *ReaderOpts )(*PdfReader ,error ){const _cdacf ="\u006d\u006f\u0064\u0065\u006c\u003a\u004e\u0065\u0077\u0050\u0064f\u0052\u0065\u0061\u0064\u0065\u0072\u0057\u0069\u0074\u0068O\u0070\u0074\u0073";return _bgdaf (rs ,opts ,true ,_cdacf );
};
// NewPdfAppenderWithOpts creates a new Pdf appender from a Pdf reader with options.
func NewPdfAppenderWithOpts (reader *PdfReader ,opts *ReaderOpts ,encryptOptions *EncryptOptions )(*PdfAppender ,error ){_eagd :=&PdfAppender {_ebd :reader ._daega ,Reader :reader ,_bbef :reader ._ccgg ,_fcca :reader ._aefbbf };_fgagb ,_fcf :=_eagd ._ebd .Seek (0,_ff .SeekEnd );
if _fcf !=nil {return nil ,_fcf ;};_eagd ._ggcf =_fgagb ;if _ ,_fcf =_eagd ._ebd .Seek (0,_ff .SeekStart );_fcf !=nil {return nil ,_fcf ;};_eagd ._cbb ,_fcf =NewPdfReaderWithOpts (_eagd ._ebd ,opts );if _fcf !=nil {return nil ,_fcf ;};for _ ,_egdb :=range _eagd .Reader .GetObjectNums (){if _eagd ._egcab < _egdb {_eagd ._egcab =_egdb ;
};};_eagd ._gaeb =_eagd ._bbef .GetXrefTable ();_eagd ._dff =_eagd ._bbef .GetXrefOffset ();_eagd ._agbg =append (_eagd ._agbg ,_eagd ._cbb .PageList ...);_eagd ._aec =make (map[_fg .PdfObject ]struct{});_eagd ._dcbad =make (map[_fg .PdfObject ]int64 );
_eagd ._fgb =make (map[_fg .PdfObject ]struct{});_eagd ._cacc =_eagd ._cbb .AcroForm ;_eagd ._dgbf =_eagd ._cbb .DSS ;if opts !=nil {_eagd ._gccg =opts .Password ;};if encryptOptions !=nil {_eagd ._ggb =encryptOptions ;};return _eagd ,nil ;};
// NewPdfColorspaceCalGray returns a new CalGray colorspace object.
func NewPdfColorspaceCalGray ()*PdfColorspaceCalGray {_agag :=&PdfColorspaceCalGray {};_agag .BlackPoint =[]float64 {0.0,0.0,0.0};_agag .Gamma =1;return _agag ;};
// PdfAnnotationCaret represents Caret annotations.
// (Section 12.5.6.11).
type PdfAnnotationCaret struct{*PdfAnnotation ;*PdfAnnotationMarkup ;RD _fg .PdfObject ;Sy _fg .PdfObject ;};
// IsRadio returns true if the button field represents a radio button, false otherwise.
func (_dcdae *PdfFieldButton )IsRadio ()bool {return _dcdae .GetType ()==ButtonTypeRadio };const (BorderEffectNoEffect BorderEffect =iota ;BorderEffectCloudy BorderEffect =iota ;);
// SetImage updates XObject Image with new image data.
func (_agefb *XObjectImage )SetImage (img *Image ,cs PdfColorspace )error {_agefb .Filter .UpdateParams (img .GetParamsDict ());_cdgdg ,_fgbdg :=_agefb .Filter .EncodeBytes (img .Data );if _fgbdg !=nil {return _fgbdg ;};_agefb .Stream =_cdgdg ;_gcfcf :=img .Width ;
_agefb .Width =&_gcfcf ;_gfdcdc :=img .Height ;_agefb .Height =&_gfdcdc ;_eadfa :=img .BitsPerComponent ;_agefb .BitsPerComponent =&_eadfa ;if cs ==nil {if img .ColorComponents ==1{_agefb .ColorSpace =NewPdfColorspaceDeviceGray ();}else if img .ColorComponents ==3{_agefb .ColorSpace =NewPdfColorspaceDeviceRGB ();
}else if img .ColorComponents ==4{_agefb .ColorSpace =NewPdfColorspaceDeviceCMYK ();}else {return _ce .New ("c\u006fl\u006f\u0072\u0073\u0070\u0061\u0063\u0065\u0020u\u006e\u0064\u0065\u0066in\u0065\u0064");};}else {_agefb .ColorSpace =cs ;};return nil ;
};
// 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 []*_fg .PdfObjectStream ;OCSP []*_fg .PdfObjectStream ;CRL []*_fg .PdfObjectStream ;TU *_fg .PdfObjectString ;TS *_fg .PdfObjectString ;};func (_aeca *PdfReader )flattenFieldsWithOpts (_fcag bool ,_feeeg FieldAppearanceGenerator ,_bbca *FieldFlattenOpts )error {if _bbca ==nil {_bbca =&FieldFlattenOpts {};
};var _acde bool ;_acbg :=map[*PdfAnnotation ]bool {};{var _acee []*PdfField ;_ggad :=_aeca .AcroForm ;if _ggad !=nil {if _bbca .FilterFunc !=nil {_acee =_ggad .filteredFields (_bbca .FilterFunc ,true );_acde =_ggad .Fields !=nil &&len (*_ggad .Fields )> 0;
}else {_acee =_ggad .AllFields ();};};for _ ,_dedfc :=range _acee {for _ ,_addfe :=range _dedfc .Annotations {_acbg [_addfe .PdfAnnotation ]=_dedfc .V !=nil ;if _feeeg !=nil {_bfgdf ,_cggdeg :=_feeeg .GenerateAppearanceDict (_ggad ,_dedfc ,_addfe );if _cggdeg !=nil {return _cggdeg ;
};_addfe .AP =_bfgdf ;};};};};if _fcag {for _ ,_adbd :=range _aeca .PageList {_aeag ,_adbe :=_adbd .GetAnnotations ();if _adbe !=nil {return _adbe ;};for _ ,_gabdg :=range _aeag {_acbg [_gabdg ]=true ;};};};for _ ,_geag :=range _aeca .PageList {var _cgaeb []*PdfAnnotation ;
if _feeeg !=nil {if _bgae :=_feeeg .WrapContentStream (_geag );_bgae !=nil {return _bgae ;};};_aaab ,_aeaa :=_geag .GetAnnotations ();if _aeaa !=nil {return _aeaa ;};for _ ,_dadc :=range _aaab {_afbd ,_cfada :=_acbg [_dadc ];if !_cfada &&_bbca .AnnotFilterFunc !=nil {if _ ,_cbcae :=_dadc .GetContext ().(*PdfAnnotationWidget );
!_cbcae {_cfada =_bbca .AnnotFilterFunc (_dadc );};};if !_cfada {_cgaeb =append (_cgaeb ,_dadc );continue ;};switch _dadc .GetContext ().(type ){case *PdfAnnotationPopup :continue ;case *PdfAnnotationLink :continue ;case *PdfAnnotationProjection :continue ;
};_cddc ,_fdga ,_adaa :=_gceb (_dadc );if _adaa !=nil {if !_afbd {_aa .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 ;};_aa .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",_adaa );
continue ;};if _cddc ==nil {continue ;};_dfeeg :=_geag .Resources .GenerateXObjectName ();_geag .Resources .SetXObjectFormByName (_dfeeg ,_cddc );_fdfd ,_adaa :=_fcagf (_cddc );if _adaa !=nil {_aa .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065\u0072\u0074\u0069\u006e\u0067\u0020\u0061\u0070p\u0065\u0061\u0072\u0061\u006e\u0063\u0065\u0020\u004d\u0061\u0074\u0072\u0069\u0078\u002c\u0020s\u006b\u0069\u0070\u0070\u0069\u006e\u0067\u0020\u0078\u0066\u006f\u0072\u006d\u0020\u0062\u0062\u006f\u0078\u0020\u0061\u0064\u006a\u0075\u0073t\u006d\u0065\u006e\u0074\u003a \u0025\u0076",_adaa );
}else {_aega :=_gbe .IdentityMatrix ();_aega =_aega .Translate (-_fdfd .Llx ,-_fdfd .Lly );_cfbfa :=0.0;if _fdfd .Width ()> 0{_cfbfa =_fdga .Width ()/_fdfd .Width ();};_ceda :=0.0;if _fdfd .Height ()> 0{_ceda =_fdga .Height ()/_fdfd .Height ();};_aega =_aega .Scale (_cfbfa ,_ceda );
_fdga .Transform (_aega );};_dfebe :=_ef .Min (_fdga .Llx ,_fdga .Urx );_dgeb :=_ef .Min (_fdga .Lly ,_fdga .Ury );var _fdfce []string ;_fdfce =append (_fdfce ,"\u0071");_fdfce =append (_fdfce ,_d .Sprintf ("\u0025\u002e\u0036\u0066\u0020\u0025\u002e\u0036\u0066\u0020\u0025\u002e\u0036\u0066\u0020%\u002e6\u0066\u0020\u0025\u002e\u0036\u0066\u0020\u0025\u002e\u0036\u0066\u0020\u0063\u006d",1.0,0.0,0.0,1.0,_dfebe ,_dgeb ));
_fdfce =append (_fdfce ,_d .Sprintf ("\u002f\u0025\u0073\u0020\u0044\u006f",_dfeeg .String ()));_fdfce =append (_fdfce ,"\u0051");_aagf :=_dc .Join (_fdfce ,"\u000a");_adaa =_geag .AppendContentStream (_aagf );if _adaa !=nil {return _adaa ;};if _cddc .Resources !=nil {_fgcfc ,_ffee :=_fg .GetDict (_cddc .Resources .Font );
if _ffee {for _ ,_fccad :=range _fgcfc .Keys (){if !_geag .Resources .HasFontByName (_fccad ){_geag .Resources .SetFontByName (_fccad ,_fgcfc .Get (_fccad ));};};};};};if len (_cgaeb )> 0{_geag ._fbbb =_cgaeb ;}else {_geag ._fbbb =[]*PdfAnnotation {};};
};if !_acde {_aeca .AcroForm =nil ;};return nil ;};
// NewPdfWriter initializes a new PdfWriter.
func NewPdfWriter ()PdfWriter {_dcgeb :=PdfWriter {};_dcgeb ._gcbec =map[_fg .PdfObject ]struct{}{};_dcgeb ._bbfd =[]_fg .PdfObject {};_dcgeb ._gcafd =map[_fg .PdfObject ][]*_fg .PdfObjectDictionary {};_dcgeb ._acccfc =map[_fg .PdfObject ]struct{}{};_dcgeb ._fbbec .Major =1;
_dcgeb ._fbbec .Minor =3;_eddg :=_fg .MakeDict ();_cefb :=[]struct{_abdafe _fg .PdfObjectName ;_cgefa string ;}{{"\u0050\u0072\u006f\u0064\u0075\u0063\u0065\u0072",_dadagc ()},{"\u0043r\u0065\u0061\u0074\u006f\u0072",_eagac ()},{"\u0041\u0075\u0074\u0068\u006f\u0072",_afggf ()},{"\u0053u\u0062\u006a\u0065\u0063\u0074",_adggf ()},{"\u0054\u0069\u0074l\u0065",_bdfge ()},{"\u004b\u0065\u0079\u0077\u006f\u0072\u0064\u0073",_abbbg ()}};
for _ ,_fadb :=range _cefb {if _fadb ._cgefa !=""{_eddg .Set (_fadb ._abdafe ,_fg .MakeString (_fadb ._cgefa ));};};if _gcffg :=_eafef ();!_gcffg .IsZero (){if _abcac ,_cfddd :=NewPdfDateFromTime (_gcffg );_cfddd ==nil {_eddg .Set ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065",_abcac .ToPdfObject ());
};};if _deaa :=_fbdc ();!_deaa .IsZero (){if _begcb ,_acgagb :=NewPdfDateFromTime (_deaa );_acgagb ==nil {_eddg .Set ("\u004do\u0064\u0044\u0061\u0074\u0065",_begcb .ToPdfObject ());};};_bdbee :=_fg .PdfIndirectObject {};_bdbee .PdfObject =_eddg ;_dcgeb ._deabg =&_bdbee ;
_dcgeb .addObject (&_bdbee );_gabf :=_fg .PdfIndirectObject {};_cafcec :=_fg .MakeDict ();_cafcec .Set ("\u0054\u0079\u0070\u0065",_fg .MakeName ("\u0043a\u0074\u0061\u006c\u006f\u0067"));_gabf .PdfObject =_cafcec ;_dcgeb ._cegde =&_gabf ;_dcgeb .addObject (_dcgeb ._cegde );
_fedgg ,_bdebe :=_gfacd ("\u0077");if _bdebe !=nil {_aa .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_bdebe );};_dcgeb ._dbefbd =_fedgg ;_fgadeg :=_fg .PdfIndirectObject {};_fdfeg :=_fg .MakeDict ();_fdfeg .Set ("\u0054\u0079\u0070\u0065",_fg .MakeName ("\u0050\u0061\u0067e\u0073"));
_cdedd :=_fg .PdfObjectArray {};_fdfeg .Set ("\u004b\u0069\u0064\u0073",&_cdedd );_fdfeg .Set ("\u0043\u006f\u0075n\u0074",_fg .MakeInteger (0));_fgadeg .PdfObject =_fdfeg ;_dcgeb ._feccd =&_fgadeg ;_dcgeb ._cbdbf =map[_fg .PdfObject ]struct{}{};_dcgeb .addObject (_dcgeb ._feccd );
_cafcec .Set ("\u0050\u0061\u0067e\u0073",&_fgadeg );_dcgeb ._cgacf =_cafcec ;_aa .Log .Trace ("\u0043\u0061\u0074\u0061\u006c\u006f\u0067\u0020\u0025\u0073",_gabf );return _dcgeb ;};func (_bbeg *pdfCIDFontType0 )baseFields ()*fontCommon {return &_bbeg .fontCommon };
// NewPdfAnnotationSquare returns a new square annotation.
func NewPdfAnnotationSquare ()*PdfAnnotationSquare {_ggf :=NewPdfAnnotation ();_bbgd :=&PdfAnnotationSquare {};_bbgd .PdfAnnotation =_ggf ;_bbgd .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_ggf .SetContext (_bbgd );return _bbgd ;};
// GetContainingPdfObject implements model.PdfModel interface.
func (_eedg *PdfOutputIntent )GetContainingPdfObject ()_fg .PdfObject {return _eedg ._geaa };
// NewPdfAppender creates a new Pdf appender from a Pdf reader.
func NewPdfAppender (reader *PdfReader )(*PdfAppender ,error ){_fdge :=&PdfAppender {_ebd :reader ._daega ,Reader :reader ,_bbef :reader ._ccgg ,_fcca :reader ._aefbbf };_abcb ,_cead :=_fdge ._ebd .Seek (0,_ff .SeekEnd );if _cead !=nil {return nil ,_cead ;
};_fdge ._ggcf =_abcb ;if _ ,_cead =_fdge ._ebd .Seek (0,_ff .SeekStart );_cead !=nil {return nil ,_cead ;};_fdge ._cbb ,_cead =NewPdfReader (_fdge ._ebd );if _cead !=nil {return nil ,_cead ;};for _ ,_dfee :=range _fdge .Reader .GetObjectNums (){if _fdge ._egcab < _dfee {_fdge ._egcab =_dfee ;
};};_fdge ._gaeb =_fdge ._bbef .GetXrefTable ();_fdge ._dff =_fdge ._bbef .GetXrefOffset ();_fdge ._agbg =append (_fdge ._agbg ,_fdge ._cbb .PageList ...);_fdge ._aec =make (map[_fg .PdfObject ]struct{});_fdge ._dcbad =make (map[_fg .PdfObject ]int64 );
_fdge ._fgb =make (map[_fg .PdfObject ]struct{});_fdge ._cacc =_fdge ._cbb .AcroForm ;_fdge ._dgbf =_fdge ._cbb .DSS ;return _fdge ,nil ;};
// DecodeArray returns the range of color component values in DeviceRGB colorspace.
func (_bcbaf *PdfColorspaceDeviceRGB )DecodeArray ()[]float64 {return []float64 {0.0,1.0,0.0,1.0,0.0,1.0};};
// GetNumComponents returns the number of color components of the underlying
// colorspace device.
func (_edcf *PdfColorspaceSpecialPattern )GetNumComponents ()int {return _edcf .UnderlyingCS .GetNumComponents ();};
// GetContainingPdfObject returns the container of the shading object (indirect object).
func (_eaffc *PdfShading )GetContainingPdfObject ()_fg .PdfObject {return _eaffc ._cbabf };func _fffd (_accf map[_eed .GID ]int ,_edfegc uint16 )*_fg .PdfObjectArray {_eadfdb :=&_fg .PdfObjectArray {};_aeafc :=_eed .GID (_edfegc );for _bbfeb :=_eed .GID (0);
_bbfeb < _aeafc ;{_abca ,_afdfg :=_accf [_bbfeb ];if !_afdfg {_bbfeb ++;continue ;};_dbbg :=_bbfeb ;for _ffbec :=_dbbg +1;_ffbec < _aeafc ;_ffbec ++{if _eeafe ,_afec :=_accf [_ffbec ];!_afec ||_abca !=_eeafe {break ;};_dbbg =_ffbec ;};_eadfdb .Append (_fg .MakeInteger (int64 (_bbfeb )));
_eadfdb .Append (_fg .MakeInteger (int64 (_dbbg )));_eadfdb .Append (_fg .MakeInteger (int64 (_abca )));_bbfeb =_dbbg +1;};return _eadfdb ;};
// PdfShadingType5 is a Lattice-form Gouraud-shaded triangle mesh.
type PdfShadingType5 struct{*PdfShading ;BitsPerCoordinate *_fg .PdfObjectInteger ;BitsPerComponent *_fg .PdfObjectInteger ;VerticesPerRow *_fg .PdfObjectInteger ;Decode *_fg .PdfObjectArray ;Function []PdfFunction ;};
// PdfColorPatternType2 represents a color shading pattern type 2 (Axial).
type PdfColorPatternType2 struct{Color PdfColor ;PatternName _fg .PdfObjectName ;};
// HasXObjectByName checks if has XObject resource by name.
func (_bfddf *PdfPage )HasXObjectByName (name _fg .PdfObjectName )bool {_ccadc ,_fefaf :=_bfddf .Resources .XObject .(*_fg .PdfObjectDictionary );if !_fefaf {return false ;};if _bbgaf :=_ccadc .Get (name );_bbgaf !=nil {return true ;};return false ;};
// ToPdfObject returns a stream object.
func (_dgbeb *XObjectForm )ToPdfObject ()_fg .PdfObject {_cdgbdb :=_dgbeb ._bdage ;_acefd :=_cdgbdb .PdfObjectDictionary ;if _dgbeb .Filter !=nil {_acefd =_dgbeb .Filter .MakeStreamDict ();_cdgbdb .PdfObjectDictionary =_acefd ;};_acefd .Set ("\u0054\u0079\u0070\u0065",_fg .MakeName ("\u0058O\u0062\u006a\u0065\u0063\u0074"));
_acefd .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fg .MakeName ("\u0046\u006f\u0072\u006d"));_acefd .SetIfNotNil ("\u0046\u006f\u0072\u006d\u0054\u0079\u0070\u0065",_dgbeb .FormType );_acefd .SetIfNotNil ("\u0042\u0042\u006f\u0078",_dgbeb .BBox );_acefd .SetIfNotNil ("\u004d\u0061\u0074\u0072\u0069\u0078",_dgbeb .Matrix );
if _dgbeb .Resources !=nil {_acefd .SetIfNotNil ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s",_dgbeb .Resources .ToPdfObject ());};_acefd .SetIfNotNil ("\u0047\u0072\u006fu\u0070",_dgbeb .Group );_acefd .SetIfNotNil ("\u0052\u0065\u0066",_dgbeb .Ref );
_acefd .SetIfNotNil ("\u004d\u0065\u0074\u0061\u0044\u0061\u0074\u0061",_dgbeb .MetaData );_acefd .SetIfNotNil ("\u0050i\u0065\u0063\u0065\u0049\u006e\u0066o",_dgbeb .PieceInfo );_acefd .SetIfNotNil ("\u004c\u0061\u0073t\u004d\u006f\u0064\u0069\u0066\u0069\u0065\u0064",_dgbeb .LastModified );
_acefd .SetIfNotNil ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074",_dgbeb .StructParent );_acefd .SetIfNotNil ("\u0053\u0074\u0072\u0075\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074\u0073",_dgbeb .StructParents );_acefd .SetIfNotNil ("\u004f\u0050\u0049",_dgbeb .OPI );
_acefd .SetIfNotNil ("\u004f\u0043",_dgbeb .OC );_acefd .SetIfNotNil ("\u004e\u0061\u006d\u0065",_dgbeb .Name );_acefd .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_fg .MakeInteger (int64 (len (_dgbeb .Stream ))));_cdgbdb .Stream =_dgbeb .Stream ;return _cdgbdb ;
};
// 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 (_fdfgf *pdfFontSimple )SetEncoder (encoder _dg .TextEncoder ){_fdfgf ._bdgda =encoder };
// FieldValueProvider provides field values from a data source such as FDF, JSON or any other.
type FieldValueProvider interface{FieldValues ()(map[string ]_fg .PdfObject ,error );};func _cffc (_cabg *_fg .PdfObjectDictionary )(*PdfFieldText ,error ){_bfaeg :=&PdfFieldText {};_bfaeg .DA ,_ =_fg .GetString (_cabg .Get ("\u0044\u0041"));_bfaeg .Q ,_ =_fg .GetInt (_cabg .Get ("\u0051"));
_bfaeg .DS ,_ =_fg .GetString (_cabg .Get ("\u0044\u0053"));_bfaeg .RV =_cabg .Get ("\u0052\u0056");_bfaeg .MaxLen ,_ =_fg .GetInt (_cabg .Get ("\u004d\u0061\u0078\u004c\u0065\u006e"));return _bfaeg ,nil ;};func (_faad *PdfReader )newPdfAnnotationRedactFromDict (_fddc *_fg .PdfObjectDictionary )(*PdfAnnotationRedact ,error ){_efef :=PdfAnnotationRedact {};
_defe ,_gbeab :=_faad .newPdfAnnotationMarkupFromDict (_fddc );if _gbeab !=nil {return nil ,_gbeab ;};_efef .PdfAnnotationMarkup =_defe ;_efef .QuadPoints =_fddc .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");_efef .IC =_fddc .Get ("\u0049\u0043");
_efef .RO =_fddc .Get ("\u0052\u004f");_efef .OverlayText =_fddc .Get ("O\u0076\u0065\u0072\u006c\u0061\u0079\u0054\u0065\u0078\u0074");_efef .Repeat =_fddc .Get ("\u0052\u0065\u0070\u0065\u0061\u0074");_efef .DA =_fddc .Get ("\u0044\u0041");_efef .Q =_fddc .Get ("\u0051");
return &_efef ,nil ;};
// Evaluate runs the function on the passed in slice and returns the results.
func (_dgbfd *PdfFunctionType2 )Evaluate (x []float64 )([]float64 ,error ){if len (x )!=1{_aa .Log .Error ("\u004f\u006e\u006c\u0079 o\u006e\u0065\u0020\u0069\u006e\u0070\u0075\u0074\u0020\u0061\u006c\u006c\u006f\u0077e\u0064");return nil ,_ce .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");
};_gdcfa :=[]float64 {0.0};if _dgbfd .C0 !=nil {_gdcfa =_dgbfd .C0 ;};_aadfe :=[]float64 {1.0};if _dgbfd .C1 !=nil {_aadfe =_dgbfd .C1 ;};var _fgefe []float64 ;for _cbeg :=0;_cbeg < len (_gdcfa );_cbeg ++{_cgfdg :=_gdcfa [_cbeg ]+_ef .Pow (x [0],_dgbfd .N )*(_aadfe [_cbeg ]-_gdcfa [_cbeg ]);
_fgefe =append (_fgefe ,_cgfdg );};return _fgefe ,nil ;};
// NewPdfAnnotationPolyLine returns a new polyline annotation.
func NewPdfAnnotationPolyLine ()*PdfAnnotationPolyLine {_cdf :=NewPdfAnnotation ();_fac :=&PdfAnnotationPolyLine {};_fac .PdfAnnotation =_cdf ;_fac .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_cdf .SetContext (_fac );return _fac ;};
// SetPdfTitle sets the Title attribute of the output PDF.
func SetPdfTitle (title string ){_baacg .Lock ();defer _baacg .Unlock ();_ebfgc =title };func _adfa (_ggba _fg .PdfObject )(*PdfColorspaceLab ,error ){_dbc :=NewPdfColorspaceLab ();if _edfda ,_cfdaa :=_ggba .(*_fg .PdfIndirectObject );_cfdaa {_dbc ._fabgc =_edfda ;
};_ggba =_fg .TraceToDirectObject (_ggba );_ebdg ,_gbee :=_ggba .(*_fg .PdfObjectArray );if !_gbee {return nil ,_d .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _ebdg .Len ()!=2{return nil ,_d .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0043\u0061\u006c\u0052G\u0042 \u0063o\u006c\u006f\u0072\u0073\u0070\u0061\u0063e");
};_ggba =_fg .TraceToDirectObject (_ebdg .Get (0));_edcgb ,_gbee :=_ggba .(*_fg .PdfObjectName );if !_gbee {return nil ,_d .Errorf ("\u006c\u0061\u0062\u0020\u006e\u0061\u006d\u0065\u0020\u006e\u006ft\u0020\u0061\u0020\u004e\u0061\u006d\u0065\u0020\u006f\u0062j\u0065\u0063\u0074");
};if *_edcgb !="\u004c\u0061\u0062"{return nil ,_d .Errorf ("n\u006ft\u0020\u0061\u0020\u004c\u0061\u0062\u0020\u0063o\u006c\u006f\u0072\u0073pa\u0063\u0065");};_ggba =_fg .TraceToDirectObject (_ebdg .Get (1));_defa ,_gbee :=_ggba .(*_fg .PdfObjectDictionary );
if !_gbee {return nil ,_d .Errorf ("c\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063\u0065\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061r\u0079\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067\u0020or\u0020\u0069\u006ev\u0061l\u0069\u0064");};_ggba =_defa .Get ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074");
_ggba =_fg .TraceToDirectObject (_ggba );_accd ,_gbee :=_ggba .(*_fg .PdfObjectArray );if !_gbee {return nil ,_d .Errorf ("\u004c\u0061\u0062\u0020In\u0076\u0061\u006c\u0069\u0064\u0020\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069n\u0074");};if _accd .Len ()!=3{return nil ,_d .Errorf ("\u004c\u0061b\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074\u0020\u0061rr\u0061\u0079");
};_adgd ,_gcgfd :=_accd .GetAsFloat64Slice ();if _gcgfd !=nil {return nil ,_gcgfd ;};_dbc .WhitePoint =_adgd ;_ggba =_defa .Get ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074");if _ggba !=nil {_ggba =_fg .TraceToDirectObject (_ggba );_bbed ,_gbccb :=_ggba .(*_fg .PdfObjectArray );
if !_gbccb {return nil ,_d .Errorf ("\u004c\u0061\u0062: \u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074");};if _bbed .Len ()!=3{return nil ,_d .Errorf ("\u004c\u0061b\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074\u0020\u0061rr\u0061\u0079");
};_cdff ,_gffg :=_bbed .GetAsFloat64Slice ();if _gffg !=nil {return nil ,_gffg ;};_dbc .BlackPoint =_cdff ;};_ggba =_defa .Get ("\u0052\u0061\u006eg\u0065");if _ggba !=nil {_ggba =_fg .TraceToDirectObject (_ggba );_dagd ,_fgbb :=_ggba .(*_fg .PdfObjectArray );
if !_fgbb {_aa .Log .Error ("\u0052\u0061n\u0067\u0065\u0020t\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");return nil ,_d .Errorf ("\u004ca\u0062:\u0020\u0054\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _dagd .Len ()!=4{_aa .Log .Error ("\u0052\u0061\u006e\u0067\u0065\u0020\u0072\u0061\u006e\u0067\u0065\u0020e\u0072\u0072\u006f\u0072");
return nil ,_d .Errorf ("\u004c\u0061b\u003a\u0020\u0052a\u006e\u0067\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};_fgcg ,_afeed :=_dagd .GetAsFloat64Slice ();if _afeed !=nil {return nil ,_afeed ;};_dbc .Range =_fgcg ;};return _dbc ,nil ;};
// IsEncrypted returns true if the PDF file is encrypted.
func (_acfa *PdfReader )IsEncrypted ()(bool ,error ){return _acfa ._ccgg .IsEncrypted ()};
// 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 ()_fg .PdfObject ;GetContainingPdfObject ()_fg .PdfObject ;};
// SetPdfCreationDate sets the CreationDate attribute of the output PDF.
func SetPdfCreationDate (creationDate _g .Time ){_baacg .Lock ();defer _baacg .Unlock ();_dfdeae =creationDate ;};
// ButtonType represents the subtype of a button field, can be one of:
// - Checkbox (ButtonTypeCheckbox)
// - PushButton (ButtonTypePushButton)
// - RadioButton (ButtonTypeRadioButton)
type ButtonType int ;func _cabb (_acbgd *fontCommon )*pdfFontType0 {return &pdfFontType0 {fontCommon :*_acbgd }};func _affd (_efcd *PdfField )[]*PdfField {_fgfb :=[]*PdfField {_efcd };for _ ,_bdfg :=range _efcd .Kids {_fgfb =append (_fgfb ,_affd (_bdfg )...);
};return _fgfb ;};
// PdfAnnotationWatermark represents Watermark annotations.
// (Section 12.5.6.22).
type PdfAnnotationWatermark struct{*PdfAnnotation ;FixedPrint _fg .PdfObject ;};
// ToPdfObject implements interface PdfModel.
func (_agbae *PdfAnnotationSound )ToPdfObject ()_fg .PdfObject {_agbae .PdfAnnotation .ToPdfObject ();_daf :=_agbae ._agb ;_cfaf :=_daf .PdfObject .(*_fg .PdfObjectDictionary );_agbae .PdfAnnotationMarkup .appendToPdfDictionary (_cfaf );_cfaf .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fg .MakeName ("\u0053\u006f\u0075n\u0064"));
_cfaf .SetIfNotNil ("\u0053\u006f\u0075n\u0064",_agbae .Sound );_cfaf .SetIfNotNil ("\u004e\u0061\u006d\u0065",_agbae .Name );return _daf ;};
// AddPage adds a page to the PDF file. The new page should be an indirect object.
func (_fcedf *PdfWriter )AddPage (page *PdfPage )error {const _ebad ="\u006d\u006f\u0064el\u003a\u0050\u0064\u0066\u0057\u0072\u0069\u0074\u0065\u0072\u002e\u0041\u0064\u0064\u0050\u0061\u0067\u0065";_dgfg (page );_egddf :=page .ToPdfObject ();_aa .Log .Trace ("\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d");
_aa .Log .Trace ("\u0041p\u0070\u0065\u006e\u0064i\u006e\u0067\u0020\u0074\u006f \u0070a\u0067e\u0020\u006c\u0069\u0073\u0074\u0020\u0025T",_egddf );_agaff ,_geea :=_fg .GetIndirect (_egddf );if !_geea {return _ce .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");
};_aa .Log .Trace ("\u0025\u0073",_agaff );_aa .Log .Trace ("\u0025\u0073",_agaff .PdfObject );_adcd ,_geea :=_fg .GetDict (_agaff .PdfObject );if !_geea {return _ce .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");
};_eeefg ,_geea :=_fg .GetName (_adcd .Get ("\u0054\u0079\u0070\u0065"));if !_geea {return _d .Errorf ("\u0070\u0061\u0067\u0065\u0020\u0073\u0068\u006f\u0075\u006c\u0064\u0020\u0068\u0061\u0076\u0065\u0020\u0061\u0020\u0054y\u0070\u0065\u0020\u006b\u0065\u0079\u0020\u0077\u0069t\u0068\u0020\u0061\u0020\u0076\u0061\u006c\u0075\u0065\u0020\u006f\u0066\u0020t\u0079\u0070\u0065\u0020\u006e\u0061m\u0065\u0020\u0028%\u0054\u0029",_adcd .Get ("\u0054\u0079\u0070\u0065"));
};if _eeefg .String ()!="\u0050\u0061\u0067\u0065"{return _ce .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");};_effdb :=[]_fg .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"};
_aadc ,_gfagf :=_fg .GetIndirect (_adcd .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"));_aa .Log .Trace ("P\u0061g\u0065\u0020\u0050\u0061\u0072\u0065\u006e\u0074:\u0020\u0025\u0054\u0020(%\u0076\u0029",_adcd .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"),_gfagf );
for _gfagf {_aa .Log .Trace ("\u0050a\u0067e\u0020\u0050\u0061\u0072\u0065\u006e\u0074\u003a\u0020\u0025\u0054",_aadc );_cccee ,_eaed :=_fg .GetDict (_aadc .PdfObject );if !_eaed {return _ce .New ("i\u006e\u0076\u0061\u006cid\u0020P\u0061\u0072\u0065\u006e\u0074 \u006f\u0062\u006a\u0065\u0063\u0074");
};for _ ,_cgada :=range _effdb {_aa .Log .Trace ("\u0046\u0069\u0065\u006c\u0064\u0020\u0025\u0073",_cgada );if _adcd .Get (_cgada )!=nil {_aa .Log .Trace ("\u002d \u0070a\u0067\u0065\u0020\u0068\u0061s\u0020\u0061l\u0072\u0065\u0061\u0064\u0079");continue ;
};if _gcegd :=_cccee .Get (_cgada );_gcegd !=nil {_aa .Log .Trace ("\u0049\u006e\u0068\u0065ri\u0074\u0069\u006e\u0067\u0020\u0066\u0069\u0065\u006c\u0064\u0020\u0025\u0073",_cgada );_adcd .Set (_cgada ,_gcegd );};};_aadc ,_gfagf =_fg .GetIndirect (_cccee .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"));
_aa .Log .Trace ("\u004ee\u0078t\u0020\u0070\u0061\u0072\u0065\u006e\u0074\u003a\u0020\u0025\u0054",_cccee .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"));};_aa .Log .Trace ("\u0054\u0072\u0061\u0076\u0065\u0072\u0073\u0061\u006c \u0064\u006f\u006e\u0065");
_adcd .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_fcedf ._feccd );_agaff .PdfObject =_adcd ;_faeaf ,_geea :=_fg .GetDict (_fcedf ._feccd .PdfObject );if !_geea {return _ce .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");
};_ddddf ,_geea :=_fg .GetArray (_faeaf .Get ("\u004b\u0069\u0064\u0073"));if !_geea {return _ce .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");
};_ddddf .Append (_agaff );_fcedf ._cbdbf [_adcd ]=struct{}{};_babgf ,_geea :=_fg .GetInt (_faeaf .Get ("\u0043\u006f\u0075n\u0074"));if !_geea {return _ce .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");
};*_babgf =*_babgf +1;if page ._dedef ==nil {_gaecc :=_bec .Track (_fcedf ._dbefbd ,_ebad );if _gaecc !=nil {return _gaecc ;};}else {_eebe :=_bec .Track (page ._dedef ._cecbe ,_ebad );if _eebe !=nil {return _eebe ;};};_fcedf .addObject (_agaff );_gedeg :=_fcedf .addObjects (_adcd );
if _gedeg !=nil {return _gedeg ;};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 (_cded *PdfFont )CharcodesToUnicode (charcodes []_dg .CharCode )[]rune {_bddgef ,_ ,_ :=_cded .CharcodesToUnicodeWithStats (charcodes );return _bddgef ;};
// PdfAcroForm represents the AcroForm dictionary used for representation of form data in PDF.
type PdfAcroForm struct{Fields *[]*PdfField ;NeedAppearances *_fg .PdfObjectBool ;SigFlags *_fg .PdfObjectInteger ;CO *_fg .PdfObjectArray ;DR *PdfPageResources ;DA *_fg .PdfObjectString ;Q *_fg .PdfObjectInteger ;XFA _fg .PdfObject ;
// ADBEEchoSign extra objects from Adobe Acrobat, causing signature invalid if not exists.
ADBEEchoSign _fg .PdfObject ;_daca *_fg .PdfIndirectObject ;_fgdbf bool ;};func (_ecegb *PdfWriter )writeObjectsInStreams (_dbgde map[_fg .PdfObject ]bool )error {for _ ,_gcbcc :=range _ecegb ._bbfd {if _cbafac :=_dbgde [_gcbcc ];_cbafac {continue ;};_gegaa :=int64 (0);
switch _eaef :=_gcbcc .(type ){case *_fg .PdfIndirectObject :_gegaa =_eaef .ObjectNumber ;case *_fg .PdfObjectStream :_gegaa =_eaef .ObjectNumber ;case *_fg .PdfObjectStreams :_gegaa =_eaef .ObjectNumber ;default:_aa .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",_gcbcc );
return ErrTypeCheck ;};if _ecegb ._bbdbd !=nil &&_gcbcc !=_ecegb ._abgdg {_gdfdc :=_ecegb ._bbdbd .Encrypt (_gcbcc ,_gegaa ,0);if _gdfdc !=nil {_aa .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",_gdfdc );
return _gdfdc ;};};_ecegb .writeObject (int (_gegaa ),_gcbcc );};return nil ;};
// B returns the value of the B component of the color.
func (_aeee *PdfColorCalRGB )B ()float64 {return _aeee [1]};
// 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 (_gdeb *PdfFont )GetRuneMetrics (r rune )(CharMetrics ,bool ){_cggf :=_gdeb .actualFont ();if _cggf ==nil {_aa .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",_gdeb ._gcaeff );
return _eed .CharMetrics {},false ;};if _cgcfb ,_ccec :=_cggf .GetRuneMetrics (r );_ccec {return _cgcfb ,true ;};if _ccbb ,_ceddg :=_gdeb .GetFontDescriptor ();_ceddg ==nil &&_ccbb !=nil {return _eed .CharMetrics {Wx :_ccbb ._gbbgb },true ;};_aa .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",_gdeb );
return _eed .CharMetrics {},false ;};
// GetContentStreams returns the content stream as an array of strings.
func (_ceeac *PdfPage )GetContentStreams ()([]string ,error ){_fefeg :=_ceeac .GetContentStreamObjs ();var _efdb []string ;for _ ,_gfgga :=range _fefeg {_aedca ,_aaca :=_accab (_gfgga );if _aaca !=nil {return nil ,_aaca ;};_efdb =append (_efdb ,_aedca );
};return _efdb ,nil ;};
// ToPdfObject returns the choice field dictionary within an indirect object (container).
func (_bbceb *PdfFieldChoice )ToPdfObject ()_fg .PdfObject {_bbceb .PdfField .ToPdfObject ();_fecc :=_bbceb ._daecc ;_dggad :=_fecc .PdfObject .(*_fg .PdfObjectDictionary );_dggad .Set ("\u0046\u0054",_fg .MakeName ("\u0043\u0068"));if _bbceb .Opt !=nil {_dggad .Set ("\u004f\u0070\u0074",_bbceb .Opt );
};if _bbceb .TI !=nil {_dggad .Set ("\u0054\u0049",_bbceb .TI );};if _bbceb .I !=nil {_dggad .Set ("\u0049",_bbceb .I );};return _fecc ;};func _agccg (_dfeee *_fg .PdfObjectDictionary ,_aaeac *fontCommon ,_aadb _dg .TextEncoder )(*pdfFontSimple ,error ){_gdbed :=_abfbd (_aaeac );
_gdbed ._fcad =_aadb ;if _aadb ==nil {_gdffg :=_dfeee .Get ("\u0046i\u0072\u0073\u0074\u0043\u0068\u0061r");if _gdffg ==nil {_gdffg =_fg .MakeInteger (0);};_gdbed .FirstChar =_gdffg ;_fgbe ,_ebbf :=_fg .GetIntVal (_gdffg );if !_ebbf {_aa .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",_gdffg );
return nil ,_fg .ErrTypeError ;};_gegba :=_dg .CharCode (_fgbe );_gdffg =_dfeee .Get ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072");if _gdffg ==nil {_gdffg =_fg .MakeInteger (255);};_gdbed .LastChar =_gdffg ;_fgbe ,_ebbf =_fg .GetIntVal (_gdffg );
if !_ebbf {_aa .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",_gdffg );return nil ,_fg .ErrTypeError ;
};_ggdcb :=_dg .CharCode (_fgbe );_gdbed ._fcgbd =make (map[_dg .CharCode ]float64 );_gdffg =_dfeee .Get ("\u0057\u0069\u0064\u0074\u0068\u0073");if _gdffg !=nil {_gdbed .Widths =_gdffg ;_aeabb ,_dacdb :=_fg .GetArray (_gdffg );if !_dacdb {_aa .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",_gdffg );
return nil ,_fg .ErrTypeError ;};_bgacc ,_cdfb :=_aeabb .ToFloat64Array ();if _cdfb !=nil {_aa .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 ,_cdfb ;};if len (_bgacc )!=int (_ggdcb -_gegba +1){_aa .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",_ggdcb -_gegba +1,len (_bgacc ));
return nil ,_fg .ErrRangeError ;};for _dfad ,_caagb :=range _bgacc {_gdbed ._fcgbd [_gegba +_dg .CharCode (_dfad )]=_caagb ;};};};_gdbed .Encoding =_fg .TraceToDirectObject (_dfeee .Get ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067"));return _gdbed ,nil ;
};
// ColorFromPdfObjects gets the color from a series of pdf objects (3 for rgb).
func (_acabd *PdfColorspaceDeviceRGB )ColorFromPdfObjects (objects []_fg .PdfObject )(PdfColor ,error ){if len (objects )!=3{return nil ,_ce .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_edcg ,_bgd :=_fg .GetNumbersAsFloat (objects );
if _bgd !=nil {return nil ,_bgd ;};return _acabd .ColorFromFloats (_edcg );};func _fbeg (_fcec *fontCommon )*pdfFontType3 {return &pdfFontType3 {fontCommon :*_fcec }};
// AddOCSPs adds OCSPs to DSS.
func (_dbdf *DSS )AddOCSPs (ocsps [][]byte )([]*_fg .PdfObjectStream ,error ){return _dbdf .add (&_dbdf .OCSPs ,_dbdf ._cgbbd ,ocsps );};
// PdfAppender appends new PDF content to an existing PDF document via incremental updates.
type PdfAppender struct{_ebd _ff .ReadSeeker ;_bbef *_fg .PdfParser ;_cbb *PdfReader ;Reader *PdfReader ;_agbg []*PdfPage ;_cacc *PdfAcroForm ;_dgbf *DSS ;_fege *Permissions ;_gaeb _fg .XrefTable ;_dff int64 ;_egcab int ;_gcdb []_fg .PdfObject ;_aec map[_fg .PdfObject ]struct{};
_dcbad map[_fg .PdfObject ]int64 ;_fgb map[_fg .PdfObject ]struct{};_fcca map[_fg .PdfObject ]struct{};_ggcf int64 ;_fgggf bool ;_gccg string ;_ggb *EncryptOptions ;_fadf *PdfInfo ;};
// HasXObjectByName checks if an XObject with a specified keyName is defined.
func (_acgee *PdfPageResources )HasXObjectByName (keyName _fg .PdfObjectName )bool {_adedb ,_ :=_acgee .GetXObjectByName (keyName );return _adedb !=nil ;};
// Insert adds an outline item as a child of the current outline item,
// at the specified index.
func (_ffea *OutlineItem )Insert (index uint ,item *OutlineItem ){_bbac :=uint (len (_ffea .Entries ));if index > _bbac {index =_bbac ;};_ffea .Entries =append (_ffea .Entries [:index ],append ([]*OutlineItem {item },_ffea .Entries [index :]...)...);};
// PdfActionLaunch represents a launch action.
type PdfActionLaunch struct{*PdfAction ;F *PdfFilespec ;Win _fg .PdfObject ;Mac _fg .PdfObject ;Unix _fg .PdfObject ;NewWindow _fg .PdfObject ;};
// ToPdfObject converts the PdfPage to a dictionary within an indirect object container.
func (_cdec *PdfPage )ToPdfObject ()_fg .PdfObject {_bfda :=_cdec ._aebf ;_cdec .GetPageDict ();return _bfda ;};
// String returns a string describing the font descriptor.
func (_ffged *PdfFontDescriptor )String ()string {var _defg []string ;if _ffged .FontName !=nil {_defg =append (_defg ,_ffged .FontName .String ());};if _ffged .FontFamily !=nil {_defg =append (_defg ,_ffged .FontFamily .String ());};if _ffged .fontFile !=nil {_defg =append (_defg ,_ffged .fontFile .String ());
};if _ffged ._bbbd !=nil {_defg =append (_defg ,_ffged ._bbbd .String ());};_defg =append (_defg ,_d .Sprintf ("\u0046\u006f\u006et\u0046\u0069\u006c\u0065\u0033\u003d\u0025\u0074",_ffged .FontFile3 !=nil ));return _d .Sprintf ("\u0046\u004f\u004e\u0054_D\u0045\u0053\u0043\u0052\u0049\u0050\u0054\u004f\u0052\u007b\u0025\u0073\u007d",_dc .Join (_defg ,"\u002c\u0020"));
};
// ToPdfObject returns the PDF representation of the colorspace.
func (_dacdbf *PdfPageResourcesColorspaces )ToPdfObject ()_fg .PdfObject {_dcga :=_fg .MakeDict ();for _ ,_bdddc :=range _dacdbf .Names {_dcga .Set (_fg .PdfObjectName (_bdddc ),_dacdbf .Colorspaces [_bdddc ].ToPdfObject ());};if _dacdbf ._daff !=nil {_dacdbf ._daff .PdfObject =_dcga ;
return _dacdbf ._daff ;};return _dcga ;};
// ToPdfObject implements interface PdfModel.
func (_dfbg *PdfAnnotationCaret )ToPdfObject ()_fg .PdfObject {_dfbg .PdfAnnotation .ToPdfObject ();_gffe :=_dfbg ._agb ;_dacc :=_gffe .PdfObject .(*_fg .PdfObjectDictionary );_dfbg .PdfAnnotationMarkup .appendToPdfDictionary (_dacc );_dacc .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fg .MakeName ("\u0043\u0061\u0072e\u0074"));
_dacc .SetIfNotNil ("\u0052\u0044",_dfbg .RD );_dacc .SetIfNotNil ("\u0053\u0079",_dfbg .Sy );return _gffe ;};
// AddOutlineTree adds outlines to a PDF file.
func (_afdc *PdfWriter )AddOutlineTree (outlineTree *PdfOutlineTreeNode ){_afdc ._baebg =outlineTree };
// PdfFieldText represents a text field where user can enter text.
type PdfFieldText struct{*PdfField ;DA *_fg .PdfObjectString ;Q *_fg .PdfObjectInteger ;DS *_fg .PdfObjectString ;RV _fg .PdfObject ;MaxLen *_fg .PdfObjectInteger ;};func (_agfe *PdfReader )newPdfActionThreadFromDict (_dea *_fg .PdfObjectDictionary )(*PdfActionThread ,error ){_eb ,_fcb :=_ddd (_dea .Get ("\u0046"));
if _fcb !=nil {return nil ,_fcb ;};return &PdfActionThread {D :_dea .Get ("\u0044"),B :_dea .Get ("\u0042"),F :_eb },nil ;};
// GetNumComponents returns the number of color components of the colorspace device.
// Returns 4 for a CMYK32 device.
func (_bcgdd *PdfColorspaceDeviceCMYK )GetNumComponents ()int {return 4};var (CourierName =_eed .CourierName ;CourierBoldName =_eed .CourierBoldName ;CourierObliqueName =_eed .CourierObliqueName ;CourierBoldObliqueName =_eed .CourierBoldObliqueName ;HelveticaName =_eed .HelveticaName ;
HelveticaBoldName =_eed .HelveticaBoldName ;HelveticaObliqueName =_eed .HelveticaObliqueName ;HelveticaBoldObliqueName =_eed .HelveticaBoldObliqueName ;SymbolName =_eed .SymbolName ;ZapfDingbatsName =_eed .ZapfDingbatsName ;TimesRomanName =_eed .TimesRomanName ;
TimesBoldName =_eed .TimesBoldName ;TimesItalicName =_eed .TimesItalicName ;TimesBoldItalicName =_eed .TimesBoldItalicName ;);func _afdd (_gecf *_fg .PdfIndirectObject ,_acceg *_fg .PdfObjectDictionary )(*DSS ,error ){if _gecf ==nil {_gecf =_fg .MakeIndirectObject (nil );
};_gecf .PdfObject =_fg .MakeDict ();_badba :=map[string ]*VRI {};if _eafe ,_bdgg :=_fg .GetDict (_acceg .Get ("\u0056\u0052\u0049"));_bdgg {for _ ,_egdea :=range _eafe .Keys (){if _bddaa ,_bdfac :=_fg .GetDict (_eafe .Get (_egdea ));_bdfac {_badba [_dc .ToUpper (_egdea .String ())]=_gaaeb (_bddaa );
};};};return &DSS {Certs :_gfegc (_acceg .Get ("\u0043\u0065\u0072t\u0073")),OCSPs :_gfegc (_acceg .Get ("\u004f\u0043\u0053P\u0073")),CRLs :_gfegc (_acceg .Get ("\u0043\u0052\u004c\u0073")),VRI :_badba ,_gbaf :_gecf },nil ;};
// IsValid checks if the given pdf output intent type is valid.
func (_ffdde PdfOutputIntentType )IsValid ()bool {return _ffdde >=PdfOutputIntentTypeA1 &&_ffdde <=PdfOutputIntentTypeX ;};func (_bedb *PdfReader )buildNameNodes (_cdadc *_fg .PdfIndirectObject ,_bbbfa map[_fg .PdfObject ]struct{})error {if _cdadc ==nil {return nil ;
};if _ ,_facdc :=_bbbfa [_cdadc ];_facdc {_aa .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",_cdadc .ObjectNumber );
return nil ;};_bbbfa [_cdadc ]=struct{}{};_fcdgb ,_cfegb :=_cdadc .PdfObject .(*_fg .PdfObjectDictionary );if !_cfegb {return _ce .New ("n\u006f\u0064\u0065\u0020no\u0074 \u0061\u0020\u0064\u0069\u0063t\u0069\u006f\u006e\u0061\u0072\u0079");};if _ebbde ,_dcdad :=_fg .GetDict (_fcdgb .Get ("\u0044\u0065\u0073t\u0073"));
_dcdad {_cbbda ,_fgeee :=_fg .GetArray (_ebbde .Get ("\u004b\u0069\u0064\u0073"));if !_fgeee {return _ce .New ("\u0049n\u0076\u0061\u006c\u0069d\u0020\u004b\u0069\u0064\u0073 \u0061r\u0072a\u0079\u0020\u006f\u0062\u006a\u0065\u0063t");};_aa .Log .Trace ("\u004b\u0069\u0064\u0073\u003a\u0020\u0025\u0073",_cbbda );
for _gbagg ,_cbfbcc :=range _cbbda .Elements (){_bfca ,_bcebg :=_fg .GetIndirect (_cbfbcc );if !_bcebg {_aa .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0063\u0068\u0069\u006c\u0064\u0020n\u006f\u0074\u0020\u0069\u006e\u0064i\u0072\u0065\u0063\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0020\u002d \u0028\u0025\u0073\u0029",_bfca );
return _ce .New ("\u0063h\u0069\u006c\u0064\u0020n\u006f\u0074\u0020\u0069\u006ed\u0069r\u0065c\u0074\u0020\u006f\u0062\u006a\u0065\u0063t");};_cbbda .Set (_gbagg ,_bfca );_gcbeg :=_bedb .buildNameNodes (_bfca ,_bbbfa );if _gcbeg !=nil {return _gcbeg ;
};};};if _fdgef ,_bdbcf :=_fg .GetDict (_fcdgb );_bdbcf {if !_fg .IsNullObject (_fdgef .Get ("\u004b\u0069\u0064\u0073")){if _gfdgg ,_gebbe :=_fg .GetArray (_fdgef .Get ("\u004b\u0069\u0064\u0073"));_gebbe {for _bgcab ,_bcfbd :=range _gfdgg .Elements (){if _agfb ,_dgccf :=_fg .GetIndirect (_bcfbd );
_dgccf {_gfdgg .Set (_bgcab ,_agfb );_bddda :=_bedb .buildNameNodes (_agfb ,_bbbfa );if _bddda !=nil {return _bddda ;};};};};};};return nil ;};
// PdfFontDescriptor specifies metrics and other attributes of a font and can refer to a FontFile
// for embedded fonts.
// 9.8 Font Descriptors (page 281)
type PdfFontDescriptor struct{FontName _fg .PdfObject ;FontFamily _fg .PdfObject ;FontStretch _fg .PdfObject ;FontWeight _fg .PdfObject ;Flags _fg .PdfObject ;FontBBox _fg .PdfObject ;ItalicAngle _fg .PdfObject ;Ascent _fg .PdfObject ;Descent _fg .PdfObject ;
Leading _fg .PdfObject ;CapHeight _fg .PdfObject ;XHeight _fg .PdfObject ;StemV _fg .PdfObject ;StemH _fg .PdfObject ;AvgWidth _fg .PdfObject ;MaxWidth _fg .PdfObject ;MissingWidth _fg .PdfObject ;FontFile _fg .PdfObject ;FontFile2 _fg .PdfObject ;FontFile3 _fg .PdfObject ;
CharSet _fg .PdfObject ;_gbeff int ;_gbbgb float64 ;*fontFile ;_bbbd *_eed .TtfType ;
// Additional entries for CIDFonts
Style _fg .PdfObject ;Lang _fg .PdfObject ;FD _fg .PdfObject ;CIDSet _fg .PdfObject ;_cgcdc *_fg .PdfIndirectObject ;};
// ReaderToWriterOpts options used to generate a PdfWriter.
type ReaderToWriterOpts struct{SkipAcroForm bool ;SkipInfo bool ;SkipNameDictionary bool ;SkipNamedDests bool ;SkipOCProperties bool ;SkipOutlines bool ;SkipPageLabels bool ;SkipRotation bool ;SkipMetadata bool ;PageProcessCallback PageProcessCallback ;
// Deprecated: will be removed in v4. Use PageProcessCallback instead.
PageCallback PageCallback ;};
// ToPdfObject implements interface PdfModel.
func (_cefdd *PdfSignatureReference )ToPdfObject ()_fg .PdfObject {_faec :=_fg .MakeDict ();_faec .SetIfNotNil ("\u0054\u0079\u0070\u0065",_cefdd .Type );_faec .SetIfNotNil ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u004d\u0065\u0074\u0068\u006f\u0064",_cefdd .TransformMethod );
_faec .SetIfNotNil ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u0050\u0061\u0072\u0061\u006d\u0073",_cefdd .TransformParams );_faec .SetIfNotNil ("\u0044\u0061\u0074\u0061",_cefdd .Data );_faec .SetIfNotNil ("\u0044\u0069\u0067e\u0073\u0074\u004d\u0065\u0074\u0068\u006f\u0064",_cefdd .DigestMethod );
return _faec ;};func (_gbed *PdfColorspaceSpecialSeparation )String ()string {return "\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e";};
// R returns the value of the red component of the color.
func (_fdfga *PdfColorDeviceRGB )R ()float64 {return _fdfga [0]};
// NewPdfColorDeviceCMYK returns a new CMYK32 color.
func NewPdfColorDeviceCMYK (c ,m ,y ,k float64 )*PdfColorDeviceCMYK {_abage :=PdfColorDeviceCMYK {c ,m ,y ,k };return &_abage ;};
// GetAlphabet returns a map of the runes in `text` and their frequencies.
func GetAlphabet (text string )map[rune ]int {_bcda :=map[rune ]int {};for _ ,_fecac :=range text {_bcda [_fecac ]++;};return _bcda ;};
// 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 _ff .ReadSeeker )(*PdfReader ,error ){const _gggb ="\u006do\u0064e\u006c\u003a\u004e\u0065\u0077P\u0064\u0066R\u0065\u0061\u0064\u0065\u0072";return _bgdaf (rs ,&ReaderOpts {},false ,_gggb );};
// GetAnnotations returns the list of page annotations for `page`. If not loaded attempts to load the
// annotations, otherwise returns the loaded list.
func (_febaa *PdfPage )GetAnnotations ()([]*PdfAnnotation ,error ){if _febaa ._fbbb !=nil {return _febaa ._fbbb ,nil ;};if _febaa .Annots ==nil {_febaa ._fbbb =[]*PdfAnnotation {};return nil ,nil ;};if _febaa ._dedef ==nil {_febaa ._fbbb =[]*PdfAnnotation {};
return nil ,nil ;};_bdad ,_bdgbb :=_febaa ._dedef .loadAnnotations (_febaa .Annots );if _bdgbb !=nil {return nil ,_bdgbb ;};if _bdad ==nil {_febaa ._fbbb =[]*PdfAnnotation {};};_febaa ._fbbb =_bdad ;return _febaa ._fbbb ,nil ;};
// NewPdfAnnotationTrapNet returns a new trapnet annotation.
func NewPdfAnnotationTrapNet ()*PdfAnnotationTrapNet {_afaa :=NewPdfAnnotation ();_bca :=&PdfAnnotationTrapNet {};_bca .PdfAnnotation =_afaa ;_afaa .SetContext (_bca );return _bca ;};
// GetPatternByName gets the pattern specified by keyName. Returns nil if not existing.
// The bool flag indicated whether it was found or not.
func (_gcffb *PdfPageResources )GetPatternByName (keyName _fg .PdfObjectName )(*PdfPattern ,bool ){if _gcffb .Pattern ==nil {return nil ,false ;};_dbgcg ,_faeg :=_fg .TraceToDirectObject (_gcffb .Pattern ).(*_fg .PdfObjectDictionary );if !_faeg {_aa .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",_gcffb .Pattern );
return nil ,false ;};if _abfab :=_dbgcg .Get (keyName );_abfab !=nil {_ggace ,_gaccg :=_ffeff (_abfab );if _gaccg !=nil {_aa .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",_gaccg );
return nil ,false ;};return _ggace ,true ;};return nil ,false ;};
// 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 (_gfefg *PdfFont )FontDescriptor ()*PdfFontDescriptor {if _gfefg .baseFields ()._cdgef !=nil {return _gfefg .baseFields ()._cdgef ;};if _bdegf :=_gfefg ._gcaeff .getFontDescriptor ();_bdegf !=nil {return _bdegf ;};_aa .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",_gfefg );
return nil ;};
// ToPdfObject implements interface PdfModel.
func (_dga *PdfActionGoTo3DView )ToPdfObject ()_fg .PdfObject {_dga .PdfAction .ToPdfObject ();_aeb :=_dga ._bda ;_deg :=_aeb .PdfObject .(*_fg .PdfObjectDictionary );_deg .SetIfNotNil ("\u0053",_fg .MakeName (string (ActionTypeGoTo3DView )));_deg .SetIfNotNil ("\u0054\u0041",_dga .TA );
_deg .SetIfNotNil ("\u0056",_dga .V );return _aeb ;};
// ToPdfObject returns a *PdfIndirectObject containing a *PdfObjectArray representation of the DeviceN colorspace.
/*
Format: [/DeviceN names alternateSpace tintTransform]
or: [/DeviceN names alternateSpace tintTransform attributes]
*/
func (_bdace *PdfColorspaceDeviceN )ToPdfObject ()_fg .PdfObject {_gcbd :=_fg .MakeArray (_fg .MakeName ("\u0044e\u0076\u0069\u0063\u0065\u004e"));_gcbd .Append (_bdace .ColorantNames );_gcbd .Append (_bdace .AlternateSpace .ToPdfObject ());_gcbd .Append (_bdace .TintTransform .ToPdfObject ());
if _bdace .Attributes !=nil {_gcbd .Append (_bdace .Attributes .ToPdfObject ());};if _bdace ._cggda !=nil {_bdace ._cggda .PdfObject =_gcbd ;return _bdace ._cggda ;};return _gcbd ;};
// SetCatalogMetadata sets the catalog metadata (XMP) stream object.
func (_dggd *PdfWriter )SetCatalogMetadata (meta _fg .PdfObject )error {if meta ==nil {_dggd ._cgacf .Remove ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");return nil ;};_febad ,_agaefc :=_fg .GetStream (meta );if !_agaefc {return _ce .New ("\u0063\u0061\u0074\u0061\u006c\u006f\u0067\u0020\u006d\u0065\u0074\u0061\u0064a\u0074\u0061\u0020\u006d\u0075\u0073t\u0020\u0062\u0065\u0020\u0061\u0020\u0076\u0061\u006c\u0069\u0064\u0020\u0073t\u0072\u0065\u0061\u006d");
};_dggd .addObject (_febad );_dggd ._cgacf .Set ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061",_febad );return nil ;};
// NewDSS returns a new DSS dictionary.
func NewDSS ()*DSS {return &DSS {_gbaf :_fg .MakeIndirectObject (_fg .MakeDict ()),VRI :map[string ]*VRI {}};};
// GetAction returns the PDF action for the annotation link.
func (_fagc *PdfAnnotationLink )GetAction ()(*PdfAction ,error ){if _fagc ._efc !=nil {return _fagc ._efc ,nil ;};if _fagc .A ==nil {return nil ,nil ;};if _fagc ._abag ==nil {return nil ,nil ;};_fedf ,_agbf :=_fagc ._abag .loadAction (_fagc .A );if _agbf !=nil {return nil ,_agbf ;
};_fagc ._efc =_fedf ;return _fagc ._efc ,nil ;};func (_bafag *pdfCIDFontType2 )getFontDescriptor ()*PdfFontDescriptor {return _bafag ._cdgef };
// SetDSS sets the DSS dictionary (ETSI TS 102 778-4 V1.1.1) of the current
// document revision.
func (_becc *PdfAppender )SetDSS (dss *DSS ){if dss !=nil {_becc .updateObjectsDeep (dss .ToPdfObject (),nil );};_becc ._dgbf =dss ;};
// 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 *_fg .PdfIndirectObject ;SV *_fg .PdfIndirectObject ;};
// GetNumComponents returns the number of color components (1 for Indexed).
func (_fedb *PdfColorspaceSpecialIndexed )GetNumComponents ()int {return 1};
// PdfInfoTrapped specifies pdf trapped information.
type PdfInfoTrapped string ;
// DecodeArray returns the component range values for the Separation colorspace.
func (_fdcfg *PdfColorspaceSpecialSeparation )DecodeArray ()[]float64 {return []float64 {0,1.0}};
// ToPdfObject converts the pdfCIDFontType2 to a PDF representation.
func (_dgdcc *pdfCIDFontType2 )ToPdfObject ()_fg .PdfObject {if _dgdcc ._dbedf ==nil {_dgdcc ._dbedf =&_fg .PdfIndirectObject {};};_efag :=_dgdcc .baseFields ().asPdfObjectDictionary ("\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032");
_dgdcc ._dbedf .PdfObject =_efag ;if _dgdcc .CIDSystemInfo !=nil {_efag .Set ("\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f",_dgdcc .CIDSystemInfo );};if _dgdcc .DW !=nil {_efag .Set ("\u0044\u0057",_dgdcc .DW );};if _dgdcc .DW2 !=nil {_efag .Set ("\u0044\u0057\u0032",_dgdcc .DW2 );
};if _dgdcc .W !=nil {_efag .Set ("\u0057",_dgdcc .W );};if _dgdcc .W2 !=nil {_efag .Set ("\u0057\u0032",_dgdcc .W2 );};if _dgdcc .CIDToGIDMap !=nil {_efag .Set ("C\u0049\u0044\u0054\u006f\u0047\u0049\u0044\u004d\u0061\u0070",_dgdcc .CIDToGIDMap );};return _dgdcc ._dbedf ;
};type pdfFontSimple struct{fontCommon ;_ddbcd *_fg .PdfIndirectObject ;_fcgbd map[_dg .CharCode ]float64 ;_bdgda _dg .TextEncoder ;_fcad _dg .TextEncoder ;_fdfca *PdfFontDescriptor ;
// Encoding is subject to limitations that are described in 9.6.6, "Character Encoding".
// BaseFont is derived differently.
FirstChar _fg .PdfObject ;LastChar _fg .PdfObject ;Widths _fg .PdfObject ;Encoding _fg .PdfObject ;_dacg *_eed .RuneCharSafeMap ;};
// PdfFunction interface represents the common methods of a function in PDF.
type PdfFunction interface{Evaluate ([]float64 )([]float64 ,error );ToPdfObject ()_fg .PdfObject ;};
// GetNameDictionary returns the Names entry in the PDF catalog.
// See section 7.7.4 "Name Dictionary" (p. 80 PDF32000_2008).
func (_ddacc *PdfReader )GetNameDictionary ()(_fg .PdfObject ,error ){_eecde :=_fg .ResolveReference (_ddacc ._cgegd .Get ("\u004e\u0061\u006de\u0073"));if _eecde ==nil {return nil ,nil ;};if !_ddacc ._beegg {_gcdfe :=_ddacc .traverseObjectData (_eecde );
if _gcdfe !=nil {return nil ,_gcdfe ;};};return _eecde ,nil ;};
// PdfAnnotationPrinterMark represents PrinterMark annotations.
// (Section 12.5.6.20).
type PdfAnnotationPrinterMark struct{*PdfAnnotation ;MN _fg .PdfObject ;};func _gcbgc (_adba *[]*PdfField ,_daada FieldFilterFunc ,_cdadg bool )[]*PdfField {if _adba ==nil {return nil ;};_gadg :=*_adba ;if len (*_adba )==0{return nil ;};_eggeg :=_gadg [:0];
if _daada ==nil {_daada =func (*PdfField )bool {return true };};var _ecff []*PdfField ;for _ ,_dccba :=range _gadg {_afgfc :=_daada (_dccba );if _afgfc {_ecff =append (_ecff ,_dccba );if len (_dccba .Kids )> 0{_ecff =append (_ecff ,_gcbgc (&_dccba .Kids ,_daada ,_cdadg )...);
};};if !_cdadg ||!_afgfc ||len (_dccba .Kids )> 0{_eggeg =append (_eggeg ,_dccba );};};*_adba =_eggeg ;return _ecff ;};
// 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 (_dege *LTV )Enable (sig *PdfSignature ,extraCerts []*_ge .Certificate )error {if _dfff :=_dege .validateSig (sig );_dfff !=nil {return _dfff ;};_gdbede ,_fagce :=_dege .generateVRIKey (sig );if _fagce !=nil {return _fagce ;};if _ ,_ebgcb :=_dege ._ebbe .VRI [_gdbede ];
_ebgcb &&_dege .SkipExisting {return nil ;};_afaca ,_fagce :=sig .GetCerts ();if _fagce !=nil {return _fagce ;};return _dege .enable (_afaca ,extraCerts ,_gdbede );};
// 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 ;DiffResults *_gbb .DiffResults ;IsCrlFound bool ;IsOcspFound bool ;
// GeneralizedTime is the time at which the time-stamp token has been created by the TSA (RFC 3161).
GeneralizedTime _g .Time ;};func (_fagd *PdfColorspaceLab )String ()string {return "\u004c\u0061\u0062"};
// BaseFont returns the font's "BaseFont" field.
func (_eegg *PdfFont )BaseFont ()string {return _eegg .baseFields ()._aefg };
// SetShadingByName sets a shading resource specified by keyName.
func (_facef *PdfPageResources )SetShadingByName (keyName _fg .PdfObjectName ,shadingObj _fg .PdfObject )error {if _facef .Shading ==nil {_facef .Shading =_fg .MakeDict ();};_adbge ,_ggedfb :=_fg .GetDict (_facef .Shading );if !_ggedfb {return _fg .ErrTypeError ;
};_adbge .Set (keyName ,shadingObj );return nil ;};func (_bbcfc *PdfReader )loadStructure ()error {if _bbcfc ._ccgg .GetCrypter ()!=nil &&!_bbcfc ._ccgg .IsAuthenticated (){return _d .Errorf ("\u0066\u0069\u006ce\u0020\u006e\u0065\u0065d\u0020\u0074\u006f\u0020\u0062\u0065\u0020d\u0065\u0063\u0072\u0079\u0070\u0074\u0065\u0064\u0020\u0066\u0069\u0072\u0073\u0074");
};_adeda :=_bbcfc ._ccgg .GetTrailer ();if _adeda ==nil {return _d .Errorf ("\u006di\u0073s\u0069\u006e\u0067\u0020\u0074\u0072\u0061\u0069\u006c\u0065\u0072");};_cfcfc ,_cbdab :=_adeda .Get ("\u0052\u006f\u006f\u0074").(*_fg .PdfObjectReference );if !_cbdab {return _d .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0052\u006f\u006ft\u0020\u0028\u0074\u0072\u0061\u0069\u006c\u0065\u0072\u003a \u0025\u0073\u0029",_adeda );
};_ggeaa ,_gdad :=_bbcfc ._ccgg .LookupByReference (*_cfcfc );if _gdad !=nil {_aa .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",_gdad );
return _gdad ;};_ffefe ,_cbdab :=_ggeaa .(*_fg .PdfIndirectObject );if !_cbdab {_aa .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",_ggeaa ,*_adeda );
return _ce .New ("\u006di\u0073s\u0069\u006e\u0067\u0020\u0063\u0061\u0074\u0061\u006c\u006f\u0067");};_fgade ,_cbdab :=(*_ffefe ).PdfObject .(*_fg .PdfObjectDictionary );if !_cbdab {_aa .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",_ffefe .PdfObject );
return _ce .New ("\u0069n\u0076a\u006c\u0069\u0064\u0020\u0063\u0061\u0074\u0061\u006c\u006f\u0067");};_aa .Log .Trace ("C\u0061\u0074\u0061\u006c\u006f\u0067\u003a\u0020\u0025\u0073",_fgade );_fggda ,_cbdab :=_fgade .Get ("\u0050\u0061\u0067e\u0073").(*_fg .PdfObjectReference );
if !_cbdab {return _ce .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");};_fgcdc ,_gdad :=_bbcfc ._ccgg .LookupByReference (*_fggda );
if _gdad !=nil {_aa .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 _gdad ;};_gbgff ,_cbdab :=_fgcdc .(*_fg .PdfIndirectObject );if !_cbdab {_aa .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");
_aa .Log .Debug ("\u006f\u0070\u003a\u0020\u0025\u0070",_gbgff );return _ce .New ("p\u0061g\u0065\u0073\u0020\u006f\u0062\u006a\u0065\u0063t\u0020\u0069\u006e\u0076al\u0069\u0064");};_fdccf ,_cbdab :=_gbgff .PdfObject .(*_fg .PdfObjectDictionary );if !_cbdab {_aa .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",_gbgff );
return _ce .New ("p\u0061g\u0065\u0073\u0020\u006f\u0062\u006a\u0065\u0063t\u0020\u0069\u006e\u0076al\u0069\u0064");};_gcgfg ,_cbdab :=_fg .GetInt (_fdccf .Get ("\u0043\u006f\u0075n\u0074"));if !_cbdab {_aa .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 _ce .New ("\u0070\u0061\u0067\u0065s \u0063\u006f\u0075\u006e\u0074\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064");};if _ ,_cbdab =_fg .GetName (_fdccf .Get ("\u0054\u0079\u0070\u0065"));!_cbdab {_aa .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");
_fdccf .Set ("\u0054\u0079\u0070\u0065",_fg .MakeName ("\u0050\u0061\u0067e\u0073"));};if _bcdebe ,_face :=_fg .GetInt (_fdccf .Get ("\u0052\u006f\u0074\u0061\u0074\u0065"));_face {_fdece :=int64 (*_bcdebe );_bbcfc .Rotate =&_fdece ;};_bbcfc ._degeg =_cfcfc ;
_bbcfc ._cgegd =_fgade ;_bbcfc ._efgae =_fdccf ;_bbcfc ._ecef =_gbgff ;_bbcfc ._befaa =int (*_gcgfg );_bbcfc ._bgce =[]*_fg .PdfIndirectObject {};_gbaed :=map[_fg .PdfObject ]struct{}{};_gdad =_bbcfc .buildPageList (_gbgff ,nil ,_gbaed );if _gdad !=nil {return _gdad ;
};_aa .Log .Trace ("\u002d\u002d\u002d");_aa .Log .Trace ("\u0054\u004f\u0043");_aa .Log .Trace ("\u0050\u0061\u0067e\u0073");_aa .Log .Trace ("\u0025\u0064\u003a\u0020\u0025\u0073",len (_bbcfc ._bgce ),_bbcfc ._bgce );_bbcfc ._cfac ,_gdad =_bbcfc .loadOutlines ();
if _gdad !=nil {_aa .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",_gdad );
return _gdad ;};_bbcfc .AcroForm ,_gdad =_bbcfc .loadForms ();if _gdad !=nil {return _gdad ;};_bbcfc .DSS ,_gdad =_bbcfc .loadDSS ();if _gdad !=nil {return _gdad ;};_bbcfc ._eadc ,_gdad =_bbcfc .loadPerms ();if _gdad !=nil {return _gdad ;};return nil ;
};func (_aeda *PdfColorspaceSpecialPattern )String ()string {return "\u0050a\u0074\u0074\u0065\u0072\u006e";};
// C returns the value of the cyan component of the color.
func (_gagc *PdfColorDeviceCMYK )C ()float64 {return _gagc [0]};
// HasColorspaceByName checks if the colorspace with the specified name exists in the page resources.
func (_dbfg *PdfPageResources )HasColorspaceByName (keyName _fg .PdfObjectName )bool {_faee ,_dbfgf :=_dbfg .GetColorspaces ();if _dbfgf !=nil {_aa .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",_dbfgf );
return false ;};if _faee ==nil {return false ;};_ ,_bbbca :=_faee .Colorspaces [string (keyName )];return _bbbca ;};
// PdfColor interface represents a generic color in PDF.
type PdfColor interface{};
// StandardApplier is the interface that performs optimization of the whole PDF document.
// As a result an input document is being changed by the optimizer.
// The writer than takes back all it's parts and overwrites it.
// NOTE: This implementation is in experimental development state.
// Keep in mind that it might change in the subsequent minor versions.
type StandardApplier interface{ApplyStandard (_ffgc *_dab .Document )error ;};
// GetOutlineTree returns the outline tree.
func (_addgb *PdfReader )GetOutlineTree ()*PdfOutlineTreeNode {return _addgb ._cfac };
// 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 ;
// NewPdfAnnotationFreeText returns a new free text annotation.
func NewPdfAnnotationFreeText ()*PdfAnnotationFreeText {_edb :=NewPdfAnnotation ();_gccc :=&PdfAnnotationFreeText {};_gccc .PdfAnnotation =_edb ;_gccc .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_edb .SetContext (_gccc );return _gccc ;};
// ToPdfObject implements interface PdfModel.
func (_bfaa *PdfAnnotationLink )ToPdfObject ()_fg .PdfObject {_bfaa .PdfAnnotation .ToPdfObject ();_cagg :=_bfaa ._agb ;_gcbb :=_cagg .PdfObject .(*_fg .PdfObjectDictionary );_gcbb .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fg .MakeName ("\u004c\u0069\u006e\u006b"));
if _bfaa ._efc !=nil &&_bfaa ._efc ._bd !=nil {_gcbb .Set ("\u0041",_bfaa ._efc ._bd .ToPdfObject ());}else if _bfaa .A !=nil {_gcbb .Set ("\u0041",_bfaa .A );};_gcbb .SetIfNotNil ("\u0044\u0065\u0073\u0074",_bfaa .Dest );_gcbb .SetIfNotNil ("\u0048",_bfaa .H );
_gcbb .SetIfNotNil ("\u0050\u0041",_bfaa .PA );_gcbb .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_bfaa .QuadPoints );_gcbb .SetIfNotNil ("\u0042\u0053",_bfaa .BS );return _cagg ;};
// SetColorspaceByName adds the provided colorspace to the page resources.
func (_dddge *PdfPageResources )SetColorspaceByName (keyName _fg .PdfObjectName ,cs PdfColorspace )error {_bagcd ,_fbeae :=_dddge .GetColorspaces ();if _fbeae !=nil {_aa .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",_fbeae );
return _fbeae ;};if _bagcd ==nil {_bagcd =NewPdfPageResourcesColorspaces ();_dddge .SetColorSpace (_bagcd );};_bagcd .Set (keyName ,cs );return nil ;};func (_gcdgb *PdfWriter )setWriter (_eacba _ff .Writer ){_gcdgb ._fcgga =_gcdgb ._beddc ;_gcdgb ._dbdde =_da .NewWriter (_eacba );
};
// PdfOutline represents a PDF outline dictionary (Table 152 - p. 376).
type PdfOutline struct{PdfOutlineTreeNode ;Parent *PdfOutlineTreeNode ;Count *int64 ;_adece *_fg .PdfIndirectObject ;};
// PartialName returns the partial name of the field.
func (_ecge *PdfField )PartialName ()string {_bbb :="";if _ecge .T !=nil {_bbb =_ecge .T .Decoded ();}else {_aa .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 _bbb ;};
// PdfFunctionType4 is a Postscript calculator functions.
type PdfFunctionType4 struct{Domain []float64 ;Range []float64 ;Program *_bc .PSProgram ;_babdc *_bc .PSExecutor ;_dedbd []byte ;_dega *_fg .PdfObjectStream ;};
// PdfAnnotationLink represents Link annotations.
// (Section 12.5.6.5 p. 403).
type PdfAnnotationLink struct{*PdfAnnotation ;A _fg .PdfObject ;Dest _fg .PdfObject ;H _fg .PdfObject ;PA _fg .PdfObject ;QuadPoints _fg .PdfObject ;BS _fg .PdfObject ;_efc *PdfAction ;_abag *PdfReader ;};
// ToPdfObject converts colorspace to a PDF object. [/Indexed base hival lookup]
func (_agcbb *PdfColorspaceSpecialIndexed )ToPdfObject ()_fg .PdfObject {_bfae :=_fg .MakeArray (_fg .MakeName ("\u0049n\u0064\u0065\u0078\u0065\u0064"));_bfae .Append (_agcbb .Base .ToPdfObject ());_bfae .Append (_fg .MakeInteger (int64 (_agcbb .HiVal )));
_bfae .Append (_agcbb .Lookup );if _agcbb ._gfeg !=nil {_agcbb ._gfeg .PdfObject =_bfae ;return _agcbb ._gfeg ;};return _bfae ;};
// String returns a string that describes `base`.
func (_gbaec fontCommon )String ()string {return _d .Sprintf ("\u0046\u004f\u004e\u0054\u007b\u0025\u0073\u007d",_gbaec .coreString ());};
// GetContainingPdfObject implements interface PdfModel.
func (_bece *PdfFilespec )GetContainingPdfObject ()_fg .PdfObject {return _bece ._ccbdc };
// BorderEffect represents a border effect (Table 167 p. 395).
type BorderEffect int ;
// NewImageFromGoImage creates a new NRGBA32 unidoc Image from a golang Image.
// If `goimg` is grayscale (*goimage.Gray8) then calls NewGrayImageFromGoImage instead.
func (_dfced DefaultImageHandler )NewImageFromGoImage (goimg _ac .Image )(*Image ,error ){_cbeba ,_bbcfa :=_cc .FromGoImage (goimg );if _bbcfa !=nil {return nil ,_bbcfa ;};_aaagf :=_adad (_cbeba .Base ());return &_aaagf ,nil ;};
// Clear clears flag fl from the flag and returns the resulting flag.
func (_efbgd FieldFlag )Clear (fl FieldFlag )FieldFlag {return FieldFlag (_efbgd .Mask ()&^fl .Mask ())};
// GetCharMetrics returns the char metrics for character code `code`.
func (_cgbgf pdfCIDFontType2 )GetCharMetrics (code _dg .CharCode )(_eed .CharMetrics ,bool ){if _bdae ,_egbg :=_cgbgf ._dbgce [code ];_egbg {return _eed .CharMetrics {Wx :_bdae },true ;};_caggg :=rune (code );_eaffg ,_faae :=_cgbgf ._ebda [_caggg ];if !_faae {_eaffg =int (_cgbgf ._gagd );
};return _eed .CharMetrics {Wx :float64 (_eaffg )},true ;};var _beab =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 _bcdga (_fggge *fontCommon )*pdfCIDFontType0 {return &pdfCIDFontType0 {fontCommon :*_fggge }};
// GetPdfInfo returns the PDF info dictionary.
func (_fefgee *PdfReader )GetPdfInfo ()(*PdfInfo ,error ){_cebgc ,_bfcg :=_fefgee .GetTrailer ();if _bfcg !=nil {return nil ,_bfcg ;};var _cbdb *_fg .PdfObjectDictionary ;_ggeag :=_cebgc .Get ("\u0049\u006e\u0066\u006f");switch _beegf :=_ggeag .(type ){case *_fg .PdfObjectReference :_afabb :=_beegf ;
_ggeag ,_bfcg =_fefgee .GetIndirectObjectByNumber (int (_afabb .ObjectNumber ));_ggeag =_fg .TraceToDirectObject (_ggeag );if _bfcg !=nil {return nil ,_bfcg ;};_cbdb ,_ =_ggeag .(*_fg .PdfObjectDictionary );case *_fg .PdfObjectDictionary :_cbdb =_beegf ;
};if _cbdb ==nil {return nil ,_ce .New ("I\u006e\u0066\u006f\u0020\u0064\u0069c\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u0020\u006eo\u0074\u0020\u0070r\u0065s\u0065\u006e\u0074");};_fcefc ,_bfcg :=NewPdfInfoFromObject (_cbdb );if _bfcg !=nil {return nil ,_bfcg ;
};return _fcefc ,nil ;};
// ToPdfObject converts the pdfFontSimple to its PDF representation for outputting.
func (_bddccf *pdfFontSimple )ToPdfObject ()_fg .PdfObject {if _bddccf ._ddbcd ==nil {_bddccf ._ddbcd =&_fg .PdfIndirectObject {};};_ffbbe :=_bddccf .baseFields ().asPdfObjectDictionary ("");_bddccf ._ddbcd .PdfObject =_ffbbe ;if _bddccf .FirstChar !=nil {_ffbbe .Set ("\u0046i\u0072\u0073\u0074\u0043\u0068\u0061r",_bddccf .FirstChar );
};if _bddccf .LastChar !=nil {_ffbbe .Set ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072",_bddccf .LastChar );};if _bddccf .Widths !=nil {_ffbbe .Set ("\u0057\u0069\u0064\u0074\u0068\u0073",_bddccf .Widths );};if _bddccf .Encoding !=nil {_ffbbe .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_bddccf .Encoding );
}else if _bddccf ._bdgda !=nil {_aacbc :=_bddccf ._bdgda .ToPdfObject ();if _aacbc !=nil {_ffbbe .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_aacbc );};};return _bddccf ._ddbcd ;};
// PdfActionSound represents a sound action.
type PdfActionSound struct{*PdfAction ;Sound _fg .PdfObject ;Volume _fg .PdfObject ;Synchronous _fg .PdfObject ;Repeat _fg .PdfObject ;Mix _fg .PdfObject ;};
// ToPdfObject implements interface PdfModel.
func (_acg *PdfActionTrans )ToPdfObject ()_fg .PdfObject {_acg .PdfAction .ToPdfObject ();_ddg :=_acg ._bda ;_agfg :=_ddg .PdfObject .(*_fg .PdfObjectDictionary );_agfg .SetIfNotNil ("\u0053",_fg .MakeName (string (ActionTypeTrans )));_agfg .SetIfNotNil ("\u0054\u0072\u0061n\u0073",_acg .Trans );
return _ddg ;};
// PdfActionGoTo represents a GoTo action.
type PdfActionGoTo struct{*PdfAction ;D _fg .PdfObject ;};
// GetContainingPdfObject gets the primitive used to parse the color space.
func (_dbfbe *PdfColorspaceICCBased )GetContainingPdfObject ()_fg .PdfObject {return _dbfbe ._cebf };
// IsTerminal returns true for terminal fields, false otherwise.
// Terminal fields are fields whose descendants are only widget annotations.
func (_edefeb *PdfField )IsTerminal ()bool {return len (_edefeb .Kids )==0};
// ToPdfObject returns the PDF representation of the shading pattern.
func (_gadgd *PdfShadingPatternType3 )ToPdfObject ()_fg .PdfObject {_gadgd .PdfPattern .ToPdfObject ();_gagfd :=_gadgd .getDict ();if _gadgd .Shading !=nil {_gagfd .Set ("\u0053h\u0061\u0064\u0069\u006e\u0067",_gadgd .Shading .ToPdfObject ());};if _gadgd .Matrix !=nil {_gagfd .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_gadgd .Matrix );
};if _gadgd .ExtGState !=nil {_gagfd .Set ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e",_gadgd .ExtGState );};return _gadgd ._gaac ;};func _eddb (_efd *_fg .PdfObjectDictionary )(*PdfFieldButton ,error ){_gecca :=&PdfFieldButton {};_gecca .PdfField =NewPdfField ();
_gecca .PdfField .SetContext (_gecca );_gecca .Opt ,_ =_fg .GetArray (_efd .Get ("\u004f\u0070\u0074"));_gaabe :=NewPdfAnnotationWidget ();_gaabe .A ,_ =_fg .GetDict (_efd .Get ("\u0041"));_gaabe .AP ,_ =_fg .GetDict (_efd .Get ("\u0041\u0050"));_gaabe .SetContext (_gecca );
_gecca .PdfField .Annotations =append (_gecca .PdfField .Annotations ,_gaabe );return _gecca ,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 (_bbce *PdfFieldButton )GetType ()ButtonType {_eadfd :=ButtonTypeCheckbox ;if _bbce .Ff !=nil {if (uint32 (*_bbce .Ff )&FieldFlagPushbutton .Mask ())> 0{_eadfd =ButtonTypePush ;}else if (uint32 (*_bbce .Ff )&FieldFlagRadio .Mask ())> 0{_eadfd =ButtonTypeRadio ;
};};return _eadfd ;};
// RemovePage removes a page by number.
func (_bfac *PdfAppender )RemovePage (pageNum int ){_gdea :=pageNum -1;_bfac ._agbg =append (_bfac ._agbg [0:_gdea ],_bfac ._agbg [pageNum :]...);};func _aedae (_afca StdFontName )(pdfFontSimple ,error ){_fgcff ,_dfde :=_eed .NewStdFontByName (_afca );
if !_dfde {return pdfFontSimple {},ErrFontNotSupported ;};_ebga :=_dfebg (_fgcff );return _ebga ,nil ;};var ErrColorOutOfRange =_ce .New ("\u0063o\u006co\u0072\u0020\u006f\u0075\u0074 \u006f\u0066 \u0072\u0061\u006e\u0067\u0065");
// PdfActionImportData represents a importData action.
type PdfActionImportData struct{*PdfAction ;F *PdfFilespec ;};
// GetContainingPdfObject returns the container of the outline item (indirect object).
func (_cbcba *PdfOutlineItem )GetContainingPdfObject ()_fg .PdfObject {return _cbcba ._aeadb };
// PageCallback callback function used in page loading
// that could be used to modify the page content.
//
// Deprecated: will be removed in v4. Use PageProcessCallback instead.
type PageCallback func (_debcd int ,_ebgfa *PdfPage );func (_fcdgd *PdfReader )loadDSS ()(*DSS ,error ){if _fcdgd ._ccgg .GetCrypter ()!=nil &&!_fcdgd ._ccgg .IsAuthenticated (){return nil ,_d .Errorf ("\u0066\u0069\u006ce\u0020\u006e\u0065\u0065d\u0020\u0074\u006f\u0020\u0062\u0065\u0020d\u0065\u0063\u0072\u0079\u0070\u0074\u0065\u0064\u0020\u0066\u0069\u0072\u0073\u0074");
};_gfaedg :=_fcdgd ._cgegd .Get ("\u0044\u0053\u0053");if _gfaedg ==nil {return nil ,nil ;};_fdgc ,_ :=_fg .GetIndirect (_gfaedg );_gfaedg =_fg .TraceToDirectObject (_gfaedg );switch _egbgf :=_gfaedg .(type ){case *_fg .PdfObjectNull :return nil ,nil ;
case *_fg .PdfObjectDictionary :return _afdd (_fdgc ,_egbgf );};return nil ,_d .Errorf ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0044\u0053\u0053 \u0065\u006e\u0074\u0072y \u0025\u0054",_gfaedg );};func (_ccgb *PdfReader )newPdfActionJavaScriptFromDict (_aefb *_fg .PdfObjectDictionary )(*PdfActionJavaScript ,error ){return &PdfActionJavaScript {JS :_aefb .Get ("\u004a\u0053")},nil ;
};func _beca (_bffc *_fg .PdfIndirectObject )(*PdfOutline ,error ){_gbbff ,_dfbdb :=_bffc .PdfObject .(*_fg .PdfObjectDictionary );if !_dfbdb {return nil ,_d .Errorf ("\u006f\u0075\u0074l\u0069\u006e\u0065\u0020o\u0062\u006a\u0065\u0063\u0074\u0020\u006eo\u0074\u0020\u0061\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079");
};_ebaee :=NewPdfOutline ();if _dcabg :=_gbbff .Get ("\u0054\u0079\u0070\u0065");_dcabg !=nil {_cedf ,_fdgee :=_dcabg .(*_fg .PdfObjectName );if _fdgee {if *_cedf !="\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0073"{_aa .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",*_cedf );
};};};if _cbgb :=_gbbff .Get ("\u0043\u006f\u0075n\u0074");_cbgb !=nil {_acccc ,_ccedg :=_fg .GetNumberAsInt64 (_cbgb );if _ccedg !=nil {return nil ,_ccedg ;};_ebaee .Count =&_acccc ;};return _ebaee ,nil ;};
// GetContainingPdfObject returns the XObject Form's containing object (indirect object).
func (_bbggf *XObjectForm )GetContainingPdfObject ()_fg .PdfObject {return _bbggf ._bdage };
// 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 (_bebfa *PdfReader )GetObjectNums ()[]int {return _bebfa ._ccgg .GetObjectNums ()};
// SetRotation sets the rotation of all pages added to writer. The rotation is
// specified in degrees and must be a multiple of 90.
// The Rotate field of individual pages has priority over the global rotation.
func (_cggff *PdfWriter )SetRotation (rotate int64 )error {_ccge ,_fbbgfb :=_fg .GetDict (_cggff ._feccd );if !_fbbgfb {return ErrTypeCheck ;};_ccge .Set ("\u0052\u006f\u0074\u0061\u0074\u0065",_fg .MakeInteger (rotate ));return nil ;};
// ToPdfObject implements interface PdfModel.
func (_cgc *PdfActionHide )ToPdfObject ()_fg .PdfObject {_cgc .PdfAction .ToPdfObject ();_fcc :=_cgc ._bda ;_bcb :=_fcc .PdfObject .(*_fg .PdfObjectDictionary );_bcb .SetIfNotNil ("\u0053",_fg .MakeName (string (ActionTypeHide )));_bcb .SetIfNotNil ("\u0054",_cgc .T );
_bcb .SetIfNotNil ("\u0048",_cgc .H );return _fcc ;};
// ContentStreamWrapper wraps the Page's contentstream into q ... Q blocks.
type ContentStreamWrapper interface{WrapContentStream (_eecb *PdfPage )error ;};var _ pdfFont =(*pdfCIDFontType0 )(nil );
// ToOutlineTree returns a low level PdfOutlineTreeNode object, based on
// the current instance.
func (_cbfbe *Outline )ToOutlineTree ()*PdfOutlineTreeNode {return &_cbfbe .ToPdfOutline ().PdfOutlineTreeNode ;};func (_bfbfb *PdfReader )newPdfAcroFormFromDict (_caeeg *_fg .PdfIndirectObject ,_bedg *_fg .PdfObjectDictionary )(*PdfAcroForm ,error ){_fdfgd :=NewPdfAcroForm ();
if _caeeg !=nil {_fdfgd ._daca =_caeeg ;_caeeg .PdfObject =_fg .MakeDict ();};if _eeebc :=_bedg .Get ("\u0046\u0069\u0065\u006c\u0064\u0073");_eeebc !=nil &&!_fg .IsNullObject (_eeebc ){_bgea ,_ebca :=_fg .GetArray (_eeebc );if !_ebca {return nil ,_d .Errorf ("\u0066i\u0065\u006c\u0064\u0073\u0020\u006e\u006f\u0074\u0020\u0061\u006e \u0061\u0072\u0072\u0061\u0079\u0020\u0028\u0025\u0054\u0029",_eeebc );
};var _edgbb []*PdfField ;for _ ,_bgcf :=range _bgea .Elements (){_cdac ,_edegdf :=_fg .GetIndirect (_bgcf );if !_edegdf {if _ ,_bbbgg :=_bgcf .(*_fg .PdfObjectNull );_bbbgg {_aa .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 ;};_aa .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",_bgcf );
return nil ,_d .Errorf ("\u0066\u0069\u0065l\u0064\u0020\u006e\u006ft\u0020\u0069\u006e\u0020\u0061\u006e\u0020i\u006e\u0064\u0069\u0072\u0065\u0063\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074");};_bbeda ,_ddbf :=_bfbfb .newPdfFieldFromIndirectObject (_cdac ,nil );
if _ddbf !=nil {return nil ,_ddbf ;};_aa .Log .Trace ("\u0041\u0063\u0072\u006fFo\u0072\u006d\u0020\u0046\u0069\u0065\u006c\u0064\u003a\u0020\u0025\u002b\u0076",*_bbeda );_edgbb =append (_edgbb ,_bbeda );};_fdfgd .Fields =&_edgbb ;};if _cabf :=_bedg .Get ("\u004ee\u0065d\u0041\u0070\u0070\u0065\u0061\u0072\u0061\u006e\u0063\u0065\u0073");
_cabf !=nil {_daba ,_abae :=_fg .GetBool (_cabf );if _abae {_fdfgd .NeedAppearances =_daba ;}else {_aa .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",_cabf );
};};if _cfccf :=_bedg .Get ("\u0053\u0069\u0067\u0046\u006c\u0061\u0067\u0073");_cfccf !=nil {_gfbd ,_ddgc :=_fg .GetInt (_cfccf );if _ddgc {_fdfgd .SigFlags =_gfbd ;}else {_aa .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",_cfccf );
};};if _fcce :=_bedg .Get ("\u0043\u004f");_fcce !=nil {_bbdc ,_cacde :=_fg .GetArray (_fcce );if _cacde {_fdfgd .CO =_bbdc ;}else {_aa .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",_fcce );
};};if _abab :=_bedg .Get ("\u0044\u0052");_abab !=nil {if _fdfa ,_gdddg :=_fg .GetDict (_abab );_gdddg {_dbgac ,_dcee :=NewPdfPageResourcesFromDict (_fdfa );if _dcee !=nil {_aa .Log .Error ("\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0044R\u003a\u0020\u0025\u0076",_dcee );
return nil ,_dcee ;};_fdfgd .DR =_dbgac ;}else {_aa .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",_abab );};};if _dccgg :=_bedg .Get ("\u0044\u0041");
_dccgg !=nil {_edga ,_ffdg :=_fg .GetString (_dccgg );if _ffdg {_fdfgd .DA =_edga ;}else {_aa .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",_dccgg );
};};if _eedbf :=_bedg .Get ("\u0051");_eedbf !=nil {_gafa ,_ggbe :=_fg .GetInt (_eedbf );if _ggbe {_fdfgd .Q =_gafa ;}else {_aa .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a \u0051\u0020\u0069\u006e\u0076a\u006ci\u0064 \u0028\u0067\u006f\u0074\u0020\u0025\u0054)",_eedbf );
};};if _caccg :=_bedg .Get ("\u0058\u0046\u0041");_caccg !=nil {_fdfgd .XFA =_caccg ;};if _baged :=_bedg .Get ("\u0041\u0044\u0042\u0045\u005f\u0045\u0063\u0068\u006f\u0053\u0069\u0067\u006e");_baged !=nil {_fdfgd .ADBEEchoSign =_baged ;};_fdfgd .ToPdfObject ();
return _fdfgd ,nil ;};
// NewPdfColorCalGray returns a new CalGray color.
func NewPdfColorCalGray (grayVal float64 )*PdfColorCalGray {_eagdf :=PdfColorCalGray (grayVal );return &_eagdf ;};func _defgb (_gaagga _fg .PdfObject )(PdfFunction ,error ){_gaagga =_fg .ResolveReference (_gaagga );if _gfdbd ,_baaag :=_gaagga .(*_fg .PdfObjectStream );
_baaag {_cdfg :=_gfdbd .PdfObjectDictionary ;_dacbb ,_geaee :=_cdfg .Get ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065").(*_fg .PdfObjectInteger );if !_geaee {_aa .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 ,_ce .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 *_dacbb ==0{return _fbace (_gfdbd );}else if *_dacbb ==4{return _cfdcd (_gfdbd );
}else {return nil ,_ce .New ("i\u006e\u0076\u0061\u006cid\u0020f\u0075\u006e\u0063\u0074\u0069o\u006e\u0020\u0074\u0079\u0070\u0065");};}else if _decdf ,_fdgdf :=_gaagga .(*_fg .PdfIndirectObject );_fdgdf {_agegg ,_bbdb :=_decdf .PdfObject .(*_fg .PdfObjectDictionary );
if !_bbdb {_aa .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 ,_ce .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");};_bbcbe ,_bbdb :=_agegg .Get ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065").(*_fg .PdfObjectInteger );
if !_bbdb {_aa .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 ,_ce .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 *_bbcbe ==2{return _debe (_decdf );}else if *_bbcbe ==3{return _cgef (_decdf );}else {return nil ,_ce .New ("i\u006e\u0076\u0061\u006cid\u0020f\u0075\u006e\u0063\u0074\u0069o\u006e\u0020\u0074\u0079\u0070\u0065");};}else if _fgbf ,_aege :=_gaagga .(*_fg .PdfObjectDictionary );
_aege {_dcec ,_gdde :=_fgbf .Get ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065").(*_fg .PdfObjectInteger );if !_gdde {_aa .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 ,_ce .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 *_dcec ==2{return _debe (_fgbf );}else if *_dcec ==3{return _cgef (_fgbf );
}else {return nil ,_ce .New ("i\u006e\u0076\u0061\u006cid\u0020f\u0075\u006e\u0063\u0074\u0069o\u006e\u0020\u0074\u0079\u0070\u0065");};}else {_aa .Log .Debug ("\u0046u\u006e\u0063\u0074\u0069\u006f\u006e\u0020\u0054\u0079\u0070\u0065 \u0065\u0072\u0072\u006f\u0072\u003a\u0020\u0025\u0023\u0076",_gaagga );
return nil ,_ce .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};};
// PdfShadingPatternType2 is shading patterns that will use a Type 2 shading pattern (Axial).
type PdfShadingPatternType2 struct{*PdfPattern ;Shading *PdfShadingType2 ;Matrix *_fg .PdfObjectArray ;ExtGState _fg .PdfObject ;};func (_dggc *PdfReader )newPdfActionResetFormFromDict (_gbea *_fg .PdfObjectDictionary )(*PdfActionResetForm ,error ){return &PdfActionResetForm {Fields :_gbea .Get ("\u0046\u0069\u0065\u006c\u0064\u0073"),Flags :_gbea .Get ("\u0046\u006c\u0061g\u0073")},nil ;
};
// A returns the value of the A component of the color.
func (_bbcb *PdfColorCalRGB )A ()float64 {return _bbcb [0]};
// SetContext sets the specific fielddata type, e.g. would be PdfFieldButton for a button field.
func (_aaag *PdfField )SetContext (ctx PdfModel ){_aaag ._abcbb =ctx };
// 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 (_dcca []_fg .PdfObject )([]_fg .PdfObject ,error );};
// String returns a human readable description of `fontfile`.
func (_befce *fontFile )String ()string {_abbac :="\u005b\u004e\u006f\u006e\u0065\u005d";if _befce ._ffff !=nil {_abbac =_befce ._ffff .String ();};return _d .Sprintf ("\u0046O\u004e\u0054\u0046\u0049\u004c\u0045\u007b\u0025\u0023\u0071\u0020e\u006e\u0063\u006f\u0064\u0065\u0072\u003d\u0025\u0073\u007d",_befce ._gaefe ,_abbac );
};
// ToPdfObject returns the PDF representation of the tiling pattern.
func (_baaeg *PdfTilingPattern )ToPdfObject ()_fg .PdfObject {_baaeg .PdfPattern .ToPdfObject ();_cfcf :=_baaeg .getDict ();if _baaeg .PaintType !=nil {_cfcf .Set ("\u0050a\u0069\u006e\u0074\u0054\u0079\u0070e",_baaeg .PaintType );};if _baaeg .TilingType !=nil {_cfcf .Set ("\u0054\u0069\u006c\u0069\u006e\u0067\u0054\u0079\u0070\u0065",_baaeg .TilingType );
};if _baaeg .BBox !=nil {_cfcf .Set ("\u0042\u0042\u006f\u0078",_baaeg .BBox .ToPdfObject ());};if _baaeg .XStep !=nil {_cfcf .Set ("\u0058\u0053\u0074e\u0070",_baaeg .XStep );};if _baaeg .YStep !=nil {_cfcf .Set ("\u0059\u0053\u0074e\u0070",_baaeg .YStep );
};if _baaeg .Resources !=nil {_cfcf .Set ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s",_baaeg .Resources .ToPdfObject ());};if _baaeg .Matrix !=nil {_cfcf .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_baaeg .Matrix );};return _baaeg ._gaac ;};var (ErrRequiredAttributeMissing =_ce .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 =_ce .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0061\u0074\u0074\u0072i\u0062\u0075\u0074\u0065");ErrTypeCheck =_ce .New ("\u0074\u0079\u0070\u0065\u0020\u0063\u0068\u0065\u0063\u006b");_gbfa =_ce .New ("\u0072\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b\u0020e\u0072\u0072\u006f\u0072");
ErrEncrypted =_ce .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 =_ce .New ("\u0066\u006fn\u0074\u0020\u006eo\u0074\u0020\u0064\u0065\u0066\u0069\u006e\u0065\u0064");
ErrFontNotSupported =_bb .Errorf ("u\u006e\u0073\u0075\u0070po\u0072t\u0065\u0064\u0020\u0066\u006fn\u0074\u0020\u0028\u0025\u0077\u0029",_fg .ErrNotSupported );ErrType1CFontNotSupported =_bb .Errorf ("\u0054y\u0070\u00651\u0043\u0020\u0066o\u006e\u0074\u0073\u0020\u0061\u0072\u0065 \u006e\u006f\u0074\u0020\u0063\u0075r\u0072\u0065\u006e\u0074\u006c\u0079\u0020\u0073\u0075\u0070\u0070o\u0072\u0074\u0065\u0064\u0020\u0028\u0025\u0077\u0029",_fg .ErrNotSupported );
ErrType3FontNotSupported =_bb .Errorf ("\u0054y\u0070\u00653\u0020\u0066\u006f\u006et\u0073\u0020\u0061r\u0065\u0020\u006e\u006f\u0074\u0020\u0063\u0075\u0072re\u006e\u0074\u006cy\u0020\u0073u\u0070\u0070\u006f\u0072\u0074\u0065d\u0020\u0028%\u0077\u0029",_fg .ErrNotSupported );
ErrTTCmapNotSupported =_bb .Errorf ("\u0075\u006es\u0075\u0070\u0070\u006fr\u0074\u0065d\u0020\u0054\u0072\u0075\u0065\u0054\u0079\u0070e\u0020\u0063\u006d\u0061\u0070\u0020\u0066\u006f\u0072\u006d\u0061\u0074 \u0028\u0025\u0077\u0029",_fg .ErrNotSupported );
ErrSignNotEnoughSpace =_bb .Errorf ("\u0069\u006e\u0073\u0075\u0066\u0066\u0069c\u0069\u0065\u006et\u0020\u0073\u0070a\u0063\u0065 \u0061\u006c\u006c\u006f\u0063\u0061t\u0065d \u0066\u006f\u0072\u0020\u0074\u0068\u0065\u0020\u0073\u0069\u0067\u006e\u0061\u0074\u0075\u0072\u0065\u0020\u0063\u006f\u006e\u0074\u0065\u006e\u0074\u0073");
ErrSignNoCertificates =_bb .Errorf ("\u0063\u006ful\u0064\u0020\u006eo\u0074\u0020\u0072\u0065tri\u0065ve\u0020\u0063\u0065\u0072\u0074\u0069\u0066ic\u0061\u0074\u0065\u0020\u0063\u0068\u0061i\u006e"););func _adad (_fdddf *_cc .ImageBase )(_bafbb Image ){_bafbb .Width =int64 (_fdddf .Width );
_bafbb .Height =int64 (_fdddf .Height );_bafbb .BitsPerComponent =int64 (_fdddf .BitsPerComponent );_bafbb .ColorComponents =_fdddf .ColorComponents ;_bafbb .Data =_fdddf .Data ;_bafbb ._dbge =_fdddf .Decode ;_bafbb ._gccd =_fdddf .Alpha ;return _bafbb ;
};
// Read reads an image and loads into a new Image object with an RGB
// colormap and 8 bits per component.
func (_ddfe DefaultImageHandler )Read (reader _ff .Reader )(*Image ,error ){_aeaba ,_ ,_aefbe :=_ac .Decode (reader );if _aefbe !=nil {_aa .Log .Debug ("\u0045\u0072\u0072or\u0020\u0064\u0065\u0063\u006f\u0064\u0069\u006e\u0067\u0020\u0066\u0069\u006c\u0065\u003a\u0020\u0025\u0073",_aefbe );
return nil ,_aefbe ;};return _ddfe .NewImageFromGoImage (_aeaba );};
// ToInteger convert to an integer format.
func (_cddfg *PdfColorCalRGB )ToInteger (bits int )[3]uint32 {_adfg :=_ef .Pow (2,float64 (bits ))-1;return [3]uint32 {uint32 (_adfg *_cddfg .A ()),uint32 (_adfg *_cddfg .B ()),uint32 (_adfg *_cddfg .C ())};};
// ToPdfObject returns the PDF representation of the pattern.
func (_gffdf *PdfPattern )ToPdfObject ()_fg .PdfObject {_cddbe :=_gffdf .getDict ();_cddbe .Set ("\u0054\u0079\u0070\u0065",_fg .MakeName ("\u0050a\u0074\u0074\u0065\u0072\u006e"));_cddbe .Set ("P\u0061\u0074\u0074\u0065\u0072\u006e\u0054\u0079\u0070\u0065",_fg .MakeInteger (_gffdf .PatternType ));
return _gffdf ._gaac ;};
// 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 (_bdabd *PdfReader )Inspect ()(map[string ]int ,error ){return _bdabd ._ccgg .Inspect ()};
// ImageToRGB converts CalRGB colorspace image to RGB and returns the result.
func (_dgdb *PdfColorspaceCalRGB )ImageToRGB (img Image )(Image ,error ){_abdaa :=_ade .NewReader (img .getBase ());_aegb :=_cc .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),3,nil ,nil ,nil );_cfbfc :=_ade .NewWriter (_aegb );
_abafg :=_ef .Pow (2,float64 (img .BitsPerComponent ))-1;_agcbe :=make ([]uint32 ,3);var (_ccfe error ;_fgeff ,_gcfb ,_cbfe ,_aaea ,_aedc ,_aeeg float64 ;);for {_ccfe =_abdaa .ReadSamples (_agcbe );if _ccfe ==_ff .EOF {break ;}else if _ccfe !=nil {return img ,_ccfe ;
};_fgeff =float64 (_agcbe [0])/_abafg ;_gcfb =float64 (_agcbe [1])/_abafg ;_cbfe =float64 (_agcbe [2])/_abafg ;_aaea =_dgdb .Matrix [0]*_ef .Pow (_fgeff ,_dgdb .Gamma [0])+_dgdb .Matrix [3]*_ef .Pow (_gcfb ,_dgdb .Gamma [1])+_dgdb .Matrix [6]*_ef .Pow (_cbfe ,_dgdb .Gamma [2]);
_aedc =_dgdb .Matrix [1]*_ef .Pow (_fgeff ,_dgdb .Gamma [0])+_dgdb .Matrix [4]*_ef .Pow (_gcfb ,_dgdb .Gamma [1])+_dgdb .Matrix [7]*_ef .Pow (_cbfe ,_dgdb .Gamma [2]);_aeeg =_dgdb .Matrix [2]*_ef .Pow (_fgeff ,_dgdb .Gamma [0])+_dgdb .Matrix [5]*_ef .Pow (_gcfb ,_dgdb .Gamma [1])+_dgdb .Matrix [8]*_ef .Pow (_cbfe ,_dgdb .Gamma [2]);
_fgeff =3.240479*_aaea +-1.537150*_aedc +-0.498535*_aeeg ;_gcfb =-0.969256*_aaea +1.875992*_aedc +0.041556*_aeeg ;_cbfe =0.055648*_aaea +-0.204043*_aedc +1.057311*_aeeg ;_fgeff =_ef .Min (_ef .Max (_fgeff ,0),1.0);_gcfb =_ef .Min (_ef .Max (_gcfb ,0),1.0);
_cbfe =_ef .Min (_ef .Max (_cbfe ,0),1.0);_agcbe [0]=uint32 (_fgeff *_abafg );_agcbe [1]=uint32 (_gcfb *_abafg );_agcbe [2]=uint32 (_cbfe *_abafg );if _ccfe =_cfbfc .WriteSamples (_agcbe );_ccfe !=nil {return img ,_ccfe ;};};return _adad (&_aegb ),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"`;};
// NewOutline returns a new outline instance.
func NewOutline ()*Outline {return &Outline {}};
// ToWriter creates a new writer from the current reader, based on the specified options.
// If no options are provided, all reader properties are copied to the writer.
func (_bbgbc *PdfReader )ToWriter (opts *ReaderToWriterOpts )(*PdfWriter ,error ){_gcff :=NewPdfWriter ();if opts ==nil {opts =&ReaderToWriterOpts {};};_gbfgc ,_aggbb :=_bbgbc .GetNumPages ();if _aggbb !=nil {_aa .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_aggbb );
return nil ,_aggbb ;};for _dcbb :=1;_dcbb <=_gbfgc ;_dcbb ++{_abacf ,_agcbcf :=_bbgbc .GetPage (_dcbb );if _agcbcf !=nil {_aa .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_agcbcf );return nil ,_agcbcf ;};if opts .PageProcessCallback !=nil {_agcbcf =opts .PageProcessCallback (_dcbb ,_abacf );
if _agcbcf !=nil {_aa .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_agcbcf );return nil ,_agcbcf ;};}else if opts .PageCallback !=nil {opts .PageCallback (_dcbb ,_abacf );};_agcbcf =_gcff .AddPage (_abacf );if _agcbcf !=nil {_aa .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_agcbcf );
return nil ,_agcbcf ;};};_gcff ._fbbec =_bbgbc .PdfVersion ();if !opts .SkipInfo {_effee ,_facbd :=_bbgbc .GetPdfInfo ();if _facbd !=nil {_aa .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_facbd );}else {_gcff ._deabg .PdfObject =_effee .ToPdfObject ();
};};if !opts .SkipMetadata {if _dfede :=_bbgbc ._cgegd .Get ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");_dfede !=nil {if _accfd :=_gcff .SetCatalogMetadata (_dfede );_accfd !=nil {return nil ,_accfd ;};};};if !opts .SkipAcroForm {_acbgg :=_gcff .SetForms (_bbgbc .AcroForm );
if _acbgg !=nil {_aa .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_acbgg );return nil ,_acbgg ;};};if !opts .SkipOutlines {_gcff .AddOutlineTree (_bbgbc .GetOutlineTree ());};if !opts .SkipOCProperties {_fbffgd ,_gcffa :=_bbgbc .GetOCProperties ();
if _gcffa !=nil {_aa .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_gcffa );}else {_gcffa =_gcff .SetOCProperties (_fbffgd );if _gcffa !=nil {_aa .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_gcffa );};};};if !opts .SkipPageLabels {_bfdec ,_gggg :=_bbgbc .GetPageLabels ();
if _gggg !=nil {_aa .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_gggg );}else {_gggg =_gcff .SetPageLabels (_bfdec );if _gggg !=nil {_aa .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_gggg );};};};if !opts .SkipNamedDests {_decce ,_geaeg :=_bbgbc .GetNamedDestinations ();
if _geaeg !=nil {_aa .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_geaeg );}else {_geaeg =_gcff .SetNamedDestinations (_decce );if _geaeg !=nil {_aa .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_geaeg );};};};if !opts .SkipNameDictionary {_eafdd ,_gfbba :=_bbgbc .GetNameDictionary ();
if _gfbba !=nil {_aa .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_gfbba );}else {_gfbba =_gcff .SetNameDictionary (_eafdd );if _gfbba !=nil {_aa .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_gfbba );};};};if !opts .SkipRotation &&_bbgbc .Rotate !=nil {if _gfcfgb :=_gcff .SetRotation (*_bbgbc .Rotate );
_gfcfgb !=nil {_aa .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_gfcfgb );};};return &_gcff ,nil ;};
// ColorToRGB converts a color in Separation colorspace to RGB colorspace.
func (_fefc *PdfColorspaceSpecialSeparation )ColorToRGB (color PdfColor )(PdfColor ,error ){if _fefc .AlternateSpace ==nil {return nil ,_ce .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 _fefc .AlternateSpace .ColorToRGB (color );};
// ColorFromFloats returns a new PdfColor based on the input slice of color
// components. The slice should contain a single element.
func (_gbgdc *PdfColorspaceSpecialSeparation )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=1{return nil ,_ce .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_gbgdg :=vals [0];_daged :=[]float64 {_gbgdg };
_dbff ,_adfe :=_gbgdc .TintTransform .Evaluate (_daged );if _adfe !=nil {_aa .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",_adfe );
_aa .Log .Trace ("\u0054\u0069\u006e\u0074 t\u0072\u0061\u006e\u0073\u0066\u006f\u0072\u006d\u003a\u0020\u0025\u002b\u0076",_gbgdc .TintTransform );return nil ,_adfe ;};_aa .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",_dbff ,_gbgdc .AlternateSpace );
_dcbaa ,_adfe :=_gbgdc .AlternateSpace .ColorFromFloats (_dbff );if _adfe !=nil {_aa .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",_adfe );
return nil ,_adfe ;};return _dcbaa ,nil ;};
// SetForms sets the Acroform for a PDF file.
func (_gaaga *PdfWriter )SetForms (form *PdfAcroForm )error {_gaaga ._feaea =form ;return nil };func (_ggdad *PdfWriter )setHashIDs (_bddaed _e .Hash )error {_aaefc :=_bddaed .Sum (nil );if _ggdad ._deeab ==""{_ggdad ._deeab =_ed .EncodeToString (_aaefc [:8]);
};_ggdad .setDocumentIDs (_ggdad ._deeab ,_ed .EncodeToString (_aaefc [8:]));return nil ;};
// ApplyStandard is used to apply changes required on the document to match the rules required by the input standard.
// The writer's content would be changed after all the document parts are already established during the Write method.
// A good example of the StandardApplier could be a PDF/A Profile (i.e.: pdfa.Profile1A). In such a case PdfWriter would
// set up all rules required by that Profile.
func (_afadb *PdfWriter )ApplyStandard (optimizer StandardApplier ){_afadb ._effb =optimizer };
// ToPdfObject returns the PDF representation of the shading dictionary.
func (_bbgga *PdfShadingType4 )ToPdfObject ()_fg .PdfObject {_bbgga .PdfShading .ToPdfObject ();_fbce ,_afcgg :=_bbgga .getShadingDict ();if _afcgg !=nil {_aa .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 _bbgga .BitsPerCoordinate !=nil {_fbce .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065",_bbgga .BitsPerCoordinate );};if _bbgga .BitsPerComponent !=nil {_fbce .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_bbgga .BitsPerComponent );
};if _bbgga .BitsPerFlag !=nil {_fbce .Set ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067",_bbgga .BitsPerFlag );};if _bbgga .Decode !=nil {_fbce .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_bbgga .Decode );};if _bbgga .Function !=nil {if len (_bbgga .Function )==1{_fbce .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_bbgga .Function [0].ToPdfObject ());
}else {_adfdf :=_fg .MakeArray ();for _ ,_fafga :=range _bbgga .Function {_adfdf .Append (_fafga .ToPdfObject ());};_fbce .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_adfdf );};};return _bbgga ._cbabf ;};func (_aebd *PdfReader )newPdfActionGotoEFromDict (_eaa *_fg .PdfObjectDictionary )(*PdfActionGoToE ,error ){_cfcd ,_ecb :=_ddd (_eaa .Get ("\u0046"));
if _ecb !=nil {return nil ,_ecb ;};return &PdfActionGoToE {D :_eaa .Get ("\u0044"),NewWindow :_eaa .Get ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw"),T :_eaa .Get ("\u0054"),F :_cfcd },nil ;};
// GetOutlinesFlattened returns a flattened list of tree nodes and titles.
// NOTE: for most use cases, it is recommended to use the high-level GetOutlines
// method instead, which also provides information regarding the destination
// of the outline items.
func (_bbbcc *PdfReader )GetOutlinesFlattened ()([]*PdfOutlineTreeNode ,[]string ,error ){var _gbagb []*PdfOutlineTreeNode ;var _bbeeg []string ;var _gbeea func (*PdfOutlineTreeNode ,*[]*PdfOutlineTreeNode ,*[]string ,int );_gbeea =func (_cdcbg *PdfOutlineTreeNode ,_ebega *[]*PdfOutlineTreeNode ,_gbcg *[]string ,_fgfbb int ){if _cdcbg ==nil {return ;
};if _cdcbg ._gfcge ==nil {_aa .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 ;};_fbab ,_dfdag :=_cdcbg ._gfcge .(*PdfOutlineItem );if _dfdag {*_ebega =append (*_ebega ,&_fbab .PdfOutlineTreeNode );
_abcbdg :=_dc .Repeat ("\u0020",_fgfbb *2)+_fbab .Title .Decoded ();*_gbcg =append (*_gbcg ,_abcbdg );};if _cdcbg .First !=nil {_gcfa :=_dc .Repeat ("\u0020",_fgfbb *2)+"\u002b";*_gbcg =append (*_gbcg ,_gcfa );_gbeea (_cdcbg .First ,_ebega ,_gbcg ,_fgfbb +1);
};if _dfdag &&_fbab .Next !=nil {_gbeea (_fbab .Next ,_ebega ,_gbcg ,_fgfbb );};};_gbeea (_bbbcc ._cfac ,&_gbagb ,&_bbeeg ,0);return _gbagb ,_bbeeg ,nil ;};
// PdfActionGoToR represents a GoToR action.
type PdfActionGoToR struct{*PdfAction ;F *PdfFilespec ;D _fg .PdfObject ;NewWindow _fg .PdfObject ;};
// ColorToRGB converts a CalRGB color to an RGB color.
func (_gdbdb *PdfColorspaceCalRGB )ColorToRGB (color PdfColor )(PdfColor ,error ){_ebbb ,_gffdc :=color .(*PdfColorCalRGB );if !_gffdc {_aa .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 ,_ce .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_bacc :=_ebbb .A ();_degb :=_ebbb .B ();_bdga :=_ebbb .C ();X :=_gdbdb .Matrix [0]*_ef .Pow (_bacc ,_gdbdb .Gamma [0])+_gdbdb .Matrix [3]*_ef .Pow (_degb ,_gdbdb .Gamma [1])+_gdbdb .Matrix [6]*_ef .Pow (_bdga ,_gdbdb .Gamma [2]);
Y :=_gdbdb .Matrix [1]*_ef .Pow (_bacc ,_gdbdb .Gamma [0])+_gdbdb .Matrix [4]*_ef .Pow (_degb ,_gdbdb .Gamma [1])+_gdbdb .Matrix [7]*_ef .Pow (_bdga ,_gdbdb .Gamma [2]);Z :=_gdbdb .Matrix [2]*_ef .Pow (_bacc ,_gdbdb .Gamma [0])+_gdbdb .Matrix [5]*_ef .Pow (_degb ,_gdbdb .Gamma [1])+_gdbdb .Matrix [8]*_ef .Pow (_bdga ,_gdbdb .Gamma [2]);
_eeed :=3.240479*X +-1.537150*Y +-0.498535*Z ;_bgag :=-0.969256*X +1.875992*Y +0.041556*Z ;_ffgeb :=0.055648*X +-0.204043*Y +1.057311*Z ;_eeed =_ef .Min (_ef .Max (_eeed ,0),1.0);_bgag =_ef .Min (_ef .Max (_bgag ,0),1.0);_ffgeb =_ef .Min (_ef .Max (_ffgeb ,0),1.0);
return NewPdfColorDeviceRGB (_eeed ,_bgag ,_ffgeb ),nil ;};
// XObjectImage (Table 89 in 8.9.5.1).
// Implements PdfModel interface.
type XObjectImage struct{
//ColorSpace PdfObject
Width *int64 ;Height *int64 ;ColorSpace PdfColorspace ;BitsPerComponent *int64 ;Filter _fg .StreamEncoder ;Intent _fg .PdfObject ;ImageMask _fg .PdfObject ;Mask _fg .PdfObject ;Matte _fg .PdfObject ;Decode _fg .PdfObject ;Interpolate _fg .PdfObject ;Alternatives _fg .PdfObject ;
SMask _fg .PdfObject ;SMaskInData _fg .PdfObject ;Name _fg .PdfObject ;StructParent _fg .PdfObject ;ID _fg .PdfObject ;OPI _fg .PdfObject ;Metadata _fg .PdfObject ;OC _fg .PdfObject ;Stream []byte ;_eafbc *_fg .PdfObjectStream ;};func (_ceffe *PdfFunctionType0 )processSamples ()error {_fdgge :=_ade .ResampleBytes (_ceffe ._cfed ,_ceffe .BitsPerSample );
_ceffe ._fccae =_fdgge ;return nil ;};
// 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 (_afbb *PdfColorspaceSpecialPattern )ColorFromPdfObjects (objects []_fg .PdfObject )(PdfColor ,error ){if len (objects )< 1{return nil ,_ce .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");
};_gdeag :=&PdfColorPattern {};_babab ,_dcegf :=objects [len (objects )-1].(*_fg .PdfObjectName );if !_dcegf {_aa .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 ;};_gdeag .PatternName =*_babab ;if len (objects )> 1{_gebc :=objects [0:len (objects )-1];if _afbb .UnderlyingCS ==nil {_aa .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 ,_ce .New ("\u0075n\u0064\u0065\u0072\u006cy\u0069\u006e\u0067\u0020\u0043S\u0020n\u006ft\u0020\u0064\u0065\u0066\u0069\u006e\u0065d");};_cde ,_cafgc :=_afbb .UnderlyingCS .ColorFromPdfObjects (_gebc );if _cafgc !=nil {_aa .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",_cafgc );
return nil ,_cafgc ;};_gdeag .Color =_cde ;};return _gdeag ,nil ;};func (_ecgc *PdfWriter )writeTrailer (_cdba int ){_ecgc .writeString ("\u0078\u0072\u0065\u0066\u000d\u000a");for _dgdeb :=0;_dgdeb <=_cdba ;{for ;_dgdeb <=_cdba ;_dgdeb ++{_bddaec ,_gaaad :=_ecgc ._aafgd [_dgdeb ];
if _gaaad &&(!_ecgc ._cdafg ||_ecgc ._cdafg &&(_bddaec .Type ==1&&_bddaec .Offset >=_ecgc ._cecef ||_bddaec .Type ==0)){break ;};};var _aaec int ;for _aaec =_dgdeb +1;_aaec <=_cdba ;_aaec ++{_bbagg ,_bfbgc :=_ecgc ._aafgd [_aaec ];if _bfbgc &&(!_ecgc ._cdafg ||_ecgc ._cdafg &&(_bbagg .Type ==1&&_bbagg .Offset > _ecgc ._cecef )){continue ;
};break ;};_gcga :=_d .Sprintf ("\u0025d\u0020\u0025\u0064\u000d\u000a",_dgdeb ,_aaec -_dgdeb );_ecgc .writeString (_gcga );for _aggfd :=_dgdeb ;_aggfd < _aaec ;_aggfd ++{_gbfd :=_ecgc ._aafgd [_aggfd ];switch _gbfd .Type {case 0:_gcga =_d .Sprintf ("\u0025\u002e\u0031\u0030\u0064\u0020\u0025\u002e\u0035d\u0020\u0066\u000d\u000a",0,65535);
_ecgc .writeString (_gcga );case 1:_gcga =_d .Sprintf ("\u0025\u002e\u0031\u0030\u0064\u0020\u0025\u002e\u0035d\u0020\u006e\u000d\u000a",_gbfd .Offset ,0);_ecgc .writeString (_gcga );};};_dgdeb =_aaec +1;};_bcgdgb :=_fg .MakeDict ();_bcgdgb .Set ("\u0049\u006e\u0066\u006f",_ecgc ._deabg );
_bcgdgb .Set ("\u0052\u006f\u006f\u0074",_ecgc ._cegde );_bcgdgb .Set ("\u0053\u0069\u007a\u0065",_fg .MakeInteger (int64 (_cdba +1)));if _ecgc ._cdafg &&_ecgc ._cgdbf > 0{_bcgdgb .Set ("\u0050\u0072\u0065\u0076",_fg .MakeInteger (_ecgc ._cgdbf ));};if _ecgc ._bbdbd !=nil {_bcgdgb .Set ("\u0045n\u0063\u0072\u0079\u0070\u0074",_ecgc ._abgdg );
};if _ecgc ._dadgc ==nil &&_ecgc ._deeab !=""&&_ecgc ._ccccb !=""{_ecgc ._dadgc =_fg .MakeArray (_fg .MakeHexString (_ecgc ._deeab ),_fg .MakeHexString (_ecgc ._ccccb ));};if _ecgc ._dadgc !=nil {_bcgdgb .Set ("\u0049\u0044",_ecgc ._dadgc );_aa .Log .Trace ("\u0049d\u0073\u003a\u0020\u0025\u0073",_ecgc ._dadgc );
};_ecgc .writeString ("\u0074\u0072\u0061\u0069\u006c\u0065\u0072\u000a");_ecgc .writeString (_bcgdgb .WriteString ());_ecgc .writeString ("\u000a");};
// AddImageResource adds an image to the XObject resources.
func (_ggede *PdfPage )AddImageResource (name _fg .PdfObjectName ,ximg *XObjectImage )error {var _acedg *_fg .PdfObjectDictionary ;if _ggede .Resources .XObject ==nil {_acedg =_fg .MakeDict ();_ggede .Resources .XObject =_acedg ;}else {var _egbd bool ;
_acedg ,_egbd =(_ggede .Resources .XObject ).(*_fg .PdfObjectDictionary );if !_egbd {return _ce .New ("\u0069\u006e\u0076\u0061li\u0064\u0020\u0078\u0072\u0065\u0073\u0020\u0064\u0069\u0063\u0074\u0020\u0074\u0079p\u0065");};};_acedg .Set (name ,ximg .ToPdfObject ());
return nil ;};
// FlattenFieldsWithOpts flattens the AcroForm fields of the reader using the
// provided field appearance generator and the specified options. If no options
// are specified, all form fields are flattened.
// If a filter function is provided using the opts parameter, only the filtered
// fields are flattened. Otherwise, all form fields are flattened.
// At the end of the process, the AcroForm contains all the fields which were
// not flattened. If all fields are flattened, the reader's AcroForm field
// is set to nil.
func (_gedg *PdfReader )FlattenFieldsWithOpts (appgen FieldAppearanceGenerator ,opts *FieldFlattenOpts )error {return _gedg .flattenFieldsWithOpts (false ,appgen ,opts );};
// NewPdfActionNamed returns a new "named" action.
func NewPdfActionNamed ()*PdfActionNamed {_efg :=NewPdfAction ();_efgb :=&PdfActionNamed {};_efgb .PdfAction =_efg ;_efg .SetContext (_efgb );return _efgb ;};
// ToJBIG2Image converts current image to the core.JBIG2Image.
func (_abbaf *Image )ToJBIG2Image ()(*_fg .JBIG2Image ,error ){_cgcbb ,_ebee :=_abbaf .ToGoImage ();if _ebee !=nil {return nil ,_ebee ;};return _fg .GoImageToJBIG2 (_cgcbb ,_fg .JB2ImageAutoThreshold );};func (_eced *PdfColorspaceSpecialIndexed )String ()string {return "\u0049n\u0064\u0065\u0078\u0065\u0064";
};
// IsPush returns true if the button field represents a push button, false otherwise.
func (_decb *PdfFieldButton )IsPush ()bool {return _decb .GetType ()==ButtonTypePush };func (_fced *PdfReader )newPdfActionNamedFromDict (_edfg *_fg .PdfObjectDictionary )(*PdfActionNamed ,error ){return &PdfActionNamed {N :_edfg .Get ("\u004e")},nil ;
};
// 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 (_ggaa *LTV )EnableAll (extraCerts []*_ge .Certificate )error {_fadaa :=_ggaa ._edgba ._cbb .AcroForm ;for _ ,_eccbc :=range _fadaa .AllFields (){_acbbg ,_ :=_eccbc .GetContext ().(*PdfFieldSignature );if _acbbg ==nil {continue ;};_aabaa :=_acbbg .V ;
if _cegda :=_ggaa .validateSig (_aabaa );_cegda !=nil {_aa .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",_cegda );
};if _ccfg :=_ggaa .Enable (_aabaa ,extraCerts );_ccfg !=nil {return _ccfg ;};};return nil ;};
// GetStandardApplier gets currently used StandardApplier..
func (_geefa *PdfWriter )GetStandardApplier ()StandardApplier {return _geefa ._effb };
// ToPdfObject returns the PDF representation of the shading dictionary.
func (_dfbfg *PdfShadingType2 )ToPdfObject ()_fg .PdfObject {_dfbfg .PdfShading .ToPdfObject ();_dgbba ,_ddcfdc :=_dfbfg .getShadingDict ();if _ddcfdc !=nil {_aa .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 _dgbba ==nil {_aa .Log .Error ("\u0053\u0068\u0061\u0064in\u0067\u0020\u0064\u0069\u0063\u0074\u0020\u0069\u0073\u0020\u006e\u0069\u006c");return nil ;};if _dfbfg .Coords !=nil {_dgbba .Set ("\u0043\u006f\u006f\u0072\u0064\u0073",_dfbfg .Coords );
};if _dfbfg .Domain !=nil {_dgbba .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_dfbfg .Domain );};if _dfbfg .Function !=nil {if len (_dfbfg .Function )==1{_dgbba .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_dfbfg .Function [0].ToPdfObject ());
}else {_gabbf :=_fg .MakeArray ();for _ ,_babcg :=range _dfbfg .Function {_gabbf .Append (_babcg .ToPdfObject ());};_dgbba .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_gabbf );};};if _dfbfg .Extend !=nil {_dgbba .Set ("\u0045\u0078\u0074\u0065\u006e\u0064",_dfbfg .Extend );
};return _dfbfg ._cbabf ;};
// ToPdfObject implements interface PdfModel.
func (_gfe *PdfActionImportData )ToPdfObject ()_fg .PdfObject {_gfe .PdfAction .ToPdfObject ();_gff :=_gfe ._bda ;_eead :=_gff .PdfObject .(*_fg .PdfObjectDictionary );_eead .SetIfNotNil ("\u0053",_fg .MakeName (string (ActionTypeImportData )));if _gfe .F !=nil {_eead .Set ("\u0046",_gfe .F .ToPdfObject ());
};return _gff ;};
// ColorFromPdfObjects returns a new PdfColor based on the input slice of color
// components. The slice should contain a single PdfObjectFloat element.
func (_cdbc *PdfColorspaceSpecialSeparation )ColorFromPdfObjects (objects []_fg .PdfObject )(PdfColor ,error ){if len (objects )!=1{return nil ,_ce .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_bddag ,_dada :=_fg .GetNumbersAsFloat (objects );
if _dada !=nil {return nil ,_dada ;};return _cdbc .ColorFromFloats (_bddag );};
// Y returns the value of the yellow component of the color.
func (_abba *PdfColorDeviceCMYK )Y ()float64 {return _abba [2]};
// GetNumComponents returns the number of color components of the colorspace device.
// Returns 3 for a CalRGB device.
func (_cdbf *PdfColorspaceCalRGB )GetNumComponents ()int {return 3};
// GetContainingPdfObject implements interface PdfModel.
func (_debbe *PdfSignatureReference )GetContainingPdfObject ()_fg .PdfObject {return _debbe ._gafdc };
// GetPrimitiveFromModel returns the primitive object corresponding to the input `model`.
func (_dfcccg *modelManager )GetPrimitiveFromModel (model PdfModel )_fg .PdfObject {_dadfg ,_fbde :=_dfcccg ._abga [model ];if !_fbde {return nil ;};return _dadfg ;};func _cfedc (_dgbcg *_fg .PdfObjectDictionary )(*PdfShadingType6 ,error ){_bgfacc :=PdfShadingType6 {};
_cgaee :=_dgbcg .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065");if _cgaee ==nil {_aa .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 ;};_fddcd ,_adfdc :=_cgaee .(*_fg .PdfObjectInteger );if !_adfdc {_aa .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",_cgaee );
return nil ,_fg .ErrTypeError ;};_bgfacc .BitsPerCoordinate =_fddcd ;_cgaee =_dgbcg .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074");if _cgaee ==nil {_aa .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 ;};_fddcd ,_adfdc =_cgaee .(*_fg .PdfObjectInteger );if !_adfdc {_aa .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",_cgaee );
return nil ,_fg .ErrTypeError ;};_bgfacc .BitsPerComponent =_fddcd ;_cgaee =_dgbcg .Get ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067");if _cgaee ==nil {_aa .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 ;};_fddcd ,_adfdc =_cgaee .(*_fg .PdfObjectInteger );if !_adfdc {_aa .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",_cgaee );
return nil ,_fg .ErrTypeError ;};_bgfacc .BitsPerComponent =_fddcd ;_cgaee =_dgbcg .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");if _cgaee ==nil {_aa .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 ;};_febfb ,_adfdc :=_cgaee .(*_fg .PdfObjectArray );if !_adfdc {_aa .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",_cgaee );
return nil ,_fg .ErrTypeError ;};_bgfacc .Decode =_febfb ;if _ggff :=_dgbcg .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");_ggff !=nil {_bgfacc .Function =[]PdfFunction {};if _cffeg ,_dagcg :=_ggff .(*_fg .PdfObjectArray );_dagcg {for _ ,_cgfca :=range _cffeg .Elements (){_dbbfe ,_gbcga :=_defgb (_cgfca );
if _gbcga !=nil {_aa .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",_gbcga );return nil ,_gbcga ;};_bgfacc .Function =append (_bgfacc .Function ,_dbbfe );
};}else {_afcf ,_fdbee :=_defgb (_ggff );if _fdbee !=nil {_aa .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",_fdbee );return nil ,_fdbee ;
};_bgfacc .Function =append (_bgfacc .Function ,_afcf );};};return &_bgfacc ,nil ;};
// NewPdfColorDeviceGray returns a new grayscale color based on an input grayscale float value in range [0-1].
func NewPdfColorDeviceGray (grayVal float64 )*PdfColorDeviceGray {_abcbd :=PdfColorDeviceGray (grayVal );return &_abcbd ;};func _daeb (_eeffc *_fg .PdfObjectDictionary )(*PdfFieldChoice ,error ){_ecgg :=&PdfFieldChoice {};_ecgg .Opt ,_ =_fg .GetArray (_eeffc .Get ("\u004f\u0070\u0074"));
_ecgg .TI ,_ =_fg .GetInt (_eeffc .Get ("\u0054\u0049"));_ecgg .I ,_ =_fg .GetArray (_eeffc .Get ("\u0049"));return _ecgg ,nil ;};
// NewPdfColorCalRGB returns a new CalRBG color.
func NewPdfColorCalRGB (a ,b ,c float64 )*PdfColorCalRGB {_cbcd :=PdfColorCalRGB {a ,b ,c };return &_cbcd ;};
// ToPdfObject implements interface PdfModel.
func (_geed *PdfActionSetOCGState )ToPdfObject ()_fg .PdfObject {_geed .PdfAction .ToPdfObject ();_gca :=_geed ._bda ;_agg :=_gca .PdfObject .(*_fg .PdfObjectDictionary );_agg .SetIfNotNil ("\u0053",_fg .MakeName (string (ActionTypeSetOCGState )));_agg .SetIfNotNil ("\u0053\u0074\u0061t\u0065",_geed .State );
_agg .SetIfNotNil ("\u0050\u0072\u0065\u0073\u0065\u0072\u0076\u0065\u0052\u0042",_geed .PreserveRB );return _gca ;};
// K returns the value of the key component of the color.
func (_ebfg *PdfColorDeviceCMYK )K ()float64 {return _ebfg [3]};
// 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 (_eecf *PdfColorspaceCalGray )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=1{return nil ,_ce .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_gecc :=vals [0];if _gecc < 0.0||_gecc > 1.0{_aa .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_gecc );
return nil ,ErrColorOutOfRange ;};_cbfa :=NewPdfColorCalGray (_gecc );return _cbfa ,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 (_eeag pdfFontType0 )GetRuneMetrics (r rune )(_eed .CharMetrics ,bool ){if _eeag .DescendantFont ==nil {_aa .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",_eeag );
return _eed .CharMetrics {},false ;};return _eeag .DescendantFont .GetRuneMetrics (r );};func _cgga (_fcggg *_fg .PdfObjectDictionary )(*PdfShadingType5 ,error ){_fdeec :=PdfShadingType5 {};_degaa :=_fcggg .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065");
if _degaa ==nil {_aa .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 ;};_dfcdf ,_adca :=_degaa .(*_fg .PdfObjectInteger );if !_adca {_aa .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",_degaa );
return nil ,_fg .ErrTypeError ;};_fdeec .BitsPerCoordinate =_dfcdf ;_degaa =_fcggg .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074");if _degaa ==nil {_aa .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 ;};_dfcdf ,_adca =_degaa .(*_fg .PdfObjectInteger );if !_adca {_aa .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",_degaa );
return nil ,_fg .ErrTypeError ;};_fdeec .BitsPerComponent =_dfcdf ;_degaa =_fcggg .Get ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073\u0050e\u0072\u0052\u006f\u0077");if _degaa ==nil {_aa .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 ;};_dfcdf ,_adca =_degaa .(*_fg .PdfObjectInteger );if !_adca {_aa .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",_degaa );
return nil ,_fg .ErrTypeError ;};_fdeec .VerticesPerRow =_dfcdf ;_degaa =_fcggg .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");if _degaa ==nil {_aa .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 ;};_geefb ,_adca :=_degaa .(*_fg .PdfObjectArray );if !_adca {_aa .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",_degaa );
return nil ,_fg .ErrTypeError ;};_fdeec .Decode =_geefb ;if _baeb :=_fcggg .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");_baeb !=nil {_fdeec .Function =[]PdfFunction {};if _cfbad ,_fgefcf :=_baeb .(*_fg .PdfObjectArray );_fgefcf {for _ ,_afead :=range _cfbad .Elements (){_ffeba ,_baddd :=_defgb (_afead );
if _baddd !=nil {_aa .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",_baddd );return nil ,_baddd ;};_fdeec .Function =append (_fdeec .Function ,_ffeba );
};}else {_cfegc ,_abgcg :=_defgb (_baeb );if _abgcg !=nil {_aa .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",_abgcg );return nil ,_abgcg ;
};_fdeec .Function =append (_fdeec .Function ,_cfegc );};};return &_fdeec ,nil ;};
// NewReaderOpts generates a default `ReaderOpts` instance.
func NewReaderOpts ()*ReaderOpts {return &ReaderOpts {Password :"",LazyLoad :true }};
// ToPdfObject implements interface PdfModel.
func (_ffcbb *PdfTransformParamsDocMDP )ToPdfObject ()_fg .PdfObject {_geaeb :=_fg .MakeDict ();_geaeb .SetIfNotNil ("\u0054\u0079\u0070\u0065",_ffcbb .Type );_geaeb .SetIfNotNil ("\u0056",_ffcbb .V );_geaeb .SetIfNotNil ("\u0050",_ffcbb .P );return _geaeb ;
};func _gfacd (_ffbef string )(string ,error ){var _bagda _cb .Buffer ;_bagda .WriteString (_ffbef );_dcfecf :=make ([]byte ,8+16);_bfbgd :=_g .Now ().UTC ().UnixNano ();_df .BigEndian .PutUint64 (_dcfecf ,uint64 (_bfbgd ));_ ,_ffgfc :=_eg .Read (_dcfecf [8:]);
if _ffgfc !=nil {return "",_ffgfc ;};_bagda .WriteString (_ed .EncodeToString (_dcfecf ));return _bagda .String (),nil ;};
// GetNumComponents returns the number of color components of the colorspace device.
// Returns 1 for a CalGray device.
func (_ccag *PdfColorspaceCalGray )GetNumComponents ()int {return 1};
// NewPdfActionGoTo3DView returns a new "goTo3DView" action.
func NewPdfActionGoTo3DView ()*PdfActionGoTo3DView {_fae :=NewPdfAction ();_cgd :=&PdfActionGoTo3DView {};_cgd .PdfAction =_fae ;_fae .SetContext (_cgd );return _cgd ;};func (_geeb *PdfReader )newPdfActionFromIndirectObject (_gab *_fg .PdfIndirectObject )(*PdfAction ,error ){_gd ,_fbb :=_gab .PdfObject .(*_fg .PdfObjectDictionary );
if !_fbb {return nil ,_d .Errorf ("\u0061\u0063\u0074\u0069\u006f\u006e\u0020\u0069\u006e\u0064\u0069\u0072\u0065\u0063\u0074\u0020\u006f\u0062j\u0065\u0063\u0074\u0020\u006e\u006f\u0074 \u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0069\u006e\u0067\u0020a\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079");
};if model :=_geeb ._edebb .GetModelFromPrimitive (_gd );model !=nil {_gaa ,_gbc :=model .(*PdfAction );if !_gbc {return nil ,_d .Errorf ("\u0063\u0061c\u0068\u0065\u0064\u0020\u006d\u006f\u0064\u0065\u006c\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0050\u0044\u0046\u0020\u0061\u0063ti\u006f\u006e");
};return _gaa ,nil ;};_fdf :=&PdfAction {};_fdf ._bda =_gab ;_geeb ._edebb .Register (_gd ,_fdf );if _gcc :=_gd .Get ("\u0054\u0079\u0070\u0065");_gcc !=nil {_cfag ,_fdfg :=_gcc .(*_fg .PdfObjectName );if !_fdfg {_aa .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",_gcc );
}else {if *_cfag !="\u0041\u0063\u0074\u0069\u006f\u006e"{_aa .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",*_cfag );
};_fdf .Type =_cfag ;};};if _ceab :=_gd .Get ("\u004e\u0065\u0078\u0074");_ceab !=nil {_fdf .Next =_ceab ;};if _fea :=_gd .Get ("\u0053");_fea !=nil {_fdf .S =_fea ;};_bfgd ,_ffg :=_fdf .S .(*_fg .PdfObjectName );if !_ffg {_aa .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",_fdf .S );
return nil ,_d .Errorf ("\u0069\u006e\u0076al\u0069\u0064\u0020\u0053\u0020\u006f\u0062\u006a\u0065c\u0074 \u0074y\u0070e\u0020\u0021\u003d\u0020\u006e\u0061\u006d\u0065\u0020\u0028\u0025\u0054\u0029",_fdf .S );};_bbd :=PdfActionType (_bfgd .String ());
switch _bbd {case ActionTypeGoTo :_fdb ,_fbbd :=_geeb .newPdfActionGotoFromDict (_gd );if _fbbd !=nil {return nil ,_fbbd ;};_fdb .PdfAction =_fdf ;_fdf ._bd =_fdb ;return _fdf ,nil ;case ActionTypeGoToR :_bdf ,_dag :=_geeb .newPdfActionGotoRFromDict (_gd );
if _dag !=nil {return nil ,_dag ;};_bdf .PdfAction =_fdf ;_fdf ._bd =_bdf ;return _fdf ,nil ;case ActionTypeGoToE :_eef ,_beb :=_geeb .newPdfActionGotoEFromDict (_gd );if _beb !=nil {return nil ,_beb ;};_eef .PdfAction =_fdf ;_fdf ._bd =_eef ;return _fdf ,nil ;
case ActionTypeLaunch :_bgfa ,_ddaa :=_geeb .newPdfActionLaunchFromDict (_gd );if _ddaa !=nil {return nil ,_ddaa ;};_bgfa .PdfAction =_fdf ;_fdf ._bd =_bgfa ;return _fdf ,nil ;case ActionTypeThread :_gdb ,_eff :=_geeb .newPdfActionThreadFromDict (_gd );
if _eff !=nil {return nil ,_eff ;};_gdb .PdfAction =_fdf ;_fdf ._bd =_gdb ;return _fdf ,nil ;case ActionTypeURI :_aae ,_egd :=_geeb .newPdfActionURIFromDict (_gd );if _egd !=nil {return nil ,_egd ;};_aae .PdfAction =_fdf ;_fdf ._bd =_aae ;return _fdf ,nil ;
case ActionTypeSound :_bde ,_dcf :=_geeb .newPdfActionSoundFromDict (_gd );if _dcf !=nil {return nil ,_dcf ;};_bde .PdfAction =_fdf ;_fdf ._bd =_bde ;return _fdf ,nil ;case ActionTypeMovie :_gfa ,_aaf :=_geeb .newPdfActionMovieFromDict (_gd );if _aaf !=nil {return nil ,_aaf ;
};_gfa .PdfAction =_fdf ;_fdf ._bd =_gfa ;return _fdf ,nil ;case ActionTypeHide :_cgb ,_gbd :=_geeb .newPdfActionHideFromDict (_gd );if _gbd !=nil {return nil ,_gbd ;};_cgb .PdfAction =_fdf ;_fdf ._bd =_cgb ;return _fdf ,nil ;case ActionTypeNamed :_fag ,_gabg :=_geeb .newPdfActionNamedFromDict (_gd );
if _gabg !=nil {return nil ,_gabg ;};_fag .PdfAction =_fdf ;_fdf ._bd =_fag ;return _fdf ,nil ;case ActionTypeSubmitForm :_cfb ,_bdg :=_geeb .newPdfActionSubmitFormFromDict (_gd );if _bdg !=nil {return nil ,_bdg ;};_cfb .PdfAction =_fdf ;_fdf ._bd =_cfb ;
return _fdf ,nil ;case ActionTypeResetForm :_aee ,_dcd :=_geeb .newPdfActionResetFormFromDict (_gd );if _dcd !=nil {return nil ,_dcd ;};_aee .PdfAction =_fdf ;_fdf ._bd =_aee ;return _fdf ,nil ;case ActionTypeImportData :_fegb ,_fce :=_geeb .newPdfActionImportDataFromDict (_gd );
if _fce !=nil {return nil ,_fce ;};_fegb .PdfAction =_fdf ;_fdf ._bd =_fegb ;return _fdf ,nil ;case ActionTypeSetOCGState :_ffc ,_bea :=_geeb .newPdfActionSetOCGStateFromDict (_gd );if _bea !=nil {return nil ,_bea ;};_ffc .PdfAction =_fdf ;_fdf ._bd =_ffc ;
return _fdf ,nil ;case ActionTypeRendition :_bcf ,_acf :=_geeb .newPdfActionRenditionFromDict (_gd );if _acf !=nil {return nil ,_acf ;};_bcf .PdfAction =_fdf ;_fdf ._bd =_bcf ;return _fdf ,nil ;case ActionTypeTrans :_gba ,_bacb :=_geeb .newPdfActionTransFromDict (_gd );
if _bacb !=nil {return nil ,_bacb ;};_gba .PdfAction =_fdf ;_fdf ._bd =_gba ;return _fdf ,nil ;case ActionTypeGoTo3DView :_ecc ,_aga :=_geeb .newPdfActionGoTo3DViewFromDict (_gd );if _aga !=nil {return nil ,_aga ;};_ecc .PdfAction =_fdf ;_fdf ._bd =_ecc ;
return _fdf ,nil ;case ActionTypeJavaScript :_bbg ,_edf :=_geeb .newPdfActionJavaScriptFromDict (_gd );if _edf !=nil {return nil ,_edf ;};_bbg .PdfAction =_fdf ;_fdf ._bd =_bbg ;return _fdf ,nil ;};_aa .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",_bbd );
return nil ,nil ;};
// GetTrailer returns the PDF's trailer dictionary.
func (_aaeacc *PdfReader )GetTrailer ()(*_fg .PdfObjectDictionary ,error ){_badde :=_aaeacc ._ccgg .GetTrailer ();if _badde ==nil {return nil ,_ce .New ("\u0074r\u0061i\u006c\u0065\u0072\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};return _badde ,nil ;
};
// ToPdfObject implements interface PdfModel.
func (_ddbc *PdfAnnotationUnderline )ToPdfObject ()_fg .PdfObject {_ddbc .PdfAnnotation .ToPdfObject ();_cafg :=_ddbc ._agb ;_bee :=_cafg .PdfObject .(*_fg .PdfObjectDictionary );_ddbc .PdfAnnotationMarkup .appendToPdfDictionary (_bee );_bee .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fg .MakeName ("\u0055n\u0064\u0065\u0072\u006c\u0069\u006ee"));
_bee .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_ddbc .QuadPoints );return _cafg ;};
// SetPdfSubject sets the Subject attribute of the output PDF.
func SetPdfSubject (subject string ){_baacg .Lock ();defer _baacg .Unlock ();_ggbag =subject };var _ pdfFont =(*pdfCIDFontType2 )(nil );func (_dgceb *PdfWriter )updateObjectNumbers (){_dabgc :=_dgceb .ObjNumOffset ;_aabfb :=0;for _ ,_acbgb :=range _dgceb ._bbfd {_dcfgf :=int64 (_aabfb +1+_dabgc );
_dcdf :=true ;if _dgceb ._cdafg {if _faaab ,_bagg :=_dgceb ._cbeab [_acbgb ];_bagg {_dcfgf =_faaab ;_dcdf =false ;};};switch _abed :=_acbgb .(type ){case *_fg .PdfIndirectObject :_abed .ObjectNumber =_dcfgf ;_abed .GenerationNumber =0;case *_fg .PdfObjectStream :_abed .ObjectNumber =_dcfgf ;
_abed .GenerationNumber =0;case *_fg .PdfObjectStreams :_abed .ObjectNumber =_dcfgf ;_abed .GenerationNumber =0;default:_aa .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",_abed );
continue ;};if _dcdf {_aabfb ++;};};_gdadg :=func (_ggafc _fg .PdfObject )int64 {switch _gdaac :=_ggafc .(type ){case *_fg .PdfIndirectObject :return _gdaac .ObjectNumber ;case *_fg .PdfObjectStream :return _gdaac .ObjectNumber ;case *_fg .PdfObjectStreams :return _gdaac .ObjectNumber ;
};return 0;};_ad .SliceStable (_dgceb ._bbfd ,func (_bgab ,_bfaae int )bool {return _gdadg (_dgceb ._bbfd [_bgab ])< _gdadg (_dgceb ._bbfd [_bfaae ])});};
// IsCheckbox returns true if the button field represents a checkbox, false otherwise.
func (_cbedc *PdfFieldButton )IsCheckbox ()bool {return _cbedc .GetType ()==ButtonTypeCheckbox };
// PdfColorDeviceCMYK is a CMYK32 color, where each component is defined in the range 0.0 - 1.0 where 1.0 is the primary intensity.
type PdfColorDeviceCMYK [4]float64 ;func (_afddc *PdfReader )buildPageList (_cdecc *_fg .PdfIndirectObject ,_gcbe *_fg .PdfIndirectObject ,_aaagb map[_fg .PdfObject ]struct{})error {if _cdecc ==nil {return nil ;};if _ ,_gcfff :=_aaagb [_cdecc ];_gcfff {_aa .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",_cdecc .ObjectNumber );
return nil ;};_aaagb [_cdecc ]=struct{}{};_ebecb ,_ecgea :=_cdecc .PdfObject .(*_fg .PdfObjectDictionary );if !_ecgea {return _ce .New ("n\u006f\u0064\u0065\u0020no\u0074 \u0061\u0020\u0064\u0069\u0063t\u0069\u006f\u006e\u0061\u0072\u0079");};_dcdag ,_ecgea :=(*_ebecb ).Get ("\u0054\u0079\u0070\u0065").(*_fg .PdfObjectName );
if !_ecgea {if _ebecb .Get ("\u004b\u0069\u0064\u0073")==nil {return _ce .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");};_aa .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.");
_dcdag =_fg .MakeName ("\u0050\u0061\u0067e\u0073");_ebecb .Set ("\u0054\u0079\u0070\u0065",_dcdag );};_aa .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",*_dcdag ,_cdecc );
if *_dcdag =="\u0050\u0061\u0067\u0065"{_dagef ,_cgdd :=_afddc .newPdfPageFromDict (_ebecb );if _cgdd !=nil {return _cgdd ;};_dagef .setContainer (_cdecc );if _gcbe !=nil {_ebecb .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_gcbe );};_afddc ._bgce =append (_afddc ._bgce ,_cdecc );
_afddc .PageList =append (_afddc .PageList ,_dagef );return nil ;};if *_dcdag !="\u0050\u0061\u0067e\u0073"{_aa .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",_dcdag );
return _ce .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 _gcbe !=nil {_ebecb .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_gcbe );};if !_afddc ._beegg {_egdee :=_afddc .traverseObjectData (_cdecc );if _egdee !=nil {return _egdee ;};};_dacfb ,_cgcg :=_afddc ._ccgg .Resolve (_ebecb .Get ("\u004b\u0069\u0064\u0073"));
if _cgcg !=nil {_aa .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 _cgcg ;};var _acdea *_fg .PdfObjectArray ;
_acdea ,_ecgea =_dacfb .(*_fg .PdfObjectArray );if !_ecgea {_gbeaf ,_fggdf :=_dacfb .(*_fg .PdfIndirectObject );if !_fggdf {return _ce .New ("\u0069\u006e\u0076\u0061li\u0064\u0020\u004b\u0069\u0064\u0073\u0020\u006f\u0062\u006a\u0065\u0063\u0074");};_acdea ,_ecgea =_gbeaf .PdfObject .(*_fg .PdfObjectArray );
if !_ecgea {return _ce .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");};};_aa .Log .Trace ("\u004b\u0069\u0064\u0073\u003a\u0020\u0025\u0073",_acdea );
for _fbfdc ,_ffdfbd :=range _acdea .Elements (){_bgafg ,_cdgbf :=_fg .GetIndirect (_ffdfbd );if !_cdgbf {_aa .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",_bgafg );
return _ce .New ("\u0070a\u0067\u0065\u0020\u006e\u006f\u0074\u0020\u0069\u006e\u0064\u0069r\u0065\u0063\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074");};_acdea .Set (_fbfdc ,_bgafg );_cgcg =_afddc .buildPageList (_bgafg ,_cdecc ,_aaagb );if _cgcg !=nil {return _cgcg ;
};};return nil ;};
// GetDSS gets the DSS dictionary (ETSI TS 102 778-4 V1.1.1) of the current
// document revision.
func (_fadac *PdfAppender )GetDSS ()(_ggbf *DSS ){return _fadac ._dgbf };func _cbee (_deffa []byte )(_ddeb ,_cadb string ,_gdbdd error ){_aa .Log .Trace ("g\u0065\u0074\u0041\u0053CI\u0049S\u0065\u0063\u0074\u0069\u006fn\u0073\u003a\u0020\u0025\u0064\u0020",len (_deffa ));
_cfbcf :=_edegd .FindIndex (_deffa );if _cfbcf ==nil {_aa .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 "","",_fg .ErrTypeError ;};_bbbab :=_cfbcf [1];_caedb :=_dc .Index (string (_deffa [_bbbab :]),_ccce );if _caedb < 0{_ddeb =string (_deffa [_bbbab :]);return _ddeb ,"",nil ;};_ddgec :=_bbbab +_caedb ;_ddeb =string (_deffa [_bbbab :_ddgec ]);_gecfe :=_ddgec ;
_caedb =_dc .Index (string (_deffa [_gecfe :]),_gfbc );if _caedb < 0{_aa .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",_gdbdd );
return "","",_fg .ErrTypeError ;};_fbcd :=_gecfe +_caedb ;_cadb =string (_deffa [_gecfe :_fbcd ]);return _ddeb ,_cadb ,nil ;};
// Sign signs a specific page with a digital signature.
// The signature field parameter must have a valid signature dictionary
// specified by its V field.
func (_gag *PdfAppender )Sign (pageNum int ,field *PdfFieldSignature )error {if field ==nil {return _ce .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");
};_gfdg :=field .V ;if _gfdg ==nil {return _ce .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");};_badeg :=pageNum -1;
if _badeg < 0||_badeg > len (_gag ._agbg )-1{return _d .Errorf ("\u0070\u0061\u0067\u0065\u0020\u0025\u0064\u0020\u006e\u006f\u0074\u0020f\u006f\u0075\u006e\u0064",pageNum );};_bcee :=_gag .Reader .PageList [_badeg ];field .P =_bcee .ToPdfObject ();if field .T ==nil ||field .T .String ()==""{field .T =_fg .MakeString (_d .Sprintf ("\u0053\u0069\u0067n\u0061\u0074\u0075\u0072\u0065\u0020\u0025\u0064",pageNum ));
};_bcee .AddAnnotation (field .PdfAnnotationWidget .PdfAnnotation );if _gag ._cacc ==_gag ._cbb .AcroForm {_gag ._cacc =_gag .Reader .AcroForm ;};_aegg :=_gag ._cacc ;if _aegg ==nil {_aegg =NewPdfAcroForm ();};_aegg .SigFlags =_fg .MakeInteger (3);if _aegg .NeedAppearances !=nil {_aegg .NeedAppearances =nil ;
};_ggdc :=append (_aegg .AllFields (),field .PdfField );_aegg .Fields =&_ggdc ;_gag .ReplaceAcroForm (_aegg );_gag .UpdatePage (_bcee );_gag ._agbg [_badeg ]=_bcee ;if _ ,_aebdg :=field .V .GetDocMDPPermission ();_aebdg {_gag ._fege =NewPermissions (field .V );
};return nil ;};
// 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 (_cagb *PdfColorspaceLab )ColorFromPdfObjects (objects []_fg .PdfObject )(PdfColor ,error ){if len (objects )!=3{return nil ,_ce .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_gcfd ,_fgfd :=_fg .GetNumbersAsFloat (objects );
if _fgfd !=nil {return nil ,_fgfd ;};return _cagb .ColorFromFloats (_gcfd );};
// WriteString outputs the object as it is to be written to file.
func (_gdefa *PdfTransformParamsDocMDP )WriteString ()string {return _gdefa .ToPdfObject ().WriteString ();};func (_bbfdb *PdfWriter )mapObjectStreams (_bgbgg bool )(map[_fg .PdfObject ]bool ,bool ){_cgacg :=make (map[_fg .PdfObject ]bool );for _ ,_gbeca :=range _bbfdb ._bbfd {if _cgfbd ,_ebbdg :=_gbeca .(*_fg .PdfObjectStreams );
_ebbdg {_bgbgg =true ;for _ ,_cecda :=range _cgfbd .Elements (){_cgacg [_cecda ]=true ;if _deeba ,_fabdb :=_cecda .(*_fg .PdfIndirectObject );_fabdb {_cgacg [_deeba .PdfObject ]=true ;};};};};return _cgacg ,_bgbgg ;};
// 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 ){_ffaf ,_edcb :=_aedae (basefont );if _edcb !=nil {return nil ,_edcb ;};if basefont !=SymbolName &&basefont !=ZapfDingbatsName {_ffaf ._bdgda =_dg .NewWinAnsiEncoder ();};return &PdfFont {_gcaeff :&_ffaf },nil ;
};func (_gcce *PdfReader )newPdfAnnotationFreeTextFromDict (_fgfag *_fg .PdfObjectDictionary )(*PdfAnnotationFreeText ,error ){_dfe :=PdfAnnotationFreeText {};_dbg ,_fgef :=_gcce .newPdfAnnotationMarkupFromDict (_fgfag );if _fgef !=nil {return nil ,_fgef ;
};_dfe .PdfAnnotationMarkup =_dbg ;_dfe .DA =_fgfag .Get ("\u0044\u0041");_dfe .Q =_fgfag .Get ("\u0051");_dfe .RC =_fgfag .Get ("\u0052\u0043");_dfe .DS =_fgfag .Get ("\u0044\u0053");_dfe .CL =_fgfag .Get ("\u0043\u004c");_dfe .IT =_fgfag .Get ("\u0049\u0054");
_dfe .BE =_fgfag .Get ("\u0042\u0045");_dfe .RD =_fgfag .Get ("\u0052\u0044");_dfe .BS =_fgfag .Get ("\u0042\u0053");_dfe .LE =_fgfag .Get ("\u004c\u0045");return &_dfe ,nil ;};
// HasShadingByName checks whether a shading is defined by the specified keyName.
func (_aaegc *PdfPageResources )HasShadingByName (keyName _fg .PdfObjectName )bool {_ ,_feaag :=_aaegc .GetShadingByName (keyName );return _feaag ;};type fontFile struct{_gaefe string ;_cede string ;_ffff _dg .SimpleEncoder ;};func (_bcccg *PdfWriter )copyObject (_ddbb _fg .PdfObject ,_bcgg map[_fg .PdfObject ]_fg .PdfObject ,_gbfaf map[_fg .PdfObject ]struct{},_cdgae bool )_fg .PdfObject {_bdfbfe :=!_bcccg ._cdafg &&_gbfaf !=nil ;
if _cabcge ,_edagc :=_bcgg [_ddbb ];_edagc {if _bdfbfe &&!_cdgae {delete (_gbfaf ,_ddbb );};return _cabcge ;};if _ddbb ==nil {_ffda :=_fg .MakeNull ();return _ffda ;};_aedgg :=_ddbb ;switch _adafg :=_ddbb .(type ){case *_fg .PdfObjectArray :_eeebbb :=_fg .MakeArray ();
_aedgg =_eeebbb ;_bcgg [_ddbb ]=_aedgg ;for _ ,_ffacc :=range _adafg .Elements (){_eeebbb .Append (_bcccg .copyObject (_ffacc ,_bcgg ,_gbfaf ,_cdgae ));};case *_fg .PdfObjectStreams :_efffa :=&_fg .PdfObjectStreams {PdfObjectReference :_adafg .PdfObjectReference };
_aedgg =_efffa ;_bcgg [_ddbb ]=_aedgg ;for _ ,_egdddg :=range _adafg .Elements (){_efffa .Append (_bcccg .copyObject (_egdddg ,_bcgg ,_gbfaf ,_cdgae ));};case *_fg .PdfObjectStream :_gccbc :=&_fg .PdfObjectStream {Stream :_adafg .Stream ,PdfObjectReference :_adafg .PdfObjectReference };
_aedgg =_gccbc ;_bcgg [_ddbb ]=_aedgg ;_gccbc .PdfObjectDictionary =_bcccg .copyObject (_adafg .PdfObjectDictionary ,_bcgg ,_gbfaf ,_cdgae ).(*_fg .PdfObjectDictionary );case *_fg .PdfObjectDictionary :var _bbgac bool ;if _bdfbfe &&!_cdgae {if _cgdbg ,_ :=_fg .GetNameVal (_adafg .Get ("\u0054\u0079\u0070\u0065"));
_cgdbg =="\u0050\u0061\u0067\u0065"{_ ,_acda :=_bcccg ._cbdbf [_adafg ];_cdgae =!_acda ;_bbgac =_cdgae ;};};_dfbdc :=_fg .MakeDict ();_aedgg =_dfbdc ;_bcgg [_ddbb ]=_aedgg ;for _ ,_bdcb :=range _adafg .Keys (){_dfbdc .Set (_bdcb ,_bcccg .copyObject (_adafg .Get (_bdcb ),_bcgg ,_gbfaf ,_cdgae ));
};if _bbgac {_aedgg =_fg .MakeNull ();_cdgae =false ;};case *_fg .PdfIndirectObject :_dadcd :=&_fg .PdfIndirectObject {PdfObjectReference :_adafg .PdfObjectReference };_aedgg =_dadcd ;_bcgg [_ddbb ]=_aedgg ;_dadcd .PdfObject =_bcccg .copyObject (_adafg .PdfObject ,_bcgg ,_gbfaf ,_cdgae );
case *_fg .PdfObjectString :_cggea :=*_adafg ;_aedgg =&_cggea ;_bcgg [_ddbb ]=_aedgg ;case *_fg .PdfObjectName :_cecag :=*_adafg ;_aedgg =&_cecag ;_bcgg [_ddbb ]=_aedgg ;case *_fg .PdfObjectNull :_aedgg =_fg .MakeNull ();_bcgg [_ddbb ]=_aedgg ;case *_fg .PdfObjectInteger :_bdfe :=*_adafg ;
_aedgg =&_bdfe ;_bcgg [_ddbb ]=_aedgg ;case *_fg .PdfObjectReference :_baebc :=*_adafg ;_aedgg =&_baebc ;_bcgg [_ddbb ]=_aedgg ;case *_fg .PdfObjectFloat :_bgcb :=*_adafg ;_aedgg =&_bgcb ;_bcgg [_ddbb ]=_aedgg ;case *_fg .PdfObjectBool :_gfdbdb :=*_adafg ;
_aedgg =&_gfdbdb ;_bcgg [_ddbb ]=_aedgg ;case *pdfSignDictionary :_decceb :=&pdfSignDictionary {PdfObjectDictionary :_fg .MakeDict (),_afcd :_adafg ._afcd ,_cggdd :_adafg ._cggdd };_aedgg =_decceb ;_bcgg [_ddbb ]=_aedgg ;for _ ,_efacc :=range _adafg .Keys (){_decceb .Set (_efacc ,_bcccg .copyObject (_adafg .Get (_efacc ),_bcgg ,_gbfaf ,_cdgae ));
};default:_aa .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",_ddbb );
};if _bdfbfe &&_cdgae {_gbfaf [_ddbb ]=struct{}{};};return _aedgg ;};
// GetContentStreamObjs returns a slice of PDF objects containing the content
// streams of the page.
func (_cdffg *PdfPage )GetContentStreamObjs ()[]_fg .PdfObject {if _cdffg .Contents ==nil {return nil ;};_bbcce :=_fg .TraceToDirectObject (_cdffg .Contents );if _cffgf ,_egad :=_bbcce .(*_fg .PdfObjectArray );_egad {return _cffgf .Elements ();};return []_fg .PdfObject {_bbcce };
};func _cffgdbb ()string {return _aa .Version };
// 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 _ff .ReadSeeker )(*PdfReader ,error ){const _dffac ="\u006d\u006f\u0064\u0065l:\u004e\u0065\u0077\u0050\u0064\u0066\u0052\u0065\u0061\u0064\u0065\u0072\u004c\u0061z\u0079";return _bgdaf (rs ,&ReaderOpts {LazyLoad :true },false ,_dffac );
};func _daaa (_aedfg _fg .PdfObject )(*PdfColorspaceDeviceNAttributes ,error ){_gcbg :=&PdfColorspaceDeviceNAttributes {};var _afc *_fg .PdfObjectDictionary ;switch _ccgae :=_aedfg .(type ){case *_fg .PdfIndirectObject :_gcbg ._eagf =_ccgae ;var _ddaf bool ;
_afc ,_ddaf =_ccgae .PdfObject .(*_fg .PdfObjectDictionary );if !_ddaf {_aa .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 ,_ce .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");
};case *_fg .PdfObjectDictionary :_afc =_ccgae ;case *_fg .PdfObjectReference :_gffae :=_ccgae .Resolve ();return _daaa (_gffae );default:_aa .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 ,_ce .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _ddba :=_afc .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065");_ddba !=nil {_fcgg ,_gddb :=_fg .TraceToDirectObject (_ddba ).(*_fg .PdfObjectName );if !_gddb {_aa .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 ,_ce .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};_gcbg .Subtype =_fcgg ;};if _bbdf :=_afc .Get ("\u0043o\u006c\u006f\u0072\u0061\u006e\u0074s");_bbdf !=nil {_gcbg .Colorants =_bbdf ;};if _gaaf :=_afc .Get ("\u0050r\u006f\u0063\u0065\u0073\u0073");
_gaaf !=nil {_gcbg .Process =_gaaf ;};if _gdge :=_afc .Get ("M\u0069\u0078\u0069\u006e\u0067\u0048\u0069\u006e\u0074\u0073");_gdge !=nil {_gcbg .MixingHints =_gdge ;};return _gcbg ,nil ;};
// NewPdfRectangle creates a PDF rectangle object based on an input array of 4 integers.
// Defining the lower left (LL) and upper right (UR) corners with
// floating point numbers.
func NewPdfRectangle (arr _fg .PdfObjectArray )(*PdfRectangle ,error ){_gegdg :=PdfRectangle {};if arr .Len ()!=4{return nil ,_ce .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 _dcbef error ;_gegdg .Llx ,_dcbef =_fg .GetNumberAsFloat (arr .Get (0));if _dcbef !=nil {return nil ,_dcbef ;};_gegdg .Lly ,_dcbef =_fg .GetNumberAsFloat (arr .Get (1));if _dcbef !=nil {return nil ,_dcbef ;};_gegdg .Urx ,_dcbef =_fg .GetNumberAsFloat (arr .Get (2));
if _dcbef !=nil {return nil ,_dcbef ;};_gegdg .Ury ,_dcbef =_fg .GetNumberAsFloat (arr .Get (3));if _dcbef !=nil {return nil ,_dcbef ;};return &_gegdg ,nil ;};func _dcbce (_efacd *PdfField ,_fabeb _fg .PdfObject )error {switch _efacd .GetContext ().(type ){case *PdfFieldText :switch _dabdd :=_fabeb .(type ){case *_fg .PdfObjectName :_bbdab :=_dabdd ;
_aa .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",_bbdab .String ());
_efacd .V =_fg .MakeEncodedString (_dabdd .String (),true );case *_fg .PdfObjectString :_efacd .V =_fg .MakeEncodedString (_dabdd .String (),true );default:_aa .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",_dabdd ,_dabdd );
};case *PdfFieldButton :switch _fabeb .(type ){case *_fg .PdfObjectName :if len (_fabeb .String ())> 0{_efacd .V =_fabeb ;_cdaad (_efacd ,_fabeb );};case *_fg .PdfObjectString :if len (_fabeb .String ())> 0{_efacd .V =_fg .MakeName (_fabeb .String ());
_cdaad (_efacd ,_efacd .V );};default:_aa .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",_efacd .PartialName (),_fabeb );_efacd .V =_fabeb ;
};case *PdfFieldChoice :switch _fabeb .(type ){case *_fg .PdfObjectName :if len (_fabeb .String ())> 0{_efacd .V =_fg .MakeString (_fabeb .String ());_cdaad (_efacd ,_fabeb );};case *_fg .PdfObjectString :if len (_fabeb .String ())> 0{_efacd .V =_fabeb ;
_cdaad (_efacd ,_fg .MakeName (_fabeb .String ()));};default:_aa .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",_efacd .PartialName (),_fabeb );
_efacd .V =_fabeb ;};case *PdfFieldSignature :_aa .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",_efacd .PartialName (),_fabeb );
};return nil ;};
// ToInteger convert to an integer format.
func (_accaa *PdfColorCalGray )ToInteger (bits int )uint32 {_gffa :=_ef .Pow (2,float64 (bits ))-1;return uint32 (_gffa *_accaa .Val ());};
// Write writes the Appender output to io.Writer.
// It can only be called once and further invocations will result in an error.
func (_bga *PdfAppender )Write (w _ff .Writer )error {if _bga ._fgggf {return _ce .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");
};_dcg :=NewPdfWriter ();_agbfd ,_gegb :=_fg .GetDict (_dcg ._feccd );if !_gegb {return _ce .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");
};_dgbb ,_gegb :=_agbfd .Get ("\u004b\u0069\u0064\u0073").(*_fg .PdfObjectArray );if !_gegb {return _ce .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");
};_bddc ,_gegb :=_agbfd .Get ("\u0043\u006f\u0075n\u0074").(*_fg .PdfObjectInteger );if !_gegb {return _ce .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");
};_ebdb :=_bga ._cbb ._ccgg ;_dec :=_ebdb .GetTrailer ();if _dec ==nil {return _ce .New ("\u006di\u0073s\u0069\u006e\u0067\u0020\u0074\u0072\u0061\u0069\u006c\u0065\u0072");};_badbb ,_gegb :=_fg .GetIndirect (_dec .Get ("\u0052\u006f\u006f\u0074"));if !_gegb {return _ce .New ("c\u0061\u0074\u0061\u006c\u006f\u0067 \u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0065\u0072 \u006e\u006f\u0074 \u0066o\u0075\u006e\u0064");
};_dead ,_gegb :=_fg .GetDict (_badbb );if !_gegb {_aa .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",_badbb ,*_dec );
return _ce .New ("\u006di\u0073s\u0069\u006e\u0067\u0020\u0063\u0061\u0074\u0061\u006c\u006f\u0067");};for _ ,_fcfd :=range _dead .Keys (){if _dcg ._cgacf .Get (_fcfd )==nil {_cfe :=_dead .Get (_fcfd );_dcg ._cgacf .Set (_fcfd ,_cfe );};};if _bga ._cacc !=nil {if _bga ._cacc ._fgdbf {if _fagf :=_fg .TraceToDirectObject (_bga ._cacc .ToPdfObject ());
!_fg .IsNullObject (_fagf ){_dcg ._cgacf .Set ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d",_fagf );_bga .updateObjectsDeep (_fagf ,nil );}else {_aa .Log .Debug ("\u0055\u006e\u0061\u0062\u006c\u0065 \u0074\u006f\u0020t\u0072\u0061\u0063e\u0020\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d\u0020o\u0062\u006a\u0065\u0063\u0074, \u0066\u0061\u0069\u006c\u0065\u0064\u0020\u0074\u006f\u0020\u0061\u0064\u0064\u0020\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d\u002e");
};}else {_dcg ._cgacf .Set ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d",_bga ._cacc .ToPdfObject ());_bga .updateObjectsDeep (_bga ._cacc .ToPdfObject (),nil );};};if _bga ._dgbf !=nil {_bga .updateObjectsDeep (_bga ._dgbf .ToPdfObject (),nil );
_dcg ._cgacf .Set ("\u0044\u0053\u0053",_bga ._dgbf .GetContainingPdfObject ());};if _bga ._fege !=nil {_dcg ._cgacf .Set ("\u0050\u0065\u0072m\u0073",_bga ._fege .ToPdfObject ());_bga .updateObjectsDeep (_bga ._fege .ToPdfObject (),nil );};if _dcg ._fbbec .Major < 2{_dcg .AddExtension ("\u0045\u0053\u0049\u0043","\u0031\u002e\u0037",5);
_dcg .AddExtension ("\u0041\u0044\u0042\u0045","\u0031\u002e\u0037",8);};if _dbgc ,_dbga :=_fg .GetDict (_dec .Get ("\u0049\u006e\u0066\u006f"));_dbga {if _gddd ,_fceg :=_fg .GetDict (_dcg ._deabg );_fceg {for _ ,_dddcd :=range _dbgc .Keys (){if _gddd .Get (_dddcd )==nil {_gddd .Set (_dddcd ,_dbgc .Get (_dddcd ));
};};};};if _bga ._fadf !=nil {_dcg ._deabg =_fg .MakeIndirectObject (_bga ._fadf .ToPdfObject ());};_bga .addNewObject (_dcg ._deabg );_bga .addNewObject (_dcg ._cegde );_dabfa :=false ;if len (_bga ._cbb .PageList )!=len (_bga ._agbg ){_dabfa =true ;}else {for _edca :=range _bga ._cbb .PageList {switch {case _bga ._agbg [_edca ]==_bga ._cbb .PageList [_edca ]:case _bga ._agbg [_edca ]==_bga .Reader .PageList [_edca ]:default:_dabfa =true ;
};if _dabfa {break ;};};};if _dabfa {_bga .updateObjectsDeep (_dcg ._feccd ,nil );}else {_bga ._fgb [_dcg ._feccd ]=struct{}{};};_dcg ._feccd .ObjectNumber =_bga .Reader ._ecef .ObjectNumber ;_bga ._dcbad [_dcg ._feccd ]=_bga .Reader ._ecef .ObjectNumber ;
_ecfe :=[]_fg .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 _ ,_eecg :=range _bga ._agbg {_ceaa :=_eecg .ToPdfObject ();
*_bddc =*_bddc +1;if _ceeb ,_acec :=_ceaa .(*_fg .PdfIndirectObject );_acec &&_ceeb .GetParser ()==_bga ._cbb ._ccgg {_dgbb .Append (&_ceeb .PdfObjectReference );continue ;};if _dgfc ,_bfc :=_fg .GetDict (_ceaa );_bfc {_aabaf ,_edfe :=_dgfc .Get ("\u0050\u0061\u0072\u0065\u006e\u0074").(*_fg .PdfIndirectObject );
for _edfe {_aa .Log .Trace ("\u0050a\u0067e\u0020\u0050\u0061\u0072\u0065\u006e\u0074\u003a\u0020\u0025\u0054",_aabaf );_cecg ,_eada :=_aabaf .PdfObject .(*_fg .PdfObjectDictionary );if !_eada {return _ce .New ("i\u006e\u0076\u0061\u006cid\u0020P\u0061\u0072\u0065\u006e\u0074 \u006f\u0062\u006a\u0065\u0063\u0074");
};for _ ,_egce :=range _ecfe {_aa .Log .Trace ("\u0046\u0069\u0065\u006c\u0064\u0020\u0025\u0073",_egce );if _agbda :=_dgfc .Get (_egce );_agbda !=nil {_aa .Log .Trace ("\u002d \u0070a\u0067\u0065\u0020\u0068\u0061s\u0020\u0061l\u0072\u0065\u0061\u0064\u0079");
if len (_eecg ._cceb .Keys ())> 0&&!_dabfa {_geba :=_eecg ._cceb ;if _dgcg :=_geba .Get (_egce );_dgcg !=nil {if _agbda !=_dgcg {_aa .Log .Trace ("\u0049\u006e\u0068\u0065\u0072\u0069\u0074\u0069\u006e\u0067\u0020\u006f\u0072\u0069\u0067i\u006ea\u006c\u0020\u0066\u0069\u0065\u006c\u0064\u0020\u0025\u0073\u002c\u0020\u0025\u0054",_egce ,_dgcg );
_dgfc .Set (_egce ,_dgcg );};};};continue ;};if _bddcc :=_cecg .Get (_egce );_bddcc !=nil {_aa .Log .Trace ("\u0049\u006e\u0068\u0065ri\u0074\u0069\u006e\u0067\u0020\u0066\u0069\u0065\u006c\u0064\u0020\u0025\u0073",_egce );_dgfc .Set (_egce ,_bddcc );};
};_aabaf ,_edfe =_cecg .Get ("\u0050\u0061\u0072\u0065\u006e\u0074").(*_fg .PdfIndirectObject );_aa .Log .Trace ("\u004ee\u0078t\u0020\u0070\u0061\u0072\u0065\u006e\u0074\u003a\u0020\u0025\u0054",_cecg .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"));};if _dabfa {_dgfc .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_dcg ._feccd );
};};_bga .updateObjectsDeep (_ceaa ,nil );_dgbb .Append (_ceaa );};if _ ,_bdac :=_bga ._ebd .Seek (0,_ff .SeekStart );_bdac !=nil {return _bdac ;};_dbfa :=make (map[SignatureHandler ]_ff .Writer );_abaf :=_fg .MakeArray ();for _ ,_egcef :=range _bga ._gcdb {if _abfg ,_ffac :=_fg .GetIndirect (_egcef );
_ffac {if _aaac ,_gfede :=_abfg .PdfObject .(*pdfSignDictionary );_gfede {_ggac :=*_aaac ._afcd ;var _afbe error ;_dbfa [_ggac ],_afbe =_ggac .NewDigest (_aaac ._cggdd );if _afbe !=nil {return _afbe ;};_abaf .Append (_fg .MakeInteger (0xfffff),_fg .MakeInteger (0xfffff));
};};};if _abaf .Len ()> 0{_abaf .Append (_fg .MakeInteger (0xfffff),_fg .MakeInteger (0xfffff));};for _ ,_geee :=range _bga ._gcdb {if _becb ,_cgbf :=_fg .GetIndirect (_geee );_cgbf {if _fagg ,_edeg :=_becb .PdfObject .(*pdfSignDictionary );_edeg {_fagg .Set ("\u0042y\u0074\u0065\u0052\u0061\u006e\u0067e",_abaf );
};};};_dagf :=len (_dbfa )> 0;var _ddde _ff .Reader =_bga ._ebd ;if _dagf {_ddgg :=make ([]_ff .Writer ,0,len (_dbfa ));for _ ,_aag :=range _dbfa {_ddgg =append (_ddgg ,_aag );};_ddde =_ff .TeeReader (_bga ._ebd ,_ff .MultiWriter (_ddgg ...));};_dbgd ,_ceca :=_ff .Copy (w ,_ddde );
if _ceca !=nil {return _ceca ;};if len (_bga ._gcdb )==0{return nil ;};_dcg ._beddc =_dbgd ;_dcg .ObjNumOffset =_bga ._egcab ;_dcg ._cdafg =true ;_dcg ._abeeb =_bga ._gaeb ;_dcg ._cgdbf =_bga ._dff ;_dcg ._cecef =_bga ._ggcf ;_dcg ._fbbec =_bga ._cbb .PdfVersion ();
_dcg ._cbeab =_bga ._dcbad ;_dcg ._bbdbd =_bga ._bbef .GetCrypter ();_dcg ._abgdg =_bga ._bbef .GetEncryptObj ();_gdgf :=_bga ._bbef .GetXrefType ();if _gdgf !=nil {_fedad :=*_gdgf ==_fg .XrefTypeObjectStream ;_dcg ._gefag =&_fedad ;};_dcg ._gcbec =map[_fg .PdfObject ]struct{}{};
_dcg ._bbfd =[]_fg .PdfObject {};for _ ,_ecccb :=range _bga ._gcdb {if _ ,_cegf :=_bga ._fgb [_ecccb ];_cegf {continue ;};_dcg .addObject (_ecccb );};_fbea :=w ;if _dagf {_fbea =_cb .NewBuffer (nil );};if _bga ._gccg !=""&&_dcg ._bbdbd ==nil {_dcg .Encrypt ([]byte (_bga ._gccg ),[]byte (_bga ._gccg ),_bga ._ggb );
};if _cccg :=_dec .Get ("\u0049\u0044");_cccg !=nil {if _fdec ,_fabg :=_fg .GetArray (_cccg );_fabg {_dcg ._dadgc =_fdec ;};};if _eaba :=_dcg .Write (_fbea );_eaba !=nil {return _eaba ;};if _dagf {_adagc :=_fbea .(*_cb .Buffer ).Bytes ();_ffba :=_fg .MakeArray ();
var _eeeff []*pdfSignDictionary ;var _dedf int64 ;for _ ,_eedb :=range _dcg ._bbfd {if _dabd ,_ggebab :=_fg .GetIndirect (_eedb );_ggebab {if _aebc ,_eadd :=_dabd .PdfObject .(*pdfSignDictionary );_eadd {_eeeff =append (_eeeff ,_aebc );_dcfg :=_aebc ._gaage +int64 (_aebc ._afade );
_ffba .Append (_fg .MakeInteger (_dedf ),_fg .MakeInteger (_dcfg -_dedf ));_dedf =_aebc ._gaage +int64 (_aebc ._accg );};};};_ffba .Append (_fg .MakeInteger (_dedf ),_fg .MakeInteger (_dbgd +int64 (len (_adagc ))-_dedf ));_cbedg :=[]byte (_ffba .WriteString ());
for _ ,_faf :=range _eeeff {_dded :=int (_faf ._gaage -_dbgd );for _edfef :=_faf ._aegfb ;_edfef < _faf ._ecdgb ;_edfef ++{_adagc [_dded +_edfef ]=' ';};_eaae :=_adagc [_dded +_faf ._aegfb :_dded +_faf ._ecdgb ];copy (_eaae ,_cbedg );};var _aged int ;for _ ,_ebfb :=range _eeeff {_gddg :=int (_ebfb ._gaage -_dbgd );
_dgdd :=_adagc [_aged :_gddg +_ebfb ._afade ];_ebg :=*_ebfb ._afcd ;_dbfa [_ebg ].Write (_dgdd );_aged =_gddg +_ebfb ._accg ;};for _ ,_gebad :=range _eeeff {_ddaaa :=_adagc [_aged :];_aabf :=*_gebad ._afcd ;_dbfa [_aabf ].Write (_ddaaa );};for _ ,_cfgb :=range _eeeff {_deag :=int (_cfgb ._gaage -_dbgd );
_aeae :=*_cfgb ._afcd ;_bcfe :=_dbfa [_aeae ];if _egdc :=_aeae .Sign (_cfgb ._cggdd ,_bcfe );_egdc !=nil {return _egdc ;};_cfgb ._cggdd .ByteRange =_ffba ;_fabb :=[]byte (_cfgb ._cggdd .Contents .WriteString ());for _cca :=_cfgb ._aegfb ;_cca < _cfgb ._ecdgb ;
_cca ++{_adagc [_deag +_cca ]=' ';};for _bcba :=_cfgb ._afade ;_bcba < _cfgb ._accg ;_bcba ++{_adagc [_deag +_bcba ]=' ';};_egee :=_adagc [_deag +_cfgb ._aegfb :_deag +_cfgb ._ecdgb ];copy (_egee ,_cbedg );_egee =_adagc [_deag +_cfgb ._afade :_deag +_cfgb ._accg ];
copy (_egee ,_fabb );};_cfda :=_cb .NewBuffer (_adagc );_ ,_ceca =_ff .Copy (w ,_cfda );if _ceca !=nil {return _ceca ;};};_bga ._fgggf =true ;return nil ;};
// ColorFromFloats returns a new PdfColor based on the input slice of color
// components.
func (_bdda *PdfColorspaceICCBased )ColorFromFloats (vals []float64 )(PdfColor ,error ){if _bdda .Alternate ==nil {if _bdda .N ==1{_gfac :=NewPdfColorspaceDeviceGray ();return _gfac .ColorFromFloats (vals );}else if _bdda .N ==3{_dae :=NewPdfColorspaceDeviceRGB ();
return _dae .ColorFromFloats (vals );}else if _bdda .N ==4{_dfbe :=NewPdfColorspaceDeviceCMYK ();return _dfbe .ColorFromFloats (vals );}else {return nil ,_ce .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 _bdda .Alternate .ColorFromFloats (vals );};
// 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 (_bbcba DefaultImageHandler )Compress (input *Image ,quality int64 )(*Image ,error ){return input ,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 {_cagf ,_cggg :=NewStandard14Font (basefont );if _cggg !=nil {panic (_d .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0053\u0074\u0061n\u0064\u0061\u0072\u0064\u0031\u0034\u0046\u006f\u006e\u0074 \u0025\u0023\u0071",basefont ));
};return _cagf ;};
// GetContentStream returns the XObject Form's content stream.
func (_eggdf *XObjectForm )GetContentStream ()([]byte ,error ){_dfdeb ,_bdcac :=_fg .DecodeStream (_eggdf ._bdage );if _bdcac !=nil {return nil ,_bdcac ;};return _dfdeb ,nil ;};
// PdfBorderStyle represents a border style dictionary (12.5.4 Border Styles p. 394).
type PdfBorderStyle struct{W *float64 ;S *BorderStyle ;D *[]int ;_ebeb _fg .PdfObject ;};
// GetContentStreamWithEncoder returns the pattern cell's content stream and its encoder
func (_gdgfb *PdfTilingPattern )GetContentStreamWithEncoder ()([]byte ,_fg .StreamEncoder ,error ){_afgae ,_aabfc :=_gdgfb ._gaac .(*_fg .PdfObjectStream );if !_aabfc {_aa .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",_gdgfb ._gaac );
return nil ,nil ,_fg .ErrTypeError ;};_cbggb ,_ddefd :=_fg .DecodeStream (_afgae );if _ddefd !=nil {_aa .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",_ddefd );
return nil ,nil ,_ddefd ;};_gbgcc ,_ddefd :=_fg .NewEncoderFromStream (_afgae );if _ddefd !=nil {_aa .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",_ddefd );
return nil ,nil ,_ddefd ;};return _cbggb ,_gbgcc ,nil ;};
// PdfAnnotationSquiggly represents Squiggly annotations.
// (Section 12.5.6.10).
type PdfAnnotationSquiggly struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _fg .PdfObject ;};func (_ggg *PdfReader )newPdfAnnotationInkFromDict (_ecbf *_fg .PdfObjectDictionary )(*PdfAnnotationInk ,error ){_dccb :=PdfAnnotationInk {};_badc ,_ebcd :=_ggg .newPdfAnnotationMarkupFromDict (_ecbf );
if _ebcd !=nil {return nil ,_ebcd ;};_dccb .PdfAnnotationMarkup =_badc ;_dccb .InkList =_ecbf .Get ("\u0049n\u006b\u004c\u0069\u0073\u0074");_dccb .BS =_ecbf .Get ("\u0042\u0053");return &_dccb ,nil ;};
// ToPdfObject returns the PDF representation of the colorspace.
func (_fbge *PdfColorspaceDeviceCMYK )ToPdfObject ()_fg .PdfObject {return _fg .MakeName ("\u0044\u0065\u0076\u0069\u0063\u0065\u0043\u004d\u0059\u004b");};
// ToPdfObject implements interface PdfModel.
func (_cfge *PdfActionURI )ToPdfObject ()_fg .PdfObject {_cfge .PdfAction .ToPdfObject ();_dgg :=_cfge ._bda ;_efgc :=_dgg .PdfObject .(*_fg .PdfObjectDictionary );_efgc .SetIfNotNil ("\u0053",_fg .MakeName (string (ActionTypeURI )));_efgc .SetIfNotNil ("\u0055\u0052\u0049",_cfge .URI );
_efgc .SetIfNotNil ("\u0049\u0073\u004da\u0070",_cfge .IsMap );return _dgg ;};type pdfCIDFontType2 struct{fontCommon ;_dbedf *_fg .PdfIndirectObject ;_deecfc _dg .TextEncoder ;
// Table 117 Entries in a CIDFont dictionary (page 269)
// Dictionary that defines the character collection of the CIDFont (required).
// See Table 116.
CIDSystemInfo *_fg .PdfObjectDictionary ;
// Glyph metrics fields (optional).
DW _fg .PdfObject ;W _fg .PdfObject ;DW2 _fg .PdfObject ;W2 _fg .PdfObject ;
// CIDs to glyph indices mapping (optional).
CIDToGIDMap _fg .PdfObject ;_dbgce map[_dg .CharCode ]float64 ;_gagd float64 ;_ebda map[rune ]int ;};
// Normalize swaps (Llx,Urx) if Urx < Llx, and (Lly,Ury) if Ury < Lly.
func (_beacc *PdfRectangle )Normalize (){if _beacc .Llx > _beacc .Urx {_beacc .Llx ,_beacc .Urx =_beacc .Urx ,_beacc .Llx ;};if _beacc .Lly > _beacc .Ury {_beacc .Lly ,_beacc .Ury =_beacc .Ury ,_beacc .Lly ;};};
// EncryptOptions represents encryption options for an output PDF.
type EncryptOptions struct{Permissions _gb .Permissions ;Algorithm EncryptionAlgorithm ;};
// 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 ;
// SetContext sets the sub pattern (context). Either PdfTilingPattern or PdfShadingPattern.
func (_eegfa *PdfPattern )SetContext (ctx PdfModel ){_eegfa ._ccdc =ctx };
// ToPdfObject returns the PDF representation of the function.
func (_bffga *PdfFunctionType0 )ToPdfObject ()_fg .PdfObject {if _bffga ._ddgf ==nil {_bffga ._ddgf =&_fg .PdfObjectStream {};};_begfb :=_fg .MakeDict ();_begfb .Set ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065",_fg .MakeInteger (0));
_dcgd :=&_fg .PdfObjectArray {};for _ ,_gadgb :=range _bffga .Domain {_dcgd .Append (_fg .MakeFloat (_gadgb ));};_begfb .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_dcgd );_bcace :=&_fg .PdfObjectArray {};for _ ,_dabga :=range _bffga .Range {_bcace .Append (_fg .MakeFloat (_dabga ));
};_begfb .Set ("\u0052\u0061\u006eg\u0065",_bcace );_fddd :=&_fg .PdfObjectArray {};for _ ,_bccga :=range _bffga .Size {_fddd .Append (_fg .MakeInteger (int64 (_bccga )));};_begfb .Set ("\u0053\u0069\u007a\u0065",_fddd );_begfb .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0053\u0061\u006d\u0070\u006c\u0065",_fg .MakeInteger (int64 (_bffga .BitsPerSample )));
if _bffga .Order !=1{_begfb .Set ("\u004f\u0072\u0064e\u0072",_fg .MakeInteger (int64 (_bffga .Order )));};_begfb .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_fg .MakeInteger (int64 (len (_bffga ._cfed ))));_bffga ._ddgf .Stream =_bffga ._cfed ;_bffga ._ddgf .PdfObjectDictionary =_begfb ;
return _bffga ._ddgf ;};func _badbc (_dcbgc _fg .PdfObject )(*fontFile ,error ){_aa .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",_dcbgc );
_ggbb :=&fontFile {};_dcbgc =_fg .TraceToDirectObject (_dcbgc );_cgfdee ,_cfdcb :=_dcbgc .(*_fg .PdfObjectStream );if !_cfdcb {_aa .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",_dcbgc );
return nil ,_fg .ErrTypeError ;};_egcae :=_cgfdee .PdfObjectDictionary ;_edgg ,_dffbc :=_fg .DecodeStream (_cgfdee );if _dffbc !=nil {return nil ,_dffbc ;};_efgf ,_cfdcb :=_fg .GetNameVal (_egcae .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065"));if !_cfdcb {_ggbb ._cede =_efgf ;
if _efgf =="\u0054\u0079\u0070\u0065\u0031\u0043"{_aa .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 ;};};_bbbg ,_ :=_fg .GetIntVal (_egcae .Get ("\u004ce\u006e\u0067\u0074\u0068\u0031"));_gaefef ,_ :=_fg .GetIntVal (_egcae .Get ("\u004ce\u006e\u0067\u0074\u0068\u0032"));if _bbbg > len (_edgg ){_bbbg =len (_edgg );
};if _bbbg +_gaefef > len (_edgg ){_gaefef =len (_edgg )-_bbbg ;};_adgc :=_edgg [:_bbbg ];var _cafde []byte ;if _gaefef > 0{_cafde =_edgg [_bbbg :_bbbg +_gaefef ];};if _bbbg > 0&&_gaefef > 0{_adfee :=_ggbb .loadFromSegments (_adgc ,_cafde );if _adfee !=nil {return nil ,_adfee ;
};};return _ggbb ,nil ;};
// PdfAnnotationText represents Text annotations.
// (Section 12.5.6.4 p. 402).
type PdfAnnotationText struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Open _fg .PdfObject ;Name _fg .PdfObject ;State _fg .PdfObject ;StateModel _fg .PdfObject ;};
// SetName sets the `Name` field of the signature.
func (_ebgcg *PdfSignature )SetName (name string ){_ebgcg .Name =_fg .MakeString (name )};
// 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{_gbaf *_fg .PdfIndirectObject ;Certs []*_fg .PdfObjectStream ;OCSPs []*_fg .PdfObjectStream ;CRLs []*_fg .PdfObjectStream ;VRI map[string ]*VRI ;_aacde map[string ]*_fg .PdfObjectStream ;_cgbbd map[string ]*_fg .PdfObjectStream ;_fdcc map[string ]*_fg .PdfObjectStream ;
};
// AddWatermarkImage adds a watermark to the page.
func (_bdeea *PdfPage )AddWatermarkImage (ximg *XObjectImage ,opt WatermarkImageOptions )error {_fbgfc ,_dcbcf :=_bdeea .GetMediaBox ();if _dcbcf !=nil {return _dcbcf ;};_gdbbd :=_fbgfc .Urx -_fbgfc .Llx ;_ffed :=_fbgfc .Ury -_fbgfc .Lly ;_daaf :=float64 (*ximg .Width );
_facde :=(_gdbbd -_daaf )/2;if opt .FitToWidth {_daaf =_gdbbd ;_facde =0;};_fbfaaf :=_ffed ;_feeda :=float64 (0);if opt .PreserveAspectRatio {_fbfaaf =_daaf *float64 (*ximg .Height )/float64 (*ximg .Width );_feeda =(_ffed -_fbfaaf )/2;};if _bdeea .Resources ==nil {_bdeea .Resources =NewPdfPageResources ();
};_ceeed :=0;_cgaba :=_fg .PdfObjectName (_d .Sprintf ("\u0049\u006d\u0077%\u0064",_ceeed ));for _bdeea .Resources .HasXObjectByName (_cgaba ){_ceeed ++;_cgaba =_fg .PdfObjectName (_d .Sprintf ("\u0049\u006d\u0077%\u0064",_ceeed ));};_dcbcf =_bdeea .AddImageResource (_cgaba ,ximg );
if _dcbcf !=nil {return _dcbcf ;};_ceeed =0;_gfagg :=_fg .PdfObjectName (_d .Sprintf ("\u0047\u0053\u0025\u0064",_ceeed ));for _bdeea .HasExtGState (_gfagg ){_ceeed ++;_gfagg =_fg .PdfObjectName (_d .Sprintf ("\u0047\u0053\u0025\u0064",_ceeed ));};_gbff :=_fg .MakeDict ();
_gbff .Set ("\u0042\u004d",_fg .MakeName ("\u004e\u006f\u0072\u006d\u0061\u006c"));_gbff .Set ("\u0043\u0041",_fg .MakeFloat (opt .Alpha ));_gbff .Set ("\u0063\u0061",_fg .MakeFloat (opt .Alpha ));_dcbcf =_bdeea .AddExtGState (_gfagg ,_gbff );if _dcbcf !=nil {return _dcbcf ;
};_accff :=_d .Sprintf ("\u0071\u000a"+"\u002f%\u0073\u0020\u0067\u0073\u000a"+"%\u002e\u0030\u0066\u0020\u0030\u00200\u0020\u0025\u002e\u0030\u0066\u0020\u0025\u002e\u0034f\u0020\u0025\u002e4\u0066 \u0063\u006d\u000a"+"\u002f%\u0073\u0020\u0044\u006f\u000a"+"\u0051",_gfagg ,_daaf ,_fbfaaf ,_facde ,_feeda ,_cgaba );
_bdeea .AddContentStreamByString (_accff );return nil ;};func (_cbab *PdfField )inherit (_cebec func (*PdfField )bool )(bool ,error ){_cbaed :=map[*PdfField ]bool {};_dedb :=false ;_eeafg :=_cbab ;for _eeafg !=nil {if _ ,_befbd :=_cbaed [_eeafg ];_befbd {return false ,_ce .New ("\u0072\u0065\u0063\u0075rs\u0069\u0076\u0065\u0020\u0074\u0072\u0061\u0076\u0065\u0072\u0073\u0061\u006c");
};_agd :=_cebec (_eeafg );if _agd {_dedb =true ;break ;};_cbaed [_eeafg ]=true ;_eeafg =_eeafg .Parent ;};return _dedb ,nil ;};func _gfeff (_fedg _fg .PdfObject )(*PdfColorspaceCalRGB ,error ){_cbef :=NewPdfColorspaceCalRGB ();if _becg ,_bgfg :=_fedg .(*_fg .PdfIndirectObject );
_bgfg {_cbef ._cfcb =_becg ;};_fedg =_fg .TraceToDirectObject (_fedg );_ffbb ,_bbga :=_fedg .(*_fg .PdfObjectArray );if !_bbga {return nil ,_d .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _ffbb .Len ()!=2{return nil ,_d .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0043\u0061\u006c\u0052G\u0042 \u0063o\u006c\u006f\u0072\u0073\u0070\u0061\u0063e");
};_fedg =_fg .TraceToDirectObject (_ffbb .Get (0));_ebaae ,_bbga :=_fedg .(*_fg .PdfObjectName );if !_bbga {return nil ,_d .Errorf ("\u0043\u0061l\u0052\u0047\u0042\u0020\u006e\u0061\u006d\u0065\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u004e\u0061\u006d\u0065\u0020\u006f\u0062je\u0063\u0074");
};if *_ebaae !="\u0043\u0061\u006c\u0052\u0047\u0042"{return nil ,_d .Errorf ("\u006e\u006f\u0074 a\u0020\u0043\u0061\u006c\u0052\u0047\u0042\u0020\u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063\u0065");};_fedg =_fg .TraceToDirectObject (_ffbb .Get (1));
_ffeb ,_bbga :=_fedg .(*_fg .PdfObjectDictionary );if !_bbga {return nil ,_d .Errorf ("\u0043\u0061l\u0052\u0047\u0042\u0020\u006e\u0061\u006d\u0065\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u004e\u0061\u006d\u0065\u0020\u006f\u0062je\u0063\u0074");};_fedg =_ffeb .Get ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074");
_fedg =_fg .TraceToDirectObject (_fedg );_agff ,_bbga :=_fedg .(*_fg .PdfObjectArray );if !_bbga {return nil ,_d .Errorf ("\u0043\u0061\u006c\u0052\u0047\u0042\u003a\u0020\u0049\u006e\u0076a\u006c\u0069\u0064\u0020\u0057\u0068\u0069\u0074\u0065\u0050o\u0069\u006e\u0074");
};if _agff .Len ()!=3{return nil ,_d .Errorf ("\u0043\u0061\u006c\u0052\u0047\u0042\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064 \u0057h\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074\u0020\u0061\u0072\u0072\u0061\u0079");};_edg ,_fedac :=_agff .GetAsFloat64Slice ();
if _fedac !=nil {return nil ,_fedac ;};_cbef .WhitePoint =_edg ;_fedg =_ffeb .Get ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074");if _fedg !=nil {_fedg =_fg .TraceToDirectObject (_fedg );_dbfb ,_fedd :=_fedg .(*_fg .PdfObjectArray );if !_fedd {return nil ,_d .Errorf ("\u0043\u0061\u006c\u0052\u0047\u0042\u003a\u0020\u0049\u006e\u0076a\u006c\u0069\u0064\u0020\u0042\u006c\u0061\u0063\u006b\u0050o\u0069\u006e\u0074");
};if _dbfb .Len ()!=3{return nil ,_d .Errorf ("\u0043\u0061\u006c\u0052\u0047\u0042\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064 \u0042l\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074\u0020\u0061\u0072\u0072\u0061\u0079");};_dcgg ,_dadg :=_dbfb .GetAsFloat64Slice ();
if _dadg !=nil {return nil ,_dadg ;};_cbef .BlackPoint =_dcgg ;};_fedg =_ffeb .Get ("\u0047\u0061\u006dm\u0061");if _fedg !=nil {_fedg =_fg .TraceToDirectObject (_fedg );_afbg ,_dfba :=_fedg .(*_fg .PdfObjectArray );if !_dfba {return nil ,_d .Errorf ("C\u0061\u006c\u0052\u0047B:\u0020I\u006e\u0076\u0061\u006c\u0069d\u0020\u0047\u0061\u006d\u006d\u0061");
};if _afbg .Len ()!=3{return nil ,_d .Errorf ("C\u0061\u006c\u0052\u0047\u0042\u003a \u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0047a\u006d\u006d\u0061 \u0061r\u0072\u0061\u0079");};_aead ,_gda :=_afbg .GetAsFloat64Slice ();if _gda !=nil {return nil ,_gda ;
};_cbef .Gamma =_aead ;};_fedg =_ffeb .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");if _fedg !=nil {_fedg =_fg .TraceToDirectObject (_fedg );_deff ,_dfec :=_fedg .(*_fg .PdfObjectArray );if !_dfec {return nil ,_d .Errorf ("\u0043\u0061\u006c\u0052GB\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u004d\u0061\u0074\u0072i\u0078");
};if _deff .Len ()!=9{_aa .Log .Error ("\u004d\u0061t\u0072\u0069\u0078 \u0061\u0072\u0072\u0061\u0079\u003a\u0020\u0025\u0073",_deff .String ());return nil ,_d .Errorf ("\u0043\u0061\u006c\u0052G\u0042\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064 \u004da\u0074\u0072\u0069\u0078\u0020\u0061\u0072r\u0061\u0079");
};_cggd ,_gfcb :=_deff .GetAsFloat64Slice ();if _gfcb !=nil {return nil ,_gfcb ;};_cbef .Matrix =_cggd ;};return _cbef ,nil ;};
// PdfAnnotationPolygon represents Polygon annotations.
// (Section 12.5.6.9).
type PdfAnnotationPolygon struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Vertices _fg .PdfObject ;LE _fg .PdfObject ;BS _fg .PdfObject ;IC _fg .PdfObject ;BE _fg .PdfObject ;IT _fg .PdfObject ;Measure _fg .PdfObject ;};
// GetAllContentStreams gets all the content streams for a page as one string.
func (_afab *PdfPage )GetAllContentStreams ()(string ,error ){_ggaf ,_fedag :=_afab .GetContentStreams ();if _fedag !=nil {return "",_fedag ;};return _dc .Join (_ggaf ,"\u0020"),nil ;};
// GetPageDict converts the Page to a PDF object dictionary.
func (_dffa *PdfPage )GetPageDict ()*_fg .PdfObjectDictionary {_deffb :=_dffa ._eebge ;_deffb .Clear ();_deffb .Set ("\u0054\u0079\u0070\u0065",_fg .MakeName ("\u0050\u0061\u0067\u0065"));_deffb .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_dffa .Parent );
if _dffa .LastModified !=nil {_deffb .Set ("\u004c\u0061\u0073t\u004d\u006f\u0064\u0069\u0066\u0069\u0065\u0064",_dffa .LastModified .ToPdfObject ());};if _dffa .Resources !=nil {_deffb .Set ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s",_dffa .Resources .ToPdfObject ());
};if _dffa .CropBox !=nil {_deffb .Set ("\u0043r\u006f\u0070\u0042\u006f\u0078",_dffa .CropBox .ToPdfObject ());};if _dffa .MediaBox !=nil {_deffb .Set ("\u004d\u0065\u0064\u0069\u0061\u0042\u006f\u0078",_dffa .MediaBox .ToPdfObject ());};if _dffa .BleedBox !=nil {_deffb .Set ("\u0042\u006c\u0065\u0065\u0064\u0042\u006f\u0078",_dffa .BleedBox .ToPdfObject ());
};if _dffa .TrimBox !=nil {_deffb .Set ("\u0054r\u0069\u006d\u0042\u006f\u0078",_dffa .TrimBox .ToPdfObject ());};if _dffa .ArtBox !=nil {_deffb .Set ("\u0041\u0072\u0074\u0042\u006f\u0078",_dffa .ArtBox .ToPdfObject ());};_deffb .SetIfNotNil ("\u0042\u006f\u0078C\u006f\u006c\u006f\u0072\u0049\u006e\u0066\u006f",_dffa .BoxColorInfo );
_deffb .SetIfNotNil ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073",_dffa .Contents );if _dffa .Rotate !=nil {_deffb .Set ("\u0052\u006f\u0074\u0061\u0074\u0065",_fg .MakeInteger (*_dffa .Rotate ));};_deffb .SetIfNotNil ("\u0047\u0072\u006fu\u0070",_dffa .Group );
_deffb .SetIfNotNil ("\u0054\u0068\u0075m\u0062",_dffa .Thumb );_deffb .SetIfNotNil ("\u0042",_dffa .B );_deffb .SetIfNotNil ("\u0044\u0075\u0072",_dffa .Dur );_deffb .SetIfNotNil ("\u0054\u0072\u0061n\u0073",_dffa .Trans );_deffb .SetIfNotNil ("\u0041\u0041",_dffa .AA );
_deffb .SetIfNotNil ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061",_dffa .Metadata );_deffb .SetIfNotNil ("\u0050i\u0065\u0063\u0065\u0049\u006e\u0066o",_dffa .PieceInfo );_deffb .SetIfNotNil ("\u0053\u0074\u0072\u0075\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074\u0073",_dffa .StructParents );
_deffb .SetIfNotNil ("\u0049\u0044",_dffa .ID );_deffb .SetIfNotNil ("\u0050\u005a",_dffa .PZ );_deffb .SetIfNotNil ("\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006fn\u0049\u006e\u0066\u006f",_dffa .SeparationInfo );_deffb .SetIfNotNil ("\u0054\u0061\u0062\u0073",_dffa .Tabs );
_deffb .SetIfNotNil ("T\u0065m\u0070\u006c\u0061\u0074\u0065\u0049\u006e\u0073t\u0061\u006e\u0074\u0069at\u0065\u0064",_dffa .TemplateInstantiated );_deffb .SetIfNotNil ("\u0050r\u0065\u0073\u0053\u0074\u0065\u0070s",_dffa .PresSteps );_deffb .SetIfNotNil ("\u0055\u0073\u0065\u0072\u0055\u006e\u0069\u0074",_dffa .UserUnit );
_deffb .SetIfNotNil ("\u0056\u0050",_dffa .VP );if _dffa ._fbbb !=nil {_agaaa :=_fg .MakeArray ();for _ ,_ggaga :=range _dffa ._fbbb {if _cdaae :=_ggaga .GetContext ();_cdaae !=nil {_agaaa .Append (_cdaae .ToPdfObject ());}else {_agaaa .Append (_ggaga .ToPdfObject ());
};};if _agaaa .Len ()> 0{_deffb .Set ("\u0041\u006e\u006e\u006f\u0074\u0073",_agaaa );};}else if _dffa .Annots !=nil {_deffb .SetIfNotNil ("\u0041\u006e\u006e\u006f\u0074\u0073",_dffa .Annots );};return _deffb ;};
// PdfAction represents an action in PDF (section 12.6 p. 412).
type PdfAction struct{_bd PdfModel ;Type _fg .PdfObject ;S _fg .PdfObject ;Next _fg .PdfObject ;_bda *_fg .PdfIndirectObject ;};
// PdfBorderEffect represents a PDF border effect.
type PdfBorderEffect struct{S *BorderEffect ;I *float64 ;};
// ToPdfOutline returns a low level PdfOutline object, based on the current
// instance.
func (_cefc *Outline )ToPdfOutline ()*PdfOutline {_agda :=NewPdfOutline ();var _ecde []*PdfOutlineItem ;var _fafbd int64 ;var _daagfb *PdfOutlineItem ;for _ ,_efab :=range _cefc .Entries {_gcagg ,_fccea :=_efab .ToPdfOutlineItem ();_gcagg .Parent =&_agda .PdfOutlineTreeNode ;
if _daagfb !=nil {_daagfb .Next =&_gcagg .PdfOutlineTreeNode ;_gcagg .Prev =&_daagfb .PdfOutlineTreeNode ;};_ecde =append (_ecde ,_gcagg );_fafbd +=_fccea ;_daagfb =_gcagg ;};_cegb :=int64 (len (_ecde ));_fafbd +=_cegb ;if _cegb > 0{_agda .First =&_ecde [0].PdfOutlineTreeNode ;
_agda .Last =&_ecde [_cegb -1].PdfOutlineTreeNode ;_agda .Count =&_fafbd ;};return _agda ;};
// NewPdfActionLaunch returns a new "launch" action.
func NewPdfActionLaunch ()*PdfActionLaunch {_gbef :=NewPdfAction ();_age :=&PdfActionLaunch {};_age .PdfAction =_gbef ;_gbef .SetContext (_age );return _age ;};func (_gdefg *PdfReader )loadForms ()(*PdfAcroForm ,error ){if _gdefg ._ccgg .GetCrypter ()!=nil &&!_gdefg ._ccgg .IsAuthenticated (){return nil ,_d .Errorf ("\u0066\u0069\u006ce\u0020\u006e\u0065\u0065d\u0020\u0074\u006f\u0020\u0062\u0065\u0020d\u0065\u0063\u0072\u0079\u0070\u0074\u0065\u0064\u0020\u0066\u0069\u0072\u0073\u0074");
};_cgged :=_gdefg ._cgegd ;_cdca :=_cgged .Get ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d");if _cdca ==nil {return nil ,nil ;};_ecbee ,_gdbbb :=_fg .GetIndirect (_cdca );_cdca =_fg .TraceToDirectObject (_cdca );if _fg .IsNullObject (_cdca ){_aa .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 ;};_fbggf ,_gfaga :=_fg .GetDict (_cdca );if !_gfaga {_aa .Log .Debug ("\u0049n\u0076\u0061\u006c\u0069d\u0020\u0041\u0063\u0072\u006fF\u006fr\u006d \u0065\u006e\u0074\u0072\u0079\u0020\u0025T",_cdca );_aa .Log .Debug ("\u0044\u006f\u0065\u0073 n\u006f\u0074\u0020\u0068\u0061\u0076\u0065\u0020\u0066\u006f\u0072\u006d\u0073");
return nil ,_d .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0061\u0063\u0072\u006ff\u006fr\u006d \u0065\u006e\u0074\u0072\u0079\u0020\u0025T",_cdca );};_aa .Log .Trace ("\u0048\u0061\u0073\u0020\u0041\u0063\u0072\u006f\u0020f\u006f\u0072\u006d\u0073");
_aa .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 !_gdefg ._beegg {_cadbd :=_gdefg .traverseObjectData (_fbggf );
if _cadbd !=nil {_aa .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",_cadbd );
return nil ,_cadbd ;};};_caabe ,_aceaa :=_gdefg .newPdfAcroFormFromDict (_ecbee ,_fbggf );if _aceaa !=nil {return nil ,_aceaa ;};_caabe ._fgdbf =!_gdbbb ;return _caabe ,nil ;};
// NewPdfAnnotationWidget returns an initialized annotation widget.
func NewPdfAnnotationWidget ()*PdfAnnotationWidget {_bdd :=NewPdfAnnotation ();_becf :=&PdfAnnotationWidget {};_becf .PdfAnnotation =_bdd ;_bdd .SetContext (_becf );return _becf ;};
// 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 (_dbgcf *PdfReader )AcroFormNeedsRepair ()(bool ,error ){var _acede []*PdfField ;if _dbgcf .AcroForm !=nil {_acede =_dbgcf .AcroForm .AllFields ();};_fgcgf :=make (map[*PdfField ]struct{},len (_acede ));for _ ,_deddc :=range _acede {_fgcgf [_deddc ]=struct{}{};
};for _ ,_ecfbdc :=range _dbgcf .PageList {_dbcgf ,_efgff :=_ecfbdc .GetAnnotations ();if _efgff !=nil {return false ,_efgff ;};for _ ,_bdccb :=range _dbcgf {_ccbeb ,_afeca :=_bdccb .GetContext ().(*PdfAnnotationWidget );if !_afeca {continue ;};_aedg :=_ccbeb .Field ();
if _aedg ==nil {return true ,nil ;};if _ ,_cdabg :=_fgcgf [_aedg ];!_cdabg {return true ,nil ;};};};return false ,nil ;};func (_dgded *PdfReader )loadAnnotations (_bbbbe _fg .PdfObject )([]*PdfAnnotation ,error ){_aaadd ,_cgegg :=_fg .GetArray (_bbbbe );
if !_cgegg {return nil ,_d .Errorf ("\u0041\u006e\u006e\u006fts\u0020\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0061\u0072\u0072\u0061\u0079");};var _ceegc []*PdfAnnotation ;for _ ,_bgfd :=range _aaadd .Elements (){_bgfd =_fg .ResolveReference (_bgfd );
if _ ,_acega :=_bgfd .(*_fg .PdfObjectNull );_acega {continue ;};_decba ,_bfga :=_bgfd .(*_fg .PdfObjectDictionary );_bfbc ,_cgfcfg :=_bgfd .(*_fg .PdfIndirectObject );if _bfga {_bfbc =&_fg .PdfIndirectObject {};_bfbc .PdfObject =_decba ;}else {if !_cgfcfg {return nil ,_d .Errorf ("\u0061\u006eno\u0074\u0061\u0074i\u006f\u006e\u0020\u006eot \u0069n \u0061\u006e\u0020\u0069\u006e\u0064\u0069re\u0063\u0074\u0020\u006f\u0062\u006a\u0065c\u0074");
};};_dcadc ,_daadae :=_dgded .newPdfAnnotationFromIndirectObject (_bfbc );if _daadae !=nil {return nil ,_daadae ;};switch _eabaca :=_dcadc .GetContext ().(type ){case *PdfAnnotationWidget :for _ ,_gfdc :=range _dgded .AcroForm .AllFields (){if _gfdc ._daecc ==_eabaca .Parent {_eabaca ._ddcc =_gfdc ;
break ;};};};if _dcadc !=nil {_ceegc =append (_ceegc ,_dcadc );};};return _ceegc ,nil ;};func (_cfbc *PdfReader )newPdfAnnotationCaretFromDict (_fcg *_fg .PdfObjectDictionary )(*PdfAnnotationCaret ,error ){_bbda :=PdfAnnotationCaret {};_fdag ,_afea :=_cfbc .newPdfAnnotationMarkupFromDict (_fcg );
if _afea !=nil {return nil ,_afea ;};_bbda .PdfAnnotationMarkup =_fdag ;_bbda .RD =_fcg .Get ("\u0052\u0044");_bbda .Sy =_fcg .Get ("\u0053\u0079");return &_bbda ,nil ;};func _accab (_bcca _fg .PdfObject )(string ,error ){_bcca =_fg .TraceToDirectObject (_bcca );
switch _efage :=_bcca .(type ){case *_fg .PdfObjectString :return _efage .Str (),nil ;case *_fg .PdfObjectStream :_caddc ,_degd :=_fg .DecodeStream (_efage );if _degd !=nil {return "",_degd ;};return string (_caddc ),nil ;};return "",_d .Errorf ("\u0069\u006e\u0076\u0061\u006ci\u0064\u0020\u0063\u006f\u006e\u0074\u0065\u006e\u0074\u0020\u0073\u0074\u0072e\u0061\u006d\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0020\u0068\u006f\u006c\u0064\u0065\u0072\u0020\u0028\u0025\u0054\u0029",_bcca );
};
// ToPdfObject recursively builds the Outline tree PDF object.
func (_dcedd *PdfOutlineItem )ToPdfObject ()_fg .PdfObject {_cfbgd :=_dcedd ._aeadb ;_cadag :=_cfbgd .PdfObject .(*_fg .PdfObjectDictionary );_cadag .Set ("\u0054\u0069\u0074l\u0065",_dcedd .Title );if _dcedd .A !=nil {_cadag .Set ("\u0041",_dcedd .A );
};if _bgcc :=_cadag .Get ("\u0053\u0045");_bgcc !=nil {_cadag .Remove ("\u0053\u0045");};if _dcedd .C !=nil {_cadag .Set ("\u0043",_dcedd .C );};if _dcedd .Dest !=nil {_cadag .Set ("\u0044\u0065\u0073\u0074",_dcedd .Dest );};if _dcedd .F !=nil {_cadag .Set ("\u0046",_dcedd .F );
};if _dcedd .Count !=nil {_cadag .Set ("\u0043\u006f\u0075n\u0074",_fg .MakeInteger (*_dcedd .Count ));};if _dcedd .Next !=nil {_cadag .Set ("\u004e\u0065\u0078\u0074",_dcedd .Next .ToPdfObject ());};if _dcedd .First !=nil {_cadag .Set ("\u0046\u0069\u0072s\u0074",_dcedd .First .ToPdfObject ());
};if _dcedd .Prev !=nil {_cadag .Set ("\u0050\u0072\u0065\u0076",_dcedd .Prev .GetContext ().GetContainingPdfObject ());};if _dcedd .Last !=nil {_cadag .Set ("\u004c\u0061\u0073\u0074",_dcedd .Last .GetContext ().GetContainingPdfObject ());};if _dcedd .Parent !=nil {_cadag .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_dcedd .Parent .GetContext ().GetContainingPdfObject ());
};return _cfbgd ;};
// Mask returns the uin32 bitmask for the specific flag.
func (_bagc FieldFlag )Mask ()uint32 {return uint32 (_bagc )};func (_fggf *LTV )getCRLs (_cacfgc []*_ge .Certificate )([][]byte ,error ){_edbcf :=make ([][]byte ,0,len (_cacfgc ));for _ ,_bdfba :=range _cacfgc {for _ ,_geeff :=range _bdfba .CRLDistributionPoints {if _fggf .CertClient .IsCA (_bdfba ){continue ;
};_baff ,_aedcc :=_fggf .CRLClient .MakeRequest (_geeff ,_bdfba );if _aedcc !=nil {_aa .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",_aedcc );continue ;
};_edbcf =append (_edbcf ,_baff );};};return _edbcf ,nil ;};
// ParsePdfObject parses input pdf object into given output intent.
func (_cefe *PdfOutputIntent )ParsePdfObject (object _fg .PdfObject )error {_bcbdg ,_fecdd :=_fg .GetDict (object );if !_fecdd {_aa .Log .Error ("\u0055\u006e\u006bno\u0077\u006e\u0020\u0074\u0079\u0070\u0065\u003a\u0020%\u0054 \u0066o\u0072 \u006f\u0075\u0074\u0070\u0075\u0074\u0020\u0069\u006e\u0074\u0065\u006e\u0074",object );
return _ce .New ("\u0075\u006e\u006b\u006e\u006fw\u006e\u0020\u0070\u0064\u0066\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0020t\u0079\u0070\u0065\u0020\u0066\u006f\u0072\u0020\u006f\u0075\u0074\u0070\u0075\u0074\u0020\u0069\u006e\u0074\u0065\u006e\u0074");
};_cefe ._geaa =_bcbdg ;_cefe .Type ,_ =_bcbdg .GetString ("\u0054\u0079\u0070\u0065");_bacca ,_fecdd :=_bcbdg .GetString ("\u0053");if _fecdd {switch _bacca {case "\u0047T\u0053\u005f\u0050\u0044\u0046\u00411":_cefe .S =PdfOutputIntentTypeA1 ;case "\u0047T\u0053\u005f\u0050\u0044\u0046\u00412":_cefe .S =PdfOutputIntentTypeA2 ;
case "\u0047T\u0053\u005f\u0050\u0044\u0046\u00413":_cefe .S =PdfOutputIntentTypeA3 ;case "\u0047T\u0053\u005f\u0050\u0044\u0046\u00414":_cefe .S =PdfOutputIntentTypeA4 ;case "\u0047\u0054\u0053\u005f\u0050\u0044\u0046\u0058":_cefe .S =PdfOutputIntentTypeX ;
};};_cefe .OutputCondition ,_ =_bcbdg .GetString ("\u004fu\u0074p\u0075\u0074\u0043\u006f\u006e\u0064\u0069\u0074\u0069\u006f\u006e");_cefe .OutputConditionIdentifier ,_ =_bcbdg .GetString ("\u004fu\u0074\u0070\u0075\u0074C\u006f\u006e\u0064\u0069\u0074i\u006fn\u0049d\u0065\u006e\u0074\u0069\u0066\u0069\u0065r");
_cefe .RegistryName ,_ =_bcbdg .GetString ("\u0052\u0065\u0067i\u0073\u0074\u0072\u0079\u004e\u0061\u006d\u0065");_cefe .Info ,_ =_bcbdg .GetString ("\u0049\u006e\u0066\u006f");if _dedg ,_ggcdd :=_fg .GetStream (_bcbdg .Get ("\u0044\u0065\u0073\u0074\u004f\u0075\u0074\u0070\u0075\u0074\u0050\u0072o\u0066\u0069\u006c\u0065"));
_ggcdd {_cefe .ColorComponents ,_ =_fg .GetIntVal (_dedg .Get ("\u004e"));_bcbee ,_gbcdb :=_fg .DecodeStream (_dedg );if _gbcdb !=nil {return _gbcdb ;};_cefe .DestOutputProfile =_bcbee ;};return nil ;};
// Write writes out the PDF.
func (_cafeb *PdfWriter )Write (writer _ff .Writer )error {_aa .Log .Trace ("\u0057r\u0069\u0074\u0065\u0028\u0029");_abdda :=_cafeb .checkLicense ();if _abdda !=nil {return _abdda ;};if _abdda =_cafeb .writeOutlines ();_abdda !=nil {return _abdda ;};if _abdda =_cafeb .writeAcroFormFields ();
_abdda !=nil {return _abdda ;};_cafeb .checkPendingObjects ();if _abdda =_cafeb .writeOutputIntents ();_abdda !=nil {return _abdda ;};_cafeb .setCatalogVersion ();_cafeb .copyObjects ();if _abdda =_cafeb .optimize ();_abdda !=nil {return _abdda ;};if _abdda =_cafeb .optimizeDocument ();
_abdda !=nil {return _abdda ;};var _fabgb _e .Hash ;if _cafeb ._gaaaab {_fabgb =_fd .New ();writer =_ff .MultiWriter (_fabgb ,writer );};_cafeb .setWriter (writer );_gddee :=_cafeb .checkCrossReferenceStream ();_cbfae ,_gddee :=_cafeb .mapObjectStreams (_gddee );
_cafeb .adjustXRefAffectedVersion (_gddee );_cafeb .writeDocumentVersion ();_cafeb .updateObjectNumbers ();_cafeb .writeObjects ();if _abdda =_cafeb .writeObjectsInStreams (_cbfae );_abdda !=nil {return _abdda ;};_fcccd :=_cafeb ._fcgga ;var _efdae int ;
for _eccdb :=range _cafeb ._aafgd {if _eccdb > _efdae {_efdae =_eccdb ;};};if _cafeb ._gaaaab {if _abdda =_cafeb .setHashIDs (_fabgb );_abdda !=nil {return _abdda ;};};if _gddee {if _abdda =_cafeb .writeXRefStreams (_efdae ,_fcccd );_abdda !=nil {return _abdda ;
};}else {_cafeb .writeTrailer (_efdae );};_cafeb .makeOffSetReference (_fcccd );if _abdda =_cafeb .flushWriter ();_abdda !=nil {return _abdda ;};return nil ;};
// PdfShadingType4 is a Free-form Gouraud-shaded triangle mesh.
type PdfShadingType4 struct{*PdfShading ;BitsPerCoordinate *_fg .PdfObjectInteger ;BitsPerComponent *_fg .PdfObjectInteger ;BitsPerFlag *_fg .PdfObjectInteger ;Decode *_fg .PdfObjectArray ;Function []PdfFunction ;};
// 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 ){_fabda ,_ddgge :=_ag .ParsePdfTime (dateStr );if _ddgge !=nil {return PdfDate {},_ddgge ;};return NewPdfDateFromTime (_fabda );};
// SetPdfKeywords sets the Keywords attribute of the output PDF.
func SetPdfKeywords (keywords string ){_baacg .Lock ();defer _baacg .Unlock ();_fdcca =keywords };
// ToPdfObject returns the PDF representation of the shading pattern.
func (_eeec *PdfShadingPattern )ToPdfObject ()_fg .PdfObject {_eeec .PdfPattern .ToPdfObject ();_dgccb :=_eeec .getDict ();if _eeec .Shading !=nil {_dgccb .Set ("\u0053h\u0061\u0064\u0069\u006e\u0067",_eeec .Shading .ToPdfObject ());};if _eeec .Matrix !=nil {_dgccb .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_eeec .Matrix );
};if _eeec .ExtGState !=nil {_dgccb .Set ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e",_eeec .ExtGState );};return _eeec ._gaac ;};
// 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 *_fg .PdfObjectStream ;Data []byte ;_dgca *_fg .PdfIndirectObject ;_cebf *_fg .PdfObjectStream ;};
// AddAnnotation appends `annot` to the list of page annotations.
func (_ageaa *PdfPage )AddAnnotation (annot *PdfAnnotation ){if _ageaa ._fbbb ==nil {_ageaa .GetAnnotations ();};_ageaa ._fbbb =append (_ageaa ._fbbb ,annot );};
// 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 ;
// DecodeArray returns the range of color component values in DeviceCMYK colorspace.
func (_feeee *PdfColorspaceDeviceCMYK )DecodeArray ()[]float64 {return []float64 {0.0,1.0,0.0,1.0,0.0,1.0,0.0,1.0};};func (_cff *PdfReader )newPdfAnnotationPopupFromDict (_bgbe *_fg .PdfObjectDictionary )(*PdfAnnotationPopup ,error ){_agaf :=PdfAnnotationPopup {};
_agaf .Parent =_bgbe .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");_agaf .Open =_bgbe .Get ("\u004f\u0070\u0065\u006e");return &_agaf ,nil ;};
// GetXHeight returns the XHeight of the font `descriptor`.
func (_bbdfb *PdfFontDescriptor )GetXHeight ()(float64 ,error ){return _fg .GetNumberAsFloat (_bbdfb .XHeight );};
// HasFontByName checks whether a font is defined by the specified keyName.
func (_eede *PdfPageResources )HasFontByName (keyName _fg .PdfObjectName )bool {_ ,_bbfbf :=_eede .GetFontByName (keyName );return _bbfbf ;};
// Register registers (caches) a model to primitive object relationship.
func (_dfbaf *modelManager )Register (primitive _fg .PdfObject ,model PdfModel ){_dfbaf ._abga [model ]=primitive ;_dfbaf ._fbbfaf [primitive ]=model ;};func _dadgg (_adfba *_fg .PdfObjectDictionary )(*PdfShadingType7 ,error ){_fgdd :=PdfShadingType7 {};
_abfed :=_adfba .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065");if _abfed ==nil {_aa .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 ;};_acedb ,_gbddc :=_abfed .(*_fg .PdfObjectInteger );if !_gbddc {_aa .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",_abfed );
return nil ,_fg .ErrTypeError ;};_fgdd .BitsPerCoordinate =_acedb ;_abfed =_adfba .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074");if _abfed ==nil {_aa .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 ;};_acedb ,_gbddc =_abfed .(*_fg .PdfObjectInteger );if !_gbddc {_aa .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",_abfed );
return nil ,_fg .ErrTypeError ;};_fgdd .BitsPerComponent =_acedb ;_abfed =_adfba .Get ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067");if _abfed ==nil {_aa .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 ;};_acedb ,_gbddc =_abfed .(*_fg .PdfObjectInteger );if !_gbddc {_aa .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",_abfed );
return nil ,_fg .ErrTypeError ;};_fgdd .BitsPerComponent =_acedb ;_abfed =_adfba .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");if _abfed ==nil {_aa .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 ;};_gfff ,_gbddc :=_abfed .(*_fg .PdfObjectArray );if !_gbddc {_aa .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",_abfed );
return nil ,_fg .ErrTypeError ;};_fgdd .Decode =_gfff ;if _ddeea :=_adfba .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");_ddeea !=nil {_fgdd .Function =[]PdfFunction {};if _dabde ,_bdffg :=_ddeea .(*_fg .PdfObjectArray );_bdffg {for _ ,_fbgfb :=range _dabde .Elements (){_eaage ,_ecdbef :=_defgb (_fbgfb );
if _ecdbef !=nil {_aa .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",_ecdbef );return nil ,_ecdbef ;};_fgdd .Function =append (_fgdd .Function ,_eaage );
};}else {_abde ,_ccbge :=_defgb (_ddeea );if _ccbge !=nil {_aa .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",_ccbge );return nil ,_ccbge ;
};_fgdd .Function =append (_fgdd .Function ,_abde );};};return &_fgdd ,nil ;};func (_gaga *PdfWriter )writeObjects (){_aa .Log .Trace ("\u0057\u0072\u0069\u0074\u0069\u006e\u0067\u0020\u0025d\u0020\u006f\u0062\u006a",len (_gaga ._bbfd ));_gaga ._aafgd =make (map[int ]crossReference );
_gaga ._aafgd [0]=crossReference {Type :0,ObjectNumber :0,Generation :0xFFFF};if _gaga ._abeeb .ObjectMap !=nil {for _babcf ,_gdgbf :=range _gaga ._abeeb .ObjectMap {if _babcf ==0{continue ;};if _gdgbf .XType ==_fg .XrefTypeObjectStream {_cffead :=crossReference {Type :2,ObjectNumber :_gdgbf .OsObjNumber ,Index :_gdgbf .OsObjIndex };
_gaga ._aafgd [_babcf ]=_cffead ;};if _gdgbf .XType ==_fg .XrefTypeTableEntry {_ebfae :=crossReference {Type :1,ObjectNumber :_gdgbf .ObjectNumber ,Offset :_gdgbf .Offset };_gaga ._aafgd [_babcf ]=_ebfae ;};};};};
// HasExtGState checks whether a font is defined by the specified keyName.
func (_agcgf *PdfPageResources )HasExtGState (keyName _fg .PdfObjectName )bool {_ ,_cebad :=_agcgf .GetFontByName (keyName );return _cebad ;};func (_gec *PdfReader )newPdfAnnotationStampFromDict (_fec *_fg .PdfObjectDictionary )(*PdfAnnotationStamp ,error ){_bcgb :=PdfAnnotationStamp {};
_bbc ,_cbed :=_gec .newPdfAnnotationMarkupFromDict (_fec );if _cbed !=nil {return nil ,_cbed ;};_bcgb .PdfAnnotationMarkup =_bbc ;_bcgb .Name =_fec .Get ("\u004e\u0061\u006d\u0065");return &_bcgb ,nil ;};
// Evaluate runs the function on the passed in slice and returns the results.
func (_efea *PdfFunctionType0 )Evaluate (x []float64 )([]float64 ,error ){if len (x )!=_efea .NumInputs {_aa .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 ,_ce .New ("\u0072\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b\u0020e\u0072\u0072\u006f\u0072");};if _efea ._fccae ==nil {_fcgac :=_efea .processSamples ();if _fcgac !=nil {return nil ,_fcgac ;};};_ffceg :=_efea .Encode ;if _ffceg ==nil {_ffceg =[]float64 {};
for _edgd :=0;_edgd < len (_efea .Size );_edgd ++{_ffceg =append (_ffceg ,0);_ffceg =append (_ffceg ,float64 (_efea .Size [_edgd ]-1));};};_fcagg :=_efea .Decode ;if _fcagg ==nil {_fcagg =_efea .Range ;};_abfbe :=make ([]int ,len (x ));for _ceaae :=0;_ceaae < len (x );
_ceaae ++{_cced :=x [_ceaae ];_eaca :=_ef .Min (_ef .Max (_cced ,_efea .Domain [2*_ceaae ]),_efea .Domain [2*_ceaae +1]);_bcdae :=_cc .LinearInterpolate (_eaca ,_efea .Domain [2*_ceaae ],_efea .Domain [2*_ceaae +1],_ffceg [2*_ceaae ],_ffceg [2*_ceaae +1]);
_fgaead :=_ef .Min (_ef .Max (_bcdae ,0),float64 (_efea .Size [_ceaae ]-1));_afeg :=int (_ef .Floor (_fgaead +0.5));if _afeg < 0{_afeg =0;}else if _afeg > _efea .Size [_ceaae ]{_afeg =_efea .Size [_ceaae ]-1;};_abfbe [_ceaae ]=_afeg ;};_ecdbfe :=_abfbe [0];
for _cgdbe :=1;_cgdbe < _efea .NumInputs ;_cgdbe ++{_bgga :=_abfbe [_cgdbe ];for _fcaa :=0;_fcaa < _cgdbe ;_fcaa ++{_bgga *=_efea .Size [_fcaa ];};_ecdbfe +=_bgga ;};_ecdbfe *=_efea .NumOutputs ;var _bfacg []float64 ;for _adcgcg :=0;_adcgcg < _efea .NumOutputs ;
_adcgcg ++{_eggcc :=_ecdbfe +_adcgcg ;if _eggcc >=len (_efea ._fccae ){_aa .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 ;};_babd :=_efea ._fccae [_eggcc ];_faff :=_cc .LinearInterpolate (float64 (_babd ),0,_ef .Pow (2,float64 (_efea .BitsPerSample )),_fcagg [2*_adcgcg ],_fcagg [2*_adcgcg +1]);_gdeae :=_ef .Min (_ef .Max (_faff ,_efea .Range [2*_adcgcg ]),_efea .Range [2*_adcgcg +1]);
_bfacg =append (_bfacg ,_gdeae );};return _bfacg ,nil ;};
// Duplicate creates a duplicate page based on the current one and returns it.
func (_ffgfe *PdfPage )Duplicate ()*PdfPage {_daac :=*_ffgfe ;_daac ._eebge =_fg .MakeDict ();_daac ._aebf =_fg .MakeIndirectObject (_daac ._eebge );_daac ._cceb =*_daac ._eebge ;return &_daac ;};
// SetPdfAuthor sets the Author attribute of the output PDF.
func SetPdfAuthor (author string ){_baacg .Lock ();defer _baacg .Unlock ();_dfeegf =author };
// ToPdfObject returns a stream object.
func (_fafba *XObjectImage )ToPdfObject ()_fg .PdfObject {_fdcff :=_fafba ._eafbc ;_egfa :=_fdcff .PdfObjectDictionary ;if _fafba .Filter !=nil {_egfa =_fafba .Filter .MakeStreamDict ();_fdcff .PdfObjectDictionary =_egfa ;};_egfa .Set ("\u0054\u0079\u0070\u0065",_fg .MakeName ("\u0058O\u0062\u006a\u0065\u0063\u0074"));
_egfa .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fg .MakeName ("\u0049\u006d\u0061g\u0065"));_egfa .Set ("\u0057\u0069\u0064t\u0068",_fg .MakeInteger (*(_fafba .Width )));_egfa .Set ("\u0048\u0065\u0069\u0067\u0068\u0074",_fg .MakeInteger (*(_fafba .Height )));
if _fafba .BitsPerComponent !=nil {_egfa .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_fg .MakeInteger (*(_fafba .BitsPerComponent )));};if _fafba .ColorSpace !=nil {_egfa .SetIfNotNil ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065",_fafba .ColorSpace .ToPdfObject ());
};_egfa .SetIfNotNil ("\u0049\u006e\u0074\u0065\u006e\u0074",_fafba .Intent );_egfa .SetIfNotNil ("\u0049m\u0061\u0067\u0065\u004d\u0061\u0073k",_fafba .ImageMask );_egfa .SetIfNotNil ("\u004d\u0061\u0073\u006b",_fafba .Mask );_bddbd :=_egfa .Get ("\u0044\u0065\u0063\u006f\u0064\u0065")!=nil ;
if _fafba .Decode ==nil &&_bddbd {_egfa .Remove ("\u0044\u0065\u0063\u006f\u0064\u0065");}else if _fafba .Decode !=nil {_egfa .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_fafba .Decode );};_egfa .SetIfNotNil ("I\u006e\u0074\u0065\u0072\u0070\u006f\u006c\u0061\u0074\u0065",_fafba .Interpolate );
_egfa .SetIfNotNil ("\u0041\u006c\u0074e\u0072\u006e\u0061\u0074\u0069\u0076\u0065\u0073",_fafba .Alternatives );_egfa .SetIfNotNil ("\u0053\u004d\u0061s\u006b",_fafba .SMask );_egfa .SetIfNotNil ("S\u004d\u0061\u0073\u006b\u0049\u006e\u0044\u0061\u0074\u0061",_fafba .SMaskInData );
_egfa .SetIfNotNil ("\u004d\u0061\u0074t\u0065",_fafba .Matte );_egfa .SetIfNotNil ("\u004e\u0061\u006d\u0065",_fafba .Name );_egfa .SetIfNotNil ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074",_fafba .StructParent );_egfa .SetIfNotNil ("\u0049\u0044",_fafba .ID );
_egfa .SetIfNotNil ("\u004f\u0050\u0049",_fafba .OPI );_egfa .SetIfNotNil ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061",_fafba .Metadata );_egfa .SetIfNotNil ("\u004f\u0043",_fafba .OC );_egfa .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_fg .MakeInteger (int64 (len (_fafba .Stream ))));
_fdcff .Stream =_fafba .Stream ;return _fdcff ;};func _bfab (_baaa _fg .PdfObject ,_cggdaa bool )(*PdfFont ,error ){_fbcc ,_gagcd ,_fcagd :=_gafdf (_baaa );if _fbcc !=nil {_gace (_fbcc );};if _fcagd !=nil {if _fcagd ==ErrType1CFontNotSupported {_dcce ,_bceg :=_agccg (_fbcc ,_gagcd ,nil );
if _bceg !=nil {_aa .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",_gagcd ,_bceg );
return nil ,_fcagd ;};return &PdfFont {_gcaeff :_dcce },_fcagd ;};return nil ,_fcagd ;};_abeea :=&PdfFont {};switch _gagcd ._ggcfc {case "\u0054\u0079\u0070e\u0030":if !_cggdaa {_aa .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",_gagcd );
return nil ,_ce .New ("\u0063\u0079\u0063\u006cic\u0061\u006c\u0020\u0074\u0079\u0070\u0065\u0030\u0020\u006c\u006f\u0061\u0064\u0069n\u0067");};_fdcd ,_bbcf :=_afdf (_fbcc ,_gagcd );if _bbcf !=nil {_aa .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",_gagcd ,_bbcf );
return nil ,_bbcf ;};_abeea ._gcaeff =_fdcd ;case "\u0054\u0079\u0070e\u0031","\u004dM\u0054\u0079\u0070\u0065\u0031","\u0054\u0072\u0075\u0065\u0054\u0079\u0070\u0065":var _bcab *pdfFontSimple ;_accdc ,_bgac :=_eed .NewStdFontByName (_eed .StdFontName (_gagcd ._aefg ));
if _bgac {_bcfc :=_dfebg (_accdc );_abeea ._gcaeff =&_bcfc ;_ceaf :=_fg .TraceToDirectObject (_bcfc .ToPdfObject ());_ddad ,_cbbe ,_bebf :=_gafdf (_ceaf );if _bebf !=nil {_aa .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",_gagcd ,_bcfc );
return nil ,_bebf ;};for _ ,_bcff :=range _fbcc .Keys (){_ddad .Set (_bcff ,_fbcc .Get (_bcff ));};_bcab ,_bebf =_agccg (_ddad ,_cbbe ,_bcfc ._fcad );if _bebf !=nil {_aa .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",_gagcd ,_bcfc );
return nil ,_bebf ;};_bcab ._fcgbd =_bcfc ._fcgbd ;_bcab ._dacg =_bcfc ._dacg ;if _bcab ._fdfca ==nil {_bcab ._fdfca =_bcfc ._fdfca ;};}else {_bcab ,_fcagd =_agccg (_fbcc ,_gagcd ,nil );if _fcagd !=nil {_aa .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",_gagcd ,_fcagd );
return nil ,_fcagd ;};};_fcagd =_bcab .addEncoding ();if _fcagd !=nil {return nil ,_fcagd ;};if _bgac {_bcab .updateStandard14Font ();};if _bgac &&_bcab ._bdgda ==nil &&_bcab ._fcad ==nil {_aa .Log .Error ("\u0073\u0069\u006d\u0070\u006c\u0065\u0066\u006f\u006e\u0074\u003d\u0025\u0073",_bcab );
_aa .Log .Error ("\u0066n\u0074\u003d\u0025\u002b\u0076",_accdc );};if len (_bcab ._fcgbd )==0{_aa .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a \u004e\u006f\u0020\u0077\u0069d\u0074h\u0073.\u0020\u0066\u006f\u006e\u0074\u003d\u0025s",_bcab );};_abeea ._gcaeff =_bcab ;
case "\u0054\u0079\u0070e\u0033":_aaad ,_aded :=_cebge (_fbcc ,_gagcd );if _aded !=nil {_aa .Log .Debug ("E\u0052\u0052\u004f\u0052\u003a\u0020W\u0068\u0069\u006c\u0065\u0020\u006co\u0061\u0064\u0069\u006e\u0067\u0020\u0074y\u0070\u0065\u0033\u0020\u0066\u006f\u006e\u0074\u003a\u0020%\u0076",_aded );
return nil ,_aded ;};_abeea ._gcaeff =_aaad ;case "\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0030":_abad ,_caag :=_ebff (_fbcc ,_gagcd );if _caag !=nil {_aa .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",_caag );
return nil ,_caag ;};_abeea ._gcaeff =_abad ;case "\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032":_caec ,_edacc :=_ffcb (_fbcc ,_gagcd );if _edacc !=nil {_aa .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",_gagcd ,_edacc );
return nil ,_edacc ;};_abeea ._gcaeff =_caec ;default:_aa .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",_gagcd );
return nil ,_d .Errorf ("\u0075\u006e\u0073\u0075\u0070\u0070\u006f\u0072\u0074\u0065d\u0020\u0066\u006f\u006e\u0074\u0020\u0074y\u0070\u0065\u003a\u0020\u0066\u006f\u006e\u0074\u003d\u0025\u0073",_gagcd );};return _abeea ,nil ;};func (_ffce fontCommon )isCIDFont ()bool {if _ffce ._ggcfc ==""{_aa .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",_ffce );
};_effd :=false ;switch _ffce ._ggcfc {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":_effd =true ;};_aa .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",_effd ,_ffce );
return _effd ;};func (_ffbba PdfFont )actualFont ()pdfFont {if _ffbba ._gcaeff ==nil {_aa .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",_ffbba );
};return _ffbba ._gcaeff ;};func (_dfffa *PdfReader )newPdfPageFromDict (_dcgc *_fg .PdfObjectDictionary )(*PdfPage ,error ){_gcbbf :=NewPdfPage ();_gcbbf ._eebge =_dcgc ;_gcbbf ._cceb =*_dcgc ;_bgcfa :=*_dcgc ;_dbecf ,_daeg :=_bgcfa .Get ("\u0054\u0079\u0070\u0065").(*_fg .PdfObjectName );
if !_daeg {return nil ,_ce .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 *_dbecf !="\u0050\u0061\u0067\u0065"{return nil ,_ce .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 _dgddc :=_bgcfa .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");_dgddc !=nil {_gcbbf .Parent =_dgddc ;};if _adfeb :=_bgcfa .Get ("\u004c\u0061\u0073t\u004d\u006f\u0064\u0069\u0066\u0069\u0065\u0064");_adfeb !=nil {_faccd ,_fbgc :=_fg .GetString (_adfeb );
if !_fbgc {return nil ,_ce .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");};
_bddae ,_cfeag :=NewPdfDate (_faccd .Str ());if _cfeag !=nil {return nil ,_cfeag ;};_gcbbf .LastModified =&_bddae ;};if _egafe :=_bgcfa .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");_egafe !=nil &&!_fg .IsNullObject (_egafe ){_abcgc ,_ecdg :=_fg .GetDict (_egafe );
if !_ecdg {return nil ,_d .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0065\u0073\u006f\u0075\u0072\u0063e\u0020d\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u0020\u0028\u0025\u0054\u0029",_egafe );};var _cggce error ;_gcbbf .Resources ,_cggce =NewPdfPageResourcesFromDict (_abcgc );
if _cggce !=nil {return nil ,_cggce ;};}else {_efcdd ,_gbcb :=_gcbbf .getParentResources ();if _gbcb !=nil {return nil ,_gbcb ;};if _efcdd ==nil {_efcdd =NewPdfPageResources ();};_gcbbf .Resources =_efcdd ;};if _cecga :=_bgcfa .Get ("\u004d\u0065\u0064\u0069\u0061\u0042\u006f\u0078");
_cecga !=nil {_babbc ,_fdbff :=_fg .GetArray (_cecga );if !_fdbff {return nil ,_ce .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 _dbab error ;
_gcbbf .MediaBox ,_dbab =NewPdfRectangle (*_babbc );if _dbab !=nil {return nil ,_dbab ;};};if _eefe :=_bgcfa .Get ("\u0043r\u006f\u0070\u0042\u006f\u0078");_eefe !=nil {_feeegb ,_dcfcc :=_fg .GetArray (_eefe );if !_dcfcc {return nil ,_ce .New ("\u0070a\u0067\u0065\u0020\u0043r\u006f\u0070\u0042\u006f\u0078 \u006eo\u0074 \u0061\u006e\u0020\u0061\u0072\u0072\u0061y");
};var _ffdfb error ;_gcbbf .CropBox ,_ffdfb =NewPdfRectangle (*_feeegb );if _ffdfb !=nil {return nil ,_ffdfb ;};};if _gefa :=_bgcfa .Get ("\u0042\u006c\u0065\u0065\u0064\u0042\u006f\u0078");_gefa !=nil {_dfgae ,_gcaeg :=_fg .GetArray (_gefa );if !_gcaeg {return nil ,_ce .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 _bdbfc error ;_gcbbf .BleedBox ,_bdbfc =NewPdfRectangle (*_dfgae );if _bdbfc !=nil {return nil ,_bdbfc ;};};if _bdff :=_bgcfa .Get ("\u0054r\u0069\u006d\u0042\u006f\u0078");_bdff !=nil {_abdaf ,_cfdg :=_fg .GetArray (_bdff );if !_cfdg {return nil ,_ce .New ("\u0070a\u0067\u0065\u0020\u0054r\u0069\u006d\u0042\u006f\u0078 \u006eo\u0074 \u0061\u006e\u0020\u0061\u0072\u0072\u0061y");
};var _gbgef error ;_gcbbf .TrimBox ,_gbgef =NewPdfRectangle (*_abdaf );if _gbgef !=nil {return nil ,_gbgef ;};};if _bgdga :=_bgcfa .Get ("\u0041\u0072\u0074\u0042\u006f\u0078");_bgdga !=nil {_efdg ,_gddgg :=_fg .GetArray (_bgdga );if !_gddgg {return nil ,_ce .New ("\u0070a\u0067\u0065\u0020\u0041\u0072\u0074\u0042\u006f\u0078\u0020\u006eo\u0074\u0020\u0061\u006e\u0020\u0061\u0072\u0072\u0061\u0079");
};var _fbdgd error ;_gcbbf .ArtBox ,_fbdgd =NewPdfRectangle (*_efdg );if _fbdgd !=nil {return nil ,_fbdgd ;};};if _badee :=_bgcfa .Get ("\u0042\u006f\u0078C\u006f\u006c\u006f\u0072\u0049\u006e\u0066\u006f");_badee !=nil {_gcbbf .BoxColorInfo =_badee ;};
if _dbag :=_bgcfa .Get ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073");_dbag !=nil {_gcbbf .Contents =_dbag ;};if _befge :=_bgcfa .Get ("\u0052\u006f\u0074\u0061\u0074\u0065");_befge !=nil {_gfacc ,_eccbd :=_fg .GetNumberAsInt64 (_befge );if _eccbd !=nil {return nil ,_ce .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");
};_gcbbf .Rotate =&_gfacc ;};if _dgdgab :=_bgcfa .Get ("\u0047\u0072\u006fu\u0070");_dgdgab !=nil {_gcbbf .Group =_dgdgab ;};if _bggae :=_bgcfa .Get ("\u0054\u0068\u0075m\u0062");_bggae !=nil {_gcbbf .Thumb =_bggae ;};if _eeebcb :=_bgcfa .Get ("\u0042");
_eeebcb !=nil {_gcbbf .B =_eeebcb ;};if _fcac :=_bgcfa .Get ("\u0044\u0075\u0072");_fcac !=nil {_gcbbf .Dur =_fcac ;};if _edbaa :=_bgcfa .Get ("\u0054\u0072\u0061n\u0073");_edbaa !=nil {_gcbbf .Trans =_edbaa ;};if _gbag :=_bgcfa .Get ("\u0041\u0041");_gbag !=nil {_gcbbf .AA =_gbag ;
};if _debde :=_bgcfa .Get ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");_debde !=nil {_gcbbf .Metadata =_debde ;};if _eagcd :=_bgcfa .Get ("\u0050i\u0065\u0063\u0065\u0049\u006e\u0066o");_eagcd !=nil {_gcbbf .PieceInfo =_eagcd ;};if _aeac :=_bgcfa .Get ("\u0053\u0074\u0072\u0075\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074\u0073");
_aeac !=nil {_gcbbf .StructParents =_aeac ;};if _bcgdg :=_bgcfa .Get ("\u0049\u0044");_bcgdg !=nil {_gcbbf .ID =_bcgdg ;};if _gaefb :=_bgcfa .Get ("\u0050\u005a");_gaefb !=nil {_gcbbf .PZ =_gaefb ;};if _dcgb :=_bgcfa .Get ("\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006fn\u0049\u006e\u0066\u006f");
_dcgb !=nil {_gcbbf .SeparationInfo =_dcgb ;};if _abega :=_bgcfa .Get ("\u0054\u0061\u0062\u0073");_abega !=nil {_gcbbf .Tabs =_abega ;};if _dfbee :=_bgcfa .Get ("T\u0065m\u0070\u006c\u0061\u0074\u0065\u0049\u006e\u0073t\u0061\u006e\u0074\u0069at\u0065\u0064");
_dfbee !=nil {_gcbbf .TemplateInstantiated =_dfbee ;};if _cccad :=_bgcfa .Get ("\u0050r\u0065\u0073\u0053\u0074\u0065\u0070s");_cccad !=nil {_gcbbf .PresSteps =_cccad ;};if _dgcf :=_bgcfa .Get ("\u0055\u0073\u0065\u0072\u0055\u006e\u0069\u0074");_dgcf !=nil {_gcbbf .UserUnit =_dgcf ;
};if _fcdg :=_bgcfa .Get ("\u0056\u0050");_fcdg !=nil {_gcbbf .VP =_fcdg ;};if _fabge :=_bgcfa .Get ("\u0041\u006e\u006e\u006f\u0074\u0073");_fabge !=nil {_gcbbf .Annots =_fabge ;};_gcbbf ._dedef =_dfffa ;return _gcbbf ,nil ;};
// GetCapHeight returns the CapHeight of the font `descriptor`.
func (_gggcd *PdfFontDescriptor )GetCapHeight ()(float64 ,error ){return _fg .GetNumberAsFloat (_gggcd .CapHeight );};type pdfCIDFontType0 struct{fontCommon ;_deadf *_fg .PdfIndirectObject ;_bcbg _dg .TextEncoder ;
// Table 117 Entries in a CIDFont dictionary (page 269)
// (Required) Dictionary that defines the character collection of the CIDFont.
// See Table 116.
CIDSystemInfo *_fg .PdfObjectDictionary ;
// Glyph metrics fields (optional).
DW _fg .PdfObject ;W _fg .PdfObject ;DW2 _fg .PdfObject ;W2 _fg .PdfObject ;_fceed map[_dg .CharCode ]float64 ;_cgda float64 ;};
// ReaderOpts defines options for creating PdfReader instances.
type ReaderOpts struct{
// Password password of the PDF file encryption.
// Default: empty ("").
Password string ;
// LazyLoad set if the PDF file would be loaded using lazy-loading mode.
// Default: true.
LazyLoad bool ;
// ComplianceMode set if parsed PDF file should contain meta information for the verifiers of the compliance standards like PDF/A.
ComplianceMode bool ;};
// 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 (_aegfd _ff .Reader )(*Image ,error );
// NewImageFromGoImage loads a NRGBA32 unidoc Image from a standard Go image structure.
NewImageFromGoImage (_abdc _ac .Image )(*Image ,error );
// NewGrayImageFromGoImage loads a grayscale unidoc Image from a standard Go image structure.
NewGrayImageFromGoImage (_fagae _ac .Image )(*Image ,error );
// Compress an image.
Compress (_gfab *Image ,_ecfag int64 )(*Image ,error );};
// GetContainingPdfObject returns the container of the resources object (indirect object).
func (_bfeff *PdfPageResources )GetContainingPdfObject ()_fg .PdfObject {return _bfeff ._cgce };func _agcbc (_fgge _fg .PdfObject ,_bdebd *PdfReader )(*OutlineDest ,error ){_efaf ,_aacda :=_fg .GetArray (_fgge );if !_aacda {return nil ,_ce .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");
};_cafbf :=_efaf .Len ();if _cafbf < 2{return nil ,_d .Errorf ("\u0069n\u0076\u0061l\u0069\u0064\u0020\u006fu\u0074\u006c\u0069n\u0065\u0020\u0064\u0065\u0073\u0074\u0069\u006e\u0061ti\u006f\u006e\u0020a\u0072\u0072a\u0079\u0020\u006c\u0065\u006e\u0067t\u0068\u003a \u0025\u0064",_cafbf );
};_gdcab :=&OutlineDest {Mode :"\u0046\u0069\u0074"};_cdab :=_efaf .Get (0);if _bfge ,_ecdfe :=_fg .GetIndirect (_cdab );_ecdfe {if _ ,_aegag ,_dgagbb :=_bdebd .PageFromIndirectObject (_bfge );_dgagbb ==nil {_gdcab .Page =int64 (_aegag -1);}else {_aa .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",_bfge );
};_gdcab .PageObj =_bfge ;}else if _baee ,_adgcd :=_fg .GetIntVal (_cdab );_adgcd {if _baee >=0&&_baee < len (_bdebd .PageList ){_gdcab .PageObj =_bdebd .PageList [_baee ].GetPageAsIndirectObject ();}else {_aa .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",_baee );
};_gdcab .Page =int64 (_baee );}else {return nil ,_d .Errorf ("\u0069\u006eva\u006c\u0069\u0064 \u006f\u0075\u0074\u006cine\u0020de\u0073\u0074\u0069\u006e\u0061\u0074\u0069on\u0020\u0070\u0061\u0067\u0065\u003a\u0020%\u0054",_cdab );};_gbgde ,_aacda :=_fg .GetNameVal (_efaf .Get (1));
if !_aacda {_aa .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",_efaf .Get (1));
return _gdcab ,nil ;};switch _gbgde {case "\u0046\u0069\u0074","\u0046\u0069\u0074\u0042":case "\u0046\u0069\u0074\u0048","\u0046\u0069\u0074B\u0048":if _cafbf > 2{_gdcab .Y ,_ =_fg .GetNumberAsFloat (_fg .TraceToDirectObject (_efaf .Get (2)));};case "\u0046\u0069\u0074\u0056","\u0046\u0069\u0074B\u0056":if _cafbf > 2{_gdcab .X ,_ =_fg .GetNumberAsFloat (_fg .TraceToDirectObject (_efaf .Get (2)));
};case "\u0058\u0059\u005a":if _cafbf > 4{_gdcab .X ,_ =_fg .GetNumberAsFloat (_fg .TraceToDirectObject (_efaf .Get (2)));_gdcab .Y ,_ =_fg .GetNumberAsFloat (_fg .TraceToDirectObject (_efaf .Get (3)));_gdcab .Zoom ,_ =_fg .GetNumberAsFloat (_fg .TraceToDirectObject (_efaf .Get (4)));
};default:_gbgde ="\u0046\u0069\u0074";};_gdcab .Mode =_gbgde ;return _gdcab ,nil ;};
// NewPdfPage returns a new PDF page.
func NewPdfPage ()*PdfPage {_dabfg :=PdfPage {};_dabfg ._eebge =_fg .MakeDict ();_dabfg .Resources =NewPdfPageResources ();_gbddd :=_fg .PdfIndirectObject {};_gbddd .PdfObject =_dabfg ._eebge ;_dabfg ._aebf =&_gbddd ;_dabfg ._cceb =*_dabfg ._eebge ;return &_dabfg ;
};func _ffcb (_cafa *_fg .PdfObjectDictionary ,_aafee *fontCommon )(*pdfCIDFontType2 ,error ){if _aafee ._ggcfc !="\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032"{_aa .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",_aafee );
return nil ,_fg .ErrRangeError ;};_afgg :=_ffaa (_aafee );_bbdgb ,_ddbdc :=_fg .GetDict (_cafa .Get ("\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f"));if !_ddbdc {_aa .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",_aafee );
return nil ,ErrRequiredAttributeMissing ;};_afgg .CIDSystemInfo =_bbdgb ;_afgg .DW =_cafa .Get ("\u0044\u0057");_afgg .W =_cafa .Get ("\u0057");_afgg .DW2 =_cafa .Get ("\u0044\u0057\u0032");_afgg .W2 =_cafa .Get ("\u0057\u0032");_afgg .CIDToGIDMap =_cafa .Get ("C\u0049\u0044\u0054\u006f\u0047\u0049\u0044\u004d\u0061\u0070");
_afgg ._gagd =1000.0;if _dcab ,_ffadb :=_fg .GetNumberAsFloat (_afgg .DW );_ffadb ==nil {_afgg ._gagd =_dcab ;};_edaff ,_gfde :=_bcabg (_afgg .W );if _gfde !=nil {return nil ,_gfde ;};if _edaff ==nil {_edaff =map[_dg .CharCode ]float64 {};};_afgg ._dbgce =_edaff ;
return _afgg ,nil ;};func _fgbd (_caac _fg .PdfObject )(*PdfColorspaceSpecialSeparation ,error ){_fgcfg :=NewPdfColorspaceSpecialSeparation ();if _edba ,_gcge :=_caac .(*_fg .PdfIndirectObject );_gcge {_fgcfg ._adacb =_edba ;};_caac =_fg .TraceToDirectObject (_caac );
_bddeg ,_bffg :=_caac .(*_fg .PdfObjectArray );if !_bffg {return nil ,_d .Errorf ("\u0073\u0065p\u0061\u0072\u0061\u0074\u0069\u006f\u006e\u0020\u0043\u0053\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006f\u0062je\u0063\u0074");};if _bddeg .Len ()!=4{return nil ,_d .Errorf ("\u0073\u0065p\u0061\u0072\u0061\u0074i\u006f\u006e \u0043\u0053\u003a\u0020\u0049\u006e\u0063\u006fr\u0072\u0065\u0063\u0074\u0020\u0061\u0072\u0072\u0061\u0079\u0020\u006ce\u006e\u0067\u0074\u0068");
};_caac =_bddeg .Get (0);_ecbab ,_bffg :=_caac .(*_fg .PdfObjectName );if !_bffg {return nil ,_d .Errorf ("\u0073\u0065\u0070ar\u0061\u0074\u0069\u006f\u006e\u0020\u0043\u0053\u003a \u0069n\u0076a\u006ci\u0064\u0020\u0066\u0061\u006d\u0069\u006c\u0079\u0020\u006e\u0061\u006d\u0065");
};if *_ecbab !="\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e"{return nil ,_d .Errorf ("\u0073\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e\u0020\u0043\u0053\u003a\u0020w\u0072o\u006e\u0067\u0020\u0066\u0061\u006d\u0069\u006c\u0079\u0020\u006e\u0061\u006d\u0065");
};_caac =_bddeg .Get (1);_ecbab ,_bffg =_caac .(*_fg .PdfObjectName );if !_bffg {return nil ,_d .Errorf ("\u0073\u0065pa\u0072\u0061\u0074i\u006f\u006e\u0020\u0043S: \u0049nv\u0061\u006c\u0069\u0064\u0020\u0063\u006flo\u0072\u0061\u006e\u0074\u0020\u006e\u0061m\u0065");
};_fgcfg .ColorantName =_ecbab ;_caac =_bddeg .Get (2);_cgfd ,_efcf :=NewPdfColorspaceFromPdfObject (_caac );if _efcf !=nil {return nil ,_efcf ;};_fgcfg .AlternateSpace =_cgfd ;_dfdd ,_efcf :=_defgb (_bddeg .Get (3));if _efcf !=nil {return nil ,_efcf ;
};_fgcfg .TintTransform =_dfdd ;return _fgcfg ,nil ;};
// ToInteger convert to an integer format.
func (_acab *PdfColorDeviceRGB )ToInteger (bits int )[3]uint32 {_gbae :=_ef .Pow (2,float64 (bits ))-1;return [3]uint32 {uint32 (_gbae *_acab .R ()),uint32 (_gbae *_acab .G ()),uint32 (_gbae *_acab .B ())};};
// GetCatalogMarkInfo gets catalog MarkInfo object.
func (_cedef *PdfReader )GetCatalogMarkInfo ()(_fg .PdfObject ,bool ){if _cedef ._cgegd ==nil {return nil ,false ;};_bgaca :=_cedef ._cgegd .Get ("\u004d\u0061\u0072\u006b\u0049\u006e\u0066\u006f");return _bgaca ,_bgaca !=nil ;};
// ToGoTime returns the date in time.Time format.
func (_aabbf PdfDate )ToGoTime ()_g .Time {_cabbg :=int (_aabbf ._eedgc *60*60+_aabbf ._gfcga *60);switch _aabbf ._ebdc {case '-':_cabbg =-_cabbg ;case 'Z':_cabbg =0;};_badbg :=_d .Sprintf ("\u0055\u0054\u0043\u0025\u0063\u0025\u002e\u0032\u0064\u0025\u002e\u0032\u0064",_aabbf ._ebdc ,_aabbf ._eedgc ,_aabbf ._gfcga );
_ccgag :=_g .FixedZone (_badbg ,_cabbg );return _g .Date (int (_aabbf ._fddef ),_g .Month (_aabbf ._agbab ),int (_aabbf ._adaba ),int (_aabbf ._bedbf ),int (_aabbf ._fgdec ),int (_aabbf ._cfebe ),0,_ccgag );};func _dfebg (_fdfgff _eed .StdFont )pdfFontSimple {_fecfd :=_fdfgff .Descriptor ();
return pdfFontSimple {fontCommon :fontCommon {_ggcfc :"\u0054\u0079\u0070e\u0031",_aefg :_fdfgff .Name ()},_dacg :_fdfgff .GetMetricsTable (),_fdfca :&PdfFontDescriptor {FontName :_fg .MakeName (string (_fecfd .Name )),FontFamily :_fg .MakeName (_fecfd .Family ),FontWeight :_fg .MakeFloat (float64 (_fecfd .Weight )),Flags :_fg .MakeInteger (int64 (_fecfd .Flags )),FontBBox :_fg .MakeArrayFromFloats (_fecfd .BBox [:]),ItalicAngle :_fg .MakeFloat (_fecfd .ItalicAngle ),Ascent :_fg .MakeFloat (_fecfd .Ascent ),Descent :_fg .MakeFloat (_fecfd .Descent ),CapHeight :_fg .MakeFloat (_fecfd .CapHeight ),XHeight :_fg .MakeFloat (_fecfd .XHeight ),StemV :_fg .MakeFloat (_fecfd .StemV ),StemH :_fg .MakeFloat (_fecfd .StemH )},_fcad :_fdfgff .Encoder ()};
};
// ToPdfObject returns the PDF representation of the VRI dictionary.
func (_addbb *VRI )ToPdfObject ()*_fg .PdfObjectDictionary {_begc :=_fg .MakeDict ();_begc .SetIfNotNil (_fg .PdfObjectName ("\u0043\u0065\u0072\u0074"),_aedef (_addbb .Cert ));_begc .SetIfNotNil (_fg .PdfObjectName ("\u004f\u0043\u0053\u0050"),_aedef (_addbb .OCSP ));
_begc .SetIfNotNil (_fg .PdfObjectName ("\u0043\u0052\u004c"),_aedef (_addbb .CRL ));_begc .SetIfNotNil ("\u0054\u0055",_addbb .TU );_begc .SetIfNotNil ("\u0054\u0053",_addbb .TS );return _begc ;};
// NewPdfAcroForm returns a new PdfAcroForm with an intialized container (indirect object).
func NewPdfAcroForm ()*PdfAcroForm {return &PdfAcroForm {Fields :&[]*PdfField {},_daca :_fg .MakeIndirectObject (_fg .MakeDict ())};};
// PdfActionJavaScript represents a javaScript action.
type PdfActionJavaScript struct{*PdfAction ;JS _fg .PdfObject ;};
// Encoder returns the font's text encoder.
func (_edec pdfCIDFontType2 )Encoder ()_dg .TextEncoder {return _edec ._deecfc };
// ReplaceAcroForm replaces the acrobat form. It appends a new form to the Pdf which
// replaces the original AcroForm.
func (_fece *PdfAppender )ReplaceAcroForm (acroForm *PdfAcroForm ){if acroForm !=nil {_fece .updateObjectsDeep (acroForm .ToPdfObject (),nil );};_fece ._cacc =acroForm ;};
// GetVersion gets the document version.
func (_aggc *PdfWriter )GetVersion ()_fg .Version {return _aggc ._fbbec };
// SetNamedDestinations sets the Dests entry in the PDF catalog.
// See section 12.3.2.3 "Named Destinations" (p. 367 PDF32000_2008).
func (_fbbca *PdfWriter )SetNamedDestinations (dests _fg .PdfObject )error {if dests ==nil {return nil ;};_aa .Log .Trace ("\u0053e\u0074\u0074\u0069\u006e\u0067\u0020\u0063\u0061\u0074\u0061\u006co\u0067\u0020\u0044\u0065\u0073\u0074\u0073\u002e\u002e\u002e");
_fbbca ._cgacf .Set ("\u0044\u0065\u0073t\u0073",dests );return _fbbca .addObjects (dests );};
// 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{_abcbb PdfModel ;_daecc *_fg .PdfIndirectObject ;Parent *PdfField ;Annotations []*PdfAnnotationWidget ;Kids []*PdfField ;FT *_fg .PdfObjectName ;T *_fg .PdfObjectString ;TU *_fg .PdfObjectString ;TM *_fg .PdfObjectString ;Ff *_fg .PdfObjectInteger ;
V _fg .PdfObject ;DV _fg .PdfObject ;AA _fg .PdfObject ;VariableText *VariableText ;};
// PdfActionRendition represents a Rendition action.
type PdfActionRendition struct{*PdfAction ;R _fg .PdfObject ;AN _fg .PdfObject ;OP _fg .PdfObject ;JS _fg .PdfObject ;};
// ToPdfObject recursively builds the Outline tree PDF object.
func (_caadb *PdfOutline )ToPdfObject ()_fg .PdfObject {_afgbe :=_caadb ._adece ;_eafdb :=_afgbe .PdfObject .(*_fg .PdfObjectDictionary );_eafdb .Set ("\u0054\u0079\u0070\u0065",_fg .MakeName ("\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0073"));if _caadb .First !=nil {_eafdb .Set ("\u0046\u0069\u0072s\u0074",_caadb .First .ToPdfObject ());
};if _caadb .Last !=nil {_eafdb .Set ("\u004c\u0061\u0073\u0074",_caadb .Last .GetContext ().GetContainingPdfObject ());};if _caadb .Parent !=nil {_eafdb .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_caadb .Parent .GetContext ().GetContainingPdfObject ());
};if _caadb .Count !=nil {_eafdb .Set ("\u0043\u006f\u0075n\u0074",_fg .MakeInteger (*_caadb .Count ));};return _afgbe ;};
// NewPdfFilespecFromObj creates and returns a new PdfFilespec object.
func NewPdfFilespecFromObj (obj _fg .PdfObject )(*PdfFilespec ,error ){_ccff :=&PdfFilespec {};var _gedcf *_fg .PdfObjectDictionary ;if _abac ,_gada :=_fg .GetIndirect (obj );_gada {_ccff ._ccbdc =_abac ;_fagde ,_bbbf :=_fg .GetDict (_abac .PdfObject );
if !_bbbf {_aa .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 ,_fg .ErrTypeError ;};_gedcf =_fagde ;}else if _bacd ,_fbff :=_fg .GetDict (obj );
_fbff {_ccff ._ccbdc =_bacd ;_gedcf =_bacd ;}else {_aa .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 ,_fg .ErrTypeError ;};if _gedcf ==nil {_aa .Log .Debug ("\u0044i\u0063t\u0069\u006f\u006e\u0061\u0072y\u0020\u006di\u0073\u0073\u0069\u006e\u0067");
return nil ,_ce .New ("\u0064\u0069\u0063t\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};if _bbdac :=_gedcf .Get ("\u0054\u0079\u0070\u0065");_bbdac !=nil {_fgbg ,_efgbe :=_bbdac .(*_fg .PdfObjectName );if !_efgbe {_aa .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",_bbdac );
}else {if *_fgbg !="\u0046\u0069\u006c\u0065\u0073\u0070\u0065\u0063"{_aa .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",*_fgbg );
};};};if _gefg :=_gedcf .Get ("\u0046\u0053");_gefg !=nil {_ccff .FS =_gefg ;};if _fgdb :=_gedcf .Get ("\u0046");_fgdb !=nil {_ccff .F =_fgdb ;};if _gbdd :=_gedcf .Get ("\u0055\u0046");_gbdd !=nil {_ccff .UF =_gbdd ;};if _adde :=_gedcf .Get ("\u0044\u004f\u0053");
_adde !=nil {_ccff .DOS =_adde ;};if _dcfd :=_gedcf .Get ("\u004d\u0061\u0063");_dcfd !=nil {_ccff .Mac =_dcfd ;};if _bdgee :=_gedcf .Get ("\u0055\u006e\u0069\u0078");_bdgee !=nil {_ccff .Unix =_bdgee ;};if _befe :=_gedcf .Get ("\u0049\u0044");_befe !=nil {_ccff .ID =_befe ;
};if _bcfa :=_gedcf .Get ("\u0056");_bcfa !=nil {_ccff .V =_bcfa ;};if _eggc :=_gedcf .Get ("\u0045\u0046");_eggc !=nil {_ccff .EF =_eggc ;};if _ebfd :=_gedcf .Get ("\u0052\u0046");_ebfd !=nil {_ccff .RF =_ebfd ;};if _cfca :=_gedcf .Get ("\u0044\u0065\u0073\u0063");
_cfca !=nil {_ccff .Desc =_cfca ;};if _ebaad :=_gedcf .Get ("\u0043\u0049");_ebaad !=nil {_ccff .CI =_ebaad ;};return _ccff ,nil ;};
// PdfActionThread represents a thread action.
type PdfActionThread struct{*PdfAction ;F *PdfFilespec ;D _fg .PdfObject ;B _fg .PdfObject ;};
// ToPdfObject implements interface PdfModel.
func (_cfc *PdfActionResetForm )ToPdfObject ()_fg .PdfObject {_cfc .PdfAction .ToPdfObject ();_gcb :=_cfc ._bda ;_fada :=_gcb .PdfObject .(*_fg .PdfObjectDictionary );_fada .SetIfNotNil ("\u0053",_fg .MakeName (string (ActionTypeResetForm )));_fada .SetIfNotNil ("\u0046\u0069\u0065\u006c\u0064\u0073",_cfc .Fields );
_fada .SetIfNotNil ("\u0046\u006c\u0061g\u0073",_cfc .Flags );return _gcb ;};
// SetOpenAction sets the OpenAction in the PDF catalog.
// The value shall be either an array defining a destination (12.3.2 "Destinations" PDF32000_2008),
// or an action dictionary representing an action (12.6 "Actions" PDF32000_2008).
func (_dcfdd *PdfWriter )SetOpenAction (dest _fg .PdfObject )error {if dest ==nil ||_fg .IsNullObject (dest ){return nil ;};_dcfdd ._cgacf .Set ("\u004f\u0070\u0065\u006e\u0041\u0063\u0074\u0069\u006f\u006e",dest );return _dcfdd .addObjects (dest );};
// DefaultImageHandler is the default implementation of the ImageHandler using the standard go library.
type DefaultImageHandler struct{};
// PdfFieldButton represents a button field which includes push buttons, checkboxes, and radio buttons.
type PdfFieldButton struct{*PdfField ;Opt *_fg .PdfObjectArray ;_babe *Image ;};
// PdfShadingType1 is a Function-based shading.
type PdfShadingType1 struct{*PdfShading ;Domain *_fg .PdfObjectArray ;Matrix *_fg .PdfObjectArray ;Function []PdfFunction ;};
// ToPdfObject converts PdfAcroForm to a PdfObject, i.e. an indirect object containing the
// AcroForm dictionary.
func (_aace *PdfAcroForm )ToPdfObject ()_fg .PdfObject {_dfdfe :=_aace ._daca ;_edaga :=_dfdfe .PdfObject .(*_fg .PdfObjectDictionary );if _aace .Fields !=nil {_defag :=_fg .PdfObjectArray {};for _ ,_fgbbd :=range *_aace .Fields {_eabgf :=_fgbbd .GetContext ();
if _eabgf !=nil {_defag .Append (_eabgf .ToPdfObject ());}else {_defag .Append (_fgbbd .ToPdfObject ());};};_edaga .Set ("\u0046\u0069\u0065\u006c\u0064\u0073",&_defag );};if _aace .NeedAppearances !=nil {_edaga .Set ("\u004ee\u0065d\u0041\u0070\u0070\u0065\u0061\u0072\u0061\u006e\u0063\u0065\u0073",_aace .NeedAppearances );
}else {if _fbef :=_edaga .Get ("\u004ee\u0065d\u0041\u0070\u0070\u0065\u0061\u0072\u0061\u006e\u0063\u0065\u0073");_fbef !=nil {_edaga .Remove ("\u004ee\u0065d\u0041\u0070\u0070\u0065\u0061\u0072\u0061\u006e\u0063\u0065\u0073");};};if _aace .SigFlags !=nil {_edaga .Set ("\u0053\u0069\u0067\u0046\u006c\u0061\u0067\u0073",_aace .SigFlags );
};if _aace .CO !=nil {_edaga .Set ("\u0043\u004f",_aace .CO );};if _aace .DR !=nil {_edaga .Set ("\u0044\u0052",_aace .DR .ToPdfObject ());};if _aace .DA !=nil {_edaga .Set ("\u0044\u0041",_aace .DA );};if _aace .Q !=nil {_edaga .Set ("\u0051",_aace .Q );
};if _aace .XFA !=nil {_edaga .Set ("\u0058\u0046\u0041",_aace .XFA );};if _aace .ADBEEchoSign !=nil {_edaga .Set ("\u0041\u0044\u0042\u0045\u005f\u0045\u0063\u0068\u006f\u0053\u0069\u0067\u006e",_aace .ADBEEchoSign );};return _dfdfe ;};
// Height returns the height of `rect`.
func (_gdfbg *PdfRectangle )Height ()float64 {return _ef .Abs (_gdfbg .Ury -_gdfbg .Lly )};
// PdfAnnotationMovie represents Movie annotations.
// (Section 12.5.6.17).
type PdfAnnotationMovie struct{*PdfAnnotation ;T _fg .PdfObject ;Movie _fg .PdfObject ;A _fg .PdfObject ;};
// A returns the value of the A component of the color.
func (_cffgd *PdfColorLab )A ()float64 {return _cffgd [1]};
// ImageToRGB converts image in CalGray color space to RGB (A, B, C -> X, Y, Z).
func (_ccda *PdfColorspaceCalGray )ImageToRGB (img Image )(Image ,error ){_fedcg :=_ade .NewReader (img .getBase ());_ecga :=_cc .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),3,nil ,nil ,nil );_dfaa :=_ade .NewWriter (_ecga );
_eafc :=_ef .Pow (2,float64 (img .BitsPerComponent ))-1;_ggcd :=make ([]uint32 ,3);var (_bage uint32 ;ANorm ,X ,Y ,Z ,_eece ,_dge ,_fbca float64 ;_eebb error ;);for {_bage ,_eebb =_fedcg .ReadSample ();if _eebb ==_ff .EOF {break ;}else if _eebb !=nil {return img ,_eebb ;
};ANorm =float64 (_bage )/_eafc ;X =_ccda .WhitePoint [0]*_ef .Pow (ANorm ,_ccda .Gamma );Y =_ccda .WhitePoint [1]*_ef .Pow (ANorm ,_ccda .Gamma );Z =_ccda .WhitePoint [2]*_ef .Pow (ANorm ,_ccda .Gamma );_eece =3.240479*X +-1.537150*Y +-0.498535*Z ;_dge =-0.969256*X +1.875992*Y +0.041556*Z ;
_fbca =0.055648*X +-0.204043*Y +1.057311*Z ;_eece =_ef .Min (_ef .Max (_eece ,0),1.0);_dge =_ef .Min (_ef .Max (_dge ,0),1.0);_fbca =_ef .Min (_ef .Max (_fbca ,0),1.0);_ggcd [0]=uint32 (_eece *_eafc );_ggcd [1]=uint32 (_dge *_eafc );_ggcd [2]=uint32 (_fbca *_eafc );
if _eebb =_dfaa .WriteSamples (_ggcd );_eebb !=nil {return img ,_eebb ;};};return _adad (&_ecga ),nil ;};
// SetDocInfo sets the document /Info metadata.
// This will overwrite any globally declared document info.
func (_dbbf *PdfAppender )SetDocInfo (info *PdfInfo ){_dbbf ._fadf =info };func (_aaege *Image )samplesAddPadding (_deeb []uint32 )[]uint32 {_eaffe :=_cc .BytesPerLine (int (_aaege .Width ),int (_aaege .BitsPerComponent ),_aaege .ColorComponents )*(8/int (_aaege .BitsPerComponent ));
_cgdbd :=_eaffe *int (_aaege .Height );if len (_deeb )==_cgdbd {return _deeb ;};_bgdbd :=make ([]uint32 ,_cgdbd );_bede :=int (_aaege .Width )*_aaege .ColorComponents ;for _fbfe :=0;_fbfe < int (_aaege .Height );_fbfe ++{_facdf :=_fbfe *int (_aaege .Width );
_ggedf :=_fbfe *_eaffe ;for _bgdg :=0;_bgdg < _bede ;_bgdg ++{_bgdbd [_ggedf +_bgdg ]=_deeb [_facdf +_bgdg ];};};return _bgdbd ;};
// GetRuneMetrics returns the character metrics for the rune.
// A bool flag is returned to indicate whether or not the entry was found.
func (_bgaa pdfFontSimple )GetRuneMetrics (r rune )(_eed .CharMetrics ,bool ){if _bgaa ._dacg !=nil {_cceab ,_dbdbf :=_bgaa ._dacg .Read (r );if _dbdbf {return _cceab ,true ;};};_gcddf :=_bgaa .Encoder ();if _gcddf ==nil {_aa .Log .Debug ("\u004e\u006f\u0020en\u0063\u006f\u0064\u0065\u0072\u0020\u0066\u006f\u0072\u0020\u0066\u006f\u006e\u0074\u0073\u003d\u0025\u0073",_bgaa );
return _eed .CharMetrics {},false ;};_bcfde ,_fgdf :=_gcddf .RuneToCharcode (r );if !_fgdf {if r !=' '{_aa .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 ,_bgaa );
};return _eed .CharMetrics {},false ;};_gfga ,_bggda :=_bgaa .GetCharMetrics (_bcfde );return _gfga ,_bggda ;};
// ToPdfObject convert PdfInfo to pdf object.
func (_gedc *PdfInfo )ToPdfObject ()_fg .PdfObject {_fdaf :=_fg .MakeDict ();_fdaf .SetIfNotNil ("\u0054\u0069\u0074l\u0065",_gedc .Title );_fdaf .SetIfNotNil ("\u0041\u0075\u0074\u0068\u006f\u0072",_gedc .Author );_fdaf .SetIfNotNil ("\u0053u\u0062\u006a\u0065\u0063\u0074",_gedc .Subject );
_fdaf .SetIfNotNil ("\u004b\u0065\u0079\u0077\u006f\u0072\u0064\u0073",_gedc .Keywords );_fdaf .SetIfNotNil ("\u0043r\u0065\u0061\u0074\u006f\u0072",_gedc .Creator );_fdaf .SetIfNotNil ("\u0050\u0072\u006f\u0064\u0075\u0063\u0065\u0072",_gedc .Producer );
_fdaf .SetIfNotNil ("\u0054r\u0061\u0070\u0070\u0065\u0064",_gedc .Trapped );if _gedc .CreationDate !=nil {_fdaf .SetIfNotNil ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065",_gedc .CreationDate .ToPdfObject ());};if _gedc .ModifiedDate !=nil {_fdaf .SetIfNotNil ("\u004do\u0064\u0044\u0061\u0074\u0065",_gedc .ModifiedDate .ToPdfObject ());
};for _ ,_fdecc :=range _gedc ._aaee .Keys (){_fdaf .SetIfNotNil (_fdecc ,_gedc ._aaee .Get (_fdecc ));};return _fdaf ;};func (_adcg *pdfFontSimple )addEncoding ()error {var (_abffa string ;_deab map[_dg .CharCode ]_dg .GlyphName ;_defee _dg .SimpleEncoder ;
);if _adcg .Encoder ()!=nil {_facb ,_fffb :=_adcg .Encoder ().(_dg .SimpleEncoder );if _fffb &&_facb !=nil {_abffa =_facb .BaseName ();};};if _adcg .Encoding !=nil {_fffdg ,_beef ,_ffcda :=_adcg .getFontEncoding ();if _ffcda !=nil {_aa .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",_adcg ._aefg ,_adcg ._ggcfc ,_adcg .Encoding ,_adcg .Encoding ,_ffcda );
return _ffcda ;};if _fffdg !=""{_abffa =_fffdg ;};_deab =_beef ;_defee ,_ffcda =_dg .NewSimpleTextEncoder (_abffa ,_deab );if _ffcda !=nil {return _ffcda ;};};if _defee ==nil {_ccddg :=_adcg ._cdgef ;if _ccddg !=nil {switch _adcg ._ggcfc {case "\u0054\u0079\u0070e\u0031":if _ccddg .fontFile !=nil &&_ccddg .fontFile ._ffff !=nil {_aa .Log .Debug ("\u0055\u0073\u0069\u006e\u0067\u0020\u0066\u006f\u006et\u0046\u0069\u006c\u0065");
_defee =_ccddg .fontFile ._ffff ;};case "\u0054\u0072\u0075\u0065\u0054\u0079\u0070\u0065":if _ccddg ._bbbd !=nil {_aa .Log .Debug ("\u0055s\u0069n\u0067\u0020\u0046\u006f\u006e\u0074\u0046\u0069\u006c\u0065\u0032");_dbaa ,_gadag :=_ccddg ._bbbd .MakeEncoder ();
if _gadag ==nil {_defee =_dbaa ;};};};};};if _defee !=nil {if _deab !=nil {_aa .Log .Trace ("\u0064\u0069\u0066fe\u0072\u0065\u006e\u0063\u0065\u0073\u003d\u0025\u002b\u0076\u0020\u0066\u006f\u006e\u0074\u003d\u0025\u0073",_deab ,_adcg .baseFields ());
_defee =_dg .ApplyDifferences (_defee ,_deab );};_adcg .SetEncoder (_defee );};return nil ;};func _eafef ()_g .Time {_baacg .Lock ();defer _baacg .Unlock ();return _dfdeae };
// PdfFilespec represents a file specification which can either refer to an external or embedded file.
type PdfFilespec struct{Type _fg .PdfObject ;FS _fg .PdfObject ;F _fg .PdfObject ;UF _fg .PdfObject ;DOS _fg .PdfObject ;Mac _fg .PdfObject ;Unix _fg .PdfObject ;ID _fg .PdfObject ;V _fg .PdfObject ;EF _fg .PdfObject ;RF _fg .PdfObject ;Desc _fg .PdfObject ;
CI _fg .PdfObject ;_ccbdc _fg .PdfObject ;};func (_cdge *PdfReader )newPdfActionImportDataFromDict (_gfcf *_fg .PdfObjectDictionary )(*PdfActionImportData ,error ){_agfeb ,_cee :=_ddd (_gfcf .Get ("\u0046"));if _cee !=nil {return nil ,_cee ;};return &PdfActionImportData {F :_agfeb },nil ;
};func (_fbga *PdfWriter )makeOffSetReference (_gcgea int64 ){_bgeeb :=_d .Sprintf ("\u0073\u0074\u0061\u0072\u0074\u0078\u0072\u0065\u0066\u000a\u0025\u0064\u000a",_gcgea );_fbga .writeString (_bgeeb );_fbga .writeString ("\u0025\u0025\u0045\u004f\u0046\u000a");
};
// PdfAnnotationHighlight represents Highlight annotations.
// (Section 12.5.6.10).
type PdfAnnotationHighlight struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _fg .PdfObject ;};func _aegf (_fdbbd []byte )bool {if len (_fdbbd )< 4{return true ;};for _decdd :=range _fdbbd [:4]{_gbbc :=rune (_decdd );if !_dfa .Is (_dfa .ASCII_Hex_Digit ,_gbbc )&&!_dfa .IsSpace (_gbbc ){return true ;
};};return false ;};func (_cbceb *PdfWriter )getPdfVersion ()string {return _d .Sprintf ("\u0025\u0064\u002e%\u0064",_cbceb ._fbbec .Major ,_cbceb ._fbbec .Minor );};
// PdfActionType represents an action type in PDF (section 12.6.4 p. 417).
type PdfActionType string ;
// NewReaderForText makes a new PdfReader for an input PDF content string. For use in testing.
func NewReaderForText (txt string )*PdfReader {return &PdfReader {_aefbbf :map[_fg .PdfObject ]struct{}{},_edebb :_aafff (),_ccgg :_fg .NewParserFromString (txt )};};
// HasPatternByName checks whether a pattern object is defined by the specified keyName.
func (_fgbfb *PdfPageResources )HasPatternByName (keyName _fg .PdfObjectName )bool {_ ,_fdbeag :=_fgbfb .GetPatternByName (keyName );return _fdbeag ;};func (_gebcb *PdfReader )newPdfSignatureReferenceFromDict (_fegbd *_fg .PdfObjectDictionary )(*PdfSignatureReference ,error ){if _edcba ,_fgbbg :=_gebcb ._edebb .GetModelFromPrimitive (_fegbd ).(*PdfSignatureReference );
_fgbbg {return _edcba ,nil ;};_bfcb :=&PdfSignatureReference {_gafdc :_fegbd ,Data :_fegbd .Get ("\u0044\u0061\u0074\u0061")};var _cfbcd bool ;_bfcb .Type ,_ =_fg .GetName (_fegbd .Get ("\u0054\u0079\u0070\u0065"));_bfcb .TransformMethod ,_cfbcd =_fg .GetName (_fegbd .Get ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u004d\u0065\u0074\u0068\u006f\u0064"));
if !_cfbcd {_aa .Log .Error ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0053\u0069g\u006e\u0061\u0074\u0075\u0072\u0065\u0020\u0052\u0065\u0066\u0065\u0072\u0065\u006e\u0063\u0065\u0020\u0054\u0072\u0061\u006e\u0073\u0066o\u0072\u006dM\u0065\u0074h\u006f\u0064\u0020\u0061\u0074\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020in\u0076\u0061\u006c\u0069\u0064\u0020\u006f\u0072\u0020m\u0069\u0073\u0073\u0069\u006e\u0067");
return nil ,ErrInvalidAttribute ;};_bfcb .TransformParams ,_ =_fg .GetDict (_fegbd .Get ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u0050\u0061\u0072\u0061\u006d\u0073"));_bfcb .DigestMethod ,_ =_fg .GetName (_fegbd .Get ("\u0044\u0069\u0067e\u0073\u0074\u004d\u0065\u0074\u0068\u006f\u0064"));
return _bfcb ,nil ;};
// GetContainingPdfObject implements interface PdfModel.
func (_bggcg *PdfSignature )GetContainingPdfObject ()_fg .PdfObject {return _bggcg ._fbbgf };func (_daeccg *PdfWriter )writeBytes (_accef []byte ){if _daeccg ._adgac !=nil {return ;};_ddbaab ,_gabge :=_daeccg ._dbdde .Write (_accef );_daeccg ._fcgga +=int64 (_ddbaab );
_daeccg ._adgac =_gabge ;};
// GetSubFilter returns SubFilter value or empty string.
func (_eddea *pdfSignDictionary )GetSubFilter ()string {_ebebcg :=_eddea .Get ("\u0053u\u0062\u0046\u0069\u006c\u0074\u0065r");if _ebebcg ==nil {return "";};if _dcfec ,_bggbg :=_fg .GetNameVal (_ebebcg );_bggbg {return _dcfec ;};return "";};
// 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 (_ggbdf *Image )GetSamples ()[]uint32 {_dgcb :=_ade .ResampleBytes (_ggbdf .Data ,int (_ggbdf .BitsPerComponent ));if _ggbdf .BitsPerComponent < 8{_dgcb =_ggbdf .samplesTrimPadding (_dgcb );};_bcecg :=int (_ggbdf .Width )*int (_ggbdf .Height )*_ggbdf .ColorComponents ;
if len (_dgcb )< _bcecg {_aa .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 (_dgcb ),_bcecg );
return _dgcb ;}else if len (_dgcb )> _bcecg {_aa .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 (_dgcb ),_bcecg );
_dgcb =_dgcb [:_bcecg ];};return _dgcb ;};
// NewPdfSignature creates a new PdfSignature object.
func NewPdfSignature (handler SignatureHandler )*PdfSignature {_gaaea :=&PdfSignature {Type :_fg .MakeName ("\u0053\u0069\u0067"),Handler :handler };_gbgg :=&pdfSignDictionary {PdfObjectDictionary :_fg .MakeDict (),_afcd :&handler ,_cggdd :_gaaea };_gaaea ._fbbgf =_fg .MakeIndirectObject (_gbgg );
return _gaaea ;};func (_eaee *PdfReader )newPdfFieldFromIndirectObject (_fgbc *_fg .PdfIndirectObject ,_bgfc *PdfField )(*PdfField ,error ){if _fgecb ,_gggcg :=_eaee ._edebb .GetModelFromPrimitive (_fgbc ).(*PdfField );_gggcg {return _fgecb ,nil ;};_caaae ,_bddge :=_fg .GetDict (_fgbc );
if !_bddge {return nil ,_d .Errorf ("\u0050\u0064f\u0046\u0069\u0065\u006c\u0064 \u0069\u006e\u0064\u0069\u0072e\u0063\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0020\u006e\u006f\u0074\u0020\u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0069\u006e\u0067\u0020\u0061\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079");
};_adbg :=NewPdfField ();_adbg ._daecc =_fgbc ;_adbg ._daecc .PdfObject =_caaae ;if _aebga ,_eebc :=_fg .GetName (_caaae .Get ("\u0046\u0054"));_eebc {_adbg .FT =_aebga ;};if _bgfc !=nil {_adbg .Parent =_bgfc ;};_adbg .T ,_ =_caaae .Get ("\u0054").(*_fg .PdfObjectString );
_adbg .TU ,_ =_caaae .Get ("\u0054\u0055").(*_fg .PdfObjectString );_adbg .TM ,_ =_caaae .Get ("\u0054\u004d").(*_fg .PdfObjectString );_adbg .Ff ,_ =_caaae .Get ("\u0046\u0066").(*_fg .PdfObjectInteger );_adbg .V =_caaae .Get ("\u0056");_adbg .DV =_caaae .Get ("\u0044\u0056");
_adbg .AA =_caaae .Get ("\u0041\u0041");if DA :=_caaae .Get ("\u0044\u0041");DA !=nil {DA ,_ :=_fg .GetString (DA );_adbg .VariableText =&VariableText {DA :DA };Q ,_ :=_caaae .Get ("\u0051").(*_fg .PdfObjectInteger );DS ,_ :=_caaae .Get ("\u0044\u0053").(*_fg .PdfObjectString );
RV :=_caaae .Get ("\u0052\u0056");_adbg .VariableText .Q =Q ;_adbg .VariableText .DS =DS ;_adbg .VariableText .RV =RV ;};_ecae :=_adbg .FT ;if _ecae ==nil &&_bgfc !=nil {_ecae =_bgfc .FT ;};if _ecae !=nil {switch *_ecae {case "\u0054\u0078":_adabeg ,_fbfag :=_cffc (_caaae );
if _fbfag !=nil {return nil ,_fbfag ;};_adabeg .PdfField =_adbg ;_adbg ._abcbb =_adabeg ;case "\u0043\u0068":_dgde ,_gcaf :=_daeb (_caaae );if _gcaf !=nil {return nil ,_gcaf ;};_dgde .PdfField =_adbg ;_adbg ._abcbb =_dgde ;case "\u0042\u0074\u006e":_cfgba ,_gccb :=_eddb (_caaae );
if _gccb !=nil {return nil ,_gccb ;};_cfgba .PdfField =_adbg ;_adbg ._abcbb =_cfgba ;case "\u0053\u0069\u0067":_bfba ,_eadg :=_eaee .newPdfFieldSignatureFromDict (_caaae );if _eadg !=nil {return nil ,_eadg ;};_bfba .PdfField =_adbg ;_adbg ._abcbb =_bfba ;
default:_aa .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",*_adbg .FT );return nil ,_ce .New ("\u0075\u006e\u0073\u0075pp\u006f\u0072\u0074\u0065\u0064\u0020\u0066\u0069\u0065\u006c\u0064\u0020\u0074\u0079p\u0065");
};};if _fcge ,_cbca :=_fg .GetName (_caaae .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065"));_cbca {if *_fcge =="\u0057\u0069\u0064\u0067\u0065\u0074"{_bdbd ,_befa :=_eaee .newPdfAnnotationFromIndirectObject (_fgbc );if _befa !=nil {return nil ,_befa ;};
_fbba ,_deea :=_bdbd .GetContext ().(*PdfAnnotationWidget );if !_deea {return nil ,_ce .New ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0077\u0069\u0064\u0067e\u0074 \u0061n\u006e\u006f\u0074\u0061\u0074\u0069\u006fn");};_fbba ._ddcc =_adbg ;_fbba .Parent =_adbg ._daecc ;
_adbg .Annotations =append (_adbg .Annotations ,_fbba );return _adbg ,nil ;};};_fgcc :=true ;if _fdca ,_aeaeg :=_fg .GetArray (_caaae .Get ("\u004b\u0069\u0064\u0073"));_aeaeg {_fcbec :=make ([]*_fg .PdfIndirectObject ,0,_fdca .Len ());for _ ,_cdcgg :=range _fdca .Elements (){_ffaeb ,_caad :=_fg .GetIndirect (_cdcgg );
if !_caad {_fcccb ,_cfffe :=_fg .GetStream (_cdcgg );if _cfffe &&_fcccb .PdfObjectDictionary !=nil {_fdfc ,_ddfb :=_fg .GetNameVal (_fcccb .Get ("\u0054\u0079\u0070\u0065"));if _ddfb &&_fdfc =="\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061"{_aa .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 ,_ce .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");};_cefg ,_ededd :=_fg .GetDict (_ffaeb );
if !_ededd {return nil ,ErrTypeCheck ;};if _fgcc {_fgcc =!_gecd (_cefg );};_fcbec =append (_fcbec ,_ffaeb );};for _ ,_feed :=range _fcbec {if _fgcc {_ggae ,_ggacf :=_eaee .newPdfAnnotationFromIndirectObject (_feed );if _ggacf !=nil {_aa .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",_ggacf );
return nil ,_ggacf ;};_edcc ,_fegab :=_ggae ._cbea .(*PdfAnnotationWidget );if !_fegab {return nil ,ErrTypeCheck ;};_edcc ._ddcc =_adbg ;_adbg .Annotations =append (_adbg .Annotations ,_edcc );}else {_bbab ,_aafb :=_eaee .newPdfFieldFromIndirectObject (_feed ,_adbg );
if _aafb !=nil {_aa .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",_aafb );return nil ,_aafb ;};_adbg .Kids =append (_adbg .Kids ,_bbab );
};};};return _adbg ,nil ;};
// AppendContentStream adds content stream by string. Appends to the last
// contentstream instance if many.
func (_bgbf *PdfPage )AppendContentStream (contentStr string )error {_fbee ,_cabcg :=_bgbf .GetContentStreams ();if _cabcg !=nil {return _cabcg ;};if len (_fbee )==0{_fbee =[]string {contentStr };return _bgbf .SetContentStreams (_fbee ,_fg .NewFlateEncoder ());
};var _afgef _cb .Buffer ;_afgef .WriteString (_fbee [len (_fbee )-1]);_afgef .WriteString ("\u000a");_afgef .WriteString (contentStr );_fbee [len (_fbee )-1]=_afgef .String ();return _bgbf .SetContentStreams (_fbee ,_fg .NewFlateEncoder ());};func _afga (_bgega _fg .PdfObject )(*PdfPageResourcesColorspaces ,error ){_bacgg :=&PdfPageResourcesColorspaces {};
if _cffea ,_ebfddd :=_bgega .(*_fg .PdfIndirectObject );_ebfddd {_bacgg ._daff =_cffea ;_bgega =_cffea .PdfObject ;};_gaffd ,_cbebf :=_fg .GetDict (_bgega );if !_cbebf {return nil ,_ce .New ("\u0043\u0053\u0020at\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");
};_bacgg .Names =[]string {};_bacgg .Colorspaces =map[string ]PdfColorspace {};for _ ,_aaaa :=range _gaffd .Keys (){_bedef :=_gaffd .Get (_aaaa );_bacgg .Names =append (_bacgg .Names ,string (_aaaa ));_dbbgb ,_afbdg :=NewPdfColorspaceFromPdfObject (_bedef );
if _afbdg !=nil {return nil ,_afbdg ;};_bacgg .Colorspaces [string (_aaaa )]=_dbbgb ;};return _bacgg ,nil ;};func _dadagc ()string {_baacg .Lock ();defer _baacg .Unlock ();_acabed :=_bec .GetLicenseKey ();if len (_egdda )> 0&&(_acabed .IsLicensed ()||_dbfbeb ){return _egdda ;
};return _d .Sprintf ("\u0055\u006e\u0069Do\u0063\u0020\u0076\u0025\u0073\u0020\u0028\u0025\u0073)\u0020-\u0020h\u0074t\u0070\u003a\u002f\u002f\u0075\u006e\u0069\u0064\u006f\u0063\u002e\u0069\u006f",_cffgdbb (),_acabed .TypeToString ());};
// GetCharMetrics returns the char metrics for character code `code`.
func (_eeadc pdfFontType3 )GetCharMetrics (code _dg .CharCode )(_eed .CharMetrics ,bool ){if _bbeec ,_gegcc :=_eeadc ._eabbc [code ];_gegcc {return _eed .CharMetrics {Wx :_bbeec },true ;};if _eed .IsStdFont (_eed .StdFontName (_eeadc ._aefg )){return _eed .CharMetrics {Wx :250},true ;
};return _eed .CharMetrics {},false ;};
// 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 ){_egdfa ,_gdccd :=_c .Open (filePath );if _gdccd !=nil {_aa .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",_gdccd );
return nil ,_gdccd ;};defer _egdfa .Close ();return NewPdfFontFromTTF (_egdfa );};
// Has checks if flag fl is set in flag and returns true if so, false otherwise.
func (_dddb FieldFlag )Has (fl FieldFlag )bool {return (_dddb .Mask ()&fl .Mask ())> 0};
// NewPdfAnnotationWatermark returns a new watermark annotation.
func NewPdfAnnotationWatermark ()*PdfAnnotationWatermark {_fedc :=NewPdfAnnotation ();_cdc :=&PdfAnnotationWatermark {};_cdc .PdfAnnotation =_fedc ;_fedc .SetContext (_cdc );return _cdc ;};
// GetIndirectObjectByNumber retrieves and returns a specific PdfObject by object number.
func (_dbfe *PdfReader )GetIndirectObjectByNumber (number int )(_fg .PdfObject ,error ){_debeb ,_abgaf :=_dbfe ._ccgg .LookupByNumber (number );return _debeb ,_abgaf ;};
// 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 checks if a given signature dictionary `sig` is applicable for the signature handler.
// For example a signature of type `adbe.pkcs7.detached` might not fit for a rsa.sha1 handler.
IsApplicable (_ddgfbg *PdfSignature )bool ;
// Validate validates a PDF signature against a given digest (hash) such as that determined
// for an input file. Returns validation results.
Validate (_bffbf *PdfSignature ,_ceddf Hasher )(SignatureValidationResult ,error );
// InitSignature prepares the signature dictionary for signing. This involves setting all
// necessary fields, and also allocating sufficient space to the Contents so that the
// finalized signature can be inserted once the hash is calculated.
InitSignature (_bafaf *PdfSignature )error ;
// NewDigest creates a new digest/hasher based on the signature dictionary and handler.
NewDigest (_baffd *PdfSignature )(Hasher ,error );
// Sign receives the hash `digest` (for example hash of an input file), and signs based
// on the signature dictionary `sig` and applies the signature data to the signature
// dictionary Contents field.
Sign (_addab *PdfSignature ,_gdbgf Hasher )error ;};
// ImageToRGB returns an error since an image cannot be defined in a pattern colorspace.
func (_ebdba *PdfColorspaceSpecialPattern )ImageToRGB (img Image )(Image ,error ){_aa .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 ,_ce .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");};
// ColorFromFloats returns a new PdfColor based on input color components.
func (_ffaed *PdfColorspaceDeviceN )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=_ffaed .GetNumComponents (){return nil ,_ce .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_gfaed ,_ecdag :=_ffaed .TintTransform .Evaluate (vals );
if _ecdag !=nil {return nil ,_ecdag ;};_adabe ,_ecdag :=_ffaed .AlternateSpace .ColorFromFloats (_gfaed );if _ecdag !=nil {return nil ,_ecdag ;};return _adabe ,nil ;};var ImageHandling ImageHandler =DefaultImageHandler {};
// ToPdfObject converts the font to a PDF representation.
func (_dgba *pdfFontType0 )ToPdfObject ()_fg .PdfObject {if _dgba ._cgacd ==nil {_dgba ._cgacd =&_fg .PdfIndirectObject {};};_beee :=_dgba .baseFields ().asPdfObjectDictionary ("\u0054\u0079\u0070e\u0030");_dgba ._cgacd .PdfObject =_beee ;if _dgba .Encoding !=nil {_beee .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_dgba .Encoding );
}else if _dgba ._bcacf !=nil {_beee .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_dgba ._bcacf .ToPdfObject ());};if _dgba .DescendantFont !=nil {_beee .Set ("\u0044e\u0073c\u0065\u006e\u0064\u0061\u006e\u0074\u0046\u006f\u006e\u0074\u0073",_fg .MakeArray (_dgba .DescendantFont .ToPdfObject ()));
};return _dgba ._cgacd ;};var _cgdb =map[string ]struct{}{"\u0057i\u006eA\u006e\u0073\u0069\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067":{},"\u004d\u0061c\u0052\u006f\u006da\u006e\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067":{},"\u004d\u0061\u0063\u0045\u0078\u0070\u0065\u0072\u0074\u0045\u006e\u0063o\u0064\u0069\u006e\u0067":{},"\u0053\u0074a\u006e\u0064\u0061r\u0064\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067":{}};
// PdfAnnotationProjection represents Projection annotations.
type PdfAnnotationProjection struct{*PdfAnnotation ;*PdfAnnotationMarkup ;};
// ToPdfObject implements interface PdfModel.
func (_acba *PdfAnnotationStrikeOut )ToPdfObject ()_fg .PdfObject {_acba .PdfAnnotation .ToPdfObject ();_agba :=_acba ._agb ;_cdad :=_agba .PdfObject .(*_fg .PdfObjectDictionary );_acba .PdfAnnotationMarkup .appendToPdfDictionary (_cdad );_cdad .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fg .MakeName ("\u0053t\u0072\u0069\u006b\u0065\u004f\u0075t"));
_cdad .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_acba .QuadPoints );return _agba ;};
// SignatureHandlerDocMDPParams describe the specific parameters for the SignatureHandlerEx
// These parameters describe how to check the difference between revisions.
// Revisions of the document get from the PdfParser.
type SignatureHandlerDocMDPParams struct{Parser *_fg .PdfParser ;DiffPolicy _gbb .DiffPolicy ;};const (BorderStyleSolid BorderStyle =iota ;BorderStyleDashed BorderStyle =iota ;BorderStyleBeveled BorderStyle =iota ;BorderStyleInset BorderStyle =iota ;BorderStyleUnderline BorderStyle =iota ;
);
// String returns the name of the colorspace (DeviceN).
func (_acad *PdfColorspaceDeviceN )String ()string {return "\u0044e\u0076\u0069\u0063\u0065\u004e"};
// PdfColorPatternType3 represents a color shading pattern type 3 (Radial).
type PdfColorPatternType3 struct{Color PdfColor ;PatternName _fg .PdfObjectName ;};
// ToPdfObject implements interface PdfModel.
func (_bggf *PdfAnnotationSquiggly )ToPdfObject ()_fg .PdfObject {_bggf .PdfAnnotation .ToPdfObject ();_eeae :=_bggf ._agb ;_bdde :=_eeae .PdfObject .(*_fg .PdfObjectDictionary );_bggf .PdfAnnotationMarkup .appendToPdfDictionary (_bdde );_bdde .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fg .MakeName ("\u0053\u0071\u0075\u0069\u0067\u0067\u006c\u0079"));
_bdde .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_bggf .QuadPoints );return _eeae ;};
// 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 (_fafbe *PdfPageResources )GetColorspaces ()(*PdfPageResourcesColorspaces ,error ){if _fafbe ._edbg !=nil {return _fafbe ._edbg ,nil ;};if _fafbe .ColorSpace ==nil {return nil ,nil ;};_efec ,_ffeae :=_afga (_fafbe .ColorSpace );if _ffeae !=nil {return nil ,_ffeae ;
};_fafbe ._edbg =_efec ;return _fafbe ._edbg ,nil ;};
// RepairAcroForm attempts to rebuild the AcroForm fields using the widget
// annotations present in the document pages. Pass nil for the opts parameter
// in order to use the default options.
// NOTE: Currently, the opts parameter is declared in order to enable adding
// future options, but passing nil will always result in the default options
// being used.
func (_fbgeb *PdfReader )RepairAcroForm (opts *AcroFormRepairOptions )error {var _gfabe []*PdfField ;_gbgad :=map[*_fg .PdfIndirectObject ]struct{}{};for _ ,_fdgf :=range _fbgeb .PageList {_deace ,_bfbd :=_fdgf .GetAnnotations ();if _bfbd !=nil {return _bfbd ;
};for _ ,_dgdbg :=range _deace {var _aggfb *PdfField ;switch _bdeeab :=_dgdbg .GetContext ().(type ){case *PdfAnnotationWidget :if _bdeeab ._ddcc !=nil {_aggfb =_bdeeab ._ddcc ;break ;};if _ddbaa ,_cdea :=_fg .GetIndirect (_bdeeab .Parent );_cdea {_aggfb ,_bfbd =_fbgeb .newPdfFieldFromIndirectObject (_ddbaa ,nil );
if _bfbd ==nil {break ;};_aa .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",_ddbaa ,_bfbd );
};if _bdeeab ._agb !=nil {_aggfb ,_bfbd =_fbgeb .newPdfFieldFromIndirectObject (_bdeeab ._agb ,nil );if _bfbd ==nil {break ;};_aa .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",_bdeeab ._agb ,_bfbd );
};};if _aggfb ==nil {continue ;};if _ ,_cbeec :=_gbgad [_aggfb ._daecc ];_cbeec {continue ;};_gbgad [_aggfb ._daecc ]=struct{}{};_gfabe =append (_gfabe ,_aggfb );};};if len (_gfabe )==0{return nil ;};if _fbgeb .AcroForm ==nil {_fbgeb .AcroForm =NewPdfAcroForm ();
};_fbgeb .AcroForm .Fields =&_gfabe ;return nil ;};
// ToPdfObject implements interface PdfModel.
func (_cdgf *PdfAnnotationProjection )ToPdfObject ()_fg .PdfObject {_cdgf .PdfAnnotation .ToPdfObject ();_bfdb :=_cdgf ._agb ;_eafa :=_bfdb .PdfObject .(*_fg .PdfObjectDictionary );_cdgf .PdfAnnotationMarkup .appendToPdfDictionary (_eafa );return _bfdb ;
};const (_ PdfOutputIntentType =iota ;PdfOutputIntentTypeA1 ;PdfOutputIntentTypeA2 ;PdfOutputIntentTypeA3 ;PdfOutputIntentTypeA4 ;PdfOutputIntentTypeX ;);func (_bbgge *PdfAcroForm )signatureFields ()[]*PdfFieldSignature {var _cgbgb []*PdfFieldSignature ;
for _ ,_dgbc :=range _bbgge .AllFields (){switch _befg :=_dgbc .GetContext ().(type ){case *PdfFieldSignature :_cffe :=_befg ;_cgbgb =append (_cgbgb ,_cffe );};};return _cgbgb ;};
// ToPdfObject implements interface PdfModel.
func (_bfad *PdfActionGoToE )ToPdfObject ()_fg .PdfObject {_bfad .PdfAction .ToPdfObject ();_adeb :=_bfad ._bda ;_fb :=_adeb .PdfObject .(*_fg .PdfObjectDictionary );_fb .SetIfNotNil ("\u0053",_fg .MakeName (string (ActionTypeGoToE )));if _bfad .F !=nil {_fb .Set ("\u0046",_bfad .F .ToPdfObject ());
};_fb .SetIfNotNil ("\u0044",_bfad .D );_fb .SetIfNotNil ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw",_bfad .NewWindow );_fb .SetIfNotNil ("\u0054",_bfad .T );return _adeb ;};
// Val returns the value of the color.
func (_cbeda *PdfColorCalGray )Val ()float64 {return float64 (*_cbeda )};
// NewPdfAnnotationRedact returns a new redact annotation.
func NewPdfAnnotationRedact ()*PdfAnnotationRedact {_baf :=NewPdfAnnotation ();_gbbg :=&PdfAnnotationRedact {};_gbbg .PdfAnnotation =_baf ;_gbbg .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_baf .SetContext (_gbbg );return _gbbg ;};
// 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 (_dcb *PdfAnnotationWidget )Field ()*PdfField {return _dcb ._ddcc };
// NewPermissions returns a new permissions object.
func NewPermissions (docMdp *PdfSignature )*Permissions {_adegb :=Permissions {};_adegb .DocMDP =docMdp ;_gaaggc :=_fg .MakeDict ();_gaaggc .Set ("\u0044\u006f\u0063\u004d\u0044\u0050",docMdp .ToPdfObject ());_adegb ._gdfff =_gaaggc ;return &_adegb ;};
// NewPdfAnnotationPrinterMark returns a new printermark annotation.
func NewPdfAnnotationPrinterMark ()*PdfAnnotationPrinterMark {_eeff :=NewPdfAnnotation ();_afeb :=&PdfAnnotationPrinterMark {};_afeb .PdfAnnotation =_eeff ;_eeff .SetContext (_afeb );return _afeb ;};
// NewCustomPdfOutputIntent creates a new custom PdfOutputIntent.
func NewCustomPdfOutputIntent (outputCondition ,outputConditionIdentifier ,info string ,destOutputProfile []byte ,colorComponents int )*PdfOutputIntent {return &PdfOutputIntent {Type :"\u004f\u0075\u0074p\u0075\u0074\u0049\u006e\u0074\u0065\u006e\u0074",OutputCondition :outputCondition ,OutputConditionIdentifier :outputConditionIdentifier ,Info :info ,DestOutputProfile :destOutputProfile ,_geaa :_fg .MakeDict (),ColorComponents :colorComponents };
};
// NewCompliancePdfReader creates a PdfReader or an input io.ReadSeeker that during reading will scan the files for the
// metadata details. It could be used for the PDF standard implementations like PDF/A or PDF/X.
// NOTE: This implementation is in experimental development state.
// Keep in mind that it might change in the subsequent minor versions.
func NewCompliancePdfReader (rs _ff .ReadSeeker )(*CompliancePdfReader ,error ){const _dbce ="\u006d\u006f\u0064\u0065l\u003a\u004e\u0065\u0077\u0043\u006f\u006d\u0070\u006c\u0069a\u006ec\u0065\u0050\u0064\u0066\u0052\u0065\u0061d\u0065\u0072";_cgbb ,_eefb :=_bgdaf (rs ,&ReaderOpts {ComplianceMode :true },false ,_dbce );
if _eefb !=nil {return nil ,_eefb ;};return &CompliancePdfReader {PdfReader :_cgbb },nil ;};
// ImageToRGB converts an image with samples in Separation CS to an image with samples specified in
// DeviceRGB CS.
func (_fbfc *PdfColorspaceSpecialSeparation )ImageToRGB (img Image )(Image ,error ){_dfdf :=_ade .NewReader (img .getBase ());_aeba :=_cc .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),_fbfc .AlternateSpace .GetNumComponents (),nil ,img ._gccd ,nil );
_decd :=_ade .NewWriter (_aeba );_egdba :=_ef .Pow (2,float64 (img .BitsPerComponent ))-1;_aa .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");
_aa .Log .Trace ("\u0054i\u006et\u0054\u0072\u0061\u006e\u0073f\u006f\u0072m\u003a\u0020\u0025\u002b\u0076",_fbfc .TintTransform );_deadd :=_fbfc .AlternateSpace .DecodeArray ();var (_fegf uint32 ;_gfaf error ;);for {_fegf ,_gfaf =_dfdf .ReadSample ();
if _gfaf ==_ff .EOF {break ;};if _gfaf !=nil {return img ,_gfaf ;};_bgdbb :=float64 (_fegf )/_egdba ;_fbac ,_eeafb :=_fbfc .TintTransform .Evaluate ([]float64 {_bgdbb });if _eeafb !=nil {return img ,_eeafb ;};for _adgg ,_gbfb :=range _fbac {_aggfe :=_cc .LinearInterpolate (_gbfb ,_deadd [_adgg *2],_deadd [_adgg *2+1],0,1);
if _eeafb =_decd .WriteSample (uint32 (_aggfe *_egdba ));_eeafb !=nil {return img ,_eeafb ;};};};return _fbfc .AlternateSpace .ImageToRGB (_adad (&_aeba ));};
// GetMediaBox gets the inheritable media box value, either from the page
// or a higher up page/pages struct.
func (_ceddd *PdfPage )GetMediaBox ()(*PdfRectangle ,error ){if _ceddd .MediaBox !=nil {return _ceddd .MediaBox ,nil ;};_abdcc :=_ceddd .Parent ;for _abdcc !=nil {_cddda ,_aece :=_fg .GetDict (_abdcc );if !_aece {return nil ,_ce .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 _bbbfb :=_cddda .Get ("\u004d\u0065\u0064\u0069\u0061\u0042\u006f\u0078");_bbbfb !=nil {_gbfg ,_gcee :=_fg .GetArray (_bbbfb );if !_gcee {return nil ,_ce .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006d\u0065\u0064\u0069a\u0020\u0062\u006f\u0078");
};_beaa ,_efdag :=NewPdfRectangle (*_gbfg );if _efdag !=nil {return nil ,_efdag ;};return _beaa ,nil ;};_abdcc =_cddda .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");};return nil ,_ce .New ("m\u0065\u0064\u0069\u0061 b\u006fx\u0020\u006e\u006f\u0074\u0020d\u0065\u0066\u0069\u006e\u0065\u0064");
};
// NewPdfAnnotationFileAttachment returns a new file attachment annotation.
func NewPdfAnnotationFileAttachment ()*PdfAnnotationFileAttachment {_efb :=NewPdfAnnotation ();_bdge :=&PdfAnnotationFileAttachment {};_bdge .PdfAnnotation =_efb ;_bdge .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_efb .SetContext (_bdge );return _bdge ;
};func _fcagf (_dbed *XObjectForm )(*PdfRectangle ,error ){if _facd ,_cfaac :=_dbed .BBox .(*_fg .PdfObjectArray );_cfaac {_cdae ,_dbde :=NewPdfRectangle (*_facd );if _dbde !=nil {return nil ,_dbde ;};if _bbbe ,_bcbae :=_dbed .Matrix .(*_fg .PdfObjectArray );
_bcbae {_beae ,_fegad :=_bbbe .ToFloat64Array ();if _fegad !=nil {return nil ,_fegad ;};_fded :=_gbe .IdentityMatrix ();if len (_beae )==6{_fded =_gbe .NewMatrix (_beae [0],_beae [1],_beae [2],_beae [3],_beae [4],_beae [5]);};_cdae .Transform (_fded );
return _cdae ,nil ;};};return nil ,_ce .New ("\u0069\u006e\u0076\u0061l\u0069\u0064\u0020\u0061\u0070\u0070\u0065\u0061\u0072\u0061n\u0063e\u0020\u0042\u0042\u006f\u0078\u0020\u0074y\u0070\u0065");};func _bgdaf (_cegcc _ff .ReadSeeker ,_bcge *ReaderOpts ,_dbddd bool ,_ebdbg string )(*PdfReader ,error ){if _bcge ==nil {_bcge =NewReaderOpts ();
};_aebcd :=*_bcge ;_bdecb :=&PdfReader {_daega :_cegcc ,_aefbbf :map[_fg .PdfObject ]struct{}{},_edebb :_aafff (),_beegg :_bcge .LazyLoad ,_gfdd :_bcge .ComplianceMode ,_ecgf :_dbddd ,_aegc :&_aebcd };_afcg ,_geagc :=_gfacd ("\u0072");if _geagc !=nil {return nil ,_geagc ;
};_geagc =_bec .Track (_afcg ,_ebdbg );if _geagc !=nil {return nil ,_geagc ;};_bdecb ._cecbe =_afcg ;var _effcc *_fg .PdfParser ;if !_bdecb ._gfdd {_effcc ,_geagc =_fg .NewParser (_cegcc );}else {_effcc ,_geagc =_fg .NewCompliancePdfParser (_cegcc );};
if _geagc !=nil {return nil ,_geagc ;};_bdecb ._ccgg =_effcc ;_ddfad ,_geagc :=_bdecb .IsEncrypted ();if _geagc !=nil {return nil ,_geagc ;};if !_ddfad {_geagc =_bdecb .loadStructure ();if _geagc !=nil {return nil ,_geagc ;};}else if _dbddd {_bfdfe ,_faggc :=_bdecb .Decrypt ([]byte (_bcge .Password ));
if _faggc !=nil {return nil ,_faggc ;};if !_bfdfe {return nil ,_ce .New ("\u0055\u006e\u0061\u0062\u006c\u0065\u0020\u0074\u006f \u0064\u0065c\u0072\u0079\u0070\u0074\u0020\u0070\u0061\u0073\u0073w\u006f\u0072\u0064\u0020p\u0072\u006f\u0074\u0065\u0063\u0074\u0065\u0064\u0020\u0066\u0069\u006c\u0065\u0020\u002d\u0020\u006e\u0065\u0065\u0064\u0020\u0074\u006f\u0020\u0073\u0070\u0065\u0063\u0069\u0066y\u0020\u0070\u0061s\u0073\u0020\u0074\u006f\u0020\u0044\u0065\u0063\u0072\u0079\u0070\u0074");
};};_bdecb ._cdecg =make (map[*PdfReader ]*PdfReader );_bdecb ._fdbdd =make ([]*PdfReader ,_effcc .GetRevisionNumber ());return _bdecb ,nil ;};func (_ccfa *PdfAppender )updateObjectsDeep (_dade _fg .PdfObject ,_afeea map[_fg .PdfObject ]struct{}){if _afeea ==nil {_afeea =map[_fg .PdfObject ]struct{}{};
};if _ ,_edag :=_afeea [_dade ];_edag ||_dade ==nil {return ;};_afeea [_dade ]=struct{}{};_dcfc :=_fg .ResolveReferencesDeep (_dade ,_ccfa ._fcca );if _dcfc !=nil {_aa .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_dcfc );};switch _abaa :=_dade .(type ){case *_fg .PdfIndirectObject :switch {case _abaa .GetParser ()==_ccfa ._cbb ._ccgg :return ;
case _abaa .GetParser ()==_ccfa .Reader ._ccgg :_dafg ,_ :=_ccfa ._cbb .GetIndirectObjectByNumber (int (_abaa .ObjectNumber ));_dbd ,_feee :=_dafg .(*_fg .PdfIndirectObject );if _feee &&_dbd !=nil {if _dbd .PdfObject !=_abaa .PdfObject &&_dbd .PdfObject .WriteString ()!=_abaa .PdfObject .WriteString (){_ccfa .addNewObject (_dade );
_ccfa ._dcbad [_dade ]=_abaa .ObjectNumber ;};};default:_ccfa .addNewObject (_dade );};_ccfa .updateObjectsDeep (_abaa .PdfObject ,_afeea );case *_fg .PdfObjectArray :for _ ,_gaeg :=range _abaa .Elements (){_ccfa .updateObjectsDeep (_gaeg ,_afeea );};case *_fg .PdfObjectDictionary :for _ ,_baa :=range _abaa .Keys (){_ccfa .updateObjectsDeep (_abaa .Get (_baa ),_afeea );
};case *_fg .PdfObjectStreams :if _abaa .GetParser ()!=_ccfa ._cbb ._ccgg {for _ ,_agce :=range _abaa .Elements (){_ccfa .updateObjectsDeep (_agce ,_afeea );};};case *_fg .PdfObjectStream :switch {case _abaa .GetParser ()==_ccfa ._cbb ._ccgg :return ;case _abaa .GetParser ()==_ccfa .Reader ._ccgg :if _cdgb ,_bab :=_ccfa ._cbb ._ccgg .LookupByReference (_abaa .PdfObjectReference );
_bab ==nil {var _gea bool ;if _edaa ,_agaa :=_fg .GetStream (_cdgb );_agaa &&_cb .Equal (_edaa .Stream ,_abaa .Stream ){_gea =true ;};if _feadc ,_gfae :=_fg .GetDict (_cdgb );_gea &&_gfae {_gea =_feadc .WriteString ()==_abaa .PdfObjectDictionary .WriteString ();
};if _gea {return ;};};if _abaa .ObjectNumber !=0{_ccfa ._dcbad [_dade ]=_abaa .ObjectNumber ;};default:if _ ,_fegc :=_ccfa ._aec [_dade ];!_fegc {_ccfa .addNewObject (_dade );};};_ccfa .updateObjectsDeep (_abaa .PdfObjectDictionary ,_afeea );};};
// 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 (_gabd *PdfReader )FlattenFields (allannots bool ,appgen FieldAppearanceGenerator )error {return _gabd .flattenFieldsWithOpts (allannots ,appgen ,nil );};func _gace (_cbcbg *_fg .PdfObjectDictionary ){_edgc ,_eaaa :=_fg .GetArray (_cbcbg .Get ("\u0057\u0069\u0064\u0074\u0068\u0073"));
_cbbb ,_effff :=_fg .GetIntVal (_cbcbg .Get ("\u0046i\u0072\u0073\u0074\u0043\u0068\u0061r"));_deee ,_gcabc :=_fg .GetIntVal (_cbcbg .Get ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072"));if _eaaa &&_effff &&_gcabc {_daebe :=_edgc .Len ();if _daebe !=_deee -_cbbb +1{_aa .Log .Debug ("\u0055\u006e\u0065x\u0070\u0065\u0063\u0074\u0065\u0064\u0020\u0057\u0069\u0064\u0074\u0068\u0073\u0020\u006c\u0065\u006e\u0067\u0074\u0068\u003a\u0020\u0025\u0076\u002c\u0020\u004c\u0061\u0073t\u0043\u0068\u0061\u0072\u003a\u0020\u0025\u0076",_daebe ,_deee );
_bafd :=_fg .PdfObjectInteger (_cbbb +_daebe -1);_cbcbg .Set ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072",&_bafd );};};};
// NewStandardPdfOutputIntent creates a new standard PdfOutputIntent.
func NewStandardPdfOutputIntent (outputCondition ,outputConditionIdentifier ,registryName string ,destOutputProfile []byte ,colorComponents int )*PdfOutputIntent {return &PdfOutputIntent {Type :"\u004f\u0075\u0074p\u0075\u0074\u0049\u006e\u0074\u0065\u006e\u0074",OutputCondition :outputCondition ,OutputConditionIdentifier :outputConditionIdentifier ,RegistryName :registryName ,DestOutputProfile :destOutputProfile ,ColorComponents :colorComponents ,_geaa :_fg .MakeDict ()};
};
// ToPdfObject returns the PDF representation of the DSS dictionary.
func (_gddc *DSS )ToPdfObject ()_fg .PdfObject {_cfgea :=_gddc ._gbaf .PdfObject .(*_fg .PdfObjectDictionary );_cfgea .Clear ();_gega :=_fg .MakeDict ();for _gaff ,_ffdf :=range _gddc .VRI {_gega .Set (*_fg .MakeName (_gaff ),_ffdf .ToPdfObject ());};_cfgea .SetIfNotNil ("\u0043\u0065\u0072t\u0073",_aedef (_gddc .Certs ));
_cfgea .SetIfNotNil ("\u004f\u0043\u0053P\u0073",_aedef (_gddc .OCSPs ));_cfgea .SetIfNotNil ("\u0043\u0052\u004c\u0073",_aedef (_gddc .CRLs ));_cfgea .Set ("\u0056\u0052\u0049",_gega );return _gddc ._gbaf ;};
// NewPdfAnnotationLine returns a new line annotation.
func NewPdfAnnotationLine ()*PdfAnnotationLine {_ecda :=NewPdfAnnotation ();_cbf :=&PdfAnnotationLine {};_cbf .PdfAnnotation =_ecda ;_cbf .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_ecda .SetContext (_cbf );return _cbf ;};
// PdfColorspaceDeviceRGB represents an RGB colorspace.
type PdfColorspaceDeviceRGB struct{};
// ToPdfObject implements interface PdfModel.
func (_eca *PdfActionLaunch )ToPdfObject ()_fg .PdfObject {_eca .PdfAction .ToPdfObject ();_eeb :=_eca ._bda ;_bbf :=_eeb .PdfObject .(*_fg .PdfObjectDictionary );_bbf .SetIfNotNil ("\u0053",_fg .MakeName (string (ActionTypeLaunch )));if _eca .F !=nil {_bbf .Set ("\u0046",_eca .F .ToPdfObject ());
};_bbf .SetIfNotNil ("\u0057\u0069\u006e",_eca .Win );_bbf .SetIfNotNil ("\u004d\u0061\u0063",_eca .Mac );_bbf .SetIfNotNil ("\u0055\u006e\u0069\u0078",_eca .Unix );_bbf .SetIfNotNil ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw",_eca .NewWindow );return _eeb ;
};
// NewPdfActionMovie returns a new "movie" action.
func NewPdfActionMovie ()*PdfActionMovie {_gge :=NewPdfAction ();_geec :=&PdfActionMovie {};_geec .PdfAction =_gge ;_gge .SetContext (_geec );return _geec ;};
// NewPdfActionJavaScript returns a new "javaScript" action.
func NewPdfActionJavaScript ()*PdfActionJavaScript {_cdg :=NewPdfAction ();_ae :=&PdfActionJavaScript {};_ae .PdfAction =_cdg ;_cdg .SetContext (_ae );return _ae ;};
// GenerateHashMaps generates DSS hashmaps for Certificates, OCSPs and CRLs to make sure they are unique.
func (_ecegg *DSS )GenerateHashMaps ()error {_ccdfcf ,_eabed :=_ecegg .generateHashMap (_ecegg .Certs );if _eabed !=nil {return _eabed ;};_gfdb ,_eabed :=_ecegg .generateHashMap (_ecegg .OCSPs );if _eabed !=nil {return _eabed ;};_gggeg ,_eabed :=_ecegg .generateHashMap (_ecegg .CRLs );
if _eabed !=nil {return _eabed ;};_ecegg ._aacde =_ccdfcf ;_ecegg ._cgbbd =_gfdb ;_ecegg ._fdcc =_gggeg ;return nil ;};
// IsSimple returns true if `font` is a simple font.
func (_deecf *PdfFont )IsSimple ()bool {_ ,_aabba :=_deecf ._gcaeff .(*pdfFontSimple );return _aabba };
// Items returns all children outline items.
func (_gadcdd *OutlineItem )Items ()[]*OutlineItem {return _gadcdd .Entries };
// AddCerts adds certificates to DSS.
func (_facc *DSS )AddCerts (certs [][]byte )([]*_fg .PdfObjectStream ,error ){return _facc .add (&_facc .Certs ,_facc ._aacde ,certs );};
// PdfShadingType2 is an Axial shading.
type PdfShadingType2 struct{*PdfShading ;Coords *_fg .PdfObjectArray ;Domain *_fg .PdfObjectArray ;Function []PdfFunction ;Extend *_fg .PdfObjectArray ;};
// 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 (_feeb *PdfColorspaceDeviceGray )ColorFromPdfObjects (objects []_fg .PdfObject )(PdfColor ,error ){if len (objects )!=1{return nil ,_ce .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_babb ,_cgaa :=_fg .GetNumbersAsFloat (objects );
if _cgaa !=nil {return nil ,_cgaa ;};return _feeb .ColorFromFloats (_babb );};
// ToPdfObject returns the PDF representation of the shading dictionary.
func (_dcag *PdfShading )ToPdfObject ()_fg .PdfObject {_aecab :=_dcag ._cbabf ;_geebd ,_cdcad :=_dcag .getShadingDict ();if _cdcad !=nil {_aa .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 _dcag .ShadingType !=nil {_geebd .Set ("S\u0068\u0061\u0064\u0069\u006e\u0067\u0054\u0079\u0070\u0065",_dcag .ShadingType );};if _dcag .ColorSpace !=nil {_geebd .Set ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065",_dcag .ColorSpace .ToPdfObject ());
};if _dcag .Background !=nil {_geebd .Set ("\u0042\u0061\u0063\u006b\u0067\u0072\u006f\u0075\u006e\u0064",_dcag .Background );};if _dcag .BBox !=nil {_geebd .Set ("\u0042\u0042\u006f\u0078",_dcag .BBox .ToPdfObject ());};if _dcag .AntiAlias !=nil {_geebd .Set ("\u0041n\u0074\u0069\u0041\u006c\u0069\u0061s",_dcag .AntiAlias );
};return _aecab ;};func (_dfddc SignatureValidationResult )String ()string {var _ceacc _cb .Buffer ;_ceacc .WriteString (_d .Sprintf ("\u004ea\u006d\u0065\u003a\u0020\u0025\u0073\n",_dfddc .Name ));if _dfddc .Date ._fddef > 0{_ceacc .WriteString (_d .Sprintf ("\u0044a\u0074\u0065\u003a\u0020\u0025\u0073\n",_dfddc .Date .ToGoTime ().String ()));
}else {_ceacc .WriteString ("\u0044\u0061\u0074\u0065 n\u006f\u0074\u0020\u0073\u0070\u0065\u0063\u0069\u0066\u0069\u0065\u0064\u000a");};if len (_dfddc .Reason )> 0{_ceacc .WriteString (_d .Sprintf ("R\u0065\u0061\u0073\u006f\u006e\u003a\u0020\u0025\u0073\u000a",_dfddc .Reason ));
}else {_ceacc .WriteString ("N\u006f \u0072\u0065\u0061\u0073\u006f\u006e\u0020\u0073p\u0065\u0063\u0069\u0066ie\u0064\u000a");};if len (_dfddc .Location )> 0{_ceacc .WriteString (_d .Sprintf ("\u004c\u006f\u0063\u0061\u0074\u0069\u006f\u006e\u003a\u0020\u0025\u0073\u000a",_dfddc .Location ));
}else {_ceacc .WriteString ("\u004c\u006f\u0063at\u0069\u006f\u006e\u0020\u006e\u006f\u0074\u0020\u0073\u0070\u0065\u0063\u0069\u0066\u0069\u0065\u0064\u000a");};if len (_dfddc .ContactInfo )> 0{_ceacc .WriteString (_d .Sprintf ("\u0043\u006f\u006e\u0074\u0061\u0063\u0074\u0020\u0049\u006e\u0066\u006f:\u0020\u0025\u0073\u000a",_dfddc .ContactInfo ));
}else {_ceacc .WriteString ("C\u006f\u006e\u0074\u0061\u0063\u0074 \u0069\u006e\u0066\u006f\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063i\u0066i\u0065\u0064\u000a");};_ceacc .WriteString (_d .Sprintf ("F\u0069\u0065\u006c\u0064\u0073\u003a\u0020\u0025\u0064\u000a",len (_dfddc .Fields )));
if _dfddc .IsSigned {_ceacc .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 {_ceacc .WriteString ("\u0053\u0069\u0067\u006eed\u003a\u0020\u004e\u006f\u0074\u0020\u0073\u0069\u0067\u006e\u0065\u0064\u000a");
};if _dfddc .IsVerified {_ceacc .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 {_ceacc .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 _dfddc .IsTrusted {_ceacc .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 {_ceacc .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 !_dfddc .GeneralizedTime .IsZero (){_ceacc .WriteString (_d .Sprintf ("G\u0065n\u0065\u0072\u0061\u006c\u0069\u007a\u0065\u0064T\u0069\u006d\u0065\u003a %\u0073\u000a",_dfddc .GeneralizedTime .String ()));};if _dfddc .DiffResults !=nil {_ceacc .WriteString (_d .Sprintf ("\u0064\u0069\u0066\u0066 i\u0073\u0020\u0070\u0065\u0072\u006d\u0069\u0074\u0074\u0065\u0064\u003a\u0020\u0025v\u000a",_dfddc .DiffResults .IsPermitted ()));
if len (_dfddc .DiffResults .Warnings )> 0{_ceacc .WriteString ("\u004d\u0044\u0050\u0020\u0077\u0061\u0072\u006e\u0069n\u0067\u0073\u003a\u000a");for _ ,_bgefa :=range _dfddc .DiffResults .Warnings {_ceacc .WriteString (_d .Sprintf ("\u0009\u0025\u0073\u000a",_bgefa ));
};};if len (_dfddc .DiffResults .Errors )> 0{_ceacc .WriteString ("\u004d\u0044\u0050 \u0065\u0072\u0072\u006f\u0072\u0073\u003a\u000a");for _ ,_eedee :=range _dfddc .DiffResults .Errors {_ceacc .WriteString (_d .Sprintf ("\u0009\u0025\u0073\u000a",_eedee ));
};};};if _dfddc .IsCrlFound {_ceacc .WriteString ("R\u0065\u0076\u006f\u0063\u0061\u0074i\u006f\u006e\u0020\u0064\u0061\u0074\u0061\u003a\u0020C\u0052\u004c\u0020f\u006fu\u006e\u0064\u000a");}else {_ceacc .WriteString ("\u0052\u0065\u0076o\u0063\u0061\u0074\u0069o\u006e\u0020\u0064\u0061\u0074\u0061\u003a \u0043\u0052\u004c\u0020\u006e\u006f\u0074\u0020\u0066\u006f\u0075\u006e\u0064\u000a");
};if _dfddc .IsOcspFound {_ceacc .WriteString ("\u0052\u0065\u0076\u006fc\u0061\u0074\u0069\u006f\u006e\u0020\u0064\u0061\u0074\u0061:\u0020O\u0043\u0053\u0050\u0020\u0066\u006f\u0075n\u0064\u000a");}else {_ceacc .WriteString ("\u0052\u0065\u0076\u006f\u0063\u0061\u0074\u0069\u006f\u006e\u0020\u0064\u0061\u0074\u0061:\u0020O\u0043\u0053\u0050\u0020\u006e\u006f\u0074\u0020\u0066\u006f\u0075\u006e\u0064\u000a");
};return _ceacc .String ();};type pdfFontType3 struct{fontCommon ;_bdfc *_fg .PdfIndirectObject ;
// These fields are specific to Type 3 fonts.
CharProcs _fg .PdfObject ;Encoding _fg .PdfObject ;FontBBox _fg .PdfObject ;FontMatrix _fg .PdfObject ;FirstChar _fg .PdfObject ;LastChar _fg .PdfObject ;Widths _fg .PdfObject ;Resources _fg .PdfObject ;_eabbc map[_dg .CharCode ]float64 ;_efad _dg .TextEncoder ;
};const (ButtonTypeCheckbox ButtonType =iota ;ButtonTypePush ButtonType =iota ;ButtonTypeRadio ButtonType =iota ;);
// NewPdfOutline returns an initialized PdfOutline.
func NewPdfOutline ()*PdfOutline {_egcc :=&PdfOutline {_adece :_fg .MakeIndirectObject (_fg .MakeDict ())};_egcc ._gfcge =_egcc ;return _egcc ;};
// GetContainingPdfObject returns the container of the outline (indirect object).
func (_gdeaec *PdfOutline )GetContainingPdfObject ()_fg .PdfObject {return _gdeaec ._adece };
// AcroFormRepairOptions contains options for rebuilding the AcroForm.
type AcroFormRepairOptions struct{};
// GetBorderWidth returns the border style's width.
func (_fecf *PdfBorderStyle )GetBorderWidth ()float64 {if _fecf .W ==nil {return 1;};return *_fecf .W ;};
// ColorFromPdfObjects returns a new PdfColor based on input color components. The input PdfObjects should
// be numeric.
func (_dfcb *PdfColorspaceDeviceN )ColorFromPdfObjects (objects []_fg .PdfObject )(PdfColor ,error ){if len (objects )!=_dfcb .GetNumComponents (){return nil ,_ce .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_aacc ,_fbcg :=_fg .GetNumbersAsFloat (objects );
if _fbcg !=nil {return nil ,_fbcg ;};return _dfcb .ColorFromFloats (_aacc );};func (_eccbg fontCommon )fontFlags ()int {if _eccbg ._cdgef ==nil {return 0;};return _eccbg ._cdgef ._gbeff ;};
// GetContainingPdfObject returns the container of the outline tree node (indirect object).
func (_efbc *PdfOutlineTreeNode )GetContainingPdfObject ()_fg .PdfObject {return _efbc .GetContext ().GetContainingPdfObject ();};
// NewPdfFilespec returns an initialized generic PDF filespec model.
func NewPdfFilespec ()*PdfFilespec {_ccaf :=&PdfFilespec {};_ccaf ._ccbdc =_fg .MakeIndirectObject (_fg .MakeDict ());return _ccaf ;};func (_fda *PdfReader )newPdfActionGotoFromDict (_bgfab *_fg .PdfObjectDictionary )(*PdfActionGoTo ,error ){return &PdfActionGoTo {D :_bgfab .Get ("\u0044")},nil ;
};
// PdfAnnotationWidget represents Widget annotations.
// Note: Widget annotations are used to display form fields.
// (Section 12.5.6.19).
type PdfAnnotationWidget struct{*PdfAnnotation ;H _fg .PdfObject ;MK _fg .PdfObject ;A _fg .PdfObject ;AA _fg .PdfObject ;BS _fg .PdfObject ;Parent _fg .PdfObject ;_ddcc *PdfField ;_db bool ;};
// DecodeArray returns the range of color component values in the ICCBased colorspace.
func (_cgec *PdfColorspaceICCBased )DecodeArray ()[]float64 {return _cgec .Range };func _gecd (_cdcc *_fg .PdfObjectDictionary )bool {for _ ,_fgeb :=range _cdcc .Keys (){if _ ,_aefe :=_beab [_fgeb .String ()];_aefe {return true ;};};return false ;};
// GetFontByName gets the font specified by keyName. Returns the PdfObject which
// the entry refers to. Returns a bool value indicating whether or not the entry was found.
func (_cefef *PdfPageResources )GetFontByName (keyName _fg .PdfObjectName )(_fg .PdfObject ,bool ){if _cefef .Font ==nil {return nil ,false ;};_dfbeb ,_cbfba :=_fg .TraceToDirectObject (_cefef .Font ).(*_fg .PdfObjectDictionary );if !_cbfba {_aa .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",_fg .TraceToDirectObject (_cefef .Font ));
return nil ,false ;};if _cbgcg :=_dfbeb .Get (keyName );_cbgcg !=nil {return _cbgcg ,true ;};return nil ,false ;};
// ImageToRGB converts ICCBased colorspace image to RGB and returns the result.
func (_gdddd *PdfColorspaceICCBased )ImageToRGB (img Image )(Image ,error ){if _gdddd .Alternate ==nil {_aa .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 _gdddd .N ==1{_aa .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");
_dcegb :=NewPdfColorspaceDeviceGray ();return _dcegb .ImageToRGB (img );}else if _gdddd .N ==3{_aa .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 _gdddd .N ==4{_aa .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");
_dccgf :=NewPdfColorspaceDeviceCMYK ();return _dccgf .ImageToRGB (img );}else {return img ,_ce .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");
};};_aa .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",_gdddd );
_effe ,_dddce :=_gdddd .Alternate .ImageToRGB (img );_aa .Log .Trace ("I\u0043C\u0020\u0049\u006e\u0070\u0075\u0074\u0020\u0069m\u0061\u0067\u0065\u003a %\u002b\u0076",img );_aa .Log .Trace ("I\u0043\u0043\u0020\u004fut\u0070u\u0074\u0020\u0069\u006d\u0061g\u0065\u003a\u0020\u0025\u002b\u0076",_effe );
return _effe ,_dddce ;};func (_fgde *PdfReader )newPdfAnnotationPolyLineFromDict (_gdef *_fg .PdfObjectDictionary )(*PdfAnnotationPolyLine ,error ){_aaba :=PdfAnnotationPolyLine {};_egcb ,_ecbb :=_fgde .newPdfAnnotationMarkupFromDict (_gdef );if _ecbb !=nil {return nil ,_ecbb ;
};_aaba .PdfAnnotationMarkup =_egcb ;_aaba .Vertices =_gdef .Get ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073");_aaba .LE =_gdef .Get ("\u004c\u0045");_aaba .BS =_gdef .Get ("\u0042\u0053");_aaba .IC =_gdef .Get ("\u0049\u0043");_aaba .BE =_gdef .Get ("\u0042\u0045");
_aaba .IT =_gdef .Get ("\u0049\u0054");_aaba .Measure =_gdef .Get ("\u004de\u0061\u0073\u0075\u0072\u0065");return &_aaba ,nil ;};func (_dadcg *PdfReader )loadOutlines ()(*PdfOutlineTreeNode ,error ){if _dadcg ._ccgg .GetCrypter ()!=nil &&!_dadcg ._ccgg .IsAuthenticated (){return nil ,_d .Errorf ("\u0066\u0069\u006ce\u0020\u006e\u0065\u0065d\u0020\u0074\u006f\u0020\u0062\u0065\u0020d\u0065\u0063\u0072\u0079\u0070\u0074\u0065\u0064\u0020\u0066\u0069\u0072\u0073\u0074");
};_ddbcf :=_dadcg ._cgegd ;_gcdfag :=_ddbcf .Get ("\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0073");if _gcdfag ==nil {return nil ,nil ;};_aa .Log .Trace ("\u002d\u0048\u0061\u0073\u0020\u006f\u0075\u0074\u006c\u0069\u006e\u0065\u0073");_dccac :=_fg .ResolveReference (_gcdfag );
_aa .Log .Trace ("\u004f\u0075t\u006c\u0069\u006ee\u0020\u0072\u006f\u006f\u0074\u003a\u0020\u0025\u0076",_dccac );if _cddca :=_fg .IsNullObject (_dccac );_cddca {_aa .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 ;};_dffc ,_fgcfcf :=_dccac .(*_fg .PdfIndirectObject );if !_fgcfcf {if _ ,_ffgge :=_fg .GetDict (_dccac );!_ffgge {_aa .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 ;};_aa .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");
_dffc =_fg .MakeIndirectObject (_dccac );};_agfea ,_fgcfcf :=_dffc .PdfObject .(*_fg .PdfObjectDictionary );if !_fgcfcf {return nil ,_ce .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");
};_aa .Log .Trace ("O\u0075\u0074\u006c\u0069ne\u0020r\u006f\u006f\u0074\u0020\u0064i\u0063\u0074\u003a\u0020\u0025\u0076",_agfea );_gdbf ,_ ,_afaf :=_dadcg .buildOutlineTree (_dffc ,nil ,nil ,nil );if _afaf !=nil {return nil ,_afaf ;};_aa .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",_gdbf );
return _gdbf ,nil ;};func (_cdbae *PdfWriter )checkLicense ()error {_aegfbb :=_bec .GetLicenseKey ();if (_aegfbb ==nil ||!_aegfbb .IsLicensed ())&&!_dbfbeb {_d .Printf ("\u0055\u006e\u006c\u0069\u0063\u0065\u006e\u0073\u0065\u0064\u0020c\u006f\u0070\u0079\u0020\u006f\u0066\u0020\u0055\u006e\u0069P\u0044\u0046\u000a");
_d .Println ("-\u0020\u0047\u0065\u0074\u0020\u0061\u0020\u0066\u0072e\u0065\u0020\u0074\u0072\u0069\u0061\u006c l\u0069\u0063\u0065\u006es\u0065\u0020\u006f\u006e\u0020\u0068\u0074\u0074\u0070s:\u002f\u002fu\u006e\u0069\u0064\u006f\u0063\u002e\u0069\u006f");
return _ce .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");};return nil ;};
// NewPdfOutputIntentFromPdfObject creates a new PdfOutputIntent from the input core.PdfObject.
func NewPdfOutputIntentFromPdfObject (object _fg .PdfObject )(*PdfOutputIntent ,error ){_ebbdd :=&PdfOutputIntent {};if _beeg :=_ebbdd .ParsePdfObject (object );_beeg !=nil {return nil ,_beeg ;};return _ebbdd ,nil ;};
// GetNumComponents returns the number of color components of the colorspace device.
// Returns 3 for an RGB device.
func (_gdcc *PdfColorspaceDeviceRGB )GetNumComponents ()int {return 3};func _fffbg (_cdffb _fg .PdfObject )(*PdfShading ,error ){_cgca :=&PdfShading {};var _cfef *_fg .PdfObjectDictionary ;if _gfgbd ,_eceaa :=_fg .GetIndirect (_cdffb );_eceaa {_cgca ._cbabf =_gfgbd ;
_fcdc ,_gggbf :=_gfgbd .PdfObject .(*_fg .PdfObjectDictionary );if !_gggbf {_aa .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 ,_fg .ErrTypeError ;
};_cfef =_fcdc ;}else if _cfgdd ,_daae :=_fg .GetStream (_cdffb );_daae {_cgca ._cbabf =_cfgdd ;_cfef =_cfgdd .PdfObjectDictionary ;}else if _edddf ,_gdfc :=_fg .GetDict (_cdffb );_gdfc {_cgca ._cbabf =_edddf ;_cfef =_edddf ;}else {_aa .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",_cdffb );
return nil ,_fg .ErrTypeError ;};if _cfef ==nil {_aa .Log .Debug ("\u0044i\u0063t\u0069\u006f\u006e\u0061\u0072y\u0020\u006di\u0073\u0073\u0069\u006e\u0067");return nil ,_ce .New ("\u0064\u0069\u0063t\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};
_cdffb =_cfef .Get ("S\u0068\u0061\u0064\u0069\u006e\u0067\u0054\u0079\u0070\u0065");if _cdffb ==nil {_aa .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 ;};_cdffb =_fg .TraceToDirectObject (_cdffb );_gabgd ,_afedc :=_cdffb .(*_fg .PdfObjectInteger );if !_afedc {_aa .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",_cdffb );
return nil ,_fg .ErrTypeError ;};if *_gabgd < 1||*_gabgd > 7{_aa .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",*_gabgd );
return nil ,_fg .ErrTypeError ;};_cgca .ShadingType =_gabgd ;_cdffb =_cfef .Get ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065");if _cdffb ==nil {_aa .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 ;};_ggdb ,_ebgad :=NewPdfColorspaceFromPdfObject (_cdffb );if _ebgad !=nil {_aa .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",_ebgad );
return nil ,_ebgad ;};_cgca .ColorSpace =_ggdb ;_cdffb =_cfef .Get ("\u0042\u0061\u0063\u006b\u0067\u0072\u006f\u0075\u006e\u0064");if _cdffb !=nil {_cdffb =_fg .TraceToDirectObject (_cdffb );_dffd ,_cfcae :=_cdffb .(*_fg .PdfObjectArray );if !_cfcae {_aa .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)",_cdffb );
return nil ,_fg .ErrTypeError ;};_cgca .Background =_dffd ;};_cdffb =_cfef .Get ("\u0042\u0042\u006f\u0078");if _cdffb !=nil {_cdffb =_fg .TraceToDirectObject (_cdffb );_aadd ,_fbdag :=_cdffb .(*_fg .PdfObjectArray );if !_fbdag {_aa .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)",_cdffb );
return nil ,_fg .ErrTypeError ;};_eccg ,_ffdb :=NewPdfRectangle (*_aadd );if _ffdb !=nil {_aa .Log .Debug ("\u0042\u0042\u006f\u0078\u0020\u0065\u0072\u0072\u006fr\u003a\u0020\u0025\u0076",_ffdb );return nil ,_ffdb ;};_cgca .BBox =_eccg ;};_cdffb =_cfef .Get ("\u0041n\u0074\u0069\u0041\u006c\u0069\u0061s");
if _cdffb !=nil {_cdffb =_fg .TraceToDirectObject (_cdffb );_bgad ,_decf :=_cdffb .(*_fg .PdfObjectBool );if !_decf {_aa .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",_cdffb );
return nil ,_fg .ErrTypeError ;};_cgca .AntiAlias =_bgad ;};switch *_gabgd {case 1:_adagef ,_dafcb :=_ccde (_cfef );if _dafcb !=nil {return nil ,_dafcb ;};_adagef .PdfShading =_cgca ;_cgca ._bcbef =_adagef ;return _cgca ,nil ;case 2:_cedbf ,_caagc :=_fbcae (_cfef );
if _caagc !=nil {return nil ,_caagc ;};_cedbf .PdfShading =_cgca ;_cgca ._bcbef =_cedbf ;return _cgca ,nil ;case 3:_dabe ,_edcgbc :=_gaccf (_cfef );if _edcgbc !=nil {return nil ,_edcgbc ;};_dabe .PdfShading =_cgca ;_cgca ._bcbef =_dabe ;return _cgca ,nil ;
case 4:_befaab ,_ccbeg :=_badcbe (_cfef );if _ccbeg !=nil {return nil ,_ccbeg ;};_befaab .PdfShading =_cgca ;_cgca ._bcbef =_befaab ;return _cgca ,nil ;case 5:_abdcb ,_ebbag :=_cgga (_cfef );if _ebbag !=nil {return nil ,_ebbag ;};_abdcb .PdfShading =_cgca ;
_cgca ._bcbef =_abdcb ;return _cgca ,nil ;case 6:_dccea ,_aegaf :=_cfedc (_cfef );if _aegaf !=nil {return nil ,_aegaf ;};_dccea .PdfShading =_cgca ;_cgca ._bcbef =_dccea ;return _cgca ,nil ;case 7:_eddf ,_efafb :=_dadgg (_cfef );if _efafb !=nil {return nil ,_efafb ;
};_eddf .PdfShading =_cgca ;_cgca ._bcbef =_eddf ;return _cgca ,nil ;};return nil ,_ce .New ("u\u006ek\u006e\u006f\u0077\u006e\u0020\u0073\u0068\u0061d\u0069\u006e\u0067\u0020ty\u0070\u0065");};
// ToPdfObject implements interface PdfModel.
func (_bfb *PdfAnnotationTrapNet )ToPdfObject ()_fg .PdfObject {_bfb .PdfAnnotation .ToPdfObject ();_fabd :=_bfb ._agb ;_cbce :=_fabd .PdfObject .(*_fg .PdfObjectDictionary );_cbce .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fg .MakeName ("\u0054r\u0061\u0070\u004e\u0065\u0074"));
return _fabd ;};
// HasExtGState checks if ExtGState name is available.
func (_gfaccd *PdfPage )HasExtGState (name _fg .PdfObjectName )bool {if _gfaccd .Resources ==nil {return false ;};if _gfaccd .Resources .ExtGState ==nil {return false ;};_ggfe ,_faeb :=_fg .TraceToDirectObject (_gfaccd .Resources .ExtGState ).(*_fg .PdfObjectDictionary );
if !_faeb {_aa .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",_fg .TraceToDirectObject (_gfaccd .Resources .ExtGState ));
return false ;};_edege :=_ggfe .Get (name );_gdcge :=_edege !=nil ;return _gdcge ;};
// NewPdfActionImportData returns a new "import data" action.
func NewPdfActionImportData ()*PdfActionImportData {_afa :=NewPdfAction ();_fa :=&PdfActionImportData {};_fa .PdfAction =_afa ;_afa .SetContext (_fa );return _fa ;};
// NewXObjectImage returns a new XObjectImage.
func NewXObjectImage ()*XObjectImage {_bgdab :=&XObjectImage {};_dbece :=&_fg .PdfObjectStream {};_dbece .PdfObjectDictionary =_fg .MakeDict ();_bgdab ._eafbc =_dbece ;return _bgdab ;};func (_ddef *PdfPage )setContainer (_abbca *_fg .PdfIndirectObject ){_abbca .PdfObject =_ddef ._eebge ;
_ddef ._aebf =_abbca ;};func _fffe (_afbf *_fg .PdfObjectDictionary )(*PdfShadingPattern ,error ){_cafgcf :=&PdfShadingPattern {};_beacd :=_afbf .Get ("\u0053h\u0061\u0064\u0069\u006e\u0067");if _beacd ==nil {_aa .Log .Debug ("\u0053h\u0061d\u0069\u006e\u0067\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");
return nil ,ErrRequiredAttributeMissing ;};_cfedg ,_eedfe :=_fffbg (_beacd );if _eedfe !=nil {_aa .Log .Debug ("\u0045r\u0072\u006f\u0072\u0020l\u006f\u0061\u0064\u0069\u006eg\u0020s\u0068a\u0064\u0069\u006e\u0067\u003a\u0020\u0025v",_eedfe );return nil ,_eedfe ;
};_cafgcf .Shading =_cfedg ;if _aeaeb :=_afbf .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");_aeaeb !=nil {_abcaf ,_fgab :=_aeaeb .(*_fg .PdfObjectArray );if !_fgab {_aa .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",_aeaeb );
return nil ,_fg .ErrTypeError ;};_cafgcf .Matrix =_abcaf ;};if _baddf :=_afbf .Get ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e");_baddf !=nil {_cafgcf .ExtGState =_baddf ;};return _cafgcf ,nil ;};func (_fbggc *PdfReader )buildOutlineTree (_abafgf _fg .PdfObject ,_ggaded *PdfOutlineTreeNode ,_gbdef *PdfOutlineTreeNode ,_gdbega map[_fg .PdfObject ]struct{})(*PdfOutlineTreeNode ,*PdfOutlineTreeNode ,error ){if _gdbega ==nil {_gdbega =map[_fg .PdfObject ]struct{}{};
};_gdbega [_abafgf ]=struct{}{};_cebb ,_ccdbg :=_abafgf .(*_fg .PdfIndirectObject );if !_ccdbg {return nil ,nil ,_d .Errorf ("\u006f\u0075\u0074\u006c\u0069\u006e\u0065 \u0063\u006f\u006et\u0061\u0069\u006e\u0065r\u0020\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0069\u006e\u0064\u0069\u0072\u0065\u0063\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0020\u0025\u0054",_abafgf );
};_bdfbf ,_eedab :=_cebb .PdfObject .(*_fg .PdfObjectDictionary );if !_eedab {return nil ,nil ,_ce .New ("\u006e\u006f\u0074 a\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u0020\u006f\u0062\u006a\u0065\u0063\u0074");};_aa .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",_bdfbf ,_cebb ,_cebb );
if _efaac :=_bdfbf .Get ("\u0054\u0069\u0074l\u0065");_efaac !=nil {_ddgd ,_gbagcc :=_fbggc .newPdfOutlineItemFromIndirectObject (_cebb );if _gbagcc !=nil {return nil ,nil ,_gbagcc ;};_ddgd .Parent =_ggaded ;_ddgd .Prev =_gbdef ;_gfaba :=_fg .ResolveReference (_bdfbf .Get ("\u0046\u0069\u0072s\u0074"));
if _ ,_baaf :=_gdbega [_gfaba ];_gfaba !=nil &&_gfaba !=_cebb &&!_baaf {if !_fg .IsNullObject (_gfaba ){_agcbbf ,_fbed ,_dedcfe :=_fbggc .buildOutlineTree (_gfaba ,&_ddgd .PdfOutlineTreeNode ,nil ,_gdbega );if _dedcfe !=nil {_aa .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",_dedcfe );
}else {_ddgd .First =_agcbbf ;_ddgd .Last =_fbed ;};};};_dfcbee :=_fg .ResolveReference (_bdfbf .Get ("\u004e\u0065\u0078\u0074"));if _ ,_edbdb :=_gdbega [_dfcbee ];_dfcbee !=nil &&_dfcbee !=_cebb &&!_edbdb {if !_fg .IsNullObject (_dfcbee ){_afced ,_fbcf ,_gdfbb :=_fbggc .buildOutlineTree (_dfcbee ,_ggaded ,&_ddgd .PdfOutlineTreeNode ,_gdbega );
if _gdfbb !=nil {_aa .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",_gdfbb );
}else {_ddgd .Next =_afced ;return &_ddgd .PdfOutlineTreeNode ,_fbcf ,nil ;};};};return &_ddgd .PdfOutlineTreeNode ,&_ddgd .PdfOutlineTreeNode ,nil ;};_cffgde ,_fbae :=_beca (_cebb );if _fbae !=nil {return nil ,nil ,_fbae ;};_cffgde .Parent =_ggaded ;if _beeaa :=_bdfbf .Get ("\u0046\u0069\u0072s\u0074");
_beeaa !=nil {_beeaa =_fg .ResolveReference (_beeaa );if _ ,_ggadeg :=_gdbega [_beeaa ];_beeaa !=nil &&_beeaa !=_cebb &&!_ggadeg {_ccbdd :=_fg .TraceToDirectObject (_beeaa );if _ ,_ecdeb :=_ccbdd .(*_fg .PdfObjectNull );!_ecdeb &&_ccbdd !=nil {_egcff ,_bbbgc ,_cddfa :=_fbggc .buildOutlineTree (_beeaa ,&_cffgde .PdfOutlineTreeNode ,nil ,_gdbega );
if _cddfa !=nil {_aa .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",_cddfa );
}else {_cffgde .First =_egcff ;_cffgde .Last =_bbbgc ;};};};};return &_cffgde .PdfOutlineTreeNode ,&_cffgde .PdfOutlineTreeNode ,nil ;};
// NewPdfActionSetOCGState returns a new "named" action.
func NewPdfActionSetOCGState ()*PdfActionSetOCGState {_fgd :=NewPdfAction ();_ega :=&PdfActionSetOCGState {};_ega .PdfAction =_fgd ;_fgd .SetContext (_ega );return _ega ;};func (_cccf *PdfReader )newPdfActionSubmitFormFromDict (_agcb *_fg .PdfObjectDictionary )(*PdfActionSubmitForm ,error ){_aba ,_acb :=_ddd (_agcb .Get ("\u0046"));
if _acb !=nil {return nil ,_acb ;};return &PdfActionSubmitForm {F :_aba ,Fields :_agcb .Get ("\u0046\u0069\u0065\u006c\u0064\u0073"),Flags :_agcb .Get ("\u0046\u006c\u0061g\u0073")},nil ;};
// NewPdfPageResourcesFromDict creates and returns a new PdfPageResources object
// from the input dictionary.
func NewPdfPageResourcesFromDict (dict *_fg .PdfObjectDictionary )(*PdfPageResources ,error ){_cagfd :=NewPdfPageResources ();if _edbe :=dict .Get ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e");_edbe !=nil {_cagfd .ExtGState =_edbe ;};if _dcdaea :=dict .Get ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065");
_dcdaea !=nil &&!_fg .IsNullObject (_dcdaea ){_cagfd .ColorSpace =_dcdaea ;};if _ecedg :=dict .Get ("\u0050a\u0074\u0074\u0065\u0072\u006e");_ecedg !=nil {_cagfd .Pattern =_ecedg ;};if _gdcga :=dict .Get ("\u0053h\u0061\u0064\u0069\u006e\u0067");_gdcga !=nil {_cagfd .Shading =_gdcga ;
};if _fcace :=dict .Get ("\u0058O\u0062\u006a\u0065\u0063\u0074");_fcace !=nil {_cagfd .XObject =_fcace ;};if _ccbc :=_fg .ResolveReference (dict .Get ("\u0046\u006f\u006e\u0074"));_ccbc !=nil {_cagfd .Font =_ccbc ;};if _afcag :=dict .Get ("\u0050r\u006f\u0063\u0053\u0065\u0074");
_afcag !=nil {_cagfd .ProcSet =_afcag ;};if _cfgad :=dict .Get ("\u0050\u0072\u006f\u0070\u0065\u0072\u0074\u0069\u0065\u0073");_cfgad !=nil {_cagfd .Properties =_cfgad ;};return _cagfd ,nil ;};
// L returns the value of the L component of the color.
func (_bacae *PdfColorLab )L ()float64 {return _bacae [0]};
// ColorToRGB converts gray -> rgb for a single color component.
func (_addb *PdfColorspaceDeviceGray )ColorToRGB (color PdfColor )(PdfColor ,error ){_abbc ,_gefe :=color .(*PdfColorDeviceGray );if !_gefe {_aa .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 ,_ce .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};return NewPdfColorDeviceRGB (float64 (*_abbc ),float64 (*_abbc ),float64 (*_abbc )),nil ;};
// GetPreviousRevision returns the previous revision of PdfReader for the Pdf document
func (_ebdge *PdfReader )GetPreviousRevision ()(*PdfReader ,error ){if _ebdge ._ccgg .GetRevisionNumber ()==0{return nil ,_ce .New ("\u0070\u0072e\u0076\u0069\u006f\u0075\u0073\u0020\u0076\u0065\u0072\u0073\u0069\u006f\u006e\u0020\u0069\u0073\u0020\u006e\u006f\u0074\u0020\u0065xi\u0073\u0074");
};if _ccbda ,_gbad :=_ebdge ._cdecg [_ebdge ];_gbad {return _ccbda ,nil ;};_cgea ,_fdgeb :=_ebdge ._ccgg .GetPreviousRevisionReadSeeker ();if _fdgeb !=nil {return nil ,_fdgeb ;};_gcebb ,_fdgeb :=_bgdaf (_cgea ,_ebdge ._aegc ,_ebdge ._ecgf ,"\u006do\u0064\u0065\u006c\u003aG\u0065\u0074\u0050\u0072\u0065v\u0069o\u0075s\u0052\u0065\u0076\u0069\u0073\u0069\u006fn");
if _fdgeb !=nil {return nil ,_fdgeb ;};_ebdge ._fdbdd [_ebdge ._ccgg .GetRevisionNumber ()-1]=_gcebb ;_ebdge ._cdecg [_ebdge ]=_gcebb ;_gcebb ._cdecg =_ebdge ._cdecg ;return _gcebb ,nil ;};
// PdfOutlineItem represents an outline item dictionary (Table 153 - pp. 376 - 377).
type PdfOutlineItem struct{PdfOutlineTreeNode ;Title *_fg .PdfObjectString ;Parent *PdfOutlineTreeNode ;Prev *PdfOutlineTreeNode ;Next *PdfOutlineTreeNode ;Count *int64 ;Dest _fg .PdfObject ;A _fg .PdfObject ;SE _fg .PdfObject ;C _fg .PdfObject ;F _fg .PdfObject ;
_aeadb *_fg .PdfIndirectObject ;};func (_ecfad *PdfWriter )setDocInfo (_gfcfb _fg .PdfObject ){if _ecfad .hasObject (_ecfad ._deabg ){delete (_ecfad ._gcbec ,_ecfad ._deabg );delete (_ecfad ._acccfc ,_ecfad ._deabg );for _gbdec ,_bbgfg :=range _ecfad ._bbfd {if _bbgfg ==_ecfad ._deabg {copy (_ecfad ._bbfd [_gbdec :],_ecfad ._bbfd [_gbdec +1:]);
_ecfad ._bbfd [len (_ecfad ._bbfd )-1]=nil ;_ecfad ._bbfd =_ecfad ._bbfd [:len (_ecfad ._bbfd )-1];break ;};};};_gffec :=_fg .PdfIndirectObject {};_gffec .PdfObject =_gfcfb ;_ecfad ._deabg =&_gffec ;_ecfad .addObject (&_gffec );};
// PdfAnnotationPolyLine represents PolyLine annotations.
// (Section 12.5.6.9).
type PdfAnnotationPolyLine struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Vertices _fg .PdfObject ;LE _fg .PdfObject ;BS _fg .PdfObject ;IC _fg .PdfObject ;BE _fg .PdfObject ;IT _fg .PdfObject ;Measure _fg .PdfObject ;};
// GetRevision returns the specific version of the PdfReader for the current Pdf document
func (_agcfg *PdfReader )GetRevision (revisionNumber int )(*PdfReader ,error ){_ccddb :=_agcfg ._ccgg .GetRevisionNumber ();if revisionNumber < 0||revisionNumber > _ccddb {return nil ,_ce .New ("w\u0072\u006f\u006e\u0067 r\u0065v\u0069\u0073\u0069\u006f\u006e \u006e\u0075\u006d\u0062\u0065\u0072");
};if revisionNumber ==_ccddb {return _agcfg ,nil ;};if _agcfg ._fdbdd [revisionNumber ]!=nil {return _agcfg ._fdbdd [revisionNumber ],nil ;};_cege :=_agcfg ;for _ggccc :=_ccddb -1;_ggccc >=revisionNumber ;_ggccc --{_cedc ,_gcfc :=_cege .GetPreviousRevision ();
if _gcfc !=nil {return nil ,_gcfc ;};_agcfg ._fdbdd [_ggccc ]=_cedc ;_cege =_cedc ;};return _cege ,nil ;};
// PdfAnnotationPopup represents Popup annotations.
// (Section 12.5.6.14).
type PdfAnnotationPopup struct{*PdfAnnotation ;Parent _fg .PdfObject ;Open _fg .PdfObject ;};
// NewPdfAnnotationScreen returns a new screen annotation.
func NewPdfAnnotationScreen ()*PdfAnnotationScreen {_adga :=NewPdfAnnotation ();_dcde :=&PdfAnnotationScreen {};_dcde .PdfAnnotation =_adga ;_adga .SetContext (_dcde );return _dcde ;};
// PdfFieldChoice represents a choice field which includes scrollable list boxes and combo boxes.
type PdfFieldChoice struct{*PdfField ;Opt *_fg .PdfObjectArray ;TI *_fg .PdfObjectInteger ;I *_fg .PdfObjectArray ;};
// 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 (_cabc *LTV )EnableByName (name string ,extraCerts []*_ge .Certificate )error {_egbga :=_cabc ._edgba ._cbb .AcroForm ;for _ ,_aegee :=range _egbga .AllFields (){_adcc ,_ :=_aegee .GetContext ().(*PdfFieldSignature );if _adcc ==nil {continue ;};if _edeed :=_adcc .PartialName ();
_edeed !=name {continue ;};return _cabc .Enable (_adcc .V ,extraCerts );};return nil ;};type pdfSignDictionary struct{*_fg .PdfObjectDictionary ;_afcd *SignatureHandler ;_cggdd *PdfSignature ;_gaage int64 ;_afade int ;_accg int ;_aegfb int ;_ecdgb int ;
};
// ToPdfObject converts the pdfCIDFontType0 to a PDF representation.
func (_bfeb *pdfCIDFontType0 )ToPdfObject ()_fg .PdfObject {return _fg .MakeNull ()};
// ToPdfObject implements interface PdfModel.
func (_gdcd *PdfAnnotationText )ToPdfObject ()_fg .PdfObject {_gdcd .PdfAnnotation .ToPdfObject ();_acaf :=_gdcd ._agb ;_bcgc :=_acaf .PdfObject .(*_fg .PdfObjectDictionary );if _gdcd .PdfAnnotationMarkup !=nil {_gdcd .PdfAnnotationMarkup .appendToPdfDictionary (_bcgc );
};_bcgc .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fg .MakeName ("\u0054\u0065\u0078\u0074"));_bcgc .SetIfNotNil ("\u004f\u0070\u0065\u006e",_gdcd .Open );_bcgc .SetIfNotNil ("\u004e\u0061\u006d\u0065",_gdcd .Name );_bcgc .SetIfNotNil ("\u0053\u0074\u0061t\u0065",_gdcd .State );
_bcgc .SetIfNotNil ("\u0053\u0074\u0061\u0074\u0065\u004d\u006f\u0064\u0065\u006c",_gdcd .StateModel );return _acaf ;};
// GetRuneMetrics returns the character metrics for the specified rune.
// A bool flag is returned to indicate whether or not the entry was found.
func (_decc pdfCIDFontType0 )GetRuneMetrics (r rune )(_eed .CharMetrics ,bool ){return _eed .CharMetrics {Wx :_decc ._cgda },true ;};
// FullName returns the full name of the field as in rootname.parentname.partialname.
func (_gbeeg *PdfField )FullName ()(string ,error ){var _cacfd _cb .Buffer ;_daaaf :=[]string {};if _gbeeg .T !=nil {_daaaf =append (_daaaf ,_gbeeg .T .Decoded ());};_bdab :=map[*PdfField ]bool {};_bdab [_gbeeg ]=true ;_efbf :=_gbeeg .Parent ;for _efbf !=nil {if _ ,_begeb :=_bdab [_efbf ];
_begeb {return _cacfd .String (),_ce .New ("\u0072\u0065\u0063\u0075rs\u0069\u0076\u0065\u0020\u0074\u0072\u0061\u0076\u0065\u0072\u0073\u0061\u006c");};if _efbf .T ==nil {return _cacfd .String (),_ce .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");
};_daaaf =append (_daaaf ,_efbf .T .Decoded ());_bdab [_efbf ]=true ;_efbf =_efbf .Parent ;};for _cgfde :=len (_daaaf )-1;_cgfde >=0;_cgfde --{_cacfd .WriteString (_daaaf [_cgfde ]);if _cgfde > 0{_cacfd .WriteString ("\u002e");};};return _cacfd .String (),nil ;
};
// NewPdfColorspaceDeviceN returns an initialized PdfColorspaceDeviceN.
func NewPdfColorspaceDeviceN ()*PdfColorspaceDeviceN {_adaf :=&PdfColorspaceDeviceN {};return _adaf };func (_cae *PdfReader )newPdfAnnotationSoundFromDict (_cgcd *_fg .PdfObjectDictionary )(*PdfAnnotationSound ,error ){_fdcf :=PdfAnnotationSound {};_gcag ,_dgb :=_cae .newPdfAnnotationMarkupFromDict (_cgcd );
if _dgb !=nil {return nil ,_dgb ;};_fdcf .PdfAnnotationMarkup =_gcag ;_fdcf .Name =_cgcd .Get ("\u004e\u0061\u006d\u0065");_fdcf .Sound =_cgcd .Get ("\u0053\u006f\u0075n\u0064");return &_fdcf ,nil ;};
// WatermarkImageOptions contains options for configuring the watermark process.
type WatermarkImageOptions struct{Alpha float64 ;FitToWidth bool ;PreserveAspectRatio bool ;};
// NewPdfActionHide returns a new "hide" action.
func NewPdfActionHide ()*PdfActionHide {_aaa :=NewPdfAction ();_fgf :=&PdfActionHide {};_fgf .PdfAction =_aaa ;_aaa .SetContext (_fgf );return _fgf ;};
// 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 (_bbgc *PdfPage )SetContentStreams (cStreams []string ,encoder _fg .StreamEncoder )error {if len (cStreams )==0{_bbgc .Contents =nil ;return nil ;};if encoder ==nil {encoder =_fg .NewRawEncoder ();};var _geeed []*_fg .PdfObjectStream ;for _ ,_aaef :=range cStreams {_acdbe :=&_fg .PdfObjectStream {};
_dcbcd :=encoder .MakeStreamDict ();_addff ,_abafb :=encoder .EncodeBytes ([]byte (_aaef ));if _abafb !=nil {return _abafb ;};_dcbcd .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_fg .MakeInteger (int64 (len (_addff ))));_acdbe .PdfObjectDictionary =_dcbcd ;
_acdbe .Stream =_addff ;_geeed =append (_geeed ,_acdbe );};if len (_geeed )==1{_bbgc .Contents =_geeed [0];}else {_degeb :=_fg .MakeArray ();for _ ,_gebcdf :=range _geeed {_degeb .Append (_gebcdf );};_bbgc .Contents =_degeb ;};return nil ;};func (_afee *PdfReader )newPdfAnnotationTextFromDict (_dddc *_fg .PdfObjectDictionary )(*PdfAnnotationText ,error ){_ecfb :=PdfAnnotationText {};
_edda ,_abdb :=_afee .newPdfAnnotationMarkupFromDict (_dddc );if _abdb !=nil {return nil ,_abdb ;};_ecfb .PdfAnnotationMarkup =_edda ;_ecfb .Open =_dddc .Get ("\u004f\u0070\u0065\u006e");_ecfb .Name =_dddc .Get ("\u004e\u0061\u006d\u0065");_ecfb .State =_dddc .Get ("\u0053\u0074\u0061t\u0065");
_ecfb .StateModel =_dddc .Get ("\u0053\u0074\u0061\u0074\u0065\u004d\u006f\u0064\u0065\u006c");return &_ecfb ,nil ;};
// ToPdfObject implements interface PdfModel.
func (_acbaa *Permissions )ToPdfObject ()_fg .PdfObject {return _acbaa ._gdfff };
// DecodeArray returns the range of color component values in CalRGB colorspace.
func (_bbfc *PdfColorspaceCalRGB )DecodeArray ()[]float64 {return []float64 {0.0,1.0,0.0,1.0,0.0,1.0};};
// NewPdfActionURI returns a new "Uri" action.
func NewPdfActionURI ()*PdfActionURI {_eec :=NewPdfAction ();_afd :=&PdfActionURI {};_afd .PdfAction =_eec ;_eec .SetContext (_afd );return _afd ;};
// 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 ,_dg .SimpleEncoder ,error ){_bggfa ,_becgg :=_aedae (basefont );if _becgg !=nil {return nil ,nil ,_becgg ;};_ceee ,_ebege :=_bggfa .Encoder ().(_dg .SimpleEncoder );
if !_ebege {return nil ,nil ,_d .Errorf ("\u006f\u006e\u006c\u0079\u0020s\u0069\u006d\u0070\u006c\u0065\u0020\u0065\u006e\u0063\u006f\u0064\u0069\u006eg\u0020\u0069\u0073\u0020\u0073\u0075\u0070\u0070\u006f\u0072\u0074\u0065\u0064\u002c\u0020\u0067\u006f\u0074\u0020\u0025\u0054",_bggfa .Encoder ());
};_ccdd :=make (map[rune ]_dg .GlyphName );for _gfea :=range alphabet {if _ ,_bbgg :=_ceee .RuneToCharcode (_gfea );!_bbgg {_ ,_cega :=_bggfa ._dacg .Read (_gfea );if !_cega {_aa .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",_gfea ,_gfea );
continue ;};_agaaf ,_cega :=_dg .RuneToGlyph (_gfea );if !_cega {_aa .Log .Debug ("\u006eo\u0020\u0067\u006c\u0079\u0070\u0068\u0020\u0066\u006f\u0072\u0020r\u0075\u006e\u0065\u0020\u0025\u0023\u0078\u003d\u0025\u0071",_gfea ,_gfea );continue ;};if len (_ccdd )>=255{return nil ,nil ,_ce .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");
};_ccdd [_gfea ]=_agaaf ;};};var (_geaba []_dg .CharCode ;_gcgfa []_dg .CharCode ;);for _fbcb :=_dg .CharCode (1);_fbcb <=0xff;_fbcb ++{_ffbe ,_ccbf :=_ceee .CharcodeToRune (_fbcb );if !_ccbf {_geaba =append (_geaba ,_fbcb );continue ;};if _ ,_ccbf =alphabet [_ffbe ];
!_ccbf {_gcgfa =append (_gcgfa ,_fbcb );};};_fgaeag :=append (_geaba ,_gcgfa ...);if len (_fgaeag )< len (_ccdd ){return nil ,nil ,_d .Errorf ("n\u0065\u0065\u0064\u0020\u0074\u006f\u0020\u0065\u006ec\u006f\u0064\u0065\u0020\u0025\u0064\u0020ru\u006e\u0065\u0073\u002c \u0062\u0075\u0074\u0020\u0068\u0061\u0076\u0065\u0020on\u006c\u0079 \u0025\u0064\u0020\u0073\u006c\u006f\u0074\u0073",len (_ccdd ),len (_fgaeag ));
};_gaca :=make ([]rune ,0,len (_ccdd ));for _fegeg :=range _ccdd {_gaca =append (_gaca ,_fegeg );};_ad .Slice (_gaca ,func (_ecbe ,_eedfb int )bool {return _gaca [_ecbe ]< _gaca [_eedfb ]});_cbdd :=make (map[_dg .CharCode ]_dg .GlyphName ,len (_gaca ));
for _ ,_bbdgc :=range _gaca {_bcac :=_fgaeag [0];_fgaeag =_fgaeag [1:];_cbdd [_bcac ]=_ccdd [_bbdgc ];};_ceee =_dg .ApplyDifferences (_ceee ,_cbdd );_bggfa .SetEncoder (_ceee );return &PdfFont {_gcaeff :&_bggfa },_ceee ,nil ;};
// String returns a string representation of the field.
func (_addg *PdfField )String ()string {if _efgca ,_fccaf :=_addg .ToPdfObject ().(*_fg .PdfIndirectObject );_fccaf {return _d .Sprintf ("\u0025\u0054\u003a\u0020\u0025\u0073",_addg ._abcbb ,_efgca .PdfObject .String ());};return "";};func (_abg *PdfReader )newPdfAnnotationProjectionFromDict (_ebcdb *_fg .PdfObjectDictionary )(*PdfAnnotationProjection ,error ){_eceg :=&PdfAnnotationProjection {};
_gcbc ,_ceg :=_abg .newPdfAnnotationMarkupFromDict (_ebcdb );if _ceg !=nil {return nil ,_ceg ;};_eceg .PdfAnnotationMarkup =_gcbc ;return _eceg ,nil ;};func _ffeff (_bgff _fg .PdfObject )(*PdfPattern ,error ){_aeffg :=&PdfPattern {};var _ecggca *_fg .PdfObjectDictionary ;
if _cacdbf ,_cdfdg :=_fg .GetIndirect (_bgff );_cdfdg {_aeffg ._gaac =_cacdbf ;_agee ,_agffg :=_cacdbf .PdfObject .(*_fg .PdfObjectDictionary );if !_agffg {_aa .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",_cacdbf .PdfObject );
return nil ,_fg .ErrTypeError ;};_ecggca =_agee ;}else if _acgag ,_ebaab :=_fg .GetStream (_bgff );_ebaab {_aeffg ._gaac =_acgag ;_ecggca =_acgag .PdfObjectDictionary ;}else {_aa .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",_bgff );
return nil ,_fg .ErrTypeError ;};_cggcc :=_ecggca .Get ("P\u0061\u0074\u0074\u0065\u0072\u006e\u0054\u0079\u0070\u0065");if _cggcc ==nil {_aa .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 ;};_cbfca ,_deade :=_cggcc .(*_fg .PdfObjectInteger );if !_deade {_aa .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",_cggcc );
return nil ,_fg .ErrTypeError ;};if *_cbfca !=1&&*_cbfca !=2{_aa .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",*_cbfca );return nil ,_fg .ErrRangeError ;
};_aeffg .PatternType =int64 (*_cbfca );switch *_cbfca {case 1:_affdb ,_fbeec :=_cecgc (_ecggca );if _fbeec !=nil {return nil ,_fbeec ;};_affdb .PdfPattern =_aeffg ;_aeffg ._ccdc =_affdb ;return _aeffg ,nil ;case 2:_acae ,_gabeg :=_fffe (_ecggca );if _gabeg !=nil {return nil ,_gabeg ;
};_acae .PdfPattern =_aeffg ;_aeffg ._ccdc =_acae ;return _aeffg ,nil ;};return nil ,_ce .New ("\u0075n\u006bn\u006f\u0077\u006e\u0020\u0070\u0061\u0074\u0074\u0065\u0072\u006e");};func _facaf (_cecb _fg .PdfObject ,_ebfe *fontCommon )(*_fc .CMap ,error ){_dcfga ,_decaa :=_fg .GetStream (_cecb );
if !_decaa {_aa .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",_cecb );
return nil ,_fg .ErrTypeError ;};_efde ,_gacf :=_fg .DecodeStream (_dcfga );if _gacf !=nil {return nil ,_gacf ;};_bdcca ,_gacf :=_fc .LoadCmapFromData (_efde ,!_ebfe .isCIDFont ());if _gacf !=nil {_aa .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",_dcfga .ObjectNumber ,_gacf );
};return _bdcca ,_gacf ;};func (_dfccc *pdfFontType0 )baseFields ()*fontCommon {return &_dfccc .fontCommon };
// PdfColorspaceCalGray represents CalGray color space.
type PdfColorspaceCalGray struct{WhitePoint []float64 ;BlackPoint []float64 ;Gamma float64 ;_ffbdb *_fg .PdfIndirectObject ;};
// ToPdfObject implements interface PdfModel.
func (_aedf *PdfAnnotationMovie )ToPdfObject ()_fg .PdfObject {_aedf .PdfAnnotation .ToPdfObject ();_abfff :=_aedf ._agb ;_fdbc :=_abfff .PdfObject .(*_fg .PdfObjectDictionary );_fdbc .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fg .MakeName ("\u004d\u006f\u0076i\u0065"));
_fdbc .SetIfNotNil ("\u0054",_aedf .T );_fdbc .SetIfNotNil ("\u004d\u006f\u0076i\u0065",_aedf .Movie );_fdbc .SetIfNotNil ("\u0041",_aedf .A );return _abfff ;};func _agae ()string {_eecga :="\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 _gdbdf _cb .Buffer ;for _gabcb :=0;_gabcb < 6;_gabcb ++{_gdbdf .WriteRune (rune (_eecga [_bf .Intn (len (_eecga ))]));};return _gdbdf .String ();};
// ToPdfObject implements interface PdfModel.
func (_ggccf *PdfAnnotationRichMedia )ToPdfObject ()_fg .PdfObject {_ggccf .PdfAnnotation .ToPdfObject ();_dagb :=_ggccf ._agb ;_acfe :=_dagb .PdfObject .(*_fg .PdfObjectDictionary );_acfe .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fg .MakeName ("\u0052i\u0063\u0068\u004d\u0065\u0064\u0069a"));
_acfe .SetIfNotNil ("\u0052\u0069\u0063\u0068\u004d\u0065\u0064\u0069\u0061\u0053\u0065\u0074t\u0069\u006e\u0067\u0073",_ggccf .RichMediaSettings );_acfe .SetIfNotNil ("\u0052\u0069c\u0068\u004d\u0065d\u0069\u0061\u0043\u006f\u006e\u0074\u0065\u006e\u0074",_ggccf .RichMediaContent );
return _dagb ;};
// 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 *_fg .PdfObjectInteger ;ColorSpace PdfColorspace ;Background *_fg .PdfObjectArray ;BBox *PdfRectangle ;AntiAlias *_fg .PdfObjectBool ;_bcbef PdfModel ;_cbabf _fg .PdfObject ;};
// GetAscent returns the Ascent of the font `descriptor`.
func (_dbgda *PdfFontDescriptor )GetAscent ()(float64 ,error ){return _fg .GetNumberAsFloat (_dbgda .Ascent );};
// ToPdfObject implements interface PdfModel.
func (_ccg *PdfActionSubmitForm )ToPdfObject ()_fg .PdfObject {_ccg .PdfAction .ToPdfObject ();_beg :=_ccg ._bda ;_bgge :=_beg .PdfObject .(*_fg .PdfObjectDictionary );_bgge .SetIfNotNil ("\u0053",_fg .MakeName (string (ActionTypeSubmitForm )));if _ccg .F !=nil {_bgge .Set ("\u0046",_ccg .F .ToPdfObject ());
};_bgge .SetIfNotNil ("\u0046\u0069\u0065\u006c\u0064\u0073",_ccg .Fields );_bgge .SetIfNotNil ("\u0046\u006c\u0061g\u0073",_ccg .Flags );return _beg ;};type crossReference struct{Type int ;
// Type 1
Offset int64 ;Generation int64 ;
// Type 2
ObjectNumber int ;Index int ;};
// NewPdfPageResourcesColorspaces returns a new PdfPageResourcesColorspaces object.
func NewPdfPageResourcesColorspaces ()*PdfPageResourcesColorspaces {_geeeg :=&PdfPageResourcesColorspaces {};_geeeg .Names =[]string {};_geeeg .Colorspaces =map[string ]PdfColorspace {};_geeeg ._daff =&_fg .PdfIndirectObject {};return _geeeg ;};
// GetOptimizer returns current PDF optimizer.
func (_geeeb *PdfWriter )GetOptimizer ()Optimizer {return _geeeb ._fdgfe };
// SetFilter sets compression filter. Decodes with current filter sets and
// encodes the data with the new filter.
func (_aedab *XObjectImage )SetFilter (encoder _fg .StreamEncoder )error {_cdeag :=_aedab .Stream ;_bebbga ,_daddfd :=_aedab .Filter .DecodeBytes (_cdeag );if _daddfd !=nil {return _daddfd ;};_aedab .Filter =encoder ;encoder .UpdateParams (_aedab .getParamsDict ());
_cdeag ,_daddfd =encoder .EncodeBytes (_bebbga );if _daddfd !=nil {return _daddfd ;};_aedab .Stream =_cdeag ;return nil ;};
// ToPdfObject implements interface PdfModel.
func (_cgde *PdfActionGoToR )ToPdfObject ()_fg .PdfObject {_cgde .PdfAction .ToPdfObject ();_gf :=_cgde ._bda ;_aab :=_gf .PdfObject .(*_fg .PdfObjectDictionary );_aab .SetIfNotNil ("\u0053",_fg .MakeName (string (ActionTypeGoToR )));if _cgde .F !=nil {_aab .Set ("\u0046",_cgde .F .ToPdfObject ());
};_aab .SetIfNotNil ("\u0044",_cgde .D );_aab .SetIfNotNil ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw",_cgde .NewWindow );return _gf ;};
// GenerateXObjectName generates an unused XObject name that can be used for
// adding new XObjects. Uses format XObj1, XObj2, ...
func (_caeef *PdfPageResources )GenerateXObjectName ()_fg .PdfObjectName {_dabaa :=1;for {_egeda :=_fg .MakeName (_d .Sprintf ("\u0058\u004f\u0062\u006a\u0025\u0064",_dabaa ));if !_caeef .HasXObjectByName (*_egeda ){return *_egeda ;};_dabaa ++;};};
// BytesToCharcodes converts the bytes in a PDF string to character codes.
func (_egdeb *PdfFont )BytesToCharcodes (data []byte )[]_dg .CharCode {_aa .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 _efda ,_cedde :=_egdeb ._gcaeff .(*pdfFontType0 );_cedde &&_efda ._abeac !=nil {if _fcagb ,_dccec :=_efda .bytesToCharcodes (data );_dccec {return _fcagb ;};};var (_gacda =make ([]_dg .CharCode ,0,len (data )+len (data )%2);_ccbdf =_egdeb .baseFields ();
);if _ccbdf ._agab !=nil {if _efcbc ,_bffd :=_ccbdf ._agab .BytesToCharcodes (data );_bffd {for _ ,_ddgb :=range _efcbc {_gacda =append (_gacda ,_dg .CharCode (_ddgb ));};return _gacda ;};};if _ccbdf .isCIDFont (){if len (data )==1{data =[]byte {0,data [0]};
};if len (data )%2!=0{_aa .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 _cbbd :=0;_cbbd < len (data );_cbbd +=2{_feffg :=uint16 (data [_cbbd ])<<8|uint16 (data [_cbbd +1]);_gacda =append (_gacda ,_dg .CharCode (_feffg ));};}else {for _ ,_efbgg :=range data {_gacda =append (_gacda ,_dg .CharCode (_efbgg ));
};};return _gacda ;};
// String returns string value of output intent for given type
// ISO_19005-2 6.2.3: GTS_PDFA1 value should be used for PDF/A-1, A-2 and A-3 at least
func (_bfadf PdfOutputIntentType )String ()string {switch _bfadf {case PdfOutputIntentTypeA1 :return "\u0047T\u0053\u005f\u0050\u0044\u0046\u00411";case PdfOutputIntentTypeA2 :return "\u0047T\u0053\u005f\u0050\u0044\u0046\u00411";case PdfOutputIntentTypeA3 :return "\u0047T\u0053\u005f\u0050\u0044\u0046\u00411";
case PdfOutputIntentTypeA4 :return "\u0047T\u0053\u005f\u0050\u0044\u0046\u00411";case PdfOutputIntentTypeX :return "\u0047\u0054\u0053\u005f\u0050\u0044\u0046\u0058";default:return "\u0055N\u0044\u0045\u0046\u0049\u004e\u0045D";};};
// IsColored specifies if the pattern is colored.
func (_gdffgc *PdfTilingPattern )IsColored ()bool {if _gdffgc .PaintType !=nil &&*_gdffgc .PaintType ==1{return true ;};return false ;};
// 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 (_aeafae *Image )SetSamples (samples []uint32 ){if _aeafae .BitsPerComponent < 8{samples =_aeafae .samplesAddPadding (samples );};_gaeff :=_ade .ResampleUint32 (samples ,int (_aeafae .BitsPerComponent ),8);_fdbd :=make ([]byte ,len (_gaeff ));for _fefge ,_ffece :=range _gaeff {_fdbd [_fefge ]=byte (_ffece );
};_aeafae .Data =_fdbd ;};const (TrappedUnknown PdfInfoTrapped ="\u0055n\u006b\u006e\u006f\u0077\u006e";TrappedTrue PdfInfoTrapped ="\u0054\u0072\u0075\u0065";TrappedFalse PdfInfoTrapped ="\u0046\u0061\u006cs\u0065";);
// ToPdfObject returns the PDF representation of the shading dictionary.
func (_dgbee *PdfShadingType5 )ToPdfObject ()_fg .PdfObject {_dgbee .PdfShading .ToPdfObject ();_beegd ,_efdef :=_dgbee .getShadingDict ();if _efdef !=nil {_aa .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 _dgbee .BitsPerCoordinate !=nil {_beegd .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065",_dgbee .BitsPerCoordinate );};if _dgbee .BitsPerComponent !=nil {_beegd .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_dgbee .BitsPerComponent );
};if _dgbee .VerticesPerRow !=nil {_beegd .Set ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073\u0050e\u0072\u0052\u006f\u0077",_dgbee .VerticesPerRow );};if _dgbee .Decode !=nil {_beegd .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_dgbee .Decode );};
if _dgbee .Function !=nil {if len (_dgbee .Function )==1{_beegd .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_dgbee .Function [0].ToPdfObject ());}else {_beabf :=_fg .MakeArray ();for _ ,_aeebc :=range _dgbee .Function {_beabf .Append (_aeebc .ToPdfObject ());
};_beegd .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_beabf );};};return _dgbee ._cbabf ;};
// AllFields returns a flattened list of all fields in the form.
func (_cffd *PdfAcroForm )AllFields ()[]*PdfField {if _cffd ==nil {return nil ;};var _ecggc []*PdfField ;if _cffd .Fields !=nil {for _ ,_eadge :=range *_cffd .Fields {_ecggc =append (_ecggc ,_affd (_eadge )...);};};return _ecggc ;};
// GetContentStream returns the pattern cell's content stream
func (_dfbgab *PdfTilingPattern )GetContentStream ()([]byte ,error ){_ceede ,_ ,_dagfa :=_dfbgab .GetContentStreamWithEncoder ();return _ceede ,_dagfa ;};
// NewPdfActionResetForm returns a new "reset form" action.
func NewPdfActionResetForm ()*PdfActionResetForm {_bfg :=NewPdfAction ();_abd :=&PdfActionResetForm {};_abd .PdfAction =_bfg ;_bfg .SetContext (_abd );return _abd ;};var (_edegd =_ee .MustCompile ("\u005cd\u002b\u0020\u0064\u0069c\u0074\u005c\u0073\u002b\u0028d\u0075p\u005cs\u002b\u0029\u003f\u0062\u0065\u0067\u0069n");
_fbegb =_ee .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");_caab =_ee .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");
_ccce ="\u002f\u0045\u006e\u0063od\u0069\u006e\u0067\u0020\u0032\u0035\u0036\u0020\u0061\u0072\u0072\u0061\u0079";_gfbc ="\u0072\u0065\u0061d\u006f\u006e\u006c\u0079\u0020\u0064\u0065\u0066";_edebd ="\u0063\u0075\u0072\u0072\u0065\u006e\u0074\u0066\u0069\u006c\u0065\u0020e\u0065\u0078\u0065\u0063";
);func (_ggeg *PdfColorspaceCalRGB )String ()string {return "\u0043\u0061\u006c\u0052\u0047\u0042"};func (_cacec *PdfWriter )optimize ()error {if _cacec ._fdgfe ==nil {return nil ;};var _bgcee error ;_cacec ._bbfd ,_bgcee =_cacec ._fdgfe .Optimize (_cacec ._bbfd );
if _bgcee !=nil {return _bgcee ;};_aabda :=make (map[_fg .PdfObject ]struct{},len (_cacec ._bbfd ));for _ ,_dbfeb :=range _cacec ._bbfd {_aabda [_dbfeb ]=struct{}{};};_cacec ._gcbec =_aabda ;return nil ;};
// PdfActionHide represents a hide action.
type PdfActionHide struct{*PdfAction ;T _fg .PdfObject ;H _fg .PdfObject ;};
// AddContentStreamByString adds content stream by string. Puts the content
// string into a stream object and points the content stream towards it.
func (_bgbdd *PdfPage )AddContentStreamByString (contentStr string )error {_agdf ,_dcggd :=_fg .MakeStream ([]byte (contentStr ),_fg .NewFlateEncoder ());if _dcggd !=nil {return _dcggd ;};if _bgbdd .Contents ==nil {_bgbdd .Contents =_agdf ;}else {_aacef :=_fg .TraceToDirectObject (_bgbdd .Contents );
_aabd ,_faaed :=_aacef .(*_fg .PdfObjectArray );if !_faaed {_aabd =_fg .MakeArray (_aacef );};_aabd .Append (_agdf );_bgbdd .Contents =_aabd ;};return nil ;};
// GetPerms returns the Permissions dictionary
func (_bdeba *PdfReader )GetPerms ()*Permissions {return _bdeba ._eadc };
// SetDecode sets the decode image float slice.
func (_bgegg *Image )SetDecode (decode []float64 ){_bgegg ._dbge =decode };
// NewPdfAnnotationText returns a new text annotation.
func NewPdfAnnotationText ()*PdfAnnotationText {_gaadb :=NewPdfAnnotation ();_ecg :=&PdfAnnotationText {};_ecg .PdfAnnotation =_gaadb ;_ecg .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_gaadb .SetContext (_ecg );return _ecg ;};func (_gfc *PdfReader )newPdfActionSoundFromDict (_ffa *_fg .PdfObjectDictionary )(*PdfActionSound ,error ){return &PdfActionSound {Sound :_ffa .Get ("\u0053\u006f\u0075n\u0064"),Volume :_ffa .Get ("\u0056\u006f\u006c\u0075\u006d\u0065"),Synchronous :_ffa .Get ("S\u0079\u006e\u0063\u0068\u0072\u006f\u006e\u006f\u0075\u0073"),Repeat :_ffa .Get ("\u0052\u0065\u0070\u0065\u0061\u0074"),Mix :_ffa .Get ("\u004d\u0069\u0078")},nil ;
};func (_dgacf *PdfReader )newPdfAnnotationLineFromDict (_fgcf *_fg .PdfObjectDictionary )(*PdfAnnotationLine ,error ){_eeef :=PdfAnnotationLine {};_fdab ,_bdgd :=_dgacf .newPdfAnnotationMarkupFromDict (_fgcf );if _bdgd !=nil {return nil ,_bdgd ;};_eeef .PdfAnnotationMarkup =_fdab ;
_eeef .L =_fgcf .Get ("\u004c");_eeef .BS =_fgcf .Get ("\u0042\u0053");_eeef .LE =_fgcf .Get ("\u004c\u0045");_eeef .IC =_fgcf .Get ("\u0049\u0043");_eeef .LL =_fgcf .Get ("\u004c\u004c");_eeef .LLE =_fgcf .Get ("\u004c\u004c\u0045");_eeef .Cap =_fgcf .Get ("\u0043\u0061\u0070");
_eeef .IT =_fgcf .Get ("\u0049\u0054");_eeef .LLO =_fgcf .Get ("\u004c\u004c\u004f");_eeef .CP =_fgcf .Get ("\u0043\u0050");_eeef .Measure =_fgcf .Get ("\u004de\u0061\u0073\u0075\u0072\u0065");_eeef .CO =_fgcf .Get ("\u0043\u004f");return &_eeef ,nil ;
};func (_feggd *PdfWriter )hasObject (_edbda _fg .PdfObject )bool {_ ,_degc :=_feggd ._gcbec [_edbda ];return _degc ;};func (_fgad *DSS )generateHashMap (_daagc []*_fg .PdfObjectStream )(map[string ]*_fg .PdfObjectStream ,error ){_gdbc :=map[string ]*_fg .PdfObjectStream {};
for _ ,_aagg :=range _daagc {_fegg ,_cdcf :=_fg .DecodeStream (_aagg );if _cdcf !=nil {return nil ,_cdcf ;};_fcbad ,_cdcf :=_egbc (_fegg );if _cdcf !=nil {return nil ,_cdcf ;};_gdbc [string (_fcbad )]=_aagg ;};return _gdbc ,nil ;};
// ToPdfObject returns the PDF representation of the shading dictionary.
func (_affa *PdfShadingType1 )ToPdfObject ()_fg .PdfObject {_affa .PdfShading .ToPdfObject ();_bgafd ,_bccgae :=_affa .getShadingDict ();if _bccgae !=nil {_aa .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 _affa .Domain !=nil {_bgafd .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_affa .Domain );};if _affa .Matrix !=nil {_bgafd .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_affa .Matrix );};if _affa .Function !=nil {if len (_affa .Function )==1{_bgafd .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_affa .Function [0].ToPdfObject ());
}else {_ceacd :=_fg .MakeArray ();for _ ,_babg :=range _affa .Function {_ceacd .Append (_babg .ToPdfObject ());};_bgafd .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_ceacd );};};return _affa ._cbabf ;};func (_bfgdfg *PdfWriter )setCatalogVersion (){_bfgdfg ._cgacf .Set ("\u0056e\u0072\u0073\u0069\u006f\u006e",_fg .MakeName (_d .Sprintf ("\u0025\u0064\u002e%\u0064",_bfgdfg ._fbbec .Major ,_bfgdfg ._fbbec .Minor )));
};
// NewPdfAnnotationSound returns a new sound annotation.
func NewPdfAnnotationSound ()*PdfAnnotationSound {_efbg :=NewPdfAnnotation ();_adebc :=&PdfAnnotationSound {};_adebc .PdfAnnotation =_efbg ;_adebc .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_efbg .SetContext (_adebc );return _adebc ;};func _gceb (_bddb *PdfAnnotation )(*XObjectForm ,*PdfRectangle ,error ){_acfd ,_gfee :=_fg .GetDict (_bddb .AP );
if !_gfee {return nil ,nil ,_ce .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 _acfd ==nil {return nil ,nil ,nil ;};_aafef ,_gfee :=_fg .GetArray (_bddb .Rect );
if !_gfee ||_aafef .Len ()!=4{return nil ,nil ,_ce .New ("\u0072\u0065\u0063t\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064");};_cecfb ,_bdec :=NewPdfRectangle (*_aafef );if _bdec !=nil {return nil ,nil ,_bdec ;};_bfag :=_fg .TraceToDirectObject (_acfd .Get ("\u004e"));
switch _cdag :=_bfag .(type ){case *_fg .PdfObjectStream :_efgbg :=_cdag ;_befd ,_gafe :=NewXObjectFormFromStream (_efgbg );return _befd ,_cecfb ,_gafe ;case *_fg .PdfObjectDictionary :_dbfd :=_cdag ;_dccfe ,_afgc :=_fg .GetName (_bddb .AS );if !_afgc {return nil ,nil ,nil ;
};if _dbfd .Get (*_dccfe )==nil {_aa .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 ;};_fdacg ,_afgc :=_fg .GetStream (_dbfd .Get (*_dccfe ));if !_afgc {_aa .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",_dccfe );
return nil ,nil ,_ce .New ("\u0073\u0074\u0072\u0065\u0061\u006d\u0020\u006d\u0069s\u0073\u0069\u006e\u0067");};_agfcc ,_ecbge :=NewXObjectFormFromStream (_fdacg );return _agfcc ,_cecfb ,_ecbge ;};_aa .Log .Debug ("\u0049\u006e\u0076\u0061li\u0064\u0020\u0074\u0079\u0070\u0065\u0020\u0066\u006f\u0072\u0020\u004e\u003a\u0020%\u0054",_bfag );
return nil ,nil ,_ce .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};
// StandardValidator is the interface that is used for the PDF StandardImplementer validation for the PDF document.
// It is using a CompliancePdfReader which is expected to give more Metadata during reading process.
// NOTE: This implementation is in experimental development state.
// Keep in mind that it might change in the subsequent minor versions.
type StandardValidator interface{
// ValidateStandard checks if the input reader
ValidateStandard (_gggea *CompliancePdfReader )error ;};
// 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 (_cbacc *PdfFont )CharcodeBytesToUnicode (data []byte )(string ,int ,int ){_adebb ,_ ,_bdca :=_cbacc .CharcodesToUnicodeWithStats (_cbacc .BytesToCharcodes (data ));_ecdf :=_dg .ExpandLigatures (_adebb );return _ecdf ,_bg .RuneCountInString (_ecdf ),_bdca ;
};
// GetAsTilingPattern returns a tiling pattern. Check with IsTiling() prior to using this.
func (_adgf *PdfPattern )GetAsTilingPattern ()*PdfTilingPattern {return _adgf ._ccdc .(*PdfTilingPattern );};func _badcbe (_bfff *_fg .PdfObjectDictionary )(*PdfShadingType4 ,error ){_gadfa :=PdfShadingType4 {};_aefbc :=_bfff .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065");
if _aefbc ==nil {_aa .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 ;};_gebbf ,_daace :=_aefbc .(*_fg .PdfObjectInteger );if !_daace {_aa .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",_aefbc );
return nil ,_fg .ErrTypeError ;};_gadfa .BitsPerCoordinate =_gebbf ;_aefbc =_bfff .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074");if _aefbc ==nil {_aa .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 ;};_gebbf ,_daace =_aefbc .(*_fg .PdfObjectInteger );if !_daace {_aa .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",_aefbc );
return nil ,_fg .ErrTypeError ;};_gadfa .BitsPerComponent =_gebbf ;_aefbc =_bfff .Get ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067");if _aefbc ==nil {_aa .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 ;};_gebbf ,_daace =_aefbc .(*_fg .PdfObjectInteger );if !_daace {_aa .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",_aefbc );
return nil ,_fg .ErrTypeError ;};_gadfa .BitsPerComponent =_gebbf ;_aefbc =_bfff .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");if _aefbc ==nil {_aa .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 ;};_gbaa ,_daace :=_aefbc .(*_fg .PdfObjectArray );if !_daace {_aa .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",_aefbc );
return nil ,_fg .ErrTypeError ;};_gadfa .Decode =_gbaa ;_aefbc =_bfff .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");if _aefbc ==nil {_aa .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 ;};_gadfa .Function =[]PdfFunction {};if _eecec ,_fcbf :=_aefbc .(*_fg .PdfObjectArray );_fcbf {for _ ,_eeadb :=range _eecec .Elements (){_eebfg ,_ecdab :=_defgb (_eeadb );if _ecdab !=nil {_aa .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",_ecdab );
return nil ,_ecdab ;};_gadfa .Function =append (_gadfa .Function ,_eebfg );};}else {_cfcbg ,_abdd :=_defgb (_aefbc );if _abdd !=nil {_aa .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",_abdd );
return nil ,_abdd ;};_gadfa .Function =append (_gadfa .Function ,_cfcbg );};return &_gadfa ,nil ;};
// ToPdfObject implements interface PdfModel.
func (_cda *PdfActionJavaScript )ToPdfObject ()_fg .PdfObject {_cda .PdfAction .ToPdfObject ();_cea :=_cda ._bda ;_gae :=_cea .PdfObject .(*_fg .PdfObjectDictionary );_gae .SetIfNotNil ("\u0053",_fg .MakeName (string (ActionTypeJavaScript )));_gae .SetIfNotNil ("\u004a\u0053",_cda .JS );
return _cea ;};
// String returns a string representation of PdfTransformParamsDocMDP.
func (_fafbc *PdfTransformParamsDocMDP )String ()string {return _d .Sprintf ("\u0025\u0073\u0020\u0050\u003a\u0020\u0025\u0073\u0020V\u003a\u0020\u0025\u0073",_fafbc .Type ,_fafbc .P ,_fafbc .V );};func _fbcae (_dffag *_fg .PdfObjectDictionary )(*PdfShadingType2 ,error ){_becdb :=PdfShadingType2 {};
_fgdc :=_dffag .Get ("\u0043\u006f\u006f\u0072\u0064\u0073");if _fgdc ==nil {_aa .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 ;};_eefg ,_ebfgf :=_fgdc .(*_fg .PdfObjectArray );if !_ebfgf {_aa .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",_fgdc );
return nil ,_ce .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};if _eefg .Len ()!=4{_aa .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",_eefg .Len ());
return nil ,_ce .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0061\u0074\u0074\u0072i\u0062\u0075\u0074\u0065");};_becdb .Coords =_eefg ;if _ccfce :=_dffag .Get ("\u0044\u006f\u006d\u0061\u0069\u006e");_ccfce !=nil {_ccfce =_fg .TraceToDirectObject (_ccfce );
_aefd ,_acag :=_ccfce .(*_fg .PdfObjectArray );if !_acag {_aa .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",_ccfce );return nil ,_ce .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");
};_becdb .Domain =_aefd ;};_fgdc =_dffag .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");if _fgdc ==nil {_aa .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 ;};_becdb .Function =[]PdfFunction {};if _edbcd ,_bfcab :=_fgdc .(*_fg .PdfObjectArray );_bfcab {for _ ,_fecaa :=range _edbcd .Elements (){_bbeea ,_badec :=_defgb (_fecaa );if _badec !=nil {_aa .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",_badec );
return nil ,_badec ;};_becdb .Function =append (_becdb .Function ,_bbeea );};}else {_bbde ,_cfbed :=_defgb (_fgdc );if _cfbed !=nil {_aa .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",_cfbed );
return nil ,_cfbed ;};_becdb .Function =append (_becdb .Function ,_bbde );};if _ffebc :=_dffag .Get ("\u0045\u0078\u0074\u0065\u006e\u0064");_ffebc !=nil {_ffebc =_fg .TraceToDirectObject (_ffebc );_cbaba ,_eddfg :=_ffebc .(*_fg .PdfObjectArray );if !_eddfg {_aa .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",_ffebc );
return nil ,_fg .ErrTypeError ;};if _cbaba .Len ()!=2{_aa .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",_cbaba .Len ());return nil ,ErrInvalidAttribute ;
};_becdb .Extend =_cbaba ;};return &_becdb ,nil ;};
// PdfShadingType7 is a Tensor-product patch mesh.
type PdfShadingType7 struct{*PdfShading ;BitsPerCoordinate *_fg .PdfObjectInteger ;BitsPerComponent *_fg .PdfObjectInteger ;BitsPerFlag *_fg .PdfObjectInteger ;Decode *_fg .PdfObjectArray ;Function []PdfFunction ;};func _cebge (_dacb *_fg .PdfObjectDictionary ,_cedb *fontCommon )(*pdfFontType3 ,error ){_gdaf :=_fbeg (_cedb );
_eddef :=_dacb .Get ("\u0046i\u0072\u0073\u0074\u0043\u0068\u0061r");if _eddef ==nil {_eddef =_fg .MakeInteger (0);};_gdaf .FirstChar =_eddef ;_agadc ,_eegd :=_fg .GetIntVal (_eddef );if !_eegd {_aa .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",_eddef );
return nil ,_fg .ErrTypeError ;};_fefb :=_dg .CharCode (_agadc );_eddef =_dacb .Get ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072");if _eddef ==nil {_eddef =_fg .MakeInteger (255);};_gdaf .LastChar =_eddef ;_agadc ,_eegd =_fg .GetIntVal (_eddef );
if !_eegd {_aa .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",_eddef );return nil ,_fg .ErrTypeError ;
};_aegbf :=_dg .CharCode (_agadc );_eddef =_dacb .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");if _eddef !=nil {_gdaf .Resources =_eddef ;};_eddef =_dacb .Get ("\u0043h\u0061\u0072\u0050\u0072\u006f\u0063s");if _eddef ==nil {_aa .Log .Debug ("\u0045\u0052R\u004f\u0052\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0043\u0068\u0061\u0072\u0050\u0072\u006f\u0063\u0073\u0020(%\u0076\u0029",_eddef );
return nil ,_fg .ErrNotSupported ;};_gdaf .CharProcs =_eddef ;_eddef =_dacb .Get ("\u0046\u006f\u006e\u0074\u004d\u0061\u0074\u0072\u0069\u0078");if _eddef ==nil {_aa .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0049\u006e\u0076a\u006c\u0069\u0064\u0020\u0046\u006f\u006et\u004d\u0061\u0074\u0072\u0069\u0078\u0020\u0028\u0025\u0076\u0029",_eddef );
return nil ,_fg .ErrNotSupported ;};_gdaf .FontMatrix =_eddef ;_gdaf ._eabbc =make (map[_dg .CharCode ]float64 );_eddef =_dacb .Get ("\u0057\u0069\u0064\u0074\u0068\u0073");if _eddef !=nil {_gdaf .Widths =_eddef ;_agdc ,_aadf :=_fg .GetArray (_eddef );
if !_aadf {_aa .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",_eddef );return nil ,_fg .ErrTypeError ;
};_cgab ,_cdfaf :=_agdc .ToFloat64Array ();if _cdfaf !=nil {_aa .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 ,_cdfaf ;};if len (_cgab )!=int (_aegbf -_fefb +1){_aa .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",_aegbf -_fefb +1,len (_cgab ));
return nil ,_fg .ErrRangeError ;};_ceba ,_aadf :=_fg .GetArray (_gdaf .FontMatrix );if !_aadf {_aa .Log .Debug ("\u0045\u0052\u0052\u004f\u0052:\u0020\u0046\u006f\u006e\u0074\u004d\u0061\u0074\u0072\u0069\u0078\u0020\u0061t\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020\u0021\u003d\u0020\u0061\u0072\u0072\u0061\u0079\u0020\u0028\u0025\u0054\u0029",_ceba );
return nil ,_cdfaf ;};_aaeed ,_cdfaf :=_ceba .ToFloat64Array ();if _cdfaf !=nil {_aa .Log .Debug ("\u0045\u0052R\u004f\u0052\u003a\u0020c\u006f\u006ev\u0065\u0072\u0074\u0069\u006e\u0067\u0020\u0046o\u006e\u0074\u004d\u0061\u0074\u0072\u0069\u0078\u0020\u0074\u006f\u0020a\u0072\u0072\u0061\u0079");
return nil ,_cdfaf ;};_aadea :=_gbe .NewMatrix (_aaeed [0],_aaeed [1],_aaeed [2],_aaeed [3],_aaeed [4],_aaeed [5]);for _cgdg ,_cbbc :=range _cgab {_caagd ,_ :=_aadea .Transform (_cbbc ,_cbbc );_gdaf ._eabbc [_fefb +_dg .CharCode (_cgdg )]=_caagd ;};};_gdaf .Encoding =_fg .TraceToDirectObject (_dacb .Get ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067"));
_dagc :=_dacb .Get ("\u0054o\u0055\u006e\u0069\u0063\u006f\u0064e");if _dagc !=nil {_gdaf ._eggb =_fg .TraceToDirectObject (_dagc );_edgfb ,_gbefb :=_facaf (_gdaf ._eggb ,&_gdaf .fontCommon );if _gbefb !=nil {return nil ,_gbefb ;};_gdaf ._agab =_edgfb ;
};if _bfacb :=_gdaf ._agab ;_bfacb !=nil {_gdaf ._efad =_dg .NewCMapEncoder ("",nil ,_bfacb );}else {_gdaf ._efad =_dg .NewPdfDocEncoder ();};return _gdaf ,nil ;};func (_cbd *PdfReader )newPdfAnnotationScreenFromDict (_fcbe *_fg .PdfObjectDictionary )(*PdfAnnotationScreen ,error ){_badfa :=PdfAnnotationScreen {};
_badfa .T =_fcbe .Get ("\u0054");_badfa .MK =_fcbe .Get ("\u004d\u004b");_badfa .A =_fcbe .Get ("\u0041");_badfa .AA =_fcbe .Get ("\u0041\u0041");return &_badfa ,nil ;};
// ColorAt returns the color of the image pixel specified by the x and y coordinates.
func (_afcb *Image )ColorAt (x ,y int )(_be .Color ,error ){_ggade :=_cc .BytesPerLine (int (_afcb .Width ),int (_afcb .BitsPerComponent ),_afcb .ColorComponents );switch _afcb .ColorComponents {case 1:return _cc .ColorAtGrayscale (x ,y ,int (_afcb .BitsPerComponent ),_ggade ,_afcb .Data ,_afcb ._dbge );
case 3:return _cc .ColorAtNRGBA (x ,y ,int (_afcb .Width ),_ggade ,int (_afcb .BitsPerComponent ),_afcb .Data ,_afcb ._gccd ,_afcb ._dbge );case 4:return _cc .ColorAtCMYK (x ,y ,int (_afcb .Width ),_afcb .Data ,_afcb ._dbge );};_aa .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",_afcb .ColorComponents ,_afcb .BitsPerComponent );
return nil ,_ce .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");};
// ToPdfObject returns a PDF object representation of the outline item.
func (_bccb *OutlineItem )ToPdfObject ()_fg .PdfObject {_dfbec ,_ :=_bccb .ToPdfOutlineItem ();return _dfbec .ToPdfObject ();};
// ToPdfOutlineItem returns a low level PdfOutlineItem object,
// based on the current instance.
func (_fdbba *OutlineItem )ToPdfOutlineItem ()(*PdfOutlineItem ,int64 ){_cbddd :=NewPdfOutlineItem ();_cbddd .Title =_fg .MakeEncodedString (_fdbba .Title ,true );_cbddd .Dest =_fdbba .Dest .ToPdfObject ();var _cebdg []*PdfOutlineItem ;var _acbgf int64 ;
var _fbgd *PdfOutlineItem ;for _ ,_gdddgb :=range _fdbba .Entries {_cade ,_ecbc :=_gdddgb .ToPdfOutlineItem ();_cade .Parent =&_cbddd .PdfOutlineTreeNode ;if _fbgd !=nil {_fbgd .Next =&_cade .PdfOutlineTreeNode ;_cade .Prev =&_fbgd .PdfOutlineTreeNode ;
};_cebdg =append (_cebdg ,_cade );_acbgf +=_ecbc ;_fbgd =_cade ;};_faafb :=len (_cebdg );_acbgf +=int64 (_faafb );if _faafb > 0{_cbddd .First =&_cebdg [0].PdfOutlineTreeNode ;_cbddd .Last =&_cebdg [_faafb -1].PdfOutlineTreeNode ;_cbddd .Count =&_acbgf ;
};return _cbddd ,_acbgf ;};
// NewPdfColorspaceICCBased returns a new ICCBased colorspace object.
func NewPdfColorspaceICCBased (N int )(*PdfColorspaceICCBased ,error ){_dgdga :=&PdfColorspaceICCBased {};if N !=1&&N !=3&&N !=4{return nil ,_d .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u004e\u0020\u0028\u0031/\u0033\u002f\u0034\u0029");
};_dgdga .N =N ;return _dgdga ,nil ;};const (XObjectTypeUndefined XObjectType =iota ;XObjectTypeImage ;XObjectTypeForm ;XObjectTypePS ;XObjectTypeUnknown ;);
// 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 (_adafe *PdfPage )AppendContentBytes (cs []byte ,wrapContents bool )error {_adead :=_adafe .GetContentStreamObjs ();wrapContents =wrapContents &&len (_adead )> 0;_cfbgf :=_fg .NewFlateEncoder ();_dbaf :=_fg .MakeArray ();if wrapContents {_bcbea ,_aaae :=_fg .MakeStream ([]byte ("\u0071\u000a"),_cfbgf );
if _aaae !=nil {return _aaae ;};_dbaf .Append (_bcbea );};_dbaf .Append (_adead ...);if wrapContents {_fgdbg ,_fbag :=_fg .MakeStream ([]byte ("\u000a\u0051\u000a"),_cfbgf );if _fbag !=nil {return _fbag ;};_dbaf .Append (_fgdbg );};_ebgag ,_gbcfc :=_fg .MakeStream (cs ,_cfbgf );
if _gbcfc !=nil {return _gbcfc ;};_dbaf .Append (_ebgag );_adafe .Contents =_dbaf ;return nil ;};func (_abdbb *PdfReader )lookupPageByObject (_bdbfg _fg .PdfObject )(*PdfPage ,error ){return nil ,_ce .New ("\u0070\u0061\u0067\u0065\u0020\u006e\u006f\u0074\u0020f\u006f\u0075\u006e\u0064");
};
// 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 *_fg .PdfObjectArray ;ExtGState _fg .PdfObject ;};
// NewPdfAnnotationInk returns a new ink annotation.
func NewPdfAnnotationInk ()*PdfAnnotationInk {_gbdg :=NewPdfAnnotation ();_aca :=&PdfAnnotationInk {};_aca .PdfAnnotation =_gbdg ;_aca .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_gbdg .SetContext (_aca );return _aca ;};
// ToPdfObject returns the PDF representation of the colorspace.
func (_bgfaa *PdfColorspaceSpecialSeparation )ToPdfObject ()_fg .PdfObject {_cfad :=_fg .MakeArray (_fg .MakeName ("\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e"));_cfad .Append (_bgfaa .ColorantName );_cfad .Append (_bgfaa .AlternateSpace .ToPdfObject ());
_cfad .Append (_bgfaa .TintTransform .ToPdfObject ());if _bgfaa ._adacb !=nil {_bgfaa ._adacb .PdfObject =_cfad ;return _bgfaa ._adacb ;};return _cfad ;};
// Encoder returns the font's text encoder.
func (_gfcgd pdfFontType3 )Encoder ()_dg .TextEncoder {return _gfcgd ._efad };func _debe (_gbdee _fg .PdfObject )(*PdfFunctionType2 ,error ){_fgbbc :=&PdfFunctionType2 {};var _ffef *_fg .PdfObjectDictionary ;if _abeaf ,_aebe :=_gbdee .(*_fg .PdfIndirectObject );
_aebe {_ggega ,_cbgd :=_abeaf .PdfObject .(*_fg .PdfObjectDictionary );if !_cbgd {return nil ,_ce .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_fgbbc ._aceef =_abeaf ;_ffef =_ggega ;}else if _dbgae ,_ccbbf :=_gbdee .(*_fg .PdfObjectDictionary );
_ccbbf {_ffef =_dbgae ;}else {return nil ,_ce .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_aa .Log .Trace ("\u0046U\u004e\u0043\u0032\u003a\u0020\u0025s",_ffef .String ());_gggfc ,_fbdg :=_fg .TraceToDirectObject (_ffef .Get ("\u0044\u006f\u006d\u0061\u0069\u006e")).(*_fg .PdfObjectArray );
if !_fbdg {_aa .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_ce .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 _gggfc .Len ()< 0||_gggfc .Len ()%2!=0{_aa .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u0072\u0061\u006e\u0067e\u0020\u0069\u006e\u0076al\u0069\u0064");return nil ,_ce .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0064\u006f\u006da\u0069\u006e\u0020\u0072an\u0067\u0065");
};_cegc ,_gbcf :=_gggfc .ToFloat64Array ();if _gbcf !=nil {return nil ,_gbcf ;};_fgbbc .Domain =_cegc ;_gggfc ,_fbdg =_fg .TraceToDirectObject (_ffef .Get ("\u0052\u0061\u006eg\u0065")).(*_fg .PdfObjectArray );if _fbdg {if _gggfc .Len ()< 0||_gggfc .Len ()%2!=0{return nil ,_ce .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0061\u006e\u0067\u0065");
};_ecgge ,_febb :=_gggfc .ToFloat64Array ();if _febb !=nil {return nil ,_febb ;};_fgbbc .Range =_ecgge ;};_gggfc ,_fbdg =_fg .TraceToDirectObject (_ffef .Get ("\u0043\u0030")).(*_fg .PdfObjectArray );if _fbdg {_cbge ,_dece :=_gggfc .ToFloat64Array ();if _dece !=nil {return nil ,_dece ;
};_fgbbc .C0 =_cbge ;};_gggfc ,_fbdg =_fg .TraceToDirectObject (_ffef .Get ("\u0043\u0031")).(*_fg .PdfObjectArray );if _fbdg {_eage ,_cgfdf :=_gggfc .ToFloat64Array ();if _cgfdf !=nil {return nil ,_cgfdf ;};_fgbbc .C1 =_eage ;};if len (_fgbbc .C0 )!=len (_fgbbc .C1 ){_aa .Log .Error ("\u0043\u0030\u0020\u0061nd\u0020\u0043\u0031\u0020\u006e\u006f\u0074\u0020\u006d\u0061\u0074\u0063\u0068\u0069n\u0067");
return nil ,_fg .ErrRangeError ;};N ,_gbcf :=_fg .GetNumberAsFloat (_fg .TraceToDirectObject (_ffef .Get ("\u004e")));if _gbcf !=nil {_aa .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",_ffef .String ());
return nil ,_gbcf ;};_fgbbc .N =N ;return _fgbbc ,nil ;};
// FieldAppearanceGenerator generates appearance stream for a given field.
type FieldAppearanceGenerator interface{ContentStreamWrapper ;GenerateAppearanceDict (_eecdb *PdfAcroForm ,_acgge *PdfField ,_bfbga *PdfAnnotationWidget )(*_fg .PdfObjectDictionary ,error );};
// NewLTV returns a new LTV client.
func NewLTV (appender *PdfAppender )(*LTV ,error ){_bgdgb :=appender .Reader .DSS ;if _bgdgb ==nil {_bgdgb =NewDSS ();};if _bdddb :=_bgdgb .GenerateHashMaps ();_bdddb !=nil {return nil ,_bdddb ;};return &LTV {CertClient :_af .NewCertClient (),OCSPClient :_af .NewOCSPClient (),CRLClient :_af .NewCRLClient (),SkipExisting :true ,_edgba :appender ,_ebbe :_bgdgb },nil ;
};func _gaccf (_bgdf *_fg .PdfObjectDictionary )(*PdfShadingType3 ,error ){_ggefca :=PdfShadingType3 {};_aacag :=_bgdf .Get ("\u0043\u006f\u006f\u0072\u0064\u0073");if _aacag ==nil {_aa .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 ;};_eeggb ,_edcgf :=_aacag .(*_fg .PdfObjectArray );if !_edcgf {_aa .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",_aacag );
return nil ,_fg .ErrTypeError ;};if _eeggb .Len ()!=6{_aa .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",_eeggb .Len ());return nil ,ErrInvalidAttribute ;
};_ggefca .Coords =_eeggb ;if _adbgeg :=_bgdf .Get ("\u0044\u006f\u006d\u0061\u0069\u006e");_adbgeg !=nil {_adbgeg =_fg .TraceToDirectObject (_adbgeg );_gaegc ,_fabdf :=_adbgeg .(*_fg .PdfObjectArray );if !_fabdf {_aa .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",_adbgeg );
return nil ,_fg .ErrTypeError ;};_ggefca .Domain =_gaegc ;};_aacag =_bgdf .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");if _aacag ==nil {_aa .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 ;};_ggefca .Function =[]PdfFunction {};if _gdcgac ,_baddb :=_aacag .(*_fg .PdfObjectArray );_baddb {for _ ,_gacbf :=range _gdcgac .Elements (){_ceafc ,_ecbdd :=_defgb (_gacbf );if _ecbdd !=nil {_aa .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",_ecbdd );
return nil ,_ecbdd ;};_ggefca .Function =append (_ggefca .Function ,_ceafc );};}else {_ffffg ,_bgdfg :=_defgb (_aacag );if _bgdfg !=nil {_aa .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",_bgdfg );
return nil ,_bgdfg ;};_ggefca .Function =append (_ggefca .Function ,_ffffg );};if _bacee :=_bgdf .Get ("\u0045\u0078\u0074\u0065\u006e\u0064");_bacee !=nil {_bacee =_fg .TraceToDirectObject (_bacee );_fgega ,_caeb :=_bacee .(*_fg .PdfObjectArray );if !_caeb {_aa .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",_bacee );
return nil ,_fg .ErrTypeError ;};if _fgega .Len ()!=2{_aa .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",_fgega .Len ());return nil ,ErrInvalidAttribute ;
};_ggefca .Extend =_fgega ;};return &_ggefca ,nil ;};
// GetRotate gets the inheritable rotate value, either from the page
// or a higher up page/pages struct.
func (_acgaf *PdfPage )GetRotate ()(int64 ,error ){if _acgaf .Rotate !=nil {return *_acgaf .Rotate ,nil ;};_dafd :=_acgaf .Parent ;for _dafd !=nil {_bbcgf ,_ecafc :=_fg .GetDict (_dafd );if !_ecafc {return 0,_ce .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 _ebde :=_bbcgf .Get ("\u0052\u006f\u0074\u0061\u0074\u0065");_ebde !=nil {_geaad ,_feceb :=_fg .GetInt (_ebde );if !_feceb {return 0,_ce .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0072\u006f\u0074a\u0074\u0065\u0020\u0076al\u0075\u0065");};if _geaad !=nil {return int64 (*_geaad ),nil ;
};return 0,_ce .New ("\u0072\u006f\u0074\u0061te\u0020\u0076\u0061\u006c\u0075\u0065\u0020\u0069\u0073\u0020\u006e\u0069\u006c");};_dafd =_bbcgf .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");};return 0,_ce .New ("\u0072o\u0074a\u0074\u0065\u0020\u006e\u006ft\u0020\u0064e\u0066\u0069\u006e\u0065\u0064");
};
// GetNumComponents returns the number of color components (3 for CalRGB).
func (_egdcd *PdfColorCalRGB )GetNumComponents ()int {return 3};
// MergePageWith appends page content to source Pdf file page content.
func (_gccf *PdfAppender )MergePageWith (pageNum int ,page *PdfPage )error {_eefd :=pageNum -1;var _bcc *PdfPage ;for _dage ,_fde :=range _gccf ._agbg {if _dage ==_eefd {_bcc =_fde ;};};if _bcc ==nil {return _d .Errorf ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0050\u0061\u0067\u0065\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061r\u0079\u0020\u0025\u0064\u0020\u006e\u006f\u0074\u0020f\u006f\u0075\u006e\u0064\u0020\u0069\u006e\u0020\u0074\u0068\u0065\u0020\u0073o\u0075\u0072\u0063\u0065\u0020\u0064o\u0063\u0075\u006de\u006e\u0074",pageNum );
};if _bcc ._aebf !=nil &&_bcc ._aebf .GetParser ()==_gccf ._cbb ._ccgg {_bcc =_bcc .Duplicate ();_gccf ._agbg [_eefd ]=_bcc ;};page =page .Duplicate ();_dgfg (page );_ecacg :=_egcg (_bcc );_bcbc :=_egcg (page );_gcccd :=make (map[_fg .PdfObjectName ]_fg .PdfObjectName );
for _eege :=range _bcbc {if _ ,_efaa :=_ecacg [_eege ];_efaa {for _ebab :=1;true ;_ebab ++{_bdeg :=_fg .PdfObjectName (string (_eege )+_bad .Itoa (_ebab ));if _ ,_gbbbc :=_ecacg [_bdeg ];!_gbbbc {_gcccd [_eege ]=_bdeg ;break ;};};};};_deeg ,_fdgd :=page .GetContentStreams ();
if _fdgd !=nil {return _fdgd ;};_gbeg ,_fdgd :=_bcc .GetContentStreams ();if _fdgd !=nil {return _fdgd ;};for _gbge ,_adage :=range _deeg {for _gdd ,_egff :=range _gcccd {_adage =_dc .Replace (_adage ,"\u002f"+string (_gdd ),"\u002f"+string (_egff ),-1);
};_deeg [_gbge ]=_adage ;};_gbeg =append (_gbeg ,_deeg ...);if _caeg :=_bcc .SetContentStreams (_gbeg ,_fg .NewFlateEncoder ());_caeg !=nil {return _caeg ;};_bcc ._fbbb =append (_bcc ._fbbb ,page ._fbbb ...);if _bcc .Resources ==nil {_bcc .Resources =NewPdfPageResources ();
};if page .Resources !=nil {_bcc .Resources .Font =_gccf .mergeResources (_bcc .Resources .Font ,page .Resources .Font ,_gcccd );_bcc .Resources .XObject =_gccf .mergeResources (_bcc .Resources .XObject ,page .Resources .XObject ,_gcccd );_bcc .Resources .Properties =_gccf .mergeResources (_bcc .Resources .Properties ,page .Resources .Properties ,_gcccd );
if _bcc .Resources .ProcSet ==nil {_bcc .Resources .ProcSet =page .Resources .ProcSet ;};_bcc .Resources .Shading =_gccf .mergeResources (_bcc .Resources .Shading ,page .Resources .Shading ,_gcccd );_bcc .Resources .ExtGState =_gccf .mergeResources (_bcc .Resources .ExtGState ,page .Resources .ExtGState ,_gcccd );
};_edaf ,_fdgd :=_bcc .GetMediaBox ();if _fdgd !=nil {return _fdgd ;};_fddb ,_fdgd :=page .GetMediaBox ();if _fdgd !=nil {return _fdgd ;};var _bcbb bool ;if _edaf .Llx > _fddb .Llx {_edaf .Llx =_fddb .Llx ;_bcbb =true ;};if _edaf .Lly > _fddb .Lly {_edaf .Lly =_fddb .Lly ;
_bcbb =true ;};if _edaf .Urx < _fddb .Urx {_edaf .Urx =_fddb .Urx ;_bcbb =true ;};if _edaf .Ury < _fddb .Ury {_edaf .Ury =_fddb .Ury ;_bcbb =true ;};if _bcbb {_bcc .MediaBox =_edaf ;};return nil ;};
// GetFontDescriptor returns the font descriptor for `font`.
func (_abea PdfFont )GetFontDescriptor ()(*PdfFontDescriptor ,error ){return _abea ._gcaeff .getFontDescriptor (),nil ;};
// SetOCProperties sets the optional content properties.
func (_ffgbff *PdfWriter )SetOCProperties (ocProperties _fg .PdfObject )error {_eagce :=_ffgbff ._cgacf ;if ocProperties !=nil {_aa .Log .Trace ("\u0053e\u0074\u0074\u0069\u006e\u0067\u0020\u004f\u0043\u0020\u0050\u0072o\u0070\u0065\u0072\u0074\u0069\u0065\u0073\u002e\u002e\u002e");
_eagce .Set ("\u004f\u0043\u0050r\u006f\u0070\u0065\u0072\u0074\u0069\u0065\u0073",ocProperties );return _ffgbff .addObjects (ocProperties );};return nil ;};
// ToPdfObject returns a PdfObject representation of PdfColorspaceDeviceNAttributes as a PdfObjectDictionary directly
// or indirectly within an indirect object container.
func (_geae *PdfColorspaceDeviceNAttributes )ToPdfObject ()_fg .PdfObject {_aeddf :=_fg .MakeDict ();if _geae .Subtype !=nil {_aeddf .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_geae .Subtype );};_aeddf .SetIfNotNil ("\u0043o\u006c\u006f\u0072\u0061\u006e\u0074s",_geae .Colorants );
_aeddf .SetIfNotNil ("\u0050r\u006f\u0063\u0065\u0073\u0073",_geae .Process );_aeddf .SetIfNotNil ("M\u0069\u0078\u0069\u006e\u0067\u0048\u0069\u006e\u0074\u0073",_geae .MixingHints );if _geae ._eagf !=nil {_geae ._eagf .PdfObject =_aeddf ;return _geae ._eagf ;
};return _aeddf ;};
// SetPdfCreator sets the Creator attribute of the output PDF.
func SetPdfCreator (creator string ){_baacg .Lock ();defer _baacg .Unlock ();_gfebcg =creator };
// 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 (_eeeb *PdfColorspaceDeviceRGB )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=3{return nil ,_ce .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_geaf :=vals [0];if _geaf < 0.0||_geaf > 1.0{_aa .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_geaf );
return nil ,ErrColorOutOfRange ;};_bgcg :=vals [1];if _bgcg < 0.0||_bgcg > 1.0{_aa .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_geaf );return nil ,ErrColorOutOfRange ;
};_bccd :=vals [2];if _bccd < 0.0||_bccd > 1.0{_aa .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_geaf );return nil ,ErrColorOutOfRange ;};_cfaa :=NewPdfColorDeviceRGB (_geaf ,_bgcg ,_bccd );
return _cfaa ,nil ;};
// NewXObjectImageFromImage creates a new XObject Image from an image object
// with default options. If encoder is nil, uses raw encoding (none).
func NewXObjectImageFromImage (img *Image ,cs PdfColorspace ,encoder _fg .StreamEncoder )(*XObjectImage ,error ){_agcef :=NewXObjectImage ();return UpdateXObjectImageFromImage (_agcef ,img ,cs ,encoder );};
// 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 *_af .CertClient ;
// OCSPClient is the client used to retrieve OCSP validation information.
OCSPClient *_af .OCSPClient ;
// CRLClient is the client used to retrieve CRL validation information.
CRLClient *_af .CRLClient ;
// SkipExisting specifies whether existing signature validations
// should be skipped.
SkipExisting bool ;_edgba *PdfAppender ;_ebbe *DSS ;};
// Encoder returns the font's text encoder.
func (_acefc pdfCIDFontType0 )Encoder ()_dg .TextEncoder {return _acefc ._bcbg };
// UpdatePage updates the `page` in the new revision if it has changed.
func (_eaag *PdfAppender )UpdatePage (page *PdfPage ){_eaag .updateObjectsDeep (page .ToPdfObject (),nil )};
// 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 (_cdbcg *PdfFieldButton )SetType (btype ButtonType ){_ecfee :=uint32 (0);if _cdbcg .Ff !=nil {_ecfee =uint32 (*_cdbcg .Ff );};switch btype {case ButtonTypePush :_ecfee |=FieldFlagPushbutton .Mask ();case ButtonTypeRadio :_ecfee |=FieldFlagRadio .Mask ();
};_cdbcg .Ff =_fg .MakeInteger (int64 (_ecfee ));};func (_aad *PdfReader )newPdfAnnotationSquareFromDict (_eeead *_fg .PdfObjectDictionary )(*PdfAnnotationSquare ,error ){_ada :=PdfAnnotationSquare {};_bdfb ,_afbc :=_aad .newPdfAnnotationMarkupFromDict (_eeead );
if _afbc !=nil {return nil ,_afbc ;};_ada .PdfAnnotationMarkup =_bdfb ;_ada .BS =_eeead .Get ("\u0042\u0053");_ada .IC =_eeead .Get ("\u0049\u0043");_ada .BE =_eeead .Get ("\u0042\u0045");_ada .RD =_eeead .Get ("\u0052\u0044");return &_ada ,nil ;};func (_bge *PdfAnnotationMarkup )appendToPdfDictionary (_ecfd *_fg .PdfObjectDictionary ){_ecfd .SetIfNotNil ("\u0054",_bge .T );
if _bge .Popup !=nil {_ecfd .Set ("\u0050\u006f\u0070u\u0070",_bge .Popup .ToPdfObject ());};_ecfd .SetIfNotNil ("\u0043\u0041",_bge .CA );_ecfd .SetIfNotNil ("\u0052\u0043",_bge .RC );_ecfd .SetIfNotNil ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065",_bge .CreationDate );
_ecfd .SetIfNotNil ("\u0049\u0052\u0054",_bge .IRT );_ecfd .SetIfNotNil ("\u0053\u0075\u0062\u006a",_bge .Subj );_ecfd .SetIfNotNil ("\u0052\u0054",_bge .RT );_ecfd .SetIfNotNil ("\u0049\u0054",_bge .IT );_ecfd .SetIfNotNil ("\u0045\u0078\u0044\u0061\u0074\u0061",_bge .ExData );
};
// NewPdfActionGoTo returns a new "go to" action.
func NewPdfActionGoTo ()*PdfActionGoTo {_cd :=NewPdfAction ();_cba :=&PdfActionGoTo {};_cba .PdfAction =_cd ;_cd .SetContext (_cba );return _cba ;};
// NewOutlineBookmark returns an initialized PdfOutlineItem for a given bookmark title and page.
func NewOutlineBookmark (title string ,page *_fg .PdfIndirectObject )*PdfOutlineItem {_egga :=PdfOutlineItem {};_egga ._gfcge =&_egga ;_egga .Title =_fg .MakeString (title );_fdee :=_fg .MakeArray ();_fdee .Append (page );_fdee .Append (_fg .MakeName ("\u0046\u0069\u0074"));
_egga .Dest =_fdee ;return &_egga ;};func _egbc (_dfedd []byte )([]byte ,error ){_cdaef :=_gee .New ();if _ ,_ceag :=_ff .Copy (_cdaef ,_cb .NewReader (_dfedd ));_ceag !=nil {return nil ,_ceag ;};return _cdaef .Sum (nil ),nil ;};func (_aafed *PdfFilespec )getDict ()*_fg .PdfObjectDictionary {if _gacd ,_adbb :=_aafed ._ccbdc .(*_fg .PdfIndirectObject );
_adbb {_debad ,_ffddg :=_gacd .PdfObject .(*_fg .PdfObjectDictionary );if !_ffddg {return nil ;};return _debad ;}else if _ggbabd ,_abcfe :=_aafed ._ccbdc .(*_fg .PdfObjectDictionary );_abcfe {return _ggbabd ;}else {_aa .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",_aafed ._ccbdc );
return nil ;};};
// NewPdfAnnotationLink returns a new link annotation.
func NewPdfAnnotationLink ()*PdfAnnotationLink {_gbg :=NewPdfAnnotation ();_fge :=&PdfAnnotationLink {};_fge .PdfAnnotation =_gbg ;_gbg .SetContext (_fge );return _fge ;};func _dcfa (_geeab *XObjectImage )error {if _geeab .SMask ==nil {return nil ;};_fbcce ,_dbbfef :=_geeab .SMask .(*_fg .PdfObjectStream );
if !_dbbfef {_aa .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 _fg .ErrTypeError ;};_efabag :=_fbcce .PdfObjectDictionary ;
_gacag :=_efabag .Get ("\u004d\u0061\u0074t\u0065");if _gacag ==nil {return nil ;};_dfdc ,_bfaf :=_ggdd (_gacag .(*_fg .PdfObjectArray ));if _bfaf !=nil {return _bfaf ;};_cfccad :=_fg .MakeArrayFromFloats ([]float64 {_dfdc });_efabag .SetIfNotNil ("\u004d\u0061\u0074t\u0065",_cfccad );
return nil ;};func (_ggce *PdfReader )newPdfAnnotationPolygonFromDict (_ffec *_fg .PdfObjectDictionary )(*PdfAnnotationPolygon ,error ){_agea :=PdfAnnotationPolygon {};_bed ,_deec :=_ggce .newPdfAnnotationMarkupFromDict (_ffec );if _deec !=nil {return nil ,_deec ;
};_agea .PdfAnnotationMarkup =_bed ;_agea .Vertices =_ffec .Get ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073");_agea .LE =_ffec .Get ("\u004c\u0045");_agea .BS =_ffec .Get ("\u0042\u0053");_agea .IC =_ffec .Get ("\u0049\u0043");_agea .BE =_ffec .Get ("\u0042\u0045");
_agea .IT =_ffec .Get ("\u0049\u0054");_agea .Measure =_ffec .Get ("\u004de\u0061\u0073\u0075\u0072\u0065");return &_agea ,nil ;};
// PdfAnnotationFreeText represents FreeText annotations.
// (Section 12.5.6.6).
type PdfAnnotationFreeText struct{*PdfAnnotation ;*PdfAnnotationMarkup ;DA _fg .PdfObject ;Q _fg .PdfObject ;RC _fg .PdfObject ;DS _fg .PdfObject ;CL _fg .PdfObject ;IT _fg .PdfObject ;BE _fg .PdfObject ;RD _fg .PdfObject ;BS _fg .PdfObject ;LE _fg .PdfObject ;
};
// DecodeArray returns the component range values for the Indexed colorspace.
func (_feb *PdfColorspaceSpecialIndexed )DecodeArray ()[]float64 {return []float64 {0,float64 (_feb .HiVal )};};func _cdaad (_dfcbg *PdfField ,_bcbda _fg .PdfObject ){for _ ,_fafa :=range _dfcbg .Annotations {_fafa .AS =_bcbda ;_fafa .ToPdfObject ();};
};func (_gfbb *PdfReader )newPdfAnnotationMarkupFromDict (_dfc *_fg .PdfObjectDictionary )(*PdfAnnotationMarkup ,error ){_ffbc :=&PdfAnnotationMarkup {};if _dfga :=_dfc .Get ("\u0054");_dfga !=nil {_ffbc .T =_dfga ;};if _ebc :=_dfc .Get ("\u0050\u006f\u0070u\u0070");
_ebc !=nil {_fff ,_bdb :=_ebc .(*_fg .PdfIndirectObject );if !_bdb {if _ ,_afb :=_ebc .(*_fg .PdfObjectNull );!_afb {return nil ,_ce .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 {_cgf ,_ace :=_gfbb .newPdfAnnotationFromIndirectObject (_fff );if _ace !=nil {return nil ,_ace ;};if _cgf !=nil {_gde ,_cacg :=_cgf ._cbea .(*PdfAnnotationPopup );if !_cacg {return nil ,_ce .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");
};_ffbc .Popup =_gde ;};};};if _ece :=_dfc .Get ("\u0043\u0041");_ece !=nil {_ffbc .CA =_ece ;};if _cfgg :=_dfc .Get ("\u0052\u0043");_cfgg !=nil {_ffbc .RC =_cfgg ;};if _cfce :=_dfc .Get ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065");
_cfce !=nil {_ffbc .CreationDate =_cfce ;};if _ebb :=_dfc .Get ("\u0049\u0052\u0054");_ebb !=nil {_ffbc .IRT =_ebb ;};if _fcbb :=_dfc .Get ("\u0053\u0075\u0062\u006a");_fcbb !=nil {_ffbc .Subj =_fcbb ;};if _bdc :=_dfc .Get ("\u0052\u0054");_bdc !=nil {_ffbc .RT =_bdc ;
};if _ddac :=_dfc .Get ("\u0049\u0054");_ddac !=nil {_ffbc .IT =_ddac ;};if _ecce :=_dfc .Get ("\u0045\u0078\u0044\u0061\u0074\u0061");_ecce !=nil {_ffbc .ExData =_ecce ;};return _ffbc ,nil ;};func (_eeeggf *PdfReader )resolveReference (_ffcbg *_fg .PdfObjectReference )(_fg .PdfObject ,bool ,error ){_ffag ,_dfef :=_eeeggf ._ccgg .ObjCache [int (_ffcbg .ObjectNumber )];
if !_dfef {_aa .Log .Trace ("R\u0065\u0061\u0064\u0065r \u004co\u006f\u006b\u0075\u0070\u0020r\u0065\u0066\u003a\u0020\u0025\u0073",_ffcbg );_geabc ,_ggeeg :=_eeeggf ._ccgg .LookupByReference (*_ffcbg );if _ggeeg !=nil {return nil ,false ,_ggeeg ;};_eeeggf ._ccgg .ObjCache [int (_ffcbg .ObjectNumber )]=_geabc ;
return _geabc ,false ,nil ;};return _ffag ,true ,nil ;};
// PdfColorspaceSpecialPattern is a Pattern colorspace.
// Can be defined either as /Pattern or with an underlying colorspace [/Pattern cs].
type PdfColorspaceSpecialPattern struct{UnderlyingCS PdfColorspace ;_agcec *_fg .PdfIndirectObject ;};type pdfFont interface{_eed .Font ;
// ToPdfObject returns a PDF representation of the font and implements interface Model.
ToPdfObject ()_fg .PdfObject ;getFontDescriptor ()*PdfFontDescriptor ;baseFields ()*fontCommon ;};
// GetRuneMetrics returns the character metrics for the specified rune.
// A bool flag is returned to indicate whether or not the entry was found.
func (_fgce pdfFontType3 )GetRuneMetrics (r rune )(_eed .CharMetrics ,bool ){_dbdg :=_fgce .Encoder ();if _dbdg ==nil {_aa .Log .Debug ("\u004e\u006f\u0020en\u0063\u006f\u0064\u0065\u0072\u0020\u0066\u006f\u0072\u0020\u0066\u006f\u006e\u0074\u0073\u003d\u0025\u0073",_fgce );
return _eed .CharMetrics {},false ;};_degbd ,_degg :=_dbdg .RuneToCharcode (r );if !_degg {if r !=' '{_aa .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 ,_fgce );
};return _eed .CharMetrics {},false ;};_ddccb ,_gbeec :=_fgce .GetCharMetrics (_degbd );return _ddccb ,_gbeec ;};
// ToPdfObject returns the PDF representation of the colorspace.
func (_fffc *PdfColorspaceDeviceRGB )ToPdfObject ()_fg .PdfObject {return _fg .MakeName ("\u0044e\u0076\u0069\u0063\u0065\u0052\u0047B");};
// GetContext returns a reference to the subshading entry as represented by PdfShadingType1-7.
func (_eeagf *PdfShading )GetContext ()PdfModel {return _eeagf ._bcbef };
// PdfOutlineTreeNode contains common fields used by the outline and outline
// item objects.
type PdfOutlineTreeNode struct{_gfcge interface{};First *PdfOutlineTreeNode ;Last *PdfOutlineTreeNode ;};
// 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 (_bbgcg *PdfWriter )writeXRefStreams (_dfffe int ,_cegaa int64 )error {_faccg :=_dfffe +1;_bbgcg ._aafgd [_faccg ]=crossReference {Type :1,ObjectNumber :_faccg ,Offset :_cegaa };
_dfgef :=_cb .NewBuffer (nil );_fgfg :=_fg .MakeArray ();for _dgcbe :=0;_dgcbe <=_dfffe ;{for ;_dgcbe <=_dfffe ;_dgcbe ++{_dfbgdc ,_bacf :=_bbgcg ._aafgd [_dgcbe ];if _bacf &&(!_bbgcg ._cdafg ||_bbgcg ._cdafg &&(_dfbgdc .Type ==1&&_dfbgdc .Offset >=_bbgcg ._cecef ||_dfbgdc .Type ==0)){break ;
};};var _ebdbc int ;for _ebdbc =_dgcbe +1;_ebdbc <=_dfffe ;_ebdbc ++{_dbcee ,_gbdbe :=_bbgcg ._aafgd [_ebdbc ];if _gbdbe &&(!_bbgcg ._cdafg ||_bbgcg ._cdafg &&(_dbcee .Type ==1&&_dbcee .Offset > _bbgcg ._cecef )){continue ;};break ;};_fgfg .Append (_fg .MakeInteger (int64 (_dgcbe )),_fg .MakeInteger (int64 (_ebdbc -_dgcbe )));
for _eggda :=_dgcbe ;_eggda < _ebdbc ;_eggda ++{_cbafa :=_bbgcg ._aafgd [_eggda ];switch _cbafa .Type {case 0:_df .Write (_dfgef ,_df .BigEndian ,byte (0));_df .Write (_dfgef ,_df .BigEndian ,uint32 (0));_df .Write (_dfgef ,_df .BigEndian ,uint16 (0xFFFF));
case 1:_df .Write (_dfgef ,_df .BigEndian ,byte (1));_df .Write (_dfgef ,_df .BigEndian ,uint32 (_cbafa .Offset ));_df .Write (_dfgef ,_df .BigEndian ,uint16 (_cbafa .Generation ));case 2:_df .Write (_dfgef ,_df .BigEndian ,byte (2));_df .Write (_dfgef ,_df .BigEndian ,uint32 (_cbafa .ObjectNumber ));
_df .Write (_dfgef ,_df .BigEndian ,uint16 (_cbafa .Index ));};};_dgcbe =_ebdbc +1;};_abbcc ,_fgdef :=_fg .MakeStream (_dfgef .Bytes (),_fg .NewFlateEncoder ());if _fgdef !=nil {return _fgdef ;};_abbcc .ObjectNumber =int64 (_faccg );_abbcc .PdfObjectDictionary .Set ("\u0054\u0079\u0070\u0065",_fg .MakeName ("\u0058\u0052\u0065\u0066"));
_abbcc .PdfObjectDictionary .Set ("\u0057",_fg .MakeArray (_fg .MakeInteger (1),_fg .MakeInteger (4),_fg .MakeInteger (2)));_abbcc .PdfObjectDictionary .Set ("\u0049\u006e\u0064e\u0078",_fgfg );_abbcc .PdfObjectDictionary .Set ("\u0053\u0069\u007a\u0065",_fg .MakeInteger (int64 (_faccg +1)));
_abbcc .PdfObjectDictionary .Set ("\u0049\u006e\u0066\u006f",_bbgcg ._deabg );_abbcc .PdfObjectDictionary .Set ("\u0052\u006f\u006f\u0074",_bbgcg ._cegde );if _bbgcg ._cdafg &&_bbgcg ._cgdbf > 0{_abbcc .PdfObjectDictionary .Set ("\u0050\u0072\u0065\u0076",_fg .MakeInteger (_bbgcg ._cgdbf ));
};if _bbgcg ._bbdbd !=nil {_abbcc .Set ("\u0045n\u0063\u0072\u0079\u0070\u0074",_bbgcg ._abgdg );};if _bbgcg ._dadgc ==nil &&_bbgcg ._deeab !=""&&_bbgcg ._ccccb !=""{_bbgcg ._dadgc =_fg .MakeArray (_fg .MakeHexString (_bbgcg ._deeab ),_fg .MakeHexString (_bbgcg ._ccccb ));
};if _bbgcg ._dadgc !=nil {_aa .Log .Trace ("\u0049d\u0073\u003a\u0020\u0025\u0073",_bbgcg ._dadgc );_abbcc .Set ("\u0049\u0044",_bbgcg ._dadgc );};_bbgcg .writeObject (int (_abbcc .ObjectNumber ),_abbcc );return nil ;};
// 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 (_faege *XObjectForm )SetContentStream (content []byte ,encoder _fg .StreamEncoder )error {_fddbc :=content ;if encoder ==nil {if _faege .Filter !=nil {encoder =_faege .Filter ;}else {encoder =_fg .NewRawEncoder ();};};_afda ,_dggfg :=encoder .EncodeBytes (_fddbc );
if _dggfg !=nil {return _dggfg ;};_fddbc =_afda ;_faege .Stream =_fddbc ;_faege .Filter =encoder ;return nil ;};
// ToImage converts an object to an Image which can be transformed or saved out.
// The image data is decoded and the Image returned.
func (_egcgb *XObjectImage )ToImage ()(*Image ,error ){_gcbfc :=&Image {};if _egcgb .Height ==nil {return nil ,_ce .New ("\u0068e\u0069\u0067\u0068\u0074\u0020\u0061\u0074\u0074\u0072\u0069\u0062u\u0074\u0065\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");
};_gcbfc .Height =*_egcgb .Height ;if _egcgb .Width ==nil {return nil ,_ce .New ("\u0077\u0069\u0064th\u0020\u0061\u0074\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};_gcbfc .Width =*_egcgb .Width ;if _egcgb .BitsPerComponent ==nil {switch _egcgb .Filter .(type ){case *_fg .CCITTFaxEncoder ,*_fg .JBIG2Encoder :_gcbfc .BitsPerComponent =1;
case *_fg .LZWEncoder ,*_fg .RunLengthEncoder :_gcbfc .BitsPerComponent =8;default:return nil ,_ce .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");
};}else {_gcbfc .BitsPerComponent =*_egcgb .BitsPerComponent ;};_gcbfc .ColorComponents =_egcgb .ColorSpace .GetNumComponents ();_egcgb ._eafbc .Set ("\u0043o\u006co\u0072\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074\u0073",_fg .MakeInteger (int64 (_gcbfc .ColorComponents )));
_fgabc ,_fgcb :=_fg .DecodeStream (_egcgb ._eafbc );if _fgcb !=nil {return nil ,_fgcb ;};_gcbfc .Data =_fgabc ;if _egcgb .Decode !=nil {_fgfbdf ,_aedb :=_egcgb .Decode .(*_fg .PdfObjectArray );if !_aedb {_aa .Log .Debug ("I\u006e\u0076\u0061\u006cid\u0020D\u0065\u0063\u006f\u0064\u0065 \u006f\u0062\u006a\u0065\u0063\u0074");
return nil ,_ce .New ("\u0069\u006e\u0076a\u006c\u0069\u0064\u0020\u0074\u0079\u0070\u0065");};_dfbae ,_dcfbf :=_fgfbdf .ToFloat64Array ();if _dcfbf !=nil {return nil ,_dcfbf ;};switch _egcgb .ColorSpace .(type ){case *PdfColorspaceDeviceCMYK :_fggfa :=_egcgb .ColorSpace .DecodeArray ();
if _fggfa [0]==_dfbae [0]&&_fggfa [1]==_dfbae [1]&&_fggfa [2]==_dfbae [2]&&_fggfa [3]==_dfbae [3]{_gcbfc ._dbge =_dfbae ;};default:_gcbfc ._dbge =_dfbae ;};};return _gcbfc ,nil ;};
// Permissions specify a permissions dictionary (PDF 1.5).
// (Section 12.8.4, Table 258 - Entries in a permissions dictionary p. 477 in PDF32000_2008).
type Permissions struct{DocMDP *PdfSignature ;_gdfff *_fg .PdfObjectDictionary ;};
// CompliancePdfReader is a wrapper over PdfReader that is used for verifying if the input Pdf document matches the
// compliance rules of standards like PDF/A.
// NOTE: This implementation is in experimental development state.
// Keep in mind that it might change in the subsequent minor versions.
type CompliancePdfReader struct{*PdfReader ;_aefc _fg .ParserMetadata ;};
// 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 (_fbdf *PdfColorspaceLab )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=3{return nil ,_ce .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_ffcdf :=vals [0];if _ffcdf < 0.0||_ffcdf > 100.0{_aa .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",_ffcdf );
return nil ,ErrColorOutOfRange ;};_fcgb :=vals [1];_efcc :=float64 (-100);_bdfa :=float64 (100);if len (_fbdf .Range )> 1{_efcc =_fbdf .Range [0];_bdfa =_fbdf .Range [1];};if _fcgb < _efcc ||_fcgb > _bdfa {_aa .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",_fcgb ,_efcc ,_bdfa );
return nil ,ErrColorOutOfRange ;};_ebcdc :=vals [2];_dbcf :=float64 (-100);_ebed :=float64 (100);if len (_fbdf .Range )> 3{_dbcf =_fbdf .Range [2];_ebed =_fbdf .Range [3];};if _ebcdc < _dbcf ||_ebcdc > _ebed {_aa .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",_ebcdc ,_dbcf ,_ebed );
return nil ,ErrColorOutOfRange ;};_gcgcf :=NewPdfColorLab (_ffcdf ,_fcgb ,_ebcdc );return _gcgcf ,nil ;};func (_cfcc *PdfReader )newPdfAnnotationFromIndirectObject (_cbae *_fg .PdfIndirectObject )(*PdfAnnotation ,error ){_ceb ,_cga :=_cbae .PdfObject .(*_fg .PdfObjectDictionary );
if !_cga {return nil ,_d .Errorf ("\u0061\u006e\u006e\u006f\u0074\u0061\u0074\u0069\u006f\u006e\u0020\u0069\u006e\u0064\u0069r\u0065\u0063\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0020\u006e\u006ft\u0020\u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0069\u006e\u0067\u0020a \u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079");
};if model :=_cfcc ._edebb .GetModelFromPrimitive (_ceb );model !=nil {_dbf ,_cgaf :=model .(*PdfAnnotation );if !_cgaf {return nil ,_d .Errorf ("\u0063\u0061\u0063\u0068\u0065\u0064 \u006d\u006f\u0064\u0065\u006c\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0050D\u0046\u0020\u0061\u006e\u006e\u006f\u0074a\u0074\u0069\u006f\u006e");
};return _dbf ,nil ;};_cfd :=&PdfAnnotation {};_cfd ._agb =_cbae ;_cfcc ._edebb .Register (_ceb ,_cfd );if _def :=_ceb .Get ("\u0054\u0079\u0070\u0065");_def !=nil {_ffb ,_cebe :=_def .(*_fg .PdfObjectName );if !_cebe {_aa .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",_def );
}else {if *_ffb !="\u0041\u006e\u006eo\u0074"{_aa .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",*_ffb );};};};if _bcd :=_ceb .Get ("\u0052\u0065\u0063\u0074");
_bcd !=nil {_cfd .Rect =_bcd ;};if _ead :=_ceb .Get ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073");_ead !=nil {_cfd .Contents =_ead ;};if _ebe :=_ceb .Get ("\u0050");_ebe !=nil {_cfd .P =_ebe ;};if _fab :=_ceb .Get ("\u004e\u004d");_fab !=nil {_cfd .NM =_fab ;
};if _eaf :=_ceb .Get ("\u004d");_eaf !=nil {_cfd .M =_eaf ;};if _ecf :=_ceb .Get ("\u0046");_ecf !=nil {_cfd .F =_ecf ;};if _aff :=_ceb .Get ("\u0041\u0050");_aff !=nil {_cfd .AP =_aff ;};if _adb :=_ceb .Get ("\u0041\u0053");_adb !=nil {_cfd .AS =_adb ;
};if _ebf :=_ceb .Get ("\u0042\u006f\u0072\u0064\u0065\u0072");_ebf !=nil {_cfd .Border =_ebf ;};if _cab :=_ceb .Get ("\u0043");_cab !=nil {_cfd .C =_cab ;};if _daa :=_ceb .Get ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074");_daa !=nil {_cfd .StructParent =_daa ;
};if _dcdg :=_ceb .Get ("\u004f\u0043");_dcdg !=nil {_cfd .OC =_dcdg ;};_dgac :=_ceb .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065");if _dgac ==nil {_aa .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");
_cfd ._cbea =nil ;return _cfd ,nil ;};_dceg ,_eeg :=_dgac .(*_fg .PdfObjectName );if !_eeg {_aa .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",_dgac );
return nil ,_d .Errorf ("i\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0053\u0075\u0062\u0074\u0079\u0070\u0065\u0020\u006f\u0062\u006ae\u0063\u0074\u0020\u0074\u0079\u0070\u0065\u0020\u0021\u003d n\u0061\u006d\u0065 \u0028%\u0054\u0029",_dgac );};switch *_dceg {case "\u0054\u0065\u0078\u0074":_eeac ,_fgfa :=_cfcc .newPdfAnnotationTextFromDict (_ceb );
if _fgfa !=nil {return nil ,_fgfa ;};_eeac .PdfAnnotation =_cfd ;_cfd ._cbea =_eeac ;return _cfd ,nil ;case "\u004c\u0069\u006e\u006b":_gcg ,_bbe :=_cfcc .newPdfAnnotationLinkFromDict (_ceb );if _bbe !=nil {return nil ,_bbe ;};_gcg .PdfAnnotation =_cfd ;
_cfd ._cbea =_gcg ;return _cfd ,nil ;case "\u0046\u0072\u0065\u0065\u0054\u0065\u0078\u0074":_ageg ,_cag :=_cfcc .newPdfAnnotationFreeTextFromDict (_ceb );if _cag !=nil {return nil ,_cag ;};_ageg .PdfAnnotation =_cfd ;_cfd ._cbea =_ageg ;return _cfd ,nil ;
case "\u004c\u0069\u006e\u0065":_fdc ,_fdd :=_cfcc .newPdfAnnotationLineFromDict (_ceb );if _fdd !=nil {return nil ,_fdd ;};_fdc .PdfAnnotation =_cfd ;_cfd ._cbea =_fdc ;_aa .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",_cfd ,_cfd );
_aa .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",_fdc ,_fdc );_aa .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",_fdc .PdfAnnotationMarkup ,_fdc .PdfAnnotationMarkup );
return _cfd ,nil ;case "\u0053\u0071\u0075\u0061\u0072\u0065":_fdbe ,_gfbe :=_cfcc .newPdfAnnotationSquareFromDict (_ceb );if _gfbe !=nil {return nil ,_gfbe ;};_fdbe .PdfAnnotation =_cfd ;_cfd ._cbea =_fdbe ;return _cfd ,nil ;case "\u0043\u0069\u0072\u0063\u006c\u0065":_gaae ,_abdg :=_cfcc .newPdfAnnotationCircleFromDict (_ceb );
if _abdg !=nil {return nil ,_abdg ;};_gaae .PdfAnnotation =_cfd ;_cfd ._cbea =_gaae ;return _cfd ,nil ;case "\u0050o\u006c\u0079\u0067\u006f\u006e":_efe ,_gbgf :=_cfcc .newPdfAnnotationPolygonFromDict (_ceb );if _gbgf !=nil {return nil ,_gbgf ;};_efe .PdfAnnotation =_cfd ;
_cfd ._cbea =_efe ;return _cfd ,nil ;case "\u0050\u006f\u006c\u0079\u004c\u0069\u006e\u0065":_dde ,_gcef :=_cfcc .newPdfAnnotationPolyLineFromDict (_ceb );if _gcef !=nil {return nil ,_gcef ;};_dde .PdfAnnotation =_cfd ;_cfd ._cbea =_dde ;return _cfd ,nil ;
case "\u0048i\u0067\u0068\u006c\u0069\u0067\u0068t":_aggf ,_fdgg :=_cfcc .newPdfAnnotationHighlightFromDict (_ceb );if _fdgg !=nil {return nil ,_fdgg ;};_aggf .PdfAnnotation =_cfd ;_cfd ._cbea =_aggf ;return _cfd ,nil ;case "\u0055n\u0064\u0065\u0072\u006c\u0069\u006ee":_fee ,_bfd :=_cfcc .newPdfAnnotationUnderlineFromDict (_ceb );
if _bfd !=nil {return nil ,_bfd ;};_fee .PdfAnnotation =_cfd ;_cfd ._cbea =_fee ;return _cfd ,nil ;case "\u0053\u0071\u0075\u0069\u0067\u0067\u006c\u0079":_ebfa ,_bgc :=_cfcc .newPdfAnnotationSquigglyFromDict (_ceb );if _bgc !=nil {return nil ,_bgc ;};
_ebfa .PdfAnnotation =_cfd ;_cfd ._cbea =_ebfa ;return _cfd ,nil ;case "\u0053t\u0072\u0069\u006b\u0065\u004f\u0075t":_daag ,_abf :=_cfcc .newPdfAnnotationStrikeOut (_ceb );if _abf !=nil {return nil ,_abf ;};_daag .PdfAnnotation =_cfd ;_cfd ._cbea =_daag ;
return _cfd ,nil ;case "\u0043\u0061\u0072e\u0074":_ecbg ,_gaea :=_cfcc .newPdfAnnotationCaretFromDict (_ceb );if _gaea !=nil {return nil ,_gaea ;};_ecbg .PdfAnnotation =_cfd ;_cfd ._cbea =_ecbg ;return _cfd ,nil ;case "\u0053\u0074\u0061m\u0070":_aabc ,_cfgf :=_cfcc .newPdfAnnotationStampFromDict (_ceb );
if _cfgf !=nil {return nil ,_cfgf ;};_aabc .PdfAnnotation =_cfd ;_cfd ._cbea =_aabc ;return _cfd ,nil ;case "\u0049\u006e\u006b":_eebf ,_fbc :=_cfcc .newPdfAnnotationInkFromDict (_ceb );if _fbc !=nil {return nil ,_fbc ;};_eebf .PdfAnnotation =_cfd ;_cfd ._cbea =_eebf ;
return _cfd ,nil ;case "\u0050\u006f\u0070u\u0070":_add ,_ecacb :=_cfcc .newPdfAnnotationPopupFromDict (_ceb );if _ecacb !=nil {return nil ,_ecacb ;};_add .PdfAnnotation =_cfd ;_cfd ._cbea =_add ;return _cfd ,nil ;case "\u0046\u0069\u006c\u0065\u0041\u0074\u0074\u0061\u0063h\u006d\u0065\u006e\u0074":_ddb ,_faaf :=_cfcc .newPdfAnnotationFileAttachmentFromDict (_ceb );
if _faaf !=nil {return nil ,_faaf ;};_ddb .PdfAnnotation =_cfd ;_cfd ._cbea =_ddb ;return _cfd ,nil ;case "\u0053\u006f\u0075n\u0064":_ggeb ,_efff :=_cfcc .newPdfAnnotationSoundFromDict (_ceb );if _efff !=nil {return nil ,_efff ;};_ggeb .PdfAnnotation =_cfd ;
_cfd ._cbea =_ggeb ;return _cfd ,nil ;case "\u0052i\u0063\u0068\u004d\u0065\u0064\u0069a":_ecbgb ,_ggc :=_cfcc .newPdfAnnotationRichMediaFromDict (_ceb );if _ggc !=nil {return nil ,_ggc ;};_ecbgb .PdfAnnotation =_cfd ;_cfd ._cbea =_ecbgb ;return _cfd ,nil ;
case "\u004d\u006f\u0076i\u0065":_geb ,_fdbg :=_cfcc .newPdfAnnotationMovieFromDict (_ceb );if _fdbg !=nil {return nil ,_fdbg ;};_geb .PdfAnnotation =_cfd ;_cfd ._cbea =_geb ;return _cfd ,nil ;case "\u0053\u0063\u0072\u0065\u0065\u006e":_fgec ,_deb :=_cfcc .newPdfAnnotationScreenFromDict (_ceb );
if _deb !=nil {return nil ,_deb ;};_fgec .PdfAnnotation =_cfd ;_cfd ._cbea =_fgec ;return _cfd ,nil ;case "\u0057\u0069\u0064\u0067\u0065\u0074":_agfd ,_fcaf :=_cfcc .newPdfAnnotationWidgetFromDict (_ceb );if _fcaf !=nil {return nil ,_fcaf ;};_agfd .PdfAnnotation =_cfd ;
_cfd ._cbea =_agfd ;return _cfd ,nil ;case "P\u0072\u0069\u006e\u0074\u0065\u0072\u004d\u0061\u0072\u006b":_ggee ,_eba :=_cfcc .newPdfAnnotationPrinterMarkFromDict (_ceb );if _eba !=nil {return nil ,_eba ;};_ggee .PdfAnnotation =_cfd ;_cfd ._cbea =_ggee ;
return _cfd ,nil ;case "\u0054r\u0061\u0070\u004e\u0065\u0074":_bef ,_bgb :=_cfcc .newPdfAnnotationTrapNetFromDict (_ceb );if _bgb !=nil {return nil ,_bgb ;};_bef .PdfAnnotation =_cfd ;_cfd ._cbea =_bef ;return _cfd ,nil ;case "\u0057a\u0074\u0065\u0072\u006d\u0061\u0072k":_cac ,_caf :=_cfcc .newPdfAnnotationWatermarkFromDict (_ceb );
if _caf !=nil {return nil ,_caf ;};_cac .PdfAnnotation =_cfd ;_cfd ._cbea =_cac ;return _cfd ,nil ;case "\u0033\u0044":_edfa ,_cabe :=_cfcc .newPdfAnnotation3DFromDict (_ceb );if _cabe !=nil {return nil ,_cabe ;};_edfa .PdfAnnotation =_cfd ;_cfd ._cbea =_edfa ;
return _cfd ,nil ;case "\u0050\u0072\u006f\u006a\u0065\u0063\u0074\u0069\u006f\u006e":_edac ,_cgbc :=_cfcc .newPdfAnnotationProjectionFromDict (_ceb );if _cgbc !=nil {return nil ,_cgbc ;};_edac .PdfAnnotation =_cfd ;_cfd ._cbea =_edac ;return _cfd ,nil ;
case "\u0052\u0065\u0064\u0061\u0063\u0074":_cdcg ,_dfb :=_cfcc .newPdfAnnotationRedactFromDict (_ceb );if _dfb !=nil {return nil ,_dfb ;};_cdcg .PdfAnnotation =_cfd ;_cfd ._cbea =_cdcg ;return _cfd ,nil ;};_aa .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",*_dceg );
return nil ,nil ;};
// ToGoImage converts the unidoc Image to a golang Image structure.
func (_afdga *Image )ToGoImage ()(_ac .Image ,error ){_aa .Log .Trace ("\u0043\u006f\u006e\u0076er\u0074\u0069\u006e\u0067\u0020\u0074\u006f\u0020\u0067\u006f\u0020\u0069\u006d\u0061g\u0065");_dfaf ,_gccfa :=_cc .NewImage (int (_afdga .Width ),int (_afdga .Height ),int (_afdga .BitsPerComponent ),_afdga .ColorComponents ,_afdga .Data ,_afdga ._gccd ,_afdga ._dbge );
if _gccfa !=nil {return nil ,_gccfa ;};return _dfaf ,nil ;};func _dgfg (_abgaa *PdfPage ){_fcda :=_bec .GetLicenseKey ();if _fcda !=nil &&_fcda .IsLicensed (){return ;};_cdgdf :=_fg .PdfObjectName ("\u0055\u0046\u0031");if !_abgaa .Resources .HasFontByName (_cdgdf ){_abgaa .Resources .SetFontByName (_cdgdf ,DefaultFont ().ToPdfObject ());
};var _efca []string ;_efca =append (_efca ,"\u0071");_efca =append (_efca ,"\u0042\u0054");_efca =append (_efca ,_d .Sprintf ("\u002f%\u0073\u0020\u0031\u0034\u0020\u0054f",_cdgdf .String ()));_efca =append (_efca ,"\u0031\u0020\u0030\u0020\u0030\u0020\u0072\u0067");
_efca =append (_efca ,"\u0031\u0030\u0020\u0031\u0030\u0020\u0054\u0064");_cbaf :="\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";
_efca =append (_efca ,_d .Sprintf ("\u0028%\u0073\u0029\u0020\u0054\u006a",_cbaf ));_efca =append (_efca ,"\u0045\u0054");_efca =append (_efca ,"\u0051");_cbdcg :=_dc .Join (_efca ,"\u000a");_abgaa .AddContentStreamByString (_cbdcg );_abgaa .ToPdfObject ();
};
// String returns a string representation of what flags are set.
func (_baeg FieldFlag )String ()string {_eedf :="";if _baeg ==FieldFlagClear {_eedf ="\u0043\u006c\u0065a\u0072";return _eedf ;};if _baeg &FieldFlagReadOnly > 0{_eedf +="\u007cR\u0065\u0061\u0064\u004f\u006e\u006cy";};if _baeg &FieldFlagRequired > 0{_eedf +="\u007cR\u0065\u0071\u0075\u0069\u0072\u0065d";
};if _baeg &FieldFlagNoExport > 0{_eedf +="\u007cN\u006f\u0045\u0078\u0070\u006f\u0072t";};if _baeg &FieldFlagNoToggleToOff > 0{_eedf +="\u007c\u004e\u006f\u0054\u006f\u0067\u0067\u006c\u0065T\u006f\u004f\u0066\u0066";};if _baeg &FieldFlagRadio > 0{_eedf +="\u007c\u0052\u0061\u0064\u0069\u006f";
};if _baeg &FieldFlagPushbutton > 0{_eedf +="|\u0050\u0075\u0073\u0068\u0062\u0075\u0074\u0074\u006f\u006e";};if _baeg &FieldFlagRadiosInUnision > 0{_eedf +="\u007c\u0052a\u0064\u0069\u006fs\u0049\u006e\u0055\u006e\u0069\u0073\u0069\u006f\u006e";};if _baeg &FieldFlagMultiline > 0{_eedf +="\u007c\u004d\u0075\u006c\u0074\u0069\u006c\u0069\u006e\u0065";
};if _baeg &FieldFlagPassword > 0{_eedf +="\u007cP\u0061\u0073\u0073\u0077\u006f\u0072d";};if _baeg &FieldFlagFileSelect > 0{_eedf +="|\u0046\u0069\u006c\u0065\u0053\u0065\u006c\u0065\u0063\u0074";};if _baeg &FieldFlagDoNotScroll > 0{_eedf +="\u007c\u0044\u006fN\u006f\u0074\u0053\u0063\u0072\u006f\u006c\u006c";
};if _baeg &FieldFlagComb > 0{_eedf +="\u007c\u0043\u006fm\u0062";};if _baeg &FieldFlagRichText > 0{_eedf +="\u007cR\u0069\u0063\u0068\u0054\u0065\u0078t";};if _baeg &FieldFlagDoNotSpellCheck > 0{_eedf +="\u007c\u0044o\u004e\u006f\u0074S\u0070\u0065\u006c\u006c\u0043\u0068\u0065\u0063\u006b";
};if _baeg &FieldFlagCombo > 0{_eedf +="\u007c\u0043\u006f\u006d\u0062\u006f";};if _baeg &FieldFlagEdit > 0{_eedf +="\u007c\u0045\u0064i\u0074";};if _baeg &FieldFlagSort > 0{_eedf +="\u007c\u0053\u006fr\u0074";};if _baeg &FieldFlagMultiSelect > 0{_eedf +="\u007c\u004d\u0075l\u0074\u0069\u0053\u0065\u006c\u0065\u0063\u0074";
};if _baeg &FieldFlagCommitOnSelChange > 0{_eedf +="\u007cC\u006fm\u006d\u0069\u0074\u004f\u006eS\u0065\u006cC\u0068\u0061\u006e\u0067\u0065";};return _dc .Trim (_eedf ,"\u007c");};
// PdfVersion returns version of the PDF file.
func (_bffdff *PdfReader )PdfVersion ()_fg .Version {return _bffdff ._ccgg .PdfVersion ()};func _aefba (_ebgc _fg .PdfObject )(*PdfColorspaceSpecialPattern ,error ){_aa .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",_ebgc .String (),_ebgc );
_bafb :=NewPdfColorspaceSpecialPattern ();if _eccb ,_cfbg :=_ebgc .(*_fg .PdfIndirectObject );_cfbg {_bafb ._agcec =_eccb ;};_ebgc =_fg .TraceToDirectObject (_ebgc );if _afgf ,_becba :=_ebgc .(*_fg .PdfObjectName );_becba {if *_afgf !="\u0050a\u0074\u0074\u0065\u0072\u006e"{return nil ,_d .Errorf ("\u0069\u006e\u0076a\u006c\u0069\u0064\u0020\u006e\u0061\u006d\u0065");
};return _bafb ,nil ;};_bbfb ,_ccfd :=_ebgc .(*_fg .PdfObjectArray );if !_ccfd {_aa .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",_ebgc );
return nil ,_d .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0050\u0061\u0074\u0074e\u0072n\u0020C\u0053\u0020\u006f\u0062\u006a\u0065\u0063t");};if _bbfb .Len ()!=1&&_bbfb .Len ()!=2{_aa .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",_bbfb );
return nil ,_d .Errorf ("\u0069n\u0076\u0061\u006c\u0069\u0064\u0020\u0050\u0061\u0074\u0074\u0065r\u006e\u0020\u0043\u0053\u0020\u0061\u0072\u0072\u0061\u0079");};_ebgc =_bbfb .Get (0);if _eebga ,_abaaa :=_ebgc .(*_fg .PdfObjectName );_abaaa {if *_eebga !="\u0050a\u0074\u0074\u0065\u0072\u006e"{_aa .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",_eebga );
return nil ,_d .Errorf ("\u0069\u006e\u0076a\u006c\u0069\u0064\u0020\u006e\u0061\u006d\u0065");};};if _bbfb .Len ()> 1{_ebgc =_bbfb .Get (1);_ebgc =_fg .TraceToDirectObject (_ebgc );_daagd ,_abcba :=NewPdfColorspaceFromPdfObject (_ebgc );if _abcba !=nil {return nil ,_abcba ;
};_bafb .UnderlyingCS =_daagd ;};_aa .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",_bafb .UnderlyingCS );
return _bafb ,nil ;};
// ColorToRGB converts a Lab color to an RGB color.
func (_debb *PdfColorspaceLab )ColorToRGB (color PdfColor )(PdfColor ,error ){_ccagd :=func (_caea float64 )float64 {if _caea >=6.0/29{return _caea *_caea *_caea ;};return 108.0/841*(_caea -4.0/29.0);};_fafd ,_eebd :=color .(*PdfColorLab );if !_eebd {_aa .Log .Debug ("\u0069\u006e\u0070\u0075t \u0063\u006f\u006c\u006f\u0072\u0020\u006e\u006f\u0074\u0020\u006c\u0061\u0062");
return nil ,_ce .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};LStar :=_fafd .L ();AStar :=_fafd .A ();BStar :=_fafd .B ();L :=(LStar +16)/116+AStar /500;M :=(LStar +16)/116;N :=(LStar +16)/116-BStar /200;
X :=_debb .WhitePoint [0]*_ccagd (L );Y :=_debb .WhitePoint [1]*_ccagd (M );Z :=_debb .WhitePoint [2]*_ccagd (N );_gbgd :=3.240479*X +-1.537150*Y +-0.498535*Z ;_abdf :=-0.969256*X +1.875992*Y +0.041556*Z ;_fcdd :=0.055648*X +-0.204043*Y +1.057311*Z ;_gbgd =_ef .Min (_ef .Max (_gbgd ,0),1.0);
_abdf =_ef .Min (_ef .Max (_abdf ,0),1.0);_fcdd =_ef .Min (_ef .Max (_fcdd ,0),1.0);return NewPdfColorDeviceRGB (_gbgd ,_abdf ,_fcdd ),nil ;};
// NewPdfDateFromTime will create a PdfDate based on the given time
func NewPdfDateFromTime (timeObj _g .Time )(PdfDate ,error ){_fcbdb :=timeObj .Format ("\u002d\u0030\u0037\u003a\u0030\u0030");_dbdfg ,_ :=_bad .ParseInt (_fcbdb [1:3],10,32);_abffc ,_ :=_bad .ParseInt (_fcbdb [4:6],10,32);return PdfDate {_fddef :int64 (timeObj .Year ()),_agbab :int64 (timeObj .Month ()),_adaba :int64 (timeObj .Day ()),_bedbf :int64 (timeObj .Hour ()),_fgdec :int64 (timeObj .Minute ()),_cfebe :int64 (timeObj .Second ()),_ebdc :_fcbdb [0],_eedgc :_dbdfg ,_gfcga :_abffc },nil ;
};func (_fcccf *pdfFontSimple )getFontDescriptor ()*PdfFontDescriptor {if _gffac :=_fcccf ._cdgef ;_gffac !=nil {return _gffac ;};return _fcccf ._fdfca ;};
// NewPdfPageResources returns a new PdfPageResources object.
func NewPdfPageResources ()*PdfPageResources {_gdegd :=&PdfPageResources {};_gdegd ._cgce =_fg .MakeDict ();return _gdegd ;};func (_cfeb *pdfFontType0 )getFontDescriptor ()*PdfFontDescriptor {if _cfeb ._cdgef ==nil &&_cfeb .DescendantFont !=nil {return _cfeb .DescendantFont .FontDescriptor ();
};return _cfeb ._cdgef ;};
// GetColorspaceByName returns the colorspace with the specified name from the page resources.
func (_ecdbe *PdfPageResources )GetColorspaceByName (keyName _fg .PdfObjectName )(PdfColorspace ,bool ){_bbec ,_dcdga :=_ecdbe .GetColorspaces ();if _dcdga !=nil {_aa .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",_dcdga );
return nil ,false ;};if _bbec ==nil {return nil ,false ;};_aecgf ,_cdcfa :=_bbec .Colorspaces [string (keyName )];if !_cdcfa {return nil ,false ;};return _aecgf ,true ;};
// ToPdfObject implements interface PdfModel.
func (_cbdf *PdfAnnotationScreen )ToPdfObject ()_fg .PdfObject {_cbdf .PdfAnnotation .ToPdfObject ();_agcc :=_cbdf ._agb ;_egf :=_agcc .PdfObject .(*_fg .PdfObjectDictionary );_egf .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fg .MakeName ("\u0053\u0063\u0072\u0065\u0065\u006e"));
_egf .SetIfNotNil ("\u0054",_cbdf .T );_egf .SetIfNotNil ("\u004d\u004b",_cbdf .MK );_egf .SetIfNotNil ("\u0041",_cbdf .A );_egf .SetIfNotNil ("\u0041\u0041",_cbdf .AA );return _agcc ;};
// GetFillImage get attached model.Image in push button.
func (_gdff *PdfFieldButton )GetFillImage ()*Image {if _gdff .IsPush (){return _gdff ._babe ;};return nil ;};
// DecodeArray returns the component range values for the DeviceN colorspace.
// [0 1.0 0 1.0 ...] for each color component.
func (_dcbg *PdfColorspaceDeviceN )DecodeArray ()[]float64 {var _eadde []float64 ;for _ddec :=0;_ddec < _dcbg .GetNumComponents ();_ddec ++{_eadde =append (_eadde ,0.0,1.0);};return _eadde ;};
// ToPdfObject implements interface PdfModel.
func (_dcc *PdfActionSound )ToPdfObject ()_fg .PdfObject {_dcc .PdfAction .ToPdfObject ();_fad :=_dcc ._bda ;_ea :=_fad .PdfObject .(*_fg .PdfObjectDictionary );_ea .SetIfNotNil ("\u0053",_fg .MakeName (string (ActionTypeSound )));_ea .SetIfNotNil ("\u0053\u006f\u0075n\u0064",_dcc .Sound );
_ea .SetIfNotNil ("\u0056\u006f\u006c\u0075\u006d\u0065",_dcc .Volume );_ea .SetIfNotNil ("S\u0079\u006e\u0063\u0068\u0072\u006f\u006e\u006f\u0075\u0073",_dcc .Synchronous );_ea .SetIfNotNil ("\u0052\u0065\u0070\u0065\u0061\u0074",_dcc .Repeat );_ea .SetIfNotNil ("\u004d\u0069\u0078",_dcc .Mix );
return _fad ;};
// GetContainingPdfObject returns the page as a dictionary within an PdfIndirectObject.
func (_deae *PdfPage )GetContainingPdfObject ()_fg .PdfObject {return _deae ._aebf };
// NewPdfAction returns an initialized generic PDF action model.
func NewPdfAction ()*PdfAction {_bac :=&PdfAction {};_bac ._bda =_fg .MakeIndirectObject (_fg .MakeDict ());return _bac ;};func (_fbbf *PdfReader )newPdfActionGotoRFromDict (_ccc *_fg .PdfObjectDictionary )(*PdfActionGoToR ,error ){_bff ,_dca :=_ddd (_ccc .Get ("\u0046"));
if _dca !=nil {return nil ,_dca ;};return &PdfActionGoToR {D :_ccc .Get ("\u0044"),NewWindow :_ccc .Get ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw"),F :_bff },nil ;};
// GetCatalogMetadata gets the catalog defined XMP Metadata.
func (_gaafc *PdfReader )GetCatalogMetadata ()(_fg .PdfObject ,bool ){if _gaafc ._cgegd ==nil {return nil ,false ;};_aedad :=_gaafc ._cgegd .Get ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");return _aedad ,_aedad !=nil ;};
// GetContext returns the action context which contains the specific type-dependent context.
// The context represents the subaction.
func (_fca *PdfAction )GetContext ()PdfModel {if _fca ==nil {return nil ;};return _fca ._bd ;};
// NewPdfColorspaceSpecialSeparation returns a new separation color.
func NewPdfColorspaceSpecialSeparation ()*PdfColorspaceSpecialSeparation {_fddca :=&PdfColorspaceSpecialSeparation {};return _fddca ;};
// ToPdfObject implements interface PdfModel.
func (_fead *PdfAnnotationPolyLine )ToPdfObject ()_fg .PdfObject {_fead .PdfAnnotation .ToPdfObject ();_feda :=_fead ._agb ;_cad :=_feda .PdfObject .(*_fg .PdfObjectDictionary );_fead .PdfAnnotationMarkup .appendToPdfDictionary (_cad );_cad .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fg .MakeName ("\u0050\u006f\u006c\u0079\u004c\u0069\u006e\u0065"));
_cad .SetIfNotNil ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073",_fead .Vertices );_cad .SetIfNotNil ("\u004c\u0045",_fead .LE );_cad .SetIfNotNil ("\u0042\u0053",_fead .BS );_cad .SetIfNotNil ("\u0049\u0043",_fead .IC );_cad .SetIfNotNil ("\u0042\u0045",_fead .BE );
_cad .SetIfNotNil ("\u0049\u0054",_fead .IT );_cad .SetIfNotNil ("\u004de\u0061\u0073\u0075\u0072\u0065",_fead .Measure );return _feda ;};
// SetAction sets the PDF action for the annotation link.
func (_aefbb *PdfAnnotationLink )SetAction (action *PdfAction ){_aefbb ._efc =action ;if action ==nil {_aefbb .A =nil ;};};
// ImageToGray returns a new grayscale image based on the passed in RGB image.
func (_aggb *PdfColorspaceDeviceRGB )ImageToGray (img Image )(Image ,error ){if img .ColorComponents !=3{return img ,_ce .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");
};_cfbf ,_cfgfe :=_cc .NewImage (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),img .ColorComponents ,img .Data ,img ._gccd ,img ._dbge );if _cfgfe !=nil {return img ,_cfgfe ;};_deafe ,_cfgfe :=_cc .GrayConverter .Convert (_cfbf );if _cfgfe !=nil {return img ,_cfgfe ;
};return _adad (_deafe .Base ()),nil ;};
// ToPdfObject implements interface PdfModel.
func (_cdd *PdfActionGoTo )ToPdfObject ()_fg .PdfObject {_cdd .PdfAction .ToPdfObject ();_cfg :=_cdd ._bda ;_dce :=_cfg .PdfObject .(*_fg .PdfObjectDictionary );_dce .SetIfNotNil ("\u0053",_fg .MakeName (string (ActionTypeGoTo )));_dce .SetIfNotNil ("\u0044",_cdd .D );
return _cfg ;};func _bcabg (_aadad _fg .PdfObject )(map[_dg .CharCode ]float64 ,error ){if _aadad ==nil {return nil ,nil ;};_caege ,_egdf :=_fg .GetArray (_aadad );if !_egdf {return nil ,nil ;};_dbgb :=map[_dg .CharCode ]float64 {};_gddbg :=_caege .Len ();
for _gfge :=0;_gfge < _gddbg -1;_gfge ++{_fddcc :=_fg .TraceToDirectObject (_caege .Get (_gfge ));_dafa ,_dacd :=_fg .GetIntVal (_fddcc );if !_dacd {return nil ,_d .Errorf ("\u0042a\u0064\u0020\u0066\u006fn\u0074\u0020\u0057\u0020\u006fb\u006a0\u003a \u0069\u003d\u0025\u0064\u0020\u0025\u0023v",_gfge ,_fddcc );
};_gfge ++;if _gfge > _gddbg -1{return nil ,_d .Errorf ("\u0042\u0061\u0064\u0020\u0066\u006f\u006e\u0074\u0020\u0057\u0020a\u0072\u0072\u0061\u0079\u003a\u0020\u0061\u0072\u0072\u0032=\u0025\u002b\u0076",_caege );};_gegg :=_fg .TraceToDirectObject (_caege .Get (_gfge ));
switch _gegg .(type ){case *_fg .PdfObjectArray :_cdgee ,_ :=_fg .GetArray (_gegg );if _adbef ,_bdbf :=_cdgee .ToFloat64Array ();_bdbf ==nil {for _ebec :=0;_ebec < len (_adbef );_ebec ++{_dbgb [_dg .CharCode (_dafa +_ebec )]=_adbef [_ebec ];};}else {return nil ,_d .Errorf ("\u0042\u0061\u0064 \u0066\u006f\u006e\u0074 \u0057\u0020\u0061\u0072\u0072\u0061\u0079 \u006f\u0062\u006a\u0031\u003a\u0020\u0069\u003d\u0025\u0064\u0020\u0025\u0023\u0076",_gfge ,_gegg );
};case *_fg .PdfObjectInteger :_cefd ,_bcbbb :=_fg .GetIntVal (_gegg );if !_bcbbb {return nil ,_d .Errorf ("\u0042\u0061d\u0020\u0066\u006f\u006e\u0074\u0020\u0057\u0020\u0069\u006e\u0074\u0020\u006f\u0062\u006a\u0031\u003a\u0020\u0069\u003d\u0025\u0064 %\u0023\u0076",_gfge ,_gegg );
};_gfge ++;if _gfge > _gddbg -1{return nil ,_d .Errorf ("\u0042\u0061\u0064\u0020\u0066\u006f\u006e\u0074\u0020\u0057\u0020a\u0072\u0072\u0061\u0079\u003a\u0020\u0061\u0072\u0072\u0032=\u0025\u002b\u0076",_caege );};_gbgbb :=_caege .Get (_gfge );_gddbgd ,_gcda :=_fg .GetNumberAsFloat (_gbgbb );
if _gcda !=nil {return nil ,_d .Errorf ("\u0042\u0061d\u0020\u0066\u006f\u006e\u0074\u0020\u0057\u0020\u0069\u006e\u0074\u0020\u006f\u0062\u006a\u0032\u003a\u0020\u0069\u003d\u0025\u0064 %\u0023\u0076",_gfge ,_gbgbb );};for _bbfe :=_dafa ;_bbfe <=_cefd ;
_bbfe ++{_dbgb [_dg .CharCode (_bbfe )]=_gddbgd ;};default:return nil ,_d .Errorf ("\u0042\u0061\u0064\u0020\u0066\u006f\u006e\u0074\u0020\u0057 \u006f\u0062\u006a\u0031\u0020\u0074\u0079p\u0065\u003a\u0020\u0069\u003d\u0025\u0064\u0020\u0025\u0023\u0076",_gfge ,_gegg );
};};return _dbgb ,nil ;};
// DecodeArray returns the range of color component values in CalGray colorspace.
func (_efgcg *PdfColorspaceCalGray )DecodeArray ()[]float64 {return []float64 {0.0,1.0}};
// PdfOutputIntentType is the subtype of the given PdfOutputIntent.
type PdfOutputIntentType int ;
// NewPdfInfoFromObject creates a new PdfInfo from the input core.PdfObject.
func NewPdfInfoFromObject (obj _fg .PdfObject )(*PdfInfo ,error ){var _bbfaf PdfInfo ;_dgdf ,_acbb :=obj .(*_fg .PdfObjectDictionary );if !_acbb {return nil ,_d .Errorf ("i\u006e\u0076\u0061\u006c\u0069\u0064 \u0070\u0064\u0066\u0020\u006f\u0062\u006a\u0065\u0063t\u0020\u0074\u0079p\u0065:\u0020\u0025\u0054",obj );
};for _ ,_edefe :=range _dgdf .Keys (){switch _edefe {case "\u0054\u0069\u0074l\u0065":_bbfaf .Title ,_ =_fg .GetString (_dgdf .Get ("\u0054\u0069\u0074l\u0065"));case "\u0041\u0075\u0074\u0068\u006f\u0072":_bbfaf .Author ,_ =_fg .GetString (_dgdf .Get ("\u0041\u0075\u0074\u0068\u006f\u0072"));
case "\u0053u\u0062\u006a\u0065\u0063\u0074":_bbfaf .Subject ,_ =_fg .GetString (_dgdf .Get ("\u0053u\u0062\u006a\u0065\u0063\u0074"));case "\u004b\u0065\u0079\u0077\u006f\u0072\u0064\u0073":_bbfaf .Keywords ,_ =_fg .GetString (_dgdf .Get ("\u004b\u0065\u0079\u0077\u006f\u0072\u0064\u0073"));
case "\u0043r\u0065\u0061\u0074\u006f\u0072":_bbfaf .Creator ,_ =_fg .GetString (_dgdf .Get ("\u0043r\u0065\u0061\u0074\u006f\u0072"));case "\u0050\u0072\u006f\u0064\u0075\u0063\u0065\u0072":_bbfaf .Producer ,_ =_fg .GetString (_dgdf .Get ("\u0050\u0072\u006f\u0064\u0075\u0063\u0065\u0072"));
case "\u0054r\u0061\u0070\u0070\u0065\u0064":_bbfaf .Trapped ,_ =_fg .GetName (_dgdf .Get ("\u0054r\u0061\u0070\u0070\u0065\u0064"));case "\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065":if _fccg ,_fedgd :=_fg .GetString (_dgdf .Get ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065"));
_fedgd &&_fccg .String ()!=""{_cbedgf ,_cbbac :=NewPdfDate (_fccg .String ());if _cbbac !=nil {return nil ,_d .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0043\u0072e\u0061\u0074\u0069\u006f\u006e\u0044\u0061t\u0065\u0020\u0066\u0069\u0065\u006c\u0064\u003a\u0020\u0025\u0077",_cbbac );
};_bbfaf .CreationDate =&_cbedgf ;};case "\u004do\u0064\u0044\u0061\u0074\u0065":if _dfce ,_gegf :=_fg .GetString (_dgdf .Get ("\u004do\u0064\u0044\u0061\u0074\u0065"));_gegf &&_dfce .String ()!=""{_aceb ,_bcbd :=NewPdfDate (_dfce .String ());if _bcbd !=nil {return nil ,_d .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u004d\u006f\u0064\u0044a\u0074e\u0020f\u0069\u0065\u006c\u0064\u003a\u0020\u0025w",_bcbd );
};_bbfaf .ModifiedDate =&_aceb ;};default:_abcg ,_ :=_fg .GetString (_dgdf .Get (_edefe ));if _bbfaf ._aaee ==nil {_bbfaf ._aaee =_fg .MakeDict ();};_bbfaf ._aaee .Set (_edefe ,_abcg );};};return &_bbfaf ,nil ;};
// SignatureHandlerDocMDP extends SignatureHandler with the ValidateWithOpts method for checking the DocMDP policy.
type SignatureHandlerDocMDP interface{SignatureHandler ;
// ValidateWithOpts validates a PDF signature by checking PdfReader or PdfParser
// ValidateWithOpts shall contain Validate call
ValidateWithOpts (_gfec *PdfSignature ,_acegf Hasher ,_gcedc SignatureHandlerDocMDPParams )(SignatureValidationResult ,error );};
// 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 (_gbcc *PdfColorspaceDeviceCMYK )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=4{return nil ,_ce .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_ccbd :=vals [0];if _ccbd < 0.0||_ccbd > 1.0{_aa .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_ccbd );
return nil ,ErrColorOutOfRange ;};_afgd :=vals [1];if _afgd < 0.0||_afgd > 1.0{_aa .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_afgd );return nil ,ErrColorOutOfRange ;
};_dccg :=vals [2];if _dccg < 0.0||_dccg > 1.0{_aa .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_dccg );return nil ,ErrColorOutOfRange ;};_dced :=vals [3];
if _dced < 0.0||_dced > 1.0{_aa .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_dced );return nil ,ErrColorOutOfRange ;};_bbgec :=NewPdfColorDeviceCMYK (_ccbd ,_afgd ,_dccg ,_dced );
return _bbgec ,nil ;};
// Items returns all children outline items.
func (_cffcc *Outline )Items ()[]*OutlineItem {return _cffcc .Entries };
// Hasher is the interface that wraps the basic Write method.
type Hasher interface{Write (_gbagga []byte )(_gebbgg int ,_bbecd error );};
// ToPdfObject implements interface PdfModel.
func (_bedd *PdfSignature )ToPdfObject ()_fg .PdfObject {_dcceg :=_bedd ._fbbgf ;var _ggagg *_fg .PdfObjectDictionary ;if _cgagb ,_fggb :=_dcceg .PdfObject .(*pdfSignDictionary );_fggb {_ggagg =_cgagb .PdfObjectDictionary ;}else {_ggagg =_dcceg .PdfObject .(*_fg .PdfObjectDictionary );
};_ggagg .SetIfNotNil ("\u0054\u0079\u0070\u0065",_bedd .Type );_ggagg .SetIfNotNil ("\u0046\u0069\u006c\u0074\u0065\u0072",_bedd .Filter );_ggagg .SetIfNotNil ("\u0053u\u0062\u0046\u0069\u006c\u0074\u0065r",_bedd .SubFilter );_ggagg .SetIfNotNil ("\u0042y\u0074\u0065\u0052\u0061\u006e\u0067e",_bedd .ByteRange );
_ggagg .SetIfNotNil ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073",_bedd .Contents );_ggagg .SetIfNotNil ("\u0043\u0065\u0072\u0074",_bedd .Cert );_ggagg .SetIfNotNil ("\u004e\u0061\u006d\u0065",_bedd .Name );_ggagg .SetIfNotNil ("\u0052\u0065\u0061\u0073\u006f\u006e",_bedd .Reason );
_ggagg .SetIfNotNil ("\u004d",_bedd .M );_ggagg .SetIfNotNil ("\u0052e\u0066\u0065\u0072\u0065\u006e\u0063e",_bedd .Reference );_ggagg .SetIfNotNil ("\u0043h\u0061\u006e\u0067\u0065\u0073",_bedd .Changes );_ggagg .SetIfNotNil ("C\u006f\u006e\u0074\u0061\u0063\u0074\u0049\u006e\u0066\u006f",_bedd .ContactInfo );
return _dcceg ;};func (_ffae *PdfAnnotation )String ()string {_fed :="";_eag ,_bcfb :=_ffae .ToPdfObject ().(*_fg .PdfIndirectObject );if _bcfb {_fed =_d .Sprintf ("\u0025\u0054\u003a\u0020\u0025\u0073",_ffae ._cbea ,_eag .PdfObject .String ());};return _fed ;
};
// ColorFromPdfObjects gets the color from a series of pdf objects (4 for cmyk).
func (_cge *PdfColorspaceDeviceCMYK )ColorFromPdfObjects (objects []_fg .PdfObject )(PdfColor ,error ){if len (objects )!=4{return nil ,_ce .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_abce ,_cddd :=_fg .GetNumbersAsFloat (objects );
if _cddd !=nil {return nil ,_cddd ;};return _cge .ColorFromFloats (_abce );};func _egdcc (_beede _fg .PdfObject )(*PdfColorspaceCalGray ,error ){_gdda :=NewPdfColorspaceCalGray ();if _efee ,_gbgb :=_beede .(*_fg .PdfIndirectObject );_gbgb {_gdda ._ffbdb =_efee ;
};_beede =_fg .TraceToDirectObject (_beede );_dfda ,_beeda :=_beede .(*_fg .PdfObjectArray );if !_beeda {return nil ,_d .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _dfda .Len ()!=2{return nil ,_d .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0043\u0061\u006cG\u0072\u0061\u0079\u0020\u0063\u006f\u006c\u006f\u0072\u0073p\u0061\u0063\u0065");
};_beede =_fg .TraceToDirectObject (_dfda .Get (0));_fedfb ,_beeda :=_beede .(*_fg .PdfObjectName );if !_beeda {return nil ,_d .Errorf ("\u0043\u0061\u006c\u0047\u0072\u0061\u0079\u0020\u006e\u0061m\u0065\u0020\u006e\u006f\u0074\u0020\u0061 \u004e\u0061\u006d\u0065\u0020\u006f\u0062\u006a\u0065\u0063\u0074");
};if *_fedfb !="\u0043a\u006c\u0047\u0072\u0061\u0079"{return nil ,_d .Errorf ("\u006eo\u0074\u0020\u0061\u0020\u0043\u0061\u006c\u0047\u0072\u0061\u0079 \u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063\u0065");};_beede =_fg .TraceToDirectObject (_dfda .Get (1));
_bagd ,_beeda :=_beede .(*_fg .PdfObjectDictionary );if !_beeda {return nil ,_d .Errorf ("\u0043\u0061lG\u0072\u0061\u0079 \u0064\u0069\u0063\u0074 no\u0074 a\u0020\u0044\u0069\u0063\u0074\u0069\u006fna\u0072\u0079\u0020\u006f\u0062\u006a\u0065c\u0074");
};_beede =_bagd .Get ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074");_beede =_fg .TraceToDirectObject (_beede );_bcdc ,_beeda :=_beede .(*_fg .PdfObjectArray );if !_beeda {return nil ,_d .Errorf ("C\u0061\u006c\u0047\u0072\u0061\u0079:\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020W\u0068\u0069\u0074e\u0050o\u0069\u006e\u0074");
};if _bcdc .Len ()!=3{return nil ,_d .Errorf ("\u0043\u0061\u006c\u0047\u0072\u0061y\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0057\u0068\u0069t\u0065\u0050\u006f\u0069\u006e\u0074\u0020a\u0072\u0072\u0061\u0079");};_cgba ,_ccad :=_bcdc .GetAsFloat64Slice ();
if _ccad !=nil {return nil ,_ccad ;};_gdda .WhitePoint =_cgba ;_beede =_bagd .Get ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074");if _beede !=nil {_beede =_fg .TraceToDirectObject (_beede );_efac ,_bdgcc :=_beede .(*_fg .PdfObjectArray );
if !_bdgcc {return nil ,_d .Errorf ("C\u0061\u006c\u0047\u0072\u0061\u0079:\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020B\u006c\u0061\u0063k\u0050o\u0069\u006e\u0074");};if _efac .Len ()!=3{return nil ,_d .Errorf ("\u0043\u0061\u006c\u0047\u0072\u0061y\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0042\u006c\u0061c\u006b\u0050\u006f\u0069\u006e\u0074\u0020a\u0072\u0072\u0061\u0079");
};_dgfa ,_gdbeg :=_efac .GetAsFloat64Slice ();if _gdbeg !=nil {return nil ,_gdbeg ;};_gdda .BlackPoint =_dgfa ;};_beede =_bagd .Get ("\u0047\u0061\u006dm\u0061");if _beede !=nil {_beede =_fg .TraceToDirectObject (_beede );_bgdb ,_bgbec :=_fg .GetNumberAsFloat (_beede );
if _bgbec !=nil {return nil ,_d .Errorf ("C\u0061\u006c\u0047\u0072\u0061\u0079:\u0020\u0067\u0061\u006d\u006d\u0061\u0020\u006e\u006ft\u0020\u0061\u0020n\u0075m\u0062\u0065\u0072");};_gdda .Gamma =_bgdb ;};return _gdda ,nil ;};
// GetNumComponents returns the number of color components (3 for Lab).
func (_dfaaa *PdfColorLab )GetNumComponents ()int {return 3};func (_dfbc *PdfReader )traverseObjectData (_bcbab _fg .PdfObject )error {return _fg .ResolveReferencesDeep (_bcbab ,_dfbc ._aefbbf );};
// NewPdfColorLab returns a new Lab color.
func NewPdfColorLab (l ,a ,b float64 )*PdfColorLab {_fbbde :=PdfColorLab {l ,a ,b };return &_fbbde };
// GetPageAsIndirectObject returns the page as a dictionary within an PdfIndirectObject.
func (_edaac *PdfPage )GetPageAsIndirectObject ()*_fg .PdfIndirectObject {return _edaac ._aebf };
// ToPdfObject converts rectangle to a PDF object.
func (_gfdec *PdfRectangle )ToPdfObject ()_fg .PdfObject {return _fg .MakeArray (_fg .MakeFloat (_gfdec .Llx ),_fg .MakeFloat (_gfdec .Lly ),_fg .MakeFloat (_gfdec .Urx ),_fg .MakeFloat (_gfdec .Ury ));};
// GetXObjectByName returns the XObject with the specified keyName and the object type.
func (_cedda *PdfPageResources )GetXObjectByName (keyName _fg .PdfObjectName )(*_fg .PdfObjectStream ,XObjectType ){if _cedda .XObject ==nil {return nil ,XObjectTypeUndefined ;};_feaff ,_faag :=_fg .TraceToDirectObject (_cedda .XObject ).(*_fg .PdfObjectDictionary );
if !_faag {_aa .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",_fg .TraceToDirectObject (_cedda .XObject ));
return nil ,XObjectTypeUndefined ;};if _afadf :=_feaff .Get (keyName );_afadf !=nil {_beeb ,_dbefb :=_fg .GetStream (_afadf );if !_dbefb {_aa .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",_afadf );
return nil ,XObjectTypeUndefined ;};_ddab :=_beeb .PdfObjectDictionary ;_dcabf ,_dbefb :=_fg .TraceToDirectObject (_ddab .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065")).(*_fg .PdfObjectName );if !_dbefb {_aa .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",_ddab .String ());
return nil ,XObjectTypeUndefined ;};if *_dcabf =="\u0049\u006d\u0061g\u0065"{return _beeb ,XObjectTypeImage ;}else if *_dcabf =="\u0046\u006f\u0072\u006d"{return _beeb ,XObjectTypeForm ;}else if *_dcabf =="\u0050\u0053"{return _beeb ,XObjectTypePS ;}else {_aa .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",*_dcabf );
return nil ,XObjectTypeUndefined ;};}else {return nil ,XObjectTypeUndefined ;};};
// GetNumComponents returns the number of color components (1 for CalGray).
func (_ggcb *PdfColorCalGray )GetNumComponents ()int {return 1};
// SetLocation sets the `Location` field of the signature.
func (_dgab *PdfSignature )SetLocation (location string ){_dgab .Location =_fg .MakeString (location )};
// ImageToRGB converts an Image in a given PdfColorspace to an RGB image.
func (_bcdg *PdfColorspaceDeviceN )ImageToRGB (img Image )(Image ,error ){_ffdd :=_ade .NewReader (img .getBase ());_bceed :=_cc .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),img .ColorComponents ,nil ,img ._gccd ,img ._dbge );
_adce :=_ade .NewWriter (_bceed );_cace :=_ef .Pow (2,float64 (img .BitsPerComponent ))-1;_eeaaf :=_bcdg .GetNumComponents ();_dfdab :=make ([]uint32 ,_eeaaf );_bfef :=make ([]float64 ,_eeaaf );for {_fdcgf :=_ffdd .ReadSamples (_dfdab );if _fdcgf ==_ff .EOF {break ;
}else if _fdcgf !=nil {return img ,_fdcgf ;};for _gcdd :=0;_gcdd < _eeaaf ;_gcdd ++{_adfc :=float64 (_dfdab [_gcdd ])/_cace ;_bfef [_gcdd ]=_adfc ;};_abdbc ,_fdcgf :=_bcdg .TintTransform .Evaluate (_bfef );if _fdcgf !=nil {return img ,_fdcgf ;};for _ ,_cdgd :=range _abdbc {_cdgd =_ef .Min (_ef .Max (0,_cdgd ),1.0);
if _fdcgf =_adce .WriteSample (uint32 (_cdgd *_cace ));_fdcgf !=nil {return img ,_fdcgf ;};};};return _bcdg .AlternateSpace .ImageToRGB (_adad (&_bceed ));};func (_adbag *PdfPattern )getDict ()*_fg .PdfObjectDictionary {if _gdae ,_bedga :=_adbag ._gaac .(*_fg .PdfIndirectObject );
_bedga {_cddfgg ,_gacaf :=_gdae .PdfObject .(*_fg .PdfObjectDictionary );if !_gacaf {return nil ;};return _cddfgg ;}else if _ecab ,_eeba :=_adbag ._gaac .(*_fg .PdfObjectStream );_eeba {return _ecab .PdfObjectDictionary ;}else {_aa .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",_adbag ._gaac );
return nil ;};};
// Size returns the width and the height of the page. The method reports
// the page dimensions as displayed by a PDF viewer (i.e. page rotation is
// taken into account).
func (_eaea *PdfPage )Size ()(float64 ,float64 ,error ){_cegbe ,_ecedf :=_eaea .GetMediaBox ();if _ecedf !=nil {return 0,0,_ecedf ;};_gdgg ,_aafgb :=_cegbe .Width (),_cegbe .Height ();_fefbf ,_ecedf :=_eaea .GetRotate ();if _ecedf !=nil {_aa .Log .Debug ("\u0045\u0052R\u004f\u0052\u003a\u0020\u0025\u0073\u0020\u002d\u0020\u0069\u0067\u006e\u006f\u0072\u0069\u006e\u0067\u0020\u0061\u006e\u0064\u0020\u0061\u0073\u0073\u0075\u006d\u0069\u006e\u0067\u0020\u006e\u006f\u0020\u0072\u006f\u0074\u0061\u0074\u0069\u006f\u006e\u000a",_ecedf .Error ());
};if _cbbed :=_fefbf ;_cbbed %360!=0&&_cbbed %90==0{if _gdcg :=(360+_cbbed %360)%360;_gdcg ==90||_gdcg ==270{_gdgg ,_aafgb =_aafgb ,_gdgg ;};};return _gdgg ,_aafgb ,nil ;};
// GetNumComponents returns the number of color components of the colorspace device.
// Returns 3 for a Lab device.
func (_efaae *PdfColorspaceLab )GetNumComponents ()int {return 3};func (_dcfgd *LTV )getOCSPs (_dacbf []*_ge .Certificate ,_gaabf map[string ]*_ge .Certificate )([][]byte ,error ){_fafac :=make ([][]byte ,0,len (_dacbf ));for _ ,_gbec :=range _dacbf {for _ ,_bgfbf :=range _gbec .OCSPServer {if _dcfgd .CertClient .IsCA (_gbec ){continue ;
};_bacdae ,_cadfe :=_gaabf [_gbec .Issuer .CommonName ];if !_cadfe {_aa .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 ;};_ ,_ffafa ,_cgefg :=_dcfgd .OCSPClient .MakeRequest (_bgfbf ,_gbec ,_bacdae );if _cgefg !=nil {_aa .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",_cgefg );
continue ;};_fafac =append (_fafac ,_ffafa );};};return _fafac ,nil ;};
// GetExtGState gets the ExtGState specified by keyName. Returns a bool
// indicating whether it was found or not.
func (_ebggd *PdfPageResources )GetExtGState (keyName _fg .PdfObjectName )(_fg .PdfObject ,bool ){if _ebggd .ExtGState ==nil {return nil ,false ;};_eacgc ,_fbddc :=_fg .TraceToDirectObject (_ebggd .ExtGState ).(*_fg .PdfObjectDictionary );if !_fbddc {_aa .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",_ebggd .ExtGState );
return nil ,false ;};if _abbb :=_eacgc .Get (keyName );_abbb !=nil {return _abbb ,true ;};return nil ,false ;};
// Add appends a top level outline item to the outline.
func (_aegbd *Outline )Add (item *OutlineItem ){_aegbd .Entries =append (_aegbd .Entries ,item )};
// 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 (_dcbe *PdfColorspaceCalGray )ColorFromPdfObjects (objects []_fg .PdfObject )(PdfColor ,error ){if len (objects )!=1{return nil ,_ce .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_edcad ,_dddg :=_fg .GetNumbersAsFloat (objects );
if _dddg !=nil {return nil ,_dddg ;};return _dcbe .ColorFromFloats (_edcad );};
// GetShadingByName gets the shading specified by keyName. Returns nil if not existing.
// The bool flag indicated whether it was found or not.
func (_ebfff *PdfPageResources )GetShadingByName (keyName _fg .PdfObjectName )(*PdfShading ,bool ){if _ebfff .Shading ==nil {return nil ,false ;};_efdbd ,_dgfb :=_fg .TraceToDirectObject (_ebfff .Shading ).(*_fg .PdfObjectDictionary );if !_dgfb {_aa .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",_ebfff .Shading );
return nil ,false ;};if _effcd :=_efdbd .Get (keyName );_effcd !=nil {_eaffd ,_gdggb :=_fffbg (_effcd );if _gdggb !=nil {_aa .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",_gdggb );
return nil ,false ;};return _eaffd ,true ;};return nil ,false ;};
// NewPdfAnnotationMovie returns a new movie annotation.
func NewPdfAnnotationMovie ()*PdfAnnotationMovie {_fbe :=NewPdfAnnotation ();_afe :=&PdfAnnotationMovie {};_afe .PdfAnnotation =_fbe ;_fbe .SetContext (_afe );return _afe ;};
// NewPdfAnnotationCircle returns a new circle annotation.
func NewPdfAnnotationCircle ()*PdfAnnotationCircle {_egc :=NewPdfAnnotation ();_gcf :=&PdfAnnotationCircle {};_gcf .PdfAnnotation =_egc ;_gcf .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_egc .SetContext (_gcf );return _gcf ;};
// 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 _fg .StreamEncoder )(*XObjectImage ,error ){if encoder ==nil {encoder =_fg .NewRawEncoder ();};encoder .UpdateParams (img .GetParamsDict ());_efabg ,_faedg :=encoder .EncodeBytes (img .Data );
if _faedg !=nil {_aa .Log .Debug ("\u0045\u0072\u0072or\u0020\u0077\u0069\u0074\u0068\u0020\u0065\u006e\u0063\u006f\u0064\u0069\u006e\u0067\u003a\u0020\u0025\u0076",_faedg );return nil ,_faedg ;};_dfadc :=NewXObjectImage ();_gdggg :=img .Width ;_aadg :=img .Height ;
_dfadc .Width =&_gdggg ;_dfadc .Height =&_aadg ;_ffaeba :=img .BitsPerComponent ;_dfadc .BitsPerComponent =&_ffaeba ;_dfadc .Filter =encoder ;_dfadc .Stream =_efabg ;if cs ==nil {if img .ColorComponents ==1{_dfadc .ColorSpace =NewPdfColorspaceDeviceGray ();
if img .BitsPerComponent ==16{switch encoder .(type ){case *_fg .DCTEncoder :_dfadc .ColorSpace =NewPdfColorspaceDeviceRGB ();_ffaeba =8;_dfadc .BitsPerComponent =&_ffaeba ;};};}else if img .ColorComponents ==3{_dfadc .ColorSpace =NewPdfColorspaceDeviceRGB ();
}else if img .ColorComponents ==4{switch encoder .(type ){case *_fg .DCTEncoder :_dfadc .ColorSpace =NewPdfColorspaceDeviceRGB ();default:_dfadc .ColorSpace =NewPdfColorspaceDeviceCMYK ();};}else {return nil ,_ce .New ("c\u006fl\u006f\u0072\u0073\u0070\u0061\u0063\u0065\u0020u\u006e\u0064\u0065\u0066in\u0065\u0064");
};}else {_dfadc .ColorSpace =cs ;};if len (img ._gccd )!=0{_dacbg :=NewXObjectImage ();_dacbg .Filter =encoder ;_ffddb ,_eaefe :=encoder .EncodeBytes (img ._gccd );if _eaefe !=nil {_aa .Log .Debug ("\u0045\u0072\u0072or\u0020\u0077\u0069\u0074\u0068\u0020\u0065\u006e\u0063\u006f\u0064\u0069\u006e\u0067\u003a\u0020\u0025\u0076",_eaefe );
return nil ,_eaefe ;};_dacbg .Stream =_ffddb ;_dacbg .BitsPerComponent =_dfadc .BitsPerComponent ;_dacbg .Width =&img .Width ;_dacbg .Height =&img .Height ;_dacbg .ColorSpace =NewPdfColorspaceDeviceGray ();_dfadc .SMask =_dacbg .ToPdfObject ();}else {_dfadc .SMask =xobjIn .SMask ;
_dfadc .ImageMask =xobjIn .ImageMask ;if _dfadc .ColorSpace .GetNumComponents ()==1{_dcfa (_dfadc );};};return _dfadc ,nil ;};
// SetVersion sets the PDF version of the output file.
func (_fbeeb *PdfWriter )SetVersion (majorVersion ,minorVersion int ){_fbeeb ._fbbec .Major =majorVersion ;_fbeeb ._fbbec .Minor =minorVersion ;};
// GetNumPages returns the number of pages in the document.
func (_deacc *PdfReader )GetNumPages ()(int ,error ){if _deacc ._ccgg .GetCrypter ()!=nil &&!_deacc ._ccgg .IsAuthenticated (){return 0,_d .Errorf ("\u0066\u0069\u006ce\u0020\u006e\u0065\u0065d\u0020\u0074\u006f\u0020\u0062\u0065\u0020d\u0065\u0063\u0072\u0079\u0070\u0074\u0065\u0064\u0020\u0066\u0069\u0072\u0073\u0074");
};return len (_deacc ._bgce ),nil ;};
// PdfActionURI represents an URI action.
type PdfActionURI struct{*PdfAction ;URI _fg .PdfObject ;IsMap _fg .PdfObject ;};func _gbccc (_cdfa _fg .PdfObject )(*PdfColorspaceICCBased ,error ){_aada :=&PdfColorspaceICCBased {};if _ggge ,_eddd :=_cdfa .(*_fg .PdfIndirectObject );_eddd {_aada ._dgca =_ggge ;
};_cdfa =_fg .TraceToDirectObject (_cdfa );_abfd ,_gbf :=_cdfa .(*_fg .PdfObjectArray );if !_gbf {return nil ,_d .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _abfd .Len ()!=2{return nil ,_d .Errorf ("i\u006e\u0076\u0061\u006c\u0069\u0064 \u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064\u0020c\u006f\u006c\u006fr\u0073p\u0061\u0063\u0065");
};_cdfa =_fg .TraceToDirectObject (_abfd .Get (0));_bdbce ,_gbf :=_cdfa .(*_fg .PdfObjectName );if !_gbf {return nil ,_d .Errorf ("\u0049\u0043\u0043B\u0061\u0073\u0065\u0064 \u006e\u0061\u006d\u0065\u0020\u006e\u006ft\u0020\u0061\u0020\u004e\u0061\u006d\u0065\u0020\u006f\u0062\u006a\u0065\u0063\u0074");
};if *_bdbce !="\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064"{return nil ,_d .Errorf ("\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0049\u0043\u0043\u0042a\u0073\u0065\u0064\u0020\u0063\u006f\u006c\u006f\u0072\u0073p\u0061\u0063\u0065");};_cdfa =_abfd .Get (1);
_cbba ,_gbf :=_fg .GetStream (_cdfa );if !_gbf {_aa .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",_cdfa );
return nil ,_d .Errorf ("\u0049\u0043\u0043Ba\u0073\u0065\u0064\u0020\u0073\u0074\u0072\u0065\u0061\u006d\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064");};_baba :=_cbba .PdfObjectDictionary ;_ggfc ,_gbf :=_baba .Get ("\u004e").(*_fg .PdfObjectInteger );
if !_gbf {return nil ,_d .Errorf ("I\u0043\u0043\u0042\u0061\u0073\u0065d\u0020\u006d\u0069\u0073\u0073\u0069n\u0067\u0020\u004e\u0020\u0066\u0072\u006fm\u0020\u0073\u0074\u0072\u0065\u0061\u006d\u0020\u0064\u0069c\u0074");};if *_ggfc !=1&&*_ggfc !=3&&*_ggfc !=4{return nil ,_d .Errorf ("\u0049\u0043\u0043\u0042\u0061s\u0065\u0064\u0020\u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063\u0065 \u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u004e\u0020\u0028\u006e\u006f\u0074\u0020\u0031\u002c\u0033\u002c\u0034\u0029");
};_aada .N =int (*_ggfc );if _abgf :=_baba .Get ("\u0041l\u0074\u0065\u0072\u006e\u0061\u0074e");_abgf !=nil {_bba ,_dadf :=NewPdfColorspaceFromPdfObject (_abgf );if _dadf !=nil {return nil ,_dadf ;};_aada .Alternate =_bba ;};if _fega :=_baba .Get ("\u0052\u0061\u006eg\u0065");
_fega !=nil {_fega =_fg .TraceToDirectObject (_fega );_cddbd ,_edef :=_fega .(*_fg .PdfObjectArray );if !_edef {return nil ,_d .Errorf ("I\u0043\u0043\u0042\u0061\u0073\u0065d\u0020\u0052\u0061\u006e\u0067\u0065\u0020\u006e\u006ft\u0020\u0061\u006e \u0061r\u0072\u0061\u0079");
};if _cddbd .Len ()!=2*_aada .N {return nil ,_d .Errorf ("\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064\u0020\u0052\u0061\u006e\u0067e\u0020\u0077\u0072\u006f\u006e\u0067 \u006e\u0075\u006d\u0062\u0065\u0072\u0020\u006f\u0066\u0020\u0065\u006c\u0065m\u0065\u006e\u0074\u0073");
};_cgae ,_cfba :=_cddbd .GetAsFloat64Slice ();if _cfba !=nil {return nil ,_cfba ;};_aada .Range =_cgae ;}else {_aada .Range =make ([]float64 ,2*_aada .N );for _fdce :=0;_fdce < _aada .N ;_fdce ++{_aada .Range [2*_fdce ]=0.0;_aada .Range [2*_fdce +1]=1.0;
};};if _dfed :=_baba .Get ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");_dfed !=nil {_cfbb ,_aeeec :=_dfed .(*_fg .PdfObjectStream );if !_aeeec {return nil ,_d .Errorf ("\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064\u0020\u004de\u0074\u0061\u0064\u0061\u0074\u0061\u0020n\u006f\u0074\u0020\u0061\u0020\u0073\u0074\u0072\u0065\u0061\u006d");
};_aada .Metadata =_cfbb ;};_cdfe ,_deba :=_fg .DecodeStream (_cbba );if _deba !=nil {return nil ,_deba ;};_aada .Data =_cdfe ;_aada ._cebf =_cbba ;return _aada ,nil ;};
// ToPdfObject returns an indirect object containing the signature field dictionary.
func (_fabe *PdfFieldSignature )ToPdfObject ()_fg .PdfObject {if _fabe .PdfAnnotationWidget !=nil {_fabe .PdfAnnotationWidget .ToPdfObject ();};_fabe .PdfField .ToPdfObject ();_dfbd :=_fabe ._daecc ;_cadg :=_dfbd .PdfObject .(*_fg .PdfObjectDictionary );
_cadg .SetIfNotNil ("\u0046\u0054",_fg .MakeName ("\u0053\u0069\u0067"));_cadg .SetIfNotNil ("\u004c\u006f\u0063\u006b",_fabe .Lock );_cadg .SetIfNotNil ("\u0053\u0056",_fabe .SV );if _fabe .V !=nil {_cadg .SetIfNotNil ("\u0056",_fabe .V .ToPdfObject ());
};return _dfbd ;};
// AddPages adds pages to be appended to the end of the source PDF.
func (_deaf *PdfAppender )AddPages (pages ...*PdfPage ){for _ ,_agfc :=range pages {_agfc =_agfc .Duplicate ();_dgfg (_agfc );_deaf ._agbg =append (_deaf ._agbg ,_agfc );};};
// 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 ;func (_dfdg *LTV )buildCertChain (_eabac ,_eacg []*_ge .Certificate )([]*_ge .Certificate ,map[string ]*_ge .Certificate ,error ){_dfdea :=map[string ]*_ge .Certificate {};for _ ,_gaaeed :=range _eabac {_dfdea [_gaaeed .Subject .CommonName ]=_gaaeed ;
};_fddcg :=_eabac ;for _ ,_efbd :=range _eacg {_ebbfc :=_efbd .Subject .CommonName ;if _ ,_fcbecg :=_dfdea [_ebbfc ];_fcbecg {continue ;};_dfdea [_ebbfc ]=_efbd ;_fddcg =append (_fddcg ,_efbd );};if len (_fddcg )==0{return nil ,nil ,ErrSignNoCertificates ;
};var _fbda error ;for _efdea :=_fddcg [0];_efdea !=nil &&!_dfdg .CertClient .IsCA (_efdea );{_eddc ,_bedc :=_dfdea [_efdea .Issuer .CommonName ];if !_bedc {if _eddc ,_fbda =_dfdg .CertClient .GetIssuer (_efdea );_fbda !=nil {_aa .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",_fbda );
break ;};_dfdea [_efdea .Issuer .CommonName ]=_eddc ;_fddcg =append (_fddcg ,_eddc );};_efdea =_eddc ;};return _fddcg ,_dfdea ,nil ;};
// AddExtension adds the specified extension to the Extensions dictionary.
// See section 7.1.2 "Extensions Dictionary" (pp. 108-109 PDF32000_2008).
func (_fadbe *PdfWriter )AddExtension (extName ,baseVersion string ,extLevel int ){_baddc ,_bebaa :=_fg .GetDict (_fadbe ._cgacf .Get ("\u0045\u0078\u0074\u0065\u006e\u0073\u0069\u006f\u006e\u0073"));if !_bebaa {_baddc =_fg .MakeDict ();_fadbe ._cgacf .Set ("\u0045\u0078\u0074\u0065\u006e\u0073\u0069\u006f\u006e\u0073",_baddc );
};_bfbaf ,_bebaa :=_fg .GetDict (_baddc .Get (_fg .PdfObjectName (extName )));if !_bebaa {_bfbaf =_fg .MakeDict ();_baddc .Set (_fg .PdfObjectName (extName ),_bfbaf );};if _gfgea ,_ :=_fg .GetNameVal (_bfbaf .Get ("B\u0061\u0073\u0065\u0056\u0065\u0072\u0073\u0069\u006f\u006e"));
_gfgea !=baseVersion {_bfbaf .Set ("B\u0061\u0073\u0065\u0056\u0065\u0072\u0073\u0069\u006f\u006e",_fg .MakeName (baseVersion ));};if _fbccf ,_ :=_fg .GetIntVal (_bfbaf .Get ("\u0045\u0078\u0074\u0065\u006e\u0073\u0069\u006f\u006eL\u0065\u0076\u0065\u006c"));
_fbccf !=extLevel {_bfbaf .Set ("\u0045\u0078\u0074\u0065\u006e\u0073\u0069\u006f\u006eL\u0065\u0076\u0065\u006c",_fg .MakeInteger (int64 (extLevel )));};};
// ToPdfObject returns a PDF object representation of the outline.
func (_cbccd *Outline )ToPdfObject ()_fg .PdfObject {return _cbccd .ToPdfOutline ().ToPdfObject ()};
// 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 (_bggg *PdfFont )GetCharMetrics (code _dg .CharCode )(CharMetrics ,bool ){var _eegeg _eed .CharMetrics ;switch _egac :=_bggg ._gcaeff .(type ){case *pdfFontSimple :if _abdfe ,_ceae :=_egac .GetCharMetrics (code );_ceae {return _abdfe ,_ceae ;};case *pdfFontType0 :if _cdcgd ,_feac :=_egac .GetCharMetrics (code );
_feac {return _cdcgd ,_feac ;};case *pdfCIDFontType0 :if _dbcg ,_afae :=_egac .GetCharMetrics (code );_afae {return _dbcg ,_afae ;};case *pdfCIDFontType2 :if _gedgg ,_ggeaf :=_egac .GetCharMetrics (code );_ggeaf {return _gedgg ,_ggeaf ;};case *pdfFontType3 :if _ecfde ,_eabg :=_egac .GetCharMetrics (code );
_eabg {return _ecfde ,_eabg ;};default:_aa .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",_bggg ._gcaeff );
return _eegeg ,false ;};if _egeea ,_gbafg :=_bggg .GetFontDescriptor ();_gbafg ==nil &&_egeea !=nil {return _eed .CharMetrics {Wx :_egeea ._gbbgb },true ;};_aa .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",_bggg );
return _eegeg ,false ;};
// GetNumComponents returns the number of color components of the colorspace device.
// Returns 1 for a grayscale device.
func (_abef *PdfColorspaceDeviceGray )GetNumComponents ()int {return 1};
// NewPdfShadingPatternType2 creates an empty shading pattern type 2 object.
func NewPdfShadingPatternType2 ()*PdfShadingPatternType2 {_baada :=&PdfShadingPatternType2 {};_baada .Matrix =_fg .MakeArrayFromIntegers ([]int {1,0,0,1,0,0});_baada .PdfPattern =&PdfPattern {};_baada .PdfPattern .PatternType =int64 (*_fg .MakeInteger (2));
_baada .PdfPattern ._ccdc =_baada ;_baada .PdfPattern ._gaac =_fg .MakeIndirectObject (_fg .MakeDict ());return _baada ;};
// NewOutlineItem returns a new outline item instance.
func NewOutlineItem (title string ,dest OutlineDest )*OutlineItem {return &OutlineItem {Title :title ,Dest :dest };};
// SetContext sets the sub action (context).
func (_fe *PdfAction )SetContext (ctx PdfModel ){_fe ._bd =ctx };
// WriteToFile writes the output PDF to file.
func (_fgebe *PdfWriter )WriteToFile (outputFilePath string )error {_cgafb ,_efdfe :=_c .Create (outputFilePath );if _efdfe !=nil {return _efdfe ;};defer _cgafb .Close ();return _fgebe .Write (_cgafb );};
// NewPdfAnnotationStrikeOut returns a new text strikeout annotation.
func NewPdfAnnotationStrikeOut ()*PdfAnnotationStrikeOut {_dfac :=NewPdfAnnotation ();_eda :=&PdfAnnotationStrikeOut {};_eda .PdfAnnotation =_dfac ;_eda .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_dfac .SetContext (_eda );return _eda ;};
// VariableText contains the common attributes of a variable text.
// The VariableText is typically not used directly, but is can encapsulate by PdfField
// See section 12.7.3.3 "Variable Text" and Table 222 (pp. 434-436 PDF32000_2008).
type VariableText struct{DA *_fg .PdfObjectString ;Q *_fg .PdfObjectInteger ;DS *_fg .PdfObjectString ;RV _fg .PdfObject ;};
// ToInteger convert to an integer format.
func (_ceedb *PdfColorDeviceGray )ToInteger (bits int )uint32 {_fdaa :=_ef .Pow (2,float64 (bits ))-1;return uint32 (_fdaa *_ceedb .Val ());};func (_bcad *PdfReader )loadAction (_facg _fg .PdfObject )(*PdfAction ,error ){if _ffgb ,_efgd :=_fg .GetIndirect (_facg );
_efgd {_gegcb ,_cgac :=_bcad .newPdfActionFromIndirectObject (_ffgb );if _cgac !=nil {return nil ,_cgac ;};return _gegcb ,nil ;}else if !_fg .IsNullObject (_facg ){return nil ,_ce .New ("\u0061\u0063\u0074\u0069\u006fn\u0020\u0073\u0068\u006f\u0075\u006c\u0064\u0020\u0070\u006f\u0069\u006e\u0074 \u0074\u006f\u0020\u0061\u006e\u0020\u0069\u006e\u0064\u0069\u0072\u0065\u0063\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074");
};return nil ,nil ;};
// ToPdfObject returns colorspace in a PDF object format [name dictionary]
func (_ccdf *PdfColorspaceCalRGB )ToPdfObject ()_fg .PdfObject {_abgc :=&_fg .PdfObjectArray {};_abgc .Append (_fg .MakeName ("\u0043\u0061\u006c\u0052\u0047\u0042"));_cadf :=_fg .MakeDict ();if _ccdf .WhitePoint !=nil {_ced :=_fg .MakeArray (_fg .MakeFloat (_ccdf .WhitePoint [0]),_fg .MakeFloat (_ccdf .WhitePoint [1]),_fg .MakeFloat (_ccdf .WhitePoint [2]));
_cadf .Set ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074",_ced );}else {_aa .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 _ccdf .BlackPoint !=nil {_gac :=_fg .MakeArray (_fg .MakeFloat (_ccdf .BlackPoint [0]),_fg .MakeFloat (_ccdf .BlackPoint [1]),_fg .MakeFloat (_ccdf .BlackPoint [2]));_cadf .Set ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074",_gac );
};if _ccdf .Gamma !=nil {_gadc :=_fg .MakeArray (_fg .MakeFloat (_ccdf .Gamma [0]),_fg .MakeFloat (_ccdf .Gamma [1]),_fg .MakeFloat (_ccdf .Gamma [2]));_cadf .Set ("\u0047\u0061\u006dm\u0061",_gadc );};if _ccdf .Matrix !=nil {_gedd :=_fg .MakeArray (_fg .MakeFloat (_ccdf .Matrix [0]),_fg .MakeFloat (_ccdf .Matrix [1]),_fg .MakeFloat (_ccdf .Matrix [2]),_fg .MakeFloat (_ccdf .Matrix [3]),_fg .MakeFloat (_ccdf .Matrix [4]),_fg .MakeFloat (_ccdf .Matrix [5]),_fg .MakeFloat (_ccdf .Matrix [6]),_fg .MakeFloat (_ccdf .Matrix [7]),_fg .MakeFloat (_ccdf .Matrix [8]));
_cadf .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_gedd );};_abgc .Append (_cadf );if _ccdf ._cfcb !=nil {_ccdf ._cfcb .PdfObject =_abgc ;return _ccdf ._cfcb ;};return _abgc ;};
// SetAlpha sets the alpha layer for the image.
func (_cdafa *Image )SetAlpha (alpha []byte ){_cdafa ._gccd =alpha };
// SetXObjectFormByName adds the provided XObjectForm to the page resources.
// The added XObjectForm is identified by the specified name.
func (_aefca *PdfPageResources )SetXObjectFormByName (keyName _fg .PdfObjectName ,xform *XObjectForm )error {_cdaee :=xform .ToPdfObject ().(*_fg .PdfObjectStream );_gaffg :=_aefca .SetXObjectByName (keyName ,_cdaee );return _gaffg ;};
// ImageToRGB returns the passed in image. Method exists in order to satisfy
// the PdfColorspace interface.
func (_dcfb *PdfColorspaceDeviceRGB )ImageToRGB (img Image )(Image ,error ){return img ,nil };
// PdfActionResetForm represents a resetForm action.
type PdfActionResetForm struct{*PdfAction ;Fields _fg .PdfObject ;Flags _fg .PdfObject ;};
// PdfAnnotationTrapNet represents TrapNet annotations.
// (Section 12.5.6.21).
type PdfAnnotationTrapNet struct{*PdfAnnotation };func (_fggad *PdfReader )loadPerms ()(*Permissions ,error ){if _bfdag :=_fggad ._cgegd .Get ("\u0050\u0065\u0072m\u0073");_bfdag !=nil {if _bdeeg ,_dggg :=_fg .GetDict (_bfdag );_dggg {_fdda :=_bdeeg .Get ("\u0044\u006f\u0063\u004d\u0044\u0050");
if _fdda ==nil {return nil ,nil ;};if _adgcdg ,_efaba :=_fg .GetIndirect (_fdda );_efaba {_fcdde ,_fagag :=_fggad .newPdfSignatureFromIndirect (_adgcdg );if _fagag !=nil {return nil ,_fagag ;};return NewPermissions (_fcdde ),nil ;};return nil ,_d .Errorf ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0044\u006f\u0063M\u0044\u0050\u0020\u0065nt\u0072\u0079");
};return nil ,_d .Errorf ("\u0069\u006e\u0076\u0061li\u0064\u0020\u0050\u0065\u0072\u006d\u0073\u0020\u0065\u006e\u0074\u0072\u0079");};return nil ,nil ;};func (_bbbb *pdfFontType3 )getFontDescriptor ()*PdfFontDescriptor {return _bbbb ._cdgef };
// ColorToRGB converts a DeviceN color to an RGB color.
func (_dgcc *PdfColorspaceDeviceN )ColorToRGB (color PdfColor )(PdfColor ,error ){if _dgcc .AlternateSpace ==nil {return nil ,_ce .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 _dgcc .AlternateSpace .ColorToRGB (color );};
// PdfShadingType6 is a Coons patch mesh.
type PdfShadingType6 struct{*PdfShading ;BitsPerCoordinate *_fg .PdfObjectInteger ;BitsPerComponent *_fg .PdfObjectInteger ;BitsPerFlag *_fg .PdfObjectInteger ;Decode *_fg .PdfObjectArray ;Function []PdfFunction ;};
// NewPdfShadingType2 creates an empty shading type 2 dictionary.
func NewPdfShadingType2 ()*PdfShadingType2 {_fabbe :=&PdfShadingType2 {};_fabbe .PdfShading =&PdfShading {};_fabbe .PdfShading ._cbabf =_fg .MakeIndirectObject (_fg .MakeDict ());_fabbe .PdfShading ._bcbef =_fabbe ;return _fabbe ;};func _gcbf (_eaagc _fg .PdfObject ){_aa .Log .Debug ("\u006f\u0062\u006a\u003a\u0020\u0025\u0054\u0020\u0025\u0073",_eaagc ,_eaagc .String ());
if _cfgda ,_gbggb :=_eaagc .(*_fg .PdfObjectStream );_gbggb {_dgbd ,_ffggg :=_fg .DecodeStream (_cfgda );if _ffggg !=nil {_aa .Log .Debug ("\u0045r\u0072\u006f\u0072\u003a\u0020\u0025v",_ffggg );return ;};_aa .Log .Debug ("D\u0065\u0063\u006f\u0064\u0065\u0064\u003a\u0020\u0025\u0073",_dgbd );
}else if _ebbea ,_agadd :=_eaagc .(*_fg .PdfIndirectObject );_agadd {_aa .Log .Debug ("\u0025\u0054\u0020%\u0076",_ebbea .PdfObject ,_ebbea .PdfObject );_aa .Log .Debug ("\u0025\u0073",_ebbea .PdfObject .String ());};};func _cgef (_fafdg _fg .PdfObject )(*PdfFunctionType3 ,error ){_bafe :=&PdfFunctionType3 {};
var _ebbc *_fg .PdfObjectDictionary ;if _dgce ,_ggcda :=_fafdg .(*_fg .PdfIndirectObject );_ggcda {_cfgc ,_edfc :=_dgce .PdfObject .(*_fg .PdfObjectDictionary );if !_edfc {return nil ,_ce .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");
};_bafe ._daga =_dgce ;_ebbc =_cfgc ;}else if _dafb ,_gefga :=_fafdg .(*_fg .PdfObjectDictionary );_gefga {_ebbc =_dafb ;}else {return nil ,_ce .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_dggf ,_adee :=_fg .TraceToDirectObject (_ebbc .Get ("\u0044\u006f\u006d\u0061\u0069\u006e")).(*_fg .PdfObjectArray );
if !_adee {_aa .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_ce .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 _dggf .Len ()!=2{_aa .Log .Error ("\u0044\u006f\u006d\u0061\u0069\u006e\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");return nil ,_ce .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0064\u006f\u006da\u0069\u006e\u0020\u0072an\u0067\u0065");};_agbe ,_bbaf :=_dggf .ToFloat64Array ();
if _bbaf !=nil {return nil ,_bbaf ;};_bafe .Domain =_agbe ;_dggf ,_adee =_fg .TraceToDirectObject (_ebbc .Get ("\u0052\u0061\u006eg\u0065")).(*_fg .PdfObjectArray );if _adee {if _dggf .Len ()< 0||_dggf .Len ()%2!=0{return nil ,_ce .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0061\u006e\u0067\u0065");
};_bdgf ,_dafcd :=_dggf .ToFloat64Array ();if _dafcd !=nil {return nil ,_dafcd ;};_bafe .Range =_bdgf ;};_dggf ,_adee =_fg .TraceToDirectObject (_ebbc .Get ("\u0046u\u006e\u0063\u0074\u0069\u006f\u006es")).(*_fg .PdfObjectArray );if !_adee {_aa .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 ,_ce .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");};_bafe .Functions =[]PdfFunction {};
for _ ,_gdaa :=range _dggf .Elements (){_bcag ,_afdg :=_defgb (_gdaa );if _afdg !=nil {return nil ,_afdg ;};_bafe .Functions =append (_bafe .Functions ,_bcag );};_dggf ,_adee =_fg .TraceToDirectObject (_ebbc .Get ("\u0042\u006f\u0075\u006e\u0064\u0073")).(*_fg .PdfObjectArray );
if !_adee {_aa .Log .Error ("B\u006fu\u006e\u0064\u0073\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_ce .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");
};_adfb ,_bbaf :=_dggf .ToFloat64Array ();if _bbaf !=nil {return nil ,_bbaf ;};_bafe .Bounds =_adfb ;if len (_bafe .Bounds )!=len (_bafe .Functions )-1{_aa .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 (_bafe .Bounds ),len (_bafe .Functions ));
return nil ,_ce .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_dggf ,_adee =_fg .TraceToDirectObject (_ebbc .Get ("\u0045\u006e\u0063\u006f\u0064\u0065")).(*_fg .PdfObjectArray );if !_adee {_aa .Log .Error ("E\u006ec\u006f\u0064\u0065\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");
return nil ,_ce .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");};_cfafe ,_bbaf :=_dggf .ToFloat64Array ();
if _bbaf !=nil {return nil ,_bbaf ;};_bafe .Encode =_cfafe ;if len (_bafe .Encode )!=2*len (_bafe .Functions ){_aa .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 (_bafe .Encode ),len (_bafe .Functions ));
return nil ,_ce .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};return _bafe ,nil ;};
// StandardImplementer is an interface that defines specified PDF standards like PDF/A-1A (pdfa.Profile1A)
// NOTE: This implementation is in experimental development state.
// Keep in mind that it might change in the subsequent minor versions.
type StandardImplementer interface{StandardValidator ;StandardApplier ;
// StandardName gets the human-readable name of the standard.
StandardName ()string ;};
// ToPdfObject returns the PDF representation of the shading dictionary.
func (_cbcdc *PdfShadingType6 )ToPdfObject ()_fg .PdfObject {_cbcdc .PdfShading .ToPdfObject ();_fcfb ,_daeaa :=_cbcdc .getShadingDict ();if _daeaa !=nil {_aa .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 _cbcdc .BitsPerCoordinate !=nil {_fcfb .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065",_cbcdc .BitsPerCoordinate );};if _cbcdc .BitsPerComponent !=nil {_fcfb .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_cbcdc .BitsPerComponent );
};if _cbcdc .BitsPerFlag !=nil {_fcfb .Set ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067",_cbcdc .BitsPerFlag );};if _cbcdc .Decode !=nil {_fcfb .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_cbcdc .Decode );};if _cbcdc .Function !=nil {if len (_cbcdc .Function )==1{_fcfb .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_cbcdc .Function [0].ToPdfObject ());
}else {_gdab :=_fg .MakeArray ();for _ ,_fceb :=range _cbcdc .Function {_gdab .Append (_fceb .ToPdfObject ());};_fcfb .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_gdab );};};return _cbcdc ._cbabf ;};func _cecgc (_ggcde *_fg .PdfObjectDictionary )(*PdfTilingPattern ,error ){_afeedc :=&PdfTilingPattern {};
_bfefd :=_ggcde .Get ("\u0050a\u0069\u006e\u0074\u0054\u0079\u0070e");if _bfefd ==nil {_aa .Log .Debug ("\u0050\u0061\u0069\u006e\u0074\u0054\u0079\u0070\u0065\u0020\u006d\u0069s\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ;};_cbeaa ,_aaeeb :=_bfefd .(*_fg .PdfObjectInteger );
if !_aaeeb {_aa .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",_bfefd );return nil ,_fg .ErrTypeError ;
};_afeedc .PaintType =_cbeaa ;_bfefd =_ggcde .Get ("\u0054\u0069\u006c\u0069\u006e\u0067\u0054\u0079\u0070\u0065");if _bfefd ==nil {_aa .Log .Debug ("\u0054i\u006ci\u006e\u0067\u0054\u0079\u0070e\u0020\u006di\u0073\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ;
};_becgf ,_aaeeb :=_bfefd .(*_fg .PdfObjectInteger );if !_aaeeb {_aa .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",_bfefd );
return nil ,_fg .ErrTypeError ;};_afeedc .TilingType =_becgf ;_bfefd =_ggcde .Get ("\u0042\u0042\u006f\u0078");if _bfefd ==nil {_aa .Log .Debug ("\u0042\u0042\u006fx\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ;
};_bfefd =_fg .TraceToDirectObject (_bfefd );_bagee ,_aaeeb :=_bfefd .(*_fg .PdfObjectArray );if !_aaeeb {_aa .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",_bfefd );
return nil ,_fg .ErrTypeError ;};_dbafg ,_cggdec :=NewPdfRectangle (*_bagee );if _cggdec !=nil {_aa .Log .Debug ("\u0042\u0042\u006f\u0078\u0020\u0065\u0072\u0072\u006fr\u003a\u0020\u0025\u0076",_cggdec );return nil ,_cggdec ;};_afeedc .BBox =_dbafg ;_bfefd =_ggcde .Get ("\u0058\u0053\u0074e\u0070");
if _bfefd ==nil {_aa .Log .Debug ("\u0058\u0053\u0074\u0065\u0070\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ;};_fdcea ,_cggdec :=_fg .GetNumberAsFloat (_bfefd );if _cggdec !=nil {_aa .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",_fdcea );
return nil ,_cggdec ;};_afeedc .XStep =_fg .MakeFloat (_fdcea );_bfefd =_ggcde .Get ("\u0059\u0053\u0074e\u0070");if _bfefd ==nil {_aa .Log .Debug ("\u0059\u0053\u0074\u0065\u0070\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ;
};_agbdf ,_cggdec :=_fg .GetNumberAsFloat (_bfefd );if _cggdec !=nil {_aa .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",_agbdf );
return nil ,_cggdec ;};_afeedc .YStep =_fg .MakeFloat (_agbdf );_bfefd =_ggcde .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");if _bfefd ==nil {_aa .Log .Debug ("\u0052\u0065\u0073\u006f\u0075\u0072\u0063\u0065\u0073\u0020\u006d\u0069s\u0073\u0069\u006e\u0067");
return nil ,ErrRequiredAttributeMissing ;};_ggcde ,_aaeeb =_fg .TraceToDirectObject (_bfefd ).(*_fg .PdfObjectDictionary );if !_aaeeb {return nil ,_d .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0065\u0073\u006f\u0075\u0072\u0063e\u0020d\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u0020\u0028\u0025\u0054\u0029",_bfefd );
};_egffb ,_cggdec :=NewPdfPageResourcesFromDict (_ggcde );if _cggdec !=nil {return nil ,_cggdec ;};_afeedc .Resources =_egffb ;if _cefgg :=_ggcde .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");_cefgg !=nil {_cegag ,_dbabc :=_cefgg .(*_fg .PdfObjectArray );
if !_dbabc {_aa .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",_cefgg );return nil ,_fg .ErrTypeError ;};_afeedc .Matrix =_cegag ;};return _afeedc ,nil ;
};
// PdfFunctionType3 defines stitching of the subdomains of several 1-input functions to produce
// a single new 1-input function.
type PdfFunctionType3 struct{Domain []float64 ;Range []float64 ;Functions []PdfFunction ;Bounds []float64 ;Encode []float64 ;_daga *_fg .PdfIndirectObject ;};func _ccde (_aagge *_fg .PdfObjectDictionary )(*PdfShadingType1 ,error ){_fecfa :=PdfShadingType1 {};
if _dgcac :=_aagge .Get ("\u0044\u006f\u006d\u0061\u0069\u006e");_dgcac !=nil {_dgcac =_fg .TraceToDirectObject (_dgcac );_cbcad ,_faaedg :=_dgcac .(*_fg .PdfObjectArray );if !_faaedg {_aa .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",_dgcac );
return nil ,_ce .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_fecfa .Domain =_cbcad ;};if _dcfeb :=_aagge .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");_dcfeb !=nil {_dcfeb =_fg .TraceToDirectObject (_dcfeb );
_ddggb ,_fddbe :=_dcfeb .(*_fg .PdfObjectArray );if !_fddbe {_aa .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",_dcfeb );return nil ,_ce .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");
};_fecfa .Matrix =_ddggb ;};_fefff :=_aagge .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");if _fefff ==nil {_aa .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 ;};_fecfa .Function =[]PdfFunction {};if _cdecb ,_ecbef :=_fefff .(*_fg .PdfObjectArray );_ecbef {for _ ,_aeabbf :=range _cdecb .Elements (){_gbgbd ,_efeb :=_defgb (_aeabbf );if _efeb !=nil {_aa .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",_efeb );
return nil ,_efeb ;};_fecfa .Function =append (_fecfa .Function ,_gbgbd );};}else {_aegbc ,_bfdg :=_defgb (_fefff );if _bfdg !=nil {_aa .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",_bfdg );
return nil ,_bfdg ;};_fecfa .Function =append (_fecfa .Function ,_aegbc );};return &_fecfa ,nil ;};
// GetNumComponents returns the number of color components (1 for Separation).
func (_dbdb *PdfColorspaceSpecialSeparation )GetNumComponents ()int {return 1};
// Transform rectangle with the supplied matrix.
func (_abagb *PdfRectangle )Transform (transformMatrix _gbe .Matrix ){_abagb .Llx ,_abagb .Lly =transformMatrix .Transform (_abagb .Llx ,_abagb .Lly );_abagb .Urx ,_abagb .Ury =transformMatrix .Transform (_abagb .Urx ,_abagb .Ury );_abagb .Normalize ();
};var _dbfbeb =false ;
// 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 ;_fbbgf *_fg .PdfIndirectObject ;
// Type: Sig/DocTimeStamp
Type *_fg .PdfObjectName ;Filter *_fg .PdfObjectName ;SubFilter *_fg .PdfObjectName ;Contents *_fg .PdfObjectString ;Cert _fg .PdfObject ;ByteRange *_fg .PdfObjectArray ;Reference *_fg .PdfObjectArray ;Changes *_fg .PdfObjectArray ;Name *_fg .PdfObjectString ;
M *_fg .PdfObjectString ;Location *_fg .PdfObjectString ;Reason *_fg .PdfObjectString ;ContactInfo *_fg .PdfObjectString ;R *_fg .PdfObjectInteger ;V *_fg .PdfObjectInteger ;PropBuild *_fg .PdfObjectDictionary ;PropAuthTime *_fg .PdfObjectInteger ;PropAuthType *_fg .PdfObjectName ;
};
// ImageToRGB convert an indexed image to RGB.
func (_eacf *PdfColorspaceSpecialIndexed )ImageToRGB (img Image )(Image ,error ){N :=_eacf .Base .GetNumComponents ();if N < 1{return Image {},_d .Errorf ("\u0062\u0061d \u0062\u0061\u0073e\u0020\u0063\u006f\u006cors\u0070ac\u0065\u0020\u004e\u0075\u006d\u0043\u006fmp\u006f\u006e\u0065\u006e\u0074\u0073\u003d%\u0064",N );
};_affb :=_cc .NewImageBase (int (img .Width ),int (img .Height ),8,N ,nil ,img ._gccd ,img ._dbge );_afff :=_ade .NewReader (img .getBase ());_dbgf :=_ade .NewWriter (_affb );var (_efgg uint32 ;_gaf int ;_eagc error ;);for {_efgg ,_eagc =_afff .ReadSample ();
if _eagc ==_ff .EOF {break ;}else if _eagc !=nil {return img ,_eagc ;};_gaf =int (_efgg );_aa .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",_gaf ,N ,len (_eacf ._acce ));
if (_gaf +1)*N > len (_eacf ._acce ){_gaf =len (_eacf ._acce )/N -1;_aa .Log .Trace ("C\u006c\u0069\u0070\u0070in\u0067 \u0074\u006f\u0020\u0069\u006ed\u0065\u0078\u003a\u0020\u0025\u0064",_gaf );if _gaf < 0{_aa .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 _fafb :=_gaf *N ;_fafb < (_gaf +1)*N ;_fafb ++{if _eagc =_dbgf .WriteSample (uint32 (_eacf ._acce [_fafb ]));_eagc !=nil {return img ,_eagc ;};};};return _eacf .Base .ImageToRGB (_adad (&_affb ));};
// 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 _ff .ReadSeeker )(*PdfFont ,error ){_bggd ,_agad :=_ga .ReadAll (r );if _agad !=nil {_aa .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",_agad );
return nil ,_agad ;};_ecdfa ,_agad :=_eed .TtfParse (_cb .NewReader (_bggd ));if _agad !=nil {_aa .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",_agad );
return nil ,_agad ;};_bgbd :=&pdfCIDFontType2 {fontCommon :fontCommon {_ggcfc :"\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032"},CIDToGIDMap :_fg .MakeName ("\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079")};if len (_ecdfa .Widths )<=0{return nil ,_ce .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");
};_becfg :=1000.0/float64 (_ecdfa .UnitsPerEm );_gbedc :=_becfg *float64 (_ecdfa .Widths [0]);_cafe :=make (map[rune ]int );_bfdea :=make (map[_eed .GID ]int );_fcbc :=_eed .GID (len (_ecdfa .Widths ));for _ebfaa ,_ccef :=range _ecdfa .Chars {if _ccef > _fcbc -1{continue ;
};_fccf :=int (_becfg *float64 (_ecdfa .Widths [_ccef ]));_cafe [_ebfaa ]=_fccf ;_bfdea [_ccef ]=_fccf ;};_bgbd ._ebda =_cafe ;_bgbd .DW =_fg .MakeInteger (int64 (_gbedc ));_cbagg :=_fffd (_bfdea ,uint16 (_fcbc ));_bgbd .W =_fg .MakeIndirectObject (_cbagg );
_ggdf :=_fg .MakeDict ();_ggdf .Set ("\u004f\u0072\u0064\u0065\u0072\u0069\u006e\u0067",_fg .MakeString ("\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079"));_ggdf .Set ("\u0052\u0065\u0067\u0069\u0073\u0074\u0072\u0079",_fg .MakeString ("\u0041\u0064\u006fb\u0065"));
_ggdf .Set ("\u0053\u0075\u0070\u0070\u006c\u0065\u006d\u0065\u006e\u0074",_fg .MakeInteger (0));_bgbd .CIDSystemInfo =_ggdf ;_bgfb :=&PdfFontDescriptor {FontName :_fg .MakeName (_ecdfa .PostScriptName ),Ascent :_fg .MakeFloat (_becfg *float64 (_ecdfa .TypoAscender )),Descent :_fg .MakeFloat (_becfg *float64 (_ecdfa .TypoDescender )),CapHeight :_fg .MakeFloat (_becfg *float64 (_ecdfa .CapHeight )),FontBBox :_fg .MakeArrayFromFloats ([]float64 {_becfg *float64 (_ecdfa .Xmin ),_becfg *float64 (_ecdfa .Ymin ),_becfg *float64 (_ecdfa .Xmax ),_becfg *float64 (_ecdfa .Ymax )}),ItalicAngle :_fg .MakeFloat (_ecdfa .ItalicAngle ),MissingWidth :_fg .MakeFloat (_gbedc )};
_fefe ,_agad :=_fg .MakeStream (_bggd ,_fg .NewFlateEncoder ());if _agad !=nil {_aa .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",_agad );
return nil ,_agad ;};_fefe .PdfObjectDictionary .Set ("\u004ce\u006e\u0067\u0074\u0068\u0031",_fg .MakeInteger (int64 (len (_bggd ))));_bgfb .FontFile2 =_fefe ;if _ecdfa .Bold {_bgfb .StemV =_fg .MakeInteger (120);}else {_bgfb .StemV =_fg .MakeInteger (70);
};_fecb :=_dbbc ;if _ecdfa .IsFixedPitch {_fecb |=_aeada ;};if _ecdfa .ItalicAngle !=0{_fecb |=_aedcf ;};_bgfb .Flags =_fg .MakeInteger (int64 (_fecb ));_bgbd ._aefg =_ecdfa .PostScriptName ;_bgbd ._cdgef =_bgfb ;_gabce :=pdfFontType0 {fontCommon :fontCommon {_ggcfc :"\u0054\u0079\u0070e\u0030",_aefg :_ecdfa .PostScriptName },DescendantFont :&PdfFont {_gcaeff :_bgbd },Encoding :_fg .MakeName ("\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079\u002d\u0048"),_bcacf :_ecdfa .NewEncoder ()};
if len (_ecdfa .Chars )> 0{_edfeg :=make (map[_fc .CharCode ]rune ,len (_ecdfa .Chars ));for _cffgdb ,_egeg :=range _ecdfa .Chars {_begf :=_fc .CharCode (_egeg );if _bcbcb ,_gfaaf :=_edfeg [_begf ];!_gfaaf ||(_gfaaf &&_bcbcb > _cffgdb ){_edfeg [_begf ]=_cffgdb ;
};};_gabce ._agab =_fc .NewToUnicodeCMap (_edfeg );};_dba :=PdfFont {_gcaeff :&_gabce };return &_dba ,nil ;};
// XObjectForm (Table 95 in 8.10.2).
type XObjectForm struct{Filter _fg .StreamEncoder ;FormType _fg .PdfObject ;BBox _fg .PdfObject ;Matrix _fg .PdfObject ;Resources *PdfPageResources ;Group _fg .PdfObject ;Ref _fg .PdfObject ;MetaData _fg .PdfObject ;PieceInfo _fg .PdfObject ;LastModified _fg .PdfObject ;
StructParent _fg .PdfObject ;StructParents _fg .PdfObject ;OPI _fg .PdfObject ;OC _fg .PdfObject ;Name _fg .PdfObject ;
// Stream data.
Stream []byte ;_bdage *_fg .PdfObjectStream ;};
// GetContainingPdfObject implements interface PdfModel.
func (_ccccf *Permissions )GetContainingPdfObject ()_fg .PdfObject {return _ccccf ._gdfff };func (_gdac fontCommon )asPdfObjectDictionary (_cgbg string )*_fg .PdfObjectDictionary {if _cgbg !=""&&_gdac ._ggcfc !=""&&_cgbg !=_gdac ._ggcfc {_aa .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",_cgbg ,_gdac );
}else if _cgbg ==""&&_gdac ._ggcfc ==""{_aa .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",_gdac );
}else if _gdac ._ggcfc ==""{_gdac ._ggcfc =_cgbg ;};_dccd :=_fg .MakeDict ();_dccd .Set ("\u0054\u0079\u0070\u0065",_fg .MakeName ("\u0046\u006f\u006e\u0074"));_dccd .Set ("\u0042\u0061\u0073\u0065\u0046\u006f\u006e\u0074",_fg .MakeName (_gdac ._aefg ));
_dccd .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fg .MakeName (_gdac ._ggcfc ));if _gdac ._cdgef !=nil {_dccd .Set ("\u0046\u006f\u006e\u0074\u0044\u0065\u0073\u0063\u0072i\u0070\u0074\u006f\u0072",_gdac ._cdgef .ToPdfObject ());};if _gdac ._eggb !=nil {_dccd .Set ("\u0054o\u0055\u006e\u0069\u0063\u006f\u0064e",_gdac ._eggb );
}else if _gdac ._agab !=nil {_afcae ,_ffgd :=_gdac ._agab .Stream ();if _ffgd !=nil {_aa .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",_ffgd );
}else {_dccd .Set ("\u0054o\u0055\u006e\u0069\u0063\u006f\u0064e",_afcae );};};return _dccd ;};
// DecodeArray returns an empty slice as there are no components associated with pattern colorspace.
func (_debd *PdfColorspaceSpecialPattern )DecodeArray ()[]float64 {return []float64 {}};
// ColorFromPdfObjects returns a new PdfColor based on the input slice of color
// components. The slice should contain a single PdfObjectFloat element.
func (_gaecd *PdfColorspaceSpecialIndexed )ColorFromPdfObjects (objects []_fg .PdfObject )(PdfColor ,error ){if len (objects )!=1{return nil ,_ce .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_cgfb ,_deef :=_fg .GetNumbersAsFloat (objects );
if _deef !=nil {return nil ,_deef ;};return _gaecd .ColorFromFloats (_cgfb );};func (_fgbgea *PdfWriter )optimizeDocument ()error {if _fgbgea ._effb ==nil {return nil ;};_afafc ,_cgcca :=_fg .GetDict (_fgbgea ._deabg );if !_cgcca {return _ce .New ("\u0061\u006e\u0020in\u0066\u006f\u0020\u006f\u0062\u006a\u0065\u0063\u0074 \u0069s\u0020n\u006ft\u0020\u0061\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079");
};_accb :=_dab .Document {ID :[2]string {_fgbgea ._deeab ,_fgbgea ._ccccb },Version :_fgbgea ._fbbec ,Objects :_fgbgea ._bbfd ,Info :_afafc ,Crypt :_fgbgea ._bbdbd ,UseHashBasedID :_fgbgea ._gaaaab };if _cdbcd :=_fgbgea ._effb .ApplyStandard (&_accb );
_cdbcd !=nil {return _cdbcd ;};_fgbgea ._deeab ,_fgbgea ._ccccb =_accb .ID [0],_accb .ID [1];_fgbgea ._fbbec =_accb .Version ;_fgbgea ._bbfd =_accb .Objects ;_fgbgea ._deabg .PdfObject =_accb .Info ;_fgbgea ._gaaaab =_accb .UseHashBasedID ;_fgbgea ._bbdbd =_accb .Crypt ;
_gfgd :=make (map[_fg .PdfObject ]struct{},len (_fgbgea ._bbfd ));for _ ,_bebcg :=range _fgbgea ._bbfd {_gfgd [_bebcg ]=struct{}{};};_fgbgea ._gcbec =_gfgd ;return nil ;};
// NewPdfActionGoToE returns a new "go to embedded" action.
func NewPdfActionGoToE ()*PdfActionGoToE {_dd :=NewPdfAction ();_acd :=&PdfActionGoToE {};_acd .PdfAction =_dd ;_dd .SetContext (_acd );return _acd ;};
// 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 (_ecad *PdfFont )RunesToCharcodeBytes (data []rune )([]byte ,int ){var _cdbe []_dg .TextEncoder ;var _edeb _dg .CMapEncoder ;if _eefdf :=_ecad .baseFields ()._agab ;_eefdf !=nil {_edeb =_dg .NewCMapEncoder ("",nil ,_eefdf );};_gbgc :=_ecad .Encoder ();
if _gbgc !=nil {switch _efdf :=_gbgc .(type ){case _dg .SimpleEncoder :_eacd :=_efdf .BaseName ();if _ ,_gafd :=_cgdb [_eacd ];_gafd {_cdbe =append (_cdbe ,_gbgc );};};};if len (_cdbe )==0{if _ecad .baseFields ()._agab !=nil {_cdbe =append (_cdbe ,_edeb );
};if _gbgc !=nil {_cdbe =append (_cdbe ,_gbgc );};};var _edgf _cb .Buffer ;var _cgcbg int ;for _ ,_dddd :=range data {var _edgfd bool ;for _ ,_edgb :=range _cdbe {if _bgaf :=_edgb .Encode (string (_dddd ));len (_bgaf )> 0{_edgf .Write (_bgaf );_edgfd =true ;
break ;};};if !_edgfd {_aa .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",_dddd );
_cgcbg ++;};};if _cgcbg !=0{_aa .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 ),_cgcbg ,_ecad ,_cdbe );
};return _edgf .Bytes (),_cgcbg ;};func (_cef *PdfColorspaceDeviceGray )String ()string {return "\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079";};
// ToGray returns a PdfColorDeviceGray color based on the current RGB color.
func (_gbca *PdfColorDeviceRGB )ToGray ()*PdfColorDeviceGray {_bdbe :=0.3*_gbca .R ()+0.59*_gbca .G ()+0.11*_gbca .B ();_bdbe =_ef .Min (_ef .Max (_bdbe ,0.0),1.0);return NewPdfColorDeviceGray (_bdbe );};
// PdfColorCalGray represents a CalGray colorspace.
type PdfColorCalGray float64 ;
// GetCharMetrics returns the character metrics for the specified character code. A bool flag is
// returned to indicate whether or not the entry was found in the glyph to charcode mapping.
// How it works:
// 1) Return a value the /Widths array (charWidths) if there is one.
// 2) If the font has the same name as a standard 14 font then return width=250.
// 3) Otherwise return no match and let the caller substitute a default.
func (_cafdg pdfFontSimple )GetCharMetrics (code _dg .CharCode )(_eed .CharMetrics ,bool ){if _cedg ,_aeggb :=_cafdg ._fcgbd [code ];_aeggb {return _eed .CharMetrics {Wx :_cedg },true ;};if _eed .IsStdFont (_eed .StdFontName (_cafdg ._aefg )){return _eed .CharMetrics {Wx :250},true ;
};return _eed .CharMetrics {},false ;};func (_abe *PdfReader )newPdfAnnotation3DFromDict (_ecfbe *_fg .PdfObjectDictionary )(*PdfAnnotation3D ,error ){_bae :=PdfAnnotation3D {};_bae .T3DD =_ecfbe .Get ("\u0033\u0044\u0044");_bae .T3DV =_ecfbe .Get ("\u0033\u0044\u0056");
_bae .T3DA =_ecfbe .Get ("\u0033\u0044\u0041");_bae .T3DI =_ecfbe .Get ("\u0033\u0044\u0049");_bae .T3DB =_ecfbe .Get ("\u0033\u0044\u0042");return &_bae ,nil ;};func (_bbgdd *XObjectImage )getParamsDict ()*_fg .PdfObjectDictionary {_adcac :=_fg .MakeDict ();
_adcac .Set ("\u0057\u0069\u0064t\u0068",_fg .MakeInteger (*_bbgdd .Width ));_adcac .Set ("\u0048\u0065\u0069\u0067\u0068\u0074",_fg .MakeInteger (*_bbgdd .Height ));_adcac .Set ("\u0043o\u006co\u0072\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074\u0073",_fg .MakeInteger (int64 (_bbgdd .ColorSpace .GetNumComponents ())));
_adcac .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_fg .MakeInteger (*_bbgdd .BitsPerComponent ));return _adcac ;};
// PdfAnnotationStamp represents Stamp annotations.
// (Section 12.5.6.12).
type PdfAnnotationStamp struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Name _fg .PdfObject ;};
// GetXObjectImageByName returns the XObjectImage with the specified name from the
// page resources, if it exists.
func (_fgabd *PdfPageResources )GetXObjectImageByName (keyName _fg .PdfObjectName )(*XObjectImage ,error ){_cbbedd ,_efcfe :=_fgabd .GetXObjectByName (keyName );if _cbbedd ==nil {return nil ,nil ;};if _efcfe !=XObjectTypeImage {return nil ,_ce .New ("\u006e\u006f\u0074 \u0061\u006e\u0020\u0069\u006d\u0061\u0067\u0065");
};_ffade ,_gbebd :=NewXObjectImageFromStream (_cbbedd );if _gbebd !=nil {return nil ,_gbebd ;};return _ffade ,nil ;};
// WriteString outputs the object as it is to be written to file.
func (_ceedg *pdfSignDictionary )WriteString ()string {_ceedg ._afade =0;_ceedg ._accg =0;_ceedg ._aegfb =0;_ceedg ._ecdgb =0;_ecefc :=_cb .NewBuffer (nil );_ecefc .WriteString ("\u003c\u003c");for _ ,_fadg :=range _ceedg .Keys (){_gdace :=_ceedg .Get (_fadg );
switch _fadg {case "\u0042y\u0074\u0065\u0052\u0061\u006e\u0067e":_ecefc .WriteString (_fadg .WriteString ());_ecefc .WriteString ("\u0020");_ceedg ._aegfb =_ecefc .Len ();_ecefc .WriteString (_gdace .WriteString ());_ecefc .WriteString ("\u0020");_ceedg ._ecdgb =_ecefc .Len ()-1;
case "\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073":_ecefc .WriteString (_fadg .WriteString ());_ecefc .WriteString ("\u0020");_ceedg ._afade =_ecefc .Len ();_ecefc .WriteString (_gdace .WriteString ());_ecefc .WriteString ("\u0020");_ceedg ._accg =_ecefc .Len ()-1;
default:_ecefc .WriteString (_fadg .WriteString ());_ecefc .WriteString ("\u0020");_ecefc .WriteString (_gdace .WriteString ());};};_ecefc .WriteString ("\u003e\u003e");return _ecefc .String ();};
// GetContainingPdfObject returns the container of the image object (indirect object).
func (_gdcb *XObjectImage )GetContainingPdfObject ()_fg .PdfObject {return _gdcb ._eafbc };
// GetContainingPdfObject returns the container of the PdfAcroForm (indirect object).
func (_bffa *PdfAcroForm )GetContainingPdfObject ()_fg .PdfObject {return _bffa ._daca };
// PdfActionMovie represents a movie action.
type PdfActionMovie struct{*PdfAction ;Annotation _fg .PdfObject ;T _fg .PdfObject ;Operation _fg .PdfObject ;};func (_degcd *PdfWriter )writeDocumentVersion (){if _degcd ._cdafg {_degcd .writeString ("\u000a");}else {_degcd .writeString (_d .Sprintf ("\u0025\u0025\u0050D\u0046\u002d\u0025\u0064\u002e\u0025\u0064\u000a",_degcd ._fbbec .Major ,_degcd ._fbbec .Minor ));
_degcd .writeString ("\u0025\u00e2\u00e3\u00cf\u00d3\u000a");};};
// ToInteger convert to an integer format.
func (_ffd *PdfColorDeviceCMYK )ToInteger (bits int )[4]uint32 {_egdd :=_ef .Pow (2,float64 (bits ))-1;return [4]uint32 {uint32 (_egdd *_ffd .C ()),uint32 (_egdd *_ffd .M ()),uint32 (_egdd *_ffd .Y ()),uint32 (_egdd *_ffd .K ())};};
// XObjectType represents the type of an XObject.
type XObjectType int ;
// GetNumComponents returns the number of color components (4 for CMYK32).
func (_ceadc *PdfColorDeviceCMYK )GetNumComponents ()int {return 4};var _ pdfFont =(*pdfFontSimple )(nil );
// NewPdfField returns an initialized PdfField.
func NewPdfField ()*PdfField {return &PdfField {_daecc :_fg .MakeIndirectObject (_fg .MakeDict ())}};
// SetReason sets the `Reason` field of the signature.
func (_bfgaf *PdfSignature )SetReason (reason string ){_bfgaf .Reason =_fg .MakeString (reason )};
// 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 ;_gccd []byte ;_dbge []float64 ;};func (_gfb *PdfReader )newPdfActionLaunchFromDict (_gfed *_fg .PdfObjectDictionary )(*PdfActionLaunch ,error ){_cce ,_dfg :=_ddd (_gfed .Get ("\u0046"));
if _dfg !=nil {return nil ,_dfg ;};return &PdfActionLaunch {Win :_gfed .Get ("\u0057\u0069\u006e"),Mac :_gfed .Get ("\u004d\u0061\u0063"),Unix :_gfed .Get ("\u0055\u006e\u0069\u0078"),NewWindow :_gfed .Get ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw"),F :_cce },nil ;
};
// G returns the value of the green component of the color.
func (_gece *PdfColorDeviceRGB )G ()float64 {return _gece [1]};func (_eeada *PdfWriter )checkCrossReferenceStream ()bool {_ggcgge :=_eeada ._fbbec .Major > 1||(_eeada ._fbbec .Major ==1&&_eeada ._fbbec .Minor > 4);if _eeada ._gefag !=nil {_ggcgge =*_eeada ._gefag ;
};return _ggcgge ;};
// 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 (_gabc *PdfFont )SubsetRegistered ()error {switch _fgca :=_gabc ._gcaeff .(type ){case *pdfFontType0 :_cebg :=_fgca .subsetRegistered ();if _cebg !=nil {_aa .Log .Debug ("\u0053\u0075b\u0073\u0065\u0074 \u0065\u0072\u0072\u006f\u0072\u003a\u0020\u0025\u0076",_cebg );
return _cebg ;};if _fgca ._cgacd !=nil {if _fgca ._bcacf !=nil {_fgca ._bcacf .ToPdfObject ();};_fgca .ToPdfObject ();};default:_aa .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",_fgca );
};return nil ;};
// ToPdfObject converts date to a PDF string object.
func (_cgcab *PdfDate )ToPdfObject ()_fg .PdfObject {_adcgf :=_d .Sprintf ("\u0044\u003a\u0025\u002e\u0034\u0064\u0025\u002e\u0032\u0064\u0025\u002e\u0032\u0064\u0025\u002e\u0032\u0064\u0025\u002e\u0032\u0064\u0025\u002e2\u0064\u0025\u0063\u0025\u002e2\u0064\u0027%\u002e\u0032\u0064\u0027",_cgcab ._fddef ,_cgcab ._agbab ,_cgcab ._adaba ,_cgcab ._bedbf ,_cgcab ._fgdec ,_cgcab ._cfebe ,_cgcab ._ebdc ,_cgcab ._eedgc ,_cgcab ._gfcga );
return _fg .MakeString (_adcgf );};
// Encoder returns the font's text encoder.
func (_cffa *PdfFont )Encoder ()_dg .TextEncoder {_ggea :=_cffa .actualFont ();if _ggea ==nil {_aa .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",_cffa ._gcaeff );
return nil ;};return _ggea .Encoder ();};func _egcg (_edc *PdfPage )map[_fg .PdfObjectName ]_fg .PdfObject {_fagb :=make (map[_fg .PdfObjectName ]_fg .PdfObject );if _edc .Resources ==nil {return _fagb ;};if _edc .Resources .Font !=nil {if _aafe ,_ede :=_fg .GetDict (_edc .Resources .Font );
_ede {for _ ,_ddda :=range _aafe .Keys (){_fagb [_ddda ]=_aafe .Get (_ddda );};};};if _edc .Resources .ExtGState !=nil {if _fbfd ,_cfga :=_fg .GetDict (_edc .Resources .ExtGState );_cfga {for _ ,_ggeba :=range _fbfd .Keys (){_fagb [_ggeba ]=_fbfd .Get (_ggeba );
};};};if _edc .Resources .XObject !=nil {if _faeab ,_egfe :=_fg .GetDict (_edc .Resources .XObject );_egfe {for _ ,_beea :=range _faeab .Keys (){_fagb [_beea ]=_faeab .Get (_beea );};};};if _edc .Resources .Pattern !=nil {if _adab ,_gabb :=_fg .GetDict (_edc .Resources .Pattern );
_gabb {for _ ,_fdcg :=range _adab .Keys (){_fagb [_fdcg ]=_adab .Get (_fdcg );};};};if _edc .Resources .Shading !=nil {if _aeff ,_abda :=_fg .GetDict (_edc .Resources .Shading );_abda {for _ ,_egcf :=range _aeff .Keys (){_fagb [_egcf ]=_aeff .Get (_egcf );
};};};if _edc .Resources .ProcSet !=nil {if _aaeb ,_gbdb :=_fg .GetDict (_edc .Resources .ProcSet );_gbdb {for _ ,_cffg :=range _aaeb .Keys (){_fagb [_cffg ]=_aaeb .Get (_cffg );};};};if _edc .Resources .Properties !=nil {if _bfaaf ,_cfdc :=_fg .GetDict (_edc .Resources .Properties );
_cfdc {for _ ,_gceg :=range _bfaaf .Keys (){_fagb [_gceg ]=_bfaaf .Get (_gceg );};};};return _fagb ;};
// NewPdfShadingPatternType3 creates an empty shading pattern type 3 object.
func NewPdfShadingPatternType3 ()*PdfShadingPatternType3 {_daafc :=&PdfShadingPatternType3 {};_daafc .Matrix =_fg .MakeArrayFromIntegers ([]int {1,0,0,1,0,0});_daafc .PdfPattern =&PdfPattern {};_daafc .PdfPattern .PatternType =int64 (*_fg .MakeInteger (2));
_daafc .PdfPattern ._ccdc =_daafc ;_daafc .PdfPattern ._gaac =_fg .MakeIndirectObject (_fg .MakeDict ());return _daafc ;};
// SetSubtype sets the Subtype S for given PdfOutputIntent.
func (_cggb *PdfOutputIntent )SetSubtype (subtype PdfOutputIntentType )error {if !subtype .IsValid (){return _ce .New ("\u0070\u0072o\u0076\u0069\u0064\u0065d\u0020\u0069n\u0076\u0061\u006c\u0069\u0064\u0020\u004f\u0075t\u0070\u0075\u0074\u0049\u006e\u0074\u0065\u006e\u0074\u0020\u0053\u0075b\u0054\u0079\u0070\u0065");
};_cggb .S =subtype ;return nil ;};func _eeceb (_dafcg _fg .PdfObject )(*PdfFontDescriptor ,error ){_aedaf :=&PdfFontDescriptor {};_dafcg =_fg .ResolveReference (_dafcg );if _bcec ,_defff :=_dafcg .(*_fg .PdfIndirectObject );_defff {_aedaf ._cgcdc =_bcec ;
_dafcg =_bcec .PdfObject ;};_deece ,_feba :=_fg .GetDict (_dafcg );if !_feba {_aa .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",_dafcg );
return nil ,_fg .ErrTypeError ;};if _ccbg :=_deece .Get ("\u0046\u006f\u006e\u0074\u004e\u0061\u006d\u0065");_ccbg !=nil {_aedaf .FontName =_ccbg ;}else {_aa .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");
};_cebea ,_ :=_fg .GetName (_aedaf .FontName );if _afgb :=_deece .Get ("\u0054\u0079\u0070\u0065");_afgb !=nil {_bddaag ,_acefg :=_afgb .(*_fg .PdfObjectName );if !_acefg ||string (*_bddaag )!="\u0046\u006f\u006e\u0074\u0044\u0065\u0073\u0063\u0072i\u0070\u0074\u006f\u0072"{_aa .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",_afgb ,_cebea ,_aedaf .FontName );
};}else {_aa .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",_cebea ,_aedaf .FontName );
};_aedaf .FontFamily =_deece .Get ("\u0046\u006f\u006e\u0074\u0046\u0061\u006d\u0069\u006c\u0079");_aedaf .FontStretch =_deece .Get ("F\u006f\u006e\u0074\u0053\u0074\u0072\u0065\u0074\u0063\u0068");_aedaf .FontWeight =_deece .Get ("\u0046\u006f\u006e\u0074\u0057\u0065\u0069\u0067\u0068\u0074");
_aedaf .Flags =_deece .Get ("\u0046\u006c\u0061g\u0073");_aedaf .FontBBox =_deece .Get ("\u0046\u006f\u006e\u0074\u0042\u0042\u006f\u0078");_aedaf .ItalicAngle =_deece .Get ("I\u0074\u0061\u006c\u0069\u0063\u0041\u006e\u0067\u006c\u0065");_aedaf .Ascent =_deece .Get ("\u0041\u0073\u0063\u0065\u006e\u0074");
_aedaf .Descent =_deece .Get ("\u0044e\u0073\u0063\u0065\u006e\u0074");_aedaf .Leading =_deece .Get ("\u004ce\u0061\u0064\u0069\u006e\u0067");_aedaf .CapHeight =_deece .Get ("\u0043a\u0070\u0048\u0065\u0069\u0067\u0068t");_aedaf .XHeight =_deece .Get ("\u0058H\u0065\u0069\u0067\u0068\u0074");
_aedaf .StemV =_deece .Get ("\u0053\u0074\u0065m\u0056");_aedaf .StemH =_deece .Get ("\u0053\u0074\u0065m\u0048");_aedaf .AvgWidth =_deece .Get ("\u0041\u0076\u0067\u0057\u0069\u0064\u0074\u0068");_aedaf .MaxWidth =_deece .Get ("\u004d\u0061\u0078\u0057\u0069\u0064\u0074\u0068");
_aedaf .MissingWidth =_deece .Get ("\u004d\u0069\u0073s\u0069\u006e\u0067\u0057\u0069\u0064\u0074\u0068");_aedaf .FontFile =_deece .Get ("\u0046\u006f\u006e\u0074\u0046\u0069\u006c\u0065");_aedaf .FontFile2 =_deece .Get ("\u0046o\u006e\u0074\u0046\u0069\u006c\u00652");
_aedaf .FontFile3 =_deece .Get ("\u0046o\u006e\u0074\u0046\u0069\u006c\u00653");_aedaf .CharSet =_deece .Get ("\u0043h\u0061\u0072\u0053\u0065\u0074");_aedaf .Style =_deece .Get ("\u0053\u0074\u0079l\u0065");_aedaf .Lang =_deece .Get ("\u004c\u0061\u006e\u0067");
_aedaf .FD =_deece .Get ("\u0046\u0044");_aedaf .CIDSet =_deece .Get ("\u0043\u0049\u0044\u0053\u0065\u0074");if _aedaf .Flags !=nil {if _dede ,_cccb :=_fg .GetIntVal (_aedaf .Flags );_cccb {_aedaf ._gbeff =_dede ;};};if _aedaf .MissingWidth !=nil {if _gacc ,_fbbdb :=_fg .GetNumberAsFloat (_aedaf .MissingWidth );
_fbbdb ==nil {_aedaf ._gbbgb =_gacc ;};};if _aedaf .FontFile !=nil {_gfaa ,_fcfe :=_badbc (_aedaf .FontFile );if _fcfe !=nil {return _aedaf ,_fcfe ;};_aa .Log .Trace ("f\u006f\u006e\u0074\u0046\u0069\u006c\u0065\u003d\u0025\u0073",_gfaa );_aedaf .fontFile =_gfaa ;
};if _aedaf .FontFile2 !=nil {_bcdeb ,_ecdbf :=_eed .NewFontFile2FromPdfObject (_aedaf .FontFile2 );if _ecdbf !=nil {return _aedaf ,_ecdbf ;};_aa .Log .Trace ("\u0066\u006f\u006et\u0046\u0069\u006c\u0065\u0032\u003d\u0025\u0073",_bcdeb .String ());_aedaf ._bbbd =&_bcdeb ;
};return _aedaf ,nil ;};func (_fdedc *LTV )enable (_ebfdd ,_bebdg []*_ge .Certificate ,_fecd string )error {_eccbf ,_abcc ,_cbbbc :=_fdedc .buildCertChain (_ebfdd ,_bebdg );if _cbbbc !=nil {return _cbbbc ;};_fdeb ,_cbbbc :=_fdedc .getCerts (_eccbf );if _cbbbc !=nil {return _cbbbc ;
};var _bdeb ,_fdfe [][]byte ;if _fdedc .OCSPClient !=nil {_bdeb ,_cbbbc =_fdedc .getOCSPs (_eccbf ,_abcc );if _cbbbc !=nil {return _cbbbc ;};};if _fdedc .CRLClient !=nil {_fdfe ,_cbbbc =_fdedc .getCRLs (_eccbf );if _cbbbc !=nil {return _cbbbc ;};};_acdf :=_fdedc ._ebbe ;
_acbcc ,_cbbbc :=_acdf .AddCerts (_fdeb );if _cbbbc !=nil {return _cbbbc ;};_dceb ,_cbbbc :=_acdf .AddOCSPs (_bdeb );if _cbbbc !=nil {return _cbbbc ;};_dadgf ,_cbbbc :=_acdf .AddCRLs (_fdfe );if _cbbbc !=nil {return _cbbbc ;};if _fecd !=""{_acdf .VRI [_fecd ]=&VRI {Cert :_acbcc ,OCSP :_dceb ,CRL :_dadgf };
};_fdedc ._edgba .SetDSS (_acdf );return nil ;};func (_daefg *PdfWriter )flushWriter ()error {if _daefg ._adgac ==nil {_daefg ._adgac =_daefg ._dbdde .Flush ();};return _daefg ._adgac ;};
// SetPdfModifiedDate sets the ModDate attribute of the output PDF.
func SetPdfModifiedDate (modifiedDate _g .Time ){_baacg .Lock ();defer _baacg .Unlock ();_fbefe =modifiedDate ;};
// PdfActionGoTo3DView represents a GoTo3DView action.
type PdfActionGoTo3DView struct{*PdfAction ;TA _fg .PdfObject ;V _fg .PdfObject ;};
// ToPdfObject implements interface PdfModel.
func (_cfcca *PdfAnnotationWidget )ToPdfObject ()_fg .PdfObject {_cfcca .PdfAnnotation .ToPdfObject ();_cfdd :=_cfcca ._agb ;_acfee :=_cfdd .PdfObject .(*_fg .PdfObjectDictionary );if _cfcca ._db {return _cfdd ;};_cfcca ._db =true ;_acfee .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fg .MakeName ("\u0057\u0069\u0064\u0067\u0065\u0074"));
_acfee .SetIfNotNil ("\u0048",_cfcca .H );_acfee .SetIfNotNil ("\u004d\u004b",_cfcca .MK );_acfee .SetIfNotNil ("\u0041",_cfcca .A );_acfee .SetIfNotNil ("\u0041\u0041",_cfcca .AA );_acfee .SetIfNotNil ("\u0042\u0053",_cfcca .BS );_dabf :=_cfcca .Parent ;
if _cfcca ._ddcc !=nil {if _cfcca ._ddcc ._daecc ==_cfcca ._agb {_cfcca ._ddcc .ToPdfObject ();};_dabf =_cfcca ._ddcc .GetContainingPdfObject ();};if _dabf !=_cfdd {_acfee .SetIfNotNil ("\u0050\u0061\u0072\u0065\u006e\u0074",_dabf );};_cfcca ._db =false ;
return _cfdd ;};func (_aeaea *PdfWriter )writeOutputIntents ()error {if len (_aeaea ._adgga )==0{return nil ;};_fcbcd :=make ([]_fg .PdfObject ,len (_aeaea ._adgga ));for _bccac ,_gfcaf :=range _aeaea ._adgga {_bfgc :=_gfcaf .ToPdfObject ();_fcbcd [_bccac ]=_fg .MakeIndirectObject (_bfgc );
};_begef :=_fg .MakeIndirectObject (_fg .MakeArray (_fcbcd ...));_aeaea ._cgacf .Set ("\u004f\u0075\u0074\u0070\u0075\u0074\u0049\u006e\u0074\u0065\u006e\u0074\u0073",_begef );if _cffad :=_aeaea .addObjects (_begef );_cffad !=nil {return _cffad ;};return nil ;
};func (_cccaa *PdfWriter )writeString (_cdgea string ){if _cccaa ._adgac !=nil {return ;};_dcdegb ,_dcagc :=_cccaa ._dbdde .WriteString (_cdgea );_cccaa ._fcgga +=int64 (_dcdegb );_cccaa ._adgac =_dcagc ;};func (_ecca *PdfReader )newPdfActionMovieFromDict (_gbcd *_fg .PdfObjectDictionary )(*PdfActionMovie ,error ){return &PdfActionMovie {Annotation :_gbcd .Get ("\u0041\u006e\u006e\u006f\u0074\u0061\u0074\u0069\u006f\u006e"),T :_gbcd .Get ("\u0054"),Operation :_gbcd .Get ("\u004fp\u0065\u0072\u0061\u0074\u0069\u006fn")},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 (_ddgde *PdfPageResources )AddExtGState (gsName _fg .PdfObjectName ,gsDict _fg .PdfObject )error {if _ddgde .ExtGState ==nil {_ddgde .ExtGState =_fg .MakeDict ();};_gbagbc :=_ddgde .ExtGState ;_fbegd ,_abecg :=_fg .TraceToDirectObject (_gbagbc ).(*_fg .PdfObjectDictionary );
if !_abecg {_aa .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",_gbagbc ,_fg .TraceToDirectObject (_gbagbc ));
return _fg .ErrTypeError ;};_fbegd .Set (gsName ,gsDict );return nil ;};
// SetFontByName sets the font specified by keyName to the given object.
func (_acfgd *PdfPageResources )SetFontByName (keyName _fg .PdfObjectName ,obj _fg .PdfObject )error {if _acfgd .Font ==nil {_acfgd .Font =_fg .MakeDict ();};_cbgba ,_feafd :=_fg .TraceToDirectObject (_acfgd .Font ).(*_fg .PdfObjectDictionary );if !_feafd {_aa .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",_fg .TraceToDirectObject (_acfgd .Font ));
return _fg .ErrTypeError ;};_cbgba .Set (keyName ,obj );return nil ;};
// ToPdfObject converts the PdfFont object to its PDF representation.
func (_agdg *PdfFont )ToPdfObject ()_fg .PdfObject {if _agdg ._gcaeff ==nil {_aa .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 _fg .MakeNull ();
};return _agdg ._gcaeff .ToPdfObject ();};
// NewPdfActionThread returns a new "thread" action.
func NewPdfActionThread ()*PdfActionThread {_gg :=NewPdfAction ();_edd :=&PdfActionThread {};_edd .PdfAction =_gg ;_gg .SetContext (_edd );return _edd ;};
// PdfColorspaceDeviceGray represents a grayscale colorspace.
type PdfColorspaceDeviceGray struct{};func (_fgg *PdfReader )newPdfAnnotationSquigglyFromDict (_eegc *_fg .PdfObjectDictionary )(*PdfAnnotationSquiggly ,error ){_ddbd :=PdfAnnotationSquiggly {};_fdde ,_bebe :=_fgg .newPdfAnnotationMarkupFromDict (_eegc );
if _bebe !=nil {return nil ,_bebe ;};_ddbd .PdfAnnotationMarkup =_fdde ;_ddbd .QuadPoints =_eegc .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");return &_ddbd ,nil ;};
// NewXObjectForm creates a brand new XObject Form. Creates a new underlying PDF object stream primitive.
func NewXObjectForm ()*XObjectForm {_geeae :=&XObjectForm {};_bfbgf :=&_fg .PdfObjectStream {};_bfbgf .PdfObjectDictionary =_fg .MakeDict ();_geeae ._bdage =_bfbgf ;return _geeae ;};
// ToPdfObject implements interface PdfModel.
func (_agbd *PdfAnnotationWatermark )ToPdfObject ()_fg .PdfObject {_agbd .PdfAnnotation .ToPdfObject ();_dccc :=_agbd ._agb ;_afge :=_dccc .PdfObject .(*_fg .PdfObjectDictionary );_afge .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fg .MakeName ("\u0057a\u0074\u0065\u0072\u006d\u0061\u0072k"));
_afge .SetIfNotNil ("\u0046\u0069\u0078\u0065\u0064\u0050\u0072\u0069\u006e\u0074",_agbd .FixedPrint );return _dccc ;};
// NewPdfFontFromPdfObject loads a PdfFont from the dictionary `fontObj`. If there is a problem an
// error is returned.
func NewPdfFontFromPdfObject (fontObj _fg .PdfObject )(*PdfFont ,error ){return _bfab (fontObj ,true )};func (_adbda *PdfWriter )addObjects (_dfgf _fg .PdfObject )error {_aa .Log .Trace ("\u0041d\u0064i\u006e\u0067\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0073\u0021");
if _deabef ,_fbbcb :=_dfgf .(*_fg .PdfIndirectObject );_fbbcb {_aa .Log .Trace ("\u0049\u006e\u0064\u0069\u0072\u0065\u0063\u0074");_aa .Log .Trace ("\u002d \u0025\u0073\u0020\u0028\u0025\u0070)",_dfgf ,_deabef );_aa .Log .Trace ("\u002d\u0020\u0025\u0073",_deabef .PdfObject );
if _adbda .addObject (_deabef ){_acgeec :=_adbda .addObjects (_deabef .PdfObject );if _acgeec !=nil {return _acgeec ;};};return nil ;};if _gbcae ,_ffffe :=_dfgf .(*_fg .PdfObjectStream );_ffffe {_aa .Log .Trace ("\u0053\u0074\u0072\u0065\u0061\u006d");
_aa .Log .Trace ("\u002d \u0025\u0073\u0020\u0025\u0070",_dfgf ,_dfgf );if _adbda .addObject (_gbcae ){_bfdeg :=_adbda .addObjects (_gbcae .PdfObjectDictionary );if _bfdeg !=nil {return _bfdeg ;};};return nil ;};if _bbcdga ,_cfbgdg :=_dfgf .(*_fg .PdfObjectDictionary );
_cfbgdg {_aa .Log .Trace ("\u0044\u0069\u0063\u0074");_aa .Log .Trace ("\u002d\u0020\u0025\u0073",_dfgf );for _ ,_ageaf :=range _bbcdga .Keys (){_efgfe :=_bbcdga .Get (_ageaf );if _cbfcg ,_acaea :=_efgfe .(*_fg .PdfObjectReference );_acaea {_efgfe =_cbfcg .Resolve ();
_bbcdga .Set (_ageaf ,_efgfe );};if _ageaf !="\u0050\u0061\u0072\u0065\u006e\u0074"{if _fdgba :=_adbda .addObjects (_efgfe );_fdgba !=nil {return _fdgba ;};}else {if _ ,_gegda :=_efgfe .(*_fg .PdfObjectNull );_gegda {continue ;};if _fabce :=_adbda .hasObject (_efgfe );
!_fabce {_aa .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",_efgfe ,_efgfe ,_efgfe );_adbda ._gcafd [_efgfe ]=append (_adbda ._gcafd [_efgfe ],_bbcdga );
};};};return nil ;};if _gfabaf ,_faafg :=_dfgf .(*_fg .PdfObjectArray );_faafg {_aa .Log .Trace ("\u0041\u0072\u0072a\u0079");_aa .Log .Trace ("\u002d\u0020\u0025\u0073",_dfgf );if _gfabaf ==nil {return _ce .New ("\u0061\u0072\u0072a\u0079\u0020\u0069\u0073\u0020\u006e\u0069\u006c");
};for _ebef ,_cfdde :=range _gfabaf .Elements (){if _dedea ,_gbdbbd :=_cfdde .(*_fg .PdfObjectReference );_gbdbbd {_cfdde =_dedea .Resolve ();_gfabaf .Set (_ebef ,_cfdde );};if _deacfb :=_adbda .addObjects (_cfdde );_deacfb !=nil {return _deacfb ;};};return nil ;
};if _ ,_eddga :=_dfgf .(*_fg .PdfObjectReference );_eddga {_aa .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",_dfgf );
return _ce .New ("r\u0065\u0066\u0065\u0072en\u0063e\u0020\u006e\u006f\u0074\u0020a\u006c\u006c\u006f\u0077\u0065\u0064");};return nil ;};
// NewPdfAnnotationUnderline returns a new text underline annotation.
func NewPdfAnnotationUnderline ()*PdfAnnotationUnderline {_egaf :=NewPdfAnnotation ();_dee :=&PdfAnnotationUnderline {};_dee .PdfAnnotation =_egaf ;_dee .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_egaf .SetContext (_dee );return _dee ;};func (_afcc *pdfFontSimple )getFontEncoding ()(_abec string ,_eefc map[_dg .CharCode ]_dg .GlyphName ,_fgccg error ){_abec ="\u0053\u0074a\u006e\u0064\u0061r\u0064\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067";
if _gcgca ,_fbeb :=_aeagc [_afcc ._aefg ];_fbeb {_abec =_gcgca ;}else if _afcc .fontFlags ()&_dbbc !=0{for _dadag ,_bdgde :=range _aeagc {if _dc .Contains (_afcc ._aefg ,_dadag ){_abec =_bdgde ;break ;};};};if _afcc .Encoding ==nil {return _abec ,nil ,nil ;
};switch _gabbb :=_afcc .Encoding .(type ){case *_fg .PdfObjectName :return string (*_gabbb ),nil ,nil ;case *_fg .PdfObjectDictionary :_befab ,_aecg :=_fg .GetName (_gabbb .Get ("\u0042\u0061\u0073e\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067"));if _aecg {_abec =_befab .String ();
};if _ccfc :=_gabbb .Get ("D\u0069\u0066\u0066\u0065\u0072\u0065\u006e\u0063\u0065\u0073");_ccfc !=nil {_cbcea ,_ecbd :=_fg .GetArray (_ccfc );if !_ecbd {_aa .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",_gabbb ,_gabbb .Get ("D\u0069\u0066\u0066\u0065\u0072\u0065\u006e\u0063\u0065\u0073"));
return "",nil ,_fg .ErrTypeError ;};_eefc ,_fgccg =_dg .FromFontDifferences (_cbcea );};return _abec ,_eefc ,_fgccg ;default:_aa .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",_afcc .Encoding ,_afcc .Encoding );
return "",nil ,_fg .ErrTypeError ;};};func (_gbdbb *PdfFont )baseFields ()*fontCommon {if _gbdbb ._gcaeff ==nil {_aa .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 _gbdbb ._gcaeff .baseFields ();};
// 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 *_fg .PdfObjectStream )(*XObjectImage ,error ){_debdec :=&XObjectImage {};_debdec ._eafbc =stream ;_ddcfg :=*(stream .PdfObjectDictionary );_baea ,_gffbd :=_fg .NewEncoderFromStream (stream );if _gffbd !=nil {return nil ,_gffbd ;
};_debdec .Filter =_baea ;if _eedbe :=_fg .TraceToDirectObject (_ddcfg .Get ("\u0057\u0069\u0064t\u0068"));_eedbe !=nil {_beda ,_bbdd :=_eedbe .(*_fg .PdfObjectInteger );if !_bbdd {return nil ,_ce .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");
};_egea :=int64 (*_beda );_debdec .Width =&_egea ;}else {return nil ,_ce .New ("\u0077\u0069\u0064\u0074\u0068\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};if _daefa :=_fg .TraceToDirectObject (_ddcfg .Get ("\u0048\u0065\u0069\u0067\u0068\u0074"));
_daefa !=nil {_fbebg ,_afag :=_daefa .(*_fg .PdfObjectInteger );if !_afag {return nil ,_ce .New ("i\u006e\u0076\u0061\u006c\u0069\u0064 \u0069\u006d\u0061\u0067\u0065\u0020\u0068\u0065\u0069g\u0068\u0074\u0020o\u0062j\u0065\u0063\u0074");};_acece :=int64 (*_fbebg );
_debdec .Height =&_acece ;}else {return nil ,_ce .New ("\u0068\u0065\u0069\u0067\u0068\u0074\u0020\u006d\u0069s\u0073\u0069\u006e\u0067");};if _afdbe :=_fg .TraceToDirectObject (_ddcfg .Get ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065"));
_afdbe !=nil {_eefdb ,_aabde :=NewPdfColorspaceFromPdfObject (_afdbe );if _aabde !=nil {return nil ,_aabde ;};_debdec .ColorSpace =_eefdb ;}else {_aa .Log .Debug ("\u0058O\u0062\u006a\u0065c\u0074\u0020\u0049m\u0061ge\u0020\u0063\u006f\u006c\u006f\u0072\u0073p\u0061\u0063\u0065\u0020\u006e\u006f\u0074\u0020\u0073\u0070\u0065\u0063\u0069\u0066\u0069\u0065\u0064\u0020\u002d\u0020\u0061\u0073\u0073\u0075\u006d\u0069\u006e\u0067 1\u0020c\u006f\u006c\u006f\u0072\u0020\u0063o\u006d\u0070\u006f\u006e\u0065n\u0074\u0020\u002d\u0020\u0044\u0065\u0076\u0069\u0063\u0065\u0047r\u0061\u0079");
_debdec .ColorSpace =NewPdfColorspaceDeviceGray ();};if _dccacb :=_fg .TraceToDirectObject (_ddcfg .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074"));_dccacb !=nil {_agfgc ,_gcbcb :=_dccacb .(*_fg .PdfObjectInteger );
if !_gcbcb {return nil ,_ce .New ("i\u006e\u0076\u0061\u006c\u0069\u0064 \u0069\u006d\u0061\u0067\u0065\u0020\u0068\u0065\u0069g\u0068\u0074\u0020o\u0062j\u0065\u0063\u0074");};_fffbc :=int64 (*_agfgc );_debdec .BitsPerComponent =&_fffbc ;};_debdec .Intent =_ddcfg .Get ("\u0049\u006e\u0074\u0065\u006e\u0074");
_debdec .ImageMask =_ddcfg .Get ("\u0049m\u0061\u0067\u0065\u004d\u0061\u0073k");_debdec .Mask =_ddcfg .Get ("\u004d\u0061\u0073\u006b");_debdec .Decode =_ddcfg .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");_debdec .Interpolate =_ddcfg .Get ("I\u006e\u0074\u0065\u0072\u0070\u006f\u006c\u0061\u0074\u0065");
_debdec .Alternatives =_ddcfg .Get ("\u0041\u006c\u0074e\u0072\u006e\u0061\u0074\u0069\u0076\u0065\u0073");_debdec .SMask =_ddcfg .Get ("\u0053\u004d\u0061s\u006b");_debdec .SMaskInData =_ddcfg .Get ("S\u004d\u0061\u0073\u006b\u0049\u006e\u0044\u0061\u0074\u0061");
_debdec .Matte =_ddcfg .Get ("\u004d\u0061\u0074t\u0065");_debdec .Name =_ddcfg .Get ("\u004e\u0061\u006d\u0065");_debdec .StructParent =_ddcfg .Get ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074");_debdec .ID =_ddcfg .Get ("\u0049\u0044");
_debdec .OPI =_ddcfg .Get ("\u004f\u0050\u0049");_debdec .Metadata =_ddcfg .Get ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");_debdec .OC =_ddcfg .Get ("\u004f\u0043");_debdec .Stream =stream .Stream ;return _debdec ,nil ;};func (_bdag *PdfReader )newPdfFieldSignatureFromDict (_fcfgd *_fg .PdfObjectDictionary )(*PdfFieldSignature ,error ){_efcb :=&PdfFieldSignature {};
_eecd ,_gfdgf :=_fg .GetIndirect (_fcfgd .Get ("\u0056"));if _gfdgf {var _gbab error ;_efcb .V ,_gbab =_bdag .newPdfSignatureFromIndirect (_eecd );if _gbab !=nil {return nil ,_gbab ;};};_efcb .Lock ,_ =_fg .GetIndirect (_fcfgd .Get ("\u004c\u006f\u0063\u006b"));
_efcb .SV ,_ =_fg .GetIndirect (_fcfgd .Get ("\u0053\u0056"));return _efcb ,nil ;};
// ToPdfObject returns the PDF representation of the shading dictionary.
func (_baedf *PdfShadingType7 )ToPdfObject ()_fg .PdfObject {_baedf .PdfShading .ToPdfObject ();_baag ,_bcdea :=_baedf .getShadingDict ();if _bcdea !=nil {_aa .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 _baedf .BitsPerCoordinate !=nil {_baag .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065",_baedf .BitsPerCoordinate );};if _baedf .BitsPerComponent !=nil {_baag .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_baedf .BitsPerComponent );
};if _baedf .BitsPerFlag !=nil {_baag .Set ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067",_baedf .BitsPerFlag );};if _baedf .Decode !=nil {_baag .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_baedf .Decode );};if _baedf .Function !=nil {if len (_baedf .Function )==1{_baag .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_baedf .Function [0].ToPdfObject ());
}else {_bdcf :=_fg .MakeArray ();for _ ,_fefac :=range _baedf .Function {_bdcf .Append (_fefac .ToPdfObject ());};_baag .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_bdcf );};};return _baedf ._cbabf ;};
// NewPdfAnnotationStamp returns a new stamp annotation.
func NewPdfAnnotationStamp ()*PdfAnnotationStamp {_bade :=NewPdfAnnotation ();_gef :=&PdfAnnotationStamp {};_gef .PdfAnnotation =_bade ;_gef .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_bade .SetContext (_gef );return _gef ;};
// GetNamedDestinations returns the Dests entry in the PDF catalog.
// See section 12.3.2.3 "Named Destinations" (p. 367 PDF32000_2008).
func (_fbbc *PdfReader )GetNamedDestinations ()(_fg .PdfObject ,error ){_egbge :=_fg .ResolveReference (_fbbc ._cgegd .Get ("\u0044\u0065\u0073t\u0073"));if _egbge ==nil {return nil ,nil ;};if !_fbbc ._beegg {_afggbd :=_fbbc .traverseObjectData (_egbge );
if _afggbd !=nil {return nil ,_afggbd ;};};return _egbge ,nil ;};func (_acabe *PdfColorspaceDeviceCMYK )String ()string {return "\u0044\u0065\u0076\u0069\u0063\u0065\u0043\u004d\u0059\u004b";};
// Set sets the colorspace corresponding to key. Add to Names if not set.
func (_aeceg *PdfPageResourcesColorspaces )Set (key _fg .PdfObjectName ,val PdfColorspace ){if _ ,_fgfda :=_aeceg .Colorspaces [string (key )];!_fgfda {_aeceg .Names =append (_aeceg .Names ,string (key ));};_aeceg .Colorspaces [string (key )]=val ;};
// PdfColorspaceDeviceN represents a DeviceN color space. DeviceN color spaces are similar to Separation color
// spaces, except they can contain an arbitrary number of color components.
/*
Format: [/DeviceN names alternateSpace tintTransform]
or: [/DeviceN names alternateSpace tintTransform attributes]
*/
type PdfColorspaceDeviceN struct{ColorantNames *_fg .PdfObjectArray ;AlternateSpace PdfColorspace ;TintTransform PdfFunction ;Attributes *PdfColorspaceDeviceNAttributes ;_cggda *_fg .PdfIndirectObject ;};
// ColorToRGB converts an Indexed color to an RGB color.
func (_aeeb *PdfColorspaceSpecialIndexed )ColorToRGB (color PdfColor )(PdfColor ,error ){if _aeeb .Base ==nil {return nil ,_ce .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 _aeeb .Base .ColorToRGB (color );};
// SetOptimizer sets the optimizer to optimize PDF before writing.
func (_eebdcc *PdfWriter )SetOptimizer (optimizer Optimizer ){_eebdcc ._fdgfe =optimizer };
// 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 (_ecdb PdfColor )(PdfColor ,error );
// GetNumComponents returns the number of components in the PdfColorspace.
GetNumComponents ()int ;
// ToPdfObject returns a PdfObject representation of the PdfColorspace.
ToPdfObject ()_fg .PdfObject ;
// ColorFromPdfObjects returns a PdfColor in the given PdfColorspace from an array of PdfObject where each
// PdfObject represents a numeric value.
ColorFromPdfObjects (_cafb []_fg .PdfObject )(PdfColor ,error );
// ColorFromFloats returns a new PdfColor based on input color components for a given PdfColorspace.
ColorFromFloats (_eabf []float64 )(PdfColor ,error );
// DecodeArray returns the Decode array for the PdfColorSpace, i.e. the range of each component.
DecodeArray ()[]float64 ;};
// PdfAnnotation3D represents 3D annotations.
// (Section 13.6.2).
type PdfAnnotation3D struct{*PdfAnnotation ;T3DD _fg .PdfObject ;T3DV _fg .PdfObject ;T3DA _fg .PdfObject ;T3DI _fg .PdfObject ;T3DB _fg .PdfObject ;};
// ParserMetadata gets the parser metadata.
func (_faed *CompliancePdfReader )ParserMetadata ()_fg .ParserMetadata {if _faed ._aefc ==(_fg .ParserMetadata {}){_faed ._aefc ,_ =_faed ._ccgg .ParserMetadata ();};return _faed ._aefc ;};func _ddd (_dccf _fg .PdfObject )(*PdfFilespec ,error ){if _dccf ==nil {return nil ,nil ;
};return NewPdfFilespecFromObj (_dccf );};
// StdFontName represents name of a standard font.
type StdFontName =_eed .StdFontName ;
// 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 ;_cfed []byte ;_fccae []uint32 ;_ddgf *_fg .PdfObjectStream ;};
// PdfAnnotation represents an annotation in PDF (section 12.5 p. 389).
type PdfAnnotation struct{_cbea PdfModel ;Rect _fg .PdfObject ;Contents _fg .PdfObject ;P _fg .PdfObject ;NM _fg .PdfObject ;M _fg .PdfObject ;F _fg .PdfObject ;AP _fg .PdfObject ;AS _fg .PdfObject ;Border _fg .PdfObject ;C _fg .PdfObject ;StructParent _fg .PdfObject ;
OC _fg .PdfObject ;_agb *_fg .PdfIndirectObject ;};func (_bcde *PdfReader )newPdfAnnotationUnderlineFromDict (_ged *_fg .PdfObjectDictionary )(*PdfAnnotationUnderline ,error ){_fbf :=PdfAnnotationUnderline {};_bcg ,_abdbd :=_bcde .newPdfAnnotationMarkupFromDict (_ged );
if _abdbd !=nil {return nil ,_abdbd ;};_fbf .PdfAnnotationMarkup =_bcg ;_fbf .QuadPoints =_ged .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");return &_fbf ,nil ;};
// ValidateSignatures validates digital signatures in the document.
func (_cegdg *PdfReader )ValidateSignatures (handlers []SignatureHandler )([]SignatureValidationResult ,error ){if _cegdg .AcroForm ==nil {return nil ,nil ;};if _cegdg .AcroForm .Fields ==nil {return nil ,nil ;};type sigFieldPair struct{_gfca *PdfSignature ;
_dbfab *PdfField ;_dgdef SignatureHandler ;};var _eceff []*sigFieldPair ;for _ ,_affcc :=range _cegdg .AcroForm .AllFields (){if _affcc .V ==nil {continue ;};if _fcea ,_ggfce :=_fg .GetDict (_affcc .V );_ggfce {if _dfca ,_ggfaf :=_fg .GetNameVal (_fcea .Get ("\u0054\u0079\u0070\u0065"));
_ggfaf &&(_dfca =="\u0053\u0069\u0067"||_dfca =="\u0044\u006f\u0063T\u0069\u006d\u0065\u0053\u0074\u0061\u006d\u0070"){_fbdga ,_gafc :=_fg .GetIndirect (_affcc .V );if !_gafc {_aa .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 ;};_ddae ,_gcfdg :=_cegdg .newPdfSignatureFromIndirect (_fbdga );if _gcfdg !=nil {return nil ,_gcfdg ;};var _acfeab SignatureHandler ;for _ ,_caabg :=range handlers {if _caabg .IsApplicable (_ddae ){_acfeab =_caabg ;break ;};};
_eceff =append (_eceff ,&sigFieldPair {_gfca :_ddae ,_dbfab :_affcc ,_dgdef :_acfeab });};};};var _bggcc []SignatureValidationResult ;for _ ,_abcd :=range _eceff {_adfbe :=SignatureValidationResult {IsSigned :true ,Fields :[]*PdfField {_abcd ._dbfab }};
if _abcd ._dgdef ==nil {_adfbe .Errors =append (_adfbe .Errors ,"\u0068a\u006ed\u006c\u0065\u0072\u0020\u006e\u006f\u0074\u0020\u0073\u0065\u0074");_bggcc =append (_bggcc ,_adfbe );continue ;};_dccca ,_dbcb :=_abcd ._dgdef .NewDigest (_abcd ._gfca );if _dbcb !=nil {_adfbe .Errors =append (_adfbe .Errors ,"\u0064\u0069\u0067e\u0073\u0074\u0020\u0065\u0072\u0072\u006f\u0072",_dbcb .Error ());
_bggcc =append (_bggcc ,_adfbe );continue ;};_gdeaf :=_abcd ._gfca .ByteRange ;if _gdeaf ==nil {_adfbe .Errors =append (_adfbe .Errors ,"\u0042\u0079\u0074\u0065\u0052\u0061\u006e\u0067\u0065\u0020\u006e\u006ft\u0020\u0073\u0065\u0074");_bggcc =append (_bggcc ,_adfbe );
continue ;};for _ebdbd :=0;_ebdbd < _gdeaf .Len ();_ebdbd =_ebdbd +2{_fcfdf ,_ :=_fg .GetNumberAsInt64 (_gdeaf .Get (_ebdbd ));_agcfc ,_ :=_fg .GetIntVal (_gdeaf .Get (_ebdbd +1));if _ ,_cgecb :=_cegdg ._daega .Seek (_fcfdf ,_ff .SeekStart );_cgecb !=nil {return nil ,_cgecb ;
};_bcbf :=make ([]byte ,_agcfc );if _ ,_cfddb :=_cegdg ._daega .Read (_bcbf );_cfddb !=nil {return nil ,_cfddb ;};_dccca .Write (_bcbf );};var _agdfb SignatureValidationResult ;if _cbgeg ,_fcbd :=_abcd ._dgdef .(SignatureHandlerDocMDP );_fcbd {_agdfb ,_dbcb =_cbgeg .ValidateWithOpts (_abcd ._gfca ,_dccca ,SignatureHandlerDocMDPParams {Parser :_cegdg ._ccgg });
}else {_agdfb ,_dbcb =_abcd ._dgdef .Validate (_abcd ._gfca ,_dccca );};if _dbcb !=nil {_aa .Log .Debug ("E\u0052\u0052\u004f\u0052: \u0025v\u0020\u0028\u0025\u0054\u0029 \u002d\u0020\u0073\u006b\u0069\u0070",_dbcb ,_abcd ._dgdef );_agdfb .Errors =append (_agdfb .Errors ,_dbcb .Error ());
};_agdfb .Name =_abcd ._gfca .Name .Decoded ();_agdfb .Reason =_abcd ._gfca .Reason .Decoded ();if _abcd ._gfca .M !=nil {_bdaed ,_bfdfee :=NewPdfDate (_abcd ._gfca .M .String ());if _bfdfee !=nil {_aa .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_bfdfee );
_agdfb .Errors =append (_agdfb .Errors ,_bfdfee .Error ());continue ;};_agdfb .Date =_bdaed ;};_agdfb .ContactInfo =_abcd ._gfca .ContactInfo .Decoded ();_agdfb .Location =_abcd ._gfca .Location .Decoded ();_agdfb .Fields =_adfbe .Fields ;_bggcc =append (_bggcc ,_agdfb );
};return _bggcc ,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 (_bbba *PdfFont )CharcodesToUnicodeWithStats (charcodes []_dg .CharCode )(_gcbcd []rune ,_decbc ,_bccc int ){_dgae ,_decbc ,_bccc :=_bbba .CharcodesToStrings (charcodes );return []rune (_dc .Join (_dgae ,"")),_decbc ,_bccc ;};
// ToPdfObject implements interface PdfModel.
func (_bggb *PdfActionRendition )ToPdfObject ()_fg .PdfObject {_bggb .PdfAction .ToPdfObject ();_gbbb :=_bggb ._bda ;_feg :=_gbbb .PdfObject .(*_fg .PdfObjectDictionary );_feg .SetIfNotNil ("\u0053",_fg .MakeName (string (ActionTypeRendition )));_feg .SetIfNotNil ("\u0052",_bggb .R );
_feg .SetIfNotNil ("\u0041\u004e",_bggb .AN );_feg .SetIfNotNil ("\u004f\u0050",_bggb .OP );_feg .SetIfNotNil ("\u004a\u0053",_bggb .JS );return _gbbb ;};
// 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 ){_gdgff ,_ebgff :=_c .Open (filePath );if _ebgff !=nil {_aa .Log .Debug ("\u0045\u0052\u0052OR\u003a\u0020\u006f\u0070\u0065\u006e\u0069\u006e\u0067\u0020\u0066\u0069\u006c\u0065\u003a\u0020\u0025\u0076",_ebgff );
return nil ,_ebgff ;};defer _gdgff .Close ();return NewCompositePdfFontFromTTF (_gdgff );};
// NewPdfColorspaceSpecialIndexed returns a new Indexed color.
func NewPdfColorspaceSpecialIndexed ()*PdfColorspaceSpecialIndexed {return &PdfColorspaceSpecialIndexed {HiVal :255};};
// ToPdfObject returns the PDF representation of the shading pattern.
func (_acedc *PdfShadingPatternType2 )ToPdfObject ()_fg .PdfObject {_acedc .PdfPattern .ToPdfObject ();_aefec :=_acedc .getDict ();if _acedc .Shading !=nil {_aefec .Set ("\u0053h\u0061\u0064\u0069\u006e\u0067",_acedc .Shading .ToPdfObject ());};if _acedc .Matrix !=nil {_aefec .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_acedc .Matrix );
};if _acedc .ExtGState !=nil {_aefec .Set ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e",_acedc .ExtGState );};return _acedc ._gaac ;};func (_eacb *PdfWriter )seekByName (_eadb _fg .PdfObject ,_fecfb []string ,_bgbgb string )([]_fg .PdfObject ,error ){_aa .Log .Trace ("\u0053\u0065\u0065\u006b\u0020\u0062\u0079\u0020\u006e\u0061\u006d\u0065.\u002e\u0020\u0025\u0054",_eadb );
var _eadba []_fg .PdfObject ;if _acadb ,_gegbd :=_eadb .(*_fg .PdfIndirectObject );_gegbd {return _eacb .seekByName (_acadb .PdfObject ,_fecfb ,_bgbgb );};if _daeff ,_gagdga :=_eadb .(*_fg .PdfObjectStream );_gagdga {return _eacb .seekByName (_daeff .PdfObjectDictionary ,_fecfb ,_bgbgb );
};if _bacag ,_fgebb :=_eadb .(*_fg .PdfObjectDictionary );_fgebb {_aa .Log .Trace ("\u0044\u0069\u0063\u0074");for _ ,_dbdbb :=range _bacag .Keys (){_gcec :=_bacag .Get (_dbdbb );if string (_dbdbb )==_bgbgb {_eadba =append (_eadba ,_gcec );};for _ ,_defdc :=range _fecfb {if string (_dbdbb )==_defdc {_aa .Log .Trace ("\u0046\u006f\u006c\u006c\u006f\u0077\u0020\u006b\u0065\u0079\u0020\u0025\u0073",_defdc );
_fafe ,_bbbeb :=_eacb .seekByName (_gcec ,_fecfb ,_bgbgb );if _bbbeb !=nil {return _eadba ,_bbbeb ;};_eadba =append (_eadba ,_fafe ...);break ;};};};return _eadba ,nil ;};return _eadba ,nil ;};func _fffa (_dadec _fg .PdfObject )(*PdfColorspaceSpecialIndexed ,error ){_cbadc :=NewPdfColorspaceSpecialIndexed ();
if _ebbd ,_acfed :=_dadec .(*_fg .PdfIndirectObject );_acfed {_cbadc ._gfeg =_ebbd ;};_dadec =_fg .TraceToDirectObject (_dadec );_badd ,_bcgf :=_dadec .(*_fg .PdfObjectArray );if !_bcgf {return nil ,_d .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");
};if _badd .Len ()!=4{return nil ,_d .Errorf ("\u0069\u006e\u0064\u0065\u0078\u0065\u0064\u0020\u0043\u0053\u003a\u0020\u0069\u006e\u0076a\u006ci\u0064\u0020\u0061\u0072\u0072\u0061\u0079\u0020\u006c\u0065\u006e\u0067\u0074\u0068");};_dadec =_badd .Get (0);
_aecd ,_bcgf :=_dadec .(*_fg .PdfObjectName );if !_bcgf {return nil ,_d .Errorf ("\u0069n\u0064\u0065\u0078\u0065\u0064\u0020\u0043\u0053\u003a\u0020\u0069n\u0076\u0061\u006c\u0069\u0064\u0020\u006e\u0061\u006d\u0065");};if *_aecd !="\u0049n\u0064\u0065\u0078\u0065\u0064"{return nil ,_d .Errorf ("\u0069\u006e\u0064\u0065xe\u0064\u0020\u0043\u0053\u003a\u0020\u0077\u0072\u006f\u006e\u0067\u0020\u006e\u0061m\u0065");
};_dadec =_badd .Get (1);_cdcb ,_gbac :=DetermineColorspaceNameFromPdfObject (_dadec );if _gbac !=nil {return nil ,_gbac ;};if _cdcb =="\u0049n\u0064\u0065\u0078\u0065\u0064"||_cdcb =="\u0050a\u0074\u0074\u0065\u0072\u006e"{_aa .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",_cdcb );
return nil ,_gbfa ;};_gadcd ,_gbac :=NewPdfColorspaceFromPdfObject (_dadec );if _gbac !=nil {return nil ,_gbac ;};_cbadc .Base =_gadcd ;_dadec =_badd .Get (2);_bbgab ,_gbac :=_fg .GetNumberAsInt64 (_dadec );if _gbac !=nil {return nil ,_gbac ;};if _bbgab > 255{return nil ,_d .Errorf ("\u0069n\u0064\u0065\u0078\u0065d\u0020\u0043\u0053\u003a\u0020I\u006ev\u0061l\u0069\u0064\u0020\u0068\u0069\u0076\u0061l");
};_cbadc .HiVal =int (_bbgab );_dadec =_badd .Get (3);_cbadc .Lookup =_dadec ;_dadec =_fg .TraceToDirectObject (_dadec );var _eeacg []byte ;if _bagb ,_eabe :=_dadec .(*_fg .PdfObjectString );_eabe {_eeacg =_bagb .Bytes ();_aa .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",_eeacg );
}else if _cgff ,_effa :=_dadec .(*_fg .PdfObjectStream );_effa {_aa .Log .Trace ("\u0049n\u0064e\u0078\u0065\u0064\u0020\u0073t\u0072\u0065a\u006d\u003a\u0020\u0025\u0073",_dadec .String ());_aa .Log .Trace ("\u0045\u006e\u0063\u006fde\u0064\u0020\u0028\u0025\u0064\u0029\u0020\u003a\u0020\u0025\u0023\u0020\u0078",len (_cgff .Stream ),_cgff .Stream );
_adabd ,_ccab :=_fg .DecodeStream (_cgff );if _ccab !=nil {return nil ,_ccab ;};_aa .Log .Trace ("\u0044e\u0063o\u0064\u0065\u0064\u0020\u0028%\u0064\u0029 \u003a\u0020\u0025\u0020\u0058",len (_adabd ),_adabd );_eeacg =_adabd ;}else {_aa .Log .Debug ("\u0054\u0079\u0070\u0065\u003a\u0020\u0025\u0054",_dadec );
return nil ,_d .Errorf ("\u0069\u006e\u0064\u0065\u0078\u0065\u0064\u0020\u0043\u0053\u003a\u0020\u0049\u006e\u0076a\u006ci\u0064\u0020\u0074\u0061\u0062\u006c\u0065\u0020\u0066\u006f\u0072\u006d\u0061\u0074");};if len (_eeacg )< _cbadc .Base .GetNumComponents ()*(_cbadc .HiVal +1){_aa .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");
_aa .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 (_eeacg ),_cbadc .Base .GetNumComponents (),_cbadc .HiVal );
}else {_eeacg =_eeacg [:_cbadc .Base .GetNumComponents ()*(_cbadc .HiVal +1)];};_cbadc ._acce =_eeacg ;return _cbadc ,nil ;};
// NewPdfFieldSignature returns an initialized signature field.
func NewPdfFieldSignature (signature *PdfSignature )*PdfFieldSignature {_deagb :=&PdfFieldSignature {};_deagb .PdfField =NewPdfField ();_deagb .PdfField .SetContext (_deagb );_deagb .PdfAnnotationWidget =NewPdfAnnotationWidget ();_deagb .PdfAnnotationWidget .SetContext (_deagb );
_deagb .PdfAnnotationWidget ._agb =_deagb .PdfField ._daecc ;_deagb .T =_fg .MakeString ("");_deagb .F =_fg .MakeInteger (132);_deagb .V =signature ;return _deagb ;};
// GetOCProperties returns the optional content properties PdfObject.
func (_bgbef *PdfReader )GetOCProperties ()(_fg .PdfObject ,error ){_daagcd :=_bgbef ._cgegd ;_gacdd :=_daagcd .Get ("\u004f\u0043\u0050r\u006f\u0070\u0065\u0072\u0074\u0069\u0065\u0073");_gacdd =_fg .ResolveReference (_gacdd );if !_bgbef ._beegg {_fcccfb :=_bgbef .traverseObjectData (_gacdd );
if _fcccfb !=nil {return nil ,_fcccfb ;};};return _gacdd ,nil ;};
// PdfWriter handles outputing PDF content.
type PdfWriter struct{_cegde *_fg .PdfIndirectObject ;_feccd *_fg .PdfIndirectObject ;_cbdbf map[_fg .PdfObject ]struct{};_bbfd []_fg .PdfObject ;_gcbec map[_fg .PdfObject ]struct{};_bccgad []*_fg .PdfIndirectObject ;_baebg *PdfOutlineTreeNode ;_cgacf *_fg .PdfObjectDictionary ;
_ebedb []_fg .PdfObject ;_deabg *_fg .PdfIndirectObject ;_dbdde *_da .Writer ;_fcgga int64 ;_adgac error ;_bbdbd *_fg .PdfCrypt ;_fagba *_fg .PdfObjectDictionary ;_abgdg *_fg .PdfIndirectObject ;_dadgc *_fg .PdfObjectArray ;_fbbec _fg .Version ;_gefag *bool ;
_gcafd map[_fg .PdfObject ][]*_fg .PdfObjectDictionary ;_feaea *PdfAcroForm ;_fdgfe Optimizer ;_effb StandardApplier ;_aafgd map[int ]crossReference ;_beddc int64 ;ObjNumOffset int ;_cdafg bool ;_abeeb _fg .XrefTable ;_cgdbf int64 ;_cecef int64 ;_cbeab map[_fg .PdfObject ]int64 ;
_acccfc map[_fg .PdfObject ]struct{};_dbefbd string ;_adgga []*PdfOutputIntent ;_gaaaab bool ;_deeab ,_ccccb string ;};
// AddFont adds a font dictionary to the Font resources.
func (_badbba *PdfPage )AddFont (name _fg .PdfObjectName ,font _fg .PdfObject )error {if _badbba .Resources ==nil {_badbba .Resources =NewPdfPageResources ();};if _badbba .Resources .Font ==nil {_badbba .Resources .Font =_fg .MakeDict ();};_dadcb ,_bdada :=_fg .TraceToDirectObject (_badbba .Resources .Font ).(*_fg .PdfObjectDictionary );
if !_bdada {_aa .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",_fg .TraceToDirectObject (_badbba .Resources .Font ));
return _ce .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_dadcb .Set (name ,font );return nil ;};
// SetColorSpace sets `r` colorspace object to `colorspace`.
func (_acfg *PdfPageResources )SetColorSpace (colorspace *PdfPageResourcesColorspaces ){_acfg ._edbg =colorspace ;};
// PdfShadingType3 is a Radial shading.
type PdfShadingType3 struct{*PdfShading ;Coords *_fg .PdfObjectArray ;Domain *_fg .PdfObjectArray ;Function []PdfFunction ;Extend *_fg .PdfObjectArray ;};
// ToPdfObject returns the text field dictionary within an indirect object (container).
func (_aeeecd *PdfFieldText )ToPdfObject ()_fg .PdfObject {_aeeecd .PdfField .ToPdfObject ();_acfea :=_aeeecd ._daecc ;_ebcc :=_acfea .PdfObject .(*_fg .PdfObjectDictionary );_ebcc .Set ("\u0046\u0054",_fg .MakeName ("\u0054\u0078"));if _aeeecd .DA !=nil {_ebcc .Set ("\u0044\u0041",_aeeecd .DA );
};if _aeeecd .Q !=nil {_ebcc .Set ("\u0051",_aeeecd .Q );};if _aeeecd .DS !=nil {_ebcc .Set ("\u0044\u0053",_aeeecd .DS );};if _aeeecd .RV !=nil {_ebcc .Set ("\u0052\u0056",_aeeecd .RV );};if _aeeecd .MaxLen !=nil {_ebcc .Set ("\u004d\u0061\u0078\u004c\u0065\u006e",_aeeecd .MaxLen );
};return _acfea ;};func (_ceea *PdfReader )newPdfOutlineItemFromIndirectObject (_dgbea *_fg .PdfIndirectObject )(*PdfOutlineItem ,error ){_bcae ,_afdgb :=_dgbea .PdfObject .(*_fg .PdfObjectDictionary );if !_afdgb {return nil ,_d .Errorf ("\u006f\u0075\u0074l\u0069\u006e\u0065\u0020o\u0062\u006a\u0065\u0063\u0074\u0020\u006eo\u0074\u0020\u0061\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079");
};_bebg :=NewPdfOutlineItem ();_cfcg :=_bcae .Get ("\u0054\u0069\u0074l\u0065");if _cfcg ==nil {return nil ,_d .Errorf ("\u006d\u0069\u0073s\u0069\u006e\u0067\u0020\u0054\u0069\u0074\u006c\u0065\u0020\u0066\u0072\u006f\u006d\u0020\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0020\u0049\u0074\u0065\u006d\u0020\u0028r\u0065\u0071\u0075\u0069\u0072\u0065\u0064\u0029");
};_fedge ,_ebgb :=_fg .GetString (_cfcg );if !_ebgb {return nil ,_d .Errorf ("\u0074\u0069\u0074le\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0073\u0074\u0072\u0069\u006e\u0067\u0020\u0028\u0025\u0054\u0029",_cfcg );};_bebg .Title =_fedge ;if _cfafea :=_bcae .Get ("\u0043\u006f\u0075n\u0074");
_cfafea !=nil {_fgeef ,_dbgee :=_cfafea .(*_fg .PdfObjectInteger );if !_dbgee {return nil ,_d .Errorf ("\u0063o\u0075\u006e\u0074\u0020n\u006f\u0074\u0020\u0061\u006e \u0069n\u0074e\u0067\u0065\u0072\u0020\u0028\u0025\u0054)",_cfafea );};_fddeb :=int64 (*_fgeef );
_bebg .Count =&_fddeb ;};if _acccf :=_bcae .Get ("\u0044\u0065\u0073\u0074");_acccf !=nil {_bebg .Dest =_fg .ResolveReference (_acccf );if !_ceea ._beegg {_gdebb :=_ceea .traverseObjectData (_bebg .Dest );if _gdebb !=nil {return nil ,_gdebb ;};};};if _gafdfd :=_bcae .Get ("\u0041");
_gafdfd !=nil {_bebg .A =_fg .ResolveReference (_gafdfd );if !_ceea ._beegg {_bdcde :=_ceea .traverseObjectData (_bebg .A );if _bdcde !=nil {return nil ,_bdcde ;};};};if _fcff :=_bcae .Get ("\u0053\u0045");_fcff !=nil {_bebg .SE =nil ;};if _cfea :=_bcae .Get ("\u0043");
_cfea !=nil {_bebg .C =_fg .ResolveReference (_cfea );};if _adfd :=_bcae .Get ("\u0046");_adfd !=nil {_bebg .F =_fg .ResolveReference (_adfd );};return _bebg ,nil ;};
// GetPdfVersion gets the version of the PDF used within this document.
func (_ageee *PdfWriter )GetPdfVersion ()string {return _ageee .getPdfVersion ()};
// 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 ;_ccdc PdfModel ;_gaac _fg .PdfObject ;};
// ToPdfObject implements model.PdfModel interface.
func (_fgfbde *PdfOutputIntent )ToPdfObject ()_fg .PdfObject {if _fgfbde ._geaa ==nil {_fgfbde ._geaa =_fg .MakeDict ();};_abgb :=_fgfbde ._geaa ;if _fgfbde .Type !=""{_abgb .Set ("\u0054\u0079\u0070\u0065",_fg .MakeName (_fgfbde .Type ));};_abgb .Set ("\u0053",_fg .MakeName (_fgfbde .S .String ()));
if _fgfbde .OutputCondition !=""{_abgb .Set ("\u004fu\u0074p\u0075\u0074\u0043\u006f\u006e\u0064\u0069\u0074\u0069\u006f\u006e",_fg .MakeString (_fgfbde .OutputCondition ));};_abgb .Set ("\u004fu\u0074\u0070\u0075\u0074C\u006f\u006e\u0064\u0069\u0074i\u006fn\u0049d\u0065\u006e\u0074\u0069\u0066\u0069\u0065r",_fg .MakeString (_fgfbde .OutputConditionIdentifier ));
_abgb .Set ("\u0052\u0065\u0067i\u0073\u0074\u0072\u0079\u004e\u0061\u006d\u0065",_fg .MakeString (_fgfbde .RegistryName ));if _fgfbde .Info !=""{_abgb .Set ("\u0049\u006e\u0066\u006f",_fg .MakeString (_fgfbde .Info ));};if len (_fgfbde .DestOutputProfile )!=0{_debba ,_cdgbd :=_fg .MakeStream (_fgfbde .DestOutputProfile ,_fg .NewFlateEncoder ());
if _cdgbd !=nil {_aa .Log .Error ("\u004d\u0061\u006b\u0065\u0053\u0074\u0072\u0065\u0061\u006d\u0020\u0044\u0065s\u0074\u004f\u0075\u0074\u0070\u0075t\u0050\u0072\u006f\u0066\u0069\u006c\u0065\u0020\u0066\u0061\u0069\u006c\u0065d\u003a\u0020\u0025\u0076",_cdgbd );
};_debba .PdfObjectDictionary .Set ("\u004e",_fg .MakeInteger (int64 (_fgfbde .ColorComponents )));_ecfcd :=make ([]float64 ,_fgfbde .ColorComponents *2);for _gfdgb :=0;_gfdgb < _fgfbde .ColorComponents *2;_gfdgb ++{_dbgaf :=0.0;if _gfdgb %2!=0{_dbgaf =1.0;
};_ecfcd [_gfdgb ]=_dbgaf ;};_debba .PdfObjectDictionary .Set ("\u0052\u0061\u006eg\u0065",_fg .MakeArrayFromFloats (_ecfcd ));_abgb .Set ("\u0044\u0065\u0073\u0074\u004f\u0075\u0074\u0070\u0075\u0074\u0050\u0072o\u0066\u0069\u006c\u0065",_debba );};return _abgb ;
};func _bceb (_cgcb _fg .PdfObject )(*PdfBorderStyle ,error ){_gcae :=&PdfBorderStyle {};_gcae ._ebeb =_cgcb ;var _dgd *_fg .PdfObjectDictionary ;_cgcb =_fg .TraceToDirectObject (_cgcb );_dgd ,_ffcd :=_cgcb .(*_fg .PdfObjectDictionary );if !_ffcd {return nil ,_ce .New ("\u0074\u0079\u0070\u0065\u0020\u0063\u0068\u0065\u0063\u006b");
};if _ebcdbd :=_dgd .Get ("\u0054\u0079\u0070\u0065");_ebcdbd !=nil {_ecfc ,_ebeg :=_ebcdbd .(*_fg .PdfObjectName );if !_ebeg {_aa .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",_ebcdbd );
}else {if *_ecfc !="\u0042\u006f\u0072\u0064\u0065\u0072"{_aa .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",*_ecfc );};};};if _dgf :=_dgd .Get ("\u0057");
_dgf !=nil {_dfbga ,_cbac :=_fg .GetNumberAsFloat (_dgf );if _cbac !=nil {_aa .Log .Debug ("\u0045\u0072\u0072\u006fr \u0072\u0065\u0074\u0072\u0069\u0065\u0076\u0069\u006e\u0067\u0020\u0057\u003a\u0020%\u0076",_cbac );return nil ,_cbac ;};_gcae .W =&_dfbga ;
};if _abb :=_dgd .Get ("\u0053");_abb !=nil {_cbff ,_caaa :=_abb .(*_fg .PdfObjectName );if !_caaa {return nil ,_ce .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 _efge BorderStyle ;switch *_cbff {case "\u0053":_efge =BorderStyleSolid ;case "\u0044":_efge =BorderStyleDashed ;case "\u0042":_efge =BorderStyleBeveled ;case "\u0049":_efge =BorderStyleInset ;case "\u0055":_efge =BorderStyleUnderline ;default:_aa .Log .Debug ("I\u006e\u0076\u0061\u006cid\u0020s\u0074\u0079\u006c\u0065\u0020n\u0061\u006d\u0065\u0020\u0025\u0073",*_cbff );
return nil ,_ce .New ("\u0073\u0074\u0079\u006ce \u0074\u0079\u0070\u0065\u0020\u0072\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065c\u006b");};_gcae .S =&_efge ;};if _edde :=_dgd .Get ("\u0044");_edde !=nil {_cacge ,_dgc :=_edde .(*_fg .PdfObjectArray );
if !_dgc {_aa .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",_edde );return nil ,_ce .New ("\u0062o\u0072\u0064\u0065\u0072 \u0044\u0020\u0074\u0079\u0070e\u0020c\u0068e\u0063\u006b\u0020\u0065\u0072\u0072\u006fr");
};_bcgd ,_edfd :=_cacge .ToIntegerArray ();if _edfd !=nil {_aa .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",_edfd );
return nil ,_edfd ;};_gcae .D =&_bcgd ;};return _gcae ,nil ;};
// String returns a string that describes `font`.
func (_dacf *PdfFont )String ()string {_dabb :="";if _dacf ._gcaeff .Encoder ()!=nil {_dabb =_dacf ._gcaeff .Encoder ().String ();};return _d .Sprintf ("\u0046\u004f\u004e\u0054\u007b\u0025\u0054\u0020\u0025s\u0020\u0025\u0073\u007d",_dacf ._gcaeff ,_dacf .baseFields ().coreString (),_dabb );
};
// DecodeArray returns the range of color component values in the Lab colorspace.
func (_feaf *PdfColorspaceLab )DecodeArray ()[]float64 {_fgae :=[]float64 {0,100};if _feaf .Range !=nil &&len (_feaf .Range )==4{_fgae =append (_fgae ,_feaf .Range ...);}else {_fgae =append (_fgae ,-100,100,-100,100);};return _fgae ;};
// SetPatternByName sets a pattern resource specified by keyName.
func (_ecfae *PdfPageResources )SetPatternByName (keyName _fg .PdfObjectName ,pattern _fg .PdfObject )error {if _ecfae .Pattern ==nil {_ecfae .Pattern =_fg .MakeDict ();};_gbdba ,_fdcgb :=_fg .GetDict (_ecfae .Pattern );if !_fdcgb {return _fg .ErrTypeError ;
};_gbdba .Set (keyName ,pattern );return nil ;};
// Val returns the color value.
func (_cbag *PdfColorDeviceGray )Val ()float64 {return float64 (*_cbag )};
// NewPdfReaderFromFile creates a new PdfReader from the speficied PDF file.
// If ReaderOpts is nil it will be set to default value from NewReaderOpts.
func NewPdfReaderFromFile (pdfFile string ,opts *ReaderOpts )(*PdfReader ,*_c .File ,error ){const _afce ="\u006d\u006f\u0064\u0065\u006c\u003a\u004e\u0065\u0077\u0050\u0064f\u0052\u0065\u0061\u0064\u0065\u0072\u0046\u0072\u006f\u006dF\u0069\u006c\u0065";
_ffbaf ,_cbfbb :=_c .Open (pdfFile );if _cbfbb !=nil {return nil ,nil ,_cbfbb ;};_abfgg ,_cbfbb :=_bgdaf (_ffbaf ,opts ,true ,_afce );if _cbfbb !=nil {_ffbaf .Close ();return nil ,nil ,_cbfbb ;};return _abfgg ,_ffbaf ,nil ;};func (_ffgba *PdfWriter )addObject (_cbbba _fg .PdfObject )bool {_fabfa :=_ffgba .hasObject (_cbbba );
if !_fabfa {_abceg :=_fg .ResolveReferencesDeep (_cbbba ,_ffgba ._acccfc );if _abceg !=nil {_aa .Log .Debug ("E\u0052R\u004f\u0052\u003a\u0020\u0025\u0076\u0020\u002d \u0073\u006b\u0069\u0070pi\u006e\u0067",_abceg );};_ffgba ._bbfd =append (_ffgba ._bbfd ,_cbbba );
_ffgba ._gcbec [_cbbba ]=struct{}{};return true ;};return false ;};func (_dedbb *fontFile )parseASCIIPart (_gdbcd []byte )error {if len (_gdbcd )< 2||string (_gdbcd [:2])!="\u0025\u0021"{return _ce .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");
};_aabg ,_gfeac ,_gggf :=_cbee (_gdbcd );if _gggf !=nil {return _gggf ;};_bffbc :=_agddd (_aabg );_dedbb ._gaefe =_bffbc ["\u0046\u006f\u006e\u0074\u004e\u0061\u006d\u0065"];if _dedbb ._gaefe ==""{_aa .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 _gfeac !=""{_dagfg ,_aefea :=_gcgcc (_gfeac );if _aefea !=nil {return _aefea ;};_adcgc ,_aefea :=_dg .NewCustomSimpleTextEncoder (_dagfg ,nil );if _aefea !=nil {_aa .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",_aefea );
return nil ;};_dedbb ._ffff =_adcgc ;};return nil ;};
// SetFillImage attach a model.Image to push button.
func (_baga *PdfFieldButton )SetFillImage (image *Image ){if _baga .IsPush (){_baga ._babe =image ;};};
// GetNumComponents returns the number of color components.
func (_bafa *PdfColorspaceICCBased )GetNumComponents ()int {return _bafa .N };
// PdfColorspaceCalRGB stores A, B, C components
type PdfColorspaceCalRGB struct{WhitePoint []float64 ;BlackPoint []float64 ;Gamma []float64 ;Matrix []float64 ;_gage *_fg .PdfObjectDictionary ;_cfcb *_fg .PdfIndirectObject ;};
// Encoder returns the font's text encoder.
func (_decbg *pdfFontSimple )Encoder ()_dg .TextEncoder {if _decbg ._bdgda !=nil {return _decbg ._bdgda ;};if _decbg ._fcad !=nil {return _decbg ._fcad ;};_gbga ,_ :=_dg .NewSimpleTextEncoder ("\u0053\u0074a\u006e\u0064\u0061r\u0064\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",nil );
return _gbga ;};
// M returns the value of the magenta component of the color.
func (_fcfg *PdfColorDeviceCMYK )M ()float64 {return _fcfg [1]};
// SetPdfProducer sets the Producer attribute of the output PDF.
func SetPdfProducer (producer string ){_baacg .Lock ();defer _baacg .Unlock ();_egdda =producer };func _gcccf (_agcf ,_afeac string )string {if _dc .Contains (_agcf ,"\u002b"){_aacb :=_dc .Split (_agcf ,"\u002b");if len (_aacb )==2{_agcf =_aacb [1];};};
return _afeac +"\u002b"+_agcf ;};func _gafdf (_daad _fg .PdfObject )(*_fg .PdfObjectDictionary ,*fontCommon ,error ){_bbcg :=&fontCommon {};if _fbfaa ,_ecfdb :=_daad .(*_fg .PdfIndirectObject );_ecfdb {_bbcg ._dgagb =_fbfaa .ObjectNumber ;};_afgfd ,_eeegg :=_fg .GetDict (_daad );
if !_eeegg {_aa .Log .Debug ("\u0045\u0052\u0052O\u0052\u003a\u0020\u0046\u006f\u006e\u0074\u0020\u006e\u006f\u0074\u0020\u0067\u0069\u0076\u0065\u006e\u0020\u0062\u0079\u0020\u0061\u0020\u0064\u0069\u0063\u0074\u0069\u006fn\u0061\u0072\u0079\u0020\u0028\u0025\u0054\u0029",_daad );
return nil ,nil ,ErrFontNotSupported ;};_degf ,_eeegg :=_fg .GetNameVal (_afgfd .Get ("\u0054\u0079\u0070\u0065"));if !_eeegg {_aa .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 _degf !="\u0046\u006f\u006e\u0074"{_aa .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.",_degf ,"\u0046\u006f\u006e\u0074");
return nil ,nil ,_fg .ErrTypeError ;};_bfddd ,_eeegg :=_fg .GetNameVal (_afgfd .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065"));if !_eeegg {_aa .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 ;};_bbcg ._ggcfc =_bfddd ;_cbfbc ,_eeegg :=_fg .GetNameVal (_afgfd .Get ("\u004e\u0061\u006d\u0065"));if _eeegg {_bbcg ._edad =_cbfbc ;};_gacdg :=_afgfd .Get ("\u0054o\u0055\u006e\u0069\u0063\u006f\u0064e");
if _gacdg !=nil {_bbcg ._eggb =_fg .TraceToDirectObject (_gacdg );_gfebc ,_baad :=_facaf (_bbcg ._eggb ,_bbcg );if _baad !=nil {return _afgfd ,_bbcg ,_baad ;};_bbcg ._agab =_gfebc ;}else if _bfddd =="\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0030"||_bfddd =="\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032"{_gdeg ,_eegf :=_fc .NewCIDSystemInfo (_afgfd .Get ("\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f"));
if _eegf !=nil {return _afgfd ,_bbcg ,_eegf ;};_acdeg :=_d .Sprintf ("\u0025\u0073\u002d\u0025\u0073\u002d\u0055\u0043\u0053\u0032",_gdeg .Registry ,_gdeg .Ordering );if _fc .IsPredefinedCMap (_acdeg ){_bbcg ._agab ,_eegf =_fc .LoadPredefinedCMap (_acdeg );
if _eegf !=nil {_aa .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",_acdeg ,_eegf );
};};};_gfaec :=_afgfd .Get ("\u0046\u006f\u006e\u0074\u0044\u0065\u0073\u0063\u0072i\u0070\u0074\u006f\u0072");if _gfaec !=nil {_afedb ,_bacab :=_eeceb (_gfaec );if _bacab !=nil {_aa .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",_bacab );
return _afgfd ,_bbcg ,_bacab ;};_bbcg ._cdgef =_afedb ;};if _bfddd !="\u0054\u0079\u0070e\u0033"{_ddbed ,_befc :=_fg .GetNameVal (_afgfd .Get ("\u0042\u0061\u0073\u0065\u0046\u006f\u006e\u0074"));if !_befc {_aa .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 _afgfd ,_bbcg ,ErrRequiredAttributeMissing ;};_bbcg ._aefg =_ddbed ;};return _afgfd ,_bbcg ,nil ;};
// NewPdfActionTrans returns a new "trans" action.
func NewPdfActionTrans ()*PdfActionTrans {_bfa :=NewPdfAction ();_ded :=&PdfActionTrans {};_ded .PdfAction =_bfa ;_bfa .SetContext (_ded );return _ded ;};func _ggdd (_gaafe *_fg .PdfObjectArray )(float64 ,error ){_bafg ,_bfee :=_gaafe .ToFloat64Array ();
if _bfee !=nil {_aa .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",_gaafe ,_bfee );};switch len (_bafg ){case 1:return _bafg [0],nil ;
case 3:_gfeffb :=PdfColorspaceDeviceRGB {};_bdacc ,_cbbf :=_gfeffb .ColorFromFloats (_bafg );if _cbbf !=nil {return 0.0,_cbbf ;};return _bdacc .(*PdfColorDeviceRGB ).ToGray ().Val (),nil ;case 4:_faedd :=PdfColorspaceDeviceCMYK {};_gcefd ,_ecffd :=_faedd .ColorFromFloats (_bafg );
if _ecffd !=nil {return 0.0,_ecffd ;};_egbca ,_ecffd :=_faedd .ColorToRGB (_gcefd .(*PdfColorDeviceCMYK ));if _ecffd !=nil {return 0.0,_ecffd ;};return _egbca .(*PdfColorDeviceRGB ).ToGray ().Val (),nil ;};_bfee =_ce .New ("\u0062a\u0064 \u004d\u0061\u0074\u0074\u0065\u0020\u0063\u006f\u006c\u006f\u0072");
_aa .Log .Error ("\u0074\u006f\u0047ra\u0079\u003a\u0020\u006d\u0061\u0074\u0074\u0065\u003d\u0025\u0073\u0020\u0065\u0072\u0072\u003d\u0025\u0076",_gaafe ,_bfee );return 0.0,_bfee ;};
// SetXObjectByName adds the XObject from the passed in stream to the page resources.
// The added XObject is identified by the specified name.
func (_dagac *PdfPageResources )SetXObjectByName (keyName _fg .PdfObjectName ,stream *_fg .PdfObjectStream )error {if _dagac .XObject ==nil {_dagac .XObject =_fg .MakeDict ();};_fbfab :=_fg .TraceToDirectObject (_dagac .XObject );_agfcd ,_aecef :=_fbfab .(*_fg .PdfObjectDictionary );
if !_aecef {_aa .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",_dagac .XObject ,_fbfab );return _ce .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");
};_agfcd .Set (keyName ,stream );return nil ;};func _gaaeb (_dbdd *_fg .PdfObjectDictionary )*VRI {_cggde ,_ :=_fg .GetString (_dbdd .Get ("\u0054\u0055"));_fgea ,_ :=_fg .GetString (_dbdd .Get ("\u0054\u0053"));return &VRI {Cert :_gfegc (_dbdd .Get ("\u0043\u0065\u0072\u0074")),OCSP :_gfegc (_dbdd .Get ("\u004f\u0043\u0053\u0050")),CRL :_gfegc (_dbdd .Get ("\u0043\u0052\u004c")),TU :_cggde ,TS :_fgea };
};var _dcede =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":{}};
// Evaluate runs the function on the passed in slice and returns the results.
func (_gagb *PdfFunctionType3 )Evaluate (x []float64 )([]float64 ,error ){if len (x )!=1{_aa .Log .Error ("\u004f\u006e\u006c\u0079 o\u006e\u0065\u0020\u0069\u006e\u0070\u0075\u0074\u0020\u0061\u006c\u006c\u006f\u0077e\u0064");return nil ,_ce .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");
};return nil ,_ce .New ("\u006e\u006f\u0074\u0020im\u0070\u006c\u0065\u006d\u0065\u006e\u0074\u0065\u0064\u0020\u0079\u0065\u0074");};
// PdfAnnotationStrikeOut represents StrikeOut annotations.
// (Section 12.5.6.10).
type PdfAnnotationStrikeOut struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _fg .PdfObject ;};
// GetContext returns a reference to the subpattern entry: either PdfTilingPattern or PdfShadingPattern.
func (_bcbafe *PdfPattern )GetContext ()PdfModel {return _bcbafe ._ccdc };
// ToPdfObject implements interface PdfModel.
func (_cbad *PdfActionMovie )ToPdfObject ()_fg .PdfObject {_cbad .PdfAction .ToPdfObject ();_fga :=_cbad ._bda ;_dda :=_fga .PdfObject .(*_fg .PdfObjectDictionary );_dda .SetIfNotNil ("\u0053",_fg .MakeName (string (ActionTypeMovie )));_dda .SetIfNotNil ("\u0041\u006e\u006e\u006f\u0074\u0061\u0074\u0069\u006f\u006e",_cbad .Annotation );
_dda .SetIfNotNil ("\u0054",_cbad .T );_dda .SetIfNotNil ("\u004fp\u0065\u0072\u0061\u0074\u0069\u006fn",_cbad .Operation );return _fga ;};
// ToUnicode returns the name of the font's "ToUnicode" field if there is one, or "" if there isn't.
func (_ggegc *PdfFont )ToUnicode ()string {if _ggegc .baseFields ()._agab ==nil {return "";};return _ggegc .baseFields ()._agab .Name ();};func (_faeaa *pdfCIDFontType2 )baseFields ()*fontCommon {return &_faeaa .fontCommon };func (_fgac *PdfWriter )checkPendingObjects (){for _fagaec ,_eeee :=range _fgac ._gcafd {if !_fgac .hasObject (_fagaec ){_aa .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",_fagaec ,_fagaec ,_fagaec );
for _ ,_agca :=range _eeee {for _ ,_gacga :=range _agca .Keys (){_cbcf :=_agca .Get (_gacga );if _cbcf ==_fagaec {_aa .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");
_agca .Set (_gacga ,_fg .MakeNull ());break ;};};};};};};
// ColorToRGB converts a CMYK32 color to an RGB color.
func (_egg *PdfColorspaceDeviceCMYK )ColorToRGB (color PdfColor )(PdfColor ,error ){_acdb ,_dfd :=color .(*PdfColorDeviceCMYK );if !_dfd {_aa .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 ,_ce .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_aebg :=_acdb .C ();_aabb :=_acdb .M ();_cdb :=_acdb .Y ();_adeba :=_acdb .K ();_aebg =_aebg *(1-_adeba )+_adeba ;_aabb =_aabb *(1-_adeba )+_adeba ;
_cdb =_cdb *(1-_adeba )+_adeba ;_ebaa :=1-_aebg ;_acga :=1-_aabb ;_gaag :=1-_cdb ;return NewPdfColorDeviceRGB (_ebaa ,_acga ,_gaag ),nil ;};func _eagac ()string {_baacg .Lock ();defer _baacg .Unlock ();if len (_gfebcg )> 0{return _gfebcg ;};return "\u0055n\u0069\u0044\u006f\u0063 \u002d\u0020\u0068\u0074\u0074p\u003a/\u002fu\u006e\u0069\u0064\u006f\u0063\u002e\u0069o";
};
// PdfRectangle is a definition of a rectangle.
type PdfRectangle struct{Llx float64 ;Lly float64 ;Urx float64 ;Ury float64 ;};var _ pdfFont =(*pdfFontType3 )(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{_ccgg *_fg .PdfParser ;_degeg _fg .PdfObject ;_ecef *_fg .PdfIndirectObject ;_efgae *_fg .PdfObjectDictionary ;_bgce []*_fg .PdfIndirectObject ;PageList []*PdfPage ;_befaa int ;_cgegd *_fg .PdfObjectDictionary ;_cfac *PdfOutlineTreeNode ;
AcroForm *PdfAcroForm ;DSS *DSS ;Rotate *int64 ;_eadc *Permissions ;_cdecg map[*PdfReader ]*PdfReader ;_fdbdd []*PdfReader ;_edebb *modelManager ;_beegg bool ;_aefbbf map[_fg .PdfObject ]struct{};_daega _ff .ReadSeeker ;_cecbe string ;_gfdd bool ;_aegc *ReaderOpts ;
_ecgf bool ;};
// GetCerts returns the signature certificate chain.
func (_ceeeb *PdfSignature )GetCerts ()([]*_ge .Certificate ,error ){var _ecgbg []func ()([]*_ge .Certificate ,error );switch _cbcdce ,_ :=_fg .GetNameVal (_ceeeb .SubFilter );_cbcdce {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":_ecgbg =append (_ecgbg ,_ceeeb .extractChainFromPKCS7 ,_ceeeb .extractChainFromCert );
case "\u0061d\u0062e\u002e\u0078\u0035\u0030\u0039.\u0072\u0073a\u005f\u0073\u0068\u0061\u0031":_ecgbg =append (_ecgbg ,_ceeeb .extractChainFromCert );case "\u0045\u0054\u0053I\u002e\u0052\u0046\u0043\u0033\u0031\u0036\u0031":_ecgbg =append (_ecgbg ,_ceeeb .extractChainFromPKCS7 );
default:return nil ,_d .Errorf ("\u0075n\u0073\u0075\u0070\u0070o\u0072\u0074\u0065\u0064\u0020S\u0075b\u0046i\u006c\u0074\u0065\u0072\u003a\u0020\u0025s",_cbcdce );};for _ ,_afaff :=range _ecgbg {_cfbeb ,_ddddg :=_afaff ();if _ddddg !=nil {return nil ,_ddddg ;
};if len (_cfbeb )> 0{return _cfbeb ,nil ;};};return nil ,ErrSignNoCertificates ;};func (_ggcc *PdfReader )newPdfAnnotationPrinterMarkFromDict (_egde *_fg .PdfObjectDictionary )(*PdfAnnotationPrinterMark ,error ){_gga :=PdfAnnotationPrinterMark {};_gga .MN =_egde .Get ("\u004d\u004e");
return &_gga ,nil ;};
// NewPdfAnnotationRichMedia returns a new rich media annotation.
func NewPdfAnnotationRichMedia ()*PdfAnnotationRichMedia {_begb :=NewPdfAnnotation ();_gfef :=&PdfAnnotationRichMedia {};_gfef .PdfAnnotation =_begb ;_begb .SetContext (_gfef );return _gfef ;};
// SetPageLabels sets the PageLabels entry in the PDF catalog.
// See section 12.4.2 "Page Labels" (p. 382 PDF32000_2008).
func (_cegg *PdfWriter )SetPageLabels (pageLabels _fg .PdfObject )error {if pageLabels ==nil {return nil ;};_aa .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");
_cegg ._cgacf .Set ("\u0050\u0061\u0067\u0065\u004c\u0061\u0062\u0065\u006c\u0073",pageLabels );return _cegg .addObjects (pageLabels );};func (_aggaa *LTV )getCerts (_bfagc []*_ge .Certificate )([][]byte ,error ){_aeaed :=make ([][]byte ,0,len (_bfagc ));
for _ ,_ddee :=range _bfagc {_aeaed =append (_aeaed ,_ddee .Raw );};return _aeaed ,nil ;};
// ToPdfObject implements interface PdfModel.
func (_badb *PdfAnnotationHighlight )ToPdfObject ()_fg .PdfObject {_badb .PdfAnnotation .ToPdfObject ();_gdg :=_badb ._agb ;_fcef :=_gdg .PdfObject .(*_fg .PdfObjectDictionary );_badb .PdfAnnotationMarkup .appendToPdfDictionary (_fcef );_fcef .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fg .MakeName ("\u0048i\u0067\u0068\u006c\u0069\u0067\u0068t"));
_fcef .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_badb .QuadPoints );return _gdg ;};
// ToPdfObject return the CalGray colorspace as a PDF object (name dictionary).
func (_geca *PdfColorspaceCalGray )ToPdfObject ()_fg .PdfObject {_geef :=&_fg .PdfObjectArray {};_geef .Append (_fg .MakeName ("\u0043a\u006c\u0047\u0072\u0061\u0079"));_eeaf :=_fg .MakeDict ();if _geca .WhitePoint !=nil {_eeaf .Set ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074",_fg .MakeArray (_fg .MakeFloat (_geca .WhitePoint [0]),_fg .MakeFloat (_geca .WhitePoint [1]),_fg .MakeFloat (_geca .WhitePoint [2])));
}else {_aa .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 _geca .BlackPoint !=nil {_eeaf .Set ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074",_fg .MakeArray (_fg .MakeFloat (_geca .BlackPoint [0]),_fg .MakeFloat (_geca .BlackPoint [1]),_fg .MakeFloat (_geca .BlackPoint [2])));
};_eeaf .Set ("\u0047\u0061\u006dm\u0061",_fg .MakeFloat (_geca .Gamma ));_geef .Append (_eeaf );if _geca ._ffbdb !=nil {_geca ._ffbdb .PdfObject =_geef ;return _geca ._ffbdb ;};return _geef ;};
// ToPdfObject returns the PDF representation of the shading dictionary.
func (_ggbea *PdfShadingType3 )ToPdfObject ()_fg .PdfObject {_ggbea .PdfShading .ToPdfObject ();_febc ,_cccc :=_ggbea .getShadingDict ();if _cccc !=nil {_aa .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 _ggbea .Coords !=nil {_febc .Set ("\u0043\u006f\u006f\u0072\u0064\u0073",_ggbea .Coords );};if _ggbea .Domain !=nil {_febc .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_ggbea .Domain );};if _ggbea .Function !=nil {if len (_ggbea .Function )==1{_febc .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_ggbea .Function [0].ToPdfObject ());
}else {_aedff :=_fg .MakeArray ();for _ ,_dcfee :=range _ggbea .Function {_aedff .Append (_dcfee .ToPdfObject ());};_febc .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_aedff );};};if _ggbea .Extend !=nil {_febc .Set ("\u0045\u0078\u0074\u0065\u006e\u0064",_ggbea .Extend );
};return _ggbea ._cbabf ;};
// ReplacePage replaces the original page to a new page.
func (_agfdc *PdfAppender )ReplacePage (pageNum int ,page *PdfPage ){_gaab :=pageNum -1;for _edee :=range _agfdc ._agbg {if _edee ==_gaab {_fcba :=page .Duplicate ();_dgfg (_fcba );_agfdc ._agbg [_edee ]=_fcba ;};};};func (_abffaa *PdfWriter )setDocumentIDs (_ffefd ,_accfb string ){_abffaa ._dadgc =_fg .MakeArray (_fg .MakeHexString (_ffefd ),_fg .MakeHexString (_accfb ));
};
// ColorFromPdfObjects returns a new PdfColor based on the input slice of color
// component PDF objects.
func (_afbcc *PdfColorspaceICCBased )ColorFromPdfObjects (objects []_fg .PdfObject )(PdfColor ,error ){if _afbcc .Alternate ==nil {if _afbcc .N ==1{_defc :=NewPdfColorspaceDeviceGray ();return _defc .ColorFromPdfObjects (objects );}else if _afbcc .N ==3{_dccfg :=NewPdfColorspaceDeviceRGB ();
return _dccfg .ColorFromPdfObjects (objects );}else if _afbcc .N ==4{_gedf :=NewPdfColorspaceDeviceCMYK ();return _gedf .ColorFromPdfObjects (objects );}else {return nil ,_ce .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 _afbcc .Alternate .ColorFromPdfObjects (objects );};func (_eaafg Image )getBase ()_cc .ImageBase {return _cc .NewImageBase (int (_eaafg .Width ),int (_eaafg .Height ),int (_eaafg .BitsPerComponent ),_eaafg .ColorComponents ,_eaafg .Data ,_eaafg ._gccd ,_eaafg ._dbge );
};const (RC4_128bit =EncryptionAlgorithm (iota );AES_128bit ;AES_256bit ;);func (_cbfaf *pdfCIDFontType0 )getFontDescriptor ()*PdfFontDescriptor {return _cbfaf ._cdgef };
// ToPdfObject implements interface PdfModel.
func (_acfc *PdfAnnotationSquare )ToPdfObject ()_fg .PdfObject {_acfc .PdfAnnotation .ToPdfObject ();_abc :=_acfc ._agb ;_fba :=_abc .PdfObject .(*_fg .PdfObjectDictionary );if _acfc .PdfAnnotationMarkup !=nil {_acfc .PdfAnnotationMarkup .appendToPdfDictionary (_fba );
};_fba .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fg .MakeName ("\u0053\u0071\u0075\u0061\u0072\u0065"));_fba .SetIfNotNil ("\u0042\u0053",_acfc .BS );_fba .SetIfNotNil ("\u0049\u0043",_acfc .IC );_fba .SetIfNotNil ("\u0042\u0045",_acfc .BE );
_fba .SetIfNotNil ("\u0052\u0044",_acfc .RD );return _abc ;};
// 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 (_gfeb *PdfColorspaceDeviceGray )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=1{return nil ,_ce .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_bege :=vals [0];if _bege < 0.0||_bege > 1.0{_aa .Log .Debug ("\u0049\u006eco\u006d\u0070\u0061t\u0069\u0062\u0069\u006city\u003a R\u0061\u006e\u0067\u0065\u0020\u006f\u0075ts\u0069\u0064\u0065\u0020\u005b\u0030\u002c1\u005d");
};if _bege < 0.0{_bege =0.0;}else if _bege > 1.0{_bege =1.0;};return NewPdfColorDeviceGray (_bege ),nil ;};func _fedacb (_fafde []byte )[]byte {const _deabe =52845;const _gebg =22719;_bdea :=55665;for _ ,_ecacea :=range _fafde [:4]{_bdea =(int (_ecacea )+_bdea )*_deabe +_gebg ;
};_gaed :=make ([]byte ,len (_fafde )-4);for _ddfac ,_cbaae :=range _fafde [4:]{_gaed [_ddfac ]=byte (int (_cbaae )^_bdea >>8);_bdea =(int (_cbaae )+_bdea )*_deabe +_gebg ;};return _gaed ;};func (_cagd *PdfReader )newPdfAnnotationMovieFromDict (_cec *_fg .PdfObjectDictionary )(*PdfAnnotationMovie ,error ){_fcee :=PdfAnnotationMovie {};
_fcee .T =_cec .Get ("\u0054");_fcee .Movie =_cec .Get ("\u004d\u006f\u0076i\u0065");_fcee .A =_cec .Get ("\u0041");return &_fcee ,nil ;};
// NewPdfActionSubmitForm returns a new "submit form" action.
func NewPdfActionSubmitForm ()*PdfActionSubmitForm {_bggc :=NewPdfAction ();_eea :=&PdfActionSubmitForm {};_eea .PdfAction =_bggc ;_bggc .SetContext (_eea );return _eea ;};
// 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 };};
// 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 *_fg .PdfIndirectObject `json:"-"`;Page int64 `json:"page"`;Mode string `json:"mode"`;X float64 `json:"x"`;Y float64 `json:"y"`;Zoom float64 `json:"zoom"`;};
// BorderStyle defines border type, typically used for annotations.
type BorderStyle int ;
// SetFlag sets the flag for the field.
func (_feca *PdfField )SetFlag (flag FieldFlag ){_feca .Ff =_fg .MakeInteger (int64 (flag ))};
// PdfAnnotationFileAttachment represents FileAttachment annotations.
// (Section 12.5.6.15).
type PdfAnnotationFileAttachment struct{*PdfAnnotation ;*PdfAnnotationMarkup ;FS _fg .PdfObject ;Name _fg .PdfObject ;};
// ToPdfObject implements interface PdfModel.
func (_abfb *PdfAnnotationPolygon )ToPdfObject ()_fg .PdfObject {_abfb .PdfAnnotation .ToPdfObject ();_acggc :=_abfb ._agb ;_ddbe :=_acggc .PdfObject .(*_fg .PdfObjectDictionary );_abfb .PdfAnnotationMarkup .appendToPdfDictionary (_ddbe );_ddbe .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fg .MakeName ("\u0050o\u006c\u0079\u0067\u006f\u006e"));
_ddbe .SetIfNotNil ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073",_abfb .Vertices );_ddbe .SetIfNotNil ("\u004c\u0045",_abfb .LE );_ddbe .SetIfNotNil ("\u0042\u0053",_abfb .BS );_ddbe .SetIfNotNil ("\u0049\u0043",_abfb .IC );_ddbe .SetIfNotNil ("\u0042\u0045",_abfb .BE );
_ddbe .SetIfNotNil ("\u0049\u0054",_abfb .IT );_ddbe .SetIfNotNil ("\u004de\u0061\u0073\u0075\u0072\u0065",_abfb .Measure );return _acggc ;};
// PdfOutputIntent provides a means for matching the color characteristics of a PDF document with
// those of a target output device.
// Multiple PdfOutputIntents allows the production process to be customized to the expected workflow and the specific
// tools available.
type PdfOutputIntent struct{
// Type is an optional PDF object that this dictionary describes.
// If present, must be OutputIntent for an output intent dictionary.
Type string ;
// S defines the OutputIntent subtype which should match the standard used in given document i.e:
// for PDF/X use PdfOutputIntentTypeX.
S PdfOutputIntentType ;
// OutputCondition is an optional field that is identifying the intended output device or production condition in
// human-readable form. This is preferred method of defining such a string for presentation to the user.
OutputCondition string ;
// OutputConditionIdentifier is a required field identifying the intended output device or production condition in
// human or machine-readable form. If human-readable, this string may be used
// in lieu of an OutputCondition for presentation to the user.
// A typical value for this entry would be the name of a production condition maintained
// in an industry-standard registry such as the ICC Characterization Data Registry
// If the intended production condition is not a recognized standard, the value Custom is recommended for this entry.
// the DestOutputProfile entry defines the ICC profile, and the Info entry is used for further
// human-readable identification.
OutputConditionIdentifier string ;
// RegistryName is an optional string field (conventionally URI) identifying the registry in which the condition
// designated by OutputConditionIdentifier is defined.
RegistryName string ;
// Info is a required field if OutputConditionIdentifier does not specify a standard production condition.
// A human-readable text string containing additional information or comments about intended
// target device or production condition.
Info string ;
// DestOutputProfile is required if OutputConditionIdentifier does not specify a standard production condition.
// It is an ICC profile stream defining the transformation from the PDF document's source colors to output device colorants.
DestOutputProfile []byte ;
// ColorComponents is the number of color components supported by given output profile.
ColorComponents int ;_geaa *_fg .PdfObjectDictionary ;};
// NewPdfColorspaceDeviceRGB returns a new RGB colorspace object.
func NewPdfColorspaceDeviceRGB ()*PdfColorspaceDeviceRGB {return &PdfColorspaceDeviceRGB {}};
// GetPageLabels returns the PageLabels entry in the PDF catalog.
// See section 12.4.2 "Page Labels" (p. 382 PDF32000_2008).
func (_gedaf *PdfReader )GetPageLabels ()(_fg .PdfObject ,error ){_fbgfcf :=_fg .ResolveReference (_gedaf ._cgegd .Get ("\u0050\u0061\u0067\u0065\u004c\u0061\u0062\u0065\u006c\u0073"));if _fbgfcf ==nil {return nil ,nil ;};if !_gedaf ._beegg {_beafb :=_gedaf .traverseObjectData (_fbgfcf );
if _beafb !=nil {return nil ,_beafb ;};};return _fbgfcf ,nil ;};
// ToPdfObject returns colorspace in a PDF object format [name stream]
func (_eebg *PdfColorspaceICCBased )ToPdfObject ()_fg .PdfObject {_eadff :=&_fg .PdfObjectArray {};_eadff .Append (_fg .MakeName ("\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064"));var _cgfcf *_fg .PdfObjectStream ;if _eebg ._cebf !=nil {_cgfcf =_eebg ._cebf ;
}else {_cgfcf =&_fg .PdfObjectStream {};};_egge :=_fg .MakeDict ();_egge .Set ("\u004e",_fg .MakeInteger (int64 (_eebg .N )));if _eebg .Alternate !=nil {_egge .Set ("\u0041l\u0074\u0065\u0072\u006e\u0061\u0074e",_eebg .Alternate .ToPdfObject ());};if _eebg .Metadata !=nil {_egge .Set ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061",_eebg .Metadata );
};if _eebg .Range !=nil {var _eggf []_fg .PdfObject ;for _ ,_bbcd :=range _eebg .Range {_eggf =append (_eggf ,_fg .MakeFloat (_bbcd ));};_egge .Set ("\u0052\u0061\u006eg\u0065",_fg .MakeArray (_eggf ...));};_egge .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_fg .MakeInteger (int64 (len (_eebg .Data ))));
_cgfcf .Stream =_eebg .Data ;_cgfcf .PdfObjectDictionary =_egge ;_eadff .Append (_cgfcf );if _eebg ._dgca !=nil {_eebg ._dgca .PdfObject =_eadff ;return _eebg ._dgca ;};return _eadff ;};
// ImageToRGB converts Lab colorspace image to RGB and returns the result.
func (_afba *PdfColorspaceLab )ImageToRGB (img Image )(Image ,error ){_gebeg :=func (_eae float64 )float64 {if _eae >=6.0/29{return _eae *_eae *_eae ;};return 108.0/841*(_eae -4.0/29.0);};_bbccg :=img ._dbge ;if len (_bbccg )!=6{_aa .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");
_bbccg =_afba .DecodeArray ();};_gdcf :=_ade .NewReader (img .getBase ());_gfgg :=_cc .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),3,nil ,img ._gccd ,img ._dbge );_cggc :=_ade .NewWriter (_gfgg );_cgcf :=_ef .Pow (2,float64 (img .BitsPerComponent ))-1;
_eded :=make ([]uint32 ,3);var (_gcdfa error ;Ls ,As ,Bs ,L ,M ,N ,X ,Y ,Z ,_cgfcd ,_agga ,_ebgg float64 ;);for {_gcdfa =_gdcf .ReadSamples (_eded );if _gcdfa ==_ff .EOF {break ;}else if _gcdfa !=nil {return img ,_gcdfa ;};Ls =float64 (_eded [0])/_cgcf ;
As =float64 (_eded [1])/_cgcf ;Bs =float64 (_eded [2])/_cgcf ;Ls =_cc .LinearInterpolate (Ls ,0.0,1.0,_bbccg [0],_bbccg [1]);As =_cc .LinearInterpolate (As ,0.0,1.0,_bbccg [2],_bbccg [3]);Bs =_cc .LinearInterpolate (Bs ,0.0,1.0,_bbccg [4],_bbccg [5]);L =(Ls +16)/116+As /500;
M =(Ls +16)/116;N =(Ls +16)/116-Bs /200;X =_afba .WhitePoint [0]*_gebeg (L );Y =_afba .WhitePoint [1]*_gebeg (M );Z =_afba .WhitePoint [2]*_gebeg (N );_cgfcd =3.240479*X +-1.537150*Y +-0.498535*Z ;_agga =-0.969256*X +1.875992*Y +0.041556*Z ;_ebgg =0.055648*X +-0.204043*Y +1.057311*Z ;
_cgfcd =_ef .Min (_ef .Max (_cgfcd ,0),1.0);_agga =_ef .Min (_ef .Max (_agga ,0),1.0);_ebgg =_ef .Min (_ef .Max (_ebgg ,0),1.0);_eded [0]=uint32 (_cgfcd *_cgcf );_eded [1]=uint32 (_agga *_cgcf );_eded [2]=uint32 (_ebgg *_cgcf );if _gcdfa =_cggc .WriteSamples (_eded );
_gcdfa !=nil {return img ,_gcdfa ;};};return _adad (&_gfgg ),nil ;};
// ImageToRGB convert 1-component grayscale data to 3-component RGB.
func (_bcbe *PdfColorspaceDeviceGray )ImageToRGB (img Image )(Image ,error ){if img .ColorComponents !=1{return img ,_ce .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");
};_aacd ,_aced :=_cc .NewImage (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),img .ColorComponents ,img .Data ,img ._gccd ,img ._dbge );if _aced !=nil {return img ,_aced ;};_aebb ,_aced :=_cc .NRGBAConverter .Convert (_aacd );if _aced !=nil {return img ,_aced ;
};_bcbac :=_adad (_aebb .Base ());_aa .Log .Trace ("\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079\u0020\u002d>\u0020\u0052\u0047\u0042");_aa .Log .Trace ("s\u0061\u006d\u0070\u006c\u0065\u0073\u003a\u0020\u0025\u0076",img .Data );_aa .Log .Trace ("\u0052G\u0042 \u0073\u0061\u006d\u0070\u006c\u0065\u0073\u003a\u0020\u0025\u0076",_bcbac .Data );
_aa .Log .Trace ("\u0025\u0076\u0020\u002d\u003e\u0020\u0025\u0076",img ,_bcbac );return _bcbac ,nil ;};var _aeagc =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"};
// 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 (_bbcdg *Image )ConvertToBinary ()error {if _bbcdg .ColorComponents ==1&&_bbcdg .BitsPerComponent ==1{return nil ;};_cafaf ,_eefdc :=_bbcdg .ToGoImage ();if _eefdc !=nil {return _eefdc ;};_bacge ,_eefdc :=_cc .MonochromeConverter .Convert (_cafaf );
if _eefdc !=nil {return _eefdc ;};_bbcdg .Data =_bacge .Base ().Data ;_bbcdg ._gccd ,_eefdc =_cc .ScaleAlphaToMonochrome (_bbcdg ._gccd ,int (_bbcdg .Width ),int (_bbcdg .Height ));if _eefdc !=nil {return _eefdc ;};_bbcdg .BitsPerComponent =1;_bbcdg .ColorComponents =1;
_bbcdg ._dbge =nil ;return nil ;};
// Decrypt decrypts the PDF file with a specified password. Also tries to
// decrypt with an empty password. Returns true if successful,
// false otherwise.
func (_bfdc *PdfReader )Decrypt (password []byte )(bool ,error ){_bcagc ,_gaffa :=_bfdc ._ccgg .Decrypt (password );if _gaffa !=nil {return false ,_gaffa ;};if !_bcagc {return false ,nil ;};_gaffa =_bfdc .loadStructure ();if _gaffa !=nil {_aa .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",_gaffa );
return false ,_gaffa ;};return true ,nil ;};
// NewPdfAnnotation returns an initialized generic PDF annotation model.
func NewPdfAnnotation ()*PdfAnnotation {_badf :=&PdfAnnotation {};_badf ._agb =_fg .MakeIndirectObject (_fg .MakeDict ());return _badf ;};
// PdfAnnotationRichMedia represents Rich Media annotations.
type PdfAnnotationRichMedia struct{*PdfAnnotation ;RichMediaSettings _fg .PdfObject ;RichMediaContent _fg .PdfObject ;};func (_ddecg *pdfFontSimple )updateStandard14Font (){_cgad ,_gdacf :=_ddecg .Encoder ().(_dg .SimpleEncoder );if !_gdacf {_aa .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",_ddecg .Encoder (),_ddecg );
return ;};_afgce :=_cgad .Charcodes ();_ddecg ._fcgbd =make (map[_dg .CharCode ]float64 ,len (_afgce ));for _ ,_edfdf :=range _afgce {_becdf ,_ :=_cgad .CharcodeToRune (_edfdf );_dggaf ,_ :=_ddecg ._dacg .Read (_becdf );_ddecg ._fcgbd [_edfdf ]=_dggaf .Wx ;
};};
// ColorToRGB converts a ICCBased color to an RGB color.
func (_cfff *PdfColorspaceICCBased )ColorToRGB (color PdfColor )(PdfColor ,error ){if _cfff .Alternate ==nil {_aa .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 _cfff .N ==1{_aa .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");
_ecfa :=NewPdfColorspaceDeviceGray ();return _ecfa .ColorToRGB (color );}else if _cfff .N ==3{_aa .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 _cfff .N ==4{_aa .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");
_abeg :=NewPdfColorspaceDeviceCMYK ();return _abeg .ColorToRGB (color );}else {return nil ,_ce .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");
};};_aa .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",_cfff );
return _cfff .Alternate .ColorToRGB (color );};func _ebff (_bccg *_fg .PdfObjectDictionary ,_bcegg *fontCommon )(*pdfCIDFontType0 ,error ){if _bcegg ._ggcfc !="\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0030"{_aa .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",_bcegg );
return nil ,_fg .ErrRangeError ;};_cgeg :=_bcdga (_bcegg );_bdbgb ,_caee :=_fg .GetDict (_bccg .Get ("\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f"));if !_caee {_aa .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",_bcegg );
return nil ,ErrRequiredAttributeMissing ;};_cgeg .CIDSystemInfo =_bdbgb ;_cgeg .DW =_bccg .Get ("\u0044\u0057");_cgeg .W =_bccg .Get ("\u0057");_cgeg .DW2 =_bccg .Get ("\u0044\u0057\u0032");_cgeg .W2 =_bccg .Get ("\u0057\u0032");_cgeg ._cgda =1000.0;if _cacdb ,_eagdc :=_fg .GetNumberAsFloat (_cgeg .DW );
_eagdc ==nil {_cgeg ._cgda =_cacdb ;};_gaagg ,_aecac :=_bcabg (_cgeg .W );if _aecac !=nil {return nil ,_aecac ;};if _gaagg ==nil {_gaagg =map[_dg .CharCode ]float64 {};};_cgeg ._fceed =_gaagg ;return _cgeg ,nil ;};const (ActionTypeGoTo PdfActionType ="\u0047\u006f\u0054\u006f";
ActionTypeGoTo3DView PdfActionType ="\u0047\u006f\u0054\u006f\u0033\u0044\u0056\u0069\u0065\u0077";ActionTypeGoToE PdfActionType ="\u0047\u006f\u0054o\u0045";ActionTypeGoToR PdfActionType ="\u0047\u006f\u0054o\u0052";ActionTypeHide PdfActionType ="\u0048\u0069\u0064\u0065";
ActionTypeImportData PdfActionType ="\u0049\u006d\u0070\u006f\u0072\u0074\u0044\u0061\u0074\u0061";ActionTypeJavaScript PdfActionType ="\u004a\u0061\u0076\u0061\u0053\u0063\u0072\u0069\u0070\u0074";ActionTypeLaunch PdfActionType ="\u004c\u0061\u0075\u006e\u0063\u0068";
ActionTypeMovie PdfActionType ="\u004d\u006f\u0076i\u0065";ActionTypeNamed PdfActionType ="\u004e\u0061\u006de\u0064";ActionTypeRendition PdfActionType ="\u0052e\u006e\u0064\u0069\u0074\u0069\u006fn";ActionTypeResetForm PdfActionType ="\u0052e\u0073\u0065\u0074\u0046\u006f\u0072m";
ActionTypeSetOCGState PdfActionType ="S\u0065\u0074\u004f\u0043\u0047\u0053\u0074\u0061\u0074\u0065";ActionTypeSound PdfActionType ="\u0053\u006f\u0075n\u0064";ActionTypeSubmitForm PdfActionType ="\u0053\u0075\u0062\u006d\u0069\u0074\u0046\u006f\u0072\u006d";
ActionTypeThread PdfActionType ="\u0054\u0068\u0072\u0065\u0061\u0064";ActionTypeTrans PdfActionType ="\u0054\u0072\u0061n\u0073";ActionTypeURI PdfActionType ="\u0055\u0052\u0049";);
// ToInteger convert to an integer format.
func (_dcbfb *PdfColorLab )ToInteger (bits int )[3]uint32 {_bgeg :=_ef .Pow (2,float64 (bits ))-1;return [3]uint32 {uint32 (_bgeg *_dcbfb .L ()),uint32 (_bgeg *_dcbfb .A ()),uint32 (_bgeg *_dcbfb .B ())};};
// NewPdfOutlineItem returns an initialized PdfOutlineItem.
func NewPdfOutlineItem ()*PdfOutlineItem {_ccefb :=&PdfOutlineItem {_aeadb :_fg .MakeIndirectObject (_fg .MakeDict ())};_ccefb ._gfcge =_ccefb ;return _ccefb ;};
// PdfAnnotationSound represents Sound annotations.
// (Section 12.5.6.16).
type PdfAnnotationSound struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Sound _fg .PdfObject ;Name _fg .PdfObject ;};
// CustomKeys returns all custom info keys as list.
func (_eedbb *PdfInfo )CustomKeys ()[]string {if _eedbb ._aaee ==nil {return nil ;};_ffgg :=make ([]string ,len (_eedbb ._aaee .Keys ()));for _ ,_abge :=range _eedbb ._aaee .Keys (){_ffgg =append (_ffgg ,_abge .String ());};return _ffgg ;};
// NewPdfAnnotationHighlight returns a new text highlight annotation.
func NewPdfAnnotationHighlight ()*PdfAnnotationHighlight {_ggfb :=NewPdfAnnotation ();_ecac :=&PdfAnnotationHighlight {};_ecac .PdfAnnotation =_ggfb ;_ecac .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_ggfb .SetContext (_ecac );return _ecac ;};func _bdfge ()string {_baacg .Lock ();
defer _baacg .Unlock ();return _ebfgc };
// SetDate sets the `M` field of the signature.
func (_cdcbga *PdfSignature )SetDate (date _g .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";};_cdcbga .M =_fg .MakeString (date .Format (format ));
};
// NewXObjectFormFromStream builds the Form XObject from a stream object.
// TODO: Should this be exposed? Consider different access points.
func NewXObjectFormFromStream (stream *_fg .PdfObjectStream )(*XObjectForm ,error ){_dabddb :=&XObjectForm {};_dabddb ._bdage =stream ;_acegff :=*(stream .PdfObjectDictionary );_dffg ,_ggfcd :=_fg .NewEncoderFromStream (stream );if _ggfcd !=nil {return nil ,_ggfcd ;
};_dabddb .Filter =_dffg ;if _ceadb :=_acegff .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065");_ceadb !=nil {_eedc ,_eeeac :=_ceadb .(*_fg .PdfObjectName );if !_eeeac {return nil ,_ce .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");
};if *_eedc !="\u0046\u006f\u0072\u006d"{_aa .Log .Debug ("I\u006ev\u0061\u006c\u0069\u0064\u0020\u0066\u006f\u0072m\u0020\u0073\u0075\u0062ty\u0070\u0065");return nil ,_ce .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0066\u006f\u0072m\u0020\u0073\u0075\u0062ty\u0070\u0065");
};};if _fegcg :=_acegff .Get ("\u0046\u006f\u0072\u006d\u0054\u0079\u0070\u0065");_fegcg !=nil {_dabddb .FormType =_fegcg ;};if _edddg :=_acegff .Get ("\u0042\u0042\u006f\u0078");_edddg !=nil {_dabddb .BBox =_edddg ;};if _bcfac :=_acegff .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");
_bcfac !=nil {_dabddb .Matrix =_bcfac ;};if _bcebe :=_acegff .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");_bcebe !=nil {_bcebe =_fg .TraceToDirectObject (_bcebe );_bddbc ,_aeegb :=_bcebe .(*_fg .PdfObjectDictionary );if !_aeegb {_aa .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 ,_fg .ErrTypeError ;};_befaf ,_becbb :=NewPdfPageResourcesFromDict (_bddbc );if _becbb !=nil {_aa .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 ,_becbb ;};_dabddb .Resources =_befaf ;_aa .Log .Trace ("\u0046\u006f\u0072\u006d r\u0065\u0073\u006f\u0075\u0072\u0063\u0065\u0073\u003a\u0020\u0025\u0023\u0076",_dabddb .Resources );};_dabddb .Group =_acegff .Get ("\u0047\u0072\u006fu\u0070");
_dabddb .Ref =_acegff .Get ("\u0052\u0065\u0066");_dabddb .MetaData =_acegff .Get ("\u004d\u0065\u0074\u0061\u0044\u0061\u0074\u0061");_dabddb .PieceInfo =_acegff .Get ("\u0050i\u0065\u0063\u0065\u0049\u006e\u0066o");_dabddb .LastModified =_acegff .Get ("\u004c\u0061\u0073t\u004d\u006f\u0064\u0069\u0066\u0069\u0065\u0064");
_dabddb .StructParent =_acegff .Get ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074");_dabddb .StructParents =_acegff .Get ("\u0053\u0074\u0072\u0075\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074\u0073");_dabddb .OPI =_acegff .Get ("\u004f\u0050\u0049");
_dabddb .OC =_acegff .Get ("\u004f\u0043");_dabddb .Name =_acegff .Get ("\u004e\u0061\u006d\u0065");_dabddb .Stream =stream .Stream ;return _dabddb ,nil ;};