unipdf/model/model.go
2023-08-03 17:30:04 +00:00

4981 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 (_c "bufio";_aa "bytes";_ab "crypto/md5";_gd "crypto/rand";_fg "crypto/sha1";_fc "crypto/x509";_fd "encoding/binary";_g "encoding/hex";_db "errors";_f "fmt";_dge "github.com/unidoc/pkcs7";_ac "github.com/unidoc/unipdf/v3/common";_ae "github.com/unidoc/unipdf/v3/core";
_ff "github.com/unidoc/unipdf/v3/core/security";_ee "github.com/unidoc/unipdf/v3/core/security/crypt";_abg "github.com/unidoc/unipdf/v3/internal/cmap";_afc "github.com/unidoc/unipdf/v3/internal/imageutil";_gcg "github.com/unidoc/unipdf/v3/internal/license";
_ba "github.com/unidoc/unipdf/v3/internal/sampling";_bgg "github.com/unidoc/unipdf/v3/internal/textencoding";_ec "github.com/unidoc/unipdf/v3/internal/timeutils";_ecc "github.com/unidoc/unipdf/v3/internal/transform";_ed "github.com/unidoc/unipdf/v3/model/internal/docutil";
_cb "github.com/unidoc/unipdf/v3/model/internal/fonts";_dbg "github.com/unidoc/unipdf/v3/model/mdp";_ce "github.com/unidoc/unipdf/v3/model/sigutil";_ace "github.com/unidoc/unipdf/v3/ps";_ggc "github.com/unidoc/unitype";_bcg "golang.org/x/xerrors";_b "hash";
_de "image";_gg "image/color";_ "image/gif";_ "image/png";_gdc "io";_abc "io/ioutil";_ag "math";_dd "math/rand";_af "os";_bc "regexp";_cf "sort";_bg "strconv";_eg "strings";_e "sync";_d "time";_dg "unicode";_fa "unicode/utf8";);
// ToPdfObject converts the PdfPage to a dictionary within an indirect object container.
func (_gagd *PdfPage )ToPdfObject ()_ae .PdfObject {_cggge :=_gagd ._egbbg ;_gagd .GetPageDict ();return _cggge ;};
// SetBorderWidth sets the style's border width.
func (_gbef *PdfBorderStyle )SetBorderWidth (width float64 ){_gbef .W =&width };func (_aacb *PdfColorspaceICCBased )String ()string {return "\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064";};func (_cbea *PdfReader )newPdfAnnotationFromIndirectObject (_fcee *_ae .PdfIndirectObject )(*PdfAnnotation ,error ){_deec ,_fcc :=_fcee .PdfObject .(*_ae .PdfObjectDictionary );
if !_fcc {return nil ,_f .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 :=_cbea ._gdbcb .GetModelFromPrimitive (_deec );model !=nil {_ebb ,_dcdb :=model .(*PdfAnnotation );if !_dcdb {return nil ,_f .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 _ebb ,nil ;};_beag :=&PdfAnnotation {};_beag ._gcgf =_fcee ;_cbea ._gdbcb .Register (_deec ,_beag );if _ggga :=_deec .Get ("\u0054\u0079\u0070\u0065");_ggga !=nil {_cdcb ,_afgf :=_ggga .(*_ae .PdfObjectName );if !_afgf {_ac .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",_ggga );
}else {if *_cdcb !="\u0041\u006e\u006eo\u0074"{_ac .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",*_cdcb );};};};
if _gaf :=_deec .Get ("\u0052\u0065\u0063\u0074");_gaf !=nil {_beag .Rect =_gaf ;};if _gfg :=_deec .Get ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073");_gfg !=nil {_beag .Contents =_gfg ;};if _cfe :=_deec .Get ("\u0050");_cfe !=nil {_beag .P =_cfe ;
};if _bbdf :=_deec .Get ("\u004e\u004d");_bbdf !=nil {_beag .NM =_bbdf ;};if _cgac :=_deec .Get ("\u004d");_cgac !=nil {_beag .M =_cgac ;};if _cedd :=_deec .Get ("\u0046");_cedd !=nil {_beag .F =_cedd ;};if _efb :=_deec .Get ("\u0041\u0050");_efb !=nil {_beag .AP =_efb ;
};if _cba :=_deec .Get ("\u0041\u0053");_cba !=nil {_beag .AS =_cba ;};if _adfa :=_deec .Get ("\u0042\u006f\u0072\u0064\u0065\u0072");_adfa !=nil {_beag .Border =_adfa ;};if _edb :=_deec .Get ("\u0043");_edb !=nil {_beag .C =_edb ;};if _gaff :=_deec .Get ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074");
_gaff !=nil {_beag .StructParent =_gaff ;};if _cbcd :=_deec .Get ("\u004f\u0043");_cbcd !=nil {_beag .OC =_cbcd ;};_dgba :=_deec .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065");if _dgba ==nil {_ac .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");
_beag ._ggd =nil ;return _beag ,nil ;};_dgee ,_bdd :=_dgba .(*_ae .PdfObjectName );if !_bdd {_ac .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",_dgba );
return nil ,_f .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",_dgba );};switch *_dgee {case "\u0054\u0065\u0078\u0074":_dbac ,_ecbf :=_cbea .newPdfAnnotationTextFromDict (_deec );
if _ecbf !=nil {return nil ,_ecbf ;};_dbac .PdfAnnotation =_beag ;_beag ._ggd =_dbac ;return _beag ,nil ;case "\u004c\u0069\u006e\u006b":_bced ,_bdc :=_cbea .newPdfAnnotationLinkFromDict (_deec );if _bdc !=nil {return nil ,_bdc ;};_bced .PdfAnnotation =_beag ;
_beag ._ggd =_bced ;return _beag ,nil ;case "\u0046\u0072\u0065\u0065\u0054\u0065\u0078\u0074":_dbga ,_aeca :=_cbea .newPdfAnnotationFreeTextFromDict (_deec );if _aeca !=nil {return nil ,_aeca ;};_dbga .PdfAnnotation =_beag ;_beag ._ggd =_dbga ;return _beag ,nil ;
case "\u004c\u0069\u006e\u0065":_bagf ,_fafg :=_cbea .newPdfAnnotationLineFromDict (_deec );if _fafg !=nil {return nil ,_fafg ;};_bagf .PdfAnnotation =_beag ;_beag ._ggd =_bagf ;_ac .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",_beag ,_beag );
_ac .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",_bagf ,_bagf );_ac .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",_bagf .PdfAnnotationMarkup ,_bagf .PdfAnnotationMarkup );
return _beag ,nil ;case "\u0053\u0071\u0075\u0061\u0072\u0065":_cda ,_dgdg :=_cbea .newPdfAnnotationSquareFromDict (_deec );if _dgdg !=nil {return nil ,_dgdg ;};_cda .PdfAnnotation =_beag ;_beag ._ggd =_cda ;return _beag ,nil ;case "\u0043\u0069\u0072\u0063\u006c\u0065":_fced ,_befd :=_cbea .newPdfAnnotationCircleFromDict (_deec );
if _befd !=nil {return nil ,_befd ;};_fced .PdfAnnotation =_beag ;_beag ._ggd =_fced ;return _beag ,nil ;case "\u0050o\u006c\u0079\u0067\u006f\u006e":_aae ,_dega :=_cbea .newPdfAnnotationPolygonFromDict (_deec );if _dega !=nil {return nil ,_dega ;};_aae .PdfAnnotation =_beag ;
_beag ._ggd =_aae ;return _beag ,nil ;case "\u0050\u006f\u006c\u0079\u004c\u0069\u006e\u0065":_ccde ,_bafb :=_cbea .newPdfAnnotationPolyLineFromDict (_deec );if _bafb !=nil {return nil ,_bafb ;};_ccde .PdfAnnotation =_beag ;_beag ._ggd =_ccde ;return _beag ,nil ;
case "\u0048i\u0067\u0068\u006c\u0069\u0067\u0068t":_eecb ,_dgdc :=_cbea .newPdfAnnotationHighlightFromDict (_deec );if _dgdc !=nil {return nil ,_dgdc ;};_eecb .PdfAnnotation =_beag ;_beag ._ggd =_eecb ;return _beag ,nil ;case "\u0055n\u0064\u0065\u0072\u006c\u0069\u006ee":_eeb ,_gdd :=_cbea .newPdfAnnotationUnderlineFromDict (_deec );
if _gdd !=nil {return nil ,_gdd ;};_eeb .PdfAnnotation =_beag ;_beag ._ggd =_eeb ;return _beag ,nil ;case "\u0053\u0071\u0075\u0069\u0067\u0067\u006c\u0079":_daac ,_aefe :=_cbea .newPdfAnnotationSquigglyFromDict (_deec );if _aefe !=nil {return nil ,_aefe ;
};_daac .PdfAnnotation =_beag ;_beag ._ggd =_daac ;return _beag ,nil ;case "\u0053t\u0072\u0069\u006b\u0065\u004f\u0075t":_gagg ,_aega :=_cbea .newPdfAnnotationStrikeOut (_deec );if _aega !=nil {return nil ,_aega ;};_gagg .PdfAnnotation =_beag ;_beag ._ggd =_gagg ;
return _beag ,nil ;case "\u0043\u0061\u0072e\u0074":_deaa ,_bedg :=_cbea .newPdfAnnotationCaretFromDict (_deec );if _bedg !=nil {return nil ,_bedg ;};_deaa .PdfAnnotation =_beag ;_beag ._ggd =_deaa ;return _beag ,nil ;case "\u0053\u0074\u0061m\u0070":_fdc ,_ceddb :=_cbea .newPdfAnnotationStampFromDict (_deec );
if _ceddb !=nil {return nil ,_ceddb ;};_fdc .PdfAnnotation =_beag ;_beag ._ggd =_fdc ;return _beag ,nil ;case "\u0049\u006e\u006b":_bcag ,_edc :=_cbea .newPdfAnnotationInkFromDict (_deec );if _edc !=nil {return nil ,_edc ;};_bcag .PdfAnnotation =_beag ;
_beag ._ggd =_bcag ;return _beag ,nil ;case "\u0050\u006f\u0070u\u0070":_ddg ,_bcdf :=_cbea .newPdfAnnotationPopupFromDict (_deec );if _bcdf !=nil {return nil ,_bcdf ;};_ddg .PdfAnnotation =_beag ;_beag ._ggd =_ddg ;return _beag ,nil ;case "\u0046\u0069\u006c\u0065\u0041\u0074\u0074\u0061\u0063h\u006d\u0065\u006e\u0074":_bgdf ,_bdb :=_cbea .newPdfAnnotationFileAttachmentFromDict (_deec );
if _bdb !=nil {return nil ,_bdb ;};_bgdf .PdfAnnotation =_beag ;_beag ._ggd =_bgdf ;return _beag ,nil ;case "\u0053\u006f\u0075n\u0064":_gbg ,_bbe :=_cbea .newPdfAnnotationSoundFromDict (_deec );if _bbe !=nil {return nil ,_bbe ;};_gbg .PdfAnnotation =_beag ;
_beag ._ggd =_gbg ;return _beag ,nil ;case "\u0052i\u0063\u0068\u004d\u0065\u0064\u0069a":_feec ,_caea :=_cbea .newPdfAnnotationRichMediaFromDict (_deec );if _caea !=nil {return nil ,_caea ;};_feec .PdfAnnotation =_beag ;_beag ._ggd =_feec ;return _beag ,nil ;
case "\u004d\u006f\u0076i\u0065":_cdad ,_fccc :=_cbea .newPdfAnnotationMovieFromDict (_deec );if _fccc !=nil {return nil ,_fccc ;};_cdad .PdfAnnotation =_beag ;_beag ._ggd =_cdad ;return _beag ,nil ;case "\u0053\u0063\u0072\u0065\u0065\u006e":_aege ,_debe :=_cbea .newPdfAnnotationScreenFromDict (_deec );
if _debe !=nil {return nil ,_debe ;};_aege .PdfAnnotation =_beag ;_beag ._ggd =_aege ;return _beag ,nil ;case "\u0057\u0069\u0064\u0067\u0065\u0074":_gedc ,_cdcg :=_cbea .newPdfAnnotationWidgetFromDict (_deec );if _cdcg !=nil {return nil ,_cdcg ;};_gedc .PdfAnnotation =_beag ;
_beag ._ggd =_gedc ;return _beag ,nil ;case "P\u0072\u0069\u006e\u0074\u0065\u0072\u004d\u0061\u0072\u006b":_eccd ,_bgc :=_cbea .newPdfAnnotationPrinterMarkFromDict (_deec );if _bgc !=nil {return nil ,_bgc ;};_eccd .PdfAnnotation =_beag ;_beag ._ggd =_eccd ;
return _beag ,nil ;case "\u0054r\u0061\u0070\u004e\u0065\u0074":_fdg ,_dfae :=_cbea .newPdfAnnotationTrapNetFromDict (_deec );if _dfae !=nil {return nil ,_dfae ;};_fdg .PdfAnnotation =_beag ;_beag ._ggd =_fdg ;return _beag ,nil ;case "\u0057a\u0074\u0065\u0072\u006d\u0061\u0072k":_fag ,_gcc :=_cbea .newPdfAnnotationWatermarkFromDict (_deec );
if _gcc !=nil {return nil ,_gcc ;};_fag .PdfAnnotation =_beag ;_beag ._ggd =_fag ;return _beag ,nil ;case "\u0033\u0044":_aaeb ,_aecc :=_cbea .newPdfAnnotation3DFromDict (_deec );if _aecc !=nil {return nil ,_aecc ;};_aaeb .PdfAnnotation =_beag ;_beag ._ggd =_aaeb ;
return _beag ,nil ;case "\u0050\u0072\u006f\u006a\u0065\u0063\u0074\u0069\u006f\u006e":_ffb ,_bdf :=_cbea .newPdfAnnotationProjectionFromDict (_deec );if _bdf !=nil {return nil ,_bdf ;};_ffb .PdfAnnotation =_beag ;_beag ._ggd =_ffb ;return _beag ,nil ;
case "\u0052\u0065\u0064\u0061\u0063\u0074":_ddd ,_caaf :=_cbea .newPdfAnnotationRedactFromDict (_deec );if _caaf !=nil {return nil ,_caaf ;};_ddd .PdfAnnotation =_beag ;_beag ._ggd =_ddd ;return _beag ,nil ;};_ac .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",*_dgee );
return nil ,nil ;};
// PdfAnnotationLine represents Line annotations.
// (Section 12.5.6.7).
type PdfAnnotationLine struct{*PdfAnnotation ;*PdfAnnotationMarkup ;L _ae .PdfObject ;BS _ae .PdfObject ;LE _ae .PdfObject ;IC _ae .PdfObject ;LL _ae .PdfObject ;LLE _ae .PdfObject ;Cap _ae .PdfObject ;IT _ae .PdfObject ;LLO _ae .PdfObject ;CP _ae .PdfObject ;
Measure _ae .PdfObject ;CO _ae .PdfObject ;};
// SetImageHandler sets the image handler used by the package.
func SetImageHandler (imgHandling ImageHandler ){ImageHandling =imgHandling };func (_ccdd *DSS )add (_gaeff *[]*_ae .PdfObjectStream ,_bcedc map[string ]*_ae .PdfObjectStream ,_gacec [][]byte )([]*_ae .PdfObjectStream ,error ){_dfcebc :=make ([]*_ae .PdfObjectStream ,0,len (_gacec ));
for _ ,_adcd :=range _gacec {_ffebf ,_cdgfg :=_gbgbd (_adcd );if _cdgfg !=nil {return nil ,_cdgfg ;};_agcb ,_ccbe :=_bcedc [string (_ffebf )];if !_ccbe {_agcb ,_cdgfg =_ae .MakeStream (_adcd ,_ae .NewRawEncoder ());if _cdgfg !=nil {return nil ,_cdgfg ;
};_bcedc [string (_ffebf )]=_agcb ;*_gaeff =append (*_gaeff ,_agcb );};_dfcebc =append (_dfcebc ,_agcb );};return _dfcebc ,nil ;};func (_ggefg *PdfWriter )getPdfVersion ()string {return _f .Sprintf ("\u0025\u0064\u002e%\u0064",_ggefg ._faffe .Major ,_ggefg ._faffe .Minor );
};
// SetPdfCreator sets the Creator attribute of the output PDF.
func SetPdfCreator (creator string ){_cadgd .Lock ();defer _cadgd .Unlock ();_ecgbe =creator };
// NewPdfAnnotationCaret returns a new caret annotation.
func NewPdfAnnotationCaret ()*PdfAnnotationCaret {_eeec :=NewPdfAnnotation ();_cga :=&PdfAnnotationCaret {};_cga .PdfAnnotation =_eeec ;_cga .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_eeec .SetContext (_cga );return _cga ;};func (_becc *PdfReader )newPdfActionGotoRFromDict (_fgd *_ae .PdfObjectDictionary )(*PdfActionGoToR ,error ){_bge ,_aeg :=_ceb (_fgd .Get ("\u0046"));
if _aeg !=nil {return nil ,_aeg ;};return &PdfActionGoToR {D :_fgd .Get ("\u0044"),NewWindow :_fgd .Get ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw"),F :_bge },nil ;};
// ToPdfObject returns a stream object.
func (_effdd *XObjectImage )ToPdfObject ()_ae .PdfObject {_fccddd :=_effdd ._efaag ;_gdfcb :=_fccddd .PdfObjectDictionary ;if _effdd .Filter !=nil {_gdfcb =_effdd .Filter .MakeStreamDict ();_fccddd .PdfObjectDictionary =_gdfcb ;};_gdfcb .Set ("\u0054\u0079\u0070\u0065",_ae .MakeName ("\u0058O\u0062\u006a\u0065\u0063\u0074"));
_gdfcb .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ae .MakeName ("\u0049\u006d\u0061g\u0065"));_gdfcb .Set ("\u0057\u0069\u0064t\u0068",_ae .MakeInteger (*(_effdd .Width )));_gdfcb .Set ("\u0048\u0065\u0069\u0067\u0068\u0074",_ae .MakeInteger (*(_effdd .Height )));
if _effdd .BitsPerComponent !=nil {_gdfcb .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_ae .MakeInteger (*(_effdd .BitsPerComponent )));};if _effdd .ColorSpace !=nil {_gdfcb .SetIfNotNil ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065",_effdd .ColorSpace .ToPdfObject ());
};_gdfcb .SetIfNotNil ("\u0049\u006e\u0074\u0065\u006e\u0074",_effdd .Intent );_gdfcb .SetIfNotNil ("\u0049m\u0061\u0067\u0065\u004d\u0061\u0073k",_effdd .ImageMask );_gdfcb .SetIfNotNil ("\u004d\u0061\u0073\u006b",_effdd .Mask );_eacd :=_gdfcb .Get ("\u0044\u0065\u0063\u006f\u0064\u0065")!=nil ;
if _effdd .Decode ==nil &&_eacd {_gdfcb .Remove ("\u0044\u0065\u0063\u006f\u0064\u0065");}else if _effdd .Decode !=nil {_gdfcb .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_effdd .Decode );};_gdfcb .SetIfNotNil ("I\u006e\u0074\u0065\u0072\u0070\u006f\u006c\u0061\u0074\u0065",_effdd .Interpolate );
_gdfcb .SetIfNotNil ("\u0041\u006c\u0074e\u0072\u006e\u0061\u0074\u0069\u0076\u0065\u0073",_effdd .Alternatives );_gdfcb .SetIfNotNil ("\u0053\u004d\u0061s\u006b",_effdd .SMask );_gdfcb .SetIfNotNil ("S\u004d\u0061\u0073\u006b\u0049\u006e\u0044\u0061\u0074\u0061",_effdd .SMaskInData );
_gdfcb .SetIfNotNil ("\u004d\u0061\u0074t\u0065",_effdd .Matte );_gdfcb .SetIfNotNil ("\u004e\u0061\u006d\u0065",_effdd .Name );_gdfcb .SetIfNotNil ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074",_effdd .StructParent );_gdfcb .SetIfNotNil ("\u0049\u0044",_effdd .ID );
_gdfcb .SetIfNotNil ("\u004f\u0050\u0049",_effdd .OPI );_gdfcb .SetIfNotNil ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061",_effdd .Metadata );_gdfcb .SetIfNotNil ("\u004f\u0043",_effdd .OC );_gdfcb .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_ae .MakeInteger (int64 (len (_effdd .Stream ))));
_fccddd .Stream =_effdd .Stream ;return _fccddd ;};func (_dgdd *PdfWriter )writeObject (_cbcdg int ,_aafbe _ae .PdfObject ){_ac .Log .Trace ("\u0057\u0072\u0069\u0074\u0065\u0020\u006f\u0062\u006a \u0023\u0025\u0064\u000a",_cbcdg );if _cbbac ,_dfbgd :=_aafbe .(*_ae .PdfIndirectObject );
_dfbgd {_dgdd ._agfeg [_cbcdg ]=crossReference {Type :1,Offset :_dgdd ._eeegee ,Generation :_cbbac .GenerationNumber };_cffe :=_f .Sprintf ("\u0025d\u0020\u0030\u0020\u006f\u0062\u006a\n",_cbcdg );if _eacfe ,_bgcaf :=_cbbac .PdfObject .(*pdfSignDictionary );
_bgcaf {_eacfe ._ebcg =_dgdd ._eeegee +int64 (len (_cffe ));};if _cbbac .PdfObject ==nil {_ac .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");
_cbbac .PdfObject =_ae .MakeNull ();};_cffe +=_cbbac .PdfObject .WriteString ();_cffe +="\u000a\u0065\u006e\u0064\u006f\u0062\u006a\u000a";_dgdd .writeString (_cffe );return ;};if _cbdba ,_ddbc :=_aafbe .(*_ae .PdfObjectStream );_ddbc {_dgdd ._agfeg [_cbcdg ]=crossReference {Type :1,Offset :_dgdd ._eeegee ,Generation :_cbdba .GenerationNumber };
_gcdcg :=_f .Sprintf ("\u0025d\u0020\u0030\u0020\u006f\u0062\u006a\n",_cbcdg );_gcdcg +=_cbdba .PdfObjectDictionary .WriteString ();_gcdcg +="\u000a\u0073\u0074\u0072\u0065\u0061\u006d\u000a";_dgdd .writeString (_gcdcg );_dgdd .writeBytes (_cbdba .Stream );
_dgdd .writeString ("\u000ae\u006ed\u0073\u0074\u0072\u0065\u0061m\u000a\u0065n\u0064\u006f\u0062\u006a\u000a");return ;};if _eddag ,_fbdfcg :=_aafbe .(*_ae .PdfObjectStreams );_fbdfcg {_dgdd ._agfeg [_cbcdg ]=crossReference {Type :1,Offset :_dgdd ._eeegee ,Generation :_eddag .GenerationNumber };
_fefcce :=_f .Sprintf ("\u0025d\u0020\u0030\u0020\u006f\u0062\u006a\n",_cbcdg );var _edccc []string ;var _eaaad string ;var _bbbcb int64 ;for _beaad ,_fgagc :=range _eddag .Elements (){_gdadb ,_fbba :=_fgagc .(*_ae .PdfIndirectObject );if !_fbba {_ac .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",_cbcdg ,_fgagc );
continue ;};_beegg :=_gdadb .PdfObject .WriteString ()+"\u0020";_eaaad =_eaaad +_beegg ;_edccc =append (_edccc ,_f .Sprintf ("\u0025\u0064\u0020%\u0064",_gdadb .ObjectNumber ,_bbbcb ));_dgdd ._agfeg [int (_gdadb .ObjectNumber )]=crossReference {Type :2,ObjectNumber :_cbcdg ,Index :_beaad };
_bbbcb =_bbbcb +int64 (len ([]byte (_beegg )));};_aggdf :=_eg .Join (_edccc ,"\u0020")+"\u0020";_gage :=_ae .NewFlateEncoder ();_faeaca :=_gage .MakeStreamDict ();_faeaca .Set (_ae .PdfObjectName ("\u0054\u0079\u0070\u0065"),_ae .MakeName ("\u004f\u0062\u006a\u0053\u0074\u006d"));
_aggdfg :=int64 (_eddag .Len ());_faeaca .Set (_ae .PdfObjectName ("\u004e"),_ae .MakeInteger (_aggdfg ));_faeaf :=int64 (len (_aggdf ));_faeaca .Set (_ae .PdfObjectName ("\u0046\u0069\u0072s\u0074"),_ae .MakeInteger (_faeaf ));_dffe ,_ :=_gage .EncodeBytes ([]byte (_aggdf +_eaaad ));
_fcafd :=int64 (len (_dffe ));_faeaca .Set (_ae .PdfObjectName ("\u004c\u0065\u006e\u0067\u0074\u0068"),_ae .MakeInteger (_fcafd ));_fefcce +=_faeaca .WriteString ();_fefcce +="\u000a\u0073\u0074\u0072\u0065\u0061\u006d\u000a";_dgdd .writeString (_fefcce );
_dgdd .writeBytes (_dffe );_dgdd .writeString ("\u000ae\u006ed\u0073\u0074\u0072\u0065\u0061m\u000a\u0065n\u0064\u006f\u0062\u006a\u000a");return ;};_dgdd .writeString (_aafbe .WriteString ());};
// CustomKeys returns all custom info keys as list.
func (_cfbg *PdfInfo )CustomKeys ()[]string {if _cfbg ._ffgag ==nil {return nil ;};_fbbba :=make ([]string ,len (_cfbg ._ffgag .Keys ()));for _ ,_agbd :=range _cfbg ._ffgag .Keys (){_fbbba =append (_fbbba ,_agbd .String ());};return _fbbba ;};func _gafdf (_ddace string )map[string ]string {_bcbe :=_adaba .Split (_ddace ,-1);
_eggce :=map[string ]string {};for _ ,_fdcga :=range _bcbe {_bffcf :=_bage .FindStringSubmatch (_fdcga );if _bffcf ==nil {continue ;};_aecfg ,_gcabf :=_bffcf [1],_bffcf [2];_eggce [_aecfg ]=_gcabf ;};return _eggce ;};
// NewPdfActionGoTo returns a new "go to" action.
func NewPdfActionGoTo ()*PdfActionGoTo {_cd :=NewPdfAction ();_dfd :=&PdfActionGoTo {};_dfd .PdfAction =_cd ;_cd .SetContext (_dfd );return _dfd ;};
// PdfActionImportData represents a importData action.
type PdfActionImportData struct{*PdfAction ;F *PdfFilespec ;};
// 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{_dadc PdfModel ;_facca *_ae .PdfIndirectObject ;Parent *PdfField ;Annotations []*PdfAnnotationWidget ;Kids []*PdfField ;FT *_ae .PdfObjectName ;T *_ae .PdfObjectString ;TU *_ae .PdfObjectString ;TM *_ae .PdfObjectString ;Ff *_ae .PdfObjectInteger ;
V _ae .PdfObject ;DV _ae .PdfObject ;AA _ae .PdfObject ;VariableText *VariableText ;};
// PdfInfo holds document information that will overwrite
// document information global variables defined above.
type PdfInfo struct{Title *_ae .PdfObjectString ;Author *_ae .PdfObjectString ;Subject *_ae .PdfObjectString ;Keywords *_ae .PdfObjectString ;Creator *_ae .PdfObjectString ;Producer *_ae .PdfObjectString ;CreationDate *PdfDate ;ModifiedDate *PdfDate ;Trapped *_ae .PdfObjectName ;
_ffgag *_ae .PdfObjectDictionary ;};func _gbgbd (_cccef []byte )([]byte ,error ){_acddc :=_fg .New ();if _ ,_afgb :=_gdc .Copy (_acddc ,_aa .NewReader (_cccef ));_afgb !=nil {return nil ,_afgb ;};return _acddc .Sum (nil ),nil ;};
// ColorFromPdfObjects returns a new PdfColor based on input color components. The input PdfObjects should
// be numeric.
func (_ecgg *PdfColorspaceDeviceN )ColorFromPdfObjects (objects []_ae .PdfObject )(PdfColor ,error ){if len (objects )!=_ecgg .GetNumComponents (){return nil ,_db .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_baded ,_gcfg :=_ae .GetNumbersAsFloat (objects );
if _gcfg !=nil {return nil ,_gcfg ;};return _ecgg .ColorFromFloats (_baded );};func (_bbac *PdfReader )newPdfAnnotationSquareFromDict (_gcdc *_ae .PdfObjectDictionary )(*PdfAnnotationSquare ,error ){_fddd :=PdfAnnotationSquare {};_dab ,_ebfb :=_bbac .newPdfAnnotationMarkupFromDict (_gcdc );
if _ebfb !=nil {return nil ,_ebfb ;};_fddd .PdfAnnotationMarkup =_dab ;_fddd .BS =_gcdc .Get ("\u0042\u0053");_fddd .IC =_gcdc .Get ("\u0049\u0043");_fddd .BE =_gcdc .Get ("\u0042\u0045");_fddd .RD =_gcdc .Get ("\u0052\u0044");return &_fddd ,nil ;};
// ToPdfObject implements interface PdfModel.
func (_fccf *PdfAnnotationInk )ToPdfObject ()_ae .PdfObject {_fccf .PdfAnnotation .ToPdfObject ();_effe :=_fccf ._gcgf ;_ggef :=_effe .PdfObject .(*_ae .PdfObjectDictionary );_fccf .PdfAnnotationMarkup .appendToPdfDictionary (_ggef );_ggef .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ae .MakeName ("\u0049\u006e\u006b"));
_ggef .SetIfNotNil ("\u0049n\u006b\u004c\u0069\u0073\u0074",_fccf .InkList );_ggef .SetIfNotNil ("\u0042\u0053",_fccf .BS );return _effe ;};
// NewPdfActionURI returns a new "Uri" action.
func NewPdfActionURI ()*PdfActionURI {_gb :=NewPdfAction ();_ggcb :=&PdfActionURI {};_ggcb .PdfAction =_gb ;_gb .SetContext (_ggcb );return _ggcb ;};
// IsRadio returns true if the button field represents a radio button, false otherwise.
func (_abea *PdfFieldButton )IsRadio ()bool {return _abea .GetType ()==ButtonTypeRadio };
// BytesToCharcodes converts the bytes in a PDF string to character codes.
func (_dcddf *PdfFont )BytesToCharcodes (data []byte )[]_bgg .CharCode {_ac .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 _acbb ,_ebbgf :=_dcddf ._dabg .(*pdfFontType0 );_ebbgf &&_acbb ._gbced !=nil {if _ecaf ,_baaaa :=_acbb .bytesToCharcodes (data );_baaaa {return _ecaf ;};};var (_gbaca =make ([]_bgg .CharCode ,0,len (data )+len (data )%2);_cebeba =_dcddf .baseFields ();
);if _cebeba ._ebfdc !=nil {if _bacd ,_eaffb :=_cebeba ._ebfdc .BytesToCharcodes (data );_eaffb {for _ ,_ecfa :=range _bacd {_gbaca =append (_gbaca ,_bgg .CharCode (_ecfa ));};return _gbaca ;};};if _cebeba .isCIDFont (){if len (data )==1{data =[]byte {0,data [0]};
};if len (data )%2!=0{_ac .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 _gacb :=0;_gacb < len (data );_gacb +=2{_adbe :=uint16 (data [_gacb ])<<8|uint16 (data [_gacb +1]);_gbaca =append (_gbaca ,_bgg .CharCode (_adbe ));};}else {for _ ,_fagc :=range data {_gbaca =append (_gbaca ,_bgg .CharCode (_fagc ));
};};return _gbaca ;};
// ToPdfObject converts the font to a PDF representation.
func (_edadg *pdfFontType0 )ToPdfObject ()_ae .PdfObject {if _edadg ._fagcg ==nil {_edadg ._fagcg =&_ae .PdfIndirectObject {};};_abbg :=_edadg .baseFields ().asPdfObjectDictionary ("\u0054\u0079\u0070e\u0030");_edadg ._fagcg .PdfObject =_abbg ;if _edadg .Encoding !=nil {_abbg .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_edadg .Encoding );
}else if _edadg ._bagdb !=nil {_abbg .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_edadg ._bagdb .ToPdfObject ());};if _edadg .DescendantFont !=nil {_abbg .Set ("\u0044e\u0073c\u0065\u006e\u0064\u0061\u006e\u0074\u0046\u006f\u006e\u0074\u0073",_ae .MakeArray (_edadg .DescendantFont .ToPdfObject ()));
};return _edadg ._fagcg ;};
// PdfAnnotation3D represents 3D annotations.
// (Section 13.6.2).
type PdfAnnotation3D struct{*PdfAnnotation ;T3DD _ae .PdfObject ;T3DV _ae .PdfObject ;T3DA _ae .PdfObject ;T3DI _ae .PdfObject ;T3DB _ae .PdfObject ;};func (_fbda PdfFont )actualFont ()pdfFont {if _fbda ._dabg ==nil {_ac .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",_fbda );
};return _fbda ._dabg ;};
// PdfColorPattern represents a pattern color.
type PdfColorPattern struct{Color PdfColor ;PatternName _ae .PdfObjectName ;};
// PdfAnnotationPolygon represents Polygon annotations.
// (Section 12.5.6.9).
type PdfAnnotationPolygon struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Vertices _ae .PdfObject ;LE _ae .PdfObject ;BS _ae .PdfObject ;IC _ae .PdfObject ;BE _ae .PdfObject ;IT _ae .PdfObject ;Measure _ae .PdfObject ;};var _defe =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":{}};
// WriteToFile writes the Appender output to file specified by path.
func (_bafa *PdfAppender )WriteToFile (outputPath string )error {_afecc ,_agcd :=_af .Create (outputPath );if _agcd !=nil {return _agcd ;};defer _afecc .Close ();return _bafa .Write (_afecc );};
// GetXObjectByName gets XObject by name.
func (_abddc *PdfPage )GetXObjectByName (name _ae .PdfObjectName )(_ae .PdfObject ,bool ){_bbff ,_bfbcg :=_abddc .Resources .XObject .(*_ae .PdfObjectDictionary );if !_bfbcg {return nil ,false ;};if _efcg :=_bbff .Get (name );_efcg !=nil {return _efcg ,true ;
};return nil ,false ;};
// PdfAnnotationPopup represents Popup annotations.
// (Section 12.5.6.14).
type PdfAnnotationPopup struct{*PdfAnnotation ;Parent _ae .PdfObject ;Open _ae .PdfObject ;};
// DecodeArray returns the range of color component values in CalGray colorspace.
func (_addbc *PdfColorspaceCalGray )DecodeArray ()[]float64 {return []float64 {0.0,1.0}};
// NewPdfAnnotationHighlight returns a new text highlight annotation.
func NewPdfAnnotationHighlight ()*PdfAnnotationHighlight {_ecga :=NewPdfAnnotation ();_fgc :=&PdfAnnotationHighlight {};_fgc .PdfAnnotation =_ecga ;_fgc .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_ecga .SetContext (_fgc );return _fgc ;};func (_dgcf *DSS )addCerts (_gafgb [][]byte )([]*_ae .PdfObjectStream ,error ){return _dgcf .add (&_dgcf .Certs ,_dgcf ._eedc ,_gafgb );
};
// ColorToRGB converts a CMYK32 color to an RGB color.
func (_cafd *PdfColorspaceDeviceCMYK )ColorToRGB (color PdfColor )(PdfColor ,error ){_ddaf ,_ecgdg :=color .(*PdfColorDeviceCMYK );if !_ecgdg {_ac .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 ,_db .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_geef :=_ddaf .C ();_eggge :=_ddaf .M ();_agae :=_ddaf .Y ();_abbc :=_ddaf .K ();_geef =_geef *(1-_abbc )+_abbc ;_eggge =_eggge *(1-_abbc )+_abbc ;
_agae =_agae *(1-_abbc )+_abbc ;_egfcc :=1-_geef ;_gccg :=1-_eggge ;_ddb :=1-_agae ;return NewPdfColorDeviceRGB (_egfcc ,_gccg ,_ddb ),nil ;};
// PdfFunctionType4 is a Postscript calculator functions.
type PdfFunctionType4 struct{Domain []float64 ;Range []float64 ;Program *_ace .PSProgram ;_cagbf *_ace .PSExecutor ;_eabdc []byte ;_cbec *_ae .PdfObjectStream ;};
// SetContext sets the sub pattern (context). Either PdfTilingPattern or PdfShadingPattern.
func (_bdbab *PdfPattern )SetContext (ctx PdfModel ){_bdbab ._ebafb =ctx };const (ButtonTypeCheckbox ButtonType =iota ;ButtonTypePush ButtonType =iota ;ButtonTypeRadio ButtonType =iota ;);
// 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 ){_cbdge ,_ebdb :=_ec .ParsePdfTime (dateStr );if _ebdb !=nil {return PdfDate {},_ebdb ;};return NewPdfDateFromTime (_cbdge );};
// ToPdfObject implements interface PdfModel.
func (_dgf *PdfActionResetForm )ToPdfObject ()_ae .PdfObject {_dgf .PdfAction .ToPdfObject ();_ffg :=_dgf ._cbe ;_aecg :=_ffg .PdfObject .(*_ae .PdfObjectDictionary );_aecg .SetIfNotNil ("\u0053",_ae .MakeName (string (ActionTypeResetForm )));_aecg .SetIfNotNil ("\u0046\u0069\u0065\u006c\u0064\u0073",_dgf .Fields );
_aecg .SetIfNotNil ("\u0046\u006c\u0061g\u0073",_dgf .Flags );return _ffg ;};
// NewPdfTransformParamsDocMDP create a PdfTransformParamsDocMDP with the specific permissions.
func NewPdfTransformParamsDocMDP (permission _dbg .DocMDPPermission )*PdfTransformParamsDocMDP {return &PdfTransformParamsDocMDP {Type :_ae .MakeName ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u0050\u0061\u0072\u0061\u006d\u0073"),P :_ae .MakeInteger (int64 (permission )),V :_ae .MakeName ("\u0031\u002e\u0032")};
};func (_gabab *PdfWriter )writeBytes (_ebged []byte ){if _gabab ._fffcb !=nil {return ;};_cdegc ,_dddad :=_gabab ._dfgcc .Write (_ebged );_gabab ._eeegee +=int64 (_cdegc );_gabab ._fffcb =_dddad ;};
// NewPdfActionResetForm returns a new "reset form" action.
func NewPdfActionResetForm ()*PdfActionResetForm {_fab :=NewPdfAction ();_fbe :=&PdfActionResetForm {};_fbe .PdfAction =_fab ;_fab .SetContext (_fbe );return _fbe ;};func _cgaba (_gfdg *_ae .PdfIndirectObject ,_bfda *_ae .PdfObjectDictionary )(*DSS ,error ){if _gfdg ==nil {_gfdg =_ae .MakeIndirectObject (nil );
};_gfdg .PdfObject =_ae .MakeDict ();_cdeg :=map[string ]*VRI {};if _ecab ,_cgbe :=_ae .GetDict (_bfda .Get ("\u0056\u0052\u0049"));_cgbe {for _ ,_bddb :=range _ecab .Keys (){if _cbba ,_febc :=_ae .GetDict (_ecab .Get (_bddb ));_febc {_cdeg [_eg .ToUpper (_bddb .String ())]=_gfed (_cbba );
};};};return &DSS {Certs :_fdgbg (_bfda .Get ("\u0043\u0065\u0072t\u0073")),OCSPs :_fdgbg (_bfda .Get ("\u004f\u0043\u0053P\u0073")),CRLs :_fdgbg (_bfda .Get ("\u0043\u0052\u004c\u0073")),VRI :_cdeg ,_cefff :_gfdg },nil ;};var _ pdfFont =(*pdfCIDFontType0 )(nil );
// GetContainingPdfObject returns the container of the pattern object (indirect object).
func (_ebecd *PdfPattern )GetContainingPdfObject ()_ae .PdfObject {return _ebecd ._ebfged };
// ToPdfObject implements interface PdfModel.
func (_cgb *PdfActionJavaScript )ToPdfObject ()_ae .PdfObject {_cgb .PdfAction .ToPdfObject ();_abcb :=_cgb ._cbe ;_eag :=_abcb .PdfObject .(*_ae .PdfObjectDictionary );_eag .SetIfNotNil ("\u0053",_ae .MakeName (string (ActionTypeJavaScript )));_eag .SetIfNotNil ("\u004a\u0053",_cgb .JS );
return _abcb ;};
// PdfAnnotationPrinterMark represents PrinterMark annotations.
// (Section 12.5.6.20).
type PdfAnnotationPrinterMark struct{*PdfAnnotation ;MN _ae .PdfObject ;};
// NewPdfColorspaceFromPdfObject loads a PdfColorspace from a PdfObject. Returns an error if there is
// a failure in loading.
func NewPdfColorspaceFromPdfObject (obj _ae .PdfObject )(PdfColorspace ,error ){if obj ==nil {return nil ,nil ;};var _adea *_ae .PdfIndirectObject ;var _cab *_ae .PdfObjectName ;var _dgab *_ae .PdfObjectArray ;if _fefc ,_fdge :=obj .(*_ae .PdfIndirectObject );
_fdge {_adea =_fefc ;};obj =_ae .TraceToDirectObject (obj );switch _adg :=obj .(type ){case *_ae .PdfObjectArray :_dgab =_adg ;case *_ae .PdfObjectName :_cab =_adg ;};if _cab !=nil {switch *_cab {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:_ac .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",*_cab );return nil ,_cdgb ;};};if _dgab !=nil &&_dgab .Len ()> 0{var _abfd _ae .PdfObject =_adea ;
if _adea ==nil {_abfd =_dgab ;};if _addb ,_agdf :=_ae .GetName (_dgab .Get (0));_agdf {switch _addb .String (){case "\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079":if _dgab .Len ()==1{return NewPdfColorspaceDeviceGray (),nil ;};case "\u0044e\u0076\u0069\u0063\u0065\u0052\u0047B":if _dgab .Len ()==1{return NewPdfColorspaceDeviceRGB (),nil ;
};case "\u0044\u0065\u0076\u0069\u0063\u0065\u0043\u004d\u0059\u004b":if _dgab .Len ()==1{return NewPdfColorspaceDeviceCMYK (),nil ;};case "\u0043a\u006c\u0047\u0072\u0061\u0079":return _bfdcd (_abfd );case "\u0043\u0061\u006c\u0052\u0047\u0042":return _edag (_abfd );
case "\u004c\u0061\u0062":return _geffa (_abfd );case "\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064":return _cefe (_abfd );case "\u0050a\u0074\u0074\u0065\u0072\u006e":return _feaee (_abfd );case "\u0049n\u0064\u0065\u0078\u0065\u0064":return _eeedf (_abfd );
case "\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e":return _ebgef (_abfd );case "\u0044e\u0076\u0069\u0063\u0065\u004e":return _bdggg (_abfd );default:_ac .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",*_addb );
};};};_ac .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 ;};
// GetVersion gets the document version.
func (_dggff *PdfWriter )GetVersion ()_ae .Version {return _dggff ._faffe };
// 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 *_ae .PdfObjectArray ;AlternateSpace PdfColorspace ;TintTransform PdfFunction ;Attributes *PdfColorspaceDeviceNAttributes ;_efbgg *_ae .PdfIndirectObject ;};
// PdfAppender appends new PDF content to an existing PDF document via incremental updates.
type PdfAppender struct{_aced _gdc .ReadSeeker ;_ceda *_ae .PdfParser ;_afad *PdfReader ;Reader *PdfReader ;_eabf []*PdfPage ;_eced *PdfAcroForm ;_ddad *DSS ;_fgcd *Permissions ;_gedb _ae .XrefTable ;_daea int64 ;_bcgg int ;_gea []_ae .PdfObject ;_dcefg map[_ae .PdfObject ]struct{};
_dcdbc map[_ae .PdfObject ]int64 ;_gfge map[_ae .PdfObject ]struct{};_bcefc map[_ae .PdfObject ]struct{};_egcg int64 ;_fdbdf bool ;_acf string ;_gffe *EncryptOptions ;_eecfe *PdfInfo ;};func (_bef *PdfReader )newPdfActionGotoFromDict (_ead *_ae .PdfObjectDictionary )(*PdfActionGoTo ,error ){return &PdfActionGoTo {D :_ead .Get ("\u0044")},nil ;
};func (_bcfcc *PdfAcroForm )fillImageWithAppearance (_ecec FieldImageProvider ,_dcgdc FieldAppearanceGenerator )error {if _bcfcc ==nil {return nil ;};_fgeec ,_dfedd :=_ecec .FieldImageValues ();if _dfedd !=nil {return _dfedd ;};for _ ,_dbgaa :=range _bcfcc .AllFields (){_cfaed :=_dbgaa .PartialName ();
_gabb ,_fbff :=_fgeec [_cfaed ];if !_fbff {if _bfga ,_acddg :=_dbgaa .FullName ();_acddg ==nil {_gabb ,_fbff =_fgeec [_bfga ];};};if !_fbff {_ac .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",_cfaed );
continue ;};switch _bbdea :=_dbgaa .GetContext ().(type ){case *PdfFieldButton :if _bbdea .IsPush (){_bbdea .SetFillImage (_gabb );};};if _dcgdc ==nil {continue ;};for _ ,_ecbba :=range _dbgaa .Annotations {_eabdd ,_efaea :=_dcgdc .GenerateAppearanceDict (_bcfcc ,_dbgaa ,_ecbba );
if _efaea !=nil {return _efaea ;};_ecbba .AP =_eabdd ;_ecbba .ToPdfObject ();};};return nil ;};
// ToPdfObject returns the PDF representation of the VRI dictionary.
func (_dffg *VRI )ToPdfObject ()*_ae .PdfObjectDictionary {_bfgdc :=_ae .MakeDict ();_bfgdc .SetIfNotNil (_ae .PdfObjectName ("\u0043\u0065\u0072\u0074"),_ceaec (_dffg .Cert ));_bfgdc .SetIfNotNil (_ae .PdfObjectName ("\u004f\u0043\u0053\u0050"),_ceaec (_dffg .OCSP ));
_bfgdc .SetIfNotNil (_ae .PdfObjectName ("\u0043\u0052\u004c"),_ceaec (_dffg .CRL ));_bfgdc .SetIfNotNil ("\u0054\u0055",_dffg .TU );_bfgdc .SetIfNotNil ("\u0054\u0053",_dffg .TS );return _bfgdc ;};
// PdfOutlineItem represents an outline item dictionary (Table 153 - pp. 376 - 377).
type PdfOutlineItem struct{PdfOutlineTreeNode ;Title *_ae .PdfObjectString ;Parent *PdfOutlineTreeNode ;Prev *PdfOutlineTreeNode ;Next *PdfOutlineTreeNode ;Count *int64 ;Dest _ae .PdfObject ;A _ae .PdfObject ;SE _ae .PdfObject ;C _ae .PdfObject ;F _ae .PdfObject ;
_dabga *_ae .PdfIndirectObject ;};
// NewPdfAnnotationUnderline returns a new text underline annotation.
func NewPdfAnnotationUnderline ()*PdfAnnotationUnderline {_efgf :=NewPdfAnnotation ();_dca :=&PdfAnnotationUnderline {};_dca .PdfAnnotation =_efgf ;_dca .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_efgf .SetContext (_dca );return _dca ;};
// ToPdfObject returns a PDF object representation of the outline destination.
func (_cbad OutlineDest )ToPdfObject ()_ae .PdfObject {if (_cbad .PageObj ==nil &&_cbad .Page < 0)||_cbad .Mode ==""{return _ae .MakeNull ();};_cace :=_ae .MakeArray ();if _cbad .PageObj !=nil {_cace .Append (_cbad .PageObj );}else {_cace .Append (_ae .MakeInteger (_cbad .Page ));
};_cace .Append (_ae .MakeName (_cbad .Mode ));switch _cbad .Mode {case "\u0046\u0069\u0074","\u0046\u0069\u0074\u0042":case "\u0046\u0069\u0074\u0048","\u0046\u0069\u0074B\u0048":_cace .Append (_ae .MakeFloat (_cbad .Y ));case "\u0046\u0069\u0074\u0056","\u0046\u0069\u0074B\u0056":_cace .Append (_ae .MakeFloat (_cbad .X ));
case "\u0058\u0059\u005a":_cace .Append (_ae .MakeFloat (_cbad .X ));_cace .Append (_ae .MakeFloat (_cbad .Y ));_cace .Append (_ae .MakeFloat (_cbad .Zoom ));default:_cace .Set (1,_ae .MakeName ("\u0046\u0069\u0074"));};return _cace ;};
// PdfShadingType7 is a Tensor-product patch mesh.
type PdfShadingType7 struct{*PdfShading ;BitsPerCoordinate *_ae .PdfObjectInteger ;BitsPerComponent *_ae .PdfObjectInteger ;BitsPerFlag *_ae .PdfObjectInteger ;Decode *_ae .PdfObjectArray ;Function []PdfFunction ;};
// SetDecode sets the decode image float slice.
func (_acadg *Image )SetDecode (decode []float64 ){_acadg ._fdae =decode };func _cgdeg ()_d .Time {_cadgd .Lock ();defer _cadgd .Unlock ();return _ddage };var ImageHandling ImageHandler =DefaultImageHandler {};
// ToPdfObject returns the choice field dictionary within an indirect object (container).
func (_geca *PdfFieldChoice )ToPdfObject ()_ae .PdfObject {_geca .PdfField .ToPdfObject ();_bdcd :=_geca ._facca ;_eedeb :=_bdcd .PdfObject .(*_ae .PdfObjectDictionary );_eedeb .Set ("\u0046\u0054",_ae .MakeName ("\u0043\u0068"));if _geca .Opt !=nil {_eedeb .Set ("\u004f\u0070\u0074",_geca .Opt );
};if _geca .TI !=nil {_eedeb .Set ("\u0054\u0049",_geca .TI );};if _geca .I !=nil {_eedeb .Set ("\u0049",_geca .I );};return _bdcd ;};
// PdfAnnotationCircle represents Circle annotations.
// (Section 12.5.6.8).
type PdfAnnotationCircle struct{*PdfAnnotation ;*PdfAnnotationMarkup ;BS _ae .PdfObject ;IC _ae .PdfObject ;BE _ae .PdfObject ;RD _ae .PdfObject ;};
// R returns the value of the red component of the color.
func (_afcbg *PdfColorDeviceRGB )R ()float64 {return _afcbg [0]};
// ColorToRGB verifies that the input color is an RGB color. Method exists in
// order to satisfy the PdfColorspace interface.
func (_daf *PdfColorspaceDeviceRGB )ColorToRGB (color PdfColor )(PdfColor ,error ){_dcefb ,_fdeb :=color .(*PdfColorDeviceRGB );if !_fdeb {_ac .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 ,_db .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};return _dcefb ,nil ;};
// GetContainingPdfObject returns the containing object for the PdfField, i.e. an indirect object
// containing the field dictionary.
func (_gffea *PdfField )GetContainingPdfObject ()_ae .PdfObject {return _gffea ._facca };
// NewPdfAnnotationTrapNet returns a new trapnet annotation.
func NewPdfAnnotationTrapNet ()*PdfAnnotationTrapNet {_bcdb :=NewPdfAnnotation ();_gec :=&PdfAnnotationTrapNet {};_gec .PdfAnnotation =_bcdb ;_bcdb .SetContext (_gec );return _gec ;};
// ToPdfObject implements interface PdfModel.
func (_dfacd *Permissions )ToPdfObject ()_ae .PdfObject {return _dfacd ._gccec };
// String returns a string representation of PdfTransformParamsDocMDP.
func (_gafdb *PdfTransformParamsDocMDP )String ()string {return _f .Sprintf ("\u0025\u0073\u0020\u0050\u003a\u0020\u0025\u0073\u0020V\u003a\u0020\u0025\u0073",_gafdb .Type ,_gafdb .P ,_gafdb .V );};
// NewPdfAnnotationPolyLine returns a new polyline annotation.
func NewPdfAnnotationPolyLine ()*PdfAnnotationPolyLine {_fdb :=NewPdfAnnotation ();_fefa :=&PdfAnnotationPolyLine {};_fefa .PdfAnnotation =_fdb ;_fefa .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_fdb .SetContext (_fefa );return _fefa ;};
// 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 *_ae .PdfIndirectObject `json:"-"`;Page int64 `json:"page"`;Mode string `json:"mode"`;X float64 `json:"x"`;Y float64 `json:"y"`;Zoom float64 `json:"zoom"`;};
// Set sets the colorspace corresponding to key. Add to Names if not set.
func (_gcgbc *PdfPageResourcesColorspaces )Set (key _ae .PdfObjectName ,val PdfColorspace ){if _ ,_baae :=_gcgbc .Colorspaces [string (key )];!_baae {_gcgbc .Names =append (_gcgbc .Names ,string (key ));};_gcgbc .Colorspaces [string (key )]=val ;};func (_febd *PdfReader )newPdfAcroFormFromDict (_ebee *_ae .PdfIndirectObject ,_agdc *_ae .PdfObjectDictionary )(*PdfAcroForm ,error ){_addcf :=NewPdfAcroForm ();
if _ebee !=nil {_addcf ._febbe =_ebee ;_ebee .PdfObject =_ae .MakeDict ();};if _ccgb :=_agdc .Get ("\u0046\u0069\u0065\u006c\u0064\u0073");_ccgb !=nil &&!_ae .IsNullObject (_ccgb ){_abcfa ,_cdga :=_ae .GetArray (_ccgb );if !_cdga {return nil ,_f .Errorf ("\u0066i\u0065\u006c\u0064\u0073\u0020\u006e\u006f\u0074\u0020\u0061\u006e \u0061\u0072\u0072\u0061\u0079\u0020\u0028\u0025\u0054\u0029",_ccgb );
};var _afged []*PdfField ;for _ ,_bbafe :=range _abcfa .Elements (){_fgaed ,_eeded :=_ae .GetIndirect (_bbafe );if !_eeded {if _ ,_gggbb :=_bbafe .(*_ae .PdfObjectNull );_gggbb {_ac .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 ;};_ac .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",_bbafe );
return nil ,_f .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");};_gffbf ,_bbacc :=_febd .newPdfFieldFromIndirectObject (_fgaed ,nil );
if _bbacc !=nil {return nil ,_bbacc ;};_ac .Log .Trace ("\u0041\u0063\u0072\u006fFo\u0072\u006d\u0020\u0046\u0069\u0065\u006c\u0064\u003a\u0020\u0025\u002b\u0076",*_gffbf );_afged =append (_afged ,_gffbf );};_addcf .Fields =&_afged ;};if _gdaa :=_agdc .Get ("\u004ee\u0065d\u0041\u0070\u0070\u0065\u0061\u0072\u0061\u006e\u0063\u0065\u0073");
_gdaa !=nil {_cgafga ,_abdee :=_ae .GetBool (_gdaa );if _abdee {_addcf .NeedAppearances =_cgafga ;}else {_ac .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",_gdaa );
};};if _dfag :=_agdc .Get ("\u0053\u0069\u0067\u0046\u006c\u0061\u0067\u0073");_dfag !=nil {_fbga ,_fdddf :=_ae .GetInt (_dfag );if _fdddf {_addcf .SigFlags =_fbga ;}else {_ac .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",_dfag );
};};if _abbdg :=_agdc .Get ("\u0043\u004f");_abbdg !=nil {_bfcbc ,_afafb :=_ae .GetArray (_abbdg );if _afafb {_addcf .CO =_bfcbc ;}else {_ac .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",_abbdg );
};};if _afbdc :=_agdc .Get ("\u0044\u0052");_afbdc !=nil {if _cdec ,_feba :=_ae .GetDict (_afbdc );_feba {_fdcfd ,_dgdga :=NewPdfPageResourcesFromDict (_cdec );if _dgdga !=nil {_ac .Log .Error ("\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0044R\u003a\u0020\u0025\u0076",_dgdga );
return nil ,_dgdga ;};_addcf .DR =_fdcfd ;}else {_ac .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",_afbdc );};};if _ecacb :=_agdc .Get ("\u0044\u0041");
_ecacb !=nil {_dcfae ,_faab :=_ae .GetString (_ecacb );if _faab {_addcf .DA =_dcfae ;}else {_ac .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",_ecacb );
};};if _cecgg :=_agdc .Get ("\u0051");_cecgg !=nil {_aefga ,_fcbfg :=_ae .GetInt (_cecgg );if _fcbfg {_addcf .Q =_aefga ;}else {_ac .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a \u0051\u0020\u0069\u006e\u0076a\u006ci\u0064 \u0028\u0067\u006f\u0074\u0020\u0025\u0054)",_cecgg );
};};if _cccbb :=_agdc .Get ("\u0058\u0046\u0041");_cccbb !=nil {_addcf .XFA =_cccbb ;};if _cegef :=_agdc .Get ("\u0041\u0044\u0042\u0045\u005f\u0045\u0063\u0068\u006f\u0053\u0069\u0067\u006e");_cegef !=nil {_addcf .ADBEEchoSign =_cegef ;};_addcf .ToPdfObject ();
return _addcf ,nil ;};
// ToPdfObject implements interface PdfModel.
func (_bfdc *PdfAnnotationFreeText )ToPdfObject ()_ae .PdfObject {_bfdc .PdfAnnotation .ToPdfObject ();_feed :=_bfdc ._gcgf ;_aadc :=_feed .PdfObject .(*_ae .PdfObjectDictionary );_bfdc .PdfAnnotationMarkup .appendToPdfDictionary (_aadc );_aadc .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ae .MakeName ("\u0046\u0072\u0065\u0065\u0054\u0065\u0078\u0074"));
_aadc .SetIfNotNil ("\u0044\u0041",_bfdc .DA );_aadc .SetIfNotNil ("\u0051",_bfdc .Q );_aadc .SetIfNotNil ("\u0052\u0043",_bfdc .RC );_aadc .SetIfNotNil ("\u0044\u0053",_bfdc .DS );_aadc .SetIfNotNil ("\u0043\u004c",_bfdc .CL );_aadc .SetIfNotNil ("\u0049\u0054",_bfdc .IT );
_aadc .SetIfNotNil ("\u0042\u0045",_bfdc .BE );_aadc .SetIfNotNil ("\u0052\u0044",_bfdc .RD );_aadc .SetIfNotNil ("\u0042\u0053",_bfdc .BS );_aadc .SetIfNotNil ("\u004c\u0045",_bfdc .LE );return _feed ;};
// GetContainingPdfObject returns the container of the resources object (indirect object).
func (_gedd *PdfPageResources )GetContainingPdfObject ()_ae .PdfObject {return _gedd ._cebg };
// ToPdfObject implements interface PdfModel.
func (_bffb *PdfAnnotationPolygon )ToPdfObject ()_ae .PdfObject {_bffb .PdfAnnotation .ToPdfObject ();_dged :=_bffb ._gcgf ;_bgcd :=_dged .PdfObject .(*_ae .PdfObjectDictionary );_bffb .PdfAnnotationMarkup .appendToPdfDictionary (_bgcd );_bgcd .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ae .MakeName ("\u0050o\u006c\u0079\u0067\u006f\u006e"));
_bgcd .SetIfNotNil ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073",_bffb .Vertices );_bgcd .SetIfNotNil ("\u004c\u0045",_bffb .LE );_bgcd .SetIfNotNil ("\u0042\u0053",_bffb .BS );_bgcd .SetIfNotNil ("\u0049\u0043",_bffb .IC );_bgcd .SetIfNotNil ("\u0042\u0045",_bffb .BE );
_bgcd .SetIfNotNil ("\u0049\u0054",_bffb .IT );_bgcd .SetIfNotNil ("\u004de\u0061\u0073\u0075\u0072\u0065",_bffb .Measure );return _dged ;};
// PdfActionSound represents a sound action.
type PdfActionSound struct{*PdfAction ;Sound _ae .PdfObject ;Volume _ae .PdfObject ;Synchronous _ae .PdfObject ;Repeat _ae .PdfObject ;Mix _ae .PdfObject ;};
// SetXObjectImageByName adds the provided XObjectImage to the page resources.
// The added XObjectImage is identified by the specified name.
func (_bedda *PdfPageResources )SetXObjectImageByName (keyName _ae .PdfObjectName ,ximg *XObjectImage )error {_gdgaa :=ximg .ToPdfObject ().(*_ae .PdfObjectStream );_fcdbf :=_bedda .SetXObjectByName (keyName ,_gdgaa );return _fcdbf ;};
// ColorFromPdfObjects returns a new PdfColor based on the input slice of color
// component PDF objects.
func (_gfafb *PdfColorspaceICCBased )ColorFromPdfObjects (objects []_ae .PdfObject )(PdfColor ,error ){if _gfafb .Alternate ==nil {if _gfafb .N ==1{_bfad :=NewPdfColorspaceDeviceGray ();return _bfad .ColorFromPdfObjects (objects );}else if _gfafb .N ==3{_dbb :=NewPdfColorspaceDeviceRGB ();
return _dbb .ColorFromPdfObjects (objects );}else if _gfafb .N ==4{_fceeg :=NewPdfColorspaceDeviceCMYK ();return _fceeg .ColorFromPdfObjects (objects );}else {return nil ,_db .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 _gfafb .Alternate .ColorFromPdfObjects (objects );};func (_geeb *PdfReader )newPdfAnnotationPolyLineFromDict (_cegb *_ae .PdfObjectDictionary )(*PdfAnnotationPolyLine ,error ){_bdbe :=PdfAnnotationPolyLine {};_ffeb ,_dgfg :=_geeb .newPdfAnnotationMarkupFromDict (_cegb );
if _dgfg !=nil {return nil ,_dgfg ;};_bdbe .PdfAnnotationMarkup =_ffeb ;_bdbe .Vertices =_cegb .Get ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073");_bdbe .LE =_cegb .Get ("\u004c\u0045");_bdbe .BS =_cegb .Get ("\u0042\u0053");_bdbe .IC =_cegb .Get ("\u0049\u0043");
_bdbe .BE =_cegb .Get ("\u0042\u0045");_bdbe .IT =_cegb .Get ("\u0049\u0054");_bdbe .Measure =_cegb .Get ("\u004de\u0061\u0073\u0075\u0072\u0065");return &_bdbe ,nil ;};
// Register registers (caches) a model to primitive object relationship.
func (_gadfd *modelManager )Register (primitive _ae .PdfObject ,model PdfModel ){_gadfd ._gbed [model ]=primitive ;_gadfd ._bdcg [primitive ]=model ;};
// NewPdfAnnotationText returns a new text annotation.
func NewPdfAnnotationText ()*PdfAnnotationText {_fafe :=NewPdfAnnotation ();_cgd :=&PdfAnnotationText {};_cgd .PdfAnnotation =_fafe ;_cgd .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_fafe .SetContext (_cgd );return _cgd ;};
// ColorFromPdfObjects returns a new PdfColor based on the input slice of color
// components. The slice should contain a single PdfObjectFloat element.
func (_addcd *PdfColorspaceSpecialSeparation )ColorFromPdfObjects (objects []_ae .PdfObject )(PdfColor ,error ){if len (objects )!=1{return nil ,_db .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_cecde ,_fbeac :=_ae .GetNumbersAsFloat (objects );
if _fbeac !=nil {return nil ,_fbeac ;};return _addcd .ColorFromFloats (_cecde );};
// GetContext returns a reference to the subpattern entry: either PdfTilingPattern or PdfShadingPattern.
func (_eedecb *PdfPattern )GetContext ()PdfModel {return _eedecb ._ebafb };func (_bdgfa *PdfWriter )checkLicense ()error {_cafcdf :=_gcg .GetLicenseKey ();if (_cafcdf ==nil ||!_cafcdf .IsLicensed ())&&!_acffcf {_f .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");
_f .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 _db .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 ;};
// 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 (_cegc *PdfReader )newPdfAnnotationPrinterMarkFromDict (_bggee *_ae .PdfObjectDictionary )(*PdfAnnotationPrinterMark ,error ){_cada :=PdfAnnotationPrinterMark {};_cada .MN =_bggee .Get ("\u004d\u004e");return &_cada ,nil ;
};func (_egfd *PdfColorspaceCalGray )String ()string {return "\u0043a\u006c\u0047\u0072\u0061\u0079"};
// ToPdfObject implements interface PdfModel.
func (_eba *PdfAnnotationFileAttachment )ToPdfObject ()_ae .PdfObject {_eba .PdfAnnotation .ToPdfObject ();_fccd :=_eba ._gcgf ;_cgad :=_fccd .PdfObject .(*_ae .PdfObjectDictionary );_eba .PdfAnnotationMarkup .appendToPdfDictionary (_cgad );_cgad .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ae .MakeName ("\u0046\u0069\u006c\u0065\u0041\u0074\u0074\u0061\u0063h\u006d\u0065\u006e\u0074"));
_cgad .SetIfNotNil ("\u0046\u0053",_eba .FS );_cgad .SetIfNotNil ("\u004e\u0061\u006d\u0065",_eba .Name );return _fccd ;};var (CourierName =_cb .CourierName ;CourierBoldName =_cb .CourierBoldName ;CourierObliqueName =_cb .CourierObliqueName ;CourierBoldObliqueName =_cb .CourierBoldObliqueName ;
HelveticaName =_cb .HelveticaName ;HelveticaBoldName =_cb .HelveticaBoldName ;HelveticaObliqueName =_cb .HelveticaObliqueName ;HelveticaBoldObliqueName =_cb .HelveticaBoldObliqueName ;SymbolName =_cb .SymbolName ;ZapfDingbatsName =_cb .ZapfDingbatsName ;
TimesRomanName =_cb .TimesRomanName ;TimesBoldName =_cb .TimesBoldName ;TimesItalicName =_cb .TimesItalicName ;TimesBoldItalicName =_cb .TimesBoldItalicName ;);
// 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 (_gdca *PdfColorspaceSpecialPattern )ColorToRGB (color PdfColor )(PdfColor ,error ){_ddaa ,_daag :=color .(*PdfColorPattern );if !_daag {_ac .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 _ddaa .Color ==nil {return color ,nil ;};if _gdca .UnderlyingCS ==nil {return nil ,_db .New ("\u0075n\u0064\u0065\u0072\u006cy\u0069\u006e\u0067\u0020\u0043S\u0020n\u006ft\u0020\u0064\u0065\u0066\u0069\u006e\u0065d");};return _gdca .UnderlyingCS .ColorToRGB (_ddaa .Color );
};
// ToPdfObject implements interface PdfModel.
func (_afg *PdfActionSetOCGState )ToPdfObject ()_ae .PdfObject {_afg .PdfAction .ToPdfObject ();_gag :=_afg ._cbe ;_ccg :=_gag .PdfObject .(*_ae .PdfObjectDictionary );_ccg .SetIfNotNil ("\u0053",_ae .MakeName (string (ActionTypeSetOCGState )));_ccg .SetIfNotNil ("\u0053\u0074\u0061t\u0065",_afg .State );
_ccg .SetIfNotNil ("\u0050\u0072\u0065\u0073\u0065\u0072\u0076\u0065\u0052\u0042",_afg .PreserveRB );return _gag ;};
// NewPdfColorDeviceCMYK returns a new CMYK32 color.
func NewPdfColorDeviceCMYK (c ,m ,y ,k float64 )*PdfColorDeviceCMYK {_feaf :=PdfColorDeviceCMYK {c ,m ,y ,k };return &_feaf ;};
// GetRuneMetrics returns the character metrics for the specified rune.
// A bool flag is returned to indicate whether or not the entry was found.
func (_adae pdfCIDFontType0 )GetRuneMetrics (r rune )(_cb .CharMetrics ,bool ){return _cb .CharMetrics {Wx :_adae ._bbfb },true ;};
// 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 (_bebec *PdfFont )CharcodeBytesToUnicode (data []byte )(string ,int ,int ){_dccfb ,_ ,_eada :=_bebec .CharcodesToUnicodeWithStats (_bebec .BytesToCharcodes (data ));_bcaf :=_bgg .ExpandLigatures (_dccfb );return _bcaf ,_fa .RuneCountInString (_bcaf ),_eada ;
};
// NewPdfAction returns an initialized generic PDF action model.
func NewPdfAction ()*PdfAction {_aec :=&PdfAction {};_aec ._cbe =_ae .MakeIndirectObject (_ae .MakeDict ());return _aec ;};func (_ceee *PdfReader )newPdfAnnotationRichMediaFromDict (_afa *_ae .PdfObjectDictionary )(*PdfAnnotationRichMedia ,error ){_dcc :=&PdfAnnotationRichMedia {};
_dcc .RichMediaSettings =_afa .Get ("\u0052\u0069\u0063\u0068\u004d\u0065\u0064\u0069\u0061\u0053\u0065\u0074t\u0069\u006e\u0067\u0073");_dcc .RichMediaContent =_afa .Get ("\u0052\u0069c\u0068\u004d\u0065d\u0069\u0061\u0043\u006f\u006e\u0074\u0065\u006e\u0074");
return _dcc ,nil ;};
// ValidateSignatures validates digital signatures in the document.
func (_dgbb *PdfReader )ValidateSignatures (handlers []SignatureHandler )([]SignatureValidationResult ,error ){if _dgbb .AcroForm ==nil {return nil ,nil ;};if _dgbb .AcroForm .Fields ==nil {return nil ,nil ;};type sigFieldPair struct{_cabcb *PdfSignature ;
_bfba *PdfField ;_eaeadd SignatureHandler ;};var _eabed []*sigFieldPair ;for _ ,_cddfe :=range _dgbb .AcroForm .AllFields (){if _cddfe .V ==nil {continue ;};if _gdggaa ,_adgcg :=_ae .GetDict (_cddfe .V );_adgcg {if _bafea ,_gcgaa :=_ae .GetNameVal (_gdggaa .Get ("\u0054\u0079\u0070\u0065"));
_gcgaa &&_bafea =="\u0053\u0069\u0067"{_bgeaa ,_gafac :=_ae .GetIndirect (_cddfe .V );if !_gafac {_ac .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 ;};_affff ,_abga :=_dgbb .newPdfSignatureFromIndirect (_bgeaa );if _abga !=nil {return nil ,_abga ;};var _bdgc SignatureHandler ;for _ ,_cbeda :=range handlers {if _cbeda .IsApplicable (_affff ){_bdgc =_cbeda ;break ;};};_eabed =append (_eabed ,&sigFieldPair {_cabcb :_affff ,_bfba :_cddfe ,_eaeadd :_bdgc });
};};};var _ggdag []SignatureValidationResult ;for _ ,_fadcd :=range _eabed {_ceaab :=SignatureValidationResult {IsSigned :true ,Fields :[]*PdfField {_fadcd ._bfba }};if _fadcd ._eaeadd ==nil {_ceaab .Errors =append (_ceaab .Errors ,"\u0068a\u006ed\u006c\u0065\u0072\u0020\u006e\u006f\u0074\u0020\u0073\u0065\u0074");
_ggdag =append (_ggdag ,_ceaab );continue ;};_ddaeb ,_ddgdf :=_fadcd ._eaeadd .NewDigest (_fadcd ._cabcb );if _ddgdf !=nil {_ceaab .Errors =append (_ceaab .Errors ,"\u0064\u0069\u0067e\u0073\u0074\u0020\u0065\u0072\u0072\u006f\u0072",_ddgdf .Error ());
_ggdag =append (_ggdag ,_ceaab );continue ;};_degc :=_fadcd ._cabcb .ByteRange ;if _degc ==nil {_ceaab .Errors =append (_ceaab .Errors ,"\u0042\u0079\u0074\u0065\u0052\u0061\u006e\u0067\u0065\u0020\u006e\u006ft\u0020\u0073\u0065\u0074");_ggdag =append (_ggdag ,_ceaab );
continue ;};for _egecc :=0;_egecc < _degc .Len ();_egecc =_egecc +2{_eacad ,_ :=_ae .GetNumberAsInt64 (_degc .Get (_egecc ));_beabc ,_ :=_ae .GetIntVal (_degc .Get (_egecc +1));if _ ,_ggefa :=_dgbb ._bgbcea .Seek (_eacad ,_gdc .SeekStart );_ggefa !=nil {return nil ,_ggefa ;
};_bfgc :=make ([]byte ,_beabc );if _ ,_dggcag :=_dgbb ._bgbcea .Read (_bfgc );_dggcag !=nil {return nil ,_dggcag ;};_ddaeb .Write (_bfgc );};var _gbggb SignatureValidationResult ;if _caab ,_adbda :=_fadcd ._eaeadd .(SignatureHandlerDocMDP );_adbda {_gbggb ,_ddgdf =_caab .ValidateWithOpts (_fadcd ._cabcb ,_ddaeb ,SignatureHandlerDocMDPParams {Parser :_dgbb ._bfcga });
}else {_gbggb ,_ddgdf =_fadcd ._eaeadd .Validate (_fadcd ._cabcb ,_ddaeb );};if _ddgdf !=nil {_ac .Log .Debug ("E\u0052\u0052\u004f\u0052: \u0025v\u0020\u0028\u0025\u0054\u0029 \u002d\u0020\u0073\u006b\u0069\u0070",_ddgdf ,_fadcd ._eaeadd );_gbggb .Errors =append (_gbggb .Errors ,_ddgdf .Error ());
};_gbggb .Name =_fadcd ._cabcb .Name .Decoded ();_gbggb .Reason =_fadcd ._cabcb .Reason .Decoded ();if _fadcd ._cabcb .M !=nil {_ffec ,_feegc :=NewPdfDate (_fadcd ._cabcb .M .String ());if _feegc !=nil {_ac .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_feegc );
_gbggb .Errors =append (_gbggb .Errors ,_feegc .Error ());continue ;};_gbggb .Date =_ffec ;};_gbggb .ContactInfo =_fadcd ._cabcb .ContactInfo .Decoded ();_gbggb .Location =_fadcd ._cabcb .Location .Decoded ();_gbggb .Fields =_ceaab .Fields ;_ggdag =append (_ggdag ,_gbggb );
};return _ggdag ,nil ;};
// DecodeArray returns the range of color component values in CalRGB colorspace.
func (_ggcg *PdfColorspaceCalRGB )DecodeArray ()[]float64 {return []float64 {0.0,1.0,0.0,1.0,0.0,1.0};};
// NewPdfAnnotationProjection returns a new projection annotation.
func NewPdfAnnotationProjection ()*PdfAnnotationProjection {_cbefa :=NewPdfAnnotation ();_fgf :=&PdfAnnotationProjection {};_fgf .PdfAnnotation =_cbefa ;_fgf .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_cbefa .SetContext (_fgf );return _fgf ;};
// NewPdfActionGoToE returns a new "go to embedded" action.
func NewPdfActionGoToE ()*PdfActionGoToE {_fe :=NewPdfAction ();_cg :=&PdfActionGoToE {};_cg .PdfAction =_fe ;_fe .SetContext (_cg );return _cg ;};
// PdfAnnotationTrapNet represents TrapNet annotations.
// (Section 12.5.6.21).
type PdfAnnotationTrapNet struct{*PdfAnnotation };
// DecodeArray returns the range of color component values in DeviceGray colorspace.
func (_bdba *PdfColorspaceDeviceGray )DecodeArray ()[]float64 {return []float64 {0,1.0}};
// NewPdfAnnotationInk returns a new ink annotation.
func NewPdfAnnotationInk ()*PdfAnnotationInk {_bedc :=NewPdfAnnotation ();_bfb :=&PdfAnnotationInk {};_bfb .PdfAnnotation =_bedc ;_bfb .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_bedc .SetContext (_bfb );return _bfb ;};
// NewPdfField returns an initialized PdfField.
func NewPdfField ()*PdfField {return &PdfField {_facca :_ae .MakeIndirectObject (_ae .MakeDict ())}};
// AddCustomInfo adds a custom info into document info dictionary.
func (_aebf *PdfInfo )AddCustomInfo (name string ,value string )error {if _aebf ._ffgag ==nil {_aebf ._ffgag =_ae .MakeDict ();};if _ ,_febb :=_efea [name ];_febb {return _f .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 );
};_aebf ._ffgag .SetIfNotNil (*_ae .MakeName (name ),_ae .MakeString (value ));return nil ;};
// NewPdfAnnotationStrikeOut returns a new text strikeout annotation.
func NewPdfAnnotationStrikeOut ()*PdfAnnotationStrikeOut {_dcac :=NewPdfAnnotation ();_fgcf :=&PdfAnnotationStrikeOut {};_fgcf .PdfAnnotation =_dcac ;_fgcf .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_dcac .SetContext (_fgcf );return _fgcf ;};
// NewPdfActionMovie returns a new "movie" action.
func NewPdfActionMovie ()*PdfActionMovie {_dc :=NewPdfAction ();_bf :=&PdfActionMovie {};_bf .PdfAction =_dc ;_dc .SetContext (_bf );return _bf ;};
// ToGoTime returns the date in time.Time format.
func (_afeac PdfDate )ToGoTime ()_d .Time {_aefefde :=int (_afeac ._adaec *60*60+_afeac ._befea *60);switch _afeac ._eaedg {case '-':_aefefde =-_aefefde ;case 'Z':_aefefde =0;};_caebb :=_f .Sprintf ("\u0055\u0054\u0043\u0025\u0063\u0025\u002e\u0032\u0064\u0025\u002e\u0032\u0064",_afeac ._eaedg ,_afeac ._adaec ,_afeac ._befea );
_gceaf :=_d .FixedZone (_caebb ,_aefefde );return _d .Date (int (_afeac ._edbbd ),_d .Month (_afeac ._cedda ),int (_afeac ._ddefe ),int (_afeac ._bedgeg ),int (_afeac ._fbcga ),int (_afeac ._eabef ),0,_gceaf );};func _feaee (_ceea _ae .PdfObject )(*PdfColorspaceSpecialPattern ,error ){_ac .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",_ceea .String (),_ceea );
_egcfd :=NewPdfColorspaceSpecialPattern ();if _aebc ,_dfac :=_ceea .(*_ae .PdfIndirectObject );_dfac {_egcfd ._gcffb =_aebc ;};_ceea =_ae .TraceToDirectObject (_ceea );if _ceffg ,_afeg :=_ceea .(*_ae .PdfObjectName );_afeg {if *_ceffg !="\u0050a\u0074\u0074\u0065\u0072\u006e"{return nil ,_f .Errorf ("\u0069\u006e\u0076a\u006c\u0069\u0064\u0020\u006e\u0061\u006d\u0065");
};return _egcfd ,nil ;};_cddb ,_egffe :=_ceea .(*_ae .PdfObjectArray );if !_egffe {_ac .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",_ceea );
return nil ,_f .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0050\u0061\u0074\u0074e\u0072n\u0020C\u0053\u0020\u006f\u0062\u006a\u0065\u0063t");};if _cddb .Len ()!=1&&_cddb .Len ()!=2{_ac .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",_cddb );
return nil ,_f .Errorf ("\u0069n\u0076\u0061\u006c\u0069\u0064\u0020\u0050\u0061\u0074\u0074\u0065r\u006e\u0020\u0043\u0053\u0020\u0061\u0072\u0072\u0061\u0079");};_ceea =_cddb .Get (0);if _bcaea ,_dbeb :=_ceea .(*_ae .PdfObjectName );_dbeb {if *_bcaea !="\u0050a\u0074\u0074\u0065\u0072\u006e"{_ac .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",_bcaea );
return nil ,_f .Errorf ("\u0069\u006e\u0076a\u006c\u0069\u0064\u0020\u006e\u0061\u006d\u0065");};};if _cddb .Len ()> 1{_ceea =_cddb .Get (1);_ceea =_ae .TraceToDirectObject (_ceea );_adcgb ,_adedd :=NewPdfColorspaceFromPdfObject (_ceea );if _adedd !=nil {return nil ,_adedd ;
};_egcfd .UnderlyingCS =_adcgb ;};_ac .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",_egcfd .UnderlyingCS );
return _egcfd ,nil ;};
// ReplaceAcroForm replaces the acrobat form. It appends a new form to the Pdf which
// replaces the original AcroForm.
func (_ffdb *PdfAppender )ReplaceAcroForm (acroForm *PdfAcroForm ){if acroForm !=nil {_ffdb .updateObjectsDeep (acroForm .ToPdfObject (),nil );};_ffdb ._eced =acroForm ;};
// NewPdfAnnotationSound returns a new sound annotation.
func NewPdfAnnotationSound ()*PdfAnnotationSound {_fcbe :=NewPdfAnnotation ();_edab :=&PdfAnnotationSound {};_edab .PdfAnnotation =_fcbe ;_edab .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_fcbe .SetContext (_edab );return _edab ;};
// ToPdfObject implements interface PdfModel.
func (_dfaf *PdfActionRendition )ToPdfObject ()_ae .PdfObject {_dfaf .PdfAction .ToPdfObject ();_dda :=_dfaf ._cbe ;_efc :=_dda .PdfObject .(*_ae .PdfObjectDictionary );_efc .SetIfNotNil ("\u0053",_ae .MakeName (string (ActionTypeRendition )));_efc .SetIfNotNil ("\u0052",_dfaf .R );
_efc .SetIfNotNil ("\u0041\u004e",_dfaf .AN );_efc .SetIfNotNil ("\u004f\u0050",_dfaf .OP );_efc .SetIfNotNil ("\u004a\u0053",_dfaf .JS );return _dda ;};func (_efbc *PdfWriter )makeOffSetReference (_gaaf int64 ){_eadgd :=_f .Sprintf ("\u0073\u0074\u0061\u0072\u0074\u0078\u0072\u0065\u0066\u000a\u0025\u0064\u000a",_gaaf );
_efbc .writeString (_eadgd );_efbc .writeString ("\u0025\u0025\u0045\u004f\u0046\u000a");};func (_fdec *PdfReader )loadAction (_fdbg _ae .PdfObject )(*PdfAction ,error ){if _afe ,_egdd :=_ae .GetIndirect (_fdbg );_egdd {_gcd ,_fcff :=_fdec .newPdfActionFromIndirectObject (_afe );
if _fcff !=nil {return nil ,_fcff ;};return _gcd ,nil ;}else if !_ae .IsNullObject (_fdbg ){return nil ,_db .New ("\u0061\u0063\u0074\u0069\u006fn\u0020\u0073\u0068\u006f\u0075\u006c\u0064\u0020\u0070\u006f\u0069\u006e\u0074 \u0074\u006f\u0020\u0061\u006e\u0020\u0069\u006e\u0064\u0069\u0072\u0065\u0063\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074");
};return nil ,nil ;};func _fcfe ()string {_cadgd .Lock ();defer _cadgd .Unlock ();_cedef :=_gcg .GetLicenseKey ();if len (_bbgdec )> 0&&(_cedef .IsLicensed ()||_acffcf ){return _bbgdec ;};return _f .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",_accce (),_cedef .TypeToString ());
};func _ebbc (_fgfg _ae .PdfObject )(*PdfFontDescriptor ,error ){_cdbdb :=&PdfFontDescriptor {};_fgfg =_ae .ResolveReference (_fgfg );if _bcee ,_degac :=_fgfg .(*_ae .PdfIndirectObject );_degac {_cdbdb ._dcfaf =_bcee ;_fgfg =_bcee .PdfObject ;};_eabdg ,_acga :=_ae .GetDict (_fgfg );
if !_acga {_ac .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",_fgfg );
return nil ,_ae .ErrTypeError ;};if _egfg :=_eabdg .Get ("\u0046\u006f\u006e\u0074\u004e\u0061\u006d\u0065");_egfg !=nil {_cdbdb .FontName =_egfg ;}else {_ac .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");
};_aadb ,_ :=_ae .GetName (_cdbdb .FontName );if _aacg :=_eabdg .Get ("\u0054\u0079\u0070\u0065");_aacg !=nil {_ggdg ,_gaefd :=_aacg .(*_ae .PdfObjectName );if !_gaefd ||string (*_ggdg )!="\u0046\u006f\u006e\u0074\u0044\u0065\u0073\u0063\u0072i\u0070\u0074\u006f\u0072"{_ac .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",_aacg ,_aadb ,_cdbdb .FontName );
};}else {_ac .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",_aadb ,_cdbdb .FontName );
};_cdbdb .FontFamily =_eabdg .Get ("\u0046\u006f\u006e\u0074\u0046\u0061\u006d\u0069\u006c\u0079");_cdbdb .FontStretch =_eabdg .Get ("F\u006f\u006e\u0074\u0053\u0074\u0072\u0065\u0074\u0063\u0068");_cdbdb .FontWeight =_eabdg .Get ("\u0046\u006f\u006e\u0074\u0057\u0065\u0069\u0067\u0068\u0074");
_cdbdb .Flags =_eabdg .Get ("\u0046\u006c\u0061g\u0073");_cdbdb .FontBBox =_eabdg .Get ("\u0046\u006f\u006e\u0074\u0042\u0042\u006f\u0078");_cdbdb .ItalicAngle =_eabdg .Get ("I\u0074\u0061\u006c\u0069\u0063\u0041\u006e\u0067\u006c\u0065");_cdbdb .Ascent =_eabdg .Get ("\u0041\u0073\u0063\u0065\u006e\u0074");
_cdbdb .Descent =_eabdg .Get ("\u0044e\u0073\u0063\u0065\u006e\u0074");_cdbdb .Leading =_eabdg .Get ("\u004ce\u0061\u0064\u0069\u006e\u0067");_cdbdb .CapHeight =_eabdg .Get ("\u0043a\u0070\u0048\u0065\u0069\u0067\u0068t");_cdbdb .XHeight =_eabdg .Get ("\u0058H\u0065\u0069\u0067\u0068\u0074");
_cdbdb .StemV =_eabdg .Get ("\u0053\u0074\u0065m\u0056");_cdbdb .StemH =_eabdg .Get ("\u0053\u0074\u0065m\u0048");_cdbdb .AvgWidth =_eabdg .Get ("\u0041\u0076\u0067\u0057\u0069\u0064\u0074\u0068");_cdbdb .MaxWidth =_eabdg .Get ("\u004d\u0061\u0078\u0057\u0069\u0064\u0074\u0068");
_cdbdb .MissingWidth =_eabdg .Get ("\u004d\u0069\u0073s\u0069\u006e\u0067\u0057\u0069\u0064\u0074\u0068");_cdbdb .FontFile =_eabdg .Get ("\u0046\u006f\u006e\u0074\u0046\u0069\u006c\u0065");_cdbdb .FontFile2 =_eabdg .Get ("\u0046o\u006e\u0074\u0046\u0069\u006c\u00652");
_cdbdb .FontFile3 =_eabdg .Get ("\u0046o\u006e\u0074\u0046\u0069\u006c\u00653");_cdbdb .CharSet =_eabdg .Get ("\u0043h\u0061\u0072\u0053\u0065\u0074");_cdbdb .Style =_eabdg .Get ("\u0053\u0074\u0079l\u0065");_cdbdb .Lang =_eabdg .Get ("\u004c\u0061\u006e\u0067");
_cdbdb .FD =_eabdg .Get ("\u0046\u0044");_cdbdb .CIDSet =_eabdg .Get ("\u0043\u0049\u0044\u0053\u0065\u0074");if _cdbdb .Flags !=nil {if _gfcce ,_bcce :=_ae .GetIntVal (_cdbdb .Flags );_bcce {_cdbdb ._fbafe =_gfcce ;};};if _cdbdb .MissingWidth !=nil {if _efff ,_gabd :=_ae .GetNumberAsFloat (_cdbdb .MissingWidth );
_gabd ==nil {_cdbdb ._ffdc =_efff ;};};if _cdbdb .FontFile !=nil {_bfcaf ,_bgdda :=_bbgdb (_cdbdb .FontFile );if _bgdda !=nil {return _cdbdb ,_bgdda ;};_ac .Log .Trace ("f\u006f\u006e\u0074\u0046\u0069\u006c\u0065\u003d\u0025\u0073",_bfcaf );_cdbdb .fontFile =_bfcaf ;
};if _cdbdb .FontFile2 !=nil {_aabb ,_afeff :=_cb .NewFontFile2FromPdfObject (_cdbdb .FontFile2 );if _afeff !=nil {return _cdbdb ,_afeff ;};_ac .Log .Trace ("\u0066\u006f\u006et\u0046\u0069\u006c\u0065\u0032\u003d\u0025\u0073",_aabb .String ());_cdbdb ._aebfg =&_aabb ;
};return _cdbdb ,nil ;};
// ToPdfObject returns a PdfObject representation of PdfColorspaceDeviceNAttributes as a PdfObjectDictionary directly
// or indirectly within an indirect object container.
func (_aggda *PdfColorspaceDeviceNAttributes )ToPdfObject ()_ae .PdfObject {_gecgc :=_ae .MakeDict ();if _aggda .Subtype !=nil {_gecgc .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_aggda .Subtype );};_gecgc .SetIfNotNil ("\u0043o\u006c\u006f\u0072\u0061\u006e\u0074s",_aggda .Colorants );
_gecgc .SetIfNotNil ("\u0050r\u006f\u0063\u0065\u0073\u0073",_aggda .Process );_gecgc .SetIfNotNil ("M\u0069\u0078\u0069\u006e\u0067\u0048\u0069\u006e\u0074\u0073",_aggda .MixingHints );if _aggda ._cabd !=nil {_aggda ._cabd .PdfObject =_gecgc ;return _aggda ._cabd ;
};return _gecgc ;};func _ceb (_eaf _ae .PdfObject )(*PdfFilespec ,error ){if _eaf ==nil {return nil ,nil ;};return NewPdfFilespecFromObj (_eaf );};
// ColorAt returns the color of the image pixel specified by the x and y coordinates.
func (_cfff *Image )ColorAt (x ,y int )(_gg .Color ,error ){_gabcge :=_afc .BytesPerLine (int (_cfff .Width ),int (_cfff .BitsPerComponent ),_cfff .ColorComponents );switch _cfff .ColorComponents {case 1:return _afc .ColorAtGrayscale (x ,y ,int (_cfff .BitsPerComponent ),_gabcge ,_cfff .Data ,_cfff ._fdae );
case 3:return _afc .ColorAtNRGBA (x ,y ,int (_cfff .Width ),_gabcge ,int (_cfff .BitsPerComponent ),_cfff .Data ,_cfff ._bbba ,_cfff ._fdae );case 4:return _afc .ColorAtCMYK (x ,y ,int (_cfff .Width ),_cfff .Data ,_cfff ._fdae );};_ac .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",_cfff .ColorComponents ,_cfff .BitsPerComponent );
return nil ,_db .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");};
// NewPdfOutline returns an initialized PdfOutline.
func NewPdfOutline ()*PdfOutline {_cgaaa :=&PdfOutline {_fcge :_ae .MakeIndirectObject (_ae .MakeDict ())};_cgaaa ._aaea =_cgaaa ;return _cgaaa ;};func (_fcaac *DSS )generateHashMap (_eded []*_ae .PdfObjectStream )(map[string ]*_ae .PdfObjectStream ,error ){_cfed :=map[string ]*_ae .PdfObjectStream {};
for _ ,_bgace :=range _eded {_adcc ,_eggf :=_ae .DecodeStream (_bgace );if _eggf !=nil {return nil ,_eggf ;};_gbcga ,_eggf :=_gbgbd (_adcc );if _eggf !=nil {return nil ,_eggf ;};_cfed [string (_gbcga )]=_bgace ;};return _cfed ,nil ;};
// NewPdfShadingPatternType3 creates an empty shading pattern type 3 object.
func NewPdfShadingPatternType3 ()*PdfShadingPatternType3 {_cdfff :=&PdfShadingPatternType3 {};_cdfff .Matrix =_ae .MakeArrayFromIntegers ([]int {1,0,0,1,0,0});_cdfff .PdfPattern =&PdfPattern {};_cdfff .PdfPattern .PatternType =int64 (*_ae .MakeInteger (2));
_cdfff .PdfPattern ._ebafb =_cdfff ;_cdfff .PdfPattern ._ebfged =_ae .MakeIndirectObject (_ae .MakeDict ());return _cdfff ;};func _abbdb (_edgb _ae .PdfObject ,_cbbg *PdfReader )(*OutlineDest ,error ){_cafc ,_ccga :=_ae .GetArray (_edgb );if !_ccga {return nil ,_db .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");
};_eccgc :=_cafc .Len ();if _eccgc < 2{return nil ,_f .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",_eccgc );
};_beac :=&OutlineDest {Mode :"\u0046\u0069\u0074"};_fccgf :=_cafc .Get (0);if _afag ,_dcaeeb :=_ae .GetIndirect (_fccgf );_dcaeeb {if _ ,_egaeb ,_bfbea :=_cbbg .PageFromIndirectObject (_afag );_bfbea ==nil {_beac .Page =int64 (_egaeb -1);}else {_ac .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",_afag );
};_beac .PageObj =_afag ;}else if _eaeddg ,_dbbad :=_ae .GetIntVal (_fccgf );_dbbad {if _eaeddg >=0&&_eaeddg < len (_cbbg .PageList ){_beac .PageObj =_cbbg .PageList [_eaeddg ].GetPageAsIndirectObject ();}else {_ac .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",_eaeddg );
};_beac .Page =int64 (_eaeddg );}else {return nil ,_f .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",_fccgf );};_fdfb ,_ccga :=_ae .GetNameVal (_cafc .Get (1));
if !_ccga {_ac .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",_cafc .Get (1));
return _beac ,nil ;};switch _fdfb {case "\u0046\u0069\u0074","\u0046\u0069\u0074\u0042":case "\u0046\u0069\u0074\u0048","\u0046\u0069\u0074B\u0048":if _eccgc > 2{_beac .Y ,_ =_ae .GetNumberAsFloat (_ae .TraceToDirectObject (_cafc .Get (2)));};case "\u0046\u0069\u0074\u0056","\u0046\u0069\u0074B\u0056":if _eccgc > 2{_beac .X ,_ =_ae .GetNumberAsFloat (_ae .TraceToDirectObject (_cafc .Get (2)));
};case "\u0058\u0059\u005a":if _eccgc > 4{_beac .X ,_ =_ae .GetNumberAsFloat (_ae .TraceToDirectObject (_cafc .Get (2)));_beac .Y ,_ =_ae .GetNumberAsFloat (_ae .TraceToDirectObject (_cafc .Get (3)));_beac .Zoom ,_ =_ae .GetNumberAsFloat (_ae .TraceToDirectObject (_cafc .Get (4)));
};default:_fdfb ="\u0046\u0069\u0074";};_beac .Mode =_fdfb ;return _beac ,nil ;};
// PdfColorspaceSpecialPattern is a Pattern colorspace.
// Can be defined either as /Pattern or with an underlying colorspace [/Pattern cs].
type PdfColorspaceSpecialPattern struct{UnderlyingCS PdfColorspace ;_gcffb *_ae .PdfIndirectObject ;};
// ToJBIG2Image converts current image to the core.JBIG2Image.
func (_dgad *Image )ToJBIG2Image ()(*_ae .JBIG2Image ,error ){_dcgfc ,_dbbc :=_dgad .ToGoImage ();if _dbbc !=nil {return nil ,_dbbc ;};return _ae .GoImageToJBIG2 (_dcgfc ,_ae .JB2ImageAutoThreshold );};
// ToPdfObject returns the PDF representation of the page resources.
func (_fedfeg *PdfPageResources )ToPdfObject ()_ae .PdfObject {_eadgf :=_fedfeg ._cebg ;_eadgf .SetIfNotNil ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e",_fedfeg .ExtGState );if _fedfeg ._febfa !=nil {_fedfeg .ColorSpace =_fedfeg ._febfa .ToPdfObject ();
};_eadgf .SetIfNotNil ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065",_fedfeg .ColorSpace );_eadgf .SetIfNotNil ("\u0050a\u0074\u0074\u0065\u0072\u006e",_fedfeg .Pattern );_eadgf .SetIfNotNil ("\u0053h\u0061\u0064\u0069\u006e\u0067",_fedfeg .Shading );
_eadgf .SetIfNotNil ("\u0058O\u0062\u006a\u0065\u0063\u0074",_fedfeg .XObject );_eadgf .SetIfNotNil ("\u0046\u006f\u006e\u0074",_fedfeg .Font );_eadgf .SetIfNotNil ("\u0050r\u006f\u0063\u0053\u0065\u0074",_fedfeg .ProcSet );_eadgf .SetIfNotNil ("\u0050\u0072\u006f\u0070\u0065\u0072\u0074\u0069\u0065\u0073",_fedfeg .Properties );
return _eadgf ;};
// ToInteger convert to an integer format.
func (_cdde *PdfColorDeviceCMYK )ToInteger (bits int )[4]uint32 {_ffebe :=_ag .Pow (2,float64 (bits ))-1;return [4]uint32 {uint32 (_ffebe *_cdde .C ()),uint32 (_ffebe *_cdde .M ()),uint32 (_ffebe *_cdde .Y ()),uint32 (_ffebe *_cdde .K ())};};
// GetColorspaceByName returns the colorspace with the specified name from the page resources.
func (_aadcc *PdfPageResources )GetColorspaceByName (keyName _ae .PdfObjectName )(PdfColorspace ,bool ){_geddg ,_gedbg :=_aadcc .GetColorspaces ();if _gedbg !=nil {_ac .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",_gedbg );
return nil ,false ;};if _geddg ==nil {return nil ,false ;};_ebbea ,_cfbdc :=_geddg .Colorspaces [string (keyName )];if !_cfbdc {return nil ,false ;};return _ebbea ,true ;};func (_agbf *pdfFontType0 )baseFields ()*fontCommon {return &_agbf .fontCommon };
// Evaluate runs the function on the passed in slice and returns the results.
func (_dbcf *PdfFunctionType3 )Evaluate (x []float64 )([]float64 ,error ){if len (x )!=1{_ac .Log .Error ("\u004f\u006e\u006c\u0079 o\u006e\u0065\u0020\u0069\u006e\u0070\u0075\u0074\u0020\u0061\u006c\u006c\u006f\u0077e\u0064");return nil ,_db .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");
};return nil ,_db .New ("\u006e\u006f\u0074\u0020im\u0070\u006c\u0065\u006d\u0065\u006e\u0074\u0065\u0064\u0020\u0079\u0065\u0074");};func _fccgfc (_bgebda _gdc .ReadSeeker ,_adbdg *ReaderOpts ,_faffd bool ,_efdff string )(*PdfReader ,error ){if _adbdg ==nil {_adbdg =NewReaderOpts ();
};_bgbaa :=*_adbdg ;_ebbae :=&PdfReader {_bgbcea :_bgebda ,_agege :map[_ae .PdfObject ]struct{}{},_gdbcb :_gccbg (),_ffggb :_adbdg .LazyLoad ,_dbeeb :_adbdg .ComplianceMode ,_bafaa :_faffd ,_bagca :&_bgbaa };_ccffb ,_gdda :=_dfbdga ("\u0072");if _gdda !=nil {return nil ,_gdda ;
};_gdda =_gcg .Track (_ccffb ,_efdff );if _gdda !=nil {return nil ,_gdda ;};_ebbae ._decgb =_ccffb ;var _gdae *_ae .PdfParser ;if !_ebbae ._dbeeb {_gdae ,_gdda =_ae .NewParser (_bgebda );}else {_gdae ,_gdda =_ae .NewCompliancePdfParser (_bgebda );};if _gdda !=nil {return nil ,_gdda ;
};_ebbae ._bfcga =_gdae ;_dgeed ,_gdda :=_ebbae .IsEncrypted ();if _gdda !=nil {return nil ,_gdda ;};if !_dgeed {_gdda =_ebbae .loadStructure ();if _gdda !=nil {return nil ,_gdda ;};}else if _faffd {_efcge ,_effad :=_ebbae .Decrypt ([]byte (_adbdg .Password ));
if _effad !=nil {return nil ,_effad ;};if !_efcge {return nil ,_db .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");
};};_ebbae ._aabeg =make (map[*PdfReader ]*PdfReader );_ebbae ._afagc =make ([]*PdfReader ,_gdae .GetRevisionNumber ());return _ebbae ,nil ;};
// ToPdfObject implements interface PdfModel.
func (_adee *PdfAnnotation3D )ToPdfObject ()_ae .PdfObject {_adee .PdfAnnotation .ToPdfObject ();_dgdce :=_adee ._gcgf ;_debee :=_dgdce .PdfObject .(*_ae .PdfObjectDictionary );_debee .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ae .MakeName ("\u0033\u0044"));
_debee .SetIfNotNil ("\u0033\u0044\u0044",_adee .T3DD );_debee .SetIfNotNil ("\u0033\u0044\u0056",_adee .T3DV );_debee .SetIfNotNil ("\u0033\u0044\u0041",_adee .T3DA );_debee .SetIfNotNil ("\u0033\u0044\u0049",_adee .T3DI );_debee .SetIfNotNil ("\u0033\u0044\u0042",_adee .T3DB );
return _dgdce ;};
// NewOutlineBookmark returns an initialized PdfOutlineItem for a given bookmark title and page.
func NewOutlineBookmark (title string ,page *_ae .PdfIndirectObject )*PdfOutlineItem {_fbbd :=PdfOutlineItem {};_fbbd ._aaea =&_fbbd ;_fbbd .Title =_ae .MakeString (title );_ebgc :=_ae .MakeArray ();_ebgc .Append (page );_ebgc .Append (_ae .MakeName ("\u0046\u0069\u0074"));
_fbbd .Dest =_ebgc ;return &_fbbd ;};
// PdfAnnotationSquare represents Square annotations.
// (Section 12.5.6.8).
type PdfAnnotationSquare struct{*PdfAnnotation ;*PdfAnnotationMarkup ;BS _ae .PdfObject ;IC _ae .PdfObject ;BE _ae .PdfObject ;RD _ae .PdfObject ;};
// NewPdfOutlineTree returns an initialized PdfOutline tree.
func NewPdfOutlineTree ()*PdfOutline {_edcac :=NewPdfOutline ();_edcac ._aaea =&_edcac ;return _edcac ;};func _dfbdga (_cbfc string )(string ,error ){var _ffab _aa .Buffer ;_ffab .WriteString (_cbfc );_bddbcc :=make ([]byte ,8+16);_fdaaf :=_d .Now ().UTC ().UnixNano ();
_fd .BigEndian .PutUint64 (_bddbcc ,uint64 (_fdaaf ));_ ,_ffefe :=_gd .Read (_bddbcc [8:]);if _ffefe !=nil {return "",_ffefe ;};_ffab .WriteString (_g .EncodeToString (_bddbcc ));return _ffab .String (),nil ;};func (_geffg *PdfFunctionType0 )processSamples ()error {_gfaag :=_ba .ResampleBytes (_geffg ._ecefb ,_geffg .BitsPerSample );
_geffg ._fegc =_gfaag ;return nil ;};
// AddOutlineTree adds outlines to a PDF file.
func (_ecdba *PdfWriter )AddOutlineTree (outlineTree *PdfOutlineTreeNode ){_ecdba ._dgfge =outlineTree };
// PdfAction represents an action in PDF (section 12.6 p. 412).
type PdfAction struct{_df PdfModel ;Type _ae .PdfObject ;S _ae .PdfObject ;Next _ae .PdfObject ;_cbe *_ae .PdfIndirectObject ;};
// Write writes out the PDF.
func (_dddfeb *PdfWriter )Write (writer _gdc .Writer )error {_ac .Log .Trace ("\u0057r\u0069\u0074\u0065\u0028\u0029");_gbeb :=_dddfeb .checkLicense ();if _gbeb !=nil {return _gbeb ;};if _gbeb =_dddfeb .writeOutlines ();_gbeb !=nil {return _gbeb ;};if _gbeb =_dddfeb .writeAcroFormFields ();
_gbeb !=nil {return _gbeb ;};_dddfeb .checkPendingObjects ();if _gbeb =_dddfeb .writeOutputIntents ();_gbeb !=nil {return _gbeb ;};_dddfeb .setCatalogVersion ();_dddfeb .copyObjects ();if _gbeb =_dddfeb .optimize ();_gbeb !=nil {return _gbeb ;};if _gbeb =_dddfeb .optimizeDocument ();
_gbeb !=nil {return _gbeb ;};var _gfada _b .Hash ;if _dddfeb ._gfbc {_gfada =_ab .New ();writer =_gdc .MultiWriter (_gfada ,writer );};_dddfeb .setWriter (writer );_gdfef :=_dddfeb .checkCrossReferenceStream ();_gaggd ,_gdfef :=_dddfeb .mapObjectStreams (_gdfef );
_dddfeb .adjustXRefAffectedVersion (_gdfef );_dddfeb .writeDocumentVersion ();_dddfeb .updateObjectNumbers ();_dddfeb .writeObjects ();if _gbeb =_dddfeb .writeObjectsInStreams (_gaggd );_gbeb !=nil {return _gbeb ;};_cedag :=_dddfeb ._eeegee ;var _dcfcf int ;
for _fegeg :=range _dddfeb ._agfeg {if _fegeg > _dcfcf {_dcfcf =_fegeg ;};};if _dddfeb ._gfbc {if _gbeb =_dddfeb .setHashIDs (_gfada );_gbeb !=nil {return _gbeb ;};};if _gdfef {if _gbeb =_dddfeb .writeXRefStreams (_dcfcf ,_cedag );_gbeb !=nil {return _gbeb ;
};}else {_dddfeb .writeTrailer (_dcfcf );};_dddfeb .makeOffSetReference (_cedag );if _gbeb =_dddfeb .flushWriter ();_gbeb !=nil {return _gbeb ;};return nil ;};
// PdfAnnotationMarkup represents additional fields for mark-up annotations.
// (Section 12.5.6.2 p. 399).
type PdfAnnotationMarkup struct{T _ae .PdfObject ;Popup *PdfAnnotationPopup ;CA _ae .PdfObject ;RC _ae .PdfObject ;CreationDate _ae .PdfObject ;IRT _ae .PdfObject ;Subj _ae .PdfObject ;RT _ae .PdfObject ;IT _ae .PdfObject ;ExData _ae .PdfObject ;};
// ToGray returns a PdfColorDeviceGray color based on the current RGB color.
func (_dcdd *PdfColorDeviceRGB )ToGray ()*PdfColorDeviceGray {_ffgf :=0.3*_dcdd .R ()+0.59*_dcdd .G ()+0.11*_dcdd .B ();_ffgf =_ag .Min (_ag .Max (_ffgf ,0.0),1.0);return NewPdfColorDeviceGray (_ffgf );};
// Items returns all children outline items.
func (_eebc *Outline )Items ()[]*OutlineItem {return _eebc .Entries };
// GetNumComponents returns the number of color components (1 for Separation).
func (_dgec *PdfColorspaceSpecialSeparation )GetNumComponents ()int {return 1};
// 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 (_cccag *PdfWriter )SetOpenAction (dest _ae .PdfObject )error {if dest ==nil ||_ae .IsNullObject (dest ){return nil ;};_cccag ._caddd .Set ("\u004f\u0070\u0065\u006e\u0041\u0063\u0074\u0069\u006f\u006e",dest );return _cccag .addObjects (dest );};
// NewPdfShadingType3 creates an empty shading type 3 dictionary.
func NewPdfShadingType3 ()*PdfShadingType3 {_deecc :=&PdfShadingType3 {};_deecc .PdfShading =&PdfShading {};_deecc .PdfShading ._dcdgda =_ae .MakeIndirectObject (_ae .MakeDict ());_deecc .PdfShading ._ffgbf =_deecc ;return _deecc ;};
// ToPdfObject implements interface PdfModel.
func (_ceeed *PdfAnnotationMovie )ToPdfObject ()_ae .PdfObject {_ceeed .PdfAnnotation .ToPdfObject ();_fbca :=_ceeed ._gcgf ;_dbab :=_fbca .PdfObject .(*_ae .PdfObjectDictionary );_dbab .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ae .MakeName ("\u004d\u006f\u0076i\u0065"));
_dbab .SetIfNotNil ("\u0054",_ceeed .T );_dbab .SetIfNotNil ("\u004d\u006f\u0076i\u0065",_ceeed .Movie );_dbab .SetIfNotNil ("\u0041",_ceeed .A );return _fbca ;};
// GetContainingPdfObject implements interface PdfModel.
func (_dbca *PdfAnnotation )GetContainingPdfObject ()_ae .PdfObject {return _dbca ._gcgf };func (_afba *pdfFontType0 )getFontDescriptor ()*PdfFontDescriptor {if _afba ._cafdb ==nil &&_afba .DescendantFont !=nil {return _afba .DescendantFont .FontDescriptor ();
};return _afba ._cafdb ;};
// NewPdfActionNamed returns a new "named" action.
func NewPdfActionNamed ()*PdfActionNamed {_gfc :=NewPdfAction ();_fcb :=&PdfActionNamed {};_fcb .PdfAction =_gfc ;_gfc .SetContext (_fcb );return _fcb ;};func _ddgf (_caad *_ae .PdfObjectDictionary ,_ebff *fontCommon )(*pdfFontType0 ,error ){_geebd ,_ebdd :=_ae .GetArray (_caad .Get ("\u0044e\u0073c\u0065\u006e\u0064\u0061\u006e\u0074\u0046\u006f\u006e\u0074\u0073"));
if !_ebdd {_ac .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",_ebff );
return nil ,_ae .ErrRangeError ;};if _geebd .Len ()!=1{_ac .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",_geebd .Len ());return nil ,_ae .ErrRangeError ;
};_gdbc ,_edac :=_baabd (_geebd .Get (0),false );if _edac !=nil {_ac .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",_edac ,_ebff );
return nil ,_edac ;};_ebecc :=_cede (_ebff );_ebecc .DescendantFont =_gdbc ;_fbfda ,_ebdd :=_ae .GetNameVal (_caad .Get ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067"));if _ebdd {if _fbfda =="\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079\u002d\u0048"||_fbfda =="\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079\u002d\u0056"{_ebecc ._bagdb =_bgg .NewIdentityTextEncoder (_fbfda );
}else if _abg .IsPredefinedCMap (_fbfda ){_ebecc ._gbced ,_edac =_abg .LoadPredefinedCMap (_fbfda );if _edac !=nil {_ac .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",_fbfda ,_edac );
};}else {_ac .Log .Debug ("\u0055\u006e\u0068\u0061\u006e\u0064\u006c\u0065\u0064\u0020\u0063\u006da\u0070\u0020\u0025\u0071",_fbfda );};};if _gdgcf :=_gdbc .baseFields ()._ebfdc ;_gdgcf !=nil {if _gfcba :=_gdgcf .Name ();_gfcba =="\u0041d\u006fb\u0065\u002d\u0043\u004e\u0053\u0031\u002d\u0055\u0043\u0053\u0032"||_gfcba =="\u0041\u0064\u006f\u0062\u0065\u002d\u0047\u0042\u0031-\u0055\u0043\u0053\u0032"||_gfcba =="\u0041\u0064\u006f\u0062\u0065\u002d\u004a\u0061\u0070\u0061\u006e\u0031-\u0055\u0043\u0053\u0032"||_gfcba =="\u0041\u0064\u006f\u0062\u0065\u002d\u004b\u006f\u0072\u0065\u0061\u0031-\u0055\u0043\u0053\u0032"{_ebecc ._bagdb =_bgg .NewCMapEncoder (_fbfda ,_ebecc ._gbced ,_gdgcf );
};};return _ebecc ,nil ;};func (_efad *PdfField )inherit (_edaba func (*PdfField )bool )(bool ,error ){_eddg :=map[*PdfField ]bool {};_ddfe :=false ;_gbcd :=_efad ;for _gbcd !=nil {if _ ,_acaga :=_eddg [_gbcd ];_acaga {return false ,_db .New ("\u0072\u0065\u0063\u0075rs\u0069\u0076\u0065\u0020\u0074\u0072\u0061\u0076\u0065\u0072\u0073\u0061\u006c");
};_dbdg :=_edaba (_gbcd );if _dbdg {_ddfe =true ;break ;};_eddg [_gbcd ]=true ;_gbcd =_gbcd .Parent ;};return _ddfe ,nil ;};
// GetOCProperties returns the optional content properties PdfObject.
func (_eaeadc *PdfReader )GetOCProperties ()(_ae .PdfObject ,error ){_bgfcd :=_eaeadc ._aedf ;_cfcf :=_bgfcd .Get ("\u004f\u0043\u0050r\u006f\u0070\u0065\u0072\u0074\u0069\u0065\u0073");_cfcf =_ae .ResolveReference (_cfcf );if !_eaeadc ._ffggb {_gcgfb :=_eaeadc .traverseObjectData (_cfcf );
if _gcgfb !=nil {return nil ,_gcgfb ;};};return _cfcf ,nil ;};
// GetAscent returns the Ascent of the font `descriptor`.
func (_dfccd *PdfFontDescriptor )GetAscent ()(float64 ,error ){return _ae .GetNumberAsFloat (_dfccd .Ascent );};
// ToPdfObject returns the PDF representation of the colorspace.
func (_baab *PdfColorspaceSpecialPattern )ToPdfObject ()_ae .PdfObject {if _baab .UnderlyingCS ==nil {return _ae .MakeName ("\u0050a\u0074\u0074\u0065\u0072\u006e");};_cbde :=_ae .MakeArray (_ae .MakeName ("\u0050a\u0074\u0074\u0065\u0072\u006e"));_cbde .Append (_baab .UnderlyingCS .ToPdfObject ());
if _baab ._gcffb !=nil {_baab ._gcffb .PdfObject =_cbde ;return _baab ._gcffb ;};return _cbde ;};
// 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 (_fggd *PdfColorspaceDeviceRGB )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=3{return nil ,_db .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_debf :=vals [0];if _debf < 0.0||_debf > 1.0{_ac .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_debf );
return nil ,ErrColorOutOfRange ;};_ffbfd :=vals [1];if _ffbfd < 0.0||_ffbfd > 1.0{_ac .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_debf );return nil ,ErrColorOutOfRange ;
};_aceb :=vals [2];if _aceb < 0.0||_aceb > 1.0{_ac .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_debf );return nil ,ErrColorOutOfRange ;};_fgdeb :=NewPdfColorDeviceRGB (_debf ,_ffbfd ,_aceb );
return _fgdeb ,nil ;};func _fbbf (_dgbe *PdfPage )map[_ae .PdfObjectName ]_ae .PdfObject {_dbag :=make (map[_ae .PdfObjectName ]_ae .PdfObject );if _dgbe .Resources ==nil {return _dbag ;};if _dgbe .Resources .Font !=nil {if _fffd ,_bfdcf :=_ae .GetDict (_dgbe .Resources .Font );
_bfdcf {for _ ,_aada :=range _fffd .Keys (){_dbag [_aada ]=_fffd .Get (_aada );};};};if _dgbe .Resources .ExtGState !=nil {if _bac ,_fbfc :=_ae .GetDict (_dgbe .Resources .ExtGState );_fbfc {for _ ,_geed :=range _bac .Keys (){_dbag [_geed ]=_bac .Get (_geed );
};};};if _dgbe .Resources .XObject !=nil {if _caeac ,_bgdg :=_ae .GetDict (_dgbe .Resources .XObject );_bgdg {for _ ,_befe :=range _caeac .Keys (){_dbag [_befe ]=_caeac .Get (_befe );};};};if _dgbe .Resources .Pattern !=nil {if _ebab ,_ggee :=_ae .GetDict (_dgbe .Resources .Pattern );
_ggee {for _ ,_geea :=range _ebab .Keys (){_dbag [_geea ]=_ebab .Get (_geea );};};};if _dgbe .Resources .Shading !=nil {if _aggee ,_defd :=_ae .GetDict (_dgbe .Resources .Shading );_defd {for _ ,_dfbd :=range _aggee .Keys (){_dbag [_dfbd ]=_aggee .Get (_dfbd );
};};};if _dgbe .Resources .ProcSet !=nil {if _ecde ,_fgbc :=_ae .GetDict (_dgbe .Resources .ProcSet );_fgbc {for _ ,_bdgbc :=range _ecde .Keys (){_dbag [_bdgbc ]=_ecde .Get (_bdgbc );};};};if _dgbe .Resources .Properties !=nil {if _cdd ,_agc :=_ae .GetDict (_dgbe .Resources .Properties );
_agc {for _ ,_ddab :=range _cdd .Keys (){_dbag [_ddab ]=_cdd .Get (_ddab );};};};return _dbag ;};
// 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 ;};
// PdfBorderStyle represents a border style dictionary (12.5.4 Border Styles p. 394).
type PdfBorderStyle struct{W *float64 ;S *BorderStyle ;D *[]int ;_aadd _ae .PdfObject ;};
// ToPdfObject implements interface PdfModel.
// Note: Call the sub-annotation's ToPdfObject to set both the generic and non-generic information.
func (_dga *PdfAnnotation )ToPdfObject ()_ae .PdfObject {_fdefg :=_dga ._gcgf ;_aecea :=_fdefg .PdfObject .(*_ae .PdfObjectDictionary );_aecea .Clear ();_aecea .Set ("\u0054\u0079\u0070\u0065",_ae .MakeName ("\u0041\u006e\u006eo\u0074"));_aecea .SetIfNotNil ("\u0052\u0065\u0063\u0074",_dga .Rect );
_aecea .SetIfNotNil ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073",_dga .Contents );_aecea .SetIfNotNil ("\u0050",_dga .P );_aecea .SetIfNotNil ("\u004e\u004d",_dga .NM );_aecea .SetIfNotNil ("\u004d",_dga .M );_aecea .SetIfNotNil ("\u0046",_dga .F );
_aecea .SetIfNotNil ("\u0041\u0050",_dga .AP );_aecea .SetIfNotNil ("\u0041\u0053",_dga .AS );_aecea .SetIfNotNil ("\u0042\u006f\u0072\u0064\u0065\u0072",_dga .Border );_aecea .SetIfNotNil ("\u0043",_dga .C );_aecea .SetIfNotNil ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074",_dga .StructParent );
_aecea .SetIfNotNil ("\u004f\u0043",_dga .OC );return _fdefg ;};func (_aad *PdfReader )newPdfActionSubmitFormFromDict (_fgg *_ae .PdfObjectDictionary )(*PdfActionSubmitForm ,error ){_afga ,_cfg :=_ceb (_fgg .Get ("\u0046"));if _cfg !=nil {return nil ,_cfg ;
};return &PdfActionSubmitForm {F :_afga ,Fields :_fgg .Get ("\u0046\u0069\u0065\u006c\u0064\u0073"),Flags :_fgg .Get ("\u0046\u006c\u0061g\u0073")},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 *_ae .PdfObjectName ;P *_ae .PdfObjectInteger ;V *_ae .PdfObjectName ;};
// ToPdfObject implements interface PdfModel.
func (_acee *PdfAnnotationPolyLine )ToPdfObject ()_ae .PdfObject {_acee .PdfAnnotation .ToPdfObject ();_gba :=_acee ._gcgf ;_efbg :=_gba .PdfObject .(*_ae .PdfObjectDictionary );_acee .PdfAnnotationMarkup .appendToPdfDictionary (_efbg );_efbg .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ae .MakeName ("\u0050\u006f\u006c\u0079\u004c\u0069\u006e\u0065"));
_efbg .SetIfNotNil ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073",_acee .Vertices );_efbg .SetIfNotNil ("\u004c\u0045",_acee .LE );_efbg .SetIfNotNil ("\u0042\u0053",_acee .BS );_efbg .SetIfNotNil ("\u0049\u0043",_acee .IC );_efbg .SetIfNotNil ("\u0042\u0045",_acee .BE );
_efbg .SetIfNotNil ("\u0049\u0054",_acee .IT );_efbg .SetIfNotNil ("\u004de\u0061\u0073\u0075\u0072\u0065",_acee .Measure );return _gba ;};func _cdfgf (_faef _ae .PdfObject )(map[_bgg .CharCode ]float64 ,error ){if _faef ==nil {return nil ,nil ;};_cfgca ,_ccdcg :=_ae .GetArray (_faef );
if !_ccdcg {return nil ,nil ;};_dgdef :=map[_bgg .CharCode ]float64 {};_gdcaga :=_cfgca .Len ();for _aadaa :=0;_aadaa < _gdcaga -1;_aadaa ++{_bfge :=_ae .TraceToDirectObject (_cfgca .Get (_aadaa ));_bdbgf ,_faffc :=_ae .GetIntVal (_bfge );if !_faffc {return nil ,_f .Errorf ("\u0042a\u0064\u0020\u0066\u006fn\u0074\u0020\u0057\u0020\u006fb\u006a0\u003a \u0069\u003d\u0025\u0064\u0020\u0025\u0023v",_aadaa ,_bfge );
};_aadaa ++;if _aadaa > _gdcaga -1{return nil ,_f .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",_cfgca );};_afgdb :=_ae .TraceToDirectObject (_cfgca .Get (_aadaa ));
switch _afgdb .(type ){case *_ae .PdfObjectArray :_faeg ,_ :=_ae .GetArray (_afgdb );if _cecaf ,_gfbgc :=_faeg .ToFloat64Array ();_gfbgc ==nil {for _caae :=0;_caae < len (_cecaf );_caae ++{_dgdef [_bgg .CharCode (_bdbgf +_caae )]=_cecaf [_caae ];};}else {return nil ,_f .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",_aadaa ,_afgdb );
};case *_ae .PdfObjectInteger :_eceba ,_fdaca :=_ae .GetIntVal (_afgdb );if !_fdaca {return nil ,_f .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",_aadaa ,_afgdb );
};_aadaa ++;if _aadaa > _gdcaga -1{return nil ,_f .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",_cfgca );};_bgggc :=_cfgca .Get (_aadaa );_fgfd ,_abad :=_ae .GetNumberAsFloat (_bgggc );
if _abad !=nil {return nil ,_f .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",_aadaa ,_bgggc );};for _eadbd :=_bdbgf ;_eadbd <=_eceba ;
_eadbd ++{_dgdef [_bgg .CharCode (_eadbd )]=_fgfd ;};default:return nil ,_f .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",_aadaa ,_afgdb );
};};return _dgdef ,nil ;};
// PdfAnnotationFileAttachment represents FileAttachment annotations.
// (Section 12.5.6.15).
type PdfAnnotationFileAttachment struct{*PdfAnnotation ;*PdfAnnotationMarkup ;FS _ae .PdfObject ;Name _ae .PdfObject ;};
// 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 _gdc .ReadSeeker ,opts *ReaderOpts )(*PdfReader ,error ){const _cdaf ="\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 _fccgfc (rs ,opts ,true ,_cdaf );
};
// ToPdfOutline returns a low level PdfOutline object, based on the current
// instance.
func (_cafcd *Outline )ToPdfOutline ()*PdfOutline {_deecf :=NewPdfOutline ();var _egfe []*PdfOutlineItem ;var _aaff int64 ;var _bcgag *PdfOutlineItem ;for _ ,_ebgeb :=range _cafcd .Entries {_fcegf ,_bdcgc :=_ebgeb .ToPdfOutlineItem ();_fcegf .Parent =&_deecf .PdfOutlineTreeNode ;
if _bcgag !=nil {_bcgag .Next =&_fcegf .PdfOutlineTreeNode ;_fcegf .Prev =&_bcgag .PdfOutlineTreeNode ;};_egfe =append (_egfe ,_fcegf );_aaff +=_bdcgc ;_bcgag =_fcegf ;};_gcfe :=int64 (len (_egfe ));_aaff +=_gcfe ;if _gcfe > 0{_deecf .First =&_egfe [0].PdfOutlineTreeNode ;
_deecf .Last =&_egfe [_gcfe -1].PdfOutlineTreeNode ;_deecf .Count =&_aaff ;};return _deecf ;};func _aecgg (_fgfc *_ae .PdfObjectDictionary ,_gabef *fontCommon )(*pdfCIDFontType0 ,error ){if _gabef ._adce !="\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0030"{_ac .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",_gabef );
return nil ,_ae .ErrRangeError ;};_addf :=_fabff (_gabef );_effaa ,_aafd :=_ae .GetDict (_fgfc .Get ("\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f"));if !_aafd {_ac .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",_gabef );
return nil ,ErrRequiredAttributeMissing ;};_addf .CIDSystemInfo =_effaa ;_addf .DW =_fgfc .Get ("\u0044\u0057");_addf .W =_fgfc .Get ("\u0057");_addf .DW2 =_fgfc .Get ("\u0044\u0057\u0032");_addf .W2 =_fgfc .Get ("\u0057\u0032");_addf ._bbfb =1000.0;if _eceg ,_ffgbb :=_ae .GetNumberAsFloat (_addf .DW );
_ffgbb ==nil {_addf ._bbfb =_eceg ;};_begfb ,_cabgg :=_cdfgf (_addf .W );if _cabgg !=nil {return nil ,_cabgg ;};if _begfb ==nil {_begfb =map[_bgg .CharCode ]float64 {};};_addf ._abbcg =_begfb ;return _addf ,nil ;};func _cbfg (_beff []byte )[]byte {const _adede =52845;
const _eabc =22719;_ddagb :=55665;for _ ,_geg :=range _beff [:4]{_ddagb =(int (_geg )+_ddagb )*_adede +_eabc ;};_ebeg :=make ([]byte ,len (_beff )-4);for _bgbcf ,_gegg :=range _beff [4:]{_ebeg [_bgbcf ]=byte (int (_gegg )^_ddagb >>8);_ddagb =(int (_gegg )+_ddagb )*_adede +_eabc ;
};return _ebeg ;};
// 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 _ae .PdfObject )(_ae .PdfObjectName ,error ){var _caaa *_ae .PdfObjectName ;var _cccf *_ae .PdfObjectArray ;if _acdd ,_bgcbb :=obj .(*_ae .PdfIndirectObject );_bgcbb {if _acff ,_eea :=_acdd .PdfObject .(*_ae .PdfObjectArray );
_eea {_cccf =_acff ;}else if _ggaf ,_ffebc :=_acdd .PdfObject .(*_ae .PdfObjectName );_ffebc {_caaa =_ggaf ;};}else if _cdea ,_fdgeg :=obj .(*_ae .PdfObjectArray );_fdgeg {_cccf =_cdea ;}else if _fefcc ,_gcdf :=obj .(*_ae .PdfObjectName );_gcdf {_caaa =_fefcc ;
};if _caaa !=nil {switch *_caaa {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 *_caaa ,nil ;case "\u0050a\u0074\u0074\u0065\u0072\u006e":return *_caaa ,nil ;
};};if _cccf !=nil &&_cccf .Len ()> 0{if _aaege ,_acac :=_cccf .Get (0).(*_ae .PdfObjectName );_acac {switch *_aaege {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 _cccf .Len ()==1{return *_aaege ,nil ;
};case "\u0043a\u006c\u0047\u0072\u0061\u0079","\u0043\u0061\u006c\u0052\u0047\u0042","\u004c\u0061\u0062":return *_aaege ,nil ;case "\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064","\u0050a\u0074\u0074\u0065\u0072\u006e","\u0049n\u0064\u0065\u0078\u0065\u0064":return *_aaege ,nil ;
case "\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e","\u0044e\u0076\u0069\u0063\u0065\u004e":return *_aaege ,nil ;};};};return "",nil ;};
// Write writes the Appender output to io.Writer.
// It can only be called once and further invocations will result in an error.
func (_bae *PdfAppender )Write (w _gdc .Writer )error {if _bae ._fdbdf {return _db .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");
};_cbb :=NewPdfWriter ();_fdeg ,_debd :=_ae .GetDict (_cbb ._efcgc );if !_debd {return _db .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");
};_caeacd ,_debd :=_fdeg .Get ("\u004b\u0069\u0064\u0073").(*_ae .PdfObjectArray );if !_debd {return _db .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");
};_cdf ,_debd :=_fdeg .Get ("\u0043\u006f\u0075n\u0074").(*_ae .PdfObjectInteger );if !_debd {return _db .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");
};_dgdcc :=_bae ._afad ._bfcga ;_afge :=_dgdcc .GetTrailer ();if _afge ==nil {return _db .New ("\u006di\u0073s\u0069\u006e\u0067\u0020\u0074\u0072\u0061\u0069\u006c\u0065\u0072");};_deaag ,_debd :=_ae .GetIndirect (_afge .Get ("\u0052\u006f\u006f\u0074"));
if !_debd {return _db .New ("c\u0061\u0074\u0061\u006c\u006f\u0067 \u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0065\u0072 \u006e\u006f\u0074 \u0066o\u0075\u006e\u0064");};_efcda ,_debd :=_ae .GetDict (_deaag );if !_debd {_ac .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",_deaag ,*_afge );
return _db .New ("\u006di\u0073s\u0069\u006e\u0067\u0020\u0063\u0061\u0074\u0061\u006c\u006f\u0067");};for _ ,_baaa :=range _efcda .Keys (){if _cbb ._caddd .Get (_baaa )==nil {_fadc :=_efcda .Get (_baaa );_cbb ._caddd .Set (_baaa ,_fadc );};};if _bae ._eced !=nil {if _bae ._eced ._fcbae {if _effc :=_ae .TraceToDirectObject (_bae ._eced .ToPdfObject ());
!_ae .IsNullObject (_effc ){_cbb ._caddd .Set ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d",_effc );_bae .updateObjectsDeep (_effc ,nil );}else {_ac .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 {_cbb ._caddd .Set ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d",_bae ._eced .ToPdfObject ());_bae .updateObjectsDeep (_bae ._eced .ToPdfObject (),nil );};};if _bae ._ddad !=nil {_bae .updateObjectsDeep (_bae ._ddad .ToPdfObject (),nil );
_cbb ._caddd .Set ("\u0044\u0053\u0053",_bae ._ddad .GetContainingPdfObject ());};if _bae ._fgcd !=nil {_cbb ._caddd .Set ("\u0050\u0065\u0072m\u0073",_bae ._fgcd .ToPdfObject ());_bae .updateObjectsDeep (_bae ._fgcd .ToPdfObject (),nil );};if _cbb ._faffe .Major < 2{_cbb .AddExtension ("\u0045\u0053\u0049\u0043","\u0031\u002e\u0037",5);
_cbb .AddExtension ("\u0041\u0044\u0042\u0045","\u0031\u002e\u0037",8);};if _fagd ,_edbg :=_ae .GetDict (_afge .Get ("\u0049\u006e\u0066\u006f"));_edbg {if _feeb ,_cde :=_ae .GetDict (_cbb ._cbffg );_cde {for _ ,_bgbg :=range _fagd .Keys (){if _feeb .Get (_bgbg )==nil {_feeb .Set (_bgbg ,_fagd .Get (_bgbg ));
};};};};if _bae ._eecfe !=nil {_cbb ._cbffg =_ae .MakeIndirectObject (_bae ._eecfe .ToPdfObject ());};_bae .addNewObject (_cbb ._cbffg );_bae .addNewObject (_cbb ._aacfc );_efe :=false ;if len (_bae ._afad .PageList )!=len (_bae ._eabf ){_efe =true ;}else {for _badea :=range _bae ._afad .PageList {switch {case _bae ._eabf [_badea ]==_bae ._afad .PageList [_badea ]:case _bae ._eabf [_badea ]==_bae .Reader .PageList [_badea ]:default:_efe =true ;
};if _efe {break ;};};};if _efe {_bae .updateObjectsDeep (_cbb ._efcgc ,nil );}else {_bae ._gfge [_cbb ._efcgc ]=struct{}{};};_cbb ._efcgc .ObjectNumber =_bae .Reader ._cdee .ObjectNumber ;_bae ._dcdbc [_cbb ._efcgc ]=_bae .Reader ._cdee .ObjectNumber ;
_gbcb :=[]_ae .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 _ ,_babe :=range _bae ._eabf {_daeg :=_babe .ToPdfObject ();
*_cdf =*_cdf +1;if _egae ,_fbfcd :=_daeg .(*_ae .PdfIndirectObject );_fbfcd &&_egae .GetParser ()==_bae ._afad ._bfcga {_caeacd .Append (&_egae .PdfObjectReference );continue ;};if _bfdf ,_eeecf :=_ae .GetDict (_daeg );_eeecf {_bddd ,_cagca :=_bfdf .Get ("\u0050\u0061\u0072\u0065\u006e\u0074").(*_ae .PdfIndirectObject );
for _cagca {_ac .Log .Trace ("\u0050a\u0067e\u0020\u0050\u0061\u0072\u0065\u006e\u0074\u003a\u0020\u0025\u0054",_bddd );_aeeb ,_gagb :=_bddd .PdfObject .(*_ae .PdfObjectDictionary );if !_gagb {return _db .New ("i\u006e\u0076\u0061\u006cid\u0020P\u0061\u0072\u0065\u006e\u0074 \u006f\u0062\u006a\u0065\u0063\u0074");
};for _ ,_bedcb :=range _gbcb {_ac .Log .Trace ("\u0046\u0069\u0065\u006c\u0064\u0020\u0025\u0073",_bedcb );if _aede :=_bfdf .Get (_bedcb );_aede !=nil {_ac .Log .Trace ("\u002d \u0070a\u0067\u0065\u0020\u0068\u0061s\u0020\u0061l\u0072\u0065\u0061\u0064\u0079");
if len (_babe ._eedgd .Keys ())> 0&&!_efe {_ggefe :=_babe ._eedgd ;if _ecgc :=_ggefe .Get (_bedcb );_ecgc !=nil {if _aede !=_ecgc {_ac .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",_bedcb ,_ecgc );
_bfdf .Set (_bedcb ,_ecgc );};};};continue ;};if _eaa :=_aeeb .Get (_bedcb );_eaa !=nil {_ac .Log .Trace ("\u0049\u006e\u0068\u0065ri\u0074\u0069\u006e\u0067\u0020\u0066\u0069\u0065\u006c\u0064\u0020\u0025\u0073",_bedcb );_bfdf .Set (_bedcb ,_eaa );};};
_bddd ,_cagca =_aeeb .Get ("\u0050\u0061\u0072\u0065\u006e\u0074").(*_ae .PdfIndirectObject );_ac .Log .Trace ("\u004ee\u0078t\u0020\u0070\u0061\u0072\u0065\u006e\u0074\u003a\u0020\u0025\u0054",_aeeb .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"));};if _efe {_bfdf .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_cbb ._efcgc );
};};_bae .updateObjectsDeep (_daeg ,nil );_caeacd .Append (_daeg );};if _ ,_badc :=_bae ._aced .Seek (0,_gdc .SeekStart );_badc !=nil {return _badc ;};_dgde :=make (map[SignatureHandler ]_gdc .Writer );_bbgdc :=_ae .MakeArray ();for _ ,_ccdc :=range _bae ._gea {if _beea ,_dggce :=_ae .GetIndirect (_ccdc );
_dggce {if _dege ,_bcfb :=_beea .PdfObject .(*pdfSignDictionary );_bcfb {_fagde :=*_dege ._febbd ;var _abbag error ;_dgde [_fagde ],_abbag =_fagde .NewDigest (_dege ._cbcbe );if _abbag !=nil {return _abbag ;};_bbgdc .Append (_ae .MakeInteger (0xfffff),_ae .MakeInteger (0xfffff));
};};};if _bbgdc .Len ()> 0{_bbgdc .Append (_ae .MakeInteger (0xfffff),_ae .MakeInteger (0xfffff));};for _ ,_ffga :=range _bae ._gea {if _bdbd ,_gfef :=_ae .GetIndirect (_ffga );_gfef {if _ccfe ,_ebag :=_bdbd .PdfObject .(*pdfSignDictionary );_ebag {_ccfe .Set ("\u0042y\u0074\u0065\u0052\u0061\u006e\u0067e",_bbgdc );
};};};_eeef :=len (_dgde )> 0;var _cac _gdc .Reader =_bae ._aced ;if _eeef {_edfg :=make ([]_gdc .Writer ,0,len (_dgde ));for _ ,_ccff :=range _dgde {_edfg =append (_edfg ,_ccff );};_cac =_gdc .TeeReader (_bae ._aced ,_gdc .MultiWriter (_edfg ...));};_dgfe ,_bfbc :=_gdc .Copy (w ,_cac );
if _bfbc !=nil {return _bfbc ;};if len (_bae ._gea )==0{return nil ;};_cbb ._addeb =_dgfe ;_cbb .ObjNumOffset =_bae ._bcgg ;_cbb ._dffad =true ;_cbb ._ecbae =_bae ._gedb ;_cbb ._afadc =_bae ._daea ;_cbb ._gaffa =_bae ._egcg ;_cbb ._faffe =_bae ._afad .PdfVersion ();
_cbb ._fbfcdf =_bae ._dcdbc ;_cbb ._ecedf =_bae ._ceda .GetCrypter ();_cbb ._feddfa =_bae ._ceda .GetEncryptObj ();_bfgd :=_bae ._ceda .GetXrefType ();if _bfgd !=nil {_cefa :=*_bfgd ==_ae .XrefTypeObjectStream ;_cbb ._edgdg =&_cefa ;};_cbb ._faecg =map[_ae .PdfObject ]struct{}{};
_cbb ._edbe =[]_ae .PdfObject {};for _ ,_cgadb :=range _bae ._gea {if _ ,_bedff :=_bae ._gfge [_cgadb ];_bedff {continue ;};_cbb .addObject (_cgadb );};_cgea :=w ;if _eeef {_cgea =_aa .NewBuffer (nil );};if _bae ._acf !=""&&_cbb ._ecedf ==nil {_cbb .Encrypt ([]byte (_bae ._acf ),[]byte (_bae ._acf ),_bae ._gffe );
};if _afef :=_afge .Get ("\u0049\u0044");_afef !=nil {if _gbaf ,_edaa :=_ae .GetArray (_afef );_edaa {_cbb ._dcdbd =_gbaf ;};};if _afd :=_cbb .Write (_cgea );_afd !=nil {return _afd ;};if _eeef {_dece :=_cgea .(*_aa .Buffer ).Bytes ();_gfae :=_ae .MakeArray ();
var _ebeb []*pdfSignDictionary ;var _cgacd int64 ;for _ ,_efda :=range _cbb ._edbe {if _abcd ,_gae :=_ae .GetIndirect (_efda );_gae {if _cecc ,_bgcb :=_abcd .PdfObject .(*pdfSignDictionary );_bgcb {_ebeb =append (_ebeb ,_cecc );_gaaa :=_cecc ._ebcg +int64 (_cecc ._aebde );
_gfae .Append (_ae .MakeInteger (_cgacd ),_ae .MakeInteger (_gaaa -_cgacd ));_cgacd =_cecc ._ebcg +int64 (_cecc ._aedb );};};};_gfae .Append (_ae .MakeInteger (_cgacd ),_ae .MakeInteger (_dgfe +int64 (len (_dece ))-_cgacd ));_afea :=[]byte (_gfae .WriteString ());
for _ ,_dgggb :=range _ebeb {_bcac :=int (_dgggb ._ebcg -_dgfe );for _egdf :=_dgggb ._fegef ;_egdf < _dgggb ._ebcfb ;_egdf ++{_dece [_bcac +_egdf ]=' ';};_dcda :=_dece [_bcac +_dgggb ._fegef :_bcac +_dgggb ._ebcfb ];copy (_dcda ,_afea );};var _fegg int ;
for _ ,_eaef :=range _ebeb {_cebb :=int (_eaef ._ebcg -_dgfe );_baaf :=_dece [_fegg :_cebb +_eaef ._aebde ];_degab :=*_eaef ._febbd ;_dgde [_degab ].Write (_baaf );_fegg =_cebb +_eaef ._aedb ;};for _ ,_acb :=range _ebeb {_bacc :=_dece [_fegg :];_ecf :=*_acb ._febbd ;
_dgde [_ecf ].Write (_bacc );};for _ ,_bcbf :=range _ebeb {_bbcb :=int (_bcbf ._ebcg -_dgfe );_dgcg :=*_bcbf ._febbd ;_eedd :=_dgde [_dgcg ];if _cea :=_dgcg .Sign (_bcbf ._cbcbe ,_eedd );_cea !=nil {return _cea ;};_bcbf ._cbcbe .ByteRange =_gfae ;_dfbc :=[]byte (_bcbf ._cbcbe .Contents .WriteString ());
for _bcfc :=_bcbf ._fegef ;_bcfc < _bcbf ._ebcfb ;_bcfc ++{_dece [_bbcb +_bcfc ]=' ';};for _ddeg :=_bcbf ._aebde ;_ddeg < _bcbf ._aedb ;_ddeg ++{_dece [_bbcb +_ddeg ]=' ';};_gddg :=_dece [_bbcb +_bcbf ._fegef :_bbcb +_bcbf ._ebcfb ];copy (_gddg ,_afea );
_gddg =_dece [_bbcb +_bcbf ._aebde :_bbcb +_bcbf ._aedb ];copy (_gddg ,_dfbc );};_bbf :=_aa .NewBuffer (_dece );_ ,_bfbc =_gdc .Copy (w ,_bbf );if _bfbc !=nil {return _bfbc ;};};_bae ._fdbdf =true ;return nil ;};func _dddac ()string {_cadgd .Lock ();defer _cadgd .Unlock ();
return _fcfa };
// 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 ;_ecefb []byte ;_fegc []uint32 ;_aegae *_ae .PdfObjectStream ;};
// NewPdfAppender creates a new Pdf appender from a Pdf reader.
func NewPdfAppender (reader *PdfReader )(*PdfAppender ,error ){_gggc :=&PdfAppender {_aced :reader ._bgbcea ,Reader :reader ,_ceda :reader ._bfcga ,_bcefc :reader ._agege };_dacdd ,_ffbf :=_gggc ._aced .Seek (0,_gdc .SeekEnd );if _ffbf !=nil {return nil ,_ffbf ;
};_gggc ._egcg =_dacdd ;if _ ,_ffbf =_gggc ._aced .Seek (0,_gdc .SeekStart );_ffbf !=nil {return nil ,_ffbf ;};_gggc ._afad ,_ffbf =NewPdfReader (_gggc ._aced );if _ffbf !=nil {return nil ,_ffbf ;};for _ ,_dde :=range _gggc .Reader .GetObjectNums (){if _gggc ._bcgg < _dde {_gggc ._bcgg =_dde ;
};};_gggc ._gedb =_gggc ._ceda .GetXrefTable ();_gggc ._daea =_gggc ._ceda .GetXrefOffset ();_gggc ._eabf =append (_gggc ._eabf ,_gggc ._afad .PageList ...);_gggc ._dcefg =make (map[_ae .PdfObject ]struct{});_gggc ._dcdbc =make (map[_ae .PdfObject ]int64 );
_gggc ._gfge =make (map[_ae .PdfObject ]struct{});_gggc ._eced =_gggc ._afad .AcroForm ;_gggc ._ddad =_gggc ._afad .DSS ;return _gggc ,nil ;};
// ToGoImage converts the unidoc Image to a golang Image structure.
func (_dgefe *Image )ToGoImage ()(_de .Image ,error ){_ac .Log .Trace ("\u0043\u006f\u006e\u0076er\u0074\u0069\u006e\u0067\u0020\u0074\u006f\u0020\u0067\u006f\u0020\u0069\u006d\u0061g\u0065");_aefb ,_agged :=_afc .NewImage (int (_dgefe .Width ),int (_dgefe .Height ),int (_dgefe .BitsPerComponent ),_dgefe .ColorComponents ,_dgefe .Data ,_dgefe ._bbba ,_dgefe ._fdae );
if _agged !=nil {return nil ,_agged ;};return _aefb ,nil ;};
// UpdateObject marks `obj` as updated and to be included in the following revision.
func (_egab *PdfAppender )UpdateObject (obj _ae .PdfObject ){_egab .replaceObject (obj ,obj );if _ ,_gfb :=_egab ._dcefg [obj ];!_gfb {_egab ._gea =append (_egab ._gea ,obj );_egab ._dcefg [obj ]=struct{}{};};};
// AddFont adds a font dictionary to the Font resources.
func (_cfabd *PdfPage )AddFont (name _ae .PdfObjectName ,font _ae .PdfObject )error {if _cfabd .Resources ==nil {_cfabd .Resources =NewPdfPageResources ();};if _cfabd .Resources .Font ==nil {_cfabd .Resources .Font =_ae .MakeDict ();};_cdecf ,_bdbce :=_ae .TraceToDirectObject (_cfabd .Resources .Font ).(*_ae .PdfObjectDictionary );
if !_bdbce {_ac .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",_ae .TraceToDirectObject (_cfabd .Resources .Font ));
return _db .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_cdecf .Set (name ,font );return nil ;};func (_bba *PdfReader )newPdfActionLaunchFromDict (_fdee *_ae .PdfObjectDictionary )(*PdfActionLaunch ,error ){_dec ,_caa :=_ceb (_fdee .Get ("\u0046"));
if _caa !=nil {return nil ,_caa ;};return &PdfActionLaunch {Win :_fdee .Get ("\u0057\u0069\u006e"),Mac :_fdee .Get ("\u004d\u0061\u0063"),Unix :_fdee .Get ("\u0055\u006e\u0069\u0078"),NewWindow :_fdee .Get ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw"),F :_dec },nil ;
};
// IsCID returns true if the underlying font is CID.
func (_dbfg *PdfFont )IsCID ()bool {return _dbfg .baseFields ().isCIDFont ()};
// GetAsShadingPattern returns a shading pattern. Check with IsShading() prior to using this.
func (_ggba *PdfPattern )GetAsShadingPattern ()*PdfShadingPattern {return _ggba ._ebafb .(*PdfShadingPattern );};
// 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 (_ebbd *PdfColorspaceDeviceGray )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=1{return nil ,_db .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_adfc :=vals [0];if _adfc < 0.0||_adfc > 1.0{_ac .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 _adfc < 0.0{_adfc =0.0;}else if _adfc > 1.0{_adfc =1.0;};return NewPdfColorDeviceGray (_adfc ),nil ;};
// String returns a string that describes `font`.
func (_bfac *PdfFont )String ()string {_cadgb :="";if _bfac ._dabg .Encoder ()!=nil {_cadgb =_bfac ._dabg .Encoder ().String ();};return _f .Sprintf ("\u0046\u004f\u004e\u0054\u007b\u0025\u0054\u0020\u0025s\u0020\u0025\u0073\u007d",_bfac ._dabg ,_bfac .baseFields ().coreString (),_cadgb );
};
// Set applies flag fl to the flag's bitmask and returns the combined flag.
func (_cbgd FieldFlag )Set (fl FieldFlag )FieldFlag {return FieldFlag (_cbgd .Mask ()|fl .Mask ())};
// PdfActionThread represents a thread action.
type PdfActionThread struct{*PdfAction ;F *PdfFilespec ;D _ae .PdfObject ;B _ae .PdfObject ;};const (_ PdfOutputIntentType =iota ;PdfOutputIntentTypeA1 ;PdfOutputIntentTypeA2 ;PdfOutputIntentTypeA3 ;PdfOutputIntentTypeA4 ;PdfOutputIntentTypeX ;);
// ColorToRGB converts a color in Separation colorspace to RGB colorspace.
func (_bcccg *PdfColorspaceSpecialSeparation )ColorToRGB (color PdfColor )(PdfColor ,error ){if _bcccg .AlternateSpace ==nil {return nil ,_db .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 _bcccg .AlternateSpace .ColorToRGB (color );};
// 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 (_bdfdf *LTV )validateSig (_aged *PdfSignature )error {if _aged ==nil ||_aged .Contents ==nil ||len (_aged .Contents .Bytes ())==0{return _f .Errorf ("i\u006e\u0076\u0061\u006c\u0069\u0064 \u0073\u0069\u0067\u006e\u0061\u0074\u0075\u0072\u0065 \u0066\u0069\u0065l\u0064:\u0020\u0025\u0076",_aged );
};return nil ;};
// 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 (_efffd *LTV )EnableByName (name string ,extraCerts []*_fc .Certificate )error {_bddga :=_efffd ._gbcge ._afad .AcroForm ;for _ ,_ecdaa :=range _bddga .AllFields (){_gaca ,_ :=_ecdaa .GetContext ().(*PdfFieldSignature );if _gaca ==nil {continue ;};
if _gfca :=_gaca .PartialName ();_gfca !=name {continue ;};return _efffd .Enable (_gaca .V ,extraCerts );};return nil ;};
// ToPdfObject returns an indirect object containing the signature field dictionary.
func (_agef *PdfFieldSignature )ToPdfObject ()_ae .PdfObject {if _agef .PdfAnnotationWidget !=nil {_agef .PdfAnnotationWidget .ToPdfObject ();};_agef .PdfField .ToPdfObject ();_fbeag :=_agef ._facca ;_facfe :=_fbeag .PdfObject .(*_ae .PdfObjectDictionary );
_facfe .SetIfNotNil ("\u0046\u0054",_ae .MakeName ("\u0053\u0069\u0067"));_facfe .SetIfNotNil ("\u004c\u006f\u0063\u006b",_agef .Lock );_facfe .SetIfNotNil ("\u0053\u0056",_agef .SV );if _agef .V !=nil {_facfe .SetIfNotNil ("\u0056",_agef .V .ToPdfObject ());
};return _fbeag ;};func _dcbf (_abbdd _ae .PdfObject ,_bfdac *fontCommon )(*_abg .CMap ,error ){_dfdf ,_bfdg :=_ae .GetStream (_abbdd );if !_bfdg {_ac .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",_abbdd );
return nil ,_ae .ErrTypeError ;};_ccaa ,_faff :=_ae .DecodeStream (_dfdf );if _faff !=nil {return nil ,_faff ;};_efbgb ,_faff :=_abg .LoadCmapFromData (_ccaa ,!_bfdac .isCIDFont ());if _faff !=nil {_ac .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",_dfdf .ObjectNumber ,_faff );
};return _efbgb ,_faff ;};func (_edd *PdfReader )newPdfAnnotationWatermarkFromDict (_eac *_ae .PdfObjectDictionary )(*PdfAnnotationWatermark ,error ){_ccb :=PdfAnnotationWatermark {};_ccb .FixedPrint =_eac .Get ("\u0046\u0069\u0078\u0065\u0064\u0050\u0072\u0069\u006e\u0074");
return &_ccb ,nil ;};
// GetCharMetrics returns the character metrics for the specified character code. A bool flag is
// returned to indicate whether or not the entry was found in the glyph to charcode mapping.
// How it works:
// 1) Return a value the /Widths array (charWidths) if there is one.
// 2) If the font has the same name as a standard 14 font then return width=250.
// 3) Otherwise return no match and let the caller substitute a default.
func (_bgfc pdfFontSimple )GetCharMetrics (code _bgg .CharCode )(_cb .CharMetrics ,bool ){if _adcf ,_fbcf :=_bgfc ._deaed [code ];_fbcf {return _cb .CharMetrics {Wx :_adcf },true ;};if _cb .IsStdFont (_cb .StdFontName (_bgfc ._cedb )){return _cb .CharMetrics {Wx :250},true ;
};return _cb .CharMetrics {},false ;};
// SetReason sets the `Reason` field of the signature.
func (_eccbf *PdfSignature )SetReason (reason string ){_eccbf .Reason =_ae .MakeString (reason )};var _acffcf =false ;func (_dgce *fontFile )loadFromSegments (_edacg ,_cagabf []byte )error {_ac .Log .Trace ("\u006c\u006f\u0061dF\u0072\u006f\u006d\u0053\u0065\u0067\u006d\u0065\u006e\u0074\u0073\u003a\u0020\u0025\u0064\u0020\u0025\u0064",len (_edacg ),len (_cagabf ));
_egdcg :=_dgce .parseASCIIPart (_edacg );if _egdcg !=nil {return _egdcg ;};_ac .Log .Trace ("f\u006f\u006e\u0074\u0066\u0069\u006c\u0065\u003d\u0025\u0073",_dgce );if len (_cagabf )==0{return nil ;};_ac .Log .Trace ("f\u006f\u006e\u0074\u0066\u0069\u006c\u0065\u003d\u0025\u0073",_dgce );
return nil ;};
// GetCharMetrics returns the char metrics for character code `code`.
func (_gaec pdfFontType3 )GetCharMetrics (code _bgg .CharCode )(_cb .CharMetrics ,bool ){if _acbba ,_ceged :=_gaec ._adggg [code ];_ceged {return _cb .CharMetrics {Wx :_acbba },true ;};if _cb .IsStdFont (_cb .StdFontName (_gaec ._cedb )){return _cb .CharMetrics {Wx :250},true ;
};return _cb .CharMetrics {},false ;};func _geffa (_bded _ae .PdfObject )(*PdfColorspaceLab ,error ){_accb :=NewPdfColorspaceLab ();if _bdddc ,_caebc :=_bded .(*_ae .PdfIndirectObject );_caebc {_accb ._bccg =_bdddc ;};_bded =_ae .TraceToDirectObject (_bded );
_fadb ,_dcdgg :=_bded .(*_ae .PdfObjectArray );if !_dcdgg {return nil ,_f .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _fadb .Len ()!=2{return nil ,_f .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0043\u0061\u006c\u0052G\u0042 \u0063o\u006c\u006f\u0072\u0073\u0070\u0061\u0063e");
};_bded =_ae .TraceToDirectObject (_fadb .Get (0));_acaag ,_dcdgg :=_bded .(*_ae .PdfObjectName );if !_dcdgg {return nil ,_f .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 *_acaag !="\u004c\u0061\u0062"{return nil ,_f .Errorf ("n\u006ft\u0020\u0061\u0020\u004c\u0061\u0062\u0020\u0063o\u006c\u006f\u0072\u0073pa\u0063\u0065");};_bded =_ae .TraceToDirectObject (_fadb .Get (1));_cbdg ,_dcdgg :=_bded .(*_ae .PdfObjectDictionary );
if !_dcdgg {return nil ,_f .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");};
_bded =_cbdg .Get ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074");_bded =_ae .TraceToDirectObject (_bded );_cabg ,_dcdgg :=_bded .(*_ae .PdfObjectArray );if !_dcdgg {return nil ,_f .Errorf ("\u004c\u0061\u0062\u0020In\u0076\u0061\u006c\u0069\u0064\u0020\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069n\u0074");
};if _cabg .Len ()!=3{return nil ,_f .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");};_adadf ,_bfbe :=_cabg .GetAsFloat64Slice ();
if _bfbe !=nil {return nil ,_bfbe ;};_accb .WhitePoint =_adadf ;_bded =_cbdg .Get ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074");if _bded !=nil {_bded =_ae .TraceToDirectObject (_bded );_gcbc ,_bddc :=_bded .(*_ae .PdfObjectArray );if !_bddc {return nil ,_f .Errorf ("\u004c\u0061\u0062: \u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074");
};if _gcbc .Len ()!=3{return nil ,_f .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");};_gccgb ,_bcca :=_gcbc .GetAsFloat64Slice ();
if _bcca !=nil {return nil ,_bcca ;};_accb .BlackPoint =_gccgb ;};_bded =_cbdg .Get ("\u0052\u0061\u006eg\u0065");if _bded !=nil {_bded =_ae .TraceToDirectObject (_bded );_bbfg ,_cgaff :=_bded .(*_ae .PdfObjectArray );if !_cgaff {_ac .Log .Error ("\u0052\u0061n\u0067\u0065\u0020t\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");
return nil ,_f .Errorf ("\u004ca\u0062:\u0020\u0054\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _bbfg .Len ()!=4{_ac .Log .Error ("\u0052\u0061\u006e\u0067\u0065\u0020\u0072\u0061\u006e\u0067\u0065\u0020e\u0072\u0072\u006f\u0072");return nil ,_f .Errorf ("\u004c\u0061b\u003a\u0020\u0052a\u006e\u0067\u0065\u0020\u0065\u0072\u0072\u006f\u0072");
};_bfbb ,_cgc :=_bbfg .GetAsFloat64Slice ();if _cgc !=nil {return nil ,_cgc ;};_accb .Range =_bfbb ;};return _accb ,nil ;};
// ToPdfObject implements interface PdfModel.
func (_geb *PdfActionNamed )ToPdfObject ()_ae .PdfObject {_geb .PdfAction .ToPdfObject ();_egb :=_geb ._cbe ;_fde :=_egb .PdfObject .(*_ae .PdfObjectDictionary );_fde .SetIfNotNil ("\u0053",_ae .MakeName (string (ActionTypeNamed )));_fde .SetIfNotNil ("\u004e",_geb .N );
return _egb ;};
// 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"`;};
// ColorToRGB converts a CalGray color to an RGB color.
func (_gadc *PdfColorspaceCalGray )ColorToRGB (color PdfColor )(PdfColor ,error ){_aaag ,_bgef :=color .(*PdfColorCalGray );if !_bgef {_ac .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 ,_db .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};ANorm :=_aaag .Val ();X :=_gadc .WhitePoint [0]*_ag .Pow (ANorm ,_gadc .Gamma );Y :=_gadc .WhitePoint [1]*_ag .Pow (ANorm ,_gadc .Gamma );
Z :=_gadc .WhitePoint [2]*_ag .Pow (ANorm ,_gadc .Gamma );_bccc :=3.240479*X +-1.537150*Y +-0.498535*Z ;_ddda :=-0.969256*X +1.875992*Y +0.041556*Z ;_cbbd :=0.055648*X +-0.204043*Y +1.057311*Z ;_bccc =_ag .Min (_ag .Max (_bccc ,0),1.0);_ddda =_ag .Min (_ag .Max (_ddda ,0),1.0);
_cbbd =_ag .Min (_ag .Max (_cbbd ,0),1.0);return NewPdfColorDeviceRGB (_bccc ,_ddda ,_cbbd ),nil ;};
// ColorFromPdfObjects returns a new PdfColor based on the input slice of color
// components. The slice should contain a single PdfObjectFloat element in
// range 0-1.
func (_ffda *PdfColorspaceDeviceGray )ColorFromPdfObjects (objects []_ae .PdfObject )(PdfColor ,error ){if len (objects )!=1{return nil ,_db .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_gbcf ,_beab :=_ae .GetNumbersAsFloat (objects );
if _beab !=nil {return nil ,_beab ;};return _ffda .ColorFromFloats (_gbcf );};
// ToPdfObject implements interface PdfModel.
func (_gdgef *PdfSignature )ToPdfObject ()_ae .PdfObject {_eegbe :=_gdgef ._gccbeg ;var _cgeda *_ae .PdfObjectDictionary ;if _eacb ,_adece :=_eegbe .PdfObject .(*pdfSignDictionary );_adece {_cgeda =_eacb .PdfObjectDictionary ;}else {_cgeda =_eegbe .PdfObject .(*_ae .PdfObjectDictionary );
};_cgeda .SetIfNotNil ("\u0054\u0079\u0070\u0065",_gdgef .Type );_cgeda .SetIfNotNil ("\u0046\u0069\u006c\u0074\u0065\u0072",_gdgef .Filter );_cgeda .SetIfNotNil ("\u0053u\u0062\u0046\u0069\u006c\u0074\u0065r",_gdgef .SubFilter );_cgeda .SetIfNotNil ("\u0042y\u0074\u0065\u0052\u0061\u006e\u0067e",_gdgef .ByteRange );
_cgeda .SetIfNotNil ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073",_gdgef .Contents );_cgeda .SetIfNotNil ("\u0043\u0065\u0072\u0074",_gdgef .Cert );_cgeda .SetIfNotNil ("\u004e\u0061\u006d\u0065",_gdgef .Name );_cgeda .SetIfNotNil ("\u0052\u0065\u0061\u0073\u006f\u006e",_gdgef .Reason );
_cgeda .SetIfNotNil ("\u004d",_gdgef .M );_cgeda .SetIfNotNil ("\u0052e\u0066\u0065\u0072\u0065\u006e\u0063e",_gdgef .Reference );_cgeda .SetIfNotNil ("\u0043h\u0061\u006e\u0067\u0065\u0073",_gdgef .Changes );_cgeda .SetIfNotNil ("C\u006f\u006e\u0074\u0061\u0063\u0074\u0049\u006e\u0066\u006f",_gdgef .ContactInfo );
return _eegbe ;};
// ToPdfObject returns the PDF representation of the shading dictionary.
func (_baaef *PdfShading )ToPdfObject ()_ae .PdfObject {_bgbcd :=_baaef ._dcdgda ;_aecge ,_daeggb :=_baaef .getShadingDict ();if _daeggb !=nil {_ac .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 _baaef .ShadingType !=nil {_aecge .Set ("S\u0068\u0061\u0064\u0069\u006e\u0067\u0054\u0079\u0070\u0065",_baaef .ShadingType );};if _baaef .ColorSpace !=nil {_aecge .Set ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065",_baaef .ColorSpace .ToPdfObject ());
};if _baaef .Background !=nil {_aecge .Set ("\u0042\u0061\u0063\u006b\u0067\u0072\u006f\u0075\u006e\u0064",_baaef .Background );};if _baaef .BBox !=nil {_aecge .Set ("\u0042\u0042\u006f\u0078",_baaef .BBox .ToPdfObject ());};if _baaef .AntiAlias !=nil {_aecge .Set ("\u0041n\u0074\u0069\u0041\u006c\u0069\u0061s",_baaef .AntiAlias );
};return _bgbcd ;};
// GetSubFilter returns SubFilter value or empty string.
func (_gdgcfc *pdfSignDictionary )GetSubFilter ()string {_bdafg :=_gdgcfc .Get ("\u0053u\u0062\u0046\u0069\u006c\u0074\u0065r");if _bdafg ==nil {return "";};if _edfcf ,_eagbc :=_ae .GetNameVal (_bdafg );_eagbc {return _edfcf ;};return "";};
// AddExtension adds the specified extension to the Extensions dictionary.
// See section 7.1.2 "Extensions Dictionary" (pp. 108-109 PDF32000_2008).
func (_fdbgc *PdfWriter )AddExtension (extName ,baseVersion string ,extLevel int ){_fbefc ,_cdadg :=_ae .GetDict (_fdbgc ._caddd .Get ("\u0045\u0078\u0074\u0065\u006e\u0073\u0069\u006f\u006e\u0073"));if !_cdadg {_fbefc =_ae .MakeDict ();_fdbgc ._caddd .Set ("\u0045\u0078\u0074\u0065\u006e\u0073\u0069\u006f\u006e\u0073",_fbefc );
};_bgegc ,_cdadg :=_ae .GetDict (_fbefc .Get (_ae .PdfObjectName (extName )));if !_cdadg {_bgegc =_ae .MakeDict ();_fbefc .Set (_ae .PdfObjectName (extName ),_bgegc );};if _afae ,_ :=_ae .GetNameVal (_bgegc .Get ("B\u0061\u0073\u0065\u0056\u0065\u0072\u0073\u0069\u006f\u006e"));
_afae !=baseVersion {_bgegc .Set ("B\u0061\u0073\u0065\u0056\u0065\u0072\u0073\u0069\u006f\u006e",_ae .MakeName (baseVersion ));};if _bbcbb ,_ :=_ae .GetIntVal (_bgegc .Get ("\u0045\u0078\u0074\u0065\u006e\u0073\u0069\u006f\u006eL\u0065\u0076\u0065\u006c"));
_bbcbb !=extLevel {_bgegc .Set ("\u0045\u0078\u0074\u0065\u006e\u0073\u0069\u006f\u006eL\u0065\u0076\u0065\u006c",_ae .MakeInteger (int64 (extLevel )));};};
// NewPdfAnnotationLink returns a new link annotation.
func NewPdfAnnotationLink ()*PdfAnnotationLink {_ffea :=NewPdfAnnotation ();_fcf :=&PdfAnnotationLink {};_fcf .PdfAnnotation =_ffea ;_ffea .SetContext (_fcf );return _fcf ;};
// NewImageFromGoImage creates a new NRGBA32 unidoc Image from a golang Image.
// If `goimg` is grayscale (*goimage.Gray8) then calls NewGrayImageFromGoImage instead.
func (_egcea DefaultImageHandler )NewImageFromGoImage (goimg _de .Image )(*Image ,error ){_bcaec ,_fcdcc :=_afc .FromGoImage (goimg );if _fcdcc !=nil {return nil ,_fcdcc ;};_fbgb :=_feagd (_bcaec .Base ());return &_fbgb ,nil ;};
// NewPdfPageResourcesColorspaces returns a new PdfPageResourcesColorspaces object.
func NewPdfPageResourcesColorspaces ()*PdfPageResourcesColorspaces {_gdgdf :=&PdfPageResourcesColorspaces {};_gdgdf .Names =[]string {};_gdgdf .Colorspaces =map[string ]PdfColorspace {};_gdgdf ._ccfef =&_ae .PdfIndirectObject {};return _gdgdf ;};
// DecodeArray returns the range of color component values in DeviceCMYK colorspace.
func (_fgbg *PdfColorspaceDeviceCMYK )DecodeArray ()[]float64 {return []float64 {0.0,1.0,0.0,1.0,0.0,1.0,0.0,1.0};};
// CharMetrics represents width and height metrics of a glyph.
type CharMetrics =_cb .CharMetrics ;
// ToPdfObject converts the font to a PDF representation.
func (_gadff *pdfFontType3 )ToPdfObject ()_ae .PdfObject {if _gadff ._cfbea ==nil {_gadff ._cfbea =&_ae .PdfIndirectObject {};};_babed :=_gadff .baseFields ().asPdfObjectDictionary ("\u0054\u0079\u0070e\u0033");_gadff ._cfbea .PdfObject =_babed ;if _gadff .FirstChar !=nil {_babed .Set ("\u0046i\u0072\u0073\u0074\u0043\u0068\u0061r",_gadff .FirstChar );
};if _gadff .LastChar !=nil {_babed .Set ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072",_gadff .LastChar );};if _gadff .Widths !=nil {_babed .Set ("\u0057\u0069\u0064\u0074\u0068\u0073",_gadff .Widths );};if _gadff .Encoding !=nil {_babed .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_gadff .Encoding );
}else if _gadff ._debad !=nil {_bfed :=_gadff ._debad .ToPdfObject ();if _bfed !=nil {_babed .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_bfed );};};if _gadff .FontBBox !=nil {_babed .Set ("\u0046\u006f\u006e\u0074\u0042\u0042\u006f\u0078",_gadff .FontBBox );
};if _gadff .FontMatrix !=nil {_babed .Set ("\u0046\u006f\u006e\u0074\u004d\u0061\u0074\u0069\u0072\u0078",_gadff .FontMatrix );};if _gadff .CharProcs !=nil {_babed .Set ("\u0043h\u0061\u0072\u0050\u0072\u006f\u0063s",_gadff .CharProcs );};if _gadff .Resources !=nil {_babed .Set ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s",_gadff .Resources );
};return _gadff ._cfbea ;};
// B returns the value of the B component of the color.
func (_gbdc *PdfColorCalRGB )B ()float64 {return _gbdc [1]};
// 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 *_ae .PdfObjectArray ;ExtGState _ae .PdfObject ;};
// ColorToRGB converts a ICCBased color to an RGB color.
func (_fcdca *PdfColorspaceICCBased )ColorToRGB (color PdfColor )(PdfColor ,error ){if _fcdca .Alternate ==nil {_ac .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 _fcdca .N ==1{_ac .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");
_ffdg :=NewPdfColorspaceDeviceGray ();return _ffdg .ColorToRGB (color );}else if _fcdca .N ==3{_ac .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 _fcdca .N ==4{_ac .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");
_aadf :=NewPdfColorspaceDeviceCMYK ();return _aadf .ColorToRGB (color );}else {return nil ,_db .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");
};};_ac .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",_fcdca );
return _fcdca .Alternate .ColorToRGB (color );};
// GetContainingPdfObject returns the container of the shading object (indirect object).
func (_ddge *PdfShading )GetContainingPdfObject ()_ae .PdfObject {return _ddge ._dcdgda };
// 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 ,_gfdfbf :_ae .MakeDict ()};
};func _bbgdb (_cbgda _ae .PdfObject )(*fontFile ,error ){_ac .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",_cbgda );
_dccd :=&fontFile {};_cbgda =_ae .TraceToDirectObject (_cbgda );_eddfa ,_cdcfd :=_cbgda .(*_ae .PdfObjectStream );if !_cdcfd {_ac .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",_cbgda );
return nil ,_ae .ErrTypeError ;};_ddac :=_eddfa .PdfObjectDictionary ;_gdac ,_edgec :=_ae .DecodeStream (_eddfa );if _edgec !=nil {return nil ,_edgec ;};_gcbe ,_cdcfd :=_ae .GetNameVal (_ddac .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065"));if !_cdcfd {_dccd ._aadg =_gcbe ;
if _gcbe =="\u0054\u0079\u0070\u0065\u0031\u0043"{_ac .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 ;};};_ggfe ,_ :=_ae .GetIntVal (_ddac .Get ("\u004ce\u006e\u0067\u0074\u0068\u0031"));_dgeg ,_ :=_ae .GetIntVal (_ddac .Get ("\u004ce\u006e\u0067\u0074\u0068\u0032"));if _ggfe > len (_gdac ){_ggfe =len (_gdac );};if _ggfe +_dgeg > len (_gdac ){_dgeg =len (_gdac )-_ggfe ;
};_ccfdb :=_gdac [:_ggfe ];var _acceg []byte ;if _dgeg > 0{_acceg =_gdac [_ggfe :_ggfe +_dgeg ];};if _ggfe > 0&&_dgeg > 0{_gdccd :=_dccd .loadFromSegments (_ccfdb ,_acceg );if _gdccd !=nil {return nil ,_gdccd ;};};return _dccd ,nil ;};func (_debc *pdfCIDFontType2 )getFontDescriptor ()*PdfFontDescriptor {return _debc ._cafdb };
func (_cddef *DSS )generateHashMaps ()error {_cbed ,_ebdc :=_cddef .generateHashMap (_cddef .Certs );if _ebdc !=nil {return _ebdc ;};_eaea ,_ebdc :=_cddef .generateHashMap (_cddef .OCSPs );if _ebdc !=nil {return _ebdc ;};_ggcc ,_ebdc :=_cddef .generateHashMap (_cddef .CRLs );
if _ebdc !=nil {return _ebdc ;};_cddef ._eedc =_cbed ;_cddef ._fcgf =_eaea ;_cddef ._abda =_ggcc ;return nil ;};func (_dbcdc *PdfReader )newPdfAnnotationLineFromDict (_dggf *_ae .PdfObjectDictionary )(*PdfAnnotationLine ,error ){_fgga :=PdfAnnotationLine {};
_ecbb ,_fdef :=_dbcdc .newPdfAnnotationMarkupFromDict (_dggf );if _fdef !=nil {return nil ,_fdef ;};_fgga .PdfAnnotationMarkup =_ecbb ;_fgga .L =_dggf .Get ("\u004c");_fgga .BS =_dggf .Get ("\u0042\u0053");_fgga .LE =_dggf .Get ("\u004c\u0045");_fgga .IC =_dggf .Get ("\u0049\u0043");
_fgga .LL =_dggf .Get ("\u004c\u004c");_fgga .LLE =_dggf .Get ("\u004c\u004c\u0045");_fgga .Cap =_dggf .Get ("\u0043\u0061\u0070");_fgga .IT =_dggf .Get ("\u0049\u0054");_fgga .LLO =_dggf .Get ("\u004c\u004c\u004f");_fgga .CP =_dggf .Get ("\u0043\u0050");
_fgga .Measure =_dggf .Get ("\u004de\u0061\u0073\u0075\u0072\u0065");_fgga .CO =_dggf .Get ("\u0043\u004f");return &_fgga ,nil ;};
// NewPdfColorDeviceRGB returns a new PdfColorDeviceRGB based on the r,g,b component values.
func NewPdfColorDeviceRGB (r ,g ,b float64 )*PdfColorDeviceRGB {_egfb :=PdfColorDeviceRGB {r ,g ,b };return &_egfb ;};
// NewPdfColorCalGray returns a new CalGray color.
func NewPdfColorCalGray (grayVal float64 )*PdfColorCalGray {_gebg :=PdfColorCalGray (grayVal );return &_gebg ;};
// SetNameDictionary sets the Names entry in the PDF catalog.
// See section 7.7.4 "Name Dictionary" (p. 80 PDF32000_2008).
func (_fedfd *PdfWriter )SetNameDictionary (names _ae .PdfObject )error {if names ==nil {return nil ;};_ac .Log .Trace ("\u0053e\u0074\u0074\u0069\u006e\u0067\u0020\u0063\u0061\u0074\u0061\u006co\u0067\u0020\u004e\u0061\u006d\u0065\u0073\u002e\u002e\u002e");
_fedfd ._caddd .Set ("\u004e\u0061\u006de\u0073",names );return _fedfd .addObjects (names );};
// 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 *_ae .PdfIndirectObject ;SV *_ae .PdfIndirectObject ;};
// FullName returns the full name of the field as in rootname.parentname.partialname.
func (_cgce *PdfField )FullName ()(string ,error ){var _cdcd _aa .Buffer ;_cdbg :=[]string {};if _cgce .T !=nil {_cdbg =append (_cdbg ,_cgce .T .Decoded ());};_bfcbd :=map[*PdfField ]bool {};_bfcbd [_cgce ]=true ;_ggdb :=_cgce .Parent ;for _ggdb !=nil {if _ ,_dcec :=_bfcbd [_ggdb ];
_dcec {return _cdcd .String (),_db .New ("\u0072\u0065\u0063\u0075rs\u0069\u0076\u0065\u0020\u0074\u0072\u0061\u0076\u0065\u0072\u0073\u0061\u006c");};if _ggdb .T ==nil {return _cdcd .String (),_db .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");
};_cdbg =append (_cdbg ,_ggdb .T .Decoded ());_bfcbd [_ggdb ]=true ;_ggdb =_ggdb .Parent ;};for _fbag :=len (_cdbg )-1;_fbag >=0;_fbag --{_cdcd .WriteString (_cdbg [_fbag ]);if _fbag > 0{_cdcd .WriteString ("\u002e");};};return _cdcd .String (),nil ;};
// ToPdfObject implements interface PdfModel.
func (_bcef *PdfAnnotationSound )ToPdfObject ()_ae .PdfObject {_bcef .PdfAnnotation .ToPdfObject ();_gcfa :=_bcef ._gcgf ;_aefg :=_gcfa .PdfObject .(*_ae .PdfObjectDictionary );_bcef .PdfAnnotationMarkup .appendToPdfDictionary (_aefg );_aefg .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ae .MakeName ("\u0053\u006f\u0075n\u0064"));
_aefg .SetIfNotNil ("\u0053\u006f\u0075n\u0064",_bcef .Sound );_aefg .SetIfNotNil ("\u004e\u0061\u006d\u0065",_bcef .Name );return _gcfa ;};
// 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 (_faaba *PdfSignature )bool ;
// Validate validates a PDF signature against a given digest (hash) such as that determined
// for an input file. Returns validation results.
Validate (_ggeee *PdfSignature ,_cgcgf 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 (_dcbbg *PdfSignature )error ;
// NewDigest creates a new digest/hasher based on the signature dictionary and handler.
NewDigest (_defcggf *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 (_cfgcg *PdfSignature ,_eddb Hasher )error ;};
// PdfAnnotationWidget represents Widget annotations.
// Note: Widget annotations are used to display form fields.
// (Section 12.5.6.19).
type PdfAnnotationWidget struct{*PdfAnnotation ;H _ae .PdfObject ;MK _ae .PdfObject ;A _ae .PdfObject ;AA _ae .PdfObject ;BS _ae .PdfObject ;Parent _ae .PdfObject ;_bab *PdfField ;_bde bool ;};
// SetColorspaceByName adds the provided colorspace to the page resources.
func (_beeeed *PdfPageResources )SetColorspaceByName (keyName _ae .PdfObjectName ,cs PdfColorspace )error {_febca ,_agbfd :=_beeeed .GetColorspaces ();if _agbfd !=nil {_ac .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",_agbfd );
return _agbfd ;};if _febca ==nil {_febca =NewPdfPageResourcesColorspaces ();_beeeed .SetColorSpace (_febca );};_febca .Set (keyName ,cs );return nil ;};func (_fbaf fontCommon )coreString ()string {_edef :="";if _fbaf ._cafdb !=nil {_edef =_fbaf ._cafdb .String ();
};return _f .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",_fbaf ._adce ,_fbaf ._cedb ,_fbaf ._bbce ,_fbaf ._efef ,_fbaf ._dgea !=nil ,_fbaf .fontFlags (),_edef );
};
// String implements interface PdfObject.
func (_ffa *PdfAction )String ()string {_ced ,_gf :=_ffa .ToPdfObject ().(*_ae .PdfIndirectObject );if _gf {return _f .Sprintf ("\u0025\u0054\u003a\u0020\u0025\u0073",_ffa ._df ,_ced .PdfObject .String ());};return "";};var (_cadgd _e .Mutex ;_fcfa ="";
_ddage _d .Time ;_ecgbe ="";_ffbad ="";_fabd _d .Time ;_bbgdec ="";_egafe ="";_aedg ="";);func _bfgec (_afecce *_ae .PdfObjectDictionary )(*PdfTilingPattern ,error ){_beffea :=&PdfTilingPattern {};_eedeg :=_afecce .Get ("\u0050a\u0069\u006e\u0074\u0054\u0079\u0070e");
if _eedeg ==nil {_ac .Log .Debug ("\u0050\u0061\u0069\u006e\u0074\u0054\u0079\u0070\u0065\u0020\u006d\u0069s\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ;};_bbdg ,_bddcg :=_eedeg .(*_ae .PdfObjectInteger );if !_bddcg {_ac .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",_eedeg );
return nil ,_ae .ErrTypeError ;};_beffea .PaintType =_bbdg ;_eedeg =_afecce .Get ("\u0054\u0069\u006c\u0069\u006e\u0067\u0054\u0079\u0070\u0065");if _eedeg ==nil {_ac .Log .Debug ("\u0054i\u006ci\u006e\u0067\u0054\u0079\u0070e\u0020\u006di\u0073\u0073\u0069\u006e\u0067");
return nil ,ErrRequiredAttributeMissing ;};_agbe ,_bddcg :=_eedeg .(*_ae .PdfObjectInteger );if !_bddcg {_ac .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",_eedeg );
return nil ,_ae .ErrTypeError ;};_beffea .TilingType =_agbe ;_eedeg =_afecce .Get ("\u0042\u0042\u006f\u0078");if _eedeg ==nil {_ac .Log .Debug ("\u0042\u0042\u006fx\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ;
};_eedeg =_ae .TraceToDirectObject (_eedeg );_adbae ,_bddcg :=_eedeg .(*_ae .PdfObjectArray );if !_bddcg {_ac .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",_eedeg );
return nil ,_ae .ErrTypeError ;};_adbdd ,_deffad :=NewPdfRectangle (*_adbae );if _deffad !=nil {_ac .Log .Debug ("\u0042\u0042\u006f\u0078\u0020\u0065\u0072\u0072\u006fr\u003a\u0020\u0025\u0076",_deffad );return nil ,_deffad ;};_beffea .BBox =_adbdd ;_eedeg =_afecce .Get ("\u0058\u0053\u0074e\u0070");
if _eedeg ==nil {_ac .Log .Debug ("\u0058\u0053\u0074\u0065\u0070\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ;};_ddcg ,_deffad :=_ae .GetNumberAsFloat (_eedeg );if _deffad !=nil {_ac .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",_ddcg );
return nil ,_deffad ;};_beffea .XStep =_ae .MakeFloat (_ddcg );_eedeg =_afecce .Get ("\u0059\u0053\u0074e\u0070");if _eedeg ==nil {_ac .Log .Debug ("\u0059\u0053\u0074\u0065\u0070\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ;
};_abdgb ,_deffad :=_ae .GetNumberAsFloat (_eedeg );if _deffad !=nil {_ac .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",_abdgb );
return nil ,_deffad ;};_beffea .YStep =_ae .MakeFloat (_abdgb );_eedeg =_afecce .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");if _eedeg ==nil {_ac .Log .Debug ("\u0052\u0065\u0073\u006f\u0075\u0072\u0063\u0065\u0073\u0020\u006d\u0069s\u0073\u0069\u006e\u0067");
return nil ,ErrRequiredAttributeMissing ;};_afecce ,_bddcg =_ae .TraceToDirectObject (_eedeg ).(*_ae .PdfObjectDictionary );if !_bddcg {return nil ,_f .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",_eedeg );
};_eecd ,_deffad :=NewPdfPageResourcesFromDict (_afecce );if _deffad !=nil {return nil ,_deffad ;};_beffea .Resources =_eecd ;if _fgdda :=_afecce .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");_fgdda !=nil {_gadbce ,_fcecg :=_fgdda .(*_ae .PdfObjectArray );
if !_fcecg {_ac .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",_fgdda );return nil ,_ae .ErrTypeError ;};_beffea .Matrix =_gadbce ;};return _beffea ,nil ;
};func (_ebfed *PdfReader )loadForms ()(*PdfAcroForm ,error ){if _ebfed ._bfcga .GetCrypter ()!=nil &&!_ebfed ._bfcga .IsAuthenticated (){return nil ,_f .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");
};_dbebf :=_ebfed ._aedf ;_eggde :=_dbebf .Get ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d");if _eggde ==nil {return nil ,nil ;};_fccb ,_feda :=_ae .GetIndirect (_eggde );_eggde =_ae .TraceToDirectObject (_eggde );if _ae .IsNullObject (_eggde ){_ac .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 ;};_bedffg ,_gbad :=_ae .GetDict (_eggde );if !_gbad {_ac .Log .Debug ("\u0049n\u0076\u0061\u006c\u0069d\u0020\u0041\u0063\u0072\u006fF\u006fr\u006d \u0065\u006e\u0074\u0072\u0079\u0020\u0025T",_eggde );_ac .Log .Debug ("\u0044\u006f\u0065\u0073 n\u006f\u0074\u0020\u0068\u0061\u0076\u0065\u0020\u0066\u006f\u0072\u006d\u0073");
return nil ,_f .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0061\u0063\u0072\u006ff\u006fr\u006d \u0065\u006e\u0074\u0072\u0079\u0020\u0025T",_eggde );};_ac .Log .Trace ("\u0048\u0061\u0073\u0020\u0041\u0063\u0072\u006f\u0020f\u006f\u0072\u006d\u0073");
_ac .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 !_ebfed ._ffggb {_dcaed :=_ebfed .traverseObjectData (_bedffg );
if _dcaed !=nil {_ac .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",_dcaed );
return nil ,_dcaed ;};};_gfac ,_cfggad :=_ebfed .newPdfAcroFormFromDict (_fccb ,_bedffg );if _cfggad !=nil {return nil ,_cfggad ;};_gfac ._fcbae =!_feda ;return _gfac ,nil ;};
// PdfShadingType2 is an Axial shading.
type PdfShadingType2 struct{*PdfShading ;Coords *_ae .PdfObjectArray ;Domain *_ae .PdfObjectArray ;Function []PdfFunction ;Extend *_ae .PdfObjectArray ;};
// PdfFilespec represents a file specification which can either refer to an external or embedded file.
type PdfFilespec struct{Type _ae .PdfObject ;FS _ae .PdfObject ;F _ae .PdfObject ;UF _ae .PdfObject ;DOS _ae .PdfObject ;Mac _ae .PdfObject ;Unix _ae .PdfObject ;ID _ae .PdfObject ;V _ae .PdfObject ;EF _ae .PdfObject ;RF _ae .PdfObject ;Desc _ae .PdfObject ;
CI _ae .PdfObject ;_caeaag _ae .PdfObject ;};
// HasXObjectByName checks if has XObject resource by name.
func (_eaabc *PdfPage )HasXObjectByName (name _ae .PdfObjectName )bool {_affgc ,_beceg :=_eaabc .Resources .XObject .(*_ae .PdfObjectDictionary );if !_beceg {return false ;};if _ggge :=_affgc .Get (name );_ggge !=nil {return true ;};return false ;};
// DecodeArray returns an empty slice as there are no components associated with pattern colorspace.
func (_gfcc *PdfColorspaceSpecialPattern )DecodeArray ()[]float64 {return []float64 {}};func (_gdgg *PdfAppender )updateObjectsDeep (_cdgg _ae .PdfObject ,_gcab map[_ae .PdfObject ]struct{}){if _gcab ==nil {_gcab =map[_ae .PdfObject ]struct{}{};};if _ ,_cdge :=_gcab [_cdgg ];
_cdge ||_cdgg ==nil {return ;};_gcab [_cdgg ]=struct{}{};_gcag :=_ae .ResolveReferencesDeep (_cdgg ,_gdgg ._bcefc );if _gcag !=nil {_ac .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_gcag );};switch _eaba :=_cdgg .(type ){case *_ae .PdfIndirectObject :switch {case _eaba .GetParser ()==_gdgg ._afad ._bfcga :return ;
case _eaba .GetParser ()==_gdgg .Reader ._bfcga :_ccbb ,_ :=_gdgg ._afad .GetIndirectObjectByNumber (int (_eaba .ObjectNumber ));_becd ,_gcbd :=_ccbb .(*_ae .PdfIndirectObject );if _gcbd &&_becd !=nil {if _becd .PdfObject !=_eaba .PdfObject &&_becd .PdfObject .WriteString ()!=_eaba .PdfObject .WriteString (){_gdgg .addNewObject (_cdgg );
_gdgg ._dcdbc [_cdgg ]=_eaba .ObjectNumber ;};};default:_gdgg .addNewObject (_cdgg );};_gdgg .updateObjectsDeep (_eaba .PdfObject ,_gcab );case *_ae .PdfObjectArray :for _ ,_baga :=range _eaba .Elements (){_gdgg .updateObjectsDeep (_baga ,_gcab );};case *_ae .PdfObjectDictionary :for _ ,_fbbc :=range _eaba .Keys (){_gdgg .updateObjectsDeep (_eaba .Get (_fbbc ),_gcab );
};case *_ae .PdfObjectStreams :if _eaba .GetParser ()!=_gdgg ._afad ._bfcga {for _ ,_fffb :=range _eaba .Elements (){_gdgg .updateObjectsDeep (_fffb ,_gcab );};};case *_ae .PdfObjectStream :switch {case _eaba .GetParser ()==_gdgg ._afad ._bfcga :return ;
case _eaba .GetParser ()==_gdgg .Reader ._bfcga :if _bega ,_caee :=_gdgg ._afad ._bfcga .LookupByReference (_eaba .PdfObjectReference );_caee ==nil {var _deae bool ;if _fdgc ,_cdcbc :=_ae .GetStream (_bega );_cdcbc &&_aa .Equal (_fdgc .Stream ,_eaba .Stream ){_deae =true ;
};if _cgaa ,_bggdd :=_ae .GetDict (_bega );_deae &&_bggdd {_deae =_cgaa .WriteString ()==_eaba .PdfObjectDictionary .WriteString ();};if _deae {return ;};};if _eaba .ObjectNumber !=0{_gdgg ._dcdbc [_cdgg ]=_eaba .ObjectNumber ;};default:if _ ,_ecdf :=_gdgg ._dcefg [_cdgg ];
!_ecdf {_gdgg .addNewObject (_cdgg );};};_gdgg .updateObjectsDeep (_eaba .PdfObjectDictionary ,_gcab );};};
// ToPdfObject implements interface PdfModel.
func (_bgd *PdfActionHide )ToPdfObject ()_ae .PdfObject {_bgd .PdfAction .ToPdfObject ();_gff :=_bgd ._cbe ;_eca :=_gff .PdfObject .(*_ae .PdfObjectDictionary );_eca .SetIfNotNil ("\u0053",_ae .MakeName (string (ActionTypeHide )));_eca .SetIfNotNil ("\u0054",_bgd .T );
_eca .SetIfNotNil ("\u0048",_bgd .H );return _gff ;};func (_bdeed fontCommon )isCIDFont ()bool {if _bdeed ._adce ==""{_ac .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",_bdeed );
};_daae :=false ;switch _bdeed ._adce {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":_daae =true ;};_ac .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",_daae ,_bdeed );
return _daae ;};func _acedb ()string {_cadgd .Lock ();defer _cadgd .Unlock ();return _ffbad };
// BorderStyle defines border type, typically used for annotations.
type BorderStyle int ;
// 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 *_dbg .DiffResults ;
// GeneralizedTime is the time at which the time-stamp token has been created by the TSA (RFC 3161).
GeneralizedTime _d .Time ;};
// ColorToRGB converts a Lab color to an RGB color.
func (_gcef *PdfColorspaceLab )ColorToRGB (color PdfColor )(PdfColor ,error ){_eabg :=func (_agec float64 )float64 {if _agec >=6.0/29{return _agec *_agec *_agec ;};return 108.0/841*(_agec -4.0/29.0);};_aaf ,_ffde :=color .(*PdfColorLab );if !_ffde {_ac .Log .Debug ("\u0069\u006e\u0070\u0075t \u0063\u006f\u006c\u006f\u0072\u0020\u006e\u006f\u0074\u0020\u006c\u0061\u0062");
return nil ,_db .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};LStar :=_aaf .L ();AStar :=_aaf .A ();BStar :=_aaf .B ();L :=(LStar +16)/116+AStar /500;M :=(LStar +16)/116;N :=(LStar +16)/116-BStar /200;
X :=_gcef .WhitePoint [0]*_eabg (L );Y :=_gcef .WhitePoint [1]*_eabg (M );Z :=_gcef .WhitePoint [2]*_eabg (N );_eebbg :=3.240479*X +-1.537150*Y +-0.498535*Z ;_bfff :=-0.969256*X +1.875992*Y +0.041556*Z ;_beec :=0.055648*X +-0.204043*Y +1.057311*Z ;_eebbg =_ag .Min (_ag .Max (_eebbg ,0),1.0);
_bfff =_ag .Min (_ag .Max (_bfff ,0),1.0);_beec =_ag .Min (_ag .Max (_beec ,0),1.0);return NewPdfColorDeviceRGB (_eebbg ,_bfff ,_beec ),nil ;};
// GetPdfInfo returns the PDF info dictionary.
func (_gbdbg *PdfReader )GetPdfInfo ()(*PdfInfo ,error ){_dgecc ,_cgeab :=_gbdbg .GetTrailer ();if _cgeab !=nil {return nil ,_cgeab ;};var _ababa *_ae .PdfObjectDictionary ;_egbfb :=_dgecc .Get ("\u0049\u006e\u0066\u006f");switch _dfcgb :=_egbfb .(type ){case *_ae .PdfObjectReference :_dafefd :=_dfcgb ;
_egbfb ,_cgeab =_gbdbg .GetIndirectObjectByNumber (int (_dafefd .ObjectNumber ));_egbfb =_ae .TraceToDirectObject (_egbfb );if _cgeab !=nil {return nil ,_cgeab ;};_ababa ,_ =_egbfb .(*_ae .PdfObjectDictionary );case *_ae .PdfObjectDictionary :_ababa =_dfcgb ;
};if _ababa ==nil {return nil ,_db .New ("I\u006e\u0066\u006f\u0020\u0064\u0069c\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u0020\u006eo\u0074\u0020\u0070r\u0065s\u0065\u006e\u0074");};_gcgcb ,_cgeab :=NewPdfInfoFromObject (_ababa );if _cgeab !=nil {return nil ,_cgeab ;
};return _gcgcb ,nil ;};
// Insert adds a top level outline item in the outline,
// at the specified index.
func (_dgff *Outline )Insert (index uint ,item *OutlineItem ){_gddefe :=uint (len (_dgff .Entries ));if index > _gddefe {index =_gddefe ;};_dgff .Entries =append (_dgff .Entries [:index ],append ([]*OutlineItem {item },_dgff .Entries [index :]...)...);
};
// Encoder returns the font's text encoder.
func (_abfdd pdfFontType3 )Encoder ()_bgg .TextEncoder {return _abfdd ._debad };const (BorderStyleSolid BorderStyle =iota ;BorderStyleDashed BorderStyle =iota ;BorderStyleBeveled BorderStyle =iota ;BorderStyleInset BorderStyle =iota ;BorderStyleUnderline BorderStyle =iota ;
);
// PdfFieldChoice represents a choice field which includes scrollable list boxes and combo boxes.
type PdfFieldChoice struct{*PdfField ;Opt *_ae .PdfObjectArray ;TI *_ae .PdfObjectInteger ;I *_ae .PdfObjectArray ;};
// 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 (_ecfgec *PdfWriter )hasObject (_eegf _ae .PdfObject )bool {_ ,_bedce :=_ecfgec ._faecg [_eegf ];return _bedce ;};
// ImageToRGB converts Lab colorspace image to RGB and returns the result.
func (_agac *PdfColorspaceLab )ImageToRGB (img Image )(Image ,error ){_bggea :=func (_fdfa float64 )float64 {if _fdfa >=6.0/29{return _fdfa *_fdfa *_fdfa ;};return 108.0/841*(_fdfa -4.0/29.0);};_edad :=img ._fdae ;if len (_edad )!=6{_ac .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");
_edad =_agac .DecodeArray ();};_gede :=_ba .NewReader (img .getBase ());_eeed :=_afc .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),3,nil ,img ._bbba ,img ._fdae );_gfdf :=_ba .NewWriter (_eeed );_fgdb :=_ag .Pow (2,float64 (img .BitsPerComponent ))-1;
_gafb :=make ([]uint32 ,3);var (_adde error ;Ls ,As ,Bs ,L ,M ,N ,X ,Y ,Z ,_badd ,_beaae ,_ccae float64 ;);for {_adde =_gede .ReadSamples (_gafb );if _adde ==_gdc .EOF {break ;}else if _adde !=nil {return img ,_adde ;};Ls =float64 (_gafb [0])/_fgdb ;As =float64 (_gafb [1])/_fgdb ;
Bs =float64 (_gafb [2])/_fgdb ;Ls =_afc .LinearInterpolate (Ls ,0.0,1.0,_edad [0],_edad [1]);As =_afc .LinearInterpolate (As ,0.0,1.0,_edad [2],_edad [3]);Bs =_afc .LinearInterpolate (Bs ,0.0,1.0,_edad [4],_edad [5]);L =(Ls +16)/116+As /500;M =(Ls +16)/116;
N =(Ls +16)/116-Bs /200;X =_agac .WhitePoint [0]*_bggea (L );Y =_agac .WhitePoint [1]*_bggea (M );Z =_agac .WhitePoint [2]*_bggea (N );_badd =3.240479*X +-1.537150*Y +-0.498535*Z ;_beaae =-0.969256*X +1.875992*Y +0.041556*Z ;_ccae =0.055648*X +-0.204043*Y +1.057311*Z ;
_badd =_ag .Min (_ag .Max (_badd ,0),1.0);_beaae =_ag .Min (_ag .Max (_beaae ,0),1.0);_ccae =_ag .Min (_ag .Max (_ccae ,0),1.0);_gafb [0]=uint32 (_badd *_fgdb );_gafb [1]=uint32 (_beaae *_fgdb );_gafb [2]=uint32 (_ccae *_fgdb );if _adde =_gfdf .WriteSamples (_gafb );
_adde !=nil {return img ,_adde ;};};return _feagd (&_eeed ),nil ;};func _aead (_bdab *fontCommon )*pdfFontSimple {return &pdfFontSimple {fontCommon :*_bdab }};
// GetContainingPdfObject returns the XObject Form's containing object (indirect object).
func (_efefd *XObjectForm )GetContainingPdfObject ()_ae .PdfObject {return _efefd ._fccdf };func (_ddfd fontCommon )fontFlags ()int {if _ddfd ._cafdb ==nil {return 0;};return _ddfd ._cafdb ._fbafe ;};
// 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 ;func _adfg (_cfbf _ae .PdfObject )(*PdfColorspaceDeviceNAttributes ,error ){_cgcc :=&PdfColorspaceDeviceNAttributes {};var _ebbe *_ae .PdfObjectDictionary ;switch _adgg :=_cfbf .(type ){case *_ae .PdfIndirectObject :_cgcc ._cabd =_adgg ;
var _fafdd bool ;_ebbe ,_fafdd =_adgg .PdfObject .(*_ae .PdfObjectDictionary );if !_fafdd {_ac .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 ,_db .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};case *_ae .PdfObjectDictionary :_ebbe =_adgg ;case *_ae .PdfObjectReference :_gggad :=_adgg .Resolve ();return _adfg (_gggad );default:_ac .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 ,_db .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _dcfa :=_ebbe .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065");_dcfa !=nil {_gace ,_baac :=_ae .TraceToDirectObject (_dcfa ).(*_ae .PdfObjectName );if !_baac {_ac .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 ,_db .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};_cgcc .Subtype =_gace ;};if _fdba :=_ebbe .Get ("\u0043o\u006c\u006f\u0072\u0061\u006e\u0074s");_fdba !=nil {_cgcc .Colorants =_fdba ;};if _affa :=_ebbe .Get ("\u0050r\u006f\u0063\u0065\u0073\u0073");
_affa !=nil {_cgcc .Process =_affa ;};if _gcebg :=_ebbe .Get ("M\u0069\u0078\u0069\u006e\u0067\u0048\u0069\u006e\u0074\u0073");_gcebg !=nil {_cgcc .MixingHints =_gcebg ;};return _cgcc ,nil ;};
// NewPdfOutlineItem returns an initialized PdfOutlineItem.
func NewPdfOutlineItem ()*PdfOutlineItem {_gbfbg :=&PdfOutlineItem {_dabga :_ae .MakeIndirectObject (_ae .MakeDict ())};_gbfbg ._aaea =_gbfbg ;return _gbfbg ;};
// NewPdfColorspaceCalRGB returns a new CalRGB colorspace object.
func NewPdfColorspaceCalRGB ()*PdfColorspaceCalRGB {_ceef :=&PdfColorspaceCalRGB {};_ceef .BlackPoint =[]float64 {0.0,0.0,0.0};_ceef .Gamma =[]float64 {1.0,1.0,1.0};_ceef .Matrix =[]float64 {1,0,0,0,1,0,0,0,1};return _ceef ;};var _ pdfFont =(*pdfFontType0 )(nil );
// GetCatalogMarkInfo gets catalog MarkInfo object.
func (_febf *PdfReader )GetCatalogMarkInfo ()(_ae .PdfObject ,bool ){if _febf ._aedf ==nil {return nil ,false ;};_bbee :=_febf ._aedf .Get ("\u004d\u0061\u0072\u006b\u0049\u006e\u0066\u006f");return _bbee ,_bbee !=nil ;};
// SetFilter sets compression filter. Decodes with current filter sets and
// encodes the data with the new filter.
func (_fffbb *XObjectImage )SetFilter (encoder _ae .StreamEncoder )error {_ggfec :=_fffbb .Stream ;_cbcg ,_dcca :=_fffbb .Filter .DecodeBytes (_ggfec );if _dcca !=nil {return _dcca ;};_fffbb .Filter =encoder ;encoder .UpdateParams (_fffbb .getParamsDict ());
_ggfec ,_dcca =encoder .EncodeBytes (_cbcg );if _dcca !=nil {return _dcca ;};_fffbb .Stream =_ggfec ;return nil ;};
// AppendContentStream adds content stream by string. Appends to the last
// contentstream instance if many.
func (_cecdg *PdfPage )AppendContentStream (contentStr string )error {_dgfgc ,_ebdgf :=_cecdg .GetContentStreams ();if _ebdgf !=nil {return _ebdgf ;};if len (_dgfgc )==0{_dgfgc =[]string {contentStr };return _cecdg .SetContentStreams (_dgfgc ,_ae .NewFlateEncoder ());
};var _cafgg _aa .Buffer ;_cafgg .WriteString (_dgfgc [len (_dgfgc )-1]);_cafgg .WriteString ("\u000a");_cafgg .WriteString (contentStr );_dgfgc [len (_dgfgc )-1]=_cafgg .String ();return _cecdg .SetContentStreams (_dgfgc ,_ae .NewFlateEncoder ());};
// PdfColorspaceDeviceRGB represents an RGB colorspace.
type PdfColorspaceDeviceRGB struct{};
// 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"`;};
// GetContainingPdfObject returns the container of the outline item (indirect object).
func (_bcfgd *PdfOutlineItem )GetContainingPdfObject ()_ae .PdfObject {return _bcfgd ._dabga };
// 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 (_fgdgg *PdfFont )FontDescriptor ()*PdfFontDescriptor {if _fgdgg .baseFields ()._cafdb !=nil {return _fgdgg .baseFields ()._cafdb ;};if _cffc :=_fgdgg ._dabg .getFontDescriptor ();_cffc !=nil {return _cffc ;};_ac .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",_fgdgg );
return nil ;};
// NewPdfAnnotationMovie returns a new movie annotation.
func NewPdfAnnotationMovie ()*PdfAnnotationMovie {_abf :=NewPdfAnnotation ();_cfa :=&PdfAnnotationMovie {};_cfa .PdfAnnotation =_abf ;_abf .SetContext (_cfa );return _cfa ;};
// C returns the value of the cyan component of the color.
func (_bafd *PdfColorDeviceCMYK )C ()float64 {return _bafd [0]};
// GetRuneMetrics returns the character metrics for the specified rune.
// A bool flag is returned to indicate whether or not the entry was found.
func (_fbcd pdfFontType0 )GetRuneMetrics (r rune )(_cb .CharMetrics ,bool ){if _fbcd .DescendantFont ==nil {_ac .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",_fbcd );
return _cb .CharMetrics {},false ;};return _fbcd .DescendantFont .GetRuneMetrics (r );};var _ pdfFont =(*pdfFontSimple )(nil );
// PdfShadingType6 is a Coons patch mesh.
type PdfShadingType6 struct{*PdfShading ;BitsPerCoordinate *_ae .PdfObjectInteger ;BitsPerComponent *_ae .PdfObjectInteger ;BitsPerFlag *_ae .PdfObjectInteger ;Decode *_ae .PdfObjectArray ;Function []PdfFunction ;};func (_cgebg *pdfFontType0 )subsetRegistered ()error {_efacd ,_cebace :=_cgebg .DescendantFont ._dabg .(*pdfCIDFontType2 );
if !_cebace {_ac .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",_cgebg .DescendantFont );return nil ;};if _efacd ==nil {return nil ;
};if _efacd ._cafdb ==nil {_ac .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 _cgebg ._bagdb ==nil {_ac .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 ;};_fddg ,_cebace :=_ae .GetStream (_efacd ._cafdb .FontFile2 );if !_cebace {_ac .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 _db .New ("\u0066\u006f\u006e\u0074fi\u006c\u0065\u0032\u0020\u006e\u006f\u0074\u0020\u0066\u006f\u0075\u006e\u0064");};_deagg ,_eabe :=_ae .DecodeStream (_fddg );if _eabe !=nil {_ac .Log .Debug ("\u0044\u0065c\u006f\u0064\u0065 \u0065\u0072\u0072\u006f\u0072\u003a\u0020\u0025\u0076",_eabe );
return _eabe ;};_fffga ,_eabe :=_ggc .Parse (_aa .NewReader (_deagg ));if _eabe !=nil {_ac .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 (_fddg .Stream ));
return _eabe ;};var _bdga []rune ;var _debeb *_ggc .Font ;switch _ddaab :=_cgebg ._bagdb .(type ){case *_bgg .TrueTypeFontEncoder :_bdga =_ddaab .RegisteredRunes ();_debeb ,_eabe =_fffga .SubsetKeepRunes (_bdga );if _eabe !=nil {_ac .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_eabe );
return _eabe ;};_ddaab .SubsetRegistered ();case *_bgg .IdentityEncoder :_bdga =_ddaab .RegisteredRunes ();_ddfgb :=make ([]_ggc .GlyphIndex ,len (_bdga ));for _cacgf ,_cdcdd :=range _bdga {_ddfgb [_cacgf ]=_ggc .GlyphIndex (_cdcdd );};_debeb ,_eabe =_fffga .SubsetKeepIndices (_ddfgb );
if _eabe !=nil {_ac .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_eabe );return _eabe ;};case _bgg .SimpleEncoder :_gceg :=_ddaab .Charcodes ();for _ ,_degb :=range _gceg {_deea ,_dabaf :=_ddaab .CharcodeToRune (_degb );if !_dabaf {_ac .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",_degb );
continue ;};_bdga =append (_bdga ,_deea );};default:return _f .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",_cgebg ._bagdb );
};var _fdbf _aa .Buffer ;_eabe =_debeb .Write (&_fdbf );if _eabe !=nil {_ac .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_eabe );return _eabe ;};if _cgebg ._ebfdc !=nil {_cfgc :=make (map[_abg .CharCode ]rune ,len (_bdga ));for _ ,_ddcdc :=range _bdga {_cgbef ,_bbgf :=_cgebg ._bagdb .RuneToCharcode (_ddcdc );
if !_bbgf {continue ;};_cfgc [_abg .CharCode (_cgbef )]=_ddcdc ;};_cgebg ._ebfdc =_abg .NewToUnicodeCMap (_cfgc );};_fddg ,_eabe =_ae .MakeStream (_fdbf .Bytes (),_ae .NewFlateEncoder ());if _eabe !=nil {_ac .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_eabe );
return _eabe ;};_fddg .Set ("\u004ce\u006e\u0067\u0074\u0068\u0031",_ae .MakeInteger (int64 (_fdbf .Len ())));if _ddbd ,_cgef :=_ae .GetStream (_efacd ._cafdb .FontFile2 );_cgef {*_ddbd =*_fddg ;}else {_efacd ._cafdb .FontFile2 =_fddg ;};_dfeb :=_afdgg ();
if len (_cgebg ._cedb )> 0{_cgebg ._cedb =_egec (_cgebg ._cedb ,_dfeb );};if len (_efacd ._cedb )> 0{_efacd ._cedb =_egec (_efacd ._cedb ,_dfeb );};if len (_cgebg ._bbce )> 0{_cgebg ._bbce =_egec (_cgebg ._bbce ,_dfeb );};if _efacd ._cafdb !=nil {_eaegc ,_bdaf :=_ae .GetName (_efacd ._cafdb .FontName );
if _bdaf &&len (_eaegc .String ())> 0{_fged :=_egec (_eaegc .String (),_dfeb );_efacd ._cafdb .FontName =_ae .MakeName (_fged );};};return nil ;};
// Val returns the color value.
func (_gcaf *PdfColorDeviceGray )Val ()float64 {return float64 (*_gcaf )};
// ToPdfObject implements interface PdfModel.
func (_baa *PdfActionGoToR )ToPdfObject ()_ae .PdfObject {_baa .PdfAction .ToPdfObject ();_bec :=_baa ._cbe ;_aecf :=_bec .PdfObject .(*_ae .PdfObjectDictionary );_aecf .SetIfNotNil ("\u0053",_ae .MakeName (string (ActionTypeGoToR )));if _baa .F !=nil {_aecf .Set ("\u0046",_baa .F .ToPdfObject ());
};_aecf .SetIfNotNil ("\u0044",_baa .D );_aecf .SetIfNotNil ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw",_baa .NewWindow );return _bec ;};
// NewPdfSignatureReferenceDocMDP returns PdfSignatureReference for the transformParams.
func NewPdfSignatureReferenceDocMDP (transformParams *PdfTransformParamsDocMDP )*PdfSignatureReference {return &PdfSignatureReference {Type :_ae .MakeName ("\u0053\u0069\u0067\u0052\u0065\u0066"),TransformMethod :_ae .MakeName ("\u0044\u006f\u0063\u004d\u0044\u0050"),TransformParams :transformParams .ToPdfObject ()};
};
// GetNumComponents returns the number of color components of the colorspace device.
// Returns 1 for a CalGray device.
func (_cbfd *PdfColorspaceCalGray )GetNumComponents ()int {return 1};func (_ecb *PdfReader )newPdfActionFromIndirectObject (_fbc *_ae .PdfIndirectObject )(*PdfAction ,error ){_cfde ,_dfg :=_fbc .PdfObject .(*_ae .PdfObjectDictionary );if !_dfg {return nil ,_f .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 :=_ecb ._gdbcb .GetModelFromPrimitive (_cfde );model !=nil {_eagf ,_edg :=model .(*PdfAction );if !_edg {return nil ,_f .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 _eagf ,nil ;};_bcb :=&PdfAction {};_bcb ._cbe =_fbc ;_ecb ._gdbcb .Register (_cfde ,_bcb );if _aeb :=_cfde .Get ("\u0054\u0079\u0070\u0065");_aeb !=nil {_fac ,_deg :=_aeb .(*_ae .PdfObjectName );if !_deg {_ac .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",_aeb );
}else {if *_fac !="\u0041\u0063\u0074\u0069\u006f\u006e"{_ac .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",*_fac );
};_bcb .Type =_fac ;};};if _aea :=_cfde .Get ("\u004e\u0065\u0078\u0074");_aea !=nil {_bcb .Next =_aea ;};if _dee :=_cfde .Get ("\u0053");_dee !=nil {_bcb .S =_dee ;};_bbc ,_feb :=_bcb .S .(*_ae .PdfObjectName );if !_feb {_ac .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",_bcb .S );
return nil ,_f .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",_bcb .S );};_dgg :=PdfActionType (_bbc .String ());
switch _dgg {case ActionTypeGoTo :_gbec ,_ffe :=_ecb .newPdfActionGotoFromDict (_cfde );if _ffe !=nil {return nil ,_ffe ;};_gbec .PdfAction =_bcb ;_bcb ._df =_gbec ;return _bcb ,nil ;case ActionTypeGoToR :_ggea ,_ccd :=_ecb .newPdfActionGotoRFromDict (_cfde );
if _ccd !=nil {return nil ,_ccd ;};_ggea .PdfAction =_bcb ;_bcb ._df =_ggea ;return _bcb ,nil ;case ActionTypeGoToE :_faf ,_fge :=_ecb .newPdfActionGotoEFromDict (_cfde );if _fge !=nil {return nil ,_fge ;};_faf .PdfAction =_bcb ;_bcb ._df =_faf ;return _bcb ,nil ;
case ActionTypeLaunch :_agb ,_ccc :=_ecb .newPdfActionLaunchFromDict (_cfde );if _ccc !=nil {return nil ,_ccc ;};_agb .PdfAction =_bcb ;_bcb ._df =_agb ;return _bcb ,nil ;case ActionTypeThread :_gfd ,_fbb :=_ecb .newPdfActionThreadFromDict (_cfde );if _fbb !=nil {return nil ,_fbb ;
};_gfd .PdfAction =_bcb ;_bcb ._df =_gfd ;return _bcb ,nil ;case ActionTypeURI :_ddf ,_ged :=_ecb .newPdfActionURIFromDict (_cfde );if _ged !=nil {return nil ,_ged ;};_ddf .PdfAction =_bcb ;_bcb ._df =_ddf ;return _bcb ,nil ;case ActionTypeSound :_gbf ,_caf :=_ecb .newPdfActionSoundFromDict (_cfde );
if _caf !=nil {return nil ,_caf ;};_gbf .PdfAction =_bcb ;_bcb ._df =_gbf ;return _bcb ,nil ;case ActionTypeMovie :_ebg ,_fceb :=_ecb .newPdfActionMovieFromDict (_cfde );if _fceb !=nil {return nil ,_fceb ;};_ebg .PdfAction =_bcb ;_bcb ._df =_ebg ;return _bcb ,nil ;
case ActionTypeHide :_eae ,_bcga :=_ecb .newPdfActionHideFromDict (_cfde );if _bcga !=nil {return nil ,_bcga ;};_eae .PdfAction =_bcb ;_bcb ._df =_eae ;return _bcb ,nil ;case ActionTypeNamed :_dea ,_egbd :=_ecb .newPdfActionNamedFromDict (_cfde );if _egbd !=nil {return nil ,_egbd ;
};_dea .PdfAction =_bcb ;_bcb ._df =_dea ;return _bcb ,nil ;case ActionTypeSubmitForm :_dbge ,_egd :=_ecb .newPdfActionSubmitFormFromDict (_cfde );if _egd !=nil {return nil ,_egd ;};_dbge .PdfAction =_bcb ;_bcb ._df =_dbge ;return _bcb ,nil ;case ActionTypeResetForm :_dfb ,_eff :=_ecb .newPdfActionResetFormFromDict (_cfde );
if _eff !=nil {return nil ,_eff ;};_dfb .PdfAction =_bcb ;_bcb ._df =_dfb ;return _bcb ,nil ;case ActionTypeImportData :_efg ,_cae :=_ecb .newPdfActionImportDataFromDict (_cfde );if _cae !=nil {return nil ,_cae ;};_efg .PdfAction =_bcb ;_bcb ._df =_efg ;
return _bcb ,nil ;case ActionTypeSetOCGState :_dgd ,_aag :=_ecb .newPdfActionSetOCGStateFromDict (_cfde );if _aag !=nil {return nil ,_aag ;};_dgd .PdfAction =_bcb ;_bcb ._df =_dgd ;return _bcb ,nil ;case ActionTypeRendition :_ggg ,_gfa :=_ecb .newPdfActionRenditionFromDict (_cfde );
if _gfa !=nil {return nil ,_gfa ;};_ggg .PdfAction =_bcb ;_bcb ._df =_ggg ;return _bcb ,nil ;case ActionTypeTrans :_cgg ,_bfd :=_ecb .newPdfActionTransFromDict (_cfde );if _bfd !=nil {return nil ,_bfd ;};_cgg .PdfAction =_bcb ;_bcb ._df =_cgg ;return _bcb ,nil ;
case ActionTypeGoTo3DView :_bdg ,_eab :=_ecb .newPdfActionGoTo3DViewFromDict (_cfde );if _eab !=nil {return nil ,_eab ;};_bdg .PdfAction =_bcb ;_bcb ._df =_bdg ;return _bcb ,nil ;case ActionTypeJavaScript :_ade ,_ddff :=_ecb .newPdfActionJavaScriptFromDict (_cfde );
if _ddff !=nil {return nil ,_ddff ;};_ade .PdfAction =_bcb ;_bcb ._df =_ade ;return _bcb ,nil ;};_ac .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",_dgg );
return nil ,nil ;};func (_adad *PdfReader )newPdfActionImportDataFromDict (_bff *_ae .PdfObjectDictionary )(*PdfActionImportData ,error ){_baf ,_cagc :=_ceb (_bff .Get ("\u0046"));if _cagc !=nil {return nil ,_cagc ;};return &PdfActionImportData {F :_baf },nil ;
};
// Encoder returns the font's text encoder.
func (_gbcag pdfCIDFontType2 )Encoder ()_bgg .TextEncoder {return _gbcag ._bddbd };
// PartialName returns the partial name of the field.
func (_dcfc *PdfField )PartialName ()string {_dfdc :="";if _dcfc .T !=nil {_dfdc =_dcfc .T .Decoded ();}else {_ac .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 _dfdc ;};
// PdfAnnotationPolyLine represents PolyLine annotations.
// (Section 12.5.6.9).
type PdfAnnotationPolyLine struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Vertices _ae .PdfObject ;LE _ae .PdfObject ;BS _ae .PdfObject ;IC _ae .PdfObject ;BE _ae .PdfObject ;IT _ae .PdfObject ;Measure _ae .PdfObject ;};
// NewOutlineItem returns a new outline item instance.
func NewOutlineItem (title string ,dest OutlineDest )*OutlineItem {return &OutlineItem {Title :title ,Dest :dest };};func (_fabf *PdfColorspaceDeviceRGB )String ()string {return "\u0044e\u0076\u0069\u0063\u0065\u0052\u0047B";};
// 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 *_ae .PdfObjectStream ;Data []byte ;_debg *_ae .PdfIndirectObject ;_egefc *_ae .PdfObjectStream ;};
// ToPdfObject returns the PDF representation of the shading pattern.
func (_geefc *PdfShadingPatternType2 )ToPdfObject ()_ae .PdfObject {_geefc .PdfPattern .ToPdfObject ();_cacdb :=_geefc .getDict ();if _geefc .Shading !=nil {_cacdb .Set ("\u0053h\u0061\u0064\u0069\u006e\u0067",_geefc .Shading .ToPdfObject ());};if _geefc .Matrix !=nil {_cacdb .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_geefc .Matrix );
};if _geefc .ExtGState !=nil {_cacdb .Set ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e",_geefc .ExtGState );};return _geefc ._ebfged ;};
// GetNumComponents returns the number of color components (3 for Lab).
func (_ceaa *PdfColorLab )GetNumComponents ()int {return 3};
// HasXObjectByName checks if an XObject with a specified keyName is defined.
func (_eeac *PdfPageResources )HasXObjectByName (keyName _ae .PdfObjectName )bool {_cgbbg ,_ :=_eeac .GetXObjectByName (keyName );return _cgbbg !=nil ;};func (_bbcc *DSS )addOCSPs (_eddf [][]byte )([]*_ae .PdfObjectStream ,error ){return _bbcc .add (&_bbcc .OCSPs ,_bbcc ._fcgf ,_eddf );
};
// GetContainingPdfObject implements interface PdfModel.
func (_debb *PdfFilespec )GetContainingPdfObject ()_ae .PdfObject {return _debb ._caeaag };
// 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 (_fcdcab byte )byte ;
// ToPdfObject implements interface PdfModel.
func (_geec *PdfAnnotationScreen )ToPdfObject ()_ae .PdfObject {_geec .PdfAnnotation .ToPdfObject ();_gbaa :=_geec ._gcgf ;_ceca :=_gbaa .PdfObject .(*_ae .PdfObjectDictionary );_ceca .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ae .MakeName ("\u0053\u0063\u0072\u0065\u0065\u006e"));
_ceca .SetIfNotNil ("\u0054",_geec .T );_ceca .SetIfNotNil ("\u004d\u004b",_geec .MK );_ceca .SetIfNotNil ("\u0041",_geec .A );_ceca .SetIfNotNil ("\u0041\u0041",_geec .AA );return _gbaa ;};
// GetContainingPdfObject implements interface PdfModel.
func (_debag *PdfSignatureReference )GetContainingPdfObject ()_ae .PdfObject {return _debag ._geecc };
// NewPdfInfoFromObject creates a new PdfInfo from the input core.PdfObject.
func NewPdfInfoFromObject (obj _ae .PdfObject )(*PdfInfo ,error ){var _fgdf PdfInfo ;_fbfb ,_aegb :=obj .(*_ae .PdfObjectDictionary );if !_aegb {return nil ,_f .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 _ ,_cffad :=range _fbfb .Keys (){switch _cffad {case "\u0054\u0069\u0074l\u0065":_fgdf .Title ,_ =_ae .GetString (_fbfb .Get ("\u0054\u0069\u0074l\u0065"));case "\u0041\u0075\u0074\u0068\u006f\u0072":_fgdf .Author ,_ =_ae .GetString (_fbfb .Get ("\u0041\u0075\u0074\u0068\u006f\u0072"));
case "\u0053u\u0062\u006a\u0065\u0063\u0074":_fgdf .Subject ,_ =_ae .GetString (_fbfb .Get ("\u0053u\u0062\u006a\u0065\u0063\u0074"));case "\u004b\u0065\u0079\u0077\u006f\u0072\u0064\u0073":_fgdf .Keywords ,_ =_ae .GetString (_fbfb .Get ("\u004b\u0065\u0079\u0077\u006f\u0072\u0064\u0073"));
case "\u0043r\u0065\u0061\u0074\u006f\u0072":_fgdf .Creator ,_ =_ae .GetString (_fbfb .Get ("\u0043r\u0065\u0061\u0074\u006f\u0072"));case "\u0050\u0072\u006f\u0064\u0075\u0063\u0065\u0072":_fgdf .Producer ,_ =_ae .GetString (_fbfb .Get ("\u0050\u0072\u006f\u0064\u0075\u0063\u0065\u0072"));
case "\u0054r\u0061\u0070\u0070\u0065\u0064":_fgdf .Trapped ,_ =_ae .GetName (_fbfb .Get ("\u0054r\u0061\u0070\u0070\u0065\u0064"));case "\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065":if _cggcb ,_bbae :=_ae .GetString (_fbfb .Get ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065"));
_bbae &&_cggcb .String ()!=""{_gcad ,_adfgd :=NewPdfDate (_cggcb .String ());if _adfgd !=nil {return nil ,_f .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",_adfgd );
};_fgdf .CreationDate =&_gcad ;};case "\u004do\u0064\u0044\u0061\u0074\u0065":if _cebeb ,_gcfb :=_ae .GetString (_fbfb .Get ("\u004do\u0064\u0044\u0061\u0074\u0065"));_gcfb &&_cebeb .String ()!=""{_ggfc ,_ggbb :=NewPdfDate (_cebeb .String ());if _ggbb !=nil {return nil ,_f .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u004d\u006f\u0064\u0044a\u0074e\u0020f\u0069\u0065\u006c\u0064\u003a\u0020\u0025w",_ggbb );
};_fgdf .ModifiedDate =&_ggfc ;};default:_cgf ,_ :=_ae .GetString (_fbfb .Get (_cffad ));if _fgdf ._ffgag ==nil {_fgdf ._ffgag =_ae .MakeDict ();};_fgdf ._ffgag .Set (_cffad ,_cgf );};};return &_fgdf ,nil ;};
// NewPdfShadingType2 creates an empty shading type 2 dictionary.
func NewPdfShadingType2 ()*PdfShadingType2 {_dbgfa :=&PdfShadingType2 {};_dbgfa .PdfShading =&PdfShading {};_dbgfa .PdfShading ._dcdgda =_ae .MakeIndirectObject (_ae .MakeDict ());_dbgfa .PdfShading ._ffgbf =_dbgfa ;return _dbgfa ;};
// GetAction returns the PDF action for the annotation link.
func (_ggf *PdfAnnotationLink )GetAction ()(*PdfAction ,error ){if _ggf ._ebf !=nil {return _ggf ._ebf ,nil ;};if _ggf .A ==nil {return nil ,nil ;};if _ggf ._cfdf ==nil {return nil ,nil ;};_fbbb ,_aef :=_ggf ._cfdf .loadAction (_ggf .A );if _aef !=nil {return nil ,_aef ;
};_ggf ._ebf =_fbbb ;return _ggf ._ebf ,nil ;};func (_gafd *fontFile )parseASCIIPart (_fgdec []byte )error {if len (_fgdec )< 2||string (_fgdec [:2])!="\u0025\u0021"{return _db .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");
};_ebed ,_ceae ,_bebb :=_fegbg (_fgdec );if _bebb !=nil {return _bebb ;};_ggfd :=_gafdf (_ebed );_gafd ._deef =_ggfd ["\u0046\u006f\u006e\u0074\u004e\u0061\u006d\u0065"];if _gafd ._deef ==""{_ac .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 _ceae !=""{_cedc ,_gffd :=_dcdc (_ceae );if _gffd !=nil {return _gffd ;};_accf ,_gffd :=_bgg .NewCustomSimpleTextEncoder (_cedc ,nil );if _gffd !=nil {_ac .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",_gffd );
return nil ;};_gafd ._dbfd =_accf ;};return nil ;};
// ToPdfObject returns colorspace in a PDF object format [name dictionary]
func (_geefg *PdfColorspaceCalRGB )ToPdfObject ()_ae .PdfObject {_beae :=&_ae .PdfObjectArray {};_beae .Append (_ae .MakeName ("\u0043\u0061\u006c\u0052\u0047\u0042"));_agfg :=_ae .MakeDict ();if _geefg .WhitePoint !=nil {_cdceg :=_ae .MakeArray (_ae .MakeFloat (_geefg .WhitePoint [0]),_ae .MakeFloat (_geefg .WhitePoint [1]),_ae .MakeFloat (_geefg .WhitePoint [2]));
_agfg .Set ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074",_cdceg );}else {_ac .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 _geefg .BlackPoint !=nil {_eafa :=_ae .MakeArray (_ae .MakeFloat (_geefg .BlackPoint [0]),_ae .MakeFloat (_geefg .BlackPoint [1]),_ae .MakeFloat (_geefg .BlackPoint [2]));_agfg .Set ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074",_eafa );
};if _geefg .Gamma !=nil {_cegda :=_ae .MakeArray (_ae .MakeFloat (_geefg .Gamma [0]),_ae .MakeFloat (_geefg .Gamma [1]),_ae .MakeFloat (_geefg .Gamma [2]));_agfg .Set ("\u0047\u0061\u006dm\u0061",_cegda );};if _geefg .Matrix !=nil {_aagf :=_ae .MakeArray (_ae .MakeFloat (_geefg .Matrix [0]),_ae .MakeFloat (_geefg .Matrix [1]),_ae .MakeFloat (_geefg .Matrix [2]),_ae .MakeFloat (_geefg .Matrix [3]),_ae .MakeFloat (_geefg .Matrix [4]),_ae .MakeFloat (_geefg .Matrix [5]),_ae .MakeFloat (_geefg .Matrix [6]),_ae .MakeFloat (_geefg .Matrix [7]),_ae .MakeFloat (_geefg .Matrix [8]));
_agfg .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_aagf );};_beae .Append (_agfg );if _geefg ._gbge !=nil {_geefg ._gbge .PdfObject =_beae ;return _geefg ._gbge ;};return _beae ;};
// IsTerminal returns true for terminal fields, false otherwise.
// Terminal fields are fields whose descendants are only widget annotations.
func (_agfa *PdfField )IsTerminal ()bool {return len (_agfa .Kids )==0};func (_eafac *pdfCIDFontType2 )baseFields ()*fontCommon {return &_eafac .fontCommon };func (_cbbeg *PdfReader )buildOutlineTree (_fffe _ae .PdfObject ,_gcdff *PdfOutlineTreeNode ,_cebde *PdfOutlineTreeNode ,_caaeb map[_ae .PdfObject ]struct{})(*PdfOutlineTreeNode ,*PdfOutlineTreeNode ,error ){if _caaeb ==nil {_caaeb =map[_ae .PdfObject ]struct{}{};
};_caaeb [_fffe ]=struct{}{};_cebed ,_gfgdc :=_fffe .(*_ae .PdfIndirectObject );if !_gfgdc {return nil ,nil ,_f .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",_fffe );
};_eadc ,_gaabg :=_cebed .PdfObject .(*_ae .PdfObjectDictionary );if !_gaabg {return nil ,nil ,_db .New ("\u006e\u006f\u0074 a\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u0020\u006f\u0062\u006a\u0065\u0063\u0074");};_ac .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",_eadc ,_cebed ,_cebed );
if _dbgc :=_eadc .Get ("\u0054\u0069\u0074l\u0065");_dbgc !=nil {_bfaff ,_cbcdd :=_cbbeg .newPdfOutlineItemFromIndirectObject (_cebed );if _cbcdd !=nil {return nil ,nil ,_cbcdd ;};_bfaff .Parent =_gcdff ;_bfaff .Prev =_cebde ;_ecbc :=_ae .ResolveReference (_eadc .Get ("\u0046\u0069\u0072s\u0074"));
if _ ,_cccgf :=_caaeb [_ecbc ];_ecbc !=nil &&_ecbc !=_cebed &&!_cccgf {if !_ae .IsNullObject (_ecbc ){_fedbf ,_fedd ,_ecabb :=_cbbeg .buildOutlineTree (_ecbc ,&_bfaff .PdfOutlineTreeNode ,nil ,_caaeb );if _ecabb !=nil {_ac .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",_ecabb );
}else {_bfaff .First =_fedbf ;_bfaff .Last =_fedd ;};};};_afff :=_ae .ResolveReference (_eadc .Get ("\u004e\u0065\u0078\u0074"));if _ ,_bffcc :=_caaeb [_afff ];_afff !=nil &&_afff !=_cebed &&!_bffcc {if !_ae .IsNullObject (_afff ){_ebafg ,_dbda ,_aadce :=_cbbeg .buildOutlineTree (_afff ,_gcdff ,&_bfaff .PdfOutlineTreeNode ,_caaeb );
if _aadce !=nil {_ac .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",_aadce );
}else {_bfaff .Next =_ebafg ;return &_bfaff .PdfOutlineTreeNode ,_dbda ,nil ;};};};return &_bfaff .PdfOutlineTreeNode ,&_bfaff .PdfOutlineTreeNode ,nil ;};_acacf ,_efdg :=_adfccb (_cebed );if _efdg !=nil {return nil ,nil ,_efdg ;};_acacf .Parent =_gcdff ;
if _gcgdf :=_eadc .Get ("\u0046\u0069\u0072s\u0074");_gcgdf !=nil {_gcgdf =_ae .ResolveReference (_gcgdf );if _ ,_gdgdg :=_caaeb [_gcgdf ];_gcgdf !=nil &&_gcgdf !=_cebed &&!_gdgdg {_cagfe :=_ae .TraceToDirectObject (_gcgdf );if _ ,_gfegf :=_cagfe .(*_ae .PdfObjectNull );
!_gfegf &&_cagfe !=nil {_afbbe ,_bdeec ,_bgcgc :=_cbbeg .buildOutlineTree (_gcgdf ,&_acacf .PdfOutlineTreeNode ,nil ,_caaeb );if _bgcgc !=nil {_ac .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",_bgcgc );
}else {_acacf .First =_afbbe ;_acacf .Last =_bdeec ;};};};};return &_acacf .PdfOutlineTreeNode ,&_acacf .PdfOutlineTreeNode ,nil ;};
// NewPdfActionRendition returns a new "rendition" action.
func NewPdfActionRendition ()*PdfActionRendition {_cfb :=NewPdfAction ();_gbe :=&PdfActionRendition {};_gbe .PdfAction =_cfb ;_cfb .SetContext (_gbe );return _gbe ;};
// FieldValueProvider provides field values from a data source such as FDF, JSON or any other.
type FieldValueProvider interface{FieldValues ()(map[string ]_ae .PdfObject ,error );};func (_fbfbf *PdfReader )newPdfFieldFromIndirectObject (_dedc *_ae .PdfIndirectObject ,_eefgb *PdfField )(*PdfField ,error ){if _eabfa ,_bbdc :=_fbfbf ._gdbcb .GetModelFromPrimitive (_dedc ).(*PdfField );
_bbdc {return _eabfa ,nil ;};_dccb ,_ddgdg :=_ae .GetDict (_dedc );if !_ddgdg {return nil ,_f .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");
};_cdcag :=NewPdfField ();_cdcag ._facca =_dedc ;_cdcag ._facca .PdfObject =_dccb ;if _gdded ,_gfaef :=_ae .GetName (_dccb .Get ("\u0046\u0054"));_gfaef {_cdcag .FT =_gdded ;};if _eefgb !=nil {_cdcag .Parent =_eefgb ;};_cdcag .T ,_ =_dccb .Get ("\u0054").(*_ae .PdfObjectString );
_cdcag .TU ,_ =_dccb .Get ("\u0054\u0055").(*_ae .PdfObjectString );_cdcag .TM ,_ =_dccb .Get ("\u0054\u004d").(*_ae .PdfObjectString );_cdcag .Ff ,_ =_dccb .Get ("\u0046\u0066").(*_ae .PdfObjectInteger );_cdcag .V =_dccb .Get ("\u0056");_cdcag .DV =_dccb .Get ("\u0044\u0056");
_cdcag .AA =_dccb .Get ("\u0041\u0041");if DA :=_dccb .Get ("\u0044\u0041");DA !=nil {DA ,_ :=_ae .GetString (DA );_cdcag .VariableText =&VariableText {DA :DA };Q ,_ :=_dccb .Get ("\u0051").(*_ae .PdfObjectInteger );DS ,_ :=_dccb .Get ("\u0044\u0053").(*_ae .PdfObjectString );
RV :=_dccb .Get ("\u0052\u0056");_cdcag .VariableText .Q =Q ;_cdcag .VariableText .DS =DS ;_cdcag .VariableText .RV =RV ;};_cadd :=_cdcag .FT ;if _cadd ==nil &&_eefgb !=nil {_cadd =_eefgb .FT ;};if _cadd !=nil {switch *_cadd {case "\u0054\u0078":_dada ,_bdebb :=_dgdf (_dccb );
if _bdebb !=nil {return nil ,_bdebb ;};_dada .PdfField =_cdcag ;_cdcag ._dadc =_dada ;case "\u0043\u0068":_ddfee ,_egdfc :=_cbfb (_dccb );if _egdfc !=nil {return nil ,_egdfc ;};_ddfee .PdfField =_cdcag ;_cdcag ._dadc =_ddfee ;case "\u0042\u0074\u006e":_ecdgc ,_bffc :=_afbe (_dccb );
if _bffc !=nil {return nil ,_bffc ;};_ecdgc .PdfField =_cdcag ;_cdcag ._dadc =_ecdgc ;case "\u0053\u0069\u0067":_fgaf ,_agecf :=_fbfbf .newPdfFieldSignatureFromDict (_dccb );if _agecf !=nil {return nil ,_agecf ;};_fgaf .PdfField =_cdcag ;_cdcag ._dadc =_fgaf ;
default:_ac .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",*_cdcag .FT );return nil ,_db .New ("\u0075\u006e\u0073\u0075pp\u006f\u0072\u0074\u0065\u0064\u0020\u0066\u0069\u0065\u006c\u0064\u0020\u0074\u0079p\u0065");
};};if _eabd ,_bfbf :=_ae .GetName (_dccb .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065"));_bfbf {if *_eabd =="\u0057\u0069\u0064\u0067\u0065\u0074"{_gadf ,_gdff :=_fbfbf .newPdfAnnotationFromIndirectObject (_dedc );if _gdff !=nil {return nil ,_gdff ;};
_eebbf ,_afbb :=_gadf .GetContext ().(*PdfAnnotationWidget );if !_afbb {return nil ,_db .New ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0077\u0069\u0064\u0067e\u0074 \u0061n\u006e\u006f\u0074\u0061\u0074\u0069\u006fn");};_eebbf ._bab =_cdcag ;_eebbf .Parent =_cdcag ._facca ;
_cdcag .Annotations =append (_cdcag .Annotations ,_eebbf );return _cdcag ,nil ;};};_eebd :=true ;if _egga ,_egcbd :=_ae .GetArray (_dccb .Get ("\u004b\u0069\u0064\u0073"));_egcbd {_fcbcd :=make ([]*_ae .PdfIndirectObject ,0,_egga .Len ());for _ ,_cfcbd :=range _egga .Elements (){_dcbb ,_ebc :=_ae .GetIndirect (_cfcbd );
if !_ebc {_ffbc ,_fgda :=_ae .GetStream (_cfcbd );if _fgda &&_ffbc .PdfObjectDictionary !=nil {_ggcd ,_fcag :=_ae .GetNameVal (_ffbc .Get ("\u0054\u0079\u0070\u0065"));if _fcag &&_ggcd =="\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061"{_ac .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 ,_db .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");};_degf ,_ffccb :=_ae .GetDict (_dcbb );
if !_ffccb {return nil ,ErrTypeCheck ;};if _eebd {_eebd =!_gdbe (_degf );};_fcbcd =append (_fcbcd ,_dcbb );};for _ ,_cgafg :=range _fcbcd {if _eebd {_bdef ,_caga :=_fbfbf .newPdfAnnotationFromIndirectObject (_cgafg );if _caga !=nil {_ac .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",_caga );
return nil ,_caga ;};_ecfe ,_dcbbc :=_bdef ._ggd .(*PdfAnnotationWidget );if !_dcbbc {return nil ,ErrTypeCheck ;};_ecfe ._bab =_cdcag ;_cdcag .Annotations =append (_cdcag .Annotations ,_ecfe );}else {_bgce ,_gefa :=_fbfbf .newPdfFieldFromIndirectObject (_cgafg ,_cdcag );
if _gefa !=nil {_ac .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",_gefa );return nil ,_gefa ;};_cdcag .Kids =append (_cdcag .Kids ,_bgce );
};};};return _cdcag ,nil ;};
// ToPdfObject implements interface PdfModel.
func (_efa *PdfAnnotationCaret )ToPdfObject ()_ae .PdfObject {_efa .PdfAnnotation .ToPdfObject ();_gffb :=_efa ._gcgf ;_eggg :=_gffb .PdfObject .(*_ae .PdfObjectDictionary );_efa .PdfAnnotationMarkup .appendToPdfDictionary (_eggg );_eggg .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ae .MakeName ("\u0043\u0061\u0072e\u0074"));
_eggg .SetIfNotNil ("\u0052\u0044",_efa .RD );_eggg .SetIfNotNil ("\u0053\u0079",_efa .Sy );return _gffb ;};
// UpdatePage updates the `page` in the new revision if it has changed.
func (_cbf *PdfAppender )UpdatePage (page *PdfPage ){_cbf .updateObjectsDeep (page .ToPdfObject (),nil )};
// GetContainingPdfObject gets the primitive used to parse the color space.
func (_cacg *PdfColorspaceICCBased )GetContainingPdfObject ()_ae .PdfObject {return _cacg ._egefc };func (_gdge *PdfReader )loadOutlines ()(*PdfOutlineTreeNode ,error ){if _gdge ._bfcga .GetCrypter ()!=nil &&!_gdge ._bfcga .IsAuthenticated (){return nil ,_f .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");
};_bgddf :=_gdge ._aedf ;_aagbg :=_bgddf .Get ("\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0073");if _aagbg ==nil {return nil ,nil ;};_ac .Log .Trace ("\u002d\u0048\u0061\u0073\u0020\u006f\u0075\u0074\u006c\u0069\u006e\u0065\u0073");_edgfd :=_ae .ResolveReference (_aagbg );
_ac .Log .Trace ("\u004f\u0075t\u006c\u0069\u006ee\u0020\u0072\u006f\u006f\u0074\u003a\u0020\u0025\u0076",_edgfd );if _fbcdc :=_ae .IsNullObject (_edgfd );_fbcdc {_ac .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 ;};_ededd ,_daegga :=_edgfd .(*_ae .PdfIndirectObject );if !_daegga {if _ ,_acdc :=_ae .GetDict (_edgfd );!_acdc {_ac .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 ;};_ac .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");
_ededd =_ae .MakeIndirectObject (_edgfd );};_dabff ,_daegga :=_ededd .PdfObject .(*_ae .PdfObjectDictionary );if !_daegga {return nil ,_db .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");
};_ac .Log .Trace ("O\u0075\u0074\u006c\u0069ne\u0020r\u006f\u006f\u0074\u0020\u0064i\u0063\u0074\u003a\u0020\u0025\u0076",_dabff );_gfffc ,_ ,_cfffa :=_gdge .buildOutlineTree (_ededd ,nil ,nil ,nil );if _cfffa !=nil {return nil ,_cfffa ;};_ac .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",_gfffc );
return _gfffc ,nil ;};func _baee (_gacgc *_ae .PdfObjectDictionary )(*PdfShadingType4 ,error ){_facg :=PdfShadingType4 {};_fddaa :=_gacgc .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065");if _fddaa ==nil {_ac .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 ;};_afbfd ,_cddec :=_fddaa .(*_ae .PdfObjectInteger );if !_cddec {_ac .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",_fddaa );
return nil ,_ae .ErrTypeError ;};_facg .BitsPerCoordinate =_afbfd ;_fddaa =_gacgc .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074");if _fddaa ==nil {_ac .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 ;};_afbfd ,_cddec =_fddaa .(*_ae .PdfObjectInteger );if !_cddec {_ac .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",_fddaa );
return nil ,_ae .ErrTypeError ;};_facg .BitsPerComponent =_afbfd ;_fddaa =_gacgc .Get ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067");if _fddaa ==nil {_ac .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 ;};_afbfd ,_cddec =_fddaa .(*_ae .PdfObjectInteger );if !_cddec {_ac .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",_fddaa );
return nil ,_ae .ErrTypeError ;};_facg .BitsPerComponent =_afbfd ;_fddaa =_gacgc .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");if _fddaa ==nil {_ac .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 ;};_bafba ,_cddec :=_fddaa .(*_ae .PdfObjectArray );if !_cddec {_ac .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",_fddaa );
return nil ,_ae .ErrTypeError ;};_facg .Decode =_bafba ;_fddaa =_gacgc .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");if _fddaa ==nil {_ac .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 ;};_facg .Function =[]PdfFunction {};if _adecg ,_gebgdf :=_fddaa .(*_ae .PdfObjectArray );_gebgdf {for _ ,_egfbb :=range _adecg .Elements (){_bgaea ,_edgda :=_gdbef (_egfbb );if _edgda !=nil {_ac .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",_edgda );
return nil ,_edgda ;};_facg .Function =append (_facg .Function ,_bgaea );};}else {_bbgb ,_cgdd :=_gdbef (_fddaa );if _cgdd !=nil {_ac .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",_cgdd );
return nil ,_cgdd ;};_facg .Function =append (_facg .Function ,_bbgb );};return &_facg ,nil ;};func (_bbb *PdfReader )newPdfAnnotationCaretFromDict (_fea *_ae .PdfObjectDictionary )(*PdfAnnotationCaret ,error ){_faba :=PdfAnnotationCaret {};_dfgf ,_bee :=_bbb .newPdfAnnotationMarkupFromDict (_fea );
if _bee !=nil {return nil ,_bee ;};_faba .PdfAnnotationMarkup =_dfgf ;_faba .RD =_fea .Get ("\u0052\u0044");_faba .Sy =_fea .Get ("\u0053\u0079");return &_faba ,nil ;};func _gfaa (_dfcb *PdfAnnotation )(*XObjectForm ,*PdfRectangle ,error ){_cdcaf ,_ffcbc :=_ae .GetDict (_dfcb .AP );
if !_ffcbc {return nil ,nil ,_db .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 _cdcaf ==nil {return nil ,nil ,nil ;};_cddc ,_ffcbc :=_ae .GetArray (_dfcb .Rect );
if !_ffcbc ||_cddc .Len ()!=4{return nil ,nil ,_db .New ("\u0072\u0065\u0063t\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064");};_beabb ,_cefef :=NewPdfRectangle (*_cddc );if _cefef !=nil {return nil ,nil ,_cefef ;};_dadd :=_ae .TraceToDirectObject (_cdcaf .Get ("\u004e"));
switch _egce :=_dadd .(type ){case *_ae .PdfObjectStream :_gbce :=_egce ;_cbbeeg ,_deca :=NewXObjectFormFromStream (_gbce );return _cbbeeg ,_beabb ,_deca ;case *_ae .PdfObjectDictionary :_fegb :=_egce ;_gcba ,_acbd :=_ae .GetName (_dfcb .AS );if !_acbd {return nil ,nil ,nil ;
};if _fegb .Get (*_gcba )==nil {_ac .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 ;};_dfafb ,_acbd :=_ae .GetStream (_fegb .Get (*_gcba ));if !_acbd {_ac .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",_gcba );
return nil ,nil ,_db .New ("\u0073\u0074\u0072\u0065\u0061\u006d\u0020\u006d\u0069s\u0073\u0069\u006e\u0067");};_gebc ,_dbde :=NewXObjectFormFromStream (_dfafb );return _gebc ,_beabb ,_dbde ;};_ac .Log .Debug ("\u0049\u006e\u0076\u0061li\u0064\u0020\u0074\u0079\u0070\u0065\u0020\u0066\u006f\u0072\u0020\u004e\u003a\u0020%\u0054",_dadd );
return nil ,nil ,_db .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};
// ToPdfObject returns a stream object.
func (_fcaaca *XObjectForm )ToPdfObject ()_ae .PdfObject {_abdc :=_fcaaca ._fccdf ;_fcbdd :=_abdc .PdfObjectDictionary ;if _fcaaca .Filter !=nil {_fcbdd =_fcaaca .Filter .MakeStreamDict ();_abdc .PdfObjectDictionary =_fcbdd ;};_fcbdd .Set ("\u0054\u0079\u0070\u0065",_ae .MakeName ("\u0058O\u0062\u006a\u0065\u0063\u0074"));
_fcbdd .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ae .MakeName ("\u0046\u006f\u0072\u006d"));_fcbdd .SetIfNotNil ("\u0046\u006f\u0072\u006d\u0054\u0079\u0070\u0065",_fcaaca .FormType );_fcbdd .SetIfNotNil ("\u0042\u0042\u006f\u0078",_fcaaca .BBox );
_fcbdd .SetIfNotNil ("\u004d\u0061\u0074\u0072\u0069\u0078",_fcaaca .Matrix );if _fcaaca .Resources !=nil {_fcbdd .SetIfNotNil ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s",_fcaaca .Resources .ToPdfObject ());};_fcbdd .SetIfNotNil ("\u0047\u0072\u006fu\u0070",_fcaaca .Group );
_fcbdd .SetIfNotNil ("\u0052\u0065\u0066",_fcaaca .Ref );_fcbdd .SetIfNotNil ("\u004d\u0065\u0074\u0061\u0044\u0061\u0074\u0061",_fcaaca .MetaData );_fcbdd .SetIfNotNil ("\u0050i\u0065\u0063\u0065\u0049\u006e\u0066o",_fcaaca .PieceInfo );_fcbdd .SetIfNotNil ("\u004c\u0061\u0073t\u004d\u006f\u0064\u0069\u0066\u0069\u0065\u0064",_fcaaca .LastModified );
_fcbdd .SetIfNotNil ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074",_fcaaca .StructParent );_fcbdd .SetIfNotNil ("\u0053\u0074\u0072\u0075\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074\u0073",_fcaaca .StructParents );_fcbdd .SetIfNotNil ("\u004f\u0050\u0049",_fcaaca .OPI );
_fcbdd .SetIfNotNil ("\u004f\u0043",_fcaaca .OC );_fcbdd .SetIfNotNil ("\u004e\u0061\u006d\u0065",_fcaaca .Name );_fcbdd .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_ae .MakeInteger (int64 (len (_fcaaca .Stream ))));_abdc .Stream =_fcaaca .Stream ;return _abdc ;
};
// NewPdfColorspaceICCBased returns a new ICCBased colorspace object.
func NewPdfColorspaceICCBased (N int )(*PdfColorspaceICCBased ,error ){_cagcb :=&PdfColorspaceICCBased {};if N !=1&&N !=3&&N !=4{return nil ,_f .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u004e\u0020\u0028\u0031/\u0033\u002f\u0034\u0029");
};_cagcb .N =N ;return _cagcb ,nil ;};
// StdFontName represents name of a standard font.
type StdFontName =_cb .StdFontName ;
// IsShading specifies if the pattern is a shading pattern.
func (_cbcdf *PdfPattern )IsShading ()bool {return _cbcdf .PatternType ==2};
// Decrypt decrypts the PDF file with a specified password. Also tries to
// decrypt with an empty password. Returns true if successful,
// false otherwise.
func (_fbgaf *PdfReader )Decrypt (password []byte )(bool ,error ){_gaga ,_eecec :=_fbgaf ._bfcga .Decrypt (password );if _eecec !=nil {return false ,_eecec ;};if !_gaga {return false ,nil ;};_eecec =_fbgaf .loadStructure ();if _eecec !=nil {_ac .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",_eecec );
return false ,_eecec ;};return true ,nil ;};
// SetFillImage attach a model.Image to push button.
func (_acagf *PdfFieldButton )SetFillImage (image *Image ){if _acagf .IsPush (){_acagf ._bbcf =image ;};};func _dgdf (_cbbad *_ae .PdfObjectDictionary )(*PdfFieldText ,error ){_aebb :=&PdfFieldText {};_aebb .DA ,_ =_ae .GetString (_cbbad .Get ("\u0044\u0041"));
_aebb .Q ,_ =_ae .GetInt (_cbbad .Get ("\u0051"));_aebb .DS ,_ =_ae .GetString (_cbbad .Get ("\u0044\u0053"));_aebb .RV =_cbbad .Get ("\u0052\u0056");_aebb .MaxLen ,_ =_ae .GetInt (_cbbad .Get ("\u004d\u0061\u0078\u004c\u0065\u006e"));return _aebb ,nil ;
};
// GenerateXObjectName generates an unused XObject name that can be used for
// adding new XObjects. Uses format XObj1, XObj2, ...
func (_gggea *PdfPageResources )GenerateXObjectName ()_ae .PdfObjectName {_adegc :=1;for {_bgfec :=_ae .MakeName (_f .Sprintf ("\u0058\u004f\u0062\u006a\u0025\u0064",_adegc ));if !_gggea .HasXObjectByName (*_bgfec ){return *_bgfec ;};_adegc ++;};};
// ToPdfObject returns the PDF representation of the function.
func (_bbbcg *PdfFunctionType4 )ToPdfObject ()_ae .PdfObject {_eabag :=_bbbcg ._cbec ;if _eabag ==nil {_bbbcg ._cbec =&_ae .PdfObjectStream {};_eabag =_bbbcg ._cbec ;};_bcagg :=_ae .MakeDict ();_bcagg .Set ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065",_ae .MakeInteger (4));
_ggceg :=&_ae .PdfObjectArray {};for _ ,_bbfdc :=range _bbbcg .Domain {_ggceg .Append (_ae .MakeFloat (_bbfdc ));};_bcagg .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_ggceg );_gedaa :=&_ae .PdfObjectArray {};for _ ,_aebab :=range _bbbcg .Range {_gedaa .Append (_ae .MakeFloat (_aebab ));
};_bcagg .Set ("\u0052\u0061\u006eg\u0065",_gedaa );if _bbbcg ._eabdc ==nil &&_bbbcg .Program !=nil {_bbbcg ._eabdc =[]byte (_bbbcg .Program .String ());};_bcagg .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_ae .MakeInteger (int64 (len (_bbbcg ._eabdc ))));
_eabag .Stream =_bbbcg ._eabdc ;_eabag .PdfObjectDictionary =_bcagg ;return _eabag ;};
// ColorToRGB converts a CalRGB color to an RGB color.
func (_fbab *PdfColorspaceCalRGB )ColorToRGB (color PdfColor )(PdfColor ,error ){_cabe ,_cdff :=color .(*PdfColorCalRGB );if !_cdff {_ac .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 ,_db .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_cebeg :=_cabe .A ();_dabd :=_cabe .B ();_eadb :=_cabe .C ();X :=_fbab .Matrix [0]*_ag .Pow (_cebeg ,_fbab .Gamma [0])+_fbab .Matrix [3]*_ag .Pow (_dabd ,_fbab .Gamma [1])+_fbab .Matrix [6]*_ag .Pow (_eadb ,_fbab .Gamma [2]);
Y :=_fbab .Matrix [1]*_ag .Pow (_cebeg ,_fbab .Gamma [0])+_fbab .Matrix [4]*_ag .Pow (_dabd ,_fbab .Gamma [1])+_fbab .Matrix [7]*_ag .Pow (_eadb ,_fbab .Gamma [2]);Z :=_fbab .Matrix [2]*_ag .Pow (_cebeg ,_fbab .Gamma [0])+_fbab .Matrix [5]*_ag .Pow (_dabd ,_fbab .Gamma [1])+_fbab .Matrix [8]*_ag .Pow (_eadb ,_fbab .Gamma [2]);
_dcb :=3.240479*X +-1.537150*Y +-0.498535*Z ;_edfe :=-0.969256*X +1.875992*Y +0.041556*Z ;_edge :=0.055648*X +-0.204043*Y +1.057311*Z ;_dcb =_ag .Min (_ag .Max (_dcb ,0),1.0);_edfe =_ag .Min (_ag .Max (_edfe ,0),1.0);_edge =_ag .Min (_ag .Max (_edge ,0),1.0);
return NewPdfColorDeviceRGB (_dcb ,_edfe ,_edge ),nil ;};
// ToPdfOutlineItem returns a low level PdfOutlineItem object,
// based on the current instance.
func (_ddfbd *OutlineItem )ToPdfOutlineItem ()(*PdfOutlineItem ,int64 ){_gbdg :=NewPdfOutlineItem ();_gbdg .Title =_ae .MakeEncodedString (_ddfbd .Title ,true );_gbdg .Dest =_ddfbd .Dest .ToPdfObject ();var _fbgac []*PdfOutlineItem ;var _dfeee int64 ;var _fege *PdfOutlineItem ;
for _ ,_cgegf :=range _ddfbd .Entries {_dbbge ,_fbbbab :=_cgegf .ToPdfOutlineItem ();_dbbge .Parent =&_gbdg .PdfOutlineTreeNode ;if _fege !=nil {_fege .Next =&_dbbge .PdfOutlineTreeNode ;_dbbge .Prev =&_fege .PdfOutlineTreeNode ;};_fbgac =append (_fbgac ,_dbbge );
_dfeee +=_fbbbab ;_fege =_dbbge ;};_edff :=len (_fbgac );_dfeee +=int64 (_edff );if _edff > 0{_gbdg .First =&_fbgac [0].PdfOutlineTreeNode ;_gbdg .Last =&_fbgac [_edff -1].PdfOutlineTreeNode ;_gbdg .Count =&_dfeee ;};return _gbdg ,_dfeee ;};
// ToInteger convert to an integer format.
func (_bfcf *PdfColorCalGray )ToInteger (bits int )uint32 {_gffab :=_ag .Pow (2,float64 (bits ))-1;return uint32 (_gffab *_bfcf .Val ());};
// XObjectType represents the type of an XObject.
type XObjectType int ;
// ToPdfObject implements interface PdfModel.
func (_bgb *PdfAnnotationProjection )ToPdfObject ()_ae .PdfObject {_bgb .PdfAnnotation .ToPdfObject ();_dag :=_bgb ._gcgf ;_dcae :=_dag .PdfObject .(*_ae .PdfObjectDictionary );_bgb .PdfAnnotationMarkup .appendToPdfDictionary (_dcae );return _dag ;};
// GetFontDescriptor returns the font descriptor for `font`.
func (_aageb PdfFont )GetFontDescriptor ()(*PdfFontDescriptor ,error ){return _aageb ._dabg .getFontDescriptor (),nil ;};
// ToPdfObject implements interface PdfModel.
func (_egf *PdfActionThread )ToPdfObject ()_ae .PdfObject {_egf .PdfAction .ToPdfObject ();_add :=_egf ._cbe ;_bce :=_add .PdfObject .(*_ae .PdfObjectDictionary );_bce .SetIfNotNil ("\u0053",_ae .MakeName (string (ActionTypeThread )));if _egf .F !=nil {_bce .Set ("\u0046",_egf .F .ToPdfObject ());
};_bce .SetIfNotNil ("\u0044",_egf .D );_bce .SetIfNotNil ("\u0042",_egf .B );return _add ;};func (_ceafd SignatureValidationResult )String ()string {var _bcaabc _aa .Buffer ;_bcaabc .WriteString (_f .Sprintf ("\u004ea\u006d\u0065\u003a\u0020\u0025\u0073\n",_ceafd .Name ));
if _ceafd .Date ._edbbd > 0{_bcaabc .WriteString (_f .Sprintf ("\u0044a\u0074\u0065\u003a\u0020\u0025\u0073\n",_ceafd .Date .ToGoTime ().String ()));}else {_bcaabc .WriteString ("\u0044\u0061\u0074\u0065 n\u006f\u0074\u0020\u0073\u0070\u0065\u0063\u0069\u0066\u0069\u0065\u0064\u000a");
};if len (_ceafd .Reason )> 0{_bcaabc .WriteString (_f .Sprintf ("R\u0065\u0061\u0073\u006f\u006e\u003a\u0020\u0025\u0073\u000a",_ceafd .Reason ));}else {_bcaabc .WriteString ("N\u006f \u0072\u0065\u0061\u0073\u006f\u006e\u0020\u0073p\u0065\u0063\u0069\u0066ie\u0064\u000a");
};if len (_ceafd .Location )> 0{_bcaabc .WriteString (_f .Sprintf ("\u004c\u006f\u0063\u0061\u0074\u0069\u006f\u006e\u003a\u0020\u0025\u0073\u000a",_ceafd .Location ));}else {_bcaabc .WriteString ("\u004c\u006f\u0063at\u0069\u006f\u006e\u0020\u006e\u006f\u0074\u0020\u0073\u0070\u0065\u0063\u0069\u0066\u0069\u0065\u0064\u000a");
};if len (_ceafd .ContactInfo )> 0{_bcaabc .WriteString (_f .Sprintf ("\u0043\u006f\u006e\u0074\u0061\u0063\u0074\u0020\u0049\u006e\u0066\u006f:\u0020\u0025\u0073\u000a",_ceafd .ContactInfo ));}else {_bcaabc .WriteString ("C\u006f\u006e\u0074\u0061\u0063\u0074 \u0069\u006e\u0066\u006f\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063i\u0066i\u0065\u0064\u000a");
};_bcaabc .WriteString (_f .Sprintf ("F\u0069\u0065\u006c\u0064\u0073\u003a\u0020\u0025\u0064\u000a",len (_ceafd .Fields )));if _ceafd .IsSigned {_bcaabc .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 {_bcaabc .WriteString ("\u0053\u0069\u0067\u006eed\u003a\u0020\u004e\u006f\u0074\u0020\u0073\u0069\u0067\u006e\u0065\u0064\u000a");};if _ceafd .IsVerified {_bcaabc .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 {_bcaabc .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 _ceafd .IsTrusted {_bcaabc .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 {_bcaabc .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 !_ceafd .GeneralizedTime .IsZero (){_bcaabc .WriteString (_f .Sprintf ("G\u0065n\u0065\u0072\u0061\u006c\u0069\u007a\u0065\u0064T\u0069\u006d\u0065\u003a %\u0073\u000a",_ceafd .GeneralizedTime .String ()));
};if _ceafd .DiffResults !=nil {_bcaabc .WriteString (_f .Sprintf ("\u0064\u0069\u0066\u0066 i\u0073\u0020\u0070\u0065\u0072\u006d\u0069\u0074\u0074\u0065\u0064\u003a\u0020\u0025v\u000a",_ceafd .DiffResults .IsPermitted ()));if len (_ceafd .DiffResults .Warnings )> 0{_bcaabc .WriteString ("\u004d\u0044\u0050\u0020\u0077\u0061\u0072\u006e\u0069n\u0067\u0073\u003a\u000a");
for _ ,_bcfad :=range _ceafd .DiffResults .Warnings {_bcaabc .WriteString (_f .Sprintf ("\u0009\u0025\u0073\u000a",_bcfad ));};};if len (_ceafd .DiffResults .Errors )> 0{_bcaabc .WriteString ("\u004d\u0044\u0050 \u0065\u0072\u0072\u006f\u0072\u0073\u003a\u000a");
for _ ,_eaaa :=range _ceafd .DiffResults .Errors {_bcaabc .WriteString (_f .Sprintf ("\u0009\u0025\u0073\u000a",_eaaa ));};};};return _bcaabc .String ();};
// 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 (_fdfcb *PdfPage )AppendContentBytes (cs []byte ,wrapContents bool )error {_ddfbb :=_fdfcb .GetContentStreamObjs ();wrapContents =wrapContents &&len (_ddfbb )> 0;_ddea :=_ae .NewFlateEncoder ();_gcbag :=_ae .MakeArray ();if wrapContents {_dedg ,_caec :=_ae .MakeStream ([]byte ("\u0071\u000a"),_ddea );
if _caec !=nil {return _caec ;};_gcbag .Append (_dedg );};_gcbag .Append (_ddfbb ...);if wrapContents {_decfc ,_dffgg :=_ae .MakeStream ([]byte ("\u000a\u0051\u000a"),_ddea );if _dffgg !=nil {return _dffgg ;};_gcbag .Append (_decfc );};_ccaec ,_ggbg :=_ae .MakeStream (cs ,_ddea );
if _ggbg !=nil {return _ggbg ;};_gcbag .Append (_ccaec );_fdfcb .Contents =_gcbag ;return nil ;};
// 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 ;_bbba []byte ;_fdae []float64 ;};
// 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 []*_ae .PdfObjectStream ;OCSP []*_ae .PdfObjectStream ;CRL []*_ae .PdfObjectStream ;TU *_ae .PdfObjectString ;TS *_ae .PdfObjectString ;};
// PdfActionJavaScript represents a javaScript action.
type PdfActionJavaScript struct{*PdfAction ;JS _ae .PdfObject ;};
// 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{_geecc *_ae .PdfObjectDictionary ;Type *_ae .PdfObjectName ;TransformMethod *_ae .PdfObjectName ;TransformParams _ae .PdfObject ;Data _ae .PdfObject ;DigestMethod *_ae .PdfObjectName ;};func (_aage *PdfReader )newPdfAnnotationStampFromDict (_fggb *_ae .PdfObjectDictionary )(*PdfAnnotationStamp ,error ){_fcg :=PdfAnnotationStamp {};
_aded ,_cff :=_aage .newPdfAnnotationMarkupFromDict (_fggb );if _cff !=nil {return nil ,_cff ;};_fcg .PdfAnnotationMarkup =_aded ;_fcg .Name =_fggb .Get ("\u004e\u0061\u006d\u0065");return &_fcg ,nil ;};
// NewPdfAnnotationFreeText returns a new free text annotation.
func NewPdfAnnotationFreeText ()*PdfAnnotationFreeText {_becg :=NewPdfAnnotation ();_fbf :=&PdfAnnotationFreeText {};_fbf .PdfAnnotation =_becg ;_fbf .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_becg .SetContext (_fbf );return _fbf ;};func (_defg *PdfReader )newPdfSignatureReferenceFromDict (_ddfdb *_ae .PdfObjectDictionary )(*PdfSignatureReference ,error ){if _ggec ,_bebfd :=_defg ._gdbcb .GetModelFromPrimitive (_ddfdb ).(*PdfSignatureReference );
_bebfd {return _ggec ,nil ;};_eaefd :=&PdfSignatureReference {_geecc :_ddfdb ,Data :_ddfdb .Get ("\u0044\u0061\u0074\u0061")};var _dbebe bool ;_eaefd .Type ,_ =_ae .GetName (_ddfdb .Get ("\u0054\u0079\u0070\u0065"));_eaefd .TransformMethod ,_dbebe =_ae .GetName (_ddfdb .Get ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u004d\u0065\u0074\u0068\u006f\u0064"));
if !_dbebe {_ac .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 ;};_eaefd .TransformParams ,_ =_ae .GetDict (_ddfdb .Get ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u0050\u0061\u0072\u0061\u006d\u0073"));_eaefd .DigestMethod ,_ =_ae .GetName (_ddfdb .Get ("\u0044\u0069\u0067e\u0073\u0074\u004d\u0065\u0074\u0068\u006f\u0064"));
return _eaefd ,nil ;};func _dbcg (_abfb *_ae .PdfObjectDictionary )(*PdfShadingType5 ,error ){_fbcaa :=PdfShadingType5 {};_dcefa :=_abfb .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065");if _dcefa ==nil {_ac .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 ;};_aegd ,_gafda :=_dcefa .(*_ae .PdfObjectInteger );if !_gafda {_ac .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",_dcefa );
return nil ,_ae .ErrTypeError ;};_fbcaa .BitsPerCoordinate =_aegd ;_dcefa =_abfb .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074");if _dcefa ==nil {_ac .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 ;};_aegd ,_gafda =_dcefa .(*_ae .PdfObjectInteger );if !_gafda {_ac .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",_dcefa );
return nil ,_ae .ErrTypeError ;};_fbcaa .BitsPerComponent =_aegd ;_dcefa =_abfb .Get ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073\u0050e\u0072\u0052\u006f\u0077");if _dcefa ==nil {_ac .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 ;};_aegd ,_gafda =_dcefa .(*_ae .PdfObjectInteger );if !_gafda {_ac .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",_dcefa );
return nil ,_ae .ErrTypeError ;};_fbcaa .VerticesPerRow =_aegd ;_dcefa =_abfb .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");if _dcefa ==nil {_ac .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 ;};_edbc ,_gafda :=_dcefa .(*_ae .PdfObjectArray );if !_gafda {_ac .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",_dcefa );
return nil ,_ae .ErrTypeError ;};_fbcaa .Decode =_edbc ;if _acgec :=_abfb .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");_acgec !=nil {_fbcaa .Function =[]PdfFunction {};if _cdac ,_agbg :=_acgec .(*_ae .PdfObjectArray );_agbg {for _ ,_ffefc :=range _cdac .Elements (){_bcdbe ,_cgeac :=_gdbef (_ffefc );
if _cgeac !=nil {_ac .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",_cgeac );return nil ,_cgeac ;};_fbcaa .Function =append (_fbcaa .Function ,_bcdbe );
};}else {_ebedc ,_cdcgf :=_gdbef (_acgec );if _cdcgf !=nil {_ac .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",_cdcgf );return nil ,_cdcgf ;
};_fbcaa .Function =append (_fbcaa .Function ,_ebedc );};};return &_fbcaa ,nil ;};func _eaebe (_gfbe *XObjectForm )(*PdfRectangle ,error ){if _gffae ,_ggce :=_gfbe .BBox .(*_ae .PdfObjectArray );_ggce {_ebbdd ,_dabfe :=NewPdfRectangle (*_gffae );if _dabfe !=nil {return nil ,_dabfe ;
};if _dfgg ,_edaga :=_gfbe .Matrix .(*_ae .PdfObjectArray );_edaga {_gbfb ,_dbbe :=_dfgg .ToFloat64Array ();if _dbbe !=nil {return nil ,_dbbe ;};_eeade :=_ecc .IdentityMatrix ();if len (_gbfb )==6{_eeade =_ecc .NewMatrix (_gbfb [0],_gbfb [1],_gbfb [2],_gbfb [3],_gbfb [4],_gbfb [5]);
};_ebbdd .Transform (_eeade );return _ebbdd ,nil ;};};return nil ,_db .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");};
// G returns the value of the green component of the color.
func (_gfgd *PdfColorDeviceRGB )G ()float64 {return _gfgd [1]};
// ButtonType represents the subtype of a button field, can be one of:
// - Checkbox (ButtonTypeCheckbox)
// - PushButton (ButtonTypePushButton)
// - RadioButton (ButtonTypeRadioButton)
type ButtonType int ;func (_dceeg *pdfFontSimple )addEncoding ()error {var (_fgedf string ;_cdegg map[_bgg .CharCode ]_bgg .GlyphName ;_ddfgd _bgg .SimpleEncoder ;);if _dceeg .Encoder ()!=nil {_cgeg ,_eafgaf :=_dceeg .Encoder ().(_bgg .SimpleEncoder );
if _eafgaf &&_cgeg !=nil {_fgedf =_cgeg .BaseName ();};};if _dceeg .Encoding !=nil {_ccgd ,_ffaac ,_gbcec :=_dceeg .getFontEncoding ();if _gbcec !=nil {_ac .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",_dceeg ._cedb ,_dceeg ._adce ,_dceeg .Encoding ,_dceeg .Encoding ,_gbcec );
return _gbcec ;};if _ccgd !=""{_fgedf =_ccgd ;};_cdegg =_ffaac ;_ddfgd ,_gbcec =_bgg .NewSimpleTextEncoder (_fgedf ,_cdegg );if _gbcec !=nil {return _gbcec ;};};if _ddfgd ==nil {_baag :=_dceeg ._cafdb ;if _baag !=nil {switch _dceeg ._adce {case "\u0054\u0079\u0070e\u0031":if _baag .fontFile !=nil &&_baag .fontFile ._dbfd !=nil {_ac .Log .Debug ("\u0055\u0073\u0069\u006e\u0067\u0020\u0066\u006f\u006et\u0046\u0069\u006c\u0065");
_ddfgd =_baag .fontFile ._dbfd ;};case "\u0054\u0072\u0075\u0065\u0054\u0079\u0070\u0065":if _baag ._aebfg !=nil {_ac .Log .Debug ("\u0055s\u0069n\u0067\u0020\u0046\u006f\u006e\u0074\u0046\u0069\u006c\u0065\u0032");_dbgff ,_facb :=_baag ._aebfg .MakeEncoder ();
if _facb ==nil {_ddfgd =_dbgff ;};};};};};if _ddfgd !=nil {if _cdegg !=nil {_ac .Log .Trace ("\u0064\u0069\u0066fe\u0072\u0065\u006e\u0063\u0065\u0073\u003d\u0025\u002b\u0076\u0020\u0066\u006f\u006e\u0074\u003d\u0025\u0073",_cdegg ,_dceeg .baseFields ());
_ddfgd =_bgg .ApplyDifferences (_ddfgd ,_cdegg );};_dceeg .SetEncoder (_ddfgd );};return nil ;};func (_aabg *Image )samplesAddPadding (_dcacd []uint32 )[]uint32 {_cbeaa :=_afc .BytesPerLine (int (_aabg .Width ),int (_aabg .BitsPerComponent ),_aabg .ColorComponents )*(8/int (_aabg .BitsPerComponent ));
_cadb :=_cbeaa *int (_aabg .Height );if len (_dcacd )==_cadb {return _dcacd ;};_ddbfg :=make ([]uint32 ,_cadb );_defce :=int (_aabg .Width )*_aabg .ColorComponents ;for _cfge :=0;_cfge < int (_aabg .Height );_cfge ++{_eaac :=_cfge *int (_aabg .Width );
_bgcbc :=_cfge *_cbeaa ;for _ceac :=0;_ceac < _defce ;_ceac ++{_ddbfg [_bgcbc +_ceac ]=_dcacd [_eaac +_ceac ];};};return _ddbfg ;};func _eaage (_ffbcg *_ae .PdfObjectStream )(*PdfFunctionType0 ,error ){_ecfg :=&PdfFunctionType0 {};_ecfg ._aegae =_ffbcg ;
_adfd :=_ffbcg .PdfObjectDictionary ;_ecca ,_dbfa :=_ae .TraceToDirectObject (_adfd .Get ("\u0044\u006f\u006d\u0061\u0069\u006e")).(*_ae .PdfObjectArray );if !_dbfa {_ac .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");
return nil ,_db .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 _ecca .Len ()< 0||_ecca .Len ()%2!=0{_ac .Log .Error ("\u0044\u006f\u006d\u0061\u0069\u006e\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");
return nil ,_db .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0064\u006f\u006da\u0069\u006e\u0020\u0072an\u0067\u0065");};_ecfg .NumInputs =_ecca .Len ()/2;_aaegaf ,_dagdb :=_ecca .ToFloat64Array ();if _dagdb !=nil {return nil ,_dagdb ;};_ecfg .Domain =_aaegaf ;
_ecca ,_dbfa =_ae .TraceToDirectObject (_adfd .Get ("\u0052\u0061\u006eg\u0065")).(*_ae .PdfObjectArray );if !_dbfa {_ac .Log .Error ("\u0052\u0061\u006e\u0067e \u006e\u006f\u0074\u0020\u0073\u0070\u0065\u0063\u0069\u0066\u0069\u0065\u0064");return nil ,_db .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 _ecca .Len ()< 0||_ecca .Len ()%2!=0{return nil ,_db .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0061\u006e\u0067\u0065");};_ecfg .NumOutputs =_ecca .Len ()/2;_aegeb ,_dagdb :=_ecca .ToFloat64Array ();if _dagdb !=nil {return nil ,_dagdb ;
};_ecfg .Range =_aegeb ;_ecca ,_dbfa =_ae .TraceToDirectObject (_adfd .Get ("\u0053\u0069\u007a\u0065")).(*_ae .PdfObjectArray );if !_dbfa {_ac .Log .Error ("\u0053i\u007ae\u0020\u006e\u006f\u0074\u0020s\u0070\u0065c\u0069\u0066\u0069\u0065\u0064");return nil ,_db .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");
};_fafdg ,_dagdb :=_ecca .ToIntegerArray ();if _dagdb !=nil {return nil ,_dagdb ;};if len (_fafdg )!=_ecfg .NumInputs {_ac .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 ,_db .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_ecfg .Size =_fafdg ;_dedd ,_dbfa :=_ae .TraceToDirectObject (_adfd .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0053\u0061\u006d\u0070\u006c\u0065")).(*_ae .PdfObjectInteger );
if !_dbfa {_ac .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 ,_db .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 *_dedd !=1&&*_dedd !=2&&*_dedd !=4&&*_dedd !=8&&*_dedd !=12&&*_dedd !=16&&*_dedd !=24&&*_dedd !=32{_ac .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",*_dedd );
return nil ,_db .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_ecfg .BitsPerSample =int (*_dedd );_ecfg .Order =1;_aabbg ,_dbfa :=_ae .TraceToDirectObject (_adfd .Get ("\u004f\u0072\u0064e\u0072")).(*_ae .PdfObjectInteger );if _dbfa {if *_aabbg !=1&&*_aabbg !=3{_ac .Log .Error ("\u0049n\u0076a\u006c\u0069\u0064\u0020\u006fr\u0064\u0065r\u0020\u0028\u0025\u0064\u0029",*_aabbg );
return nil ,_db .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_ecfg .Order =int (*_aabbg );};_ecca ,_dbfa =_ae .TraceToDirectObject (_adfd .Get ("\u0045\u006e\u0063\u006f\u0064\u0065")).(*_ae .PdfObjectArray );if _dbfa {_daeea ,_gcceb :=_ecca .ToFloat64Array ();
if _gcceb !=nil {return nil ,_gcceb ;};_ecfg .Encode =_daeea ;};_ecca ,_dbfa =_ae .TraceToDirectObject (_adfd .Get ("\u0044\u0065\u0063\u006f\u0064\u0065")).(*_ae .PdfObjectArray );if _dbfa {_efgcc ,_dgfgb :=_ecca .ToFloat64Array ();if _dgfgb !=nil {return nil ,_dgfgb ;
};_ecfg .Decode =_efgcc ;};_aeecc ,_dagdb :=_ae .DecodeStream (_ffbcg );if _dagdb !=nil {return nil ,_dagdb ;};_ecfg ._ecefb =_aeecc ;return _ecfg ,nil ;};
// 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 (_ebfge *PdfFont )StringToCharcodeBytes (str string )([]byte ,int ){return _ebfge .RunesToCharcodeBytes ([]rune (str ));};
// Items returns all children outline items.
func (_afeb *OutlineItem )Items ()[]*OutlineItem {return _afeb .Entries };
// PdfAnnotationText represents Text annotations.
// (Section 12.5.6.4 p. 402).
type PdfAnnotationText struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Open _ae .PdfObject ;Name _ae .PdfObject ;State _ae .PdfObject ;StateModel _ae .PdfObject ;};
// 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 ;};
// L returns the value of the L component of the color.
func (_eade *PdfColorLab )L ()float64 {return _eade [0]};func (_bgf *PdfReader )newPdfActionGotoEFromDict (_fafa *_ae .PdfObjectDictionary )(*PdfActionGoToE ,error ){_dae ,_ceba :=_ceb (_fafa .Get ("\u0046"));if _ceba !=nil {return nil ,_ceba ;};return &PdfActionGoToE {D :_fafa .Get ("\u0044"),NewWindow :_fafa .Get ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw"),T :_fafa .Get ("\u0054"),F :_dae },nil ;
};
// PdfAnnotation represents an annotation in PDF (section 12.5 p. 389).
type PdfAnnotation struct{_ggd PdfModel ;Rect _ae .PdfObject ;Contents _ae .PdfObject ;P _ae .PdfObject ;NM _ae .PdfObject ;M _ae .PdfObject ;F _ae .PdfObject ;AP _ae .PdfObject ;AS _ae .PdfObject ;Border _ae .PdfObject ;C _ae .PdfObject ;StructParent _ae .PdfObject ;
OC _ae .PdfObject ;_gcgf *_ae .PdfIndirectObject ;};
// AddWatermarkImage adds a watermark to the page.
func (_bcfba *PdfPage )AddWatermarkImage (ximg *XObjectImage ,opt WatermarkImageOptions )error {_cceag ,_bgcbg :=_bcfba .GetMediaBox ();if _bgcbg !=nil {return _bgcbg ;};_fcbeb :=_cceag .Urx -_cceag .Llx ;_fdcaa :=_cceag .Ury -_cceag .Lly ;_ggfdd :=float64 (*ximg .Width );
_beecg :=(_fcbeb -_ggfdd )/2;if opt .FitToWidth {_ggfdd =_fcbeb ;_beecg =0;};_ebdaa :=_fdcaa ;_agead :=float64 (0);if opt .PreserveAspectRatio {_ebdaa =_ggfdd *float64 (*ximg .Height )/float64 (*ximg .Width );_agead =(_fdcaa -_ebdaa )/2;};if _bcfba .Resources ==nil {_bcfba .Resources =NewPdfPageResources ();
};_faeac :=0;_efeb :=_ae .PdfObjectName (_f .Sprintf ("\u0049\u006d\u0077%\u0064",_faeac ));for _bcfba .Resources .HasXObjectByName (_efeb ){_faeac ++;_efeb =_ae .PdfObjectName (_f .Sprintf ("\u0049\u006d\u0077%\u0064",_faeac ));};_bgcbg =_bcfba .AddImageResource (_efeb ,ximg );
if _bgcbg !=nil {return _bgcbg ;};_faeac =0;_cafdg :=_ae .PdfObjectName (_f .Sprintf ("\u0047\u0053\u0025\u0064",_faeac ));for _bcfba .HasExtGState (_cafdg ){_faeac ++;_cafdg =_ae .PdfObjectName (_f .Sprintf ("\u0047\u0053\u0025\u0064",_faeac ));};_ccada :=_ae .MakeDict ();
_ccada .Set ("\u0042\u004d",_ae .MakeName ("\u004e\u006f\u0072\u006d\u0061\u006c"));_ccada .Set ("\u0043\u0041",_ae .MakeFloat (opt .Alpha ));_ccada .Set ("\u0063\u0061",_ae .MakeFloat (opt .Alpha ));_bgcbg =_bcfba .AddExtGState (_cafdg ,_ccada );if _bgcbg !=nil {return _bgcbg ;
};_bgebd :=_f .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",_cafdg ,_ggfdd ,_ebdaa ,_beecg ,_agead ,_efeb );
_bcfba .AddContentStreamByString (_bgebd );return nil ;};func (_dbbfea *PdfWriter )setWriter (_efgdg _gdc .Writer ){_dbbfea ._eeegee =_dbbfea ._addeb ;_dbbfea ._dfgcc =_c .NewWriter (_efgdg );};
// ToPdfObject implements interface PdfModel.
func (_afec *PdfAnnotationPopup )ToPdfObject ()_ae .PdfObject {_afec .PdfAnnotation .ToPdfObject ();_cgba :=_afec ._gcgf ;_fdac :=_cgba .PdfObject .(*_ae .PdfObjectDictionary );_fdac .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ae .MakeName ("\u0050\u006f\u0070u\u0070"));
_fdac .SetIfNotNil ("\u0050\u0061\u0072\u0065\u006e\u0074",_afec .Parent );_fdac .SetIfNotNil ("\u004f\u0070\u0065\u006e",_afec .Open );return _cgba ;};
// PdfActionSetOCGState represents a SetOCGState action.
type PdfActionSetOCGState struct{*PdfAction ;State _ae .PdfObject ;PreserveRB _ae .PdfObject ;};func (_fbg *PdfReader )newPdfAnnotationWidgetFromDict (_cffb *_ae .PdfObjectDictionary )(*PdfAnnotationWidget ,error ){_gdab :=PdfAnnotationWidget {};_gdab .H =_cffb .Get ("\u0048");
_gdab .MK =_cffb .Get ("\u004d\u004b");_gdab .A =_cffb .Get ("\u0041");_gdab .AA =_cffb .Get ("\u0041\u0041");_gdab .BS =_cffb .Get ("\u0042\u0053");_gdab .Parent =_cffb .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");return &_gdab ,nil ;};
// 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 (_gdegd *PdfPageResources )GetFontByName (keyName _ae .PdfObjectName )(_ae .PdfObject ,bool ){if _gdegd .Font ==nil {return nil ,false ;};_dggfa ,_gdfd :=_ae .TraceToDirectObject (_gdegd .Font ).(*_ae .PdfObjectDictionary );if !_gdfd {_ac .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",_ae .TraceToDirectObject (_gdegd .Font ));
return nil ,false ;};if _gdegf :=_dggfa .Get (keyName );_gdegf !=nil {return _gdegf ,true ;};return nil ,false ;};
// ImageToRGB converts image in CalGray color space to RGB (A, B, C -> X, Y, Z).
func (_eeff *PdfColorspaceCalGray )ImageToRGB (img Image )(Image ,error ){_gbcgd :=_ba .NewReader (img .getBase ());_cegbc :=_afc .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),3,nil ,nil ,nil );_fae :=_ba .NewWriter (_cegbc );
_feae :=_ag .Pow (2,float64 (img .BitsPerComponent ))-1;_fggag :=make ([]uint32 ,3);var (_cgec uint32 ;ANorm ,X ,Y ,Z ,_ddfga ,_dfgd ,_afbc float64 ;_feee error ;);for {_cgec ,_feee =_gbcgd .ReadSample ();if _feee ==_gdc .EOF {break ;}else if _feee !=nil {return img ,_feee ;
};ANorm =float64 (_cgec )/_feae ;X =_eeff .WhitePoint [0]*_ag .Pow (ANorm ,_eeff .Gamma );Y =_eeff .WhitePoint [1]*_ag .Pow (ANorm ,_eeff .Gamma );Z =_eeff .WhitePoint [2]*_ag .Pow (ANorm ,_eeff .Gamma );_ddfga =3.240479*X +-1.537150*Y +-0.498535*Z ;_dfgd =-0.969256*X +1.875992*Y +0.041556*Z ;
_afbc =0.055648*X +-0.204043*Y +1.057311*Z ;_ddfga =_ag .Min (_ag .Max (_ddfga ,0),1.0);_dfgd =_ag .Min (_ag .Max (_dfgd ,0),1.0);_afbc =_ag .Min (_ag .Max (_afbc ,0),1.0);_fggag [0]=uint32 (_ddfga *_feae );_fggag [1]=uint32 (_dfgd *_feae );_fggag [2]=uint32 (_afbc *_feae );
if _feee =_fae .WriteSamples (_fggag );_feee !=nil {return img ,_feee ;};};return _feagd (&_cegbc ),nil ;};func _fdgbg (_bgdef _ae .PdfObject )[]*_ae .PdfObjectStream {if _bgdef ==nil {return nil ;};_ddfff ,_cbgdd :=_ae .GetArray (_bgdef );if !_cbgdd ||_ddfff .Len ()==0{return nil ;
};_gaeb :=make ([]*_ae .PdfObjectStream ,0,_ddfff .Len ());for _ ,_fffge :=range _ddfff .Elements (){if _ffece ,_dccbb :=_ae .GetStream (_fffge );_dccbb {_gaeb =append (_gaeb ,_ffece );};};return _gaeb ;};
// 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 (_ceffff DefaultImageHandler )Compress (input *Image ,quality int64 )(*Image ,error ){return input ,nil ;};
// HasPatternByName checks whether a pattern object is defined by the specified keyName.
func (_bcfgf *PdfPageResources )HasPatternByName (keyName _ae .PdfObjectName )bool {_ ,_acbg :=_bcfgf .GetPatternByName (keyName );return _acbg ;};type fontFile struct{_deef string ;_aadg string ;_dbfd _bgg .SimpleEncoder ;};func _bfdcd (_bffg _ae .PdfObject )(*PdfColorspaceCalGray ,error ){_aac :=NewPdfColorspaceCalGray ();
if _cbbee ,_ccba :=_bffg .(*_ae .PdfIndirectObject );_ccba {_aac ._befdd =_cbbee ;};_bffg =_ae .TraceToDirectObject (_bffg );_eeea ,_eebb :=_bffg .(*_ae .PdfObjectArray );if !_eebb {return nil ,_f .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");
};if _eeea .Len ()!=2{return nil ,_f .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");};_bffg =_ae .TraceToDirectObject (_eeea .Get (0));_cfdb ,_eebb :=_bffg .(*_ae .PdfObjectName );
if !_eebb {return nil ,_f .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 *_cfdb !="\u0043a\u006c\u0047\u0072\u0061\u0079"{return nil ,_f .Errorf ("\u006eo\u0074\u0020\u0061\u0020\u0043\u0061\u006c\u0047\u0072\u0061\u0079 \u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063\u0065");
};_bffg =_ae .TraceToDirectObject (_eeea .Get (1));_fead ,_eebb :=_bffg .(*_ae .PdfObjectDictionary );if !_eebb {return nil ,_f .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");
};_bffg =_fead .Get ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074");_bffg =_ae .TraceToDirectObject (_bffg );_abcg ,_eebb :=_bffg .(*_ae .PdfObjectArray );if !_eebb {return nil ,_f .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 _abcg .Len ()!=3{return nil ,_f .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");};_fdebc ,_dfgec :=_abcg .GetAsFloat64Slice ();
if _dfgec !=nil {return nil ,_dfgec ;};_aac .WhitePoint =_fdebc ;_bffg =_fead .Get ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074");if _bffg !=nil {_bffg =_ae .TraceToDirectObject (_bffg );_fcaf ,_ecce :=_bffg .(*_ae .PdfObjectArray );if !_ecce {return nil ,_f .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 _fcaf .Len ()!=3{return nil ,_f .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");};_degde ,_dddb :=_fcaf .GetAsFloat64Slice ();
if _dddb !=nil {return nil ,_dddb ;};_aac .BlackPoint =_degde ;};_bffg =_fead .Get ("\u0047\u0061\u006dm\u0061");if _bffg !=nil {_bffg =_ae .TraceToDirectObject (_bffg );_baeg ,_ccgg :=_ae .GetNumberAsFloat (_bffg );if _ccgg !=nil {return nil ,_f .Errorf ("C\u0061\u006c\u0047\u0072\u0061\u0079:\u0020\u0067\u0061\u006d\u006d\u0061\u0020\u006e\u006ft\u0020\u0061\u0020n\u0075m\u0062\u0065\u0072");
};_aac .Gamma =_baeg ;};return _aac ,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 (_bdadf *LTV )EnableAll (extraCerts []*_fc .Certificate )error {_ecfge :=_bdadf ._gbcge ._afad .AcroForm ;for _ ,_bgded :=range _ecfge .AllFields (){_caaef ,_ :=_bgded .GetContext ().(*PdfFieldSignature );if _caaef ==nil {continue ;};_feafg :=_caaef .V ;
if _fgbgg :=_bdadf .validateSig (_feafg );_fgbgg !=nil {_ac .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",_fgbgg );
};if _dbaba :=_bdadf .Enable (_feafg ,extraCerts );_dbaba !=nil {return _dbaba ;};};return nil ;};func _acbdb (_agda *_ae .PdfObjectDictionary )(*PdfShadingType1 ,error ){_fffdc :=PdfShadingType1 {};if _fefad :=_agda .Get ("\u0044\u006f\u006d\u0061\u0069\u006e");
_fefad !=nil {_fefad =_ae .TraceToDirectObject (_fefad );_aeaab ,_cbfed :=_fefad .(*_ae .PdfObjectArray );if !_cbfed {_ac .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",_fefad );
return nil ,_db .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_fffdc .Domain =_aeaab ;};if _fbaac :=_agda .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");_fbaac !=nil {_fbaac =_ae .TraceToDirectObject (_fbaac );
_dfeef ,_afbee :=_fbaac .(*_ae .PdfObjectArray );if !_afbee {_ac .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",_fbaac );return nil ,_db .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");
};_fffdc .Matrix =_dfeef ;};_bdfa :=_agda .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");if _bdfa ==nil {_ac .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 ;};_fffdc .Function =[]PdfFunction {};if _gfgg ,_ggag :=_bdfa .(*_ae .PdfObjectArray );_ggag {for _ ,_gdebb :=range _gfgg .Elements (){_cfacd ,_bbfc :=_gdbef (_gdebb );if _bbfc !=nil {_ac .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",_bbfc );
return nil ,_bbfc ;};_fffdc .Function =append (_fffdc .Function ,_cfacd );};}else {_dgaca ,_acfcf :=_gdbef (_bdfa );if _acfcf !=nil {_ac .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",_acfcf );
return nil ,_acfcf ;};_fffdc .Function =append (_fffdc .Function ,_dgaca );};return &_fffdc ,nil ;};
// NewPdfAnnotationPrinterMark returns a new printermark annotation.
func NewPdfAnnotationPrinterMark ()*PdfAnnotationPrinterMark {_ffge :=NewPdfAnnotation ();_fca :=&PdfAnnotationPrinterMark {};_fca .PdfAnnotation =_ffge ;_ffge .SetContext (_fca );return _fca ;};func (_fff *PdfReader )newPdfActionSetOCGStateFromDict (_bcf *_ae .PdfObjectDictionary )(*PdfActionSetOCGState ,error ){return &PdfActionSetOCGState {State :_bcf .Get ("\u0053\u0074\u0061t\u0065"),PreserveRB :_bcf .Get ("\u0050\u0072\u0065\u0073\u0065\u0072\u0076\u0065\u0052\u0042")},nil ;
};
// PdfColorspaceCalRGB stores A, B, C components
type PdfColorspaceCalRGB struct{WhitePoint []float64 ;BlackPoint []float64 ;Gamma []float64 ;Matrix []float64 ;_ffaa *_ae .PdfObjectDictionary ;_gbge *_ae .PdfIndirectObject ;};type pdfFont interface{_cb .Font ;
// ToPdfObject returns a PDF representation of the font and implements interface Model.
ToPdfObject ()_ae .PdfObject ;getFontDescriptor ()*PdfFontDescriptor ;baseFields ()*fontCommon ;};
// GetNumComponents returns the number of color components of the colorspace device.
// Returns 3 for a Lab device.
func (_fcbec *PdfColorspaceLab )GetNumComponents ()int {return 3};func _cefe (_bdeb _ae .PdfObject )(*PdfColorspaceICCBased ,error ){_efgcb :=&PdfColorspaceICCBased {};if _ebfd ,_cafa :=_bdeb .(*_ae .PdfIndirectObject );_cafa {_efgcb ._debg =_ebfd ;};_bdeb =_ae .TraceToDirectObject (_bdeb );
_fcdce ,_bbbc :=_bdeb .(*_ae .PdfObjectArray );if !_bbbc {return nil ,_f .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _fcdce .Len ()!=2{return nil ,_f .Errorf ("i\u006e\u0076\u0061\u006c\u0069\u0064 \u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064\u0020c\u006f\u006c\u006fr\u0073p\u0061\u0063\u0065");
};_bdeb =_ae .TraceToDirectObject (_fcdce .Get (0));_ebba ,_bbbc :=_bdeb .(*_ae .PdfObjectName );if !_bbbc {return nil ,_f .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 *_ebba !="\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064"{return nil ,_f .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");};_bdeb =_fcdce .Get (1);
_ceag ,_bbbc :=_ae .GetStream (_bdeb );if !_bbbc {_ac .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",_bdeb );
return nil ,_f .Errorf ("\u0049\u0043\u0043Ba\u0073\u0065\u0064\u0020\u0073\u0074\u0072\u0065\u0061\u006d\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064");};_cdgc :=_ceag .PdfObjectDictionary ;_bfbba ,_bbbc :=_cdgc .Get ("\u004e").(*_ae .PdfObjectInteger );
if !_bbbc {return nil ,_f .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 *_bfbba !=1&&*_bfbba !=3&&*_bfbba !=4{return nil ,_f .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");
};_efgcb .N =int (*_bfbba );if _dcbe :=_cdgc .Get ("\u0041l\u0074\u0065\u0072\u006e\u0061\u0074e");_dcbe !=nil {_fabc ,_aaega :=NewPdfColorspaceFromPdfObject (_dcbe );if _aaega !=nil {return nil ,_aaega ;};_efgcb .Alternate =_fabc ;};if _dabdg :=_cdgc .Get ("\u0052\u0061\u006eg\u0065");
_dabdg !=nil {_dabdg =_ae .TraceToDirectObject (_dabdg );_cggdb ,_cbfdd :=_dabdg .(*_ae .PdfObjectArray );if !_cbfdd {return nil ,_f .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 _cggdb .Len ()!=2*_efgcb .N {return nil ,_f .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");
};_eabfc ,_bbga :=_cggdb .GetAsFloat64Slice ();if _bbga !=nil {return nil ,_bbga ;};_efgcb .Range =_eabfc ;}else {_efgcb .Range =make ([]float64 ,2*_efgcb .N );for _bdff :=0;_bdff < _efgcb .N ;_bdff ++{_efgcb .Range [2*_bdff ]=0.0;_efgcb .Range [2*_bdff +1]=1.0;
};};if _egca :=_cdgc .Get ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");_egca !=nil {_gbbe ,_bcea :=_egca .(*_ae .PdfObjectStream );if !_bcea {return nil ,_f .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");
};_efgcb .Metadata =_gbbe ;};_acgg ,_fegdf :=_ae .DecodeStream (_ceag );if _fegdf !=nil {return nil ,_fegdf ;};_efgcb .Data =_acgg ;_efgcb ._egefc =_ceag ;return _efgcb ,nil ;};
// GetContainingPdfObject implements interface PdfModel.
func (_gafed *Permissions )GetContainingPdfObject ()_ae .PdfObject {return _gafed ._gccec };
// ToPdfObject recursively builds the Outline tree PDF object.
func (_gagbf *PdfOutline )ToPdfObject ()_ae .PdfObject {_edce :=_gagbf ._fcge ;_ccdg :=_edce .PdfObject .(*_ae .PdfObjectDictionary );_ccdg .Set ("\u0054\u0079\u0070\u0065",_ae .MakeName ("\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0073"));if _gagbf .First !=nil {_ccdg .Set ("\u0046\u0069\u0072s\u0074",_gagbf .First .ToPdfObject ());
};if _gagbf .Last !=nil {_ccdg .Set ("\u004c\u0061\u0073\u0074",_gagbf .Last .GetContext ().GetContainingPdfObject ());};if _gagbf .Parent !=nil {_ccdg .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_gagbf .Parent .GetContext ().GetContainingPdfObject ());
};if _gagbf .Count !=nil {_ccdg .Set ("\u0043\u006f\u0075n\u0074",_ae .MakeInteger (*_gagbf .Count ));};return _edce ;};
// ImageToRGB converts an image in CMYK32 colorspace to an RGB image.
func (_dfge *PdfColorspaceDeviceCMYK )ImageToRGB (img Image )(Image ,error ){_ac .Log .Trace ("\u0043\u004d\u0059\u004b\u0033\u0032\u0020\u002d\u003e\u0020\u0052\u0047\u0042");_ac .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 );
_ac .Log .Trace ("\u004c\u0065\u006e \u0064\u0061\u0074\u0061\u003a\u0020\u0025\u0064",len (img .Data ));_ac .Log .Trace ("H\u0065\u0069\u0067\u0068t:\u0020%\u0064\u002c\u0020\u0057\u0069d\u0074\u0068\u003a\u0020\u0025\u0064",img .Height ,img .Width );
_bebeb ,_fbfde :=_afc .NewImage (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),img .ColorComponents ,img .Data ,img ._bbba ,img ._fdae );if _fbfde !=nil {return Image {},_fbfde ;};_cagf ,_fbfde :=_afc .NRGBAConverter .Convert (_bebeb );
if _fbfde !=nil {return Image {},_fbfde ;};return _feagd (_cagf .Base ()),nil ;};
// ToPdfObject implements interface PdfModel.
func (_eecf *PdfAnnotationRedact )ToPdfObject ()_ae .PdfObject {_eecf .PdfAnnotation .ToPdfObject ();_fcdf :=_eecf ._gcgf ;_baff :=_fcdf .PdfObject .(*_ae .PdfObjectDictionary );_eecf .PdfAnnotationMarkup .appendToPdfDictionary (_baff );_baff .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ae .MakeName ("\u0052\u0065\u0064\u0061\u0063\u0074"));
_baff .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_eecf .QuadPoints );_baff .SetIfNotNil ("\u0049\u0043",_eecf .IC );_baff .SetIfNotNil ("\u0052\u004f",_eecf .RO );_baff .SetIfNotNil ("O\u0076\u0065\u0072\u006c\u0061\u0079\u0054\u0065\u0078\u0074",_eecf .OverlayText );
_baff .SetIfNotNil ("\u0052\u0065\u0070\u0065\u0061\u0074",_eecf .Repeat );_baff .SetIfNotNil ("\u0044\u0041",_eecf .DA );_baff .SetIfNotNil ("\u0051",_eecf .Q );return _fcdf ;};
// ColorFromFloats returns a new PdfColor based on the input slice of color
// components. The slice should contain a single element.
func (_egbe *PdfColorspaceSpecialIndexed )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=1{return nil ,_db .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};N :=_egbe .Base .GetNumComponents ();_bbef :=int (vals [0])*N ;
if _bbef < 0||(_bbef +N -1)>=len (_egbe ._dfca ){_ac .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_bbef );return nil ,ErrColorOutOfRange ;};_ecbfa :=_egbe ._dfca [_bbef :_bbef +N ];
var _dbgde []float64 ;for _ ,_agga :=range _ecbfa {_dbgde =append (_dbgde ,float64 (_agga )/255.0);};_aggg ,_ceddf :=_egbe .Base .ColorFromFloats (_dbgde );if _ceddf !=nil {return nil ,_ceddf ;};return _aggg ,nil ;};func (_gbca *PdfReader )newPdfAnnotationInkFromDict (_aed *_ae .PdfObjectDictionary )(*PdfAnnotationInk ,error ){_gef :=PdfAnnotationInk {};
_adag ,_dfde :=_gbca .newPdfAnnotationMarkupFromDict (_aed );if _dfde !=nil {return nil ,_dfde ;};_gef .PdfAnnotationMarkup =_adag ;_gef .InkList =_aed .Get ("\u0049n\u006b\u004c\u0069\u0073\u0074");_gef .BS =_aed .Get ("\u0042\u0053");return &_gef ,nil ;
};
// GetDocMDPPermission returns the DocMDP level of the restrictions
func (_cgddc *PdfSignature )GetDocMDPPermission ()(_dbg .DocMDPPermission ,bool ){for _ ,_aeegdg :=range _cgddc .Reference .Elements (){if _cbeb ,_gbbdf :=_ae .GetDict (_aeegdg );_gbbdf {if _geebg ,_ceabc :=_ae .GetNameVal (_cbeb .Get ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u004d\u0065\u0074\u0068\u006f\u0064"));
_ceabc &&_geebg =="\u0044\u006f\u0063\u004d\u0044\u0050"{if _ddbdfc ,_aegdb :=_ae .GetDict (_cbeb .Get ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u0050\u0061\u0072\u0061\u006d\u0073"));_aegdb {if P ,_efeda :=_ae .GetIntVal (_ddbdfc .Get ("\u0050"));
_efeda {return _dbg .DocMDPPermission (P ),true ;};};};};};return 0,false ;};
// PdfAnnotationScreen represents Screen annotations.
// (Section 12.5.6.18).
type PdfAnnotationScreen struct{*PdfAnnotation ;T _ae .PdfObject ;MK _ae .PdfObject ;A _ae .PdfObject ;AA _ae .PdfObject ;};
// GetIndirectObjectByNumber retrieves and returns a specific PdfObject by object number.
func (_dddaa *PdfReader )GetIndirectObjectByNumber (number int )(_ae .PdfObject ,error ){_debgb ,_bfafb :=_dddaa ._bfcga .LookupByNumber (number );return _debgb ,_bfafb ;};
// AddExtGState adds a graphics state to the XObject resources.
func (_fcbg *PdfPage )AddExtGState (name _ae .PdfObjectName ,egs *_ae .PdfObjectDictionary )error {if _fcbg .Resources ==nil {_fcbg .Resources =NewPdfPageResources ();};if _fcbg .Resources .ExtGState ==nil {_fcbg .Resources .ExtGState =_ae .MakeDict ();
};_bbggc ,_gfbee :=_ae .TraceToDirectObject (_fcbg .Resources .ExtGState ).(*_ae .PdfObjectDictionary );if !_gfbee {_ac .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",_ae .TraceToDirectObject (_fcbg .Resources .ExtGState ));
return _db .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_bbggc .Set (name ,egs );return nil ;};func (_cebce *PdfWriter )setCatalogVersion (){_cebce ._caddd .Set ("\u0056e\u0072\u0073\u0069\u006f\u006e",_ae .MakeName (_f .Sprintf ("\u0025\u0064\u002e%\u0064",_cebce ._faffe .Major ,_cebce ._faffe .Minor )));
};
// ToPdfObject implements interface PdfModel.
func (_acec *PdfAnnotationHighlight )ToPdfObject ()_ae .PdfObject {_acec .PdfAnnotation .ToPdfObject ();_ffbb :=_acec ._gcgf ;_gecg :=_ffbb .PdfObject .(*_ae .PdfObjectDictionary );_acec .PdfAnnotationMarkup .appendToPdfDictionary (_gecg );_gecg .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ae .MakeName ("\u0048i\u0067\u0068\u006c\u0069\u0067\u0068t"));
_gecg .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_acec .QuadPoints );return _ffbb ;};
// GetEncryptionMethod returns a descriptive information string about the encryption method used.
func (_bcfed *PdfReader )GetEncryptionMethod ()string {_aade :=_bcfed ._bfcga .GetCrypter ();return _aade .String ();};
// GetNumComponents returns the number of color components (1 for CalGray).
func (_begfg *PdfColorCalGray )GetNumComponents ()int {return 1};
// PdfAnnotationWatermark represents Watermark annotations.
// (Section 12.5.6.22).
type PdfAnnotationWatermark struct{*PdfAnnotation ;FixedPrint _ae .PdfObject ;};
// ColorFromFloats returns a new PdfColor based on the input slice of color
// components. The slice should contain a single element between 0 and 1.
func (_eccb *PdfColorspaceCalGray )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=1{return nil ,_db .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_ccdee :=vals [0];if _ccdee < 0.0||_ccdee > 1.0{_ac .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_ccdee );
return nil ,ErrColorOutOfRange ;};_dfce :=NewPdfColorCalGray (_ccdee );return _dfce ,nil ;};var _dbec =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":{}};
func (_eebee *PdfReader )loadPerms ()(*Permissions ,error ){if _ffddb :=_eebee ._aedf .Get ("\u0050\u0065\u0072m\u0073");_ffddb !=nil {if _fbfcf ,_bbadf :=_ae .GetDict (_ffddb );_bbadf {_gcfgf :=_fbfcf .Get ("\u0044\u006f\u0063\u004d\u0044\u0050");if _gcfgf ==nil {return nil ,nil ;
};if _abab ,_abeaec :=_ae .GetIndirect (_gcfgf );_abeaec {_bggcf ,_ggdfc :=_eebee .newPdfSignatureFromIndirect (_abab );if _ggdfc !=nil {return nil ,_ggdfc ;};return NewPermissions (_bggcf ),nil ;};return nil ,_f .Errorf ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0044\u006f\u0063M\u0044\u0050\u0020\u0065nt\u0072\u0079");
};return nil ,_f .Errorf ("\u0069\u006e\u0076\u0061li\u0064\u0020\u0050\u0065\u0072\u006d\u0073\u0020\u0065\u006e\u0074\u0072\u0079");};return nil ,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 ;_ccfef *_ae .PdfIndirectObject ;};func (_bcagc *PdfReader )newPdfAnnotationCircleFromDict (_fad *_ae .PdfObjectDictionary )(*PdfAnnotationCircle ,error ){_dbf :=PdfAnnotationCircle {};
_aga ,_ebfbd :=_bcagc .newPdfAnnotationMarkupFromDict (_fad );if _ebfbd !=nil {return nil ,_ebfbd ;};_dbf .PdfAnnotationMarkup =_aga ;_dbf .BS =_fad .Get ("\u0042\u0053");_dbf .IC =_fad .Get ("\u0049\u0043");_dbf .BE =_fad .Get ("\u0042\u0045");_dbf .RD =_fad .Get ("\u0052\u0044");
return &_dbf ,nil ;};
// GetContainingPdfObject returns the container of the outline (indirect object).
func (_gddb *PdfOutline )GetContainingPdfObject ()_ae .PdfObject {return _gddb ._fcge };
// NewPdfAnnotationLine returns a new line annotation.
func NewPdfAnnotationLine ()*PdfAnnotationLine {_dgda :=NewPdfAnnotation ();_fddc :=&PdfAnnotationLine {};_fddc .PdfAnnotation =_dgda ;_fddc .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_dgda .SetContext (_fddc );return _fddc ;};func (_cddbd *PdfSignature )extractChainFromCert ()([]*_fc .Certificate ,error ){var _dfcgd *_ae .PdfObjectArray ;
switch _fbbgbg :=_cddbd .Cert .(type ){case *_ae .PdfObjectString :_dfcgd =_ae .MakeArray (_fbbgbg );case *_ae .PdfObjectArray :_dfcgd =_fbbgbg ;default:return nil ,_f .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",_fbbgbg );
};var _febff _aa .Buffer ;for _ ,_acagac :=range _dfcgd .Elements (){_faac ,_edggd :=_ae .GetString (_acagac );if !_edggd {return nil ,_f .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",_acagac );
};if _ ,_eagd :=_febff .Write (_faac .Bytes ());_eagd !=nil {return nil ,_eagd ;};};return _fc .ParseCertificates (_febff .Bytes ());};func (_abdgd *PdfWriter )writeOutlines ()error {if _abdgd ._dgfge ==nil {return nil ;};_ac .Log .Trace ("\u004f\u0075t\u006c\u0069\u006ee\u0054\u0072\u0065\u0065\u003a\u0020\u0025\u002b\u0076",_abdgd ._dgfge );
_fbgfg :=_abdgd ._dgfge .ToPdfObject ();_ac .Log .Trace ("\u004fu\u0074\u006c\u0069\u006e\u0065\u0073\u003a\u0020\u0025\u002b\u0076 \u0028\u0025\u0054\u002c\u0020\u0070\u003a\u0025\u0070\u0029",_fbgfg ,_fbgfg ,_fbgfg );_abdgd ._caddd .Set ("\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0073",_fbgfg );
_egfec :=_abdgd .addObjects (_fbgfg );if _egfec !=nil {return _egfec ;};return nil ;};func _bdggg (_abcf _ae .PdfObject )(*PdfColorspaceDeviceN ,error ){_bfab :=NewPdfColorspaceDeviceN ();if _cdbc ,_dbff :=_abcf .(*_ae .PdfIndirectObject );_dbff {_bfab ._efbgg =_cdbc ;
};_abcf =_ae .TraceToDirectObject (_abcf );_ggegg ,_cceea :=_abcf .(*_ae .PdfObjectArray );if !_cceea {return nil ,_f .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 _ggegg .Len ()!=4&&_ggegg .Len ()!=5{return nil ,_f .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");};_abcf =_ggegg .Get (0);
_fbfcc ,_cceea :=_abcf .(*_ae .PdfObjectName );if !_cceea {return nil ,_f .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 *_fbfcc !="\u0044e\u0076\u0069\u0063\u0065\u004e"{return nil ,_f .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");};_abcf =_ggegg .Get (1);
_abcf =_ae .TraceToDirectObject (_abcf );_efce ,_cceea :=_abcf .(*_ae .PdfObjectArray );if !_cceea {return nil ,_f .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");
};_bfab .ColorantNames =_efce ;_abcf =_ggegg .Get (2);_gbbec ,_gbgc :=NewPdfColorspaceFromPdfObject (_abcf );if _gbgc !=nil {return nil ,_gbgc ;};_bfab .AlternateSpace =_gbbec ;_geffd ,_gbgc :=_gdbef (_ggegg .Get (3));if _gbgc !=nil {return nil ,_gbgc ;
};_bfab .TintTransform =_geffd ;if _ggegg .Len ()==5{_ceccg ,_cfad :=_adfg (_ggegg .Get (4));if _cfad !=nil {return nil ,_cfad ;};_bfab .Attributes =_ceccg ;};return _bfab ,nil ;};
// PdfWriter handles outputing PDF content.
type PdfWriter struct{_aacfc *_ae .PdfIndirectObject ;_efcgc *_ae .PdfIndirectObject ;_eaggg map[_ae .PdfObject ]struct{};_edbe []_ae .PdfObject ;_faecg map[_ae .PdfObject ]struct{};_begcc []*_ae .PdfIndirectObject ;_dgfge *PdfOutlineTreeNode ;_caddd *_ae .PdfObjectDictionary ;
_dgdac []_ae .PdfObject ;_cbffg *_ae .PdfIndirectObject ;_dfgcc *_c .Writer ;_eeegee int64 ;_fffcb error ;_ecedf *_ae .PdfCrypt ;_dfebg *_ae .PdfObjectDictionary ;_feddfa *_ae .PdfIndirectObject ;_dcdbd *_ae .PdfObjectArray ;_faffe _ae .Version ;_edgdg *bool ;
_fage map[_ae .PdfObject ][]*_ae .PdfObjectDictionary ;_bgfd *PdfAcroForm ;_ffefg Optimizer ;_bccf StandardApplier ;_agfeg map[int ]crossReference ;_addeb int64 ;ObjNumOffset int ;_dffad bool ;_ecbae _ae .XrefTable ;_afadc int64 ;_gaffa int64 ;_fbfcdf map[_ae .PdfObject ]int64 ;
_eecfg map[_ae .PdfObject ]struct{};_afegd string ;_bbbca []*PdfOutputIntent ;_gfbc bool ;_fddgb ,_dbdab string ;};
// GetCharMetrics returns the char metrics for character code `code`.
func (_bbfbf pdfCIDFontType2 )GetCharMetrics (code _bgg .CharCode )(_cb .CharMetrics ,bool ){if _bfccf ,_eebe :=_bbfbf ._fcbce [code ];_eebe {return _cb .CharMetrics {Wx :_bfccf },true ;};_bdbc :=rune (code );_fgace ,_eebed :=_bbfbf ._acae [_bdbc ];if !_eebed {_fgace =int (_bbfbf ._bddbc );
};return _cb .CharMetrics {Wx :float64 (_fgace )},true ;};
// GetNumComponents returns the number of color components (3 for RGB).
func (_cgaf *PdfColorDeviceRGB )GetNumComponents ()int {return 3};func (_fabcc *PdfWriter )addObjects (_aeccgf _ae .PdfObject )error {_ac .Log .Trace ("\u0041d\u0064i\u006e\u0067\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0073\u0021");if _bccdd ,_dgggbc :=_aeccgf .(*_ae .PdfIndirectObject );
_dgggbc {_ac .Log .Trace ("\u0049\u006e\u0064\u0069\u0072\u0065\u0063\u0074");_ac .Log .Trace ("\u002d \u0025\u0073\u0020\u0028\u0025\u0070)",_aeccgf ,_bccdd );_ac .Log .Trace ("\u002d\u0020\u0025\u0073",_bccdd .PdfObject );if _fabcc .addObject (_bccdd ){_dfgee :=_fabcc .addObjects (_bccdd .PdfObject );
if _dfgee !=nil {return _dfgee ;};};return nil ;};if _ddcfd ,_agbdb :=_aeccgf .(*_ae .PdfObjectStream );_agbdb {_ac .Log .Trace ("\u0053\u0074\u0072\u0065\u0061\u006d");_ac .Log .Trace ("\u002d \u0025\u0073\u0020\u0025\u0070",_aeccgf ,_aeccgf );if _fabcc .addObject (_ddcfd ){_cdcad :=_fabcc .addObjects (_ddcfd .PdfObjectDictionary );
if _cdcad !=nil {return _cdcad ;};};return nil ;};if _agfgg ,_beaef :=_aeccgf .(*_ae .PdfObjectDictionary );_beaef {_ac .Log .Trace ("\u0044\u0069\u0063\u0074");_ac .Log .Trace ("\u002d\u0020\u0025\u0073",_aeccgf );for _ ,_efbd :=range _agfgg .Keys (){_cbbc :=_agfgg .Get (_efbd );
if _fdfcbb ,_cdfedd :=_cbbc .(*_ae .PdfObjectReference );_cdfedd {_cbbc =_fdfcbb .Resolve ();_agfgg .Set (_efbd ,_cbbc );};if _efbd !="\u0050\u0061\u0072\u0065\u006e\u0074"{if _ddeae :=_fabcc .addObjects (_cbbc );_ddeae !=nil {return _ddeae ;};}else {if _ ,_egdbb :=_cbbc .(*_ae .PdfObjectNull );
_egdbb {continue ;};if _gabae :=_fabcc .hasObject (_cbbc );!_gabae {_ac .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",_cbbc ,_cbbc ,_cbbc );
_fabcc ._fage [_cbbc ]=append (_fabcc ._fage [_cbbc ],_agfgg );};};};return nil ;};if _fgaedc ,_fabdf :=_aeccgf .(*_ae .PdfObjectArray );_fabdf {_ac .Log .Trace ("\u0041\u0072\u0072a\u0079");_ac .Log .Trace ("\u002d\u0020\u0025\u0073",_aeccgf );if _fgaedc ==nil {return _db .New ("\u0061\u0072\u0072a\u0079\u0020\u0069\u0073\u0020\u006e\u0069\u006c");
};for _abbdef ,_acdac :=range _fgaedc .Elements (){if _befg ,_aeff :=_acdac .(*_ae .PdfObjectReference );_aeff {_acdac =_befg .Resolve ();_fgaedc .Set (_abbdef ,_acdac );};if _cgdcg :=_fabcc .addObjects (_acdac );_cgdcg !=nil {return _cgdcg ;};};return nil ;
};if _ ,_effd :=_aeccgf .(*_ae .PdfObjectReference );_effd {_ac .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",_aeccgf );
return _db .New ("r\u0065\u0066\u0065\u0072en\u0063e\u0020\u006e\u006f\u0074\u0020a\u006c\u006c\u006f\u0077\u0065\u0064");};return nil ;};
// NewPdfPageResources returns a new PdfPageResources object.
func NewPdfPageResources ()*PdfPageResources {_cagfg :=&PdfPageResources {};_cagfg ._cebg =_ae .MakeDict ();return _cagfg ;};
// GetContext returns the annotation context which contains the specific type-dependent context.
// The context represents the subannotation.
func (_fffa *PdfAnnotation )GetContext ()PdfModel {if _fffa ==nil {return nil ;};return _fffa ._ggd ;};
// PageFromIndirectObject returns the PdfPage and page number for a given indirect object.
func (_bagad *PdfReader )PageFromIndirectObject (ind *_ae .PdfIndirectObject )(*PdfPage ,int ,error ){if len (_bagad .PageList )!=len (_bagad ._bcaab ){return nil ,0,_db .New ("\u0070\u0061\u0067\u0065\u0020\u006c\u0069\u0073\u0074\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");
};for _ggfac ,_accbd :=range _bagad ._bcaab {if _accbd ==ind {return _bagad .PageList [_ggfac ],_ggfac +1,nil ;};};return nil ,0,_db .New ("\u0070\u0061\u0067\u0065\u0020\u006e\u006f\u0074\u0020f\u006f\u0075\u006e\u0064");};
// GetPatternByName gets the pattern specified by keyName. Returns nil if not existing.
// The bool flag indicated whether it was found or not.
func (_cgbdg *PdfPageResources )GetPatternByName (keyName _ae .PdfObjectName )(*PdfPattern ,bool ){if _cgbdg .Pattern ==nil {return nil ,false ;};_fccgc ,_fdebd :=_ae .TraceToDirectObject (_cgbdg .Pattern ).(*_ae .PdfObjectDictionary );if !_fdebd {_ac .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",_cgbdg .Pattern );
return nil ,false ;};if _afdae :=_fccgc .Get (keyName );_afdae !=nil {_efbgd ,_aggbg :=_eccae (_afdae );if _aggbg !=nil {_ac .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",_aggbg );
return nil ,false ;};return _efbgd ,true ;};return nil ,false ;};
// GetNumComponents returns the number of color components.
func (_bgdcf *PdfColorspaceICCBased )GetNumComponents ()int {return _bgdcf .N };
// Encoder returns the font's text encoder.
func (_bcefa pdfFontType0 )Encoder ()_bgg .TextEncoder {return _bcefa ._bagdb };
// 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 (_bfbg PdfColor )(PdfColor ,error );
// GetNumComponents returns the number of components in the PdfColorspace.
GetNumComponents ()int ;
// ToPdfObject returns a PdfObject representation of the PdfColorspace.
ToPdfObject ()_ae .PdfObject ;
// ColorFromPdfObjects returns a PdfColor in the given PdfColorspace from an array of PdfObject where each
// PdfObject represents a numeric value.
ColorFromPdfObjects (_agea []_ae .PdfObject )(PdfColor ,error );
// ColorFromFloats returns a new PdfColor based on input color components for a given PdfColorspace.
ColorFromFloats (_efab []float64 )(PdfColor ,error );
// DecodeArray returns the Decode array for the PdfColorSpace, i.e. the range of each component.
DecodeArray ()[]float64 ;};
// IsEncrypted returns true if the PDF file is encrypted.
func (_gebdc *PdfReader )IsEncrypted ()(bool ,error ){return _gebdc ._bfcga .IsEncrypted ()};
// 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 (_adb *PdfAppender )Sign (pageNum int ,field *PdfFieldSignature )error {if field ==nil {return _db .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");
};_ggae :=field .V ;if _ggae ==nil {return _db .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");};_gfaf :=pageNum -1;
if _gfaf < 0||_gfaf > len (_adb ._eabf )-1{return _f .Errorf ("\u0070\u0061\u0067\u0065\u0020\u0025\u0064\u0020\u006e\u006f\u0074\u0020f\u006f\u0075\u006e\u0064",pageNum );};_ecac :=_adb .Reader .PageList [_gfaf ];field .P =_ecac .ToPdfObject ();if field .T ==nil ||field .T .String ()==""{field .T =_ae .MakeString (_f .Sprintf ("\u0053\u0069\u0067n\u0061\u0074\u0075\u0072\u0065\u0020\u0025\u0064",pageNum ));
};_ecac .AddAnnotation (field .PdfAnnotationWidget .PdfAnnotation );if _adb ._eced ==_adb ._afad .AcroForm {_adb ._eced =_adb .Reader .AcroForm ;};_addd :=_adb ._eced ;if _addd ==nil {_addd =NewPdfAcroForm ();};_addd .SigFlags =_ae .MakeInteger (3);if _addd .NeedAppearances !=nil {_addd .NeedAppearances =nil ;
};_fecf :=append (_addd .AllFields (),field .PdfField );_addd .Fields =&_fecf ;_adb .ReplaceAcroForm (_addd );_adb .UpdatePage (_ecac );_adb ._eabf [_gfaf ]=_ecac ;if _ ,_bade :=field .V .GetDocMDPPermission ();_bade {_adb ._fgcd =NewPermissions (field .V );
};return nil ;};
// ToPdfObject sets the common field elements.
// Note: Call the more field context's ToPdfObject to set both the generic and
// non-generic information.
func (_fggf *PdfField )ToPdfObject ()_ae .PdfObject {_ccfec :=_fggf ._facca ;_bcgf :=_ccfec .PdfObject .(*_ae .PdfObjectDictionary );_aggb :=_ae .MakeArray ();for _ ,_aeaba :=range _fggf .Kids {_aggb .Append (_aeaba .ToPdfObject ());};for _ ,_bgaf :=range _fggf .Annotations {if _bgaf ._gcgf !=_fggf ._facca {_aggb .Append (_bgaf .GetContext ().ToPdfObject ());
};};if _fggf .Parent !=nil {_bcgf .SetIfNotNil ("\u0050\u0061\u0072\u0065\u006e\u0074",_fggf .Parent .GetContainingPdfObject ());};if _aggb .Len ()> 0{_bcgf .Set ("\u004b\u0069\u0064\u0073",_aggb );};_bcgf .SetIfNotNil ("\u0046\u0054",_fggf .FT );_bcgf .SetIfNotNil ("\u0054",_fggf .T );
_bcgf .SetIfNotNil ("\u0054\u0055",_fggf .TU );_bcgf .SetIfNotNil ("\u0054\u004d",_fggf .TM );_bcgf .SetIfNotNil ("\u0046\u0066",_fggf .Ff );_bcgf .SetIfNotNil ("\u0056",_fggf .V );_bcgf .SetIfNotNil ("\u0044\u0056",_fggf .DV );_bcgf .SetIfNotNil ("\u0041\u0041",_fggf .AA );
if _fggf .VariableText !=nil {_bcgf .SetIfNotNil ("\u0044\u0041",_fggf .VariableText .DA );_bcgf .SetIfNotNil ("\u0051",_fggf .VariableText .Q );_bcgf .SetIfNotNil ("\u0044\u0053",_fggf .VariableText .DS );_bcgf .SetIfNotNil ("\u0052\u0056",_fggf .VariableText .RV );
};return _ccfec ;};
// PdfPageResources is a Page resources model.
// Implements PdfModel.
type PdfPageResources struct{ExtGState _ae .PdfObject ;ColorSpace _ae .PdfObject ;Pattern _ae .PdfObject ;Shading _ae .PdfObject ;XObject _ae .PdfObject ;Font _ae .PdfObject ;ProcSet _ae .PdfObject ;Properties _ae .PdfObject ;_cebg *_ae .PdfObjectDictionary ;
_febfa *PdfPageResourcesColorspaces ;};func (_fcbab *PdfReader )loadStructure ()error {if _fcbab ._bfcga .GetCrypter ()!=nil &&!_fcbab ._bfcga .IsAuthenticated (){return _f .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");
};_fecfc :=_fcbab ._bfcga .GetTrailer ();if _fecfc ==nil {return _f .Errorf ("\u006di\u0073s\u0069\u006e\u0067\u0020\u0074\u0072\u0061\u0069\u006c\u0065\u0072");};_bagac ,_bccgb :=_fecfc .Get ("\u0052\u006f\u006f\u0074").(*_ae .PdfObjectReference );if !_bccgb {return _f .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",_fecfc );
};_edaff ,_begfa :=_fcbab ._bfcga .LookupByReference (*_bagac );if _begfa !=nil {_ac .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",_begfa );
return _begfa ;};_becgcb ,_bccgb :=_edaff .(*_ae .PdfIndirectObject );if !_bccgb {_ac .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",_edaff ,*_fecfc );
return _db .New ("\u006di\u0073s\u0069\u006e\u0067\u0020\u0063\u0061\u0074\u0061\u006c\u006f\u0067");};_bgfac ,_bccgb :=(*_becgcb ).PdfObject .(*_ae .PdfObjectDictionary );if !_bccgb {_ac .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",_becgcb .PdfObject );
return _db .New ("\u0069n\u0076a\u006c\u0069\u0064\u0020\u0063\u0061\u0074\u0061\u006c\u006f\u0067");};_ac .Log .Trace ("C\u0061\u0074\u0061\u006c\u006f\u0067\u003a\u0020\u0025\u0073",_bgfac );_abae ,_bccgb :=_bgfac .Get ("\u0050\u0061\u0067e\u0073").(*_ae .PdfObjectReference );
if !_bccgb {return _db .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");};_gagba ,_begfa :=_fcbab ._bfcga .LookupByReference (*_abae );
if _begfa !=nil {_ac .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 _begfa ;};_dccgc ,_bccgb :=_gagba .(*_ae .PdfIndirectObject );if !_bccgb {_ac .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");
_ac .Log .Debug ("\u006f\u0070\u003a\u0020\u0025\u0070",_dccgc );return _db .New ("p\u0061g\u0065\u0073\u0020\u006f\u0062\u006a\u0065\u0063t\u0020\u0069\u006e\u0076al\u0069\u0064");};_dfbda ,_bccgb :=_dccgc .PdfObject .(*_ae .PdfObjectDictionary );if !_bccgb {_ac .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",_dccgc );
return _db .New ("p\u0061g\u0065\u0073\u0020\u006f\u0062\u006a\u0065\u0063t\u0020\u0069\u006e\u0076al\u0069\u0064");};_ecgaf ,_bccgb :=_ae .GetInt (_dfbda .Get ("\u0043\u006f\u0075n\u0074"));if !_bccgb {_ac .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 _db .New ("\u0070\u0061\u0067\u0065s \u0063\u006f\u0075\u006e\u0074\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064");};if _ ,_bccgb =_ae .GetName (_dfbda .Get ("\u0054\u0079\u0070\u0065"));!_bccgb {_ac .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");
_dfbda .Set ("\u0054\u0079\u0070\u0065",_ae .MakeName ("\u0050\u0061\u0067e\u0073"));};if _agdgb ,_ceecc :=_ae .GetInt (_dfbda .Get ("\u0052\u006f\u0074\u0061\u0074\u0065"));_ceecc {_debda :=int64 (*_agdgb );_fcbab .Rotate =&_debda ;};_fcbab ._cgccc =_bagac ;
_fcbab ._aedf =_bgfac ;_fcbab ._adffd =_dfbda ;_fcbab ._cdee =_dccgc ;_fcbab ._gbfa =int (*_ecgaf );_fcbab ._bcaab =[]*_ae .PdfIndirectObject {};_cccfc :=map[_ae .PdfObject ]struct{}{};_begfa =_fcbab .buildPageList (_dccgc ,nil ,_cccfc );if _begfa !=nil {return _begfa ;
};_ac .Log .Trace ("\u002d\u002d\u002d");_ac .Log .Trace ("\u0054\u004f\u0043");_ac .Log .Trace ("\u0050\u0061\u0067e\u0073");_ac .Log .Trace ("\u0025\u0064\u003a\u0020\u0025\u0073",len (_fcbab ._bcaab ),_fcbab ._bcaab );_fcbab ._ecbe ,_begfa =_fcbab .loadOutlines ();
if _begfa !=nil {_ac .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",_begfa );
return _begfa ;};_fcbab .AcroForm ,_begfa =_fcbab .loadForms ();if _begfa !=nil {return _begfa ;};_fcbab .DSS ,_begfa =_fcbab .loadDSS ();if _begfa !=nil {return _begfa ;};_fcbab ._cgfad ,_begfa =_fcbab .loadPerms ();if _begfa !=nil {return _begfa ;};return nil ;
};
// NewDSS returns a new DSS dictionary.
func NewDSS ()*DSS {return &DSS {_cefff :_ae .MakeIndirectObject (_ae .MakeDict ()),VRI :map[string ]*VRI {}};};
// GetContentStreams returns the content stream as an array of strings.
func (_faegd *PdfPage )GetContentStreams ()([]string ,error ){_bbbe :=_faegd .GetContentStreamObjs ();var _cgag []string ;for _ ,_geae :=range _bbbe {_cfdae ,_fedba :=_ddbdf (_geae );if _fedba !=nil {return nil ,_fedba ;};_cgag =append (_cgag ,_cfdae );
};return _cgag ,nil ;};
// IsPush returns true if the button field represents a push button, false otherwise.
func (_aagd *PdfFieldButton )IsPush ()bool {return _aagd .GetType ()==ButtonTypePush };func (_fedfb *PdfReader )lookupPageByObject (_babb _ae .PdfObject )(*PdfPage ,error ){return nil ,_db .New ("\u0070\u0061\u0067\u0065\u0020\u006e\u006f\u0074\u0020f\u006f\u0075\u006e\u0064");
};
// HasExtGState checks whether a font is defined by the specified keyName.
func (_ffdaa *PdfPageResources )HasExtGState (keyName _ae .PdfObjectName )bool {_ ,_cedaf :=_ffdaa .GetFontByName (keyName );return _cedaf ;};
// GetXHeight returns the XHeight of the font `descriptor`.
func (_fefac *PdfFontDescriptor )GetXHeight ()(float64 ,error ){return _ae .GetNumberAsFloat (_fefac .XHeight );};
// 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 (_bbdba *PdfPageResources )GetColorspaces ()(*PdfPageResourcesColorspaces ,error ){if _bbdba ._febfa !=nil {return _bbdba ._febfa ,nil ;};if _bbdba .ColorSpace ==nil {return nil ,nil ;};_ddacd ,_dgfgg :=_adfee (_bbdba .ColorSpace );if _dgfgg !=nil {return nil ,_dgfgg ;
};_bbdba ._febfa =_ddacd ;return _bbdba ._febfa ,nil ;};
// PdfActionNamed represents a named action.
type PdfActionNamed struct{*PdfAction ;N _ae .PdfObject ;};
// 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 ;};
// NewPdfActionSound returns a new "sound" action.
func NewPdfActionSound ()*PdfActionSound {_dbc :=NewPdfAction ();_eda :=&PdfActionSound {};_eda .PdfAction =_dbc ;_dbc .SetContext (_eda );return _eda ;};func _addeed (_gagce *_ae .PdfObjectArray )(float64 ,error ){_gfaad ,_gbdgg :=_gagce .ToFloat64Array ();
if _gbdgg !=nil {_ac .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",_gagce ,_gbdgg );};switch len (_gfaad ){case 1:return _gfaad [0],nil ;
case 3:_cceee :=PdfColorspaceDeviceRGB {};_efcea ,_beecgd :=_cceee .ColorFromFloats (_gfaad );if _beecgd !=nil {return 0.0,_beecgd ;};return _efcea .(*PdfColorDeviceRGB ).ToGray ().Val (),nil ;case 4:_edec :=PdfColorspaceDeviceCMYK {};_fbbdd ,_cagfb :=_edec .ColorFromFloats (_gfaad );
if _cagfb !=nil {return 0.0,_cagfb ;};_bdec ,_cagfb :=_edec .ColorToRGB (_fbbdd .(*PdfColorDeviceCMYK ));if _cagfb !=nil {return 0.0,_cagfb ;};return _bdec .(*PdfColorDeviceRGB ).ToGray ().Val (),nil ;};_gbdgg =_db .New ("\u0062a\u0064 \u004d\u0061\u0074\u0074\u0065\u0020\u0063\u006f\u006c\u006f\u0072");
_ac .Log .Error ("\u0074\u006f\u0047ra\u0079\u003a\u0020\u006d\u0061\u0074\u0074\u0065\u003d\u0025\u0073\u0020\u0065\u0072\u0072\u003d\u0025\u0076",_gagce ,_gbdgg );return 0.0,_gbdgg ;};func _fbefg (_egee _cb .StdFont )pdfFontSimple {_bddg :=_egee .Descriptor ();
return pdfFontSimple {fontCommon :fontCommon {_adce :"\u0054\u0079\u0070e\u0031",_cedb :_egee .Name ()},_gabf :_egee .GetMetricsTable (),_adegb :&PdfFontDescriptor {FontName :_ae .MakeName (string (_bddg .Name )),FontFamily :_ae .MakeName (_bddg .Family ),FontWeight :_ae .MakeFloat (float64 (_bddg .Weight )),Flags :_ae .MakeInteger (int64 (_bddg .Flags )),FontBBox :_ae .MakeArrayFromFloats (_bddg .BBox [:]),ItalicAngle :_ae .MakeFloat (_bddg .ItalicAngle ),Ascent :_ae .MakeFloat (_bddg .Ascent ),Descent :_ae .MakeFloat (_bddg .Descent ),CapHeight :_ae .MakeFloat (_bddg .CapHeight ),XHeight :_ae .MakeFloat (_bddg .XHeight ),StemV :_ae .MakeFloat (_bddg .StemV ),StemH :_ae .MakeFloat (_bddg .StemH )},_aacd :_egee .Encoder ()};
};
// NewPdfActionGoTo3DView returns a new "goTo3DView" action.
func NewPdfActionGoTo3DView ()*PdfActionGoTo3DView {_bbd :=NewPdfAction ();_bcd :=&PdfActionGoTo3DView {};_bcd .PdfAction =_bbd ;_bbd .SetContext (_bcd );return _bcd ;};
// DecodeArray returns the component range values for the DeviceN colorspace.
// [0 1.0 0 1.0 ...] for each color component.
func (_eedg *PdfColorspaceDeviceN )DecodeArray ()[]float64 {var _ffeg []float64 ;for _gdfc :=0;_gdfc < _eedg .GetNumComponents ();_gdfc ++{_ffeg =append (_ffeg ,0.0,1.0);};return _ffeg ;};
// ToPdfObject convert PdfInfo to pdf object.
func (_acag *PdfInfo )ToPdfObject ()_ae .PdfObject {_becdc :=_ae .MakeDict ();_becdc .SetIfNotNil ("\u0054\u0069\u0074l\u0065",_acag .Title );_becdc .SetIfNotNil ("\u0041\u0075\u0074\u0068\u006f\u0072",_acag .Author );_becdc .SetIfNotNil ("\u0053u\u0062\u006a\u0065\u0063\u0074",_acag .Subject );
_becdc .SetIfNotNil ("\u004b\u0065\u0079\u0077\u006f\u0072\u0064\u0073",_acag .Keywords );_becdc .SetIfNotNil ("\u0043r\u0065\u0061\u0074\u006f\u0072",_acag .Creator );_becdc .SetIfNotNil ("\u0050\u0072\u006f\u0064\u0075\u0063\u0065\u0072",_acag .Producer );
_becdc .SetIfNotNil ("\u0054r\u0061\u0070\u0070\u0065\u0064",_acag .Trapped );if _acag .CreationDate !=nil {_becdc .SetIfNotNil ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065",_acag .CreationDate .ToPdfObject ());};if _acag .ModifiedDate !=nil {_becdc .SetIfNotNil ("\u004do\u0064\u0044\u0061\u0074\u0065",_acag .ModifiedDate .ToPdfObject ());
};for _ ,_fafea :=range _acag ._ffgag .Keys (){_becdc .SetIfNotNil (_fafea ,_acag ._ffgag .Get (_fafea ));};return _becdc ;};
// GetCharMetrics returns the char metrics for character code `code`.
func (_eagg pdfFontType0 )GetCharMetrics (code _bgg .CharCode )(_cb .CharMetrics ,bool ){if _eagg .DescendantFont ==nil {_ac .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",_eagg );
return _cb .CharMetrics {},false ;};return _eagg .DescendantFont .GetCharMetrics (code );};
// 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 (_febg *PdfFont )GetRuneMetrics (r rune )(CharMetrics ,bool ){_ddcda :=_febg .actualFont ();if _ddcda ==nil {_ac .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",_febg ._dabg );
return _cb .CharMetrics {},false ;};if _cfecg ,_cacb :=_ddcda .GetRuneMetrics (r );_cacb {return _cfecg ,true ;};if _dddg ,_eabfd :=_febg .GetFontDescriptor ();_eabfd ==nil &&_dddg !=nil {return _cb .CharMetrics {Wx :_dddg ._ffdc },true ;};_ac .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",_febg );
return _cb .CharMetrics {},false ;};
// Width returns the width of `rect`.
func (_eceda *PdfRectangle )Width ()float64 {return _ag .Abs (_eceda .Urx -_eceda .Llx )};type crossReference struct{Type int ;
// Type 1
Offset int64 ;Generation int64 ;
// Type 2
ObjectNumber int ;Index int ;};
// GetPageDict converts the Page to a PDF object dictionary.
func (_cffbf *PdfPage )GetPageDict ()*_ae .PdfObjectDictionary {_gebgd :=_cffbf ._efgca ;_gebgd .Clear ();_gebgd .Set ("\u0054\u0079\u0070\u0065",_ae .MakeName ("\u0050\u0061\u0067\u0065"));_gebgd .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_cffbf .Parent );
if _cffbf .LastModified !=nil {_gebgd .Set ("\u004c\u0061\u0073t\u004d\u006f\u0064\u0069\u0066\u0069\u0065\u0064",_cffbf .LastModified .ToPdfObject ());};if _cffbf .Resources !=nil {_gebgd .Set ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s",_cffbf .Resources .ToPdfObject ());
};if _cffbf .CropBox !=nil {_gebgd .Set ("\u0043r\u006f\u0070\u0042\u006f\u0078",_cffbf .CropBox .ToPdfObject ());};if _cffbf .MediaBox !=nil {_gebgd .Set ("\u004d\u0065\u0064\u0069\u0061\u0042\u006f\u0078",_cffbf .MediaBox .ToPdfObject ());};if _cffbf .BleedBox !=nil {_gebgd .Set ("\u0042\u006c\u0065\u0065\u0064\u0042\u006f\u0078",_cffbf .BleedBox .ToPdfObject ());
};if _cffbf .TrimBox !=nil {_gebgd .Set ("\u0054r\u0069\u006d\u0042\u006f\u0078",_cffbf .TrimBox .ToPdfObject ());};if _cffbf .ArtBox !=nil {_gebgd .Set ("\u0041\u0072\u0074\u0042\u006f\u0078",_cffbf .ArtBox .ToPdfObject ());};_gebgd .SetIfNotNil ("\u0042\u006f\u0078C\u006f\u006c\u006f\u0072\u0049\u006e\u0066\u006f",_cffbf .BoxColorInfo );
_gebgd .SetIfNotNil ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073",_cffbf .Contents );if _cffbf .Rotate !=nil {_gebgd .Set ("\u0052\u006f\u0074\u0061\u0074\u0065",_ae .MakeInteger (*_cffbf .Rotate ));};_gebgd .SetIfNotNil ("\u0047\u0072\u006fu\u0070",_cffbf .Group );
_gebgd .SetIfNotNil ("\u0054\u0068\u0075m\u0062",_cffbf .Thumb );_gebgd .SetIfNotNil ("\u0042",_cffbf .B );_gebgd .SetIfNotNil ("\u0044\u0075\u0072",_cffbf .Dur );_gebgd .SetIfNotNil ("\u0054\u0072\u0061n\u0073",_cffbf .Trans );_gebgd .SetIfNotNil ("\u0041\u0041",_cffbf .AA );
_gebgd .SetIfNotNil ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061",_cffbf .Metadata );_gebgd .SetIfNotNil ("\u0050i\u0065\u0063\u0065\u0049\u006e\u0066o",_cffbf .PieceInfo );_gebgd .SetIfNotNil ("\u0053\u0074\u0072\u0075\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074\u0073",_cffbf .StructParents );
_gebgd .SetIfNotNil ("\u0049\u0044",_cffbf .ID );_gebgd .SetIfNotNil ("\u0050\u005a",_cffbf .PZ );_gebgd .SetIfNotNil ("\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006fn\u0049\u006e\u0066\u006f",_cffbf .SeparationInfo );_gebgd .SetIfNotNil ("\u0054\u0061\u0062\u0073",_cffbf .Tabs );
_gebgd .SetIfNotNil ("T\u0065m\u0070\u006c\u0061\u0074\u0065\u0049\u006e\u0073t\u0061\u006e\u0074\u0069at\u0065\u0064",_cffbf .TemplateInstantiated );_gebgd .SetIfNotNil ("\u0050r\u0065\u0073\u0053\u0074\u0065\u0070s",_cffbf .PresSteps );_gebgd .SetIfNotNil ("\u0055\u0073\u0065\u0072\u0055\u006e\u0069\u0074",_cffbf .UserUnit );
_gebgd .SetIfNotNil ("\u0056\u0050",_cffbf .VP );if _cffbf ._dgfec !=nil {_egcfcg :=_ae .MakeArray ();for _ ,_gffca :=range _cffbf ._dgfec {if _efbeca :=_gffca .GetContext ();_efbeca !=nil {_egcfcg .Append (_efbeca .ToPdfObject ());}else {_egcfcg .Append (_gffca .ToPdfObject ());
};};if _egcfcg .Len ()> 0{_gebgd .Set ("\u0041\u006e\u006e\u006f\u0074\u0073",_egcfcg );};}else if _cffbf .Annots !=nil {_gebgd .SetIfNotNil ("\u0041\u006e\u006e\u006f\u0074\u0073",_cffbf .Annots );};return _gebgd ;};var (ErrRequiredAttributeMissing =_db .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 =_db .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0061\u0074\u0074\u0072i\u0062\u0075\u0074\u0065");ErrTypeCheck =_db .New ("\u0074\u0079\u0070\u0065\u0020\u0063\u0068\u0065\u0063\u006b");_cdgb =_db .New ("\u0072\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b\u0020e\u0072\u0072\u006f\u0072");
ErrEncrypted =_db .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 =_db .New ("\u0066\u006fn\u0074\u0020\u006eo\u0074\u0020\u0064\u0065\u0066\u0069\u006e\u0065\u0064");
ErrFontNotSupported =_bcg .Errorf ("u\u006e\u0073\u0075\u0070po\u0072t\u0065\u0064\u0020\u0066\u006fn\u0074\u0020\u0028\u0025\u0077\u0029",_ae .ErrNotSupported );ErrType1CFontNotSupported =_bcg .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",_ae .ErrNotSupported );
ErrType3FontNotSupported =_bcg .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",_ae .ErrNotSupported );
ErrTTCmapNotSupported =_bcg .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",_ae .ErrNotSupported );
ErrSignNotEnoughSpace =_bcg .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 =_bcg .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 _accce ()string {return _ac .Version };
// GetNameDictionary returns the Names entry in the PDF catalog.
// See section 7.7.4 "Name Dictionary" (p. 80 PDF32000_2008).
func (_cfbfc *PdfReader )GetNameDictionary ()(_ae .PdfObject ,error ){_beffd :=_ae .ResolveReference (_cfbfc ._aedf .Get ("\u004e\u0061\u006de\u0073"));if _beffd ==nil {return nil ,nil ;};if !_cfbfc ._ffggb {_ffbdf :=_cfbfc .traverseObjectData (_beffd );
if _ffbdf !=nil {return nil ,_ffbdf ;};};return _beffd ,nil ;};const (_ebaf =0x00001;_gfdfb =0x00002;_fdbaa =0x00004;_acgd =0x00008;_gcga =0x00020;_fggg =0x00040;_fgfeg =0x10000;_edbaf =0x20000;_gdec =0x40000;);
// Val returns the value of the color.
func (_adcg *PdfColorCalGray )Val ()float64 {return float64 (*_adcg )};func _fffbg (_dfgc _ae .PdfObject )(*PdfFunctionType3 ,error ){_aaef :=&PdfFunctionType3 {};var _fegf *_ae .PdfObjectDictionary ;if _dgbeb ,_cbdgd :=_dfgc .(*_ae .PdfIndirectObject );
_cbdgd {_cgde ,_cgff :=_dgbeb .PdfObject .(*_ae .PdfObjectDictionary );if !_cgff {return nil ,_db .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_aaef ._gege =_dgbeb ;_fegf =_cgde ;}else if _ddfeg ,_ddcdaf :=_dfgc .(*_ae .PdfObjectDictionary );
_ddcdaf {_fegf =_ddfeg ;}else {return nil ,_db .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_cbgc ,_afegf :=_ae .TraceToDirectObject (_fegf .Get ("\u0044\u006f\u006d\u0061\u0069\u006e")).(*_ae .PdfObjectArray );
if !_afegf {_ac .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_db .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 _cbgc .Len ()!=2{_ac .Log .Error ("\u0044\u006f\u006d\u0061\u0069\u006e\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");return nil ,_db .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0064\u006f\u006da\u0069\u006e\u0020\u0072an\u0067\u0065");};_fcec ,_acdb :=_cbgc .ToFloat64Array ();
if _acdb !=nil {return nil ,_acdb ;};_aaef .Domain =_fcec ;_cbgc ,_afegf =_ae .TraceToDirectObject (_fegf .Get ("\u0052\u0061\u006eg\u0065")).(*_ae .PdfObjectArray );if _afegf {if _cbgc .Len ()< 0||_cbgc .Len ()%2!=0{return nil ,_db .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0061\u006e\u0067\u0065");
};_abaga ,_edee :=_cbgc .ToFloat64Array ();if _edee !=nil {return nil ,_edee ;};_aaef .Range =_abaga ;};_cbgc ,_afegf =_ae .TraceToDirectObject (_fegf .Get ("\u0046u\u006e\u0063\u0074\u0069\u006f\u006es")).(*_ae .PdfObjectArray );if !_afegf {_ac .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 ,_db .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");};_aaef .Functions =[]PdfFunction {};
for _ ,_bgfb :=range _cbgc .Elements (){_abeae ,_ggda :=_gdbef (_bgfb );if _ggda !=nil {return nil ,_ggda ;};_aaef .Functions =append (_aaef .Functions ,_abeae );};_cbgc ,_afegf =_ae .TraceToDirectObject (_fegf .Get ("\u0042\u006f\u0075\u006e\u0064\u0073")).(*_ae .PdfObjectArray );
if !_afegf {_ac .Log .Error ("B\u006fu\u006e\u0064\u0073\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_db .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");
};_ccgcg ,_acdb :=_cbgc .ToFloat64Array ();if _acdb !=nil {return nil ,_acdb ;};_aaef .Bounds =_ccgcg ;if len (_aaef .Bounds )!=len (_aaef .Functions )-1{_ac .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 (_aaef .Bounds ),len (_aaef .Functions ));
return nil ,_db .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_cbgc ,_afegf =_ae .TraceToDirectObject (_fegf .Get ("\u0045\u006e\u0063\u006f\u0064\u0065")).(*_ae .PdfObjectArray );if !_afegf {_ac .Log .Error ("E\u006ec\u006f\u0064\u0065\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");
return nil ,_db .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");};_fggbc ,_acdb :=_cbgc .ToFloat64Array ();
if _acdb !=nil {return nil ,_acdb ;};_aaef .Encode =_fggbc ;if len (_aaef .Encode )!=2*len (_aaef .Functions ){_ac .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 (_aaef .Encode ),len (_aaef .Functions ));
return nil ,_db .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};return _aaef ,nil ;};func _cede (_egcdc *fontCommon )*pdfFontType0 {return &pdfFontType0 {fontCommon :*_egcdc }};
// NewPdfOutputIntentFromPdfObject creates a new PdfOutputIntent from the input core.PdfObject.
func NewPdfOutputIntentFromPdfObject (object _ae .PdfObject )(*PdfOutputIntent ,error ){_eddgd :=&PdfOutputIntent {};if _edaac :=_eddgd .ParsePdfObject (object );_edaac !=nil {return nil ,_edaac ;};return _eddgd ,nil ;};func (_aecac *LTV )getCRLs (_dcce []*_fc .Certificate )([][]byte ,error ){_aabcb :=make ([][]byte ,0,len (_dcce ));
for _ ,_babgf :=range _dcce {for _ ,_bagda :=range _babgf .CRLDistributionPoints {if _aecac .CertClient .IsCA (_babgf ){continue ;};_bgbfb ,_ecbff :=_aecac .CRLClient .MakeRequest (_bagda ,_babgf );if _ecbff !=nil {_ac .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",_ecbff );
continue ;};_aabcb =append (_aabcb ,_bgbfb );};};return _aabcb ,nil ;};
// PdfDate represents a date, which is a PDF string of the form:
// (D:YYYYMMDDHHmmSSOHH'mm)
type PdfDate struct{_edbbd int64 ;_cedda int64 ;_ddefe int64 ;_bedgeg int64 ;_fbcga int64 ;_eabef int64 ;_eaedg byte ;_adaec int64 ;_befea int64 ;};
// PdfActionRendition represents a Rendition action.
type PdfActionRendition struct{*PdfAction ;R _ae .PdfObject ;AN _ae .PdfObject ;OP _ae .PdfObject ;JS _ae .PdfObject ;};
// SetAnnotations sets the annotations list.
func (_adeee *PdfPage )SetAnnotations (annotations []*PdfAnnotation ){_adeee ._dgfec =annotations };
// ToPdfObject implements interface PdfModel.
func (_ecad *PdfAnnotationCircle )ToPdfObject ()_ae .PdfObject {_ecad .PdfAnnotation .ToPdfObject ();_cebaf :=_ecad ._gcgf ;_cfgg :=_cebaf .PdfObject .(*_ae .PdfObjectDictionary );_ecad .PdfAnnotationMarkup .appendToPdfDictionary (_cfgg );_cfgg .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ae .MakeName ("\u0043\u0069\u0072\u0063\u006c\u0065"));
_cfgg .SetIfNotNil ("\u0042\u0053",_ecad .BS );_cfgg .SetIfNotNil ("\u0049\u0043",_ecad .IC );_cfgg .SetIfNotNil ("\u0042\u0045",_ecad .BE );_cfgg .SetIfNotNil ("\u0052\u0044",_ecad .RD );return _cebaf ;};
// SetPdfTitle sets the Title attribute of the output PDF.
func SetPdfTitle (title string ){_cadgd .Lock ();defer _cadgd .Unlock ();_aedg =title };func _adfccb (_bedbf *_ae .PdfIndirectObject )(*PdfOutline ,error ){_bfgb ,_ggdf :=_bedbf .PdfObject .(*_ae .PdfObjectDictionary );if !_ggdf {return nil ,_f .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");
};_beadc :=NewPdfOutline ();if _agfb :=_bfgb .Get ("\u0054\u0079\u0070\u0065");_agfb !=nil {_gdeca ,_decbd :=_agfb .(*_ae .PdfObjectName );if _decbd {if *_gdeca !="\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0073"{_ac .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",*_gdeca );
};};};if _eaeag :=_bfgb .Get ("\u0043\u006f\u0075n\u0074");_eaeag !=nil {_cagd ,_afafbb :=_ae .GetNumberAsInt64 (_eaeag );if _afafbb !=nil {return nil ,_afafbb ;};_beadc .Count =&_cagd ;};return _beadc ,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 (_ffbe *PdfReader )RepairAcroForm (opts *AcroFormRepairOptions )error {var _bebba []*PdfField ;_fbdc :=map[*_ae .PdfIndirectObject ]struct{}{};for _ ,_cdbb :=range _ffbe .PageList {_eeaa ,_dafac :=_cdbb .GetAnnotations ();if _dafac !=nil {return _dafac ;
};for _ ,_dgcbb :=range _eeaa {var _bbgde *PdfField ;switch _ecebd :=_dgcbb .GetContext ().(type ){case *PdfAnnotationWidget :if _ecebd ._bab !=nil {_bbgde =_ecebd ._bab ;break ;};if _aggbb ,_acgaf :=_ae .GetIndirect (_ecebd .Parent );_acgaf {_bbgde ,_dafac =_ffbe .newPdfFieldFromIndirectObject (_aggbb ,nil );
if _dafac ==nil {break ;};_ac .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",_aggbb ,_dafac );
};if _ecebd ._gcgf !=nil {_bbgde ,_dafac =_ffbe .newPdfFieldFromIndirectObject (_ecebd ._gcgf ,nil );if _dafac ==nil {break ;};_ac .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",_ecebd ._gcgf ,_dafac );
};};if _bbgde ==nil {continue ;};if _ ,_geeaa :=_fbdc [_bbgde ._facca ];_geeaa {continue ;};_fbdc [_bbgde ._facca ]=struct{}{};_bebba =append (_bebba ,_bbgde );};};if len (_bebba )==0{return nil ;};if _ffbe .AcroForm ==nil {_ffbe .AcroForm =NewPdfAcroForm ();
};_ffbe .AcroForm .Fields =&_bebba ;return nil ;};
// NewPdfAnnotation returns an initialized generic PDF annotation model.
func NewPdfAnnotation ()*PdfAnnotation {_acg :=&PdfAnnotation {};_acg ._gcgf =_ae .MakeIndirectObject (_ae .MakeDict ());return _acg ;};
// PdfActionSubmitForm represents a submitForm action.
type PdfActionSubmitForm struct{*PdfAction ;F *PdfFilespec ;Fields _ae .PdfObject ;Flags _ae .PdfObject ;};
// GetContentStream returns the XObject Form's content stream.
func (_feaef *XObjectForm )GetContentStream ()([]byte ,error ){_aeeff ,_gacd :=_ae .DecodeStream (_feaef ._fccdf );if _gacd !=nil {return nil ,_gacd ;};return _aeeff ,nil ;};
// ToPdfObject implements interface PdfModel.
func (_acd *PdfActionImportData )ToPdfObject ()_ae .PdfObject {_acd .PdfAction .ToPdfObject ();_bea :=_acd ._cbe ;_egc :=_bea .PdfObject .(*_ae .PdfObjectDictionary );_egc .SetIfNotNil ("\u0053",_ae .MakeName (string (ActionTypeImportData )));if _acd .F !=nil {_egc .Set ("\u0046",_acd .F .ToPdfObject ());
};return _bea ;};
// GetTrailer returns the PDF's trailer dictionary.
func (_fafgd *PdfReader )GetTrailer ()(*_ae .PdfObjectDictionary ,error ){_bbggcf :=_fafgd ._bfcga .GetTrailer ();if _bbggcf ==nil {return nil ,_db .New ("\u0074r\u0061i\u006c\u0065\u0072\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};return _bbggcf ,nil ;
};
// Inspect inspects the object types, subtypes and content in the PDF file returning a map of
// object type to number of instances of each.
func (_bafbe *PdfReader )Inspect ()(map[string ]int ,error ){return _bafbe ._bfcga .Inspect ()};
// NewPdfColorspaceDeviceGray returns a new grayscale colorspace.
func NewPdfColorspaceDeviceGray ()*PdfColorspaceDeviceGray {return &PdfColorspaceDeviceGray {}};
// GetRuneMetrics returns the character metrics for the specified rune.
// A bool flag is returned to indicate whether or not the entry was found.
func (_bgga pdfFontType3 )GetRuneMetrics (r rune )(_cb .CharMetrics ,bool ){_babf :=_bgga .Encoder ();if _babf ==nil {_ac .Log .Debug ("\u004e\u006f\u0020en\u0063\u006f\u0064\u0065\u0072\u0020\u0066\u006f\u0072\u0020\u0066\u006f\u006e\u0074\u0073\u003d\u0025\u0073",_bgga );
return _cb .CharMetrics {},false ;};_dbgdb ,_gffc :=_babf .RuneToCharcode (r );if !_gffc {if r !=' '{_ac .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 ,_bgga );
};return _cb .CharMetrics {},false ;};_febee ,_gadbc :=_bgga .GetCharMetrics (_dbgdb );return _febee ,_gadbc ;};
// ToPdfObject implements interface PdfModel.
func (_cdgf *PdfAnnotationLine )ToPdfObject ()_ae .PdfObject {_cdgf .PdfAnnotation .ToPdfObject ();_dbeg :=_cdgf ._gcgf ;_gaa :=_dbeg .PdfObject .(*_ae .PdfObjectDictionary );_cdgf .PdfAnnotationMarkup .appendToPdfDictionary (_gaa );_gaa .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ae .MakeName ("\u004c\u0069\u006e\u0065"));
_gaa .SetIfNotNil ("\u004c",_cdgf .L );_gaa .SetIfNotNil ("\u0042\u0053",_cdgf .BS );_gaa .SetIfNotNil ("\u004c\u0045",_cdgf .LE );_gaa .SetIfNotNil ("\u0049\u0043",_cdgf .IC );_gaa .SetIfNotNil ("\u004c\u004c",_cdgf .LL );_gaa .SetIfNotNil ("\u004c\u004c\u0045",_cdgf .LLE );
_gaa .SetIfNotNil ("\u0043\u0061\u0070",_cdgf .Cap );_gaa .SetIfNotNil ("\u0049\u0054",_cdgf .IT );_gaa .SetIfNotNil ("\u004c\u004c\u004f",_cdgf .LLO );_gaa .SetIfNotNil ("\u0043\u0050",_cdgf .CP );_gaa .SetIfNotNil ("\u004de\u0061\u0073\u0075\u0072\u0065",_cdgf .Measure );
_gaa .SetIfNotNil ("\u0043\u004f",_cdgf .CO );return _dbeg ;};
// String returns a human readable description of `fontfile`.
func (_cegg *fontFile )String ()string {_ecacf :="\u005b\u004e\u006f\u006e\u0065\u005d";if _cegg ._dbfd !=nil {_ecacf =_cegg ._dbfd .String ();};return _f .Sprintf ("\u0046O\u004e\u0054\u0046\u0049\u004c\u0045\u007b\u0025\u0023\u0071\u0020e\u006e\u0063\u006f\u0064\u0065\u0072\u003d\u0025\u0073\u007d",_cegg ._deef ,_ecacf );
};
// PdfAnnotationProjection represents Projection annotations.
type PdfAnnotationProjection struct{*PdfAnnotation ;*PdfAnnotationMarkup ;};
// HasColorspaceByName checks if the colorspace with the specified name exists in the page resources.
func (_begae *PdfPageResources )HasColorspaceByName (keyName _ae .PdfObjectName )bool {_aadfb ,_geffge :=_begae .GetColorspaces ();if _geffge !=nil {_ac .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",_geffge );
return false ;};if _aadfb ==nil {return false ;};_ ,_bedea :=_aadfb .Colorspaces [string (keyName )];return _bedea ;};func (_babad *PdfWriter )seekByName (_edbcf _ae .PdfObject ,_cgcfa []string ,_adada string )([]_ae .PdfObject ,error ){_ac .Log .Trace ("\u0053\u0065\u0065\u006b\u0020\u0062\u0079\u0020\u006e\u0061\u006d\u0065.\u002e\u0020\u0025\u0054",_edbcf );
var _acfe []_ae .PdfObject ;if _acaee ,_eaacac :=_edbcf .(*_ae .PdfIndirectObject );_eaacac {return _babad .seekByName (_acaee .PdfObject ,_cgcfa ,_adada );};if _fdafb ,_cgcfge :=_edbcf .(*_ae .PdfObjectStream );_cgcfge {return _babad .seekByName (_fdafb .PdfObjectDictionary ,_cgcfa ,_adada );
};if _ecaba ,_ccaac :=_edbcf .(*_ae .PdfObjectDictionary );_ccaac {_ac .Log .Trace ("\u0044\u0069\u0063\u0074");for _ ,_fgfde :=range _ecaba .Keys (){_fgdbc :=_ecaba .Get (_fgfde );if string (_fgfde )==_adada {_acfe =append (_acfe ,_fgdbc );};for _ ,_aeegdc :=range _cgcfa {if string (_fgfde )==_aeegdc {_ac .Log .Trace ("\u0046\u006f\u006c\u006c\u006f\u0077\u0020\u006b\u0065\u0079\u0020\u0025\u0073",_aeegdc );
_edaab ,_bcfca :=_babad .seekByName (_fgdbc ,_cgcfa ,_adada );if _bcfca !=nil {return _acfe ,_bcfca ;};_acfe =append (_acfe ,_edaab ...);break ;};};};return _acfe ,nil ;};return _acfe ,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 (_fbffd *XObjectForm )SetContentStream (content []byte ,encoder _ae .StreamEncoder )error {_caaea :=content ;if encoder ==nil {if _fbffd .Filter !=nil {encoder =_fbffd .Filter ;}else {encoder =_ae .NewRawEncoder ();};};_gcfea ,_afdbag :=encoder .EncodeBytes (_caaea );
if _afdbag !=nil {return _afdbag ;};_caaea =_gcfea ;_fbffd .Stream =_caaea ;_fbffd .Filter =encoder ;return nil ;};
// GetBorderWidth returns the border style's width.
func (_deeca *PdfBorderStyle )GetBorderWidth ()float64 {if _deeca .W ==nil {return 1;};return *_deeca .W ;};var _efea =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":{}};
// 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 *_ae .PdfObjectInteger ;TilingType *_ae .PdfObjectInteger ;BBox *PdfRectangle ;XStep *_ae .PdfObjectFloat ;YStep *_ae .PdfObjectFloat ;Resources *PdfPageResources ;Matrix *_ae .PdfObjectArray ;};func (_fcbcf *LTV )generateVRIKey (_cacd *PdfSignature )(string ,error ){_ffgeg ,_ddcbg :=_gbgbd (_cacd .Contents .Bytes ());
if _ddcbg !=nil {return "",_ddcbg ;};return _eg .ToUpper (_g .EncodeToString (_ffgeg )),nil ;};
// GetExtGState gets the ExtGState specified by keyName. Returns a bool
// indicating whether it was found or not.
func (_fbfec *PdfPageResources )GetExtGState (keyName _ae .PdfObjectName )(_ae .PdfObject ,bool ){if _fbfec .ExtGState ==nil {return nil ,false ;};_eadbe ,_aagfcg :=_ae .TraceToDirectObject (_fbfec .ExtGState ).(*_ae .PdfObjectDictionary );if !_aagfcg {_ac .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",_fbfec .ExtGState );
return nil ,false ;};if _cccff :=_eadbe .Get (keyName );_cccff !=nil {return _cccff ,true ;};return nil ,false ;};
// SetLocation sets the `Location` field of the signature.
func (_eabagc *PdfSignature )SetLocation (location string ){_eabagc .Location =_ae .MakeString (location );};
// NewPdfActionImportData returns a new "import data" action.
func NewPdfActionImportData ()*PdfActionImportData {_dcf :=NewPdfAction ();_ga :=&PdfActionImportData {};_ga .PdfAction =_dcf ;_dcf .SetContext (_ga );return _ga ;};
// IsSimple returns true if `font` is a simple font.
func (_aaae *PdfFont )IsSimple ()bool {_ ,_gdeb :=_aaae ._dabg .(*pdfFontSimple );return _gdeb };
// 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 (_abfc *PdfReader )FlattenFields (allannots bool ,appgen FieldAppearanceGenerator )error {return _abfc .flattenFieldsWithOpts (allannots ,appgen ,nil );};
// HasFontByName checks whether a font is defined by the specified keyName.
func (_gffbg *PdfPageResources )HasFontByName (keyName _ae .PdfObjectName )bool {_ ,_gega :=_gffbg .GetFontByName (keyName );return _gega ;};
// 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 (_fedf *PdfFont )CharcodesToUnicode (charcodes []_bgg .CharCode )[]rune {_fccdc ,_ ,_ :=_fedf .CharcodesToUnicodeWithStats (charcodes );return _fccdc ;};func _acaae ()string {_cadgd .Lock ();defer _cadgd .Unlock ();if len (_ecgbe )> 0{return _ecgbe ;
};return "\u0055n\u0069\u0044\u006f\u0063 \u002d\u0020\u0068\u0074\u0074p\u003a/\u002fu\u006e\u0069\u0064\u006f\u0063\u002e\u0069o";};
// 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 (_bffaab *PdfReader )AcroFormNeedsRepair ()(bool ,error ){var _edada []*PdfField ;if _bffaab .AcroForm !=nil {_edada =_bffaab .AcroForm .AllFields ();};_ccbbf :=make (map[*PdfField ]struct{},len (_edada ));for _ ,_ebfeb :=range _edada {_ccbbf [_ebfeb ]=struct{}{};
};for _ ,_fdacgg :=range _bffaab .PageList {_fcad ,_cgee :=_fdacgg .GetAnnotations ();if _cgee !=nil {return false ,_cgee ;};for _ ,_fgad :=range _fcad {_fbgee ,_feeea :=_fgad .GetContext ().(*PdfAnnotationWidget );if !_feeea {continue ;};_cead :=_fbgee .Field ();
if _cead ==nil {return true ,nil ;};if _ ,_dccbf :=_ccbbf [_cead ];!_dccbf {return true ,nil ;};};};return false ,nil ;};
// NewGrayImageFromGoImage creates a new grayscale unidoc Image from a golang Image.
func (_gdbf DefaultImageHandler )NewGrayImageFromGoImage (goimg _de .Image )(*Image ,error ){_fddaf :=goimg .Bounds ();_gefag :=&Image {Width :int64 (_fddaf .Dx ()),Height :int64 (_fddaf .Dy ()),ColorComponents :1,BitsPerComponent :8};switch _bfbgb :=goimg .(type ){case *_de .Gray :if len (_bfbgb .Pix )!=_fddaf .Dx ()*_fddaf .Dy (){_bdegg ,_afbg :=_afc .GrayConverter .Convert (goimg );
if _afbg !=nil {return nil ,_afbg ;};_gefag .Data =_bdegg .Pix ();}else {_gefag .Data =_bfbgb .Pix ;};case *_de .Gray16 :_gefag .BitsPerComponent =16;if len (_bfbgb .Pix )!=_fddaf .Dx ()*_fddaf .Dy ()*2{_gaffg ,_cageg :=_afc .Gray16Converter .Convert (goimg );
if _cageg !=nil {return nil ,_cageg ;};_gefag .Data =_gaffg .Pix ();}else {_gefag .Data =_bfbgb .Pix ;};case _afc .Image :_addcb :=_bfbgb .Base ();if _addcb .ColorComponents ==1{_gefag .BitsPerComponent =int64 (_addcb .BitsPerComponent );_gefag .Data =_addcb .Data ;
return _gefag ,nil ;};_ebgga ,_efbf :=_afc .GrayConverter .Convert (goimg );if _efbf !=nil {return nil ,_efbf ;};_gefag .Data =_ebgga .Pix ();default:_adda ,_geaac :=_afc .GrayConverter .Convert (goimg );if _geaac !=nil {return nil ,_geaac ;};_gefag .Data =_adda .Pix ();
};return _gefag ,nil ;};func (_abfe *PdfReader )newPdfAnnotationProjectionFromDict (_egcd *_ae .PdfObjectDictionary )(*PdfAnnotationProjection ,error ){_ggb :=&PdfAnnotationProjection {};_bdgb ,_gca :=_abfe .newPdfAnnotationMarkupFromDict (_egcd );if _gca !=nil {return nil ,_gca ;
};_ggb .PdfAnnotationMarkup =_bdgb ;return _ggb ,nil ;};
// ToInteger convert to an integer format.
func (_ecgb *PdfColorCalRGB )ToInteger (bits int )[3]uint32 {_eadd :=_ag .Pow (2,float64 (bits ))-1;return [3]uint32 {uint32 (_eadd *_ecgb .A ()),uint32 (_eadd *_ecgb .B ()),uint32 (_eadd *_ecgb .C ())};};func _eddea (_acgfb _ae .PdfObject )(*PdfShading ,error ){_bbbd :=&PdfShading {};
var _cfccc *_ae .PdfObjectDictionary ;if _bgaaa ,_dddbg :=_ae .GetIndirect (_acgfb );_dddbg {_bbbd ._dcdgda =_bgaaa ;_edfef ,_fgbgf :=_bgaaa .PdfObject .(*_ae .PdfObjectDictionary );if !_fgbgf {_ac .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 ,_ae .ErrTypeError ;};_cfccc =_edfef ;}else if _defbf ,_fdde :=_ae .GetStream (_acgfb );_fdde {_bbbd ._dcdgda =_defbf ;_cfccc =_defbf .PdfObjectDictionary ;}else if _adge ,_egaea :=_ae .GetDict (_acgfb );_egaea {_bbbd ._dcdgda =_adge ;_cfccc =_adge ;
}else {_ac .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",_acgfb );return nil ,_ae .ErrTypeError ;};if _cfccc ==nil {_ac .Log .Debug ("\u0044i\u0063t\u0069\u006f\u006e\u0061\u0072y\u0020\u006di\u0073\u0073\u0069\u006e\u0067");
return nil ,_db .New ("\u0064\u0069\u0063t\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};_acgfb =_cfccc .Get ("S\u0068\u0061\u0064\u0069\u006e\u0067\u0054\u0079\u0070\u0065");if _acgfb ==nil {_ac .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 ;};_acgfb =_ae .TraceToDirectObject (_acgfb );_afcc ,_ebcf :=_acgfb .(*_ae .PdfObjectInteger );if !_ebcf {_ac .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",_acgfb );
return nil ,_ae .ErrTypeError ;};if *_afcc < 1||*_afcc > 7{_ac .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",*_afcc );
return nil ,_ae .ErrTypeError ;};_bbbd .ShadingType =_afcc ;_acgfb =_cfccc .Get ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065");if _acgfb ==nil {_ac .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 ;};_bgacg ,_bcfaf :=NewPdfColorspaceFromPdfObject (_acgfb );if _bcfaf !=nil {_ac .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",_bcfaf );
return nil ,_bcfaf ;};_bbbd .ColorSpace =_bgacg ;_acgfb =_cfccc .Get ("\u0042\u0061\u0063\u006b\u0067\u0072\u006f\u0075\u006e\u0064");if _acgfb !=nil {_acgfb =_ae .TraceToDirectObject (_acgfb );_dbdcf ,_edddb :=_acgfb .(*_ae .PdfObjectArray );if !_edddb {_ac .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)",_acgfb );
return nil ,_ae .ErrTypeError ;};_bbbd .Background =_dbdcf ;};_acgfb =_cfccc .Get ("\u0042\u0042\u006f\u0078");if _acgfb !=nil {_acgfb =_ae .TraceToDirectObject (_acgfb );_cgebgf ,_fbddb :=_acgfb .(*_ae .PdfObjectArray );if !_fbddb {_ac .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)",_acgfb );
return nil ,_ae .ErrTypeError ;};_dfea ,_dabbb :=NewPdfRectangle (*_cgebgf );if _dabbb !=nil {_ac .Log .Debug ("\u0042\u0042\u006f\u0078\u0020\u0065\u0072\u0072\u006fr\u003a\u0020\u0025\u0076",_dabbb );return nil ,_dabbb ;};_bbbd .BBox =_dfea ;};_acgfb =_cfccc .Get ("\u0041n\u0074\u0069\u0041\u006c\u0069\u0061s");
if _acgfb !=nil {_acgfb =_ae .TraceToDirectObject (_acgfb );_ebdfb ,_gacg :=_acgfb .(*_ae .PdfObjectBool );if !_gacg {_ac .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",_acgfb );
return nil ,_ae .ErrTypeError ;};_bbbd .AntiAlias =_ebdfb ;};switch *_afcc {case 1:_bcdc ,_gcfaa :=_acbdb (_cfccc );if _gcfaa !=nil {return nil ,_gcfaa ;};_bcdc .PdfShading =_bbbd ;_bbbd ._ffgbf =_bcdc ;return _bbbd ,nil ;case 2:_fdaa ,_baddg :=_fbbbae (_cfccc );
if _baddg !=nil {return nil ,_baddg ;};_fdaa .PdfShading =_bbbd ;_bbbd ._ffgbf =_fdaa ;return _bbbd ,nil ;case 3:_fafbd ,_dffaa :=_fbfeb (_cfccc );if _dffaa !=nil {return nil ,_dffaa ;};_fafbd .PdfShading =_bbbd ;_bbbd ._ffgbf =_fafbd ;return _bbbd ,nil ;
case 4:_bbgfd ,_edcdb :=_baee (_cfccc );if _edcdb !=nil {return nil ,_edcdb ;};_bbgfd .PdfShading =_bbbd ;_bbbd ._ffgbf =_bbgfd ;return _bbbd ,nil ;case 5:_dgadg ,_cddf :=_dbcg (_cfccc );if _cddf !=nil {return nil ,_cddf ;};_dgadg .PdfShading =_bbbd ;_bbbd ._ffgbf =_dgadg ;
return _bbbd ,nil ;case 6:_gbefa ,_agacb :=_dbaeg (_cfccc );if _agacb !=nil {return nil ,_agacb ;};_gbefa .PdfShading =_bbbd ;_bbbd ._ffgbf =_gbefa ;return _bbbd ,nil ;case 7:_acgde ,_fggc :=_ggfdf (_cfccc );if _fggc !=nil {return nil ,_fggc ;};_acgde .PdfShading =_bbbd ;
_bbbd ._ffgbf =_acgde ;return _bbbd ,nil ;};return nil ,_db .New ("u\u006ek\u006e\u006f\u0077\u006e\u0020\u0073\u0068\u0061d\u0069\u006e\u0067\u0020ty\u0070\u0065");};
// 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 (_dfga *PdfReader )GetObjectNums ()[]int {return _dfga ._bfcga .GetObjectNums ()};type pdfFontType0 struct{fontCommon ;_fagcg *_ae .PdfIndirectObject ;_bagdb _bgg .TextEncoder ;Encoding _ae .PdfObject ;DescendantFont *PdfFont ;_gbced *_abg .CMap ;
};
// 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 (_gbb *PdfColorspaceLab )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=3{return nil ,_db .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_ecbbg :=vals [0];if _ecbbg < 0.0||_ecbbg > 100.0{_ac .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",_ecbbg );
return nil ,ErrColorOutOfRange ;};_ebec :=vals [1];_cdag :=float64 (-100);_adca :=float64 (100);if len (_gbb .Range )> 1{_cdag =_gbb .Range [0];_adca =_gbb .Range [1];};if _ebec < _cdag ||_ebec > _adca {_ac .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",_ebec ,_cdag ,_adca );
return nil ,ErrColorOutOfRange ;};_eaae :=vals [2];_fcbc :=float64 (-100);_bace :=float64 (100);if len (_gbb .Range )> 3{_fcbc =_gbb .Range [2];_bace =_gbb .Range [3];};if _eaae < _fcbc ||_eaae > _bace {_ac .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",_eaae ,_fcbc ,_bace );
return nil ,ErrColorOutOfRange ;};_gcae :=NewPdfColorLab (_ecbbg ,_ebec ,_eaae );return _gcae ,nil ;};
// NewXObjectFormFromStream builds the Form XObject from a stream object.
// TODO: Should this be exposed? Consider different access points.
func NewXObjectFormFromStream (stream *_ae .PdfObjectStream )(*XObjectForm ,error ){_eefga :=&XObjectForm {};_eefga ._fccdf =stream ;_fedaaf :=*(stream .PdfObjectDictionary );_egbbc ,_gabeb :=_ae .NewEncoderFromStream (stream );if _gabeb !=nil {return nil ,_gabeb ;
};_eefga .Filter =_egbbc ;if _ddcac :=_fedaaf .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065");_ddcac !=nil {_cdgbd ,_fcfcc :=_ddcac .(*_ae .PdfObjectName );if !_fcfcc {return nil ,_db .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");
};if *_cdgbd !="\u0046\u006f\u0072\u006d"{_ac .Log .Debug ("I\u006ev\u0061\u006c\u0069\u0064\u0020\u0066\u006f\u0072m\u0020\u0073\u0075\u0062ty\u0070\u0065");return nil ,_db .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0066\u006f\u0072m\u0020\u0073\u0075\u0062ty\u0070\u0065");
};};if _aecag :=_fedaaf .Get ("\u0046\u006f\u0072\u006d\u0054\u0079\u0070\u0065");_aecag !=nil {_eefga .FormType =_aecag ;};if _bcecc :=_fedaaf .Get ("\u0042\u0042\u006f\u0078");_bcecc !=nil {_eefga .BBox =_bcecc ;};if _dbbca :=_fedaaf .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");
_dbbca !=nil {_eefga .Matrix =_dbbca ;};if _fdfbg :=_fedaaf .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");_fdfbg !=nil {_fdfbg =_ae .TraceToDirectObject (_fdfbg );_fdcgf ,_abacge :=_fdfbg .(*_ae .PdfObjectDictionary );if !_abacge {_ac .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 ,_ae .ErrTypeError ;};_gbgcdb ,_bgafc :=NewPdfPageResourcesFromDict (_fdcgf );if _bgafc !=nil {_ac .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 ,_bgafc ;};_eefga .Resources =_gbgcdb ;_ac .Log .Trace ("\u0046\u006f\u0072\u006d r\u0065\u0073\u006f\u0075\u0072\u0063\u0065\u0073\u003a\u0020\u0025\u0023\u0076",_eefga .Resources );};_eefga .Group =_fedaaf .Get ("\u0047\u0072\u006fu\u0070");
_eefga .Ref =_fedaaf .Get ("\u0052\u0065\u0066");_eefga .MetaData =_fedaaf .Get ("\u004d\u0065\u0074\u0061\u0044\u0061\u0074\u0061");_eefga .PieceInfo =_fedaaf .Get ("\u0050i\u0065\u0063\u0065\u0049\u006e\u0066o");_eefga .LastModified =_fedaaf .Get ("\u004c\u0061\u0073t\u004d\u006f\u0064\u0069\u0066\u0069\u0065\u0064");
_eefga .StructParent =_fedaaf .Get ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074");_eefga .StructParents =_fedaaf .Get ("\u0053\u0074\u0072\u0075\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074\u0073");_eefga .OPI =_fedaaf .Get ("\u004f\u0050\u0049");
_eefga .OC =_fedaaf .Get ("\u004f\u0043");_eefga .Name =_fedaaf .Get ("\u004e\u0061\u006d\u0065");_eefga .Stream =stream .Stream ;return _eefga ,nil ;};
// AddPage adds a page to the PDF file. The new page should be an indirect object.
func (_gadaf *PdfWriter )AddPage (page *PdfPage )error {const _dgge ="\u006d\u006f\u0064el\u003a\u0050\u0064\u0066\u0057\u0072\u0069\u0074\u0065\u0072\u002e\u0041\u0064\u0064\u0050\u0061\u0067\u0065";_gabdf (page );_aabea :=page .ToPdfObject ();_ac .Log .Trace ("\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d");
_ac .Log .Trace ("\u0041p\u0070\u0065\u006e\u0064i\u006e\u0067\u0020\u0074\u006f \u0070a\u0067e\u0020\u006c\u0069\u0073\u0074\u0020\u0025T",_aabea );_feddc ,_eadda :=_ae .GetIndirect (_aabea );if !_eadda {return _db .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");
};_ac .Log .Trace ("\u0025\u0073",_feddc );_ac .Log .Trace ("\u0025\u0073",_feddc .PdfObject );_fdce ,_eadda :=_ae .GetDict (_feddc .PdfObject );if !_eadda {return _db .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");
};_aecce ,_eadda :=_ae .GetName (_fdce .Get ("\u0054\u0079\u0070\u0065"));if !_eadda {return _f .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",_fdce .Get ("\u0054\u0079\u0070\u0065"));
};if _aecce .String ()!="\u0050\u0061\u0067\u0065"{return _db .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");};_efdfg :=[]_ae .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"};
_fbcdf ,_cded :=_ae .GetIndirect (_fdce .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"));_ac .Log .Trace ("P\u0061g\u0065\u0020\u0050\u0061\u0072\u0065\u006e\u0074:\u0020\u0025\u0054\u0020(%\u0076\u0029",_fdce .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"),_cded );
for _cded {_ac .Log .Trace ("\u0050a\u0067e\u0020\u0050\u0061\u0072\u0065\u006e\u0074\u003a\u0020\u0025\u0054",_fbcdf );_fbfeba ,_cggcg :=_ae .GetDict (_fbcdf .PdfObject );if !_cggcg {return _db .New ("i\u006e\u0076\u0061\u006cid\u0020P\u0061\u0072\u0065\u006e\u0074 \u006f\u0062\u006a\u0065\u0063\u0074");
};for _ ,_acfbc :=range _efdfg {_ac .Log .Trace ("\u0046\u0069\u0065\u006c\u0064\u0020\u0025\u0073",_acfbc );if _fdce .Get (_acfbc )!=nil {_ac .Log .Trace ("\u002d \u0070a\u0067\u0065\u0020\u0068\u0061s\u0020\u0061l\u0072\u0065\u0061\u0064\u0079");continue ;
};if _gggg :=_fbfeba .Get (_acfbc );_gggg !=nil {_ac .Log .Trace ("\u0049\u006e\u0068\u0065ri\u0074\u0069\u006e\u0067\u0020\u0066\u0069\u0065\u006c\u0064\u0020\u0025\u0073",_acfbc );_fdce .Set (_acfbc ,_gggg );};};_fbcdf ,_cded =_ae .GetIndirect (_fbfeba .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"));
_ac .Log .Trace ("\u004ee\u0078t\u0020\u0070\u0061\u0072\u0065\u006e\u0074\u003a\u0020\u0025\u0054",_fbfeba .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"));};_ac .Log .Trace ("\u0054\u0072\u0061\u0076\u0065\u0072\u0073\u0061\u006c \u0064\u006f\u006e\u0065");
_fdce .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_gadaf ._efcgc );_feddc .PdfObject =_fdce ;_cgeacb ,_eadda :=_ae .GetDict (_gadaf ._efcgc .PdfObject );if !_eadda {return _db .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");
};_ddgfb ,_eadda :=_ae .GetArray (_cgeacb .Get ("\u004b\u0069\u0064\u0073"));if !_eadda {return _db .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");
};_ddgfb .Append (_feddc );_gadaf ._eaggg [_fdce ]=struct{}{};_gfdb ,_eadda :=_ae .GetInt (_cgeacb .Get ("\u0043\u006f\u0075n\u0074"));if !_eadda {return _db .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");
};*_gfdb =*_gfdb +1;if page ._bceef ==nil {_eaaab :=_gcg .Track (_gadaf ._afegd ,_dgge );if _eaaab !=nil {return _eaaab ;};}else {_eddfd :=_gcg .Track (page ._bceef ._decgb ,_dgge );if _eddfd !=nil {return _eddfd ;};};_gadaf .addObject (_feddc );_daece :=_gadaf .addObjects (_fdce );
if _daece !=nil {return _daece ;};return nil ;};
// RemovePage removes a page by number.
func (_bcc *PdfAppender )RemovePage (pageNum int ){_gddd :=pageNum -1;_bcc ._eabf =append (_bcc ._eabf [0:_gddd ],_bcc ._eabf [pageNum :]...);};
// GetCatalogStructTreeRoot gets the catalog StructTreeRoot object.
func (_edgbg *PdfReader )GetCatalogStructTreeRoot ()(_ae .PdfObject ,bool ){if _edgbg ._aedf ==nil {return nil ,false ;};_fcdd :=_edgbg ._aedf .Get ("\u0053\u0074\u0072\u0075\u0063\u0074\u0054\u0072\u0065e\u0052\u006f\u006f\u0074");return _fcdd ,_fcdd !=nil ;
};
// GetCapHeight returns the CapHeight of the font `descriptor`.
func (_gcdb *PdfFontDescriptor )GetCapHeight ()(float64 ,error ){return _ae .GetNumberAsFloat (_gcdb .CapHeight );};
// ToPdfObject implements interface PdfModel.
func (_gaaee *PdfTransformParamsDocMDP )ToPdfObject ()_ae .PdfObject {_fffab :=_ae .MakeDict ();_fffab .SetIfNotNil ("\u0054\u0079\u0070\u0065",_gaaee .Type );_fffab .SetIfNotNil ("\u0056",_gaaee .V );_fffab .SetIfNotNil ("\u0050",_gaaee .P );return _fffab ;
};func (_bedb *PdfReader )newPdfActionURIFromDict (_agg *_ae .PdfObjectDictionary )(*PdfActionURI ,error ){return &PdfActionURI {URI :_agg .Get ("\u0055\u0052\u0049"),IsMap :_agg .Get ("\u0049\u0073\u004da\u0070")},nil ;};
// HasShadingByName checks whether a shading is defined by the specified keyName.
func (_dbcec *PdfPageResources )HasShadingByName (keyName _ae .PdfObjectName )bool {_ ,_bgdedb :=_dbcec .GetShadingByName (keyName );return _bgdedb ;};
// NewPermissions returns a new permissions object.
func NewPermissions (docMdp *PdfSignature )*Permissions {_ffbbd :=Permissions {};_ffbbd .DocMDP =docMdp ;_efebc :=_ae .MakeDict ();_efebc .Set ("\u0044\u006f\u0063\u004d\u0044\u0050",docMdp .ToPdfObject ());_ffbbd ._gccec =_efebc ;return &_ffbbd ;};
// GetPrimitiveFromModel returns the primitive object corresponding to the input `model`.
func (_cdgff *modelManager )GetPrimitiveFromModel (model PdfModel )_ae .PdfObject {_eddgf ,_eegc :=_cdgff ._gbed [model ];if !_eegc {return nil ;};return _eddgf ;};
// NewPdfFieldSignature returns an initialized signature field.
func NewPdfFieldSignature (signature *PdfSignature )*PdfFieldSignature {_caeaa :=&PdfFieldSignature {};_caeaa .PdfField =NewPdfField ();_caeaa .PdfField .SetContext (_caeaa );_caeaa .PdfAnnotationWidget =NewPdfAnnotationWidget ();_caeaa .PdfAnnotationWidget .SetContext (_caeaa );
_caeaa .PdfAnnotationWidget ._gcgf =_caeaa .PdfField ._facca ;_caeaa .T =_ae .MakeString ("");_caeaa .F =_ae .MakeInteger (132);_caeaa .V =signature ;return _caeaa ;};
// GetCustomInfo returns a custom info value for the specified name.
func (_cgbb *PdfInfo )GetCustomInfo (name string )*_ae .PdfObjectString {var _bffbe *_ae .PdfObjectString ;if _cgbb ._ffgag ==nil {return _bffbe ;};if _eebg ,_feeed :=_cgbb ._ffgag .Get (*_ae .MakeName (name )).(*_ae .PdfObjectString );_feeed {_bffbe =_eebg ;
};return _bffbe ;};
// SetFontByName sets the font specified by keyName to the given object.
func (_fegcb *PdfPageResources )SetFontByName (keyName _ae .PdfObjectName ,obj _ae .PdfObject )error {if _fegcb .Font ==nil {_fegcb .Font =_ae .MakeDict ();};_gbbef ,_afcg :=_ae .TraceToDirectObject (_fegcb .Font ).(*_ae .PdfObjectDictionary );if !_afcg {_ac .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",_ae .TraceToDirectObject (_fegcb .Font ));
return _ae .ErrTypeError ;};_gbbef .Set (keyName ,obj );return nil ;};
// GetContentStream returns the pattern cell's content stream
func (_agcbe *PdfTilingPattern )GetContentStream ()([]byte ,error ){_fdea ,_ ,_efgbb :=_agcbe .GetContentStreamWithEncoder ();return _fdea ,_efgbb ;};
// GetContext returns a reference to the subshading entry as represented by PdfShadingType1-7.
func (_fgdgc *PdfShading )GetContext ()PdfModel {return _fgdgc ._ffgbf };
// GetModelFromPrimitive returns the model corresponding to the `primitive` PdfObject.
func (_ffcbd *modelManager )GetModelFromPrimitive (primitive _ae .PdfObject )PdfModel {model ,_adgc :=_ffcbd ._bdcg [primitive ];if !_adgc {return nil ;};return model ;};
// PdfOutputIntentType is the subtype of the given PdfOutputIntent.
type PdfOutputIntentType int ;
// GetPreviousRevision returns the previous revision of PdfReader for the Pdf document
func (_ceacg *PdfReader )GetPreviousRevision ()(*PdfReader ,error ){if _ceacg ._bfcga .GetRevisionNumber ()==0{return nil ,_db .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 _dgffe ,_afce :=_ceacg ._aabeg [_ceacg ];_afce {return _dgffe ,nil ;};_aceeff ,_agggg :=_ceacg ._bfcga .GetPreviousRevisionReadSeeker ();if _agggg !=nil {return nil ,_agggg ;};_efged ,_agggg :=_fccgfc (_aceeff ,_ceacg ._bagca ,_ceacg ._bafaa ,"\u006do\u0064\u0065\u006c\u003aG\u0065\u0074\u0050\u0072\u0065v\u0069o\u0075s\u0052\u0065\u0076\u0069\u0073\u0069\u006fn");
if _agggg !=nil {return nil ,_agggg ;};_ceacg ._afagc [_ceacg ._bfcga .GetRevisionNumber ()-1]=_efged ;_ceacg ._aabeg [_ceacg ]=_efged ;_efged ._aabeg =_ceacg ._aabeg ;return _efged ,nil ;};
// PdfAnnotationInk represents Ink annotations.
// (Section 12.5.6.13).
type PdfAnnotationInk struct{*PdfAnnotation ;*PdfAnnotationMarkup ;InkList _ae .PdfObject ;BS _ae .PdfObject ;};
// 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 ;_gccec *_ae .PdfObjectDictionary ;};func (_dcaag *pdfFontSimple )getFontDescriptor ()*PdfFontDescriptor {if _afcbf :=_dcaag ._cafdb ;_afcbf !=nil {return _afcbf ;};return _dcaag ._adegb ;};
// PdfAnnotationRichMedia represents Rich Media annotations.
type PdfAnnotationRichMedia struct{*PdfAnnotation ;RichMediaSettings _ae .PdfObject ;RichMediaContent _ae .PdfObject ;};
// ToPdfObject converts the pdfCIDFontType0 to a PDF representation.
func (_bbaf *pdfCIDFontType0 )ToPdfObject ()_ae .PdfObject {return _ae .MakeNull ()};
// NewPdfColorspaceSpecialSeparation returns a new separation color.
func NewPdfColorspaceSpecialSeparation ()*PdfColorspaceSpecialSeparation {_deba :=&PdfColorspaceSpecialSeparation {};return _deba ;};
// SetDSS sets the DSS dictionary (ETSI TS 102 778-4 V1.1.1) of the current
// document revision.
func (_fbdf *PdfAppender )SetDSS (dss *DSS ){if dss !=nil {_fbdf .updateObjectsDeep (dss .ToPdfObject (),nil );};_fbdf ._ddad =dss ;};func _gdad (_dbdeb *PdfField ,_fcgb _ae .PdfObject )error {switch _dbdeb .GetContext ().(type ){case *PdfFieldText :switch _bgfe :=_fcgb .(type ){case *_ae .PdfObjectName :_affg :=_bgfe ;
_ac .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",_affg .String ());
_dbdeb .V =_ae .MakeEncodedString (_bgfe .String (),true );case *_ae .PdfObjectString :_dbdeb .V =_ae .MakeEncodedString (_bgfe .String (),true );default:_ac .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",_bgfe ,_bgfe );
};case *PdfFieldButton :switch _fcgb .(type ){case *_ae .PdfObjectName :if len (_fcgb .String ())> 0{_dbdeb .V =_fcgb ;_bbccf (_dbdeb ,_fcgb );};case *_ae .PdfObjectString :if len (_fcgb .String ())> 0{_dbdeb .V =_ae .MakeName (_fcgb .String ());_bbccf (_dbdeb ,_dbdeb .V );
};default:_ac .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",_dbdeb .PartialName (),_fcgb );_dbdeb .V =_fcgb ;};case *PdfFieldChoice :switch _fcgb .(type ){case *_ae .PdfObjectName :if len (_fcgb .String ())> 0{_dbdeb .V =_ae .MakeString (_fcgb .String ());
_bbccf (_dbdeb ,_fcgb );};case *_ae .PdfObjectString :if len (_fcgb .String ())> 0{_dbdeb .V =_fcgb ;_bbccf (_dbdeb ,_ae .MakeName (_fcgb .String ()));};default:_ac .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",_dbdeb .PartialName (),_fcgb );
_dbdeb .V =_fcgb ;};case *PdfFieldSignature :_ac .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",_dbdeb .PartialName (),_fcgb );
};return nil ;};
// ColorFromPdfObjects returns a new PdfColor based on the input slice of color
// components. The slice should contain a single PdfObjectFloat element in
// range 0-1.
func (_eeda *PdfColorspaceCalGray )ColorFromPdfObjects (objects []_ae .PdfObject )(PdfColor ,error ){if len (objects )!=1{return nil ,_db .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_gdce ,_caeed :=_ae .GetNumbersAsFloat (objects );
if _caeed !=nil {return nil ,_caeed ;};return _eeda .ColorFromFloats (_gdce );};
// GetNumComponents returns the number of color components (1 for grayscale).
func (_cbbe *PdfColorDeviceGray )GetNumComponents ()int {return 1};func (_fcd *PdfReader )newPdfActionJavaScriptFromDict (_cdc *_ae .PdfObjectDictionary )(*PdfActionJavaScript ,error ){return &PdfActionJavaScript {JS :_cdc .Get ("\u004a\u0053")},nil ;};
// NewPdfActionThread returns a new "thread" action.
func NewPdfActionThread ()*PdfActionThread {_cbef :=NewPdfAction ();_fec :=&PdfActionThread {};_fec .PdfAction =_cbef ;_cbef .SetContext (_fec );return _fec ;};
// String returns a string that describes `base`.
func (_begag fontCommon )String ()string {return _f .Sprintf ("\u0046\u004f\u004e\u0054\u007b\u0025\u0073\u007d",_begag .coreString ());};func (_deb *PdfAnnotation )String ()string {_fdd :="";_aagab ,_effa :=_deb .ToPdfObject ().(*_ae .PdfIndirectObject );
if _effa {_fdd =_f .Sprintf ("\u0025\u0054\u003a\u0020\u0025\u0073",_deb ._ggd ,_aagab .PdfObject .String ());};return _fdd ;};
// 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{_cefff *_ae .PdfIndirectObject ;Certs []*_ae .PdfObjectStream ;OCSPs []*_ae .PdfObjectStream ;CRLs []*_ae .PdfObjectStream ;VRI map[string ]*VRI ;_eedc map[string ]*_ae .PdfObjectStream ;_fcgf map[string ]*_ae .PdfObjectStream ;_abda map[string ]*_ae .PdfObjectStream ;
};func (_fgde *PdfReader )newPdfAnnotationLinkFromDict (_gga *_ae .PdfObjectDictionary )(*PdfAnnotationLink ,error ){_acda :=PdfAnnotationLink {};_acda .A =_gga .Get ("\u0041");_acda .Dest =_gga .Get ("\u0044\u0065\u0073\u0074");_acda .H =_gga .Get ("\u0048");
_acda .PA =_gga .Get ("\u0050\u0041");_acda .QuadPoints =_gga .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");_acda .BS =_gga .Get ("\u0042\u0053");return &_acda ,nil ;};
// NewPdfColorPattern returns an empty color pattern.
func NewPdfColorPattern ()*PdfColorPattern {_bfcb :=&PdfColorPattern {};return _bfcb };
// GetContainingPdfObject returns the container of the PdfAcroForm (indirect object).
func (_dcgce *PdfAcroForm )GetContainingPdfObject ()_ae .PdfObject {return _dcgce ._febbe };func (_fddf *PdfReader )newPdfAnnotationFileAttachmentFromDict (_bgdd *_ae .PdfObjectDictionary )(*PdfAnnotationFileAttachment ,error ){_dbgd :=PdfAnnotationFileAttachment {};
_gfe ,_fdbd :=_fddf .newPdfAnnotationMarkupFromDict (_bgdd );if _fdbd !=nil {return nil ,_fdbd ;};_dbgd .PdfAnnotationMarkup =_gfe ;_dbgd .FS =_bgdd .Get ("\u0046\u0053");_dbgd .Name =_bgdd .Get ("\u004e\u0061\u006d\u0065");return &_dbgd ,nil ;};func _cbfb (_ccdda *_ae .PdfObjectDictionary )(*PdfFieldChoice ,error ){_ddef :=&PdfFieldChoice {};
_ddef .Opt ,_ =_ae .GetArray (_ccdda .Get ("\u004f\u0070\u0074"));_ddef .TI ,_ =_ae .GetInt (_ccdda .Get ("\u0054\u0049"));_ddef .I ,_ =_ae .GetArray (_ccdda .Get ("\u0049"));return _ddef ,nil ;};
// NewPdfActionLaunch returns a new "launch" action.
func NewPdfActionLaunch ()*PdfActionLaunch {_be :=NewPdfAction ();_abb :=&PdfActionLaunch {};_abb .PdfAction =_be ;_be .SetContext (_abb );return _abb ;};func (_aagce *XObjectImage )getParamsDict ()*_ae .PdfObjectDictionary {_bgfedg :=_ae .MakeDict ();
_bgfedg .Set ("\u0057\u0069\u0064t\u0068",_ae .MakeInteger (*_aagce .Width ));_bgfedg .Set ("\u0048\u0065\u0069\u0067\u0068\u0074",_ae .MakeInteger (*_aagce .Height ));_bgfedg .Set ("\u0043o\u006co\u0072\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074\u0073",_ae .MakeInteger (int64 (_aagce .ColorSpace .GetNumComponents ())));
_bgfedg .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_ae .MakeInteger (*_aagce .BitsPerComponent ));return _bgfedg ;};var _adaba =_bc .MustCompile ("\u005b\\\u006e\u005c\u0072\u005d\u002b");
// PdfActionResetForm represents a resetForm action.
type PdfActionResetForm struct{*PdfAction ;Fields _ae .PdfObject ;Flags _ae .PdfObject ;};
// 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 ;_gccbeg *_ae .PdfIndirectObject ;
// Type: Sig/DocTimeStamp
Type *_ae .PdfObjectName ;Filter *_ae .PdfObjectName ;SubFilter *_ae .PdfObjectName ;Contents *_ae .PdfObjectString ;Cert _ae .PdfObject ;ByteRange *_ae .PdfObjectArray ;Reference *_ae .PdfObjectArray ;Changes *_ae .PdfObjectArray ;Name *_ae .PdfObjectString ;
M *_ae .PdfObjectString ;Location *_ae .PdfObjectString ;Reason *_ae .PdfObjectString ;ContactInfo *_ae .PdfObjectString ;R *_ae .PdfObjectInteger ;V *_ae .PdfObjectInteger ;PropBuild *_ae .PdfObjectDictionary ;PropAuthTime *_ae .PdfObjectInteger ;PropAuthType *_ae .PdfObjectName ;
};
// PdfFont represents an underlying font structure which can be of type:
// - Type0
// - Type1
// - TrueType
// etc.
type PdfFont struct{_dabg pdfFont };
// NewPdfAnnotationCircle returns a new circle annotation.
func NewPdfAnnotationCircle ()*PdfAnnotationCircle {_gbc :=NewPdfAnnotation ();_dade :=&PdfAnnotationCircle {};_dade .PdfAnnotation =_gbc ;_dade .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_gbc .SetContext (_dade );return _dade ;};func (_beg *PdfReader )newPdfAnnotationPolygonFromDict (_eaff *_ae .PdfObjectDictionary )(*PdfAnnotationPolygon ,error ){_gce :=PdfAnnotationPolygon {};
_bggd ,_fbfg :=_beg .newPdfAnnotationMarkupFromDict (_eaff );if _fbfg !=nil {return nil ,_fbfg ;};_gce .PdfAnnotationMarkup =_bggd ;_gce .Vertices =_eaff .Get ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073");_gce .LE =_eaff .Get ("\u004c\u0045");_gce .BS =_eaff .Get ("\u0042\u0053");
_gce .IC =_eaff .Get ("\u0049\u0043");_gce .BE =_eaff .Get ("\u0042\u0045");_gce .IT =_eaff .Get ("\u0049\u0054");_gce .Measure =_eaff .Get ("\u004de\u0061\u0073\u0075\u0072\u0065");return &_gce ,nil ;};
// ColorFromFloats returns a new PdfColor based on the input slice of color
// components. The slice should contain three elements representing the
// A, B and C components of the color. The values of the elements should be
// between 0 and 1.
func (_bgca *PdfColorspaceCalRGB )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=3{return nil ,_db .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_edcd :=vals [0];if _edcd < 0.0||_edcd > 1.0{_ac .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_edcd );
return nil ,ErrColorOutOfRange ;};_bceg :=vals [1];if _bceg < 0.0||_bceg > 1.0{_ac .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_bceg );return nil ,ErrColorOutOfRange ;
};_bgdc :=vals [2];if _bgdc < 0.0||_bgdc > 1.0{_ac .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_bgdc );return nil ,ErrColorOutOfRange ;};_fcbbf :=NewPdfColorCalRGB (_edcd ,_bceg ,_bgdc );
return _fcbbf ,nil ;};
// PdfColorPatternType2 represents a color shading pattern type 2 (Axial).
type PdfColorPatternType2 struct{Color PdfColor ;PatternName _ae .PdfObjectName ;};
// ToPdfObject returns the PDF representation of the colorspace.
func (_cgae *PdfColorspaceDeviceGray )ToPdfObject ()_ae .PdfObject {return _ae .MakeName ("\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079");};
// NewXObjectForm creates a brand new XObject Form. Creates a new underlying PDF object stream primitive.
func NewXObjectForm ()*XObjectForm {_agdfg :=&XObjectForm {};_dacc :=&_ae .PdfObjectStream {};_dacc .PdfObjectDictionary =_ae .MakeDict ();_agdfg ._fccdf =_dacc ;return _agdfg ;};
// ToPdfObject returns the PDF representation of the shading pattern.
func (_gadcg *PdfShadingPatternType3 )ToPdfObject ()_ae .PdfObject {_gadcg .PdfPattern .ToPdfObject ();_begbb :=_gadcg .getDict ();if _gadcg .Shading !=nil {_begbb .Set ("\u0053h\u0061\u0064\u0069\u006e\u0067",_gadcg .Shading .ToPdfObject ());};if _gadcg .Matrix !=nil {_begbb .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_gadcg .Matrix );
};if _gadcg .ExtGState !=nil {_begbb .Set ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e",_gadcg .ExtGState );};return _gadcg ._ebfged ;};
// 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 (_egdg *pdfFontSimple )SetEncoder (encoder _bgg .TextEncoder ){_egdg ._dead =encoder };
// ReplacePage replaces the original page to a new page.
func (_caafb *PdfAppender )ReplacePage (pageNum int ,page *PdfPage ){_cffa :=pageNum -1;for _edfc :=range _caafb ._eabf {if _edfc ==_cffa {_dgfd :=page .Duplicate ();_gabdf (_dgfd );_caafb ._eabf [_edfc ]=_dgfd ;};};};func (_befc *PdfFont )baseFields ()*fontCommon {if _befc ._dabg ==nil {_ac .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 _befc ._dabg .baseFields ();};
// 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 (_ceaad *PdfFont )GetCharMetrics (code _bgg .CharCode )(CharMetrics ,bool ){var _dgfgf _cb .CharMetrics ;switch _fcfg :=_ceaad ._dabg .(type ){case *pdfFontSimple :if _ebfe ,_cdcf :=_fcfg .GetCharMetrics (code );_cdcf {return _ebfe ,_cdcf ;};case *pdfFontType0 :if _cdbda ,_cebafd :=_fcfg .GetCharMetrics (code );
_cebafd {return _cdbda ,_cebafd ;};case *pdfCIDFontType0 :if _gdfg ,_aabca :=_fcfg .GetCharMetrics (code );_aabca {return _gdfg ,_aabca ;};case *pdfCIDFontType2 :if _aagad ,_ccfd :=_fcfg .GetCharMetrics (code );_ccfd {return _aagad ,_ccfd ;};case *pdfFontType3 :if _deccg ,_agcdg :=_fcfg .GetCharMetrics (code );
_agcdg {return _deccg ,_agcdg ;};default:_ac .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",_ceaad ._dabg );
return _dgfgf ,false ;};if _fggegf ,_eeddg :=_ceaad .GetFontDescriptor ();_eeddg ==nil &&_fggegf !=nil {return _cb .CharMetrics {Wx :_fggegf ._ffdc },true ;};_ac .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",_ceaad );
return _dgfgf ,false ;};
// GetNumComponents returns the number of color components of the colorspace device.
// Returns 4 for a CMYK32 device.
func (_dcad *PdfColorspaceDeviceCMYK )GetNumComponents ()int {return 4};func _caabg ()string {_cadgd .Lock ();defer _cadgd .Unlock ();return _aedg };
// NewPdfColorspaceLab returns a new Lab colorspace object.
func NewPdfColorspaceLab ()*PdfColorspaceLab {_dadg :=&PdfColorspaceLab {};_dadg .BlackPoint =[]float64 {0.0,0.0,0.0};_dadg .Range =[]float64 {-100,100,-100,100};return _dadg ;};
// 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 ;_gege *_ae .PdfIndirectObject ;};
// GetNumComponents returns the number of color components of the colorspace device.
// Returns 3 for an RGB device.
func (_fgdef *PdfColorspaceDeviceRGB )GetNumComponents ()int {return 3};
// ToPdfObject implements interface PdfModel.
func (_dcbg *PdfFilespec )ToPdfObject ()_ae .PdfObject {_fdcf :=_dcbg .getDict ();_fdcf .Clear ();_fdcf .Set ("\u0054\u0079\u0070\u0065",_ae .MakeName ("\u0046\u0069\u006c\u0065\u0073\u0070\u0065\u0063"));_fdcf .SetIfNotNil ("\u0046\u0053",_dcbg .FS );
_fdcf .SetIfNotNil ("\u0046",_dcbg .F );_fdcf .SetIfNotNil ("\u0055\u0046",_dcbg .UF );_fdcf .SetIfNotNil ("\u0044\u004f\u0053",_dcbg .DOS );_fdcf .SetIfNotNil ("\u004d\u0061\u0063",_dcbg .Mac );_fdcf .SetIfNotNil ("\u0055\u006e\u0069\u0078",_dcbg .Unix );
_fdcf .SetIfNotNil ("\u0049\u0044",_dcbg .ID );_fdcf .SetIfNotNil ("\u0056",_dcbg .V );_fdcf .SetIfNotNil ("\u0045\u0046",_dcbg .EF );_fdcf .SetIfNotNil ("\u0052\u0046",_dcbg .RF );_fdcf .SetIfNotNil ("\u0044\u0065\u0073\u0063",_dcbg .Desc );_fdcf .SetIfNotNil ("\u0043\u0049",_dcbg .CI );
return _dcbg ._caeaag ;};
// GetNumPages returns the number of pages in the document.
func (_cebcc *PdfReader )GetNumPages ()(int ,error ){if _cebcc ._bfcga .GetCrypter ()!=nil &&!_cebcc ._bfcga .IsAuthenticated (){return 0,_f .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 (_cebcc ._bcaab ),nil ;};func (_dgegc *PdfReader )buildNameNodes (_ecbed *_ae .PdfIndirectObject ,_ddcgg map[_ae .PdfObject ]struct{})error {if _ecbed ==nil {return nil ;};if _ ,_efeaag :=_ddcgg [_ecbed ];_efeaag {_ac .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",_ecbed .ObjectNumber );
return nil ;};_ddcgg [_ecbed ]=struct{}{};_adfce ,_efgeg :=_ecbed .PdfObject .(*_ae .PdfObjectDictionary );if !_efgeg {return _db .New ("n\u006f\u0064\u0065\u0020no\u0074 \u0061\u0020\u0064\u0069\u0063t\u0069\u006f\u006e\u0061\u0072\u0079");};if _dcddc ,_gfbed :=_ae .GetDict (_adfce .Get ("\u0044\u0065\u0073t\u0073"));
_gfbed {_efed ,_agcdd :=_ae .GetArray (_dcddc .Get ("\u004b\u0069\u0064\u0073"));if !_agcdd {return _db .New ("\u0049n\u0076\u0061\u006c\u0069d\u0020\u004b\u0069\u0064\u0073 \u0061r\u0072a\u0079\u0020\u006f\u0062\u006a\u0065\u0063t");};_ac .Log .Trace ("\u004b\u0069\u0064\u0073\u003a\u0020\u0025\u0073",_efed );
for _bbgdf ,_gfcd :=range _efed .Elements (){_fggdf ,_degbg :=_ae .GetIndirect (_gfcd );if !_degbg {_ac .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",_fggdf );
return _db .New ("\u0063h\u0069\u006c\u0064\u0020n\u006f\u0074\u0020\u0069\u006ed\u0069r\u0065c\u0074\u0020\u006f\u0062\u006a\u0065\u0063t");};_efed .Set (_bbgdf ,_fggdf );_gcfbb :=_dgegc .buildNameNodes (_fggdf ,_ddcgg );if _gcfbb !=nil {return _gcfbb ;
};};};if _fedc ,_cdba :=_ae .GetDict (_adfce );_cdba {if !_ae .IsNullObject (_fedc .Get ("\u004b\u0069\u0064\u0073")){if _dgffb ,_ddbe :=_ae .GetArray (_fedc .Get ("\u004b\u0069\u0064\u0073"));_ddbe {for _cfcefe ,_bagga :=range _dgffb .Elements (){if _cgdc ,_cabeg :=_ae .GetIndirect (_bagga );
_cabeg {_dgffb .Set (_cfcefe ,_cgdc );_cdbf :=_dgegc .buildNameNodes (_cgdc ,_ddcgg );if _cdbf !=nil {return _cdbf ;};};};};};};return nil ;};
// PdfVersion returns version of the PDF file.
func (_ggbbb *PdfReader )PdfVersion ()_ae .Version {return _ggbbb ._bfcga .PdfVersion ()};
// ImageToGray returns a new grayscale image based on the passed in RGB image.
func (_bggc *PdfColorspaceDeviceRGB )ImageToGray (img Image )(Image ,error ){if img .ColorComponents !=3{return img ,_db .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");
};_agfe ,_dfbcd :=_afc .NewImage (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),img .ColorComponents ,img .Data ,img ._bbba ,img ._fdae );if _dfbcd !=nil {return img ,_dfbcd ;};_dage ,_dfbcd :=_afc .GrayConverter .Convert (_agfe );if _dfbcd !=nil {return img ,_dfbcd ;
};return _feagd (_dage .Base ()),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 (_fcdbe *PdfReader )FlattenFieldsWithOpts (appgen FieldAppearanceGenerator ,opts *FieldFlattenOpts )error {return _fcdbe .flattenFieldsWithOpts (false ,appgen ,opts );};
// ToPdfObject implements model.PdfModel interface.
func (_bfce *PdfOutputIntent )ToPdfObject ()_ae .PdfObject {if _bfce ._gfdfbf ==nil {_bfce ._gfdfbf =_ae .MakeDict ();};_begb :=_bfce ._gfdfbf ;if _bfce .Type !=""{_begb .Set ("\u0054\u0079\u0070\u0065",_ae .MakeName (_bfce .Type ));};_begb .Set ("\u0053",_ae .MakeName (_bfce .S .String ()));
if _bfce .OutputCondition !=""{_begb .Set ("\u004fu\u0074p\u0075\u0074\u0043\u006f\u006e\u0064\u0069\u0074\u0069\u006f\u006e",_ae .MakeString (_bfce .OutputCondition ));};_begb .Set ("\u004fu\u0074\u0070\u0075\u0074C\u006f\u006e\u0064\u0069\u0074i\u006fn\u0049d\u0065\u006e\u0074\u0069\u0066\u0069\u0065r",_ae .MakeString (_bfce .OutputConditionIdentifier ));
_begb .Set ("\u0052\u0065\u0067i\u0073\u0074\u0072\u0079\u004e\u0061\u006d\u0065",_ae .MakeString (_bfce .RegistryName ));if _bfce .Info !=""{_begb .Set ("\u0049\u006e\u0066\u006f",_ae .MakeString (_bfce .Info ));};if len (_bfce .DestOutputProfile )!=0{_dcdca ,_acfa :=_ae .MakeStream (_bfce .DestOutputProfile ,_ae .NewFlateEncoder ());
if _acfa !=nil {_ac .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",_acfa );
};_dcdca .PdfObjectDictionary .Set ("\u004e",_ae .MakeInteger (int64 (_bfce .ColorComponents )));_eeab :=make ([]float64 ,_bfce .ColorComponents *2);for _dbcdf :=0;_dbcdf < _bfce .ColorComponents *2;_dbcdf ++{_addca :=0.0;if _dbcdf %2!=0{_addca =1.0;};
_eeab [_dbcdf ]=_addca ;};_dcdca .PdfObjectDictionary .Set ("\u0052\u0061\u006eg\u0065",_ae .MakeArrayFromFloats (_eeab ));_begb .Set ("\u0044\u0065\u0073\u0074\u004f\u0075\u0074\u0070\u0075\u0074\u0050\u0072o\u0066\u0069\u006c\u0065",_dcdca );};return _begb ;
};func (_dcgbb *pdfFontType3 )getFontDescriptor ()*PdfFontDescriptor {return _dcgbb ._cafdb };type pdfCIDFontType0 struct{fontCommon ;_cfbef *_ae .PdfIndirectObject ;_dbgg _bgg .TextEncoder ;
// Table 117 Entries in a CIDFont dictionary (page 269)
// (Required) Dictionary that defines the character collection of the CIDFont.
// See Table 116.
CIDSystemInfo *_ae .PdfObjectDictionary ;
// Glyph metrics fields (optional).
DW _ae .PdfObject ;W _ae .PdfObject ;DW2 _ae .PdfObject ;W2 _ae .PdfObject ;_abbcg map[_bgg .CharCode ]float64 ;_bbfb float64 ;};func (_gaebf *PdfWriter )adjustXRefAffectedVersion (_cfgaa bool ){if _cfgaa &&_gaebf ._faffe .Major ==1&&_gaebf ._faffe .Minor < 5{_gaebf ._faffe .Minor =5;
};};
// 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 *_ae .PdfObjectName ;Colorants _ae .PdfObject ;Process _ae .PdfObject ;MixingHints _ae .PdfObject ;_cabd *_ae .PdfIndirectObject ;};
// ToPdfObject returns a *PdfIndirectObject containing a *PdfObjectArray representation of the DeviceN colorspace.
/*
Format: [/DeviceN names alternateSpace tintTransform]
or: [/DeviceN names alternateSpace tintTransform attributes]
*/
func (_cfcb *PdfColorspaceDeviceN )ToPdfObject ()_ae .PdfObject {_cceeaf :=_ae .MakeArray (_ae .MakeName ("\u0044e\u0076\u0069\u0063\u0065\u004e"));_cceeaf .Append (_cfcb .ColorantNames );_cceeaf .Append (_cfcb .AlternateSpace .ToPdfObject ());_cceeaf .Append (_cfcb .TintTransform .ToPdfObject ());
if _cfcb .Attributes !=nil {_cceeaf .Append (_cfcb .Attributes .ToPdfObject ());};if _cfcb ._efbgg !=nil {_cfcb ._efbgg .PdfObject =_cceeaf ;return _cfcb ._efbgg ;};return _cceeaf ;};
// PdfActionHide represents a hide action.
type PdfActionHide struct{*PdfAction ;T _ae .PdfObject ;H _ae .PdfObject ;};
// 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 (_gaag *PdfFont )SubsetRegistered ()error {switch _dcfcc :=_gaag ._dabg .(type ){case *pdfFontType0 :_gdcc :=_dcfcc .subsetRegistered ();if _gdcc !=nil {_ac .Log .Debug ("\u0053\u0075b\u0073\u0065\u0074 \u0065\u0072\u0072\u006f\u0072\u003a\u0020\u0025\u0076",_gdcc );
return _gdcc ;};if _dcfcc ._fagcg !=nil {if _dcfcc ._bagdb !=nil {_dcfcc ._bagdb .ToPdfObject ();};_dcfcc .ToPdfObject ();};default:_ac .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",_dcfcc );
};return nil ;};
// 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 ,_gfdfbf :_ae .MakeDict (),ColorComponents :colorComponents };
};func _baabd (_fgbe _ae .PdfObject ,_gdbb bool )(*PdfFont ,error ){_gcee ,_dgag ,_egcfdg :=_accbe (_fgbe );if _gcee !=nil {_fagf (_gcee );};if _egcfdg !=nil {if _egcfdg ==ErrType1CFontNotSupported {_fcbf ,_dagf :=_gfbga (_gcee ,_dgag ,nil );if _dagf !=nil {_ac .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",_dgag ,_dagf );
return nil ,_egcfdg ;};return &PdfFont {_dabg :_fcbf },_egcfdg ;};return nil ,_egcfdg ;};_dbfga :=&PdfFont {};switch _dgag ._adce {case "\u0054\u0079\u0070e\u0030":if !_gdbb {_ac .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",_dgag );
return nil ,_db .New ("\u0063\u0079\u0063\u006cic\u0061\u006c\u0020\u0074\u0079\u0070\u0065\u0030\u0020\u006c\u006f\u0061\u0064\u0069n\u0067");};_cadf ,_bdee :=_ddgf (_gcee ,_dgag );if _bdee !=nil {_ac .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",_dgag ,_bdee );
return nil ,_bdee ;};_dbfga ._dabg =_cadf ;case "\u0054\u0079\u0070e\u0031","\u004dM\u0054\u0079\u0070\u0065\u0031","\u0054\u0072\u0075\u0065\u0054\u0079\u0070\u0065":var _ggca *pdfFontSimple ;_gbcbe ,_bcacb :=_cb .NewStdFontByName (_cb .StdFontName (_dgag ._cedb ));
if _bcacb {_fada :=_fbefg (_gbcbe );_dbfga ._dabg =&_fada ;_efdc :=_ae .TraceToDirectObject (_fada .ToPdfObject ());_efbe ,_gfbd ,_cecbe :=_accbe (_efdc );if _cecbe !=nil {_ac .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",_dgag ,_fada );
return nil ,_cecbe ;};for _ ,_feff :=range _gcee .Keys (){_efbe .Set (_feff ,_gcee .Get (_feff ));};_ggca ,_cecbe =_gfbga (_efbe ,_gfbd ,_fada ._aacd );if _cecbe !=nil {_ac .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",_dgag ,_fada );
return nil ,_cecbe ;};_ggca ._deaed =_fada ._deaed ;_ggca ._gabf =_fada ._gabf ;if _ggca ._adegb ==nil {_ggca ._adegb =_fada ._adegb ;};}else {_ggca ,_egcfdg =_gfbga (_gcee ,_dgag ,nil );if _egcfdg !=nil {_ac .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",_dgag ,_egcfdg );
return nil ,_egcfdg ;};};_egcfdg =_ggca .addEncoding ();if _egcfdg !=nil {return nil ,_egcfdg ;};if _bcacb {_ggca .updateStandard14Font ();};if _bcacb &&_ggca ._dead ==nil &&_ggca ._aacd ==nil {_ac .Log .Error ("\u0073\u0069\u006d\u0070\u006c\u0065\u0066\u006f\u006e\u0074\u003d\u0025\u0073",_ggca );
_ac .Log .Error ("\u0066n\u0074\u003d\u0025\u002b\u0076",_gbcbe );};if len (_ggca ._deaed )==0{_ac .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a \u004e\u006f\u0020\u0077\u0069d\u0074h\u0073.\u0020\u0066\u006f\u006e\u0074\u003d\u0025s",_ggca );};_dbfga ._dabg =_ggca ;
case "\u0054\u0079\u0070e\u0033":_ffad ,_ccbbd :=_dgdfb (_gcee ,_dgag );if _ccbbd !=nil {_ac .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",_ccbbd );
return nil ,_ccbbd ;};_dbfga ._dabg =_ffad ;case "\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0030":_eaad ,_fcdfe :=_aecgg (_gcee ,_dgag );if _fcdfe !=nil {_ac .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",_fcdfe );
return nil ,_fcdfe ;};_dbfga ._dabg =_eaad ;case "\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032":_ecbfae ,_cebd :=_agbff (_gcee ,_dgag );if _cebd !=nil {_ac .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",_dgag ,_cebd );
return nil ,_cebd ;};_dbfga ._dabg =_ecbfae ;default:_ac .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",_dgag );
return nil ,_f .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",_dgag );};return _dbfga ,nil ;};
// PdfColorspaceSpecialSeparation is a Separation colorspace.
// At the moment the colour space is set to a Separation space, the conforming reader shall determine whether the
// device has an available colorant (e.g. dye) corresponding to the name of the requested space. If so, the conforming
// reader shall ignore the alternateSpace and tintTransform parameters; subsequent painting operations within the
// space shall apply the designated colorant directly, according to the tint values supplied.
//
// Format: [/Separation name alternateSpace tintTransform]
type PdfColorspaceSpecialSeparation struct{ColorantName *_ae .PdfObjectName ;AlternateSpace PdfColorspace ;TintTransform PdfFunction ;_ddaac *_ae .PdfIndirectObject ;};
// PdfColorDeviceGray represents a grayscale color value that shall be represented by a single number in the
// range 0.0 to 1.0 where 0.0 corresponds to black and 1.0 to white.
type PdfColorDeviceGray float64 ;func _gdbe (_dbbf *_ae .PdfObjectDictionary )bool {for _ ,_eaeg :=range _dbbf .Keys (){if _ ,_gfdfg :=_defe [_eaeg .String ()];_gfdfg {return true ;};};return false ;};
// ToPdfObject implements interface PdfModel.
func (_bd *PdfActionGoToE )ToPdfObject ()_ae .PdfObject {_bd .PdfAction .ToPdfObject ();_dgc :=_bd ._cbe ;_daa :=_dgc .PdfObject .(*_ae .PdfObjectDictionary );_daa .SetIfNotNil ("\u0053",_ae .MakeName (string (ActionTypeGoToE )));if _bd .F !=nil {_daa .Set ("\u0046",_bd .F .ToPdfObject ());
};_daa .SetIfNotNil ("\u0044",_bd .D );_daa .SetIfNotNil ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw",_bd .NewWindow );_daa .SetIfNotNil ("\u0054",_bd .T );return _dgc ;};func _ecabg (_fbdfc _ae .PdfObject ){_ac .Log .Debug ("\u006f\u0062\u006a\u003a\u0020\u0025\u0054\u0020\u0025\u0073",_fbdfc ,_fbdfc .String ());
if _cegbb ,_deadgd :=_fbdfc .(*_ae .PdfObjectStream );_deadgd {_daeff ,_feeae :=_ae .DecodeStream (_cegbb );if _feeae !=nil {_ac .Log .Debug ("\u0045r\u0072\u006f\u0072\u003a\u0020\u0025v",_feeae );return ;};_ac .Log .Debug ("D\u0065\u0063\u006f\u0064\u0065\u0064\u003a\u0020\u0025\u0073",_daeff );
}else if _begeg ,_afafeg :=_fbdfc .(*_ae .PdfIndirectObject );_afafeg {_ac .Log .Debug ("\u0025\u0054\u0020%\u0076",_begeg .PdfObject ,_begeg .PdfObject );_ac .Log .Debug ("\u0025\u0073",_begeg .PdfObject .String ());};};func _decf (_beeeg StdFontName )(pdfFontSimple ,error ){_agad ,_bgbe :=_cb .NewStdFontByName (_beeeg );
if !_bgbe {return pdfFontSimple {},ErrFontNotSupported ;};_becdb :=_fbefg (_agad );return _becdb ,nil ;};
// String returns a string representation of what flags are set.
func (_cdcc FieldFlag )String ()string {_gcda :="";if _cdcc ==FieldFlagClear {_gcda ="\u0043\u006c\u0065a\u0072";return _gcda ;};if _cdcc &FieldFlagReadOnly > 0{_gcda +="\u007cR\u0065\u0061\u0064\u004f\u006e\u006cy";};if _cdcc &FieldFlagRequired > 0{_gcda +="\u007cR\u0065\u0071\u0075\u0069\u0072\u0065d";
};if _cdcc &FieldFlagNoExport > 0{_gcda +="\u007cN\u006f\u0045\u0078\u0070\u006f\u0072t";};if _cdcc &FieldFlagNoToggleToOff > 0{_gcda +="\u007c\u004e\u006f\u0054\u006f\u0067\u0067\u006c\u0065T\u006f\u004f\u0066\u0066";};if _cdcc &FieldFlagRadio > 0{_gcda +="\u007c\u0052\u0061\u0064\u0069\u006f";
};if _cdcc &FieldFlagPushbutton > 0{_gcda +="|\u0050\u0075\u0073\u0068\u0062\u0075\u0074\u0074\u006f\u006e";};if _cdcc &FieldFlagRadiosInUnision > 0{_gcda +="\u007c\u0052a\u0064\u0069\u006fs\u0049\u006e\u0055\u006e\u0069\u0073\u0069\u006f\u006e";};if _cdcc &FieldFlagMultiline > 0{_gcda +="\u007c\u004d\u0075\u006c\u0074\u0069\u006c\u0069\u006e\u0065";
};if _cdcc &FieldFlagPassword > 0{_gcda +="\u007cP\u0061\u0073\u0073\u0077\u006f\u0072d";};if _cdcc &FieldFlagFileSelect > 0{_gcda +="|\u0046\u0069\u006c\u0065\u0053\u0065\u006c\u0065\u0063\u0074";};if _cdcc &FieldFlagDoNotScroll > 0{_gcda +="\u007c\u0044\u006fN\u006f\u0074\u0053\u0063\u0072\u006f\u006c\u006c";
};if _cdcc &FieldFlagComb > 0{_gcda +="\u007c\u0043\u006fm\u0062";};if _cdcc &FieldFlagRichText > 0{_gcda +="\u007cR\u0069\u0063\u0068\u0054\u0065\u0078t";};if _cdcc &FieldFlagDoNotSpellCheck > 0{_gcda +="\u007c\u0044o\u004e\u006f\u0074S\u0070\u0065\u006c\u006c\u0043\u0068\u0065\u0063\u006b";
};if _cdcc &FieldFlagCombo > 0{_gcda +="\u007c\u0043\u006f\u006d\u0062\u006f";};if _cdcc &FieldFlagEdit > 0{_gcda +="\u007c\u0045\u0064i\u0074";};if _cdcc &FieldFlagSort > 0{_gcda +="\u007c\u0053\u006fr\u0074";};if _cdcc &FieldFlagMultiSelect > 0{_gcda +="\u007c\u004d\u0075l\u0074\u0069\u0053\u0065\u006c\u0065\u0063\u0074";
};if _cdcc &FieldFlagCommitOnSelChange > 0{_gcda +="\u007cC\u006fm\u006d\u0069\u0074\u004f\u006eS\u0065\u006cC\u0068\u0061\u006e\u0067\u0065";};return _eg .Trim (_gcda ,"\u007c");};
// 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 (_agcdgd *Image )GetSamples ()[]uint32 {_eaggc :=_ba .ResampleBytes (_agcdgd .Data ,int (_agcdgd .BitsPerComponent ));if _agcdgd .BitsPerComponent < 8{_eaggc =_agcdgd .samplesTrimPadding (_eaggc );};_gfce :=int (_agcdgd .Width )*int (_agcdgd .Height )*_agcdgd .ColorComponents ;
if len (_eaggc )< _gfce {_ac .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 (_eaggc ),_gfce );
return _eaggc ;}else if len (_eaggc )> _gfce {_ac .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 (_eaggc ),_gfce );
_eaggc =_eaggc [:_gfce ];};return _eaggc ;};func _fagf (_aebaf *_ae .PdfObjectDictionary ){_cbga ,_edca :=_ae .GetArray (_aebaf .Get ("\u0057\u0069\u0064\u0074\u0068\u0073"));_bfbgc ,_ceebd :=_ae .GetIntVal (_aebaf .Get ("\u0046i\u0072\u0073\u0074\u0043\u0068\u0061r"));
_afac ,_fgee :=_ae .GetIntVal (_aebaf .Get ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072"));if _edca &&_ceebd &&_fgee {_ccdaa :=_cbga .Len ();if _ccdaa !=_afac -_bfbgc +1{_ac .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",_ccdaa ,_afac );
_cggb :=_ae .PdfObjectInteger (_bfbgc +_ccdaa -1);_aebaf .Set ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072",&_cggb );};};};
// GetPdfVersion gets the version of the PDF used within this document.
func (_efedb *PdfWriter )GetPdfVersion ()string {return _efedb .getPdfVersion ()};
// GetRevisionNumber returns the version of the current Pdf document
func (_cfbgdb *PdfReader )GetRevisionNumber ()int {return _cfbgdb ._bfcga .GetRevisionNumber ()};
// PdfColor interface represents a generic color in PDF.
type PdfColor interface{};func (_dbe *PdfReader )newPdfActionResetFormFromDict (_aaga *_ae .PdfObjectDictionary )(*PdfActionResetForm ,error ){return &PdfActionResetForm {Fields :_aaga .Get ("\u0046\u0069\u0065\u006c\u0064\u0073"),Flags :_aaga .Get ("\u0046\u006c\u0061g\u0073")},nil ;
};func _bbccf (_bgdcg *PdfField ,_abfec _ae .PdfObject ){for _ ,_gfeb :=range _bgdcg .Annotations {_gfeb .AS =_abfec ;_gfeb .ToPdfObject ();};};func _eebaa (_gdcce *[]*PdfField ,_ecbfb FieldFilterFunc ,_addbca bool )[]*PdfField {if _gdcce ==nil {return nil ;
};_dbfe :=*_gdcce ;if len (*_gdcce )==0{return nil ;};_gecc :=_dbfe [:0];if _ecbfb ==nil {_ecbfb =func (*PdfField )bool {return true };};var _gfegd []*PdfField ;for _ ,_ecacc :=range _dbfe {_bdafc :=_ecbfb (_ecacc );if _bdafc {_gfegd =append (_gfegd ,_ecacc );
if len (_ecacc .Kids )> 0{_gfegd =append (_gfegd ,_eebaa (&_ecacc .Kids ,_ecbfb ,_addbca )...);};};if !_addbca ||!_bdafc ||len (_ecacc .Kids )> 0{_gecc =append (_gecc ,_ecacc );};};*_gdcce =_gecc ;return _gfegd ;};
// XObjectForm (Table 95 in 8.10.2).
type XObjectForm struct{Filter _ae .StreamEncoder ;FormType _ae .PdfObject ;BBox _ae .PdfObject ;Matrix _ae .PdfObject ;Resources *PdfPageResources ;Group _ae .PdfObject ;Ref _ae .PdfObject ;MetaData _ae .PdfObject ;PieceInfo _ae .PdfObject ;LastModified _ae .PdfObject ;
StructParent _ae .PdfObject ;StructParents _ae .PdfObject ;OPI _ae .PdfObject ;OC _ae .PdfObject ;Name _ae .PdfObject ;
// Stream data.
Stream []byte ;_fccdf *_ae .PdfObjectStream ;};
// NewXObjectImage returns a new XObjectImage.
func NewXObjectImage ()*XObjectImage {_ebfa :=&XObjectImage {};_dcaeg :=&_ae .PdfObjectStream {};_dcaeg .PdfObjectDictionary =_ae .MakeDict ();_ebfa ._efaag =_dcaeg ;return _ebfa ;};func _dcdc (_dacbb string )(map[_bgg .CharCode ]_bgg .GlyphName ,error ){_fcaaf :=_eg .Split (_dacbb ,"\u000a");
_abdeb :=make (map[_bgg .CharCode ]_bgg .GlyphName );for _ ,_bcafc :=range _fcaaf {_adfcc :=_agaeb .FindStringSubmatch (_bcafc );if _adfcc ==nil {continue ;};_abece ,_bgea :=_adfcc [1],_adfcc [2];_afcd ,_eafge :=_bg .Atoi (_abece );if _eafge !=nil {_ac .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",_bcafc );
return nil ,_ae .ErrTypeError ;};_abdeb [_bgg .CharCode (_afcd )]=_bgg .GlyphName (_bgea );};_ac .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",_abdeb );
return _abdeb ,nil ;};
// C returns the value of the C component of the color.
func (_aabc *PdfColorCalRGB )C ()float64 {return _aabc [2]};
// 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 (_feagg _gdc .Reader )(*Image ,error );
// NewImageFromGoImage loads a NRGBA32 unidoc Image from a standard Go image structure.
NewImageFromGoImage (_abeb _de .Image )(*Image ,error );
// NewGrayImageFromGoImage loads a grayscale unidoc Image from a standard Go image structure.
NewGrayImageFromGoImage (_afgc _de .Image )(*Image ,error );
// Compress an image.
Compress (_dgdfg *Image ,_bbdbg int64 )(*Image ,error );};func (_cddde *PdfWriter )writeTrailer (_cdacc int ){_cddde .writeString ("\u0078\u0072\u0065\u0066\u000d\u000a");for _fagcd :=0;_fagcd <=_cdacc ;{for ;_fagcd <=_cdacc ;_fagcd ++{_egcgd ,_bfdce :=_cddde ._agfeg [_fagcd ];
if _bfdce &&(!_cddde ._dffad ||_cddde ._dffad &&(_egcgd .Type ==1&&_egcgd .Offset >=_cddde ._gaffa ||_egcgd .Type ==0)){break ;};};var _ecdc int ;for _ecdc =_fagcd +1;_ecdc <=_cdacc ;_ecdc ++{_gbeceb ,_fdedg :=_cddde ._agfeg [_ecdc ];if _fdedg &&(!_cddde ._dffad ||_cddde ._dffad &&(_gbeceb .Type ==1&&_gbeceb .Offset > _cddde ._gaffa )){continue ;
};break ;};_ebafbe :=_f .Sprintf ("\u0025d\u0020\u0025\u0064\u000d\u000a",_fagcd ,_ecdc -_fagcd );_cddde .writeString (_ebafbe );for _edfea :=_fagcd ;_edfea < _ecdc ;_edfea ++{_geeg :=_cddde ._agfeg [_edfea ];switch _geeg .Type {case 0:_ebafbe =_f .Sprintf ("\u0025\u002e\u0031\u0030\u0064\u0020\u0025\u002e\u0035d\u0020\u0066\u000d\u000a",0,65535);
_cddde .writeString (_ebafbe );case 1:_ebafbe =_f .Sprintf ("\u0025\u002e\u0031\u0030\u0064\u0020\u0025\u002e\u0035d\u0020\u006e\u000d\u000a",_geeg .Offset ,0);_cddde .writeString (_ebafbe );};};_fagcd =_ecdc +1;};_bbafb :=_ae .MakeDict ();_bbafb .Set ("\u0049\u006e\u0066\u006f",_cddde ._cbffg );
_bbafb .Set ("\u0052\u006f\u006f\u0074",_cddde ._aacfc );_bbafb .Set ("\u0053\u0069\u007a\u0065",_ae .MakeInteger (int64 (_cdacc +1)));if _cddde ._dffad &&_cddde ._afadc > 0{_bbafb .Set ("\u0050\u0072\u0065\u0076",_ae .MakeInteger (_cddde ._afadc ));};
if _cddde ._ecedf !=nil {_bbafb .Set ("\u0045n\u0063\u0072\u0079\u0070\u0074",_cddde ._feddfa );};if _cddde ._dcdbd ==nil &&_cddde ._fddgb !=""&&_cddde ._dbdab !=""{_cddde ._dcdbd =_ae .MakeArray (_ae .MakeHexString (_cddde ._fddgb ),_ae .MakeHexString (_cddde ._dbdab ));
};if _cddde ._dcdbd !=nil {_bbafb .Set ("\u0049\u0044",_cddde ._dcdbd );_ac .Log .Trace ("\u0049d\u0073\u003a\u0020\u0025\u0073",_cddde ._dcdbd );};_cddde .writeString ("\u0074\u0072\u0061\u0069\u006c\u0065\u0072\u000a");_cddde .writeString (_bbafb .WriteString ());
_cddde .writeString ("\u000a");};
// GetContext returns the action context which contains the specific type-dependent context.
// The context represents the subaction.
func (_cbd *PdfAction )GetContext ()PdfModel {if _cbd ==nil {return nil ;};return _cbd ._df ;};func _acada (_ddfgba *PdfField )[]*PdfField {_cceaf :=[]*PdfField {_ddfgba };for _ ,_agbdg :=range _ddfgba .Kids {_cceaf =append (_cceaf ,_acada (_agbdg )...);
};return _cceaf ;};
// GetContainingPdfObject returns the container of the DSS (indirect object).
func (_cdbd *DSS )GetContainingPdfObject ()_ae .PdfObject {return _cdbd ._cefff };
// WriteToFile writes the output PDF to file.
func (_cdfca *PdfWriter )WriteToFile (outputFilePath string )error {_cfffg ,_aaaf :=_af .Create (outputFilePath );if _aaaf !=nil {return _aaaf ;};defer _cfffg .Close ();return _cdfca .Write (_cfffg );};
// ToPdfObject returns the button field dictionary within an indirect object.
func (_bffd *PdfFieldButton )ToPdfObject ()_ae .PdfObject {_bffd .PdfField .ToPdfObject ();_gada :=_bffd ._facca ;_adddg :=_gada .PdfObject .(*_ae .PdfObjectDictionary );_adddg .Set ("\u0046\u0054",_ae .MakeName ("\u0042\u0074\u006e"));if _bffd .Opt !=nil {_adddg .Set ("\u004f\u0070\u0074",_bffd .Opt );
};return _gada ;};
// WriteString outputs the object as it is to be written to file.
func (_edefc *PdfTransformParamsDocMDP )WriteString ()string {return _edefc .ToPdfObject ().WriteString ();};
// IsValid checks if the given pdf output intent type is valid.
func (_bedd PdfOutputIntentType )IsValid ()bool {return _bedd >=PdfOutputIntentTypeA1 &&_bedd <=PdfOutputIntentTypeX ;};func _accbe (_edagb _ae .PdfObject )(*_ae .PdfObjectDictionary ,*fontCommon ,error ){_efaf :=&fontCommon {};if _gbbeb ,_adbg :=_edagb .(*_ae .PdfIndirectObject );
_adbg {_efaf ._efef =_gbbeb .ObjectNumber ;};_bedbe ,_gfba :=_ae .GetDict (_edagb );if !_gfba {_ac .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",_edagb );
return nil ,nil ,ErrFontNotSupported ;};_gdgd ,_gfba :=_ae .GetNameVal (_bedbe .Get ("\u0054\u0079\u0070\u0065"));if !_gfba {_ac .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 _gdgd !="\u0046\u006f\u006e\u0074"{_ac .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.",_gdgd ,"\u0046\u006f\u006e\u0074");
return nil ,nil ,_ae .ErrTypeError ;};_bfag ,_gfba :=_ae .GetNameVal (_bedbe .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065"));if !_gfba {_ac .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 ;};_efaf ._adce =_bfag ;_dcace ,_gfba :=_ae .GetNameVal (_bedbe .Get ("\u004e\u0061\u006d\u0065"));if _gfba {_efaf ._bbce =_dcace ;};_edfgg :=_bedbe .Get ("\u0054o\u0055\u006e\u0069\u0063\u006f\u0064e");if _edfgg !=nil {_efaf ._dgea =_ae .TraceToDirectObject (_edfgg );
_ageb ,_gfff :=_dcbf (_efaf ._dgea ,_efaf );if _gfff !=nil {return _bedbe ,_efaf ,_gfff ;};_efaf ._ebfdc =_ageb ;}else if _bfag =="\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0030"||_bfag =="\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032"{_eedf ,_ggcbf :=_abg .NewCIDSystemInfo (_bedbe .Get ("\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f"));
if _ggcbf !=nil {return _bedbe ,_efaf ,_ggcbf ;};_fgdc :=_f .Sprintf ("\u0025\u0073\u002d\u0025\u0073\u002d\u0055\u0043\u0053\u0032",_eedf .Registry ,_eedf .Ordering );if _abg .IsPredefinedCMap (_fgdc ){_efaf ._ebfdc ,_ggcbf =_abg .LoadPredefinedCMap (_fgdc );
if _ggcbf !=nil {_ac .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",_fgdc ,_ggcbf );
};};};_dcbd :=_bedbe .Get ("\u0046\u006f\u006e\u0074\u0044\u0065\u0073\u0063\u0072i\u0070\u0074\u006f\u0072");if _dcbd !=nil {_dgece ,_dcbc :=_ebbc (_dcbd );if _dcbc !=nil {_ac .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",_dcbc );
return _bedbe ,_efaf ,_dcbc ;};_efaf ._cafdb =_dgece ;};if _bfag !="\u0054\u0079\u0070e\u0033"{_defb ,_fbbg :=_ae .GetNameVal (_bedbe .Get ("\u0042\u0061\u0073\u0065\u0046\u006f\u006e\u0074"));if !_fbbg {_ac .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 _bedbe ,_efaf ,ErrRequiredAttributeMissing ;};_efaf ._cedb =_defb ;};return _bedbe ,_efaf ,nil ;};func (_bedf *PdfReader )newPdfActionNamedFromDict (_dac *_ae .PdfObjectDictionary )(*PdfActionNamed ,error ){return &PdfActionNamed {N :_dac .Get ("\u004e")},nil ;
};func (_gfab *Image )resampleLowBits (_dfgfee []uint32 ){_fdcag :=_afc .BytesPerLine (int (_gfab .Width ),int (_gfab .BitsPerComponent ),_gfab .ColorComponents );_bbdfc :=make ([]byte ,_gfab .ColorComponents *_fdcag *int (_gfab .Height ));_eefgf :=int (_gfab .BitsPerComponent )*_gfab .ColorComponents *int (_gfab .Width );
_ffbd :=uint8 (8);var (_agcga ,_gabda int ;_edcaa uint32 ;);for _bbea :=0;_bbea < int (_gfab .Height );_bbea ++{_gabda =_bbea *_fdcag ;for _fbge :=0;_fbge < _eefgf ;_fbge ++{_edcaa =_dfgfee [_agcga ];_ffbd -=uint8 (_gfab .BitsPerComponent );_bbdfc [_gabda ]|=byte (_edcaa )<<_ffbd ;
if _ffbd ==0{_ffbd =8;_gabda ++;};_agcga ++;};};_gfab .Data =_bbdfc ;};func (_dadgg *PdfReader )loadAnnotations (_bfggf _ae .PdfObject )([]*PdfAnnotation ,error ){_bdbga ,_aafe :=_ae .GetArray (_bfggf );if !_aafe {return nil ,_f .Errorf ("\u0041\u006e\u006e\u006fts\u0020\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0061\u0072\u0072\u0061\u0079");
};var _edeg []*PdfAnnotation ;for _ ,_ecdb :=range _bdbga .Elements (){_ecdb =_ae .ResolveReference (_ecdb );if _ ,_befcg :=_ecdb .(*_ae .PdfObjectNull );_befcg {continue ;};_aebca ,_fdab :=_ecdb .(*_ae .PdfObjectDictionary );_defde ,_bgbfc :=_ecdb .(*_ae .PdfIndirectObject );
if _fdab {_defde =&_ae .PdfIndirectObject {};_defde .PdfObject =_aebca ;}else {if !_bgbfc {return nil ,_f .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");
};};_deadg ,_egeeg :=_dadgg .newPdfAnnotationFromIndirectObject (_defde );if _egeeg !=nil {return nil ,_egeeg ;};switch _ffdd :=_deadg .GetContext ().(type ){case *PdfAnnotationWidget :for _ ,_bggddg :=range _dadgg .AcroForm .AllFields (){if _bggddg ._facca ==_ffdd .Parent {_ffdd ._bab =_bggddg ;
break ;};};};if _deadg !=nil {_edeg =append (_edeg ,_deadg );};};return _edeg ,nil ;};
// GetMediaBox gets the inheritable media box value, either from the page
// or a higher up page/pages struct.
func (_eebdd *PdfPage )GetMediaBox ()(*PdfRectangle ,error ){if _eebdd .MediaBox !=nil {return _eebdd .MediaBox ,nil ;};_dfcbd :=_eebdd .Parent ;for _dfcbd !=nil {_gdebe ,_addag :=_ae .GetDict (_dfcbd );if !_addag {return nil ,_db .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 _cfbgd :=_gdebe .Get ("\u004d\u0065\u0064\u0069\u0061\u0042\u006f\u0078");_cfbgd !=nil {_baecd ,_aagae :=_ae .GetArray (_cfbgd );if !_aagae {return nil ,_db .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006d\u0065\u0064\u0069a\u0020\u0062\u006f\u0078");
};_ffff ,_geccd :=NewPdfRectangle (*_baecd );if _geccd !=nil {return nil ,_geccd ;};return _ffff ,nil ;};_dfcbd =_gdebe .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");};return nil ,_db .New ("m\u0065\u0064\u0069\u0061 b\u006fx\u0020\u006e\u006f\u0074\u0020d\u0065\u0066\u0069\u006e\u0065\u0064");
};
// GetContentStreamWithEncoder returns the pattern cell's content stream and its encoder
func (_cbdf *PdfTilingPattern )GetContentStreamWithEncoder ()([]byte ,_ae .StreamEncoder ,error ){_ddcbf ,_fdgcc :=_cbdf ._ebfged .(*_ae .PdfObjectStream );if !_fdgcc {_ac .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",_cbdf ._ebfged );
return nil ,nil ,_ae .ErrTypeError ;};_cdcec ,_gbbbe :=_ae .DecodeStream (_ddcbf );if _gbbbe !=nil {_ac .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",_gbbbe );
return nil ,nil ,_gbbbe ;};_cfecc ,_gbbbe :=_ae .NewEncoderFromStream (_ddcbf );if _gbbbe !=nil {_ac .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",_gbbbe );
return nil ,nil ,_gbbbe ;};return _cdcec ,_cfecc ,nil ;};
// NewPdfAnnotationRedact returns a new redact annotation.
func NewPdfAnnotationRedact ()*PdfAnnotationRedact {_adf :=NewPdfAnnotation ();_gab :=&PdfAnnotationRedact {};_gab .PdfAnnotation =_adf ;_gab .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_adf .SetContext (_gab );return _gab ;};
// Evaluate runs the function on the passed in slice and returns the results.
func (_bcacd *PdfFunctionType2 )Evaluate (x []float64 )([]float64 ,error ){if len (x )!=1{_ac .Log .Error ("\u004f\u006e\u006c\u0079 o\u006e\u0065\u0020\u0069\u006e\u0070\u0075\u0074\u0020\u0061\u006c\u006c\u006f\u0077e\u0064");return nil ,_db .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");
};_fcffg :=[]float64 {0.0};if _bcacd .C0 !=nil {_fcffg =_bcacd .C0 ;};_ddfc :=[]float64 {1.0};if _bcacd .C1 !=nil {_ddfc =_bcacd .C1 ;};var _fgafg []float64 ;for _gcgae :=0;_gcgae < len (_fcffg );_gcgae ++{_cagea :=_fcffg [_gcgae ]+_ag .Pow (x [0],_bcacd .N )*(_ddfc [_gcgae ]-_fcffg [_gcgae ]);
_fgafg =append (_fgafg ,_cagea );};return _fgafg ,nil ;};
// PdfActionGoToE represents a GoToE action.
type PdfActionGoToE struct{*PdfAction ;F *PdfFilespec ;D _ae .PdfObject ;NewWindow _ae .PdfObject ;T _ae .PdfObject ;};
// ToPdfObject implements interface PdfModel.
func (_aff *PdfActionTrans )ToPdfObject ()_ae .PdfObject {_aff .PdfAction .ToPdfObject ();_fef :=_aff ._cbe ;_abba :=_fef .PdfObject .(*_ae .PdfObjectDictionary );_abba .SetIfNotNil ("\u0053",_ae .MakeName (string (ActionTypeTrans )));_abba .SetIfNotNil ("\u0054\u0072\u0061n\u0073",_aff .Trans );
return _fef ;};func (_ebfebb *PdfWriter )optimizeDocument ()error {if _ebfebb ._bccf ==nil {return nil ;};_afdfe ,_ffedd :=_ae .GetDict (_ebfebb ._cbffg );if !_ffedd {return _db .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");
};_aafc :=_ed .Document {ID :[2]string {_ebfebb ._fddgb ,_ebfebb ._dbdab },Version :_ebfebb ._faffe ,Objects :_ebfebb ._edbe ,Info :_afdfe ,Crypt :_ebfebb ._ecedf ,UseHashBasedID :_ebfebb ._gfbc };if _gdee :=_ebfebb ._bccf .ApplyStandard (&_aafc );_gdee !=nil {return _gdee ;
};_ebfebb ._fddgb ,_ebfebb ._dbdab =_aafc .ID [0],_aafc .ID [1];_ebfebb ._faffe =_aafc .Version ;_ebfebb ._edbe =_aafc .Objects ;_ebfebb ._cbffg .PdfObject =_aafc .Info ;_ebfebb ._gfbc =_aafc .UseHashBasedID ;_ebfebb ._ecedf =_aafc .Crypt ;_fcgec :=make (map[_ae .PdfObject ]struct{},len (_ebfebb ._edbe ));
for _ ,_gaccg :=range _ebfebb ._edbe {_fcgec [_gaccg ]=struct{}{};};_ebfebb ._faecg =_fcgec ;return nil ;};
// PdfActionURI represents an URI action.
type PdfActionURI struct{*PdfAction ;URI _ae .PdfObject ;IsMap _ae .PdfObject ;};
// PdfColorspaceDeviceCMYK represents a CMYK32 colorspace.
type PdfColorspaceDeviceCMYK struct{};
// 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 ){_bdeg ,_dddge :=_af .Open (filePath );if _dddge !=nil {_ac .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",_dddge );
return nil ,_dddge ;};defer _bdeg .Close ();return NewPdfFontFromTTF (_bdeg );};
// AlphaMap performs mapping of alpha data for transformations. Allows custom filtering of alpha data etc.
func (_aace *Image )AlphaMap (mapFunc AlphaMapFunc ){for _bgafg ,_eeeg :=range _aace ._bbba {_aace ._bbba [_bgafg ]=mapFunc (_eeeg );};};
// DecodeArray returns the component range values for the Separation colorspace.
func (_ggeg *PdfColorspaceSpecialSeparation )DecodeArray ()[]float64 {return []float64 {0,1.0}};
// PdfColorspaceCalGray represents CalGray color space.
type PdfColorspaceCalGray struct{WhitePoint []float64 ;BlackPoint []float64 ;Gamma float64 ;_befdd *_ae .PdfIndirectObject ;};
// 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 (_eebbc *PdfFont )CharcodesToUnicodeWithStats (charcodes []_bgg .CharCode )(_cfgf []rune ,_dcdbcg ,_aebac int ){_ededg ,_dcdbcg ,_aebac :=_eebbc .CharcodesToStrings (charcodes );return []rune (_eg .Join (_ededg ,"")),_dcdbcg ,_aebac ;};
// 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 _gdc .ReadSeeker )(*CompliancePdfReader ,error ){const _beee ="\u006d\u006f\u0064\u0065l\u003a\u004e\u0065\u0077\u0043\u006f\u006d\u0070\u006c\u0069a\u006ec\u0065\u0050\u0064\u0066\u0052\u0065\u0061d\u0065\u0072";_fadg ,_gfgda :=_fccgfc (rs ,&ReaderOpts {ComplianceMode :true },false ,_beee );
if _gfgda !=nil {return nil ,_gfgda ;};return &CompliancePdfReader {PdfReader :_fadg },nil ;};
// NewPdfActionJavaScript returns a new "javaScript" action.
func NewPdfActionJavaScript ()*PdfActionJavaScript {_abd :=NewPdfAction ();_dfa :=&PdfActionJavaScript {};_dfa .PdfAction =_abd ;_abd .SetContext (_dfa );return _dfa ;};
// SetContext sets the sub annotation (context).
func (_bga *PdfAnnotation )SetContext (ctx PdfModel ){_bga ._ggd =ctx };func (_cfbaf *PdfPage )getParentResources ()(*PdfPageResources ,error ){_ggaaf :=_cfbaf .Parent ;for _ggaaf !=nil {_dedf ,_bfceb :=_ae .GetDict (_ggaaf );if !_bfceb {_ac .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 ,_db .New ("i\u006e\u0076\u0061\u006cid\u0020p\u0061\u0072\u0065\u006e\u0074 \u006f\u0062\u006a\u0065\u0063\u0074");};if _fdaba :=_dedf .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");_fdaba !=nil {_deffa ,_abef :=_ae .GetDict (_fdaba );
if !_abef {return nil ,_db .New ("i\u006e\u0076\u0061\u006cid\u0020r\u0065\u0073\u006f\u0075\u0072c\u0065\u0020\u0064\u0069\u0063\u0074");};_dedba ,_gbgga :=NewPdfPageResourcesFromDict (_deffa );if _gbgga !=nil {return nil ,_gbgga ;};return _dedba ,nil ;
};_ggaaf =_dedf .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");};return nil ,nil ;};
// ImageToRGB convert 1-component grayscale data to 3-component RGB.
func (_deab *PdfColorspaceDeviceGray )ImageToRGB (img Image )(Image ,error ){if img .ColorComponents !=1{return img ,_db .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");
};_ecdd ,_affef :=_afc .NewImage (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),img .ColorComponents ,img .Data ,img ._bbba ,img ._fdae );if _affef !=nil {return img ,_affef ;};_afabd ,_affef :=_afc .NRGBAConverter .Convert (_ecdd );
if _affef !=nil {return img ,_affef ;};_caeacdc :=_feagd (_afabd .Base ());_ac .Log .Trace ("\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079\u0020\u002d>\u0020\u0052\u0047\u0042");_ac .Log .Trace ("s\u0061\u006d\u0070\u006c\u0065\u0073\u003a\u0020\u0025\u0076",img .Data );
_ac .Log .Trace ("\u0052G\u0042 \u0073\u0061\u006d\u0070\u006c\u0065\u0073\u003a\u0020\u0025\u0076",_caeacdc .Data );_ac .Log .Trace ("\u0025\u0076\u0020\u002d\u003e\u0020\u0025\u0076",img ,_caeacdc );return _caeacdc ,nil ;};
// ToInteger convert to an integer format.
func (_cfdbe *PdfColorLab )ToInteger (bits int )[3]uint32 {_dbgb :=_ag .Pow (2,float64 (bits ))-1;return [3]uint32 {uint32 (_dbgb *_cfdbe .L ()),uint32 (_dbgb *_cfdbe .A ()),uint32 (_dbgb *_cfdbe .B ())};};
// 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 ;
// A returns the value of the A component of the color.
func (_cbaf *PdfColorLab )A ()float64 {return _cbaf [1]};func _ebda (_cabc *fontCommon )*pdfCIDFontType2 {return &pdfCIDFontType2 {fontCommon :*_cabc }};
// ToPdfObject returns the PDF representation of the shading pattern.
func (_bceb *PdfShadingPattern )ToPdfObject ()_ae .PdfObject {_bceb .PdfPattern .ToPdfObject ();_daefa :=_bceb .getDict ();if _bceb .Shading !=nil {_daefa .Set ("\u0053h\u0061\u0064\u0069\u006e\u0067",_bceb .Shading .ToPdfObject ());};if _bceb .Matrix !=nil {_daefa .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_bceb .Matrix );
};if _bceb .ExtGState !=nil {_daefa .Set ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e",_bceb .ExtGState );};return _bceb ._ebfged ;};
// Fill populates `form` with values provided by `provider`.
func (_ddec *PdfAcroForm )Fill (provider FieldValueProvider )error {return _ddec .fill (provider ,nil )};func (_aeeg *PdfReader )newPdfActionTransFromDict (_cca *_ae .PdfObjectDictionary )(*PdfActionTrans ,error ){return &PdfActionTrans {Trans :_cca .Get ("\u0054\u0072\u0061n\u0073")},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 (_agcc *LTV )EnableChain (chain []*_fc .Certificate )error {return _agcc .enable (nil ,chain ,"")};
// ToPdfObject implements interface PdfModel.
func (_ffebd *PdfAnnotationStamp )ToPdfObject ()_ae .PdfObject {_ffebd .PdfAnnotation .ToPdfObject ();_bdgg :=_ffebd ._gcgf ;_gffa :=_bdgg .PdfObject .(*_ae .PdfObjectDictionary );_ffebd .PdfAnnotationMarkup .appendToPdfDictionary (_gffa );_gffa .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ae .MakeName ("\u0053\u0074\u0061m\u0070"));
_gffa .SetIfNotNil ("\u004e\u0061\u006d\u0065",_ffebd .Name );return _bdgg ;};
// ToPdfObject returns the PDF representation of the DSS dictionary.
func (_ccda *DSS )ToPdfObject ()_ae .PdfObject {_gdcag :=_ccda ._cefff .PdfObject .(*_ae .PdfObjectDictionary );_gdcag .Clear ();_gdde :=_ae .MakeDict ();for _bbda ,_bccdb :=range _ccda .VRI {_gdde .Set (*_ae .MakeName (_bbda ),_bccdb .ToPdfObject ());
};_gdcag .SetIfNotNil ("\u0043\u0065\u0072t\u0073",_ceaec (_ccda .Certs ));_gdcag .SetIfNotNil ("\u004f\u0043\u0053P\u0073",_ceaec (_ccda .OCSPs ));_gdcag .SetIfNotNil ("\u0043\u0052\u004c\u0073",_ceaec (_ccda .CRLs ));_gdcag .Set ("\u0056\u0052\u0049",_gdde );
return _ccda ._cefff ;};
// Evaluate runs the function on the passed in slice and returns the results.
func (_fabcd *PdfFunctionType0 )Evaluate (x []float64 )([]float64 ,error ){if len (x )!=_fabcd .NumInputs {_ac .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 ,_db .New ("\u0072\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b\u0020e\u0072\u0072\u006f\u0072");};if _fabcd ._fegc ==nil {_dgceb :=_fabcd .processSamples ();if _dgceb !=nil {return nil ,_dgceb ;};};_fadd :=_fabcd .Encode ;if _fadd ==nil {_fadd =[]float64 {};
for _edbfg :=0;_edbfg < len (_fabcd .Size );_edbfg ++{_fadd =append (_fadd ,0);_fadd =append (_fadd ,float64 (_fabcd .Size [_edbfg ]-1));};};_ffagg :=_fabcd .Decode ;if _ffagg ==nil {_ffagg =_fabcd .Range ;};_gafc :=make ([]int ,len (x ));for _cdece :=0;
_cdece < len (x );_cdece ++{_gbfgg :=x [_cdece ];_acde :=_ag .Min (_ag .Max (_gbfgg ,_fabcd .Domain [2*_cdece ]),_fabcd .Domain [2*_cdece +1]);_cdfgc :=_afc .LinearInterpolate (_acde ,_fabcd .Domain [2*_cdece ],_fabcd .Domain [2*_cdece +1],_fadd [2*_cdece ],_fadd [2*_cdece +1]);
_ccggd :=_ag .Min (_ag .Max (_cdfgc ,0),float64 (_fabcd .Size [_cdece ]-1));_ddcf :=int (_ag .Floor (_ccggd +0.5));if _ddcf < 0{_ddcf =0;}else if _ddcf > _fabcd .Size [_cdece ]{_ddcf =_fabcd .Size [_cdece ]-1;};_gafc [_cdece ]=_ddcf ;};_abdd :=_gafc [0];
for _dfef :=1;_dfef < _fabcd .NumInputs ;_dfef ++{_bbfd :=_gafc [_dfef ];for _gaae :=0;_gaae < _dfef ;_gaae ++{_bbfd *=_fabcd .Size [_gaae ];};_abdd +=_bbfd ;};_abdd *=_fabcd .NumOutputs ;var _dabdc []float64 ;for _cdccg :=0;_cdccg < _fabcd .NumOutputs ;
_cdccg ++{_ffdac :=_abdd +_cdccg ;if _ffdac >=len (_fabcd ._fegc ){_ac .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 ;};_cegdf :=_fabcd ._fegc [_ffdac ];_gbfgc :=_afc .LinearInterpolate (float64 (_cegdf ),0,_ag .Pow (2,float64 (_fabcd .BitsPerSample )),_ffagg [2*_cdccg ],_ffagg [2*_cdccg +1]);_gdag :=_ag .Min (_ag .Max (_gbfgc ,_fabcd .Range [2*_cdccg ]),_fabcd .Range [2*_cdccg +1]);
_dabdc =append (_dabdc ,_gdag );};return _dabdc ,nil ;};
// SetFlag sets the flag for the field.
func (_ffcb *PdfField )SetFlag (flag FieldFlag ){_ffcb .Ff =_ae .MakeInteger (int64 (flag ))};
// 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 (_abed *LTV )Enable (sig *PdfSignature ,extraCerts []*_fc .Certificate )error {if _affad :=_abed .validateSig (sig );_affad !=nil {return _affad ;};_gdage ,_gbacb :=_abed .generateVRIKey (sig );if _gbacb !=nil {return _gbacb ;};if _ ,_fbed :=_abed ._dbggb .VRI [_gdage ];
_fbed &&_abed .SkipExisting {return nil ;};_bece ,_gbacb :=sig .GetCerts ();if _gbacb !=nil {return _gbacb ;};return _abed .enable (_bece ,extraCerts ,_gdage );};var (_cgcea =_bc .MustCompile ("\u005cd\u002b\u0020\u0064\u0069c\u0074\u005c\u0073\u002b\u0028d\u0075p\u005cs\u002b\u0029\u003f\u0062\u0065\u0067\u0069n");
_bage =_bc .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");_agaeb =_bc .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");
_aeebg ="\u002f\u0045\u006e\u0063od\u0069\u006e\u0067\u0020\u0032\u0035\u0036\u0020\u0061\u0072\u0072\u0061\u0079";_aagfc ="\u0072\u0065\u0061d\u006f\u006e\u006c\u0079\u0020\u0064\u0065\u0066";_aedef ="\u0063\u0075\u0072\u0072\u0065\u006e\u0074\u0066\u0069\u006c\u0065\u0020e\u0065\u0078\u0065\u0063";
);
// GetParamsDict returns *core.PdfObjectDictionary with a set of basic image parameters.
func (_gdaf *Image )GetParamsDict ()*_ae .PdfObjectDictionary {_ebeba :=_ae .MakeDict ();_ebeba .Set ("\u0057\u0069\u0064t\u0068",_ae .MakeInteger (_gdaf .Width ));_ebeba .Set ("\u0048\u0065\u0069\u0067\u0068\u0074",_ae .MakeInteger (_gdaf .Height ));_ebeba .Set ("\u0043o\u006co\u0072\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074\u0073",_ae .MakeInteger (int64 (_gdaf .ColorComponents )));
_ebeba .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_ae .MakeInteger (_gdaf .BitsPerComponent ));return _ebeba ;};
// ToPdfObject implements interface PdfModel.
func (_ecg *PdfActionSubmitForm )ToPdfObject ()_ae .PdfObject {_ecg .PdfAction .ToPdfObject ();_gge :=_ecg ._cbe ;_eef :=_gge .PdfObject .(*_ae .PdfObjectDictionary );_eef .SetIfNotNil ("\u0053",_ae .MakeName (string (ActionTypeSubmitForm )));if _ecg .F !=nil {_eef .Set ("\u0046",_ecg .F .ToPdfObject ());
};_eef .SetIfNotNil ("\u0046\u0069\u0065\u006c\u0064\u0073",_ecg .Fields );_eef .SetIfNotNil ("\u0046\u006c\u0061g\u0073",_ecg .Flags );return _gge ;};
// 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 ;func (_abbdc *PdfSignature )extractChainFromPKCS7 ()([]*_fc .Certificate ,error ){_dgaae ,_cebcf :=_dge .Parse (_abbdc .Contents .Bytes ());if _cebcf !=nil {return nil ,_cebcf ;};return _dgaae .Certificates ,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 _ae .PdfObject ;FontFamily _ae .PdfObject ;FontStretch _ae .PdfObject ;FontWeight _ae .PdfObject ;Flags _ae .PdfObject ;FontBBox _ae .PdfObject ;ItalicAngle _ae .PdfObject ;Ascent _ae .PdfObject ;Descent _ae .PdfObject ;
Leading _ae .PdfObject ;CapHeight _ae .PdfObject ;XHeight _ae .PdfObject ;StemV _ae .PdfObject ;StemH _ae .PdfObject ;AvgWidth _ae .PdfObject ;MaxWidth _ae .PdfObject ;MissingWidth _ae .PdfObject ;FontFile _ae .PdfObject ;FontFile2 _ae .PdfObject ;FontFile3 _ae .PdfObject ;
CharSet _ae .PdfObject ;_fbafe int ;_ffdc float64 ;*fontFile ;_aebfg *_cb .TtfType ;
// Additional entries for CIDFonts
Style _ae .PdfObject ;Lang _ae .PdfObject ;FD _ae .PdfObject ;CIDSet _ae .PdfObject ;_dcfaf *_ae .PdfIndirectObject ;};func (_ceeda *PdfReader )buildPageList (_fbagg *_ae .PdfIndirectObject ,_febaf *_ae .PdfIndirectObject ,_fegac map[_ae .PdfObject ]struct{})error {if _fbagg ==nil {return nil ;
};if _ ,_fcdfd :=_fegac [_fbagg ];_fcdfd {_ac .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",_fbagg .ObjectNumber );
return nil ;};_fegac [_fbagg ]=struct{}{};_gbafe ,_edda :=_fbagg .PdfObject .(*_ae .PdfObjectDictionary );if !_edda {return _db .New ("n\u006f\u0064\u0065\u0020no\u0074 \u0061\u0020\u0064\u0069\u0063t\u0069\u006f\u006e\u0061\u0072\u0079");};_fcagdf ,_edda :=(*_gbafe ).Get ("\u0054\u0079\u0070\u0065").(*_ae .PdfObjectName );
if !_edda {if _gbafe .Get ("\u004b\u0069\u0064\u0073")==nil {return _db .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");};_ac .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.");
_fcagdf =_ae .MakeName ("\u0050\u0061\u0067e\u0073");_gbafe .Set ("\u0054\u0079\u0070\u0065",_fcagdf );};_ac .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",*_fcagdf ,_fbagg );
if *_fcagdf =="\u0050\u0061\u0067\u0065"{_becac ,_gcfde :=_ceeda .newPdfPageFromDict (_gbafe );if _gcfde !=nil {return _gcfde ;};_becac .setContainer (_fbagg );if _febaf !=nil {_gbafe .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_febaf );};_ceeda ._bcaab =append (_ceeda ._bcaab ,_fbagg );
_ceeda .PageList =append (_ceeda .PageList ,_becac );return nil ;};if *_fcagdf !="\u0050\u0061\u0067e\u0073"{_ac .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",_fcagdf );
return _db .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 _febaf !=nil {_gbafe .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_febaf );};if !_ceeda ._ffggb {_ebdgfa :=_ceeda .traverseObjectData (_fbagg );if _ebdgfa !=nil {return _ebdgfa ;};};_fdddc ,_ecced :=_ceeda ._bfcga .Resolve (_gbafe .Get ("\u004b\u0069\u0064\u0073"));
if _ecced !=nil {_ac .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 _ecced ;};var _fddfg *_ae .PdfObjectArray ;
_fddfg ,_edda =_fdddc .(*_ae .PdfObjectArray );if !_edda {_begbg ,_cgece :=_fdddc .(*_ae .PdfIndirectObject );if !_cgece {return _db .New ("\u0069\u006e\u0076\u0061li\u0064\u0020\u004b\u0069\u0064\u0073\u0020\u006f\u0062\u006a\u0065\u0063\u0074");};_fddfg ,_edda =_begbg .PdfObject .(*_ae .PdfObjectArray );
if !_edda {return _db .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");};};_ac .Log .Trace ("\u004b\u0069\u0064\u0073\u003a\u0020\u0025\u0073",_fddfg );
for _ecffa ,_gegbe :=range _fddfg .Elements (){_eegb ,_cgbga :=_ae .GetIndirect (_gegbe );if !_cgbga {_ac .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",_eegb );
return _db .New ("\u0070a\u0067\u0065\u0020\u006e\u006f\u0074\u0020\u0069\u006e\u0064\u0069r\u0065\u0063\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074");};_fddfg .Set (_ecffa ,_eegb );_ecced =_ceeda .buildPageList (_eegb ,_fbagg ,_fegac );if _ecced !=nil {return _ecced ;
};};return nil ;};
// EncryptionAlgorithm is used in EncryptOptions to change the default algorithm used to encrypt the document.
type EncryptionAlgorithm int ;func (_bcge *PdfReader )newPdfActionHideFromDict (_abe *_ae .PdfObjectDictionary )(*PdfActionHide ,error ){return &PdfActionHide {T :_abe .Get ("\u0054"),H :_abe .Get ("\u0048")},nil ;};
// GetCatalogMetadata gets the catalog defined XMP Metadata.
func (_deceb *PdfReader )GetCatalogMetadata ()(_ae .PdfObject ,bool ){if _deceb ._aedf ==nil {return nil ,false ;};_abagd :=_deceb ._aedf .Get ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");return _abagd ,_abagd !=nil ;};
// ToPdfObject implements interface PdfModel.
func (_dccf *PdfAnnotationWidget )ToPdfObject ()_ae .PdfObject {_dccf .PdfAnnotation .ToPdfObject ();_aegf :=_dccf ._gcgf ;_geff :=_aegf .PdfObject .(*_ae .PdfObjectDictionary );if _dccf ._bde {return _aegf ;};_dccf ._bde =true ;_geff .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ae .MakeName ("\u0057\u0069\u0064\u0067\u0065\u0074"));
_geff .SetIfNotNil ("\u0048",_dccf .H );_geff .SetIfNotNil ("\u004d\u004b",_dccf .MK );_geff .SetIfNotNil ("\u0041",_dccf .A );_geff .SetIfNotNil ("\u0041\u0041",_dccf .AA );_geff .SetIfNotNil ("\u0042\u0053",_dccf .BS );_ccee :=_dccf .Parent ;if _dccf ._bab !=nil {if _dccf ._bab ._facca ==_dccf ._gcgf {_dccf ._bab .ToPdfObject ();
};_ccee =_dccf ._bab .GetContainingPdfObject ();};if _ccee !=_aegf {_geff .SetIfNotNil ("\u0050\u0061\u0072\u0065\u006e\u0074",_ccee );};_dccf ._bde =false ;return _aegf ;};func (_cdfed *LTV )getCerts (_edadb []*_fc .Certificate )([][]byte ,error ){_beca :=make ([][]byte ,0,len (_edadb ));
for _ ,_cggef :=range _edadb {_beca =append (_beca ,_cggef .Raw );};return _beca ,nil ;};
// NewPdfActionSetOCGState returns a new "named" action.
func NewPdfActionSetOCGState ()*PdfActionSetOCGState {_ge :=NewPdfAction ();_cge :=&PdfActionSetOCGState {};_cge .PdfAction =_ge ;_ge .SetContext (_cge );return _cge ;};
// NewPdfColorspaceSpecialIndexed returns a new Indexed color.
func NewPdfColorspaceSpecialIndexed ()*PdfColorspaceSpecialIndexed {return &PdfColorspaceSpecialIndexed {HiVal :255};};
// SetXObjectByName adds the XObject from the passed in stream to the page resources.
// The added XObject is identified by the specified name.
func (_degdd *PdfPageResources )SetXObjectByName (keyName _ae .PdfObjectName ,stream *_ae .PdfObjectStream )error {if _degdd .XObject ==nil {_degdd .XObject =_ae .MakeDict ();};_fdbec :=_ae .TraceToDirectObject (_degdd .XObject );_gecfa ,_ebgcb :=_fdbec .(*_ae .PdfObjectDictionary );
if !_ebgcb {_ac .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",_degdd .XObject ,_fdbec );return _db .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");
};_gecfa .Set (keyName ,stream );return nil ;};func (_eebaf *PdfReader )newPdfOutlineItemFromIndirectObject (_ccbac *_ae .PdfIndirectObject )(*PdfOutlineItem ,error ){_dbfdc ,_deddd :=_ccbac .PdfObject .(*_ae .PdfObjectDictionary );if !_deddd {return nil ,_f .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");
};_adfe :=NewPdfOutlineItem ();_bgbce :=_dbfdc .Get ("\u0054\u0069\u0074l\u0065");if _bgbce ==nil {return nil ,_f .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");
};_ddbde ,_cbdeb :=_ae .GetString (_bgbce );if !_cbdeb {return nil ,_f .Errorf ("\u0074\u0069\u0074le\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0073\u0074\u0072\u0069\u006e\u0067\u0020\u0028\u0025\u0054\u0029",_bgbce );};_adfe .Title =_ddbde ;if _gaab :=_dbfdc .Get ("\u0043\u006f\u0075n\u0074");
_gaab !=nil {_fgfa ,_baba :=_gaab .(*_ae .PdfObjectInteger );if !_baba {return nil ,_f .Errorf ("\u0063o\u0075\u006e\u0074\u0020n\u006f\u0074\u0020\u0061\u006e \u0069n\u0074e\u0067\u0065\u0072\u0020\u0028\u0025\u0054)",_gaab );};_aggff :=int64 (*_fgfa );
_adfe .Count =&_aggff ;};if _ccdcgb :=_dbfdc .Get ("\u0044\u0065\u0073\u0074");_ccdcgb !=nil {_adfe .Dest =_ae .ResolveReference (_ccdcgb );if !_eebaf ._ffggb {_agbdcf :=_eebaf .traverseObjectData (_adfe .Dest );if _agbdcf !=nil {return nil ,_agbdcf ;};
};};if _cadge :=_dbfdc .Get ("\u0041");_cadge !=nil {_adfe .A =_ae .ResolveReference (_cadge );if !_eebaf ._ffggb {_ceec :=_eebaf .traverseObjectData (_adfe .A );if _ceec !=nil {return nil ,_ceec ;};};};if _egdb :=_dbfdc .Get ("\u0053\u0045");_egdb !=nil {_adfe .SE =nil ;
};if _agfcf :=_dbfdc .Get ("\u0043");_agfcf !=nil {_adfe .C =_ae .ResolveReference (_agfcf );};if _bgcga :=_dbfdc .Get ("\u0046");_bgcga !=nil {_adfe .F =_ae .ResolveReference (_bgcga );};return _adfe ,nil ;};
// 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 ()_ae .PdfObject ;GetContainingPdfObject ()_ae .PdfObject ;};
// Initialize initializes the PdfSignature.
func (_cgcbe *PdfSignature )Initialize ()error {if _cgcbe .Handler ==nil {return _db .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 _cgcbe .Handler .InitSignature (_cgcbe );};
// SetContext sets the sub action (context).
func (_ad *PdfAction )SetContext (ctx PdfModel ){_ad ._df =ctx };
// PdfAnnotationStamp represents Stamp annotations.
// (Section 12.5.6.12).
type PdfAnnotationStamp struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Name _ae .PdfObject ;};
// ToPdfObject returns the PDF representation of the colorspace.
func (_aeba *PdfColorspaceDeviceCMYK )ToPdfObject ()_ae .PdfObject {return _ae .MakeName ("\u0044\u0065\u0076\u0069\u0063\u0065\u0043\u004d\u0059\u004b");};
// 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 (_afgdc *PdfAcroForm )FillWithAppearance (provider FieldValueProvider ,appGen FieldAppearanceGenerator )error {_gccba :=_afgdc .fill (provider ,appGen );if _gccba !=nil {return _gccba ;};if _ ,_dgac :=provider .(FieldImageProvider );_dgac {_gccba =_afgdc .fillImageWithAppearance (provider .(FieldImageProvider ),appGen );
};return _gccba ;};
// 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 (_bfcfg *PdfReader )GetOutlinesFlattened ()([]*PdfOutlineTreeNode ,[]string ,error ){var _dccee []*PdfOutlineTreeNode ;var _efffg []string ;var _gfga func (*PdfOutlineTreeNode ,*[]*PdfOutlineTreeNode ,*[]string ,int );_gfga =func (_eage *PdfOutlineTreeNode ,_aagfd *[]*PdfOutlineTreeNode ,_fega *[]string ,_bdebf int ){if _eage ==nil {return ;
};if _eage ._aaea ==nil {_ac .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 ;};_gcca ,_eedaf :=_eage ._aaea .(*PdfOutlineItem );if _eedaf {*_aagfd =append (*_aagfd ,&_gcca .PdfOutlineTreeNode );
_ecccc :=_eg .Repeat ("\u0020",_bdebf *2)+_gcca .Title .Decoded ();*_fega =append (*_fega ,_ecccc );};if _eage .First !=nil {_effbd :=_eg .Repeat ("\u0020",_bdebf *2)+"\u002b";*_fega =append (*_fega ,_effbd );_gfga (_eage .First ,_aagfd ,_fega ,_bdebf +1);
};if _eedaf &&_gcca .Next !=nil {_gfga (_gcca .Next ,_aagfd ,_fega ,_bdebf );};};_gfga (_bfcfg ._ecbe ,&_dccee ,&_efffg ,0);return _dccee ,_efffg ,nil ;};
// ImageToRGB returns the passed in image. Method exists in order to satisfy
// the PdfColorspace interface.
func (_eccc *PdfColorspaceDeviceRGB )ImageToRGB (img Image )(Image ,error ){return img ,nil };
// NewPdfColorspaceSpecialPattern returns a new pattern color.
func NewPdfColorspaceSpecialPattern ()*PdfColorspaceSpecialPattern {return &PdfColorspaceSpecialPattern {};};
// 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 (_ddfgbg []_ae .PdfObject )([]_ae .PdfObject ,error );};
// NewOutline returns a new outline instance.
func NewOutline ()*Outline {return &Outline {}};func _gfbga (_aggeec *_ae .PdfObjectDictionary ,_gcgfc *fontCommon ,_aefgf _bgg .TextEncoder )(*pdfFontSimple ,error ){_cceae :=_aead (_gcgfc );_cceae ._aacd =_aefgf ;if _aefgf ==nil {_babeg :=_aggeec .Get ("\u0046i\u0072\u0073\u0074\u0043\u0068\u0061r");
if _babeg ==nil {_babeg =_ae .MakeInteger (0);};_cceae .FirstChar =_babeg ;_cdbgd ,_gefc :=_ae .GetIntVal (_babeg );if !_gefc {_ac .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",_babeg );
return nil ,_ae .ErrTypeError ;};_dggca :=_bgg .CharCode (_cdbgd );_babeg =_aggeec .Get ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072");if _babeg ==nil {_babeg =_ae .MakeInteger (255);};_cceae .LastChar =_babeg ;_cdbgd ,_gefc =_ae .GetIntVal (_babeg );
if !_gefc {_ac .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",_babeg );return nil ,_ae .ErrTypeError ;
};_afgga :=_bgg .CharCode (_cdbgd );_cceae ._deaed =make (map[_bgg .CharCode ]float64 );_babeg =_aggeec .Get ("\u0057\u0069\u0064\u0074\u0068\u0073");if _babeg !=nil {_cceae .Widths =_babeg ;_eaab ,_cebacd :=_ae .GetArray (_babeg );if !_cebacd {_ac .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",_babeg );
return nil ,_ae .ErrTypeError ;};_gdgab ,_eabeb :=_eaab .ToFloat64Array ();if _eabeb !=nil {_ac .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 ,_eabeb ;};if len (_gdgab )!=int (_afgga -_dggca +1){_ac .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",_afgga -_dggca +1,len (_gdgab ));
return nil ,_ae .ErrRangeError ;};for _dgfdc ,_cdda :=range _gdgab {_cceae ._deaed [_dggca +_bgg .CharCode (_dgfdc )]=_cdda ;};};};_cceae .Encoding =_ae .TraceToDirectObject (_aggeec .Get ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067"));return _cceae ,nil ;
};
// A returns the value of the A component of the color.
func (_bgddg *PdfColorCalRGB )A ()float64 {return _bgddg [0]};
// 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 (_aggc *PdfFont )RunesToCharcodeBytes (data []rune )([]byte ,int ){var _abff []_bgg .TextEncoder ;var _daddf _bgg .CMapEncoder ;if _caaag :=_aggc .baseFields ()._ebfdc ;_caaag !=nil {_daddf =_bgg .NewCMapEncoder ("",nil ,_caaag );};_edaf :=_aggc .Encoder ();
if _edaf !=nil {switch _bcfa :=_edaf .(type ){case _bgg .SimpleEncoder :_ggbc :=_bcfa .BaseName ();if _ ,_eafga :=_dbec [_ggbc ];_eafga {_abff =append (_abff ,_edaf );};};};if len (_abff )==0{if _aggc .baseFields ()._ebfdc !=nil {_abff =append (_abff ,_daddf );
};if _edaf !=nil {_abff =append (_abff ,_edaf );};};var _gbgcd _aa .Buffer ;var _fceea int ;for _ ,_cegcc :=range data {var _gdbd bool ;for _ ,_edabf :=range _abff {if _bbeda :=_edabf .Encode (string (_cegcc ));len (_bbeda )> 0{_gbgcd .Write (_bbeda );
_gdbd =true ;break ;};};if !_gdbd {_ac .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",_cegcc );
_fceea ++;};};if _fceea !=0{_ac .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 ),_fceea ,_aggc ,_abff );
};return _gbgcd .Bytes (),_fceea ;};
// PdfAnnotationUnderline represents Underline annotations.
// (Section 12.5.6.10).
type PdfAnnotationUnderline struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _ae .PdfObject ;};
// NewPdfPage returns a new PDF page.
func NewPdfPage ()*PdfPage {_dbgdg :=PdfPage {};_dbgdg ._efgca =_ae .MakeDict ();_dbgdg .Resources =NewPdfPageResources ();_gafff :=_ae .PdfIndirectObject {};_gafff .PdfObject =_dbgdg ._efgca ;_dbgdg ._egbbg =&_gafff ;_dbgdg ._eedgd =*_dbgdg ._efgca ;return &_dbgdg ;
};
// PdfAnnotationStrikeOut represents StrikeOut annotations.
// (Section 12.5.6.10).
type PdfAnnotationStrikeOut struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _ae .PdfObject ;};
// 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 _gdc .ReadSeeker )(*PdfReader ,error ){const _fdbe ="\u006do\u0064e\u006c\u003a\u004e\u0065\u0077P\u0064\u0066R\u0065\u0061\u0064\u0065\u0072";return _fccgfc (rs ,&ReaderOpts {},false ,_fdbe );};
// ToPdfObject implements interface PdfModel.
func (_eegd *PdfAnnotationSquare )ToPdfObject ()_ae .PdfObject {_eegd .PdfAnnotation .ToPdfObject ();_ebbf :=_eegd ._gcgf ;_bbg :=_ebbf .PdfObject .(*_ae .PdfObjectDictionary );if _eegd .PdfAnnotationMarkup !=nil {_eegd .PdfAnnotationMarkup .appendToPdfDictionary (_bbg );
};_bbg .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ae .MakeName ("\u0053\u0071\u0075\u0061\u0072\u0065"));_bbg .SetIfNotNil ("\u0042\u0053",_eegd .BS );_bbg .SetIfNotNil ("\u0049\u0043",_eegd .IC );_bbg .SetIfNotNil ("\u0042\u0045",_eegd .BE );
_bbg .SetIfNotNil ("\u0052\u0044",_eegd .RD );return _ebbf ;};
// AddExtGState add External Graphics State (GState). The gsDict can be specified
// either directly as a dictionary or an indirect object containing a dictionary.
func (_bagee *PdfPageResources )AddExtGState (gsName _ae .PdfObjectName ,gsDict _ae .PdfObject )error {if _bagee .ExtGState ==nil {_bagee .ExtGState =_ae .MakeDict ();};_ddeag :=_bagee .ExtGState ;_dadec ,_dbfgc :=_ae .TraceToDirectObject (_ddeag ).(*_ae .PdfObjectDictionary );
if !_dbfgc {_ac .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",_ddeag ,_ae .TraceToDirectObject (_ddeag ));
return _ae .ErrTypeError ;};_dadec .Set (gsName ,gsDict );return nil ;};func _edag (_ceff _ae .PdfObject )(*PdfColorspaceCalRGB ,error ){_ebdg :=NewPdfColorspaceCalRGB ();if _ddcb ,_caba :=_ceff .(*_ae .PdfIndirectObject );_caba {_ebdg ._gbge =_ddcb ;};
_ceff =_ae .TraceToDirectObject (_ceff );_cebac ,_gccb :=_ceff .(*_ae .PdfObjectArray );if !_gccb {return nil ,_f .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _cebac .Len ()!=2{return nil ,_f .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0043\u0061\u006c\u0052G\u0042 \u0063o\u006c\u006f\u0072\u0073\u0070\u0061\u0063e");
};_ceff =_ae .TraceToDirectObject (_cebac .Get (0));_afde ,_gccb :=_ceff .(*_ae .PdfObjectName );if !_gccb {return nil ,_f .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 *_afde !="\u0043\u0061\u006c\u0052\u0047\u0042"{return nil ,_f .Errorf ("\u006e\u006f\u0074 a\u0020\u0043\u0061\u006c\u0052\u0047\u0042\u0020\u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063\u0065");};_ceff =_ae .TraceToDirectObject (_cebac .Get (1));
_egcb ,_gccb :=_ceff .(*_ae .PdfObjectDictionary );if !_gccb {return nil ,_f .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");};_ceff =_egcb .Get ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074");
_ceff =_ae .TraceToDirectObject (_ceff );_gcgb ,_gccb :=_ceff .(*_ae .PdfObjectArray );if !_gccb {return nil ,_f .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 _gcgb .Len ()!=3{return nil ,_f .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");};_eaddd ,_ecdfg :=_gcgb .GetAsFloat64Slice ();
if _ecdfg !=nil {return nil ,_ecdfg ;};_ebdg .WhitePoint =_eaddd ;_ceff =_egcb .Get ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074");if _ceff !=nil {_ceff =_ae .TraceToDirectObject (_ceff );_fbea ,_eefgc :=_ceff .(*_ae .PdfObjectArray );
if !_eefgc {return nil ,_f .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 _fbea .Len ()!=3{return nil ,_f .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");
};_accc ,_daacg :=_fbea .GetAsFloat64Slice ();if _daacg !=nil {return nil ,_daacg ;};_ebdg .BlackPoint =_accc ;};_ceff =_egcb .Get ("\u0047\u0061\u006dm\u0061");if _ceff !=nil {_ceff =_ae .TraceToDirectObject (_ceff );_cebe ,_ebfg :=_ceff .(*_ae .PdfObjectArray );
if !_ebfg {return nil ,_f .Errorf ("C\u0061\u006c\u0052\u0047B:\u0020I\u006e\u0076\u0061\u006c\u0069d\u0020\u0047\u0061\u006d\u006d\u0061");};if _cebe .Len ()!=3{return nil ,_f .Errorf ("C\u0061\u006c\u0052\u0047\u0042\u003a \u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0047a\u006d\u006d\u0061 \u0061r\u0072\u0061\u0079");
};_bgeb ,_bggf :=_cebe .GetAsFloat64Slice ();if _bggf !=nil {return nil ,_bggf ;};_ebdg .Gamma =_bgeb ;};_ceff =_egcb .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");if _ceff !=nil {_ceff =_ae .TraceToDirectObject (_ceff );_dgeec ,_cbcc :=_ceff .(*_ae .PdfObjectArray );
if !_cbcc {return nil ,_f .Errorf ("\u0043\u0061\u006c\u0052GB\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u004d\u0061\u0074\u0072i\u0078");};if _dgeec .Len ()!=9{_ac .Log .Error ("\u004d\u0061t\u0072\u0069\u0078 \u0061\u0072\u0072\u0061\u0079\u003a\u0020\u0025\u0073",_dgeec .String ());
return nil ,_f .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");};_ccad ,_aeaf :=_dgeec .GetAsFloat64Slice ();if _aeaf !=nil {return nil ,_aeaf ;
};_ebdg .Matrix =_ccad ;};return _ebdg ,nil ;};func (_eee *PdfReader )newPdfActionGoTo3DViewFromDict (_gbfd *_ae .PdfObjectDictionary )(*PdfActionGoTo3DView ,error ){return &PdfActionGoTo3DView {TA :_gbfd .Get ("\u0054\u0041"),V :_gbfd .Get ("\u0056")},nil ;
};
// GetContainingPdfObject implements interface PdfModel.
func (_fecaf *PdfSignature )GetContainingPdfObject ()_ae .PdfObject {return _fecaf ._gccbeg };
// ToPdfObject returns the PDF representation of the outline tree node.
func (_gfcbg *PdfOutlineTreeNode )ToPdfObject ()_ae .PdfObject {return _gfcbg .GetContext ().ToPdfObject ();};
// ToOutlineTree returns a low level PdfOutlineTreeNode object, based on
// the current instance.
func (_gbbbd *Outline )ToOutlineTree ()*PdfOutlineTreeNode {return &_gbbbd .ToPdfOutline ().PdfOutlineTreeNode ;};func (_gfcb *PdfReader )newPdfAnnotation3DFromDict (_cce *_ae .PdfObjectDictionary )(*PdfAnnotation3D ,error ){_ceeb :=PdfAnnotation3D {};
_ceeb .T3DD =_cce .Get ("\u0033\u0044\u0044");_ceeb .T3DV =_cce .Get ("\u0033\u0044\u0056");_ceeb .T3DA =_cce .Get ("\u0033\u0044\u0041");_ceeb .T3DI =_cce .Get ("\u0033\u0044\u0049");_ceeb .T3DB =_cce .Get ("\u0033\u0044\u0042");return &_ceeb ,nil ;};
// DefaultImageHandler is the default implementation of the ImageHandler using the standard go library.
type DefaultImageHandler struct{};
// 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 *_ae .PdfParser ;DiffPolicy _dbg .DiffPolicy ;};
// 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 (_ggafa *PdfColorspaceLab )ColorFromPdfObjects (objects []_ae .PdfObject )(PdfColor ,error ){if len (objects )!=3{return nil ,_db .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_dgabe ,_feecf :=_ae .GetNumbersAsFloat (objects );
if _feecf !=nil {return nil ,_feecf ;};return _ggafa .ColorFromFloats (_dgabe );};
// 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 (_egfcd *PdfColorspaceSpecialPattern )ColorFromPdfObjects (objects []_ae .PdfObject )(PdfColor ,error ){if len (objects )< 1{return nil ,_db .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");
};_bcaeac :=&PdfColorPattern {};_febe ,_beecf :=objects [len (objects )-1].(*_ae .PdfObjectName );if !_beecf {_ac .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 ;};_bcaeac .PatternName =*_febe ;if len (objects )> 1{_gfbg :=objects [0:len (objects )-1];if _egfcd .UnderlyingCS ==nil {_ac .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 ,_db .New ("\u0075n\u0064\u0065\u0072\u006cy\u0069\u006e\u0067\u0020\u0043S\u0020n\u006ft\u0020\u0064\u0065\u0066\u0069\u006e\u0065d");};_agfd ,_cabge :=_egfcd .UnderlyingCS .ColorFromPdfObjects (_gfbg );if _cabge !=nil {_ac .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",_cabge );
return nil ,_cabge ;};_bcaeac .Color =_agfd ;};return _bcaeac ,nil ;};
// SetXObjectFormByName adds the provided XObjectForm to the page resources.
// The added XObjectForm is identified by the specified name.
func (_cgafb *PdfPageResources )SetXObjectFormByName (keyName _ae .PdfObjectName ,xform *XObjectForm )error {_cfbfce :=xform .ToPdfObject ().(*_ae .PdfObjectStream );_bbdac :=_cgafb .SetXObjectByName (keyName ,_cfbfce );return _bbdac ;};
// ToPdfObject returns the PDF representation of the shading dictionary.
func (_cgaea *PdfShadingType1 )ToPdfObject ()_ae .PdfObject {_cgaea .PdfShading .ToPdfObject ();_dfcd ,_cggfe :=_cgaea .getShadingDict ();if _cggfe !=nil {_ac .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 _cgaea .Domain !=nil {_dfcd .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_cgaea .Domain );};if _cgaea .Matrix !=nil {_dfcd .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_cgaea .Matrix );};if _cgaea .Function !=nil {if len (_cgaea .Function )==1{_dfcd .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_cgaea .Function [0].ToPdfObject ());
}else {_edcdd :=_ae .MakeArray ();for _ ,_dgcfc :=range _cgaea .Function {_edcdd .Append (_dgcfc .ToPdfObject ());};_dfcd .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_edcdd );};};return _cgaea ._dcdgda ;};
// Y returns the value of the yellow component of the color.
func (_ffgfe *PdfColorDeviceCMYK )Y ()float64 {return _ffgfe [2]};func _eeedf (_dcaac _ae .PdfObject )(*PdfColorspaceSpecialIndexed ,error ){_acfb :=NewPdfColorspaceSpecialIndexed ();if _geece ,_beaeb :=_dcaac .(*_ae .PdfIndirectObject );_beaeb {_acfb ._edeb =_geece ;
};_dcaac =_ae .TraceToDirectObject (_dcaac );_gfad ,_aagff :=_dcaac .(*_ae .PdfObjectArray );if !_aagff {return nil ,_f .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _gfad .Len ()!=4{return nil ,_f .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");
};_dcaac =_gfad .Get (0);_cged ,_aagff :=_dcaac .(*_ae .PdfObjectName );if !_aagff {return nil ,_f .Errorf ("\u0069n\u0064\u0065\u0078\u0065\u0064\u0020\u0043\u0053\u003a\u0020\u0069n\u0076\u0061\u006c\u0069\u0064\u0020\u006e\u0061\u006d\u0065");};if *_cged !="\u0049n\u0064\u0065\u0078\u0065\u0064"{return nil ,_f .Errorf ("\u0069\u006e\u0064\u0065xe\u0064\u0020\u0043\u0053\u003a\u0020\u0077\u0072\u006f\u006e\u0067\u0020\u006e\u0061m\u0065");
};_dcaac =_gfad .Get (1);_abac ,_eecbg :=DetermineColorspaceNameFromPdfObject (_dcaac );if _eecbg !=nil {return nil ,_eecbg ;};if _abac =="\u0049n\u0064\u0065\u0078\u0065\u0064"||_abac =="\u0050a\u0074\u0074\u0065\u0072\u006e"{_ac .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",_abac );
return nil ,_cdgb ;};_cgca ,_eecbg :=NewPdfColorspaceFromPdfObject (_dcaac );if _eecbg !=nil {return nil ,_eecbg ;};_acfb .Base =_cgca ;_dcaac =_gfad .Get (2);_cfdd ,_eecbg :=_ae .GetNumberAsInt64 (_dcaac );if _eecbg !=nil {return nil ,_eecbg ;};if _cfdd > 255{return nil ,_f .Errorf ("\u0069n\u0064\u0065\u0078\u0065d\u0020\u0043\u0053\u003a\u0020I\u006ev\u0061l\u0069\u0064\u0020\u0068\u0069\u0076\u0061l");
};_acfb .HiVal =int (_cfdd );_dcaac =_gfad .Get (3);_acfb .Lookup =_dcaac ;_dcaac =_ae .TraceToDirectObject (_dcaac );var _abdeg []byte ;if _fcea ,_cdfee :=_dcaac .(*_ae .PdfObjectString );_cdfee {_abdeg =_fcea .Bytes ();_ac .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",_abdeg );
}else if _defc ,_cbce :=_dcaac .(*_ae .PdfObjectStream );_cbce {_ac .Log .Trace ("\u0049n\u0064e\u0078\u0065\u0064\u0020\u0073t\u0072\u0065a\u006d\u003a\u0020\u0025\u0073",_dcaac .String ());_ac .Log .Trace ("\u0045\u006e\u0063\u006fde\u0064\u0020\u0028\u0025\u0064\u0029\u0020\u003a\u0020\u0025\u0023\u0020\u0078",len (_defc .Stream ),_defc .Stream );
_ebggd ,_gceb :=_ae .DecodeStream (_defc );if _gceb !=nil {return nil ,_gceb ;};_ac .Log .Trace ("\u0044e\u0063o\u0064\u0065\u0064\u0020\u0028%\u0064\u0029 \u003a\u0020\u0025\u0020\u0058",len (_ebggd ),_ebggd );_abdeg =_ebggd ;}else {_ac .Log .Debug ("\u0054\u0079\u0070\u0065\u003a\u0020\u0025\u0054",_dcaac );
return nil ,_f .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 (_abdeg )< _acfb .Base .GetNumComponents ()*(_acfb .HiVal +1){_ac .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");
_ac .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 (_abdeg ),_acfb .Base .GetNumComponents (),_acfb .HiVal );
}else {_abdeg =_abdeg [:_acfb .Base .GetNumComponents ()*(_acfb .HiVal +1)];};_acfb ._dfca =_abdeg ;return _acfb ,nil ;};
// NewPdfAnnotationSquiggly returns a new text squiggly annotation.
func NewPdfAnnotationSquiggly ()*PdfAnnotationSquiggly {_efgc :=NewPdfAnnotation ();_egfc :=&PdfAnnotationSquiggly {};_egfc .PdfAnnotation =_efgc ;_egfc .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_efgc .SetContext (_egfc );return _egfc ;};func (_dacd *PdfReader )newPdfAnnotationRedactFromDict (_aebd *_ae .PdfObjectDictionary )(*PdfAnnotationRedact ,error ){_dcff :=PdfAnnotationRedact {};
_gaba ,_ebfc :=_dacd .newPdfAnnotationMarkupFromDict (_aebd );if _ebfc !=nil {return nil ,_ebfc ;};_dcff .PdfAnnotationMarkup =_gaba ;_dcff .QuadPoints =_aebd .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");_dcff .IC =_aebd .Get ("\u0049\u0043");
_dcff .RO =_aebd .Get ("\u0052\u004f");_dcff .OverlayText =_aebd .Get ("O\u0076\u0065\u0072\u006c\u0061\u0079\u0054\u0065\u0078\u0074");_dcff .Repeat =_aebd .Get ("\u0052\u0065\u0070\u0065\u0061\u0074");_dcff .DA =_aebd .Get ("\u0044\u0041");_dcff .Q =_aebd .Get ("\u0051");
return &_dcff ,nil ;};
// NewPdfColorPatternType2 returns an empty color shading pattern type 2 (Axial).
func NewPdfColorPatternType2 ()*PdfColorPatternType2 {_ddddc :=&PdfColorPatternType2 {};return _ddddc ;};
// SetVersion sets the PDF version of the output file.
func (_afgdd *PdfWriter )SetVersion (majorVersion ,minorVersion int ){_afgdd ._faffe .Major =majorVersion ;_afgdd ._faffe .Minor =minorVersion ;};
// ToPdfObject implements interface PdfModel.
func (_dgb *PdfActionLaunch )ToPdfObject ()_ae .PdfObject {_dgb .PdfAction .ToPdfObject ();_ea :=_dgb ._cbe ;_cef :=_ea .PdfObject .(*_ae .PdfObjectDictionary );_cef .SetIfNotNil ("\u0053",_ae .MakeName (string (ActionTypeLaunch )));if _dgb .F !=nil {_cef .Set ("\u0046",_dgb .F .ToPdfObject ());
};_cef .SetIfNotNil ("\u0057\u0069\u006e",_dgb .Win );_cef .SetIfNotNil ("\u004d\u0061\u0063",_dgb .Mac );_cef .SetIfNotNil ("\u0055\u006e\u0069\u0078",_dgb .Unix );_cef .SetIfNotNil ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw",_dgb .NewWindow );return _ea ;
};
// PdfShadingType3 is a Radial shading.
type PdfShadingType3 struct{*PdfShading ;Coords *_ae .PdfObjectArray ;Domain *_ae .PdfObjectArray ;Function []PdfFunction ;Extend *_ae .PdfObjectArray ;};
// GetContainingPdfObject returns the container of the outline tree node (indirect object).
func (_efcf *PdfOutlineTreeNode )GetContainingPdfObject ()_ae .PdfObject {return _efcf .GetContext ().GetContainingPdfObject ();};
// NewPdfAcroForm returns a new PdfAcroForm with an intialized container (indirect object).
func NewPdfAcroForm ()*PdfAcroForm {return &PdfAcroForm {Fields :&[]*PdfField {},_febbe :_ae .MakeIndirectObject (_ae .MakeDict ())};};
// SetPageLabels sets the PageLabels entry in the PDF catalog.
// See section 12.4.2 "Page Labels" (p. 382 PDF32000_2008).
func (_fffee *PdfWriter )SetPageLabels (pageLabels _ae .PdfObject )error {if pageLabels ==nil {return nil ;};_ac .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");
_fffee ._caddd .Set ("\u0050\u0061\u0067\u0065\u004c\u0061\u0062\u0065\u006c\u0073",pageLabels );return _fffee .addObjects (pageLabels );};
// NewPdfColorPatternType3 returns an empty color shading pattern type 3 (Radial).
func NewPdfColorPatternType3 ()*PdfColorPatternType3 {_eece :=&PdfColorPatternType3 {};return _eece };
// 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 _ae .PdfObject ;_dfca []byte ;_edeb *_ae .PdfIndirectObject ;};
// NewPdfAnnotation3D returns a new 3d annotation.
func NewPdfAnnotation3D ()*PdfAnnotation3D {_cbeg :=NewPdfAnnotation ();_faa :=&PdfAnnotation3D {};_faa .PdfAnnotation =_cbeg ;_cbeg .SetContext (_faa );return _faa ;};
// GetStructRoot gets the StructTreeRoot object
func (_bfffg *PdfPage )GetStructTreeRoot ()(*_ae .PdfObject ,bool ){_eaabg ,_bgbd :=_bfffg ._bceef .GetCatalogStructTreeRoot ();return &_eaabg ,_bgbd ;};
// ToPdfObject returns the PDF representation of the tiling pattern.
func (_fgfea *PdfTilingPattern )ToPdfObject ()_ae .PdfObject {_fgfea .PdfPattern .ToPdfObject ();_fbbgb :=_fgfea .getDict ();if _fgfea .PaintType !=nil {_fbbgb .Set ("\u0050a\u0069\u006e\u0074\u0054\u0079\u0070e",_fgfea .PaintType );};if _fgfea .TilingType !=nil {_fbbgb .Set ("\u0054\u0069\u006c\u0069\u006e\u0067\u0054\u0079\u0070\u0065",_fgfea .TilingType );
};if _fgfea .BBox !=nil {_fbbgb .Set ("\u0042\u0042\u006f\u0078",_fgfea .BBox .ToPdfObject ());};if _fgfea .XStep !=nil {_fbbgb .Set ("\u0058\u0053\u0074e\u0070",_fgfea .XStep );};if _fgfea .YStep !=nil {_fbbgb .Set ("\u0059\u0053\u0074e\u0070",_fgfea .YStep );
};if _fgfea .Resources !=nil {_fbbgb .Set ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s",_fgfea .Resources .ToPdfObject ());};if _fgfea .Matrix !=nil {_fbbgb .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_fgfea .Matrix );};return _fgfea ._ebfged ;};
// 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 *_ae .PdfObjectInteger ;ColorSpace PdfColorspace ;Background *_ae .PdfObjectArray ;BBox *PdfRectangle ;AntiAlias *_ae .PdfObjectBool ;_ffgbf PdfModel ;_dcdgda _ae .PdfObject ;};func (_aaaa *pdfFontSimple )getFontEncoding ()(_dfbcb string ,_fcagd map[_bgg .CharCode ]_bgg .GlyphName ,_dagd error ){_dfbcb ="\u0053\u0074a\u006e\u0064\u0061r\u0064\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067";
if _abag ,_abee :=_fedb [_aaaa ._cedb ];_abee {_dfbcb =_abag ;}else if _aaaa .fontFlags ()&_fdbaa !=0{for _cggae ,_dbee :=range _fedb {if _eg .Contains (_aaaa ._cedb ,_cggae ){_dfbcb =_dbee ;break ;};};};if _aaaa .Encoding ==nil {return _dfbcb ,nil ,nil ;
};switch _ffcg :=_aaaa .Encoding .(type ){case *_ae .PdfObjectName :return string (*_ffcg ),nil ,nil ;case *_ae .PdfObjectDictionary :_cfade ,_baceg :=_ae .GetName (_ffcg .Get ("\u0042\u0061\u0073e\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067"));if _baceg {_dfbcb =_cfade .String ();
};if _befdf :=_ffcg .Get ("D\u0069\u0066\u0066\u0065\u0072\u0065\u006e\u0063\u0065\u0073");_befdf !=nil {_faea ,_effb :=_ae .GetArray (_befdf );if !_effb {_ac .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",_ffcg ,_ffcg .Get ("D\u0069\u0066\u0066\u0065\u0072\u0065\u006e\u0063\u0065\u0073"));
return "",nil ,_ae .ErrTypeError ;};_fcagd ,_dagd =_bgg .FromFontDifferences (_faea );};return _dfbcb ,_fcagd ,_dagd ;default:_ac .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",_aaaa .Encoding ,_aaaa .Encoding );
return "",nil ,_ae .ErrTypeError ;};};func _ddee (_dbbd []byte )bool {if len (_dbbd )< 4{return true ;};for _abgc :=range _dbbd [:4]{_faaa :=rune (_abgc );if !_dg .Is (_dg .ASCII_Hex_Digit ,_faaa )&&!_dg .IsSpace (_faaa ){return true ;};};return false ;
};func (_bagd *PdfReader )newPdfAnnotationTextFromDict (_facf *_ae .PdfObjectDictionary )(*PdfAnnotationText ,error ){_gagf :=PdfAnnotationText {};_bcfe ,_fabe :=_bagd .newPdfAnnotationMarkupFromDict (_facf );if _fabe !=nil {return nil ,_fabe ;};_gagf .PdfAnnotationMarkup =_bcfe ;
_gagf .Open =_facf .Get ("\u004f\u0070\u0065\u006e");_gagf .Name =_facf .Get ("\u004e\u0061\u006d\u0065");_gagf .State =_facf .Get ("\u0053\u0074\u0061t\u0065");_gagf .StateModel =_facf .Get ("\u0053\u0074\u0061\u0074\u0065\u004d\u006f\u0064\u0065\u006c");
return &_gagf ,nil ;};
// SetName sets the `Name` field of the signature.
func (_dcea *PdfSignature )SetName (name string ){_dcea .Name =_ae .MakeString (name )};
// Insert adds an outline item as a child of the current outline item,
// at the specified index.
func (_cgfe *OutlineItem )Insert (index uint ,item *OutlineItem ){_dgbg :=uint (len (_cgfe .Entries ));if index > _dgbg {index =_dgbg ;};_cgfe .Entries =append (_cgfe .Entries [:index ],append ([]*OutlineItem {item },_cgfe .Entries [index :]...)...);};
func (_fceed *PdfWriter )writeObjects (){_ac .Log .Trace ("\u0057\u0072\u0069\u0074\u0069\u006e\u0067\u0020\u0025d\u0020\u006f\u0062\u006a",len (_fceed ._edbe ));_fceed ._agfeg =make (map[int ]crossReference );_fceed ._agfeg [0]=crossReference {Type :0,ObjectNumber :0,Generation :0xFFFF};
if _fceed ._ecbae .ObjectMap !=nil {for _ebeae ,_afaee :=range _fceed ._ecbae .ObjectMap {if _ebeae ==0{continue ;};if _afaee .XType ==_ae .XrefTypeObjectStream {_dbcbb :=crossReference {Type :2,ObjectNumber :_afaee .OsObjNumber ,Index :_afaee .OsObjIndex };
_fceed ._agfeg [_ebeae ]=_dbcbb ;};if _afaee .XType ==_ae .XrefTypeTableEntry {_fcafa :=crossReference {Type :1,ObjectNumber :_afaee .ObjectNumber ,Offset :_afaee .Offset };_fceed ._agfeg [_ebeae ]=_fcafa ;};};};};func (_cgfb *PdfWriter )writeObjectsInStreams (_cdaga map[_ae .PdfObject ]bool )error {for _ ,_acfac :=range _cgfb ._edbe {if _ddcec :=_cdaga [_acfac ];
_ddcec {continue ;};_caag :=int64 (0);switch _gdacg :=_acfac .(type ){case *_ae .PdfIndirectObject :_caag =_gdacg .ObjectNumber ;case *_ae .PdfObjectStream :_caag =_gdacg .ObjectNumber ;case *_ae .PdfObjectStreams :_caag =_gdacg .ObjectNumber ;default:_ac .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",_acfac );
return ErrTypeCheck ;};if _cgfb ._ecedf !=nil &&_acfac !=_cgfb ._feddfa {_adgb :=_cgfb ._ecedf .Encrypt (_acfac ,_caag ,0);if _adgb !=nil {_ac .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",_adgb );
return _adgb ;};};_cgfb .writeObject (int (_caag ),_acfac );};return nil ;};
// NewXObjectImageFromImage creates a new XObject Image from an image object
// with default options. If encoder is nil, uses raw encoding (none).
func NewXObjectImageFromImage (img *Image ,cs PdfColorspace ,encoder _ae .StreamEncoder )(*XObjectImage ,error ){_ddeb :=NewXObjectImage ();return UpdateXObjectImageFromImage (_ddeb ,img ,cs ,encoder );};
// AddImageResource adds an image to the XObject resources.
func (_cfbgb *PdfPage )AddImageResource (name _ae .PdfObjectName ,ximg *XObjectImage )error {var _eeeac *_ae .PdfObjectDictionary ;if _cfbgb .Resources .XObject ==nil {_eeeac =_ae .MakeDict ();_cfbgb .Resources .XObject =_eeeac ;}else {var _cccc bool ;
_eeeac ,_cccc =(_cfbgb .Resources .XObject ).(*_ae .PdfObjectDictionary );if !_cccc {return _db .New ("\u0069\u006e\u0076\u0061li\u0064\u0020\u0078\u0072\u0065\u0073\u0020\u0064\u0069\u0063\u0074\u0020\u0074\u0079p\u0065");};};_eeeac .Set (name ,ximg .ToPdfObject ());
return nil ;};
// SetForms sets the Acroform for a PDF file.
func (_debde *PdfWriter )SetForms (form *PdfAcroForm )error {_debde ._bgfd =form ;return nil };
// GetPageAsIndirectObject returns the page as a dictionary within an PdfIndirectObject.
func (_ecefc *PdfPage )GetPageAsIndirectObject ()*_ae .PdfIndirectObject {return _ecefc ._egbbg };
// WriteString outputs the object as it is to be written to file.
func (_cbdb *pdfSignDictionary )WriteString ()string {_cbdb ._aebde =0;_cbdb ._aedb =0;_cbdb ._fegef =0;_cbdb ._ebcfb =0;_bbfcg :=_aa .NewBuffer (nil );_bbfcg .WriteString ("\u003c\u003c");for _ ,_bgcc :=range _cbdb .Keys (){_facfg :=_cbdb .Get (_bgcc );
switch _bgcc {case "\u0042y\u0074\u0065\u0052\u0061\u006e\u0067e":_bbfcg .WriteString (_bgcc .WriteString ());_bbfcg .WriteString ("\u0020");_cbdb ._fegef =_bbfcg .Len ();_bbfcg .WriteString (_facfg .WriteString ());_bbfcg .WriteString ("\u0020");_cbdb ._ebcfb =_bbfcg .Len ()-1;
case "\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073":_bbfcg .WriteString (_bgcc .WriteString ());_bbfcg .WriteString ("\u0020");_cbdb ._aebde =_bbfcg .Len ();_bbfcg .WriteString (_facfg .WriteString ());_bbfcg .WriteString ("\u0020");_cbdb ._aedb =_bbfcg .Len ()-1;
default:_bbfcg .WriteString (_bgcc .WriteString ());_bbfcg .WriteString ("\u0020");_bbfcg .WriteString (_facfg .WriteString ());};};_bbfcg .WriteString ("\u003e\u003e");return _bbfcg .String ();};func (_cfc *PdfColorspaceSpecialIndexed )String ()string {return "\u0049n\u0064\u0065\u0078\u0065\u0064";
};type fontCommon struct{_cedb string ;_adce string ;_bbce string ;_dgea _ae .PdfObject ;_ebfdc *_abg .CMap ;_cafdb *PdfFontDescriptor ;_efef int64 ;};
// NewPdfAnnotationWidget returns an initialized annotation widget.
func NewPdfAnnotationWidget ()*PdfAnnotationWidget {_gedf :=NewPdfAnnotation ();_abec :=&PdfAnnotationWidget {};_abec .PdfAnnotation =_gedf ;_gedf .SetContext (_abec );return _abec ;};
// PdfOutline represents a PDF outline dictionary (Table 152 - p. 376).
type PdfOutline struct{PdfOutlineTreeNode ;Parent *PdfOutlineTreeNode ;Count *int64 ;_fcge *_ae .PdfIndirectObject ;};
// 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 (_ecaad *PdfFont )CharcodesToStrings (charcodes []_bgg .CharCode )([]string ,int ,int ){_fdga :=_ecaad .baseFields ();_fbac :=make ([]string ,0,len (charcodes ));_cdaed :=0;_caeae :=_ecaad .Encoder ();_bgbf :=_fdga ._ebfdc !=nil &&_ecaad .IsSimple ()&&_ecaad .Subtype ()=="\u0054\u0072\u0075\u0065\u0054\u0079\u0070\u0065"&&!_eg .Contains (_fdga ._ebfdc .Name (),"\u0049d\u0065\u006e\u0074\u0069\u0074\u0079-");
if !_bgbf &&_caeae !=nil {switch _edfgb :=_caeae .(type ){case _bgg .SimpleEncoder :_aefeg :=_edfgb .BaseName ();if _ ,_afgab :=_dbec [_aefeg ];_afgab {for _ ,_adeb :=range charcodes {if _bdfd ,_efbec :=_caeae .CharcodeToRune (_adeb );_efbec {_fbac =append (_fbac ,string (_bdfd ));
}else {_ac .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",_adeb ,charcodes ,_fdga .isCIDFont (),_ecaad ,_caeae );
_cdaed ++;_fbac =append (_fbac ,_abg .MissingCodeString );};};return _fbac ,len (_fbac ),_cdaed ;};};};for _ ,_agfc :=range charcodes {if _fdga ._ebfdc !=nil {if _cecg ,_aaed :=_fdga ._ebfdc .CharcodeToUnicode (_abg .CharCode (_agfc ));_aaed {_fbac =append (_fbac ,_cecg );
continue ;};};if _caeae !=nil {if _gbfg ,_aegg :=_caeae .CharcodeToRune (_agfc );_aegg {_fbac =append (_fbac ,string (_gbfg ));continue ;};};_ac .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",_agfc ,charcodes ,_fdga .isCIDFont (),_ecaad ,_caeae );
_cdaed ++;_fbac =append (_fbac ,_abg .MissingCodeString );};if _cdaed !=0{_ac .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 ),_cdaed ,_ecaad );
};return _fbac ,len (_fbac ),_cdaed ;};func (_feebg fontCommon )asPdfObjectDictionary (_cagba string )*_ae .PdfObjectDictionary {if _cagba !=""&&_feebg ._adce !=""&&_cagba !=_feebg ._adce {_ac .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",_cagba ,_feebg );
}else if _cagba ==""&&_feebg ._adce ==""{_ac .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",_feebg );
}else if _feebg ._adce ==""{_feebg ._adce =_cagba ;};_cgcd :=_ae .MakeDict ();_cgcd .Set ("\u0054\u0079\u0070\u0065",_ae .MakeName ("\u0046\u006f\u006e\u0074"));_cgcd .Set ("\u0042\u0061\u0073\u0065\u0046\u006f\u006e\u0074",_ae .MakeName (_feebg ._cedb ));
_cgcd .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ae .MakeName (_feebg ._adce ));if _feebg ._cafdb !=nil {_cgcd .Set ("\u0046\u006f\u006e\u0074\u0044\u0065\u0073\u0063\u0072i\u0070\u0074\u006f\u0072",_feebg ._cafdb .ToPdfObject ());};if _feebg ._dgea !=nil {_cgcd .Set ("\u0054o\u0055\u006e\u0069\u0063\u006f\u0064e",_feebg ._dgea );
}else if _feebg ._ebfdc !=nil {_cfgga ,_afggb :=_feebg ._ebfdc .Stream ();if _afggb !=nil {_ac .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",_afggb );
}else {_cgcd .Set ("\u0054o\u0055\u006e\u0069\u0063\u006f\u0064e",_cfgga );};};return _cgcd ;};
// Transform rectangle with the supplied matrix.
func (_ebeeg *PdfRectangle )Transform (transformMatrix _ecc .Matrix ){_ebeeg .Llx ,_ebeeg .Lly =transformMatrix .Transform (_ebeeg .Llx ,_ebeeg .Lly );_ebeeg .Urx ,_ebeeg .Ury =transformMatrix .Transform (_ebeeg .Urx ,_ebeeg .Ury );_ebeeg .Normalize ();
};
// Subtype returns the font's "Subtype" field.
func (_dbagb *PdfFont )Subtype ()string {_cfddd :=_dbagb .baseFields ()._adce ;if _dcaab ,_cdfgg :=_dbagb ._dabg .(*pdfFontType0 );_cdfgg {_cfddd =_cfddd +"\u003a"+_dcaab .DescendantFont .Subtype ();};return _cfddd ;};
// Evaluate runs the function. Input is [x1 x2 x3].
func (_cgcaa *PdfFunctionType4 )Evaluate (xVec []float64 )([]float64 ,error ){if _cgcaa ._cagbf ==nil {_cgcaa ._cagbf =_ace .NewPSExecutor (_cgcaa .Program );};var _fceef []_ace .PSObject ;for _ ,_ddcdf :=range xVec {_fceef =append (_fceef ,_ace .MakeReal (_ddcdf ));
};_aecfe ,_ecbd :=_cgcaa ._cagbf .Execute (_fceef );if _ecbd !=nil {return nil ,_ecbd ;};_baacb ,_ecbd :=_ace .PSObjectArrayToFloat64Array (_aecfe );if _ecbd !=nil {return nil ,_ecbd ;};return _baacb ,nil ;};
// GetNumComponents returns the number of color components (4 for CMYK32).
func (_fceeb *PdfColorDeviceCMYK )GetNumComponents ()int {return 4};
// DecodeArray returns the range of color component values in the ICCBased colorspace.
func (_eede *PdfColorspaceICCBased )DecodeArray ()[]float64 {return _eede .Range };
// NewPdfActionSubmitForm returns a new "submit form" action.
func NewPdfActionSubmitForm ()*PdfActionSubmitForm {_fb :=NewPdfAction ();_fce :=&PdfActionSubmitForm {};_fce .PdfAction =_fb ;_fb .SetContext (_fce );return _fce ;};
// ToPdfObject returns the PDF representation of the shading dictionary.
func (_faec *PdfShadingType2 )ToPdfObject ()_ae .PdfObject {_faec .PdfShading .ToPdfObject ();_gcbef ,_edcb :=_faec .getShadingDict ();if _edcb !=nil {_ac .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 _gcbef ==nil {_ac .Log .Error ("\u0053\u0068\u0061\u0064in\u0067\u0020\u0064\u0069\u0063\u0074\u0020\u0069\u0073\u0020\u006e\u0069\u006c");return nil ;};if _faec .Coords !=nil {_gcbef .Set ("\u0043\u006f\u006f\u0072\u0064\u0073",_faec .Coords );
};if _faec .Domain !=nil {_gcbef .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_faec .Domain );};if _faec .Function !=nil {if len (_faec .Function )==1{_gcbef .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_faec .Function [0].ToPdfObject ());}else {_baggg :=_ae .MakeArray ();
for _ ,_aggdaa :=range _faec .Function {_baggg .Append (_aggdaa .ToPdfObject ());};_gcbef .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_baggg );};};if _faec .Extend !=nil {_gcbef .Set ("\u0045\u0078\u0074\u0065\u006e\u0064",_faec .Extend );
};return _faec ._dcdgda ;};
// IsTiling specifies if the pattern is a tiling pattern.
func (_deaef *PdfPattern )IsTiling ()bool {return _deaef .PatternType ==1};
// PdfAnnotationSquiggly represents Squiggly annotations.
// (Section 12.5.6.10).
type PdfAnnotationSquiggly struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _ae .PdfObject ;};
// HasFontByName checks if has font resource by name.
func (_cggf *PdfPage )HasFontByName (name _ae .PdfObjectName )bool {_gdfcf ,_acfg :=_cggf .Resources .Font .(*_ae .PdfObjectDictionary );if !_acfg {return false ;};if _beebb :=_gdfcf .Get (name );_beebb !=nil {return true ;};return false ;};func _afbe (_acgc *_ae .PdfObjectDictionary )(*PdfFieldButton ,error ){_gade :=&PdfFieldButton {};
_gade .PdfField =NewPdfField ();_gade .PdfField .SetContext (_gade );_gade .Opt ,_ =_ae .GetArray (_acgc .Get ("\u004f\u0070\u0074"));_faad :=NewPdfAnnotationWidget ();_faad .A ,_ =_ae .GetDict (_acgc .Get ("\u0041"));_faad .AP ,_ =_ae .GetDict (_acgc .Get ("\u0041\u0050"));
_faad .SetContext (_gade );_gade .PdfField .Annotations =append (_gade .PdfField .Annotations ,_faad );return _gade ,nil ;};type pdfSignDictionary struct{*_ae .PdfObjectDictionary ;_febbd *SignatureHandler ;_cbcbe *PdfSignature ;_ebcg int64 ;_aebde int ;
_aedb int ;_fegef int ;_ebcfb int ;};
// SetPdfModifiedDate sets the ModDate attribute of the output PDF.
func SetPdfModifiedDate (modifiedDate _d .Time ){_cadgd .Lock ();defer _cadgd .Unlock ();_fabd =modifiedDate ;};
// BaseFont returns the font's "BaseFont" field.
func (_adcaa *PdfFont )BaseFont ()string {return _adcaa .baseFields ()._cedb };
// ColorToRGB converts an Indexed color to an RGB color.
func (_dbd *PdfColorspaceSpecialIndexed )ColorToRGB (color PdfColor )(PdfColor ,error ){if _dbd .Base ==nil {return nil ,_db .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 _dbd .Base .ColorToRGB (color );};func _feagd (_bfbga *_afc .ImageBase )(_geba Image ){_geba .Width =int64 (_bfbga .Width );_geba .Height =int64 (_bfbga .Height );_geba .BitsPerComponent =int64 (_bfbga .BitsPerComponent );_geba .ColorComponents =_bfbga .ColorComponents ;
_geba .Data =_bfbga .Data ;_geba ._fdae =_bfbga .Decode ;_geba ._bbba =_bfbga .Alpha ;return _geba ;};
// Clear clears flag fl from the flag and returns the resulting flag.
func (_aaagb FieldFlag )Clear (fl FieldFlag )FieldFlag {return FieldFlag (_aaagb .Mask ()&^fl .Mask ())};
// NewPdfAnnotationStamp returns a new stamp annotation.
func NewPdfAnnotationStamp ()*PdfAnnotationStamp {_ggeaa :=NewPdfAnnotation ();_fed :=&PdfAnnotationStamp {};_fed .PdfAnnotation =_ggeaa ;_fed .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_ggeaa .SetContext (_fed );return _fed ;};
// ColorFromFloats returns a new PdfColor based on the input slice of color
// components.
func (_cgcf *PdfColorspaceSpecialPattern )ColorFromFloats (vals []float64 )(PdfColor ,error ){if _cgcf .UnderlyingCS ==nil {return nil ,_db .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 _cgcf .UnderlyingCS .ColorFromFloats (vals );};type pdfCIDFontType2 struct{fontCommon ;_ddafa *_ae .PdfIndirectObject ;_bddbd _bgg .TextEncoder ;
// Table 117 Entries in a CIDFont dictionary (page 269)
// Dictionary that defines the character collection of the CIDFont (required).
// See Table 116.
CIDSystemInfo *_ae .PdfObjectDictionary ;
// Glyph metrics fields (optional).
DW _ae .PdfObject ;W _ae .PdfObject ;DW2 _ae .PdfObject ;W2 _ae .PdfObject ;
// CIDs to glyph indices mapping (optional).
CIDToGIDMap _ae .PdfObject ;_fcbce map[_bgg .CharCode ]float64 ;_bddbc float64 ;_acae map[rune ]int ;};
// ToPdfObject recursively builds the Outline tree PDF object.
func (_eega *PdfOutlineItem )ToPdfObject ()_ae .PdfObject {_eacf :=_eega ._dabga ;_cffg :=_eacf .PdfObject .(*_ae .PdfObjectDictionary );_cffg .Set ("\u0054\u0069\u0074l\u0065",_eega .Title );if _eega .A !=nil {_cffg .Set ("\u0041",_eega .A );};if _ffaaa :=_cffg .Get ("\u0053\u0045");
_ffaaa !=nil {_cffg .Remove ("\u0053\u0045");};if _eega .C !=nil {_cffg .Set ("\u0043",_eega .C );};if _eega .Dest !=nil {_cffg .Set ("\u0044\u0065\u0073\u0074",_eega .Dest );};if _eega .F !=nil {_cffg .Set ("\u0046",_eega .F );};if _eega .Count !=nil {_cffg .Set ("\u0043\u006f\u0075n\u0074",_ae .MakeInteger (*_eega .Count ));
};if _eega .Next !=nil {_cffg .Set ("\u004e\u0065\u0078\u0074",_eega .Next .ToPdfObject ());};if _eega .First !=nil {_cffg .Set ("\u0046\u0069\u0072s\u0074",_eega .First .ToPdfObject ());};if _eega .Prev !=nil {_cffg .Set ("\u0050\u0072\u0065\u0076",_eega .Prev .GetContext ().GetContainingPdfObject ());
};if _eega .Last !=nil {_cffg .Set ("\u004c\u0061\u0073\u0074",_eega .Last .GetContext ().GetContainingPdfObject ());};if _eega .Parent !=nil {_cffg .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_eega .Parent .GetContext ().GetContainingPdfObject ());};
return _eacf ;};
// NewPdfSignature creates a new PdfSignature object.
func NewPdfSignature (handler SignatureHandler )*PdfSignature {_fedae :=&PdfSignature {Type :_ae .MakeName ("\u0053\u0069\u0067"),Handler :handler };_dfcde :=&pdfSignDictionary {PdfObjectDictionary :_ae .MakeDict (),_febbd :&handler ,_cbcbe :_fedae };_fedae ._gccbeg =_ae .MakeIndirectObject (_dfcde );
return _fedae ;};
// ToPdfObject returns a PDF object representation of the outline.
func (_agdb *Outline )ToPdfObject ()_ae .PdfObject {return _agdb .ToPdfOutline ().ToPdfObject ()};
// Encoder returns the font's text encoder.
func (_bbbcf *pdfFontSimple )Encoder ()_bgg .TextEncoder {if _bbbcf ._dead !=nil {return _bbbcf ._dead ;};if _bbbcf ._aacd !=nil {return _bbbcf ._aacd ;};_bedgg ,_ :=_bgg .NewSimpleTextEncoder ("\u0053\u0074a\u006e\u0064\u0061r\u0064\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",nil );
return _bedgg ;};
// Add appends a top level outline item to the outline.
func (_aaecd *Outline )Add (item *OutlineItem ){_aaecd .Entries =append (_aaecd .Entries ,item )};
// NewPdfActionGoToR returns a new "go to remote" action.
func NewPdfActionGoToR ()*PdfActionGoToR {_bb :=NewPdfAction ();_gcf :=&PdfActionGoToR {};_gcf .PdfAction =_bb ;_bb .SetContext (_gcf );return _gcf ;};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 _fegbg (_gbcdb []byte )(_abcc ,_fdbde string ,_eacg error ){_ac .Log .Trace ("g\u0065\u0074\u0041\u0053CI\u0049S\u0065\u0063\u0074\u0069\u006fn\u0073\u003a\u0020\u0025\u0064\u0020",len (_gbcdb ));
_gceeb :=_cgcea .FindIndex (_gbcdb );if _gceeb ==nil {_ac .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 "","",_ae .ErrTypeError ;};_gdcg :=_gceeb [1];_afbf :=_eg .Index (string (_gbcdb [_gdcg :]),_aeebg );if _afbf < 0{_abcc =string (_gbcdb [_gdcg :]);return _abcc ,"",nil ;};_gdgf :=_gdcg +_afbf ;_abcc =string (_gbcdb [_gdcg :_gdgf ]);_dfdba :=_gdgf ;
_afbf =_eg .Index (string (_gbcdb [_dfdba :]),_aagfc );if _afbf < 0{_ac .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",_eacg );
return "","",_ae .ErrTypeError ;};_dfcac :=_dfdba +_afbf ;_fdbde =string (_gbcdb [_dfdba :_dfcac ]);return _abcc ,_fdbde ,nil ;};
// GetContainingPdfObject implements model.PdfModel interface.
func (_cddcb *PdfOutputIntent )GetContainingPdfObject ()_ae .PdfObject {return _cddcb ._gfdfbf };
// AddPages adds pages to be appended to the end of the source PDF.
func (_gabe *PdfAppender )AddPages (pages ...*PdfPage ){for _ ,_ebgg :=range pages {_ebgg =_ebgg .Duplicate ();_gabdf (_ebgg );_gabe ._eabf =append (_gabe ._eabf ,_ebgg );};};
// ToPdfObject returns the PDF representation of the function.
func (_abacg *PdfFunctionType3 )ToPdfObject ()_ae .PdfObject {_fccg :=_ae .MakeDict ();_fccg .Set ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065",_ae .MakeInteger (3));_aagfg :=&_ae .PdfObjectArray {};for _ ,_gcffbg :=range _abacg .Domain {_aagfg .Append (_ae .MakeFloat (_gcffbg ));
};_fccg .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_aagfg );if _abacg .Range !=nil {_bdcb :=&_ae .PdfObjectArray {};for _ ,_affcd :=range _abacg .Range {_bdcb .Append (_ae .MakeFloat (_affcd ));};_fccg .Set ("\u0052\u0061\u006eg\u0065",_bdcb );};if _abacg .Functions !=nil {_bgecg :=&_ae .PdfObjectArray {};
for _ ,_cdbgf :=range _abacg .Functions {_bgecg .Append (_cdbgf .ToPdfObject ());};_fccg .Set ("\u0046u\u006e\u0063\u0074\u0069\u006f\u006es",_bgecg );};if _abacg .Bounds !=nil {_fcab :=&_ae .PdfObjectArray {};for _ ,_dbea :=range _abacg .Bounds {_fcab .Append (_ae .MakeFloat (_dbea ));
};_fccg .Set ("\u0042\u006f\u0075\u006e\u0064\u0073",_fcab );};if _abacg .Encode !=nil {_cbabe :=&_ae .PdfObjectArray {};for _ ,_dbfbf :=range _abacg .Encode {_cbabe .Append (_ae .MakeFloat (_dbfbf ));};_fccg .Set ("\u0045\u006e\u0063\u006f\u0064\u0065",_cbabe );
};if _abacg ._gege !=nil {_abacg ._gege .PdfObject =_fccg ;return _abacg ._gege ;};return _fccg ;};
// PdfPage represents a page in a PDF document. (7.7.3.3 - Table 30).
type PdfPage struct{Parent _ae .PdfObject ;LastModified *PdfDate ;Resources *PdfPageResources ;CropBox *PdfRectangle ;MediaBox *PdfRectangle ;BleedBox *PdfRectangle ;TrimBox *PdfRectangle ;ArtBox *PdfRectangle ;BoxColorInfo _ae .PdfObject ;Contents _ae .PdfObject ;
Rotate *int64 ;Group _ae .PdfObject ;Thumb _ae .PdfObject ;B _ae .PdfObject ;Dur _ae .PdfObject ;Trans _ae .PdfObject ;AA _ae .PdfObject ;Metadata _ae .PdfObject ;PieceInfo _ae .PdfObject ;StructParents _ae .PdfObject ;ID _ae .PdfObject ;PZ _ae .PdfObject ;
SeparationInfo _ae .PdfObject ;Tabs _ae .PdfObject ;TemplateInstantiated _ae .PdfObject ;PresSteps _ae .PdfObject ;UserUnit _ae .PdfObject ;VP _ae .PdfObject ;Annots _ae .PdfObject ;_dgfec []*PdfAnnotation ;_efgca *_ae .PdfObjectDictionary ;_egbbg *_ae .PdfIndirectObject ;
_eedgd _ae .PdfObjectDictionary ;_bceef *PdfReader ;};
// SetPatternByName sets a pattern resource specified by keyName.
func (_fecge *PdfPageResources )SetPatternByName (keyName _ae .PdfObjectName ,pattern _ae .PdfObject )error {if _fecge .Pattern ==nil {_fecge .Pattern =_ae .MakeDict ();};_fccfa ,_feeag :=_ae .GetDict (_fecge .Pattern );if !_feeag {return _ae .ErrTypeError ;
};_fccfa .Set (keyName ,pattern );return nil ;};
// 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 (_ggbed *PdfReader )ToWriter (opts *ReaderToWriterOpts )(*PdfWriter ,error ){_gggce :=NewPdfWriter ();if opts ==nil {opts =&ReaderToWriterOpts {};};_dgfecg ,_feeg :=_ggbed .GetNumPages ();if _feeg !=nil {_ac .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_feeg );
return nil ,_feeg ;};for _fddad :=1;_fddad <=_dgfecg ;_fddad ++{_gedec ,_adbaec :=_ggbed .GetPage (_fddad );if _adbaec !=nil {_ac .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_adbaec );return nil ,_adbaec ;};if opts .PageProcessCallback !=nil {_adbaec =opts .PageProcessCallback (_fddad ,_gedec );
if _adbaec !=nil {_ac .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_adbaec );return nil ,_adbaec ;};}else if opts .PageCallback !=nil {opts .PageCallback (_fddad ,_gedec );};_adbaec =_gggce .AddPage (_gedec );if _adbaec !=nil {_ac .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_adbaec );
return nil ,_adbaec ;};};_gggce ._faffe =_ggbed .PdfVersion ();if !opts .SkipInfo {_fgcaf ,_afcbfb :=_ggbed .GetPdfInfo ();if _afcbfb !=nil {_ac .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_afcbfb );}else {_gggce ._cbffg .PdfObject =_fgcaf .ToPdfObject ();
};};if !opts .SkipMetadata {if _bfea :=_ggbed ._aedf .Get ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");_bfea !=nil {if _ecbbc :=_gggce .SetCatalogMetadata (_bfea );_ecbbc !=nil {return nil ,_ecbbc ;};};};if !opts .SkipAcroForm {_cegea :=_gggce .SetForms (_ggbed .AcroForm );
if _cegea !=nil {_ac .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_cegea );return nil ,_cegea ;};};if !opts .SkipOutlines {_gggce .AddOutlineTree (_ggbed .GetOutlineTree ());};if !opts .SkipOCProperties {_fgdbf ,_dded :=_ggbed .GetOCProperties ();
if _dded !=nil {_ac .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_dded );}else {_dded =_gggce .SetOCProperties (_fgdbf );if _dded !=nil {_ac .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_dded );};};};if !opts .SkipPageLabels {_fgbbe ,_ggfddf :=_ggbed .GetPageLabels ();
if _ggfddf !=nil {_ac .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_ggfddf );}else {_ggfddf =_gggce .SetPageLabels (_fgbbe );if _ggfddf !=nil {_ac .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_ggfddf );};};};if !opts .SkipNamedDests {_decbab ,_decad :=_ggbed .GetNamedDestinations ();
if _decad !=nil {_ac .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_decad );}else {_decad =_gggce .SetNamedDestinations (_decbab );if _decad !=nil {_ac .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_decad );};};};if !opts .SkipNameDictionary {_gadcgg ,_eefe :=_ggbed .GetNameDictionary ();
if _eefe !=nil {_ac .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_eefe );}else {_eefe =_gggce .SetNameDictionary (_gadcgg );if _eefe !=nil {_ac .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_eefe );};};};if !opts .SkipRotation &&_ggbed .Rotate !=nil {if _beadb :=_gggce .SetRotation (*_ggbed .Rotate );
_beadb !=nil {_ac .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_beadb );};};return &_gggce ,nil ;};
// 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 _gdc .ReadSeeker )(*PdfReader ,error ){const _dgedg ="\u006d\u006f\u0064\u0065l:\u004e\u0065\u0077\u0050\u0064\u0066\u0052\u0065\u0061\u0064\u0065\u0072\u004c\u0061z\u0079";return _fccgfc (rs ,&ReaderOpts {LazyLoad :true },false ,_dgedg );
};
// ToPdfObject returns the PDF representation of the colorspace.
func (_egbb *PdfColorspaceDeviceRGB )ToPdfObject ()_ae .PdfObject {return _ae .MakeName ("\u0044e\u0076\u0069\u0063\u0065\u0052\u0047B");};func (_bgdeg *PdfWriter )copyObjects (){_fcdbb :=make (map[_ae .PdfObject ]_ae .PdfObject );_bcfga :=make ([]_ae .PdfObject ,0,len (_bgdeg ._edbe ));
_acgb :=make (map[_ae .PdfObject ]struct{},len (_bgdeg ._edbe ));_egcedb :=make (map[_ae .PdfObject ]struct{});for _ ,_bgefd :=range _bgdeg ._edbe {_bedfg :=_bgdeg .copyObject (_bgefd ,_fcdbb ,_egcedb ,false );if _ ,_gdcd :=_egcedb [_bgefd ];_gdcd {continue ;
};_bcfga =append (_bcfga ,_bedfg );_acgb [_bedfg ]=struct{}{};};_bgdeg ._edbe =_bcfga ;_bgdeg ._faecg =_acgb ;_bgdeg ._cbffg =_bgdeg .copyObject (_bgdeg ._cbffg ,_fcdbb ,nil ,false ).(*_ae .PdfIndirectObject );_bgdeg ._aacfc =_bgdeg .copyObject (_bgdeg ._aacfc ,_fcdbb ,nil ,false ).(*_ae .PdfIndirectObject );
if _bgdeg ._feddfa !=nil {_bgdeg ._feddfa =_bgdeg .copyObject (_bgdeg ._feddfa ,_fcdbb ,nil ,false ).(*_ae .PdfIndirectObject );};if _bgdeg ._dffad {_ddgdfd :=make (map[_ae .PdfObject ]int64 );for _dfdfa ,_dbegd :=range _bgdeg ._fbfcdf {if _dgga ,_cffgc :=_fcdbb [_dfdfa ];
_cffgc {_ddgdfd [_dgga ]=_dbegd ;}else {_ac .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");
};};_bgdeg ._fbfcdf =_ddgdfd ;};};
// PdfAcroForm represents the AcroForm dictionary used for representation of form data in PDF.
type PdfAcroForm struct{Fields *[]*PdfField ;NeedAppearances *_ae .PdfObjectBool ;SigFlags *_ae .PdfObjectInteger ;CO *_ae .PdfObjectArray ;DR *PdfPageResources ;DA *_ae .PdfObjectString ;Q *_ae .PdfObjectInteger ;XFA _ae .PdfObject ;
// ADBEEchoSign extra objects from Adobe Acrobat, causing signature invalid if not exists.
ADBEEchoSign _ae .PdfObject ;_febbe *_ae .PdfIndirectObject ;_fcbae bool ;};func (_ggeeg *PdfReader )newPdfSignatureFromIndirect (_ecebc *_ae .PdfIndirectObject )(*PdfSignature ,error ){_fddea ,_dgdcb :=_ecebc .PdfObject .(*_ae .PdfObjectDictionary );if !_dgdcb {_ac .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 _adgcd ,_ggfb :=_ggeeg ._gdbcb .GetModelFromPrimitive (_ecebc ).(*PdfSignature );_ggfb {return _adgcd ,nil ;};_fdege :=&PdfSignature {};_fdege ._gccbeg =_ecebc ;_fdege .Type ,_ =_ae .GetName (_fddea .Get ("\u0054\u0079\u0070\u0065"));
_fdege .Filter ,_dgdcb =_ae .GetName (_fddea .Get ("\u0046\u0069\u006c\u0074\u0065\u0072"));if !_dgdcb {_ac .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 ;};_fdege .SubFilter ,_ =_ae .GetName (_fddea .Get ("\u0053u\u0062\u0046\u0069\u006c\u0074\u0065r"));_fdege .Contents ,_dgdcb =_ae .GetString (_fddea .Get ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073"));if !_dgdcb {_ac .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 _bdag ,_bddf :=_ae .GetArray (_fddea .Get ("\u0052e\u0066\u0065\u0072\u0065\u006e\u0063e"));_bddf {_fdege .Reference =_ae .MakeArray ();for _ ,_cdacg :=range _bdag .Elements (){_efccb ,_abccc :=_ae .GetDict (_cdacg );
if !_abccc {_ac .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 ;
};_gdbfa ,_acfgd :=_ggeeg .newPdfSignatureReferenceFromDict (_efccb );if _acfgd !=nil {return nil ,_acfgd ;};_fdege .Reference .Append (_gdbfa .ToPdfObject ());};};_fdege .Cert =_fddea .Get ("\u0043\u0065\u0072\u0074");_fdege .ByteRange ,_ =_ae .GetArray (_fddea .Get ("\u0042y\u0074\u0065\u0052\u0061\u006e\u0067e"));
_fdege .Changes ,_ =_ae .GetArray (_fddea .Get ("\u0043h\u0061\u006e\u0067\u0065\u0073"));_fdege .Name ,_ =_ae .GetString (_fddea .Get ("\u004e\u0061\u006d\u0065"));_fdege .M ,_ =_ae .GetString (_fddea .Get ("\u004d"));_fdege .Location ,_ =_ae .GetString (_fddea .Get ("\u004c\u006f\u0063\u0061\u0074\u0069\u006f\u006e"));
_fdege .Reason ,_ =_ae .GetString (_fddea .Get ("\u0052\u0065\u0061\u0073\u006f\u006e"));_fdege .ContactInfo ,_ =_ae .GetString (_fddea .Get ("C\u006f\u006e\u0074\u0061\u0063\u0074\u0049\u006e\u0066\u006f"));_fdege .R ,_ =_ae .GetInt (_fddea .Get ("\u0052"));
_fdege .V ,_ =_ae .GetInt (_fddea .Get ("\u0056"));_fdege .PropBuild ,_ =_ae .GetDict (_fddea .Get ("\u0050\u0072\u006f\u0070\u005f\u0042\u0075\u0069\u006c\u0064"));_fdege .PropAuthTime ,_ =_ae .GetInt (_fddea .Get ("\u0050\u0072\u006f\u0070\u005f\u0041\u0075\u0074\u0068\u0054\u0069\u006d\u0065"));
_fdege .PropAuthType ,_ =_ae .GetName (_fddea .Get ("\u0050\u0072\u006f\u0070\u005f\u0041\u0075\u0074\u0068\u0054\u0079\u0070\u0065"));_ggeeg ._gdbcb .Register (_ecebc ,_fdege );return _fdege ,nil ;};
// PdfShadingPatternType2 is shading patterns that will use a Type 2 shading pattern (Axial).
type PdfShadingPatternType2 struct{*PdfPattern ;Shading *PdfShadingType2 ;Matrix *_ae .PdfObjectArray ;ExtGState _ae .PdfObject ;};
// GetAlphabet returns a map of the runes in `text` and their frequencies.
func GetAlphabet (text string )map[rune ]int {_eaag :=map[rune ]int {};for _ ,_bfca :=range text {_eaag [_bfca ]++;};return _eaag ;};func (_fceg *PdfColorspaceDeviceCMYK )String ()string {return "\u0044\u0065\u0076\u0069\u0063\u0065\u0043\u004d\u0059\u004b";
};func (_adaa *PdfWriter )writeOutputIntents ()error {if len (_adaa ._bbbca )==0{return nil ;};_ffccf :=make ([]_ae .PdfObject ,len (_adaa ._bbbca ));for _adbaf ,_bagcf :=range _adaa ._bbbca {_gdgefc :=_bagcf .ToPdfObject ();_ffccf [_adbaf ]=_ae .MakeIndirectObject (_gdgefc );
};_gbccg :=_ae .MakeIndirectObject (_ae .MakeArray (_ffccf ...));_adaa ._caddd .Set ("\u004f\u0075\u0074\u0070\u0075\u0074\u0049\u006e\u0074\u0065\u006e\u0074\u0073",_gbccg );if _abgab :=_adaa .addObjects (_gbccg );_abgab !=nil {return _abgab ;};return nil ;
};
// GetAllContentStreams gets all the content streams for a page as one string.
func (_egde *PdfPage )GetAllContentStreams ()(string ,error ){_daeb ,_gefca :=_egde .GetContentStreams ();if _gefca !=nil {return "",_gefca ;};return _eg .Join (_daeb ,"\u0020"),nil ;};
// String returns the name of the colorspace (DeviceN).
func (_ffed *PdfColorspaceDeviceN )String ()string {return "\u0044e\u0076\u0069\u0063\u0065\u004e"};
// B returns the value of the blue component of the color.
func (_cecb *PdfColorDeviceRGB )B ()float64 {return _cecb [2]};
// GetXObjectByName returns the XObject with the specified keyName and the object type.
func (_degacc *PdfPageResources )GetXObjectByName (keyName _ae .PdfObjectName )(*_ae .PdfObjectStream ,XObjectType ){if _degacc .XObject ==nil {return nil ,XObjectTypeUndefined ;};_bggcg ,_bbfeb :=_ae .TraceToDirectObject (_degacc .XObject ).(*_ae .PdfObjectDictionary );
if !_bbfeb {_ac .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",_ae .TraceToDirectObject (_degacc .XObject ));
return nil ,XObjectTypeUndefined ;};if _cccda :=_bggcg .Get (keyName );_cccda !=nil {_beacc ,_agffb :=_ae .GetStream (_cccda );if !_agffb {_ac .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",_cccda );
return nil ,XObjectTypeUndefined ;};_dcba :=_beacc .PdfObjectDictionary ;_ebaef ,_agffb :=_ae .TraceToDirectObject (_dcba .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065")).(*_ae .PdfObjectName );if !_agffb {_ac .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",_dcba .String ());
return nil ,XObjectTypeUndefined ;};if *_ebaef =="\u0049\u006d\u0061g\u0065"{return _beacc ,XObjectTypeImage ;}else if *_ebaef =="\u0046\u006f\u0072\u006d"{return _beacc ,XObjectTypeForm ;}else if *_ebaef =="\u0050\u0053"{return _beacc ,XObjectTypePS ;
}else {_ac .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",*_ebaef );return nil ,XObjectTypeUndefined ;};}else {return nil ,XObjectTypeUndefined ;
};};type pdfFontType3 struct{fontCommon ;_cfbea *_ae .PdfIndirectObject ;
// These fields are specific to Type 3 fonts.
CharProcs _ae .PdfObject ;Encoding _ae .PdfObject ;FontBBox _ae .PdfObject ;FontMatrix _ae .PdfObject ;FirstChar _ae .PdfObject ;LastChar _ae .PdfObject ;Widths _ae .PdfObject ;Resources _ae .PdfObject ;_adggg map[_bgg .CharCode ]float64 ;_debad _bgg .TextEncoder ;
};
// DecodeArray returns the range of color component values in DeviceRGB colorspace.
func (_ecgd *PdfColorspaceDeviceRGB )DecodeArray ()[]float64 {return []float64 {0.0,1.0,0.0,1.0,0.0,1.0};};func _dbaeg (_agbag *_ae .PdfObjectDictionary )(*PdfShadingType6 ,error ){_eaee :=PdfShadingType6 {};_dgcff :=_agbag .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065");
if _dgcff ==nil {_ac .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 ;};_ddeaf ,_abce :=_dgcff .(*_ae .PdfObjectInteger );if !_abce {_ac .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",_dgcff );
return nil ,_ae .ErrTypeError ;};_eaee .BitsPerCoordinate =_ddeaf ;_dgcff =_agbag .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074");if _dgcff ==nil {_ac .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 ;};_ddeaf ,_abce =_dgcff .(*_ae .PdfObjectInteger );if !_abce {_ac .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",_dgcff );
return nil ,_ae .ErrTypeError ;};_eaee .BitsPerComponent =_ddeaf ;_dgcff =_agbag .Get ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067");if _dgcff ==nil {_ac .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 ;};_ddeaf ,_abce =_dgcff .(*_ae .PdfObjectInteger );if !_abce {_ac .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",_dgcff );
return nil ,_ae .ErrTypeError ;};_eaee .BitsPerComponent =_ddeaf ;_dgcff =_agbag .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");if _dgcff ==nil {_ac .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 ;};_ggcfb ,_abce :=_dgcff .(*_ae .PdfObjectArray );if !_abce {_ac .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",_dgcff );
return nil ,_ae .ErrTypeError ;};_eaee .Decode =_ggcfb ;if _afdba :=_agbag .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");_afdba !=nil {_eaee .Function =[]PdfFunction {};if _cebda ,_bcage :=_afdba .(*_ae .PdfObjectArray );_bcage {for _ ,_gcbdb :=range _cebda .Elements (){_gegf ,_ceebg :=_gdbef (_gcbdb );
if _ceebg !=nil {_ac .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",_ceebg );return nil ,_ceebg ;};_eaee .Function =append (_eaee .Function ,_gegf );
};}else {_dcebb ,_fdfaa :=_gdbef (_afdba );if _fdfaa !=nil {_ac .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",_fdfaa );return nil ,_fdfaa ;
};_eaee .Function =append (_eaee .Function ,_dcebb );};};return &_eaee ,nil ;};
// ToPdfObject implements interface PdfModel.
func (_bffa *PdfAnnotationWatermark )ToPdfObject ()_ae .PdfObject {_bffa .PdfAnnotation .ToPdfObject ();_fcdc :=_bffa ._gcgf ;_acgf :=_fcdc .PdfObject .(*_ae .PdfObjectDictionary );_acgf .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ae .MakeName ("\u0057a\u0074\u0065\u0072\u006d\u0061\u0072k"));
_acgf .SetIfNotNil ("\u0046\u0069\u0078\u0065\u0064\u0050\u0072\u0069\u006e\u0074",_bffa .FixedPrint );return _fcdc ;};
// SetNamedDestinations sets the Dests entry in the PDF catalog.
// See section 12.3.2.3 "Named Destinations" (p. 367 PDF32000_2008).
func (_eebedc *PdfWriter )SetNamedDestinations (dests _ae .PdfObject )error {if dests ==nil {return nil ;};_ac .Log .Trace ("\u0053e\u0074\u0074\u0069\u006e\u0067\u0020\u0063\u0061\u0074\u0061\u006co\u0067\u0020\u0044\u0065\u0073\u0074\u0073\u002e\u002e\u002e");
_eebedc ._caddd .Set ("\u0044\u0065\u0073t\u0073",dests );return _eebedc .addObjects (dests );};const (RC4_128bit =EncryptionAlgorithm (iota );AES_128bit ;AES_256bit ;);
// GetPerms returns the Permissions dictionary
func (_bffac *PdfReader )GetPerms ()*Permissions {return _bffac ._cgfad };
// GetOptimizer returns current PDF optimizer.
func (_afcbb *PdfWriter )GetOptimizer ()Optimizer {return _afcbb ._ffefg };
// NewPdfColorspaceDeviceRGB returns a new RGB colorspace object.
func NewPdfColorspaceDeviceRGB ()*PdfColorspaceDeviceRGB {return &PdfColorspaceDeviceRGB {}};
// PdfShadingType5 is a Lattice-form Gouraud-shaded triangle mesh.
type PdfShadingType5 struct{*PdfShading ;BitsPerCoordinate *_ae .PdfObjectInteger ;BitsPerComponent *_ae .PdfObjectInteger ;VerticesPerRow *_ae .PdfObjectInteger ;Decode *_ae .PdfObjectArray ;Function []PdfFunction ;};func (_cecd *PdfColorspaceCalRGB )String ()string {return "\u0043\u0061\u006c\u0052\u0047\u0042"};
// ColorFromFloats returns a new PdfColor based on input color components.
func (_eceb *PdfColorspaceDeviceN )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=_eceb .GetNumComponents (){return nil ,_db .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_fbae ,_cadg :=_eceb .TintTransform .Evaluate (vals );
if _cadg !=nil {return nil ,_cadg ;};_ecaa ,_cadg :=_eceb .AlternateSpace .ColorFromFloats (_fbae );if _cadg !=nil {return nil ,_cadg ;};return _ecaa ,nil ;};
// ToPdfObject implements interface PdfModel.
func (_cegce *PdfAnnotationPrinterMark )ToPdfObject ()_ae .PdfObject {_cegce .PdfAnnotation .ToPdfObject ();_cfgb :=_cegce ._gcgf ;_decg :=_cfgb .PdfObject .(*_ae .PdfObjectDictionary );_decg .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ae .MakeName ("P\u0072\u0069\u006e\u0074\u0065\u0072\u004d\u0061\u0072\u006b"));
_decg .SetIfNotNil ("\u004d\u004e",_cegce .MN );return _cfgb ;};
// ToPdfObject implements interface PdfModel.
func (_fdfe *PdfAnnotationLink )ToPdfObject ()_ae .PdfObject {_fdfe .PdfAnnotation .ToPdfObject ();_fcbd :=_fdfe ._gcgf ;_eaec :=_fcbd .PdfObject .(*_ae .PdfObjectDictionary );_eaec .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ae .MakeName ("\u004c\u0069\u006e\u006b"));
if _fdfe ._ebf !=nil &&_fdfe ._ebf ._df !=nil {_eaec .Set ("\u0041",_fdfe ._ebf ._df .ToPdfObject ());}else if _fdfe .A !=nil {_eaec .Set ("\u0041",_fdfe .A );};_eaec .SetIfNotNil ("\u0044\u0065\u0073\u0074",_fdfe .Dest );_eaec .SetIfNotNil ("\u0048",_fdfe .H );
_eaec .SetIfNotNil ("\u0050\u0041",_fdfe .PA );_eaec .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_fdfe .QuadPoints );_eaec .SetIfNotNil ("\u0042\u0053",_fdfe .BS );return _fcbd ;};
// SetPdfProducer sets the Producer attribute of the output PDF.
func SetPdfProducer (producer string ){_cadgd .Lock ();defer _cadgd .Unlock ();_bbgdec =producer };
// 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 (_fccce *Image )SetSamples (samples []uint32 ){if _fccce .BitsPerComponent < 8{samples =_fccce .samplesAddPadding (samples );};_cabca :=_ba .ResampleUint32 (samples ,int (_fccce .BitsPerComponent ),8);_bagba :=make ([]byte ,len (_cabca ));for _eccbc ,_aecab :=range _cabca {_bagba [_eccbc ]=byte (_aecab );
};_fccce .Data =_bagba ;};
// NewPdfFilespecFromObj creates and returns a new PdfFilespec object.
func NewPdfFilespecFromObj (obj _ae .PdfObject )(*PdfFilespec ,error ){_dfbcf :=&PdfFilespec {};var _dbba *_ae .PdfObjectDictionary ;if _fbcg ,_gdgb :=_ae .GetIndirect (obj );_gdgb {_dfbcf ._caeaag =_fbcg ;_dfbf ,_beeee :=_ae .GetDict (_fbcg .PdfObject );
if !_beeee {_ac .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 ,_ae .ErrTypeError ;};_dbba =_dfbf ;}else if _cdfd ,_dcdgd :=_ae .GetDict (obj );
_dcdgd {_dfbcf ._caeaag =_cdfd ;_dbba =_cdfd ;}else {_ac .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 ,_ae .ErrTypeError ;};if _dbba ==nil {_ac .Log .Debug ("\u0044i\u0063t\u0069\u006f\u006e\u0061\u0072y\u0020\u006di\u0073\u0073\u0069\u006e\u0067");
return nil ,_db .New ("\u0064\u0069\u0063t\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};if _bbeb :=_dbba .Get ("\u0054\u0079\u0070\u0065");_bbeb !=nil {_bfaaa ,_gcac :=_bbeb .(*_ae .PdfObjectName );if !_gcac {_ac .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",_bbeb );
}else {if *_bfaaa !="\u0046\u0069\u006c\u0065\u0073\u0070\u0065\u0063"{_ac .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",*_bfaaa );
};};};if _dedbe :=_dbba .Get ("\u0046\u0053");_dedbe !=nil {_dfbcf .FS =_dedbe ;};if _fbabc :=_dbba .Get ("\u0046");_fbabc !=nil {_dfbcf .F =_fbabc ;};if _fggaa :=_dbba .Get ("\u0055\u0046");_fggaa !=nil {_dfbcf .UF =_fggaa ;};if _dcbbe :=_dbba .Get ("\u0044\u004f\u0053");
_dcbbe !=nil {_dfbcf .DOS =_dcbbe ;};if _afgd :=_dbba .Get ("\u004d\u0061\u0063");_afgd !=nil {_dfbcf .Mac =_afgd ;};if _afaf :=_dbba .Get ("\u0055\u006e\u0069\u0078");_afaf !=nil {_dfbcf .Unix =_afaf ;};if _dfbg :=_dbba .Get ("\u0049\u0044");_dfbg !=nil {_dfbcf .ID =_dfbg ;
};if _ddce :=_dbba .Get ("\u0056");_ddce !=nil {_dfbcf .V =_ddce ;};if _cdfdb :=_dbba .Get ("\u0045\u0046");_cdfdb !=nil {_dfbcf .EF =_cdfdb ;};if _aeae :=_dbba .Get ("\u0052\u0046");_aeae !=nil {_dfbcf .RF =_aeae ;};if _gfcfc :=_dbba .Get ("\u0044\u0065\u0073\u0063");
_gfcfc !=nil {_dfbcf .Desc =_gfcfc ;};if _gabc :=_dbba .Get ("\u0043\u0049");_gabc !=nil {_dfbcf .CI =_gabc ;};return _dfbcf ,nil ;};
// NewPdfActionTrans returns a new "trans" action.
func NewPdfActionTrans ()*PdfActionTrans {_cag :=NewPdfAction ();_egg :=&PdfActionTrans {};_egg .PdfAction =_cag ;_cag .SetContext (_egg );return _egg ;};func (_ffeda *Image )samplesTrimPadding (_dbbdd []uint32 )[]uint32 {_ffebeg :=_ffeda .ColorComponents *int (_ffeda .Width )*int (_ffeda .Height );
if len (_dbbdd )==_ffebeg {return _dbbdd ;};_fdcc :=make ([]uint32 ,_ffebeg );_agdg :=int (_ffeda .Width )*_ffeda .ColorComponents ;var _agbc ,_fccdd ,_eeege ,_gdfa int ;_deddg :=_afc .BytesPerLine (int (_ffeda .Width ),int (_ffeda .BitsPerComponent ),_ffeda .ColorComponents );
for _agbc =0;_agbc < int (_ffeda .Height );_agbc ++{_fccdd =_agbc *int (_ffeda .Width );_eeege =_agbc *_deddg ;for _gdfa =0;_gdfa < _agdg ;_gdfa ++{_fdcc [_fccdd +_gdfa ]=_dbbdd [_eeege +_gdfa ];};};return _fdcc ;};
// DecodeArray returns the component range values for the Indexed colorspace.
func (_dcaee *PdfColorspaceSpecialIndexed )DecodeArray ()[]float64 {return []float64 {0,float64 (_dcaee .HiVal )};};
// SetPdfCreationDate sets the CreationDate attribute of the output PDF.
func SetPdfCreationDate (creationDate _d .Time ){_cadgd .Lock ();defer _cadgd .Unlock ();_ddage =creationDate ;};
// ImageToRGB converts ICCBased colorspace image to RGB and returns the result.
func (_dgef *PdfColorspaceICCBased )ImageToRGB (img Image )(Image ,error ){if _dgef .Alternate ==nil {_ac .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 _dgef .N ==1{_ac .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");
_ffdgf :=NewPdfColorspaceDeviceGray ();return _ffdgf .ImageToRGB (img );}else if _dgef .N ==3{_ac .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 _dgef .N ==4{_ac .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");
_eggc :=NewPdfColorspaceDeviceCMYK ();return _eggc .ImageToRGB (img );}else {return img ,_db .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");
};};_ac .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",_dgef );
_dgbfd ,_egfde :=_dgef .Alternate .ImageToRGB (img );_ac .Log .Trace ("I\u0043C\u0020\u0049\u006e\u0070\u0075\u0074\u0020\u0069m\u0061\u0067\u0065\u003a %\u002b\u0076",img );_ac .Log .Trace ("I\u0043\u0043\u0020\u004fut\u0070u\u0074\u0020\u0069\u006d\u0061g\u0065\u003a\u0020\u0025\u002b\u0076",_dgbfd );
return _dgbfd ,_egfde ;};
// ToPdfObject converts the PdfFont object to its PDF representation.
func (_gfdc *PdfFont )ToPdfObject ()_ae .PdfObject {if _gfdc ._dabg ==nil {_ac .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 _ae .MakeNull ();
};return _gfdc ._dabg .ToPdfObject ();};func (_abbe *PdfReader )newPdfPageFromDict (_aeea *_ae .PdfObjectDictionary )(*PdfPage ,error ){_ddfbf :=NewPdfPage ();_ddfbf ._efgca =_aeea ;_ddfbf ._eedgd =*_aeea ;_ceed :=*_aeea ;_fffca ,_gcffe :=_ceed .Get ("\u0054\u0079\u0070\u0065").(*_ae .PdfObjectName );
if !_gcffe {return nil ,_db .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 *_fffca !="\u0050\u0061\u0067\u0065"{return nil ,_db .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 _dddef :=_ceed .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");_dddef !=nil {_ddfbf .Parent =_dddef ;};if _cgfg :=_ceed .Get ("\u004c\u0061\u0073t\u004d\u006f\u0064\u0069\u0066\u0069\u0065\u0064");_cgfg !=nil {_gaagg ,_eaca :=_ae .GetString (_cgfg );
if !_eaca {return nil ,_db .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");};
_bfdgf ,_aagc :=NewPdfDate (_gaagg .Str ());if _aagc !=nil {return nil ,_aagc ;};_ddfbf .LastModified =&_bfdgf ;};if _ecacd :=_ceed .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");_ecacd !=nil &&!_ae .IsNullObject (_ecacd ){_badfg ,_ebbfd :=_ae .GetDict (_ecacd );
if !_ebbfd {return nil ,_f .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",_ecacd );};var _dadgf error ;_ddfbf .Resources ,_dadgf =NewPdfPageResourcesFromDict (_badfg );
if _dadgf !=nil {return nil ,_dadgf ;};}else {_edeec ,_daaa :=_ddfbf .getParentResources ();if _daaa !=nil {return nil ,_daaa ;};if _edeec ==nil {_edeec =NewPdfPageResources ();};_ddfbf .Resources =_edeec ;};if _cbgdb :=_ceed .Get ("\u004d\u0065\u0064\u0069\u0061\u0042\u006f\u0078");
_cbgdb !=nil {_cgecb ,_eafd :=_ae .GetArray (_cbgdb );if !_eafd {return nil ,_db .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 _cffcb error ;
_ddfbf .MediaBox ,_cffcb =NewPdfRectangle (*_cgecb );if _cffcb !=nil {return nil ,_cffcb ;};};if _edeea :=_ceed .Get ("\u0043r\u006f\u0070\u0042\u006f\u0078");_edeea !=nil {_accfg ,_cddea :=_ae .GetArray (_edeea );if !_cddea {return nil ,_db .New ("\u0070a\u0067\u0065\u0020\u0043r\u006f\u0070\u0042\u006f\u0078 \u006eo\u0074 \u0061\u006e\u0020\u0061\u0072\u0072\u0061y");
};var _cgbd error ;_ddfbf .CropBox ,_cgbd =NewPdfRectangle (*_accfg );if _cgbd !=nil {return nil ,_cgbd ;};};if _aagbc :=_ceed .Get ("\u0042\u006c\u0065\u0065\u0064\u0042\u006f\u0078");_aagbc !=nil {_bgegd ,_bcba :=_ae .GetArray (_aagbc );if !_bcba {return nil ,_db .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 _efbb error ;_ddfbf .BleedBox ,_efbb =NewPdfRectangle (*_bgegd );if _efbb !=nil {return nil ,_efbb ;};};if _abeef :=_ceed .Get ("\u0054r\u0069\u006d\u0042\u006f\u0078");_abeef !=nil {_gbbdg ,_bgggd :=_ae .GetArray (_abeef );if !_bgggd {return nil ,_db .New ("\u0070a\u0067\u0065\u0020\u0054r\u0069\u006d\u0042\u006f\u0078 \u006eo\u0074 \u0061\u006e\u0020\u0061\u0072\u0072\u0061y");
};var _adac error ;_ddfbf .TrimBox ,_adac =NewPdfRectangle (*_gbbdg );if _adac !=nil {return nil ,_adac ;};};if _fgcda :=_ceed .Get ("\u0041\u0072\u0074\u0042\u006f\u0078");_fgcda !=nil {_cbbgb ,_fgab :=_ae .GetArray (_fgcda );if !_fgab {return nil ,_db .New ("\u0070a\u0067\u0065\u0020\u0041\u0072\u0074\u0042\u006f\u0078\u0020\u006eo\u0074\u0020\u0061\u006e\u0020\u0061\u0072\u0072\u0061\u0079");
};var _gebac error ;_ddfbf .ArtBox ,_gebac =NewPdfRectangle (*_cbbgb );if _gebac !=nil {return nil ,_gebac ;};};if _edeff :=_ceed .Get ("\u0042\u006f\u0078C\u006f\u006c\u006f\u0072\u0049\u006e\u0066\u006f");_edeff !=nil {_ddfbf .BoxColorInfo =_edeff ;};
if _fbfe :=_ceed .Get ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073");_fbfe !=nil {_ddfbf .Contents =_fbfe ;};if _dccfc :=_ceed .Get ("\u0052\u006f\u0074\u0061\u0074\u0065");_dccfc !=nil {_dgcb ,_adef :=_ae .GetNumberAsInt64 (_dccfc );if _adef !=nil {return nil ,_db .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");
};_ddfbf .Rotate =&_dgcb ;};if _dcfb :=_ceed .Get ("\u0047\u0072\u006fu\u0070");_dcfb !=nil {_ddfbf .Group =_dcfb ;};if _ebea :=_ceed .Get ("\u0054\u0068\u0075m\u0062");_ebea !=nil {_ddfbf .Thumb =_ebea ;};if _gadcd :=_ceed .Get ("\u0042");_gadcd !=nil {_ddfbf .B =_gadcd ;
};if _gcead :=_ceed .Get ("\u0044\u0075\u0072");_gcead !=nil {_ddfbf .Dur =_gcead ;};if _cfdbc :=_ceed .Get ("\u0054\u0072\u0061n\u0073");_cfdbc !=nil {_ddfbf .Trans =_cfdbc ;};if _cggdc :=_ceed .Get ("\u0041\u0041");_cggdc !=nil {_ddfbf .AA =_cggdc ;};
if _cfcef :=_ceed .Get ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");_cfcef !=nil {_ddfbf .Metadata =_cfcef ;};if _ddabca :=_ceed .Get ("\u0050i\u0065\u0063\u0065\u0049\u006e\u0066o");_ddabca !=nil {_ddfbf .PieceInfo =_ddabca ;};if _eaabe :=_ceed .Get ("\u0053\u0074\u0072\u0075\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074\u0073");
_eaabe !=nil {_ddfbf .StructParents =_eaabe ;};if _ccab :=_ceed .Get ("\u0049\u0044");_ccab !=nil {_ddfbf .ID =_ccab ;};if _bcceg :=_ceed .Get ("\u0050\u005a");_bcceg !=nil {_ddfbf .PZ =_bcceg ;};if _eaacb :=_ceed .Get ("\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006fn\u0049\u006e\u0066\u006f");
_eaacb !=nil {_ddfbf .SeparationInfo =_eaacb ;};if _gbfe :=_ceed .Get ("\u0054\u0061\u0062\u0073");_gbfe !=nil {_ddfbf .Tabs =_gbfe ;};if _gdfb :=_ceed .Get ("T\u0065m\u0070\u006c\u0061\u0074\u0065\u0049\u006e\u0073t\u0061\u006e\u0074\u0069at\u0065\u0064");
_gdfb !=nil {_ddfbf .TemplateInstantiated =_gdfb ;};if _bdadfd :=_ceed .Get ("\u0050r\u0065\u0073\u0053\u0074\u0065\u0070s");_bdadfd !=nil {_ddfbf .PresSteps =_bdadfd ;};if _dedcb :=_ceed .Get ("\u0055\u0073\u0065\u0072\u0055\u006e\u0069\u0074");_dedcb !=nil {_ddfbf .UserUnit =_dedcb ;
};if _afafe :=_ceed .Get ("\u0056\u0050");_afafe !=nil {_ddfbf .VP =_afafe ;};if _dgadb :=_ceed .Get ("\u0041\u006e\u006e\u006f\u0074\u0073");_dgadb !=nil {_ddfbf .Annots =_dgadb ;};_ddfbf ._bceef =_abbe ;return _ddfbf ,nil ;};func _gccbg ()*modelManager {_gacbb :=modelManager {};
_gacbb ._gbed =map[PdfModel ]_ae .PdfObject {};_gacbb ._bdcg =map[_ae .PdfObject ]PdfModel {};return &_gacbb ;};
// 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 *_ce .CertClient ;
// OCSPClient is the client used to retrieve OCSP validation information.
OCSPClient *_ce .OCSPClient ;
// CRLClient is the client used to retrieve CRL validation information.
CRLClient *_ce .CRLClient ;
// SkipExisting specifies whether existing signature validations
// should be skipped.
SkipExisting bool ;_gbcge *PdfAppender ;_dbggb *DSS ;};
// ToImage converts an object to an Image which can be transformed or saved out.
// The image data is decoded and the Image returned.
func (_deffb *XObjectImage )ToImage ()(*Image ,error ){_caddb :=&Image {};if _deffb .Height ==nil {return nil ,_db .New ("\u0068e\u0069\u0067\u0068\u0074\u0020\u0061\u0074\u0074\u0072\u0069\u0062u\u0074\u0065\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");
};_caddb .Height =*_deffb .Height ;if _deffb .Width ==nil {return nil ,_db .New ("\u0077\u0069\u0064th\u0020\u0061\u0074\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};_caddb .Width =*_deffb .Width ;if _deffb .BitsPerComponent ==nil {switch _deffb .Filter .(type ){case *_ae .CCITTFaxEncoder ,*_ae .JBIG2Encoder :_caddb .BitsPerComponent =1;
case *_ae .LZWEncoder ,*_ae .RunLengthEncoder :_caddb .BitsPerComponent =8;default:return nil ,_db .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 {_caddb .BitsPerComponent =*_deffb .BitsPerComponent ;};_caddb .ColorComponents =_deffb .ColorSpace .GetNumComponents ();_deffb ._efaag .Set ("\u0043o\u006co\u0072\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074\u0073",_ae .MakeInteger (int64 (_caddb .ColorComponents )));
_edea ,_cggdag :=_ae .DecodeStream (_deffb ._efaag );if _cggdag !=nil {return nil ,_cggdag ;};_caddb .Data =_edea ;if _deffb .Decode !=nil {_deccb ,_aefba :=_deffb .Decode .(*_ae .PdfObjectArray );if !_aefba {_ac .Log .Debug ("I\u006e\u0076\u0061\u006cid\u0020D\u0065\u0063\u006f\u0064\u0065 \u006f\u0062\u006a\u0065\u0063\u0074");
return nil ,_db .New ("\u0069\u006e\u0076a\u006c\u0069\u0064\u0020\u0074\u0079\u0070\u0065");};_bffaca ,_dgffc :=_deccb .ToFloat64Array ();if _dgffc !=nil {return nil ,_dgffc ;};switch _deffb .ColorSpace .(type ){case *PdfColorspaceDeviceCMYK :_fecbf :=_deffb .ColorSpace .DecodeArray ();
if _fecbf [0]==_bffaca [0]&&_fecbf [1]==_bffaca [1]&&_fecbf [2]==_bffaca [2]&&_fecbf [3]==_bffaca [3]{_caddb ._fdae =_bffaca ;};default:_caddb ._fdae =_bffaca ;};};return _caddb ,nil ;};
// NewPdfFontFromPdfObject loads a PdfFont from the dictionary `fontObj`. If there is a problem an
// error is returned.
func NewPdfFontFromPdfObject (fontObj _ae .PdfObject )(*PdfFont ,error ){return _baabd (fontObj ,true )};
// Encoder returns the font's text encoder.
func (_ddde *PdfFont )Encoder ()_bgg .TextEncoder {_bfbbaf :=_ddde .actualFont ();if _bfbbaf ==nil {_ac .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",_ddde ._dabg );
return nil ;};return _bfbbaf .Encoder ();};
// GetNumComponents returns the number of color components of the underlying
// colorspace device.
func (_bgdfa *PdfColorspaceSpecialPattern )GetNumComponents ()int {return _bgdfa .UnderlyingCS .GetNumComponents ();};
// GetRevision returns the specific version of the PdfReader for the current Pdf document
func (_ddffd *PdfReader )GetRevision (revisionNumber int )(*PdfReader ,error ){_dbcac :=_ddffd ._bfcga .GetRevisionNumber ();if revisionNumber < 0||revisionNumber > _dbcac {return nil ,_db .New ("w\u0072\u006f\u006e\u0067 r\u0065v\u0069\u0073\u0069\u006f\u006e \u006e\u0075\u006d\u0062\u0065\u0072");
};if revisionNumber ==_dbcac {return _ddffd ,nil ;};if _ddffd ._afagc [revisionNumber ]!=nil {return _ddffd ._afagc [revisionNumber ],nil ;};_dccgf :=_ddffd ;for _ddae :=_dbcac -1;_ddae >=revisionNumber ;_ddae --{_cedde ,_gdcagag :=_dccgf .GetPreviousRevision ();
if _gdcagag !=nil {return nil ,_gdcagag ;};_ddffd ._afagc [_ddae ]=_cedde ;_dccgf =_cedde ;};return _dccgf ,nil ;};
// GetOutlines returns a high-level Outline object, based on the outline tree
// of the reader.
func (_cgcg *PdfReader )GetOutlines ()(*Outline ,error ){if _cgcg ==nil {return nil ,_db .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");
};_egfef :=_cgcg .GetOutlineTree ();if _egfef ==nil {return nil ,_db .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 _fabfa func (_ebae *PdfOutlineTreeNode ,_ecfeb *[]*OutlineItem );_fabfa =func (_cgaca *PdfOutlineTreeNode ,_dddf *[]*OutlineItem ){if _cgaca ==nil {return ;};if _cgaca ._aaea ==nil {_ac .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 _agde *OutlineItem ;if _cfeaa ,_gadeb :=_cgaca ._aaea .(*PdfOutlineItem );_gadeb {_ggdc :=_cfeaa .Dest ;if (_ggdc ==nil ||_ae .IsNullObject (_ggdc ))&&_cfeaa .A !=nil {if _dfaea ,_bdgba :=_ae .GetDict (_cfeaa .A );_bdgba {if _cfdad ,_egbf :=_ae .GetArray (_dfaea .Get ("\u0044"));
_egbf {_ggdc =_cfdad ;}else {_cdfc ,_faafc :=_ae .GetString (_dfaea .Get ("\u0044"));if !_faafc {return ;};_bfcge ,_faafc :=_cgcg ._aedf .Get ("\u004e\u0061\u006de\u0073").(*_ae .PdfObjectReference );if !_faafc {return ;};_gecb ,_feaeg :=_cgcg ._bfcga .LookupByReference (*_bfcge );
if _feaeg !=nil {_ac .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",_feaeg .Error ());
return ;};_bagg ,_faafc :=_gecb .(*_ae .PdfIndirectObject );if !_faafc {return ;};_bcfbc :=map[_ae .PdfObject ]struct{}{};_feaeg =_cgcg .buildNameNodes (_bagg ,_bcfbc );if _feaeg !=nil {_ac .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",_feaeg .Error ());
return ;};for _ccdf :=range _bcfbc {_bgaba ,_deecgg :=_ae .GetDict (_ccdf );if !_deecgg {continue ;};_bgbaf ,_deecgg :=_ae .GetArray (_bgaba .Get ("\u004e\u0061\u006de\u0073"));if !_deecgg {continue ;};for _gdfe ,_fbged :=range _bgbaf .Elements (){switch _fbged .(type ){case *_ae .PdfObjectString :if _fbged .String ()==_cdfc .String (){if _bcfd :=_bgbaf .Get (_gdfe +1);
_bcfd !=nil {if _ddcdcb ,_defcgg :=_ae .GetDict (_bcfd );_defcgg {_ggdc =_ddcdcb .Get ("\u0044");break ;};};};};};};};};};var _efgfe OutlineDest ;if _ggdc !=nil &&!_ae .IsNullObject (_ggdc ){if _feaa ,_eagab :=_abbdb (_ggdc ,_cgcg );_eagab ==nil {_efgfe =*_feaa ;
}else {_ac .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",_ggdc ,_eagab );
};};_agde =NewOutlineItem (_cfeaa .Title .Decoded (),_efgfe );*_dddf =append (*_dddf ,_agde );if _cfeaa .Next !=nil {_fabfa (_cfeaa .Next ,_dddf );};};if _cgaca .First !=nil {if _agde !=nil {_dddf =&_agde .Entries ;};_fabfa (_cgaca .First ,_dddf );};};
_ggegde :=NewOutline ();_fabfa (_egfef ,&_ggegde .Entries );return _ggegde ,nil ;};
// DefaultFont returns the default font, which is currently the built in Helvetica.
func DefaultFont ()*PdfFont {_cdfb ,_afdd :=_cb .NewStdFontByName (HelveticaName );if !_afdd {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");
};_dbaf :=_fbefg (_cdfb );return &PdfFont {_dabg :&_dbaf };};func (_fadbd *PdfWriter )writeString (_ccffe string ){if _fadbd ._fffcb !=nil {return ;};_cbdde ,_eadgg :=_fadbd ._dfgcc .WriteString (_ccffe );_fadbd ._eeegee +=int64 (_cbdde );_fadbd ._fffcb =_eadgg ;
};
// AddContentStreamByString adds content stream by string. Puts the content
// string into a stream object and points the content stream towards it.
func (_fgff *PdfPage )AddContentStreamByString (contentStr string )error {_defcg ,_dccg :=_ae .MakeStream ([]byte (contentStr ),_ae .NewFlateEncoder ());if _dccg !=nil {return _dccg ;};if _fgff .Contents ==nil {_fgff .Contents =_defcg ;}else {_dceca :=_ae .TraceToDirectObject (_fgff .Contents );
_fdbga ,_gbfef :=_dceca .(*_ae .PdfObjectArray );if !_gbfef {_fdbga =_ae .MakeArray (_dceca );};_fdbga .Append (_defcg );_fgff .Contents =_fdbga ;};return nil ;};
// ToPdfObject implements interface PdfModel.
func (_bag *PdfActionMovie )ToPdfObject ()_ae .PdfObject {_bag .PdfAction .ToPdfObject ();_bed :=_bag ._cbe ;_cfd :=_bed .PdfObject .(*_ae .PdfObjectDictionary );_cfd .SetIfNotNil ("\u0053",_ae .MakeName (string (ActionTypeMovie )));_cfd .SetIfNotNil ("\u0041\u006e\u006e\u006f\u0074\u0061\u0074\u0069\u006f\u006e",_bag .Annotation );
_cfd .SetIfNotNil ("\u0054",_bag .T );_cfd .SetIfNotNil ("\u004fp\u0065\u0072\u0061\u0074\u0069\u006fn",_bag .Operation );return _bed ;};
// Mask returns the uin32 bitmask for the specific flag.
func (_gecf FieldFlag )Mask ()uint32 {return uint32 (_gecf )};func (_abefa *PdfReader )resolveReference (_egabe *_ae .PdfObjectReference )(_ae .PdfObject ,bool ,error ){_acbdd ,_cfcd :=_abefa ._bfcga .ObjCache [int (_egabe .ObjectNumber )];if !_cfcd {_ac .Log .Trace ("R\u0065\u0061\u0064\u0065r \u004co\u006f\u006b\u0075\u0070\u0020r\u0065\u0066\u003a\u0020\u0025\u0073",_egabe );
_dddfe ,_gfaeg :=_abefa ._bfcga .LookupByReference (*_egabe );if _gfaeg !=nil {return nil ,false ,_gfaeg ;};_abefa ._bfcga .ObjCache [int (_egabe .ObjectNumber )]=_dddfe ;return _dddfe ,false ,nil ;};return _acbdd ,true ,nil ;};func (_cbcf *PdfReader )newPdfAnnotationStrikeOut (_aca *_ae .PdfObjectDictionary )(*PdfAnnotationStrikeOut ,error ){_effg :=PdfAnnotationStrikeOut {};
_daef ,_ccag :=_cbcf .newPdfAnnotationMarkupFromDict (_aca );if _ccag !=nil {return nil ,_ccag ;};_effg .PdfAnnotationMarkup =_daef ;_effg .QuadPoints =_aca .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");return &_effg ,nil ;};
// Has checks if flag fl is set in flag and returns true if so, false otherwise.
func (_bdca FieldFlag )Has (fl FieldFlag )bool {return (_bdca .Mask ()&fl .Mask ())> 0};func (_ceffe *PdfReader )loadDSS ()(*DSS ,error ){if _ceffe ._bfcga .GetCrypter ()!=nil &&!_ceffe ._bfcga .IsAuthenticated (){return nil ,_f .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");
};_fddce :=_ceffe ._aedf .Get ("\u0044\u0053\u0053");if _fddce ==nil {return nil ,nil ;};_dafef ,_ :=_ae .GetIndirect (_fddce );_fddce =_ae .TraceToDirectObject (_fddce );switch _aeade :=_fddce .(type ){case *_ae .PdfObjectNull :return nil ,nil ;case *_ae .PdfObjectDictionary :return _cgaba (_dafef ,_aeade );
};return nil ,_f .Errorf ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0044\u0053\u0053 \u0065\u006e\u0074\u0072y \u0025\u0054",_fddce );};
// PdfActionMovie represents a movie action.
type PdfActionMovie struct{*PdfAction ;Annotation _ae .PdfObject ;T _ae .PdfObject ;Operation _ae .PdfObject ;};func (_aaeab *PdfReader )traverseObjectData (_gdecd _ae .PdfObject )error {return _ae .ResolveReferencesDeep (_gdecd ,_aaeab ._agege );};
// PdfOutlineTreeNode contains common fields used by the outline and outline
// item objects.
type PdfOutlineTreeNode struct{_aaea interface{};First *PdfOutlineTreeNode ;Last *PdfOutlineTreeNode ;};func _fabff (_fggge *fontCommon )*pdfCIDFontType0 {return &pdfCIDFontType0 {fontCommon :*_fggge }};
// ToPdfObject implements interface PdfModel.
func (_ded *PdfAnnotationRichMedia )ToPdfObject ()_ae .PdfObject {_ded .PdfAnnotation .ToPdfObject ();_egfce :=_ded ._gcgf ;_aggd :=_egfce .PdfObject .(*_ae .PdfObjectDictionary );_aggd .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ae .MakeName ("\u0052i\u0063\u0068\u004d\u0065\u0064\u0069a"));
_aggd .SetIfNotNil ("\u0052\u0069\u0063\u0068\u004d\u0065\u0064\u0069\u0061\u0053\u0065\u0074t\u0069\u006e\u0067\u0073",_ded .RichMediaSettings );_aggd .SetIfNotNil ("\u0052\u0069c\u0068\u004d\u0065d\u0069\u0061\u0043\u006f\u006e\u0074\u0065\u006e\u0074",_ded .RichMediaContent );
return _egfce ;};
// AddAnnotation appends `annot` to the list of page annotations.
func (_cecgd *PdfPage )AddAnnotation (annot *PdfAnnotation ){if _cecgd ._dgfec ==nil {_cecgd .GetAnnotations ();};_cecgd ._dgfec =append (_cecgd ._dgfec ,annot );};func _egec (_cdaa ,_ffgb string )string {if _eg .Contains (_cdaa ,"\u002b"){_edadd :=_eg .Split (_cdaa ,"\u002b");
if len (_edadd )==2{_cdaa =_edadd [1];};};return _ffgb +"\u002b"+_cdaa ;};
// IsColored specifies if the pattern is colored.
func (_bbdad *PdfTilingPattern )IsColored ()bool {if _bbdad .PaintType !=nil &&*_bbdad .PaintType ==1{return true ;};return false ;};func (_aba *PdfReader )newPdfAnnotationTrapNetFromDict (_decb *_ae .PdfObjectDictionary )(*PdfAnnotationTrapNet ,error ){_fecg :=PdfAnnotationTrapNet {};
return &_fecg ,nil ;};
// M returns the value of the magenta component of the color.
func (_eefg *PdfColorDeviceCMYK )M ()float64 {return _eefg [1]};
// 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 _gdc .ReadSeeker )(*PdfFont ,error ){const _dfgfb =_bgg .CharCode (32);const _cccbg =_bgg .CharCode (255);_ceaag ,_eeee :=_abc .ReadAll (r );if _eeee !=nil {_ac .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",_eeee );
return nil ,_eeee ;};_eaedd ,_eeee :=_cb .TtfParse (_aa .NewReader (_ceaag ));if _eeee !=nil {_ac .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",_eeee );
return nil ,_eeee ;};_dbcde :=&pdfFontSimple {_deaed :make (map[_bgg .CharCode ]float64 ),fontCommon :fontCommon {_adce :"\u0054\u0072\u0075\u0065\u0054\u0079\u0070\u0065"}};_dbcde ._dead =_bgg .NewWinAnsiEncoder ();_dbcde ._cedb =_eaedd .PostScriptName ;
_dbcde .FirstChar =_ae .MakeInteger (int64 (_dfgfb ));_dbcde .LastChar =_ae .MakeInteger (int64 (_cccbg ));_abdg :=1000.0/float64 (_eaedd .UnitsPerEm );if len (_eaedd .Widths )<=0{return nil ,_db .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");
};_bdea :=_abdg *float64 (_eaedd .Widths [0]);_egccba :=make ([]float64 ,0,_cccbg -_dfgfb +1);for _cfag :=_dfgfb ;_cfag <=_cccbg ;_cfag ++{_afbca ,_dedea :=_dbcde .Encoder ().CharcodeToRune (_cfag );if !_dedea {_ac .Log .Debug ("\u0052u\u006e\u0065\u0020\u006eo\u0074\u0020\u0066\u006f\u0075n\u0064 \u0028c\u006f\u0064\u0065\u003a\u0020\u0025\u0064)",_cfag );
_egccba =append (_egccba ,_bdea );continue ;};_gfea ,_dcgc :=_eaedd .Chars [_afbca ];if !_dcgc {_ac .Log .Debug ("R\u0075\u006e\u0065\u0020no\u0074 \u0069\u006e\u0020\u0054\u0054F\u0020\u0043\u0068\u0061\u0072\u0073");_egccba =append (_egccba ,_bdea );
continue ;};_cfgfg :=_abdg *float64 (_eaedd .Widths [_gfea ]);_egccba =append (_egccba ,_cfgfg );};_dbcde .Widths =_ae .MakeIndirectObject (_ae .MakeArrayFromFloats (_egccba ));if len (_egccba )< int (_cccbg -_dfgfb +1){_ac .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 (_egccba ),255-32+1);
return nil ,_ae .ErrRangeError ;};for _defebe :=_dfgfb ;_defebe <=_cccbg ;_defebe ++{_dbcde ._deaed [_defebe ]=_egccba [_defebe -_dfgfb ];};_dbcde .Encoding =_ae .MakeName ("\u0057i\u006eA\u006e\u0073\u0069\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067");
_fggdd :=&PdfFontDescriptor {};_fggdd .FontName =_ae .MakeName (_eaedd .PostScriptName );_fggdd .Ascent =_ae .MakeFloat (_abdg *float64 (_eaedd .TypoAscender ));_fggdd .Descent =_ae .MakeFloat (_abdg *float64 (_eaedd .TypoDescender ));_fggdd .CapHeight =_ae .MakeFloat (_abdg *float64 (_eaedd .CapHeight ));
_fggdd .FontBBox =_ae .MakeArrayFromFloats ([]float64 {_abdg *float64 (_eaedd .Xmin ),_abdg *float64 (_eaedd .Ymin ),_abdg *float64 (_eaedd .Xmax ),_abdg *float64 (_eaedd .Ymax )});_fggdd .ItalicAngle =_ae .MakeFloat (_eaedd .ItalicAngle );_fggdd .MissingWidth =_ae .MakeFloat (_abdg *float64 (_eaedd .Widths [0]));
_adagb ,_eeee :=_ae .MakeStream (_ceaag ,_ae .NewFlateEncoder ());if _eeee !=nil {_ac .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",_eeee );
return nil ,_eeee ;};_adagb .PdfObjectDictionary .Set ("\u004ce\u006e\u0067\u0074\u0068\u0031",_ae .MakeInteger (int64 (len (_ceaag ))));_fggdd .FontFile2 =_adagb ;if _eaedd .Bold {_fggdd .StemV =_ae .MakeInteger (120);}else {_fggdd .StemV =_ae .MakeInteger (70);
};_dcbfa :=_gcga ;if _eaedd .IsFixedPitch {_dcbfa |=_ebaf ;};if _eaedd .ItalicAngle !=0{_dcbfa |=_fggg ;};_fggdd .Flags =_ae .MakeInteger (int64 (_dcbfa ));_dbcde ._cafdb =_fggdd ;_cgfd :=&PdfFont {_dabg :_dbcde };return _cgfd ,nil ;};func (_eccg *pdfCIDFontType0 )getFontDescriptor ()*PdfFontDescriptor {return _eccg ._cafdb };
// 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 *_ae .PdfObjectStream )(*XObjectImage ,error ){_bgfad :=&XObjectImage {};_bgfad ._efaag =stream ;_eeag :=*(stream .PdfObjectDictionary );_feede ,_dcgfe :=_ae .NewEncoderFromStream (stream );if _dcgfe !=nil {return nil ,_dcgfe ;
};_bgfad .Filter =_feede ;if _eggb :=_ae .TraceToDirectObject (_eeag .Get ("\u0057\u0069\u0064t\u0068"));_eggb !=nil {_ecdcf ,_cdeb :=_eggb .(*_ae .PdfObjectInteger );if !_cdeb {return nil ,_db .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");
};_dbafg :=int64 (*_ecdcf );_bgfad .Width =&_dbafg ;}else {return nil ,_db .New ("\u0077\u0069\u0064\u0074\u0068\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};if _fbcffg :=_ae .TraceToDirectObject (_eeag .Get ("\u0048\u0065\u0069\u0067\u0068\u0074"));
_fbcffg !=nil {_agbda ,_acefc :=_fbcffg .(*_ae .PdfObjectInteger );if !_acefc {return nil ,_db .New ("i\u006e\u0076\u0061\u006c\u0069\u0064 \u0069\u006d\u0061\u0067\u0065\u0020\u0068\u0065\u0069g\u0068\u0074\u0020o\u0062j\u0065\u0063\u0074");};_dfeff :=int64 (*_agbda );
_bgfad .Height =&_dfeff ;}else {return nil ,_db .New ("\u0068\u0065\u0069\u0067\u0068\u0074\u0020\u006d\u0069s\u0073\u0069\u006e\u0067");};if _ageae :=_ae .TraceToDirectObject (_eeag .Get ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065"));
_ageae !=nil {_gbdgc ,_aeaef :=NewPdfColorspaceFromPdfObject (_ageae );if _aeaef !=nil {return nil ,_aeaef ;};_bgfad .ColorSpace =_gbdgc ;}else {_ac .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");
_bgfad .ColorSpace =NewPdfColorspaceDeviceGray ();};if _dbgea :=_ae .TraceToDirectObject (_eeag .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074"));_dbgea !=nil {_ddcfe ,_adgbd :=_dbgea .(*_ae .PdfObjectInteger );
if !_adgbd {return nil ,_db .New ("i\u006e\u0076\u0061\u006c\u0069\u0064 \u0069\u006d\u0061\u0067\u0065\u0020\u0068\u0065\u0069g\u0068\u0074\u0020o\u0062j\u0065\u0063\u0074");};_dbbea :=int64 (*_ddcfe );_bgfad .BitsPerComponent =&_dbbea ;};_bgfad .Intent =_eeag .Get ("\u0049\u006e\u0074\u0065\u006e\u0074");
_bgfad .ImageMask =_eeag .Get ("\u0049m\u0061\u0067\u0065\u004d\u0061\u0073k");_bgfad .Mask =_eeag .Get ("\u004d\u0061\u0073\u006b");_bgfad .Decode =_eeag .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");_bgfad .Interpolate =_eeag .Get ("I\u006e\u0074\u0065\u0072\u0070\u006f\u006c\u0061\u0074\u0065");
_bgfad .Alternatives =_eeag .Get ("\u0041\u006c\u0074e\u0072\u006e\u0061\u0074\u0069\u0076\u0065\u0073");_bgfad .SMask =_eeag .Get ("\u0053\u004d\u0061s\u006b");_bgfad .SMaskInData =_eeag .Get ("S\u004d\u0061\u0073\u006b\u0049\u006e\u0044\u0061\u0074\u0061");
_bgfad .Matte =_eeag .Get ("\u004d\u0061\u0074t\u0065");_bgfad .Name =_eeag .Get ("\u004e\u0061\u006d\u0065");_bgfad .StructParent =_eeag .Get ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074");_bgfad .ID =_eeag .Get ("\u0049\u0044");
_bgfad .OPI =_eeag .Get ("\u004f\u0050\u0049");_bgfad .Metadata =_eeag .Get ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");_bgfad .OC =_eeag .Get ("\u004f\u0043");_bgfad .Stream =stream .Stream ;return _bgfad ,nil ;};func (_fcdg *pdfFontType3 )baseFields ()*fontCommon {return &_fcdg .fontCommon };
// PdfFieldText represents a text field where user can enter text.
type PdfFieldText struct{*PdfField ;DA *_ae .PdfObjectString ;Q *_ae .PdfObjectInteger ;DS *_ae .PdfObjectString ;RV _ae .PdfObject ;MaxLen *_ae .PdfObjectInteger ;};
// AcroFormRepairOptions contains options for rebuilding the AcroForm.
type AcroFormRepairOptions struct{};func (_beeac *pdfCIDFontType0 )baseFields ()*fontCommon {return &_beeac .fontCommon };
// AllFields returns a flattened list of all fields in the form.
func (_aegbd *PdfAcroForm )AllFields ()[]*PdfField {if _aegbd ==nil {return nil ;};var _bggeg []*PdfField ;if _aegbd .Fields !=nil {for _ ,_begacg :=range *_aegbd .Fields {_bggeg =append (_bggeg ,_acada (_begacg )...);};};return _bggeg ;};
// NewPdfAnnotationFileAttachment returns a new file attachment annotation.
func NewPdfAnnotationFileAttachment ()*PdfAnnotationFileAttachment {_bad :=NewPdfAnnotation ();_bead :=&PdfAnnotationFileAttachment {};_bead .PdfAnnotation =_bad ;_bead .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_bad .SetContext (_bead );return _bead ;
};
// PdfActionGoToR represents a GoToR action.
type PdfActionGoToR struct{*PdfAction ;F *PdfFilespec ;D _ae .PdfObject ;NewWindow _ae .PdfObject ;};
// NewPdfAnnotationSquare returns a new square annotation.
func NewPdfAnnotationSquare ()*PdfAnnotationSquare {_bca :=NewPdfAnnotation ();_aaa :=&PdfAnnotationSquare {};_aaa .PdfAnnotation =_bca ;_aaa .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_bca .SetContext (_aaa );return _aaa ;};
// B returns the value of the B component of the color.
func (_ffgec *PdfColorLab )B ()float64 {return _ffgec [2]};func _ebce (_bgae *_ae .PdfObjectStream )(*PdfFunctionType4 ,error ){_cffbg :=&PdfFunctionType4 {};_cffbg ._cbec =_bgae ;_bgfeb :=_bgae .PdfObjectDictionary ;_feeedf ,_fcedc :=_ae .TraceToDirectObject (_bgfeb .Get ("\u0044\u006f\u006d\u0061\u0069\u006e")).(*_ae .PdfObjectArray );
if !_fcedc {_ac .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_db .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 _feeedf .Len ()%2!=0{_ac .Log .Error ("\u0044\u006f\u006d\u0061\u0069\u006e\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");return nil ,_db .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0064\u006f\u006da\u0069\u006e\u0020\u0072an\u0067\u0065");};_fgdgf ,_adfae :=_feeedf .ToFloat64Array ();
if _adfae !=nil {return nil ,_adfae ;};_cffbg .Domain =_fgdgf ;_feeedf ,_fcedc =_ae .TraceToDirectObject (_bgfeb .Get ("\u0052\u0061\u006eg\u0065")).(*_ae .PdfObjectArray );if _fcedc {if _feeedf .Len ()< 0||_feeedf .Len ()%2!=0{return nil ,_db .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0061\u006e\u0067\u0065");
};_caff ,_bffeg :=_feeedf .ToFloat64Array ();if _bffeg !=nil {return nil ,_bffeg ;};_cffbg .Range =_caff ;};_aeagd ,_adfae :=_ae .DecodeStream (_bgae );if _adfae !=nil {return nil ,_adfae ;};_cffbg ._eabdc =_aeagd ;_bdeac :=_ace .NewPSParser (_aeagd );
_ccfa ,_adfae :=_bdeac .Parse ();if _adfae !=nil {return nil ,_adfae ;};_cffbg .Program =_ccfa ;return _cffbg ,nil ;};func (_bcaa *PdfAcroForm )fill (_gegb FieldValueProvider ,_acefg FieldAppearanceGenerator )error {if _bcaa ==nil {return nil ;};_bagc ,_dfabc :=_gegb .FieldValues ();
if _dfabc !=nil {return _dfabc ;};for _ ,_bgeab :=range _bcaa .AllFields (){_dgagc :=_bgeab .PartialName ();_fddca ,_fcbda :=_bagc [_dgagc ];if !_fcbda {if _ddbg ,_agff :=_bgeab .FullName ();_agff ==nil {_fddca ,_fcbda =_bagc [_ddbg ];};};if !_fcbda {_ac .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",_dgagc );
continue ;};if _gfdgf :=_gdad (_bgeab ,_fddca );_gfdgf !=nil {return _gfdgf ;};if _acefg ==nil {continue ;};for _ ,_agfcb :=range _bgeab .Annotations {_agbfc ,_bgba :=_acefg .GenerateAppearanceDict (_bcaa ,_bgeab ,_agfcb );if _bgba !=nil {return _bgba ;
};_agfcb .AP =_agbfc ;_agfcb .ToPdfObject ();};};return nil ;};
// 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 (_ccfff PdfOutputIntentType )String ()string {switch _ccfff {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";};};
// ToPdfObject converts PdfAcroForm to a PdfObject, i.e. an indirect object containing the
// AcroForm dictionary.
func (_efbee *PdfAcroForm )ToPdfObject ()_ae .PdfObject {_efdca :=_efbee ._febbe ;_fcga :=_efdca .PdfObject .(*_ae .PdfObjectDictionary );if _efbee .Fields !=nil {_addcea :=_ae .PdfObjectArray {};for _ ,_dfeg :=range *_efbee .Fields {_beadf :=_dfeg .GetContext ();
if _beadf !=nil {_addcea .Append (_beadf .ToPdfObject ());}else {_addcea .Append (_dfeg .ToPdfObject ());};};_fcga .Set ("\u0046\u0069\u0065\u006c\u0064\u0073",&_addcea );};if _efbee .NeedAppearances !=nil {_fcga .Set ("\u004ee\u0065d\u0041\u0070\u0070\u0065\u0061\u0072\u0061\u006e\u0063\u0065\u0073",_efbee .NeedAppearances );
}else {if _cagg :=_fcga .Get ("\u004ee\u0065d\u0041\u0070\u0070\u0065\u0061\u0072\u0061\u006e\u0063\u0065\u0073");_cagg !=nil {_fcga .Remove ("\u004ee\u0065d\u0041\u0070\u0070\u0065\u0061\u0072\u0061\u006e\u0063\u0065\u0073");};};if _efbee .SigFlags !=nil {_fcga .Set ("\u0053\u0069\u0067\u0046\u006c\u0061\u0067\u0073",_efbee .SigFlags );
};if _efbee .CO !=nil {_fcga .Set ("\u0043\u004f",_efbee .CO );};if _efbee .DR !=nil {_fcga .Set ("\u0044\u0052",_efbee .DR .ToPdfObject ());};if _efbee .DA !=nil {_fcga .Set ("\u0044\u0041",_efbee .DA );};if _efbee .Q !=nil {_fcga .Set ("\u0051",_efbee .Q );
};if _efbee .XFA !=nil {_fcga .Set ("\u0058\u0046\u0041",_efbee .XFA );};if _efbee .ADBEEchoSign !=nil {_fcga .Set ("\u0041\u0044\u0042\u0045\u005f\u0045\u0063\u0068\u006f\u0053\u0069\u0067\u006e",_efbee .ADBEEchoSign );};return _efdca ;};func (_gbga *PdfAppender )replaceObject (_ageg ,_bfc _ae .PdfObject ){switch _cafg :=_ageg .(type ){case *_ae .PdfIndirectObject :_gbga ._dcdbc [_bfc ]=_cafg .ObjectNumber ;
case *_ae .PdfObjectStream :_gbga ._dcdbc [_bfc ]=_cafg .ObjectNumber ;};};
// ImageToRGB returns an error since an image cannot be defined in a pattern colorspace.
func (_aeec *PdfColorspaceSpecialPattern )ImageToRGB (img Image )(Image ,error ){_ac .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 ,_db .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");};func (_gcfc *PdfAppender )addNewObject (_acaa _ae .PdfObject ){if _ ,_fgag :=_gcfc ._dcefg [_acaa ];
!_fgag {_gcfc ._gea =append (_gcfc ._gea ,_acaa );_gcfc ._dcefg [_acaa ]=struct{}{};};};
// PdfShadingPatternType3 is shading patterns that will use a Type 3 shading pattern (Radial).
type PdfShadingPatternType3 struct{*PdfPattern ;Shading *PdfShadingType3 ;Matrix *_ae .PdfObjectArray ;ExtGState _ae .PdfObject ;};func (_agca *PdfWriter )setDocInfo (_gggaf _ae .PdfObject ){if _agca .hasObject (_agca ._cbffg ){delete (_agca ._faecg ,_agca ._cbffg );
delete (_agca ._eecfg ,_agca ._cbffg );for _baccd ,_eadde :=range _agca ._edbe {if _eadde ==_agca ._cbffg {copy (_agca ._edbe [_baccd :],_agca ._edbe [_baccd +1:]);_agca ._edbe [len (_agca ._edbe )-1]=nil ;_agca ._edbe =_agca ._edbe [:len (_agca ._edbe )-1];
break ;};};};_bcbg :=_ae .PdfIndirectObject {};_bcbg .PdfObject =_gggaf ;_agca ._cbffg =&_bcbg ;_agca .addObject (&_bcbg );};
// FieldImageProvider provides fields images for specified fields.
type FieldImageProvider interface{FieldImageValues ()(map[string ]*Image ,error );};
// SetPdfSubject sets the Subject attribute of the output PDF.
func SetPdfSubject (subject string ){_cadgd .Lock ();defer _cadgd .Unlock ();_egafe =subject };
// NewReaderOpts generates a default `ReaderOpts` instance.
func NewReaderOpts ()*ReaderOpts {return &ReaderOpts {Password :"",LazyLoad :true }};
// ColorToRGB converts a DeviceN color to an RGB color.
func (_fgbb *PdfColorspaceDeviceN )ColorToRGB (color PdfColor )(PdfColor ,error ){if _fgbb .AlternateSpace ==nil {return nil ,_db .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 _fgbb .AlternateSpace .ColorToRGB (color );};func (_eeeb *PdfColorspaceDeviceGray )String ()string {return "\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079";};
// ToPdfObject returns a PDF object representation of the outline item.
func (_cegf *OutlineItem )ToPdfObject ()_ae .PdfObject {_fcfgg ,_ :=_cegf .ToPdfOutlineItem ();return _fcfgg .ToPdfObject ();};
// ImageToRGB converts CalRGB colorspace image to RGB and returns the result.
func (_dagee *PdfColorspaceCalRGB )ImageToRGB (img Image )(Image ,error ){_gabg :=_ba .NewReader (img .getBase ());_ffgg :=_afc .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),3,nil ,nil ,nil );_gadb :=_ba .NewWriter (_ffgg );
_caeeb :=_ag .Pow (2,float64 (img .BitsPerComponent ))-1;_cadaa :=make ([]uint32 ,3);var (_eaeb error ;_dfgfe ,_fgbf ,_begfe ,_cccb ,_adeg ,_bede float64 ;);for {_eaeb =_gabg .ReadSamples (_cadaa );if _eaeb ==_gdc .EOF {break ;}else if _eaeb !=nil {return img ,_eaeb ;
};_dfgfe =float64 (_cadaa [0])/_caeeb ;_fgbf =float64 (_cadaa [1])/_caeeb ;_begfe =float64 (_cadaa [2])/_caeeb ;_cccb =_dagee .Matrix [0]*_ag .Pow (_dfgfe ,_dagee .Gamma [0])+_dagee .Matrix [3]*_ag .Pow (_fgbf ,_dagee .Gamma [1])+_dagee .Matrix [6]*_ag .Pow (_begfe ,_dagee .Gamma [2]);
_adeg =_dagee .Matrix [1]*_ag .Pow (_dfgfe ,_dagee .Gamma [0])+_dagee .Matrix [4]*_ag .Pow (_fgbf ,_dagee .Gamma [1])+_dagee .Matrix [7]*_ag .Pow (_begfe ,_dagee .Gamma [2]);_bede =_dagee .Matrix [2]*_ag .Pow (_dfgfe ,_dagee .Gamma [0])+_dagee .Matrix [5]*_ag .Pow (_fgbf ,_dagee .Gamma [1])+_dagee .Matrix [8]*_ag .Pow (_begfe ,_dagee .Gamma [2]);
_dfgfe =3.240479*_cccb +-1.537150*_adeg +-0.498535*_bede ;_fgbf =-0.969256*_cccb +1.875992*_adeg +0.041556*_bede ;_begfe =0.055648*_cccb +-0.204043*_adeg +1.057311*_bede ;_dfgfe =_ag .Min (_ag .Max (_dfgfe ,0),1.0);_fgbf =_ag .Min (_ag .Max (_fgbf ,0),1.0);
_begfe =_ag .Min (_ag .Max (_begfe ,0),1.0);_cadaa [0]=uint32 (_dfgfe *_caeeb );_cadaa [1]=uint32 (_fgbf *_caeeb );_cadaa [2]=uint32 (_begfe *_caeeb );if _eaeb =_gadb .WriteSamples (_cadaa );_eaeb !=nil {return img ,_eaeb ;};};return _feagd (&_ffgg ),nil ;
};func _eccae (_ebfeg _ae .PdfObject )(*PdfPattern ,error ){_afaba :=&PdfPattern {};var _bbfbe *_ae .PdfObjectDictionary ;if _gfbde ,_aefefd :=_ae .GetIndirect (_ebfeg );_aefefd {_afaba ._ebfged =_gfbde ;_gaacb ,_daca :=_gfbde .PdfObject .(*_ae .PdfObjectDictionary );
if !_daca {_ac .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",_gfbde .PdfObject );
return nil ,_ae .ErrTypeError ;};_bbfbe =_gaacb ;}else if _gcfff ,_ecefcd :=_ae .GetStream (_ebfeg );_ecefcd {_afaba ._ebfged =_gcfff ;_bbfbe =_gcfff .PdfObjectDictionary ;}else {_ac .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",_ebfeg );
return nil ,_ae .ErrTypeError ;};_gccebc :=_bbfbe .Get ("P\u0061\u0074\u0074\u0065\u0072\u006e\u0054\u0079\u0070\u0065");if _gccebc ==nil {_ac .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 ;};_gffaef ,_fegfd :=_gccebc .(*_ae .PdfObjectInteger );if !_fegfd {_ac .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",_gccebc );
return nil ,_ae .ErrTypeError ;};if *_gffaef !=1&&*_gffaef !=2{_ac .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",*_gffaef );return nil ,_ae .ErrRangeError ;
};_afaba .PatternType =int64 (*_gffaef );switch *_gffaef {case 1:_deaf ,_cdfba :=_bfgec (_bbfbe );if _cdfba !=nil {return nil ,_cdfba ;};_deaf .PdfPattern =_afaba ;_afaba ._ebafb =_deaf ;return _afaba ,nil ;case 2:_dcgbc ,_adaf :=_fcfca (_bbfbe );if _adaf !=nil {return nil ,_adaf ;
};_dcgbc .PdfPattern =_afaba ;_afaba ._ebafb =_dcgbc ;return _afaba ,nil ;};return nil ,_db .New ("\u0075n\u006bn\u006f\u0077\u006e\u0020\u0070\u0061\u0074\u0074\u0065\u0072\u006e");};
// ToPdfObject returns the text field dictionary within an indirect object (container).
func (_ffba *PdfFieldText )ToPdfObject ()_ae .PdfObject {_ffba .PdfField .ToPdfObject ();_caac :=_ffba ._facca ;_dabdd :=_caac .PdfObject .(*_ae .PdfObjectDictionary );_dabdd .Set ("\u0046\u0054",_ae .MakeName ("\u0054\u0078"));if _ffba .DA !=nil {_dabdd .Set ("\u0044\u0041",_ffba .DA );
};if _ffba .Q !=nil {_dabdd .Set ("\u0051",_ffba .Q );};if _ffba .DS !=nil {_dabdd .Set ("\u0044\u0053",_ffba .DS );};if _ffba .RV !=nil {_dabdd .Set ("\u0052\u0056",_ffba .RV );};if _ffba .MaxLen !=nil {_dabdd .Set ("\u004d\u0061\u0078\u004c\u0065\u006e",_ffba .MaxLen );
};return _caac ;};
// PdfAnnotationLink represents Link annotations.
// (Section 12.5.6.5 p. 403).
type PdfAnnotationLink struct{*PdfAnnotation ;A _ae .PdfObject ;Dest _ae .PdfObject ;H _ae .PdfObject ;PA _ae .PdfObject ;QuadPoints _ae .PdfObject ;BS _ae .PdfObject ;_ebf *PdfAction ;_cfdf *PdfReader ;};
// ParserMetadata gets the parser metadata.
func (_aaeee *CompliancePdfReader )ParserMetadata ()_ae .ParserMetadata {if _aaeee ._bccd ==(_ae .ParserMetadata {}){_aaeee ._bccd ,_ =_aaeee ._bfcga .ParserMetadata ();};return _aaeee ._bccd ;};
// 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 (_cegba *PdfOutlineTreeNode )GetContext ()PdfModel {if _cegedc ,_fbcff :=_cegba ._aaea .(*PdfOutline );_fbcff {return _cegedc ;};if _gbceg ,_acge :=_cegba ._aaea .(*PdfOutlineItem );_acge {return _gbceg ;};_ac .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 ;};
// EncryptOptions represents encryption options for an output PDF.
type EncryptOptions struct{Permissions _ff .Permissions ;Algorithm EncryptionAlgorithm ;};
// ToPdfObject returns the PDF representation of the colorspace.
func (_cece *PdfColorspaceSpecialSeparation )ToPdfObject ()_ae .PdfObject {_fdfed :=_ae .MakeArray (_ae .MakeName ("\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e"));_fdfed .Append (_cece .ColorantName );_fdfed .Append (_cece .AlternateSpace .ToPdfObject ());
_fdfed .Append (_cece .TintTransform .ToPdfObject ());if _cece ._ddaac !=nil {_cece ._ddaac .PdfObject =_fdfed ;return _cece ._ddaac ;};return _fdfed ;};
// 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 (_cdef *_ed .Document )error ;};
// Height returns the height of `rect`.
func (_gabbc *PdfRectangle )Height ()float64 {return _ag .Abs (_gabbc .Ury -_gabbc .Lly )};
// GetNumComponents returns the number of input color components, i.e. that are input to the tint transform.
func (_eeae *PdfColorspaceDeviceN )GetNumComponents ()int {return _eeae .ColorantNames .Len ()};
// NewPdfAnnotationRichMedia returns a new rich media annotation.
func NewPdfAnnotationRichMedia ()*PdfAnnotationRichMedia {_fee :=NewPdfAnnotation ();_edgf :=&PdfAnnotationRichMedia {};_edgf .PdfAnnotation =_fee ;_fee .SetContext (_edgf );return _edgf ;};
// Hasher is the interface that wraps the basic Write method.
type Hasher interface{Write (_ggcff []byte )(_gbae int ,_baccb error );};
// 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 ,_bgg .SimpleEncoder ,error ){_cbfe ,_cfecd :=_decf (basefont );if _cfecd !=nil {return nil ,nil ,_cfecd ;};_edage ,_becgf :=_cbfe .Encoder ().(_bgg .SimpleEncoder );
if !_becgf {return nil ,nil ,_f .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",_cbfe .Encoder ());
};_gcgd :=make (map[rune ]_bgg .GlyphName );for _bedeb :=range alphabet {if _ ,_deff :=_edage .RuneToCharcode (_bedeb );!_deff {_ ,_bgde :=_cbfe ._gabf .Read (_bedeb );if !_bgde {_ac .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",_bedeb ,_bedeb );
continue ;};_ceddfd ,_bgde :=_bgg .RuneToGlyph (_bedeb );if !_bgde {_ac .Log .Debug ("\u006eo\u0020\u0067\u006c\u0079\u0070\u0068\u0020\u0066\u006f\u0072\u0020r\u0075\u006e\u0065\u0020\u0025\u0023\u0078\u003d\u0025\u0071",_bedeb ,_bedeb );continue ;};if len (_gcgd )>=255{return nil ,nil ,_db .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");
};_gcgd [_bedeb ]=_ceddfd ;};};var (_fgdgd []_bgg .CharCode ;_ebbff []_bgg .CharCode ;);for _gadbb :=_bgg .CharCode (1);_gadbb <=0xff;_gadbb ++{_cfbe ,_dcfe :=_edage .CharcodeToRune (_gadbb );if !_dcfe {_fgdgd =append (_fgdgd ,_gadbb );continue ;};if _ ,_dcfe =alphabet [_cfbe ];
!_dcfe {_ebbff =append (_ebbff ,_gadbb );};};_cafag :=append (_fgdgd ,_ebbff ...);if len (_cafag )< len (_gcgd ){return nil ,nil ,_f .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 (_gcgd ),len (_cafag ));
};_aggf :=make ([]rune ,0,len (_gcgd ));for _ccbc :=range _gcgd {_aggf =append (_aggf ,_ccbc );};_cf .Slice (_aggf ,func (_efgd ,_edbf int )bool {return _aggf [_efgd ]< _aggf [_edbf ]});_gfcbc :=make (map[_bgg .CharCode ]_bgg .GlyphName ,len (_aggf ));
for _ ,_ggaa :=range _aggf {_babc :=_cafag [0];_cafag =_cafag [1:];_gfcbc [_babc ]=_gcgd [_ggaa ];};_edage =_bgg .ApplyDifferences (_edage ,_gfcbc );_cbfe .SetEncoder (_edage );return &PdfFont {_dabg :&_cbfe },_edage ,nil ;};func _adfee (_cdfa _ae .PdfObject )(*PdfPageResourcesColorspaces ,error ){_eecg :=&PdfPageResourcesColorspaces {};
if _cbgfc ,_aeeba :=_cdfa .(*_ae .PdfIndirectObject );_aeeba {_eecg ._ccfef =_cbgfc ;_cdfa =_cbgfc .PdfObject ;};_cfcc ,_dgfa :=_ae .GetDict (_cdfa );if !_dgfa {return nil ,_db .New ("\u0043\u0053\u0020at\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");
};_eecg .Names =[]string {};_eecg .Colorspaces =map[string ]PdfColorspace {};for _ ,_aecb :=range _cfcc .Keys (){_fbedb :=_cfcc .Get (_aecb );_eecg .Names =append (_eecg .Names ,string (_aecb ));_defcb ,_ecee :=NewPdfColorspaceFromPdfObject (_fbedb );if _ecee !=nil {return nil ,_ecee ;
};_eecg .Colorspaces [string (_aecb )]=_defcb ;};return _eecg ,nil ;};
// NewPdfColorLab returns a new Lab color.
func NewPdfColorLab (l ,a ,b float64 )*PdfColorLab {_beabe :=PdfColorLab {l ,a ,b };return &_beabe };func _edagad ()_d .Time {_cadgd .Lock ();defer _cadgd .Unlock ();return _fabd };
// 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 (_ecdgf *PdfFieldButton )GetType ()ButtonType {_bgdgg :=ButtonTypeCheckbox ;if _ecdgf .Ff !=nil {if (uint32 (*_ecdgf .Ff )&FieldFlagPushbutton .Mask ())> 0{_bgdgg =ButtonTypePush ;}else if (uint32 (*_ecdgf .Ff )&FieldFlagRadio .Mask ())> 0{_bgdgg =ButtonTypeRadio ;
};};return _bgdgg ;};
// ContentStreamWrapper wraps the Page's contentstream into q ... Q blocks.
type ContentStreamWrapper interface{WrapContentStream (_cecdd *PdfPage )error ;};
// MergePageWith appends page content to source Pdf file page content.
func (_fdag *PdfAppender )MergePageWith (pageNum int ,page *PdfPage )error {_aeab :=pageNum -1;var _cegd *PdfPage ;for _ebge ,_deeb :=range _fdag ._eabf {if _ebge ==_aeab {_cegd =_deeb ;};};if _cegd ==nil {return _f .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 _cegd ._egbbg !=nil &&_cegd ._egbbg .GetParser ()==_fdag ._afad ._bfcga {_cegd =_cegd .Duplicate ();_fdag ._eabf [_aeab ]=_cegd ;};page =page .Duplicate ();_gabdf (page );_fdda :=_fbbf (_cegd );_abaf :=_fbbf (page );_bacb :=make (map[_ae .PdfObjectName ]_ae .PdfObjectName );
for _ddfg :=range _abaf {if _ ,_dcdf :=_fdda [_ddfg ];_dcdf {for _ebdf :=1;true ;_ebdf ++{_begac :=_ae .PdfObjectName (string (_ddfg )+_bg .Itoa (_ebdf ));if _ ,_efcd :=_fdda [_begac ];!_efcd {_bacb [_ddfg ]=_begac ;break ;};};};};_gfgb ,_aeag :=page .GetContentStreams ();
if _aeag !=nil {return _aeag ;};_gcgfe ,_aeag :=_cegd .GetContentStreams ();if _aeag !=nil {return _aeag ;};for _ccf ,_efd :=range _gfgb {for _eed ,_adagc :=range _bacb {_efd =_eg .Replace (_efd ,"\u002f"+string (_eed ),"\u002f"+string (_adagc ),-1);};
_gfgb [_ccf ]=_efd ;};_gcgfe =append (_gcgfe ,_gfgb ...);if _ffd :=_cegd .SetContentStreams (_gcgfe ,_ae .NewFlateEncoder ());_ffd !=nil {return _ffd ;};_cegd ._dgfec =append (_cegd ._dgfec ,page ._dgfec ...);if _cegd .Resources ==nil {_cegd .Resources =NewPdfPageResources ();
};if page .Resources !=nil {_cegd .Resources .Font =_fdag .mergeResources (_cegd .Resources .Font ,page .Resources .Font ,_bacb );_cegd .Resources .XObject =_fdag .mergeResources (_cegd .Resources .XObject ,page .Resources .XObject ,_bacb );_cegd .Resources .Properties =_fdag .mergeResources (_cegd .Resources .Properties ,page .Resources .Properties ,_bacb );
if _cegd .Resources .ProcSet ==nil {_cegd .Resources .ProcSet =page .Resources .ProcSet ;};_cegd .Resources .Shading =_fdag .mergeResources (_cegd .Resources .Shading ,page .Resources .Shading ,_bacb );_cegd .Resources .ExtGState =_fdag .mergeResources (_cegd .Resources .ExtGState ,page .Resources .ExtGState ,_bacb );
};_bacbf ,_aeag :=_cegd .GetMediaBox ();if _aeag !=nil {return _aeag ;};_fdca ,_aeag :=page .GetMediaBox ();if _aeag !=nil {return _aeag ;};var _aaab bool ;if _bacbf .Llx > _fdca .Llx {_bacbf .Llx =_fdca .Llx ;_aaab =true ;};if _bacbf .Lly > _fdca .Lly {_bacbf .Lly =_fdca .Lly ;
_aaab =true ;};if _bacbf .Urx < _fdca .Urx {_bacbf .Urx =_fdca .Urx ;_aaab =true ;};if _bacbf .Ury < _fdca .Ury {_bacbf .Ury =_fdca .Ury ;_aaab =true ;};if _aaab {_cegd .MediaBox =_bacbf ;};return nil ;};
// SetAlpha sets the alpha layer for the image.
func (_bacca *Image )SetAlpha (alpha []byte ){_bacca ._bbba =alpha };
// 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 ;_ggde *_ae .PdfIndirectObject ;};func (_dafe Image )getBase ()_afc .ImageBase {return _afc .NewImageBase (int (_dafe .Width ),int (_dafe .Height ),int (_dafe .BitsPerComponent ),_dafe .ColorComponents ,_dafe .Data ,_dafe ._bbba ,_dafe ._fdae );
};
// 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 _ae .PdfObjectArray )(*PdfRectangle ,error ){_ebdac :=PdfRectangle {};if arr .Len ()!=4{return nil ,_db .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 _abbdgf error ;_ebdac .Llx ,_abbdgf =_ae .GetNumberAsFloat (arr .Get (0));if _abbdgf !=nil {return nil ,_abbdgf ;};_ebdac .Lly ,_abbdgf =_ae .GetNumberAsFloat (arr .Get (1));if _abbdgf !=nil {return nil ,_abbdgf ;};_ebdac .Urx ,_abbdgf =_ae .GetNumberAsFloat (arr .Get (2));
if _abbdgf !=nil {return nil ,_abbdgf ;};_ebdac .Ury ,_abbdgf =_ae .GetNumberAsFloat (arr .Get (3));if _abbdgf !=nil {return nil ,_abbdgf ;};return &_ebdac ,nil ;};
// NewPdfAnnotationWatermark returns a new watermark annotation.
func NewPdfAnnotationWatermark ()*PdfAnnotationWatermark {_degd :=NewPdfAnnotation ();_ceg :=&PdfAnnotationWatermark {};_ceg .PdfAnnotation =_degd ;_degd .SetContext (_ceg );return _ceg ;};
// SetImage updates XObject Image with new image data.
func (_ggbf *XObjectImage )SetImage (img *Image ,cs PdfColorspace )error {_ggbf .Filter .UpdateParams (img .GetParamsDict ());_ddcde ,_ccbg :=_ggbf .Filter .EncodeBytes (img .Data );if _ccbg !=nil {return _ccbg ;};_ggbf .Stream =_ddcde ;_edgga :=img .Width ;
_ggbf .Width =&_edgga ;_cafge :=img .Height ;_ggbf .Height =&_cafge ;_fcgfg :=img .BitsPerComponent ;_ggbf .BitsPerComponent =&_fcgfg ;if cs ==nil {if img .ColorComponents ==1{_ggbf .ColorSpace =NewPdfColorspaceDeviceGray ();}else if img .ColorComponents ==3{_ggbf .ColorSpace =NewPdfColorspaceDeviceRGB ();
}else if img .ColorComponents ==4{_ggbf .ColorSpace =NewPdfColorspaceDeviceCMYK ();}else {return _db .New ("c\u006fl\u006f\u0072\u0073\u0070\u0061\u0063\u0065\u0020u\u006e\u0064\u0065\u0066in\u0065\u0064");};}else {_ggbf .ColorSpace =cs ;};return nil ;
};
// PdfColorspaceLab is a L*, a*, b* 3 component colorspace.
type PdfColorspaceLab struct{WhitePoint []float64 ;BlackPoint []float64 ;Range []float64 ;_bccg *_ae .PdfIndirectObject ;};
// GetRuneMetrics returns the character metrics for the specified rune.
// A bool flag is returned to indicate whether or not the entry was found.
func (_bbcd pdfCIDFontType2 )GetRuneMetrics (r rune )(_cb .CharMetrics ,bool ){_bbge ,_acdf :=_bbcd ._acae [r ];if !_acdf {_ccac ,_gbba :=_ae .GetInt (_bbcd .DW );if !_gbba {return _cb .CharMetrics {},false ;};_bbge =int (*_ccac );};return _cb .CharMetrics {Wx :float64 (_bbge )},true ;
};
// 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 (_beabbc *PdfPage )Size ()(float64 ,float64 ,error ){_egeb ,_acaca :=_beabbc .GetMediaBox ();if _acaca !=nil {return 0,0,_acaca ;};_fbgc ,_agfgc :=_egeb .Width (),_egeb .Height ();_agffg ,_acaca :=_beabbc .GetRotate ();if _acaca !=nil {_ac .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",_acaca .Error ());
};if _badg :=_agffg ;_badg %360!=0&&_badg %90==0{if _daec :=(360+_badg %360)%360;_daec ==90||_daec ==270{_fbgc ,_agfgc =_agfgc ,_fbgc ;};};return _fbgc ,_agfgc ,nil ;};func (_dgcdg *PdfReader )newPdfAnnotationMarkupFromDict (_bbdb *_ae .PdfObjectDictionary )(*PdfAnnotationMarkup ,error ){_fafb :=&PdfAnnotationMarkup {};
if _dbae :=_bbdb .Get ("\u0054");_dbae !=nil {_fafb .T =_dbae ;};if _cggd :=_bbdb .Get ("\u0050\u006f\u0070u\u0070");_cggd !=nil {_ecd ,_ddgd :=_cggd .(*_ae .PdfIndirectObject );if !_ddgd {if _ ,_fdf :=_cggd .(*_ae .PdfObjectNull );!_fdf {return nil ,_db .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 {_ggfa ,_ddgdd :=_dgcdg .newPdfAnnotationFromIndirectObject (_ecd );if _ddgdd !=nil {return nil ,_ddgdd ;};if _ggfa !=nil {_bfe ,_afcb :=_ggfa ._ggd .(*PdfAnnotationPopup );if !_afcb {return nil ,_db .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");
};_fafb .Popup =_bfe ;};};};if _abde :=_bbdb .Get ("\u0043\u0041");_abde !=nil {_fafb .CA =_abde ;};if _fcbb :=_bbdb .Get ("\u0052\u0043");_fcbb !=nil {_fafb .RC =_fcbb ;};if _gcb :=_bbdb .Get ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065");
_gcb !=nil {_fafb .CreationDate =_gcb ;};if _dbcd :=_bbdb .Get ("\u0049\u0052\u0054");_dbcd !=nil {_fafb .IRT =_dbcd ;};if _cggdf :=_bbdb .Get ("\u0053\u0075\u0062\u006a");_cggdf !=nil {_fafb .Subj =_cggdf ;};if _gdcb :=_bbdb .Get ("\u0052\u0054");_gdcb !=nil {_fafb .RT =_gdcb ;
};if _gbcg :=_bbdb .Get ("\u0049\u0054");_gbcg !=nil {_fafb .IT =_gbcg ;};if _gcff :=_bbdb .Get ("\u0045\u0078\u0044\u0061\u0074\u0061");_gcff !=nil {_fafb .ExData =_gcff ;};return _fafb ,nil ;};
// SetOptimizer sets the optimizer to optimize PDF before writing.
func (_gfcfcd *PdfWriter )SetOptimizer (optimizer Optimizer ){_gfcfcd ._ffefg =optimizer };
// ToPdfObject implements interface PdfModel.
func (_aece *PdfActionURI )ToPdfObject ()_ae .PdfObject {_aece .PdfAction .ToPdfObject ();_fgb :=_aece ._cbe ;_dcg :=_fgb .PdfObject .(*_ae .PdfObjectDictionary );_dcg .SetIfNotNil ("\u0053",_ae .MakeName (string (ActionTypeURI )));_dcg .SetIfNotNil ("\u0055\u0052\u0049",_aece .URI );
_dcg .SetIfNotNil ("\u0049\u0073\u004da\u0070",_aece .IsMap );return _fgb ;};
// NewPdfColorspaceDeviceN returns an initialized PdfColorspaceDeviceN.
func NewPdfColorspaceDeviceN ()*PdfColorspaceDeviceN {_gddgg :=&PdfColorspaceDeviceN {};return _gddgg ;};
// DecodeArray returns the range of color component values in the Lab colorspace.
func (_ffag *PdfColorspaceLab )DecodeArray ()[]float64 {_gbdd :=[]float64 {0,100};if _ffag .Range !=nil &&len (_ffag .Range )==4{_gbdd =append (_gbdd ,_ffag .Range ...);}else {_gbdd =append (_gbdd ,-100,100,-100,100);};return _gbdd ;};
// 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 ;_gfdfbf *_ae .PdfObjectDictionary ;};
// PdfBorderEffect represents a PDF border effect.
type PdfBorderEffect struct{S *BorderEffect ;I *float64 ;};
// ToUnicode returns the name of the font's "ToUnicode" field if there is one, or "" if there isn't.
func (_eafg *PdfFont )ToUnicode ()string {if _eafg .baseFields ()._ebfdc ==nil {return "";};return _eafg .baseFields ()._ebfdc .Name ();};
// GetDescent returns the Descent of the font `descriptor`.
func (_egddf *PdfFontDescriptor )GetDescent ()(float64 ,error ){return _ae .GetNumberAsFloat (_egddf .Descent );};
// 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 (_egef *PdfColorspaceDeviceCMYK )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=4{return nil ,_db .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_cddd :=vals [0];if _cddd < 0.0||_cddd > 1.0{_ac .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_cddd );
return nil ,ErrColorOutOfRange ;};_efga :=vals [1];if _efga < 0.0||_efga > 1.0{_ac .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_efga );return nil ,ErrColorOutOfRange ;
};_gad :=vals [2];if _gad < 0.0||_gad > 1.0{_ac .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_gad );return nil ,ErrColorOutOfRange ;};_aaabg :=vals [3];if _aaabg < 0.0||_aaabg > 1.0{_ac .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_aaabg );
return nil ,ErrColorOutOfRange ;};_fbef :=NewPdfColorDeviceCMYK (_cddd ,_efga ,_gad ,_aaabg );return _fbef ,nil ;};
// SetContext set the sub annotation (context).
func (_agdec *PdfShading )SetContext (ctx PdfModel ){_agdec ._ffgbf =ctx };
// K returns the value of the key component of the color.
func (_ddcc *PdfColorDeviceCMYK )K ()float64 {return _ddcc [3]};
// GetContentStreamObjs returns a slice of PDF objects containing the content
// streams of the page.
func (_dgdb *PdfPage )GetContentStreamObjs ()[]_ae .PdfObject {if _dgdb .Contents ==nil {return nil ;};_egbdfc :=_ae .TraceToDirectObject (_dgdb .Contents );if _bccgc ,_egced :=_egbdfc .(*_ae .PdfObjectArray );_egced {return _bccgc .Elements ();};return []_ae .PdfObject {_egbdfc };
};func (_ada *PdfReader )newPdfActionSoundFromDict (_cee *_ae .PdfObjectDictionary )(*PdfActionSound ,error ){return &PdfActionSound {Sound :_cee .Get ("\u0053\u006f\u0075n\u0064"),Volume :_cee .Get ("\u0056\u006f\u006c\u0075\u006d\u0065"),Synchronous :_cee .Get ("S\u0079\u006e\u0063\u0068\u0072\u006f\u006e\u006f\u0075\u0073"),Repeat :_cee .Get ("\u0052\u0065\u0070\u0065\u0061\u0074"),Mix :_cee .Get ("\u004d\u0069\u0078")},nil ;
};
// ToPdfObject returns colorspace in a PDF object format [name stream]
func (_gccf *PdfColorspaceICCBased )ToPdfObject ()_ae .PdfObject {_cecce :=&_ae .PdfObjectArray {};_cecce .Append (_ae .MakeName ("\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064"));var _egbbd *_ae .PdfObjectStream ;if _gccf ._egefc !=nil {_egbbd =_gccf ._egefc ;
}else {_egbbd =&_ae .PdfObjectStream {};};_egfbc :=_ae .MakeDict ();_egfbc .Set ("\u004e",_ae .MakeInteger (int64 (_gccf .N )));if _gccf .Alternate !=nil {_egfbc .Set ("\u0041l\u0074\u0065\u0072\u006e\u0061\u0074e",_gccf .Alternate .ToPdfObject ());};if _gccf .Metadata !=nil {_egfbc .Set ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061",_gccf .Metadata );
};if _gccf .Range !=nil {var _fcdb []_ae .PdfObject ;for _ ,_cege :=range _gccf .Range {_fcdb =append (_fcdb ,_ae .MakeFloat (_cege ));};_egfbc .Set ("\u0052\u0061\u006eg\u0065",_ae .MakeArray (_fcdb ...));};_egfbc .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_ae .MakeInteger (int64 (len (_gccf .Data ))));
_egbbd .Stream =_gccf .Data ;_egbbd .PdfObjectDictionary =_egfbc ;_cecce .Append (_egbbd );if _gccf ._debg !=nil {_gccf ._debg .PdfObject =_cecce ;return _gccf ._debg ;};return _cecce ;};
// SetPdfKeywords sets the Keywords attribute of the output PDF.
func SetPdfKeywords (keywords string ){_cadgd .Lock ();defer _cadgd .Unlock ();_ffbad =keywords };func (_cfga *pdfFontSimple )updateStandard14Font (){_fgdbb ,_ggcf :=_cfga .Encoder ().(_bgg .SimpleEncoder );if !_ggcf {_ac .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",_cfga .Encoder (),_cfga );
return ;};_cdade :=_fgdbb .Charcodes ();_cfga ._deaed =make (map[_bgg .CharCode ]float64 ,len (_cdade ));for _ ,_efafe :=range _cdade {_gabcg ,_ :=_fgdbb .CharcodeToRune (_efafe );_cgfa ,_ :=_cfga ._gabf .Read (_gabcg );_cfga ._deaed [_efafe ]=_cgfa .Wx ;
};};func _agbff (_ebcad *_ae .PdfObjectDictionary ,_ecgcf *fontCommon )(*pdfCIDFontType2 ,error ){if _ecgcf ._adce !="\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032"{_ac .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",_ecgcf );
return nil ,_ae .ErrRangeError ;};_gcgc :=_ebda (_ecgcf );_abcff ,_caaab :=_ae .GetDict (_ebcad .Get ("\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f"));if !_caaab {_ac .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",_ecgcf );
return nil ,ErrRequiredAttributeMissing ;};_gcgc .CIDSystemInfo =_abcff ;_gcgc .DW =_ebcad .Get ("\u0044\u0057");_gcgc .W =_ebcad .Get ("\u0057");_gcgc .DW2 =_ebcad .Get ("\u0044\u0057\u0032");_gcgc .W2 =_ebcad .Get ("\u0057\u0032");_gcgc .CIDToGIDMap =_ebcad .Get ("C\u0049\u0044\u0054\u006f\u0047\u0049\u0044\u004d\u0061\u0070");
_gcgc ._bddbc =1000.0;if _bcgd ,_bffec :=_ae .GetNumberAsFloat (_gcgc .DW );_bffec ==nil {_gcgc ._bddbc =_bcgd ;};_dgbaf ,_abgg :=_cdfgf (_gcgc .W );if _abgg !=nil {return nil ,_abgg ;};if _dgbaf ==nil {_dgbaf =map[_bgg .CharCode ]float64 {};};_gcgc ._fcbce =_dgbaf ;
return _gcgc ,nil ;};func (_acfbb *PdfWriter )setDocumentIDs (_bgegb ,_afece string ){_acfbb ._dcdbd =_ae .MakeArray (_ae .MakeHexString (_bgegb ),_ae .MakeHexString (_afece ));};
// ToPdfObject converts date to a PDF string object.
func (_cbcbcg *PdfDate )ToPdfObject ()_ae .PdfObject {_gdaag :=_f .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",_cbcbcg ._edbbd ,_cbcbcg ._cedda ,_cbcbcg ._ddefe ,_cbcbcg ._bedgeg ,_cbcbcg ._fbcga ,_cbcbcg ._eabef ,_cbcbcg ._eaedg ,_cbcbcg ._adaec ,_cbcbcg ._befea );
return _ae .MakeString (_gdaag );};func (_acaef *pdfFontSimple )baseFields ()*fontCommon {return &_acaef .fontCommon };
// PdfColorspaceDeviceGray represents a grayscale colorspace.
type PdfColorspaceDeviceGray struct{};
// Read reads an image and loads into a new Image object with an RGB
// colormap and 8 bits per component.
func (_dadfb DefaultImageHandler )Read (reader _gdc .Reader )(*Image ,error ){_cecbf ,_ ,_bbfe :=_de .Decode (reader );if _bbfe !=nil {_ac .Log .Debug ("\u0045\u0072\u0072or\u0020\u0064\u0065\u0063\u006f\u0064\u0069\u006e\u0067\u0020\u0066\u0069\u006c\u0065\u003a\u0020\u0025\u0073",_bbfe );
return nil ,_bbfe ;};return _dadfb .NewImageFromGoImage (_cecbf );};
// ToPdfObject returns the PDF representation of the shading dictionary.
func (_gbgcb *PdfShadingType4 )ToPdfObject ()_ae .PdfObject {_gbgcb .PdfShading .ToPdfObject ();_gffga ,_aefd :=_gbgcb .getShadingDict ();if _aefd !=nil {_ac .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 _gbgcb .BitsPerCoordinate !=nil {_gffga .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065",_gbgcb .BitsPerCoordinate );};if _gbgcb .BitsPerComponent !=nil {_gffga .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_gbgcb .BitsPerComponent );
};if _gbgcb .BitsPerFlag !=nil {_gffga .Set ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067",_gbgcb .BitsPerFlag );};if _gbgcb .Decode !=nil {_gffga .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_gbgcb .Decode );};if _gbgcb .Function !=nil {if len (_gbgcb .Function )==1{_gffga .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_gbgcb .Function [0].ToPdfObject ());
}else {_fggdfd :=_ae .MakeArray ();for _ ,_ceabb :=range _gbgcb .Function {_fggdfd .Append (_ceabb .ToPdfObject ());};_gffga .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_fggdfd );};};return _gbgcb ._dcdgda ;};
// 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 ;};
// WatermarkImageOptions contains options for configuring the watermark process.
type WatermarkImageOptions struct{Alpha float64 ;FitToWidth bool ;PreserveAspectRatio bool ;};
// 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 (_ceab int ,_efacf *PdfPage )error ;func (_dggg *PdfReader )newPdfActionMovieFromDict (_bfdd *_ae .PdfObjectDictionary )(*PdfActionMovie ,error ){return &PdfActionMovie {Annotation :_bfdd .Get ("\u0041\u006e\u006e\u006f\u0074\u0061\u0074\u0069\u006f\u006e"),T :_bfdd .Get ("\u0054"),Operation :_bfdd .Get ("\u004fp\u0065\u0072\u0061\u0074\u0069\u006fn")},nil ;
};func _beggc (_ccgc *fontCommon )*pdfFontType3 {return &pdfFontType3 {fontCommon :*_ccgc }};
// 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 (_ebe *PdfAnnotationWidget )Field ()*PdfField {return _ebe ._bab };
// GetXObjectImageByName returns the XObjectImage with the specified name from the
// page resources, if it exists.
func (_fdbaf *PdfPageResources )GetXObjectImageByName (keyName _ae .PdfObjectName )(*XObjectImage ,error ){_bgfab ,_cefdf :=_fdbaf .GetXObjectByName (keyName );if _bgfab ==nil {return nil ,nil ;};if _cefdf !=XObjectTypeImage {return nil ,_db .New ("\u006e\u006f\u0074 \u0061\u006e\u0020\u0069\u006d\u0061\u0067\u0065");
};_edeeg ,_cdafd :=NewXObjectImageFromStream (_bgfab );if _cdafd !=nil {return nil ,_cdafd ;};return _edeeg ,nil ;};func (_fbcc *PdfAnnotationMarkup )appendToPdfDictionary (_bcbdc *_ae .PdfObjectDictionary ){_bcbdc .SetIfNotNil ("\u0054",_fbcc .T );if _fbcc .Popup !=nil {_bcbdc .Set ("\u0050\u006f\u0070u\u0070",_fbcc .Popup .ToPdfObject ());
};_bcbdc .SetIfNotNil ("\u0043\u0041",_fbcc .CA );_bcbdc .SetIfNotNil ("\u0052\u0043",_fbcc .RC );_bcbdc .SetIfNotNil ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065",_fbcc .CreationDate );_bcbdc .SetIfNotNil ("\u0049\u0052\u0054",_fbcc .IRT );
_bcbdc .SetIfNotNil ("\u0053\u0075\u0062\u006a",_fbcc .Subj );_bcbdc .SetIfNotNil ("\u0052\u0054",_fbcc .RT );_bcbdc .SetIfNotNil ("\u0049\u0054",_fbcc .IT );_bcbdc .SetIfNotNil ("\u0045\u0078\u0044\u0061\u0074\u0061",_fbcc .ExData );};
// 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 (_efac *PdfFieldButton )SetType (btype ButtonType ){_dacb :=uint32 (0);if _efac .Ff !=nil {_dacb =uint32 (*_efac .Ff );};switch btype {case ButtonTypePush :_dacb |=FieldFlagPushbutton .Mask ();case ButtonTypeRadio :_dacb |=FieldFlagRadio .Mask ();
};_efac .Ff =_ae .MakeInteger (int64 (_dacb ));};
// GetNumComponents returns the number of color components (1 for Indexed).
func (_gac *PdfColorspaceSpecialIndexed )GetNumComponents ()int {return 1};func _fbfeb (_ddcgd *_ae .PdfObjectDictionary )(*PdfShadingType3 ,error ){_dgadgf :=PdfShadingType3 {};_ccec :=_ddcgd .Get ("\u0043\u006f\u006f\u0072\u0064\u0073");if _ccec ==nil {_ac .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 ;};_dceb ,_efadc :=_ccec .(*_ae .PdfObjectArray );if !_efadc {_ac .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",_ccec );
return nil ,_ae .ErrTypeError ;};if _dceb .Len ()!=6{_ac .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",_dceb .Len ());return nil ,ErrInvalidAttribute ;
};_dgadgf .Coords =_dceb ;if _eagc :=_ddcgd .Get ("\u0044\u006f\u006d\u0061\u0069\u006e");_eagc !=nil {_eagc =_ae .TraceToDirectObject (_eagc );_gbcc ,_dfcfb :=_eagc .(*_ae .PdfObjectArray );if !_dfcfb {_ac .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",_eagc );
return nil ,_ae .ErrTypeError ;};_dgadgf .Domain =_gbcc ;};_ccec =_ddcgd .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");if _ccec ==nil {_ac .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 ;};_dgadgf .Function =[]PdfFunction {};if _bgdea ,_bbcbc :=_ccec .(*_ae .PdfObjectArray );_bbcbc {for _ ,_fagff :=range _bgdea .Elements (){_bdbgc ,_badce :=_gdbef (_fagff );if _badce !=nil {_ac .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",_badce );
return nil ,_badce ;};_dgadgf .Function =append (_dgadgf .Function ,_bdbgc );};}else {_baecc ,_ddeab :=_gdbef (_ccec );if _ddeab !=nil {_ac .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",_ddeab );
return nil ,_ddeab ;};_dgadgf .Function =append (_dgadgf .Function ,_baecc );};if _cfcff :=_ddcgd .Get ("\u0045\u0078\u0074\u0065\u006e\u0064");_cfcff !=nil {_cfcff =_ae .TraceToDirectObject (_cfcff );_daeaa ,_gaad :=_cfcff .(*_ae .PdfObjectArray );if !_gaad {_ac .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",_cfcff );
return nil ,_ae .ErrTypeError ;};if _daeaa .Len ()!=2{_ac .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",_daeaa .Len ());return nil ,ErrInvalidAttribute ;
};_dgadgf .Extend =_daeaa ;};return &_dgadgf ,nil ;};
// 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 _ae .StreamEncoder )(*XObjectImage ,error ){if encoder ==nil {encoder =_ae .NewRawEncoder ();};encoder .UpdateParams (img .GetParamsDict ());_aagaef ,_afeab :=encoder .EncodeBytes (img .Data );
if _afeab !=nil {_ac .Log .Debug ("\u0045\u0072\u0072or\u0020\u0077\u0069\u0074\u0068\u0020\u0065\u006e\u0063\u006f\u0064\u0069\u006e\u0067\u003a\u0020\u0025\u0076",_afeab );return nil ,_afeab ;};_egdbc :=NewXObjectImage ();_becbg :=img .Width ;_cbfcd :=img .Height ;
_egdbc .Width =&_becbg ;_egdbc .Height =&_cbfcd ;_fcbef :=img .BitsPerComponent ;_egdbc .BitsPerComponent =&_fcbef ;_egdbc .Filter =encoder ;_egdbc .Stream =_aagaef ;if cs ==nil {if img .ColorComponents ==1{_egdbc .ColorSpace =NewPdfColorspaceDeviceGray ();
if img .BitsPerComponent ==16{switch encoder .(type ){case *_ae .DCTEncoder :_egdbc .ColorSpace =NewPdfColorspaceDeviceRGB ();_fcbef =8;_egdbc .BitsPerComponent =&_fcbef ;};};}else if img .ColorComponents ==3{_egdbc .ColorSpace =NewPdfColorspaceDeviceRGB ();
}else if img .ColorComponents ==4{switch encoder .(type ){case *_ae .DCTEncoder :_egdbc .ColorSpace =NewPdfColorspaceDeviceRGB ();default:_egdbc .ColorSpace =NewPdfColorspaceDeviceCMYK ();};}else {return nil ,_db .New ("c\u006fl\u006f\u0072\u0073\u0070\u0061\u0063\u0065\u0020u\u006e\u0064\u0065\u0066in\u0065\u0064");
};}else {_egdbc .ColorSpace =cs ;};if len (img ._bbba )!=0{_efee :=NewXObjectImage ();_efee .Filter =encoder ;_bbgc ,_ggaea :=encoder .EncodeBytes (img ._bbba );if _ggaea !=nil {_ac .Log .Debug ("\u0045\u0072\u0072or\u0020\u0077\u0069\u0074\u0068\u0020\u0065\u006e\u0063\u006f\u0064\u0069\u006e\u0067\u003a\u0020\u0025\u0076",_ggaea );
return nil ,_ggaea ;};_efee .Stream =_bbgc ;_efee .BitsPerComponent =_egdbc .BitsPerComponent ;_efee .Width =&img .Width ;_efee .Height =&img .Height ;_efee .ColorSpace =NewPdfColorspaceDeviceGray ();_egdbc .SMask =_efee .ToPdfObject ();}else {_egdbc .SMask =xobjIn .SMask ;
_egdbc .ImageMask =xobjIn .ImageMask ;if _egdbc .ColorSpace .GetNumComponents ()==1{_fbeaa (_egdbc );};};return _egdbc ,nil ;};func (_bbad *PdfColorspaceSpecialPattern )String ()string {return "\u0050a\u0074\u0074\u0065\u0072\u006e";};
// NewPdfAnnotationPopup returns a new popup annotation.
func NewPdfAnnotationPopup ()*PdfAnnotationPopup {_fcfb :=NewPdfAnnotation ();_bcbd :=&PdfAnnotationPopup {};_bcbd .PdfAnnotation =_fcfb ;_fcfb .SetContext (_bcbd );return _bcbd ;};
// ToPdfObject returns the PDF representation of the colorspace.
func (_dbffd *PdfPageResourcesColorspaces )ToPdfObject ()_ae .PdfObject {_bedae :=_ae .MakeDict ();for _ ,_dcgga :=range _dbffd .Names {_bedae .Set (_ae .PdfObjectName (_dcgga ),_dbffd .Colorspaces [_dcgga ].ToPdfObject ());};if _dbffd ._ccfef !=nil {_dbffd ._ccfef .PdfObject =_bedae ;
return _dbffd ._ccfef ;};return _bedae ;};func (_dafb *PdfWriter )updateObjectNumbers (){_abbfa :=_dafb .ObjNumOffset ;_gacbf :=0;for _ ,_ffagd :=range _dafb ._edbe {_fbgf :=int64 (_gacbf +1+_abbfa );_eadga :=true ;if _dafb ._dffad {if _dbbgf ,_cgddf :=_dafb ._fbfcdf [_ffagd ];
_cgddf {_fbgf =_dbbgf ;_eadga =false ;};};switch _agaaf :=_ffagd .(type ){case *_ae .PdfIndirectObject :_agaaf .ObjectNumber =_fbgf ;_agaaf .GenerationNumber =0;case *_ae .PdfObjectStream :_agaaf .ObjectNumber =_fbgf ;_agaaf .GenerationNumber =0;case *_ae .PdfObjectStreams :_agaaf .ObjectNumber =_fbgf ;
_agaaf .GenerationNumber =0;default:_ac .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",_agaaf );continue ;
};if _eadga {_gacbf ++;};};_fdfga :=func (_gafae _ae .PdfObject )int64 {switch _agdab :=_gafae .(type ){case *_ae .PdfIndirectObject :return _agdab .ObjectNumber ;case *_ae .PdfObjectStream :return _agdab .ObjectNumber ;case *_ae .PdfObjectStreams :return _agdab .ObjectNumber ;
};return 0;};_cf .SliceStable (_dafb ._edbe ,func (_egeeb ,_bffda int )bool {return _fdfga (_dafb ._edbe [_egeeb ])< _fdfga (_dafb ._edbe [_bffda ])});};
// 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 (_cbcfd *PdfPage )SetContentStreams (cStreams []string ,encoder _ae .StreamEncoder )error {if len (cStreams )==0{_cbcfd .Contents =nil ;return nil ;};if encoder ==nil {encoder =_ae .NewRawEncoder ();};var _adefa []*_ae .PdfObjectStream ;for _ ,_abbce :=range cStreams {_bgfg :=&_ae .PdfObjectStream {};
_fafbf :=encoder .MakeStreamDict ();_dfaef ,_gdea :=encoder .EncodeBytes ([]byte (_abbce ));if _gdea !=nil {return _gdea ;};_fafbf .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_ae .MakeInteger (int64 (len (_dfaef ))));_bgfg .PdfObjectDictionary =_fafbf ;
_bgfg .Stream =_dfaef ;_adefa =append (_adefa ,_bgfg );};if len (_adefa )==1{_cbcfd .Contents =_adefa [0];}else {_efgfa :=_ae .MakeArray ();for _ ,_cfdg :=range _adefa {_efgfa .Append (_cfdg );};_cbcfd .Contents =_efgfa ;};return nil ;};
// FieldAppearanceGenerator generates appearance stream for a given field.
type FieldAppearanceGenerator interface{ContentStreamWrapper ;GenerateAppearanceDict (_deage *PdfAcroForm ,_aeegd *PdfField ,_fcba *PdfAnnotationWidget )(*_ae .PdfObjectDictionary ,error );};
// GetNumComponents returns the number of color components of the colorspace device.
// Returns 3 for a CalRGB device.
func (_geda *PdfColorspaceCalRGB )GetNumComponents ()int {return 3};
// NewPdfActionHide returns a new "hide" action.
func NewPdfActionHide ()*PdfActionHide {_cad :=NewPdfAction ();_dcd :=&PdfActionHide {};_dcd .PdfAction =_cad ;_cad .SetContext (_dcd );return _dcd ;};
// ToInteger convert to an integer format.
func (_efaa *PdfColorDeviceGray )ToInteger (bits int )uint32 {_gbd :=_ag .Pow (2,float64 (bits ))-1;return uint32 (_gbd *_efaa .Val ());};
// NewPdfAnnotationPolygon returns a new polygon annotation.
func NewPdfAnnotationPolygon ()*PdfAnnotationPolygon {_ege :=NewPdfAnnotation ();_bgge :=&PdfAnnotationPolygon {};_bgge .PdfAnnotation =_ege ;_bgge .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_ege .SetContext (_bgge );return _bgge ;};
// GetRuneMetrics returns the character metrics for the rune.
// A bool flag is returned to indicate whether or not the entry was found.
func (_afed pdfFontSimple )GetRuneMetrics (r rune )(_cb .CharMetrics ,bool ){if _afed ._gabf !=nil {_cafae ,_cebaff :=_afed ._gabf .Read (r );if _cebaff {return _cafae ,true ;};};_fbbfe :=_afed .Encoder ();if _fbbfe ==nil {_ac .Log .Debug ("\u004e\u006f\u0020en\u0063\u006f\u0064\u0065\u0072\u0020\u0066\u006f\u0072\u0020\u0066\u006f\u006e\u0074\u0073\u003d\u0025\u0073",_afed );
return _cb .CharMetrics {},false ;};_fdbc ,_eeba :=_fbbfe .RuneToCharcode (r );if !_eeba {if r !=' '{_ac .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 ,_afed );
};return _cb .CharMetrics {},false ;};_adba ,_gcec :=_afed .GetCharMetrics (_fdbc );return _adba ,_gcec ;};func (_cdcca *LTV )enable (_faag ,_gefg []*_fc .Certificate ,_efacb string )error {_efgac ,_afbfc ,_ffbcga :=_cdcca .buildCertChain (_faag ,_gefg );
if _ffbcga !=nil {return _ffbcga ;};_gddef ,_ffbcga :=_cdcca .getCerts (_efgac );if _ffbcga !=nil {return _ffbcga ;};var _aabe ,_aeaa [][]byte ;if _cdcca .OCSPClient !=nil {_aabe ,_ffbcga =_cdcca .getOCSPs (_efgac ,_afbfc );if _ffbcga !=nil {return _ffbcga ;
};};if _cdcca .CRLClient !=nil {_aeaa ,_ffbcga =_cdcca .getCRLs (_efgac );if _ffbcga !=nil {return _ffbcga ;};};_fbbe :=_cdcca ._dbggb ;_beegf ,_ffbcga :=_fbbe .addCerts (_gddef );if _ffbcga !=nil {return _ffbcga ;};_bgbea ,_ffbcga :=_fbbe .addOCSPs (_aabe );
if _ffbcga !=nil {return _ffbcga ;};_aceac ,_ffbcga :=_fbbe .addCRLs (_aeaa );if _ffbcga !=nil {return _ffbcga ;};if _efacb !=""{_fbbe .VRI [_efacb ]=&VRI {Cert :_beegf ,OCSP :_bgbea ,CRL :_aceac };};_cdcca ._gbcge .SetDSS (_fbbe );return nil ;};
// Duplicate creates a duplicate page based on the current one and returns it.
func (_beed *PdfPage )Duplicate ()*PdfPage {_gfabc :=*_beed ;_gfabc ._efgca =_ae .MakeDict ();_gfabc ._egbbg =_ae .MakeIndirectObject (_gfabc ._efgca );_gfabc ._eedgd =*_gfabc ._efgca ;return &_gfabc ;};
// 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 {_febcf ,_deagb :=NewStandard14Font (basefont );if _deagb !=nil {panic (_f .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 _febcf ;};
// SetDate sets the `M` field of the signature.
func (_cbbdg *PdfSignature )SetDate (date _d .Time ,format string ){if format ==""{format ="\u0044\u003a\u003200\u0036\u0030\u0031\u0030\u0032\u0031\u0035\u0030\u0034\u0030\u0035\u002d\u0030\u0037\u0027\u0030\u0030\u0027";};_cbbdg .M =_ae .MakeString (date .Format (format ));
};
// String returns a string describing the font descriptor.
func (_affc *PdfFontDescriptor )String ()string {var _fedfe []string ;if _affc .FontName !=nil {_fedfe =append (_fedfe ,_affc .FontName .String ());};if _affc .FontFamily !=nil {_fedfe =append (_fedfe ,_affc .FontFamily .String ());};if _affc .fontFile !=nil {_fedfe =append (_fedfe ,_affc .fontFile .String ());
};if _affc ._aebfg !=nil {_fedfe =append (_fedfe ,_affc ._aebfg .String ());};_fedfe =append (_fedfe ,_f .Sprintf ("\u0046\u006f\u006et\u0046\u0069\u006c\u0065\u0033\u003d\u0025\u0074",_affc .FontFile3 !=nil ));return _f .Sprintf ("\u0046\u004f\u004e\u0054_D\u0045\u0053\u0043\u0052\u0049\u0050\u0054\u004f\u0052\u007b\u0025\u0073\u007d",_eg .Join (_fedfe ,"\u002c\u0020"));
};
// PdfInfoTrapped specifies pdf trapped information.
type PdfInfoTrapped string ;
// NewPdfColorCalRGB returns a new CalRBG color.
func NewPdfColorCalRGB (a ,b ,c float64 )*PdfColorCalRGB {_eaefc :=PdfColorCalRGB {a ,b ,c };return &_eaefc ;};
// NewReaderForText makes a new PdfReader for an input PDF content string. For use in testing.
func NewReaderForText (txt string )*PdfReader {return &PdfReader {_agege :map[_ae .PdfObject ]struct{}{},_gdbcb :_gccbg (),_bfcga :_ae .NewParserFromString (txt )};};
// NewBorderStyle returns an initialized PdfBorderStyle.
func NewBorderStyle ()*PdfBorderStyle {_aaec :=&PdfBorderStyle {};return _aaec };
// NewPdfColorDeviceGray returns a new grayscale color based on an input grayscale float value in range [0-1].
func NewPdfColorDeviceGray (grayVal float64 )*PdfColorDeviceGray {_dcgd :=PdfColorDeviceGray (grayVal );return &_dcgd ;};
// ToPdfObject returns the PDF representation of the function.
func (_ggbe *PdfFunctionType0 )ToPdfObject ()_ae .PdfObject {if _ggbe ._aegae ==nil {_ggbe ._aegae =&_ae .PdfObjectStream {};};_bdad :=_ae .MakeDict ();_bdad .Set ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065",_ae .MakeInteger (0));
_cbbaa :=&_ae .PdfObjectArray {};for _ ,_dbdd :=range _ggbe .Domain {_cbbaa .Append (_ae .MakeFloat (_dbdd ));};_bdad .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_cbbaa );_ebdab :=&_ae .PdfObjectArray {};for _ ,_ceafb :=range _ggbe .Range {_ebdab .Append (_ae .MakeFloat (_ceafb ));
};_bdad .Set ("\u0052\u0061\u006eg\u0065",_ebdab );_efadf :=&_ae .PdfObjectArray {};for _ ,_effca :=range _ggbe .Size {_efadf .Append (_ae .MakeInteger (int64 (_effca )));};_bdad .Set ("\u0053\u0069\u007a\u0065",_efadf );_bdad .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0053\u0061\u006d\u0070\u006c\u0065",_ae .MakeInteger (int64 (_ggbe .BitsPerSample )));
if _ggbe .Order !=1{_bdad .Set ("\u004f\u0072\u0064e\u0072",_ae .MakeInteger (int64 (_ggbe .Order )));};_bdad .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_ae .MakeInteger (int64 (len (_ggbe ._ecefb ))));_ggbe ._aegae .Stream =_ggbe ._ecefb ;_ggbe ._aegae .PdfObjectDictionary =_bdad ;
return _ggbe ._aegae ;};
// ToPdfObject return the CalGray colorspace as a PDF object (name dictionary).
func (_cega *PdfColorspaceCalGray )ToPdfObject ()_ae .PdfObject {_deed :=&_ae .PdfObjectArray {};_deed .Append (_ae .MakeName ("\u0043a\u006c\u0047\u0072\u0061\u0079"));_aaee :=_ae .MakeDict ();if _cega .WhitePoint !=nil {_aaee .Set ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074",_ae .MakeArray (_ae .MakeFloat (_cega .WhitePoint [0]),_ae .MakeFloat (_cega .WhitePoint [1]),_ae .MakeFloat (_cega .WhitePoint [2])));
}else {_ac .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 _cega .BlackPoint !=nil {_aaee .Set ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074",_ae .MakeArray (_ae .MakeFloat (_cega .BlackPoint [0]),_ae .MakeFloat (_cega .BlackPoint [1]),_ae .MakeFloat (_cega .BlackPoint [2])));
};_aaee .Set ("\u0047\u0061\u006dm\u0061",_ae .MakeFloat (_cega .Gamma ));_deed .Append (_aaee );if _cega ._befdd !=nil {_cega ._befdd .PdfObject =_deed ;return _cega ._befdd ;};return _deed ;};
// ImageToRGB converts an image with samples in Separation CS to an image with samples specified in
// DeviceRGB CS.
func (_bagaa *PdfColorspaceSpecialSeparation )ImageToRGB (img Image )(Image ,error ){_dadf :=_ba .NewReader (img .getBase ());_dbaea :=_afc .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),_bagaa .AlternateSpace .GetNumComponents (),nil ,img ._bbba ,nil );
_dfe :=_ba .NewWriter (_dbaea );_ffcc :=_ag .Pow (2,float64 (img .BitsPerComponent ))-1;_ac .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");
_ac .Log .Trace ("\u0054i\u006et\u0054\u0072\u0061\u006e\u0073f\u006f\u0072m\u003a\u0020\u0025\u002b\u0076",_bagaa .TintTransform );_dddaf :=_bagaa .AlternateSpace .DecodeArray ();var (_fbbcc uint32 ;_abge error ;);for {_fbbcc ,_abge =_dadf .ReadSample ();
if _abge ==_gdc .EOF {break ;};if _abge !=nil {return img ,_abge ;};_defa :=float64 (_fbbcc )/_ffcc ;_bfcc ,_decc :=_bagaa .TintTransform .Evaluate ([]float64 {_defa });if _decc !=nil {return img ,_decc ;};for _ccffc ,_edae :=range _bfcc {_edbb :=_afc .LinearInterpolate (_edae ,_dddaf [_ccffc *2],_dddaf [_ccffc *2+1],0,1);
if _decc =_dfe .WriteSample (uint32 (_edbb *_ffcc ));_decc !=nil {return img ,_decc ;};};};return _bagaa .AlternateSpace .ImageToRGB (_feagd (&_dbaea ));};
// PdfActionGoTo3DView represents a GoTo3DView action.
type PdfActionGoTo3DView struct{*PdfAction ;TA _ae .PdfObject ;V _ae .PdfObject ;};
// PdfActionTrans represents a trans action.
type PdfActionTrans struct{*PdfAction ;Trans _ae .PdfObject ;};func (_dabafg *PdfWriter )writeXRefStreams (_bbadc int ,_bbfa int64 )error {_aecd :=_bbadc +1;_dabafg ._agfeg [_aecd ]=crossReference {Type :1,ObjectNumber :_aecd ,Offset :_bbfa };_bagbc :=_aa .NewBuffer (nil );
_ddedf :=_ae .MakeArray ();for _aebbb :=0;_aebbb <=_bbadc ;{for ;_aebbb <=_bbadc ;_aebbb ++{_egaee ,_fdgff :=_dabafg ._agfeg [_aebbb ];if _fdgff &&(!_dabafg ._dffad ||_dabafg ._dffad &&(_egaee .Type ==1&&_egaee .Offset >=_dabafg ._gaffa ||_egaee .Type ==0)){break ;
};};var _acba int ;for _acba =_aebbb +1;_acba <=_bbadc ;_acba ++{_adccc ,_dbgffe :=_dabafg ._agfeg [_acba ];if _dbgffe &&(!_dabafg ._dffad ||_dabafg ._dffad &&(_adccc .Type ==1&&_adccc .Offset > _dabafg ._gaffa )){continue ;};break ;};_ddedf .Append (_ae .MakeInteger (int64 (_aebbb )),_ae .MakeInteger (int64 (_acba -_aebbb )));
for _abgag :=_aebbb ;_abgag < _acba ;_abgag ++{_dbcb :=_dabafg ._agfeg [_abgag ];switch _dbcb .Type {case 0:_fd .Write (_bagbc ,_fd .BigEndian ,byte (0));_fd .Write (_bagbc ,_fd .BigEndian ,uint32 (0));_fd .Write (_bagbc ,_fd .BigEndian ,uint16 (0xFFFF));
case 1:_fd .Write (_bagbc ,_fd .BigEndian ,byte (1));_fd .Write (_bagbc ,_fd .BigEndian ,uint32 (_dbcb .Offset ));_fd .Write (_bagbc ,_fd .BigEndian ,uint16 (_dbcb .Generation ));case 2:_fd .Write (_bagbc ,_fd .BigEndian ,byte (2));_fd .Write (_bagbc ,_fd .BigEndian ,uint32 (_dbcb .ObjectNumber ));
_fd .Write (_bagbc ,_fd .BigEndian ,uint16 (_dbcb .Index ));};};_aebbb =_acba +1;};_ggbba ,_ecddf :=_ae .MakeStream (_bagbc .Bytes (),_ae .NewFlateEncoder ());if _ecddf !=nil {return _ecddf ;};_ggbba .ObjectNumber =int64 (_aecd );_ggbba .PdfObjectDictionary .Set ("\u0054\u0079\u0070\u0065",_ae .MakeName ("\u0058\u0052\u0065\u0066"));
_ggbba .PdfObjectDictionary .Set ("\u0057",_ae .MakeArray (_ae .MakeInteger (1),_ae .MakeInteger (4),_ae .MakeInteger (2)));_ggbba .PdfObjectDictionary .Set ("\u0049\u006e\u0064e\u0078",_ddedf );_ggbba .PdfObjectDictionary .Set ("\u0053\u0069\u007a\u0065",_ae .MakeInteger (int64 (_aecd +1)));
_ggbba .PdfObjectDictionary .Set ("\u0049\u006e\u0066\u006f",_dabafg ._cbffg );_ggbba .PdfObjectDictionary .Set ("\u0052\u006f\u006f\u0074",_dabafg ._aacfc );if _dabafg ._dffad &&_dabafg ._afadc > 0{_ggbba .PdfObjectDictionary .Set ("\u0050\u0072\u0065\u0076",_ae .MakeInteger (_dabafg ._afadc ));
};if _dabafg ._ecedf !=nil {_ggbba .Set ("\u0045n\u0063\u0072\u0079\u0070\u0074",_dabafg ._feddfa );};if _dabafg ._dcdbd ==nil &&_dabafg ._fddgb !=""&&_dabafg ._dbdab !=""{_dabafg ._dcdbd =_ae .MakeArray (_ae .MakeHexString (_dabafg ._fddgb ),_ae .MakeHexString (_dabafg ._dbdab ));
};if _dabafg ._dcdbd !=nil {_ac .Log .Trace ("\u0049d\u0073\u003a\u0020\u0025\u0073",_dabafg ._dcdbd );_ggbba .Set ("\u0049\u0044",_dabafg ._dcdbd );};_dabafg .writeObject (int (_ggbba .ObjectNumber ),_ggbba );return nil ;};func (_geag *PdfWriter )checkPendingObjects (){for _fbedd ,_eegbed :=range _geag ._fage {if !_geag .hasObject (_fbedd ){_ac .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",_fbedd ,_fbedd ,_fbedd );
for _ ,_eecga :=range _eegbed {for _ ,_gacf :=range _eecga .Keys (){_gbbca :=_eecga .Get (_gacf );if _gbbca ==_fbedd {_ac .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");
_eecga .Set (_gacf ,_ae .MakeNull ());break ;};};};};};};
// 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 ;_ebafb PdfModel ;_ebfged _ae .PdfObject ;};
// 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 (_faegf *PdfWriter )SetRotation (rotate int64 )error {_fcegd ,_bdebd :=_ae .GetDict (_faegf ._efcgc );if !_bdebd {return ErrTypeCheck ;};_fcegd .Set ("\u0052\u006f\u0074\u0061\u0074\u0065",_ae .MakeInteger (rotate ));return nil ;};
// ToPdfObject returns the PdfFontDescriptor as a PDF dictionary inside an indirect object.
func (_aeefc *PdfFontDescriptor )ToPdfObject ()_ae .PdfObject {_bgad :=_ae .MakeDict ();if _aeefc ._dcfaf ==nil {_aeefc ._dcfaf =&_ae .PdfIndirectObject {};};_aeefc ._dcfaf .PdfObject =_bgad ;_bgad .Set ("\u0054\u0079\u0070\u0065",_ae .MakeName ("\u0046\u006f\u006e\u0074\u0044\u0065\u0073\u0063\u0072i\u0070\u0074\u006f\u0072"));
if _aeefc .FontName !=nil {_bgad .Set ("\u0046\u006f\u006e\u0074\u004e\u0061\u006d\u0065",_aeefc .FontName );};if _aeefc .FontFamily !=nil {_bgad .Set ("\u0046\u006f\u006e\u0074\u0046\u0061\u006d\u0069\u006c\u0079",_aeefc .FontFamily );};if _aeefc .FontStretch !=nil {_bgad .Set ("F\u006f\u006e\u0074\u0053\u0074\u0072\u0065\u0074\u0063\u0068",_aeefc .FontStretch );
};if _aeefc .FontWeight !=nil {_bgad .Set ("\u0046\u006f\u006e\u0074\u0057\u0065\u0069\u0067\u0068\u0074",_aeefc .FontWeight );};if _aeefc .Flags !=nil {_bgad .Set ("\u0046\u006c\u0061g\u0073",_aeefc .Flags );};if _aeefc .FontBBox !=nil {_bgad .Set ("\u0046\u006f\u006e\u0074\u0042\u0042\u006f\u0078",_aeefc .FontBBox );
};if _aeefc .ItalicAngle !=nil {_bgad .Set ("I\u0074\u0061\u006c\u0069\u0063\u0041\u006e\u0067\u006c\u0065",_aeefc .ItalicAngle );};if _aeefc .Ascent !=nil {_bgad .Set ("\u0041\u0073\u0063\u0065\u006e\u0074",_aeefc .Ascent );};if _aeefc .Descent !=nil {_bgad .Set ("\u0044e\u0073\u0063\u0065\u006e\u0074",_aeefc .Descent );
};if _aeefc .Leading !=nil {_bgad .Set ("\u004ce\u0061\u0064\u0069\u006e\u0067",_aeefc .Leading );};if _aeefc .CapHeight !=nil {_bgad .Set ("\u0043a\u0070\u0048\u0065\u0069\u0067\u0068t",_aeefc .CapHeight );};if _aeefc .XHeight !=nil {_bgad .Set ("\u0058H\u0065\u0069\u0067\u0068\u0074",_aeefc .XHeight );
};if _aeefc .StemV !=nil {_bgad .Set ("\u0053\u0074\u0065m\u0056",_aeefc .StemV );};if _aeefc .StemH !=nil {_bgad .Set ("\u0053\u0074\u0065m\u0048",_aeefc .StemH );};if _aeefc .AvgWidth !=nil {_bgad .Set ("\u0041\u0076\u0067\u0057\u0069\u0064\u0074\u0068",_aeefc .AvgWidth );
};if _aeefc .MaxWidth !=nil {_bgad .Set ("\u004d\u0061\u0078\u0057\u0069\u0064\u0074\u0068",_aeefc .MaxWidth );};if _aeefc .MissingWidth !=nil {_bgad .Set ("\u004d\u0069\u0073s\u0069\u006e\u0067\u0057\u0069\u0064\u0074\u0068",_aeefc .MissingWidth );};if _aeefc .FontFile !=nil {_bgad .Set ("\u0046\u006f\u006e\u0074\u0046\u0069\u006c\u0065",_aeefc .FontFile );
};if _aeefc .FontFile2 !=nil {_bgad .Set ("\u0046o\u006e\u0074\u0046\u0069\u006c\u00652",_aeefc .FontFile2 );};if _aeefc .FontFile3 !=nil {_bgad .Set ("\u0046o\u006e\u0074\u0046\u0069\u006c\u00653",_aeefc .FontFile3 );};if _aeefc .CharSet !=nil {_bgad .Set ("\u0043h\u0061\u0072\u0053\u0065\u0074",_aeefc .CharSet );
};if _aeefc .Style !=nil {_bgad .Set ("\u0046\u006f\u006e\u0074\u004e\u0061\u006d\u0065",_aeefc .FontName );};if _aeefc .Lang !=nil {_bgad .Set ("\u004c\u0061\u006e\u0067",_aeefc .Lang );};if _aeefc .FD !=nil {_bgad .Set ("\u0046\u0044",_aeefc .FD );};
if _aeefc .CIDSet !=nil {_bgad .Set ("\u0043\u0049\u0044\u0053\u0065\u0074",_aeefc .CIDSet );};return _aeefc ._dcfaf ;};
// ToPdfObject converts colorspace to a PDF object. [/Indexed base hival lookup]
func (_dcee *PdfColorspaceSpecialIndexed )ToPdfObject ()_ae .PdfObject {_bedge :=_ae .MakeArray (_ae .MakeName ("\u0049n\u0064\u0065\u0078\u0065\u0064"));_bedge .Append (_dcee .Base .ToPdfObject ());_bedge .Append (_ae .MakeInteger (int64 (_dcee .HiVal )));
_bedge .Append (_dcee .Lookup );if _dcee ._edeb !=nil {_dcee ._edeb .PdfObject =_bedge ;return _dcee ._edeb ;};return _bedge ;};
// ImageToRGB converts an Image in a given PdfColorspace to an RGB image.
func (_eaaeg *PdfColorspaceDeviceN )ImageToRGB (img Image )(Image ,error ){_eefd :=_ba .NewReader (img .getBase ());_dbad :=_afc .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),img .ColorComponents ,nil ,img ._bbba ,img ._fdae );
_gaef :=_ba .NewWriter (_dbad );_bgag :=_ag .Pow (2,float64 (img .BitsPerComponent ))-1;_becgc :=_eaaeg .GetNumComponents ();_gfaec :=make ([]uint32 ,_becgc );_aaggd :=make ([]float64 ,_becgc );for {_fabfd :=_eefd .ReadSamples (_gfaec );if _fabfd ==_gdc .EOF {break ;
}else if _fabfd !=nil {return img ,_fabfd ;};for _fgfe :=0;_fgfe < _becgc ;_fgfe ++{_dfceb :=float64 (_gfaec [_fgfe ])/_bgag ;_aaggd [_fgfe ]=_dfceb ;};_fddcb ,_fabfd :=_eaaeg .TintTransform .Evaluate (_aaggd );if _fabfd !=nil {return img ,_fabfd ;};for _ ,_cage :=range _fddcb {_cage =_ag .Min (_ag .Max (0,_cage ),1.0);
if _fabfd =_gaef .WriteSample (uint32 (_cage *_bgag ));_fabfd !=nil {return img ,_fabfd ;};};};return _eaaeg .AlternateSpace .ImageToRGB (_feagd (&_dbad ));};
// 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 *_ae .PdfObjectString ;Q *_ae .PdfObjectInteger ;DS *_ae .PdfObjectString ;RV _ae .PdfObject ;};
// 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 ){_bfaga ,_gbbae :=_af .Open (filePath );if _gbbae !=nil {_ac .Log .Debug ("\u0045\u0052\u0052OR\u003a\u0020\u006f\u0070\u0065\u006e\u0069\u006e\u0067\u0020\u0066\u0069\u006c\u0065\u003a\u0020\u0025\u0076",_gbbae );
return nil ,_gbbae ;};defer _bfaga .Close ();return NewCompositePdfFontFromTTF (_bfaga );};
// ColorFromFloats returns a new PdfColor based on the input slice of color
// components. The slice should contain a single element.
func (_gefd *PdfColorspaceSpecialSeparation )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=1{return nil ,_db .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_adab :=vals [0];_gbac :=[]float64 {_adab };_cabfe ,_cbda :=_gefd .TintTransform .Evaluate (_gbac );
if _cbda !=nil {_ac .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",_cbda );_ac .Log .Trace ("\u0054\u0069\u006e\u0074 t\u0072\u0061\u006e\u0073\u0066\u006f\u0072\u006d\u003a\u0020\u0025\u002b\u0076",_gefd .TintTransform );
return nil ,_cbda ;};_ac .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",_cabfe ,_gefd .AlternateSpace );
_fagda ,_cbda :=_gefd .AlternateSpace .ColorFromFloats (_cabfe );if _cbda !=nil {_ac .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",_cbda );
return nil ,_cbda ;};return _fagda ,nil ;};
// GetContainingPdfObject implements interface PdfModel.
func (_cc *PdfAction )GetContainingPdfObject ()_ae .PdfObject {return _cc ._cbe };
// PdfActionGoTo represents a GoTo action.
type PdfActionGoTo struct{*PdfAction ;D _ae .PdfObject ;};
// NewPdfAnnotationScreen returns a new screen annotation.
func NewPdfAnnotationScreen ()*PdfAnnotationScreen {_eeg :=NewPdfAnnotation ();_eec :=&PdfAnnotationScreen {};_eec .PdfAnnotation =_eeg ;_eeg .SetContext (_eec );return _eec ;};
// ToPdfObject implements interface PdfModel.
func (_ccfga *PdfSignatureReference )ToPdfObject ()_ae .PdfObject {_feaed :=_ae .MakeDict ();_feaed .SetIfNotNil ("\u0054\u0079\u0070\u0065",_ccfga .Type );_feaed .SetIfNotNil ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u004d\u0065\u0074\u0068\u006f\u0064",_ccfga .TransformMethod );
_feaed .SetIfNotNil ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u0050\u0061\u0072\u0061\u006d\u0073",_ccfga .TransformParams );_feaed .SetIfNotNil ("\u0044\u0061\u0074\u0061",_ccfga .Data );_feaed .SetIfNotNil ("\u0044\u0069\u0067e\u0073\u0074\u004d\u0065\u0074\u0068\u006f\u0064",_ccfga .DigestMethod );
return _feaed ;};func _ceaec (_feab []*_ae .PdfObjectStream )*_ae .PdfObjectArray {if len (_feab )==0{return nil ;};_beabed :=make ([]_ae .PdfObject ,0,len (_feab ));for _ ,_fdadd :=range _feab {_beabed =append (_beabed ,_fdadd );};return _ae .MakeArray (_beabed ...);
};func (_cbcbc *PdfReader )flattenFieldsWithOpts (_feca bool ,_cbff FieldAppearanceGenerator ,_addce *FieldFlattenOpts )error {if _addce ==nil {_addce =&FieldFlattenOpts {};};var _feeeg bool ;_dfgb :=map[*PdfAnnotation ]bool {};{var _aefef []*PdfField ;
_afdaf :=_cbcbc .AcroForm ;if _afdaf !=nil {if _addce .FilterFunc !=nil {_aefef =_afdaf .filteredFields (_addce .FilterFunc ,true );_feeeg =_afdaf .Fields !=nil &&len (*_afdaf .Fields )> 0;}else {_aefef =_afdaf .AllFields ();};};for _ ,_edbab :=range _aefef {for _ ,_edfgd :=range _edbab .Annotations {_dfgb [_edfgd .PdfAnnotation ]=_edbab .V !=nil ;
if _cbff !=nil {_dbbb ,_egda :=_cbff .GenerateAppearanceDict (_afdaf ,_edbab ,_edfgd );if _egda !=nil {return _egda ;};_edfgd .AP =_dbbb ;};};};};if _feca {for _ ,_efde :=range _cbcbc .PageList {_degg ,_dfcc :=_efde .GetAnnotations ();if _dfcc !=nil {return _dfcc ;
};for _ ,_dfabd :=range _degg {_dfgb [_dfabd ]=true ;};};};for _ ,_dfff :=range _cbcbc .PageList {var _eefb []*PdfAnnotation ;if _cbff !=nil {if _cddee :=_cbff .WrapContentStream (_dfff );_cddee !=nil {return _cddee ;};};_feag ,_egccb :=_dfff .GetAnnotations ();
if _egccb !=nil {return _egccb ;};for _ ,_bcec :=range _feag {_gbfdd ,_bfcg :=_dfgb [_bcec ];if !_bfcg &&_addce .AnnotFilterFunc !=nil {if _ ,_ffac :=_bcec .GetContext ().(*PdfAnnotationWidget );!_ffac {_bfcg =_addce .AnnotFilterFunc (_bcec );};};if !_bfcg {_eefb =append (_eefb ,_bcec );
continue ;};switch _bcec .GetContext ().(type ){case *PdfAnnotationPopup :continue ;case *PdfAnnotationLink :continue ;case *PdfAnnotationProjection :continue ;};_dafg ,_dfed ,_gffgb :=_gfaa (_bcec );if _gffgb !=nil {if !_gbfdd {_ac .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 ;};_ac .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",_gffgb );
continue ;};if _dafg ==nil {continue ;};_faaf :=_dfff .Resources .GenerateXObjectName ();_dfff .Resources .SetXObjectFormByName (_faaf ,_dafg );_eeaf ,_gffgb :=_eaebe (_dafg );if _gffgb !=nil {_ac .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",_gffgb );
}else {_afdc :=_ecc .IdentityMatrix ();_afdc =_afdc .Translate (-_eeaf .Llx ,-_eeaf .Lly );_afcbd :=0.0;if _eeaf .Width ()> 0{_afcbd =_dfed .Width ()/_eeaf .Width ();};_dbbg :=0.0;if _eeaf .Height ()> 0{_dbbg =_dfed .Height ()/_eeaf .Height ();};_afdc =_afdc .Scale (_afcbd ,_dbbg );
_dfed .Transform (_afdc );};_dgdag :=_ag .Min (_dfed .Llx ,_dfed .Urx );_fafgg :=_ag .Min (_dfed .Lly ,_dfed .Ury );var _bfcd []string ;_bfcd =append (_bfcd ,"\u0071");_bfcd =append (_bfcd ,_f .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,_dgdag ,_fafgg ));
_bfcd =append (_bfcd ,_f .Sprintf ("\u002f\u0025\u0073\u0020\u0044\u006f",_faaf .String ()));_bfcd =append (_bfcd ,"\u0051");_cbbf :=_eg .Join (_bfcd ,"\u000a");_gffgb =_dfff .AppendContentStream (_cbbf );if _gffgb !=nil {return _gffgb ;};if _dafg .Resources !=nil {_eggd ,_bgcg :=_ae .GetDict (_dafg .Resources .Font );
if _bgcg {for _ ,_acedf :=range _eggd .Keys (){if !_dfff .Resources .HasFontByName (_acedf ){_dfff .Resources .SetFontByName (_acedf ,_eggd .Get (_acedf ));};};};};};if len (_eefb )> 0{_dfff ._dgfec =_eefb ;}else {_dfff ._dgfec =[]*PdfAnnotation {};};};
if !_feeeg {_cbcbc .AcroForm =nil ;};return nil ;};
// SetColorSpace sets `r` colorspace object to `colorspace`.
func (_adagg *PdfPageResources )SetColorSpace (colorspace *PdfPageResourcesColorspaces ){_adagg ._febfa =colorspace ;};func (_bceeg *PdfWriter )flushWriter ()error {if _bceeg ._fffcb ==nil {_bceeg ._fffcb =_bceeg ._dfgcc .Flush ();};return _bceeg ._fffcb ;
};func (_dggd *PdfPattern )getDict ()*_ae .PdfObjectDictionary {if _gadca ,_facfd :=_dggd ._ebfged .(*_ae .PdfIndirectObject );_facfd {_afagd ,_gbddb :=_gadca .PdfObject .(*_ae .PdfObjectDictionary );if !_gbddb {return nil ;};return _afagd ;}else if _abafc ,_gegeg :=_dggd ._ebfged .(*_ae .PdfObjectStream );
_gegeg {return _abafc .PdfObjectDictionary ;}else {_ac .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",_dggd ._ebfged );
return nil ;};};func _ddbdf (_dadag _ae .PdfObject )(string ,error ){_dadag =_ae .TraceToDirectObject (_dadag );switch _egeef :=_dadag .(type ){case *_ae .PdfObjectString :return _egeef .Str (),nil ;case *_ae .PdfObjectStream :_adfdf ,_bdfea :=_ae .DecodeStream (_egeef );
if _bdfea !=nil {return "",_bdfea ;};return string (_adfdf ),nil ;};return "",_f .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",_dadag );
};
// 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 ;
// NewPdfFilespec returns an initialized generic PDF filespec model.
func NewPdfFilespec ()*PdfFilespec {_aeccg :=&PdfFilespec {};_aeccg ._caeaag =_ae .MakeIndirectObject (_ae .MakeDict ());return _aeccg ;};
// NewPdfColorspaceDeviceCMYK returns a new CMYK32 colorspace object.
func NewPdfColorspaceDeviceCMYK ()*PdfColorspaceDeviceCMYK {return &PdfColorspaceDeviceCMYK {}};var _fedb =map[string ]string {"\u0053\u0079\u006d\u0062\u006f\u006c":"\u0053\u0079\u006d\u0062\u006f\u006c\u0045\u006e\u0063o\u0064\u0069\u006e\u0067","\u005a\u0061\u0070f\u0044\u0069\u006e\u0067\u0062\u0061\u0074\u0073":"Z\u0061p\u0066\u0044\u0069\u006e\u0067\u0062\u0061\u0074s\u0045\u006e\u0063\u006fdi\u006e\u0067"};
func _gdbef (_dfcf _ae .PdfObject )(PdfFunction ,error ){_dfcf =_ae .ResolveReference (_dfcf );if _abffg ,_dddc :=_dfcf .(*_ae .PdfObjectStream );_dddc {_cbbag :=_abffg .PdfObjectDictionary ;_daee ,_adcb :=_cbbag .Get ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065").(*_ae .PdfObjectInteger );
if !_adcb {_ac .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 ,_db .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 *_daee ==0{return _eaage (_abffg );}else if *_daee ==4{return _ebce (_abffg );}else {return nil ,_db .New ("i\u006e\u0076\u0061\u006cid\u0020f\u0075\u006e\u0063\u0074\u0069o\u006e\u0020\u0074\u0079\u0070\u0065");};}else if _gaeffe ,_cfcg :=_dfcf .(*_ae .PdfIndirectObject );
_cfcg {_beeb ,_ecggf :=_gaeffe .PdfObject .(*_ae .PdfObjectDictionary );if !_ecggf {_ac .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 ,_db .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");};_bfeb ,_ecggf :=_beeb .Get ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065").(*_ae .PdfObjectInteger );
if !_ecggf {_ac .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 ,_db .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 *_bfeb ==2{return _cgabb (_gaeffe );}else if *_bfeb ==3{return _fffbg (_gaeffe );}else {return nil ,_db .New ("i\u006e\u0076\u0061\u006cid\u0020f\u0075\u006e\u0063\u0074\u0069o\u006e\u0020\u0074\u0079\u0070\u0065");};}else if _gaggb ,_dgfb :=_dfcf .(*_ae .PdfObjectDictionary );
_dgfb {_fcagg ,_bgbab :=_gaggb .Get ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065").(*_ae .PdfObjectInteger );if !_bgbab {_ac .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 ,_db .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 *_fcagg ==2{return _cgabb (_gaggb );}else if *_fcagg ==3{return _fffbg (_gaggb );
}else {return nil ,_db .New ("i\u006e\u0076\u0061\u006cid\u0020f\u0075\u006e\u0063\u0074\u0069o\u006e\u0020\u0074\u0079\u0070\u0065");};}else {_ac .Log .Debug ("\u0046u\u006e\u0063\u0074\u0069\u006f\u006e\u0020\u0054\u0079\u0070\u0065 \u0065\u0072\u0072\u006f\u0072\u003a\u0020\u0025\u0023\u0076",_dfcf );
return nil ,_db .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};};func (_badf *PdfAcroForm )signatureFields ()[]*PdfFieldSignature {var _cgfc []*PdfFieldSignature ;for _ ,_ccca :=range _badf .AllFields (){switch _cbag :=_ccca .GetContext ().(type ){case *PdfFieldSignature :_cffd :=_cbag ;
_cgfc =append (_cgfc ,_cffd );};};return _cgfc ;};
// GetAnnotations returns the list of page annotations for `page`. If not loaded attempts to load the
// annotations, otherwise returns the loaded list.
func (_cbbea *PdfPage )GetAnnotations ()([]*PdfAnnotation ,error ){if _cbbea ._dgfec !=nil {return _cbbea ._dgfec ,nil ;};if _cbbea .Annots ==nil {_cbbea ._dgfec =[]*PdfAnnotation {};return nil ,nil ;};if _cbbea ._bceef ==nil {_cbbea ._dgfec =[]*PdfAnnotation {};
return nil ,nil ;};_bdbea ,_dedeb :=_cbbea ._bceef .loadAnnotations (_cbbea .Annots );if _dedeb !=nil {return nil ,_dedeb ;};if _bdbea ==nil {_cbbea ._dgfec =[]*PdfAnnotation {};};_cbbea ._dgfec =_bdbea ;return _cbbea ._dgfec ,nil ;};func (_dabf *PdfColorspaceSpecialSeparation )String ()string {return "\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e";
};
// NewPdfPageResourcesFromDict creates and returns a new PdfPageResources object
// from the input dictionary.
func NewPdfPageResourcesFromDict (dict *_ae .PdfObjectDictionary )(*PdfPageResources ,error ){_bbec :=NewPdfPageResources ();if _fcdcea :=dict .Get ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e");_fcdcea !=nil {_bbec .ExtGState =_fcdcea ;};if _cgcfg :=dict .Get ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065");
_cgcfg !=nil &&!_ae .IsNullObject (_cgcfg ){_bbec .ColorSpace =_cgcfg ;};if _bcfbb :=dict .Get ("\u0050a\u0074\u0074\u0065\u0072\u006e");_bcfbb !=nil {_bbec .Pattern =_bcfbb ;};if _gefb :=dict .Get ("\u0053h\u0061\u0064\u0069\u006e\u0067");_gefb !=nil {_bbec .Shading =_gefb ;
};if _dbaeaf :=dict .Get ("\u0058O\u0062\u006a\u0065\u0063\u0074");_dbaeaf !=nil {_bbec .XObject =_dbaeaf ;};if _gcdg :=_ae .ResolveReference (dict .Get ("\u0046\u006f\u006e\u0074"));_gcdg !=nil {_bbec .Font =_gcdg ;};if _fdfda :=dict .Get ("\u0050r\u006f\u0063\u0053\u0065\u0074");
_fdfda !=nil {_bbec .ProcSet =_fdfda ;};if _beadcd :=dict .Get ("\u0050\u0072\u006f\u0070\u0065\u0072\u0074\u0069\u0065\u0073");_beadcd !=nil {_bbec .Properties =_beadcd ;};return _bbec ,nil ;};
// PdfActionLaunch represents a launch action.
type PdfActionLaunch struct{*PdfAction ;F *PdfFilespec ;Win _ae .PdfObject ;Mac _ae .PdfObject ;Unix _ae .PdfObject ;NewWindow _ae .PdfObject ;};
// GetContainingPdfObject returns the container of the image object (indirect object).
func (_geegd *XObjectImage )GetContainingPdfObject ()_ae .PdfObject {return _geegd ._efaag };
// PdfShadingType1 is a Function-based shading.
type PdfShadingType1 struct{*PdfShading ;Domain *_ae .PdfObjectArray ;Matrix *_ae .PdfObjectArray ;Function []PdfFunction ;};
// ToPdfObject returns the PDF representation of the shading dictionary.
func (_egfgg *PdfShadingType3 )ToPdfObject ()_ae .PdfObject {_egfgg .PdfShading .ToPdfObject ();_affd ,_feggb :=_egfgg .getShadingDict ();if _feggb !=nil {_ac .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 _egfgg .Coords !=nil {_affd .Set ("\u0043\u006f\u006f\u0072\u0064\u0073",_egfgg .Coords );};if _egfgg .Domain !=nil {_affd .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_egfgg .Domain );};if _egfgg .Function !=nil {if len (_egfgg .Function )==1{_affd .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_egfgg .Function [0].ToPdfObject ());
}else {_fdccc :=_ae .MakeArray ();for _ ,_dafda :=range _egfgg .Function {_fdccc .Append (_dafda .ToPdfObject ());};_affd .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_fdccc );};};if _egfgg .Extend !=nil {_affd .Set ("\u0045\u0078\u0074\u0065\u006e\u0064",_egfgg .Extend );
};return _egfgg ._dcdgda ;};func (_bfaa *PdfReader )newPdfFieldSignatureFromDict (_efag *_ae .PdfObjectDictionary )(*PdfFieldSignature ,error ){_ggafe :=&PdfFieldSignature {};_cdae ,_dbbfe :=_ae .GetIndirect (_efag .Get ("\u0056"));if _dbbfe {var _cgbad error ;
_ggafe .V ,_cgbad =_bfaa .newPdfSignatureFromIndirect (_cdae );if _cgbad !=nil {return nil ,_cgbad ;};};_ggafe .Lock ,_ =_ae .GetIndirect (_efag .Get ("\u004c\u006f\u0063\u006b"));_ggafe .SV ,_ =_ae .GetIndirect (_efag .Get ("\u0053\u0056"));return _ggafe ,nil ;
};
// ToInteger convert to an integer format.
func (_ccdb *PdfColorDeviceRGB )ToInteger (bits int )[3]uint32 {_efaeg :=_ag .Pow (2,float64 (bits ))-1;return [3]uint32 {uint32 (_efaeg *_ccdb .R ()),uint32 (_efaeg *_ccdb .G ()),uint32 (_efaeg *_ccdb .B ())};};
// PdfColorPatternType3 represents a color shading pattern type 3 (Radial).
type PdfColorPatternType3 struct{Color PdfColor ;PatternName _ae .PdfObjectName ;};
// GetPageLabels returns the PageLabels entry in the PDF catalog.
// See section 12.4.2 "Page Labels" (p. 382 PDF32000_2008).
func (_gafa *PdfReader )GetPageLabels ()(_ae .PdfObject ,error ){_debcf :=_ae .ResolveReference (_gafa ._aedf .Get ("\u0050\u0061\u0067\u0065\u004c\u0061\u0062\u0065\u006c\u0073"));if _debcf ==nil {return nil ,nil ;};if !_gafa ._ffggb {_fgbbd :=_gafa .traverseObjectData (_debcf );
if _fgbbd !=nil {return nil ,_fgbbd ;};};return _debcf ,nil ;};func (_daba *PdfFilespec )getDict ()*_ae .PdfObjectDictionary {if _eafaa ,_bffba :=_daba ._caeaag .(*_ae .PdfIndirectObject );_bffba {_baad ,_cccg :=_eafaa .PdfObject .(*_ae .PdfObjectDictionary );
if !_cccg {return nil ;};return _baad ;}else if _aabf ,_gfdfgg :=_daba ._caeaag .(*_ae .PdfObjectDictionary );_gfdfgg {return _aabf ;}else {_ac .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",_daba ._caeaag );
return nil ;};};
// GetCharMetrics returns the char metrics for character code `code`.
func (_fdaf pdfCIDFontType0 )GetCharMetrics (code _bgg .CharCode )(_cb .CharMetrics ,bool ){_gbdde :=_fdaf ._bbfb ;if _dfcg ,_cefde :=_fdaf ._abbcg [code ];_cefde {_gbdde =_dfcg ;};return _cb .CharMetrics {Wx :_gbdde },true ;};func (_fgef *PdfReader )newPdfActionRenditionFromDict (_aab *_ae .PdfObjectDictionary )(*PdfActionRendition ,error ){return &PdfActionRendition {R :_aab .Get ("\u0052"),AN :_aab .Get ("\u0041\u004e"),OP :_aab .Get ("\u004f\u0050"),JS :_aab .Get ("\u004a\u0053")},nil ;
};
// ToPdfObject returns the PDF representation of the shading dictionary.
func (_cfabc *PdfShadingType7 )ToPdfObject ()_ae .PdfObject {_cfabc .PdfShading .ToPdfObject ();_dffaf ,_gaeg :=_cfabc .getShadingDict ();if _gaeg !=nil {_ac .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 _cfabc .BitsPerCoordinate !=nil {_dffaf .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065",_cfabc .BitsPerCoordinate );};if _cfabc .BitsPerComponent !=nil {_dffaf .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_cfabc .BitsPerComponent );
};if _cfabc .BitsPerFlag !=nil {_dffaf .Set ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067",_cfabc .BitsPerFlag );};if _cfabc .Decode !=nil {_dffaf .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_cfabc .Decode );};if _cfabc .Function !=nil {if len (_cfabc .Function )==1{_dffaf .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_cfabc .Function [0].ToPdfObject ());
}else {_dfdg :=_ae .MakeArray ();for _ ,_begc :=range _cfabc .Function {_dfdg .Append (_begc .ToPdfObject ());};_dffaf .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_dfdg );};};return _cfabc ._dcdgda ;};type modelManager struct{_gbed map[PdfModel ]_ae .PdfObject ;
_bdcg map[_ae .PdfObject ]PdfModel ;};
// 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 (_dagb *PdfWriter )ApplyStandard (optimizer StandardApplier ){_dagb ._bccf =optimizer };
// 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 (_gfde *PdfReader )CheckAccessRights (password []byte )(bool ,_ff .Permissions ,error ){return _gfde ._bfcga .CheckAccessRights (password );};func _afdgg ()string {_dcgg :="\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 _cfaf _aa .Buffer ;for _agba :=0;_agba < 6;_agba ++{_cfaf .WriteRune (rune (_dcgg [_dd .Intn (len (_dcgg ))]));};return _cfaf .String ();};
// HasExtGState checks if ExtGState name is available.
func (_babfa *PdfPage )HasExtGState (name _ae .PdfObjectName )bool {if _babfa .Resources ==nil {return false ;};if _babfa .Resources .ExtGState ==nil {return false ;};_bfcdg ,_ggegd :=_ae .TraceToDirectObject (_babfa .Resources .ExtGState ).(*_ae .PdfObjectDictionary );
if !_ggegd {_ac .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",_ae .TraceToDirectObject (_babfa .Resources .ExtGState ));
return false ;};_ebfcf :=_bfcdg .Get (name );_fecfb :=_ebfcf !=nil ;return _fecfb ;};
// SetAction sets the PDF action for the annotation link.
func (_bgac *PdfAnnotationLink )SetAction (action *PdfAction ){_bgac ._ebf =action ;if action ==nil {_bgac .A =nil ;};};func (_fgge *PdfReader )newPdfAnnotationPopupFromDict (_fdcg *_ae .PdfObjectDictionary )(*PdfAnnotationPopup ,error ){_dcef :=PdfAnnotationPopup {};
_dcef .Parent =_fdcg .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");_dcef .Open =_fdcg .Get ("\u004f\u0070\u0065\u006e");return &_dcef ,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";);var _ pdfFont =(*pdfCIDFontType2 )(nil );
// ToPdfObject implements interface PdfModel.
func (_aeccf *PdfAnnotationText )ToPdfObject ()_ae .PdfObject {_aeccf .PdfAnnotation .ToPdfObject ();_dggc :=_aeccf ._gcgf ;_fcbbg :=_dggc .PdfObject .(*_ae .PdfObjectDictionary );if _aeccf .PdfAnnotationMarkup !=nil {_aeccf .PdfAnnotationMarkup .appendToPdfDictionary (_fcbbg );
};_fcbbg .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ae .MakeName ("\u0054\u0065\u0078\u0074"));_fcbbg .SetIfNotNil ("\u004f\u0070\u0065\u006e",_aeccf .Open );_fcbbg .SetIfNotNil ("\u004e\u0061\u006d\u0065",_aeccf .Name );_fcbbg .SetIfNotNil ("\u0053\u0074\u0061t\u0065",_aeccf .State );
_fcbbg .SetIfNotNil ("\u0053\u0074\u0061\u0074\u0065\u004d\u006f\u0064\u0065\u006c",_aeccf .StateModel );return _dggc ;};
// SetCatalogMetadata sets the catalog metadata (XMP) stream object.
func (_bbcfa *PdfWriter )SetCatalogMetadata (meta _ae .PdfObject )error {if meta ==nil {_bbcfa ._caddd .Remove ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");return nil ;};_bedfa ,_bbggf :=_ae .GetStream (meta );if !_bbggf {return _db .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");
};_bbcfa .addObject (_bedfa );_bbcfa ._caddd .Set ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061",_bedfa );return nil ;};func (_facbd *LTV )buildCertChain (_gccd ,_gcaea []*_fc .Certificate )([]*_fc .Certificate ,map[string ]*_fc .Certificate ,error ){_ffgc :=map[string ]*_fc .Certificate {};
for _ ,_fddafd :=range _gccd {_ffgc [_fddafd .Subject .CommonName ]=_fddafd ;};_caafe :=_gccd ;for _ ,_fbgg :=range _gcaea {_adcbb :=_fbgg .Subject .CommonName ;if _ ,_dbdb :=_ffgc [_adcbb ];_dbdb {continue ;};_ffgc [_adcbb ]=_fbgg ;_caafe =append (_caafe ,_fbgg );
};if len (_caafe )==0{return nil ,nil ,ErrSignNoCertificates ;};var _fdacc error ;for _ggfgg :=_caafe [0];_ggfgg !=nil &&!_facbd .CertClient .IsCA (_ggfgg );{_acffc ,_egcfc :=_ffgc [_ggfgg .Issuer .CommonName ];if !_egcfc {if _acffc ,_fdacc =_facbd .CertClient .GetIssuer (_ggfgg );
_fdacc !=nil {_ac .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",_fdacc );
break ;};_ffgc [_ggfgg .Issuer .CommonName ]=_acffc ;_caafe =append (_caafe ,_acffc );};_ggfgg =_acffc ;};return _caafe ,_ffgc ,nil ;};
// 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 ,*_af .File ,error ){const _feedc ="\u006d\u006f\u0064\u0065\u006c\u003a\u004e\u0065\u0077\u0050\u0064f\u0052\u0065\u0061\u0064\u0065\u0072\u0046\u0072\u006f\u006dF\u0069\u006c\u0065";
_dfdcg ,_dcfcd :=_af .Open (pdfFile );if _dcfcd !=nil {return nil ,nil ,_dcfcd ;};_dfaga ,_dcfcd :=_fccgfc (_dfdcg ,opts ,true ,_feedc );if _dcfcd !=nil {_dfdcg .Close ();return nil ,nil ,_dcfcd ;};return _dfaga ,_dfdcg ,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{_bfcga *_ae .PdfParser ;_cgccc _ae .PdfObject ;_cdee *_ae .PdfIndirectObject ;_adffd *_ae .PdfObjectDictionary ;_bcaab []*_ae .PdfIndirectObject ;PageList []*PdfPage ;_gbfa int ;_aedf *_ae .PdfObjectDictionary ;_ecbe *PdfOutlineTreeNode ;
AcroForm *PdfAcroForm ;DSS *DSS ;Rotate *int64 ;_cgfad *Permissions ;_aabeg map[*PdfReader ]*PdfReader ;_afagc []*PdfReader ;_gdbcb *modelManager ;_ffggb bool ;_agege map[_ae .PdfObject ]struct{};_bgbcea _gdc .ReadSeeker ;_decgb string ;_dbeeb bool ;_bagca *ReaderOpts ;
_bafaa bool ;};
// 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 _gdc .ReadSeeker )(*PdfFont ,error ){_gdfgc ,_gcebb :=_abc .ReadAll (r );if _gcebb !=nil {_ac .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",_gcebb );
return nil ,_gcebb ;};_bdfe ,_gcebb :=_cb .TtfParse (_aa .NewReader (_gdfgc ));if _gcebb !=nil {_ac .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",_gcebb );
return nil ,_gcebb ;};_dcaeea :=&pdfCIDFontType2 {fontCommon :fontCommon {_adce :"\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032"},CIDToGIDMap :_ae .MakeName ("\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079")};if len (_bdfe .Widths )<=0{return nil ,_db .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");
};_fbcb :=1000.0/float64 (_bdfe .UnitsPerEm );_cgga :=_fbcb *float64 (_bdfe .Widths [0]);_caeaf :=make (map[rune ]int );_dgaga :=make (map[_cb .GID ]int );_beggg :=_cb .GID (len (_bdfe .Widths ));for _dbfgb ,_bffaa :=range _bdfe .Chars {if _bffaa > _beggg -1{continue ;
};_deggd :=int (_fbcb *float64 (_bdfe .Widths [_bffaa ]));_caeaf [_dbfgb ]=_deggd ;_dgaga [_bffaa ]=_deggd ;};_dcaeea ._acae =_caeaf ;_dcaeea .DW =_ae .MakeInteger (int64 (_cgga ));_abada :=_gggb (_dgaga ,uint16 (_beggg ));_dcaeea .W =_ae .MakeIndirectObject (_abada );
_fbaa :=_ae .MakeDict ();_fbaa .Set ("\u004f\u0072\u0064\u0065\u0072\u0069\u006e\u0067",_ae .MakeString ("\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079"));_fbaa .Set ("\u0052\u0065\u0067\u0069\u0073\u0074\u0072\u0079",_ae .MakeString ("\u0041\u0064\u006fb\u0065"));
_fbaa .Set ("\u0053\u0075\u0070\u0070\u006c\u0065\u006d\u0065\u006e\u0074",_ae .MakeInteger (0));_dcaeea .CIDSystemInfo =_fbaa ;_defeb :=&PdfFontDescriptor {FontName :_ae .MakeName (_bdfe .PostScriptName ),Ascent :_ae .MakeFloat (_fbcb *float64 (_bdfe .TypoAscender )),Descent :_ae .MakeFloat (_fbcb *float64 (_bdfe .TypoDescender )),CapHeight :_ae .MakeFloat (_fbcb *float64 (_bdfe .CapHeight )),FontBBox :_ae .MakeArrayFromFloats ([]float64 {_fbcb *float64 (_bdfe .Xmin ),_fbcb *float64 (_bdfe .Ymin ),_fbcb *float64 (_bdfe .Xmax ),_fbcb *float64 (_bdfe .Ymax )}),ItalicAngle :_ae .MakeFloat (_bdfe .ItalicAngle ),MissingWidth :_ae .MakeFloat (_cgga )};
_bcdg ,_gcebb :=_ae .MakeStream (_gdfgc ,_ae .NewFlateEncoder ());if _gcebb !=nil {_ac .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",_gcebb );
return nil ,_gcebb ;};_bcdg .PdfObjectDictionary .Set ("\u004ce\u006e\u0067\u0074\u0068\u0031",_ae .MakeInteger (int64 (len (_gdfgc ))));_defeb .FontFile2 =_bcdg ;if _bdfe .Bold {_defeb .StemV =_ae .MakeInteger (120);}else {_defeb .StemV =_ae .MakeInteger (70);
};_eafgaa :=_fdbaa ;if _bdfe .IsFixedPitch {_eafgaa |=_ebaf ;};if _bdfe .ItalicAngle !=0{_eafgaa |=_fggg ;};_defeb .Flags =_ae .MakeInteger (int64 (_eafgaa ));_dcaeea ._cedb =_bdfe .PostScriptName ;_dcaeea ._cafdb =_defeb ;_bfgg :=pdfFontType0 {fontCommon :fontCommon {_adce :"\u0054\u0079\u0070e\u0030",_cedb :_bdfe .PostScriptName },DescendantFont :&PdfFont {_dabg :_dcaeea },Encoding :_ae .MakeName ("\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079\u002d\u0048"),_bagdb :_bdfe .NewEncoder ()};
if len (_bdfe .Chars )> 0{_dagfg :=make (map[_abg .CharCode ]rune ,len (_bdfe .Chars ));for _baddd ,_fabaa :=range _bdfe .Chars {_aagdc :=_abg .CharCode (_fabaa );if _ccdef ,_cfce :=_dagfg [_aagdc ];!_cfce ||(_cfce &&_ccdef > _baddd ){_dagfg [_aagdc ]=_baddd ;
};};_bfgg ._ebfdc =_abg .NewToUnicodeCMap (_dagfg );};_defbd :=PdfFont {_dabg :&_bfgg };return &_defbd ,nil ;};
// ColorFromPdfObjects gets the color from a series of pdf objects (4 for cmyk).
func (_beaa *PdfColorspaceDeviceCMYK )ColorFromPdfObjects (objects []_ae .PdfObject )(PdfColor ,error ){if len (objects )!=4{return nil ,_db .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_bccb ,_gbgg :=_ae .GetNumbersAsFloat (objects );
if _gbgg !=nil {return nil ,_gbgg ;};return _beaa .ColorFromFloats (_bccb );};
// 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 ){_cfec ,_ecae :=_decf (basefont );if _ecae !=nil {return nil ,_ecae ;};if basefont !=SymbolName &&basefont !=ZapfDingbatsName {_cfec ._dead =_bgg .NewWinAnsiEncoder ();};return &PdfFont {_dabg :&_cfec },nil ;
};
// SetShadingByName sets a shading resource specified by keyName.
func (_cagag *PdfPageResources )SetShadingByName (keyName _ae .PdfObjectName ,shadingObj _ae .PdfObject )error {if _cagag .Shading ==nil {_cagag .Shading =_ae .MakeDict ();};_fgadf ,_bggaa :=_ae .GetDict (_cagag .Shading );if !_bggaa {return _ae .ErrTypeError ;
};_fgadf .Set (keyName ,shadingObj );return nil ;};func (_ddcd *DSS )addCRLs (_beda [][]byte )([]*_ae .PdfObjectStream ,error ){return _ddcd .add (&_ddcd .CRLs ,_ddcd ._abda ,_beda );};
// PdfFunction interface represents the common methods of a function in PDF.
type PdfFunction interface{Evaluate ([]float64 )([]float64 ,error );ToPdfObject ()_ae .PdfObject ;};
// ToPdfObject returns the PDF representation of the shading dictionary.
func (_aegbf *PdfShadingType6 )ToPdfObject ()_ae .PdfObject {_aegbf .PdfShading .ToPdfObject ();_ddca ,_fdfg :=_aegbf .getShadingDict ();if _fdfg !=nil {_ac .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 _aegbf .BitsPerCoordinate !=nil {_ddca .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065",_aegbf .BitsPerCoordinate );};if _aegbf .BitsPerComponent !=nil {_ddca .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_aegbf .BitsPerComponent );
};if _aegbf .BitsPerFlag !=nil {_ddca .Set ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067",_aegbf .BitsPerFlag );};if _aegbf .Decode !=nil {_ddca .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_aegbf .Decode );};if _aegbf .Function !=nil {if len (_aegbf .Function )==1{_ddca .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_aegbf .Function [0].ToPdfObject ());
}else {_gfbec :=_ae .MakeArray ();for _ ,_gfgcg :=range _aegbf .Function {_gfbec .Append (_gfgcg .ToPdfObject ());};_ddca .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_gfbec );};};return _aegbf ._dcdgda ;};func (_bebf *pdfFontType0 )bytesToCharcodes (_ffbg []byte )([]_bgg .CharCode ,bool ){if _bebf ._gbced ==nil {return nil ,false ;
};_cdgba ,_daegg :=_bebf ._gbced .BytesToCharcodes (_ffbg );if !_daegg {return nil ,false ;};_badb :=make ([]_bgg .CharCode ,len (_cdgba ));for _fdfc ,_cedae :=range _cdgba {_badb [_fdfc ]=_bgg .CharCode (_cedae );};return _badb ,true ;};func (_bgec *PdfReader )newPdfAnnotationFreeTextFromDict (_acc *_ae .PdfObjectDictionary )(*PdfAnnotationFreeText ,error ){_dfab :=PdfAnnotationFreeText {};
_cfea ,_fga :=_bgec .newPdfAnnotationMarkupFromDict (_acc );if _fga !=nil {return nil ,_fga ;};_dfab .PdfAnnotationMarkup =_cfea ;_dfab .DA =_acc .Get ("\u0044\u0041");_dfab .Q =_acc .Get ("\u0051");_dfab .RC =_acc .Get ("\u0052\u0043");_dfab .DS =_acc .Get ("\u0044\u0053");
_dfab .CL =_acc .Get ("\u0043\u004c");_dfab .IT =_acc .Get ("\u0049\u0054");_dfab .BE =_acc .Get ("\u0042\u0045");_dfab .RD =_acc .Get ("\u0052\u0044");_dfab .BS =_acc .Get ("\u0042\u0053");_dfab .LE =_acc .Get ("\u004c\u0045");return &_dfab ,nil ;};func (_fageg *PdfWriter )copyObject (_gbbgf _ae .PdfObject ,_fbddf map[_ae .PdfObject ]_ae .PdfObject ,_dbef map[_ae .PdfObject ]struct{},_agcddf bool )_ae .PdfObject {_eddeb :=!_fageg ._dffad &&_dbef !=nil ;
if _feecc ,_bbgag :=_fbddf [_gbbgf ];_bbgag {if _eddeb &&!_agcddf {delete (_dbef ,_gbbgf );};return _feecc ;};if _gbbgf ==nil {_cefeg :=_ae .MakeNull ();return _cefeg ;};_cdecgg :=_gbbgf ;switch _egddg :=_gbbgf .(type ){case *_ae .PdfObjectArray :_ddeaa :=_ae .MakeArray ();
_cdecgg =_ddeaa ;_fbddf [_gbbgf ]=_cdecgg ;for _ ,_ecgf :=range _egddg .Elements (){_ddeaa .Append (_fageg .copyObject (_ecgf ,_fbddf ,_dbef ,_agcddf ));};case *_ae .PdfObjectStreams :_gfgef :=&_ae .PdfObjectStreams {PdfObjectReference :_egddg .PdfObjectReference };
_cdecgg =_gfgef ;_fbddf [_gbbgf ]=_cdecgg ;for _ ,_debbg :=range _egddg .Elements (){_gfgef .Append (_fageg .copyObject (_debbg ,_fbddf ,_dbef ,_agcddf ));};case *_ae .PdfObjectStream :_aggfe :=&_ae .PdfObjectStream {Stream :_egddg .Stream ,PdfObjectReference :_egddg .PdfObjectReference };
_cdecgg =_aggfe ;_fbddf [_gbbgf ]=_cdecgg ;_aggfe .PdfObjectDictionary =_fageg .copyObject (_egddg .PdfObjectDictionary ,_fbddf ,_dbef ,_agcddf ).(*_ae .PdfObjectDictionary );case *_ae .PdfObjectDictionary :var _gbcdg bool ;if _eddeb &&!_agcddf {if _cbcdb ,_ :=_ae .GetNameVal (_egddg .Get ("\u0054\u0079\u0070\u0065"));
_cbcdb =="\u0050\u0061\u0067\u0065"{_ ,_bfbcb :=_fageg ._eaggg [_egddg ];_agcddf =!_bfbcb ;_gbcdg =_agcddf ;};};_gegaf :=_ae .MakeDict ();_cdecgg =_gegaf ;_fbddf [_gbbgf ]=_cdecgg ;for _ ,_acdg :=range _egddg .Keys (){_gegaf .Set (_acdg ,_fageg .copyObject (_egddg .Get (_acdg ),_fbddf ,_dbef ,_agcddf ));
};if _gbcdg {_cdecgg =_ae .MakeNull ();_agcddf =false ;};case *_ae .PdfIndirectObject :_gbfbe :=&_ae .PdfIndirectObject {PdfObjectReference :_egddg .PdfObjectReference };_cdecgg =_gbfbe ;_fbddf [_gbbgf ]=_cdecgg ;_gbfbe .PdfObject =_fageg .copyObject (_egddg .PdfObject ,_fbddf ,_dbef ,_agcddf );
case *_ae .PdfObjectString :_ebbcf :=*_egddg ;_cdecgg =&_ebbcf ;_fbddf [_gbbgf ]=_cdecgg ;case *_ae .PdfObjectName :_fgdebg :=*_egddg ;_cdecgg =&_fgdebg ;_fbddf [_gbbgf ]=_cdecgg ;case *_ae .PdfObjectNull :_cdecgg =_ae .MakeNull ();_fbddf [_gbbgf ]=_cdecgg ;
case *_ae .PdfObjectInteger :_ceeedb :=*_egddg ;_cdecgg =&_ceeedb ;_fbddf [_gbbgf ]=_cdecgg ;case *_ae .PdfObjectReference :_ecfff :=*_egddg ;_cdecgg =&_ecfff ;_fbddf [_gbbgf ]=_cdecgg ;case *_ae .PdfObjectFloat :_bddfe :=*_egddg ;_cdecgg =&_bddfe ;_fbddf [_gbbgf ]=_cdecgg ;
case *_ae .PdfObjectBool :_cfaddf :=*_egddg ;_cdecgg =&_cfaddf ;_fbddf [_gbbgf ]=_cdecgg ;case *pdfSignDictionary :_gddggg :=&pdfSignDictionary {PdfObjectDictionary :_ae .MakeDict (),_febbd :_egddg ._febbd ,_cbcbe :_egddg ._cbcbe };_cdecgg =_gddggg ;_fbddf [_gbbgf ]=_cdecgg ;
for _ ,_ccgge :=range _egddg .Keys (){_gddggg .Set (_ccgge ,_fageg .copyObject (_egddg .Get (_ccgge ),_fbddf ,_dbef ,_agcddf ));};default:_ac .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",_gbbgf );
};if _eddeb &&_agcddf {_dbef [_gbbgf ]=struct{}{};};return _cdecgg ;};func _gabdf (_bcebc *PdfPage ){_ggcca :=_gcg .GetLicenseKey ();if _ggcca !=nil &&_ggcca .IsLicensed (){return ;};_acbgc :=_ae .PdfObjectName ("\u0055\u0046\u0031");if !_bcebc .Resources .HasFontByName (_acbgc ){_bcebc .Resources .SetFontByName (_acbgc ,DefaultFont ().ToPdfObject ());
};var _eaaca []string ;_eaaca =append (_eaaca ,"\u0071");_eaaca =append (_eaaca ,"\u0042\u0054");_eaaca =append (_eaaca ,_f .Sprintf ("\u002f%\u0073\u0020\u0031\u0034\u0020\u0054f",_acbgc .String ()));_eaaca =append (_eaaca ,"\u0031\u0020\u0030\u0020\u0030\u0020\u0072\u0067");
_eaaca =append (_eaaca ,"\u0031\u0030\u0020\u0031\u0030\u0020\u0054\u0064");_gebba :="\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";
_eaaca =append (_eaaca ,_f .Sprintf ("\u0028%\u0073\u0029\u0020\u0054\u006a",_gebba ));_eaaca =append (_eaaca ,"\u0045\u0054");_eaaca =append (_eaaca ,"\u0051");_gfegc :=_eg .Join (_eaaca ,"\u000a");_bcebc .AddContentStreamByString (_gfegc );_bcebc .ToPdfObject ();
};
// NewPdfWriter initializes a new PdfWriter.
func NewPdfWriter ()PdfWriter {_cddfeb :=PdfWriter {};_cddfeb ._faecg =map[_ae .PdfObject ]struct{}{};_cddfeb ._edbe =[]_ae .PdfObject {};_cddfeb ._fage =map[_ae .PdfObject ][]*_ae .PdfObjectDictionary {};_cddfeb ._eecfg =map[_ae .PdfObject ]struct{}{};
_cddfeb ._faffe .Major =1;_cddfeb ._faffe .Minor =3;_aebdb :=_ae .MakeDict ();_fgcc :=[]struct{_edadf _ae .PdfObjectName ;_ccage string ;}{{"\u0050\u0072\u006f\u0064\u0075\u0063\u0065\u0072",_fcfe ()},{"\u0043r\u0065\u0061\u0074\u006f\u0072",_acaae ()},{"\u0041\u0075\u0074\u0068\u006f\u0072",_dddac ()},{"\u0053u\u0062\u006a\u0065\u0063\u0074",_edfed ()},{"\u0054\u0069\u0074l\u0065",_caabg ()},{"\u004b\u0065\u0079\u0077\u006f\u0072\u0064\u0073",_acedb ()}};
for _ ,_efbba :=range _fgcc {if _efbba ._ccage !=""{_aebdb .Set (_efbba ._edadf ,_ae .MakeString (_efbba ._ccage ));};};if _adbde :=_cgdeg ();!_adbde .IsZero (){if _eacga ,_fded :=NewPdfDateFromTime (_adbde );_fded ==nil {_aebdb .Set ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065",_eacga .ToPdfObject ());
};};if _dgeee :=_edagad ();!_dgeee .IsZero (){if _cffda ,_dfbcfa :=NewPdfDateFromTime (_dgeee );_dfbcfa ==nil {_aebdb .Set ("\u004do\u0064\u0044\u0061\u0074\u0065",_cffda .ToPdfObject ());};};_cced :=_ae .PdfIndirectObject {};_cced .PdfObject =_aebdb ;
_cddfeb ._cbffg =&_cced ;_cddfeb .addObject (&_cced );_dbbdc :=_ae .PdfIndirectObject {};_dfafc :=_ae .MakeDict ();_dfafc .Set ("\u0054\u0079\u0070\u0065",_ae .MakeName ("\u0043a\u0074\u0061\u006c\u006f\u0067"));_dbbdc .PdfObject =_dfafc ;_cddfeb ._aacfc =&_dbbdc ;
_cddfeb .addObject (_cddfeb ._aacfc );_efaae ,_gefgd :=_dfbdga ("\u0077");if _gefgd !=nil {_ac .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_gefgd );};_cddfeb ._afegd =_efaae ;_bbdgc :=_ae .PdfIndirectObject {};_fdbdfa :=_ae .MakeDict ();
_fdbdfa .Set ("\u0054\u0079\u0070\u0065",_ae .MakeName ("\u0050\u0061\u0067e\u0073"));_abbdea :=_ae .PdfObjectArray {};_fdbdfa .Set ("\u004b\u0069\u0064\u0073",&_abbdea );_fdbdfa .Set ("\u0043\u006f\u0075n\u0074",_ae .MakeInteger (0));_bbdgc .PdfObject =_fdbdfa ;
_cddfeb ._efcgc =&_bbdgc ;_cddfeb ._eaggg =map[_ae .PdfObject ]struct{}{};_cddfeb .addObject (_cddfeb ._efcgc );_dfafc .Set ("\u0050\u0061\u0067e\u0073",&_bbdgc );_cddfeb ._caddd =_dfafc ;_ac .Log .Trace ("\u0043\u0061\u0074\u0061\u006c\u006f\u0067\u0020\u0025\u0073",_dbbdc );
return _cddfeb ;};
// 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 (_cbca *PdfColorspaceCalRGB )ColorFromPdfObjects (objects []_ae .PdfObject )(PdfColor ,error ){if len (objects )!=3{return nil ,_db .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_agag ,_ecdg :=_ae .GetNumbersAsFloat (objects );
if _ecdg !=nil {return nil ,_ecdg ;};return _cbca .ColorFromFloats (_agag );};
// Encrypt encrypts the output file with a specified user/owner password.
func (_bgfbf *PdfWriter )Encrypt (userPass ,ownerPass []byte ,options *EncryptOptions )error {_fecb :=RC4_128bit ;if options !=nil {_fecb =options .Algorithm ;};_gbceb :=_ff .PermOwner ;if options !=nil {_gbceb =options .Permissions ;};var _bbgdg _ee .Filter ;
switch _fecb {case RC4_128bit :_bbgdg =_ee .NewFilterV2 (16);case AES_128bit :_bbgdg =_ee .NewFilterAESV2 ();case AES_256bit :_bbgdg =_ee .NewFilterAESV3 ();default:return _f .Errorf ("\u0075n\u0073\u0075\u0070\u0070o\u0072\u0074\u0065\u0064\u0020a\u006cg\u006fr\u0069\u0074\u0068\u006d\u003a\u0020\u0025v",options .Algorithm );
};_abbaf ,_ffgad ,_acdag :=_ae .PdfCryptNewEncrypt (_bbgdg ,userPass ,ownerPass ,_gbceb );if _acdag !=nil {return _acdag ;};_bgfbf ._ecedf =_abbaf ;if _ffgad .Major !=0{_bgfbf .SetVersion (_ffgad .Major ,_ffgad .Minor );};_bgfbf ._dfebg =_ffgad .Encrypt ;
_bgfbf ._fddgb ,_bgfbf ._dbdab =_ffgad .ID0 ,_ffgad .ID1 ;_dgeae :=_ae .MakeIndirectObject (_ffgad .Encrypt );_bgfbf ._feddfa =_dgeae ;_bgfbf .addObject (_dgeae );return nil ;};
// ToPdfObject returns the PDF representation of the pattern.
func (_dagc *PdfPattern )ToPdfObject ()_ae .PdfObject {_debae :=_dagc .getDict ();_debae .Set ("\u0054\u0079\u0070\u0065",_ae .MakeName ("\u0050a\u0074\u0074\u0065\u0072\u006e"));_debae .Set ("P\u0061\u0074\u0074\u0065\u0072\u006e\u0054\u0079\u0070\u0065",_ae .MakeInteger (_dagc .PatternType ));
return _dagc ._ebfged ;};func (_baaaf *LTV )getOCSPs (_afedf []*_fc .Certificate ,_edcc map[string ]*_fc .Certificate )([][]byte ,error ){_ffcdd :=make ([][]byte ,0,len (_afedf ));for _ ,_cebafa :=range _afedf {for _ ,_bfgaa :=range _cebafa .OCSPServer {if _baaaf .CertClient .IsCA (_cebafa ){continue ;
};_ecbg ,_dbafd :=_edcc [_cebafa .Issuer .CommonName ];if !_dbafd {_ac .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 ;};_ ,_ffcbf ,_dfee :=_baaaf .OCSPClient .MakeRequest (_bfgaa ,_cebafa ,_ecbg );if _dfee !=nil {_ac .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",_dfee );
continue ;};_ffcdd =append (_ffcdd ,_ffcbf );};};return _ffcdd ,nil ;};
// GetStandardApplier gets currently used StandardApplier..
func (_feaba *PdfWriter )GetStandardApplier ()StandardApplier {return _feaba ._bccf };
// PdfAnnotationSound represents Sound annotations.
// (Section 12.5.6.16).
type PdfAnnotationSound struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Sound _ae .PdfObject ;Name _ae .PdfObject ;};func (_fddgc *PdfWriter )checkCrossReferenceStream ()bool {_dccba :=_fddgc ._faffe .Major > 1||(_fddgc ._faffe .Major ==1&&_fddgc ._faffe .Minor > 4);
if _fddgc ._edgdg !=nil {_dccba =*_fddgc ._edgdg ;};return _dccba ;};type pdfFontSimple struct{fontCommon ;_adcge *_ae .PdfIndirectObject ;_deaed map[_bgg .CharCode ]float64 ;_dead _bgg .TextEncoder ;_aacd _bgg .TextEncoder ;_adegb *PdfFontDescriptor ;
// Encoding is subject to limitations that are described in 9.6.6, "Character Encoding".
// BaseFont is derived differently.
FirstChar _ae .PdfObject ;LastChar _ae .PdfObject ;Widths _ae .PdfObject ;Encoding _ae .PdfObject ;_gabf *_cb .RuneCharSafeMap ;};
// ColorFromPdfObjects returns a new PdfColor based on the input slice of color
// components. The slice should contain a single PdfObjectFloat element.
func (_afdg *PdfColorspaceSpecialIndexed )ColorFromPdfObjects (objects []_ae .PdfObject )(PdfColor ,error ){if len (objects )!=1{return nil ,_db .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_beeg ,_adbd :=_ae .GetNumbersAsFloat (objects );
if _adbd !=nil {return nil ,_adbd ;};return _afdg .ColorFromFloats (_beeg );};
// ToPdfObject implements interface PdfModel.
func (_ca *PdfAction )ToPdfObject ()_ae .PdfObject {_dba :=_ca ._cbe ;_ef :=_dba .PdfObject .(*_ae .PdfObjectDictionary );_ef .Clear ();_ef .Set ("\u0054\u0079\u0070\u0065",_ae .MakeName ("\u0041\u0063\u0074\u0069\u006f\u006e"));_ef .SetIfNotNil ("\u0053",_ca .S );
_ef .SetIfNotNil ("\u004e\u0065\u0078\u0074",_ca .Next );return _dba ;};
// GetRotate gets the inheritable rotate value, either from the page
// or a higher up page/pages struct.
func (_gaffgc *PdfPage )GetRotate ()(int64 ,error ){if _gaffgc .Rotate !=nil {return *_gaffgc .Rotate ,nil ;};_cecea :=_gaffgc .Parent ;for _cecea !=nil {_daed ,_ggcgd :=_ae .GetDict (_cecea );if !_ggcgd {return 0,_db .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 _dcacc :=_daed .Get ("\u0052\u006f\u0074\u0061\u0074\u0065");_dcacc !=nil {_dbecc ,_ccadf :=_ae .GetInt (_dcacc );if !_ccadf {return 0,_db .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0072\u006f\u0074a\u0074\u0065\u0020\u0076al\u0075\u0065");};if _dbecc !=nil {return int64 (*_dbecc ),nil ;
};return 0,_db .New ("\u0072\u006f\u0074\u0061te\u0020\u0076\u0061\u006c\u0075\u0065\u0020\u0069\u0073\u0020\u006e\u0069\u006c");};_cecea =_daed .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");};return 0,_db .New ("\u0072o\u0074a\u0074\u0065\u0020\u006e\u006ft\u0020\u0064e\u0066\u0069\u006e\u0065\u0064");
};func _gggb (_gbacf map[_cb .GID ]int ,_edde uint16 )*_ae .PdfObjectArray {_ddgc :=&_ae .PdfObjectArray {};_ceefg :=_cb .GID (_edde );for _ffebfb :=_cb .GID (0);_ffebfb < _ceefg ;{_dfdcb ,_agaf :=_gbacf [_ffebfb ];if !_agaf {_ffebfb ++;continue ;};_eeead :=_ffebfb ;
for _egaf :=_eeead +1;_egaf < _ceefg ;_egaf ++{if _gcfbf ,_ggfcb :=_gbacf [_egaf ];!_ggfcb ||_dfdcb !=_gcfbf {break ;};_eeead =_egaf ;};_ddgc .Append (_ae .MakeInteger (int64 (_ffebfb )));_ddgc .Append (_ae .MakeInteger (int64 (_eeead )));_ddgc .Append (_ae .MakeInteger (int64 (_dfdcb )));
_ffebfb =_eeead +1;};return _ddgc ;};
// Flags returns the field flags for the field accounting for any inherited flags.
func (_fffg *PdfField )Flags ()FieldFlag {var _bbed FieldFlag ;_bgbc ,_bbde :=_fffg .inherit (func (_acaad *PdfField )bool {if _acaad .Ff !=nil {_bbed =FieldFlag (*_acaad .Ff );return true ;};return false ;});if _bbde !=nil {_ac .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",_bbde );
};if !_bgbc {_ac .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 _bbed ;};func (_abgf *PdfReader )newPdfAnnotationScreenFromDict (_agge *_ae .PdfObjectDictionary )(*PdfAnnotationScreen ,error ){_gdb :=PdfAnnotationScreen {};
_gdb .T =_agge .Get ("\u0054");_gdb .MK =_agge .Get ("\u004d\u004b");_gdb .A =_agge .Get ("\u0041");_gdb .AA =_agge .Get ("\u0041\u0041");return &_gdb ,nil ;};
// PdfAnnotationMovie represents Movie annotations.
// (Section 12.5.6.17).
type PdfAnnotationMovie struct{*PdfAnnotation ;T _ae .PdfObject ;Movie _ae .PdfObject ;A _ae .PdfObject ;};
// ToPdfObject converts rectangle to a PDF object.
func (_cgdg *PdfRectangle )ToPdfObject ()_ae .PdfObject {return _ae .MakeArray (_ae .MakeFloat (_cgdg .Llx ),_ae .MakeFloat (_cgdg .Lly ),_ae .MakeFloat (_cgdg .Urx ),_ae .MakeFloat (_cgdg .Ury ));};const (TrappedUnknown PdfInfoTrapped ="\u0055n\u006b\u006e\u006f\u0077\u006e";
TrappedTrue PdfInfoTrapped ="\u0054\u0072\u0075\u0065";TrappedFalse PdfInfoTrapped ="\u0046\u0061\u006cs\u0065";);
// 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 (_abebg *PdfSignature ,_cadba Hasher ,_adegf SignatureHandlerDocMDPParams )(SignatureValidationResult ,error );};func _dgdfb (_bbgg *_ae .PdfObjectDictionary ,_bcfg *fontCommon )(*pdfFontType3 ,error ){_eaddg :=_beggc (_bcfg );_ggaeb :=_bbgg .Get ("\u0046i\u0072\u0073\u0074\u0043\u0068\u0061r");
if _ggaeb ==nil {_ggaeb =_ae .MakeInteger (0);};_eaddg .FirstChar =_ggaeb ;_ffdcc ,_edfa :=_ae .GetIntVal (_ggaeb );if !_edfa {_ac .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",_ggaeb );
return nil ,_ae .ErrTypeError ;};_aebg :=_bgg .CharCode (_ffdcc );_ggaeb =_bbgg .Get ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072");if _ggaeb ==nil {_ggaeb =_ae .MakeInteger (255);};_eaddg .LastChar =_ggaeb ;_ffdcc ,_edfa =_ae .GetIntVal (_ggaeb );
if !_edfa {_ac .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",_ggaeb );return nil ,_ae .ErrTypeError ;
};_cbdd :=_bgg .CharCode (_ffdcc );_ggaeb =_bbgg .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");if _ggaeb !=nil {_eaddg .Resources =_ggaeb ;};_ggaeb =_bbgg .Get ("\u0043h\u0061\u0072\u0050\u0072\u006f\u0063s");if _ggaeb ==nil {_ac .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",_ggaeb );
return nil ,_ae .ErrNotSupported ;};_eaddg .CharProcs =_ggaeb ;_ggaeb =_bbgg .Get ("\u0046\u006f\u006e\u0074\u004d\u0061\u0074\u0072\u0069\u0078");if _ggaeb ==nil {_ac .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",_ggaeb );
return nil ,_ae .ErrNotSupported ;};_eaddg .FontMatrix =_ggaeb ;_eaddg ._adggg =make (map[_bgg .CharCode ]float64 );_ggaeb =_bbgg .Get ("\u0057\u0069\u0064\u0074\u0068\u0073");if _ggaeb !=nil {_eaddg .Widths =_ggaeb ;_ccded ,_gbea :=_ae .GetArray (_ggaeb );
if !_gbea {_ac .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",_ggaeb );return nil ,_ae .ErrTypeError ;
};_ecda ,_dceg :=_ccded .ToFloat64Array ();if _dceg !=nil {_ac .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 ,_dceg ;};if len (_ecda )!=int (_cbdd -_aebg +1){_ac .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",_cbdd -_aebg +1,len (_ecda ));
return nil ,_ae .ErrRangeError ;};_agaeg ,_gbea :=_ae .GetArray (_eaddg .FontMatrix );if !_gbea {_ac .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",_agaeg );
return nil ,_dceg ;};_dfdb ,_dceg :=_agaeg .ToFloat64Array ();if _dceg !=nil {_ac .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 ,_dceg ;};_faca :=_ecc .NewMatrix (_dfdb [0],_dfdb [1],_dfdb [2],_dfdb [3],_dfdb [4],_dfdb [5]);for _addee ,_bbfge :=range _ecda {_fcbfa ,_ :=_faca .Transform (_bbfge ,_bbfge );_eaddg ._adggg [_aebg +_bgg .CharCode (_addee )]=_fcbfa ;};};_eaddg .Encoding =_ae .TraceToDirectObject (_bbgg .Get ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067"));
_fcdcb :=_bbgg .Get ("\u0054o\u0055\u006e\u0069\u0063\u006f\u0064e");if _fcdcb !=nil {_eaddg ._dgea =_ae .TraceToDirectObject (_fcdcb );_gcce ,_fddcd :=_dcbf (_eaddg ._dgea ,&_eaddg .fontCommon );if _fddcd !=nil {return nil ,_fddcd ;};_eaddg ._ebfdc =_gcce ;
};if _afdb :=_eaddg ._ebfdc ;_afdb !=nil {_eaddg ._debad =_bgg .NewCMapEncoder ("",nil ,_afdb );}else {_eaddg ._debad =_bgg .NewPdfDocEncoder ();};return _eaddg ,nil ;};func _ebgef (_cebc _ae .PdfObject )(*PdfColorspaceSpecialSeparation ,error ){_dgefd :=NewPdfColorspaceSpecialSeparation ();
if _fcce ,_adec :=_cebc .(*_ae .PdfIndirectObject );_adec {_dgefd ._ddaac =_fcce ;};_cebc =_ae .TraceToDirectObject (_cebc );_cabf ,_dbege :=_cebc .(*_ae .PdfObjectArray );if !_dbege {return nil ,_f .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 _cabf .Len ()!=4{return nil ,_f .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");};_cebc =_cabf .Get (0);
_babga ,_dbege :=_cebc .(*_ae .PdfObjectName );if !_dbege {return nil ,_f .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 *_babga !="\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e"{return nil ,_f .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");
};_cebc =_cabf .Get (1);_babga ,_dbege =_cebc .(*_ae .PdfObjectName );if !_dbege {return nil ,_f .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");
};_dgefd .ColorantName =_babga ;_cebc =_cabf .Get (2);_cagbb ,_fdbgf :=NewPdfColorspaceFromPdfObject (_cebc );if _fdbgf !=nil {return nil ,_fdbgf ;};_dgefd .AlternateSpace =_cagbb ;_gde ,_fdbgf :=_gdbef (_cabf .Get (3));if _fdbgf !=nil {return nil ,_fdbgf ;
};_dgefd .TintTransform =_gde ;return _dgefd ,nil ;};func (_eeacg *PdfWriter )setHashIDs (_dafec _b .Hash )error {_aacc :=_dafec .Sum (nil );if _eeacg ._fddgb ==""{_eeacg ._fddgb =_g .EncodeToString (_aacc [:8]);};_eeacg .setDocumentIDs (_eeacg ._fddgb ,_g .EncodeToString (_aacc [8:]));
return nil ;};
// ToPdfObject implements interface PdfModel.
func (_fba *PdfAnnotationTrapNet )ToPdfObject ()_ae .PdfObject {_fba .PdfAnnotation .ToPdfObject ();_gffg :=_fba ._gcgf ;_cdcbb :=_gffg .PdfObject .(*_ae .PdfObjectDictionary );_cdcbb .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ae .MakeName ("\u0054r\u0061\u0070\u004e\u0065\u0074"));
return _gffg ;};func _fbbbae (_fcca *_ae .PdfObjectDictionary )(*PdfShadingType2 ,error ){_fedaa :=PdfShadingType2 {};_feffc :=_fcca .Get ("\u0043\u006f\u006f\u0072\u0064\u0073");if _feffc ==nil {_ac .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 ;};_efbgc ,_deddf :=_feffc .(*_ae .PdfObjectArray );if !_deddf {_ac .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",_feffc );
return nil ,_db .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};if _efbgc .Len ()!=4{_ac .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",_efbgc .Len ());
return nil ,_db .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0061\u0074\u0074\u0072i\u0062\u0075\u0074\u0065");};_fedaa .Coords =_efbgc ;if _bedab :=_fcca .Get ("\u0044\u006f\u006d\u0061\u0069\u006e");_bedab !=nil {_bedab =_ae .TraceToDirectObject (_bedab );
_cabae ,_dbfc :=_bedab .(*_ae .PdfObjectArray );if !_dbfc {_ac .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",_bedab );return nil ,_db .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");
};_fedaa .Domain =_cabae ;};_feffc =_fcca .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");if _feffc ==nil {_ac .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 ;};_fedaa .Function =[]PdfFunction {};if _gfag ,_faffdd :=_feffc .(*_ae .PdfObjectArray );_faffdd {for _ ,_ecbfac :=range _gfag .Elements (){_ccfae ,_ccgda :=_gdbef (_ecbfac );if _ccgda !=nil {_ac .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",_ccgda );
return nil ,_ccgda ;};_fedaa .Function =append (_fedaa .Function ,_ccfae );};}else {_cfadd ,_fbage :=_gdbef (_feffc );if _fbage !=nil {_ac .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",_fbage );
return nil ,_fbage ;};_fedaa .Function =append (_fedaa .Function ,_cfadd );};if _addbg :=_fcca .Get ("\u0045\u0078\u0074\u0065\u006e\u0064");_addbg !=nil {_addbg =_ae .TraceToDirectObject (_addbg );_fbddd ,_ddcgf :=_addbg .(*_ae .PdfObjectArray );if !_ddcgf {_ac .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",_addbg );
return nil ,_ae .ErrTypeError ;};if _fbddd .Len ()!=2{_ac .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",_fbddd .Len ());return nil ,ErrInvalidAttribute ;
};_fedaa .Extend =_fbddd ;};return &_fedaa ,nil ;};
// 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 (_decab int ,_eacgf *PdfPage );func _cgabb (_bcfec _ae .PdfObject )(*PdfFunctionType2 ,error ){_baffd :=&PdfFunctionType2 {};var _dcecf *_ae .PdfObjectDictionary ;if _acbc ,_fgbeb :=_bcfec .(*_ae .PdfIndirectObject );_fgbeb {_bgcde ,_dafa :=_acbc .PdfObject .(*_ae .PdfObjectDictionary );
if !_dafa {return nil ,_db .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_baffd ._ggde =_acbc ;_dcecf =_bgcde ;}else if _gbece ,_cdfeg :=_bcfec .(*_ae .PdfObjectDictionary );_cdfeg {_dcecf =_gbece ;}else {return nil ,_db .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");
};_ac .Log .Trace ("\u0046U\u004e\u0043\u0032\u003a\u0020\u0025s",_dcecf .String ());_acgfg ,_eededd :=_ae .TraceToDirectObject (_dcecf .Get ("\u0044\u006f\u006d\u0061\u0069\u006e")).(*_ae .PdfObjectArray );if !_eededd {_ac .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");
return nil ,_db .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 _acgfg .Len ()< 0||_acgfg .Len ()%2!=0{_ac .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u0072\u0061\u006e\u0067e\u0020\u0069\u006e\u0076al\u0069\u0064");
return nil ,_db .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0064\u006f\u006da\u0069\u006e\u0020\u0072an\u0067\u0065");};_aecca ,_dface :=_acgfg .ToFloat64Array ();if _dface !=nil {return nil ,_dface ;};_baffd .Domain =_aecca ;_acgfg ,_eededd =_ae .TraceToDirectObject (_dcecf .Get ("\u0052\u0061\u006eg\u0065")).(*_ae .PdfObjectArray );
if _eededd {if _acgfg .Len ()< 0||_acgfg .Len ()%2!=0{return nil ,_db .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0061\u006e\u0067\u0065");};_agee ,_gbbd :=_acgfg .ToFloat64Array ();if _gbbd !=nil {return nil ,_gbbd ;};_baffd .Range =_agee ;
};_acgfg ,_eededd =_ae .TraceToDirectObject (_dcecf .Get ("\u0043\u0030")).(*_ae .PdfObjectArray );if _eededd {_gcefb ,_eabebe :=_acgfg .ToFloat64Array ();if _eabebe !=nil {return nil ,_eabebe ;};_baffd .C0 =_gcefb ;};_acgfg ,_eededd =_ae .TraceToDirectObject (_dcecf .Get ("\u0043\u0031")).(*_ae .PdfObjectArray );
if _eededd {_cbcea ,_cgacc :=_acgfg .ToFloat64Array ();if _cgacc !=nil {return nil ,_cgacc ;};_baffd .C1 =_cbcea ;};if len (_baffd .C0 )!=len (_baffd .C1 ){_ac .Log .Error ("\u0043\u0030\u0020\u0061nd\u0020\u0043\u0031\u0020\u006e\u006f\u0074\u0020\u006d\u0061\u0074\u0063\u0068\u0069n\u0067");
return nil ,_ae .ErrRangeError ;};N ,_dface :=_ae .GetNumberAsFloat (_ae .TraceToDirectObject (_dcecf .Get ("\u004e")));if _dface !=nil {_ac .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",_dcecf .String ());
return nil ,_dface ;};_baffd .N =N ;return _baffd ,nil ;};
// Add appends an outline item as a child of the current outline item.
func (_bbcef *OutlineItem )Add (item *OutlineItem ){_bbcef .Entries =append (_bbcef .Entries ,item )};var ErrColorOutOfRange =_db .New ("\u0063o\u006co\u0072\u0020\u006f\u0075\u0074 \u006f\u0066 \u0072\u0061\u006e\u0067\u0065");
// NewPdfAppenderWithOpts creates a new Pdf appender from a Pdf reader with options.
func NewPdfAppenderWithOpts (reader *PdfReader ,opts *ReaderOpts ,encryptOptions *EncryptOptions )(*PdfAppender ,error ){_age :=&PdfAppender {_aced :reader ._bgbcea ,Reader :reader ,_ceda :reader ._bfcga ,_bcefc :reader ._agege };_fefe ,_fgea :=_age ._aced .Seek (0,_gdc .SeekEnd );
if _fgea !=nil {return nil ,_fgea ;};_age ._egcg =_fefe ;if _ ,_fgea =_age ._aced .Seek (0,_gdc .SeekStart );_fgea !=nil {return nil ,_fgea ;};_age ._afad ,_fgea =NewPdfReaderWithOpts (_age ._aced ,opts );if _fgea !=nil {return nil ,_fgea ;};for _ ,_ddag :=range _age .Reader .GetObjectNums (){if _age ._bcgg < _ddag {_age ._bcgg =_ddag ;
};};_age ._gedb =_age ._ceda .GetXrefTable ();_age ._daea =_age ._ceda .GetXrefOffset ();_age ._eabf =append (_age ._eabf ,_age ._afad .PageList ...);_age ._dcefg =make (map[_ae .PdfObject ]struct{});_age ._dcdbc =make (map[_ae .PdfObject ]int64 );_age ._gfge =make (map[_ae .PdfObject ]struct{});
_age ._eced =_age ._afad .AcroForm ;_age ._ddad =_age ._afad .DSS ;if opts !=nil {_age ._acf =opts .Password ;};if encryptOptions !=nil {_age ._gffe =encryptOptions ;};return _age ,nil ;};
// PdfAnnotationHighlight represents Highlight annotations.
// (Section 12.5.6.10).
type PdfAnnotationHighlight struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _ae .PdfObject ;};
// PdfRectangle is a definition of a rectangle.
type PdfRectangle struct{Llx float64 ;Lly float64 ;Urx float64 ;Ury float64 ;};func (_egbdf *PdfColorspaceLab )String ()string {return "\u004c\u0061\u0062"};
// PdfAnnotationRedact represents Redact annotations.
// (Section 12.5.6.23).
type PdfAnnotationRedact struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _ae .PdfObject ;IC _ae .PdfObject ;RO _ae .PdfObject ;OverlayText _ae .PdfObject ;Repeat _ae .PdfObject ;DA _ae .PdfObject ;Q _ae .PdfObject ;};
// ToPdfObject returns the PDF representation of the function.
func (_cbbdc *PdfFunctionType2 )ToPdfObject ()_ae .PdfObject {_dbgfe :=_ae .MakeDict ();_dbgfe .Set ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065",_ae .MakeInteger (2));_baaab :=&_ae .PdfObjectArray {};for _ ,_effae :=range _cbbdc .Domain {_baaab .Append (_ae .MakeFloat (_effae ));
};_dbgfe .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_baaab );if _cbbdc .Range !=nil {_gbafd :=&_ae .PdfObjectArray {};for _ ,_beffe :=range _cbbdc .Range {_gbafd .Append (_ae .MakeFloat (_beffe ));};_dbgfe .Set ("\u0052\u0061\u006eg\u0065",_gbafd );};
if _cbbdc .C0 !=nil {_adebe :=&_ae .PdfObjectArray {};for _ ,_eebbfb :=range _cbbdc .C0 {_adebe .Append (_ae .MakeFloat (_eebbfb ));};_dbgfe .Set ("\u0043\u0030",_adebe );};if _cbbdc .C1 !=nil {_ffcd :=&_ae .PdfObjectArray {};for _ ,_caef :=range _cbbdc .C1 {_ffcd .Append (_ae .MakeFloat (_caef ));
};_dbgfe .Set ("\u0043\u0031",_ffcd );};_dbgfe .Set ("\u004e",_ae .MakeFloat (_cbbdc .N ));if _cbbdc ._ggde !=nil {_cbbdc ._ggde .PdfObject =_dbgfe ;return _cbbdc ._ggde ;};return _dbgfe ;};
// SetSubtype sets the Subtype S for given PdfOutputIntent.
func (_aafa *PdfOutputIntent )SetSubtype (subtype PdfOutputIntentType )error {if !subtype .IsValid (){return _db .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");
};_aafa .S =subtype ;return nil ;};
// SetDocInfo sets the document /Info metadata.
// This will overwrite any globally declared document info.
func (_faaed *PdfAppender )SetDocInfo (info *PdfInfo ){_faaed ._eecfe =info };
// 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 (_bdfc *Image )ConvertToBinary ()error {if _bdfc .ColorComponents ==1&&_bdfc .BitsPerComponent ==1{return nil ;};_cbfge ,_fgdad :=_bdfc .ToGoImage ();if _fgdad !=nil {return _fgdad ;};_fbeg ,_fgdad :=_afc .MonochromeConverter .Convert (_cbfge );if _fgdad !=nil {return _fgdad ;
};_bdfc .Data =_fbeg .Base ().Data ;_bdfc ._bbba ,_fgdad =_afc .ScaleAlphaToMonochrome (_bdfc ._bbba ,int (_bdfc .Width ),int (_bdfc .Height ));if _fgdad !=nil {return _fgdad ;};_bdfc .BitsPerComponent =1;_bdfc .ColorComponents =1;_bdfc ._fdae =nil ;return nil ;
};func (_bcae *PdfReader )newPdfAnnotationSquigglyFromDict (_abbd *_ae .PdfObjectDictionary )(*PdfAnnotationSquiggly ,error ){_acef :=PdfAnnotationSquiggly {};_caeb ,_gdcf :=_bcae .newPdfAnnotationMarkupFromDict (_abbd );if _gdcf !=nil {return nil ,_gdcf ;
};_acef .PdfAnnotationMarkup =_caeb ;_acef .QuadPoints =_abbd .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");return &_acef ,nil ;};func (_gee *PdfReader )newPdfActionThreadFromDict (_aee *_ae .PdfObjectDictionary )(*PdfActionThread ,error ){_bfg ,_def :=_ceb (_aee .Get ("\u0046"));
if _def !=nil {return nil ,_def ;};return &PdfActionThread {D :_aee .Get ("\u0044"),B :_aee .Get ("\u0042"),F :_bfg },nil ;};
// SetContentStream sets the pattern cell's content stream.
func (_fgeeb *PdfTilingPattern )SetContentStream (content []byte ,encoder _ae .StreamEncoder )error {_ccddd ,_ggbgb :=_fgeeb ._ebfged .(*_ae .PdfObjectStream );if !_ggbgb {_ac .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",_fgeeb ._ebfged );
return _ae .ErrTypeError ;};if encoder ==nil {encoder =_ae .NewRawEncoder ();};_ebbcb :=_ccddd .PdfObjectDictionary ;_bfacb :=encoder .MakeStreamDict ();_ebbcb .Merge (_bfacb );_abega ,_dcbfb :=encoder .EncodeBytes (content );if _dcbfb !=nil {return _dcbfb ;
};_ebbcb .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_ae .MakeInteger (int64 (len (_abega ))));_ccddd .Stream =_abega ;return nil ;};func (_faede *PdfWriter )optimize ()error {if _faede ._ffefg ==nil {return nil ;};var _dabbg error ;_faede ._edbe ,_dabbg =_faede ._ffefg .Optimize (_faede ._edbe );
if _dabbg !=nil {return _dabbg ;};_dcfbg :=make (map[_ae .PdfObject ]struct{},len (_faede ._edbe ));for _ ,_dfgcb :=range _faede ._edbe {_dcfbg [_dfgcb ]=struct{}{};};_faede ._faecg =_dcfbg ;return nil ;};func (_egac *PdfAppender )mergeResources (_afgg ,_cceaa _ae .PdfObject ,_ddgb map[_ae .PdfObjectName ]_ae .PdfObjectName )_ae .PdfObject {if _cceaa ==nil &&_afgg ==nil {return nil ;
};if _cceaa ==nil {return _afgg ;};_dgbf ,_gfeg :=_ae .GetDict (_cceaa );if !_gfeg {return _afgg ;};if _afgg ==nil {_eaecb :=_ae .MakeDict ();_eaecb .Merge (_dgbf );return _cceaa ;};_bfgf ,_gfeg :=_ae .GetDict (_afgg );if !_gfeg {_ac .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");
_bfgf =_ae .MakeDict ();};for _ ,_ccef :=range _dgbf .Keys (){if _cgab ,_cdce :=_ddgb [_ccef ];_cdce {_bfgf .Set (_cgab ,_dgbf .Get (_ccef ));}else {_bfgf .Set (_ccef ,_dgbf .Get (_ccef ));};};return _bfgf ;};
// GetAsTilingPattern returns a tiling pattern. Check with IsTiling() prior to using this.
func (_gdgga *PdfPattern )GetAsTilingPattern ()*PdfTilingPattern {return _gdgga ._ebafb .(*PdfTilingPattern );};
// Normalize swaps (Llx,Urx) if Urx < Llx, and (Lly,Ury) if Ury < Lly.
func (_gfaefb *PdfRectangle )Normalize (){if _gfaefb .Llx > _gfaefb .Urx {_gfaefb .Llx ,_gfaefb .Urx =_gfaefb .Urx ,_gfaefb .Llx ;};if _gfaefb .Lly > _gfaefb .Ury {_gfaefb .Lly ,_gfaefb .Ury =_gfaefb .Ury ,_gfaefb .Lly ;};};
// ToPdfObject returns the PDF representation of the shading dictionary.
func (_afdea *PdfShadingType5 )ToPdfObject ()_ae .PdfObject {_afdea .PdfShading .ToPdfObject ();_ggffb ,_bcecg :=_afdea .getShadingDict ();if _bcecg !=nil {_ac .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 _afdea .BitsPerCoordinate !=nil {_ggffb .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065",_afdea .BitsPerCoordinate );};if _afdea .BitsPerComponent !=nil {_ggffb .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_afdea .BitsPerComponent );
};if _afdea .VerticesPerRow !=nil {_ggffb .Set ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073\u0050e\u0072\u0052\u006f\u0077",_afdea .VerticesPerRow );};if _afdea .Decode !=nil {_ggffb .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_afdea .Decode );};
if _afdea .Function !=nil {if len (_afdea .Function )==1{_ggffb .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_afdea .Function [0].ToPdfObject ());}else {_dbabf :=_ae .MakeArray ();for _ ,_fbfdg :=range _afdea .Function {_dbabf .Append (_fbfdg .ToPdfObject ());
};_ggffb .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_dbabf );};};return _afdea ._dcdgda ;};
// ImageToRGB convert an indexed image to RGB.
func (_gead *PdfColorspaceSpecialIndexed )ImageToRGB (img Image )(Image ,error ){N :=_gead .Base .GetNumComponents ();if N < 1{return Image {},_f .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 );
};_dgaa :=_afc .NewImageBase (int (img .Width ),int (img .Height ),8,N ,nil ,img ._bbba ,img ._fdae );_cgdf :=_ba .NewReader (img .getBase ());_fabea :=_ba .NewWriter (_dgaa );var (_bgfa uint32 ;_agggd int ;_cbg error ;);for {_bgfa ,_cbg =_cgdf .ReadSample ();
if _cbg ==_gdc .EOF {break ;}else if _cbg !=nil {return img ,_cbg ;};_agggd =int (_bgfa );_ac .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",_agggd ,N ,len (_gead ._dfca ));
if (_agggd +1)*N > len (_gead ._dfca ){_agggd =len (_gead ._dfca )/N -1;_ac .Log .Trace ("C\u006c\u0069\u0070\u0070in\u0067 \u0074\u006f\u0020\u0069\u006ed\u0065\u0078\u003a\u0020\u0025\u0064",_agggd );if _agggd < 0{_ac .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 _cabgf :=_agggd *N ;_cabgf < (_agggd +1)*N ;_cabgf ++{if _cbg =_fabea .WriteSample (uint32 (_gead ._dfca [_cabgf ]));_cbg !=nil {return img ,_cbg ;};};};return _gead .Base .ImageToRGB (_feagd (&_dgaa ));};
// GetNumComponents returns the number of color components (3 for CalRGB).
func (_efdf *PdfColorCalRGB )GetNumComponents ()int {return 3};const (XObjectTypeUndefined XObjectType =iota ;XObjectTypeImage ;XObjectTypeForm ;XObjectTypePS ;XObjectTypeUnknown ;);func (_cdb *PdfReader )newPdfAnnotationUnderlineFromDict (_cggg *_ae .PdfObjectDictionary )(*PdfAnnotationUnderline ,error ){_acdaf :=PdfAnnotationUnderline {};
_fbfd ,_fffc :=_cdb .newPdfAnnotationMarkupFromDict (_cggg );if _fffc !=nil {return nil ,_fffc ;};_acdaf .PdfAnnotationMarkup =_fbfd ;_acdaf .QuadPoints =_cggg .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");return &_acdaf ,nil ;};
// NewLTV returns a new LTV client.
func NewLTV (appender *PdfAppender )(*LTV ,error ){_acffb :=appender .Reader .DSS ;if _acffb ==nil {_acffb =NewDSS ();};if _cedf :=_acffb .generateHashMaps ();_cedf !=nil {return nil ,_cedf ;};return &LTV {CertClient :_ce .NewCertClient (),OCSPClient :_ce .NewOCSPClient (),CRLClient :_ce .NewCRLClient (),SkipExisting :true ,_gbcge :appender ,_dbggb :_acffb },nil ;
};
// ToPdfObject implements interface PdfModel.
func (_fegd *PdfActionSound )ToPdfObject ()_ae .PdfObject {_fegd .PdfAction .ToPdfObject ();_eb :=_fegd ._cbe ;_dgcd :=_eb .PdfObject .(*_ae .PdfObjectDictionary );_dgcd .SetIfNotNil ("\u0053",_ae .MakeName (string (ActionTypeSound )));_dgcd .SetIfNotNil ("\u0053\u006f\u0075n\u0064",_fegd .Sound );
_dgcd .SetIfNotNil ("\u0056\u006f\u006c\u0075\u006d\u0065",_fegd .Volume );_dgcd .SetIfNotNil ("S\u0079\u006e\u0063\u0068\u0072\u006f\u006e\u006f\u0075\u0073",_fegd .Synchronous );_dgcd .SetIfNotNil ("\u0052\u0065\u0070\u0065\u0061\u0074",_fegd .Repeat );
_dgcd .SetIfNotNil ("\u004d\u0069\u0078",_fegd .Mix );return _eb ;};const (BorderEffectNoEffect BorderEffect =iota ;BorderEffectCloudy BorderEffect =iota ;);
// 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 };};
// GetXObjectFormByName returns the XObjectForm with the specified name from the
// page resources, if it exists.
func (_cdecg *PdfPageResources )GetXObjectFormByName (keyName _ae .PdfObjectName )(*XObjectForm ,error ){_cadc ,_bafe :=_cdecg .GetXObjectByName (keyName );if _cadc ==nil {return nil ,nil ;};if _bafe !=XObjectTypeForm {return nil ,_db .New ("\u006e\u006f\u0074\u0020\u0061\u0020\u0066\u006f\u0072\u006d");
};_eabff ,_dced :=NewXObjectFormFromStream (_cadc );if _dced !=nil {return nil ,_dced ;};return _eabff ,nil ;};
// Encoder returns the font's text encoder.
func (_fafdda pdfCIDFontType0 )Encoder ()_bgg .TextEncoder {return _fafdda ._dbgg };
// ToPdfObject converts the pdfCIDFontType2 to a PDF representation.
func (_cfab *pdfCIDFontType2 )ToPdfObject ()_ae .PdfObject {if _cfab ._ddafa ==nil {_cfab ._ddafa =&_ae .PdfIndirectObject {};};_cdffb :=_cfab .baseFields ().asPdfObjectDictionary ("\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032");
_cfab ._ddafa .PdfObject =_cdffb ;if _cfab .CIDSystemInfo !=nil {_cdffb .Set ("\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f",_cfab .CIDSystemInfo );};if _cfab .DW !=nil {_cdffb .Set ("\u0044\u0057",_cfab .DW );};if _cfab .DW2 !=nil {_cdffb .Set ("\u0044\u0057\u0032",_cfab .DW2 );
};if _cfab .W !=nil {_cdffb .Set ("\u0057",_cfab .W );};if _cfab .W2 !=nil {_cdffb .Set ("\u0057\u0032",_cfab .W2 );};if _cfab .CIDToGIDMap !=nil {_cdffb .Set ("C\u0049\u0044\u0054\u006f\u0047\u0049\u0044\u004d\u0061\u0070",_cfab .CIDToGIDMap );};return _cfab ._ddafa ;
};
// GetCerts returns the signature certificate chain.
func (_ggdd *PdfSignature )GetCerts ()([]*_fc .Certificate ,error ){var _afabe []func ()([]*_fc .Certificate ,error );switch _cddaa ,_ :=_ae .GetNameVal (_ggdd .SubFilter );_cddaa {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":_afabe =append (_afabe ,_ggdd .extractChainFromPKCS7 ,_ggdd .extractChainFromCert );
case "\u0061d\u0062e\u002e\u0078\u0035\u0030\u0039.\u0072\u0073a\u005f\u0073\u0068\u0061\u0031":_afabe =append (_afabe ,_ggdd .extractChainFromCert );case "\u0045\u0054\u0053I\u002e\u0052\u0046\u0043\u0033\u0031\u0036\u0031":_afabe =append (_afabe ,_ggdd .extractChainFromPKCS7 );
default:return nil ,_f .Errorf ("\u0075n\u0073\u0075\u0070\u0070o\u0072\u0074\u0065\u0064\u0020S\u0075b\u0046i\u006c\u0074\u0065\u0072\u003a\u0020\u0025s",_cddaa );};for _ ,_ccbag :=range _afabe {_fbaaa ,_badfb :=_ccbag ();if _badfb !=nil {return nil ,_badfb ;
};if len (_fbaaa )> 0{return _fbaaa ,nil ;};};return nil ,ErrSignNoCertificates ;};func (_deddb *PdfWriter )addObject (_gbedb _ae .PdfObject )bool {_eddbb :=_deddb .hasObject (_gbedb );if !_eddbb {_adbgc :=_ae .ResolveReferencesDeep (_gbedb ,_deddb ._eecfg );
if _adbgc !=nil {_ac .Log .Debug ("E\u0052R\u004f\u0052\u003a\u0020\u0025\u0076\u0020\u002d \u0073\u006b\u0069\u0070pi\u006e\u0067",_adbgc );};_deddb ._edbe =append (_deddb ._edbe ,_gbedb );_deddb ._faecg [_gbedb ]=struct{}{};return true ;};return false ;
};func (_dfccc *PdfShading )getShadingDict ()(*_ae .PdfObjectDictionary ,error ){_ffbeb :=_dfccc ._dcdgda ;if _feagb ,_dgfdcf :=_ffbeb .(*_ae .PdfIndirectObject );_dgfdcf {_ecfga ,_ffggba :=_feagb .PdfObject .(*_ae .PdfObjectDictionary );if !_ffggba {return nil ,_ae .ErrTypeError ;
};return _ecfga ,nil ;}else if _bggb ,_aeccga :=_ffbeb .(*_ae .PdfObjectStream );_aeccga {return _bggb .PdfObjectDictionary ,nil ;}else if _fecc ,_fdbfg :=_ffbeb .(*_ae .PdfObjectDictionary );_fdbfg {return _fecc ,nil ;}else {_ac .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 ,_ae .ErrTypeError ;};};
// GetShadingByName gets the shading specified by keyName. Returns nil if not existing.
// The bool flag indicated whether it was found or not.
func (_feea *PdfPageResources )GetShadingByName (keyName _ae .PdfObjectName )(*PdfShading ,bool ){if _feea .Shading ==nil {return nil ,false ;};_bgaa ,_fgfcg :=_ae .TraceToDirectObject (_feea .Shading ).(*_ae .PdfObjectDictionary );if !_fgfcg {_ac .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",_feea .Shading );
return nil ,false ;};if _fgead :=_bgaa .Get (keyName );_fgead !=nil {_bdcc ,_egaa :=_eddea (_fgead );if _egaa !=nil {_ac .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",_egaa );
return nil ,false ;};return _bdcc ,true ;};return nil ,false ;};func (_cfda *PdfAcroForm )filteredFields (_cgaag FieldFilterFunc ,_eadg bool )[]*PdfField {if _cfda ==nil {return nil ;};return _eebaa (_cfda .Fields ,_cgaag ,_eadg );};
// PdfColorCalGray represents a CalGray colorspace.
type PdfColorCalGray float64 ;
// ColorFromFloats returns a new PdfColor based on the input slice of color
// components.
func (_aeef *PdfColorspaceICCBased )ColorFromFloats (vals []float64 )(PdfColor ,error ){if _aeef .Alternate ==nil {if _aeef .N ==1{_efdd :=NewPdfColorspaceDeviceGray ();return _efdd .ColorFromFloats (vals );}else if _aeef .N ==3{_afda :=NewPdfColorspaceDeviceRGB ();
return _afda .ColorFromFloats (vals );}else if _aeef .N ==4{_edgc :=NewPdfColorspaceDeviceCMYK ();return _edgc .ColorFromFloats (vals );}else {return nil ,_db .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 _aeef .Alternate .ColorFromFloats (vals );};
// IsCheckbox returns true if the button field represents a checkbox, false otherwise.
func (_dcecb *PdfFieldButton )IsCheckbox ()bool {return _dcecb .GetType ()==ButtonTypeCheckbox };
// PdfAnnotationFreeText represents FreeText annotations.
// (Section 12.5.6.6).
type PdfAnnotationFreeText struct{*PdfAnnotation ;*PdfAnnotationMarkup ;DA _ae .PdfObject ;Q _ae .PdfObject ;RC _ae .PdfObject ;DS _ae .PdfObject ;CL _ae .PdfObject ;IT _ae .PdfObject ;BE _ae .PdfObject ;RD _ae .PdfObject ;BS _ae .PdfObject ;LE _ae .PdfObject ;
};
// SetPdfAuthor sets the Author attribute of the output PDF.
func SetPdfAuthor (author string ){_cadgd .Lock ();defer _cadgd .Unlock ();_fcfa =author };
// NewPdfShadingPatternType2 creates an empty shading pattern type 2 object.
func NewPdfShadingPatternType2 ()*PdfShadingPatternType2 {_gefe :=&PdfShadingPatternType2 {};_gefe .Matrix =_ae .MakeArrayFromIntegers ([]int {1,0,0,1,0,0});_gefe .PdfPattern =&PdfPattern {};_gefe .PdfPattern .PatternType =int64 (*_ae .MakeInteger (2));
_gefe .PdfPattern ._ebafb =_gefe ;_gefe .PdfPattern ._ebfged =_ae .MakeIndirectObject (_ae .MakeDict ());return _gefe ;};func (_ece *PdfReader )newPdfAnnotationSoundFromDict (_cdg *_ae .PdfObjectDictionary )(*PdfAnnotationSound ,error ){_bffe :=PdfAnnotationSound {};
_egff ,_fda :=_ece .newPdfAnnotationMarkupFromDict (_cdg );if _fda !=nil {return nil ,_fda ;};_bffe .PdfAnnotationMarkup =_egff ;_bffe .Name =_cdg .Get ("\u004e\u0061\u006d\u0065");_bffe .Sound =_cdg .Get ("\u0053\u006f\u0075n\u0064");return &_bffe ,nil ;
};
// ToPdfObject implements interface PdfModel.
func (_dce *PdfActionGoTo3DView )ToPdfObject ()_ae .PdfObject {_dce .PdfAction .ToPdfObject ();_dbgf :=_dce ._cbe ;_cec :=_dbgf .PdfObject .(*_ae .PdfObjectDictionary );_cec .SetIfNotNil ("\u0053",_ae .MakeName (string (ActionTypeGoTo3DView )));_cec .SetIfNotNil ("\u0054\u0041",_dce .TA );
_cec .SetIfNotNil ("\u0056",_dce .V );return _dbgf ;};
// ColorFromPdfObjects gets the color from a series of pdf objects (3 for rgb).
func (_deecg *PdfColorspaceDeviceRGB )ColorFromPdfObjects (objects []_ae .PdfObject )(PdfColor ,error ){if len (objects )!=3{return nil ,_db .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_aefed ,_decba :=_ae .GetNumbersAsFloat (objects );
if _decba !=nil {return nil ,_decba ;};return _deecg .ColorFromFloats (_aefed );};
// ToPdfObject implements interface PdfModel.
func (_dfc *PdfActionGoTo )ToPdfObject ()_ae .PdfObject {_dfc .PdfAction .ToPdfObject ();_feg :=_dfc ._cbe ;_dad :=_feg .PdfObject .(*_ae .PdfObjectDictionary );_dad .SetIfNotNil ("\u0053",_ae .MakeName (string (ActionTypeGoTo )));_dad .SetIfNotNil ("\u0044",_dfc .D );
return _feg ;};
// String returns a string representation of the field.
func (_gfedc *PdfField )String ()string {if _gbdca ,_eaed :=_gfedc .ToPdfObject ().(*_ae .PdfIndirectObject );_eaed {return _f .Sprintf ("\u0025\u0054\u003a\u0020\u0025\u0073",_gfedc ._dadc ,_gbdca .PdfObject .String ());};return "";};
// GetNumComponents returns the number of color components of the colorspace device.
// Returns 1 for a grayscale device.
func (_edba *PdfColorspaceDeviceGray )GetNumComponents ()int {return 1};
// ToPdfObject implements interface PdfModel.
func (_bgab *PdfAnnotationUnderline )ToPdfObject ()_ae .PdfObject {_bgab .PdfAnnotation .ToPdfObject ();_egcf :=_bgab ._gcgf ;_cccd :=_egcf .PdfObject .(*_ae .PdfObjectDictionary );_bgab .PdfAnnotationMarkup .appendToPdfDictionary (_cccd );_cccd .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ae .MakeName ("\u0055n\u0064\u0065\u0072\u006c\u0069\u006ee"));
_cccd .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_bgab .QuadPoints );return _egcf ;};
// GetFillImage get attached model.Image in push button.
func (_begg *PdfFieldButton )GetFillImage ()*Image {if _begg .IsPush (){return _begg ._bbcf ;};return nil ;};
// ToPdfObject implements interface PdfModel.
func (_bdbg *PdfAnnotationSquiggly )ToPdfObject ()_ae .PdfObject {_bdbg .PdfAnnotation .ToPdfObject ();_cgge :=_bdbg ._gcgf ;_cggc :=_cgge .PdfObject .(*_ae .PdfObjectDictionary );_bdbg .PdfAnnotationMarkup .appendToPdfDictionary (_cggc );_cggc .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ae .MakeName ("\u0053\u0071\u0075\u0069\u0067\u0067\u006c\u0079"));
_cggc .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_bdbg .QuadPoints );return _cgge ;};func (_gggbf *PdfWriter )writeDocumentVersion (){if _gggbf ._dffad {_gggbf .writeString ("\u000a");}else {_gggbf .writeString (_f .Sprintf ("\u0025\u0025\u0050D\u0046\u002d\u0025\u0064\u002e\u0025\u0064\u000a",_gggbf ._faffe .Major ,_gggbf ._faffe .Minor ));
_gggbf .writeString ("\u0025\u00e2\u00e3\u00cf\u00d3\u000a");};};func _fbeaa (_gfgcga *XObjectImage )error {if _gfgcga .SMask ==nil {return nil ;};_cdcef ,_acbcg :=_gfgcga .SMask .(*_ae .PdfObjectStream );if !_acbcg {_ac .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 _ae .ErrTypeError ;};_aegac :=_cdcef .PdfObjectDictionary ;_feccc :=_aegac .Get ("\u004d\u0061\u0074t\u0065");if _feccc ==nil {return nil ;};_ccggb ,_aafg :=_addeed (_feccc .(*_ae .PdfObjectArray ));if _aafg !=nil {return _aafg ;};_cdafb :=_ae .MakeArrayFromFloats ([]float64 {_ccggb });
_aegac .SetIfNotNil ("\u004d\u0061\u0074t\u0065",_cdafb );return nil ;};
// ColorToRGB converts gray -> rgb for a single color component.
func (_fafd *PdfColorspaceDeviceGray )ColorToRGB (color PdfColor )(PdfColor ,error ){_gggcc ,_cdfe :=color .(*PdfColorDeviceGray );if !_cdfe {_ac .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 ,_db .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};return NewPdfColorDeviceRGB (float64 (*_gggcc ),float64 (*_gggcc ),float64 (*_gggcc )),nil ;};
// SetContext sets the specific fielddata type, e.g. would be PdfFieldButton for a button field.
func (_cabfg *PdfField )SetContext (ctx PdfModel ){_cabfg ._dadc =ctx };
// 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 ;_bccd _ae .ParserMetadata ;};func (_ebd *PdfReader )newPdfAnnotationMovieFromDict (_fgae *_ae .PdfObjectDictionary )(*PdfAnnotationMovie ,error ){_dddd :=PdfAnnotationMovie {};_dddd .T =_fgae .Get ("\u0054");
_dddd .Movie =_fgae .Get ("\u004d\u006f\u0076i\u0065");_dddd .A =_fgae .Get ("\u0041");return &_dddd ,nil ;};func _edfed ()string {_cadgd .Lock ();defer _cadgd .Unlock ();return _egafe };func (_bbfce *PdfWriter )writeAcroFormFields ()error {if _bbfce ._bgfd ==nil {return nil ;
};_ac .Log .Trace ("\u0057r\u0069t\u0069\u006e\u0067\u0020\u0061c\u0072\u006f \u0066\u006f\u0072\u006d\u0073");_bgagc :=_bbfce ._bgfd .ToPdfObject ();_ac .Log .Trace ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d\u003a\u0020\u0025\u002b\u0076",_bgagc );
_bbfce ._caddd .Set ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d",_bgagc );_ccedg :=_bbfce .addObjects (_bgagc );if _ccedg !=nil {return _ccedg ;};return nil ;};
// GetContext returns the PdfField context which is the more specific field data type, e.g. PdfFieldButton
// for a button field.
func (_cbcb *PdfField )GetContext ()PdfModel {return _cbcb ._dadc };
// 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 (_ceeff *CompliancePdfReader )error ;};
// Resample resamples the image data converting from current BitsPerComponent to a target BitsPerComponent
// value. Sets the image's BitsPerComponent to the target value following resampling.
//
// For example, converting an 8-bit RGB image to 1-bit grayscale (common for scanned images):
// // Convert RGB image to grayscale.
// rgbColorSpace := pdf.NewPdfColorspaceDeviceRGB()
// grayImage, err := rgbColorSpace.ImageToGray(rgbImage)
// if err != nil {
// return err
// }
// // Resample as 1 bit.
// grayImage.Resample(1)
func (_abbf *Image )Resample (targetBitsPerComponent int64 ){if _abbf .BitsPerComponent ==targetBitsPerComponent {return ;};_cgdac :=_abbf .GetSamples ();if targetBitsPerComponent < _abbf .BitsPerComponent {_cddg :=_abbf .BitsPerComponent -targetBitsPerComponent ;
for _daeee :=range _cgdac {_cgdac [_daeee ]>>=uint (_cddg );};}else if targetBitsPerComponent > _abbf .BitsPerComponent {_ddabc :=targetBitsPerComponent -_abbf .BitsPerComponent ;for _adeaa :=range _cgdac {_cgdac [_adeaa ]<<=uint (_ddabc );};};_abbf .BitsPerComponent =targetBitsPerComponent ;
if _abbf .BitsPerComponent < 8{_abbf .resampleLowBits (_cgdac );return ;};_bcccb :=_afc .BytesPerLine (int (_abbf .Width ),int (_abbf .BitsPerComponent ),_abbf .ColorComponents );_gaaae :=make ([]byte ,_bcccb *int (_abbf .Height ));var (_ceafg ,_edefb ,_bbag ,_dffa int ;
_dcgbd uint32 ;);for _bbag =0;_bbag < int (_abbf .Height );_bbag ++{_ceafg =_bbag *_bcccb ;_edefb =(_bbag +1)*_bcccb -1;_bfabf :=_ba .ResampleUint32 (_cgdac [_ceafg :_edefb ],int (targetBitsPerComponent ),8);for _dffa ,_dcgbd =range _bfabf {_gaaae [_dffa +_ceafg ]=byte (_dcgbd );
};};_abbf .Data =_gaaae ;};
// SetDocInfo set document info.
// This will overwrite any globally declared document info.
func (_abbb *PdfWriter )SetDocInfo (info *PdfInfo ){_abbb .setDocInfo (info .ToPdfObject ())};func _aagb (_beaf _ae .PdfObject )(*PdfBorderStyle ,error ){_baffe :=&PdfBorderStyle {};_baffe ._aadd =_beaf ;var _addc *_ae .PdfObjectDictionary ;_beaf =_ae .TraceToDirectObject (_beaf );
_addc ,_dedb :=_beaf .(*_ae .PdfObjectDictionary );if !_dedb {return nil ,_db .New ("\u0074\u0079\u0070\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};if _dabc :=_addc .Get ("\u0054\u0079\u0070\u0065");_dabc !=nil {_dfad ,_gbeg :=_dabc .(*_ae .PdfObjectName );
if !_gbeg {_ac .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",_dabc );
}else {if *_dfad !="\u0042\u006f\u0072\u0064\u0065\u0072"{_ac .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",*_dfad );};};};if _agd :=_addc .Get ("\u0057");
_agd !=nil {_dcdg ,_fgefg :=_ae .GetNumberAsFloat (_agd );if _fgefg !=nil {_ac .Log .Debug ("\u0045\u0072\u0072\u006fr \u0072\u0065\u0074\u0072\u0069\u0065\u0076\u0069\u006e\u0067\u0020\u0057\u003a\u0020%\u0076",_fgefg );return nil ,_fgefg ;};_baffe .W =&_dcdg ;
};if _beagf :=_addc .Get ("\u0053");_beagf !=nil {_fbee ,_gcgfa :=_beagf .(*_ae .PdfObjectName );if !_gcgfa {return nil ,_db .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 _begf BorderStyle ;switch *_fbee {case "\u0053":_begf =BorderStyleSolid ;case "\u0044":_begf =BorderStyleDashed ;case "\u0042":_begf =BorderStyleBeveled ;case "\u0049":_begf =BorderStyleInset ;case "\u0055":_begf =BorderStyleUnderline ;default:_ac .Log .Debug ("I\u006e\u0076\u0061\u006cid\u0020s\u0074\u0079\u006c\u0065\u0020n\u0061\u006d\u0065\u0020\u0025\u0073",*_fbee );
return nil ,_db .New ("\u0073\u0074\u0079\u006ce \u0074\u0079\u0070\u0065\u0020\u0072\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065c\u006b");};_baffe .S =&_begf ;};if _bdgf :=_addc .Get ("\u0044");_bdgf !=nil {_cfba ,_afb :=_bdgf .(*_ae .PdfObjectArray );
if !_afb {_ac .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",_bdgf );return nil ,_db .New ("\u0062o\u0072\u0064\u0065\u0072 \u0044\u0020\u0074\u0079\u0070e\u0020c\u0068e\u0063\u006b\u0020\u0065\u0072\u0072\u006fr");
};_bgcda ,_ede :=_cfba .ToIntegerArray ();if _ede !=nil {_ac .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",_ede );
return nil ,_ede ;};_baffe .D =&_bgcda ;};return _baffe ,nil ;};
// ParsePdfObject parses input pdf object into given output intent.
func (_ggbda *PdfOutputIntent )ParsePdfObject (object _ae .PdfObject )error {_edbgg ,_ffded :=_ae .GetDict (object );if !_ffded {_ac .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 _db .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");
};_ggbda ._gfdfbf =_edbgg ;_ggbda .Type ,_ =_edbgg .GetString ("\u0054\u0079\u0070\u0065");_eaga ,_ffded :=_edbgg .GetString ("\u0053");if _ffded {switch _eaga {case "\u0047T\u0053\u005f\u0050\u0044\u0046\u00411":_ggbda .S =PdfOutputIntentTypeA1 ;case "\u0047T\u0053\u005f\u0050\u0044\u0046\u00412":_ggbda .S =PdfOutputIntentTypeA2 ;
case "\u0047T\u0053\u005f\u0050\u0044\u0046\u00413":_ggbda .S =PdfOutputIntentTypeA3 ;case "\u0047T\u0053\u005f\u0050\u0044\u0046\u00414":_ggbda .S =PdfOutputIntentTypeA4 ;case "\u0047\u0054\u0053\u005f\u0050\u0044\u0046\u0058":_ggbda .S =PdfOutputIntentTypeX ;
};};_ggbda .OutputCondition ,_ =_edbgg .GetString ("\u004fu\u0074p\u0075\u0074\u0043\u006f\u006e\u0064\u0069\u0074\u0069\u006f\u006e");_ggbda .OutputConditionIdentifier ,_ =_edbgg .GetString ("\u004fu\u0074\u0070\u0075\u0074C\u006f\u006e\u0064\u0069\u0074i\u006fn\u0049d\u0065\u006e\u0074\u0069\u0066\u0069\u0065r");
_ggbda .RegistryName ,_ =_edbgg .GetString ("\u0052\u0065\u0067i\u0073\u0074\u0072\u0079\u004e\u0061\u006d\u0065");_ggbda .Info ,_ =_edbgg .GetString ("\u0049\u006e\u0066\u006f");if _cbffc ,_ecbfd :=_ae .GetStream (_edbgg .Get ("\u0044\u0065\u0073\u0074\u004f\u0075\u0074\u0070\u0075\u0074\u0050\u0072o\u0066\u0069\u006c\u0065"));
_ecbfd {_ggbda .ColorComponents ,_ =_ae .GetIntVal (_cbffc .Get ("\u004e"));_bbafc ,_abbfb :=_ae .DecodeStream (_cbffc );if _abbfb !=nil {return _abbfb ;};_ggbda .DestOutputProfile =_bbafc ;};return nil ;};
// PdfFieldButton represents a button field which includes push buttons, checkboxes, and radio buttons.
type PdfFieldButton struct{*PdfField ;Opt *_ae .PdfObjectArray ;_bbcf *Image ;};
// PdfAnnotationCaret represents Caret annotations.
// (Section 12.5.6.11).
type PdfAnnotationCaret struct{*PdfAnnotation ;*PdfAnnotationMarkup ;RD _ae .PdfObject ;Sy _ae .PdfObject ;};
// ToPdfObject converts the pdfFontSimple to its PDF representation for outputting.
func (_afbd *pdfFontSimple )ToPdfObject ()_ae .PdfObject {if _afbd ._adcge ==nil {_afbd ._adcge =&_ae .PdfIndirectObject {};};_gbbc :=_afbd .baseFields ().asPdfObjectDictionary ("");_afbd ._adcge .PdfObject =_gbbc ;if _afbd .FirstChar !=nil {_gbbc .Set ("\u0046i\u0072\u0073\u0074\u0043\u0068\u0061r",_afbd .FirstChar );
};if _afbd .LastChar !=nil {_gbbc .Set ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072",_afbd .LastChar );};if _afbd .Widths !=nil {_gbbc .Set ("\u0057\u0069\u0064\u0074\u0068\u0073",_afbd .Widths );};if _afbd .Encoding !=nil {_gbbc .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_afbd .Encoding );
}else if _afbd ._dead !=nil {_fdfd :=_afbd ._dead .ToPdfObject ();if _fdfd !=nil {_gbbc .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_fdfd );};};return _afbd ._adcge ;};
// ToPdfObject returns colorspace in a PDF object format [name dictionary]
func (_fbdd *PdfColorspaceLab )ToPdfObject ()_ae .PdfObject {_cagb :=_ae .MakeArray ();_cagb .Append (_ae .MakeName ("\u004c\u0061\u0062"));_fdddb :=_ae .MakeDict ();if _fbdd .WhitePoint !=nil {_dede :=_ae .MakeArray (_ae .MakeFloat (_fbdd .WhitePoint [0]),_ae .MakeFloat (_fbdd .WhitePoint [1]),_ae .MakeFloat (_fbdd .WhitePoint [2]));
_fdddb .Set ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074",_dede );}else {_ac .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 _fbdd .BlackPoint !=nil {_ecef :=_ae .MakeArray (_ae .MakeFloat (_fbdd .BlackPoint [0]),_ae .MakeFloat (_fbdd .BlackPoint [1]),_ae .MakeFloat (_fbdd .BlackPoint [2]));_fdddb .Set ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074",_ecef );
};if _fbdd .Range !=nil {_cecf :=_ae .MakeArray (_ae .MakeFloat (_fbdd .Range [0]),_ae .MakeFloat (_fbdd .Range [1]),_ae .MakeFloat (_fbdd .Range [2]),_ae .MakeFloat (_fbdd .Range [3]));_fdddb .Set ("\u0052\u0061\u006eg\u0065",_cecf );};_cagb .Append (_fdddb );
if _fbdd ._bccg !=nil {_fbdd ._bccg .PdfObject =_cagb ;return _fbdd ._bccg ;};return _cagb ;};
// SetOCProperties sets the optional content properties.
func (_gbdbc *PdfWriter )SetOCProperties (ocProperties _ae .PdfObject )error {_bgfed :=_gbdbc ._caddd ;if ocProperties !=nil {_ac .Log .Trace ("\u0053e\u0074\u0074\u0069\u006e\u0067\u0020\u004f\u0043\u0020\u0050\u0072o\u0070\u0065\u0072\u0074\u0069\u0065\u0073\u002e\u002e\u002e");
_bgfed .Set ("\u004f\u0043\u0050r\u006f\u0070\u0065\u0072\u0074\u0069\u0065\u0073",ocProperties );return _gbdbc .addObjects (ocProperties );};return nil ;};
// GetOutlineTree returns the outline tree.
func (_gdbdf *PdfReader )GetOutlineTree ()*PdfOutlineTreeNode {return _gdbdf ._ecbe };
// GetContainingPdfObject returns the page as a dictionary within an PdfIndirectObject.
func (_gdeg *PdfPage )GetContainingPdfObject ()_ae .PdfObject {return _gdeg ._egbbg };
// NewPdfDateFromTime will create a PdfDate based on the given time
func NewPdfDateFromTime (timeObj _d .Time )(PdfDate ,error ){_acdee :=timeObj .Format ("\u002d\u0030\u0037\u003a\u0030\u0030");_gaceb ,_ :=_bg .ParseInt (_acdee [1:3],10,32);_dfbdg ,_ :=_bg .ParseInt (_acdee [4:6],10,32);return PdfDate {_edbbd :int64 (timeObj .Year ()),_cedda :int64 (timeObj .Month ()),_ddefe :int64 (timeObj .Day ()),_bedgeg :int64 (timeObj .Hour ()),_fbcga :int64 (timeObj .Minute ()),_eabef :int64 (timeObj .Second ()),_eaedg :_acdee [0],_adaec :_gaceb ,_befea :_dfbdg },nil ;
};func _ggfdf (_egebc *_ae .PdfObjectDictionary )(*PdfShadingType7 ,error ){_gedaf :=PdfShadingType7 {};_cgdfb :=_egebc .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065");if _cgdfb ==nil {_ac .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 ;};_eeebd ,_fccde :=_cgdfb .(*_ae .PdfObjectInteger );if !_fccde {_ac .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",_cgdfb );
return nil ,_ae .ErrTypeError ;};_gedaf .BitsPerCoordinate =_eeebd ;_cgdfb =_egebc .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074");if _cgdfb ==nil {_ac .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 ;};_eeebd ,_fccde =_cgdfb .(*_ae .PdfObjectInteger );if !_fccde {_ac .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",_cgdfb );
return nil ,_ae .ErrTypeError ;};_gedaf .BitsPerComponent =_eeebd ;_cgdfb =_egebc .Get ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067");if _cgdfb ==nil {_ac .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 ;};_eeebd ,_fccde =_cgdfb .(*_ae .PdfObjectInteger );if !_fccde {_ac .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",_cgdfb );
return nil ,_ae .ErrTypeError ;};_gedaf .BitsPerComponent =_eeebd ;_cgdfb =_egebc .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");if _cgdfb ==nil {_ac .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 ;};_gfgag ,_fccde :=_cgdfb .(*_ae .PdfObjectArray );if !_fccde {_ac .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",_cgdfb );
return nil ,_ae .ErrTypeError ;};_gedaf .Decode =_gfgag ;if _aabge :=_egebc .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");_aabge !=nil {_gedaf .Function =[]PdfFunction {};if _fgbebf ,_ffgab :=_aabge .(*_ae .PdfObjectArray );_ffgab {for _ ,_geac :=range _fgbebf .Elements (){_bgbeab ,_faadg :=_gdbef (_geac );
if _faadg !=nil {_ac .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",_faadg );return nil ,_faadg ;};_gedaf .Function =append (_gedaf .Function ,_bgbeab );
};}else {_gafe ,_afgaf :=_gdbef (_aabge );if _afgaf !=nil {_ac .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",_afgaf );return nil ,_afgaf ;
};_gedaf .Function =append (_gedaf .Function ,_gafe );};};return &_gedaf ,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 _ae .StreamEncoder ;Intent _ae .PdfObject ;ImageMask _ae .PdfObject ;Mask _ae .PdfObject ;Matte _ae .PdfObject ;Decode _ae .PdfObject ;Interpolate _ae .PdfObject ;Alternatives _ae .PdfObject ;
SMask _ae .PdfObject ;SMaskInData _ae .PdfObject ;Name _ae .PdfObject ;StructParent _ae .PdfObject ;ID _ae .PdfObject ;OPI _ae .PdfObject ;Metadata _ae .PdfObject ;OC _ae .PdfObject ;Stream []byte ;_efaag *_ae .PdfObjectStream ;};func _gfed (_fgca *_ae .PdfObjectDictionary )*VRI {_abfdc ,_ :=_ae .GetString (_fgca .Get ("\u0054\u0055"));
_bfaf ,_ :=_ae .GetString (_fgca .Get ("\u0054\u0053"));return &VRI {Cert :_fdgbg (_fgca .Get ("\u0043\u0065\u0072\u0074")),OCSP :_fdgbg (_fgca .Get ("\u004f\u0043\u0053\u0050")),CRL :_fdgbg (_fgca .Get ("\u0043\u0052\u004c")),TU :_abfdc ,TS :_bfaf };};
// PdfShadingType4 is a Free-form Gouraud-shaded triangle mesh.
type PdfShadingType4 struct{*PdfShading ;BitsPerCoordinate *_ae .PdfObjectInteger ;BitsPerComponent *_ae .PdfObjectInteger ;BitsPerFlag *_ae .PdfObjectInteger ;Decode *_ae .PdfObjectArray ;Function []PdfFunction ;};
// BorderEffect represents a border effect (Table 167 p. 395).
type BorderEffect int ;
// NewPdfColorspaceCalGray returns a new CalGray colorspace object.
func NewPdfColorspaceCalGray ()*PdfColorspaceCalGray {_gdddc :=&PdfColorspaceCalGray {};_gdddc .BlackPoint =[]float64 {0.0,0.0,0.0};_gdddc .Gamma =1;return _gdddc ;};
// GetNamedDestinations returns the Dests entry in the PDF catalog.
// See section 12.3.2.3 "Named Destinations" (p. 367 PDF32000_2008).
func (_bagade *PdfReader )GetNamedDestinations ()(_ae .PdfObject ,error ){_fbgcf :=_ae .ResolveReference (_bagade ._aedf .Get ("\u0044\u0065\u0073t\u0073"));if _fbgcf ==nil {return nil ,nil ;};if !_bagade ._ffggb {_cfedb :=_bagade .traverseObjectData (_fbgcf );
if _cfedb !=nil {return nil ,_cfedb ;};};return _fbgcf ,nil ;};func (_acce *PdfReader )newPdfAnnotationHighlightFromDict (_ega *_ae .PdfObjectDictionary )(*PdfAnnotationHighlight ,error ){_fadf :=PdfAnnotationHighlight {};_fgdg ,_gda :=_acce .newPdfAnnotationMarkupFromDict (_ega );
if _gda !=nil {return nil ,_gda ;};_fadf .PdfAnnotationMarkup =_fgdg ;_fadf .QuadPoints =_ega .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");return &_fadf ,nil ;};func (_fabb *PdfPage )setContainer (_bgeg *_ae .PdfIndirectObject ){_bgeg .PdfObject =_fabb ._efgca ;
_fabb ._egbbg =_bgeg ;};
// GetPdfName returns the PDF name used to indicate the border style.
// (Table 166 p. 395).
func (_abdef *BorderStyle )GetPdfName ()string {switch *_abdef {case BorderStyleSolid :return "\u0053";case BorderStyleDashed :return "\u0044";case BorderStyleBeveled :return "\u0042";case BorderStyleInset :return "\u0049";case BorderStyleUnderline :return "\u0055";
};return "";};
// PdfActionType represents an action type in PDF (section 12.6.4 p. 417).
type PdfActionType string ;func _fcfca (_ccbd *_ae .PdfObjectDictionary )(*PdfShadingPattern ,error ){_gbag :=&PdfShadingPattern {};_aafb :=_ccbd .Get ("\u0053h\u0061\u0064\u0069\u006e\u0067");if _aafb ==nil {_ac .Log .Debug ("\u0053h\u0061d\u0069\u006e\u0067\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");
return nil ,ErrRequiredAttributeMissing ;};_affeb ,_bcgea :=_eddea (_aafb );if _bcgea !=nil {_ac .Log .Debug ("\u0045r\u0072\u006f\u0072\u0020l\u006f\u0061\u0064\u0069\u006eg\u0020s\u0068a\u0064\u0069\u006e\u0067\u003a\u0020\u0025v",_bcgea );return nil ,_bcgea ;
};_gbag .Shading =_affeb ;if _fddda :=_ccbd .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");_fddda !=nil {_degba ,_ccbae :=_fddda .(*_ae .PdfObjectArray );if !_ccbae {_ac .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",_fddda );
return nil ,_ae .ErrTypeError ;};_gbag .Matrix =_degba ;};if _fdgf :=_ccbd .Get ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e");_fdgf !=nil {_gbag .ExtGState =_fdgf ;};return _gbag ,nil ;};func (_afcf *PdfWriter )mapObjectStreams (_gegfc bool )(map[_ae .PdfObject ]bool ,bool ){_degfgc :=make (map[_ae .PdfObject ]bool );
for _ ,_gfafd :=range _afcf ._edbe {if _cbdfb ,_decaa :=_gfafd .(*_ae .PdfObjectStreams );_decaa {_gegfc =true ;for _ ,_ggfcd :=range _cbdfb .Elements (){_degfgc [_ggfcd ]=true ;if _ffdde ,_ecfae :=_ggfcd .(*_ae .PdfIndirectObject );_ecfae {_degfgc [_ffdde .PdfObject ]=true ;
};};};};return _degfgc ,_gegfc ;};
// GetPage returns the PdfPage model for the specified page number.
func (_cdfcc *PdfReader )GetPage (pageNumber int )(*PdfPage ,error ){if _cdfcc ._bfcga .GetCrypter ()!=nil &&!_cdfcc ._bfcga .IsAuthenticated (){return nil ,_f .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 (_cdfcc ._bcaab )< pageNumber {return nil ,_db .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");
};_aaabe :=pageNumber -1;if _aaabe < 0{return nil ,_f .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");};_faega :=_cdfcc .PageList [_aaabe ];
return _faega ,nil ;};
// ToPdfObject implements interface PdfModel.
func (_gebd *PdfAnnotationStrikeOut )ToPdfObject ()_ae .PdfObject {_gebd .PdfAnnotation .ToPdfObject ();_aaeg :=_gebd ._gcgf ;_bbgd :=_aaeg .PdfObject .(*_ae .PdfObjectDictionary );_gebd .PdfAnnotationMarkup .appendToPdfDictionary (_bbgd );_bbgd .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ae .MakeName ("\u0053t\u0072\u0069\u006b\u0065\u004f\u0075t"));
_bbgd .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_gebd .QuadPoints );return _aaeg ;};var _ pdfFont =(*pdfFontType3 )(nil );
// ToPdfObject implements interface PdfModel.
func (_gebb *PdfBorderStyle )ToPdfObject ()_ae .PdfObject {_efae :=_ae .MakeDict ();if _gebb ._aadd !=nil {if _dbce ,_gdf :=_gebb ._aadd .(*_ae .PdfIndirectObject );_gdf {_dbce .PdfObject =_efae ;};};_efae .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ae .MakeName ("\u0042\u006f\u0072\u0064\u0065\u0072"));
if _gebb .W !=nil {_efae .Set ("\u0057",_ae .MakeFloat (*_gebb .W ));};if _gebb .S !=nil {_efae .Set ("\u0053",_ae .MakeName (_gebb .S .GetPdfName ()));};if _gebb .D !=nil {_efae .Set ("\u0044",_ae .MakeArrayFromIntegers (*_gebb .D ));};if _gebb ._aadd !=nil {return _gebb ._aadd ;
};return _efae ;};