unipdf/model/model.go
2024-03-27 22:34:33 +00:00

5029 lines
747 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 (_dg "bufio";_ag "bytes";_ae "crypto/md5";_bc "crypto/rand";_f "crypto/sha1";_eg "crypto/x509";_be "encoding/binary";_bd "encoding/hex";_ge "errors";_e "fmt";_ec "github.com/unidoc/pkcs7";_ff "github.com/unidoc/unipdf/v3/common";_ce "github.com/unidoc/unipdf/v3/core";
_cca "github.com/unidoc/unipdf/v3/core/security";_aee "github.com/unidoc/unipdf/v3/core/security/crypt";_ga "github.com/unidoc/unipdf/v3/internal/cmap";_gf "github.com/unidoc/unipdf/v3/internal/imageutil";_gec "github.com/unidoc/unipdf/v3/internal/license";
_gb "github.com/unidoc/unipdf/v3/internal/sampling";_dc "github.com/unidoc/unipdf/v3/internal/textencoding";_gdc "github.com/unidoc/unipdf/v3/internal/timeutils";_efc "github.com/unidoc/unipdf/v3/internal/transform";_ffa "github.com/unidoc/unipdf/v3/model/internal/docutil";
_ee "github.com/unidoc/unipdf/v3/model/internal/fonts";_aef "github.com/unidoc/unipdf/v3/model/mdp";_bcd "github.com/unidoc/unipdf/v3/model/sigutil";_caa "github.com/unidoc/unipdf/v3/ps";_eb "github.com/unidoc/unitype";_ffae "golang.org/x/xerrors";_d "hash";
_cb "image";_cc "image/color";_ "image/gif";_ "image/png";_gd "io";_fcg "io/ioutil";_egg "math";_fb "math/rand";_dd "os";_cd "regexp";_bf "sort";_dgb "strconv";_g "strings";_b "sync";_c "time";_ef "unicode";_ca "unicode/utf8";);
// ToInteger convert to an integer format.
func (_ebcg *PdfColorDeviceRGB )ToInteger (bits int )[3]uint32 {_cgeg :=_egg .Pow (2,float64 (bits ))-1;return [3]uint32 {uint32 (_cgeg *_ebcg .R ()),uint32 (_cgeg *_ebcg .G ()),uint32 (_cgeg *_ebcg .B ())};};func (_agabd *PdfAcroForm )fill (_edcbd FieldValueProvider ,_ccfc FieldAppearanceGenerator )error {if _agabd ==nil {return nil ;
};_eccee ,_fcafg :=_edcbd .FieldValues ();if _fcafg !=nil {return _fcafg ;};for _ ,_cddd :=range _agabd .AllFields (){_gcee :=_cddd .PartialName ();_ffbfc ,_faac :=_eccee [_gcee ];if !_faac {if _bdgad ,_ddgf :=_cddd .FullName ();_ddgf ==nil {_ffbfc ,_faac =_eccee [_bdgad ];
};};if !_faac {_ff .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",_gcee );
continue ;};if _gace :=_cfcg (_cddd ,_ffbfc );_gace !=nil {return _gace ;};if _ccfc ==nil {continue ;};for _ ,_fdfeg :=range _cddd .Annotations {_bgfdd ,_cceae :=_ccfc .GenerateAppearanceDict (_agabd ,_cddd ,_fdfeg );if _cceae !=nil {return _cceae ;};_fdfeg .AP =_bgfdd ;
_fdfeg .ToPdfObject ();};};return nil ;};func (_fegd *PdfReader )newPdfAnnotationTextFromDict (_cded *_ce .PdfObjectDictionary )(*PdfAnnotationText ,error ){_becf :=PdfAnnotationText {};_fee ,_gaa :=_fegd .newPdfAnnotationMarkupFromDict (_cded );if _gaa !=nil {return nil ,_gaa ;
};_becf .PdfAnnotationMarkup =_fee ;_becf .Open =_cded .Get ("\u004f\u0070\u0065\u006e");_becf .Name =_cded .Get ("\u004e\u0061\u006d\u0065");_becf .State =_cded .Get ("\u0053\u0074\u0061t\u0065");_becf .StateModel =_cded .Get ("\u0053\u0074\u0061\u0074\u0065\u004d\u006f\u0064\u0065\u006c");
return &_becf ,nil ;};
// SetFlag sets the flag for the field.
func (_ega *PdfField )SetFlag (flag FieldFlag ){_ega .Ff =_ce .MakeInteger (int64 (flag ))};
// PdfShadingType1 is a Function-based shading.
type PdfShadingType1 struct{*PdfShading ;Domain *_ce .PdfObjectArray ;Matrix *_ce .PdfObjectArray ;Function []PdfFunction ;};
// GetContentStream returns the pattern cell's content stream
func (_efbe *PdfTilingPattern )GetContentStream ()([]byte ,error ){_dcfa ,_ ,_gaedb :=_efbe .GetContentStreamWithEncoder ();return _dcfa ,_gaedb ;};
// PdfAnnotationSquare represents Square annotations.
// (Section 12.5.6.8).
type PdfAnnotationSquare struct{*PdfAnnotation ;*PdfAnnotationMarkup ;BS _ce .PdfObject ;IC _ce .PdfObject ;BE _ce .PdfObject ;RD _ce .PdfObject ;};
// PdfColorCalGray represents a CalGray colorspace.
type PdfColorCalGray float64 ;
// ReplacePage replaces the original page to a new page.
func (_cgacd *PdfAppender )ReplacePage (pageNum int ,page *PdfPage ){_gcgac :=pageNum -1;for _gebc :=range _cgacd ._ggdc {if _gebc ==_gcgac {_adeg :=page .Duplicate ();_bfbegf (_adeg );_cgacd ._ggdc [_gebc ]=_adeg ;};};};
// GetFillImage get attached model.Image in push button.
func (_ecff *PdfFieldButton )GetFillImage ()*Image {if _ecff .IsPush (){return _ecff ._ffff ;};return nil ;};
// StdFontName represents name of a standard font.
type StdFontName =_ee .StdFontName ;
// ParsePdfObject parses input pdf object into given output intent.
func (_ebcee *PdfOutputIntent )ParsePdfObject (object _ce .PdfObject )error {_aeffc ,_aaace :=_ce .GetDict (object );if !_aaace {_ff .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 _ge .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");
};_ebcee ._gfdaf =_aeffc ;_ebcee .Type ,_ =_aeffc .GetString ("\u0054\u0079\u0070\u0065");_ggcgcb ,_aaace :=_aeffc .GetString ("\u0053");if _aaace {switch _ggcgcb {case "\u0047T\u0053\u005f\u0050\u0044\u0046\u00411":_ebcee .S =PdfOutputIntentTypeA1 ;case "\u0047T\u0053\u005f\u0050\u0044\u0046\u00412":_ebcee .S =PdfOutputIntentTypeA2 ;
case "\u0047T\u0053\u005f\u0050\u0044\u0046\u00413":_ebcee .S =PdfOutputIntentTypeA3 ;case "\u0047T\u0053\u005f\u0050\u0044\u0046\u00414":_ebcee .S =PdfOutputIntentTypeA4 ;case "\u0047\u0054\u0053\u005f\u0050\u0044\u0046\u0058":_ebcee .S =PdfOutputIntentTypeX ;
};};_ebcee .OutputCondition ,_ =_aeffc .GetString ("\u004fu\u0074p\u0075\u0074\u0043\u006f\u006e\u0064\u0069\u0074\u0069\u006f\u006e");_ebcee .OutputConditionIdentifier ,_ =_aeffc .GetString ("\u004fu\u0074\u0070\u0075\u0074C\u006f\u006e\u0064\u0069\u0074i\u006fn\u0049d\u0065\u006e\u0074\u0069\u0066\u0069\u0065r");
_ebcee .RegistryName ,_ =_aeffc .GetString ("\u0052\u0065\u0067i\u0073\u0074\u0072\u0079\u004e\u0061\u006d\u0065");_ebcee .Info ,_ =_aeffc .GetString ("\u0049\u006e\u0066\u006f");if _fegc ,_bgefe :=_ce .GetStream (_aeffc .Get ("\u0044\u0065\u0073\u0074\u004f\u0075\u0074\u0070\u0075\u0074\u0050\u0072o\u0066\u0069\u006c\u0065"));
_bgefe {_ebcee .ColorComponents ,_ =_ce .GetIntVal (_fegc .Get ("\u004e"));_edfe ,_edgac :=_ce .DecodeStream (_fegc );if _edgac !=nil {return _edgac ;};_ebcee .DestOutputProfile =_edfe ;};return nil ;};
// String returns a string representation of the field.
func (_gfca *PdfField )String ()string {if _dbbbg ,_gcgb :=_gfca .ToPdfObject ().(*_ce .PdfIndirectObject );_gcgb {return _e .Sprintf ("\u0025\u0054\u003a\u0020\u0025\u0073",_gfca ._dcagc ,_dbbbg .PdfObject .String ());};return "";};
// NewGrayImageFromGoImage creates a new grayscale unidoc Image from a golang Image.
func (_gcbc DefaultImageHandler )NewGrayImageFromGoImage (goimg _cb .Image )(*Image ,error ){_bbccfb :=goimg .Bounds ();_eefee :=&Image {Width :int64 (_bbccfb .Dx ()),Height :int64 (_bbccfb .Dy ()),ColorComponents :1,BitsPerComponent :8};switch _adeaca :=goimg .(type ){case *_cb .Gray :if len (_adeaca .Pix )!=_bbccfb .Dx ()*_bbccfb .Dy (){_gdbef ,_accab :=_gf .GrayConverter .Convert (goimg );
if _accab !=nil {return nil ,_accab ;};_eefee .Data =_gdbef .Pix ();}else {_eefee .Data =_adeaca .Pix ;};case *_cb .Gray16 :_eefee .BitsPerComponent =16;if len (_adeaca .Pix )!=_bbccfb .Dx ()*_bbccfb .Dy ()*2{_dbdef ,_efca :=_gf .Gray16Converter .Convert (goimg );
if _efca !=nil {return nil ,_efca ;};_eefee .Data =_dbdef .Pix ();}else {_eefee .Data =_adeaca .Pix ;};case _gf .Image :_dfccg :=_adeaca .Base ();if _dfccg .ColorComponents ==1{_eefee .BitsPerComponent =int64 (_dfccg .BitsPerComponent );_eefee .Data =_dfccg .Data ;
return _eefee ,nil ;};_bcaba ,_dgbc :=_gf .GrayConverter .Convert (goimg );if _dgbc !=nil {return nil ,_dgbc ;};_eefee .Data =_bcaba .Pix ();default:_bgbcd ,_dceeb :=_gf .GrayConverter .Convert (goimg );if _dceeb !=nil {return nil ,_dceeb ;};_eefee .Data =_bgbcd .Pix ();
};return _eefee ,nil ;};
// GetNumComponents returns the number of color components of the colorspace device.
// Returns 4 for a CMYK32 device.
func (_afdd *PdfColorspaceDeviceCMYK )GetNumComponents ()int {return 4};
// ToPdfObject implements interface PdfModel.
func (_eef *PdfActionJavaScript )ToPdfObject ()_ce .PdfObject {_eef .PdfAction .ToPdfObject ();_bde :=_eef ._bcc ;_fa :=_bde .PdfObject .(*_ce .PdfObjectDictionary );_fa .SetIfNotNil ("\u0053",_ce .MakeName (string (ActionTypeJavaScript )));_fa .SetIfNotNil ("\u004a\u0053",_eef .JS );
return _bde ;};func (_cf *PdfReader )newPdfActionGotoEFromDict (_gbb *_ce .PdfObjectDictionary )(*PdfActionGoToE ,error ){_aca ,_cff :=_ecbge (_gbb .Get ("\u0046"));if _cff !=nil {return nil ,_cff ;};return &PdfActionGoToE {D :_gbb .Get ("\u0044"),NewWindow :_gbb .Get ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw"),T :_gbb .Get ("\u0054"),F :_aca },nil ;
};
// SetContext sets the specific fielddata type, e.g. would be PdfFieldButton for a button field.
func (_gcgf *PdfField )SetContext (ctx PdfModel ){_gcgf ._dcagc =ctx };func (_eaeg *fontFile )parseASCIIPart (_acaac []byte )error {if len (_acaac )< 2||string (_acaac [:2])!="\u0025\u0021"{return _ge .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");
};_ggcfg ,_ddgdg ,_eaaab :=_ecgcd (_acaac );if _eaaab !=nil {return _eaaab ;};_deaae :=_abgcc (_ggcfg );_eaeg ._abdd =_deaae ["\u0046\u006f\u006e\u0074\u004e\u0061\u006d\u0065"];if _eaeg ._abdd ==""{_ff .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 _ddgdg !=""{_gffc ,_agbfb :=_dccba (_ddgdg );if _agbfb !=nil {return _agbfb ;};_debg ,_agbfb :=_dc .NewCustomSimpleTextEncoder (_gffc ,nil );if _agbfb !=nil {_ff .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",_agbfb );
return nil ;};_eaeg ._bagea =_debg ;};return nil ;};
// GetNumPages returns the number of pages in the document.
func (_gcfd *PdfReader )GetNumPages ()(int ,error ){if _gcfd ._afda .GetCrypter ()!=nil &&!_gcfd ._afda .IsAuthenticated (){return 0,_e .Errorf ("\u0066\u0069\u006ce\u0020\u006e\u0065\u0065d\u0020\u0074\u006f\u0020\u0062\u0065\u0020d\u0065\u0063\u0072\u0079\u0070\u0074\u0065\u0064\u0020\u0066\u0069\u0072\u0073\u0074");
};return len (_gcfd ._cbddb ),nil ;};
// AddImageResource adds an image to the XObject resources.
func (_fdfaa *PdfPage )AddImageResource (name _ce .PdfObjectName ,ximg *XObjectImage )error {var _aaefb *_ce .PdfObjectDictionary ;if _fdfaa .Resources .XObject ==nil {_aaefb =_ce .MakeDict ();_fdfaa .Resources .XObject =_aaefb ;}else {var _aaeb bool ;
_aaefb ,_aaeb =(_fdfaa .Resources .XObject ).(*_ce .PdfObjectDictionary );if !_aaeb {return _ge .New ("\u0069\u006e\u0076\u0061li\u0064\u0020\u0078\u0072\u0065\u0073\u0020\u0064\u0069\u0063\u0074\u0020\u0074\u0079p\u0065");};};_aaefb .Set (name ,ximg .ToPdfObject ());
return nil ;};
// 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 ;
// PdfColorPatternType3 represents a color shading pattern type 3 (Radial).
type PdfColorPatternType3 struct{Color PdfColor ;PatternName _ce .PdfObjectName ;};
// ToPdfObject implements interface PdfModel.
func (_degg *PdfAnnotationRichMedia )ToPdfObject ()_ce .PdfObject {_degg .PdfAnnotation .ToPdfObject ();_dcd :=_degg ._dec ;_abag :=_dcd .PdfObject .(*_ce .PdfObjectDictionary );_abag .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ce .MakeName ("\u0052i\u0063\u0068\u004d\u0065\u0064\u0069a"));
_abag .SetIfNotNil ("\u0052\u0069\u0063\u0068\u004d\u0065\u0064\u0069\u0061\u0053\u0065\u0074t\u0069\u006e\u0067\u0073",_degg .RichMediaSettings );_abag .SetIfNotNil ("\u0052\u0069c\u0068\u004d\u0065d\u0069\u0061\u0043\u006f\u006e\u0074\u0065\u006e\u0074",_degg .RichMediaContent );
return _dcd ;};
// ToPdfObject returns a PdfObject representation of PdfColorspaceDeviceNAttributes as a PdfObjectDictionary directly
// or indirectly within an indirect object container.
func (_bdba *PdfColorspaceDeviceNAttributes )ToPdfObject ()_ce .PdfObject {_bccd :=_ce .MakeDict ();if _bdba .Subtype !=nil {_bccd .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_bdba .Subtype );};_bccd .SetIfNotNil ("\u0043o\u006c\u006f\u0072\u0061\u006e\u0074s",_bdba .Colorants );
_bccd .SetIfNotNil ("\u0050r\u006f\u0063\u0065\u0073\u0073",_bdba .Process );_bccd .SetIfNotNil ("M\u0069\u0078\u0069\u006e\u0067\u0048\u0069\u006e\u0074\u0073",_bdba .MixingHints );if _bdba ._dcggf !=nil {_bdba ._dcggf .PdfObject =_bccd ;return _bdba ._dcggf ;
};return _bccd ;};func (_ebe *PdfReader )newPdfActionLaunchFromDict (_egd *_ce .PdfObjectDictionary )(*PdfActionLaunch ,error ){_cee ,_acad :=_ecbge (_egd .Get ("\u0046"));if _acad !=nil {return nil ,_acad ;};return &PdfActionLaunch {Win :_egd .Get ("\u0057\u0069\u006e"),Mac :_egd .Get ("\u004d\u0061\u0063"),Unix :_egd .Get ("\u0055\u006e\u0069\u0078"),NewWindow :_egd .Get ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw"),F :_cee },nil ;
};
// ColorFromFloats returns a new PdfColor based on the input slice of color
// components. The slice should contain three elements representing the
// L (range 0-100), A (range -100-100) and B (range -100-100) components of
// the color.
func (_gdbd *PdfColorspaceLab )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=3{return nil ,_ge .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_deed :=vals [0];if _deed < 0.0||_deed > 100.0{_ff .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",_deed );
return nil ,ErrColorOutOfRange ;};_afefg :=vals [1];_ceaa :=float64 (-100);_cgfc :=float64 (100);if len (_gdbd .Range )> 1{_ceaa =_gdbd .Range [0];_cgfc =_gdbd .Range [1];};if _afefg < _ceaa ||_afefg > _cgfc {_ff .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",_afefg ,_ceaa ,_cgfc );
return nil ,ErrColorOutOfRange ;};_ggefe :=vals [2];_gaefg :=float64 (-100);_aage :=float64 (100);if len (_gdbd .Range )> 3{_gaefg =_gdbd .Range [2];_aage =_gdbd .Range [3];};if _ggefe < _gaefg ||_ggefe > _aage {_ff .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",_ggefe ,_gaefg ,_aage );
return nil ,ErrColorOutOfRange ;};_baeg :=NewPdfColorLab (_deed ,_afefg ,_ggefe );return _baeg ,nil ;};func _cccf (_addbe _ce .PdfObject )(*PdfPageResourcesColorspaces ,error ){_gbbba :=&PdfPageResourcesColorspaces {};if _dggeba ,_egbebg :=_addbe .(*_ce .PdfIndirectObject );
_egbebg {_gbbba ._bcgd =_dggeba ;_addbe =_dggeba .PdfObject ;};_bcaea ,_bdcga :=_ce .GetDict (_addbe );if !_bdcga {return nil ,_ge .New ("\u0043\u0053\u0020at\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");
};_gbbba .Names =[]string {};_gbbba .Colorspaces =map[string ]PdfColorspace {};for _ ,_ccbb :=range _bcaea .Keys (){_bdbef :=_bcaea .Get (_ccbb );_gbbba .Names =append (_gbbba .Names ,string (_ccbb ));_caddg ,_abfad :=NewPdfColorspaceFromPdfObject (_bdbef );
if _abfad !=nil {return nil ,_abfad ;};_gbbba .Colorspaces [string (_ccbb )]=_caddg ;};return _gbbba ,nil ;};
// ToPdfObject implements interface PdfModel.
func (_aade *PdfAnnotationSound )ToPdfObject ()_ce .PdfObject {_aade .PdfAnnotation .ToPdfObject ();_ecgc :=_aade ._dec ;_gbgcf :=_ecgc .PdfObject .(*_ce .PdfObjectDictionary );_aade .PdfAnnotationMarkup .appendToPdfDictionary (_gbgcf );_gbgcf .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ce .MakeName ("\u0053\u006f\u0075n\u0064"));
_gbgcf .SetIfNotNil ("\u0053\u006f\u0075n\u0064",_aade .Sound );_gbgcf .SetIfNotNil ("\u004e\u0061\u006d\u0065",_aade .Name );return _ecgc ;};
// NewPdfColorspaceDeviceN returns an initialized PdfColorspaceDeviceN.
func NewPdfColorspaceDeviceN ()*PdfColorspaceDeviceN {_edac :=&PdfColorspaceDeviceN {};return _edac };func _dagga (_bfce *_ce .PdfObjectDictionary ,_debda *fontCommon )(*pdfFontType0 ,error ){_ggcd ,_egdefa :=_ce .GetArray (_bfce .Get ("\u0044e\u0073c\u0065\u006e\u0064\u0061\u006e\u0074\u0046\u006f\u006e\u0074\u0073"));
if !_egdefa {_ff .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",_debda );
return nil ,_ce .ErrRangeError ;};if _ggcd .Len ()!=1{_ff .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",_ggcd .Len ());return nil ,_ce .ErrRangeError ;
};_gfffe ,_fecd :=_abaa (_ggcd .Get (0),false );if _fecd !=nil {_ff .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",_fecd ,_debda );
return nil ,_fecd ;};_fcea :=_cfdb (_debda );_fcea .DescendantFont =_gfffe ;_gfbd ,_egdefa :=_ce .GetNameVal (_bfce .Get ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067"));if _egdefa {if _gfbd =="\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079\u002d\u0048"||_gfbd =="\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079\u002d\u0056"{_fcea ._fbfa =_dc .NewIdentityTextEncoder (_gfbd );
}else if _ga .IsPredefinedCMap (_gfbd ){_fcea ._ggecbf ,_fecd =_ga .LoadPredefinedCMap (_gfbd );if _fecd !=nil {_ff .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",_gfbd ,_fecd );
};}else {_ff .Log .Debug ("\u0055\u006e\u0068\u0061\u006e\u0064\u006c\u0065\u0064\u0020\u0063\u006da\u0070\u0020\u0025\u0071",_gfbd );};};if _fgfa :=_gfffe .baseFields ()._dgfcg ;_fgfa !=nil {if _afbea :=_fgfa .Name ();_afbea =="\u0041d\u006fb\u0065\u002d\u0043\u004e\u0053\u0031\u002d\u0055\u0043\u0053\u0032"||_afbea =="\u0041\u0064\u006f\u0062\u0065\u002d\u0047\u0042\u0031-\u0055\u0043\u0053\u0032"||_afbea =="\u0041\u0064\u006f\u0062\u0065\u002d\u004a\u0061\u0070\u0061\u006e\u0031-\u0055\u0043\u0053\u0032"||_afbea =="\u0041\u0064\u006f\u0062\u0065\u002d\u004b\u006f\u0072\u0065\u0061\u0031-\u0055\u0043\u0053\u0032"{_fcea ._fbfa =_dc .NewCMapEncoder (_gfbd ,_fcea ._ggecbf ,_fgfa );
};};return _fcea ,nil ;};
// ToPdfObject implements interface PdfModel.
func (_ba *PdfActionThread )ToPdfObject ()_ce .PdfObject {_ba .PdfAction .ToPdfObject ();_gbg :=_ba ._bcc ;_aa :=_gbg .PdfObject .(*_ce .PdfObjectDictionary );_aa .SetIfNotNil ("\u0053",_ce .MakeName (string (ActionTypeThread )));if _ba .F !=nil {_aa .Set ("\u0046",_ba .F .ToPdfObject ());
};_aa .SetIfNotNil ("\u0044",_ba .D );_aa .SetIfNotNil ("\u0042",_ba .B );return _gbg ;};
// PdfShadingType7 is a Tensor-product patch mesh.
type PdfShadingType7 struct{*PdfShading ;BitsPerCoordinate *_ce .PdfObjectInteger ;BitsPerComponent *_ce .PdfObjectInteger ;BitsPerFlag *_ce .PdfObjectInteger ;Decode *_ce .PdfObjectArray ;Function []PdfFunction ;};func _cccg (_aedb []byte )bool {if len (_aedb )< 4{return true ;
};for _fgfed :=range _aedb [:4]{_adcd :=rune (_fgfed );if !_ef .Is (_ef .ASCII_Hex_Digit ,_adcd )&&!_ef .IsSpace (_adcd ){return true ;};};return false ;};var _ pdfFont =(*pdfFontSimple )(nil );
// Width returns the width of `rect`.
func (_fabef *PdfRectangle )Width ()float64 {return _egg .Abs (_fabef .Urx -_fabef .Llx )};
// GetContainingPdfObject returns the container of the image object (indirect object).
func (_egefa *XObjectImage )GetContainingPdfObject ()_ce .PdfObject {return _egefa ._gefdf };
// 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 ;_bcgd *_ce .PdfIndirectObject ;};func (_eaffd *PdfAcroForm )signatureFields ()[]*PdfFieldSignature {var _dgbed []*PdfFieldSignature ;for _ ,_ggce :=range _eaffd .AllFields (){switch _fdda :=_ggce .GetContext ().(type ){case *PdfFieldSignature :_dbdgf :=_fdda ;
_dgbed =append (_dgbed ,_dbdgf );};};return _dgbed ;};
// HasColorspaceByName checks if the colorspace with the specified name exists in the page resources.
func (_ggadb *PdfPageResources )HasColorspaceByName (keyName _ce .PdfObjectName )bool {_gbdab ,_fagdf :=_ggadb .GetColorspaces ();if _fagdf !=nil {_ff .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",_fagdf );
return false ;};if _gbdab ==nil {return false ;};_ ,_dgcc :=_gbdab .Colorspaces [string (keyName )];return _dgcc ;};
// 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{_dcagc PdfModel ;_aadeb *_ce .PdfIndirectObject ;Parent *PdfField ;Annotations []*PdfAnnotationWidget ;Kids []*PdfField ;FT *_ce .PdfObjectName ;T *_ce .PdfObjectString ;TU *_ce .PdfObjectString ;TM *_ce .PdfObjectString ;Ff *_ce .PdfObjectInteger ;
V _ce .PdfObject ;DV _ce .PdfObject ;AA _ce .PdfObject ;VariableText *VariableText ;};
// ToPdfObject implements interface PdfModel.
func (_eeg *PdfActionSubmitForm )ToPdfObject ()_ce .PdfObject {_eeg .PdfAction .ToPdfObject ();_abb :=_eeg ._bcc ;_fcd :=_abb .PdfObject .(*_ce .PdfObjectDictionary );_fcd .SetIfNotNil ("\u0053",_ce .MakeName (string (ActionTypeSubmitForm )));if _eeg .F !=nil {_fcd .Set ("\u0046",_eeg .F .ToPdfObject ());
};_fcd .SetIfNotNil ("\u0046\u0069\u0065\u006c\u0064\u0073",_eeg .Fields );_fcd .SetIfNotNil ("\u0046\u006c\u0061g\u0073",_eeg .Flags );return _abb ;};func (_fgab *PdfReader )newPdfAnnotationHighlightFromDict (_cffa *_ce .PdfObjectDictionary )(*PdfAnnotationHighlight ,error ){_gecfd :=PdfAnnotationHighlight {};
_gcfa ,_bcfe :=_fgab .newPdfAnnotationMarkupFromDict (_cffa );if _bcfe !=nil {return nil ,_bcfe ;};_gecfd .PdfAnnotationMarkup =_gcfa ;_gecfd .QuadPoints =_cffa .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");return &_gecfd ,nil ;
};
// GetContainingPdfObject returns the container of the resources object (indirect object).
func (_dbbaf *PdfPageResources )GetContainingPdfObject ()_ce .PdfObject {return _dbbaf ._gceda };
// NewPdfOutlineItem returns an initialized PdfOutlineItem.
func NewPdfOutlineItem ()*PdfOutlineItem {_egffg :=&PdfOutlineItem {_ggcfgf :_ce .MakeIndirectObject (_ce .MakeDict ())};_egffg ._edda =_egffg ;return _egffg ;};
// GetNumComponents returns the number of color components (1 for CalGray).
func (_afgg *PdfColorCalGray )GetNumComponents ()int {return 1};
// GetContainingPdfObject implements model.PdfModel interface.
func (_geed *PdfOutputIntent )GetContainingPdfObject ()_ce .PdfObject {return _geed ._gfdaf };func _cfdb (_bafd *fontCommon )*pdfFontType0 {return &pdfFontType0 {fontCommon :*_bafd }};func _bbecd (_egeaf *PdfField ,_ggbfd _ce .PdfObject ){for _ ,_fgdaa :=range _egeaf .Annotations {_fgdaa .AS =_ggbfd ;
_fgdaa .ToPdfObject ();};};
// GetContainingPdfObject implements interface PdfModel.
func (_debd *PdfAnnotation )GetContainingPdfObject ()_ce .PdfObject {return _debd ._dec };var _dggec =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 (_agcec *PdfReader )loadOutlines ()(*PdfOutlineTreeNode ,error ){if _agcec ._afda .GetCrypter ()!=nil &&!_agcec ._afda .IsAuthenticated (){return nil ,_e .Errorf ("\u0066\u0069\u006ce\u0020\u006e\u0065\u0065d\u0020\u0074\u006f\u0020\u0062\u0065\u0020d\u0065\u0063\u0072\u0079\u0070\u0074\u0065\u0064\u0020\u0066\u0069\u0072\u0073\u0074");
};_dcafd :=_agcec ._cfcdg ;_eeggc :=_dcafd .Get ("\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0073");if _eeggc ==nil {return nil ,nil ;};_ff .Log .Trace ("\u002d\u0048\u0061\u0073\u0020\u006f\u0075\u0074\u006c\u0069\u006e\u0065\u0073");_cabfe :=_ce .ResolveReference (_eeggc );
_ff .Log .Trace ("\u004f\u0075t\u006c\u0069\u006ee\u0020\u0072\u006f\u006f\u0074\u003a\u0020\u0025\u0076",_cabfe );if _cfaf :=_ce .IsNullObject (_cabfe );_cfaf {_ff .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 ;};_edfed ,_abdbc :=_cabfe .(*_ce .PdfIndirectObject );if !_abdbc {if _ ,_degbb :=_ce .GetDict (_cabfe );!_degbb {_ff .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 ;};_ff .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");
_edfed =_ce .MakeIndirectObject (_cabfe );};_fgfeb ,_abdbc :=_edfed .PdfObject .(*_ce .PdfObjectDictionary );if !_abdbc {return nil ,_ge .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");
};_ff .Log .Trace ("O\u0075\u0074\u006c\u0069ne\u0020r\u006f\u006f\u0074\u0020\u0064i\u0063\u0074\u003a\u0020\u0025\u0076",_fgfeb );_decge ,_ ,_fccaa :=_agcec .buildOutlineTree (_edfed ,nil ,nil ,nil );if _fccaa !=nil {return nil ,_fccaa ;};_ff .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",_decge );
return _decge ,nil ;};
// NewPdfAnnotationCircle returns a new circle annotation.
func NewPdfAnnotationCircle ()*PdfAnnotationCircle {_cab :=NewPdfAnnotation ();_ddfe :=&PdfAnnotationCircle {};_ddfe .PdfAnnotation =_cab ;_ddfe .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_cab .SetContext (_ddfe );return _ddfe ;};func (_gbbdd *PdfReader )loadAnnotations (_agfca _ce .PdfObject )([]*PdfAnnotation ,error ){_ccbeb ,_ecfad :=_ce .GetArray (_agfca );
if !_ecfad {return nil ,_e .Errorf ("\u0041\u006e\u006e\u006fts\u0020\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0061\u0072\u0072\u0061\u0079");};var _adbc []*PdfAnnotation ;for _ ,_agcd :=range _ccbeb .Elements (){_agcd =_ce .ResolveReference (_agcd );
if _ ,_abec :=_agcd .(*_ce .PdfObjectNull );_abec {continue ;};_egcagf ,_dagbd :=_agcd .(*_ce .PdfObjectDictionary );_eddec ,_abaca :=_agcd .(*_ce .PdfIndirectObject );if _dagbd {_eddec =&_ce .PdfIndirectObject {};_eddec .PdfObject =_egcagf ;}else {if !_abaca {return nil ,_e .Errorf ("\u0061\u006eno\u0074\u0061\u0074i\u006f\u006e\u0020\u006eot \u0069n \u0061\u006e\u0020\u0069\u006e\u0064\u0069re\u0063\u0074\u0020\u006f\u0062\u006a\u0065c\u0074");
};};_gggg ,_gfba :=_gbbdd .newPdfAnnotationFromIndirectObject (_eddec );if _gfba !=nil {return nil ,_gfba ;};switch _bbdbb :=_gggg .GetContext ().(type ){case *PdfAnnotationWidget :for _ ,_fddf :=range _gbbdd .AcroForm .AllFields (){if _fddf ._aadeb ==_bbdbb .Parent {_bbdbb ._bag =_fddf ;
break ;};};};if _gggg !=nil {_adbc =append (_adbc ,_gggg );};};return _adbc ,nil ;};
// ColorToRGB converts an Indexed color to an RGB color.
func (_efba *PdfColorspaceSpecialIndexed )ColorToRGB (color PdfColor )(PdfColor ,error ){if _efba .Base ==nil {return nil ,_ge .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 _efba .Base .ColorToRGB (color );};
// ToPdfObject implements interface PdfModel.
func (_fagc *PdfFilespec )ToPdfObject ()_ce .PdfObject {_bedg :=_fagc .getDict ();_bedg .Clear ();_bedg .Set ("\u0054\u0079\u0070\u0065",_ce .MakeName ("\u0046\u0069\u006c\u0065\u0073\u0070\u0065\u0063"));_bedg .SetIfNotNil ("\u0046\u0053",_fagc .FS );
_bedg .SetIfNotNil ("\u0046",_fagc .F );_bedg .SetIfNotNil ("\u0055\u0046",_fagc .UF );_bedg .SetIfNotNil ("\u0044\u004f\u0053",_fagc .DOS );_bedg .SetIfNotNil ("\u004d\u0061\u0063",_fagc .Mac );_bedg .SetIfNotNil ("\u0055\u006e\u0069\u0078",_fagc .Unix );
_bedg .SetIfNotNil ("\u0049\u0044",_fagc .ID );_bedg .SetIfNotNil ("\u0056",_fagc .V );_bedg .SetIfNotNil ("\u0045\u0046",_fagc .EF );_bedg .SetIfNotNil ("\u0052\u0046",_fagc .RF );_bedg .SetIfNotNil ("\u0044\u0065\u0073\u0063",_fagc .Desc );_bedg .SetIfNotNil ("\u0043\u0049",_fagc .CI );
return _fagc ._ddgc ;};
// DecodeArray returns the component range values for the DeviceN colorspace.
// [0 1.0 0 1.0 ...] for each color component.
func (_edeaa *PdfColorspaceDeviceN )DecodeArray ()[]float64 {var _debf []float64 ;for _caea :=0;_caea < _edeaa .GetNumComponents ();_caea ++{_debf =append (_debf ,0.0,1.0);};return _debf ;};func (_cbb *PdfReader )newPdfActionRenditionFromDict (_gbc *_ce .PdfObjectDictionary )(*PdfActionRendition ,error ){return &PdfActionRendition {R :_gbc .Get ("\u0052"),AN :_gbc .Get ("\u0041\u004e"),OP :_gbc .Get ("\u004f\u0050"),JS :_gbc .Get ("\u004a\u0053")},nil ;
};func (_bbaca *PdfPage )flattenFieldsWithOpts (_decf FieldAppearanceGenerator ,_aecae *FieldFlattenOpts ,_bgfa map[*PdfAnnotation ]bool )error {var _dbge []*PdfAnnotation ;if _decf !=nil {if _acafg :=_decf .WrapContentStream (_bbaca );_acafg !=nil {return _acafg ;
};};_gccb ,_dfdb :=_bbaca .GetAnnotations ();if _dfdb !=nil {return _dfdb ;};for _ ,_adbda :=range _gccb {_cadae ,_gdfgf :=_bgfa [_adbda ];if !_gdfgf &&_aecae .AnnotFilterFunc !=nil {if _ ,_dbgeb :=_adbda .GetContext ().(*PdfAnnotationWidget );!_dbgeb {_gdfgf =_aecae .AnnotFilterFunc (_adbda );
};};if !_gdfgf {_dbge =append (_dbge ,_adbda );continue ;};switch _adbda .GetContext ().(type ){case *PdfAnnotationPopup :continue ;case *PdfAnnotationLink :continue ;case *PdfAnnotationProjection :continue ;};_dgeea ,_fbffd ,_cbeeg :=_eegg (_adbda );if _cbeeg !=nil {if !_cadae {_ff .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 ;};_ff .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",_cbeeg );
continue ;};if _dgeea ==nil {continue ;};_abcc :=_bbaca .Resources .GenerateXObjectName ();_bbaca .Resources .SetXObjectFormByName (_abcc ,_dgeea );_gfgbe ,_bgd ,_cbeeg :=_fgdc (_dgeea );if _cbeeg !=nil {_ff .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",_cbeeg );
}else {_eefec :=_efc .IdentityMatrix ();_eefec =_eefec .Translate (-_gfgbe .Llx ,-_gfgbe .Lly );if _bgd {_bdea :=0.0;if _gfgbe .Width ()> 0{_bdea =_fbffd .Width ()/_gfgbe .Width ();};_cfdg :=0.0;if _gfgbe .Height ()> 0{_cfdg =_fbffd .Height ()/_gfgbe .Height ();
};_eefec =_eefec .Scale (_bdea ,_cfdg );};_fbffd .Transform (_eefec );};_gdgfd :=_egg .Min (_fbffd .Llx ,_fbffd .Urx );_gccf :=_egg .Min (_fbffd .Lly ,_fbffd .Ury );var _dcfb []string ;_dcfb =append (_dcfb ,"\u0071");_dcfb =append (_dcfb ,_e .Sprintf ("\u0025\u002e\u0036\u0066\u0020\u0025\u002e\u0036\u0066\u0020\u0025\u002e\u0036\u0066\u0020%\u002e6\u0066\u0020\u0025\u002e\u0036\u0066\u0020\u0025\u002e\u0036\u0066\u0020\u0063\u006d",1.0,0.0,0.0,1.0,_gdgfd ,_gccf ));
_dcfb =append (_dcfb ,_e .Sprintf ("\u002f\u0025\u0073\u0020\u0044\u006f",_abcc .String ()));_dcfb =append (_dcfb ,"\u0051");_bdgb :=_g .Join (_dcfb ,"\u000a");_cbeeg =_bbaca .AppendContentStream (_bdgb );if _cbeeg !=nil {return _cbeeg ;};if _dgeea .Resources !=nil {_acgag ,_bcced :=_ce .GetDict (_dgeea .Resources .Font );
if _bcced {for _ ,_eebd :=range _acgag .Keys (){if !_bbaca .Resources .HasFontByName (_eebd ){_bbaca .Resources .SetFontByName (_eebd ,_acgag .Get (_eebd ));};};};};};if len (_dbge )> 0{_bbaca ._gage =_dbge ;}else {_bbaca ._gage =[]*PdfAnnotation {};};
return nil ;};
// FontDescriptor returns font's PdfFontDescriptor. This may be a builtin descriptor for standard 14
// fonts but must be an explicit descriptor for other fonts.
func (_bgda *PdfFont )FontDescriptor ()*PdfFontDescriptor {if _bgda .baseFields ()._daebd !=nil {return _bgda .baseFields ()._daebd ;};if _cdfb :=_bgda ._dace .getFontDescriptor ();_cdfb !=nil {return _cdfb ;};_ff .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",_bgda );
return nil ;};
// GetOutlineTree returns the outline tree.
func (_geddc *PdfReader )GetOutlineTree ()*PdfOutlineTreeNode {return _geddc ._dbbfe };func _eedd (_eaafd *fontCommon )*pdfFontType3 {return &pdfFontType3 {fontCommon :*_eaafd }};func (_gbe *PdfReader )newPdfAnnotationScreenFromDict (_gfed *_ce .PdfObjectDictionary )(*PdfAnnotationScreen ,error ){_bbfg :=PdfAnnotationScreen {};
_bbfg .T =_gfed .Get ("\u0054");_bbfg .MK =_gfed .Get ("\u004d\u004b");_bbfg .A =_gfed .Get ("\u0041");_bbfg .AA =_gfed .Get ("\u0041\u0041");return &_bbfg ,nil ;};
// ToPdfObject converts colorspace to a PDF object. [/Indexed base hival lookup]
func (_bfbcd *PdfColorspaceSpecialIndexed )ToPdfObject ()_ce .PdfObject {_fdcc :=_ce .MakeArray (_ce .MakeName ("\u0049n\u0064\u0065\u0078\u0065\u0064"));_fdcc .Append (_bfbcd .Base .ToPdfObject ());_fdcc .Append (_ce .MakeInteger (int64 (_bfbcd .HiVal )));
_fdcc .Append (_bfbcd .Lookup );if _bfbcd ._cbca !=nil {_bfbcd ._cbca .PdfObject =_fdcc ;return _bfbcd ._cbca ;};return _fdcc ;};
// GetPageDict converts the Page to a PDF object dictionary.
func (_cfbed *PdfPage )GetPageDict ()*_ce .PdfObjectDictionary {_dcbf :=_cfbed ._cbcaa ;_dcbf .Clear ();_dcbf .Set ("\u0054\u0079\u0070\u0065",_ce .MakeName ("\u0050\u0061\u0067\u0065"));_dcbf .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_cfbed .Parent );
if _cfbed .LastModified !=nil {_dcbf .Set ("\u004c\u0061\u0073t\u004d\u006f\u0064\u0069\u0066\u0069\u0065\u0064",_cfbed .LastModified .ToPdfObject ());};if _cfbed .Resources !=nil {_dcbf .Set ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s",_cfbed .Resources .ToPdfObject ());
};if _cfbed .CropBox !=nil {_dcbf .Set ("\u0043r\u006f\u0070\u0042\u006f\u0078",_cfbed .CropBox .ToPdfObject ());};if _cfbed .MediaBox !=nil {_dcbf .Set ("\u004d\u0065\u0064\u0069\u0061\u0042\u006f\u0078",_cfbed .MediaBox .ToPdfObject ());};if _cfbed .BleedBox !=nil {_dcbf .Set ("\u0042\u006c\u0065\u0065\u0064\u0042\u006f\u0078",_cfbed .BleedBox .ToPdfObject ());
};if _cfbed .TrimBox !=nil {_dcbf .Set ("\u0054r\u0069\u006d\u0042\u006f\u0078",_cfbed .TrimBox .ToPdfObject ());};if _cfbed .ArtBox !=nil {_dcbf .Set ("\u0041\u0072\u0074\u0042\u006f\u0078",_cfbed .ArtBox .ToPdfObject ());};_dcbf .SetIfNotNil ("\u0042\u006f\u0078C\u006f\u006c\u006f\u0072\u0049\u006e\u0066\u006f",_cfbed .BoxColorInfo );
_dcbf .SetIfNotNil ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073",_cfbed .Contents );if _cfbed .Rotate !=nil {_dcbf .Set ("\u0052\u006f\u0074\u0061\u0074\u0065",_ce .MakeInteger (*_cfbed .Rotate ));};_dcbf .SetIfNotNil ("\u0047\u0072\u006fu\u0070",_cfbed .Group );
_dcbf .SetIfNotNil ("\u0054\u0068\u0075m\u0062",_cfbed .Thumb );_dcbf .SetIfNotNil ("\u0042",_cfbed .B );_dcbf .SetIfNotNil ("\u0044\u0075\u0072",_cfbed .Dur );_dcbf .SetIfNotNil ("\u0054\u0072\u0061n\u0073",_cfbed .Trans );_dcbf .SetIfNotNil ("\u0041\u0041",_cfbed .AA );
_dcbf .SetIfNotNil ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061",_cfbed .Metadata );_dcbf .SetIfNotNil ("\u0050i\u0065\u0063\u0065\u0049\u006e\u0066o",_cfbed .PieceInfo );_dcbf .SetIfNotNil ("\u0053\u0074\u0072\u0075\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074\u0073",_cfbed .StructParents );
_dcbf .SetIfNotNil ("\u0049\u0044",_cfbed .ID );_dcbf .SetIfNotNil ("\u0050\u005a",_cfbed .PZ );_dcbf .SetIfNotNil ("\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006fn\u0049\u006e\u0066\u006f",_cfbed .SeparationInfo );_dcbf .SetIfNotNil ("\u0054\u0061\u0062\u0073",_cfbed .Tabs );
_dcbf .SetIfNotNil ("T\u0065m\u0070\u006c\u0061\u0074\u0065\u0049\u006e\u0073t\u0061\u006e\u0074\u0069at\u0065\u0064",_cfbed .TemplateInstantiated );_dcbf .SetIfNotNil ("\u0050r\u0065\u0073\u0053\u0074\u0065\u0070s",_cfbed .PresSteps );_dcbf .SetIfNotNil ("\u0055\u0073\u0065\u0072\u0055\u006e\u0069\u0074",_cfbed .UserUnit );
_dcbf .SetIfNotNil ("\u0056\u0050",_cfbed .VP );if _cfbed ._gage !=nil {_gade :=_ce .MakeArray ();for _ ,_cbdcd :=range _cfbed ._gage {if _dagef :=_cbdcd .GetContext ();_dagef !=nil {_gade .Append (_dagef .ToPdfObject ());}else {_gade .Append (_cbdcd .ToPdfObject ());
};};if _gade .Len ()> 0{_dcbf .Set ("\u0041\u006e\u006e\u006f\u0074\u0073",_gade );};}else if _cfbed .Annots !=nil {_dcbf .SetIfNotNil ("\u0041\u006e\u006e\u006f\u0074\u0073",_cfbed .Annots );};return _dcbf ;};
// ParserMetadata gets the parser metadata.
func (_dagf *CompliancePdfReader )ParserMetadata ()_ce .ParserMetadata {if _dagf ._cefd ==(_ce .ParserMetadata {}){_dagf ._cefd ,_ =_dagf ._afda .ParserMetadata ();};return _dagf ._cefd ;};
// C returns the value of the cyan component of the color.
func (_gbga *PdfColorDeviceCMYK )C ()float64 {return _gbga [0]};func (_bgcgb *pdfFontSimple )baseFields ()*fontCommon {return &_bgcgb .fontCommon };
// 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 ;_cefd _ce .ParserMetadata ;};var ErrColorOutOfRange =_ge .New ("\u0063o\u006co\u0072\u0020\u006f\u0075\u0074 \u006f\u0066 \u0072\u0061\u006e\u0067\u0065");func (_egbg *PdfReader )newPdfAnnotationPolygonFromDict (_gfff *_ce .PdfObjectDictionary )(*PdfAnnotationPolygon ,error ){_bfg :=PdfAnnotationPolygon {};
_edcb ,_gcfg :=_egbg .newPdfAnnotationMarkupFromDict (_gfff );if _gcfg !=nil {return nil ,_gcfg ;};_bfg .PdfAnnotationMarkup =_edcb ;_bfg .Vertices =_gfff .Get ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073");_bfg .LE =_gfff .Get ("\u004c\u0045");_bfg .BS =_gfff .Get ("\u0042\u0053");
_bfg .IC =_gfff .Get ("\u0049\u0043");_bfg .BE =_gfff .Get ("\u0042\u0045");_bfg .IT =_gfff .Get ("\u0049\u0054");_bfg .Measure =_gfff .Get ("\u004de\u0061\u0073\u0075\u0072\u0065");return &_bfg ,nil ;};
// GetContainingPdfObject gets the primitive used to parse the color space.
func (_egfc *PdfColorspaceICCBased )GetContainingPdfObject ()_ce .PdfObject {return _egfc ._gcgc };func (_cefcb *LTV )buildCertChain (_aaecc ,_edgdg []*_eg .Certificate )([]*_eg .Certificate ,map[string ]*_eg .Certificate ,error ){_eccea :=map[string ]*_eg .Certificate {};
for _ ,_afcdef :=range _aaecc {_eccea [_afcdef .Subject .CommonName ]=_afcdef ;};_eggb :=_aaecc ;for _ ,_dgde :=range _edgdg {_fgdcc :=_dgde .Subject .CommonName ;if _ ,_bffg :=_eccea [_fgdcc ];_bffg {continue ;};_eccea [_fgdcc ]=_dgde ;_eggb =append (_eggb ,_dgde );
};if len (_eggb )==0{return nil ,nil ,ErrSignNoCertificates ;};var _ffbgc error ;for _bgge :=_eggb [0];_bgge !=nil &&!_cefcb .CertClient .IsCA (_bgge );{_faede ,_bdec :=_eccea [_bgge .Issuer .CommonName ];if !_bdec {if _faede ,_ffbgc =_cefcb .CertClient .GetIssuer (_bgge );
_ffbgc !=nil {_ff .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",_ffbgc );
break ;};_eccea [_bgge .Issuer .CommonName ]=_faede ;_eggb =append (_eggb ,_faede );};_bgge =_faede ;};return _eggb ,_eccea ,nil ;};
// ToPdfObject returns the PDF representation of the shading dictionary.
func (_gbecb *PdfShadingType2 )ToPdfObject ()_ce .PdfObject {_gbecb .PdfShading .ToPdfObject ();_ebddg ,_bgcaf :=_gbecb .getShadingDict ();if _bgcaf !=nil {_ff .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 _ebddg ==nil {_ff .Log .Error ("\u0053\u0068\u0061\u0064in\u0067\u0020\u0064\u0069\u0063\u0074\u0020\u0069\u0073\u0020\u006e\u0069\u006c");return nil ;};if _gbecb .Coords !=nil {_ebddg .Set ("\u0043\u006f\u006f\u0072\u0064\u0073",_gbecb .Coords );
};if _gbecb .Domain !=nil {_ebddg .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_gbecb .Domain );};if _gbecb .Function !=nil {if len (_gbecb .Function )==1{_ebddg .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_gbecb .Function [0].ToPdfObject ());
}else {_ebeae :=_ce .MakeArray ();for _ ,_dbag :=range _gbecb .Function {_ebeae .Append (_dbag .ToPdfObject ());};_ebddg .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_ebeae );};};if _gbecb .Extend !=nil {_ebddg .Set ("\u0045\u0078\u0074\u0065\u006e\u0064",_gbecb .Extend );
};return _gbecb ._agcdg ;};
// 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 (_bbffc *PdfReader )FlattenFields (allannots bool ,appgen FieldAppearanceGenerator )error {return _bbffc .flattenFieldsWithOpts (allannots ,appgen ,nil );};func (_ddad *PdfColorspaceSpecialPattern )String ()string {return "\u0050a\u0074\u0074\u0065\u0072\u006e";
};func (_cbadb *PdfReader )newPdfSignatureFromIndirect (_bcgfb *_ce .PdfIndirectObject )(*PdfSignature ,error ){_cdbgg ,_dbbggb :=_bcgfb .PdfObject .(*_ce .PdfObjectDictionary );if !_dbbggb {_ff .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 _aaffa ,_cface :=_cbadb ._aedda .GetModelFromPrimitive (_bcgfb ).(*PdfSignature );_cface {return _aaffa ,nil ;};_eadbd :=&PdfSignature {};_eadbd ._ggbg =_bcgfb ;_eadbd .Type ,_ =_ce .GetName (_cdbgg .Get ("\u0054\u0079\u0070\u0065"));
_eadbd .Filter ,_dbbggb =_ce .GetName (_cdbgg .Get ("\u0046\u0069\u006c\u0074\u0065\u0072"));if !_dbbggb {_ff .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 ;};_eadbd .SubFilter ,_ =_ce .GetName (_cdbgg .Get ("\u0053u\u0062\u0046\u0069\u006c\u0074\u0065r"));_eadbd .Contents ,_dbbggb =_ce .GetString (_cdbgg .Get ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073"));if !_dbbggb {_ff .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 _afbeac ,_bacgg :=_ce .GetArray (_cdbgg .Get ("\u0052e\u0066\u0065\u0072\u0065\u006e\u0063e"));_bacgg {_eadbd .Reference =_ce .MakeArray ();for _ ,_ebecg :=range _afbeac .Elements (){_cbaab ,_daea :=_ce .GetDict (_ebecg );
if !_daea {_ff .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 ;
};_cgba ,_geccd :=_cbadb .newPdfSignatureReferenceFromDict (_cbaab );if _geccd !=nil {return nil ,_geccd ;};_eadbd .Reference .Append (_cgba .ToPdfObject ());};};_eadbd .Cert =_cdbgg .Get ("\u0043\u0065\u0072\u0074");_eadbd .ByteRange ,_ =_ce .GetArray (_cdbgg .Get ("\u0042y\u0074\u0065\u0052\u0061\u006e\u0067e"));
_eadbd .Changes ,_ =_ce .GetArray (_cdbgg .Get ("\u0043h\u0061\u006e\u0067\u0065\u0073"));_eadbd .Name ,_ =_ce .GetString (_cdbgg .Get ("\u004e\u0061\u006d\u0065"));_eadbd .M ,_ =_ce .GetString (_cdbgg .Get ("\u004d"));_eadbd .Location ,_ =_ce .GetString (_cdbgg .Get ("\u004c\u006f\u0063\u0061\u0074\u0069\u006f\u006e"));
_eadbd .Reason ,_ =_ce .GetString (_cdbgg .Get ("\u0052\u0065\u0061\u0073\u006f\u006e"));_eadbd .ContactInfo ,_ =_ce .GetString (_cdbgg .Get ("C\u006f\u006e\u0074\u0061\u0063\u0074\u0049\u006e\u0066\u006f"));_eadbd .R ,_ =_ce .GetInt (_cdbgg .Get ("\u0052"));
_eadbd .V ,_ =_ce .GetInt (_cdbgg .Get ("\u0056"));_eadbd .PropBuild ,_ =_ce .GetDict (_cdbgg .Get ("\u0050\u0072\u006f\u0070\u005f\u0042\u0075\u0069\u006c\u0064"));_eadbd .PropAuthTime ,_ =_ce .GetInt (_cdbgg .Get ("\u0050\u0072\u006f\u0070\u005f\u0041\u0075\u0074\u0068\u0054\u0069\u006d\u0065"));
_eadbd .PropAuthType ,_ =_ce .GetName (_cdbgg .Get ("\u0050\u0072\u006f\u0070\u005f\u0041\u0075\u0074\u0068\u0054\u0079\u0070\u0065"));_cbadb ._aedda .Register (_bcgfb ,_eadbd );return _eadbd ,nil ;};
// ToPdfObject returns a stream object.
func (_egcfb *XObjectImage )ToPdfObject ()_ce .PdfObject {_dcaed :=_egcfb ._gefdf ;_dgbb :=_dcaed .PdfObjectDictionary ;if _egcfb .Filter !=nil {_dgbb =_egcfb .Filter .MakeStreamDict ();_dcaed .PdfObjectDictionary =_dgbb ;};_dgbb .Set ("\u0054\u0079\u0070\u0065",_ce .MakeName ("\u0058O\u0062\u006a\u0065\u0063\u0074"));
_dgbb .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ce .MakeName ("\u0049\u006d\u0061g\u0065"));_dgbb .Set ("\u0057\u0069\u0064t\u0068",_ce .MakeInteger (*(_egcfb .Width )));_dgbb .Set ("\u0048\u0065\u0069\u0067\u0068\u0074",_ce .MakeInteger (*(_egcfb .Height )));
if _egcfb .BitsPerComponent !=nil {_dgbb .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_ce .MakeInteger (*(_egcfb .BitsPerComponent )));};if _egcfb .ColorSpace !=nil {_dgbb .SetIfNotNil ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065",_egcfb .ColorSpace .ToPdfObject ());
};_dgbb .SetIfNotNil ("\u0049\u006e\u0074\u0065\u006e\u0074",_egcfb .Intent );_dgbb .SetIfNotNil ("\u0049m\u0061\u0067\u0065\u004d\u0061\u0073k",_egcfb .ImageMask );_dgbb .SetIfNotNil ("\u004d\u0061\u0073\u006b",_egcfb .Mask );_ccfdf :=_dgbb .Get ("\u0044\u0065\u0063\u006f\u0064\u0065")!=nil ;
if _egcfb .Decode ==nil &&_ccfdf {_dgbb .Remove ("\u0044\u0065\u0063\u006f\u0064\u0065");}else if _egcfb .Decode !=nil {_dgbb .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_egcfb .Decode );};_dgbb .SetIfNotNil ("I\u006e\u0074\u0065\u0072\u0070\u006f\u006c\u0061\u0074\u0065",_egcfb .Interpolate );
_dgbb .SetIfNotNil ("\u0041\u006c\u0074e\u0072\u006e\u0061\u0074\u0069\u0076\u0065\u0073",_egcfb .Alternatives );_dgbb .SetIfNotNil ("\u0053\u004d\u0061s\u006b",_egcfb .SMask );_dgbb .SetIfNotNil ("S\u004d\u0061\u0073\u006b\u0049\u006e\u0044\u0061\u0074\u0061",_egcfb .SMaskInData );
_dgbb .SetIfNotNil ("\u004d\u0061\u0074t\u0065",_egcfb .Matte );_dgbb .SetIfNotNil ("\u004e\u0061\u006d\u0065",_egcfb .Name );_dgbb .SetIfNotNil ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074",_egcfb .StructParent );_dgbb .SetIfNotNil ("\u0049\u0044",_egcfb .ID );
_dgbb .SetIfNotNil ("\u004f\u0050\u0049",_egcfb .OPI );_dgbb .SetIfNotNil ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061",_egcfb .Metadata );_dgbb .SetIfNotNil ("\u004f\u0043",_egcfb .OC );_dgbb .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_ce .MakeInteger (int64 (len (_egcfb .Stream ))));
_dcaed .Stream =_egcfb .Stream ;return _dcaed ;};
// PdfActionLaunch represents a launch action.
type PdfActionLaunch struct{*PdfAction ;F *PdfFilespec ;Win _ce .PdfObject ;Mac _ce .PdfObject ;Unix _ce .PdfObject ;NewWindow _ce .PdfObject ;};
// String returns a string describing the font descriptor.
func (_aadea *PdfFontDescriptor )String ()string {var _dgbd []string ;if _aadea .FontName !=nil {_dgbd =append (_dgbd ,_aadea .FontName .String ());};if _aadea .FontFamily !=nil {_dgbd =append (_dgbd ,_aadea .FontFamily .String ());};if _aadea .fontFile !=nil {_dgbd =append (_dgbd ,_aadea .fontFile .String ());
};if _aadea ._cdfe !=nil {_dgbd =append (_dgbd ,_aadea ._cdfe .String ());};_dgbd =append (_dgbd ,_e .Sprintf ("\u0046\u006f\u006et\u0046\u0069\u006c\u0065\u0033\u003d\u0025\u0074",_aadea .FontFile3 !=nil ));return _e .Sprintf ("\u0046\u004f\u004e\u0054_D\u0045\u0053\u0043\u0052\u0049\u0050\u0054\u004f\u0052\u007b\u0025\u0073\u007d",_g .Join (_dgbd ,"\u002c\u0020"));
};
// XObjectForm (Table 95 in 8.10.2).
type XObjectForm struct{Filter _ce .StreamEncoder ;FormType _ce .PdfObject ;BBox _ce .PdfObject ;Matrix _ce .PdfObject ;Resources *PdfPageResources ;Group _ce .PdfObject ;Ref _ce .PdfObject ;MetaData _ce .PdfObject ;PieceInfo _ce .PdfObject ;LastModified _ce .PdfObject ;
StructParent _ce .PdfObject ;StructParents _ce .PdfObject ;OPI _ce .PdfObject ;OC _ce .PdfObject ;Name _ce .PdfObject ;
// Stream data.
Stream []byte ;_efffe *_ce .PdfObjectStream ;};
// PdfAnnotationPrinterMark represents PrinterMark annotations.
// (Section 12.5.6.20).
type PdfAnnotationPrinterMark struct{*PdfAnnotation ;MN _ce .PdfObject ;};func (_aae *PdfReader )newPdfActionJavaScriptFromDict (_bgfb *_ce .PdfObjectDictionary )(*PdfActionJavaScript ,error ){return &PdfActionJavaScript {JS :_bgfb .Get ("\u004a\u0053")},nil ;
};func (_eebde *PdfWriter )checkCrossReferenceStream ()bool {_fbgac :=_eebde ._facee .Major > 1||(_eebde ._facee .Major ==1&&_eebde ._facee .Minor > 4);if _eebde ._aedga !=nil {_fbgac =*_eebde ._aedga ;};return _fbgac ;};
// GetContentStreamWithEncoder returns the pattern cell's content stream and its encoder
func (_ebaag *PdfTilingPattern )GetContentStreamWithEncoder ()([]byte ,_ce .StreamEncoder ,error ){_fbeaa ,_egcad :=_ebaag ._gadcb .(*_ce .PdfObjectStream );if !_egcad {_ff .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",_ebaag ._gadcb );
return nil ,nil ,_ce .ErrTypeError ;};_cage ,_ebceea :=_ce .DecodeStream (_fbeaa );if _ebceea !=nil {_ff .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",_ebceea );
return nil ,nil ,_ebceea ;};_ffccc ,_ebceea :=_ce .NewEncoderFromStream (_fbeaa );if _ebceea !=nil {_ff .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",_ebceea );
return nil ,nil ,_ebceea ;};return _cage ,_ffccc ,nil ;};
// PdfActionResetForm represents a resetForm action.
type PdfActionResetForm struct{*PdfAction ;Fields _ce .PdfObject ;Flags _ce .PdfObject ;};
// ColorFromFloats returns a new PdfColor based on the input slice of color
// components.
func (_ccgf *PdfColorspaceICCBased )ColorFromFloats (vals []float64 )(PdfColor ,error ){if _ccgf .Alternate ==nil {if _ccgf .N ==1{_cbad :=NewPdfColorspaceDeviceGray ();return _cbad .ColorFromFloats (vals );}else if _ccgf .N ==3{_gadc :=NewPdfColorspaceDeviceRGB ();
return _gadc .ColorFromFloats (vals );}else if _ccgf .N ==4{_fffdf :=NewPdfColorspaceDeviceCMYK ();return _fffdf .ColorFromFloats (vals );}else {return nil ,_ge .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 _ccgf .Alternate .ColorFromFloats (vals );};
// NewPdfActionGoToR returns a new "go to remote" action.
func NewPdfActionGoToR ()*PdfActionGoToR {_gae :=NewPdfAction ();_gc :=&PdfActionGoToR {};_gc .PdfAction =_gae ;_gae .SetContext (_gc );return _gc ;};
// B returns the value of the B component of the color.
func (_dbff *PdfColorCalRGB )B ()float64 {return _dbff [1]};func (_agg *PdfReader )newPdfAnnotationPrinterMarkFromDict (_eeeb *_ce .PdfObjectDictionary )(*PdfAnnotationPrinterMark ,error ){_dada :=PdfAnnotationPrinterMark {};_dada .MN =_eeeb .Get ("\u004d\u004e");
return &_dada ,nil ;};func _gegfc (_beefd []*_ce .PdfObjectStream )*_ce .PdfObjectArray {if len (_beefd )==0{return nil ;};_adgfe :=make ([]_ce .PdfObject ,0,len (_beefd ));for _ ,_caeaeg :=range _beefd {_adgfe =append (_adgfe ,_caeaeg );};return _ce .MakeArray (_adgfe ...);
};
// 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 (_bgbc *PdfAppender )Sign (pageNum int ,field *PdfFieldSignature )error {if field ==nil {return _ge .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");
};_gbce :=field .V ;if _gbce ==nil {return _ge .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");};_bgfbdd :=pageNum -1;
if _bgfbdd < 0||_bgfbdd > len (_bgbc ._ggdc )-1{return _e .Errorf ("\u0070\u0061\u0067\u0065\u0020\u0025\u0064\u0020\u006e\u006f\u0074\u0020f\u006f\u0075\u006e\u0064",pageNum );};_fcca :=_bgbc .Reader .PageList [_bgfbdd ];field .P =_fcca .ToPdfObject ();
if field .T ==nil ||field .T .String ()==""{field .T =_ce .MakeString (_e .Sprintf ("\u0053\u0069\u0067n\u0061\u0074\u0075\u0072\u0065\u0020\u0025\u0064",pageNum ));};_fcca .AddAnnotation (field .PdfAnnotationWidget .PdfAnnotation );if _bgbc ._fed ==_bgbc ._fcda .AcroForm {_bgbc ._fed =_bgbc .Reader .AcroForm ;
};_ccad :=_bgbc ._fed ;if _ccad ==nil {_ccad =NewPdfAcroForm ();};_ccad .SigFlags =_ce .MakeInteger (3);if _ccad .NeedAppearances !=nil {_ccad .NeedAppearances =nil ;};_bgad :=append (_ccad .AllFields (),field .PdfField );_ccad .Fields =&_bgad ;_bgbc .ReplaceAcroForm (_ccad );
_bgbc .UpdatePage (_fcca );_bgbc ._ggdc [_bgfbdd ]=_fcca ;if _ ,_bafc :=field .V .GetDocMDPPermission ();_bafc {_bgbc ._acec =NewPermissions (field .V );};return nil ;};func (_faggbf *PdfReader )loadDSS ()(*DSS ,error ){if _faggbf ._afda .GetCrypter ()!=nil &&!_faggbf ._afda .IsAuthenticated (){return nil ,_e .Errorf ("\u0066\u0069\u006ce\u0020\u006e\u0065\u0065d\u0020\u0074\u006f\u0020\u0062\u0065\u0020d\u0065\u0063\u0072\u0079\u0070\u0074\u0065\u0064\u0020\u0066\u0069\u0072\u0073\u0074");
};_efcgb :=_faggbf ._cfcdg .Get ("\u0044\u0053\u0053");if _efcgb ==nil {return nil ,nil ;};_cafgd ,_ :=_ce .GetIndirect (_efcgb );_efcgb =_ce .TraceToDirectObject (_efcgb );switch _eadcdd :=_efcgb .(type ){case *_ce .PdfObjectNull :return nil ,nil ;case *_ce .PdfObjectDictionary :return _caef (_cafgd ,_eadcdd );
};return nil ,_e .Errorf ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0044\u0053\u0053 \u0065\u006e\u0074\u0072y \u0025\u0054",_efcgb );};
// GetTrailer returns the PDF's trailer dictionary.
func (_dgaag *PdfReader )GetTrailer ()(*_ce .PdfObjectDictionary ,error ){_faegb :=_dgaag ._afda .GetTrailer ();if _faegb ==nil {return nil ,_ge .New ("\u0074r\u0061i\u006c\u0065\u0072\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};return _faegb ,nil ;
};
// ToPdfObject implements interface PdfModel.
func (_fgac *PdfAnnotationWatermark )ToPdfObject ()_ce .PdfObject {_fgac .PdfAnnotation .ToPdfObject ();_cdee :=_fgac ._dec ;_fade :=_cdee .PdfObject .(*_ce .PdfObjectDictionary );_fade .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ce .MakeName ("\u0057a\u0074\u0065\u0072\u006d\u0061\u0072k"));
_fade .SetIfNotNil ("\u0046\u0069\u0078\u0065\u0064\u0050\u0072\u0069\u006e\u0074",_fgac .FixedPrint );return _cdee ;};
// GetNumComponents returns the number of color components of the colorspace device.
// Returns 1 for a grayscale device.
func (_edcd *PdfColorspaceDeviceGray )GetNumComponents ()int {return 1};
// ColorToRGB converts a CalGray color to an RGB color.
func (_agc *PdfColorspaceCalGray )ColorToRGB (color PdfColor )(PdfColor ,error ){_ggbf ,_cbeb :=color .(*PdfColorCalGray );if !_cbeb {_ff .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 ,_ge .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};ANorm :=_ggbf .Val ();X :=_agc .WhitePoint [0]*_egg .Pow (ANorm ,_agc .Gamma );Y :=_agc .WhitePoint [1]*_egg .Pow (ANorm ,_agc .Gamma );Z :=_agc .WhitePoint [2]*_egg .Pow (ANorm ,_agc .Gamma );
_bdef :=3.240479*X +-1.537150*Y +-0.498535*Z ;_eddf :=-0.969256*X +1.875992*Y +0.041556*Z ;_ebg :=0.055648*X +-0.204043*Y +1.057311*Z ;_bdef =_egg .Min (_egg .Max (_bdef ,0),1.0);_eddf =_egg .Min (_egg .Max (_eddf ,0),1.0);_ebg =_egg .Min (_egg .Max (_ebg ,0),1.0);
return NewPdfColorDeviceRGB (_bdef ,_eddf ,_ebg ),nil ;};func (_bfgb *PdfColorspaceDeviceCMYK )String ()string {return "\u0044\u0065\u0076\u0069\u0063\u0065\u0043\u004d\u0059\u004b";};
// PdfShadingType6 is a Coons patch mesh.
type PdfShadingType6 struct{*PdfShading ;BitsPerCoordinate *_ce .PdfObjectInteger ;BitsPerComponent *_ce .PdfObjectInteger ;BitsPerFlag *_ce .PdfObjectInteger ;Decode *_ce .PdfObjectArray ;Function []PdfFunction ;};func (_efae *fontFile )loadFromSegments (_bbegf ,_bgaaf []byte )error {_ff .Log .Trace ("\u006c\u006f\u0061dF\u0072\u006f\u006d\u0053\u0065\u0067\u006d\u0065\u006e\u0074\u0073\u003a\u0020\u0025\u0064\u0020\u0025\u0064",len (_bbegf ),len (_bgaaf ));
_fcbf :=_efae .parseASCIIPart (_bbegf );if _fcbf !=nil {return _fcbf ;};_ff .Log .Trace ("f\u006f\u006e\u0074\u0066\u0069\u006c\u0065\u003d\u0025\u0073",_efae );if len (_bgaaf )==0{return nil ;};_ff .Log .Trace ("f\u006f\u006e\u0074\u0066\u0069\u006c\u0065\u003d\u0025\u0073",_efae );
return nil ;};
// ToPdfObject implements interface PdfModel.
func (_egbe *PdfAnnotationTrapNet )ToPdfObject ()_ce .PdfObject {_egbe .PdfAnnotation .ToPdfObject ();_dfdg :=_egbe ._dec ;_ggac :=_dfdg .PdfObject .(*_ce .PdfObjectDictionary );_ggac .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ce .MakeName ("\u0054r\u0061\u0070\u004e\u0065\u0074"));
return _dfdg ;};
// ToPdfObject returns the PdfFontDescriptor as a PDF dictionary inside an indirect object.
func (_fgdb *PdfFontDescriptor )ToPdfObject ()_ce .PdfObject {_agdd :=_ce .MakeDict ();if _fgdb ._dbbbgg ==nil {_fgdb ._dbbbgg =&_ce .PdfIndirectObject {};};_fgdb ._dbbbgg .PdfObject =_agdd ;_agdd .Set ("\u0054\u0079\u0070\u0065",_ce .MakeName ("\u0046\u006f\u006e\u0074\u0044\u0065\u0073\u0063\u0072i\u0070\u0074\u006f\u0072"));
if _fgdb .FontName !=nil {_agdd .Set ("\u0046\u006f\u006e\u0074\u004e\u0061\u006d\u0065",_fgdb .FontName );};if _fgdb .FontFamily !=nil {_agdd .Set ("\u0046\u006f\u006e\u0074\u0046\u0061\u006d\u0069\u006c\u0079",_fgdb .FontFamily );};if _fgdb .FontStretch !=nil {_agdd .Set ("F\u006f\u006e\u0074\u0053\u0074\u0072\u0065\u0074\u0063\u0068",_fgdb .FontStretch );
};if _fgdb .FontWeight !=nil {_agdd .Set ("\u0046\u006f\u006e\u0074\u0057\u0065\u0069\u0067\u0068\u0074",_fgdb .FontWeight );};if _fgdb .Flags !=nil {_agdd .Set ("\u0046\u006c\u0061g\u0073",_fgdb .Flags );};if _fgdb .FontBBox !=nil {_agdd .Set ("\u0046\u006f\u006e\u0074\u0042\u0042\u006f\u0078",_fgdb .FontBBox );
};if _fgdb .ItalicAngle !=nil {_agdd .Set ("I\u0074\u0061\u006c\u0069\u0063\u0041\u006e\u0067\u006c\u0065",_fgdb .ItalicAngle );};if _fgdb .Ascent !=nil {_agdd .Set ("\u0041\u0073\u0063\u0065\u006e\u0074",_fgdb .Ascent );};if _fgdb .Descent !=nil {_agdd .Set ("\u0044e\u0073\u0063\u0065\u006e\u0074",_fgdb .Descent );
};if _fgdb .Leading !=nil {_agdd .Set ("\u004ce\u0061\u0064\u0069\u006e\u0067",_fgdb .Leading );};if _fgdb .CapHeight !=nil {_agdd .Set ("\u0043a\u0070\u0048\u0065\u0069\u0067\u0068t",_fgdb .CapHeight );};if _fgdb .XHeight !=nil {_agdd .Set ("\u0058H\u0065\u0069\u0067\u0068\u0074",_fgdb .XHeight );
};if _fgdb .StemV !=nil {_agdd .Set ("\u0053\u0074\u0065m\u0056",_fgdb .StemV );};if _fgdb .StemH !=nil {_agdd .Set ("\u0053\u0074\u0065m\u0048",_fgdb .StemH );};if _fgdb .AvgWidth !=nil {_agdd .Set ("\u0041\u0076\u0067\u0057\u0069\u0064\u0074\u0068",_fgdb .AvgWidth );
};if _fgdb .MaxWidth !=nil {_agdd .Set ("\u004d\u0061\u0078\u0057\u0069\u0064\u0074\u0068",_fgdb .MaxWidth );};if _fgdb .MissingWidth !=nil {_agdd .Set ("\u004d\u0069\u0073s\u0069\u006e\u0067\u0057\u0069\u0064\u0074\u0068",_fgdb .MissingWidth );};if _fgdb .FontFile !=nil {_agdd .Set ("\u0046\u006f\u006e\u0074\u0046\u0069\u006c\u0065",_fgdb .FontFile );
};if _fgdb .FontFile2 !=nil {_agdd .Set ("\u0046o\u006e\u0074\u0046\u0069\u006c\u00652",_fgdb .FontFile2 );};if _fgdb .FontFile3 !=nil {_agdd .Set ("\u0046o\u006e\u0074\u0046\u0069\u006c\u00653",_fgdb .FontFile3 );};if _fgdb .CharSet !=nil {_agdd .Set ("\u0043h\u0061\u0072\u0053\u0065\u0074",_fgdb .CharSet );
};if _fgdb .Style !=nil {_agdd .Set ("\u0046\u006f\u006e\u0074\u004e\u0061\u006d\u0065",_fgdb .FontName );};if _fgdb .Lang !=nil {_agdd .Set ("\u004c\u0061\u006e\u0067",_fgdb .Lang );};if _fgdb .FD !=nil {_agdd .Set ("\u0046\u0044",_fgdb .FD );};if _fgdb .CIDSet !=nil {_agdd .Set ("\u0043\u0049\u0044\u0053\u0065\u0074",_fgdb .CIDSet );
};return _fgdb ._dbbbgg ;};func (_effb *PdfReader )resolveReference (_ebdc *_ce .PdfObjectReference )(_ce .PdfObject ,bool ,error ){_geafd ,_gbfaa :=_effb ._afda .ObjCache [int (_ebdc .ObjectNumber )];if !_gbfaa {_ff .Log .Trace ("R\u0065\u0061\u0064\u0065r \u004co\u006f\u006b\u0075\u0070\u0020r\u0065\u0066\u003a\u0020\u0025\u0073",_ebdc );
_abage ,_abddf :=_effb ._afda .LookupByReference (*_ebdc );if _abddf !=nil {return nil ,false ,_abddf ;};_effb ._afda .ObjCache [int (_ebdc .ObjectNumber )]=_abage ;return _abage ,false ,nil ;};return _geafd ,true ,nil ;};
// GetAllContentStreams gets all the content streams for a page as one string.
func (_cecc *PdfPage )GetAllContentStreams ()(string ,error ){_efbga ,_gafef :=_cecc .GetContentStreams ();if _gafef !=nil {return "",_gafef ;};return _g .Join (_efbga ,"\u0020"),nil ;};
// 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 (_edea PdfColor )(PdfColor ,error );
// GetNumComponents returns the number of components in the PdfColorspace.
GetNumComponents ()int ;
// ToPdfObject returns a PdfObject representation of the PdfColorspace.
ToPdfObject ()_ce .PdfObject ;
// ColorFromPdfObjects returns a PdfColor in the given PdfColorspace from an array of PdfObject where each
// PdfObject represents a numeric value.
ColorFromPdfObjects (_ddacd []_ce .PdfObject )(PdfColor ,error );
// ColorFromFloats returns a new PdfColor based on input color components for a given PdfColorspace.
ColorFromFloats (_fgaca []float64 )(PdfColor ,error );
// DecodeArray returns the Decode array for the PdfColorSpace, i.e. the range of each component.
DecodeArray ()[]float64 ;};func (_ecda *pdfFontType0 )bytesToCharcodes (_agedf []byte )([]_dc .CharCode ,bool ){if _ecda ._ggecbf ==nil {return nil ,false ;};_cbgbb ,_gcfgb :=_ecda ._ggecbf .BytesToCharcodes (_agedf );if !_gcfgb {return nil ,false ;};_agab :=make ([]_dc .CharCode ,len (_cbgbb ));
for _fefg ,_cdbga :=range _cbgbb {_agab [_fefg ]=_dc .CharCode (_cdbga );};return _agab ,true ;};func (_aeccd *PdfWriter )writeOutlines ()error {if _aeccd ._cfcac ==nil {return nil ;};_ff .Log .Trace ("\u004f\u0075t\u006c\u0069\u006ee\u0054\u0072\u0065\u0065\u003a\u0020\u0025\u002b\u0076",_aeccd ._cfcac );
_gbgca :=_aeccd ._cfcac .ToPdfObject ();_ff .Log .Trace ("\u004fu\u0074\u006c\u0069\u006e\u0065\u0073\u003a\u0020\u0025\u002b\u0076 \u0028\u0025\u0054\u002c\u0020\u0070\u003a\u0025\u0070\u0029",_gbgca ,_gbgca ,_gbgca );_aeccd ._bbef .Set ("\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0073",_gbgca );
_edecc :=_aeccd .addObjects (_gbgca );if _edecc !=nil {return _edecc ;};return nil ;};
// A returns the value of the A component of the color.
func (_fdaa *PdfColorLab )A ()float64 {return _fdaa [1]};
// NewPdfTransformParamsDocMDP create a PdfTransformParamsDocMDP with the specific permissions.
func NewPdfTransformParamsDocMDP (permission _aef .DocMDPPermission )*PdfTransformParamsDocMDP {return &PdfTransformParamsDocMDP {Type :_ce .MakeName ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u0050\u0061\u0072\u0061\u006d\u0073"),P :_ce .MakeInteger (int64 (permission )),V :_ce .MakeName ("\u0031\u002e\u0032")};
};
// ImageToRGB converts image in CalGray color space to RGB (A, B, C -> X, Y, Z).
func (_afcf *PdfColorspaceCalGray )ImageToRGB (img Image )(Image ,error ){_bdcdg :=_gb .NewReader (img .getBase ());_babd :=_gf .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),3,nil ,nil ,nil );_gebd :=_gb .NewWriter (_babd );
_fafa :=_egg .Pow (2,float64 (img .BitsPerComponent ))-1;_beaf :=make ([]uint32 ,3);var (_gfcg uint32 ;ANorm ,X ,Y ,Z ,_ebbc ,_fefd ,_gfce float64 ;_dccb error ;);for {_gfcg ,_dccb =_bdcdg .ReadSample ();if _dccb ==_gd .EOF {break ;}else if _dccb !=nil {return img ,_dccb ;
};ANorm =float64 (_gfcg )/_fafa ;X =_afcf .WhitePoint [0]*_egg .Pow (ANorm ,_afcf .Gamma );Y =_afcf .WhitePoint [1]*_egg .Pow (ANorm ,_afcf .Gamma );Z =_afcf .WhitePoint [2]*_egg .Pow (ANorm ,_afcf .Gamma );_ebbc =3.240479*X +-1.537150*Y +-0.498535*Z ;
_fefd =-0.969256*X +1.875992*Y +0.041556*Z ;_gfce =0.055648*X +-0.204043*Y +1.057311*Z ;_ebbc =_egg .Min (_egg .Max (_ebbc ,0),1.0);_fefd =_egg .Min (_egg .Max (_fefd ,0),1.0);_gfce =_egg .Min (_egg .Max (_gfce ,0),1.0);_beaf [0]=uint32 (_ebbc *_fafa );
_beaf [1]=uint32 (_fefd *_fafa );_beaf [2]=uint32 (_gfce *_fafa );if _dccb =_gebd .WriteSamples (_beaf );_dccb !=nil {return img ,_dccb ;};};return _ffba (&_babd ),nil ;};
// ColorToRGB converts a ICCBased color to an RGB color.
func (_bdcf *PdfColorspaceICCBased )ColorToRGB (color PdfColor )(PdfColor ,error ){if _bdcf .Alternate ==nil {_ff .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 _bdcf .N ==1{_ff .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");
_eebg :=NewPdfColorspaceDeviceGray ();return _eebg .ColorToRGB (color );}else if _bdcf .N ==3{_ff .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 _bdcf .N ==4{_ff .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");
_dggd :=NewPdfColorspaceDeviceCMYK ();return _dggd .ColorToRGB (color );}else {return nil ,_ge .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");
};};_ff .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",_bdcf );
return _bdcf .Alternate .ColorToRGB (color );};
// 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 {_bbbga ,_daeb :=NewStandard14Font (basefont );if _daeb !=nil {panic (_e .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0053\u0074\u0061n\u0064\u0061\u0072\u0064\u0031\u0034\u0046\u006f\u006e\u0074 \u0025\u0023\u0071",basefont ));
};return _bbbga ;};
// ToPdfObject implements interface PdfModel.
func (_gbff *PdfAnnotationPopup )ToPdfObject ()_ce .PdfObject {_gbff .PdfAnnotation .ToPdfObject ();_cgca :=_gbff ._dec ;_fdge :=_cgca .PdfObject .(*_ce .PdfObjectDictionary );_fdge .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ce .MakeName ("\u0050\u006f\u0070u\u0070"));
_fdge .SetIfNotNil ("\u0050\u0061\u0072\u0065\u006e\u0074",_gbff .Parent );_fdge .SetIfNotNil ("\u004f\u0070\u0065\u006e",_gbff .Open );return _cgca ;};
// GetRuneMetrics returns the character metrics for the specified rune.
// A bool flag is returned to indicate whether or not the entry was found.
func (_egbfd pdfFontType0 )GetRuneMetrics (r rune )(_ee .CharMetrics ,bool ){if _egbfd .DescendantFont ==nil {_ff .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",_egbfd );
return _ee .CharMetrics {},false ;};return _egbfd .DescendantFont .GetRuneMetrics (r );};
// 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 ;
// ImageToRGB returns the passed in image. Method exists in order to satisfy
// the PdfColorspace interface.
func (_gdad *PdfColorspaceDeviceRGB )ImageToRGB (img Image )(Image ,error ){return img ,nil };func (_eadcb *PdfReader )newPdfAnnotationRichMediaFromDict (_becc *_ce .PdfObjectDictionary )(*PdfAnnotationRichMedia ,error ){_cbf :=&PdfAnnotationRichMedia {};
_cbf .RichMediaSettings =_becc .Get ("\u0052\u0069\u0063\u0068\u004d\u0065\u0064\u0069\u0061\u0053\u0065\u0074t\u0069\u006e\u0067\u0073");_cbf .RichMediaContent =_becc .Get ("\u0052\u0069c\u0068\u004d\u0065d\u0069\u0061\u0043\u006f\u006e\u0074\u0065\u006e\u0074");
return _cbf ,nil ;};func _bdfdd (_ffdb *_ce .PdfObjectDictionary )bool {for _ ,_gcacc :=range _ffdb .Keys (){if _ ,_dcbdb :=_abeaae [_gcacc .String ()];_dcbdb {return true ;};};return false ;};
// NewOutline returns a new outline instance.
func NewOutline ()*Outline {return &Outline {}};func (_bcff *PdfReader )newPdfActionHideFromDict (_cgaf *_ce .PdfObjectDictionary )(*PdfActionHide ,error ){return &PdfActionHide {T :_cgaf .Get ("\u0054"),H :_cgaf .Get ("\u0048")},nil ;};func (_cfeef *PdfWriter )setWriter (_gefd _gd .Writer ){_cfeef ._cgdfab =_cfeef ._bffgf ;
_cfeef ._cafdf =_dg .NewWriter (_gefd );};
// 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 _ce .PdfObject ;FontFamily _ce .PdfObject ;FontStretch _ce .PdfObject ;FontWeight _ce .PdfObject ;Flags _ce .PdfObject ;FontBBox _ce .PdfObject ;ItalicAngle _ce .PdfObject ;Ascent _ce .PdfObject ;Descent _ce .PdfObject ;
Leading _ce .PdfObject ;CapHeight _ce .PdfObject ;XHeight _ce .PdfObject ;StemV _ce .PdfObject ;StemH _ce .PdfObject ;AvgWidth _ce .PdfObject ;MaxWidth _ce .PdfObject ;MissingWidth _ce .PdfObject ;FontFile _ce .PdfObject ;FontFile2 _ce .PdfObject ;FontFile3 _ce .PdfObject ;
CharSet _ce .PdfObject ;_cgfb int ;_abcb float64 ;*fontFile ;_cdfe *_ee .TtfType ;
// Additional entries for CIDFonts
Style _ce .PdfObject ;Lang _ce .PdfObject ;FD _ce .PdfObject ;CIDSet _ce .PdfObject ;_dbbbgg *_ce .PdfIndirectObject ;};
// 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 _gd .ReadSeeker )(*CompliancePdfReader ,error ){const _bgcdd ="\u006d\u006f\u0064\u0065l\u003a\u004e\u0065\u0077\u0043\u006f\u006d\u0070\u006c\u0069a\u006ec\u0065\u0050\u0064\u0066\u0052\u0065\u0061d\u0065\u0072";_dddg ,_eddg :=_aaegd (rs ,&ReaderOpts {ComplianceMode :true },false ,_bgcdd );
if _eddg !=nil {return nil ,_eddg ;};return &CompliancePdfReader {PdfReader :_dddg },nil ;};func (_bcae *PdfReader )newPdfAnnotationFreeTextFromDict (_ggbc *_ce .PdfObjectDictionary )(*PdfAnnotationFreeText ,error ){_bbcc :=PdfAnnotationFreeText {};_fad ,_dcc :=_bcae .newPdfAnnotationMarkupFromDict (_ggbc );
if _dcc !=nil {return nil ,_dcc ;};_bbcc .PdfAnnotationMarkup =_fad ;_bbcc .DA =_ggbc .Get ("\u0044\u0041");_bbcc .Q =_ggbc .Get ("\u0051");_bbcc .RC =_ggbc .Get ("\u0052\u0043");_bbcc .DS =_ggbc .Get ("\u0044\u0053");_bbcc .CL =_ggbc .Get ("\u0043\u004c");
_bbcc .IT =_ggbc .Get ("\u0049\u0054");_bbcc .BE =_ggbc .Get ("\u0042\u0045");_bbcc .RD =_ggbc .Get ("\u0052\u0044");_bbcc .BS =_ggbc .Get ("\u0042\u0053");_bbcc .LE =_ggbc .Get ("\u004c\u0045");return &_bbcc ,nil ;};func (_dcfbg *PdfFunctionType0 )processSamples ()error {_acae :=_gb .ResampleBytes (_dcfbg ._becgb ,_dcfbg .BitsPerSample );
_dcfbg ._dfcag =_acae ;return nil ;};
// GetRevisionNumber returns the version of the current Pdf document
func (_dcgcg *PdfReader )GetRevisionNumber ()int {return _dcgcg ._afda .GetRevisionNumber ()};func (_bbdbf *PdfSignature )extractChainFromPKCS7 ()([]*_eg .Certificate ,error ){_dgced ,_gdccc :=_ec .Parse (_bbdbf .Contents .Bytes ());if _gdccc !=nil {return nil ,_gdccc ;
};return _dgced .Certificates ,nil ;};
// PdfAnnotation3D represents 3D annotations.
// (Section 13.6.2).
type PdfAnnotation3D struct{*PdfAnnotation ;T3DD _ce .PdfObject ;T3DV _ce .PdfObject ;T3DA _ce .PdfObject ;T3DI _ce .PdfObject ;T3DB _ce .PdfObject ;};
// NewLTV returns a new LTV client.
func NewLTV (appender *PdfAppender )(*LTV ,error ){_gfgf :=appender .Reader .DSS ;if _gfgf ==nil {_gfgf =NewDSS ();};if _dafe :=_gfgf .GenerateHashMaps ();_dafe !=nil {return nil ,_dafe ;};return &LTV {CertClient :_bcd .NewCertClient (),OCSPClient :_bcd .NewOCSPClient (),CRLClient :_bcd .NewCRLClient (),SkipExisting :true ,_fdfad :appender ,_dcacf :_gfgf },nil ;
};func (_cafaa *XObjectImage )getParamsDict ()*_ce .PdfObjectDictionary {_bdde :=_ce .MakeDict ();_bdde .Set ("\u0057\u0069\u0064t\u0068",_ce .MakeInteger (*_cafaa .Width ));_bdde .Set ("\u0048\u0065\u0069\u0067\u0068\u0074",_ce .MakeInteger (*_cafaa .Height ));
_bdde .Set ("\u0043o\u006co\u0072\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074\u0073",_ce .MakeInteger (int64 (_cafaa .ColorSpace .GetNumComponents ())));_bdde .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_ce .MakeInteger (*_cafaa .BitsPerComponent ));
return _bdde ;};
// 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 *_ce .PdfObjectStream )(*XObjectImage ,error ){_gaebe :=&XObjectImage {};_gaebe ._gefdf =stream ;_gcabc :=*(stream .PdfObjectDictionary );_cgfcd ,_fbdb :=_ce .NewEncoderFromStream (stream );if _fbdb !=nil {return nil ,_fbdb ;
};_gaebe .Filter =_cgfcd ;if _cggc :=_ce .TraceToDirectObject (_gcabc .Get ("\u0057\u0069\u0064t\u0068"));_cggc !=nil {_ddbe ,_egdg :=_cggc .(*_ce .PdfObjectInteger );if !_egdg {return nil ,_ge .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");
};_acaeg :=int64 (*_ddbe );_gaebe .Width =&_acaeg ;}else {return nil ,_ge .New ("\u0077\u0069\u0064\u0074\u0068\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};if _gbbbb :=_ce .TraceToDirectObject (_gcabc .Get ("\u0048\u0065\u0069\u0067\u0068\u0074"));
_gbbbb !=nil {_fabee ,_dagbb :=_gbbbb .(*_ce .PdfObjectInteger );if !_dagbb {return nil ,_ge .New ("i\u006e\u0076\u0061\u006c\u0069\u0064 \u0069\u006d\u0061\u0067\u0065\u0020\u0068\u0065\u0069g\u0068\u0074\u0020o\u0062j\u0065\u0063\u0074");};_ebddeb :=int64 (*_fabee );
_gaebe .Height =&_ebddeb ;}else {return nil ,_ge .New ("\u0068\u0065\u0069\u0067\u0068\u0074\u0020\u006d\u0069s\u0073\u0069\u006e\u0067");};if _ddccc :=_ce .TraceToDirectObject (_gcabc .Get ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065"));
_ddccc !=nil {_cabef ,_edfff :=NewPdfColorspaceFromPdfObject (_ddccc );if _edfff !=nil {return nil ,_edfff ;};_gaebe .ColorSpace =_cabef ;}else {_ff .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");
_gaebe .ColorSpace =NewPdfColorspaceDeviceGray ();};if _dfgdc :=_ce .TraceToDirectObject (_gcabc .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074"));_dfgdc !=nil {_adecd ,_abagea :=_dfgdc .(*_ce .PdfObjectInteger );
if !_abagea {return nil ,_ge .New ("i\u006e\u0076\u0061\u006c\u0069\u0064 \u0069\u006d\u0061\u0067\u0065\u0020\u0068\u0065\u0069g\u0068\u0074\u0020o\u0062j\u0065\u0063\u0074");};_cgdda :=int64 (*_adecd );_gaebe .BitsPerComponent =&_cgdda ;};_gaebe .Intent =_gcabc .Get ("\u0049\u006e\u0074\u0065\u006e\u0074");
_gaebe .ImageMask =_gcabc .Get ("\u0049m\u0061\u0067\u0065\u004d\u0061\u0073k");_gaebe .Mask =_gcabc .Get ("\u004d\u0061\u0073\u006b");_gaebe .Decode =_gcabc .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");_gaebe .Interpolate =_gcabc .Get ("I\u006e\u0074\u0065\u0072\u0070\u006f\u006c\u0061\u0074\u0065");
_gaebe .Alternatives =_gcabc .Get ("\u0041\u006c\u0074e\u0072\u006e\u0061\u0074\u0069\u0076\u0065\u0073");_gaebe .SMask =_gcabc .Get ("\u0053\u004d\u0061s\u006b");_gaebe .SMaskInData =_gcabc .Get ("S\u004d\u0061\u0073\u006b\u0049\u006e\u0044\u0061\u0074\u0061");
_gaebe .Matte =_gcabc .Get ("\u004d\u0061\u0074t\u0065");_gaebe .Name =_gcabc .Get ("\u004e\u0061\u006d\u0065");_gaebe .StructParent =_gcabc .Get ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074");_gaebe .ID =_gcabc .Get ("\u0049\u0044");
_gaebe .OPI =_gcabc .Get ("\u004f\u0050\u0049");_gaebe .Metadata =_gcabc .Get ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");_gaebe .OC =_gcabc .Get ("\u004f\u0043");_gaebe .Stream =stream .Stream ;return _gaebe ,nil ;};
// 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 *_ce .PdfObjectArray ;ExtGState _ce .PdfObject ;};
// PdfOutline represents a PDF outline dictionary (Table 152 - p. 376).
type PdfOutline struct{PdfOutlineTreeNode ;Parent *PdfOutlineTreeNode ;Count *int64 ;_aedbf *_ce .PdfIndirectObject ;};func (_dgec *PdfReader )newPdfAnnotationLineFromDict (_ebea *_ce .PdfObjectDictionary )(*PdfAnnotationLine ,error ){_fbbc :=PdfAnnotationLine {};
_fbbf ,_ccfb :=_dgec .newPdfAnnotationMarkupFromDict (_ebea );if _ccfb !=nil {return nil ,_ccfb ;};_fbbc .PdfAnnotationMarkup =_fbbf ;_fbbc .L =_ebea .Get ("\u004c");_fbbc .BS =_ebea .Get ("\u0042\u0053");_fbbc .LE =_ebea .Get ("\u004c\u0045");_fbbc .IC =_ebea .Get ("\u0049\u0043");
_fbbc .LL =_ebea .Get ("\u004c\u004c");_fbbc .LLE =_ebea .Get ("\u004c\u004c\u0045");_fbbc .Cap =_ebea .Get ("\u0043\u0061\u0070");_fbbc .IT =_ebea .Get ("\u0049\u0054");_fbbc .LLO =_ebea .Get ("\u004c\u004c\u004f");_fbbc .CP =_ebea .Get ("\u0043\u0050");
_fbbc .Measure =_ebea .Get ("\u004de\u0061\u0073\u0075\u0072\u0065");_fbbc .CO =_ebea .Get ("\u0043\u004f");return &_fbbc ,nil ;};
// SetNamedDestinations sets the Dests entry in the PDF catalog.
// See section 12.3.2.3 "Named Destinations" (p. 367 PDF32000_2008).
func (_cdaab *PdfWriter )SetNamedDestinations (dests _ce .PdfObject )error {if dests ==nil {return nil ;};_ff .Log .Trace ("\u0053e\u0074\u0074\u0069\u006e\u0067\u0020\u0063\u0061\u0074\u0061\u006co\u0067\u0020\u0044\u0065\u0073\u0074\u0073\u002e\u002e\u002e");
_cdaab ._bbef .Set ("\u0044\u0065\u0073t\u0073",dests );return _cdaab .addObjects (dests );};
// ToPdfObject converts the pdfCIDFontType2 to a PDF representation.
func (_gcfaga *pdfCIDFontType2 )ToPdfObject ()_ce .PdfObject {if _gcfaga ._edbb ==nil {_gcfaga ._edbb =&_ce .PdfIndirectObject {};};_eece :=_gcfaga .baseFields ().asPdfObjectDictionary ("\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032");
_gcfaga ._edbb .PdfObject =_eece ;if _gcfaga .CIDSystemInfo !=nil {_eece .Set ("\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f",_gcfaga .CIDSystemInfo );};if _gcfaga .DW !=nil {_eece .Set ("\u0044\u0057",_gcfaga .DW );};
if _gcfaga .DW2 !=nil {_eece .Set ("\u0044\u0057\u0032",_gcfaga .DW2 );};if _gcfaga .W !=nil {_eece .Set ("\u0057",_gcfaga .W );};if _gcfaga .W2 !=nil {_eece .Set ("\u0057\u0032",_gcfaga .W2 );};if _gcfaga .CIDToGIDMap !=nil {_eece .Set ("C\u0049\u0044\u0054\u006f\u0047\u0049\u0044\u004d\u0061\u0070",_gcfaga .CIDToGIDMap );
};return _gcfaga ._edbb ;};
// GetNumComponents returns the number of color components of the colorspace device.
// Returns 3 for a Lab device.
func (_gbceb *PdfColorspaceLab )GetNumComponents ()int {return 3};
// ToPdfObject implements interface PdfModel.
func (_gddd *PdfAnnotationSquare )ToPdfObject ()_ce .PdfObject {_gddd .PdfAnnotation .ToPdfObject ();_ebfg :=_gddd ._dec ;_bbg :=_ebfg .PdfObject .(*_ce .PdfObjectDictionary );if _gddd .PdfAnnotationMarkup !=nil {_gddd .PdfAnnotationMarkup .appendToPdfDictionary (_bbg );
};_bbg .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ce .MakeName ("\u0053\u0071\u0075\u0061\u0072\u0065"));_bbg .SetIfNotNil ("\u0042\u0053",_gddd .BS );_bbg .SetIfNotNil ("\u0049\u0043",_gddd .IC );_bbg .SetIfNotNil ("\u0042\u0045",_gddd .BE );
_bbg .SetIfNotNil ("\u0052\u0044",_gddd .RD );return _ebfg ;};
// PdfBorderEffect represents a PDF border effect.
type PdfBorderEffect struct{S *BorderEffect ;I *float64 ;};
// NewPdfAnnotationRedact returns a new redact annotation.
func NewPdfAnnotationRedact ()*PdfAnnotationRedact {_aece :=NewPdfAnnotation ();_cdced :=&PdfAnnotationRedact {};_cdced .PdfAnnotation =_aece ;_cdced .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_aece .SetContext (_cdced );return _cdced ;};
// NewPdfAnnotationRichMedia returns a new rich media annotation.
func NewPdfAnnotationRichMedia ()*PdfAnnotationRichMedia {_ece :=NewPdfAnnotation ();_ccca :=&PdfAnnotationRichMedia {};_ccca .PdfAnnotation =_ece ;_ece .SetContext (_ccca );return _ccca ;};func (_gdeba fontCommon )asPdfObjectDictionary (_cfgafa string )*_ce .PdfObjectDictionary {if _cfgafa !=""&&_gdeba ._baafb !=""&&_cfgafa !=_gdeba ._baafb {_ff .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",_cfgafa ,_gdeba );
}else if _cfgafa ==""&&_gdeba ._baafb ==""{_ff .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",_gdeba );
}else if _gdeba ._baafb ==""{_gdeba ._baafb =_cfgafa ;};_fbegb :=_ce .MakeDict ();_fbegb .Set ("\u0054\u0079\u0070\u0065",_ce .MakeName ("\u0046\u006f\u006e\u0074"));_fbegb .Set ("\u0042\u0061\u0073\u0065\u0046\u006f\u006e\u0074",_ce .MakeName (_gdeba ._egacd ));
_fbegb .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ce .MakeName (_gdeba ._baafb ));if _gdeba ._daebd !=nil {_fbegb .Set ("\u0046\u006f\u006e\u0074\u0044\u0065\u0073\u0063\u0072i\u0070\u0074\u006f\u0072",_gdeba ._daebd .ToPdfObject ());};if _gdeba ._bcef !=nil {_fbegb .Set ("\u0054o\u0055\u006e\u0069\u0063\u006f\u0064e",_gdeba ._bcef );
}else if _gdeba ._dgfcg !=nil {_eegee ,_cdaa :=_gdeba ._dgfcg .Stream ();if _cdaa !=nil {_ff .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",_cdaa );
}else {_fbegb .Set ("\u0054o\u0055\u006e\u0069\u0063\u006f\u0064e",_eegee );};};return _fbegb ;};
// 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 (_fddd *PdfFont )CharcodesToUnicodeWithStats (charcodes []_dc .CharCode )(_begfa []rune ,_gdabd ,_fbfc int ){_eafcf ,_gdabd ,_fbfc :=_fddd .CharcodesToStrings (charcodes );return []rune (_g .Join (_eafcf ,"")),_gdabd ,_fbfc ;};
// String returns a string that describes `base`.
func (_gbad fontCommon )String ()string {return _e .Sprintf ("\u0046\u004f\u004e\u0054\u007b\u0025\u0073\u007d",_gbad .coreString ());};
// NewPdfOutline returns an initialized PdfOutline.
func NewPdfOutline ()*PdfOutline {_eeffd :=&PdfOutline {_aedbf :_ce .MakeIndirectObject (_ce .MakeDict ())};_eeffd ._edda =_eeffd ;return _eeffd ;};
// ImageToRGB returns an error since an image cannot be defined in a pattern colorspace.
func (_cgcgb *PdfColorspaceSpecialPattern )ImageToRGB (img Image )(Image ,error ){_ff .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 ,_ge .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 _agdcf (_edcef *_ce .PdfObjectDictionary ,_ebbbb *fontCommon )(*pdfCIDFontType0 ,error ){if _ebbbb ._baafb !="\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0030"{_ff .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",_ebbbb );
return nil ,_ce .ErrRangeError ;};_efge :=_gacga (_ebbbb );_abae ,_bebgg :=_ce .GetDict (_edcef .Get ("\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f"));if !_bebgg {_ff .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",_ebbbb );
return nil ,ErrRequiredAttributeMissing ;};_efge .CIDSystemInfo =_abae ;_efge .DW =_edcef .Get ("\u0044\u0057");_efge .W =_edcef .Get ("\u0057");_efge .DW2 =_edcef .Get ("\u0044\u0057\u0032");_efge .W2 =_edcef .Get ("\u0057\u0032");_efge ._fcae =1000.0;
if _gegfd ,_ceeg :=_ce .GetNumberAsFloat (_efge .DW );_ceeg ==nil {_efge ._fcae =_gegfd ;};_aaaae ,_ddaba :=_baef (_efge .W );if _ddaba !=nil {return nil ,_ddaba ;};if _aaaae ==nil {_aaaae =map[_dc .CharCode ]float64 {};};_efge ._acbf =_aaaae ;return _efge ,nil ;
};func (_eadf *pdfCIDFontType2 )getFontDescriptor ()*PdfFontDescriptor {return _eadf ._daebd };
// PdfAnnotationRichMedia represents Rich Media annotations.
type PdfAnnotationRichMedia struct{*PdfAnnotation ;RichMediaSettings _ce .PdfObject ;RichMediaContent _ce .PdfObject ;};
// GetNumComponents returns the number of color components (1 for grayscale).
func (_bgbd *PdfColorDeviceGray )GetNumComponents ()int {return 1};type crossReference struct{Type int ;
// Type 1
Offset int64 ;Generation int64 ;
// Type 2
ObjectNumber int ;Index int ;};func (_fgcb *PdfReader )newPdfAnnotationPopupFromDict (_bdee *_ce .PdfObjectDictionary )(*PdfAnnotationPopup ,error ){_bbcee :=PdfAnnotationPopup {};_bbcee .Parent =_bdee .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");_bbcee .Open =_bdee .Get ("\u004f\u0070\u0065\u006e");
return &_bbcee ,nil ;};
// ImageToRGB converts ICCBased colorspace image to RGB and returns the result.
func (_cbee *PdfColorspaceICCBased )ImageToRGB (img Image )(Image ,error ){if _cbee .Alternate ==nil {_ff .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 _cbee .N ==1{_ff .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");
_aeecd :=NewPdfColorspaceDeviceGray ();return _aeecd .ImageToRGB (img );}else if _cbee .N ==3{_ff .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 _cbee .N ==4{_ff .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");
_eecd :=NewPdfColorspaceDeviceCMYK ();return _eecd .ImageToRGB (img );}else {return img ,_ge .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");
};};_ff .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",_cbee );
_gabg ,_bbbd :=_cbee .Alternate .ImageToRGB (img );_ff .Log .Trace ("I\u0043C\u0020\u0049\u006e\u0070\u0075\u0074\u0020\u0069m\u0061\u0067\u0065\u003a %\u002b\u0076",img );_ff .Log .Trace ("I\u0043\u0043\u0020\u004fut\u0070u\u0074\u0020\u0069\u006d\u0061g\u0065\u003a\u0020\u0025\u002b\u0076",_gabg );
return _gabg ,_bbbd ;};
// PdfAnnotationTrapNet represents TrapNet annotations.
// (Section 12.5.6.21).
type PdfAnnotationTrapNet struct{*PdfAnnotation };func _adc (_gdbeg _ce .PdfObject )(*PdfColorspaceCalRGB ,error ){_gabc :=NewPdfColorspaceCalRGB ();if _cbdd ,_egcda :=_gdbeg .(*_ce .PdfIndirectObject );_egcda {_gabc ._agbda =_cbdd ;};_gdbeg =_ce .TraceToDirectObject (_gdbeg );
_fdac ,_ebbe :=_gdbeg .(*_ce .PdfObjectArray );if !_ebbe {return nil ,_e .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _fdac .Len ()!=2{return nil ,_e .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0043\u0061\u006c\u0052G\u0042 \u0063o\u006c\u006f\u0072\u0073\u0070\u0061\u0063e");
};_gdbeg =_ce .TraceToDirectObject (_fdac .Get (0));_acbdc ,_ebbe :=_gdbeg .(*_ce .PdfObjectName );if !_ebbe {return nil ,_e .Errorf ("\u0043\u0061l\u0052\u0047\u0042\u0020\u006e\u0061\u006d\u0065\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u004e\u0061\u006d\u0065\u0020\u006f\u0062je\u0063\u0074");
};if *_acbdc !="\u0043\u0061\u006c\u0052\u0047\u0042"{return nil ,_e .Errorf ("\u006e\u006f\u0074 a\u0020\u0043\u0061\u006c\u0052\u0047\u0042\u0020\u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063\u0065");};_gdbeg =_ce .TraceToDirectObject (_fdac .Get (1));
_fdga ,_ebbe :=_gdbeg .(*_ce .PdfObjectDictionary );if !_ebbe {return nil ,_e .Errorf ("\u0043\u0061l\u0052\u0047\u0042\u0020\u006e\u0061\u006d\u0065\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u004e\u0061\u006d\u0065\u0020\u006f\u0062je\u0063\u0074");};
_gdbeg =_fdga .Get ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074");_gdbeg =_ce .TraceToDirectObject (_gdbeg );_cadd ,_ebbe :=_gdbeg .(*_ce .PdfObjectArray );if !_ebbe {return nil ,_e .Errorf ("\u0043\u0061\u006c\u0052\u0047\u0042\u003a\u0020\u0049\u006e\u0076a\u006c\u0069\u0064\u0020\u0057\u0068\u0069\u0074\u0065\u0050o\u0069\u006e\u0074");
};if _cadd .Len ()!=3{return nil ,_e .Errorf ("\u0043\u0061\u006c\u0052\u0047\u0042\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064 \u0057h\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074\u0020\u0061\u0072\u0072\u0061\u0079");};_efac ,_cccad :=_cadd .GetAsFloat64Slice ();
if _cccad !=nil {return nil ,_cccad ;};_gabc .WhitePoint =_efac ;_gdbeg =_fdga .Get ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074");if _gdbeg !=nil {_gdbeg =_ce .TraceToDirectObject (_gdbeg );_fefad ,_fbafa :=_gdbeg .(*_ce .PdfObjectArray );
if !_fbafa {return nil ,_e .Errorf ("\u0043\u0061\u006c\u0052\u0047\u0042\u003a\u0020\u0049\u006e\u0076a\u006c\u0069\u0064\u0020\u0042\u006c\u0061\u0063\u006b\u0050o\u0069\u006e\u0074");};if _fefad .Len ()!=3{return nil ,_e .Errorf ("\u0043\u0061\u006c\u0052\u0047\u0042\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064 \u0042l\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074\u0020\u0061\u0072\u0072\u0061\u0079");
};_aege ,_ccac :=_fefad .GetAsFloat64Slice ();if _ccac !=nil {return nil ,_ccac ;};_gabc .BlackPoint =_aege ;};_gdbeg =_fdga .Get ("\u0047\u0061\u006dm\u0061");if _gdbeg !=nil {_gdbeg =_ce .TraceToDirectObject (_gdbeg );_fcef ,_cfgef :=_gdbeg .(*_ce .PdfObjectArray );
if !_cfgef {return nil ,_e .Errorf ("C\u0061\u006c\u0052\u0047B:\u0020I\u006e\u0076\u0061\u006c\u0069d\u0020\u0047\u0061\u006d\u006d\u0061");};if _fcef .Len ()!=3{return nil ,_e .Errorf ("C\u0061\u006c\u0052\u0047\u0042\u003a \u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0047a\u006d\u006d\u0061 \u0061r\u0072\u0061\u0079");
};_cdef ,_dfed :=_fcef .GetAsFloat64Slice ();if _dfed !=nil {return nil ,_dfed ;};_gabc .Gamma =_cdef ;};_gdbeg =_fdga .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");if _gdbeg !=nil {_gdbeg =_ce .TraceToDirectObject (_gdbeg );_baa ,_gdfg :=_gdbeg .(*_ce .PdfObjectArray );
if !_gdfg {return nil ,_e .Errorf ("\u0043\u0061\u006c\u0052GB\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u004d\u0061\u0074\u0072i\u0078");};if _baa .Len ()!=9{_ff .Log .Error ("\u004d\u0061t\u0072\u0069\u0078 \u0061\u0072\u0072\u0061\u0079\u003a\u0020\u0025\u0073",_baa .String ());
return nil ,_e .Errorf ("\u0043\u0061\u006c\u0052G\u0042\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064 \u004da\u0074\u0072\u0069\u0078\u0020\u0061\u0072r\u0061\u0079");};_ecaaf ,_dfbe :=_baa .GetAsFloat64Slice ();if _dfbe !=nil {return nil ,_dfbe ;
};_gabc .Matrix =_ecaaf ;};return _gabc ,nil ;};
// PdfOutputIntentType is the subtype of the given PdfOutputIntent.
type PdfOutputIntentType int ;func (_dbdc *PdfReader )traverseObjectData (_acggg _ce .PdfObject )error {return _ce .ResolveReferencesDeep (_acggg ,_dbdc ._efdafe );};
// ToPdfObject implements interface PdfModel.
func (_baf *PdfAnnotationStamp )ToPdfObject ()_ce .PdfObject {_baf .PdfAnnotation .ToPdfObject ();_dea :=_baf ._dec ;_cfc :=_dea .PdfObject .(*_ce .PdfObjectDictionary );_baf .PdfAnnotationMarkup .appendToPdfDictionary (_cfc );_cfc .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ce .MakeName ("\u0053\u0074\u0061m\u0070"));
_cfc .SetIfNotNil ("\u004e\u0061\u006d\u0065",_baf .Name );return _dea ;};func _gabd (_gbca *_ce .PdfObjectDictionary )(*PdfFieldText ,error ){_gdcf :=&PdfFieldText {};_gdcf .DA ,_ =_ce .GetString (_gbca .Get ("\u0044\u0041"));_gdcf .Q ,_ =_ce .GetInt (_gbca .Get ("\u0051"));
_gdcf .DS ,_ =_ce .GetString (_gbca .Get ("\u0044\u0053"));_gdcf .RV =_gbca .Get ("\u0052\u0056");_gdcf .MaxLen ,_ =_ce .GetInt (_gbca .Get ("\u004d\u0061\u0078\u004c\u0065\u006e"));return _gdcf ,nil ;};
// SetFilter sets compression filter. Decodes with current filter sets and
// encodes the data with the new filter.
func (_begg *XObjectImage )SetFilter (encoder _ce .StreamEncoder )error {_cgcgadd :=_begg .Stream ;_ebfed ,_cbbaf :=_begg .Filter .DecodeBytes (_cgcgadd );if _cbbaf !=nil {return _cbbaf ;};_begg .Filter =encoder ;encoder .UpdateParams (_begg .getParamsDict ());
_cgcgadd ,_cbbaf =encoder .EncodeBytes (_ebfed );if _cbbaf !=nil {return _cbbaf ;};_begg .Stream =_cgcgadd ;return nil ;};
// PdfAction represents an action in PDF (section 12.6 p. 412).
type PdfAction struct{_gbf PdfModel ;Type _ce .PdfObject ;S _ce .PdfObject ;Next _ce .PdfObject ;_bcc *_ce .PdfIndirectObject ;};
// NewPdfField returns an initialized PdfField.
func NewPdfField ()*PdfField {return &PdfField {_aadeb :_ce .MakeIndirectObject (_ce .MakeDict ())}};
// GetContainingPdfObject returns the page as a dictionary within an PdfIndirectObject.
func (_daefg *PdfPage )GetContainingPdfObject ()_ce .PdfObject {return _daefg ._acbbb };
// PdfActionGoToR represents a GoToR action.
type PdfActionGoToR struct{*PdfAction ;F *PdfFilespec ;D _ce .PdfObject ;NewWindow _ce .PdfObject ;};
// AddFont adds a font dictionary to the Font resources.
func (_bgffc *PdfPage )AddFont (name _ce .PdfObjectName ,font _ce .PdfObject )error {if _bgffc .Resources ==nil {_bgffc .Resources =NewPdfPageResources ();};if _bgffc .Resources .Font ==nil {_bgffc .Resources .Font =_ce .MakeDict ();};_bfda ,_cbbgd :=_ce .TraceToDirectObject (_bgffc .Resources .Font ).(*_ce .PdfObjectDictionary );
if !_cbbgd {_ff .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",_ce .TraceToDirectObject (_bgffc .Resources .Font ));
return _ge .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_bfda .Set (name ,font );return nil ;};
// ToInteger convert to an integer format.
func (_gfcef *PdfColorCalRGB )ToInteger (bits int )[3]uint32 {_aefcb :=_egg .Pow (2,float64 (bits ))-1;return [3]uint32 {uint32 (_aefcb *_gfcef .A ()),uint32 (_aefcb *_gfcef .B ()),uint32 (_aefcb *_gfcef .C ())};};
// ToPdfObject returns a PDF object representation of the outline item.
func (_cfccce *OutlineItem )ToPdfObject ()_ce .PdfObject {_geac ,_ :=_cfccce .ToPdfOutlineItem ();return _geac .ToPdfObject ();};
// ToPdfObject sets the common field elements.
// Note: Call the more field context's ToPdfObject to set both the generic and
// non-generic information.
func (_fcfc *PdfField )ToPdfObject ()_ce .PdfObject {_aegc :=_fcfc ._aadeb ;_aeffg :=_aegc .PdfObject .(*_ce .PdfObjectDictionary );_effdf :=_ce .MakeArray ();for _ ,_badbe :=range _fcfc .Kids {_effdf .Append (_badbe .ToPdfObject ());};for _ ,_adcb :=range _fcfc .Annotations {if _adcb ._dec !=_fcfc ._aadeb {_effdf .Append (_adcb .GetContext ().ToPdfObject ());
};};if _fcfc .Parent !=nil {_aeffg .SetIfNotNil ("\u0050\u0061\u0072\u0065\u006e\u0074",_fcfc .Parent .GetContainingPdfObject ());};if _effdf .Len ()> 0{_aeffg .Set ("\u004b\u0069\u0064\u0073",_effdf );};_aeffg .SetIfNotNil ("\u0046\u0054",_fcfc .FT );
_aeffg .SetIfNotNil ("\u0054",_fcfc .T );_aeffg .SetIfNotNil ("\u0054\u0055",_fcfc .TU );_aeffg .SetIfNotNil ("\u0054\u004d",_fcfc .TM );_aeffg .SetIfNotNil ("\u0046\u0066",_fcfc .Ff );_aeffg .SetIfNotNil ("\u0056",_fcfc .V );_aeffg .SetIfNotNil ("\u0044\u0056",_fcfc .DV );
_aeffg .SetIfNotNil ("\u0041\u0041",_fcfc .AA );if _fcfc .VariableText !=nil {_aeffg .SetIfNotNil ("\u0044\u0041",_fcfc .VariableText .DA );_aeffg .SetIfNotNil ("\u0051",_fcfc .VariableText .Q );_aeffg .SetIfNotNil ("\u0044\u0053",_fcfc .VariableText .DS );
_aeffg .SetIfNotNil ("\u0052\u0056",_fcfc .VariableText .RV );};return _aegc ;};
// 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 (_gba *PdfAnnotationWidget )Field ()*PdfField {return _gba ._bag };
// NewPdfAnnotationInk returns a new ink annotation.
func NewPdfAnnotationInk ()*PdfAnnotationInk {_add :=NewPdfAnnotation ();_bfeg :=&PdfAnnotationInk {};_bfeg .PdfAnnotation =_add ;_bfeg .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_add .SetContext (_bfeg );return _bfeg ;};
// SetDocInfo sets the document /Info metadata.
// This will overwrite any globally declared document info.
func (_dage *PdfAppender )SetDocInfo (info *PdfInfo ){_dage ._geaf =info };
// GetContainingPdfObject implements interface PdfModel.
func (_fedfb *PdfFilespec )GetContainingPdfObject ()_ce .PdfObject {return _fedfb ._ddgc };
// AddCRLs adds CRLs to DSS.
func (_cffec *DSS )AddCRLs (crls [][]byte )([]*_ce .PdfObjectStream ,error ){return _cffec .add (&_cffec .CRLs ,_cffec ._abge ,crls );};
// ToPdfObject implements interface PdfModel.
func (_fga *PdfActionGoTo )ToPdfObject ()_ce .PdfObject {_fga .PdfAction .ToPdfObject ();_cga :=_fga ._bcc ;_gff :=_cga .PdfObject .(*_ce .PdfObjectDictionary );_gff .SetIfNotNil ("\u0053",_ce .MakeName (string (ActionTypeGoTo )));_gff .SetIfNotNil ("\u0044",_fga .D );
return _cga ;};
// 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 *_ce .PdfObjectString ;Q *_ce .PdfObjectInteger ;DS *_ce .PdfObjectString ;RV _ce .PdfObject ;};
// ToOutlineTree returns a low level PdfOutlineTreeNode object, based on
// the current instance.
func (_aebe *Outline )ToOutlineTree ()*PdfOutlineTreeNode {return &_aebe .ToPdfOutline ().PdfOutlineTreeNode ;};
// 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 ;_becgb []byte ;_dfcag []uint32 ;_ffgdd *_ce .PdfObjectStream ;};
// ToPdfObject returns a PDF object representation of the outline destination.
func (_ceedf OutlineDest )ToPdfObject ()_ce .PdfObject {if (_ceedf .PageObj ==nil &&_ceedf .Page < 0)||_ceedf .Mode ==""{return _ce .MakeNull ();};_edced :=_ce .MakeArray ();if _ceedf .PageObj !=nil {_edced .Append (_ceedf .PageObj );}else {_edced .Append (_ce .MakeInteger (_ceedf .Page ));
};_edced .Append (_ce .MakeName (_ceedf .Mode ));switch _ceedf .Mode {case "\u0046\u0069\u0074","\u0046\u0069\u0074\u0042":case "\u0046\u0069\u0074\u0048","\u0046\u0069\u0074B\u0048":_edced .Append (_ce .MakeFloat (_ceedf .Y ));case "\u0046\u0069\u0074\u0056","\u0046\u0069\u0074B\u0056":_edced .Append (_ce .MakeFloat (_ceedf .X ));
case "\u0058\u0059\u005a":_edced .Append (_ce .MakeFloat (_ceedf .X ));_edced .Append (_ce .MakeFloat (_ceedf .Y ));_edced .Append (_ce .MakeFloat (_ceedf .Zoom ));default:_edced .Set (1,_ce .MakeName ("\u0046\u0069\u0074"));};return _edced ;};
// ColorToRGB converts a color in Separation colorspace to RGB colorspace.
func (_bfcf *PdfColorspaceSpecialSeparation )ColorToRGB (color PdfColor )(PdfColor ,error ){if _bfcf .AlternateSpace ==nil {return nil ,_ge .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 _bfcf .AlternateSpace .ColorToRGB (color );};
// DecodeArray returns the range of color component values in DeviceRGB colorspace.
func (_fgge *PdfColorspaceDeviceRGB )DecodeArray ()[]float64 {return []float64 {0.0,1.0,0.0,1.0,0.0,1.0};};
// ToPdfObject implements interface PdfModel.
func (_bdgcf *PdfAnnotationUnderline )ToPdfObject ()_ce .PdfObject {_bdgcf .PdfAnnotation .ToPdfObject ();_bcde :=_bdgcf ._dec ;_aac :=_bcde .PdfObject .(*_ce .PdfObjectDictionary );_bdgcf .PdfAnnotationMarkup .appendToPdfDictionary (_aac );_aac .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ce .MakeName ("\u0055n\u0064\u0065\u0072\u006c\u0069\u006ee"));
_aac .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_bdgcf .QuadPoints );return _bcde ;};
// GetContainingPdfObject returns the container of the DSS (indirect object).
func (_dbgb *DSS )GetContainingPdfObject ()_ce .PdfObject {return _dbgb ._ecde };
// Flags returns the field flags for the field accounting for any inherited flags.
func (_dcac *PdfField )Flags ()FieldFlag {var _gggd FieldFlag ;_facba ,_ccgc :=_dcac .inherit (func (_aaagc *PdfField )bool {if _aaagc .Ff !=nil {_gggd =FieldFlag (*_aaagc .Ff );return true ;};return false ;});if _ccgc !=nil {_ff .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",_ccgc );
};if !_facba {_ff .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 _gggd ;};func _dfcde (_fdgfe *_ce .PdfIndirectObject )(*PdfOutline ,error ){_dbgee ,_dfaff :=_fdgfe .PdfObject .(*_ce .PdfObjectDictionary );
if !_dfaff {return nil ,_e .Errorf ("\u006f\u0075\u0074l\u0069\u006e\u0065\u0020o\u0062\u006a\u0065\u0063\u0074\u0020\u006eo\u0074\u0020\u0061\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079");};_gbdc :=NewPdfOutline ();if _dgecd :=_dbgee .Get ("\u0054\u0079\u0070\u0065");
_dgecd !=nil {_badd ,_eeged :=_dgecd .(*_ce .PdfObjectName );if _eeged {if *_badd !="\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0073"{_ff .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",*_badd );
};};};if _beea :=_dbgee .Get ("\u0043\u006f\u0075n\u0074");_beea !=nil {_bdgf ,_dcdd :=_ce .GetNumberAsInt64 (_beea );if _dcdd !=nil {return nil ,_dcdd ;};_gbdc .Count =&_bdgf ;};return _gbdc ,nil ;};
// GetAction returns the PDF action for the annotation link.
func (_ccc *PdfAnnotationLink )GetAction ()(*PdfAction ,error ){if _ccc ._gbba !=nil {return _ccc ._gbba ,nil ;};if _ccc .A ==nil {return nil ,nil ;};if _ccc ._dge ==nil {return nil ,nil ;};_agd ,_cccd :=_ccc ._dge .loadAction (_ccc .A );if _cccd !=nil {return nil ,_cccd ;
};_ccc ._gbba =_agd ;return _ccc ._gbba ,nil ;};
// ToPdfObject returns the PDF representation of the colorspace.
func (_adeaa *PdfColorspaceDeviceRGB )ToPdfObject ()_ce .PdfObject {return _ce .MakeName ("\u0044e\u0076\u0069\u0063\u0065\u0052\u0047B");};
// GetCapHeight returns the CapHeight of the font `descriptor`.
func (_bdbcg *PdfFontDescriptor )GetCapHeight ()(float64 ,error ){return _ce .GetNumberAsFloat (_bdbcg .CapHeight );};
// AddCustomInfo adds a custom info into document info dictionary.
func (_fgb *PdfInfo )AddCustomInfo (name string ,value string )error {if _fgb ._ecfddd ==nil {_fgb ._ecfddd =_ce .MakeDict ();};if _ ,_fbaba :=_gfaee [name ];_fbaba {return _e .Errorf ("\u0063\u0061\u006e\u006e\u006ft\u0020\u0075\u0073\u0065\u0020\u0073\u0074\u0061\u006e\u0064\u0061\u0072\u0064 \u0069\u006e\u0066\u006f\u0020\u006b\u0065\u0079\u0020\u0025\u0073\u0020\u0061\u0073\u0020\u0063\u0075\u0073\u0074\u006f\u006d\u0020\u0066\u0069\u0065\u006c\u0064\u0020\u006b\u0065y",name );
};_fgb ._ecfddd .SetIfNotNil (*_ce .MakeName (name ),_ce .MakeString (value ));return nil ;};
// B returns the value of the blue component of the color.
func (_cfcbc *PdfColorDeviceRGB )B ()float64 {return _cfcbc [2]};
// Encoder returns the font's text encoder.
func (_daee pdfCIDFontType0 )Encoder ()_dc .TextEncoder {return _daee ._afgge };
// 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 (_aaca _gd .Reader )(*Image ,error );
// NewImageFromGoImage loads a NRGBA32 unidoc Image from a standard Go image structure.
NewImageFromGoImage (_dcegc _cb .Image )(*Image ,error );
// NewGrayImageFromGoImage loads a grayscale unidoc Image from a standard Go image structure.
NewGrayImageFromGoImage (_bcfcg _cb .Image )(*Image ,error );
// Compress an image.
Compress (_cgdaf *Image ,_gacdb int64 )(*Image ,error );};
// 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 (_dccg int ,_ffbae *PdfPage )error ;
// 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 _gd .ReadSeeker )(*PdfFont ,error ){_ddde ,_bade :=_fcg .ReadAll (r );if _bade !=nil {_ff .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",_bade );
return nil ,_bade ;};_ecebe ,_bade :=_ee .TtfParse (_ag .NewReader (_ddde ));if _bade !=nil {_ff .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",_bade );
return nil ,_bade ;};_abfec :=&pdfCIDFontType2 {fontCommon :fontCommon {_baafb :"\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032"},CIDToGIDMap :_ce .MakeName ("\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079")};if len (_ecebe .Widths )<=0{return nil ,_ge .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");
};_aaaf :=1000.0/float64 (_ecebe .UnitsPerEm );_gfbc :=_aaaf *float64 (_ecebe .Widths [0]);_fgbe :=make (map[rune ]int );_gegegb :=make (map[_ee .GID ]int );_gbcaf :=_ee .GID (len (_ecebe .Widths ));for _abcgg ,_dcee :=range _ecebe .Chars {if _dcee > _gbcaf -1{continue ;
};_cdfed :=int (_aaaf *float64 (_ecebe .Widths [_dcee ]));_fgbe [_abcgg ]=_cdfed ;_gegegb [_dcee ]=_cdfed ;};_abfec ._bedga =_fgbe ;_abfec .DW =_ce .MakeInteger (int64 (_gfbc ));_ceaf :=_bfbb (_gegegb ,uint16 (_gbcaf ));_abfec .W =_ce .MakeIndirectObject (_ceaf );
_bedgaa :=_ce .MakeDict ();_bedgaa .Set ("\u004f\u0072\u0064\u0065\u0072\u0069\u006e\u0067",_ce .MakeString ("\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079"));_bedgaa .Set ("\u0052\u0065\u0067\u0069\u0073\u0074\u0072\u0079",_ce .MakeString ("\u0041\u0064\u006fb\u0065"));
_bedgaa .Set ("\u0053\u0075\u0070\u0070\u006c\u0065\u006d\u0065\u006e\u0074",_ce .MakeInteger (0));_abfec .CIDSystemInfo =_bedgaa ;_cabf :=&PdfFontDescriptor {FontName :_ce .MakeName (_ecebe .PostScriptName ),Ascent :_ce .MakeFloat (_aaaf *float64 (_ecebe .TypoAscender )),Descent :_ce .MakeFloat (_aaaf *float64 (_ecebe .TypoDescender )),CapHeight :_ce .MakeFloat (_aaaf *float64 (_ecebe .CapHeight )),FontBBox :_ce .MakeArrayFromFloats ([]float64 {_aaaf *float64 (_ecebe .Xmin ),_aaaf *float64 (_ecebe .Ymin ),_aaaf *float64 (_ecebe .Xmax ),_aaaf *float64 (_ecebe .Ymax )}),ItalicAngle :_ce .MakeFloat (_ecebe .ItalicAngle ),MissingWidth :_ce .MakeFloat (_gfbc )};
_agdbg ,_bade :=_ce .MakeStream (_ddde ,_ce .NewFlateEncoder ());if _bade !=nil {_ff .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",_bade );
return nil ,_bade ;};_agdbg .PdfObjectDictionary .Set ("\u004ce\u006e\u0067\u0074\u0068\u0031",_ce .MakeInteger (int64 (len (_ddde ))));_cabf .FontFile2 =_agdbg ;if _ecebe .Bold {_cabf .StemV =_ce .MakeInteger (120);}else {_cabf .StemV =_ce .MakeInteger (70);
};_cfbd :=_abda ;if _ecebe .IsFixedPitch {_cfbd |=_afdc ;};if _ecebe .ItalicAngle !=0{_cfbd |=_egdef ;};_cabf .Flags =_ce .MakeInteger (int64 (_cfbd ));_abfec ._egacd =_ecebe .PostScriptName ;_abfec ._daebd =_cabf ;_dbeec :=pdfFontType0 {fontCommon :fontCommon {_baafb :"\u0054\u0079\u0070e\u0030",_egacd :_ecebe .PostScriptName },DescendantFont :&PdfFont {_dace :_abfec },Encoding :_ce .MakeName ("\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079\u002d\u0048"),_fbfa :_ecebe .NewEncoder ()};
if len (_ecebe .Chars )> 0{_dadfg :=make (map[_ga .CharCode ]rune ,len (_ecebe .Chars ));for _bfedgg ,_cfdd :=range _ecebe .Chars {_agdcc :=_ga .CharCode (_cfdd );if _gaba ,_agde :=_dadfg [_agdcc ];!_agde ||(_agde &&_gaba > _bfedgg ){_dadfg [_agdcc ]=_bfedgg ;
};};_dbeec ._dgfcg =_ga .NewToUnicodeCMap (_dadfg );};_cecb :=PdfFont {_dace :&_dbeec };return &_cecb ,nil ;};
// DefaultImageHandler is the default implementation of the ImageHandler using the standard go library.
type DefaultImageHandler struct{};
// DefaultFont returns the default font, which is currently the built in Helvetica.
func DefaultFont ()*PdfFont {_dddga ,_aebg :=_ee .NewStdFontByName (HelveticaName );if !_aebg {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");
};_cfdef :=_bcegg (_dddga );return &PdfFont {_dace :&_cfdef };};
// ToPdfObject returns colorspace in a PDF object format [name dictionary]
func (_aaga *PdfColorspaceLab )ToPdfObject ()_ce .PdfObject {_bgae :=_ce .MakeArray ();_bgae .Append (_ce .MakeName ("\u004c\u0061\u0062"));_ddeca :=_ce .MakeDict ();if _aaga .WhitePoint !=nil {_fdea :=_ce .MakeArray (_ce .MakeFloat (_aaga .WhitePoint [0]),_ce .MakeFloat (_aaga .WhitePoint [1]),_ce .MakeFloat (_aaga .WhitePoint [2]));
_ddeca .Set ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074",_fdea );}else {_ff .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 _aaga .BlackPoint !=nil {_gdgc :=_ce .MakeArray (_ce .MakeFloat (_aaga .BlackPoint [0]),_ce .MakeFloat (_aaga .BlackPoint [1]),_ce .MakeFloat (_aaga .BlackPoint [2]));_ddeca .Set ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074",_gdgc );
};if _aaga .Range !=nil {_dcgg :=_ce .MakeArray (_ce .MakeFloat (_aaga .Range [0]),_ce .MakeFloat (_aaga .Range [1]),_ce .MakeFloat (_aaga .Range [2]),_ce .MakeFloat (_aaga .Range [3]));_ddeca .Set ("\u0052\u0061\u006eg\u0065",_dcgg );};_bgae .Append (_ddeca );
if _aaga ._eefd !=nil {_aaga ._eefd .PdfObject =_bgae ;return _aaga ._eefd ;};return _bgae ;};
// Y returns the value of the yellow component of the color.
func (_gbfa *PdfColorDeviceCMYK )Y ()float64 {return _gbfa [2]};
// 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 (_bgec *PdfColorspaceCalGray )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=1{return nil ,_ge .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_ebffb :=vals [0];if _ebffb < 0.0||_ebffb > 1.0{_ff .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_ebffb );
return nil ,ErrColorOutOfRange ;};_effc :=NewPdfColorCalGray (_ebffb );return _effc ,nil ;};
// NewPdfFilespecFromObj creates and returns a new PdfFilespec object.
func NewPdfFilespecFromObj (obj _ce .PdfObject )(*PdfFilespec ,error ){_eecf :=&PdfFilespec {};var _cbagb *_ce .PdfObjectDictionary ;if _dbed ,_ccdb :=_ce .GetIndirect (obj );_ccdb {_eecf ._ddgc =_dbed ;_bgfd ,_acde :=_ce .GetDict (_dbed .PdfObject );if !_acde {_ff .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 ,_ce .ErrTypeError ;};_cbagb =_bgfd ;}else if _fdfa ,_egfg :=_ce .GetDict (obj );_egfg {_eecf ._ddgc =_fdfa ;_cbagb =_fdfa ;}else {_ff .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 ,_ce .ErrTypeError ;};if _cbagb ==nil {_ff .Log .Debug ("\u0044i\u0063t\u0069\u006f\u006e\u0061\u0072y\u0020\u006di\u0073\u0073\u0069\u006e\u0067");return nil ,_ge .New ("\u0064\u0069\u0063t\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");
};if _egcdf :=_cbagb .Get ("\u0054\u0079\u0070\u0065");_egcdf !=nil {_ecfb ,_bbggg :=_egcdf .(*_ce .PdfObjectName );if !_bbggg {_ff .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",_egcdf );
}else {if *_ecfb !="\u0046\u0069\u006c\u0065\u0073\u0070\u0065\u0063"{_ff .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",*_ecfb );
};};};if _dbac :=_cbagb .Get ("\u0046\u0053");_dbac !=nil {_eecf .FS =_dbac ;};if _caeaf :=_cbagb .Get ("\u0046");_caeaf !=nil {_eecf .F =_caeaf ;};if _cbbd :=_cbagb .Get ("\u0055\u0046");_cbbd !=nil {_eecf .UF =_cbbd ;};if _ffgc :=_cbagb .Get ("\u0044\u004f\u0053");
_ffgc !=nil {_eecf .DOS =_ffgc ;};if _bdfbb :=_cbagb .Get ("\u004d\u0061\u0063");_bdfbb !=nil {_eecf .Mac =_bdfbb ;};if _gbgb :=_cbagb .Get ("\u0055\u006e\u0069\u0078");_gbgb !=nil {_eecf .Unix =_gbgb ;};if _fgca :=_cbagb .Get ("\u0049\u0044");_fgca !=nil {_eecf .ID =_fgca ;
};if _bfef :=_cbagb .Get ("\u0056");_bfef !=nil {_eecf .V =_bfef ;};if _fbae :=_cbagb .Get ("\u0045\u0046");_fbae !=nil {_eecf .EF =_fbae ;};if _fggea :=_cbagb .Get ("\u0052\u0046");_fggea !=nil {_eecf .RF =_fggea ;};if _egac :=_cbagb .Get ("\u0044\u0065\u0073\u0063");
_egac !=nil {_eecf .Desc =_egac ;};if _bbcgg :=_cbagb .Get ("\u0043\u0049");_bbcgg !=nil {_eecf .CI =_bbcgg ;};return _eecf ,nil ;};
// ToPdfObject implements interface PdfModel.
func (_aaeg *PdfAnnotationSquiggly )ToPdfObject ()_ce .PdfObject {_aaeg .PdfAnnotation .ToPdfObject ();_eada :=_aaeg ._dec ;_bcg :=_eada .PdfObject .(*_ce .PdfObjectDictionary );_aaeg .PdfAnnotationMarkup .appendToPdfDictionary (_bcg );_bcg .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ce .MakeName ("\u0053\u0071\u0075\u0069\u0067\u0067\u006c\u0079"));
_bcg .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_aaeg .QuadPoints );return _eada ;};const (BorderEffectNoEffect BorderEffect =iota ;BorderEffectCloudy BorderEffect =iota ;);func (_cgabc *PdfWriter )writeAcroFormFields ()error {if _cgabc ._aabaf ==nil {return nil ;
};_ff .Log .Trace ("\u0057r\u0069t\u0069\u006e\u0067\u0020\u0061c\u0072\u006f \u0066\u006f\u0072\u006d\u0073");_fcaeb :=_cgabc ._aabaf .ToPdfObject ();_ff .Log .Trace ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d\u003a\u0020\u0025\u002b\u0076",_fcaeb );
_cgabc ._bbef .Set ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d",_fcaeb );_agaac :=_cgabc .addObjects (_fcaeb );if _agaac !=nil {return _agaac ;};return nil ;};
// FieldFlattenOpts defines a set of options which can be used to configure
// the field flattening process.
type FieldFlattenOpts struct{
// FilterFunc allows filtering the form fields used in the flattening
// process. If the filter function returns true, the field is flattened,
// otherwise it is skipped.
// If a non-terminal field is discarded, all of its children (the fields
// present in the Kids array) are discarded as well.
// Non-terminal fields are kept in the AcroForm if one or more of their
// child fields have not been selected for flattening.
// If a filter function is not provided, all form fields are flattened.
FilterFunc FieldFilterFunc ;
// 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 ;};var _dbdae =false ;
// GetCatalogMetadata gets the catalog defined XMP Metadata.
func (_eacaa *PdfReader )GetCatalogMetadata ()(_ce .PdfObject ,bool ){if _eacaa ._cfcdg ==nil {return nil ,false ;};_gffdd :=_eacaa ._cfcdg .Get ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");return _gffdd ,_gffdd !=nil ;};func _aaegd (_fgabea _gd .ReadSeeker ,_cfdde *ReaderOpts ,_bfaff bool ,_ecebg string )(*PdfReader ,error ){if _cfdde ==nil {_cfdde =NewReaderOpts ();
};_ceece :=*_cfdde ;_cegba :=&PdfReader {_eggc :_fgabea ,_efdafe :map[_ce .PdfObject ]struct{}{},_aedda :_dffgda (),_cgbdb :_cfdde .LazyLoad ,_gbffe :_cfdde .ComplianceMode ,_cdffg :_bfaff ,_dcggg :&_ceece };_aceea ,_ffcfb :=_cbfc ("\u0072");if _ffcfb !=nil {return nil ,_ffcfb ;
};_ffcfb =_gec .Track (_aceea ,_ecebg );if _ffcfb !=nil {return nil ,_ffcfb ;};_cegba ._feegf =_aceea ;var _dfdbc *_ce .PdfParser ;if !_cegba ._gbffe {_dfdbc ,_ffcfb =_ce .NewParser (_fgabea );}else {_dfdbc ,_ffcfb =_ce .NewCompliancePdfParser (_fgabea );
};if _ffcfb !=nil {return nil ,_ffcfb ;};_cegba ._afda =_dfdbc ;_ffbgg ,_ffcfb :=_cegba .IsEncrypted ();if _ffcfb !=nil {return nil ,_ffcfb ;};if !_ffbgg {_ffcfb =_cegba .loadStructure ();if _ffcfb !=nil {return nil ,_ffcfb ;};}else if _bfaff {_egdac ,_gccga :=_cegba .Decrypt ([]byte (_cfdde .Password ));
if _gccga !=nil {return nil ,_gccga ;};if !_egdac {return nil ,_ge .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");
};};_cegba ._fdeb =make (map[*PdfReader ]*PdfReader );_cegba ._eedce =make ([]*PdfReader ,_dfdbc .GetRevisionNumber ());return _cegba ,nil ;};var (_cdgeb =_cd .MustCompile ("\u005cd\u002b\u0020\u0064\u0069c\u0074\u005c\u0073\u002b\u0028d\u0075p\u005cs\u002b\u0029\u003f\u0062\u0065\u0067\u0069n");
_bcegc =_cd .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");_cacc =_cd .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");
_addfe ="\u002f\u0045\u006e\u0063od\u0069\u006e\u0067\u0020\u0032\u0035\u0036\u0020\u0061\u0072\u0072\u0061\u0079";_degcb ="\u0072\u0065\u0061d\u006f\u006e\u006c\u0079\u0020\u0064\u0065\u0066";_fcaa ="\u0063\u0075\u0072\u0072\u0065\u006e\u0074\u0066\u0069\u006c\u0065\u0020e\u0065\u0078\u0065\u0063";
);
// SetContext sets the sub pattern (context). Either PdfTilingPattern or PdfShadingPattern.
func (_feegg *PdfPattern )SetContext (ctx PdfModel ){_feegg ._fbea =ctx };
// SetXObjectImageByName adds the provided XObjectImage to the page resources.
// The added XObjectImage is identified by the specified name.
func (_deffc *PdfPageResources )SetXObjectImageByName (keyName _ce .PdfObjectName ,ximg *XObjectImage )error {_bfca :=ximg .ToPdfObject ().(*_ce .PdfObjectStream );_agca :=_deffc .SetXObjectByName (keyName ,_bfca );return _agca ;};func (_cgfae *pdfFontType3 )baseFields ()*fontCommon {return &_cgfae .fontCommon };
// GetSubFilter returns SubFilter value or empty string.
func (_bgecg *pdfSignDictionary )GetSubFilter ()string {_gadcd :=_bgecg .Get ("\u0053u\u0062\u0046\u0069\u006c\u0074\u0065r");if _gadcd ==nil {return "";};if _abbg ,_bgeef :=_ce .GetNameVal (_gadcd );_bgeef {return _abbg ;};return "";};func (_fdc *PdfReader )newPdfAnnotationFromIndirectObject (_cgad *_ce .PdfIndirectObject )(*PdfAnnotation ,error ){_fbdc ,_fdeg :=_cgad .PdfObject .(*_ce .PdfObjectDictionary );
if !_fdeg {return nil ,_e .Errorf ("\u0061\u006e\u006e\u006f\u0074\u0061\u0074\u0069\u006f\u006e\u0020\u0069\u006e\u0064\u0069r\u0065\u0063\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0020\u006e\u006ft\u0020\u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0069\u006e\u0067\u0020a \u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079");
};if model :=_fdc ._aedda .GetModelFromPrimitive (_fbdc );model !=nil {_cdda ,_addf :=model .(*PdfAnnotation );if !_addf {return nil ,_e .Errorf ("\u0063\u0061\u0063\u0068\u0065\u0064 \u006d\u006f\u0064\u0065\u006c\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0050D\u0046\u0020\u0061\u006e\u006e\u006f\u0074a\u0074\u0069\u006f\u006e");
};return _cdda ,nil ;};_aaee :=&PdfAnnotation {};_aaee ._dec =_cgad ;_fdc ._aedda .Register (_fbdc ,_aaee );if _fcdb :=_fbdc .Get ("\u0054\u0079\u0070\u0065");_fcdb !=nil {_ggd ,_ecfeg :=_fcdb .(*_ce .PdfObjectName );if !_ecfeg {_ff .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",_fcdb );
}else {if *_ggd !="\u0041\u006e\u006eo\u0074"{_ff .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",*_ggd );};};};if _abgb :=_fbdc .Get ("\u0052\u0065\u0063\u0074");
_abgb !=nil {_aaee .Rect =_abgb ;};if _bdcdb :=_fbdc .Get ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073");_bdcdb !=nil {_aaee .Contents =_bdcdb ;};if _bcca :=_fbdc .Get ("\u0050");_bcca !=nil {_aaee .P =_bcca ;};if _bfa :=_fbdc .Get ("\u004e\u004d");
_bfa !=nil {_aaee .NM =_bfa ;};if _aafd :=_fbdc .Get ("\u004d");_aafd !=nil {_aaee .M =_aafd ;};if _dfgc :=_fbdc .Get ("\u0046");_dfgc !=nil {_aaee .F =_dfgc ;};if _ebc :=_fbdc .Get ("\u0041\u0050");_ebc !=nil {_aaee .AP =_ebc ;};if _ffdf :=_fbdc .Get ("\u0041\u0053");
_ffdf !=nil {_aaee .AS =_ffdf ;};if _caaf :=_fbdc .Get ("\u0042\u006f\u0072\u0064\u0065\u0072");_caaf !=nil {_aaee .Border =_caaf ;};if _adda :=_fbdc .Get ("\u0043");_adda !=nil {_aaee .C =_adda ;};if _bca :=_fbdc .Get ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074");
_bca !=nil {_aaee .StructParent =_bca ;};if _fcge :=_fbdc .Get ("\u004f\u0043");_fcge !=nil {_aaee .OC =_fcge ;};_ede :=_fbdc .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065");if _ede ==nil {_ff .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");
_aaee ._edc =nil ;return _aaee ,nil ;};_bbce ,_egbf :=_ede .(*_ce .PdfObjectName );if !_egbf {_ff .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",_ede );
return nil ,_e .Errorf ("i\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0053\u0075\u0062\u0074\u0079\u0070\u0065\u0020\u006f\u0062\u006ae\u0063\u0074\u0020\u0074\u0079\u0070\u0065\u0020\u0021\u003d n\u0061\u006d\u0065 \u0028%\u0054\u0029",_ede );};switch *_bbce {case "\u0054\u0065\u0078\u0074":_gcga ,_cfe :=_fdc .newPdfAnnotationTextFromDict (_fbdc );
if _cfe !=nil {return nil ,_cfe ;};_gcga .PdfAnnotation =_aaee ;_aaee ._edc =_gcga ;return _aaee ,nil ;case "\u004c\u0069\u006e\u006b":_edeg ,_ccga :=_fdc .newPdfAnnotationLinkFromDict (_fbdc );if _ccga !=nil {return nil ,_ccga ;};_edeg .PdfAnnotation =_aaee ;
_aaee ._edc =_edeg ;return _aaee ,nil ;case "\u0046\u0072\u0065\u0065\u0054\u0065\u0078\u0074":_ecga ,_dbba :=_fdc .newPdfAnnotationFreeTextFromDict (_fbdc );if _dbba !=nil {return nil ,_dbba ;};_ecga .PdfAnnotation =_aaee ;_aaee ._edc =_ecga ;return _aaee ,nil ;
case "\u004c\u0069\u006e\u0065":_gacf ,_ddc :=_fdc .newPdfAnnotationLineFromDict (_fbdc );if _ddc !=nil {return nil ,_ddc ;};_gacf .PdfAnnotation =_aaee ;_aaee ._edc =_gacf ;_ff .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",_aaee ,_aaee );
_ff .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",_gacf ,_gacf );_ff .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",_gacf .PdfAnnotationMarkup ,_gacf .PdfAnnotationMarkup );
return _aaee ,nil ;case "\u0053\u0071\u0075\u0061\u0072\u0065":_dbgf ,_gabf :=_fdc .newPdfAnnotationSquareFromDict (_fbdc );if _gabf !=nil {return nil ,_gabf ;};_dbgf .PdfAnnotation =_aaee ;_aaee ._edc =_dbgf ;return _aaee ,nil ;case "\u0043\u0069\u0072\u0063\u006c\u0065":_fbf ,_gdff :=_fdc .newPdfAnnotationCircleFromDict (_fbdc );
if _gdff !=nil {return nil ,_gdff ;};_fbf .PdfAnnotation =_aaee ;_aaee ._edc =_fbf ;return _aaee ,nil ;case "\u0050o\u006c\u0079\u0067\u006f\u006e":_dfe ,_bdfb :=_fdc .newPdfAnnotationPolygonFromDict (_fbdc );if _bdfb !=nil {return nil ,_bdfb ;};_dfe .PdfAnnotation =_aaee ;
_aaee ._edc =_dfe ;return _aaee ,nil ;case "\u0050\u006f\u006c\u0079\u004c\u0069\u006e\u0065":_fegf ,_cafd :=_fdc .newPdfAnnotationPolyLineFromDict (_fbdc );if _cafd !=nil {return nil ,_cafd ;};_fegf .PdfAnnotation =_aaee ;_aaee ._edc =_fegf ;return _aaee ,nil ;
case "\u0048i\u0067\u0068\u006c\u0069\u0067\u0068t":_bdbe ,_aeff :=_fdc .newPdfAnnotationHighlightFromDict (_fbdc );if _aeff !=nil {return nil ,_aeff ;};_bdbe .PdfAnnotation =_aaee ;_aaee ._edc =_bdbe ;return _aaee ,nil ;case "\u0055n\u0064\u0065\u0072\u006c\u0069\u006ee":_dfd ,_abd :=_fdc .newPdfAnnotationUnderlineFromDict (_fbdc );
if _abd !=nil {return nil ,_abd ;};_dfd .PdfAnnotation =_aaee ;_aaee ._edc =_dfd ;return _aaee ,nil ;case "\u0053\u0071\u0075\u0069\u0067\u0067\u006c\u0079":_acaa ,_fcgf :=_fdc .newPdfAnnotationSquigglyFromDict (_fbdc );if _fcgf !=nil {return nil ,_fcgf ;
};_acaa .PdfAnnotation =_aaee ;_aaee ._edc =_acaa ;return _aaee ,nil ;case "\u0053t\u0072\u0069\u006b\u0065\u004f\u0075t":_gfb ,_afge :=_fdc .newPdfAnnotationStrikeOut (_fbdc );if _afge !=nil {return nil ,_afge ;};_gfb .PdfAnnotation =_aaee ;_aaee ._edc =_gfb ;
return _aaee ,nil ;case "\u0043\u0061\u0072e\u0074":_eege ,_gfg :=_fdc .newPdfAnnotationCaretFromDict (_fbdc );if _gfg !=nil {return nil ,_gfg ;};_eege .PdfAnnotation =_aaee ;_aaee ._edc =_eege ;return _aaee ,nil ;case "\u0053\u0074\u0061m\u0070":_fag ,_fac :=_fdc .newPdfAnnotationStampFromDict (_fbdc );
if _fac !=nil {return nil ,_fac ;};_fag .PdfAnnotation =_aaee ;_aaee ._edc =_fag ;return _aaee ,nil ;case "\u0049\u006e\u006b":_ggb ,_ada :=_fdc .newPdfAnnotationInkFromDict (_fbdc );if _ada !=nil {return nil ,_ada ;};_ggb .PdfAnnotation =_aaee ;_aaee ._edc =_ggb ;
return _aaee ,nil ;case "\u0050\u006f\u0070u\u0070":_eaag ,_cgf :=_fdc .newPdfAnnotationPopupFromDict (_fbdc );if _cgf !=nil {return nil ,_cgf ;};_eaag .PdfAnnotation =_aaee ;_aaee ._edc =_eaag ;return _aaee ,nil ;case "\u0046\u0069\u006c\u0065\u0041\u0074\u0074\u0061\u0063h\u006d\u0065\u006e\u0074":_gege ,_dfb :=_fdc .newPdfAnnotationFileAttachmentFromDict (_fbdc );
if _dfb !=nil {return nil ,_dfb ;};_gege .PdfAnnotation =_aaee ;_aaee ._edc =_gege ;return _aaee ,nil ;case "\u0053\u006f\u0075n\u0064":_adb ,_caca :=_fdc .newPdfAnnotationSoundFromDict (_fbdc );if _caca !=nil {return nil ,_caca ;};_adb .PdfAnnotation =_aaee ;
_aaee ._edc =_adb ;return _aaee ,nil ;case "\u0052i\u0063\u0068\u004d\u0065\u0064\u0069a":_cgagg ,_cfa :=_fdc .newPdfAnnotationRichMediaFromDict (_fbdc );if _cfa !=nil {return nil ,_cfa ;};_cgagg .PdfAnnotation =_aaee ;_aaee ._edc =_cgagg ;return _aaee ,nil ;
case "\u004d\u006f\u0076i\u0065":_cfb ,_agf :=_fdc .newPdfAnnotationMovieFromDict (_fbdc );if _agf !=nil {return nil ,_agf ;};_cfb .PdfAnnotation =_aaee ;_aaee ._edc =_cfb ;return _aaee ,nil ;case "\u0053\u0063\u0072\u0065\u0065\u006e":_bcbf ,_aeba :=_fdc .newPdfAnnotationScreenFromDict (_fbdc );
if _aeba !=nil {return nil ,_aeba ;};_bcbf .PdfAnnotation =_aaee ;_aaee ._edc =_bcbf ;return _aaee ,nil ;case "\u0057\u0069\u0064\u0067\u0065\u0074":_bbbg ,_gacg :=_fdc .newPdfAnnotationWidgetFromDict (_fbdc );if _gacg !=nil {return nil ,_gacg ;};_bbbg .PdfAnnotation =_aaee ;
_aaee ._edc =_bbbg ;return _aaee ,nil ;case "P\u0072\u0069\u006e\u0074\u0065\u0072\u004d\u0061\u0072\u006b":_gbbd ,_cag :=_fdc .newPdfAnnotationPrinterMarkFromDict (_fbdc );if _cag !=nil {return nil ,_cag ;};_gbbd .PdfAnnotation =_aaee ;_aaee ._edc =_gbbd ;
return _aaee ,nil ;case "\u0054r\u0061\u0070\u004e\u0065\u0074":_deg ,_aag :=_fdc .newPdfAnnotationTrapNetFromDict (_fbdc );if _aag !=nil {return nil ,_aag ;};_deg .PdfAnnotation =_aaee ;_aaee ._edc =_deg ;return _aaee ,nil ;case "\u0057a\u0074\u0065\u0072\u006d\u0061\u0072k":_cfbg ,_aagf :=_fdc .newPdfAnnotationWatermarkFromDict (_fbdc );
if _aagf !=nil {return nil ,_aagf ;};_cfbg .PdfAnnotation =_aaee ;_aaee ._edc =_cfbg ;return _aaee ,nil ;case "\u0033\u0044":_cgec ,_gaf :=_fdc .newPdfAnnotation3DFromDict (_fbdc );if _gaf !=nil {return nil ,_gaf ;};_cgec .PdfAnnotation =_aaee ;_aaee ._edc =_cgec ;
return _aaee ,nil ;case "\u0050\u0072\u006f\u006a\u0065\u0063\u0074\u0069\u006f\u006e":_eab ,_dag :=_fdc .newPdfAnnotationProjectionFromDict (_fbdc );if _dag !=nil {return nil ,_dag ;};_eab .PdfAnnotation =_aaee ;_aaee ._edc =_eab ;return _aaee ,nil ;case "\u0052\u0065\u0064\u0061\u0063\u0074":_fgc ,_dedc :=_fdc .newPdfAnnotationRedactFromDict (_fbdc );
if _dedc !=nil {return nil ,_dedc ;};_fgc .PdfAnnotation =_aaee ;_aaee ._edc =_fgc ;return _aaee ,nil ;};_ff .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",*_bbce );
return nil ,nil ;};func (_eccd *PdfReader )newPdfActionImportDataFromDict (_dde *_ce .PdfObjectDictionary )(*PdfActionImportData ,error ){_ebaf ,_afaf :=_ecbge (_dde .Get ("\u0046"));if _afaf !=nil {return nil ,_afaf ;};return &PdfActionImportData {F :_ebaf },nil ;
};func _cfgf (_ffaef *fontCommon )*pdfCIDFontType2 {return &pdfCIDFontType2 {fontCommon :*_ffaef }};
// PdfShadingType2 is an Axial shading.
type PdfShadingType2 struct{*PdfShading ;Coords *_ce .PdfObjectArray ;Domain *_ce .PdfObjectArray ;Function []PdfFunction ;Extend *_ce .PdfObjectArray ;};func (_gfeag *PdfReader )buildPageList (_efadg *_ce .PdfIndirectObject ,_gcbbg *_ce .PdfIndirectObject ,_ccefc map[_ce .PdfObject ]struct{})error {if _efadg ==nil {return nil ;
};if _ ,_gdfc :=_ccefc [_efadg ];_gdfc {_ff .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",_efadg .ObjectNumber );
return nil ;};_ccefc [_efadg ]=struct{}{};_gdbab ,_dcdff :=_efadg .PdfObject .(*_ce .PdfObjectDictionary );if !_dcdff {return _ge .New ("n\u006f\u0064\u0065\u0020no\u0074 \u0061\u0020\u0064\u0069\u0063t\u0069\u006f\u006e\u0061\u0072\u0079");};_fcgeg ,_dcdff :=(*_gdbab ).Get ("\u0054\u0079\u0070\u0065").(*_ce .PdfObjectName );
if !_dcdff {if _gdbab .Get ("\u004b\u0069\u0064\u0073")==nil {return _ge .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");};_ff .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.");
_fcgeg =_ce .MakeName ("\u0050\u0061\u0067e\u0073");_gdbab .Set ("\u0054\u0079\u0070\u0065",_fcgeg );};_ff .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",*_fcgeg ,_efadg );
if *_fcgeg =="\u0050\u0061\u0067\u0065"{_gcfad ,_afgae :=_gfeag .newPdfPageFromDict (_gdbab );if _afgae !=nil {return _afgae ;};_gcfad .setContainer (_efadg );if _gcbbg !=nil {_gdbab .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_gcbbg );};_gfeag ._cbddb =append (_gfeag ._cbddb ,_efadg );
_gfeag .PageList =append (_gfeag .PageList ,_gcfad );return nil ;};if *_fcgeg !="\u0050\u0061\u0067e\u0073"{_ff .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",_fcgeg );
return _ge .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 _gcbbg !=nil {_gdbab .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_gcbbg );};if !_gfeag ._cgbdb {_ceeeb :=_gfeag .traverseObjectData (_efadg );if _ceeeb !=nil {return _ceeeb ;};};_eagadf ,_bcbbc :=_gfeag ._afda .Resolve (_gdbab .Get ("\u004b\u0069\u0064\u0073"));
if _bcbbc !=nil {_ff .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 _bcbbc ;};var _eeafe *_ce .PdfObjectArray ;
_eeafe ,_dcdff =_eagadf .(*_ce .PdfObjectArray );if !_dcdff {_ecacb ,_cebcd :=_eagadf .(*_ce .PdfIndirectObject );if !_cebcd {return _ge .New ("\u0069\u006e\u0076\u0061li\u0064\u0020\u004b\u0069\u0064\u0073\u0020\u006f\u0062\u006a\u0065\u0063\u0074");};
_eeafe ,_dcdff =_ecacb .PdfObject .(*_ce .PdfObjectArray );if !_dcdff {return _ge .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");};};_ff .Log .Trace ("\u004b\u0069\u0064\u0073\u003a\u0020\u0025\u0073",_eeafe );
for _afeeb ,_cdab :=range _eeafe .Elements (){_edcba ,_edgdf :=_ce .GetIndirect (_cdab );if !_edgdf {_ff .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",_edcba );
return _ge .New ("\u0070a\u0067\u0065\u0020\u006e\u006f\u0074\u0020\u0069\u006e\u0064\u0069r\u0065\u0063\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074");};_eeafe .Set (_afeeb ,_edcba );_bcbbc =_gfeag .buildPageList (_edcba ,_efadg ,_ccefc );if _bcbbc !=nil {return _bcbbc ;
};};return nil ;};type pdfCIDFontType2 struct{fontCommon ;_edbb *_ce .PdfIndirectObject ;_egbgf _dc .TextEncoder ;
// Table 117 Entries in a CIDFont dictionary (page 269)
// Dictionary that defines the character collection of the CIDFont (required).
// See Table 116.
CIDSystemInfo *_ce .PdfObjectDictionary ;
// Glyph metrics fields (optional).
DW _ce .PdfObject ;W _ce .PdfObject ;DW2 _ce .PdfObject ;W2 _ce .PdfObject ;
// CIDs to glyph indices mapping (optional).
CIDToGIDMap _ce .PdfObject ;_ffgda map[_dc .CharCode ]float64 ;_fbcca float64 ;_bedga map[rune ]int ;};
// GetRevision returns the specific version of the PdfReader for the current Pdf document
func (_cbcg *PdfReader )GetRevision (revisionNumber int )(*PdfReader ,error ){_egabd :=_cbcg ._afda .GetRevisionNumber ();if revisionNumber < 0||revisionNumber > _egabd {return nil ,_ge .New ("w\u0072\u006f\u006e\u0067 r\u0065v\u0069\u0073\u0069\u006f\u006e \u006e\u0075\u006d\u0062\u0065\u0072");
};if revisionNumber ==_egabd {return _cbcg ,nil ;};if _cbcg ._eedce [revisionNumber ]!=nil {return _cbcg ._eedce [revisionNumber ],nil ;};_bcgga :=_cbcg ;for _fabf :=_egabd -1;_fabf >=revisionNumber ;_fabf --{_effab ,_dfcg :=_bcgga .GetPreviousRevision ();
if _dfcg !=nil {return nil ,_dfcg ;};_cbcg ._eedce [_fabf ]=_effab ;_bcgga =_effab ;};return _bcgga ,nil ;};
// PdfShadingPatternType3 is shading patterns that will use a Type 3 shading pattern (Radial).
type PdfShadingPatternType3 struct{*PdfPattern ;Shading *PdfShadingType3 ;Matrix *_ce .PdfObjectArray ;ExtGState _ce .PdfObject ;};
// C returns the value of the C component of the color.
func (_daae *PdfColorCalRGB )C ()float64 {return _daae [2]};
// 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 (_ecage *PdfFont )GetRuneMetrics (r rune )(CharMetrics ,bool ){_baag :=_ecage .actualFont ();if _baag ==nil {_ff .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",_ecage ._dace );
return _ee .CharMetrics {},false ;};if _dabdb ,_gfged :=_baag .GetRuneMetrics (r );_gfged {return _dabdb ,true ;};if _acfe ,_ddgb :=_ecage .GetFontDescriptor ();_ddgb ==nil &&_acfe !=nil {return _ee .CharMetrics {Wx :_acfe ._abcb },true ;};_ff .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",_ecage );
return _ee .CharMetrics {},false ;};
// SetContext sets the sub action (context).
func (_bb *PdfAction )SetContext (ctx PdfModel ){_bb ._gbf =ctx };
// GetDSS gets the DSS dictionary (ETSI TS 102 778-4 V1.1.1) of the current
// document revision.
func (_dbgd *PdfAppender )GetDSS ()(_afdg *DSS ){return _dbgd ._gee };
// HasXObjectByName checks if an XObject with a specified keyName is defined.
func (_fdgdb *PdfPageResources )HasXObjectByName (keyName _ce .PdfObjectName )bool {_bgcdb ,_ :=_fdgdb .GetXObjectByName (keyName );return _bgcdb !=nil ;};
// UpdatePage updates the `page` in the new revision if it has changed.
func (_fdae *PdfAppender )UpdatePage (page *PdfPage ){_fdae .updateObjectsDeep (page .ToPdfObject (),nil )};
// PartialName returns the partial name of the field.
func (_gafa *PdfField )PartialName ()string {_bfgaf :="";if _gafa .T !=nil {_bfgaf =_gafa .T .Decoded ();}else {_ff .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 _bfgaf ;};
// 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 ;
// 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 (_gdfdb *XObjectForm )SetContentStream (content []byte ,encoder _ce .StreamEncoder )error {_dbbfg :=content ;if encoder ==nil {if _gdfdb .Filter !=nil {encoder =_gdfdb .Filter ;}else {encoder =_ce .NewRawEncoder ();};};_abcdc ,_dcagg :=encoder .EncodeBytes (_dbbfg );
if _dcagg !=nil {return _dcagg ;};_dbbfg =_abcdc ;_gdfdb .Stream =_dbbfg ;_gdfdb .Filter =encoder ;return nil ;};
// SetPdfAuthor sets the Author attribute of the output PDF.
func SetPdfAuthor (author string ){_cbcgc .Lock ();defer _cbcgc .Unlock ();_fadafb =author };
// NewPdfAnnotationWatermark returns a new watermark annotation.
func NewPdfAnnotationWatermark ()*PdfAnnotationWatermark {_gefa :=NewPdfAnnotation ();_cfd :=&PdfAnnotationWatermark {};_cfd .PdfAnnotation =_gefa ;_gefa .SetContext (_cfd );return _cfd ;};
// PdfInfo holds document information that will overwrite
// document information global variables defined above.
type PdfInfo struct{Title *_ce .PdfObjectString ;Author *_ce .PdfObjectString ;Subject *_ce .PdfObjectString ;Keywords *_ce .PdfObjectString ;Creator *_ce .PdfObjectString ;Producer *_ce .PdfObjectString ;CreationDate *PdfDate ;ModifiedDate *PdfDate ;Trapped *_ce .PdfObjectName ;
_ecfddd *_ce .PdfObjectDictionary ;};
// PdfColorspaceDeviceRGB represents an RGB colorspace.
type PdfColorspaceDeviceRGB struct{};
// ToPdfObject implements interface PdfModel.
func (_bba *PdfAnnotationScreen )ToPdfObject ()_ce .PdfObject {_bba .PdfAnnotation .ToPdfObject ();_cdgb :=_bba ._dec ;_dedd :=_cdgb .PdfObject .(*_ce .PdfObjectDictionary );_dedd .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ce .MakeName ("\u0053\u0063\u0072\u0065\u0065\u006e"));
_dedd .SetIfNotNil ("\u0054",_bba .T );_dedd .SetIfNotNil ("\u004d\u004b",_bba .MK );_dedd .SetIfNotNil ("\u0041",_bba .A );_dedd .SetIfNotNil ("\u0041\u0041",_bba .AA );return _cdgb ;};
// GetAscent returns the Ascent of the font `descriptor`.
func (_dgeeg *PdfFontDescriptor )GetAscent ()(float64 ,error ){return _ce .GetNumberAsFloat (_dgeeg .Ascent );};func (_dbde *PdfReader )newPdfAnnotationRedactFromDict (_cdga *_ce .PdfObjectDictionary )(*PdfAnnotationRedact ,error ){_cbg :=PdfAnnotationRedact {};
_cffg ,_beg :=_dbde .newPdfAnnotationMarkupFromDict (_cdga );if _beg !=nil {return nil ,_beg ;};_cbg .PdfAnnotationMarkup =_cffg ;_cbg .QuadPoints =_cdga .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");_cbg .IC =_cdga .Get ("\u0049\u0043");
_cbg .RO =_cdga .Get ("\u0052\u004f");_cbg .OverlayText =_cdga .Get ("O\u0076\u0065\u0072\u006c\u0061\u0079\u0054\u0065\u0078\u0074");_cbg .Repeat =_cdga .Get ("\u0052\u0065\u0070\u0065\u0061\u0074");_cbg .DA =_cdga .Get ("\u0044\u0041");_cbg .Q =_cdga .Get ("\u0051");
return &_cbg ,nil ;};
// VRI represents a Validation-Related Information dictionary.
// The VRI dictionary contains validation data in the form of
// certificates, OCSP and CRL information, for a single signature.
// See ETSI TS 102 778-4 V1.1.1 for more information.
type VRI struct{Cert []*_ce .PdfObjectStream ;OCSP []*_ce .PdfObjectStream ;CRL []*_ce .PdfObjectStream ;TU *_ce .PdfObjectString ;TS *_ce .PdfObjectString ;};func _fecg (_gcec _ce .PdfObject )(*fontFile ,error ){_ff .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",_gcec );
_efgaa :=&fontFile {};_gcec =_ce .TraceToDirectObject (_gcec );_cddb ,_adcec :=_gcec .(*_ce .PdfObjectStream );if !_adcec {_ff .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",_gcec );
return nil ,_ce .ErrTypeError ;};_eedfb :=_cddb .PdfObjectDictionary ;_bdga ,_fadb :=_ce .DecodeStream (_cddb );if _fadb !=nil {return nil ,_fadb ;};_aagcb ,_adcec :=_ce .GetNameVal (_eedfb .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065"));if !_adcec {_efgaa ._cbede =_aagcb ;
if _aagcb =="\u0054\u0079\u0070\u0065\u0031\u0043"{_ff .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 ;};};_gbbc ,_ :=_ce .GetIntVal (_eedfb .Get ("\u004ce\u006e\u0067\u0074\u0068\u0031"));_abce ,_ :=_ce .GetIntVal (_eedfb .Get ("\u004ce\u006e\u0067\u0074\u0068\u0032"));if _gbbc > len (_bdga ){_gbbc =len (_bdga );};
if _gbbc +_abce > len (_bdga ){_abce =len (_bdga )-_gbbc ;};_abcgf :=_bdga [:_gbbc ];var _ceff []byte ;if _abce > 0{_ceff =_bdga [_gbbc :_gbbc +_abce ];};if _gbbc > 0&&_abce > 0{_cgdea :=_efgaa .loadFromSegments (_abcgf ,_ceff );if _cgdea !=nil {return nil ,_cgdea ;
};};return _efgaa ,nil ;};
// Encoder returns the font's text encoder.
func (_fdgd pdfCIDFontType2 )Encoder ()_dc .TextEncoder {return _fdgd ._egbgf };
// A returns the value of the A component of the color.
func (_bbcae *PdfColorCalRGB )A ()float64 {return _bbcae [0]};
// 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 (_egegb *PdfFont )StringToCharcodeBytes (str string )([]byte ,int ){return _egegb .RunesToCharcodeBytes ([]rune (str ));};
// 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 ;
// ToPdfObject returns colorspace in a PDF object format [name dictionary]
func (_acac *PdfColorspaceCalRGB )ToPdfObject ()_ce .PdfObject {_cecg :=&_ce .PdfObjectArray {};_cecg .Append (_ce .MakeName ("\u0043\u0061\u006c\u0052\u0047\u0042"));_aefb :=_ce .MakeDict ();if _acac .WhitePoint !=nil {_ecfdc :=_ce .MakeArray (_ce .MakeFloat (_acac .WhitePoint [0]),_ce .MakeFloat (_acac .WhitePoint [1]),_ce .MakeFloat (_acac .WhitePoint [2]));
_aefb .Set ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074",_ecfdc );}else {_ff .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 _acac .BlackPoint !=nil {_ddacf :=_ce .MakeArray (_ce .MakeFloat (_acac .BlackPoint [0]),_ce .MakeFloat (_acac .BlackPoint [1]),_ce .MakeFloat (_acac .BlackPoint [2]));_aefb .Set ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074",_ddacf );
};if _acac .Gamma !=nil {_fgfc :=_ce .MakeArray (_ce .MakeFloat (_acac .Gamma [0]),_ce .MakeFloat (_acac .Gamma [1]),_ce .MakeFloat (_acac .Gamma [2]));_aefb .Set ("\u0047\u0061\u006dm\u0061",_fgfc );};if _acac .Matrix !=nil {_afade :=_ce .MakeArray (_ce .MakeFloat (_acac .Matrix [0]),_ce .MakeFloat (_acac .Matrix [1]),_ce .MakeFloat (_acac .Matrix [2]),_ce .MakeFloat (_acac .Matrix [3]),_ce .MakeFloat (_acac .Matrix [4]),_ce .MakeFloat (_acac .Matrix [5]),_ce .MakeFloat (_acac .Matrix [6]),_ce .MakeFloat (_acac .Matrix [7]),_ce .MakeFloat (_acac .Matrix [8]));
_aefb .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_afade );};_cecg .Append (_aefb );if _acac ._agbda !=nil {_acac ._agbda .PdfObject =_cecg ;return _acac ._agbda ;};return _cecg ;};
// PdfAnnotationLink represents Link annotations.
// (Section 12.5.6.5 p. 403).
type PdfAnnotationLink struct{*PdfAnnotation ;A _ce .PdfObject ;Dest _ce .PdfObject ;H _ce .PdfObject ;PA _ce .PdfObject ;QuadPoints _ce .PdfObject ;BS _ce .PdfObject ;_gbba *PdfAction ;_dge *PdfReader ;};func (_aggdf *PdfReader )buildNameNodes (_dabde *_ce .PdfIndirectObject ,_beec map[_ce .PdfObject ]struct{})error {if _dabde ==nil {return nil ;
};if _ ,_bdgge :=_beec [_dabde ];_bdgge {_ff .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",_dabde .ObjectNumber );
return nil ;};_beec [_dabde ]=struct{}{};_cfgb ,_bbege :=_dabde .PdfObject .(*_ce .PdfObjectDictionary );if !_bbege {return _ge .New ("n\u006f\u0064\u0065\u0020no\u0074 \u0061\u0020\u0064\u0069\u0063t\u0069\u006f\u006e\u0061\u0072\u0079");};if _abgbgb ,_daec :=_ce .GetDict (_cfgb .Get ("\u0044\u0065\u0073t\u0073"));
_daec {_cedfe ,_gfggdb :=_ce .GetArray (_abgbgb .Get ("\u004b\u0069\u0064\u0073"));if !_gfggdb {return _ge .New ("\u0049n\u0076\u0061\u006c\u0069d\u0020\u004b\u0069\u0064\u0073 \u0061r\u0072a\u0079\u0020\u006f\u0062\u006a\u0065\u0063t");};_ff .Log .Trace ("\u004b\u0069\u0064\u0073\u003a\u0020\u0025\u0073",_cedfe );
for _dafc ,_edffg :=range _cedfe .Elements (){_ggdd ,_fbcbg :=_ce .GetIndirect (_edffg );if !_fbcbg {_ff .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",_ggdd );
return _ge .New ("\u0063h\u0069\u006c\u0064\u0020n\u006f\u0074\u0020\u0069\u006ed\u0069r\u0065c\u0074\u0020\u006f\u0062\u006a\u0065\u0063t");};_cedfe .Set (_dafc ,_ggdd );_deedf :=_aggdf .buildNameNodes (_ggdd ,_beec );if _deedf !=nil {return _deedf ;};
};};if _bcad ,_bggbe :=_ce .GetDict (_cfgb );_bggbe {if !_ce .IsNullObject (_bcad .Get ("\u004b\u0069\u0064\u0073")){if _fbeeb ,_ccgdc :=_ce .GetArray (_bcad .Get ("\u004b\u0069\u0064\u0073"));_ccgdc {for _gebagc ,_bebbcd :=range _fbeeb .Elements (){if _ecagef ,_gbfb :=_ce .GetIndirect (_bebbcd );
_gbfb {_fbeeb .Set (_gebagc ,_ecagef );_eeec :=_aggdf .buildNameNodes (_ecagef ,_beec );if _eeec !=nil {return _eeec ;};};};};};};return 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 (_eadcf *PdfReader )Inspect ()(map[string ]int ,error ){return _eadcf ._afda .Inspect ()};func (_cffe *PdfReader )newPdfAnnotationInkFromDict (_ecfg *_ce .PdfObjectDictionary )(*PdfAnnotationInk ,error ){_agfg :=PdfAnnotationInk {};_aaag ,_bdfd :=_cffe .newPdfAnnotationMarkupFromDict (_ecfg );
if _bdfd !=nil {return nil ,_bdfd ;};_agfg .PdfAnnotationMarkup =_aaag ;_agfg .InkList =_ecfg .Get ("\u0049n\u006b\u004c\u0069\u0073\u0074");_agfg .BS =_ecfg .Get ("\u0042\u0053");return &_agfg ,nil ;};
// NewBorderStyle returns an initialized PdfBorderStyle.
func NewBorderStyle ()*PdfBorderStyle {_aff :=&PdfBorderStyle {};return _aff };func (_fcec *PdfColorspaceDeviceRGB )String ()string {return "\u0044e\u0076\u0069\u0063\u0065\u0052\u0047B";};func _abgcc (_efdafg string )map[string ]string {_ffbd :=_caege .Split (_efdafg ,-1);
_bgcga :=map[string ]string {};for _ ,_aaeae :=range _ffbd {_fbbcf :=_bcegc .FindStringSubmatch (_aaeae );if _fbbcf ==nil {continue ;};_efde ,_afdfe :=_fbbcf [1],_fbbcf [2];_bgcga [_efde ]=_afdfe ;};return _bgcga ;};
// NewPdfAnnotationFileAttachment returns a new file attachment annotation.
func NewPdfAnnotationFileAttachment ()*PdfAnnotationFileAttachment {_bbca :=NewPdfAnnotation ();_ffag :=&PdfAnnotationFileAttachment {};_ffag .PdfAnnotation =_bbca ;_ffag .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_bbca .SetContext (_ffag );return _ffag ;
};type pdfFontType0 struct{fontCommon ;_cebdd *_ce .PdfIndirectObject ;_fbfa _dc .TextEncoder ;Encoding _ce .PdfObject ;DescendantFont *PdfFont ;_ggecbf *_ga .CMap ;};
// 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 (_cbbf *PdfColorspaceDeviceGray )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=1{return nil ,_ge .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_cec :=vals [0];if _cec < 0.0||_cec > 1.0{_ff .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 _cec < 0.0{_cec =0.0;}else if _cec > 1.0{_cec =1.0;};return NewPdfColorDeviceGray (_cec ),nil ;};
// NewPdfAnnotationLink returns a new link annotation.
func NewPdfAnnotationLink ()*PdfAnnotationLink {_dbee :=NewPdfAnnotation ();_dcb :=&PdfAnnotationLink {};_dcb .PdfAnnotation =_dbee ;_dbee .SetContext (_dcb );return _dcb ;};
// AddPages adds pages to be appended to the end of the source PDF.
func (_ddac *PdfAppender )AddPages (pages ...*PdfPage ){for _ ,_dgbfc :=range pages {_dgbfc =_dgbfc .Duplicate ();_bfbegf (_dgbfc );_ddac ._ggdc =append (_ddac ._ggdc ,_dgbfc );};};
// 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 _ce .PdfObjectArray )(*PdfRectangle ,error ){_fbfba :=PdfRectangle {};if arr .Len ()!=4{return nil ,_ge .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 _ggeag error ;_fbfba .Llx ,_ggeag =_ce .GetNumberAsFloat (arr .Get (0));if _ggeag !=nil {return nil ,_ggeag ;};_fbfba .Lly ,_ggeag =_ce .GetNumberAsFloat (arr .Get (1));if _ggeag !=nil {return nil ,_ggeag ;};_fbfba .Urx ,_ggeag =_ce .GetNumberAsFloat (arr .Get (2));
if _ggeag !=nil {return nil ,_ggeag ;};_fbfba .Ury ,_ggeag =_ce .GetNumberAsFloat (arr .Get (3));if _ggeag !=nil {return nil ,_ggeag ;};return &_fbfba ,nil ;};func (_ecfa *PdfReader )newPdfActionSoundFromDict (_ddf *_ce .PdfObjectDictionary )(*PdfActionSound ,error ){return &PdfActionSound {Sound :_ddf .Get ("\u0053\u006f\u0075n\u0064"),Volume :_ddf .Get ("\u0056\u006f\u006c\u0075\u006d\u0065"),Synchronous :_ddf .Get ("S\u0079\u006e\u0063\u0068\u0072\u006f\u006e\u006f\u0075\u0073"),Repeat :_ddf .Get ("\u0052\u0065\u0070\u0065\u0061\u0074"),Mix :_ddf .Get ("\u004d\u0069\u0078")},nil ;
};
// GetCatalogMarkInfo gets catalog MarkInfo object.
func (_aeafg *PdfReader )GetCatalogMarkInfo ()(_ce .PdfObject ,bool ){if _aeafg ._cfcdg ==nil {return nil ,false ;};_dgdfc :=_aeafg ._cfcdg .Get ("\u004d\u0061\u0072\u006b\u0049\u006e\u0066\u006f");return _dgdfc ,_dgdfc !=nil ;};func _dgbea ()string {_cbcgc .Lock ();
defer _cbcgc .Unlock ();return _fadafb };func (_acba *PdfWriter )writeString (_ffcfc string ){if _acba ._dcdgg !=nil {return ;};_bfgfd ,_dgadb :=_acba ._cafdf .WriteString (_ffcfc );_acba ._cgdfab +=int64 (_bfgfd );_acba ._dcdgg =_dgadb ;};
// ContentStreamWrapper wraps the Page's contentstream into q ... Q blocks.
type ContentStreamWrapper interface{WrapContentStream (_gfeeg *PdfPage )error ;};func _eegg (_fccee *PdfAnnotation )(*XObjectForm ,*PdfRectangle ,error ){_ggfbg ,_gaddfe :=_ce .GetDict (_fccee .AP );if !_gaddfe {return nil ,nil ,_ge .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 _ggfbg ==nil {return nil ,nil ,nil ;};_efff ,_gaddfe :=_ce .GetArray (_fccee .Rect );if !_gaddfe ||_efff .Len ()!=4{return nil ,nil ,_ge .New ("\u0072\u0065\u0063t\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064");};_dgag ,_fdfd :=NewPdfRectangle (*_efff );
if _fdfd !=nil {return nil ,nil ,_fdfd ;};_fgad :=_ce .TraceToDirectObject (_ggfbg .Get ("\u004e"));switch _ffaf :=_fgad .(type ){case *_ce .PdfObjectStream :_ffb :=_ffaf ;_affaf ,_bgecd :=NewXObjectFormFromStream (_ffb );return _affaf ,_dgag ,_bgecd ;
case *_ce .PdfObjectDictionary :_cbbde :=_ffaf ;var _gggf _ce .PdfObject ;_fabe ,_bdfg :=_ce .GetName (_fccee .AS );if _bdfg {_gggf =_cbbde .Get (*_fabe );}else {_gfgg :=_fccee ._dec .PdfObject .(*_ce .PdfObjectDictionary );if _agce :=_gfgg .Get ("\u0056");
_agce !=nil {_gggf =_cbbde .Get (_ce .PdfObjectName (_agce .String ()));};};if _gggf ==nil {_ff .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 ;};_gbcg ,_bdfg :=_ce .GetStream (_gggf );if !_bdfg {_ff .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",_fabe );
return nil ,nil ,_ge .New ("\u0073\u0074\u0072\u0065\u0061\u006d\u0020\u006d\u0069s\u0073\u0069\u006e\u0067");};_edcbb ,_ccacc :=NewXObjectFormFromStream (_gbcg );return _edcbb ,_dgag ,_ccacc ;};_ff .Log .Debug ("\u0049\u006e\u0076\u0061li\u0064\u0020\u0074\u0079\u0070\u0065\u0020\u0066\u006f\u0072\u0020\u004e\u003a\u0020%\u0054",_fgad );
return nil ,nil ,_ge .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};
// DecodeArray returns the range of color component values in the Lab colorspace.
func (_eedb *PdfColorspaceLab )DecodeArray ()[]float64 {_ddb :=[]float64 {0,100};if _eedb .Range !=nil &&len (_eedb .Range )==4{_ddb =append (_ddb ,_eedb .Range ...);}else {_ddb =append (_ddb ,-100,100,-100,100);};return _ddb ;};func (_dccbd *PdfWriter )copyObject (_cbceg _ce .PdfObject ,_gcfec map[_ce .PdfObject ]_ce .PdfObject ,_fbge map[_ce .PdfObject ]struct{},_cbdce bool )_ce .PdfObject {_gbfcf :=!_dccbd ._ddfff &&_fbge !=nil ;
if _cffdb ,_bacdg :=_gcfec [_cbceg ];_bacdg {if _gbfcf &&!_cbdce {delete (_fbge ,_cbceg );};return _cffdb ;};if _cbceg ==nil {_fdfedf :=_ce .MakeNull ();return _fdfedf ;};_gfefg :=_cbceg ;switch _fecb :=_cbceg .(type ){case *_ce .PdfObjectArray :_daga :=_ce .MakeArray ();
_gfefg =_daga ;_gcfec [_cbceg ]=_gfefg ;for _ ,_cgbde :=range _fecb .Elements (){_daga .Append (_dccbd .copyObject (_cgbde ,_gcfec ,_fbge ,_cbdce ));};case *_ce .PdfObjectStreams :_afgca :=&_ce .PdfObjectStreams {PdfObjectReference :_fecb .PdfObjectReference };
_gfefg =_afgca ;_gcfec [_cbceg ]=_gfefg ;for _ ,_beabc :=range _fecb .Elements (){_afgca .Append (_dccbd .copyObject (_beabc ,_gcfec ,_fbge ,_cbdce ));};case *_ce .PdfObjectStream :_bcfcgd :=&_ce .PdfObjectStream {Stream :_fecb .Stream ,PdfObjectReference :_fecb .PdfObjectReference };
_gfefg =_bcfcgd ;_gcfec [_cbceg ]=_gfefg ;_bcfcgd .PdfObjectDictionary =_dccbd .copyObject (_fecb .PdfObjectDictionary ,_gcfec ,_fbge ,_cbdce ).(*_ce .PdfObjectDictionary );case *_ce .PdfObjectDictionary :var _feacg bool ;if _gbfcf &&!_cbdce {if _fgfff ,_ :=_ce .GetNameVal (_fecb .Get ("\u0054\u0079\u0070\u0065"));
_fgfff =="\u0050\u0061\u0067\u0065"{_ ,_edggg :=_dccbd ._defec [_fecb ];_cbdce =!_edggg ;_feacg =_cbdce ;};};_gbbe :=_ce .MakeDict ();_gfefg =_gbbe ;_gcfec [_cbceg ]=_gfefg ;for _ ,_ffbbe :=range _fecb .Keys (){_gbbe .Set (_ffbbe ,_dccbd .copyObject (_fecb .Get (_ffbbe ),_gcfec ,_fbge ,_cbdce ));
};if _feacg {_gfefg =_ce .MakeNull ();_cbdce =false ;};case *_ce .PdfIndirectObject :_gafefd :=&_ce .PdfIndirectObject {PdfObjectReference :_fecb .PdfObjectReference };_gfefg =_gafefd ;_gcfec [_cbceg ]=_gfefg ;_gafefd .PdfObject =_dccbd .copyObject (_fecb .PdfObject ,_gcfec ,_fbge ,_cbdce );
case *_ce .PdfObjectString :_fgegb :=*_fecb ;_gfefg =&_fgegb ;_gcfec [_cbceg ]=_gfefg ;case *_ce .PdfObjectName :_gfdbfg :=*_fecb ;_gfefg =&_gfdbfg ;_gcfec [_cbceg ]=_gfefg ;case *_ce .PdfObjectNull :_gfefg =_ce .MakeNull ();_gcfec [_cbceg ]=_gfefg ;case *_ce .PdfObjectInteger :_daccb :=*_fecb ;
_gfefg =&_daccb ;_gcfec [_cbceg ]=_gfefg ;case *_ce .PdfObjectReference :_gfcd :=*_fecb ;_gfefg =&_gfcd ;_gcfec [_cbceg ]=_gfefg ;case *_ce .PdfObjectFloat :_caeea :=*_fecb ;_gfefg =&_caeea ;_gcfec [_cbceg ]=_gfefg ;case *_ce .PdfObjectBool :_bdfab :=*_fecb ;
_gfefg =&_bdfab ;_gcfec [_cbceg ]=_gfefg ;case *pdfSignDictionary :_gffaa :=&pdfSignDictionary {PdfObjectDictionary :_ce .MakeDict (),_efaef :_fecb ._efaef ,_gdbgfe :_fecb ._gdbgfe };_gfefg =_gffaa ;_gcfec [_cbceg ]=_gfefg ;for _ ,_ccaef :=range _fecb .Keys (){_gffaa .Set (_ccaef ,_dccbd .copyObject (_fecb .Get (_ccaef ),_gcfec ,_fbge ,_cbdce ));
};default:_ff .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",_cbceg );
};if _gbfcf &&_cbdce {_fbge [_cbceg ]=struct{}{};};return _gfefg ;};
// ToPdfObject returns the PDF representation of the colorspace.
func (_befbe *PdfPageResourcesColorspaces )ToPdfObject ()_ce .PdfObject {_ebgg :=_ce .MakeDict ();for _ ,_acbde :=range _befbe .Names {_ebgg .Set (_ce .PdfObjectName (_acbde ),_befbe .Colorspaces [_acbde ].ToPdfObject ());};if _befbe ._bcgd !=nil {_befbe ._bcgd .PdfObject =_ebgg ;
return _befbe ._bcgd ;};return _ebgg ;};func _fcgd (_eggf _ce .PdfObject )(*PdfColorspaceLab ,error ){_dcba :=NewPdfColorspaceLab ();if _gadf ,_bdgd :=_eggf .(*_ce .PdfIndirectObject );_bdgd {_dcba ._eefd =_gadf ;};_eggf =_ce .TraceToDirectObject (_eggf );
_efga ,_adfc :=_eggf .(*_ce .PdfObjectArray );if !_adfc {return nil ,_e .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _efga .Len ()!=2{return nil ,_e .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0043\u0061\u006c\u0052G\u0042 \u0063o\u006c\u006f\u0072\u0073\u0070\u0061\u0063e");
};_eggf =_ce .TraceToDirectObject (_efga .Get (0));_edgc ,_adfc :=_eggf .(*_ce .PdfObjectName );if !_adfc {return nil ,_e .Errorf ("\u006c\u0061\u0062\u0020\u006e\u0061\u006d\u0065\u0020\u006e\u006ft\u0020\u0061\u0020\u004e\u0061\u006d\u0065\u0020\u006f\u0062j\u0065\u0063\u0074");
};if *_edgc !="\u004c\u0061\u0062"{return nil ,_e .Errorf ("n\u006ft\u0020\u0061\u0020\u004c\u0061\u0062\u0020\u0063o\u006c\u006f\u0072\u0073pa\u0063\u0065");};_eggf =_ce .TraceToDirectObject (_efga .Get (1));_dbec ,_adfc :=_eggf .(*_ce .PdfObjectDictionary );
if !_adfc {return nil ,_e .Errorf ("c\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063\u0065\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061r\u0079\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067\u0020or\u0020\u0069\u006ev\u0061l\u0069\u0064");};_eggf =_dbec .Get ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074");
_eggf =_ce .TraceToDirectObject (_eggf );_cdac ,_adfc :=_eggf .(*_ce .PdfObjectArray );if !_adfc {return nil ,_e .Errorf ("\u004c\u0061\u0062\u0020In\u0076\u0061\u006c\u0069\u0064\u0020\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069n\u0074");};if _cdac .Len ()!=3{return nil ,_e .Errorf ("\u004c\u0061b\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074\u0020\u0061rr\u0061\u0079");
};_gecbb ,_caae :=_cdac .GetAsFloat64Slice ();if _caae !=nil {return nil ,_caae ;};_dcba .WhitePoint =_gecbb ;_eggf =_dbec .Get ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074");if _eggf !=nil {_eggf =_ce .TraceToDirectObject (_eggf );_eafc ,_beffc :=_eggf .(*_ce .PdfObjectArray );
if !_beffc {return nil ,_e .Errorf ("\u004c\u0061\u0062: \u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074");};if _eafc .Len ()!=3{return nil ,_e .Errorf ("\u004c\u0061b\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074\u0020\u0061rr\u0061\u0079");
};_eceb ,_affed :=_eafc .GetAsFloat64Slice ();if _affed !=nil {return nil ,_affed ;};_dcba .BlackPoint =_eceb ;};_eggf =_dbec .Get ("\u0052\u0061\u006eg\u0065");if _eggf !=nil {_eggf =_ce .TraceToDirectObject (_eggf );_abeaa ,_aagc :=_eggf .(*_ce .PdfObjectArray );
if !_aagc {_ff .Log .Error ("\u0052\u0061n\u0067\u0065\u0020t\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");return nil ,_e .Errorf ("\u004ca\u0062:\u0020\u0054\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _abeaa .Len ()!=4{_ff .Log .Error ("\u0052\u0061\u006e\u0067\u0065\u0020\u0072\u0061\u006e\u0067\u0065\u0020e\u0072\u0072\u006f\u0072");
return nil ,_e .Errorf ("\u004c\u0061b\u003a\u0020\u0052a\u006e\u0067\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};_feebc ,_fffe :=_abeaa .GetAsFloat64Slice ();if _fffe !=nil {return nil ,_fffe ;};_dcba .Range =_feebc ;};return _dcba ,nil ;};
// NewPdfColorspaceCalGray returns a new CalGray colorspace object.
func NewPdfColorspaceCalGray ()*PdfColorspaceCalGray {_acfa :=&PdfColorspaceCalGray {};_acfa .BlackPoint =[]float64 {0.0,0.0,0.0};_acfa .Gamma =1;return _acfa ;};func _geca (_gafga *_ce .PdfObjectDictionary )(*PdfShadingType1 ,error ){_fefbc :=PdfShadingType1 {};
if _feacb :=_gafga .Get ("\u0044\u006f\u006d\u0061\u0069\u006e");_feacb !=nil {_feacb =_ce .TraceToDirectObject (_feacb );_ddgdc ,_cdba :=_feacb .(*_ce .PdfObjectArray );if !_cdba {_ff .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",_feacb );
return nil ,_ge .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_fefbc .Domain =_ddgdc ;};if _feafb :=_gafga .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");_feafb !=nil {_feafb =_ce .TraceToDirectObject (_feafb );
_fadd ,_fceef :=_feafb .(*_ce .PdfObjectArray );if !_fceef {_ff .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",_feafb );return nil ,_ge .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");
};_fefbc .Matrix =_fadd ;};_cfadc :=_gafga .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");if _cfadc ==nil {_ff .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 ;};_fefbc .Function =[]PdfFunction {};if _agcge ,_ffccf :=_cfadc .(*_ce .PdfObjectArray );_ffccf {for _ ,_dabage :=range _agcge .Elements (){_eddef ,_gbec :=_cegfd (_dabage );if _gbec !=nil {_ff .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",_gbec );
return nil ,_gbec ;};_fefbc .Function =append (_fefbc .Function ,_eddef );};}else {_dfgdg ,_dfcaf :=_cegfd (_cfadc );if _dfcaf !=nil {_ff .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",_dfcaf );
return nil ,_dfcaf ;};_fefbc .Function =append (_fefbc .Function ,_dfgdg );};return &_fefbc ,nil ;};func _cbceb (_gdcgf *_ce .PdfObjectDictionary )(*PdfTilingPattern ,error ){_ecgg :=&PdfTilingPattern {};_edaea :=_gdcgf .Get ("\u0050a\u0069\u006e\u0074\u0054\u0079\u0070e");
if _edaea ==nil {_ff .Log .Debug ("\u0050\u0061\u0069\u006e\u0074\u0054\u0079\u0070\u0065\u0020\u006d\u0069s\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ;};_gcdbb ,_cdggd :=_edaea .(*_ce .PdfObjectInteger );if !_cdggd {_ff .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",_edaea );
return nil ,_ce .ErrTypeError ;};_ecgg .PaintType =_gcdbb ;_edaea =_gdcgf .Get ("\u0054\u0069\u006c\u0069\u006e\u0067\u0054\u0079\u0070\u0065");if _edaea ==nil {_ff .Log .Debug ("\u0054i\u006ci\u006e\u0067\u0054\u0079\u0070e\u0020\u006di\u0073\u0073\u0069\u006e\u0067");
return nil ,ErrRequiredAttributeMissing ;};_fdgff ,_cdggd :=_edaea .(*_ce .PdfObjectInteger );if !_cdggd {_ff .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",_edaea );
return nil ,_ce .ErrTypeError ;};_ecgg .TilingType =_fdgff ;_edaea =_gdcgf .Get ("\u0042\u0042\u006f\u0078");if _edaea ==nil {_ff .Log .Debug ("\u0042\u0042\u006fx\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ;
};_edaea =_ce .TraceToDirectObject (_edaea );_gefff ,_cdggd :=_edaea .(*_ce .PdfObjectArray );if !_cdggd {_ff .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",_edaea );
return nil ,_ce .ErrTypeError ;};_daeda ,_dgdbe :=NewPdfRectangle (*_gefff );if _dgdbe !=nil {_ff .Log .Debug ("\u0042\u0042\u006f\u0078\u0020\u0065\u0072\u0072\u006fr\u003a\u0020\u0025\u0076",_dgdbe );return nil ,_dgdbe ;};_ecgg .BBox =_daeda ;_edaea =_gdcgf .Get ("\u0058\u0053\u0074e\u0070");
if _edaea ==nil {_ff .Log .Debug ("\u0058\u0053\u0074\u0065\u0070\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ;};_eddce ,_dgdbe :=_ce .GetNumberAsFloat (_edaea );if _dgdbe !=nil {_ff .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",_eddce );
return nil ,_dgdbe ;};_ecgg .XStep =_ce .MakeFloat (_eddce );_edaea =_gdcgf .Get ("\u0059\u0053\u0074e\u0070");if _edaea ==nil {_ff .Log .Debug ("\u0059\u0053\u0074\u0065\u0070\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ;
};_ebcgc ,_dgdbe :=_ce .GetNumberAsFloat (_edaea );if _dgdbe !=nil {_ff .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",_ebcgc );
return nil ,_dgdbe ;};_ecgg .YStep =_ce .MakeFloat (_ebcgc );_edaea =_gdcgf .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");if _edaea ==nil {_ff .Log .Debug ("\u0052\u0065\u0073\u006f\u0075\u0072\u0063\u0065\u0073\u0020\u006d\u0069s\u0073\u0069\u006e\u0067");
return nil ,ErrRequiredAttributeMissing ;};_gdcgf ,_cdggd =_ce .TraceToDirectObject (_edaea ).(*_ce .PdfObjectDictionary );if !_cdggd {return nil ,_e .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0065\u0073\u006f\u0075\u0072\u0063e\u0020d\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u0020\u0028\u0025\u0054\u0029",_edaea );
};_eadgg ,_dgdbe :=NewPdfPageResourcesFromDict (_gdcgf );if _dgdbe !=nil {return nil ,_dgdbe ;};_ecgg .Resources =_eadgg ;if _bbeaf :=_gdcgf .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");_bbeaf !=nil {_cafcc ,_dabbg :=_bbeaf .(*_ce .PdfObjectArray );if !_dabbg {_ff .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",_bbeaf );
return nil ,_ce .ErrTypeError ;};_ecgg .Matrix =_cafcc ;};return _ecgg ,nil ;};
// GetCharMetrics returns the char metrics for character code `code`.
func (_degf pdfCIDFontType2 )GetCharMetrics (code _dc .CharCode )(_ee .CharMetrics ,bool ){if _dcgbc ,_acgc :=_degf ._ffgda [code ];_acgc {return _ee .CharMetrics {Wx :_dcgbc },true ;};_fbbbc :=rune (code );_degce ,_eebae :=_degf ._bedga [_fbbbc ];if !_eebae {_degce =int (_degf ._fbcca );
};return _ee .CharMetrics {Wx :float64 (_degce )},true ;};
// PdfFieldText represents a text field where user can enter text.
type PdfFieldText struct{*PdfField ;DA *_ce .PdfObjectString ;Q *_ce .PdfObjectInteger ;DS *_ce .PdfObjectString ;RV _ce .PdfObject ;MaxLen *_ce .PdfObjectInteger ;};
// 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 (_bacgc pdfFontSimple )GetCharMetrics (code _dc .CharCode )(_ee .CharMetrics ,bool ){if _acccf ,_aceba :=_bacgc ._aggce [code ];_aceba {return _ee .CharMetrics {Wx :_acccf },true ;};if _ee .IsStdFont (_ee .StdFontName (_bacgc ._egacd )){return _ee .CharMetrics {Wx :250},true ;
};return _ee .CharMetrics {},false ;};
// ToPdfObject implements interface PdfModel.
func (_cdg *PdfActionSetOCGState )ToPdfObject ()_ce .PdfObject {_cdg .PdfAction .ToPdfObject ();_eca :=_cdg ._bcc ;_fe :=_eca .PdfObject .(*_ce .PdfObjectDictionary );_fe .SetIfNotNil ("\u0053",_ce .MakeName (string (ActionTypeSetOCGState )));_fe .SetIfNotNil ("\u0053\u0074\u0061t\u0065",_cdg .State );
_fe .SetIfNotNil ("\u0050\u0072\u0065\u0073\u0065\u0072\u0076\u0065\u0052\u0042",_cdg .PreserveRB );return _eca ;};
// PdfAnnotationUnderline represents Underline annotations.
// (Section 12.5.6.10).
type PdfAnnotationUnderline struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _ce .PdfObject ;};
// 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 (_gded *PdfReader )CheckAccessRights (password []byte )(bool ,_cca .Permissions ,error ){return _gded ._afda .CheckAccessRights (password );};
// IsTerminal returns true for terminal fields, false otherwise.
// Terminal fields are fields whose descendants are only widget annotations.
func (_ggfe *PdfField )IsTerminal ()bool {return len (_ggfe .Kids )==0};
// GetNumComponents returns the number of color components (3 for RGB).
func (_faeba *PdfColorDeviceRGB )GetNumComponents ()int {return 3};
// NewPdfAppenderWithOpts creates a new Pdf appender from a Pdf reader with options.
func NewPdfAppenderWithOpts (reader *PdfReader ,opts *ReaderOpts ,encryptOptions *EncryptOptions )(*PdfAppender ,error ){_ggee :=&PdfAppender {_gbbg :reader ._eggc ,Reader :reader ,_egeb :reader ._afda ,_ccbd :reader ._efdafe };_ecfdd ,_bdd :=_ggee ._gbbg .Seek (0,_gd .SeekEnd );
if _bdd !=nil {return nil ,_bdd ;};_ggee ._gafg =_ecfdd ;if _ ,_bdd =_ggee ._gbbg .Seek (0,_gd .SeekStart );_bdd !=nil {return nil ,_bdd ;};_ggee ._fcda ,_bdd =NewPdfReaderWithOpts (_ggee ._gbbg ,opts );if _bdd !=nil {return nil ,_bdd ;};for _ ,_gdeg :=range _ggee .Reader .GetObjectNums (){if _ggee ._agac < _gdeg {_ggee ._agac =_gdeg ;
};};_ggee ._agfe =_ggee ._egeb .GetXrefTable ();_ggee ._gcfe =_ggee ._egeb .GetXrefOffset ();_ggee ._ggdc =append (_ggee ._ggdc ,_ggee ._fcda .PageList ...);_ggee ._acbd =make (map[_ce .PdfObject ]struct{});_ggee ._fadeg =make (map[_ce .PdfObject ]int64 );
_ggee ._gecg =make (map[_ce .PdfObject ]struct{});_ggee ._fed =_ggee ._fcda .AcroForm ;_ggee ._gee =_ggee ._fcda .DSS ;if opts !=nil {_ggee ._afef =opts .Password ;};if encryptOptions !=nil {_ggee ._debba =encryptOptions ;};return _ggee ,nil ;};
// PdfActionImportData represents a importData action.
type PdfActionImportData struct{*PdfAction ;F *PdfFilespec ;};
// ToPdfObject implements interface PdfModel.
func (_ceg *PdfAction )ToPdfObject ()_ce .PdfObject {_fbd :=_ceg ._bcc ;_eee :=_fbd .PdfObject .(*_ce .PdfObjectDictionary );_eee .Clear ();_eee .Set ("\u0054\u0079\u0070\u0065",_ce .MakeName ("\u0041\u0063\u0074\u0069\u006f\u006e"));_eee .SetIfNotNil ("\u0053",_ceg .S );
_eee .SetIfNotNil ("\u004e\u0065\u0078\u0074",_ceg .Next );return _fbd ;};func (_dbe *PdfReader )newPdfActionSubmitFormFromDict (_gfd *_ce .PdfObjectDictionary )(*PdfActionSubmitForm ,error ){_bbe ,_bef :=_ecbge (_gfd .Get ("\u0046"));if _bef !=nil {return nil ,_bef ;
};return &PdfActionSubmitForm {F :_bbe ,Fields :_gfd .Get ("\u0046\u0069\u0065\u006c\u0064\u0073"),Flags :_gfd .Get ("\u0046\u006c\u0061g\u0073")},nil ;};
// NewPdfActionGoTo3DView returns a new "goTo3DView" action.
func NewPdfActionGoTo3DView ()*PdfActionGoTo3DView {_egb :=NewPdfAction ();_ccd :=&PdfActionGoTo3DView {};_ccd .PdfAction =_egb ;_egb .SetContext (_ccd );return _ccd ;};func (_cfgaf *PdfColorspaceSpecialIndexed )String ()string {return "\u0049n\u0064\u0065\u0078\u0065\u0064";
};
// Evaluate runs the function on the passed in slice and returns the results.
func (_ffed *PdfFunctionType2 )Evaluate (x []float64 )([]float64 ,error ){if len (x )!=1{_ff .Log .Error ("\u004f\u006e\u006c\u0079 o\u006e\u0065\u0020\u0069\u006e\u0070\u0075\u0074\u0020\u0061\u006c\u006c\u006f\u0077e\u0064");return nil ,_ge .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");
};_becff :=[]float64 {0.0};if _ffed .C0 !=nil {_becff =_ffed .C0 ;};_efag :=[]float64 {1.0};if _ffed .C1 !=nil {_efag =_ffed .C1 ;};var _fadba []float64 ;for _ggccc :=0;_ggccc < len (_becff );_ggccc ++{_edee :=_becff [_ggccc ]+_egg .Pow (x [0],_ffed .N )*(_efag [_ggccc ]-_becff [_ggccc ]);
_fadba =append (_fadba ,_edee );};return _fadba ,nil ;};
// NewPdfActionJavaScript returns a new "javaScript" action.
func NewPdfActionJavaScript ()*PdfActionJavaScript {_fde :=NewPdfAction ();_ab :=&PdfActionJavaScript {};_ab .PdfAction =_fde ;_fde .SetContext (_ab );return _ab ;};
// SetXObjectByName adds the XObject from the passed in stream to the page resources.
// The added XObject is identified by the specified name.
func (_cfbgga *PdfPageResources )SetXObjectByName (keyName _ce .PdfObjectName ,stream *_ce .PdfObjectStream )error {if _cfbgga .XObject ==nil {_cfbgga .XObject =_ce .MakeDict ();};_ggdeg :=_ce .TraceToDirectObject (_cfbgga .XObject );_cdbcg ,_ebada :=_ggdeg .(*_ce .PdfObjectDictionary );
if !_ebada {_ff .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",_cfbgga .XObject ,_ggdeg );return _ge .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");
};_cdbcg .Set (keyName ,stream );return nil ;};
// ToPdfObject implements model.PdfModel interface.
func (_gadb *PdfOutputIntent )ToPdfObject ()_ce .PdfObject {if _gadb ._gfdaf ==nil {_gadb ._gfdaf =_ce .MakeDict ();};_cbdgb :=_gadb ._gfdaf ;if _gadb .Type !=""{_cbdgb .Set ("\u0054\u0079\u0070\u0065",_ce .MakeName (_gadb .Type ));};_cbdgb .Set ("\u0053",_ce .MakeName (_gadb .S .String ()));
if _gadb .OutputCondition !=""{_cbdgb .Set ("\u004fu\u0074p\u0075\u0074\u0043\u006f\u006e\u0064\u0069\u0074\u0069\u006f\u006e",_ce .MakeString (_gadb .OutputCondition ));};_cbdgb .Set ("\u004fu\u0074\u0070\u0075\u0074C\u006f\u006e\u0064\u0069\u0074i\u006fn\u0049d\u0065\u006e\u0074\u0069\u0066\u0069\u0065r",_ce .MakeString (_gadb .OutputConditionIdentifier ));
_cbdgb .Set ("\u0052\u0065\u0067i\u0073\u0074\u0072\u0079\u004e\u0061\u006d\u0065",_ce .MakeString (_gadb .RegistryName ));if _gadb .Info !=""{_cbdgb .Set ("\u0049\u006e\u0066\u006f",_ce .MakeString (_gadb .Info ));};if len (_gadb .DestOutputProfile )!=0{_eceae ,_cafda :=_ce .MakeStream (_gadb .DestOutputProfile ,_ce .NewFlateEncoder ());
if _cafda !=nil {_ff .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",_cafda );
};_eceae .PdfObjectDictionary .Set ("\u004e",_ce .MakeInteger (int64 (_gadb .ColorComponents )));_gffg :=make ([]float64 ,_gadb .ColorComponents *2);for _cdfd :=0;_cdfd < _gadb .ColorComponents *2;_cdfd ++{_ggdag :=0.0;if _cdfd %2!=0{_ggdag =1.0;};_gffg [_cdfd ]=_ggdag ;
};_eceae .PdfObjectDictionary .Set ("\u0052\u0061\u006eg\u0065",_ce .MakeArrayFromFloats (_gffg ));_cbdgb .Set ("\u0044\u0065\u0073\u0074\u004f\u0075\u0074\u0070\u0075\u0074\u0050\u0072o\u0066\u0069\u006c\u0065",_eceae );};return _cbdgb ;};func (_adbeec *PdfWriter )writeDocumentVersion (){if _adbeec ._ddfff {_adbeec .writeString ("\u000a");
}else {_adbeec .writeString (_e .Sprintf ("\u0025\u0025\u0050D\u0046\u002d\u0025\u0064\u002e\u0025\u0064\u000a",_adbeec ._facee .Major ,_adbeec ._facee .Minor ));_adbeec .writeString ("\u0025\u00e2\u00e3\u00cf\u00d3\u000a");};};
// GetContentStreams returns the content stream as an array of strings.
func (_gfbcc *PdfPage )GetContentStreams ()([]string ,error ){_facfg :=_gfbcc .GetContentStreamObjs ();var _dbce []string ;for _ ,_gdbea :=range _facfg {_ceee ,_adcdf :=_becbc (_gdbea );if _adcdf !=nil {return nil ,_adcdf ;};_dbce =append (_dbce ,_ceee );
};return _dbce ,nil ;};const (RC4_128bit =EncryptionAlgorithm (iota );AES_128bit ;AES_256bit ;);
// PdfAnnotationStrikeOut represents StrikeOut annotations.
// (Section 12.5.6.10).
type PdfAnnotationStrikeOut struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _ce .PdfObject ;};
// AddPage adds a page to the PDF file. The new page should be an indirect object.
func (_cfdbg *PdfWriter )AddPage (page *PdfPage )error {const _gadeb ="\u006d\u006f\u0064el\u003a\u0050\u0064\u0066\u0057\u0072\u0069\u0074\u0065\u0072\u002e\u0041\u0064\u0064\u0050\u0061\u0067\u0065";_bfbegf (page );_ffege :=page .ToPdfObject ();_ff .Log .Trace ("\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d");
_ff .Log .Trace ("\u0041p\u0070\u0065\u006e\u0064i\u006e\u0067\u0020\u0074\u006f \u0070a\u0067e\u0020\u006c\u0069\u0073\u0074\u0020\u0025T",_ffege );_cfdac ,_cccbd :=_ce .GetIndirect (_ffege );if !_cccbd {return _ge .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");
};_ff .Log .Trace ("\u0025\u0073",_cfdac );_ff .Log .Trace ("\u0025\u0073",_cfdac .PdfObject );_edfdd ,_cccbd :=_ce .GetDict (_cfdac .PdfObject );if !_cccbd {return _ge .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");
};_gebae ,_cccbd :=_ce .GetName (_edfdd .Get ("\u0054\u0079\u0070\u0065"));if !_cccbd {return _e .Errorf ("\u0070\u0061\u0067\u0065\u0020\u0073\u0068\u006f\u0075\u006c\u0064\u0020\u0068\u0061\u0076\u0065\u0020\u0061\u0020\u0054y\u0070\u0065\u0020\u006b\u0065\u0079\u0020\u0077\u0069t\u0068\u0020\u0061\u0020\u0076\u0061\u006c\u0075\u0065\u0020\u006f\u0066\u0020t\u0079\u0070\u0065\u0020\u006e\u0061m\u0065\u0020\u0028%\u0054\u0029",_edfdd .Get ("\u0054\u0079\u0070\u0065"));
};if _gebae .String ()!="\u0050\u0061\u0067\u0065"{return _ge .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");};_aegcb :=[]_ce .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"};
_babde ,_fgdbc :=_ce .GetIndirect (_edfdd .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"));_ff .Log .Trace ("P\u0061g\u0065\u0020\u0050\u0061\u0072\u0065\u006e\u0074:\u0020\u0025\u0054\u0020(%\u0076\u0029",_edfdd .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"),_fgdbc );
for _fgdbc {_ff .Log .Trace ("\u0050a\u0067e\u0020\u0050\u0061\u0072\u0065\u006e\u0074\u003a\u0020\u0025\u0054",_babde );_fbccc ,_aageb :=_ce .GetDict (_babde .PdfObject );if !_aageb {return _ge .New ("i\u006e\u0076\u0061\u006cid\u0020P\u0061\u0072\u0065\u006e\u0074 \u006f\u0062\u006a\u0065\u0063\u0074");
};for _ ,_edffc :=range _aegcb {_ff .Log .Trace ("\u0046\u0069\u0065\u006c\u0064\u0020\u0025\u0073",_edffc );if _edfdd .Get (_edffc )!=nil {_ff .Log .Trace ("\u002d \u0070a\u0067\u0065\u0020\u0068\u0061s\u0020\u0061l\u0072\u0065\u0061\u0064\u0079");continue ;
};if _bfdag :=_fbccc .Get (_edffc );_bfdag !=nil {_ff .Log .Trace ("\u0049\u006e\u0068\u0065ri\u0074\u0069\u006e\u0067\u0020\u0066\u0069\u0065\u006c\u0064\u0020\u0025\u0073",_edffc );_edfdd .Set (_edffc ,_bfdag );};};_babde ,_fgdbc =_ce .GetIndirect (_fbccc .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"));
_ff .Log .Trace ("\u004ee\u0078t\u0020\u0070\u0061\u0072\u0065\u006e\u0074\u003a\u0020\u0025\u0054",_fbccc .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"));};_ff .Log .Trace ("\u0054\u0072\u0061\u0076\u0065\u0072\u0073\u0061\u006c \u0064\u006f\u006e\u0065");
_edfdd .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_cfdbg ._dbdaa );_cfdac .PdfObject =_edfdd ;_daacd ,_cccbd :=_ce .GetDict (_cfdbg ._dbdaa .PdfObject );if !_cccbd {return _ge .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");
};_defg ,_cccbd :=_ce .GetArray (_daacd .Get ("\u004b\u0069\u0064\u0073"));if !_cccbd {return _ge .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");
};_defg .Append (_cfdac );_cfdbg ._defec [_edfdd ]=struct{}{};_bbag ,_cccbd :=_ce .GetInt (_daacd .Get ("\u0043\u006f\u0075n\u0074"));if !_cccbd {return _ge .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");
};*_bbag =*_bbag +1;if page ._cagde ==nil {_dgae :=_gec .Track (_cfdbg ._cbdcb ,_gadeb );if _dgae !=nil {return _dgae ;};}else {_decfc :=_gec .Track (page ._cagde ._feegf ,_gadeb );if _decfc !=nil {return _decfc ;};};_cfdbg .addObject (_cfdac );_addad :=_cfdbg .addObjects (_edfdd );
if _addad !=nil {return _addad ;};return nil ;};
// NewPdfOutputIntentFromPdfObject creates a new PdfOutputIntent from the input core.PdfObject.
func NewPdfOutputIntentFromPdfObject (object _ce .PdfObject )(*PdfOutputIntent ,error ){_cfdea :=&PdfOutputIntent {};if _bcfbg :=_cfdea .ParsePdfObject (object );_bcfbg !=nil {return nil ,_bcfbg ;};return _cfdea ,nil ;};
// NewPdfAnnotationSquare returns a new square annotation.
func NewPdfAnnotationSquare ()*PdfAnnotationSquare {_gdee :=NewPdfAnnotation ();_cgaad :=&PdfAnnotationSquare {};_cgaad .PdfAnnotation =_gdee ;_cgaad .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_gdee .SetContext (_cgaad );return _cgaad ;};
// ToPdfObject recursively builds the Outline tree PDF object.
func (_bcgaf *PdfOutlineItem )ToPdfObject ()_ce .PdfObject {_aacce :=_bcgaf ._ggcfgf ;_gfedg :=_aacce .PdfObject .(*_ce .PdfObjectDictionary );_gfedg .Set ("\u0054\u0069\u0074l\u0065",_bcgaf .Title );if _bcgaf .A !=nil {_gfedg .Set ("\u0041",_bcgaf .A );
};if _afeeg :=_gfedg .Get ("\u0053\u0045");_afeeg !=nil {_gfedg .Remove ("\u0053\u0045");};if _bcgaf .C !=nil {_gfedg .Set ("\u0043",_bcgaf .C );};if _bcgaf .Dest !=nil {_gfedg .Set ("\u0044\u0065\u0073\u0074",_bcgaf .Dest );};if _bcgaf .F !=nil {_gfedg .Set ("\u0046",_bcgaf .F );
};if _bcgaf .Count !=nil {_gfedg .Set ("\u0043\u006f\u0075n\u0074",_ce .MakeInteger (*_bcgaf .Count ));};if _bcgaf .Next !=nil {_gfedg .Set ("\u004e\u0065\u0078\u0074",_bcgaf .Next .ToPdfObject ());};if _bcgaf .First !=nil {_gfedg .Set ("\u0046\u0069\u0072s\u0074",_bcgaf .First .ToPdfObject ());
};if _bcgaf .Prev !=nil {_gfedg .Set ("\u0050\u0072\u0065\u0076",_bcgaf .Prev .GetContext ().GetContainingPdfObject ());};if _bcgaf .Last !=nil {_gfedg .Set ("\u004c\u0061\u0073\u0074",_bcgaf .Last .GetContext ().GetContainingPdfObject ());};if _bcgaf .Parent !=nil {_gfedg .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_bcgaf .Parent .GetContext ().GetContainingPdfObject ());
};return _aacce ;};func _dbga (_bfbc _ce .PdfObject )(*PdfColorspaceSpecialPattern ,error ){_ff .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",_bfbc .String (),_bfbc );
_fcb :=NewPdfColorspaceSpecialPattern ();if _cabb ,_fbgfb :=_bfbc .(*_ce .PdfIndirectObject );_fbgfb {_fcb ._eccb =_cabb ;};_bfbc =_ce .TraceToDirectObject (_bfbc );if _geeg ,_agfd :=_bfbc .(*_ce .PdfObjectName );_agfd {if *_geeg !="\u0050a\u0074\u0074\u0065\u0072\u006e"{return nil ,_e .Errorf ("\u0069\u006e\u0076a\u006c\u0069\u0064\u0020\u006e\u0061\u006d\u0065");
};return _fcb ,nil ;};_bcfc ,_bedc :=_bfbc .(*_ce .PdfObjectArray );if !_bedc {_ff .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",_bfbc );
return nil ,_e .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0050\u0061\u0074\u0074e\u0072n\u0020C\u0053\u0020\u006f\u0062\u006a\u0065\u0063t");};if _bcfc .Len ()!=1&&_bcfc .Len ()!=2{_ff .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",_bcfc );
return nil ,_e .Errorf ("\u0069n\u0076\u0061\u006c\u0069\u0064\u0020\u0050\u0061\u0074\u0074\u0065r\u006e\u0020\u0043\u0053\u0020\u0061\u0072\u0072\u0061\u0079");};_bfbc =_bcfc .Get (0);if _fcad ,_aecf :=_bfbc .(*_ce .PdfObjectName );_aecf {if *_fcad !="\u0050a\u0074\u0074\u0065\u0072\u006e"{_ff .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",_fcad );
return nil ,_e .Errorf ("\u0069\u006e\u0076a\u006c\u0069\u0064\u0020\u006e\u0061\u006d\u0065");};};if _bcfc .Len ()> 1{_bfbc =_bcfc .Get (1);_bfbc =_ce .TraceToDirectObject (_bfbc );_badg ,_fege :=NewPdfColorspaceFromPdfObject (_bfbc );if _fege !=nil {return nil ,_fege ;
};_fcb .UnderlyingCS =_badg ;};_ff .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",_fcb .UnderlyingCS );
return _fcb ,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 (_edcf int ,_fegef *PdfPage );func (_daeg *PdfReader )buildOutlineTree (_feffe _ce .PdfObject ,_fedd *PdfOutlineTreeNode ,_eeggg *PdfOutlineTreeNode ,_dcbaf map[_ce .PdfObject ]struct{})(*PdfOutlineTreeNode ,*PdfOutlineTreeNode ,error ){if _dcbaf ==nil {_dcbaf =map[_ce .PdfObject ]struct{}{};
};_dcbaf [_feffe ]=struct{}{};_cddc ,_fcaeg :=_feffe .(*_ce .PdfIndirectObject );if !_fcaeg {return nil ,nil ,_e .Errorf ("\u006f\u0075\u0074\u006c\u0069\u006e\u0065 \u0063\u006f\u006et\u0061\u0069\u006e\u0065r\u0020\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0069\u006e\u0064\u0069\u0072\u0065\u0063\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0020\u0025\u0054",_feffe );
};_dgbac ,_dacaa :=_cddc .PdfObject .(*_ce .PdfObjectDictionary );if !_dacaa {return nil ,nil ,_ge .New ("\u006e\u006f\u0074 a\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u0020\u006f\u0062\u006a\u0065\u0063\u0074");};_ff .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",_dgbac ,_cddc ,_cddc );
if _dcdgc :=_dgbac .Get ("\u0054\u0069\u0074l\u0065");_dcdgc !=nil {_bfefc ,_cegfa :=_daeg .newPdfOutlineItemFromIndirectObject (_cddc );if _cegfa !=nil {return nil ,nil ,_cegfa ;};_bfefc .Parent =_fedd ;_bfefc .Prev =_eeggg ;_aedeb :=_ce .ResolveReference (_dgbac .Get ("\u0046\u0069\u0072s\u0074"));
if _ ,_becfa :=_dcbaf [_aedeb ];_aedeb !=nil &&_aedeb !=_cddc &&!_becfa {if !_ce .IsNullObject (_aedeb ){_eaab ,_adfee ,_ccacbb :=_daeg .buildOutlineTree (_aedeb ,&_bfefc .PdfOutlineTreeNode ,nil ,_dcbaf );if _ccacbb !=nil {_ff .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",_ccacbb );
}else {_bfefc .First =_eaab ;_bfefc .Last =_adfee ;};};};_abaga :=_ce .ResolveReference (_dgbac .Get ("\u004e\u0065\u0078\u0074"));if _ ,_fabbae :=_dcbaf [_abaga ];_abaga !=nil &&_abaga !=_cddc &&!_fabbae {if !_ce .IsNullObject (_abaga ){_dadgc ,_dcabf ,_eadagc :=_daeg .buildOutlineTree (_abaga ,_fedd ,&_bfefc .PdfOutlineTreeNode ,_dcbaf );
if _eadagc !=nil {_ff .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",_eadagc );
}else {_bfefc .Next =_dadgc ;return &_bfefc .PdfOutlineTreeNode ,_dcabf ,nil ;};};};return &_bfefc .PdfOutlineTreeNode ,&_bfefc .PdfOutlineTreeNode ,nil ;};_fcced ,_begbe :=_dfcde (_cddc );if _begbe !=nil {return nil ,nil ,_begbe ;};_fcced .Parent =_fedd ;
if _gcdgc :=_dgbac .Get ("\u0046\u0069\u0072s\u0074");_gcdgc !=nil {_gcdgc =_ce .ResolveReference (_gcdgc );if _ ,_edefa :=_dcbaf [_gcdgc ];_gcdgc !=nil &&_gcdgc !=_cddc &&!_edefa {_befd :=_ce .TraceToDirectObject (_gcdgc );if _ ,_dfgcd :=_befd .(*_ce .PdfObjectNull );
!_dfgcd &&_befd !=nil {_fcdee ,_fcafc ,_ccde :=_daeg .buildOutlineTree (_gcdgc ,&_fcced .PdfOutlineTreeNode ,nil ,_dcbaf );if _ccde !=nil {_ff .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",_ccde );
}else {_fcced .First =_fcdee ;_fcced .Last =_fcafc ;};};};};return &_fcced .PdfOutlineTreeNode ,&_fcced .PdfOutlineTreeNode ,nil ;};func (_bdcg *PdfAnnotationMarkup )appendToPdfDictionary (_egdb *_ce .PdfObjectDictionary ){_egdb .SetIfNotNil ("\u0054",_bdcg .T );
if _bdcg .Popup !=nil {_egdb .Set ("\u0050\u006f\u0070u\u0070",_bdcg .Popup .ToPdfObject ());};_egdb .SetIfNotNil ("\u0043\u0041",_bdcg .CA );_egdb .SetIfNotNil ("\u0052\u0043",_bdcg .RC );_egdb .SetIfNotNil ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065",_bdcg .CreationDate );
_egdb .SetIfNotNil ("\u0049\u0052\u0054",_bdcg .IRT );_egdb .SetIfNotNil ("\u0053\u0075\u0062\u006a",_bdcg .Subj );_egdb .SetIfNotNil ("\u0052\u0054",_bdcg .RT );_egdb .SetIfNotNil ("\u0049\u0054",_bdcg .IT );_egdb .SetIfNotNil ("\u0045\u0078\u0044\u0061\u0074\u0061",_bdcg .ExData );
};
// NewPdfActionSetOCGState returns a new "named" action.
func NewPdfActionSetOCGState ()*PdfActionSetOCGState {_age :=NewPdfAction ();_def :=&PdfActionSetOCGState {};_def .PdfAction =_age ;_age .SetContext (_def );return _def ;};func _dffgda ()*modelManager {_gdfd :=modelManager {};_gdfd ._dgefa =map[PdfModel ]_ce .PdfObject {};
_gdfd ._adbfe =map[_ce .PdfObject ]PdfModel {};return &_gdfd ;};
// 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 (_gacbg *PdfColorspaceSpecialPattern )ColorToRGB (color PdfColor )(PdfColor ,error ){_dedce ,_febd :=color .(*PdfColorPattern );if !_febd {_ff .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 _dedce .Color ==nil {return color ,nil ;};if _gacbg .UnderlyingCS ==nil {return nil ,_ge .New ("\u0075n\u0064\u0065\u0072\u006cy\u0069\u006e\u0067\u0020\u0043S\u0020n\u006ft\u0020\u0064\u0065\u0066\u0069\u006e\u0065d");};
return _gacbg .UnderlyingCS .ColorToRGB (_dedce .Color );};
// NewImageFromGoImage creates a new NRGBA32 unidoc Image from a golang Image.
// If `goimg` is grayscale (*goimage.Gray8) then calls NewGrayImageFromGoImage instead.
func (_beabb DefaultImageHandler )NewImageFromGoImage (goimg _cb .Image )(*Image ,error ){_cfccf ,_bbcec :=_gf .FromGoImage (goimg );if _bbcec !=nil {return nil ,_bbcec ;};_gffee :=_ffba (_cfccf .Base ());return &_gffee ,nil ;};func _ecgcd (_eebb []byte )(_bbeec ,_egefb string ,_bgfg error ){_ff .Log .Trace ("g\u0065\u0074\u0041\u0053CI\u0049S\u0065\u0063\u0074\u0069\u006fn\u0073\u003a\u0020\u0025\u0064\u0020",len (_eebb ));
_bebe :=_cdgeb .FindIndex (_eebb );if _bebe ==nil {_ff .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 "","",_ce .ErrTypeError ;};_gfdge :=_bebe [1];_caeg :=_g .Index (string (_eebb [_gfdge :]),_addfe );if _caeg < 0{_bbeec =string (_eebb [_gfdge :]);return _bbeec ,"",nil ;};_gcdc :=_gfdge +_caeg ;_bbeec =string (_eebb [_gfdge :_gcdc ]);_bcgbb :=_gcdc ;
_caeg =_g .Index (string (_eebb [_bcgbb :]),_degcb );if _caeg < 0{_ff .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",_bgfg );
return "","",_ce .ErrTypeError ;};_ccdce :=_bcgbb +_caeg ;_egefb =string (_eebb [_bcgbb :_ccdce ]);return _bbeec ,_egefb ,nil ;};
// PdfAnnotationHighlight represents Highlight annotations.
// (Section 12.5.6.10).
type PdfAnnotationHighlight struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _ce .PdfObject ;};func _baecf (_adadf _ce .PdfObject )(*PdfPattern ,error ){_acbcb :=&PdfPattern {};var _agece *_ce .PdfObjectDictionary ;if _abegc ,_cgfef :=_ce .GetIndirect (_adadf );
_cgfef {_acbcb ._gadcb =_abegc ;_fdafa ,_eebe :=_abegc .PdfObject .(*_ce .PdfObjectDictionary );if !_eebe {_ff .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",_abegc .PdfObject );
return nil ,_ce .ErrTypeError ;};_agece =_fdafa ;}else if _beef ,_bafcb :=_ce .GetStream (_adadf );_bafcb {_acbcb ._gadcb =_beef ;_agece =_beef .PdfObjectDictionary ;}else {_ff .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",_adadf );
return nil ,_ce .ErrTypeError ;};_cbde :=_agece .Get ("P\u0061\u0074\u0074\u0065\u0072\u006e\u0054\u0079\u0070\u0065");if _cbde ==nil {_ff .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 ;};_cfcae ,_eddc :=_cbde .(*_ce .PdfObjectInteger );if !_eddc {_ff .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",_cbde );
return nil ,_ce .ErrTypeError ;};if *_cfcae !=1&&*_cfcae !=2{_ff .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",*_cfcae );return nil ,_ce .ErrRangeError ;
};_acbcb .PatternType =int64 (*_cfcae );switch *_cfcae {case 1:_agedd ,_ffffg :=_cbceb (_agece );if _ffffg !=nil {return nil ,_ffffg ;};_agedd .PdfPattern =_acbcb ;_acbcb ._fbea =_agedd ;return _acbcb ,nil ;case 2:_fbeaae ,_dcagcd :=_bcea (_agece );if _dcagcd !=nil {return nil ,_dcagcd ;
};_fbeaae .PdfPattern =_acbcb ;_acbcb ._fbea =_fbeaae ;return _acbcb ,nil ;};return nil ,_ge .New ("\u0075n\u006bn\u006f\u0077\u006e\u0020\u0070\u0061\u0074\u0074\u0065\u0072\u006e");};
// ToPdfObject implements interface PdfModel.
func (_dfg *PdfActionMovie )ToPdfObject ()_ce .PdfObject {_dfg .PdfAction .ToPdfObject ();_ffg :=_dfg ._bcc ;_bg :=_ffg .PdfObject .(*_ce .PdfObjectDictionary );_bg .SetIfNotNil ("\u0053",_ce .MakeName (string (ActionTypeMovie )));_bg .SetIfNotNil ("\u0041\u006e\u006e\u006f\u0074\u0061\u0074\u0069\u006f\u006e",_dfg .Annotation );
_bg .SetIfNotNil ("\u0054",_dfg .T );_bg .SetIfNotNil ("\u004fp\u0065\u0072\u0061\u0074\u0069\u006fn",_dfg .Operation );return _ffg ;};func (_eeddb *PdfWriter )checkLicense ()error {_cfcbe :=_gec .GetLicenseKey ();if (_cfcbe ==nil ||!_cfcbe .IsLicensed ())&&!_dbdae {_e .Printf ("\u0055\u006e\u006c\u0069\u0063\u0065\u006e\u0073\u0065\u0064\u0020c\u006f\u0070\u0079\u0020\u006f\u0066\u0020\u0055\u006e\u0069P\u0044\u0046\u000a");
_e .Println ("-\u0020\u0047\u0065\u0074\u0020\u0061\u0020\u0066\u0072e\u0065\u0020\u0074\u0072\u0069\u0061\u006c l\u0069\u0063\u0065\u006es\u0065\u0020\u006f\u006e\u0020\u0068\u0074\u0074\u0070s:\u002f\u002fu\u006e\u0069\u0064\u006f\u0063\u002e\u0069\u006f");
return _ge .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 ;};const (XObjectTypeUndefined XObjectType =iota ;XObjectTypeImage ;XObjectTypeForm ;
XObjectTypePS ;XObjectTypeUnknown ;);func _ddadd (_gaebf *_ce .PdfObjectDictionary ,_daggd *fontCommon )(*pdfFontType3 ,error ){_cgbf :=_eedd (_daggd );_gbfed :=_gaebf .Get ("\u0046i\u0072\u0073\u0074\u0043\u0068\u0061r");if _gbfed ==nil {_gbfed =_ce .MakeInteger (0);
};_cgbf .FirstChar =_gbfed ;_gccgb ,_dgfd :=_ce .GetIntVal (_gbfed );if !_dgfd {_ff .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",_gbfed );
return nil ,_ce .ErrTypeError ;};_bcaf :=_dc .CharCode (_gccgb );_gbfed =_gaebf .Get ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072");if _gbfed ==nil {_gbfed =_ce .MakeInteger (255);};_cgbf .LastChar =_gbfed ;_gccgb ,_dgfd =_ce .GetIntVal (_gbfed );
if !_dgfd {_ff .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",_gbfed );return nil ,_ce .ErrTypeError ;
};_fffec :=_dc .CharCode (_gccgb );_gbfed =_gaebf .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");if _gbfed !=nil {_cgbf .Resources =_gbfed ;};_gbfed =_gaebf .Get ("\u0043h\u0061\u0072\u0050\u0072\u006f\u0063s");if _gbfed ==nil {_ff .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",_gbfed );
return nil ,_ce .ErrNotSupported ;};_cgbf .CharProcs =_gbfed ;_gbfed =_gaebf .Get ("\u0046\u006f\u006e\u0074\u004d\u0061\u0074\u0072\u0069\u0078");if _gbfed ==nil {_ff .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",_gbfed );
return nil ,_ce .ErrNotSupported ;};_cgbf .FontMatrix =_gbfed ;_cgbf ._afbb =make (map[_dc .CharCode ]float64 );_gbfed =_gaebf .Get ("\u0057\u0069\u0064\u0074\u0068\u0073");if _gbfed !=nil {_cgbf .Widths =_gbfed ;_cggb ,_debde :=_ce .GetArray (_gbfed );
if !_debde {_ff .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",_gbfed );return nil ,_ce .ErrTypeError ;
};_fcfg ,_dagbff :=_cggb .ToFloat64Array ();if _dagbff !=nil {_ff .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 ,_dagbff ;};if len (_fcfg )!=int (_fffec -_bcaf +1){_ff .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",_fffec -_bcaf +1,len (_fcfg ));
return nil ,_ce .ErrRangeError ;};_dgbfb ,_debde :=_ce .GetArray (_cgbf .FontMatrix );if !_debde {_ff .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",_dgbfb );
return nil ,_dagbff ;};_gfbgc ,_dagbff :=_dgbfb .ToFloat64Array ();if _dagbff !=nil {_ff .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 ,_dagbff ;};_cabcd :=_efc .NewMatrix (_gfbgc [0],_gfbgc [1],_gfbgc [2],_gfbgc [3],_gfbgc [4],_gfbgc [5]);for _acbe ,_dgac :=range _fcfg {_faeg ,_ :=_cabcd .Transform (_dgac ,_dgac );_cgbf ._afbb [_bcaf +_dc .CharCode (_acbe )]=_faeg ;};};_cgbf .Encoding =_ce .TraceToDirectObject (_gaebf .Get ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067"));
_bgfdf :=_gaebf .Get ("\u0054o\u0055\u006e\u0069\u0063\u006f\u0064e");if _bgfdf !=nil {_cgbf ._bcef =_ce .TraceToDirectObject (_bgfdf );_cebdf ,_feaef :=_ddabd (_cgbf ._bcef ,&_cgbf .fontCommon );if _feaef !=nil {return nil ,_feaef ;};_cgbf ._dgfcg =_cebdf ;
};if _fccf :=_cgbf ._dgfcg ;_fccf !=nil {_cgbf ._aacfd =_dc .NewCMapEncoder ("",nil ,_fccf );}else {_cgbf ._aacfd =_dc .NewPdfDocEncoder ();};return _cgbf ,nil ;};
// PdfAnnotationScreen represents Screen annotations.
// (Section 12.5.6.18).
type PdfAnnotationScreen struct{*PdfAnnotation ;T _ce .PdfObject ;MK _ce .PdfObject ;A _ce .PdfObject ;AA _ce .PdfObject ;};
// ToPdfObject converts the pdfCIDFontType0 to a PDF representation.
func (_bfedg *pdfCIDFontType0 )ToPdfObject ()_ce .PdfObject {return _ce .MakeNull ()};
// PdfColorPattern represents a pattern color.
type PdfColorPattern struct{Color PdfColor ;PatternName _ce .PdfObjectName ;};
// Fill populates `form` with values provided by `provider`.
func (_fcbe *PdfAcroForm )Fill (provider FieldValueProvider )error {return _fcbe .fill (provider ,nil )};func (_facd *PdfReader )newPdfAnnotationSquigglyFromDict (_ffgd *_ce .PdfObjectDictionary )(*PdfAnnotationSquiggly ,error ){_agdg :=PdfAnnotationSquiggly {};
_dgd ,_eabg :=_facd .newPdfAnnotationMarkupFromDict (_ffgd );if _eabg !=nil {return nil ,_eabg ;};_agdg .PdfAnnotationMarkup =_dgd ;_agdg .QuadPoints =_ffgd .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");return &_agdg ,nil ;};
// G returns the value of the green component of the color.
func (_dcab *PdfColorDeviceRGB )G ()float64 {return _dcab [1]};
// PdfVersion returns version of the PDF file.
func (_bfadg *PdfReader )PdfVersion ()_ce .Version {return _bfadg ._afda .PdfVersion ()};func (_ebbcc *PdfReader )lookupPageByObject (_fcfgg _ce .PdfObject )(*PdfPage ,error ){return nil ,_ge .New ("\u0070\u0061\u0067\u0065\u0020\u006e\u006f\u0074\u0020f\u006f\u0075\u006e\u0064");
};
// PdfColorspaceSpecialPattern is a Pattern colorspace.
// Can be defined either as /Pattern or with an underlying colorspace [/Pattern cs].
type PdfColorspaceSpecialPattern struct{UnderlyingCS PdfColorspace ;_eccb *_ce .PdfIndirectObject ;};
// Transform rectangle with the supplied matrix.
func (_bcega *PdfRectangle )Transform (transformMatrix _efc .Matrix ){_bcega .Llx ,_bcega .Lly =transformMatrix .Transform (_bcega .Llx ,_bcega .Lly );_bcega .Urx ,_bcega .Ury =transformMatrix .Transform (_bcega .Urx ,_bcega .Ury );_bcega .Normalize ();
};
// GetXObjectImageByName returns the XObjectImage with the specified name from the
// page resources, if it exists.
func (_gbdeg *PdfPageResources )GetXObjectImageByName (keyName _ce .PdfObjectName )(*XObjectImage ,error ){_aadbe ,_ggbad :=_gbdeg .GetXObjectByName (keyName );if _aadbe ==nil {return nil ,nil ;};if _ggbad !=XObjectTypeImage {return nil ,_ge .New ("\u006e\u006f\u0074 \u0061\u006e\u0020\u0069\u006d\u0061\u0067\u0065");
};_cbda ,_dacac :=NewXObjectImageFromStream (_aadbe );if _dacac !=nil {return nil ,_dacac ;};return _cbda ,nil ;};func _bgcg (_abbdd *_ce .PdfObjectDictionary ,_abgab *fontCommon )(*pdfCIDFontType2 ,error ){if _abgab ._baafb !="\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032"{_ff .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",_abgab );
return nil ,_ce .ErrRangeError ;};_gfbg :=_cfgf (_abgab );_gcfaa ,_fdace :=_ce .GetDict (_abbdd .Get ("\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f"));if !_fdace {_ff .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",_abgab );
return nil ,ErrRequiredAttributeMissing ;};_gfbg .CIDSystemInfo =_gcfaa ;_gfbg .DW =_abbdd .Get ("\u0044\u0057");_gfbg .W =_abbdd .Get ("\u0057");_gfbg .DW2 =_abbdd .Get ("\u0044\u0057\u0032");_gfbg .W2 =_abbdd .Get ("\u0057\u0032");_gfbg .CIDToGIDMap =_abbdd .Get ("C\u0049\u0044\u0054\u006f\u0047\u0049\u0044\u004d\u0061\u0070");
_gfbg ._fbcca =1000.0;if _bcfbd ,_gaefd :=_ce .GetNumberAsFloat (_gfbg .DW );_gaefd ==nil {_gfbg ._fbcca =_bcfbd ;};_adag ,_dedf :=_baef (_gfbg .W );if _dedf !=nil {return nil ,_dedf ;};if _adag ==nil {_adag =map[_dc .CharCode ]float64 {};};_gfbg ._ffgda =_adag ;
return _gfbg ,nil ;};
// NewPdfColorspaceLab returns a new Lab colorspace object.
func NewPdfColorspaceLab ()*PdfColorspaceLab {_bggf :=&PdfColorspaceLab {};_bggf .BlackPoint =[]float64 {0.0,0.0,0.0};_bggf .Range =[]float64 {-100,100,-100,100};return _bggf ;};
// 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 _ce .PdfObject ;_adga []byte ;_cbca *_ce .PdfIndirectObject ;};func (_defa *DSS )generateHashMap (_afacc []*_ce .PdfObjectStream )(map[string ]*_ce .PdfObjectStream ,error ){_febe :=map[string ]*_ce .PdfObjectStream {};
for _ ,_dgff :=range _afacc {_decbc ,_gaffe :=_ce .DecodeStream (_dgff );if _gaffe !=nil {return nil ,_gaffe ;};_agcb ,_gaffe :=_cgcbd (_decbc );if _gaffe !=nil {return nil ,_gaffe ;};_febe [string (_agcb )]=_dgff ;};return _febe ,nil ;};
// NewPdfReader returns a new PdfReader for an input io.ReadSeeker interface. Can be used to read PDF from
// memory or file. Immediately loads and traverses the PDF structure including pages and page contents (if
// not encrypted). Loads entire document structure into memory.
// Alternatively a lazy-loading reader can be created with NewPdfReaderLazy which loads only references,
// and references are loaded from disk into memory on an as-needed basis.
func NewPdfReader (rs _gd .ReadSeeker )(*PdfReader ,error ){const _cgbga ="\u006do\u0064e\u006c\u003a\u004e\u0065\u0077P\u0064\u0066R\u0065\u0061\u0064\u0065\u0072";return _aaegd (rs ,&ReaderOpts {},false ,_cgbga );};
// PdfColorspaceDeviceGray represents a grayscale colorspace.
type PdfColorspaceDeviceGray struct{};
// SetPdfTitle sets the Title attribute of the output PDF.
func SetPdfTitle (title string ){_cbcgc .Lock ();defer _cbcgc .Unlock ();_dbfgc =title };func (_gcff *PdfReader )newPdfAnnotation3DFromDict (_acadc *_ce .PdfObjectDictionary )(*PdfAnnotation3D ,error ){_cfae :=PdfAnnotation3D {};_cfae .T3DD =_acadc .Get ("\u0033\u0044\u0044");
_cfae .T3DV =_acadc .Get ("\u0033\u0044\u0056");_cfae .T3DA =_acadc .Get ("\u0033\u0044\u0041");_cfae .T3DI =_acadc .Get ("\u0033\u0044\u0049");_cfae .T3DB =_acadc .Get ("\u0033\u0044\u0042");return &_cfae ,nil ;};
// ApplyStandard is used to apply changes required on the document to match the rules required by the input standard.
// The writer's content would be changed after all the document parts are already established during the Write method.
// A good example of the StandardApplier could be a PDF/A Profile (i.e.: pdfa.Profile1A). In such a case PdfWriter would
// set up all rules required by that Profile.
func (_aebea *PdfWriter )ApplyStandard (optimizer StandardApplier ){_aebea ._dgeef =optimizer };
// WriteToFile writes the output PDF to file.
func (_fbfbae *PdfWriter )WriteToFile (outputFilePath string )error {_bbge ,_agccc :=_dd .Create (outputFilePath );if _agccc !=nil {return _agccc ;};defer _bbge .Close ();return _fbfbae .Write (_bbge );};func (_bccaf *PdfReader )newPdfAcroFormFromDict (_gfde *_ce .PdfIndirectObject ,_ffaa *_ce .PdfObjectDictionary )(*PdfAcroForm ,error ){_abcea :=NewPdfAcroForm ();
if _gfde !=nil {_abcea ._febb =_gfde ;_gfde .PdfObject =_ce .MakeDict ();};if _ddada :=_ffaa .Get ("\u0046\u0069\u0065\u006c\u0064\u0073");_ddada !=nil &&!_ce .IsNullObject (_ddada ){_bbgd ,_dgcd :=_ce .GetArray (_ddada );if !_dgcd {return nil ,_e .Errorf ("\u0066i\u0065\u006c\u0064\u0073\u0020\u006e\u006f\u0074\u0020\u0061\u006e \u0061\u0072\u0072\u0061\u0079\u0020\u0028\u0025\u0054\u0029",_ddada );
};var _affbf []*PdfField ;for _ ,_aggd :=range _bbgd .Elements (){_ffdc ,_gabffe :=_ce .GetIndirect (_aggd );if !_gabffe {if _ ,_fgbd :=_aggd .(*_ce .PdfObjectNull );_fgbd {_ff .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 ;};_ff .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",_aggd );
return nil ,_e .Errorf ("\u0066\u0069\u0065l\u0064\u0020\u006e\u006ft\u0020\u0069\u006e\u0020\u0061\u006e\u0020i\u006e\u0064\u0069\u0072\u0065\u0063\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074");};_dafga ,_bcdd :=_bccaf .newPdfFieldFromIndirectObject (_ffdc ,nil );
if _bcdd !=nil {return nil ,_bcdd ;};_ff .Log .Trace ("\u0041\u0063\u0072\u006fFo\u0072\u006d\u0020\u0046\u0069\u0065\u006c\u0064\u003a\u0020\u0025\u002b\u0076",*_dafga );_affbf =append (_affbf ,_dafga );};_abcea .Fields =&_affbf ;};if _fede :=_ffaa .Get ("\u004ee\u0065d\u0041\u0070\u0070\u0065\u0061\u0072\u0061\u006e\u0063\u0065\u0073");
_fede !=nil {_dcae ,_bgbg :=_ce .GetBool (_fede );if _bgbg {_abcea .NeedAppearances =_dcae ;}else {_ff .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",_fede );
};};if _ddcf :=_ffaa .Get ("\u0053\u0069\u0067\u0046\u006c\u0061\u0067\u0073");_ddcf !=nil {_ddfdc ,_fafb :=_ce .GetInt (_ddcf );if _fafb {_abcea .SigFlags =_ddfdc ;}else {_ff .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",_ddcf );
};};if _bcgc :=_ffaa .Get ("\u0043\u004f");_bcgc !=nil {_bgdf ,_agdda :=_ce .GetArray (_bcgc );if _agdda {_abcea .CO =_bgdf ;}else {_ff .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",_bcgc );
};};if _aeadg :=_ffaa .Get ("\u0044\u0052");_aeadg !=nil {if _fdgfa ,_gead :=_ce .GetDict (_aeadg );_gead {_ecgb ,_cbfg :=NewPdfPageResourcesFromDict (_fdgfa );if _cbfg !=nil {_ff .Log .Error ("\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0044R\u003a\u0020\u0025\u0076",_cbfg );
return nil ,_cbfg ;};_abcea .DR =_ecgb ;}else {_ff .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",_aeadg );};};if _cefbc :=_ffaa .Get ("\u0044\u0041");
_cefbc !=nil {_cgce ,_cgebf :=_ce .GetString (_cefbc );if _cgebf {_abcea .DA =_cgce ;}else {_ff .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",_cefbc );
};};if _cebc :=_ffaa .Get ("\u0051");_cebc !=nil {_cgeca ,_dddc :=_ce .GetInt (_cebc );if _dddc {_abcea .Q =_cgeca ;}else {_ff .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a \u0051\u0020\u0069\u006e\u0076a\u006ci\u0064 \u0028\u0067\u006f\u0074\u0020\u0025\u0054)",_cebc );
};};if _dfbce :=_ffaa .Get ("\u0058\u0046\u0041");_dfbce !=nil {_abcea .XFA =_dfbce ;};if _fafg :=_ffaa .Get ("\u0041\u0044\u0042\u0045\u005f\u0045\u0063\u0068\u006f\u0053\u0069\u0067\u006e");_fafg !=nil {_abcea .ADBEEchoSign =_fafg ;};_abcea .ToPdfObject ();
return _abcea ,nil ;};
// ToPdfObject implements interface PdfModel.
func (_cgcg *PdfBorderStyle )ToPdfObject ()_ce .PdfObject {_gffa :=_ce .MakeDict ();if _cgcg ._facc !=nil {if _faea ,_efdca :=_cgcg ._facc .(*_ce .PdfIndirectObject );_efdca {_faea .PdfObject =_gffa ;};};_gffa .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ce .MakeName ("\u0042\u006f\u0072\u0064\u0065\u0072"));
if _cgcg .W !=nil {_gffa .Set ("\u0057",_ce .MakeFloat (*_cgcg .W ));};if _cgcg .S !=nil {_gffa .Set ("\u0053",_ce .MakeName (_cgcg .S .GetPdfName ()));};if _cgcg .D !=nil {_gffa .Set ("\u0044",_ce .MakeArrayFromIntegers (*_cgcg .D ));};if _cgcg ._facc !=nil {return _cgcg ._facc ;
};return _gffa ;};
// 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 (_bgdcc []_ce .PdfObject )([]_ce .PdfObject ,error );};func (_gdgd *PdfReader )newPdfActionGoTo3DViewFromDict (_gge *_ce .PdfObjectDictionary )(*PdfActionGoTo3DView ,error ){return &PdfActionGoTo3DView {TA :_gge .Get ("\u0054\u0041"),V :_gge .Get ("\u0056")},nil ;
};
// SetPdfModifiedDate sets the ModDate attribute of the output PDF.
func SetPdfModifiedDate (modifiedDate _c .Time ){_cbcgc .Lock ();defer _cbcgc .Unlock ();_dfecd =modifiedDate ;};
// Items returns all children outline items.
func (_cdebg *Outline )Items ()[]*OutlineItem {return _cdebg .Entries };
// ToPdfObject returns the PDF representation of the colorspace.
func (_agfc *PdfColorspaceSpecialSeparation )ToPdfObject ()_ce .PdfObject {_dgee :=_ce .MakeArray (_ce .MakeName ("\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e"));_dgee .Append (_agfc .ColorantName );_dgee .Append (_agfc .AlternateSpace .ToPdfObject ());
_dgee .Append (_agfc .TintTransform .ToPdfObject ());if _agfc ._bcdf !=nil {_agfc ._bcdf .PdfObject =_dgee ;return _agfc ._bcdf ;};return _dgee ;};
// SetColorspaceByName adds the provided colorspace to the page resources.
func (_gcccb *PdfPageResources )SetColorspaceByName (keyName _ce .PdfObjectName ,cs PdfColorspace )error {_cfbgc ,_eabbd :=_gcccb .GetColorspaces ();if _eabbd !=nil {_ff .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",_eabbd );
return _eabbd ;};if _cfbgc ==nil {_cfbgc =NewPdfPageResourcesColorspaces ();_gcccb .SetColorSpace (_cfbgc );};_cfbgc .Set (keyName ,cs );return nil ;};
// 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 *_ce .PdfIndirectObject `json:"-"`;Page int64 `json:"page"`;Mode string `json:"mode"`;X float64 `json:"x"`;Y float64 `json:"y"`;Zoom float64 `json:"zoom"`;};
// PdfActionTrans represents a trans action.
type PdfActionTrans struct{*PdfAction ;Trans _ce .PdfObject ;};
// CustomKeys returns all custom info keys as list.
func (_dbdd *PdfInfo )CustomKeys ()[]string {if _dbdd ._ecfddd ==nil {return nil ;};_dbdg :=make ([]string ,len (_dbdd ._ecfddd .Keys ()));for _ ,_fdegd :=range _dbdd ._ecfddd .Keys (){_dbdg =append (_dbdg ,_fdegd .String ());};return _dbdg ;};
// NewPdfAnnotationMovie returns a new movie annotation.
func NewPdfAnnotationMovie ()*PdfAnnotationMovie {_ggc :=NewPdfAnnotation ();_edba :=&PdfAnnotationMovie {};_edba .PdfAnnotation =_ggc ;_ggc .SetContext (_edba );return _edba ;};func (_dfff *PdfReader )newPdfAnnotationTrapNetFromDict (_bbcb *_ce .PdfObjectDictionary )(*PdfAnnotationTrapNet ,error ){_dbc :=PdfAnnotationTrapNet {};
return &_dbc ,nil ;};func (_dega *PdfFilespec )getDict ()*_ce .PdfObjectDictionary {if _accc ,_fbcf :=_dega ._ddgc .(*_ce .PdfIndirectObject );_fbcf {_eeab ,_bcebd :=_accc .PdfObject .(*_ce .PdfObjectDictionary );if !_bcebd {return nil ;};return _eeab ;
}else if _adeb ,_bacce :=_dega ._ddgc .(*_ce .PdfObjectDictionary );_bacce {return _adeb ;}else {_ff .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",_dega ._ddgc );
return nil ;};};
// PdfActionGoToE represents a GoToE action.
type PdfActionGoToE struct{*PdfAction ;F *PdfFilespec ;D _ce .PdfObject ;NewWindow _ce .PdfObject ;T _ce .PdfObject ;};
// NewPdfAnnotation returns an initialized generic PDF annotation model.
func NewPdfAnnotation ()*PdfAnnotation {_fggf :=&PdfAnnotation {};_fggf ._dec =_ce .MakeIndirectObject (_ce .MakeDict ());return _fggf ;};
// NewPdfColorspaceSpecialPattern returns a new pattern color.
func NewPdfColorspaceSpecialPattern ()*PdfColorspaceSpecialPattern {return &PdfColorspaceSpecialPattern {};};
// ToPdfObject implements interface PdfModel.
func (_aebef *Permissions )ToPdfObject ()_ce .PdfObject {return _aebef ._ffegb };func (_ebac *DSS )add (_cgddc *[]*_ce .PdfObjectStream ,_dcce map[string ]*_ce .PdfObjectStream ,_dcff [][]byte )([]*_ce .PdfObjectStream ,error ){_fgdgf :=make ([]*_ce .PdfObjectStream ,0,len (_dcff ));
for _ ,_fbag :=range _dcff {_efcf ,_gdfeb :=_cgcbd (_fbag );if _gdfeb !=nil {return nil ,_gdfeb ;};_aacf ,_afff :=_dcce [string (_efcf )];if !_afff {_aacf ,_gdfeb =_ce .MakeStream (_fbag ,_ce .NewRawEncoder ());if _gdfeb !=nil {return nil ,_gdfeb ;};_dcce [string (_efcf )]=_aacf ;
*_cgddc =append (*_cgddc ,_aacf );};_fgdgf =append (_fgdgf ,_aacf );};return _fgdgf ,nil ;};
// ToPdfObject implements interface PdfModel.
func (_gca *PdfActionTrans )ToPdfObject ()_ce .PdfObject {_gca .PdfAction .ToPdfObject ();_gdd :=_gca ._bcc ;_aeb :=_gdd .PdfObject .(*_ce .PdfObjectDictionary );_aeb .SetIfNotNil ("\u0053",_ce .MakeName (string (ActionTypeTrans )));_aeb .SetIfNotNil ("\u0054\u0072\u0061n\u0073",_gca .Trans );
return _gdd ;};
// DecodeArray returns the component range values for the Separation colorspace.
func (_ggead *PdfColorspaceSpecialSeparation )DecodeArray ()[]float64 {return []float64 {0,1.0}};var ImageHandling ImageHandler =DefaultImageHandler {};func (_cbbba fontCommon )isCIDFont ()bool {if _cbbba ._baafb ==""{_ff .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",_cbbba );
};_bbcggc :=false ;switch _cbbba ._baafb {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":_bbcggc =true ;};_ff .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",_bbcggc ,_cbbba );
return _bbcggc ;};func _dccba (_gdgb string )(map[_dc .CharCode ]_dc .GlyphName ,error ){_fgec :=_g .Split (_gdgb ,"\u000a");_cfbgg :=make (map[_dc .CharCode ]_dc .GlyphName );for _ ,_dadaf :=range _fgec {_bcfcf :=_cacc .FindStringSubmatch (_dadaf );if _bcfcf ==nil {continue ;
};_dedg ,_fecdc :=_bcfcf [1],_bcfcf [2];_adfe ,_fbacg :=_dgb .Atoi (_dedg );if _fbacg !=nil {_ff .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",_dadaf );
return nil ,_ce .ErrTypeError ;};_cfbgg [_dc .CharCode (_adfe )]=_dc .GlyphName (_fecdc );};_ff .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",_cfbgg );
return _cfbgg ,nil ;};
// NewPdfActionSubmitForm returns a new "submit form" action.
func NewPdfActionSubmitForm ()*PdfActionSubmitForm {_ad :=NewPdfAction ();_ac :=&PdfActionSubmitForm {};_ac .PdfAction =_ad ;_ad .SetContext (_ac );return _ac ;};
// NewPdfPage returns a new PDF page.
func NewPdfPage ()*PdfPage {_dfea :=PdfPage {};_dfea ._cbcaa =_ce .MakeDict ();_dfea .Resources =NewPdfPageResources ();_gcebb :=_ce .PdfIndirectObject {};_gcebb .PdfObject =_dfea ._cbcaa ;_dfea ._acbbb =&_gcebb ;_dfea ._caab =*_dfea ._cbcaa ;return &_dfea ;
};
// MergePageWith appends page content to source Pdf file page content.
func (_fbc *PdfAppender )MergePageWith (pageNum int ,page *PdfPage )error {_bgee :=pageNum -1;var _cfge *PdfPage ;for _dbgcc ,_gafe :=range _fbc ._ggdc {if _dbgcc ==_bgee {_cfge =_gafe ;};};if _cfge ==nil {return _e .Errorf ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0050\u0061\u0067\u0065\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061r\u0079\u0020\u0025\u0064\u0020\u006e\u006f\u0074\u0020f\u006f\u0075\u006e\u0064\u0020\u0069\u006e\u0020\u0074\u0068\u0065\u0020\u0073o\u0075\u0072\u0063\u0065\u0020\u0064o\u0063\u0075\u006de\u006e\u0074",pageNum );
};if _cfge ._acbbb !=nil &&_cfge ._acbbb .GetParser ()==_fbc ._fcda ._afda {_cfge =_cfge .Duplicate ();_fbc ._ggdc [_bgee ]=_cfge ;};page =page .Duplicate ();_bfbegf (page );_ddeea :=_cedd (_cfge );_fbbfe :=_cedd (page );_gegeg :=make (map[_ce .PdfObjectName ]_ce .PdfObjectName );
for _gcdb :=range _fbbfe {if _ ,_bcga :=_ddeea [_gcdb ];_bcga {for _faab :=1;true ;_faab ++{_afgf :=_ce .PdfObjectName (string (_gcdb )+_dgb .Itoa (_faab ));if _ ,_agdc :=_ddeea [_afgf ];!_agdc {_gegeg [_gcdb ]=_afgf ;break ;};};};};_gbbdf ,_abab :=page .GetContentStreams ();
if _abab !=nil {return _abab ;};_egebg ,_abab :=_cfge .GetContentStreams ();if _abab !=nil {return _abab ;};for _aace ,_edg :=range _gbbdf {for _fcce ,_affb :=range _gegeg {_edg =_g .Replace (_edg ,"\u002f"+string (_fcce ),"\u002f"+string (_affb ),-1);
};_gbbdf [_aace ]=_edg ;};_egebg =append (_egebg ,_gbbdf ...);if _eddd :=_cfge .SetContentStreams (_egebg ,_ce .NewFlateEncoder ());_eddd !=nil {return _eddd ;};_cfge ._gage =append (_cfge ._gage ,page ._gage ...);if _cfge .Resources ==nil {_cfge .Resources =NewPdfPageResources ();
};if page .Resources !=nil {_cfge .Resources .Font =_fbc .mergeResources (_cfge .Resources .Font ,page .Resources .Font ,_gegeg );_cfge .Resources .XObject =_fbc .mergeResources (_cfge .Resources .XObject ,page .Resources .XObject ,_gegeg );_cfge .Resources .Properties =_fbc .mergeResources (_cfge .Resources .Properties ,page .Resources .Properties ,_gegeg );
if _cfge .Resources .ProcSet ==nil {_cfge .Resources .ProcSet =page .Resources .ProcSet ;};_cfge .Resources .Shading =_fbc .mergeResources (_cfge .Resources .Shading ,page .Resources .Shading ,_gegeg );_cfge .Resources .ExtGState =_fbc .mergeResources (_cfge .Resources .ExtGState ,page .Resources .ExtGState ,_gegeg );
};_dcbe ,_abab :=_cfge .GetMediaBox ();if _abab !=nil {return _abab ;};_agga ,_abab :=page .GetMediaBox ();if _abab !=nil {return _abab ;};var _fbg bool ;if _dcbe .Llx > _agga .Llx {_dcbe .Llx =_agga .Llx ;_fbg =true ;};if _dcbe .Lly > _agga .Lly {_dcbe .Lly =_agga .Lly ;
_fbg =true ;};if _dcbe .Urx < _agga .Urx {_dcbe .Urx =_agga .Urx ;_fbg =true ;};if _dcbe .Ury < _agga .Ury {_dcbe .Ury =_agga .Ury ;_fbg =true ;};if _fbg {_cfge .MediaBox =_dcbe ;};return nil ;};
// Outline represents a PDF outline dictionary (Table 152 - p. 376).
// Currently, the Outline object can only be used to construct PDF outlines.
type Outline struct{Entries []*OutlineItem `json:"entries,omitempty"`;};
// GetCharMetrics returns the char metrics for character code `code`.
func (_dcbac pdfCIDFontType0 )GetCharMetrics (code _dc .CharCode )(_ee .CharMetrics ,bool ){_ccgae :=_dcbac ._fcae ;if _dbeeb ,_cfaged :=_dcbac ._acbf [code ];_cfaged {_ccgae =_dbeeb ;};return _ee .CharMetrics {Wx :_ccgae },true ;};
// ColorToRGB converts a CMYK32 color to an RGB color.
func (_agdb *PdfColorspaceDeviceCMYK )ColorToRGB (color PdfColor )(PdfColor ,error ){_afac ,_badf :=color .(*PdfColorDeviceCMYK );if !_badf {_ff .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 ,_ge .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_dbcc :=_afac .C ();_cdaf :=_afac .M ();_cdafd :=_afac .Y ();_cgfd :=_afac .K ();_dbcc =_dbcc *(1-_cgfd )+_cgfd ;_cdaf =_cdaf *(1-_cgfd )+_cgfd ;
_cdafd =_cdafd *(1-_cgfd )+_cgfd ;_fbcc :=1-_dbcc ;_egbeb :=1-_cdaf ;_gcaac :=1-_cdafd ;return NewPdfColorDeviceRGB (_fbcc ,_egbeb ,_gcaac ),nil ;};
// ImageToRGB converts Lab colorspace image to RGB and returns the result.
func (_dged *PdfColorspaceLab )ImageToRGB (img Image )(Image ,error ){_ebgd :=func (_cfeg float64 )float64 {if _cfeg >=6.0/29{return _cfeg *_cfeg *_cfeg ;};return 108.0/841*(_cfeg -4.0/29.0);};_dcgc :=img ._bffb ;if len (_dcgc )!=6{_ff .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");
_dcgc =_dged .DecodeArray ();};_cbag :=_gb .NewReader (img .getBase ());_fbgf :=_gf .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),3,nil ,img ._cdecc ,img ._bffb );_aacgc :=_gb .NewWriter (_fbgf );_dbcb :=_egg .Pow (2,float64 (img .BitsPerComponent ))-1;
_agbb :=make ([]uint32 ,3);var (_gabec error ;Ls ,As ,Bs ,L ,M ,N ,X ,Y ,Z ,_bggda ,_cabc ,_feef float64 ;);for {_gabec =_cbag .ReadSamples (_agbb );if _gabec ==_gd .EOF {break ;}else if _gabec !=nil {return img ,_gabec ;};Ls =float64 (_agbb [0])/_dbcb ;
As =float64 (_agbb [1])/_dbcb ;Bs =float64 (_agbb [2])/_dbcb ;Ls =_gf .LinearInterpolate (Ls ,0.0,1.0,_dcgc [0],_dcgc [1]);As =_gf .LinearInterpolate (As ,0.0,1.0,_dcgc [2],_dcgc [3]);Bs =_gf .LinearInterpolate (Bs ,0.0,1.0,_dcgc [4],_dcgc [5]);L =(Ls +16)/116+As /500;
M =(Ls +16)/116;N =(Ls +16)/116-Bs /200;X =_dged .WhitePoint [0]*_ebgd (L );Y =_dged .WhitePoint [1]*_ebgd (M );Z =_dged .WhitePoint [2]*_ebgd (N );_bggda =3.240479*X +-1.537150*Y +-0.498535*Z ;_cabc =-0.969256*X +1.875992*Y +0.041556*Z ;_feef =0.055648*X +-0.204043*Y +1.057311*Z ;
_bggda =_egg .Min (_egg .Max (_bggda ,0),1.0);_cabc =_egg .Min (_egg .Max (_cabc ,0),1.0);_feef =_egg .Min (_egg .Max (_feef ,0),1.0);_agbb [0]=uint32 (_bggda *_dbcb );_agbb [1]=uint32 (_cabc *_dbcb );_agbb [2]=uint32 (_feef *_dbcb );if _gabec =_aacgc .WriteSamples (_agbb );
_gabec !=nil {return img ,_gabec ;};};return _ffba (&_fbgf ),nil ;};var _ pdfFont =(*pdfCIDFontType0 )(nil );
// GetNumComponents returns the number of input color components, i.e. that are input to the tint transform.
func (_bdbea *PdfColorspaceDeviceN )GetNumComponents ()int {return _bdbea .ColorantNames .Len ()};
// GetContainingPdfObject returns the XObject Form's containing object (indirect object).
func (_acagb *XObjectForm )GetContainingPdfObject ()_ce .PdfObject {return _acagb ._efffe };
// 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 (_dgddc *PdfFont )GetCharMetrics (code _dc .CharCode )(CharMetrics ,bool ){var _fdefg _ee .CharMetrics ;switch _gdeea :=_dgddc ._dace .(type ){case *pdfFontSimple :if _cagc ,_dbcbc :=_gdeea .GetCharMetrics (code );_dbcbc {return _cagc ,_dbcbc ;};case *pdfFontType0 :if _ffaccd ,_fgade :=_gdeea .GetCharMetrics (code );
_fgade {return _ffaccd ,_fgade ;};case *pdfCIDFontType0 :if _dedee ,_fffab :=_gdeea .GetCharMetrics (code );_fffab {return _dedee ,_fffab ;};case *pdfCIDFontType2 :if _fbbcg ,_dabbd :=_gdeea .GetCharMetrics (code );_dabbd {return _fbbcg ,_dabbd ;};case *pdfFontType3 :if _bfba ,_gcef :=_gdeea .GetCharMetrics (code );
_gcef {return _bfba ,_gcef ;};default:_ff .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",_dgddc ._dace );
return _fdefg ,false ;};if _dbbg ,_dfdab :=_dgddc .GetFontDescriptor ();_dfdab ==nil &&_dbbg !=nil {return _ee .CharMetrics {Wx :_dbbg ._abcb },true ;};_ff .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",_dgddc );
return _fdefg ,false ;};
// NewPdfActionGoToE returns a new "go to embedded" action.
func NewPdfActionGoToE ()*PdfActionGoToE {_bdc :=NewPdfAction ();_eba :=&PdfActionGoToE {};_eba .PdfAction =_bdc ;_bdc .SetContext (_eba );return _eba ;};
// ToPdfObject implements interface PdfModel.
func (_gda *PdfAnnotationMovie )ToPdfObject ()_ce .PdfObject {_gda .PdfAnnotation .ToPdfObject ();_fff :=_gda ._dec ;_bdeef :=_fff .PdfObject .(*_ce .PdfObjectDictionary );_bdeef .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ce .MakeName ("\u004d\u006f\u0076i\u0065"));
_bdeef .SetIfNotNil ("\u0054",_gda .T );_bdeef .SetIfNotNil ("\u004d\u006f\u0076i\u0065",_gda .Movie );_bdeef .SetIfNotNil ("\u0041",_gda .A );return _fff ;};
// ToPdfObject implements interface PdfModel.
func (_gdcd *PdfActionLaunch )ToPdfObject ()_ce .PdfObject {_gdcd .PdfAction .ToPdfObject ();_cggg :=_gdcd ._bcc ;_deb :=_cggg .PdfObject .(*_ce .PdfObjectDictionary );_deb .SetIfNotNil ("\u0053",_ce .MakeName (string (ActionTypeLaunch )));if _gdcd .F !=nil {_deb .Set ("\u0046",_gdcd .F .ToPdfObject ());
};_deb .SetIfNotNil ("\u0057\u0069\u006e",_gdcd .Win );_deb .SetIfNotNil ("\u004d\u0061\u0063",_gdcd .Mac );_deb .SetIfNotNil ("\u0055\u006e\u0069\u0078",_gdcd .Unix );_deb .SetIfNotNil ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw",_gdcd .NewWindow );
return _cggg ;};
// 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 ;
// Encoder returns the font's text encoder.
func (_gbcafe pdfFontType3 )Encoder ()_dc .TextEncoder {return _gbcafe ._aacfd };
// NewPdfWriter initializes a new PdfWriter.
func NewPdfWriter ()PdfWriter {_gbbgb :=PdfWriter {};_gbbgb ._gdaab =map[_ce .PdfObject ]struct{}{};_gbbgb ._adbee =[]_ce .PdfObject {};_gbbgb ._dggcg =map[_ce .PdfObject ][]*_ce .PdfObjectDictionary {};_gbbgb ._daeac =map[_ce .PdfObject ]struct{}{};_gbbgb ._facee .Major =1;
_gbbgb ._facee .Minor =3;_ggdde :=_ce .MakeDict ();_ggdf :=[]struct{_dfcfg _ce .PdfObjectName ;_aagbb string ;}{{"\u0050\u0072\u006f\u0064\u0075\u0063\u0065\u0072",_adafdf ()},{"\u0043r\u0065\u0061\u0074\u006f\u0072",_gebff ()},{"\u0041\u0075\u0074\u0068\u006f\u0072",_dgbea ()},{"\u0053u\u0062\u006a\u0065\u0063\u0074",_gaeg ()},{"\u0054\u0069\u0074l\u0065",_daaef ()},{"\u004b\u0065\u0079\u0077\u006f\u0072\u0064\u0073",_caba ()}};
for _ ,_efacdd :=range _ggdf {if _efacdd ._aagbb !=""{_ggdde .Set (_efacdd ._dfcfg ,_ce .MakeString (_efacdd ._aagbb ));};};if _ecbgf :=_fbbcd ();!_ecbgf .IsZero (){if _cceff ,_ggga :=NewPdfDateFromTime (_ecbgf );_ggga ==nil {_ggdde .Set ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065",_cceff .ToPdfObject ());
};};if _cgefd :=_bfffb ();!_cgefd .IsZero (){if _fgcbe ,_gfgbd :=NewPdfDateFromTime (_cgefd );_gfgbd ==nil {_ggdde .Set ("\u004do\u0064\u0044\u0061\u0074\u0065",_fgcbe .ToPdfObject ());};};_faffg :=_ce .PdfIndirectObject {};_faffg .PdfObject =_ggdde ;_gbbgb ._dcecd =&_faffg ;
_gbbgb .addObject (&_faffg );_dafcf :=_ce .PdfIndirectObject {};_ffacg :=_ce .MakeDict ();_ffacg .Set ("\u0054\u0079\u0070\u0065",_ce .MakeName ("\u0043a\u0074\u0061\u006c\u006f\u0067"));_dafcf .PdfObject =_ffacg ;_gbbgb ._bedff =&_dafcf ;_gbbgb .addObject (_gbbgb ._bedff );
_gacfc ,_abfc :=_cbfc ("\u0077");if _abfc !=nil {_ff .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_abfc );};_gbbgb ._cbdcb =_gacfc ;_edege :=_ce .PdfIndirectObject {};_degbdd :=_ce .MakeDict ();_degbdd .Set ("\u0054\u0079\u0070\u0065",_ce .MakeName ("\u0050\u0061\u0067e\u0073"));
_edbaa :=_ce .PdfObjectArray {};_degbdd .Set ("\u004b\u0069\u0064\u0073",&_edbaa );_degbdd .Set ("\u0043\u006f\u0075n\u0074",_ce .MakeInteger (0));_edege .PdfObject =_degbdd ;_gbbgb ._dbdaa =&_edege ;_gbbgb ._defec =map[_ce .PdfObject ]struct{}{};_gbbgb .addObject (_gbbgb ._dbdaa );
_ffacg .Set ("\u0050\u0061\u0067e\u0073",&_edege );_gbbgb ._bbef =_ffacg ;_ff .Log .Trace ("\u0043\u0061\u0074\u0061\u006c\u006f\u0067\u0020\u0025\u0073",_dafcf );return _gbbgb ;};func (_bdcd *PdfReader )newPdfActionURIFromDict (_bcfd *_ce .PdfObjectDictionary )(*PdfActionURI ,error ){return &PdfActionURI {URI :_bcfd .Get ("\u0055\u0052\u0049"),IsMap :_bcfd .Get ("\u0049\u0073\u004da\u0070")},nil ;
};
// GetAnnotations returns the list of page annotations for `page`. If not loaded attempts to load the
// annotations, otherwise returns the loaded list.
func (_fbffe *PdfPage )GetAnnotations ()([]*PdfAnnotation ,error ){if _fbffe ._gage !=nil {return _fbffe ._gage ,nil ;};if _fbffe .Annots ==nil {_fbffe ._gage =[]*PdfAnnotation {};return nil ,nil ;};if _fbffe ._cagde ==nil {_fbffe ._gage =[]*PdfAnnotation {};
return nil ,nil ;};_aadfd ,_abdc :=_fbffe ._cagde .loadAnnotations (_fbffe .Annots );if _abdc !=nil {return nil ,_abdc ;};if _aadfd ==nil {_fbffe ._gage =[]*PdfAnnotation {};};_fbffe ._gage =_aadfd ;return _fbffe ._gage ,nil ;};
// GetContext returns the context of the outline tree node, which is either a
// *PdfOutline or a *PdfOutlineItem. The method returns nil for uninitialized
// tree nodes.
func (_aeeag *PdfOutlineTreeNode )GetContext ()PdfModel {if _gbea ,_afgbd :=_aeeag ._edda .(*PdfOutline );_afgbd {return _gbea ;};if _ebceb ,_geff :=_aeeag ._edda .(*PdfOutlineItem );_geff {return _ebceb ;};_ff .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 ;};
// ToPdfObject returns the PDF representation of the shading pattern.
func (_abaad *PdfShadingPatternType2 )ToPdfObject ()_ce .PdfObject {_abaad .PdfPattern .ToPdfObject ();_bdced :=_abaad .getDict ();if _abaad .Shading !=nil {_bdced .Set ("\u0053h\u0061\u0064\u0069\u006e\u0067",_abaad .Shading .ToPdfObject ());};if _abaad .Matrix !=nil {_bdced .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_abaad .Matrix );
};if _abaad .ExtGState !=nil {_bdced .Set ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e",_abaad .ExtGState );};return _abaad ._gadcb ;};
// Mask returns the uin32 bitmask for the specific flag.
func (_fgabe FieldFlag )Mask ()uint32 {return uint32 (_fgabe )};func (_baad *PdfColorspaceICCBased )String ()string {return "\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064";};func (_cfde *PdfReader )newPdfAnnotationFileAttachmentFromDict (_gegd *_ce .PdfObjectDictionary )(*PdfAnnotationFileAttachment ,error ){_ecaf :=PdfAnnotationFileAttachment {};
_ebf ,_aeaa :=_cfde .newPdfAnnotationMarkupFromDict (_gegd );if _aeaa !=nil {return nil ,_aeaa ;};_ecaf .PdfAnnotationMarkup =_ebf ;_ecaf .FS =_gegd .Get ("\u0046\u0053");_ecaf .Name =_gegd .Get ("\u004e\u0061\u006d\u0065");return &_ecaf ,nil ;};func _gaeg ()string {_cbcgc .Lock ();
defer _cbcgc .Unlock ();return _bfdac };
// NewPdfAnnotationUnderline returns a new text underline annotation.
func NewPdfAnnotationUnderline ()*PdfAnnotationUnderline {_gecf :=NewPdfAnnotation ();_effa :=&PdfAnnotationUnderline {};_effa .PdfAnnotation =_gecf ;_effa .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_gecf .SetContext (_effa );return _effa ;};func _feed (_gacb _ce .PdfObject )(*PdfColorspaceCalGray ,error ){_dffd :=NewPdfColorspaceCalGray ();
if _gbedc ,_cdbf :=_gacb .(*_ce .PdfIndirectObject );_cdbf {_dffd ._aeadd =_gbedc ;};_gacb =_ce .TraceToDirectObject (_gacb );_edfg ,_eace :=_gacb .(*_ce .PdfObjectArray );if !_eace {return nil ,_e .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");
};if _edfg .Len ()!=2{return nil ,_e .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0043\u0061\u006cG\u0072\u0061\u0079\u0020\u0063\u006f\u006c\u006f\u0072\u0073p\u0061\u0063\u0065");};_gacb =_ce .TraceToDirectObject (_edfg .Get (0));_faf ,_eace :=_gacb .(*_ce .PdfObjectName );
if !_eace {return nil ,_e .Errorf ("\u0043\u0061\u006c\u0047\u0072\u0061\u0079\u0020\u006e\u0061m\u0065\u0020\u006e\u006f\u0074\u0020\u0061 \u004e\u0061\u006d\u0065\u0020\u006f\u0062\u006a\u0065\u0063\u0074");};if *_faf !="\u0043a\u006c\u0047\u0072\u0061\u0079"{return nil ,_e .Errorf ("\u006eo\u0074\u0020\u0061\u0020\u0043\u0061\u006c\u0047\u0072\u0061\u0079 \u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063\u0065");
};_gacb =_ce .TraceToDirectObject (_edfg .Get (1));_ecgd ,_eace :=_gacb .(*_ce .PdfObjectDictionary );if !_eace {return nil ,_e .Errorf ("\u0043\u0061lG\u0072\u0061\u0079 \u0064\u0069\u0063\u0074 no\u0074 a\u0020\u0044\u0069\u0063\u0074\u0069\u006fna\u0072\u0079\u0020\u006f\u0062\u006a\u0065c\u0074");
};_gacb =_ecgd .Get ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074");_gacb =_ce .TraceToDirectObject (_gacb );_badc ,_eace :=_gacb .(*_ce .PdfObjectArray );if !_eace {return nil ,_e .Errorf ("C\u0061\u006c\u0047\u0072\u0061\u0079:\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020W\u0068\u0069\u0074e\u0050o\u0069\u006e\u0074");
};if _badc .Len ()!=3{return nil ,_e .Errorf ("\u0043\u0061\u006c\u0047\u0072\u0061y\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0057\u0068\u0069t\u0065\u0050\u006f\u0069\u006e\u0074\u0020a\u0072\u0072\u0061\u0079");};_fabb ,_ecfae :=_badc .GetAsFloat64Slice ();
if _ecfae !=nil {return nil ,_ecfae ;};_dffd .WhitePoint =_fabb ;_gacb =_ecgd .Get ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074");if _gacb !=nil {_gacb =_ce .TraceToDirectObject (_gacb );_fbaa ,_faef :=_gacb .(*_ce .PdfObjectArray );if !_faef {return nil ,_e .Errorf ("C\u0061\u006c\u0047\u0072\u0061\u0079:\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020B\u006c\u0061\u0063k\u0050o\u0069\u006e\u0074");
};if _fbaa .Len ()!=3{return nil ,_e .Errorf ("\u0043\u0061\u006c\u0047\u0072\u0061y\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0042\u006c\u0061c\u006b\u0050\u006f\u0069\u006e\u0074\u0020a\u0072\u0072\u0061\u0079");};_ccce ,_bfcb :=_fbaa .GetAsFloat64Slice ();
if _bfcb !=nil {return nil ,_bfcb ;};_dffd .BlackPoint =_ccce ;};_gacb =_ecgd .Get ("\u0047\u0061\u006dm\u0061");if _gacb !=nil {_gacb =_ce .TraceToDirectObject (_gacb );_eagc ,_egca :=_ce .GetNumberAsFloat (_gacb );if _egca !=nil {return nil ,_e .Errorf ("C\u0061\u006c\u0047\u0072\u0061\u0079:\u0020\u0067\u0061\u006d\u006d\u0061\u0020\u006e\u006ft\u0020\u0061\u0020n\u0075m\u0062\u0065\u0072");
};_dffd .Gamma =_eagc ;};return _dffd ,nil ;};
// 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 *_bcd .CertClient ;
// OCSPClient is the client used to retrieve OCSP validation information.
OCSPClient *_bcd .OCSPClient ;
// CRLClient is the client used to retrieve CRL validation information.
CRLClient *_bcd .CRLClient ;
// SkipExisting specifies whether existing signature validations
// should be skipped.
SkipExisting bool ;_fdfad *PdfAppender ;_dcacf *DSS ;};
// ToPdfObject returns a stream object.
func (_gacbf *XObjectForm )ToPdfObject ()_ce .PdfObject {_fccdf :=_gacbf ._efffe ;_cccfe :=_fccdf .PdfObjectDictionary ;if _gacbf .Filter !=nil {_cccfe =_gacbf .Filter .MakeStreamDict ();_fccdf .PdfObjectDictionary =_cccfe ;};_cccfe .Set ("\u0054\u0079\u0070\u0065",_ce .MakeName ("\u0058O\u0062\u006a\u0065\u0063\u0074"));
_cccfe .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ce .MakeName ("\u0046\u006f\u0072\u006d"));_cccfe .SetIfNotNil ("\u0046\u006f\u0072\u006d\u0054\u0079\u0070\u0065",_gacbf .FormType );_cccfe .SetIfNotNil ("\u0042\u0042\u006f\u0078",_gacbf .BBox );_cccfe .SetIfNotNil ("\u004d\u0061\u0074\u0072\u0069\u0078",_gacbf .Matrix );
if _gacbf .Resources !=nil {_cccfe .SetIfNotNil ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s",_gacbf .Resources .ToPdfObject ());};_cccfe .SetIfNotNil ("\u0047\u0072\u006fu\u0070",_gacbf .Group );_cccfe .SetIfNotNil ("\u0052\u0065\u0066",_gacbf .Ref );
_cccfe .SetIfNotNil ("\u004d\u0065\u0074\u0061\u0044\u0061\u0074\u0061",_gacbf .MetaData );_cccfe .SetIfNotNil ("\u0050i\u0065\u0063\u0065\u0049\u006e\u0066o",_gacbf .PieceInfo );_cccfe .SetIfNotNil ("\u004c\u0061\u0073t\u004d\u006f\u0064\u0069\u0066\u0069\u0065\u0064",_gacbf .LastModified );
_cccfe .SetIfNotNil ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074",_gacbf .StructParent );_cccfe .SetIfNotNil ("\u0053\u0074\u0072\u0075\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074\u0073",_gacbf .StructParents );_cccfe .SetIfNotNil ("\u004f\u0050\u0049",_gacbf .OPI );
_cccfe .SetIfNotNil ("\u004f\u0043",_gacbf .OC );_cccfe .SetIfNotNil ("\u004e\u0061\u006d\u0065",_gacbf .Name );_cccfe .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_ce .MakeInteger (int64 (len (_gacbf .Stream ))));_fccdf .Stream =_gacbf .Stream ;return _fccdf ;
};
// 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 (_afada *PdfFont )CharcodesToStrings (charcodes []_dc .CharCode )([]string ,int ,int ){_fecc :=_afada .baseFields ();_fggae :=make ([]string ,0,len (charcodes ));_bgecf :=0;_fcadb :=_afada .Encoder ();_bbecf :=_fecc ._dgfcg !=nil &&_afada .IsSimple ()&&_afada .Subtype ()=="\u0054\u0072\u0075\u0065\u0054\u0079\u0070\u0065"&&!_g .Contains (_fecc ._dgfcg .Name (),"\u0049d\u0065\u006e\u0074\u0069\u0074\u0079-");
if !_bbecf &&_fcadb !=nil {switch _fgfca :=_fcadb .(type ){case _dc .SimpleEncoder :_cdceg :=_fgfca .BaseName ();if _ ,_befbb :=_fdaee [_cdceg ];_befbb {for _ ,_bbeea :=range charcodes {if _gbcc ,_afdb :=_fcadb .CharcodeToRune (_bbeea );_afdb {_fggae =append (_fggae ,string (_gbcc ));
}else {_ff .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",_bbeea ,charcodes ,_fecc .isCIDFont (),_afada ,_fcadb );
_bgecf ++;_fggae =append (_fggae ,_ga .MissingCodeString );};};return _fggae ,len (_fggae ),_bgecf ;};};};for _ ,_cagdb :=range charcodes {if _fecc ._dgfcg !=nil {if _bffa ,_baca :=_fecc ._dgfcg .CharcodeToUnicode (_ga .CharCode (_cagdb ));_baca {_fggae =append (_fggae ,_bffa );
continue ;};};if _fcadb !=nil {if _ggfef ,_cace :=_fcadb .CharcodeToRune (_cagdb );_cace {_fggae =append (_fggae ,string (_ggfef ));continue ;};};_ff .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",_cagdb ,charcodes ,_fecc .isCIDFont (),_afada ,_fcadb );
_bgecf ++;_fggae =append (_fggae ,_ga .MissingCodeString );};if _bgecf !=0{_ff .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 ),_bgecf ,_afada );
};return _fggae ,len (_fggae ),_bgecf ;};
// GetContext returns a reference to the subshading entry as represented by PdfShadingType1-7.
func (_bdcgf *PdfShading )GetContext ()PdfModel {return _bdcgf ._aadbc };
// ImageToRGB converts CalRGB colorspace image to RGB and returns the result.
func (_ebgb *PdfColorspaceCalRGB )ImageToRGB (img Image )(Image ,error ){_gabe :=_gb .NewReader (img .getBase ());_abfe :=_gf .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),3,nil ,nil ,nil );_ggbe :=_gb .NewWriter (_abfe );
_geba :=_egg .Pow (2,float64 (img .BitsPerComponent ))-1;_ffda :=make ([]uint32 ,3);var (_dcdea error ;_fcga ,_eaga ,_fbdaa ,_gaeb ,_fbba ,_bgc float64 ;);for {_dcdea =_gabe .ReadSamples (_ffda );if _dcdea ==_gd .EOF {break ;}else if _dcdea !=nil {return img ,_dcdea ;
};_fcga =float64 (_ffda [0])/_geba ;_eaga =float64 (_ffda [1])/_geba ;_fbdaa =float64 (_ffda [2])/_geba ;_gaeb =_ebgb .Matrix [0]*_egg .Pow (_fcga ,_ebgb .Gamma [0])+_ebgb .Matrix [3]*_egg .Pow (_eaga ,_ebgb .Gamma [1])+_ebgb .Matrix [6]*_egg .Pow (_fbdaa ,_ebgb .Gamma [2]);
_fbba =_ebgb .Matrix [1]*_egg .Pow (_fcga ,_ebgb .Gamma [0])+_ebgb .Matrix [4]*_egg .Pow (_eaga ,_ebgb .Gamma [1])+_ebgb .Matrix [7]*_egg .Pow (_fbdaa ,_ebgb .Gamma [2]);_bgc =_ebgb .Matrix [2]*_egg .Pow (_fcga ,_ebgb .Gamma [0])+_ebgb .Matrix [5]*_egg .Pow (_eaga ,_ebgb .Gamma [1])+_ebgb .Matrix [8]*_egg .Pow (_fbdaa ,_ebgb .Gamma [2]);
_fcga =3.240479*_gaeb +-1.537150*_fbba +-0.498535*_bgc ;_eaga =-0.969256*_gaeb +1.875992*_fbba +0.041556*_bgc ;_fbdaa =0.055648*_gaeb +-0.204043*_fbba +1.057311*_bgc ;_fcga =_egg .Min (_egg .Max (_fcga ,0),1.0);_eaga =_egg .Min (_egg .Max (_eaga ,0),1.0);
_fbdaa =_egg .Min (_egg .Max (_fbdaa ,0),1.0);_ffda [0]=uint32 (_fcga *_geba );_ffda [1]=uint32 (_eaga *_geba );_ffda [2]=uint32 (_fbdaa *_geba );if _dcdea =_ggbe .WriteSamples (_ffda );_dcdea !=nil {return img ,_dcdea ;};};return _ffba (&_abfe ),nil ;
};func (_aeec *PdfReader )newPdfAnnotationSquareFromDict (_bbec *_ce .PdfObjectDictionary )(*PdfAnnotationSquare ,error ){_dede :=PdfAnnotationSquare {};_ecca ,_cacf :=_aeec .newPdfAnnotationMarkupFromDict (_bbec );if _cacf !=nil {return nil ,_cacf ;};
_dede .PdfAnnotationMarkup =_ecca ;_dede .BS =_bbec .Get ("\u0042\u0053");_dede .IC =_bbec .Get ("\u0049\u0043");_dede .BE =_bbec .Get ("\u0042\u0045");_dede .RD =_bbec .Get ("\u0052\u0044");return &_dede ,nil ;};func _debdea (_fdefa _ce .PdfObject )(*PdfFunctionType2 ,error ){_edcec :=&PdfFunctionType2 {};
var _cggff *_ce .PdfObjectDictionary ;if _adcfb ,_afafd :=_fdefa .(*_ce .PdfIndirectObject );_afafd {_ccacb ,_ggdcc :=_adcfb .PdfObject .(*_ce .PdfObjectDictionary );if !_ggdcc {return nil ,_ge .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");
};_edcec ._gbbb =_adcfb ;_cggff =_ccacb ;}else if _aebb ,_acgfa :=_fdefa .(*_ce .PdfObjectDictionary );_acgfa {_cggff =_aebb ;}else {return nil ,_ge .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_ff .Log .Trace ("\u0046U\u004e\u0043\u0032\u003a\u0020\u0025s",_cggff .String ());
_cgaef ,_debfg :=_ce .TraceToDirectObject (_cggff .Get ("\u0044\u006f\u006d\u0061\u0069\u006e")).(*_ce .PdfObjectArray );if !_debfg {_ff .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_ge .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 _cgaef .Len ()< 0||_cgaef .Len ()%2!=0{_ff .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u0072\u0061\u006e\u0067e\u0020\u0069\u006e\u0076al\u0069\u0064");return nil ,_ge .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0064\u006f\u006da\u0069\u006e\u0020\u0072an\u0067\u0065");
};_eaceb ,_ebed :=_cgaef .ToFloat64Array ();if _ebed !=nil {return nil ,_ebed ;};_edcec .Domain =_eaceb ;_cgaef ,_debfg =_ce .TraceToDirectObject (_cggff .Get ("\u0052\u0061\u006eg\u0065")).(*_ce .PdfObjectArray );if _debfg {if _cgaef .Len ()< 0||_cgaef .Len ()%2!=0{return nil ,_ge .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0061\u006e\u0067\u0065");
};_afcfa ,_abaf :=_cgaef .ToFloat64Array ();if _abaf !=nil {return nil ,_abaf ;};_edcec .Range =_afcfa ;};_cgaef ,_debfg =_ce .TraceToDirectObject (_cggff .Get ("\u0043\u0030")).(*_ce .PdfObjectArray );if _debfg {_bedce ,_cfbdc :=_cgaef .ToFloat64Array ();
if _cfbdc !=nil {return nil ,_cfbdc ;};_edcec .C0 =_bedce ;};_cgaef ,_debfg =_ce .TraceToDirectObject (_cggff .Get ("\u0043\u0031")).(*_ce .PdfObjectArray );if _debfg {_aafc ,_cacgc :=_cgaef .ToFloat64Array ();if _cacgc !=nil {return nil ,_cacgc ;};_edcec .C1 =_aafc ;
};if len (_edcec .C0 )!=len (_edcec .C1 ){_ff .Log .Error ("\u0043\u0030\u0020\u0061nd\u0020\u0043\u0031\u0020\u006e\u006f\u0074\u0020\u006d\u0061\u0074\u0063\u0068\u0069n\u0067");return nil ,_ce .ErrRangeError ;};N ,_ebed :=_ce .GetNumberAsFloat (_ce .TraceToDirectObject (_cggff .Get ("\u004e")));
if _ebed !=nil {_ff .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",_cggff .String ());return nil ,_ebed ;};_edcec .N =N ;
return _edcec ,nil ;};
// 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 (_becbe *LTV )Enable (sig *PdfSignature ,extraCerts []*_eg .Certificate )error {if _dbbf :=_becbe .validateSig (sig );_dbbf !=nil {return _dbbf ;};_cbbea ,_eedbg :=_becbe .generateVRIKey (sig );if _eedbg !=nil {return _eedbg ;};if _ ,_efbdf :=_becbe ._dcacf .VRI [_cbbea ];
_efbdf &&_becbe .SkipExisting {return nil ;};_cgef ,_eedbg :=sig .GetCerts ();if _eedbg !=nil {return _eedbg ;};return _becbe .enable (_cgef ,extraCerts ,_cbbea );};func (_bfbfd *PdfReader )loadForms ()(*PdfAcroForm ,error ){if _bfbfd ._afda .GetCrypter ()!=nil &&!_bfbfd ._afda .IsAuthenticated (){return nil ,_e .Errorf ("\u0066\u0069\u006ce\u0020\u006e\u0065\u0065d\u0020\u0074\u006f\u0020\u0062\u0065\u0020d\u0065\u0063\u0072\u0079\u0070\u0074\u0065\u0064\u0020\u0066\u0069\u0072\u0073\u0074");
};_bfgf :=_bfbfd ._cfcdg ;_edebb :=_bfgf .Get ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d");if _edebb ==nil {return nil ,nil ;};_fdbg ,_ccecd :=_ce .GetIndirect (_edebb );_edebb =_ce .TraceToDirectObject (_edebb );if _ce .IsNullObject (_edebb ){_ff .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 ;};_bdcda ,_fdee :=_ce .GetDict (_edebb );if !_fdee {_ff .Log .Debug ("\u0049n\u0076\u0061\u006c\u0069d\u0020\u0041\u0063\u0072\u006fF\u006fr\u006d \u0065\u006e\u0074\u0072\u0079\u0020\u0025T",_edebb );_ff .Log .Debug ("\u0044\u006f\u0065\u0073 n\u006f\u0074\u0020\u0068\u0061\u0076\u0065\u0020\u0066\u006f\u0072\u006d\u0073");
return nil ,_e .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0061\u0063\u0072\u006ff\u006fr\u006d \u0065\u006e\u0074\u0072\u0079\u0020\u0025T",_edebb );};_ff .Log .Trace ("\u0048\u0061\u0073\u0020\u0041\u0063\u0072\u006f\u0020f\u006f\u0072\u006d\u0073");
_ff .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 !_bfbfd ._cgbdb {_daac :=_bfbfd .traverseObjectData (_bdcda );
if _daac !=nil {_ff .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",_daac );
return nil ,_daac ;};};_abcd ,_eadfd :=_bfbfd .newPdfAcroFormFromDict (_fdbg ,_bdcda );if _eadfd !=nil {return nil ,_eadfd ;};_abcd ._afab =!_ccecd ;return _abcd ,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 ;
// ToPdfObject implements interface PdfModel.
func (_caf *PdfActionHide )ToPdfObject ()_ce .PdfObject {_caf .PdfAction .ToPdfObject ();_bccb :=_caf ._bcc ;_aead :=_bccb .PdfObject .(*_ce .PdfObjectDictionary );_aead .SetIfNotNil ("\u0053",_ce .MakeName (string (ActionTypeHide )));_aead .SetIfNotNil ("\u0054",_caf .T );
_aead .SetIfNotNil ("\u0048",_caf .H );return _bccb ;};func (_ceac *Image )samplesAddPadding (_bbegfa []uint32 )[]uint32 {_ddadf :=_gf .BytesPerLine (int (_ceac .Width ),int (_ceac .BitsPerComponent ),_ceac .ColorComponents )*(8/int (_ceac .BitsPerComponent ));
_bgde :=_ddadf *int (_ceac .Height );if len (_bbegfa )==_bgde {return _bbegfa ;};_cggbc :=make ([]uint32 ,_bgde );_acbff :=int (_ceac .Width )*_ceac .ColorComponents ;for _efacc :=0;_efacc < int (_ceac .Height );_efacc ++{_edad :=_efacc *int (_ceac .Width );
_ccaed :=_efacc *_ddadf ;for _aeceb :=0;_aeceb < _acbff ;_aeceb ++{_cggbc [_ccaed +_aeceb ]=_bbegfa [_edad +_aeceb ];};};return _cggbc ;};
// ToPdfObject implements interface PdfModel.
func (_dcde *PdfAnnotationWidget )ToPdfObject ()_ce .PdfObject {_dcde .PdfAnnotation .ToPdfObject ();_dgg :=_dcde ._dec ;_ffdg :=_dgg .PdfObject .(*_ce .PdfObjectDictionary );if _dcde ._bbcf {return _dgg ;};_dcde ._bbcf =true ;_ffdg .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ce .MakeName ("\u0057\u0069\u0064\u0067\u0065\u0074"));
_ffdg .SetIfNotNil ("\u0048",_dcde .H );_ffdg .SetIfNotNil ("\u004d\u004b",_dcde .MK );_ffdg .SetIfNotNil ("\u0041",_dcde .A );_ffdg .SetIfNotNil ("\u0041\u0041",_dcde .AA );_ffdg .SetIfNotNil ("\u0042\u0053",_dcde .BS );_bebf :=_dcde .Parent ;if _dcde ._bag !=nil {if _dcde ._bag ._aadeb ==_dcde ._dec {_dcde ._bag .ToPdfObject ();
};_bebf =_dcde ._bag .GetContainingPdfObject ();};if _bebf !=_dgg {_ffdg .SetIfNotNil ("\u0050\u0061\u0072\u0065\u006e\u0074",_bebf );};_dcde ._bbcf =false ;return _dgg ;};
// NewPdfColorspaceCalRGB returns a new CalRGB colorspace object.
func NewPdfColorspaceCalRGB ()*PdfColorspaceCalRGB {_affa :=&PdfColorspaceCalRGB {};_affa .BlackPoint =[]float64 {0.0,0.0,0.0};_affa .Gamma =[]float64 {1.0,1.0,1.0};_affa .Matrix =[]float64 {1,0,0,0,1,0,0,0,1};return _affa ;};
// PdfOutlineItem represents an outline item dictionary (Table 153 - pp. 376 - 377).
type PdfOutlineItem struct{PdfOutlineTreeNode ;Title *_ce .PdfObjectString ;Parent *PdfOutlineTreeNode ;Prev *PdfOutlineTreeNode ;Next *PdfOutlineTreeNode ;Count *int64 ;Dest _ce .PdfObject ;A _ce .PdfObject ;SE _ce .PdfObject ;C _ce .PdfObject ;F _ce .PdfObject ;
_ggcfgf *_ce .PdfIndirectObject ;};
// PdfWriter handles outputing PDF content.
type PdfWriter struct{_bedff *_ce .PdfIndirectObject ;_dbdaa *_ce .PdfIndirectObject ;_defec map[_ce .PdfObject ]struct{};_adbee []_ce .PdfObject ;_gdaab map[_ce .PdfObject ]struct{};_cagg []*_ce .PdfIndirectObject ;_cfcac *PdfOutlineTreeNode ;_bbef *_ce .PdfObjectDictionary ;
_daeaf []_ce .PdfObject ;_dcecd *_ce .PdfIndirectObject ;_cafdf *_dg .Writer ;_cgdfab int64 ;_dcdgg error ;_cgebe *_ce .PdfCrypt ;_fbfg *_ce .PdfObjectDictionary ;_ggbef *_ce .PdfIndirectObject ;_cbegb *_ce .PdfObjectArray ;_facee _ce .Version ;_aedga *bool ;
_dggcg map[_ce .PdfObject ][]*_ce .PdfObjectDictionary ;_aabaf *PdfAcroForm ;_bcged Optimizer ;_dgeef StandardApplier ;_abff map[int ]crossReference ;_bffgf int64 ;ObjNumOffset int ;_ddfff bool ;_fegdg _ce .XrefTable ;_efbcg int64 ;_bcefd int64 ;_fdegda map[_ce .PdfObject ]int64 ;
_daeac map[_ce .PdfObject ]struct{};_cbdcb string ;_dfaac []*PdfOutputIntent ;_aegf bool ;_aecc ,_efbed string ;};
// ToPdfObject implements interface PdfModel.
func (_aged *PdfAnnotationLine )ToPdfObject ()_ce .PdfObject {_aged .PdfAnnotation .ToPdfObject ();_eadg :=_aged ._dec ;_fagdd :=_eadg .PdfObject .(*_ce .PdfObjectDictionary );_aged .PdfAnnotationMarkup .appendToPdfDictionary (_fagdd );_fagdd .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ce .MakeName ("\u004c\u0069\u006e\u0065"));
_fagdd .SetIfNotNil ("\u004c",_aged .L );_fagdd .SetIfNotNil ("\u0042\u0053",_aged .BS );_fagdd .SetIfNotNil ("\u004c\u0045",_aged .LE );_fagdd .SetIfNotNil ("\u0049\u0043",_aged .IC );_fagdd .SetIfNotNil ("\u004c\u004c",_aged .LL );_fagdd .SetIfNotNil ("\u004c\u004c\u0045",_aged .LLE );
_fagdd .SetIfNotNil ("\u0043\u0061\u0070",_aged .Cap );_fagdd .SetIfNotNil ("\u0049\u0054",_aged .IT );_fagdd .SetIfNotNil ("\u004c\u004c\u004f",_aged .LLO );_fagdd .SetIfNotNil ("\u0043\u0050",_aged .CP );_fagdd .SetIfNotNil ("\u004de\u0061\u0073\u0075\u0072\u0065",_aged .Measure );
_fagdd .SetIfNotNil ("\u0043\u004f",_aged .CO );return _eadg ;};func _caef (_fgdf *_ce .PdfIndirectObject ,_dgea *_ce .PdfObjectDictionary )(*DSS ,error ){if _fgdf ==nil {_fgdf =_ce .MakeIndirectObject (nil );};_fgdf .PdfObject =_ce .MakeDict ();_dcbc :=map[string ]*VRI {};
if _dbbb ,_gbefg :=_ce .GetDict (_dgea .Get ("\u0056\u0052\u0049"));_gbefg {for _ ,_cabgc :=range _dbbb .Keys (){if _gfaf ,_ffad :=_ce .GetDict (_dbbb .Get (_cabgc ));_ffad {_dcbc [_g .ToUpper (_cabgc .String ())]=_dcgbb (_gfaf );};};};return &DSS {Certs :_aaefeg (_dgea .Get ("\u0043\u0065\u0072t\u0073")),OCSPs :_aaefeg (_dgea .Get ("\u004f\u0043\u0053P\u0073")),CRLs :_aaefeg (_dgea .Get ("\u0043\u0052\u004c\u0073")),VRI :_dcbc ,_ecde :_fgdf },nil ;
};type pdfCIDFontType0 struct{fontCommon ;_dcbcf *_ce .PdfIndirectObject ;_afgge _dc .TextEncoder ;
// Table 117 Entries in a CIDFont dictionary (page 269)
// (Required) Dictionary that defines the character collection of the CIDFont.
// See Table 116.
CIDSystemInfo *_ce .PdfObjectDictionary ;
// Glyph metrics fields (optional).
DW _ce .PdfObject ;W _ce .PdfObject ;DW2 _ce .PdfObject ;W2 _ce .PdfObject ;_acbf map[_dc .CharCode ]float64 ;_fcae float64 ;};
// ToPdfObject converts the PdfPage to a dictionary within an indirect object container.
func (_dbfg *PdfPage )ToPdfObject ()_ce .PdfObject {_caac :=_dbfg ._acbbb ;_dbfg .GetPageDict ();return _caac ;};func (_gceea *PdfWriter )setHashIDs (_gagce _d .Hash )error {_gafab :=_gagce .Sum (nil );if _gceea ._aecc ==""{_gceea ._aecc =_bd .EncodeToString (_gafab [:8]);
};_gceea .setDocumentIDs (_gceea ._aecc ,_bd .EncodeToString (_gafab [8:]));return nil ;};func (_dfegd *LTV )getCRLs (_cfaed []*_eg .Certificate )([][]byte ,error ){_gcecd :=make ([][]byte ,0,len (_cfaed ));for _ ,_eaef :=range _cfaed {for _ ,_ffcb :=range _eaef .CRLDistributionPoints {if _dfegd .CertClient .IsCA (_eaef ){continue ;
};_edbf ,_bcbdf :=_dfegd .CRLClient .MakeRequest (_ffcb ,_eaef );if _bcbdf !=nil {_ff .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",_bcbdf );continue ;
};_gcecd =append (_gcecd ,_edbf );};};return _gcecd ,nil ;};
// GetNumComponents returns the number of color components (4 for CMYK32).
func (_cdcbd *PdfColorDeviceCMYK )GetNumComponents ()int {return 4};
// GetContainingPdfObject implements interface PdfModel.
func (_dbfcf *PdfSignature )GetContainingPdfObject ()_ce .PdfObject {return _dbfcf ._ggbg };
// 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 (_eagfe *PdfReader )FlattenFieldsWithOpts (appgen FieldAppearanceGenerator ,opts *FieldFlattenOpts )error {return _eagfe .flattenFieldsWithOpts (false ,appgen ,opts );};var _ pdfFont =(*pdfFontType3 )(nil );
// HasXObjectByName checks if has XObject resource by name.
func (_fdcaa *PdfPage )HasXObjectByName (name _ce .PdfObjectName )bool {_abgea ,_aadee :=_fdcaa .Resources .XObject .(*_ce .PdfObjectDictionary );if !_aadee {return false ;};if _abfd :=_abgea .Get (name );_abfd !=nil {return true ;};return false ;};
// ToPdfObject returns the PDF representation of the shading dictionary.
func (_cgdcd *PdfShadingType1 )ToPdfObject ()_ce .PdfObject {_cgdcd .PdfShading .ToPdfObject ();_eagee ,_bafa :=_cgdcd .getShadingDict ();if _bafa !=nil {_ff .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 _cgdcd .Domain !=nil {_eagee .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_cgdcd .Domain );};if _cgdcd .Matrix !=nil {_eagee .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_cgdcd .Matrix );};if _cgdcd .Function !=nil {if len (_cgdcd .Function )==1{_eagee .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_cgdcd .Function [0].ToPdfObject ());
}else {_ebae :=_ce .MakeArray ();for _ ,_cceeb :=range _cgdcd .Function {_ebae .Append (_cceeb .ToPdfObject ());};_eagee .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_ebae );};};return _cgdcd ._agcdg ;};func (_dbcga *PdfWriter )writeObjectsInStreams (_dfbea map[_ce .PdfObject ]bool )error {for _ ,_feda :=range _dbcga ._adbee {if _gbcbf :=_dfbea [_feda ];
_gbcbf {continue ;};_gecae :=int64 (0);switch _eecgf :=_feda .(type ){case *_ce .PdfIndirectObject :_gecae =_eecgf .ObjectNumber ;case *_ce .PdfObjectStream :_gecae =_eecgf .ObjectNumber ;case *_ce .PdfObjectStreams :_gecae =_eecgf .ObjectNumber ;default:_ff .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",_feda );
return ErrTypeCheck ;};if _dbcga ._cgebe !=nil &&_feda !=_dbcga ._ggbef {_begd :=_dbcga ._cgebe .Encrypt (_feda ,_gecae ,0);if _begd !=nil {_ff .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",_begd );
return _begd ;};};_dbcga .writeObject (int (_gecae ),_feda );};return nil ;};func (_geg *PdfReader )newPdfActionNamedFromDict (_gdf *_ce .PdfObjectDictionary )(*PdfActionNamed ,error ){return &PdfActionNamed {N :_gdf .Get ("\u004e")},nil ;};
// GetContext returns the action context which contains the specific type-dependent context.
// The context represents the subaction.
func (_ecc *PdfAction )GetContext ()PdfModel {if _ecc ==nil {return nil ;};return _ecc ._gbf ;};
// 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 ){_aaafe ,_gdef :=_dd .Open (filePath );if _gdef !=nil {_ff .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",_gdef );
return nil ,_gdef ;};defer _aaafe .Close ();return NewPdfFontFromTTF (_aaafe );};
// HasPatternByName checks whether a pattern object is defined by the specified keyName.
func (_agcde *PdfPageResources )HasPatternByName (keyName _ce .PdfObjectName )bool {_ ,_fdacd :=_agcde .GetPatternByName (keyName );return _fdacd ;};func (_cccgfb *PdfWriter )setDocInfo (_gaaca _ce .PdfObject ){if _cccgfb .hasObject (_cccgfb ._dcecd ){delete (_cccgfb ._gdaab ,_cccgfb ._dcecd );
delete (_cccgfb ._daeac ,_cccgfb ._dcecd );for _gcda ,_caccf :=range _cccgfb ._adbee {if _caccf ==_cccgfb ._dcecd {copy (_cccgfb ._adbee [_gcda :],_cccgfb ._adbee [_gcda +1:]);_cccgfb ._adbee [len (_cccgfb ._adbee )-1]=nil ;_cccgfb ._adbee =_cccgfb ._adbee [:len (_cccgfb ._adbee )-1];
break ;};};};_bgbdc :=_ce .PdfIndirectObject {};_bgbdc .PdfObject =_gaaca ;_cccgfb ._dcecd =&_bgbdc ;_cccgfb .addObject (&_bgbdc );};
// 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 (_fbef *PdfFieldButton )GetType ()ButtonType {_dagc :=ButtonTypeCheckbox ;if _fbef .Ff !=nil {if (uint32 (*_fbef .Ff )&FieldFlagPushbutton .Mask ())> 0{_dagc =ButtonTypePush ;}else if (uint32 (*_fbef .Ff )&FieldFlagRadio .Mask ())> 0{_dagc =ButtonTypeRadio ;
};};return _dagc ;};func _fgda (_abdga StdFontName )(pdfFontSimple ,error ){_ffbf ,_eedfg :=_ee .NewStdFontByName (_abdga );if !_eedfg {return pdfFontSimple {},ErrFontNotSupported ;};_cbce :=_bcegg (_ffbf );return _cbce ,nil ;};func (_baafd *Image )resampleLowBits (_cddge []uint32 ){_dffgc :=_gf .BytesPerLine (int (_baafd .Width ),int (_baafd .BitsPerComponent ),_baafd .ColorComponents );
_bacgd :=make ([]byte ,_baafd .ColorComponents *_dffgc *int (_baafd .Height ));_befec :=int (_baafd .BitsPerComponent )*_baafd .ColorComponents *int (_baafd .Width );_fefed :=uint8 (8);var (_cfgg ,_adaf int ;_aecbg uint32 ;);for _gbcdf :=0;_gbcdf < int (_baafd .Height );
_gbcdf ++{_adaf =_gbcdf *_dffgc ;for _cfda :=0;_cfda < _befec ;_cfda ++{_aecbg =_cddge [_cfgg ];_fefed -=uint8 (_baafd .BitsPerComponent );_bacgd [_adaf ]|=byte (_aecbg )<<_fefed ;if _fefed ==0{_fefed =8;_adaf ++;};_cfgg ++;};};_baafd .Data =_bacgd ;};
// ImageToRGB converts an Image in a given PdfColorspace to an RGB image.
func (_cacg *PdfColorspaceDeviceN )ImageToRGB (img Image )(Image ,error ){_aecff :=_gb .NewReader (img .getBase ());_fcdd :=_gf .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),img .ColorComponents ,nil ,img ._cdecc ,img ._bffb );
_eacdb :=_gb .NewWriter (_fcdd );_deac :=_egg .Pow (2,float64 (img .BitsPerComponent ))-1;_acfde :=_cacg .GetNumComponents ();_dffcb :=make ([]uint32 ,_acfde );_cbgd :=make ([]float64 ,_acfde );for {_cgdc :=_aecff .ReadSamples (_dffcb );if _cgdc ==_gd .EOF {break ;
}else if _cgdc !=nil {return img ,_cgdc ;};for _gccc :=0;_gccc < _acfde ;_gccc ++{_cfegf :=float64 (_dffcb [_gccc ])/_deac ;_cbgd [_gccc ]=_cfegf ;};_gbggb ,_cgdc :=_cacg .TintTransform .Evaluate (_cbgd );if _cgdc !=nil {return img ,_cgdc ;};for _ ,_fdcaf :=range _gbggb {_fdcaf =_egg .Min (_egg .Max (0,_fdcaf ),1.0);
if _cgdc =_eacdb .WriteSample (uint32 (_fdcaf *_deac ));_cgdc !=nil {return img ,_cgdc ;};};};return _cacg .AlternateSpace .ImageToRGB (_ffba (&_fcdd ));};
// NewPdfAppender creates a new Pdf appender from a Pdf reader.
func NewPdfAppender (reader *PdfReader )(*PdfAppender ,error ){_cffbg :=&PdfAppender {_gbbg :reader ._eggc ,Reader :reader ,_egeb :reader ._afda ,_ccbd :reader ._efdafe };_eead ,_edcbe :=_cffbg ._gbbg .Seek (0,_gd .SeekEnd );if _edcbe !=nil {return nil ,_edcbe ;
};_cffbg ._gafg =_eead ;if _ ,_edcbe =_cffbg ._gbbg .Seek (0,_gd .SeekStart );_edcbe !=nil {return nil ,_edcbe ;};_cffbg ._fcda ,_edcbe =NewPdfReader (_cffbg ._gbbg );if _edcbe !=nil {return nil ,_edcbe ;};for _ ,_gfee :=range _cffbg .Reader .GetObjectNums (){if _cffbg ._agac < _gfee {_cffbg ._agac =_gfee ;
};};_cffbg ._agfe =_cffbg ._egeb .GetXrefTable ();_cffbg ._gcfe =_cffbg ._egeb .GetXrefOffset ();_cffbg ._ggdc =append (_cffbg ._ggdc ,_cffbg ._fcda .PageList ...);_cffbg ._acbd =make (map[_ce .PdfObject ]struct{});_cffbg ._fadeg =make (map[_ce .PdfObject ]int64 );
_cffbg ._gecg =make (map[_ce .PdfObject ]struct{});_cffbg ._fed =_cffbg ._fcda .AcroForm ;_cffbg ._gee =_cffbg ._fcda .DSS ;return _cffbg ,nil ;};
// PdfAnnotationWatermark represents Watermark annotations.
// (Section 12.5.6.22).
type PdfAnnotationWatermark struct{*PdfAnnotation ;FixedPrint _ce .PdfObject ;};
// NewPdfColorCalGray returns a new CalGray color.
func NewPdfColorCalGray (grayVal float64 )*PdfColorCalGray {_fab :=PdfColorCalGray (grayVal );return &_fab ;};func (_fcafb *pdfFontSimple )getFontEncoding ()(_fegde string ,_eeef map[_dc .CharCode ]_dc .GlyphName ,_beeed error ){_fegde ="\u0053\u0074a\u006e\u0064\u0061r\u0064\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067";
if _gedf ,_bagg :=_dggec [_fcafb ._egacd ];_bagg {_fegde =_gedf ;}else if _fcafb .fontFlags ()&_abda !=0{for _cdcdg ,_agbf :=range _dggec {if _g .Contains (_fcafb ._egacd ,_cdcdg ){_fegde =_agbf ;break ;};};};if _fcafb .Encoding ==nil {return _fegde ,nil ,nil ;
};switch _adbg :=_fcafb .Encoding .(type ){case *_ce .PdfObjectName :return string (*_adbg ),nil ,nil ;case *_ce .PdfObjectDictionary :_cbaf ,_ggda :=_ce .GetName (_adbg .Get ("\u0042\u0061\u0073e\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067"));if _ggda {_fegde =_cbaf .String ();
};if _dcga :=_adbg .Get ("D\u0069\u0066\u0066\u0065\u0072\u0065\u006e\u0063\u0065\u0073");_dcga !=nil {_acbbd ,_gbcbg :=_ce .GetArray (_dcga );if !_gbcbg {_ff .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",_adbg ,_adbg .Get ("D\u0069\u0066\u0066\u0065\u0072\u0065\u006e\u0063\u0065\u0073"));
return "",nil ,_ce .ErrTypeError ;};_eeef ,_beeed =_dc .FromFontDifferences (_acbbd );};return _fegde ,_eeef ,_beeed ;default:_ff .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",_fcafb .Encoding ,_fcafb .Encoding );
return "",nil ,_ce .ErrTypeError ;};};
// PdfOutlineTreeNode contains common fields used by the outline and outline
// item objects.
type PdfOutlineTreeNode struct{_edda interface{};First *PdfOutlineTreeNode ;Last *PdfOutlineTreeNode ;};
// PdfAnnotationText represents Text annotations.
// (Section 12.5.6.4 p. 402).
type PdfAnnotationText struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Open _ce .PdfObject ;Name _ce .PdfObject ;State _ce .PdfObject ;StateModel _ce .PdfObject ;};type pdfFont interface{_ee .Font ;
// ToPdfObject returns a PDF representation of the font and implements interface Model.
ToPdfObject ()_ce .PdfObject ;getFontDescriptor ()*PdfFontDescriptor ;baseFields ()*fontCommon ;};
// PdfAnnotationInk represents Ink annotations.
// (Section 12.5.6.13).
type PdfAnnotationInk struct{*PdfAnnotation ;*PdfAnnotationMarkup ;InkList _ce .PdfObject ;BS _ce .PdfObject ;};
// NewPdfColorPatternType3 returns an empty color shading pattern type 3 (Radial).
func NewPdfColorPatternType3 ()*PdfColorPatternType3 {_ccdc :=&PdfColorPatternType3 {};return _ccdc };
// FieldImageProvider provides fields images for specified fields.
type FieldImageProvider interface{FieldImageValues ()(map[string ]*Image ,error );};
// 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 (_cgcb *PdfReader )GetOutlinesFlattened ()([]*PdfOutlineTreeNode ,[]string ,error ){var _abeab []*PdfOutlineTreeNode ;var _gcaf []string ;var _cabea func (*PdfOutlineTreeNode ,*[]*PdfOutlineTreeNode ,*[]string ,int );_cabea =func (_cgegg *PdfOutlineTreeNode ,_edgbf *[]*PdfOutlineTreeNode ,_agdfd *[]string ,_ebef int ){if _cgegg ==nil {return ;
};if _cgegg ._edda ==nil {_ff .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 ;};_gacfd ,_aefd :=_cgegg ._edda .(*PdfOutlineItem );if _aefd {*_edgbf =append (*_edgbf ,&_gacfd .PdfOutlineTreeNode );
_cbbgf :=_g .Repeat ("\u0020",_ebef *2)+_gacfd .Title .Decoded ();*_agdfd =append (*_agdfd ,_cbbgf );};if _cgegg .First !=nil {_fgcc :=_g .Repeat ("\u0020",_ebef *2)+"\u002b";*_agdfd =append (*_agdfd ,_fgcc );_cabea (_cgegg .First ,_edgbf ,_agdfd ,_ebef +1);
};if _aefd &&_gacfd .Next !=nil {_cabea (_gacfd .Next ,_edgbf ,_agdfd ,_ebef );};};_cabea (_cgcb ._dbbfe ,&_abeab ,&_gcaf ,0);return _abeab ,_gcaf ,nil ;};
// SetBorderWidth sets the style's border width.
func (_acaae *PdfBorderStyle )SetBorderWidth (width float64 ){_acaae .W =&width };
// PdfAppender appends new PDF content to an existing PDF document via incremental updates.
type PdfAppender struct{_gbbg _gd .ReadSeeker ;_egeb *_ce .PdfParser ;_fcda *PdfReader ;Reader *PdfReader ;_ggdc []*PdfPage ;_fed *PdfAcroForm ;_gee *DSS ;_acec *Permissions ;_agfe _ce .XrefTable ;_gcfe int64 ;_agac int ;_beff []_ce .PdfObject ;_acbd map[_ce .PdfObject ]struct{};
_fadeg map[_ce .PdfObject ]int64 ;_gecg map[_ce .PdfObject ]struct{};_ccbd map[_ce .PdfObject ]struct{};_gafg int64 ;_fgegg bool ;_afef string ;_debba *EncryptOptions ;_geaf *PdfInfo ;};
// B returns the value of the B component of the color.
func (_ggea *PdfColorLab )B ()float64 {return _ggea [2]};
// GetShadingByName gets the shading specified by keyName. Returns nil if not existing.
// The bool flag indicated whether it was found or not.
func (_dbecf *PdfPageResources )GetShadingByName (keyName _ce .PdfObjectName )(*PdfShading ,bool ){if _dbecf .Shading ==nil {return nil ,false ;};_bdbgb ,_fcgea :=_ce .TraceToDirectObject (_dbecf .Shading ).(*_ce .PdfObjectDictionary );if !_fcgea {_ff .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",_dbecf .Shading );
return nil ,false ;};if _eeedeb :=_bdbgb .Get (keyName );_eeedeb !=nil {_efbag ,_ffcfe :=_gaefc (_eeedeb );if _ffcfe !=nil {_ff .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",_ffcfe );
return nil ,false ;};return _efbag ,true ;};return nil ,false ;};func (_ebga *PdfWriter )mapObjectStreams (_gddbc bool )(map[_ce .PdfObject ]bool ,bool ){_acbdce :=make (map[_ce .PdfObject ]bool );for _ ,_afdgfd :=range _ebga ._adbee {if _ccddg ,_ddcfd :=_afdgfd .(*_ce .PdfObjectStreams );
_ddcfd {_gddbc =true ;for _ ,_bbdeg :=range _ccddg .Elements (){_acbdce [_bbdeg ]=true ;if _cgfed ,_fdgfgg :=_bbdeg .(*_ce .PdfIndirectObject );_fdgfgg {_acbdce [_cgfed .PdfObject ]=true ;};};};};return _acbdce ,_gddbc ;};func (_baggc *PdfPattern )getDict ()*_ce .PdfObjectDictionary {if _afdgg ,_cfefb :=_baggc ._gadcb .(*_ce .PdfIndirectObject );
_cfefb {_bdeb ,_afadee :=_afdgg .PdfObject .(*_ce .PdfObjectDictionary );if !_afadee {return nil ;};return _bdeb ;}else if _gcea ,_aaacd :=_baggc ._gadcb .(*_ce .PdfObjectStream );_aaacd {return _gcea .PdfObjectDictionary ;}else {_ff .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",_baggc ._gadcb );
return nil ;};};
// NewPdfColorspaceFromPdfObject loads a PdfColorspace from a PdfObject. Returns an error if there is
// a failure in loading.
func NewPdfColorspaceFromPdfObject (obj _ce .PdfObject )(PdfColorspace ,error ){if obj ==nil {return nil ,nil ;};var _ddfcd *_ce .PdfIndirectObject ;var _fbaf *_ce .PdfObjectName ;var _daf *_ce .PdfObjectArray ;if _eeedg ,_bac :=obj .(*_ce .PdfIndirectObject );
_bac {_ddfcd =_eeedg ;};obj =_ce .TraceToDirectObject (obj );switch _dafg :=obj .(type ){case *_ce .PdfObjectArray :_daf =_dafg ;case *_ce .PdfObjectName :_fbaf =_dafg ;};if _fbaf !=nil {switch *_fbaf {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:_ff .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",*_fbaf );return nil ,_afga ;};};if _daf !=nil &&_daf .Len ()> 0{var _aaac _ce .PdfObject =_ddfcd ;
if _ddfcd ==nil {_aaac =_daf ;};if _gfeea ,_bcfeba :=_ce .GetName (_daf .Get (0));_bcfeba {switch _gfeea .String (){case "\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079":if _daf .Len ()==1{return NewPdfColorspaceDeviceGray (),nil ;};case "\u0044e\u0076\u0069\u0063\u0065\u0052\u0047B":if _daf .Len ()==1{return NewPdfColorspaceDeviceRGB (),nil ;
};case "\u0044\u0065\u0076\u0069\u0063\u0065\u0043\u004d\u0059\u004b":if _daf .Len ()==1{return NewPdfColorspaceDeviceCMYK (),nil ;};case "\u0043a\u006c\u0047\u0072\u0061\u0079":return _feed (_aaac );case "\u0043\u0061\u006c\u0052\u0047\u0042":return _adc (_aaac );
case "\u004c\u0061\u0062":return _fcgd (_aaac );case "\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064":return _gdgff (_aaac );case "\u0050a\u0074\u0074\u0065\u0072\u006e":return _dbga (_aaac );case "\u0049n\u0064\u0065\u0078\u0065\u0064":return _cefb (_aaac );
case "\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e":return _ddce (_aaac );case "\u0044e\u0076\u0069\u0063\u0065\u004e":return _eage (_aaac );default:_ff .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",*_gfeea );
};};};_ff .Log .Debug ("\u0050\u0044\u0046\u0020\u0046i\u006c\u0065\u0020\u0045\u0072\u0072\u006f\u0072\u003a\u0020\u0043\u006f\u006co\u0072\u0073\u0070\u0061\u0063\u0065\u0020\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072\u003a\u0020\u0025\u0073",obj .String ());
return nil ,ErrTypeCheck ;};func (_cfeaa *PdfWriter )updateObjectNumbers (){_fbece :=_cfeaa .ObjNumOffset ;_fgag :=0;for _ ,_acbcg :=range _cfeaa ._adbee {_gedfa :=int64 (_fgag +1+_fbece );_abcfb :=true ;if _cfeaa ._ddfff {if _efeaa ,_ebfcac :=_cfeaa ._fdegda [_acbcg ];
_ebfcac {_gedfa =_efeaa ;_abcfb =false ;};};switch _accad :=_acbcg .(type ){case *_ce .PdfIndirectObject :_accad .ObjectNumber =_gedfa ;_accad .GenerationNumber =0;case *_ce .PdfObjectStream :_accad .ObjectNumber =_gedfa ;_accad .GenerationNumber =0;case *_ce .PdfObjectStreams :_accad .ObjectNumber =_gedfa ;
_accad .GenerationNumber =0;default:_ff .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",_accad );continue ;
};if _abcfb {_fgag ++;};};_acfcd :=func (_efcgf _ce .PdfObject )int64 {switch _ecfgca :=_efcgf .(type ){case *_ce .PdfIndirectObject :return _ecfgca .ObjectNumber ;case *_ce .PdfObjectStream :return _ecfgca .ObjectNumber ;case *_ce .PdfObjectStreams :return _ecfgca .ObjectNumber ;
};return 0;};_bf .SliceStable (_cfeaa ._adbee ,func (_cccgdg ,_cacaa int )bool {return _acfcd (_cfeaa ._adbee [_cccgdg ])< _acfcd (_cfeaa ._adbee [_cacaa ])});};func (_ebfa *PdfReader )newPdfAnnotationWatermarkFromDict (_dab *_ce .PdfObjectDictionary )(*PdfAnnotationWatermark ,error ){_ecfea :=PdfAnnotationWatermark {};
_ecfea .FixedPrint =_dab .Get ("\u0046\u0069\u0078\u0065\u0064\u0050\u0072\u0069\u006e\u0074");return &_ecfea ,nil ;};
// PdfFont represents an underlying font structure which can be of type:
// - Type0
// - Type1
// - TrueType
// etc.
type PdfFont struct{_dace pdfFont };
// L returns the value of the L component of the color.
func (_cdeeb *PdfColorLab )L ()float64 {return _cdeeb [0]};
// Items returns all children outline items.
func (_gebgc *OutlineItem )Items ()[]*OutlineItem {return _gebgc .Entries };func _bcea (_dfbg *_ce .PdfObjectDictionary )(*PdfShadingPattern ,error ){_cfdfg :=&PdfShadingPattern {};_ecbee :=_dfbg .Get ("\u0053h\u0061\u0064\u0069\u006e\u0067");if _ecbee ==nil {_ff .Log .Debug ("\u0053h\u0061d\u0069\u006e\u0067\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");
return nil ,ErrRequiredAttributeMissing ;};_dbaad ,_fadc :=_gaefc (_ecbee );if _fadc !=nil {_ff .Log .Debug ("\u0045r\u0072\u006f\u0072\u0020l\u006f\u0061\u0064\u0069\u006eg\u0020s\u0068a\u0064\u0069\u006e\u0067\u003a\u0020\u0025v",_fadc );return nil ,_fadc ;
};_cfdfg .Shading =_dbaad ;if _ffcgfe :=_dfbg .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");_ffcgfe !=nil {_eagbd ,_cdcef :=_ffcgfe .(*_ce .PdfObjectArray );if !_cdcef {_ff .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",_ffcgfe );
return nil ,_ce .ErrTypeError ;};_cfdfg .Matrix =_eagbd ;};if _eaacf :=_dfbg .Get ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e");_eaacf !=nil {_cfdfg .ExtGState =_eaacf ;};return _cfdfg ,nil ;};
// AddAnnotation appends `annot` to the list of page annotations.
func (_cdag *PdfPage )AddAnnotation (annot *PdfAnnotation ){if _cdag ._gage ==nil {_cdag .GetAnnotations ();};_cdag ._gage =append (_cdag ._gage ,annot );};
// NewPdfActionHide returns a new "hide" action.
func NewPdfActionHide ()*PdfActionHide {_afg :=NewPdfAction ();_gcf :=&PdfActionHide {};_gcf .PdfAction =_afg ;_afg .SetContext (_gcf );return _gcf ;};func _cedd (_accb *PdfPage )map[_ce .PdfObjectName ]_ce .PdfObject {_cafc :=make (map[_ce .PdfObjectName ]_ce .PdfObject );
if _accb .Resources ==nil {return _cafc ;};if _accb .Resources .Font !=nil {if _cabg ,_ecfd :=_ce .GetDict (_accb .Resources .Font );_ecfd {for _ ,_ged :=range _cabg .Keys (){_cafc [_ged ]=_cabg .Get (_ged );};};};if _accb .Resources .ExtGState !=nil {if _bbff ,_gdbe :=_ce .GetDict (_accb .Resources .ExtGState );
_gdbe {for _ ,_dfbc :=range _bbff .Keys (){_cafc [_dfbc ]=_bbff .Get (_dfbc );};};};if _accb .Resources .XObject !=nil {if _gcb ,_afad :=_ce .GetDict (_accb .Resources .XObject );_afad {for _ ,_abgc :=range _gcb .Keys (){_cafc [_abgc ]=_gcb .Get (_abgc );
};};};if _accb .Resources .Pattern !=nil {if _cgade ,_gegc :=_ce .GetDict (_accb .Resources .Pattern );_gegc {for _ ,_gdgf :=range _cgade .Keys (){_cafc [_gdgf ]=_cgade .Get (_gdgf );};};};if _accb .Resources .Shading !=nil {if _feeb ,_bga :=_ce .GetDict (_accb .Resources .Shading );
_bga {for _ ,_bfbf :=range _feeb .Keys (){_cafc [_bfbf ]=_feeb .Get (_bfbf );};};};if _accb .Resources .ProcSet !=nil {if _ddcg ,_cgga :=_ce .GetDict (_accb .Resources .ProcSet );_cgga {for _ ,_adea :=range _ddcg .Keys (){_cafc [_adea ]=_ddcg .Get (_adea );
};};};if _accb .Resources .Properties !=nil {if _caaa ,_ebff :=_ce .GetDict (_accb .Resources .Properties );_ebff {for _ ,_egde :=range _caaa .Keys (){_cafc [_egde ]=_caaa .Get (_egde );};};};return _cafc ;};
// NewPdfSignature creates a new PdfSignature object.
func NewPdfSignature (handler SignatureHandler )*PdfSignature {_eecag :=&PdfSignature {Type :_ce .MakeName ("\u0053\u0069\u0067"),Handler :handler };_ccfaa :=&pdfSignDictionary {PdfObjectDictionary :_ce .MakeDict (),_efaef :&handler ,_gdbgfe :_eecag };
_eecag ._ggbg =_ce .MakeIndirectObject (_ccfaa );return _eecag ;};
// Initialize initializes the PdfSignature.
func (_dbbeed *PdfSignature )Initialize ()error {if _dbbeed .Handler ==nil {return _ge .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 _dbbeed .Handler .InitSignature (_dbbeed );};func _acab (_cfdag *XObjectImage )error {if _cfdag .SMask ==nil {return nil ;};_ecgbc ,_ccgb :=_cfdag .SMask .(*_ce .PdfObjectStream );if !_ccgb {_ff .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 _ce .ErrTypeError ;};_fdaef :=_ecgbc .PdfObjectDictionary ;_ceccf :=_fdaef .Get ("\u004d\u0061\u0074t\u0065");if _ceccf ==nil {return nil ;};_aadbfa ,_abcag :=_fceadg (_ceccf .(*_ce .PdfObjectArray ));if _abcag !=nil {return _abcag ;};_dggae :=_ce .MakeArrayFromFloats ([]float64 {_aadbfa });
_fdaef .SetIfNotNil ("\u004d\u0061\u0074t\u0065",_dggae );return nil ;};
// ToPdfObject recursively builds the Outline tree PDF object.
func (_eeafd *PdfOutline )ToPdfObject ()_ce .PdfObject {_dfdc :=_eeafd ._aedbf ;_bcdba :=_dfdc .PdfObject .(*_ce .PdfObjectDictionary );_bcdba .Set ("\u0054\u0079\u0070\u0065",_ce .MakeName ("\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0073"));if _eeafd .First !=nil {_bcdba .Set ("\u0046\u0069\u0072s\u0074",_eeafd .First .ToPdfObject ());
};if _eeafd .Last !=nil {_bcdba .Set ("\u004c\u0061\u0073\u0074",_eeafd .Last .GetContext ().GetContainingPdfObject ());};if _eeafd .Parent !=nil {_bcdba .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_eeafd .Parent .GetContext ().GetContainingPdfObject ());
};if _eeafd .Count !=nil {_bcdba .Set ("\u0043\u006f\u0075n\u0074",_ce .MakeInteger (*_eeafd .Count ));};return _dfdc ;};var _caege =_cd .MustCompile ("\u005b\\\u006e\u005c\u0072\u005d\u002b");func (_eaaf *PdfReader )newPdfAnnotationUnderlineFromDict (_afe *_ce .PdfObjectDictionary )(*PdfAnnotationUnderline ,error ){_ggec :=PdfAnnotationUnderline {};
_gcaa ,_adbb :=_eaaf .newPdfAnnotationMarkupFromDict (_afe );if _adbb !=nil {return nil ,_adbb ;};_ggec .PdfAnnotationMarkup =_gcaa ;_ggec .QuadPoints =_afe .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");return &_ggec ,nil ;};
// Evaluate runs the function on the passed in slice and returns the results.
func (_ccacd *PdfFunctionType0 )Evaluate (x []float64 )([]float64 ,error ){if len (x )!=_ccacd .NumInputs {_ff .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 ,_ge .New ("\u0072\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b\u0020e\u0072\u0072\u006f\u0072");};if _ccacd ._dfcag ==nil {_effac :=_ccacd .processSamples ();if _effac !=nil {return nil ,_effac ;};};_ccbe :=_ccacd .Encode ;if _ccbe ==nil {_ccbe =[]float64 {};
for _dbea :=0;_dbea < len (_ccacd .Size );_dbea ++{_ccbe =append (_ccbe ,0);_ccbe =append (_ccbe ,float64 (_ccacd .Size [_dbea ]-1));};};_ccgcf :=_ccacd .Decode ;if _ccgcf ==nil {_ccgcf =_ccacd .Range ;};_cfddb :=make ([]int ,len (x ));for _gdfbe :=0;_gdfbe < len (x );
_gdfbe ++{_cdbc :=x [_gdfbe ];_dggee :=_egg .Min (_egg .Max (_cdbc ,_ccacd .Domain [2*_gdfbe ]),_ccacd .Domain [2*_gdfbe +1]);_efffb :=_gf .LinearInterpolate (_dggee ,_ccacd .Domain [2*_gdfbe ],_ccacd .Domain [2*_gdfbe +1],_ccbe [2*_gdfbe ],_ccbe [2*_gdfbe +1]);
_beeedb :=_egg .Min (_egg .Max (_efffb ,0),float64 (_ccacd .Size [_gdfbe ]-1));_ggaage :=int (_egg .Floor (_beeedb +0.5));if _ggaage < 0{_ggaage =0;}else if _ggaage > _ccacd .Size [_gdfbe ]{_ggaage =_ccacd .Size [_gdfbe ]-1;};_cfddb [_gdfbe ]=_ggaage ;
};_fcab :=_cfddb [0];for _cbdg :=1;_cbdg < _ccacd .NumInputs ;_cbdg ++{_geefe :=_cfddb [_cbdg ];for _cefc :=0;_cefc < _cbdg ;_cefc ++{_geefe *=_ccacd .Size [_cefc ];};_fcab +=_geefe ;};_fcab *=_ccacd .NumOutputs ;var _ccef []float64 ;for _ffga :=0;_ffga < _ccacd .NumOutputs ;
_ffga ++{_fbde :=_fcab +_ffga ;if _fbde >=len (_ccacd ._dfcag ){_ff .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 ;};_bgbb :=_ccacd ._dfcag [_fbde ];_ecaad :=_gf .LinearInterpolate (float64 (_bgbb ),0,_egg .Pow (2,float64 (_ccacd .BitsPerSample )),_ccgcf [2*_ffga ],_ccgcf [2*_ffga +1]);_fgbg :=_egg .Min (_egg .Max (_ecaad ,_ccacd .Range [2*_ffga ]),_ccacd .Range [2*_ffga +1]);
_ccef =append (_ccef ,_fgbg );};return _ccef ,nil ;};
// GetColorspaces loads PdfPageResourcesColorspaces from `r.ColorSpace` and returns an error if there
// is a problem loading. Once loaded, the same object is returned on multiple calls.
func (_dffbg *PdfPageResources )GetColorspaces ()(*PdfPageResourcesColorspaces ,error ){if _dffbg ._acffc !=nil {return _dffbg ._acffc ,nil ;};if _dffbg .ColorSpace ==nil {return nil ,nil ;};_fffc ,_bgdcb :=_cccf (_dffbg .ColorSpace );if _bgdcb !=nil {return nil ,_bgdcb ;
};_dffbg ._acffc =_fffc ;return _dffbg ._acffc ,nil ;};
// IsCheckbox returns true if the button field represents a checkbox, false otherwise.
func (_edcc *PdfFieldButton )IsCheckbox ()bool {return _edcc .GetType ()==ButtonTypeCheckbox };
// GetNameDictionary returns the Names entry in the PDF catalog.
// See section 7.7.4 "Name Dictionary" (p. 80 PDF32000_2008).
func (_cgacb *PdfReader )GetNameDictionary ()(_ce .PdfObject ,error ){_bfdcc :=_ce .ResolveReference (_cgacb ._cfcdg .Get ("\u004e\u0061\u006de\u0073"));if _bfdcc ==nil {return nil ,nil ;};if !_cgacb ._cgbdb {_ebeda :=_cgacb .traverseObjectData (_bfdcc );
if _ebeda !=nil {return nil ,_ebeda ;};};return _bfdcc ,nil ;};func (_effcf *pdfFontType3 )getFontDescriptor ()*PdfFontDescriptor {return _effcf ._daebd };
// DecodeArray returns the range of color component values in DeviceCMYK colorspace.
func (_cfgd *PdfColorspaceDeviceCMYK )DecodeArray ()[]float64 {return []float64 {0.0,1.0,0.0,1.0,0.0,1.0,0.0,1.0};};
// Register registers (caches) a model to primitive object relationship.
func (_bfaf *modelManager )Register (primitive _ce .PdfObject ,model PdfModel ){_bfaf ._dgefa [model ]=primitive ;_bfaf ._adbfe [primitive ]=model ;};
// PdfActionURI represents an URI action.
type PdfActionURI struct{*PdfAction ;URI _ce .PdfObject ;IsMap _ce .PdfObject ;};
// PdfPage represents a page in a PDF document. (7.7.3.3 - Table 30).
type PdfPage struct{Parent _ce .PdfObject ;LastModified *PdfDate ;Resources *PdfPageResources ;CropBox *PdfRectangle ;MediaBox *PdfRectangle ;BleedBox *PdfRectangle ;TrimBox *PdfRectangle ;ArtBox *PdfRectangle ;BoxColorInfo _ce .PdfObject ;Contents _ce .PdfObject ;
Rotate *int64 ;Group _ce .PdfObject ;Thumb _ce .PdfObject ;B _ce .PdfObject ;Dur _ce .PdfObject ;Trans _ce .PdfObject ;AA _ce .PdfObject ;Metadata _ce .PdfObject ;PieceInfo _ce .PdfObject ;StructParents _ce .PdfObject ;ID _ce .PdfObject ;PZ _ce .PdfObject ;
SeparationInfo _ce .PdfObject ;Tabs _ce .PdfObject ;TemplateInstantiated _ce .PdfObject ;PresSteps _ce .PdfObject ;UserUnit _ce .PdfObject ;VP _ce .PdfObject ;Annots _ce .PdfObject ;_gage []*PdfAnnotation ;_cbcaa *_ce .PdfObjectDictionary ;_acbbb *_ce .PdfIndirectObject ;
_caab _ce .PdfObjectDictionary ;_cagde *PdfReader ;};
// GetContainingPdfObject implements interface PdfModel.
func (_fcfb *PdfSignatureReference )GetContainingPdfObject ()_ce .PdfObject {return _fcfb ._bggef };func _cgcbd (_ccbg []byte )([]byte ,error ){_gacad :=_f .New ();if _ ,_dcfc :=_gd .Copy (_gacad ,_ag .NewReader (_ccbg ));_dcfc !=nil {return nil ,_dcfc ;
};return _gacad .Sum (nil ),nil ;};
// GetOptimizer returns current PDF optimizer.
func (_bbdfc *PdfWriter )GetOptimizer ()Optimizer {return _bbdfc ._bcged };
// GetContainingPdfObject returns the container of the outline item (indirect object).
func (_cfdf *PdfOutlineItem )GetContainingPdfObject ()_ce .PdfObject {return _cfdf ._ggcfgf };
// BorderStyle defines border type, typically used for annotations.
type BorderStyle int ;
// PdfAnnotationPolygon represents Polygon annotations.
// (Section 12.5.6.9).
type PdfAnnotationPolygon struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Vertices _ce .PdfObject ;LE _ce .PdfObject ;BS _ce .PdfObject ;IC _ce .PdfObject ;BE _ce .PdfObject ;IT _ce .PdfObject ;Measure _ce .PdfObject ;};func _ecbge (_ffgg _ce .PdfObject )(*PdfFilespec ,error ){if _ffgg ==nil {return nil ,nil ;
};return NewPdfFilespecFromObj (_ffgg );};func _bfbegf (_ecfcg *PdfPage ){_gfgda :=_gec .GetLicenseKey ();if _gfgda !=nil &&_gfgda .IsLicensed (){return ;};_cdebf :=_ce .PdfObjectName ("\u0055\u0046\u0031");if !_ecfcg .Resources .HasFontByName (_cdebf ){_ecfcg .Resources .SetFontByName (_cdebf ,DefaultFont ().ToPdfObject ());
};var _aefgg []string ;_aefgg =append (_aefgg ,"\u0071");_aefgg =append (_aefgg ,"\u0042\u0054");_aefgg =append (_aefgg ,_e .Sprintf ("\u002f%\u0073\u0020\u0031\u0034\u0020\u0054f",_cdebf .String ()));_aefgg =append (_aefgg ,"\u0031\u0020\u0030\u0020\u0030\u0020\u0072\u0067");
_aefgg =append (_aefgg ,"\u0031\u0030\u0020\u0031\u0030\u0020\u0054\u0064");_aegaa :="\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";
_aefgg =append (_aefgg ,_e .Sprintf ("\u0028%\u0073\u0029\u0020\u0054\u006a",_aegaa ));_aefgg =append (_aefgg ,"\u0045\u0054");_aefgg =append (_aefgg ,"\u0051");_cebgc :=_g .Join (_aefgg ,"\u000a");_ecfcg .AddContentStreamByString (_cebgc );_ecfcg .ToPdfObject ();
};
// WriteToFile writes the Appender output to file specified by path.
func (_dfc *PdfAppender )WriteToFile (outputPath string )error {_faeb ,_ceae :=_dd .Create (outputPath );if _ceae !=nil {return _ceae ;};defer _faeb .Close ();return _dfc .Write (_faeb );};
// 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 ;};
// GetNumComponents returns the number of color components of the colorspace device.
// Returns 1 for a CalGray device.
func (_ggfb *PdfColorspaceCalGray )GetNumComponents ()int {return 1};func _acdb (_gbbcc *_ce .PdfObjectDictionary )(*PdfShadingType5 ,error ){_aeadc :=PdfShadingType5 {};_aaefed :=_gbbcc .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065");
if _aaefed ==nil {_ff .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 ;};_cedag ,_egdbg :=_aaefed .(*_ce .PdfObjectInteger );if !_egdbg {_ff .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",_aaefed );
return nil ,_ce .ErrTypeError ;};_aeadc .BitsPerCoordinate =_cedag ;_aaefed =_gbbcc .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074");if _aaefed ==nil {_ff .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 ;};_cedag ,_egdbg =_aaefed .(*_ce .PdfObjectInteger );if !_egdbg {_ff .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",_aaefed );
return nil ,_ce .ErrTypeError ;};_aeadc .BitsPerComponent =_cedag ;_aaefed =_gbbcc .Get ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073\u0050e\u0072\u0052\u006f\u0077");if _aaefed ==nil {_ff .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 ;};_cedag ,_egdbg =_aaefed .(*_ce .PdfObjectInteger );if !_egdbg {_ff .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",_aaefed );
return nil ,_ce .ErrTypeError ;};_aeadc .VerticesPerRow =_cedag ;_aaefed =_gbbcc .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");if _aaefed ==nil {_ff .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 ;};_gcgae ,_egdbg :=_aaefed .(*_ce .PdfObjectArray );if !_egdbg {_ff .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",_aaefed );
return nil ,_ce .ErrTypeError ;};_aeadc .Decode =_gcgae ;if _cdcgd :=_gbbcc .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");_cdcgd !=nil {_aeadc .Function =[]PdfFunction {};if _acfgf ,_ggccf :=_cdcgd .(*_ce .PdfObjectArray );_ggccf {for _ ,_cgagd :=range _acfgf .Elements (){_gefca ,_gbdd :=_cegfd (_cgagd );
if _gbdd !=nil {_ff .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",_gbdd );return nil ,_gbdd ;};_aeadc .Function =append (_aeadc .Function ,_gefca );
};}else {_adggb ,_ecffe :=_cegfd (_cdcgd );if _ecffe !=nil {_ff .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",_ecffe );return nil ,_ecffe ;
};_aeadc .Function =append (_aeadc .Function ,_adggb );};};return &_aeadc ,nil ;};type pdfFontType3 struct{fontCommon ;_degaa *_ce .PdfIndirectObject ;
// These fields are specific to Type 3 fonts.
CharProcs _ce .PdfObject ;Encoding _ce .PdfObject ;FontBBox _ce .PdfObject ;FontMatrix _ce .PdfObject ;FirstChar _ce .PdfObject ;LastChar _ce .PdfObject ;Widths _ce .PdfObject ;Resources _ce .PdfObject ;_afbb map[_dc .CharCode ]float64 ;_aacfd _dc .TextEncoder ;
};func (_adce *pdfFontType0 )subsetRegistered ()error {_gddcb ,_bfgd :=_adce .DescendantFont ._dace .(*pdfCIDFontType2 );if !_bfgd {_ff .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",_adce .DescendantFont );
return nil ;};if _gddcb ==nil {return nil ;};if _gddcb ._daebd ==nil {_ff .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 _adce ._fbfa ==nil {_ff .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 ;};_cdeba ,_bfgd :=_ce .GetStream (_gddcb ._daebd .FontFile2 );if !_bfgd {_ff .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 _ge .New ("\u0066\u006f\u006e\u0074fi\u006c\u0065\u0032\u0020\u006e\u006f\u0074\u0020\u0066\u006f\u0075\u006e\u0064");};_fcfa ,_dffg :=_ce .DecodeStream (_cdeba );if _dffg !=nil {_ff .Log .Debug ("\u0044\u0065c\u006f\u0064\u0065 \u0065\u0072\u0072\u006f\u0072\u003a\u0020\u0025\u0076",_dffg );
return _dffg ;};_dggb ,_dffg :=_eb .Parse (_ag .NewReader (_fcfa ));if _dffg !=nil {_ff .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 (_cdeba .Stream ));
return _dffg ;};var _gaaee []rune ;var _dcdab *_eb .Font ;switch _fedg :=_adce ._fbfa .(type ){case *_dc .TrueTypeFontEncoder :_gaaee =_fedg .RegisteredRunes ();_dcdab ,_dffg =_dggb .SubsetKeepRunes (_gaaee );if _dffg !=nil {_ff .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_dffg );
return _dffg ;};_fedg .SubsetRegistered ();case *_dc .IdentityEncoder :_gaaee =_fedg .RegisteredRunes ();_abgae :=make ([]_eb .GlyphIndex ,len (_gaaee ));for _fbfb ,_bcgg :=range _gaaee {_abgae [_fbfb ]=_eb .GlyphIndex (_bcgg );};_dcdab ,_dffg =_dggb .SubsetKeepIndices (_abgae );
if _dffg !=nil {_ff .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_dffg );return _dffg ;};case _dc .SimpleEncoder :_afgb :=_fedg .Charcodes ();for _ ,_dgddf :=range _afgb {_becb ,_dbaea :=_fedg .CharcodeToRune (_dgddf );if !_dbaea {_ff .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",_dgddf );
continue ;};_gaaee =append (_gaaee ,_becb );};default:return _e .Errorf ("\u0075\u006e\u0073\u0075\u0070\u0070\u006f\u0072\u0074\u0065\u0064\u0020\u0065\u006e\u0063\u006f\u0064\u0065\u0072\u0020\u0066\u006f\u0072\u0020s\u0075\u0062\u0073\u0065\u0074t\u0069\u006eg\u003a\u0020\u0025\u0054",_adce ._fbfa );
};var _dfbd _ag .Buffer ;_dffg =_dcdab .Write (&_dfbd );if _dffg !=nil {_ff .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_dffg );return _dffg ;};if _adce ._dgfcg !=nil {_dded :=make (map[_ga .CharCode ]rune ,len (_gaaee ));for _ ,_aceb :=range _gaaee {_ggfac ,_egea :=_adce ._fbfa .RuneToCharcode (_aceb );
if !_egea {continue ;};_dded [_ga .CharCode (_ggfac )]=_aceb ;};_adce ._dgfcg =_ga .NewToUnicodeCMap (_dded );};_cdeba ,_dffg =_ce .MakeStream (_dfbd .Bytes (),_ce .NewFlateEncoder ());if _dffg !=nil {_ff .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_dffg );
return _dffg ;};_cdeba .Set ("\u004ce\u006e\u0067\u0074\u0068\u0031",_ce .MakeInteger (int64 (_dfbd .Len ())));if _ddef ,_dcbeb :=_ce .GetStream (_gddcb ._daebd .FontFile2 );_dcbeb {*_ddef =*_cdeba ;}else {_gddcb ._daebd .FontFile2 =_cdeba ;};_cddg :=_gfdb ();
if len (_adce ._egacd )> 0{_adce ._egacd =_cbac (_adce ._egacd ,_cddg );};if len (_gddcb ._egacd )> 0{_gddcb ._egacd =_cbac (_gddcb ._egacd ,_cddg );};if len (_adce ._bdae )> 0{_adce ._bdae =_cbac (_adce ._bdae ,_cddg );};if _gddcb ._daebd !=nil {_cddgb ,_beaab :=_ce .GetName (_gddcb ._daebd .FontName );
if _beaab &&len (_cddgb .String ())> 0{_dfaf :=_cbac (_cddgb .String (),_cddg );_gddcb ._daebd .FontName =_ce .MakeName (_dfaf );};};return nil ;};
// String returns the name of the colorspace (DeviceN).
func (_daed *PdfColorspaceDeviceN )String ()string {return "\u0044e\u0076\u0069\u0063\u0065\u004e"};
// NewPdfFilespec returns an initialized generic PDF filespec model.
func NewPdfFilespec ()*PdfFilespec {_dbeb :=&PdfFilespec {};_dbeb ._ddgc =_ce .MakeIndirectObject (_ce .MakeDict ());return _dbeb ;};
// 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 *_ce .PdfIndirectObject ;SV *_ce .PdfIndirectObject ;};
// NewPdfColorCalRGB returns a new CalRBG color.
func NewPdfColorCalRGB (a ,b ,c float64 )*PdfColorCalRGB {_gfae :=PdfColorCalRGB {a ,b ,c };return &_gfae ;};
// NewReaderForText makes a new PdfReader for an input PDF content string. For use in testing.
func NewReaderForText (txt string )*PdfReader {return &PdfReader {_efdafe :map[_ce .PdfObject ]struct{}{},_aedda :_dffgda (),_afda :_ce .NewParserFromString (txt )};};
// NewPdfPageResources returns a new PdfPageResources object.
func NewPdfPageResources ()*PdfPageResources {_dcgca :=&PdfPageResources {};_dcgca ._gceda =_ce .MakeDict ();return _dcgca ;};func _daaef ()string {_cbcgc .Lock ();defer _cbcgc .Unlock ();return _dbfgc };
// ToPdfObject returns the PDF representation of the function.
func (_befba *PdfFunctionType2 )ToPdfObject ()_ce .PdfObject {_bdfcc :=_ce .MakeDict ();_bdfcc .Set ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065",_ce .MakeInteger (2));_eeccc :=&_ce .PdfObjectArray {};for _ ,_caaab :=range _befba .Domain {_eeccc .Append (_ce .MakeFloat (_caaab ));
};_bdfcc .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_eeccc );if _befba .Range !=nil {_aaafef :=&_ce .PdfObjectArray {};for _ ,_bgedb :=range _befba .Range {_aaafef .Append (_ce .MakeFloat (_bgedb ));};_bdfcc .Set ("\u0052\u0061\u006eg\u0065",_aaafef );
};if _befba .C0 !=nil {_ebaac :=&_ce .PdfObjectArray {};for _ ,_dgaa :=range _befba .C0 {_ebaac .Append (_ce .MakeFloat (_dgaa ));};_bdfcc .Set ("\u0043\u0030",_ebaac );};if _befba .C1 !=nil {_acebe :=&_ce .PdfObjectArray {};for _ ,_bfegg :=range _befba .C1 {_acebe .Append (_ce .MakeFloat (_bfegg ));
};_bdfcc .Set ("\u0043\u0031",_acebe );};_bdfcc .Set ("\u004e",_ce .MakeFloat (_befba .N ));if _befba ._gbbb !=nil {_befba ._gbbb .PdfObject =_bdfcc ;return _befba ._gbbb ;};return _bdfcc ;};func _cfcg (_dfaea *PdfField ,_ceabb _ce .PdfObject )error {switch _dfaea .GetContext ().(type ){case *PdfFieldText :switch _gebg :=_ceabb .(type ){case *_ce .PdfObjectName :_fdfed :=_gebg ;
_ff .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",_fdfed .String ());
_dfaea .V =_ce .MakeEncodedString (_gebg .String (),true );case *_ce .PdfObjectString :_dfaea .V =_ce .MakeEncodedString (_gebg .String (),true );default:_ff .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",_gebg ,_gebg );
};case *PdfFieldButton :switch _ceabb .(type ){case *_ce .PdfObjectName :if len (_ceabb .String ())> 0{_dfaea .V =_ceabb ;_bbecd (_dfaea ,_ceabb );};case *_ce .PdfObjectString :if len (_ceabb .String ())> 0{_dfaea .V =_ce .MakeName (_ceabb .String ());
_bbecd (_dfaea ,_dfaea .V );};default:_ff .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",_dfaea .PartialName (),_ceabb );_dfaea .V =_ceabb ;
};case *PdfFieldChoice :switch _ceabb .(type ){case *_ce .PdfObjectName :if len (_ceabb .String ())> 0{_dfaea .V =_ce .MakeString (_ceabb .String ());_bbecd (_dfaea ,_ceabb );};case *_ce .PdfObjectString :if len (_ceabb .String ())> 0{_dfaea .V =_ceabb ;
_bbecd (_dfaea ,_ce .MakeName (_ceabb .String ()));};default:_ff .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",_dfaea .PartialName (),_ceabb );
_dfaea .V =_ceabb ;};case *PdfFieldSignature :_ff .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",_dfaea .PartialName (),_ceabb );
};return nil ;};
// Read reads an image and loads into a new Image object with an RGB
// colormap and 8 bits per component.
func (_dcdbd DefaultImageHandler )Read (reader _gd .Reader )(*Image ,error ){_fadf ,_ ,_gebeb :=_cb .Decode (reader );if _gebeb !=nil {_ff .Log .Debug ("\u0045\u0072\u0072or\u0020\u0064\u0065\u0063\u006f\u0064\u0069\u006e\u0067\u0020\u0066\u0069\u006c\u0065\u003a\u0020\u0025\u0073",_gebeb );
return nil ,_gebeb ;};return _dcdbd .NewImageFromGoImage (_fadf );};
// GetPageLabels returns the PageLabels entry in the PDF catalog.
// See section 12.4.2 "Page Labels" (p. 382 PDF32000_2008).
func (_cgfbc *PdfReader )GetPageLabels ()(_ce .PdfObject ,error ){_ecbf :=_ce .ResolveReference (_cgfbc ._cfcdg .Get ("\u0050\u0061\u0067\u0065\u004c\u0061\u0062\u0065\u006c\u0073"));if _ecbf ==nil {return nil ,nil ;};if !_cgfbc ._cgbdb {_deffb :=_cgfbc .traverseObjectData (_ecbf );
if _deffb !=nil {return nil ,_deffb ;};};return _ecbf ,nil ;};
// PdfFunctionType3 defines stitching of the subdomains of several 1-input functions to produce
// a single new 1-input function.
type PdfFunctionType3 struct{Domain []float64 ;Range []float64 ;Functions []PdfFunction ;Bounds []float64 ;Encode []float64 ;_badbg *_ce .PdfIndirectObject ;};
// GetStructRoot gets the StructTreeRoot object
func (_ffbdd *PdfPage )GetStructTreeRoot ()(*_ce .PdfObject ,bool ){_cfbda ,_ecbcf :=_ffbdd ._cagde .GetCatalogStructTreeRoot ();return &_cfbda ,_ecbcf ;};
// 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 (_bafe *Image )Resample (targetBitsPerComponent int64 ){if _bafe .BitsPerComponent ==targetBitsPerComponent {return ;};_ggbd :=_bafe .GetSamples ();if targetBitsPerComponent < _bafe .BitsPerComponent {_cgffb :=_bafe .BitsPerComponent -targetBitsPerComponent ;
for _gfbb :=range _ggbd {_ggbd [_gfbb ]>>=uint (_cgffb );};}else if targetBitsPerComponent > _bafe .BitsPerComponent {_aeadf :=targetBitsPerComponent -_bafe .BitsPerComponent ;for _cccb :=range _ggbd {_ggbd [_cccb ]<<=uint (_aeadf );};};_bafe .BitsPerComponent =targetBitsPerComponent ;
if _bafe .BitsPerComponent < 8{_bafe .resampleLowBits (_ggbd );return ;};_aaged :=_gf .BytesPerLine (int (_bafe .Width ),int (_bafe .BitsPerComponent ),_bafe .ColorComponents );_gacfad :=make ([]byte ,_aaged *int (_bafe .Height ));var (_ecdeg ,_caeb ,_ebbbd ,_deebg int ;
_cfac uint32 ;);for _ebbbd =0;_ebbbd < int (_bafe .Height );_ebbbd ++{_ecdeg =_ebbbd *_aaged ;_caeb =(_ebbbd +1)*_aaged -1;_cgdfa :=_gb .ResampleUint32 (_ggbd [_ecdeg :_caeb ],int (targetBitsPerComponent ),8);for _deebg ,_cfac =range _cgdfa {_gacfad [_deebg +_ecdeg ]=byte (_cfac );
};};_bafe .Data =_gacfad ;};
// 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 (_cebea *Image )SetSamples (samples []uint32 ){if _cebea .BitsPerComponent < 8{samples =_cebea .samplesAddPadding (samples );};_eaffa :=_gb .ResampleUint32 (samples ,int (_cebea .BitsPerComponent ),8);_caedc :=make ([]byte ,len (_eaffa ));for _dacf ,_bbdea :=range _eaffa {_caedc [_dacf ]=byte (_bbdea );
};_cebea .Data =_caedc ;};func (_cfbff *PdfWriter )hasObject (_cbgfd _ce .PdfObject )bool {_ ,_bddcb :=_cfbff ._gdaab [_cbgfd ];return _bddcb ;};
// 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 (_dbbef DefaultImageHandler )Compress (input *Image ,quality int64 )(*Image ,error ){return input ,nil ;};
// PdfAnnotationSound represents Sound annotations.
// (Section 12.5.6.16).
type PdfAnnotationSound struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Sound _ce .PdfObject ;Name _ce .PdfObject ;};
// 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 ,_dc .SimpleEncoder ,error ){_gbbf ,_ggfa :=_fgda (basefont );if _ggfa !=nil {return nil ,nil ,_ggfa ;};_adfg ,_bdff :=_gbbf .Encoder ().(_dc .SimpleEncoder );if !_bdff {return nil ,nil ,_e .Errorf ("\u006f\u006e\u006c\u0079\u0020s\u0069\u006d\u0070\u006c\u0065\u0020\u0065\u006e\u0063\u006f\u0064\u0069\u006eg\u0020\u0069\u0073\u0020\u0073\u0075\u0070\u0070\u006f\u0072\u0074\u0065\u0064\u002c\u0020\u0067\u006f\u0074\u0020\u0025\u0054",_gbbf .Encoder ());
};_dgge :=make (map[rune ]_dc .GlyphName );for _faed :=range alphabet {if _ ,_dbdb :=_adfg .RuneToCharcode (_faed );!_dbdb {_ ,_fccg :=_gbbf ._cabcg .Read (_faed );if !_fccg {_ff .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",_faed ,_faed );
continue ;};_fgdd ,_fccg :=_dc .RuneToGlyph (_faed );if !_fccg {_ff .Log .Debug ("\u006eo\u0020\u0067\u006c\u0079\u0070\u0068\u0020\u0066\u006f\u0072\u0020r\u0075\u006e\u0065\u0020\u0025\u0023\u0078\u003d\u0025\u0071",_faed ,_faed );continue ;};if len (_dgge )>=255{return nil ,nil ,_ge .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");
};_dgge [_faed ]=_fgdd ;};};var (_gabb []_dc .CharCode ;_fdced []_dc .CharCode ;);for _bgaa :=_dc .CharCode (1);_bgaa <=0xff;_bgaa ++{_bfdce ,_efeg :=_adfg .CharcodeToRune (_bgaa );if !_efeg {_gabb =append (_gabb ,_bgaa );continue ;};if _ ,_efeg =alphabet [_bfdce ];
!_efeg {_fdced =append (_fdced ,_bgaa );};};_afbgb :=append (_gabb ,_fdced ...);if len (_afbgb )< len (_dgge ){return nil ,nil ,_e .Errorf ("n\u0065\u0065\u0064\u0020\u0074\u006f\u0020\u0065\u006ec\u006f\u0064\u0065\u0020\u0025\u0064\u0020ru\u006e\u0065\u0073\u002c \u0062\u0075\u0074\u0020\u0068\u0061\u0076\u0065\u0020on\u006c\u0079 \u0025\u0064\u0020\u0073\u006c\u006f\u0074\u0073",len (_dgge ),len (_afbgb ));
};_deae :=make ([]rune ,0,len (_dgge ));for _ffffa :=range _dgge {_deae =append (_deae ,_ffffa );};_bf .Slice (_deae ,func (_ccba ,_aggc int )bool {return _deae [_ccba ]< _deae [_aggc ]});_cdge :=make (map[_dc .CharCode ]_dc .GlyphName ,len (_deae ));for _ ,_gefg :=range _deae {_cfgc :=_afbgb [0];
_afbgb =_afbgb [1:];_cdge [_cfgc ]=_dgge [_gefg ];};_adfg =_dc .ApplyDifferences (_adfg ,_cdge );_gbbf .SetEncoder (_adfg );return &PdfFont {_dace :&_gbbf },_adfg ,nil ;};func _fgdc (_dadgf *XObjectForm )(*PdfRectangle ,bool ,error ){if _ccec ,_cfgea :=_dadgf .BBox .(*_ce .PdfObjectArray );
_cfgea {_dbfc ,_decfd :=NewPdfRectangle (*_ccec );if _decfd !=nil {return nil ,false ,_decfd ;};if _cgddb ,_gdfa :=_dadgf .Matrix .(*_ce .PdfObjectArray );_gdfa {_bfad ,_faec :=_cgddb .ToFloat64Array ();if _faec !=nil {return nil ,false ,_faec ;};_egcag :=_efc .IdentityMatrix ();
if len (_bfad )==6{_egcag =_efc .NewMatrix (_bfad [0],_bfad [1],_bfad [2],_bfad [3],_bfad [4],_bfad [5]);};_dbfc .Transform (_egcag );return _dbfc ,true ,nil ;};return _dbfc ,false ,nil ;};return nil ,false ,_ge .New ("\u0069\u006e\u0076\u0061l\u0069\u0064\u0020\u0061\u0070\u0070\u0065\u0061\u0072\u0061n\u0063e\u0020\u0042\u0042\u006f\u0078\u0020\u0074y\u0070\u0065");
};func _ggab (_afag _ce .PdfObject ,_ffbcf *PdfReader )(*OutlineDest ,error ){_fbefe ,_bcdaf :=_ce .GetArray (_afag );if !_bcdaf {return nil ,_ge .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");
};_fbcfg :=_fbefe .Len ();if _fbcfg < 2{return nil ,_e .Errorf ("\u0069n\u0076\u0061l\u0069\u0064\u0020\u006fu\u0074\u006c\u0069n\u0065\u0020\u0064\u0065\u0073\u0074\u0069\u006e\u0061ti\u006f\u006e\u0020a\u0072\u0072a\u0079\u0020\u006c\u0065\u006e\u0067t\u0068\u003a \u0025\u0064",_fbcfg );
};_dgdga :=&OutlineDest {Mode :"\u0046\u0069\u0074"};_ecddb :=_fbefe .Get (0);if _ffde ,_ebfc :=_ce .GetIndirect (_ecddb );_ebfc {if _ ,_abaed ,_aadgd :=_ffbcf .PageFromIndirectObject (_ffde );_aadgd ==nil {_dgdga .Page =int64 (_abaed -1);}else {_ff .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",_ffde );
};_dgdga .PageObj =_ffde ;}else if _bfbeg ,_gcfcc :=_ce .GetIntVal (_ecddb );_gcfcc {if _bfbeg >=0&&_bfbeg < len (_ffbcf .PageList ){_dgdga .PageObj =_ffbcf .PageList [_bfbeg ].GetPageAsIndirectObject ();}else {_ff .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",_bfbeg );
};_dgdga .Page =int64 (_bfbeg );}else {return nil ,_e .Errorf ("\u0069\u006eva\u006c\u0069\u0064 \u006f\u0075\u0074\u006cine\u0020de\u0073\u0074\u0069\u006e\u0061\u0074\u0069on\u0020\u0070\u0061\u0067\u0065\u003a\u0020%\u0054",_ecddb );};_degag ,_bcdaf :=_ce .GetNameVal (_fbefe .Get (1));
if !_bcdaf {_ff .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",_fbefe .Get (1));
return _dgdga ,nil ;};switch _degag {case "\u0046\u0069\u0074","\u0046\u0069\u0074\u0042":case "\u0046\u0069\u0074\u0048","\u0046\u0069\u0074B\u0048":if _fbcfg > 2{_dgdga .Y ,_ =_ce .GetNumberAsFloat (_ce .TraceToDirectObject (_fbefe .Get (2)));};case "\u0046\u0069\u0074\u0056","\u0046\u0069\u0074B\u0056":if _fbcfg > 2{_dgdga .X ,_ =_ce .GetNumberAsFloat (_ce .TraceToDirectObject (_fbefe .Get (2)));
};case "\u0058\u0059\u005a":if _fbcfg > 4{_dgdga .X ,_ =_ce .GetNumberAsFloat (_ce .TraceToDirectObject (_fbefe .Get (2)));_dgdga .Y ,_ =_ce .GetNumberAsFloat (_ce .TraceToDirectObject (_fbefe .Get (3)));_dgdga .Zoom ,_ =_ce .GetNumberAsFloat (_ce .TraceToDirectObject (_fbefe .Get (4)));
};default:_degag ="\u0046\u0069\u0074";};_dgdga .Mode =_degag ;return _dgdga ,nil ;};
// ToPdfObject implements interface PdfModel.
func (_abc *PdfActionGoTo3DView )ToPdfObject ()_ce .PdfObject {_abc .PdfAction .ToPdfObject ();_efg :=_abc ._bcc ;_ccg :=_efg .PdfObject .(*_ce .PdfObjectDictionary );_ccg .SetIfNotNil ("\u0053",_ce .MakeName (string (ActionTypeGoTo3DView )));_ccg .SetIfNotNil ("\u0054\u0041",_abc .TA );
_ccg .SetIfNotNil ("\u0056",_abc .V );return _efg ;};func (_bff *PdfReader )newPdfActionGotoRFromDict (_defd *_ce .PdfObjectDictionary )(*PdfActionGoToR ,error ){_acb ,_bad :=_ecbge (_defd .Get ("\u0046"));if _bad !=nil {return nil ,_bad ;};return &PdfActionGoToR {D :_defd .Get ("\u0044"),NewWindow :_defd .Get ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw"),F :_acb },nil ;
};func (_aagg *PdfWriter )setCatalogVersion (){_aagg ._bbef .Set ("\u0056e\u0072\u0073\u0069\u006f\u006e",_ce .MakeName (_e .Sprintf ("\u0025\u0064\u002e%\u0064",_aagg ._facee .Major ,_aagg ._facee .Minor )));};
// 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 (_ddaa *PdfFont )CharcodeBytesToUnicode (data []byte )(string ,int ,int ){_dffce ,_ ,_aagbg :=_ddaa .CharcodesToUnicodeWithStats (_ddaa .BytesToCharcodes (data ));_acedf :=_dc .ExpandLigatures (_dffce );return _acedf ,_ca .RuneCountInString (_acedf ),_aagbg ;
};
// 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 (_cebcgd *CompliancePdfReader )error ;};
// NewPdfColorDeviceGray returns a new grayscale color based on an input grayscale float value in range [0-1].
func NewPdfColorDeviceGray (grayVal float64 )*PdfColorDeviceGray {_cagd :=PdfColorDeviceGray (grayVal );return &_cagd ;};func _faadb (_aefg *fontCommon )*pdfFontSimple {return &pdfFontSimple {fontCommon :*_aefg }};
// GetNumComponents returns the number of color components of the colorspace device.
// Returns 3 for a CalRGB device.
func (_fagea *PdfColorspaceCalRGB )GetNumComponents ()int {return 3};
// ToPdfObject implements interface PdfModel.
func (_eebf *PdfAnnotationCaret )ToPdfObject ()_ce .PdfObject {_eebf .PdfAnnotation .ToPdfObject ();_bae :=_eebf ._dec ;_fage :=_bae .PdfObject .(*_ce .PdfObjectDictionary );_eebf .PdfAnnotationMarkup .appendToPdfDictionary (_fage );_fage .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ce .MakeName ("\u0043\u0061\u0072e\u0074"));
_fage .SetIfNotNil ("\u0052\u0044",_eebf .RD );_fage .SetIfNotNil ("\u0053\u0079",_eebf .Sy );return _bae ;};func (_cbbc *PdfWriter )writeXRefStreams (_efbcb int ,_cdbcf int64 )error {_gaced :=_efbcb +1;_cbbc ._abff [_gaced ]=crossReference {Type :1,ObjectNumber :_gaced ,Offset :_cdbcf };
_cbaca :=_ag .NewBuffer (nil );_dcdcd :=_ce .MakeArray ();for _debgg :=0;_debgg <=_efbcb ;{for ;_debgg <=_efbcb ;_debgg ++{_gged ,_gfeed :=_cbbc ._abff [_debgg ];if _gfeed &&(!_cbbc ._ddfff ||_cbbc ._ddfff &&(_gged .Type ==1&&_gged .Offset >=_cbbc ._bcefd ||_gged .Type ==0)){break ;
};};var _bbceeg int ;for _bbceeg =_debgg +1;_bbceeg <=_efbcb ;_bbceeg ++{_cceegg ,_geedf :=_cbbc ._abff [_bbceeg ];if _geedf &&(!_cbbc ._ddfff ||_cbbc ._ddfff &&(_cceegg .Type ==1&&_cceegg .Offset > _cbbc ._bcefd )){continue ;};break ;};_dcdcd .Append (_ce .MakeInteger (int64 (_debgg )),_ce .MakeInteger (int64 (_bbceeg -_debgg )));
for _cacbb :=_debgg ;_cacbb < _bbceeg ;_cacbb ++{_acbfc :=_cbbc ._abff [_cacbb ];switch _acbfc .Type {case 0:_be .Write (_cbaca ,_be .BigEndian ,byte (0));_be .Write (_cbaca ,_be .BigEndian ,uint32 (0));_be .Write (_cbaca ,_be .BigEndian ,uint16 (0xFFFF));
case 1:_be .Write (_cbaca ,_be .BigEndian ,byte (1));_be .Write (_cbaca ,_be .BigEndian ,uint32 (_acbfc .Offset ));_be .Write (_cbaca ,_be .BigEndian ,uint16 (_acbfc .Generation ));case 2:_be .Write (_cbaca ,_be .BigEndian ,byte (2));_be .Write (_cbaca ,_be .BigEndian ,uint32 (_acbfc .ObjectNumber ));
_be .Write (_cbaca ,_be .BigEndian ,uint16 (_acbfc .Index ));};};_debgg =_bbceeg +1;};_cegfe ,_deebb :=_ce .MakeStream (_cbaca .Bytes (),_ce .NewFlateEncoder ());if _deebb !=nil {return _deebb ;};_cegfe .ObjectNumber =int64 (_gaced );_cegfe .PdfObjectDictionary .Set ("\u0054\u0079\u0070\u0065",_ce .MakeName ("\u0058\u0052\u0065\u0066"));
_cegfe .PdfObjectDictionary .Set ("\u0057",_ce .MakeArray (_ce .MakeInteger (1),_ce .MakeInteger (4),_ce .MakeInteger (2)));_cegfe .PdfObjectDictionary .Set ("\u0049\u006e\u0064e\u0078",_dcdcd );_cegfe .PdfObjectDictionary .Set ("\u0053\u0069\u007a\u0065",_ce .MakeInteger (int64 (_gaced )));
_cegfe .PdfObjectDictionary .Set ("\u0049\u006e\u0066\u006f",_cbbc ._dcecd );_cegfe .PdfObjectDictionary .Set ("\u0052\u006f\u006f\u0074",_cbbc ._bedff );if _cbbc ._ddfff &&_cbbc ._efbcg > 0{_cegfe .PdfObjectDictionary .Set ("\u0050\u0072\u0065\u0076",_ce .MakeInteger (_cbbc ._efbcg ));
};if _cbbc ._cgebe !=nil {_cegfe .Set ("\u0045n\u0063\u0072\u0079\u0070\u0074",_cbbc ._ggbef );};if _cbbc ._cbegb ==nil &&_cbbc ._aecc !=""&&_cbbc ._efbed !=""{_cbbc ._cbegb =_ce .MakeArray (_ce .MakeHexString (_cbbc ._aecc ),_ce .MakeHexString (_cbbc ._efbed ));
};if _cbbc ._cbegb !=nil {_ff .Log .Trace ("\u0049d\u0073\u003a\u0020\u0025\u0073",_cbbc ._cbegb );_cegfe .Set ("\u0049\u0044",_cbbc ._cbegb );};_cbbc .writeObject (int (_cegfe .ObjectNumber ),_cegfe );return nil ;};
// GetVersion gets the document version.
func (_ebeg *PdfWriter )GetVersion ()_ce .Version {return _ebeg ._facee };
// IsRadio returns true if the button field represents a radio button, false otherwise.
func (_bgef *PdfFieldButton )IsRadio ()bool {return _bgef .GetType ()==ButtonTypeRadio };
// 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 *_ce .PdfObjectInteger ;TilingType *_ce .PdfObjectInteger ;BBox *PdfRectangle ;XStep *_ce .PdfObjectFloat ;YStep *_ce .PdfObjectFloat ;Resources *PdfPageResources ;Matrix *_ce .PdfObjectArray ;};
// ToPdfObject converts rectangle to a PDF object.
func (_daegg *PdfRectangle )ToPdfObject ()_ce .PdfObject {return _ce .MakeArray (_ce .MakeFloat (_daegg .Llx ),_ce .MakeFloat (_daegg .Lly ),_ce .MakeFloat (_daegg .Urx ),_ce .MakeFloat (_daegg .Ury ));};func (_ebdd fontCommon )fontFlags ()int {if _ebdd ._daebd ==nil {return 0;
};return _ebdd ._daebd ._cgfb ;};func (_fbegg *PdfWriter )adjustXRefAffectedVersion (_adcgb bool ){if _adcgb &&_fbegg ._facee .Major ==1&&_fbegg ._facee .Minor < 5{_fbegg ._facee .Minor =5;};};
// NewPdfActionThread returns a new "thread" action.
func NewPdfActionThread ()*PdfActionThread {_gg :=NewPdfAction ();_df :=&PdfActionThread {};_df .PdfAction =_gg ;_gg .SetContext (_df );return _df ;};
// String returns a string that describes `font`.
func (_aceg *PdfFont )String ()string {_fedc :="";if _aceg ._dace .Encoder ()!=nil {_fedc =_aceg ._dace .Encoder ().String ();};return _e .Sprintf ("\u0046\u004f\u004e\u0054\u007b\u0025\u0054\u0020\u0025s\u0020\u0025\u0073\u007d",_aceg ._dace ,_aceg .baseFields ().coreString (),_fedc );
};
// NewPdfAnnotationText returns a new text annotation.
func NewPdfAnnotationText ()*PdfAnnotationText {_debb :=NewPdfAnnotation ();_ebd :=&PdfAnnotationText {};_ebd .PdfAnnotation =_debb ;_ebd .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_debb .SetContext (_ebd );return _ebd ;};
// HasFontByName checks whether a font is defined by the specified keyName.
func (_ededg *PdfPageResources )HasFontByName (keyName _ce .PdfObjectName )bool {_ ,_dacff :=_ededg .GetFontByName (keyName );return _dacff ;};
// GetIndirectObjectByNumber retrieves and returns a specific PdfObject by object number.
func (_cdfdd *PdfReader )GetIndirectObjectByNumber (number int )(_ce .PdfObject ,error ){_ggegd ,_efdee :=_cdfdd ._afda .LookupByNumber (number );return _ggegd ,_efdee ;};
// 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 ,_gfdaf :_ce .MakeDict (),ColorComponents :colorComponents };
};
// 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 _ce .StreamEncoder )(*XObjectImage ,error ){if encoder ==nil {var _caafg error ;encoder ,_caafg =img .getSuitableEncoder ();if _caafg !=nil {_ff .Log .Debug ("F\u0061\u0069l\u0075\u0072\u0065\u0020\u006f\u006e\u0020\u0066\u0069\u006e\u0064\u0069\u006e\u0067\u0020\u0073\u0075\u0069\u0074\u0061b\u006c\u0065\u0020\u0069\u006d\u0061\u0067\u0065\u0020\u0065\u006e\u0063\u006f\u0064\u0065\u0072,\u0020\u0066\u0061\u006c\u006c\u0062\u0061\u0063\u006b\u0020\u0074\u006f\u0020R\u0061\u0077\u0045\u006e\u0063\u006f\u0064\u0065\u0072\u003a\u0020%\u0076",_caafg );
encoder =_ce .NewRawEncoder ();};};encoder .UpdateParams (img .GetParamsDict ());_efcge ,_ggbeg :=encoder .EncodeBytes (img .Data );if _ggbeg !=nil {_ff .Log .Debug ("\u0045\u0072\u0072or\u0020\u0077\u0069\u0074\u0068\u0020\u0065\u006e\u0063\u006f\u0064\u0069\u006e\u0067\u003a\u0020\u0025\u0076",_ggbeg );
return nil ,_ggbeg ;};_ddadac :=NewXObjectImage ();_ggfbf :=img .Width ;_acafb :=img .Height ;_ddadac .Width =&_ggfbf ;_ddadac .Height =&_acafb ;_cdded :=img .BitsPerComponent ;_ddadac .BitsPerComponent =&_cdded ;_ddadac .Filter =encoder ;_ddadac .Stream =_efcge ;
if cs ==nil {if img .ColorComponents ==1{_ddadac .ColorSpace =NewPdfColorspaceDeviceGray ();if img .BitsPerComponent ==16{switch encoder .(type ){case *_ce .DCTEncoder :_ddadac .ColorSpace =NewPdfColorspaceDeviceRGB ();_cdded =8;_ddadac .BitsPerComponent =&_cdded ;
};};}else if img .ColorComponents ==3{_ddadac .ColorSpace =NewPdfColorspaceDeviceRGB ();}else if img .ColorComponents ==4{switch encoder .(type ){case *_ce .DCTEncoder :_ddadac .ColorSpace =NewPdfColorspaceDeviceRGB ();default:_ddadac .ColorSpace =NewPdfColorspaceDeviceCMYK ();
};}else {return nil ,_ge .New ("c\u006fl\u006f\u0072\u0073\u0070\u0061\u0063\u0065\u0020u\u006e\u0064\u0065\u0066in\u0065\u0064");};}else {_ddadac .ColorSpace =cs ;};if len (img ._cdecc )!=0{_ddca :=NewXObjectImage ();_ddca .Filter =encoder ;_fcdbe ,_dffdae :=encoder .EncodeBytes (img ._cdecc );
if _dffdae !=nil {_ff .Log .Debug ("\u0045\u0072\u0072or\u0020\u0077\u0069\u0074\u0068\u0020\u0065\u006e\u0063\u006f\u0064\u0069\u006e\u0067\u003a\u0020\u0025\u0076",_dffdae );return nil ,_dffdae ;};_ddca .Stream =_fcdbe ;_ddca .BitsPerComponent =_ddadac .BitsPerComponent ;
_ddca .Width =&img .Width ;_ddca .Height =&img .Height ;_ddca .ColorSpace =NewPdfColorspaceDeviceGray ();_ddadac .SMask =_ddca .ToPdfObject ();}else {_ddadac .SMask =xobjIn .SMask ;_ddadac .ImageMask =xobjIn .ImageMask ;if _ddadac .ColorSpace .GetNumComponents ()==1{_acab (_ddadac );
};};return _ddadac ,nil ;};
// ToPdfObject returns an indirect object containing the signature field dictionary.
func (_decd *PdfFieldSignature )ToPdfObject ()_ce .PdfObject {if _decd .PdfAnnotationWidget !=nil {_decd .PdfAnnotationWidget .ToPdfObject ();};_decd .PdfField .ToPdfObject ();_eeafa :=_decd ._aadeb ;_bcbb :=_eeafa .PdfObject .(*_ce .PdfObjectDictionary );
_bcbb .SetIfNotNil ("\u0046\u0054",_ce .MakeName ("\u0053\u0069\u0067"));_bcbb .SetIfNotNil ("\u004c\u006f\u0063\u006b",_decd .Lock );_bcbb .SetIfNotNil ("\u0053\u0056",_decd .SV );if _decd .V !=nil {_bcbb .SetIfNotNil ("\u0056",_decd .V .ToPdfObject ());
};return _eeafa ;};
// ToPdfObject implements interface PdfModel.
func (_daa *PdfAnnotationPolyLine )ToPdfObject ()_ce .PdfObject {_daa .PdfAnnotation .ToPdfObject ();_bcce :=_daa ._dec ;_eeda :=_bcce .PdfObject .(*_ce .PdfObjectDictionary );_daa .PdfAnnotationMarkup .appendToPdfDictionary (_eeda );_eeda .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ce .MakeName ("\u0050\u006f\u006c\u0079\u004c\u0069\u006e\u0065"));
_eeda .SetIfNotNil ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073",_daa .Vertices );_eeda .SetIfNotNil ("\u004c\u0045",_daa .LE );_eeda .SetIfNotNil ("\u0042\u0053",_daa .BS );_eeda .SetIfNotNil ("\u0049\u0043",_daa .IC );_eeda .SetIfNotNil ("\u0042\u0045",_daa .BE );
_eeda .SetIfNotNil ("\u0049\u0054",_daa .IT );_eeda .SetIfNotNil ("\u004de\u0061\u0073\u0075\u0072\u0065",_daa .Measure );return _bcce ;};
// PdfAnnotation represents an annotation in PDF (section 12.5 p. 389).
type PdfAnnotation struct{_edc PdfModel ;Rect _ce .PdfObject ;Contents _ce .PdfObject ;P _ce .PdfObject ;NM _ce .PdfObject ;M _ce .PdfObject ;F _ce .PdfObject ;AP _ce .PdfObject ;AS _ce .PdfObject ;Border _ce .PdfObject ;C _ce .PdfObject ;StructParent _ce .PdfObject ;
OC _ce .PdfObject ;_dec *_ce .PdfIndirectObject ;};
// 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 *_aef .DiffResults ;IsCrlFound bool ;IsOcspFound bool ;
// GeneralizedTime is the time at which the time-stamp token has been created by the TSA (RFC 3161).
GeneralizedTime _c .Time ;};func (_eccc *PdfReader )newPdfAnnotationMarkupFromDict (_gbgc *_ce .PdfObjectDictionary )(*PdfAnnotationMarkup ,error ){_fagd :=&PdfAnnotationMarkup {};if _gce :=_gbgc .Get ("\u0054");_gce !=nil {_fagd .T =_gce ;};if _dgeb :=_gbgc .Get ("\u0050\u006f\u0070u\u0070");
_dgeb !=nil {_badb ,_dcaf :=_dgeb .(*_ce .PdfIndirectObject );if !_dcaf {if _ ,_dad :=_dgeb .(*_ce .PdfObjectNull );!_dad {return nil ,_ge .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 {_gadd ,_afd :=_eccc .newPdfAnnotationFromIndirectObject (_badb );if _afd !=nil {return nil ,_afd ;};if _gadd !=nil {_adbe ,_aaae :=_gadd ._edc .(*PdfAnnotationPopup );if !_aaae {return nil ,_ge .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");
};_fagd .Popup =_adbe ;};};};if _dcbd :=_gbgc .Get ("\u0043\u0041");_dcbd !=nil {_fagd .CA =_dcbd ;};if _bgfbd :=_gbgc .Get ("\u0052\u0043");_bgfbd !=nil {_fagd .RC =_bgfbd ;};if _efea :=_gbgc .Get ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065");
_efea !=nil {_fagd .CreationDate =_efea ;};if _ddee :=_gbgc .Get ("\u0049\u0052\u0054");_ddee !=nil {_fagd .IRT =_ddee ;};if _fcc :=_gbgc .Get ("\u0053\u0075\u0062\u006a");_fcc !=nil {_fagd .Subj =_fcc ;};if _fge :=_gbgc .Get ("\u0052\u0054");_fge !=nil {_fagd .RT =_fge ;
};if _gea :=_gbgc .Get ("\u0049\u0054");_gea !=nil {_fagd .IT =_gea ;};if _cafg :=_gbgc .Get ("\u0045\u0078\u0044\u0061\u0074\u0061");_cafg !=nil {_fagd .ExData =_cafg ;};return _fagd ,nil ;};
// IsTiling specifies if the pattern is a tiling pattern.
func (_fbdcg *PdfPattern )IsTiling ()bool {return _fbdcg .PatternType ==1};
// NewPdfAnnotationPopup returns a new popup annotation.
func NewPdfAnnotationPopup ()*PdfAnnotationPopup {_gga :=NewPdfAnnotation ();_acbb :=&PdfAnnotationPopup {};_acbb .PdfAnnotation =_gga ;_gga .SetContext (_acbb );return _acbb ;};func _ccfe (_afdbb _ce .PdfObject )(*PdfFontDescriptor ,error ){_ceca :=&PdfFontDescriptor {};
_afdbb =_ce .ResolveReference (_afdbb );if _fcag ,_eeccf :=_afdbb .(*_ce .PdfIndirectObject );_eeccf {_ceca ._dbbbgg =_fcag ;_afdbb =_fcag .PdfObject ;};_aeade ,_fbccd :=_ce .GetDict (_afdbb );if !_fbccd {_ff .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",_afdbb );
return nil ,_ce .ErrTypeError ;};if _gabdb :=_aeade .Get ("\u0046\u006f\u006e\u0074\u004e\u0061\u006d\u0065");_gabdb !=nil {_ceca .FontName =_gabdb ;}else {_ff .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");
};_fgbc ,_ :=_ce .GetName (_ceca .FontName );if _bacg :=_aeade .Get ("\u0054\u0079\u0070\u0065");_bacg !=nil {_cdbg ,_cgadd :=_bacg .(*_ce .PdfObjectName );if !_cgadd ||string (*_cdbg )!="\u0046\u006f\u006e\u0074\u0044\u0065\u0073\u0063\u0072i\u0070\u0074\u006f\u0072"{_ff .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",_bacg ,_fgbc ,_ceca .FontName );
};}else {_ff .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",_fgbc ,_ceca .FontName );
};_ceca .FontFamily =_aeade .Get ("\u0046\u006f\u006e\u0074\u0046\u0061\u006d\u0069\u006c\u0079");_ceca .FontStretch =_aeade .Get ("F\u006f\u006e\u0074\u0053\u0074\u0072\u0065\u0074\u0063\u0068");_ceca .FontWeight =_aeade .Get ("\u0046\u006f\u006e\u0074\u0057\u0065\u0069\u0067\u0068\u0074");
_ceca .Flags =_aeade .Get ("\u0046\u006c\u0061g\u0073");_ceca .FontBBox =_aeade .Get ("\u0046\u006f\u006e\u0074\u0042\u0042\u006f\u0078");_ceca .ItalicAngle =_aeade .Get ("I\u0074\u0061\u006c\u0069\u0063\u0041\u006e\u0067\u006c\u0065");_ceca .Ascent =_aeade .Get ("\u0041\u0073\u0063\u0065\u006e\u0074");
_ceca .Descent =_aeade .Get ("\u0044e\u0073\u0063\u0065\u006e\u0074");_ceca .Leading =_aeade .Get ("\u004ce\u0061\u0064\u0069\u006e\u0067");_ceca .CapHeight =_aeade .Get ("\u0043a\u0070\u0048\u0065\u0069\u0067\u0068t");_ceca .XHeight =_aeade .Get ("\u0058H\u0065\u0069\u0067\u0068\u0074");
_ceca .StemV =_aeade .Get ("\u0053\u0074\u0065m\u0056");_ceca .StemH =_aeade .Get ("\u0053\u0074\u0065m\u0048");_ceca .AvgWidth =_aeade .Get ("\u0041\u0076\u0067\u0057\u0069\u0064\u0074\u0068");_ceca .MaxWidth =_aeade .Get ("\u004d\u0061\u0078\u0057\u0069\u0064\u0074\u0068");
_ceca .MissingWidth =_aeade .Get ("\u004d\u0069\u0073s\u0069\u006e\u0067\u0057\u0069\u0064\u0074\u0068");_ceca .FontFile =_aeade .Get ("\u0046\u006f\u006e\u0074\u0046\u0069\u006c\u0065");_ceca .FontFile2 =_aeade .Get ("\u0046o\u006e\u0074\u0046\u0069\u006c\u00652");
_ceca .FontFile3 =_aeade .Get ("\u0046o\u006e\u0074\u0046\u0069\u006c\u00653");_ceca .CharSet =_aeade .Get ("\u0043h\u0061\u0072\u0053\u0065\u0074");_ceca .Style =_aeade .Get ("\u0053\u0074\u0079l\u0065");_ceca .Lang =_aeade .Get ("\u004c\u0061\u006e\u0067");
_ceca .FD =_aeade .Get ("\u0046\u0044");_ceca .CIDSet =_aeade .Get ("\u0043\u0049\u0044\u0053\u0065\u0074");if _ceca .Flags !=nil {if _baafc ,_bcbe :=_ce .GetIntVal (_ceca .Flags );_bcbe {_ceca ._cgfb =_baafc ;};};if _ceca .MissingWidth !=nil {if _eaed ,_ddfd :=_ce .GetNumberAsFloat (_ceca .MissingWidth );
_ddfd ==nil {_ceca ._abcb =_eaed ;};};if _ceca .FontFile !=nil {_gfgga ,_fcff :=_fecg (_ceca .FontFile );if _fcff !=nil {return _ceca ,_fcff ;};_ff .Log .Trace ("f\u006f\u006e\u0074\u0046\u0069\u006c\u0065\u003d\u0025\u0073",_gfgga );_ceca .fontFile =_gfgga ;
};if _ceca .FontFile2 !=nil {_caaed ,_egff :=_ee .NewFontFile2FromPdfObject (_ceca .FontFile2 );if _egff !=nil {return _ceca ,_egff ;};_ff .Log .Trace ("\u0066\u006f\u006et\u0046\u0069\u006c\u0065\u0032\u003d\u0025\u0073",_caaed .String ());_ceca ._cdfe =&_caaed ;
};return _ceca ,nil ;};func (_cbgf fontCommon )coreString ()string {_bbdb :="";if _cbgf ._daebd !=nil {_bbdb =_cbgf ._daebd .String ();};return _e .Sprintf ("\u0025#\u0071\u0020%\u0023\u0071\u0020%\u0071\u0020\u006f\u0062\u006a\u003d\u0025d\u0020\u0054\u006f\u0055\u006e\u0069c\u006f\u0064\u0065\u003d\u0025\u0074\u0020\u0066\u006c\u0061\u0067s\u003d\u0030\u0078\u0025\u0030\u0078\u0020\u0025\u0073",_cbgf ._baafb ,_cbgf ._egacd ,_cbgf ._bdae ,_cbgf ._edcbg ,_cbgf ._bcef !=nil ,_cbgf .fontFlags (),_bbdb );
};
// 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 *_ce .PdfObjectName ;Colorants _ce .PdfObject ;Process _ce .PdfObject ;MixingHints _ce .PdfObject ;_dcggf *_ce .PdfIndirectObject ;};
// ImageToRGB convert 1-component grayscale data to 3-component RGB.
func (_cddf *PdfColorspaceDeviceGray )ImageToRGB (img Image )(Image ,error ){if img .ColorComponents !=1{return img ,_ge .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");
};_faggb ,_abba :=_gf .NewImage (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),img .ColorComponents ,img .Data ,img ._cdecc ,img ._bffb );if _abba !=nil {return img ,_abba ;};_ffge ,_abba :=_gf .NRGBAConverter .Convert (_faggb );if _abba !=nil {return img ,_abba ;
};_cedcc :=_ffba (_ffge .Base ());_ff .Log .Trace ("\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079\u0020\u002d>\u0020\u0052\u0047\u0042");_ff .Log .Trace ("s\u0061\u006d\u0070\u006c\u0065\u0073\u003a\u0020\u0025\u0076",img .Data );_ff .Log .Trace ("\u0052G\u0042 \u0073\u0061\u006d\u0070\u006c\u0065\u0073\u003a\u0020\u0025\u0076",_cedcc .Data );
_ff .Log .Trace ("\u0025\u0076\u0020\u002d\u003e\u0020\u0025\u0076",img ,_cedcc );return _cedcc ,nil ;};
// PdfColor interface represents a generic color in PDF.
type PdfColor interface{};func (_bacge *PdfReader )newPdfOutlineItemFromIndirectObject (_fdab *_ce .PdfIndirectObject )(*PdfOutlineItem ,error ){_fcbd ,_aaceb :=_fdab .PdfObject .(*_ce .PdfObjectDictionary );if !_aaceb {return nil ,_e .Errorf ("\u006f\u0075\u0074l\u0069\u006e\u0065\u0020o\u0062\u006a\u0065\u0063\u0074\u0020\u006eo\u0074\u0020\u0061\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079");
};_aaead :=NewPdfOutlineItem ();_bdce :=_fcbd .Get ("\u0054\u0069\u0074l\u0065");if _bdce ==nil {return nil ,_e .Errorf ("\u006d\u0069\u0073s\u0069\u006e\u0067\u0020\u0054\u0069\u0074\u006c\u0065\u0020\u0066\u0072\u006f\u006d\u0020\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0020\u0049\u0074\u0065\u006d\u0020\u0028r\u0065\u0071\u0075\u0069\u0072\u0065\u0064\u0029");
};_efbg ,_dabcg :=_ce .GetString (_bdce );if !_dabcg {return nil ,_e .Errorf ("\u0074\u0069\u0074le\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0073\u0074\u0072\u0069\u006e\u0067\u0020\u0028\u0025\u0054\u0029",_bdce );};_aaead .Title =_efbg ;if _aebcg :=_fcbd .Get ("\u0043\u006f\u0075n\u0074");
_aebcg !=nil {_fbaef ,_ddbbg :=_aebcg .(*_ce .PdfObjectInteger );if !_ddbbg {return nil ,_e .Errorf ("\u0063o\u0075\u006e\u0074\u0020n\u006f\u0074\u0020\u0061\u006e \u0069n\u0074e\u0067\u0065\u0072\u0020\u0028\u0025\u0054)",_aebcg );};_aadbf :=int64 (*_fbaef );
_aaead .Count =&_aadbf ;};if _afec :=_fcbd .Get ("\u0044\u0065\u0073\u0074");_afec !=nil {_aaead .Dest =_ce .ResolveReference (_afec );if !_bacge ._cgbdb {_dgcg :=_bacge .traverseObjectData (_aaead .Dest );if _dgcg !=nil {return nil ,_dgcg ;};};};if _fbcdd :=_fcbd .Get ("\u0041");
_fbcdd !=nil {_aaead .A =_ce .ResolveReference (_fbcdd );if !_bacge ._cgbdb {_cdegb :=_bacge .traverseObjectData (_aaead .A );if _cdegb !=nil {return nil ,_cdegb ;};};};if _fbbad :=_fcbd .Get ("\u0053\u0045");_fbbad !=nil {_aaead .SE =nil ;};if _dgdc :=_fcbd .Get ("\u0043");
_dgdc !=nil {_aaead .C =_ce .ResolveReference (_dgdc );};if _afece :=_fcbd .Get ("\u0046");_afece !=nil {_aaead .F =_ce .ResolveReference (_afece );};return _aaead ,nil ;};
// NewPdfActionSound returns a new "sound" action.
func NewPdfActionSound ()*PdfActionSound {_dca :=NewPdfAction ();_bee :=&PdfActionSound {};_bee .PdfAction =_dca ;_dca .SetContext (_bee );return _bee ;};
// ToPdfOutlineItem returns a low level PdfOutlineItem object,
// based on the current instance.
func (_ffcff *OutlineItem )ToPdfOutlineItem ()(*PdfOutlineItem ,int64 ){_cgdcb :=NewPdfOutlineItem ();_cgdcb .Title =_ce .MakeEncodedString (_ffcff .Title ,true );_cgdcb .Dest =_ffcff .Dest .ToPdfObject ();var _agbdg []*PdfOutlineItem ;var _gdeeb int64 ;
var _ffaab *PdfOutlineItem ;for _ ,_gdacf :=range _ffcff .Entries {_fbcee ,_bdgba :=_gdacf .ToPdfOutlineItem ();_fbcee .Parent =&_cgdcb .PdfOutlineTreeNode ;if _ffaab !=nil {_ffaab .Next =&_fbcee .PdfOutlineTreeNode ;_fbcee .Prev =&_ffaab .PdfOutlineTreeNode ;
};_agbdg =append (_agbdg ,_fbcee );_gdeeb +=_bdgba ;_ffaab =_fbcee ;};_fadgb :=len (_agbdg );_gdeeb +=int64 (_fadgb );if _fadgb > 0{_cgdcb .First =&_agbdg [0].PdfOutlineTreeNode ;_cgdcb .Last =&_agbdg [_fadgb -1].PdfOutlineTreeNode ;_cgdcb .Count =&_gdeeb ;
};return _cgdcb ,_gdeeb ;};
// 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 *_ce .PdfObjectName ;P *_ce .PdfObjectInteger ;V *_ce .PdfObjectName ;};
// ToPdfObject returns the PDF representation of the outline tree node.
func (_decdc *PdfOutlineTreeNode )ToPdfObject ()_ce .PdfObject {return _decdc .GetContext ().ToPdfObject ();};func (_dbbc *LTV )generateVRIKey (_gefb *PdfSignature )(string ,error ){_gaefdc ,_daggde :=_cgcbd (_gefb .Contents .Bytes ());if _daggde !=nil {return "",_daggde ;
};return _g .ToUpper (_bd .EncodeToString (_gaefdc )),nil ;};
// NewPdfActionMovie returns a new "movie" action.
func NewPdfActionMovie ()*PdfActionMovie {_dda :=NewPdfAction ();_cge :=&PdfActionMovie {};_cge .PdfAction =_dda ;_dda .SetContext (_cge );return _cge ;};func _cbac (_bebg ,_eefb string )string {if _g .Contains (_bebg ,"\u002b"){_cbdc :=_g .Split (_bebg ,"\u002b");
if len (_cbdc )==2{_bebg =_cbdc [1];};};return _eefb +"\u002b"+_bebg ;};
// NewPdfAnnotationSound returns a new sound annotation.
func NewPdfAnnotationSound ()*PdfAnnotationSound {_eaac :=NewPdfAnnotation ();_befb :=&PdfAnnotationSound {};_befb .PdfAnnotation =_eaac ;_befb .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_eaac .SetContext (_befb );return _befb ;};
// SetImage updates XObject Image with new image data.
func (_ffdgf *XObjectImage )SetImage (img *Image ,cs PdfColorspace )error {_ffdgf .Filter .UpdateParams (img .GetParamsDict ());_cafcb ,_fgeda :=_ffdgf .Filter .EncodeBytes (img .Data );if _fgeda !=nil {return _fgeda ;};_ffdgf .Stream =_cafcb ;_gfebc :=img .Width ;
_ffdgf .Width =&_gfebc ;_febbd :=img .Height ;_ffdgf .Height =&_febbd ;_ddffb :=img .BitsPerComponent ;_ffdgf .BitsPerComponent =&_ddffb ;if cs ==nil {if img .ColorComponents ==1{_ffdgf .ColorSpace =NewPdfColorspaceDeviceGray ();}else if img .ColorComponents ==3{_ffdgf .ColorSpace =NewPdfColorspaceDeviceRGB ();
}else if img .ColorComponents ==4{_ffdgf .ColorSpace =NewPdfColorspaceDeviceCMYK ();}else {return _ge .New ("c\u006fl\u006f\u0072\u0073\u0070\u0061\u0063\u0065\u0020u\u006e\u0064\u0065\u0066in\u0065\u0064");};}else {_ffdgf .ColorSpace =cs ;};return nil ;
};
// PdfFunctionType4 is a Postscript calculator functions.
type PdfFunctionType4 struct{Domain []float64 ;Range []float64 ;Program *_caa .PSProgram ;_acedfd *_caa .PSExecutor ;_caec []byte ;_ebecf *_ce .PdfObjectStream ;};
// ColorFromPdfObjects gets the color from a series of pdf objects (4 for cmyk).
func (_cdeg *PdfColorspaceDeviceCMYK )ColorFromPdfObjects (objects []_ce .PdfObject )(PdfColor ,error ){if len (objects )!=4{return nil ,_ge .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_ffdfa ,_ccdf :=_ce .GetNumbersAsFloat (objects );
if _ccdf !=nil {return nil ,_ccdf ;};return _cdeg .ColorFromFloats (_ffdfa );};const (_afdc =0x00001;_bcffa =0x00002;_abda =0x00004;_abeg =0x00008;_ecef =0x00020;_egdef =0x00040;_fgcba =0x10000;_gfaa =0x20000;_gccfg =0x40000;);
// NewPdfActionImportData returns a new "import data" action.
func NewPdfActionImportData ()*PdfActionImportData {_gcc :=NewPdfAction ();_dgf :=&PdfActionImportData {};_dgf .PdfAction =_gcc ;_gcc .SetContext (_dgf );return _dgf ;};
// NewPdfInfoFromObject creates a new PdfInfo from the input core.PdfObject.
func NewPdfInfoFromObject (obj _ce .PdfObject )(*PdfInfo ,error ){var _afggb PdfInfo ;_cddaf ,_bfde :=obj .(*_ce .PdfObjectDictionary );if !_bfde {return nil ,_e .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 _ ,_dbab :=range _cddaf .Keys (){switch _dbab {case "\u0054\u0069\u0074l\u0065":_afggb .Title ,_ =_ce .GetString (_cddaf .Get ("\u0054\u0069\u0074l\u0065"));case "\u0041\u0075\u0074\u0068\u006f\u0072":_afggb .Author ,_ =_ce .GetString (_cddaf .Get ("\u0041\u0075\u0074\u0068\u006f\u0072"));
case "\u0053u\u0062\u006a\u0065\u0063\u0074":_afggb .Subject ,_ =_ce .GetString (_cddaf .Get ("\u0053u\u0062\u006a\u0065\u0063\u0074"));case "\u004b\u0065\u0079\u0077\u006f\u0072\u0064\u0073":_afggb .Keywords ,_ =_ce .GetString (_cddaf .Get ("\u004b\u0065\u0079\u0077\u006f\u0072\u0064\u0073"));
case "\u0043r\u0065\u0061\u0074\u006f\u0072":_afggb .Creator ,_ =_ce .GetString (_cddaf .Get ("\u0043r\u0065\u0061\u0074\u006f\u0072"));case "\u0050\u0072\u006f\u0064\u0075\u0063\u0065\u0072":_afggb .Producer ,_ =_ce .GetString (_cddaf .Get ("\u0050\u0072\u006f\u0064\u0075\u0063\u0065\u0072"));
case "\u0054r\u0061\u0070\u0070\u0065\u0064":_afggb .Trapped ,_ =_ce .GetName (_cddaf .Get ("\u0054r\u0061\u0070\u0070\u0065\u0064"));case "\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065":if _dagg ,_bedb :=_ce .GetString (_cddaf .Get ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065"));
_bedb &&_dagg .String ()!=""{_cfce ,_bgbdd :=NewPdfDate (_dagg .String ());if _bgbdd !=nil {return nil ,_e .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",_bgbdd );
};_afggb .CreationDate =&_cfce ;};case "\u004do\u0064\u0044\u0061\u0074\u0065":if _aede ,_cceab :=_ce .GetString (_cddaf .Get ("\u004do\u0064\u0044\u0061\u0074\u0065"));_cceab &&_aede .String ()!=""{_aabg ,_ebaga :=NewPdfDate (_aede .String ());if _ebaga !=nil {return nil ,_e .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u004d\u006f\u0064\u0044a\u0074e\u0020f\u0069\u0065\u006c\u0064\u003a\u0020\u0025w",_ebaga );
};_afggb .ModifiedDate =&_aabg ;};default:_fgdec ,_ :=_ce .GetString (_cddaf .Get (_dbab ));if _afggb ._ecfddd ==nil {_afggb ._ecfddd =_ce .MakeDict ();};_afggb ._ecfddd .Set (_dbab ,_fgdec );};};return &_afggb ,nil ;};
// GetEncryptionMethod returns a descriptive information string about the encryption method used.
func (_fdgac *PdfReader )GetEncryptionMethod ()string {_eefbb :=_fdgac ._afda .GetCrypter ();return _eefbb .String ();};
// NewPdfColorspaceDeviceGray returns a new grayscale colorspace.
func NewPdfColorspaceDeviceGray ()*PdfColorspaceDeviceGray {return &PdfColorspaceDeviceGray {}};func (_dfcf *PdfReader )flattenFieldsWithOpts (_ccafc bool ,_bfacb FieldAppearanceGenerator ,_cebgg *FieldFlattenOpts )error {if _cebgg ==nil {_cebgg =&FieldFlattenOpts {};
};var _afae bool ;_dedcg :=map[*PdfAnnotation ]bool {};{var _gadcg []*PdfField ;_efgf :=_dfcf .AcroForm ;if _efgf !=nil {if _cebgg .FilterFunc !=nil {_gadcg =_efgf .filteredFields (_cebgg .FilterFunc ,true );_afae =_efgf .Fields !=nil &&len (*_efgf .Fields )> 0;
}else {_gadcg =_efgf .AllFields ();};};for _ ,_cecd :=range _gadcg {if len (_cecd .Annotations )< 1{_ff .Log .Debug ("\u004e\u006f\u0020\u0061\u006e\u006e\u006f\u0074\u0061\u0074\u0069\u006f\u006e\u0020\u0066\u006f\u0075\u006ed\u0020\u0066\u006f\u0072\u003a\u0020\u0025v\u002c\u0020\u006c\u006f\u006f\u006b\u0020\u0069\u006e\u0074\u006f \u004b\u0069\u0064\u0073\u0020\u004f\u0062\u006a\u0065\u0063\u0074",_cecd .PartialName ());
for _abef ,_bcfebc :=range _cecd .Kids {for _ ,_fbec :=range _bcfebc .Annotations {_dedcg [_fbec .PdfAnnotation ]=_cecd .V !=nil ;if _bcfebc .V ==nil {_bcfebc .V =_cecd .V ;};if _bcfebc .T ==nil {_bcfebc .T =_ce .MakeString (_e .Sprintf ("\u0025\u0073\u0023%\u0064",_cecd .PartialName (),_abef ));
};if _bfacb !=nil {_gebfe ,_bcfef :=_bfacb .GenerateAppearanceDict (_efgf ,_bcfebc ,_fbec );if _bcfef !=nil {return _bcfef ;};_fbec .AP =_gebfe ;};};};};for _ ,_ddff :=range _cecd .Annotations {_dedcg [_ddff .PdfAnnotation ]=_cecd .V !=nil ;if _bfacb !=nil {_bafg ,_gbgee :=_bfacb .GenerateAppearanceDict (_efgf ,_cecd ,_ddff );
if _gbgee !=nil {return _gbgee ;};_ddff .AP =_bafg ;};};};};if _ccafc {for _ ,_dfbb :=range _dfcf .PageList {_agba ,_fbee :=_dfbb .GetAnnotations ();if _fbee !=nil {return _fbee ;};for _ ,_dcbca :=range _agba {_dedcg [_dcbca ]=true ;};};};for _ ,_ccge :=range _dfcf .PageList {_gbcab :=_ccge .flattenFieldsWithOpts (_bfacb ,_cebgg ,_dedcg );
if _gbcab !=nil {return _gbcab ;};};if !_afae {_dfcf .AcroForm =nil ;};return nil ;};
// ToPdfObject implements interface PdfModel.
func (_gcffe *PdfAnnotationCircle )ToPdfObject ()_ce .PdfObject {_gcffe .PdfAnnotation .ToPdfObject ();_cbd :=_gcffe ._dec ;_gefc :=_cbd .PdfObject .(*_ce .PdfObjectDictionary );_gcffe .PdfAnnotationMarkup .appendToPdfDictionary (_gefc );_gefc .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ce .MakeName ("\u0043\u0069\u0072\u0063\u006c\u0065"));
_gefc .SetIfNotNil ("\u0042\u0053",_gcffe .BS );_gefc .SetIfNotNil ("\u0049\u0043",_gcffe .IC );_gefc .SetIfNotNil ("\u0042\u0045",_gcffe .BE );_gefc .SetIfNotNil ("\u0052\u0044",_gcffe .RD );return _cbd ;};
// NewPdfAcroForm returns a new PdfAcroForm with an initialized container (indirect object).
func NewPdfAcroForm ()*PdfAcroForm {return &PdfAcroForm {Fields :&[]*PdfField {},_febb :_ce .MakeIndirectObject (_ce .MakeDict ())};};
// ToInteger convert to an integer format.
func (_gafb *PdfColorLab )ToInteger (bits int )[3]uint32 {_gced :=_egg .Pow (2,float64 (bits ))-1;return [3]uint32 {uint32 (_gced *_gafb .L ()),uint32 (_gced *_gafb .A ()),uint32 (_gced *_gafb .B ())};};
// GetCerts returns the signature certificate chain.
func (_dfgce *PdfSignature )GetCerts ()([]*_eg .Certificate ,error ){var _dgfb []func ()([]*_eg .Certificate ,error );switch _abad ,_ :=_ce .GetNameVal (_dfgce .SubFilter );_abad {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":_dgfb =append (_dgfb ,_dfgce .extractChainFromPKCS7 ,_dfgce .extractChainFromCert );
case "\u0061d\u0062e\u002e\u0078\u0035\u0030\u0039.\u0072\u0073a\u005f\u0073\u0068\u0061\u0031":_dgfb =append (_dgfb ,_dfgce .extractChainFromCert );case "\u0045\u0054\u0053I\u002e\u0052\u0046\u0043\u0033\u0031\u0036\u0031":_dgfb =append (_dgfb ,_dfgce .extractChainFromPKCS7 );
default:return nil ,_e .Errorf ("\u0075n\u0073\u0075\u0070\u0070o\u0072\u0074\u0065\u0064\u0020S\u0075b\u0046i\u006c\u0074\u0065\u0072\u003a\u0020\u0025s",_abad );};for _ ,_aggfb :=range _dgfb {_eeafc ,_aaebg :=_aggfb ();if _aaebg !=nil {return nil ,_aaebg ;
};if len (_eeafc )> 0{return _eeafc ,nil ;};};return nil ,ErrSignNoCertificates ;};
// IsColored specifies if the pattern is colored.
func (_cfdeb *PdfTilingPattern )IsColored ()bool {if _cfdeb .PaintType !=nil &&*_cfdeb .PaintType ==1{return true ;};return false ;};
// String returns a human readable description of `fontfile`.
func (_edcgg *fontFile )String ()string {_cedf :="\u005b\u004e\u006f\u006e\u0065\u005d";if _edcgg ._bagea !=nil {_cedf =_edcgg ._bagea .String ();};return _e .Sprintf ("\u0046O\u004e\u0054\u0046\u0049\u004c\u0045\u007b\u0025\u0023\u0071\u0020e\u006e\u0063\u006f\u0064\u0065\u0072\u003d\u0025\u0073\u007d",_edcgg ._abdd ,_cedf );
};
// 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 (_bbffe *PdfAcroForm )FillWithAppearance (provider FieldValueProvider ,appGen FieldAppearanceGenerator )error {_ccee :=_bbffe .fill (provider ,appGen );if _ccee !=nil {return _ccee ;};if _ ,_gaaae :=provider .(FieldImageProvider );_gaaae {_ccee =_bbffe .fillImageWithAppearance (provider .(FieldImageProvider ),appGen );
};return _ccee ;};
// PdfAcroForm represents the AcroForm dictionary used for representation of form data in PDF.
type PdfAcroForm struct{Fields *[]*PdfField ;NeedAppearances *_ce .PdfObjectBool ;SigFlags *_ce .PdfObjectInteger ;CO *_ce .PdfObjectArray ;DR *PdfPageResources ;DA *_ce .PdfObjectString ;Q *_ce .PdfObjectInteger ;XFA _ce .PdfObject ;
// ADBEEchoSign extra objects from Adobe Acrobat, causing signature invalid if not exists.
ADBEEchoSign _ce .PdfObject ;_febb *_ce .PdfIndirectObject ;_afab bool ;};func (_gefga *pdfFontSimple )getFontDescriptor ()*PdfFontDescriptor {if _aadb :=_gefga ._daebd ;_aadb !=nil {return _aadb ;};return _gefga ._cdcd ;};
// HasShadingByName checks whether a shading is defined by the specified keyName.
func (_aabcg *PdfPageResources )HasShadingByName (keyName _ce .PdfObjectName )bool {_ ,_aagd :=_aabcg .GetShadingByName (keyName );return _aagd ;};
// ToPdfObject implements interface PdfModel.
func (_caga *PdfSignature )ToPdfObject ()_ce .PdfObject {_dgdgf :=_caga ._ggbg ;var _fbfbd *_ce .PdfObjectDictionary ;if _gcabe ,_egec :=_dgdgf .PdfObject .(*pdfSignDictionary );_egec {_fbfbd =_gcabe .PdfObjectDictionary ;}else {_fbfbd =_dgdgf .PdfObject .(*_ce .PdfObjectDictionary );
};_fbfbd .SetIfNotNil ("\u0054\u0079\u0070\u0065",_caga .Type );_fbfbd .SetIfNotNil ("\u0046\u0069\u006c\u0074\u0065\u0072",_caga .Filter );_fbfbd .SetIfNotNil ("\u0053u\u0062\u0046\u0069\u006c\u0074\u0065r",_caga .SubFilter );_fbfbd .SetIfNotNil ("\u0042y\u0074\u0065\u0052\u0061\u006e\u0067e",_caga .ByteRange );
_fbfbd .SetIfNotNil ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073",_caga .Contents );_fbfbd .SetIfNotNil ("\u0043\u0065\u0072\u0074",_caga .Cert );_fbfbd .SetIfNotNil ("\u004e\u0061\u006d\u0065",_caga .Name );_fbfbd .SetIfNotNil ("\u0052\u0065\u0061\u0073\u006f\u006e",_caga .Reason );
_fbfbd .SetIfNotNil ("\u004d",_caga .M );_fbfbd .SetIfNotNil ("\u0052e\u0066\u0065\u0072\u0065\u006e\u0063e",_caga .Reference );_fbfbd .SetIfNotNil ("\u0043h\u0061\u006e\u0067\u0065\u0073",_caga .Changes );_fbfbd .SetIfNotNil ("C\u006f\u006e\u0074\u0061\u0063\u0074\u0049\u006e\u0066\u006f",_caga .ContactInfo );
return _dgdgf ;};
// NewDSS returns a new DSS dictionary.
func NewDSS ()*DSS {return &DSS {_ecde :_ce .MakeIndirectObject (_ce .MakeDict ()),VRI :map[string ]*VRI {}};};
// SetReason sets the `Reason` field of the signature.
func (_gbfg *PdfSignature )SetReason (reason string ){_gbfg .Reason =_ce .MakeEncodedString (reason ,true );};func _adafdf ()string {_cbcgc .Lock ();defer _cbcgc .Unlock ();_adca :=_gec .GetLicenseKey ();if len (_cdgba )> 0&&(_adca .IsLicensed ()||_dbdae ){return _cdgba ;
};return _e .Sprintf ("\u0055\u006e\u0069Do\u0063\u0020\u0076\u0025\u0073\u0020\u0028\u0025\u0073)\u0020-\u0020h\u0074t\u0070\u003a\u002f\u002f\u0075\u006e\u0069\u0064\u006f\u0063\u002e\u0069\u006f",_cfdcf (),_adca .TypeToString ());};
// SetLocation sets the `Location` field of the signature.
func (_fagbc *PdfSignature )SetLocation (location string ){_fagbc .Location =_ce .MakeString (location )};
// NewPdfPageResourcesFromDict creates and returns a new PdfPageResources object
// from the input dictionary.
func NewPdfPageResourcesFromDict (dict *_ce .PdfObjectDictionary )(*PdfPageResources ,error ){_afgcgg :=NewPdfPageResources ();if _aeed :=dict .Get ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e");_aeed !=nil {_afgcgg .ExtGState =_aeed ;};if _fged :=dict .Get ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065");
_fged !=nil &&!_ce .IsNullObject (_fged ){_afgcgg .ColorSpace =_fged ;};if _fbcfb :=dict .Get ("\u0050a\u0074\u0074\u0065\u0072\u006e");_fbcfb !=nil {_afgcgg .Pattern =_fbcfb ;};if _eaabb :=dict .Get ("\u0053h\u0061\u0064\u0069\u006e\u0067");_eaabb !=nil {_afgcgg .Shading =_eaabb ;
};if _bbeeg :=dict .Get ("\u0058O\u0062\u006a\u0065\u0063\u0074");_bbeeg !=nil {_afgcgg .XObject =_bbeeg ;};if _bfgdb :=_ce .ResolveReference (dict .Get ("\u0046\u006f\u006e\u0074"));_bfgdb !=nil {_afgcgg .Font =_bfgdb ;};if _aedg :=dict .Get ("\u0050r\u006f\u0063\u0053\u0065\u0074");
_aedg !=nil {_afgcgg .ProcSet =_aedg ;};if _bfcbg :=dict .Get ("\u0050\u0072\u006f\u0070\u0065\u0072\u0074\u0069\u0065\u0073");_bfcbg !=nil {_afgcgg .Properties =_bfcbg ;};return _afgcgg ,nil ;};
// SetDSS sets the DSS dictionary (ETSI TS 102 778-4 V1.1.1) of the current
// document revision.
func (_fagg *PdfAppender )SetDSS (dss *DSS ){if dss !=nil {_fagg .updateObjectsDeep (dss .ToPdfObject (),nil );};_fagg ._gee =dss ;};
// NewPdfOutlineTree returns an initialized PdfOutline tree.
func NewPdfOutlineTree ()*PdfOutline {_dgbff :=NewPdfOutline ();_dgbff ._edda =&_dgbff ;return _dgbff ;};func (_ebedc *Image )samplesTrimPadding (_becce []uint32 )[]uint32 {_aedd :=_ebedc .ColorComponents *int (_ebedc .Width )*int (_ebedc .Height );if len (_becce )==_aedd {return _becce ;
};_cadcb :=make ([]uint32 ,_aedd );_bdaed :=int (_ebedc .Width )*_ebedc .ColorComponents ;var _bccce ,_bbdc ,_ebcgd ,_gcbbe int ;_cbaece :=_gf .BytesPerLine (int (_ebedc .Width ),int (_ebedc .BitsPerComponent ),_ebedc .ColorComponents );for _bccce =0;_bccce < int (_ebedc .Height );
_bccce ++{_bbdc =_bccce *int (_ebedc .Width );_ebcgd =_bccce *_cbaece ;for _gcbbe =0;_gcbbe < _bdaed ;_gcbbe ++{_cadcb [_bbdc +_gcbbe ]=_becce [_ebcgd +_gcbbe ];};};return _cadcb ;};
// DecodeArray returns the range of color component values in CalGray colorspace.
func (_cgbg *PdfColorspaceCalGray )DecodeArray ()[]float64 {return []float64 {0.0,1.0}};
// ColorToRGB converts a CalRGB color to an RGB color.
func (_aggee *PdfColorspaceCalRGB )ColorToRGB (color PdfColor )(PdfColor ,error ){_gfgc ,_aaaa :=color .(*PdfColorCalRGB );if !_aaaa {_ff .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 ,_ge .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_gcgd :=_gfgc .A ();_befa :=_gfgc .B ();_ebdb :=_gfgc .C ();X :=_aggee .Matrix [0]*_egg .Pow (_gcgd ,_aggee .Gamma [0])+_aggee .Matrix [3]*_egg .Pow (_befa ,_aggee .Gamma [1])+_aggee .Matrix [6]*_egg .Pow (_ebdb ,_aggee .Gamma [2]);
Y :=_aggee .Matrix [1]*_egg .Pow (_gcgd ,_aggee .Gamma [0])+_aggee .Matrix [4]*_egg .Pow (_befa ,_aggee .Gamma [1])+_aggee .Matrix [7]*_egg .Pow (_ebdb ,_aggee .Gamma [2]);Z :=_aggee .Matrix [2]*_egg .Pow (_gcgd ,_aggee .Gamma [0])+_aggee .Matrix [5]*_egg .Pow (_befa ,_aggee .Gamma [1])+_aggee .Matrix [8]*_egg .Pow (_ebdb ,_aggee .Gamma [2]);
_fceb :=3.240479*X +-1.537150*Y +-0.498535*Z ;_faaa :=-0.969256*X +1.875992*Y +0.041556*Z ;_ddg :=0.055648*X +-0.204043*Y +1.057311*Z ;_fceb =_egg .Min (_egg .Max (_fceb ,0),1.0);_faaa =_egg .Min (_egg .Max (_faaa ,0),1.0);_ddg =_egg .Min (_egg .Max (_ddg ,0),1.0);
return NewPdfColorDeviceRGB (_fceb ,_faaa ,_ddg ),nil ;};
// ToPdfObject returns the PDF representation of the shading dictionary.
func (_gbgba *PdfShading )ToPdfObject ()_ce .PdfObject {_egba :=_gbgba ._agcdg ;_fagbd ,_cdeca :=_gbgba .getShadingDict ();if _cdeca !=nil {_ff .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 _gbgba .ShadingType !=nil {_fagbd .Set ("S\u0068\u0061\u0064\u0069\u006e\u0067\u0054\u0079\u0070\u0065",_gbgba .ShadingType );};if _gbgba .ColorSpace !=nil {_fagbd .Set ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065",_gbgba .ColorSpace .ToPdfObject ());
};if _gbgba .Background !=nil {_fagbd .Set ("\u0042\u0061\u0063\u006b\u0067\u0072\u006f\u0075\u006e\u0064",_gbgba .Background );};if _gbgba .BBox !=nil {_fagbd .Set ("\u0042\u0042\u006f\u0078",_gbgba .BBox .ToPdfObject ());};if _gbgba .AntiAlias !=nil {_fagbd .Set ("\u0041n\u0074\u0069\u0041\u006c\u0069\u0061s",_gbgba .AntiAlias );
};return _egba ;};
// PdfAnnotationCircle represents Circle annotations.
// (Section 12.5.6.8).
type PdfAnnotationCircle struct{*PdfAnnotation ;*PdfAnnotationMarkup ;BS _ce .PdfObject ;IC _ce .PdfObject ;BE _ce .PdfObject ;RD _ce .PdfObject ;};
// GenerateXObjectName generates an unused XObject name that can be used for
// adding new XObjects. Uses format XObj1, XObj2, ...
func (_aagfg *PdfPageResources )GenerateXObjectName ()_ce .PdfObjectName {_ddbd :=1;for {_caefe :=_ce .MakeName (_e .Sprintf ("\u0058\u004f\u0062\u006a\u0025\u0064",_ddbd ));if !_aagfg .HasXObjectByName (*_caefe ){return *_caefe ;};_ddbd ++;};};
// NewOutlineDest returns a new outline destination which can be used
// with outline items.
func NewOutlineDest (page int64 ,x ,y float64 )OutlineDest {return OutlineDest {Page :page ,Mode :"\u0058\u0059\u005a",X :x ,Y :y };};
// ToPdfObject implements interface PdfModel.
func (_gecb *PdfActionGoToE )ToPdfObject ()_ce .PdfObject {_gecb .PdfAction .ToPdfObject ();_gdb :=_gecb ._bcc ;_ecb :=_gdb .PdfObject .(*_ce .PdfObjectDictionary );_ecb .SetIfNotNil ("\u0053",_ce .MakeName (string (ActionTypeGoToE )));if _gecb .F !=nil {_ecb .Set ("\u0046",_gecb .F .ToPdfObject ());
};_ecb .SetIfNotNil ("\u0044",_gecb .D );_ecb .SetIfNotNil ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw",_gecb .NewWindow );_ecb .SetIfNotNil ("\u0054",_gecb .T );return _gdb ;};func (_aaefba *PdfSignature )extractChainFromCert ()([]*_eg .Certificate ,error ){var _bgffa *_ce .PdfObjectArray ;
switch _gbdcb :=_aaefba .Cert .(type ){case *_ce .PdfObjectString :_bgffa =_ce .MakeArray (_gbdcb );case *_ce .PdfObjectArray :_bgffa =_gbdcb ;default:return nil ,_e .Errorf ("\u0069n\u0076\u0061l\u0069\u0064\u0020s\u0069\u0067\u006e\u0061\u0074\u0075\u0072e\u0020\u0063\u0065\u0072\u0074\u0069f\u0069\u0063\u0061\u0074\u0065\u0020\u006f\u0062\u006a\u0065\u0063t\u0020\u0074\u0079\u0070\u0065\u003a\u0020\u0025\u0054",_gbdcb );
};var _facae _ag .Buffer ;for _ ,_fedfg :=range _bgffa .Elements (){_acgec ,_cdfaf :=_ce .GetString (_fedfg );if !_cdfaf {return nil ,_e .Errorf ("\u0069\u006ev\u0061\u006c\u0069\u0064\u0020\u0063\u0065\u0072\u0074\u0069\u0066\u0069\u0063\u0061\u0074\u0065\u0020\u006f\u0062j\u0065\u0063\u0074\u0020\u0074\u0079p\u0065\u0020\u0069\u006e\u0020\u0073\u0069\u0067\u006e\u0061\u0074\u0075\u0072\u0065 \u0063\u0065r\u0074\u0069\u0066\u0069c\u0061\u0074\u0065\u0020\u0063h\u0061\u0069\u006e\u003a\u0020\u0025\u0054",_fedfg );
};if _ ,_ebafbc :=_facae .Write (_acgec .Bytes ());_ebafbc !=nil {return nil ,_ebafbc ;};};return _eg .ParseCertificates (_facae .Bytes ());};
// 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 (_dgdb *PdfColorspaceDeviceGray )ColorFromPdfObjects (objects []_ce .PdfObject )(PdfColor ,error ){if len (objects )!=1{return nil ,_ge .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_gdab ,_bbd :=_ce .GetNumbersAsFloat (objects );
if _bbd !=nil {return nil ,_bbd ;};return _dgdb .ColorFromFloats (_gdab );};
// PdfPageResources is a Page resources model.
// Implements PdfModel.
type PdfPageResources struct{ExtGState _ce .PdfObject ;ColorSpace _ce .PdfObject ;Pattern _ce .PdfObject ;Shading _ce .PdfObject ;XObject _ce .PdfObject ;Font _ce .PdfObject ;ProcSet _ce .PdfObject ;Properties _ce .PdfObject ;_gceda *_ce .PdfObjectDictionary ;
_acffc *PdfPageResourcesColorspaces ;};func (_bgfe *PdfReader )newPdfActionResetFormFromDict (_bed *_ce .PdfObjectDictionary )(*PdfActionResetForm ,error ){return &PdfActionResetForm {Fields :_bed .Get ("\u0046\u0069\u0065\u006c\u0064\u0073"),Flags :_bed .Get ("\u0046\u006c\u0061g\u0073")},nil ;
};func (_bbbcb *PdfReader )loadStructure ()error {if _bbbcb ._afda .GetCrypter ()!=nil &&!_bbbcb ._afda .IsAuthenticated (){return _e .Errorf ("\u0066\u0069\u006ce\u0020\u006e\u0065\u0065d\u0020\u0074\u006f\u0020\u0062\u0065\u0020d\u0065\u0063\u0072\u0079\u0070\u0074\u0065\u0064\u0020\u0066\u0069\u0072\u0073\u0074");
};_ebeba :=_bbbcb ._afda .GetTrailer ();if _ebeba ==nil {return _e .Errorf ("\u006di\u0073s\u0069\u006e\u0067\u0020\u0074\u0072\u0061\u0069\u006c\u0065\u0072");};_dggc ,_gaccb :=_ebeba .Get ("\u0052\u006f\u006f\u0074").(*_ce .PdfObjectReference );if !_gaccb {return _e .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0052\u006f\u006ft\u0020\u0028\u0074\u0072\u0061\u0069\u006c\u0065\u0072\u003a \u0025\u0073\u0029",_ebeba );
};_gddgc ,_adbcb :=_bbbcb ._afda .LookupByReference (*_dggc );if _adbcb !=nil {_ff .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",_adbcb );
return _adbcb ;};_fgbdd ,_gaccb :=_gddgc .(*_ce .PdfIndirectObject );if !_gaccb {_ff .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",_gddgc ,*_ebeba );
return _ge .New ("\u006di\u0073s\u0069\u006e\u0067\u0020\u0063\u0061\u0074\u0061\u006c\u006f\u0067");};_cgea ,_gaccb :=(*_fgbdd ).PdfObject .(*_ce .PdfObjectDictionary );if !_gaccb {_ff .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",_fgbdd .PdfObject );
return _ge .New ("\u0069n\u0076a\u006c\u0069\u0064\u0020\u0063\u0061\u0074\u0061\u006c\u006f\u0067");};_ff .Log .Trace ("C\u0061\u0074\u0061\u006c\u006f\u0067\u003a\u0020\u0025\u0073",_cgea );_degca ,_gaccb :=_cgea .Get ("\u0050\u0061\u0067e\u0073").(*_ce .PdfObjectReference );
if !_gaccb {return _ge .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");};_fffdg ,_adbcb :=_bbbcb ._afda .LookupByReference (*_degca );
if _adbcb !=nil {_ff .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 _adbcb ;};_fgada ,_gaccb :=_fffdg .(*_ce .PdfIndirectObject );if !_gaccb {_ff .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");
_ff .Log .Debug ("\u006f\u0070\u003a\u0020\u0025\u0070",_fgada );return _ge .New ("p\u0061g\u0065\u0073\u0020\u006f\u0062\u006a\u0065\u0063t\u0020\u0069\u006e\u0076al\u0069\u0064");};_fdbb ,_gaccb :=_fgada .PdfObject .(*_ce .PdfObjectDictionary );if !_gaccb {_ff .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",_fgada );
return _ge .New ("p\u0061g\u0065\u0073\u0020\u006f\u0062\u006a\u0065\u0063t\u0020\u0069\u006e\u0076al\u0069\u0064");};_ecbbd ,_gaccb :=_ce .GetInt (_fdbb .Get ("\u0043\u006f\u0075n\u0074"));if !_gaccb {_ff .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 _ge .New ("\u0070\u0061\u0067\u0065s \u0063\u006f\u0075\u006e\u0074\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064");};if _ ,_gaccb =_ce .GetName (_fdbb .Get ("\u0054\u0079\u0070\u0065"));!_gaccb {_ff .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");
_fdbb .Set ("\u0054\u0079\u0070\u0065",_ce .MakeName ("\u0050\u0061\u0067e\u0073"));};if _bfcfd ,_gdbb :=_ce .GetInt (_fdbb .Get ("\u0052\u006f\u0074\u0061\u0074\u0065"));_gdbb {_dbedgg :=int64 (*_bfcfd );_bbbcb .Rotate =&_dbedgg ;};_bbbcb ._eecdg =_dggc ;
_bbbcb ._cfcdg =_cgea ;_bbbcb ._eaedf =_fdbb ;_bbbcb ._bcgea =_fgada ;_bbbcb ._ebcc =int (*_ecbbd );_bbbcb ._cbddb =[]*_ce .PdfIndirectObject {};_bfebb :=map[_ce .PdfObject ]struct{}{};_adbcb =_bbbcb .buildPageList (_fgada ,nil ,_bfebb );if _adbcb !=nil {return _adbcb ;
};_ff .Log .Trace ("\u002d\u002d\u002d");_ff .Log .Trace ("\u0054\u004f\u0043");_ff .Log .Trace ("\u0050\u0061\u0067e\u0073");_ff .Log .Trace ("\u0025\u0064\u003a\u0020\u0025\u0073",len (_bbbcb ._cbddb ),_bbbcb ._cbddb );_bbbcb ._dbbfe ,_adbcb =_bbbcb .loadOutlines ();
if _adbcb !=nil {_ff .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",_adbcb );
return _adbcb ;};_bbbcb .AcroForm ,_adbcb =_bbbcb .loadForms ();if _adbcb !=nil {return _adbcb ;};_bbbcb .DSS ,_adbcb =_bbbcb .loadDSS ();if _adbcb !=nil {return _adbcb ;};_bbbcb ._addg ,_adbcb =_bbbcb .loadPerms ();if _adbcb !=nil {return _adbcb ;};return nil ;
};
// Encoder returns the font's text encoder.
func (_fafd pdfFontType0 )Encoder ()_dc .TextEncoder {return _fafd ._fbfa };
// ColorFromPdfObjects returns a new PdfColor based on input color components. The input PdfObjects should
// be numeric.
func (_cbbga *PdfColorspaceDeviceN )ColorFromPdfObjects (objects []_ce .PdfObject )(PdfColor ,error ){if len (objects )!=_cbbga .GetNumComponents (){return nil ,_ge .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_gaddf ,_ffacc :=_ce .GetNumbersAsFloat (objects );
if _ffacc !=nil {return nil ,_ffacc ;};return _cbbga .ColorFromFloats (_gaddf );};
// ToPdfObject implements interface PdfModel.
// Note: Call the sub-annotation's ToPdfObject to set both the generic and non-generic information.
func (_eaaca *PdfAnnotation )ToPdfObject ()_ce .PdfObject {_ffe :=_eaaca ._dec ;_fce :=_ffe .PdfObject .(*_ce .PdfObjectDictionary );_fce .Clear ();_fce .Set ("\u0054\u0079\u0070\u0065",_ce .MakeName ("\u0041\u006e\u006eo\u0074"));_fce .SetIfNotNil ("\u0052\u0065\u0063\u0074",_eaaca .Rect );
_fce .SetIfNotNil ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073",_eaaca .Contents );_fce .SetIfNotNil ("\u0050",_eaaca .P );_fce .SetIfNotNil ("\u004e\u004d",_eaaca .NM );_fce .SetIfNotNil ("\u004d",_eaaca .M );_fce .SetIfNotNil ("\u0046",_eaaca .F );
_fce .SetIfNotNil ("\u0041\u0050",_eaaca .AP );_fce .SetIfNotNil ("\u0041\u0053",_eaaca .AS );_fce .SetIfNotNil ("\u0042\u006f\u0072\u0064\u0065\u0072",_eaaca .Border );_fce .SetIfNotNil ("\u0043",_eaaca .C );_fce .SetIfNotNil ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074",_eaaca .StructParent );
_fce .SetIfNotNil ("\u004f\u0043",_eaaca .OC );return _ffe ;};func (_bead *LTV )getCerts (_aabgf []*_eg .Certificate )([][]byte ,error ){_fead :=make ([][]byte ,0,len (_aabgf ));for _ ,_eefdf :=range _aabgf {_fead =append (_fead ,_eefdf .Raw );};return _fead ,nil ;
};func _dcgbb (_ebad *_ce .PdfObjectDictionary )*VRI {_bcfdf ,_ :=_ce .GetString (_ebad .Get ("\u0054\u0055"));_ggcg ,_ :=_ce .GetString (_ebad .Get ("\u0054\u0053"));return &VRI {Cert :_aaefeg (_ebad .Get ("\u0043\u0065\u0072\u0074")),OCSP :_aaefeg (_ebad .Get ("\u004f\u0043\u0053\u0050")),CRL :_aaefeg (_ebad .Get ("\u0043\u0052\u004c")),TU :_bcfdf ,TS :_ggcg };
};func (_dbebc *PdfWriter )writeOutputIntents ()error {if len (_dbebc ._dfaac )==0{return nil ;};_becfab :=make ([]_ce .PdfObject ,len (_dbebc ._dfaac ));for _fdbfb ,_dggbg :=range _dbebc ._dfaac {_dffda :=_dggbg .ToPdfObject ();_becfab [_fdbfb ]=_ce .MakeIndirectObject (_dffda );
};_cbdcg :=_ce .MakeIndirectObject (_ce .MakeArray (_becfab ...));_dbebc ._bbef .Set ("\u004f\u0075\u0074\u0070\u0075\u0074\u0049\u006e\u0074\u0065\u006e\u0074\u0073",_cbdcg );if _cfegc :=_dbebc .addObjects (_cbdcg );_cfegc !=nil {return _cfegc ;};return nil ;
};
// NewPdfColorPattern returns an empty color pattern.
func NewPdfColorPattern ()*PdfColorPattern {_beee :=&PdfColorPattern {};return _beee };
// NewPdfAnnotationStamp returns a new stamp annotation.
func NewPdfAnnotationStamp ()*PdfAnnotationStamp {_dfa :=NewPdfAnnotation ();_bfe :=&PdfAnnotationStamp {};_bfe .PdfAnnotation =_dfa ;_bfe .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_dfa .SetContext (_bfe );return _bfe ;};
// ToPdfObject returns the PDF representation of the shading dictionary.
func (_gaec *PdfShadingType5 )ToPdfObject ()_ce .PdfObject {_gaec .PdfShading .ToPdfObject ();_gfad ,_cefbg :=_gaec .getShadingDict ();if _cefbg !=nil {_ff .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 _gaec .BitsPerCoordinate !=nil {_gfad .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065",_gaec .BitsPerCoordinate );};if _gaec .BitsPerComponent !=nil {_gfad .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_gaec .BitsPerComponent );
};if _gaec .VerticesPerRow !=nil {_gfad .Set ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073\u0050e\u0072\u0052\u006f\u0077",_gaec .VerticesPerRow );};if _gaec .Decode !=nil {_gfad .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_gaec .Decode );};if _gaec .Function !=nil {if len (_gaec .Function )==1{_gfad .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_gaec .Function [0].ToPdfObject ());
}else {_egbfg :=_ce .MakeArray ();for _ ,_daefd :=range _gaec .Function {_egbfg .Append (_daefd .ToPdfObject ());};_gfad .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_egbfg );};};return _gaec ._agcdg ;};
// PdfRectangle is a definition of a rectangle.
type PdfRectangle struct{Llx float64 ;Lly float64 ;Urx float64 ;Ury float64 ;};const (BorderStyleSolid BorderStyle =iota ;BorderStyleDashed BorderStyle =iota ;BorderStyleBeveled BorderStyle =iota ;BorderStyleInset BorderStyle =iota ;BorderStyleUnderline BorderStyle =iota ;
);
// GetXObjectByName gets XObject by name.
func (_fccb *PdfPage )GetXObjectByName (name _ce .PdfObjectName )(_ce .PdfObject ,bool ){_afcb ,_agcg :=_fccb .Resources .XObject .(*_ce .PdfObjectDictionary );if !_agcg {return nil ,false ;};if _gfbe :=_afcb .Get (name );_gfbe !=nil {return _gfbe ,true ;
};return nil ,false ;};
// Height returns the height of `rect`.
func (_ccgca *PdfRectangle )Height ()float64 {return _egg .Abs (_ccgca .Ury -_ccgca .Lly )};
// PdfAnnotationLine represents Line annotations.
// (Section 12.5.6.7).
type PdfAnnotationLine struct{*PdfAnnotation ;*PdfAnnotationMarkup ;L _ce .PdfObject ;BS _ce .PdfObject ;LE _ce .PdfObject ;IC _ce .PdfObject ;LL _ce .PdfObject ;LLE _ce .PdfObject ;Cap _ce .PdfObject ;IT _ce .PdfObject ;LLO _ce .PdfObject ;CP _ce .PdfObject ;
Measure _ce .PdfObject ;CO _ce .PdfObject ;};
// ToPdfObject implements interface PdfModel.
func (_acg *PdfActionNamed )ToPdfObject ()_ce .PdfObject {_acg .PdfAction .ToPdfObject ();_aba :=_acg ._bcc ;_edb :=_aba .PdfObject .(*_ce .PdfObjectDictionary );_edb .SetIfNotNil ("\u0053",_ce .MakeName (string (ActionTypeNamed )));_edb .SetIfNotNil ("\u004e",_acg .N );
return _aba ;};func (_dgbag *pdfFontType0 )baseFields ()*fontCommon {return &_dgbag .fontCommon };
// NewPdfActionGoTo returns a new "go to" action.
func NewPdfActionGoTo ()*PdfActionGoTo {_ced :=NewPdfAction ();_bdb :=&PdfActionGoTo {};_bdb .PdfAction =_ced ;_ced .SetContext (_bdb );return _bdb ;};
// GetContentStreamObjs returns a slice of PDF objects containing the content
// streams of the page.
func (_bgdb *PdfPage )GetContentStreamObjs ()[]_ce .PdfObject {if _bgdb .Contents ==nil {return nil ;};_cbea :=_ce .TraceToDirectObject (_bgdb .Contents );if _cfcd ,_gcfae :=_cbea .(*_ce .PdfObjectArray );_gcfae {return _cfcd .Elements ();};return []_ce .PdfObject {_cbea };
};func (_ggegc *PdfWriter )optimizeDocument ()error {if _ggegc ._dgeef ==nil {return nil ;};_egefg ,_cceec :=_ce .GetDict (_ggegc ._dcecd );if !_cceec {return _ge .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");
};_cgaff :=_ffa .Document {ID :[2]string {_ggegc ._aecc ,_ggegc ._efbed },Version :_ggegc ._facee ,Objects :_ggegc ._adbee ,Info :_egefg ,Crypt :_ggegc ._cgebe ,UseHashBasedID :_ggegc ._aegf };if _aagea :=_ggegc ._dgeef .ApplyStandard (&_cgaff );_aagea !=nil {return _aagea ;
};_ggegc ._aecc ,_ggegc ._efbed =_cgaff .ID [0],_cgaff .ID [1];_ggegc ._facee =_cgaff .Version ;_ggegc ._adbee =_cgaff .Objects ;_ggegc ._dcecd .PdfObject =_cgaff .Info ;_ggegc ._aegf =_cgaff .UseHashBasedID ;_ggegc ._cgebe =_cgaff .Crypt ;_afcgc :=make (map[_ce .PdfObject ]struct{},len (_ggegc ._adbee ));
for _ ,_bbdegd :=range _ggegc ._adbee {_afcgc [_bbdegd ]=struct{}{};};_ggegc ._gdaab =_afcgc ;return nil ;};func (_cfag *PdfReader )newPdfAnnotationWidgetFromDict (_fec *_ce .PdfObjectDictionary )(*PdfAnnotationWidget ,error ){_cffd :=PdfAnnotationWidget {};
_cffd .H =_fec .Get ("\u0048");_cffd .MK =_fec .Get ("\u004d\u004b");_cffd .A =_fec .Get ("\u0041");_cffd .AA =_fec .Get ("\u0041\u0041");_cffd .BS =_fec .Get ("\u0042\u0053");_cffd .Parent =_fec .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");return &_cffd ,nil ;
};
// SetOCProperties sets the optional content properties.
func (_cbef *PdfWriter )SetOCProperties (ocProperties _ce .PdfObject )error {_dbbaa :=_cbef ._bbef ;if ocProperties !=nil {_ff .Log .Trace ("\u0053e\u0074\u0074\u0069\u006e\u0067\u0020\u004f\u0043\u0020\u0050\u0072o\u0070\u0065\u0072\u0074\u0069\u0065\u0073\u002e\u002e\u002e");
_dbbaa .Set ("\u004f\u0043\u0050r\u006f\u0070\u0065\u0072\u0074\u0069\u0065\u0073",ocProperties );return _cbef .addObjects (ocProperties );};return nil ;};func (_fba *PdfReader )newPdfActionFromIndirectObject (_db *_ce .PdfIndirectObject )(*PdfAction ,error ){_ebab ,_eff :=_db .PdfObject .(*_ce .PdfObjectDictionary );
if !_eff {return nil ,_e .Errorf ("\u0061\u0063\u0074\u0069\u006f\u006e\u0020\u0069\u006e\u0064\u0069\u0072\u0065\u0063\u0074\u0020\u006f\u0062j\u0065\u0063\u0074\u0020\u006e\u006f\u0074 \u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0069\u006e\u0067\u0020a\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079");
};if model :=_fba ._aedda .GetModelFromPrimitive (_ebab );model !=nil {_fgf ,_geb :=model .(*PdfAction );if !_geb {return nil ,_e .Errorf ("\u0063\u0061c\u0068\u0065\u0064\u0020\u006d\u006f\u0064\u0065\u006c\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0050\u0044\u0046\u0020\u0061\u0063ti\u006f\u006e");
};return _fgf ,nil ;};_cebb :=&PdfAction {};_cebb ._bcc =_db ;_fba ._aedda .Register (_ebab ,_cebb );if _ded :=_ebab .Get ("\u0054\u0079\u0070\u0065");_ded !=nil {_cac ,_fdd :=_ded .(*_ce .PdfObjectName );if !_fdd {_ff .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",_ded );
}else {if *_cac !="\u0041\u0063\u0074\u0069\u006f\u006e"{_ff .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",*_cac );
};_cebb .Type =_cac ;};};if _fbac :=_ebab .Get ("\u004e\u0065\u0078\u0074");_fbac !=nil {_cebb .Next =_fbac ;};if _aeag :=_ebab .Get ("\u0053");_aeag !=nil {_cebb .S =_aeag ;};_gag ,_bbb :=_cebb .S .(*_ce .PdfObjectName );if !_bbb {_ff .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",_cebb .S );
return nil ,_e .Errorf ("\u0069\u006e\u0076al\u0069\u0064\u0020\u0053\u0020\u006f\u0062\u006a\u0065c\u0074 \u0074y\u0070e\u0020\u0021\u003d\u0020\u006e\u0061\u006d\u0065\u0020\u0028\u0025\u0054\u0029",_cebb .S );};_gfe :=PdfActionType (_gag .String ());
switch _gfe {case ActionTypeGoTo :_ecbg ,_cdgd :=_fba .newPdfActionGotoFromDict (_ebab );if _cdgd !=nil {return nil ,_cdgd ;};_ecbg .PdfAction =_cebb ;_cebb ._gbf =_ecbg ;return _cebb ,nil ;case ActionTypeGoToR :_caad ,_efe :=_fba .newPdfActionGotoRFromDict (_ebab );
if _efe !=nil {return nil ,_efe ;};_caad .PdfAction =_cebb ;_cebb ._gbf =_caad ;return _cebb ,nil ;case ActionTypeGoToE :_aab ,_ccb :=_fba .newPdfActionGotoEFromDict (_ebab );if _ccb !=nil {return nil ,_ccb ;};_aab .PdfAction =_cebb ;_cebb ._gbf =_aab ;
return _cebb ,nil ;case ActionTypeLaunch :_cedc ,_dee :=_fba .newPdfActionLaunchFromDict (_ebab );if _dee !=nil {return nil ,_dee ;};_cedc .PdfAction =_cebb ;_cebb ._gbf =_cedc ;return _cebb ,nil ;case ActionTypeThread :_gad ,_dce :=_fba .newPdfActionThreadFromDict (_ebab );
if _dce !=nil {return nil ,_dce ;};_gad .PdfAction =_cebb ;_cebb ._gbf =_gad ;return _cebb ,nil ;case ActionTypeURI :_bcf ,_ecfe :=_fba .newPdfActionURIFromDict (_ebab );if _ecfe !=nil {return nil ,_ecfe ;};_bcf .PdfAction =_cebb ;_cebb ._gbf =_bcf ;return _cebb ,nil ;
case ActionTypeSound :_ead ,_adf :=_fba .newPdfActionSoundFromDict (_ebab );if _adf !=nil {return nil ,_adf ;};_ead .PdfAction =_cebb ;_cebb ._gbf =_ead ;return _cebb ,nil ;case ActionTypeMovie :_bdgc ,_eaf :=_fba .newPdfActionMovieFromDict (_ebab );if _eaf !=nil {return nil ,_eaf ;
};_bdgc .PdfAction =_cebb ;_cebb ._gbf =_bdgc ;return _cebb ,nil ;case ActionTypeHide :_eegc ,_gfc :=_fba .newPdfActionHideFromDict (_ebab );if _gfc !=nil {return nil ,_gfc ;};_eegc .PdfAction =_cebb ;_cebb ._gbf =_eegc ;return _cebb ,nil ;case ActionTypeNamed :_gbd ,_cgag :=_fba .newPdfActionNamedFromDict (_ebab );
if _cgag !=nil {return nil ,_cgag ;};_gbd .PdfAction =_cebb ;_cebb ._gbf =_gbd ;return _cebb ,nil ;case ActionTypeSubmitForm :_ffac ,_cae :=_fba .newPdfActionSubmitFormFromDict (_ebab );if _cae !=nil {return nil ,_cae ;};_ffac .PdfAction =_cebb ;_cebb ._gbf =_ffac ;
return _cebb ,nil ;case ActionTypeResetForm :_eeff ,_cba :=_fba .newPdfActionResetFormFromDict (_ebab );if _cba !=nil {return nil ,_cba ;};_eeff .PdfAction =_cebb ;_cebb ._gbf =_eeff ;return _cebb ,nil ;case ActionTypeImportData :_egf ,_eaa :=_fba .newPdfActionImportDataFromDict (_ebab );
if _eaa !=nil {return nil ,_eaa ;};_egf .PdfAction =_cebb ;_cebb ._gbf =_egf ;return _cebb ,nil ;case ActionTypeSetOCGState :_abe ,_dbg :=_fba .newPdfActionSetOCGStateFromDict (_ebab );if _dbg !=nil {return nil ,_dbg ;};_abe .PdfAction =_cebb ;_cebb ._gbf =_abe ;
return _cebb ,nil ;case ActionTypeRendition :_bdf ,_aad :=_fba .newPdfActionRenditionFromDict (_ebab );if _aad !=nil {return nil ,_aad ;};_bdf .PdfAction =_cebb ;_cebb ._gbf =_bdf ;return _cebb ,nil ;case ActionTypeTrans :_cgc ,_eccg :=_fba .newPdfActionTransFromDict (_ebab );
if _eccg !=nil {return nil ,_eccg ;};_cgc .PdfAction =_cebb ;_cebb ._gbf =_cgc ;return _cebb ,nil ;case ActionTypeGoTo3DView :_beb ,_bgf :=_fba .newPdfActionGoTo3DViewFromDict (_ebab );if _bgf !=nil {return nil ,_bgf ;};_beb .PdfAction =_cebb ;_cebb ._gbf =_beb ;
return _cebb ,nil ;case ActionTypeJavaScript :_cgaa ,_fgg :=_fba .newPdfActionJavaScriptFromDict (_ebab );if _fgg !=nil {return nil ,_fgg ;};_cgaa .PdfAction =_cebb ;_cebb ._gbf =_cgaa ;return _cebb ,nil ;};_ff .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",_gfe );
return nil ,nil ;};type modelManager struct{_dgefa map[PdfModel ]_ce .PdfObject ;_adbfe map[_ce .PdfObject ]PdfModel ;};
// Val returns the color value.
func (_cgfa *PdfColorDeviceGray )Val ()float64 {return float64 (*_cgfa )};
// Subtype returns the font's "Subtype" field.
func (_ggcfa *PdfFont )Subtype ()string {_bgaf :=_ggcfa .baseFields ()._baafb ;if _bbee ,_eafba :=_ggcfa ._dace .(*pdfFontType0 );_eafba {_bgaf =_bgaf +"\u003a"+_bbee .DescendantFont .Subtype ();};return _bgaf ;};func _bfddba (_dcdadc *_ce .PdfObjectDictionary )(*PdfShadingType3 ,error ){_cgfga :=PdfShadingType3 {};
_bfcbb :=_dcdadc .Get ("\u0043\u006f\u006f\u0072\u0064\u0073");if _bfcbb ==nil {_ff .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 ;};_fbga ,_gcdbg :=_bfcbb .(*_ce .PdfObjectArray );if !_gcdbg {_ff .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",_bfcbb );
return nil ,_ce .ErrTypeError ;};if _fbga .Len ()!=6{_ff .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",_fbga .Len ());return nil ,ErrInvalidAttribute ;
};_cgfga .Coords =_fbga ;if _cacfe :=_dcdadc .Get ("\u0044\u006f\u006d\u0061\u0069\u006e");_cacfe !=nil {_cacfe =_ce .TraceToDirectObject (_cacfe );_eacb ,_adbbe :=_cacfe .(*_ce .PdfObjectArray );if !_adbbe {_ff .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",_cacfe );
return nil ,_ce .ErrTypeError ;};_cgfga .Domain =_eacb ;};_bfcbb =_dcdadc .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");if _bfcbb ==nil {_ff .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 ;};_cgfga .Function =[]PdfFunction {};if _fagb ,_ceced :=_bfcbb .(*_ce .PdfObjectArray );_ceced {for _ ,_cffagb :=range _fagb .Elements (){_faag ,_gefe :=_cegfd (_cffagb );if _gefe !=nil {_ff .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",_gefe );
return nil ,_gefe ;};_cgfga .Function =append (_cgfga .Function ,_faag );};}else {_adfb ,_bdcde :=_cegfd (_bfcbb );if _bdcde !=nil {_ff .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",_bdcde );
return nil ,_bdcde ;};_cgfga .Function =append (_cgfga .Function ,_adfb );};if _aecgd :=_dcdadc .Get ("\u0045\u0078\u0074\u0065\u006e\u0064");_aecgd !=nil {_aecgd =_ce .TraceToDirectObject (_aecgd );_edec ,_bbeefe :=_aecgd .(*_ce .PdfObjectArray );if !_bbeefe {_ff .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",_aecgd );
return nil ,_ce .ErrTypeError ;};if _edec .Len ()!=2{_ff .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",_edec .Len ());return nil ,ErrInvalidAttribute ;
};_cgfga .Extend =_edec ;};return &_cgfga ,nil ;};
// FieldValueProvider provides field values from a data source such as FDF, JSON or any other.
type FieldValueProvider interface{FieldValues ()(map[string ]_ce .PdfObject ,error );};
// NewPdfAnnotationCaret returns a new caret annotation.
func NewPdfAnnotationCaret ()*PdfAnnotationCaret {_cabe :=NewPdfAnnotation ();_gcg :=&PdfAnnotationCaret {};_gcg .PdfAnnotation =_cabe ;_gcg .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_cabe .SetContext (_gcg );return _gcg ;};
// PdfAnnotationMarkup represents additional fields for mark-up annotations.
// (Section 12.5.6.2 p. 399).
type PdfAnnotationMarkup struct{T _ce .PdfObject ;Popup *PdfAnnotationPopup ;CA _ce .PdfObject ;RC _ce .PdfObject ;CreationDate _ce .PdfObject ;IRT _ce .PdfObject ;Subj _ce .PdfObject ;RT _ce .PdfObject ;IT _ce .PdfObject ;ExData _ce .PdfObject ;};
// PdfShadingType3 is a Radial shading.
type PdfShadingType3 struct{*PdfShading ;Coords *_ce .PdfObjectArray ;Domain *_ce .PdfObjectArray ;Function []PdfFunction ;Extend *_ce .PdfObjectArray ;};
// NewPdfDate returns a new PdfDate object from a PDF date string (see 7.9.4 Dates).
// format: "D: YYYYMMDDHHmmSSOHH'mm"
func NewPdfDate (dateStr string )(PdfDate ,error ){_fdgab ,_bgadc :=_gdc .ParsePdfTime (dateStr );if _bgadc !=nil {return PdfDate {},_bgadc ;};return NewPdfDateFromTime (_fdgab );};
// GetNamedDestinations returns the Dests entry in the PDF catalog.
// See section 12.3.2.3 "Named Destinations" (p. 367 PDF32000_2008).
func (_egffe *PdfReader )GetNamedDestinations ()(_ce .PdfObject ,error ){_ccefb :=_ce .ResolveReference (_egffe ._cfcdg .Get ("\u0044\u0065\u0073t\u0073"));if _ccefb ==nil {return nil ,nil ;};if !_egffe ._cgbdb {_caeae :=_egffe .traverseObjectData (_ccefb );
if _caeae !=nil {return nil ,_caeae ;};};return _ccefb ,nil ;};func (_afba *PdfColorspaceSpecialSeparation )String ()string {return "\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e";};
// 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 ;_ggbg *_ce .PdfIndirectObject ;
// Type: Sig/DocTimeStamp
Type *_ce .PdfObjectName ;Filter *_ce .PdfObjectName ;SubFilter *_ce .PdfObjectName ;Contents *_ce .PdfObjectString ;Cert _ce .PdfObject ;ByteRange *_ce .PdfObjectArray ;Reference *_ce .PdfObjectArray ;Changes *_ce .PdfObjectArray ;Name *_ce .PdfObjectString ;
M *_ce .PdfObjectString ;Location *_ce .PdfObjectString ;Reason *_ce .PdfObjectString ;ContactInfo *_ce .PdfObjectString ;R *_ce .PdfObjectInteger ;V *_ce .PdfObjectInteger ;PropBuild *_ce .PdfObjectDictionary ;PropAuthTime *_ce .PdfObjectInteger ;PropAuthType *_ce .PdfObjectName ;
};
// SetContentStream sets the pattern cell's content stream.
func (_fgbcd *PdfTilingPattern )SetContentStream (content []byte ,encoder _ce .StreamEncoder )error {_fgeaa ,_eeede :=_fgbcd ._gadcb .(*_ce .PdfObjectStream );if !_eeede {_ff .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",_fgbcd ._gadcb );
return _ce .ErrTypeError ;};if encoder ==nil {encoder =_ce .NewRawEncoder ();};_gbgec :=_fgeaa .PdfObjectDictionary ;_accf :=encoder .MakeStreamDict ();_gbgec .Merge (_accf );_afbead ,_aaaag :=encoder .EncodeBytes (content );if _aaaag !=nil {return _aaaag ;
};_gbgec .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_ce .MakeInteger (int64 (len (_afbead ))));_fgeaa .Stream =_afbead ;return nil ;};
// ToPdfObject converts PdfAcroForm to a PdfObject, i.e. an indirect object containing the
// AcroForm dictionary.
func (_beca *PdfAcroForm )ToPdfObject ()_ce .PdfObject {_cdfeg :=_beca ._febb ;_acgb :=_cdfeg .PdfObject .(*_ce .PdfObjectDictionary );if _beca .Fields !=nil {_ggaag :=_ce .PdfObjectArray {};for _ ,_aafdc :=range *_beca .Fields {_bagf :=_aafdc .GetContext ();
if _bagf !=nil {_ggaag .Append (_bagf .ToPdfObject ());}else {_ggaag .Append (_aafdc .ToPdfObject ());};};_acgb .Set ("\u0046\u0069\u0065\u006c\u0064\u0073",&_ggaag );};if _beca .NeedAppearances !=nil {_acgb .Set ("\u004ee\u0065d\u0041\u0070\u0070\u0065\u0061\u0072\u0061\u006e\u0063\u0065\u0073",_beca .NeedAppearances );
}else {if _geab :=_acgb .Get ("\u004ee\u0065d\u0041\u0070\u0070\u0065\u0061\u0072\u0061\u006e\u0063\u0065\u0073");_geab !=nil {_acgb .Remove ("\u004ee\u0065d\u0041\u0070\u0070\u0065\u0061\u0072\u0061\u006e\u0063\u0065\u0073");};};if _beca .SigFlags !=nil {_acgb .Set ("\u0053\u0069\u0067\u0046\u006c\u0061\u0067\u0073",_beca .SigFlags );
};if _beca .CO !=nil {_acgb .Set ("\u0043\u004f",_beca .CO );};if _beca .DR !=nil {_acgb .Set ("\u0044\u0052",_beca .DR .ToPdfObject ());};if _beca .DA !=nil {_acgb .Set ("\u0044\u0041",_beca .DA );};if _beca .Q !=nil {_acgb .Set ("\u0051",_beca .Q );};
if _beca .XFA !=nil {_acgb .Set ("\u0058\u0046\u0041",_beca .XFA );};if _beca .ADBEEchoSign !=nil {_acgb .Set ("\u0041\u0044\u0042\u0045\u005f\u0045\u0063\u0068\u006f\u0053\u0069\u0067\u006e",_beca .ADBEEchoSign );};return _cdfeg ;};
// PdfShadingType4 is a Free-form Gouraud-shaded triangle mesh.
type PdfShadingType4 struct{*PdfShading ;BitsPerCoordinate *_ce .PdfObjectInteger ;BitsPerComponent *_ce .PdfObjectInteger ;BitsPerFlag *_ce .PdfObjectInteger ;Decode *_ce .PdfObjectArray ;Function []PdfFunction ;};
// GetContainingPdfObject returns the container of the outline tree node (indirect object).
func (_fdabc *PdfOutlineTreeNode )GetContainingPdfObject ()_ce .PdfObject {return _fdabc .GetContext ().GetContainingPdfObject ();};
// SetShadingByName sets a shading resource specified by keyName.
func (_adeaaa *PdfPageResources )SetShadingByName (keyName _ce .PdfObjectName ,shadingObj _ce .PdfObject )error {if _adeaaa .Shading ==nil {_adeaaa .Shading =_ce .MakeDict ();};_agag ,_bedf :=_ce .GetDict (_adeaaa .Shading );if !_bedf {return _ce .ErrTypeError ;
};_agag .Set (keyName ,shadingObj );return nil ;};
// IsValid checks if the given pdf output intent type is valid.
func (_dbbfa PdfOutputIntentType )IsValid ()bool {return _dbbfa >=PdfOutputIntentTypeA1 &&_dbbfa <=PdfOutputIntentTypeX ;};func (_cad *PdfAppender )addNewObject (_fdag _ce .PdfObject ){if _ ,_bcbfb :=_cad ._acbd [_fdag ];!_bcbfb {_cad ._beff =append (_cad ._beff ,_fdag );
_cad ._acbd [_fdag ]=struct{}{};};};var (_cbcgc _b .Mutex ;_fadafb ="";_faegc _c .Time ;_daadg ="";_babb ="";_dfecd _c .Time ;_cdgba ="";_bfdac ="";_dbfgc ="";);
// 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 ;_fbea PdfModel ;_gadcb _ce .PdfObject ;};
// NewPdfColorspaceSpecialIndexed returns a new Indexed color.
func NewPdfColorspaceSpecialIndexed ()*PdfColorspaceSpecialIndexed {return &PdfColorspaceSpecialIndexed {HiVal :255};};
// ToPdfObject returns the PDF representation of the VRI dictionary.
func (_bcab *VRI )ToPdfObject ()*_ce .PdfObjectDictionary {_befe :=_ce .MakeDict ();_befe .SetIfNotNil (_ce .PdfObjectName ("\u0043\u0065\u0072\u0074"),_gegfc (_bcab .Cert ));_befe .SetIfNotNil (_ce .PdfObjectName ("\u004f\u0043\u0053\u0050"),_gegfc (_bcab .OCSP ));
_befe .SetIfNotNil (_ce .PdfObjectName ("\u0043\u0052\u004c"),_gegfc (_bcab .CRL ));_befe .SetIfNotNil ("\u0054\u0055",_bcab .TU );_befe .SetIfNotNil ("\u0054\u0053",_bcab .TS );return _befe ;};
// String returns a string representation of PdfTransformParamsDocMDP.
func (_ecad *PdfTransformParamsDocMDP )String ()string {return _e .Sprintf ("\u0025\u0073\u0020\u0050\u003a\u0020\u0025\u0073\u0020V\u003a\u0020\u0025\u0073",_ecad .Type ,_ecad .P ,_ecad .V );};func (_adfed *PdfReader )loadPerms ()(*Permissions ,error ){if _fcee :=_adfed ._cfcdg .Get ("\u0050\u0065\u0072m\u0073");
_fcee !=nil {if _dfefe ,_eface :=_ce .GetDict (_fcee );_eface {_dggf :=_dfefe .Get ("\u0044\u006f\u0063\u004d\u0044\u0050");if _dggf ==nil {return nil ,nil ;};if _ddda ,_eegbd :=_ce .GetIndirect (_dggf );_eegbd {_ggfcc ,_acdgd :=_adfed .newPdfSignatureFromIndirect (_ddda );
if _acdgd !=nil {return nil ,_acdgd ;};return NewPermissions (_ggfcc ),nil ;};return nil ,_e .Errorf ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0044\u006f\u0063M\u0044\u0050\u0020\u0065nt\u0072\u0079");};return nil ,_e .Errorf ("\u0069\u006e\u0076\u0061li\u0064\u0020\u0050\u0065\u0072\u006d\u0073\u0020\u0065\u006e\u0074\u0072\u0079");
};return nil ,nil ;};
// AddExtGState add External Graphics State (GState). The gsDict can be specified
// either directly as a dictionary or an indirect object containing a dictionary.
func (_deee *PdfPageResources )AddExtGState (gsName _ce .PdfObjectName ,gsDict _ce .PdfObject )error {if _deee .ExtGState ==nil {_deee .ExtGState =_ce .MakeDict ();};_gcgda :=_deee .ExtGState ;_ecfdb ,_gggfg :=_ce .TraceToDirectObject (_gcgda ).(*_ce .PdfObjectDictionary );
if !_gggfg {_ff .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",_gcgda ,_ce .TraceToDirectObject (_gcgda ));
return _ce .ErrTypeError ;};_ecfdb .Set (gsName ,gsDict );return nil ;};func (_fdce *PdfReader )newPdfAnnotationStrikeOut (_fgeg *_ce .PdfObjectDictionary )(*PdfAnnotationStrikeOut ,error ){_bebb :=PdfAnnotationStrikeOut {};_ccaa ,_dbbd :=_fdce .newPdfAnnotationMarkupFromDict (_fgeg );
if _dbbd !=nil {return nil ,_dbbd ;};_bebb .PdfAnnotationMarkup =_ccaa ;_bebb .QuadPoints =_fgeg .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");return &_bebb ,nil ;};type fontCommon struct{_egacd string ;_baafb string ;_bdae string ;
_bcef _ce .PdfObject ;_dgfcg *_ga .CMap ;_daebd *PdfFontDescriptor ;_edcbg int64 ;};
// ToGoTime returns the date in time.Time format.
func (_dadeg PdfDate )ToGoTime ()_c .Time {_gebaf :=int (_dadeg ._gbbfe *60*60+_dadeg ._cfcf *60);switch _dadeg ._accgd {case '-':_gebaf =-_gebaf ;case 'Z':_gebaf =0;};_bedd :=_e .Sprintf ("\u0055\u0054\u0043\u0025\u0063\u0025\u002e\u0032\u0064\u0025\u002e\u0032\u0064",_dadeg ._accgd ,_dadeg ._gbbfe ,_dadeg ._cfcf );
_dcfga :=_c .FixedZone (_bedd ,_gebaf );return _c .Date (int (_dadeg ._cbacb ),_c .Month (_dadeg ._adeec ),int (_dadeg ._eeegb ),int (_dadeg ._gbcf ),int (_dadeg ._ecebf ),int (_dadeg ._cdbfg ),0,_dcfga );};
// IsEncrypted returns true if the PDF file is encrypted.
func (_aeef *PdfReader )IsEncrypted ()(bool ,error ){return _aeef ._afda .IsEncrypted ()};func (_egcaf *PdfWriter )addObject (_cdfc _ce .PdfObject )bool {_gecfda :=_egcaf .hasObject (_cdfc );if !_gecfda {_fdeef :=_ce .ResolveReferencesDeep (_cdfc ,_egcaf ._daeac );
if _fdeef !=nil {_ff .Log .Debug ("E\u0052R\u004f\u0052\u003a\u0020\u0025\u0076\u0020\u002d \u0073\u006b\u0069\u0070pi\u006e\u0067",_fdeef );};_egcaf ._adbee =append (_egcaf ._adbee ,_cdfc );_egcaf ._gdaab [_cdfc ]=struct{}{};return true ;};return false ;
};
// 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 (_cfaa *PdfReader )ToWriter (opts *ReaderToWriterOpts )(*PdfWriter ,error ){_bgaeg :=NewPdfWriter ();if opts ==nil {opts =&ReaderToWriterOpts {};};_edgcf ,_eaefe :=_cfaa .GetNumPages ();if _eaefe !=nil {_ff .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_eaefe );
return nil ,_eaefe ;};for _cdca :=1;_cdca <=_edgcf ;_cdca ++{_dbcad ,_cfdc :=_cfaa .GetPage (_cdca );if _cfdc !=nil {_ff .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_cfdc );return nil ,_cfdc ;};if opts .PageProcessCallback !=nil {_cfdc =opts .PageProcessCallback (_cdca ,_dbcad );
if _cfdc !=nil {_ff .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_cfdc );return nil ,_cfdc ;};}else if opts .PageCallback !=nil {opts .PageCallback (_cdca ,_dbcad );};_cfdc =_bgaeg .AddPage (_dbcad );if _cfdc !=nil {_ff .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_cfdc );
return nil ,_cfdc ;};};_bgaeg ._facee =_cfaa .PdfVersion ();if !opts .SkipInfo {_abfdb ,_dgfga :=_cfaa .GetPdfInfo ();if _dgfga !=nil {_ff .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_dgfga );}else {_bgaeg ._dcecd .PdfObject =_abfdb .ToPdfObject ();
};};if !opts .SkipMetadata {if _dggebe :=_cfaa ._cfcdg .Get ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");_dggebe !=nil {if _fgdfg :=_bgaeg .SetCatalogMetadata (_dggebe );_fgdfg !=nil {return nil ,_fgdfg ;};};};if !opts .SkipAcroForm {_caaac :=_bgaeg .SetForms (_cfaa .AcroForm );
if _caaac !=nil {_ff .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_caaac );return nil ,_caaac ;};};if !opts .SkipOutlines {_bgaeg .AddOutlineTree (_cfaa .GetOutlineTree ());};if !opts .SkipOCProperties {_eaegb ,_geaedd :=_cfaa .GetOCProperties ();
if _geaedd !=nil {_ff .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_geaedd );}else {_geaedd =_bgaeg .SetOCProperties (_eaegb );if _geaedd !=nil {_ff .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_geaedd );};};};if !opts .SkipPageLabels {_babe ,_egbfc :=_cfaa .GetPageLabels ();
if _egbfc !=nil {_ff .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_egbfc );}else {_egbfc =_bgaeg .SetPageLabels (_babe );if _egbfc !=nil {_ff .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_egbfc );};};};if !opts .SkipNamedDests {_dbbgg ,_abdb :=_cfaa .GetNamedDestinations ();
if _abdb !=nil {_ff .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_abdb );}else {_abdb =_bgaeg .SetNamedDestinations (_dbbgg );if _abdb !=nil {_ff .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_abdb );};};};if !opts .SkipNameDictionary {_gacgcd ,_gddgb :=_cfaa .GetNameDictionary ();
if _gddgb !=nil {_ff .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_gddgb );}else {_gddgb =_bgaeg .SetNameDictionary (_gacgcd );if _gddgb !=nil {_ff .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_gddgb );};};};if !opts .SkipRotation &&_cfaa .Rotate !=nil {if _bfdgfb :=_bgaeg .SetRotation (*_cfaa .Rotate );
_bfdgfb !=nil {_ff .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_bfdgfb );};};return &_bgaeg ,nil ;};
// GetCharMetrics returns the char metrics for character code `code`.
func (_fefe pdfFontType0 )GetCharMetrics (code _dc .CharCode )(_ee .CharMetrics ,bool ){if _fefe .DescendantFont ==nil {_ff .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",_fefe );
return _ee .CharMetrics {},false ;};return _fefe .DescendantFont .GetCharMetrics (code );};
// ToInteger convert to an integer format.
func (_cfff *PdfColorDeviceCMYK )ToInteger (bits int )[4]uint32 {_fbdd :=_egg .Pow (2,float64 (bits ))-1;return [4]uint32 {uint32 (_fbdd *_cfff .C ()),uint32 (_fbdd *_cfff .M ()),uint32 (_fbdd *_cfff .Y ()),uint32 (_fbdd *_cfff .K ())};};
// ToPdfOutline returns a low level PdfOutline object, based on the current
// instance.
func (_gcdcg *Outline )ToPdfOutline ()*PdfOutline {_bbfgb :=NewPdfOutline ();var _fbaac []*PdfOutlineItem ;var _abbcg int64 ;var _ebda *PdfOutlineItem ;for _ ,_abcgd :=range _gcdcg .Entries {_fafed ,_bfgbd :=_abcgd .ToPdfOutlineItem ();_fafed .Parent =&_bbfgb .PdfOutlineTreeNode ;
if _ebda !=nil {_ebda .Next =&_fafed .PdfOutlineTreeNode ;_fafed .Prev =&_ebda .PdfOutlineTreeNode ;};_fbaac =append (_fbaac ,_fafed );_abbcg +=_bfgbd ;_ebda =_fafed ;};_acfec :=int64 (len (_fbaac ));_abbcg +=_acfec ;if _acfec > 0{_bbfgb .First =&_fbaac [0].PdfOutlineTreeNode ;
_bbfgb .Last =&_fbaac [_acfec -1].PdfOutlineTreeNode ;_bbfgb .Count =&_abbcg ;};return _bbfgb ;};
// HasFontByName checks if has font resource by name.
func (_ccdd *PdfPage )HasFontByName (name _ce .PdfObjectName )bool {_dcec ,_bdege :=_ccdd .Resources .Font .(*_ce .PdfObjectDictionary );if !_bdege {return false ;};if _bfdcd :=_dcec .Get (name );_bfdcd !=nil {return true ;};return false ;};
// AddCerts adds certificates to DSS.
func (_ddba *DSS )AddCerts (certs [][]byte )([]*_ce .PdfObjectStream ,error ){return _ddba .add (&_ddba .Certs ,_ddba ._daad ,certs );};
// ToPdfObject returns the PDF representation of the function.
func (_bfega *PdfFunctionType4 )ToPdfObject ()_ce .PdfObject {_dbbecb :=_bfega ._ebecf ;if _dbbecb ==nil {_bfega ._ebecf =&_ce .PdfObjectStream {};_dbbecb =_bfega ._ebecf ;};_dbeee :=_ce .MakeDict ();_dbeee .Set ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065",_ce .MakeInteger (4));
_efeae :=&_ce .PdfObjectArray {};for _ ,_fbgd :=range _bfega .Domain {_efeae .Append (_ce .MakeFloat (_fbgd ));};_dbeee .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_efeae );_aegb :=&_ce .PdfObjectArray {};for _ ,_cacef :=range _bfega .Range {_aegb .Append (_ce .MakeFloat (_cacef ));
};_dbeee .Set ("\u0052\u0061\u006eg\u0065",_aegb );if _bfega ._caec ==nil &&_bfega .Program !=nil {_bfega ._caec =[]byte (_bfega .Program .String ());};_dbeee .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_ce .MakeInteger (int64 (len (_bfega ._caec ))));
_dbbecb .Stream =_bfega ._caec ;_dbbecb .PdfObjectDictionary =_dbeee ;return _dbbecb ;};func _aggb (_beaff *PdfField )[]*PdfField {_cdaff :=[]*PdfField {_beaff };for _ ,_bfdb :=range _beaff .Kids {_cdaff =append (_cdaff ,_aggb (_bfdb )...);};return _cdaff ;
};
// Evaluate runs the function. Input is [x1 x2 x3].
func (_baegc *PdfFunctionType4 )Evaluate (xVec []float64 )([]float64 ,error ){if _baegc ._acedfd ==nil {_baegc ._acedfd =_caa .NewPSExecutor (_baegc .Program );};var _eddeg []_caa .PSObject ;for _ ,_cead :=range xVec {_eddeg =append (_eddeg ,_caa .MakeReal (_cead ));
};_cfcbd ,_deeb :=_baegc ._acedfd .Execute (_eddeg );if _deeb !=nil {return nil ,_deeb ;};_agff ,_deeb :=_caa .PSObjectArrayToFloat64Array (_cfcbd );if _deeb !=nil {return nil ,_deeb ;};return _agff ,nil ;};
// PdfAnnotationRedact represents Redact annotations.
// (Section 12.5.6.23).
type PdfAnnotationRedact struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _ce .PdfObject ;IC _ce .PdfObject ;RO _ce .PdfObject ;OverlayText _ce .PdfObject ;Repeat _ce .PdfObject ;DA _ce .PdfObject ;Q _ce .PdfObject ;};func (_aecad *PdfShading )getShadingDict ()(*_ce .PdfObjectDictionary ,error ){_gdfgd :=_aecad ._agcdg ;
if _dgaf ,_eaedb :=_gdfgd .(*_ce .PdfIndirectObject );_eaedb {_fccec ,_abcec :=_dgaf .PdfObject .(*_ce .PdfObjectDictionary );if !_abcec {return nil ,_ce .ErrTypeError ;};return _fccec ,nil ;}else if _deeeg ,_dbacg :=_gdfgd .(*_ce .PdfObjectStream );_dbacg {return _deeeg .PdfObjectDictionary ,nil ;
}else if _adee ,_fddaa :=_gdfgd .(*_ce .PdfObjectDictionary );_fddaa {return _adee ,nil ;}else {_ff .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 ,_ce .ErrTypeError ;};};func _ddabd (_ebaaf _ce .PdfObject ,_ffce *fontCommon )(*_ga .CMap ,error ){_fccag ,_fffae :=_ce .GetStream (_ebaaf );if !_fffae {_ff .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",_ebaaf );
return nil ,_ce .ErrTypeError ;};_ddffd ,_eccbf :=_ce .DecodeStream (_fccag );if _eccbf !=nil {return nil ,_eccbf ;};_bced ,_eccbf :=_ga .LoadCmapFromData (_ddffd ,!_ffce .isCIDFont ());if _eccbf !=nil {_ff .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",_fccag .ObjectNumber ,_eccbf );
};return _bced ,_eccbf ;};
// ToPdfObject returns a *PdfIndirectObject containing a *PdfObjectArray representation of the DeviceN colorspace.
/*
Format: [/DeviceN names alternateSpace tintTransform]
or: [/DeviceN names alternateSpace tintTransform attributes]
*/
func (_ffeb *PdfColorspaceDeviceN )ToPdfObject ()_ce .PdfObject {_ebaa :=_ce .MakeArray (_ce .MakeName ("\u0044e\u0076\u0069\u0063\u0065\u004e"));_ebaa .Append (_ffeb .ColorantNames );_ebaa .Append (_ffeb .AlternateSpace .ToPdfObject ());_ebaa .Append (_ffeb .TintTransform .ToPdfObject ());
if _ffeb .Attributes !=nil {_ebaa .Append (_ffeb .Attributes .ToPdfObject ());};if _ffeb ._gedd !=nil {_ffeb ._gedd .PdfObject =_ebaa ;return _ffeb ._gedd ;};return _ebaa ;};
// GetMediaBox gets the inheritable media box value, either from the page
// or a higher up page/pages struct.
func (_fbcdb *PdfPage )GetMediaBox ()(*PdfRectangle ,error ){if _fbcdb .MediaBox !=nil {return _fbcdb .MediaBox ,nil ;};_cebae :=_fbcdb .Parent ;for _cebae !=nil {_cacea ,_daaeg :=_ce .GetDict (_cebae );if !_daaeg {return nil ,_ge .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 _cbdgc :=_cacea .Get ("\u004d\u0065\u0064\u0069\u0061\u0042\u006f\u0078");_cbdgc !=nil {_bbbf ,_egcfa :=_ce .GetArray (_cbdgc );if !_egcfa {return nil ,_ge .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006d\u0065\u0064\u0069a\u0020\u0062\u006f\u0078");
};_gebce ,_cbcag :=NewPdfRectangle (*_bbbf );if _cbcag !=nil {return nil ,_cbcag ;};return _gebce ,nil ;};_cebae =_cacea .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");};return nil ,_ge .New ("m\u0065\u0064\u0069\u0061 b\u006fx\u0020\u006e\u006f\u0074\u0020d\u0065\u0066\u0069\u006e\u0065\u0064");
};func (_cbgbe *PdfWriter )flushWriter ()error {if _cbgbe ._dcdgg ==nil {_cbgbe ._dcdgg =_cbgbe ._cafdf .Flush ();};return _cbgbe ._dcdgg ;};
// ToPdfObject returns the PDF representation of the colorspace.
func (_dfgff *PdfColorspaceSpecialPattern )ToPdfObject ()_ce .PdfObject {if _dfgff .UnderlyingCS ==nil {return _ce .MakeName ("\u0050a\u0074\u0074\u0065\u0072\u006e");};_acd :=_ce .MakeArray (_ce .MakeName ("\u0050a\u0074\u0074\u0065\u0072\u006e"));_acd .Append (_dfgff .UnderlyingCS .ToPdfObject ());
if _dfgff ._eccb !=nil {_dfgff ._eccb .PdfObject =_acd ;return _dfgff ._eccb ;};return _acd ;};
// Has checks if flag fl is set in flag and returns true if so, false otherwise.
func (_babc FieldFlag )Has (fl FieldFlag )bool {return (_babc .Mask ()&fl .Mask ())> 0};
// GetPage returns the PdfPage model for the specified page number.
func (_abfda *PdfReader )GetPage (pageNumber int )(*PdfPage ,error ){if _abfda ._afda .GetCrypter ()!=nil &&!_abfda ._afda .IsAuthenticated (){return nil ,_e .Errorf ("\u0066\u0069\u006c\u0065\u0020\u006e\u0065\u0065\u0064\u0073\u0020\u0074\u006f\u0020\u0062e\u0020d\u0065\u0063\u0072\u0079\u0070\u0074\u0065\u0064\u0020\u0066\u0069\u0072\u0073\u0074");
};if len (_abfda ._cbddb )< pageNumber {return nil ,_ge .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");
};_bfgbde :=pageNumber -1;if _bfgbde < 0{return nil ,_e .Errorf ("\u0070\u0061\u0067\u0065\u0020\u006e\u0075\u006d\u0062\u0065r\u0069\u006e\u0067\u0020\u006d\u0075\u0073t\u0020\u0073\u0074\u0061\u0072\u0074\u0020\u0061\u0074\u0020\u0031");};_bddc :=_abfda .PageList [_bfgbde ];
return _bddc ,nil ;};
// GetRuneMetrics returns the character metrics for the rune.
// A bool flag is returned to indicate whether or not the entry was found.
func (_ebfge pdfFontSimple )GetRuneMetrics (r rune )(_ee .CharMetrics ,bool ){if _ebfge ._cabcg !=nil {_cdbb ,_adbeg :=_ebfge ._cabcg .Read (r );if _adbeg {return _cdbb ,true ;};};_ffeg :=_ebfge .Encoder ();if _ffeg ==nil {_ff .Log .Debug ("\u004e\u006f\u0020en\u0063\u006f\u0064\u0065\u0072\u0020\u0066\u006f\u0072\u0020\u0066\u006f\u006e\u0074\u0073\u003d\u0025\u0073",_ebfge );
return _ee .CharMetrics {},false ;};_aadg ,_bafb :=_ffeg .RuneToCharcode (r );if !_bafb {if r !=' '{_ff .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 ,_ebfge );
};return _ee .CharMetrics {},false ;};_afdfg ,_gadad :=_ebfge .GetCharMetrics (_aadg );return _afdfg ,_gadad ;};
// ToPdfObject returns the PDF representation of the DSS dictionary.
func (_bbed *DSS )ToPdfObject ()_ce .PdfObject {_dbfa :=_bbed ._ecde .PdfObject .(*_ce .PdfObjectDictionary );_dbfa .Clear ();_eagf :=_ce .MakeDict ();for _ggdgb ,_fgaee :=range _bbed .VRI {_eagf .Set (*_ce .MakeName (_ggdgb ),_fgaee .ToPdfObject ());};
_dbfa .SetIfNotNil ("\u0043\u0065\u0072t\u0073",_gegfc (_bbed .Certs ));_dbfa .SetIfNotNil ("\u004f\u0043\u0053P\u0073",_gegfc (_bbed .OCSPs ));_dbfa .SetIfNotNil ("\u0043\u0052\u004c\u0073",_gegfc (_bbed .CRLs ));_dbfa .Set ("\u0056\u0052\u0049",_eagf );
return _bbed ._ecde ;};func _afee (_gbced _ce .PdfObject )(*PdfColorspaceDeviceNAttributes ,error ){_decb :=&PdfColorspaceDeviceNAttributes {};var _dfeg *_ce .PdfObjectDictionary ;switch _aeca :=_gbced .(type ){case *_ce .PdfIndirectObject :_decb ._dcggf =_aeca ;
var _gfdgf bool ;_dfeg ,_gfdgf =_aeca .PdfObject .(*_ce .PdfObjectDictionary );if !_gfdgf {_ff .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 ,_ge .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};case *_ce .PdfObjectDictionary :_dfeg =_aeca ;case *_ce .PdfObjectReference :_ebafb :=_aeca .Resolve ();return _afee (_ebafb );default:_ff .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 ,_ge .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _aefe :=_dfeg .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065");_aefe !=nil {_fggc ,_bdbbg :=_ce .TraceToDirectObject (_aefe ).(*_ce .PdfObjectName );if !_bdbbg {_ff .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 ,_ge .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};_decb .Subtype =_fggc ;};if _bbdg :=_dfeg .Get ("\u0043o\u006c\u006f\u0072\u0061\u006e\u0074s");_bbdg !=nil {_decb .Colorants =_bbdg ;};if _dgad :=_dfeg .Get ("\u0050r\u006f\u0063\u0065\u0073\u0073");
_dgad !=nil {_decb .Process =_dgad ;};if _cede :=_dfeg .Get ("M\u0069\u0078\u0069\u006e\u0067\u0048\u0069\u006e\u0074\u0073");_cede !=nil {_decb .MixingHints =_cede ;};return _decb ,nil ;};
// PdfActionGoTo3DView represents a GoTo3DView action.
type PdfActionGoTo3DView struct{*PdfAction ;TA _ce .PdfObject ;V _ce .PdfObject ;};
// ToPdfObject implements interface PdfModel.
func (_abea *PdfAnnotationLink )ToPdfObject ()_ce .PdfObject {_abea .PdfAnnotation .ToPdfObject ();_ccgd :=_abea ._dec ;_cgge :=_ccgd .PdfObject .(*_ce .PdfObjectDictionary );_cgge .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ce .MakeName ("\u004c\u0069\u006e\u006b"));
if _abea ._gbba !=nil &&_abea ._gbba ._gbf !=nil {_cgge .Set ("\u0041",_abea ._gbba ._gbf .ToPdfObject ());}else if _abea .A !=nil {_cgge .Set ("\u0041",_abea .A );};_cgge .SetIfNotNil ("\u0044\u0065\u0073\u0074",_abea .Dest );_cgge .SetIfNotNil ("\u0048",_abea .H );
_cgge .SetIfNotNil ("\u0050\u0041",_abea .PA );_cgge .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_abea .QuadPoints );_cgge .SetIfNotNil ("\u0042\u0053",_abea .BS );return _ccgd ;};
// SetFontByName sets the font specified by keyName to the given object.
func (_aggf *PdfPageResources )SetFontByName (keyName _ce .PdfObjectName ,obj _ce .PdfObject )error {if _aggf .Font ==nil {_aggf .Font =_ce .MakeDict ();};_bggfg ,_dcfde :=_ce .TraceToDirectObject (_aggf .Font ).(*_ce .PdfObjectDictionary );if !_dcfde {_ff .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",_ce .TraceToDirectObject (_aggf .Font ));
return _ce .ErrTypeError ;};_bggfg .Set (keyName ,obj );return nil ;};func (_dbedg *LTV )getOCSPs (_cdgg []*_eg .Certificate ,_fafdd map[string ]*_eg .Certificate )([][]byte ,error ){_cgefa :=make ([][]byte ,0,len (_cdgg ));for _ ,_bebfa :=range _cdgg {for _ ,_bfgdf :=range _bebfa .OCSPServer {if _dbedg .CertClient .IsCA (_bebfa ){continue ;
};_dbaf ,_fbgc :=_fafdd [_bebfa .Issuer .CommonName ];if !_fbgc {_ff .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 ;};_ ,_accdg ,_degfe :=_dbedg .OCSPClient .MakeRequest (_bfgdf ,_bebfa ,_dbaf );if _degfe !=nil {_ff .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",_degfe );
continue ;};_cgefa =append (_cgefa ,_accdg );};};return _cgefa ,nil ;};
// ToPdfObject returns the PDF representation of the page resources.
func (_eecaa *PdfPageResources )ToPdfObject ()_ce .PdfObject {_cfee :=_eecaa ._gceda ;_cfee .SetIfNotNil ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e",_eecaa .ExtGState );if _eecaa ._acffc !=nil {_eecaa .ColorSpace =_eecaa ._acffc .ToPdfObject ();};_cfee .SetIfNotNil ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065",_eecaa .ColorSpace );
_cfee .SetIfNotNil ("\u0050a\u0074\u0074\u0065\u0072\u006e",_eecaa .Pattern );_cfee .SetIfNotNil ("\u0053h\u0061\u0064\u0069\u006e\u0067",_eecaa .Shading );_cfee .SetIfNotNil ("\u0058O\u0062\u006a\u0065\u0063\u0074",_eecaa .XObject );_cfee .SetIfNotNil ("\u0046\u006f\u006e\u0074",_eecaa .Font );
_cfee .SetIfNotNil ("\u0050r\u006f\u0063\u0053\u0065\u0074",_eecaa .ProcSet );_cfee .SetIfNotNil ("\u0050\u0072\u006f\u0070\u0065\u0072\u0074\u0069\u0065\u0073",_eecaa .Properties );return _cfee ;};func _becbc (_dadfgc _ce .PdfObject )(string ,error ){_dadfgc =_ce .TraceToDirectObject (_dadfgc );
switch _cfdab :=_dadfgc .(type ){case *_ce .PdfObjectString :return _cfdab .Str (),nil ;case *_ce .PdfObjectStream :_daabg ,_dbad :=_ce .DecodeStream (_cfdab );if _dbad !=nil {return "",_dbad ;};return string (_daabg ),nil ;};return "",_e .Errorf ("\u0069\u006e\u0076\u0061\u006ci\u0064\u0020\u0063\u006f\u006e\u0074\u0065\u006e\u0074\u0020\u0073\u0074\u0072e\u0061\u006d\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0020\u0068\u006f\u006c\u0064\u0065\u0072\u0020\u0028\u0025\u0054\u0029",_dadfgc );
};
// Add appends an outline item as a child of the current outline item.
func (_cffea *OutlineItem )Add (item *OutlineItem ){_cffea .Entries =append (_cffea .Entries ,item )};
// AllFields returns a flattened list of all fields in the form.
func (_gacdg *PdfAcroForm )AllFields ()[]*PdfField {if _gacdg ==nil {return nil ;};var _eafd []*PdfField ;if _gacdg .Fields !=nil {for _ ,_ffgb :=range *_gacdg .Fields {_eafd =append (_eafd ,_aggb (_ffgb )...);};};return _eafd ;};
// ToUnicode returns the name of the font's "ToUnicode" field if there is one, or "" if there isn't.
func (_ffbb *PdfFont )ToUnicode ()string {if _ffbb .baseFields ()._dgfcg ==nil {return "";};return _ffbb .baseFields ()._dgfcg .Name ();};
// GetPageAsIndirectObject returns the page as a dictionary within an PdfIndirectObject.
func (_bbeef *PdfPage )GetPageAsIndirectObject ()*_ce .PdfIndirectObject {return _bbeef ._acbbb };
// 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 (_cdb *PdfColorspaceDeviceRGB )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=3{return nil ,_ge .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_gdce :=vals [0];if _gdce < 0.0||_gdce > 1.0{_ff .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_gdce );
return nil ,ErrColorOutOfRange ;};_cedcf :=vals [1];if _cedcf < 0.0||_cedcf > 1.0{_ff .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_gdce );return nil ,ErrColorOutOfRange ;
};_feb :=vals [2];if _feb < 0.0||_feb > 1.0{_ff .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_gdce );return nil ,ErrColorOutOfRange ;};_gbef :=NewPdfColorDeviceRGB (_gdce ,_cedcf ,_feb );
return _gbef ,nil ;};
// NewPdfColorDeviceRGB returns a new PdfColorDeviceRGB based on the r,g,b component values.
func NewPdfColorDeviceRGB (r ,g ,b float64 )*PdfColorDeviceRGB {_cfbf :=PdfColorDeviceRGB {r ,g ,b };return &_cfbf ;};var _fdaee =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":{}};
// AddContentStreamByString adds content stream by string. Puts the content
// string into a stream object and points the content stream towards it.
func (_fbad *PdfPage )AddContentStreamByString (contentStr string )error {_dabdf ,_geaed :=_ce .MakeStream ([]byte (contentStr ),_ce .NewFlateEncoder ());if _geaed !=nil {return _geaed ;};if _fbad .Contents ==nil {_fbad .Contents =_dabdf ;}else {_agbc :=_ce .TraceToDirectObject (_fbad .Contents );
_fcbdd ,_eefc :=_agbc .(*_ce .PdfObjectArray );if !_eefc {_fcbdd =_ce .MakeArray (_agbc );};_fcbdd .Append (_dabdf );_fbad .Contents =_fcbdd ;};return nil ;};
// ToPdfObject returns the PDF representation of the colorspace.
func (_bcec *PdfColorspaceDeviceCMYK )ToPdfObject ()_ce .PdfObject {return _ce .MakeName ("\u0044\u0065\u0076\u0069\u0063\u0065\u0043\u004d\u0059\u004b");};
// ColorFromPdfObjects returns a new PdfColor based on the input slice of color
// components. The slice should contain a single PdfObjectFloat element.
func (_dgcaf *PdfColorspaceSpecialSeparation )ColorFromPdfObjects (objects []_ce .PdfObject )(PdfColor ,error ){if len (objects )!=1{return nil ,_ge .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_ggeadg ,_beagb :=_ce .GetNumbersAsFloat (objects );
if _beagb !=nil {return nil ,_beagb ;};return _dgcaf .ColorFromFloats (_ggeadg );};
// FullName returns the full name of the field as in rootname.parentname.partialname.
func (_gacd *PdfField )FullName ()(string ,error ){var _dgdd _ag .Buffer ;_aeecb :=[]string {};if _gacd .T !=nil {_aeecb =append (_aeecb ,_gacd .T .Decoded ());};_gbggf :=map[*PdfField ]bool {};_gbggf [_gacd ]=true ;_fdccf :=_gacd .Parent ;for _fdccf !=nil {if _ ,_feae :=_gbggf [_fdccf ];
_feae {return _dgdd .String (),_ge .New ("\u0072\u0065\u0063\u0075rs\u0069\u0076\u0065\u0020\u0074\u0072\u0061\u0076\u0065\u0072\u0073\u0061\u006c");};if _fdccf .T ==nil {return _dgdd .String (),_ge .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");
};_aeecb =append (_aeecb ,_fdccf .T .Decoded ());_gbggf [_fdccf ]=true ;_fdccf =_fdccf .Parent ;};for _gebda :=len (_aeecb )-1;_gebda >=0;_gebda --{_dgdd .WriteString (_aeecb [_gebda ]);if _gebda > 0{_dgdd .WriteString ("\u002e");};};return _dgdd .String (),nil ;
};
// OutlineItem represents a PDF outline item dictionary (Table 153 - pp. 376 - 377).
type OutlineItem struct{Title string `json:"title"`;Dest OutlineDest `json:"dest"`;Entries []*OutlineItem `json:"entries,omitempty"`;};
// 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 (_gdabf *PdfPage )SetContentStreams (cStreams []string ,encoder _ce .StreamEncoder )error {if len (cStreams )==0{_gdabf .Contents =nil ;return nil ;};if encoder ==nil {encoder =_ce .NewRawEncoder ();};var _bedgc []*_ce .PdfObjectStream ;for _ ,_cedfa :=range cStreams {_ceef :=&_ce .PdfObjectStream {};
_bcgab :=encoder .MakeStreamDict ();_gcdg ,_fafaf :=encoder .EncodeBytes ([]byte (_cedfa ));if _fafaf !=nil {return _fafaf ;};_bcgab .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_ce .MakeInteger (int64 (len (_gcdg ))));_ceef .PdfObjectDictionary =_bcgab ;
_ceef .Stream =_gcdg ;_bedgc =append (_bedgc ,_ceef );};if len (_bedgc )==1{_gdabf .Contents =_bedgc [0];}else {_aedc :=_ce .MakeArray ();for _ ,_bdab :=range _bedgc {_aedc .Append (_bdab );};_gdabf .Contents =_aedc ;};return nil ;};
// NewReaderOpts generates a default `ReaderOpts` instance.
func NewReaderOpts ()*ReaderOpts {return &ReaderOpts {Password :"",LazyLoad :true }};
// ImageToGray returns a new grayscale image based on the passed in RGB image.
func (_gacfa *PdfColorspaceDeviceRGB )ImageToGray (img Image )(Image ,error ){if img .ColorComponents !=3{return img ,_ge .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");
};_gadae ,_afgcg :=_gf .NewImage (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),img .ColorComponents ,img .Data ,img ._cdecc ,img ._bffb );if _afgcg !=nil {return img ,_afgcg ;};_gafeg ,_afgcg :=_gf .GrayConverter .Convert (_gadae );
if _afgcg !=nil {return img ,_afgcg ;};return _ffba (_gafeg .Base ()),nil ;};
// AppendContentStream adds content stream by string. Appends to the last
// contentstream instance if many.
func (_cafb *PdfPage )AppendContentStream (contentStr string )error {_ggabe ,_ceaag :=_cafb .GetContentStreams ();if _ceaag !=nil {return _ceaag ;};if len (_ggabe )==0{_ggabe =[]string {contentStr };return _cafb .SetContentStreams (_ggabe ,_ce .NewFlateEncoder ());
};var _bbecg _ag .Buffer ;_bbecg .WriteString (_ggabe [len (_ggabe )-1]);_bbecg .WriteString ("\u000a");_bbecg .WriteString (contentStr );_ggabe [len (_ggabe )-1]=_bbecg .String ();return _cafb .SetContentStreams (_ggabe ,_ce .NewFlateEncoder ());};func (_bbbe *PdfAcroForm )fillImageWithAppearance (_efcfe FieldImageProvider ,_geadc FieldAppearanceGenerator )error {if _bbbe ==nil {return nil ;
};_eabf ,_cabbd :=_efcfe .FieldImageValues ();if _cabbd !=nil {return _cabbd ;};for _ ,_dafa :=range _bbbe .AllFields (){_feeg :=_dafa .PartialName ();_aadad ,_bdbf :=_eabf [_feeg ];if !_bdbf {if _fdgee ,_fcace :=_dafa .FullName ();_fcace ==nil {_aadad ,_bdbf =_eabf [_fdgee ];
};};if !_bdbf {_ff .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",_feeg );
continue ;};switch _bfea :=_dafa .GetContext ().(type ){case *PdfFieldButton :if _bfea .IsPush (){_bfea .SetFillImage (_aadad );};};if _geadc ==nil {continue ;};for _ ,_cgabg :=range _dafa .Annotations {_afeab ,_cbafg :=_geadc .GenerateAppearanceDict (_bbbe ,_dafa ,_cgabg );
if _cbafg !=nil {return _cbafg ;};_cgabg .AP =_afeab ;_cgabg .ToPdfObject ();};};return nil ;};
// PdfDate represents a date, which is a PDF string of the form:
// (D:YYYYMMDDHHmmSSOHH'mm)
type PdfDate struct{_cbacb int64 ;_adeec int64 ;_eeegb int64 ;_gbcf int64 ;_ecebf int64 ;_cdbfg int64 ;_accgd byte ;_gbbfe int64 ;_cfcf int64 ;};func (_eabaf *PdfAcroForm )filteredFields (_ecfege FieldFilterFunc ,_afffc bool )[]*PdfField {if _eabaf ==nil {return nil ;
};return _agdgb (_eabaf .Fields ,_ecfege ,_afffc );};
// 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 _gd .ReadSeeker ,opts *ReaderOpts )(*PdfReader ,error ){const _gdaae ="\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 _aaegd (rs ,opts ,true ,_gdaae );
};
// NewPdfDateFromTime will create a PdfDate based on the given time
func NewPdfDateFromTime (timeObj _c .Time )(PdfDate ,error ){_fgaed :=timeObj .Format ("\u002d\u0030\u0037\u003a\u0030\u0030");_deeeb ,_ :=_dgb .ParseInt (_fgaed [1:3],10,32);_gdefa ,_ :=_dgb .ParseInt (_fgaed [4:6],10,32);return PdfDate {_cbacb :int64 (timeObj .Year ()),_adeec :int64 (timeObj .Month ()),_eeegb :int64 (timeObj .Day ()),_gbcf :int64 (timeObj .Hour ()),_ecebf :int64 (timeObj .Minute ()),_cdbfg :int64 (timeObj .Second ()),_accgd :_fgaed [0],_gbbfe :_deeeb ,_cfcf :_gdefa },nil ;
};
// BaseFont returns the font's "BaseFont" field.
func (_degaf *PdfFont )BaseFont ()string {return _degaf .baseFields ()._egacd };
// SetForms sets the Acroform for a PDF file.
func (_ceea *PdfWriter )SetForms (form *PdfAcroForm )error {_ceea ._aabaf =form ;return nil };
// SetSubtype sets the Subtype S for given PdfOutputIntent.
func (_efcdd *PdfOutputIntent )SetSubtype (subtype PdfOutputIntentType )error {if !subtype .IsValid (){return _ge .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");
};_efcdd .S =subtype ;return nil ;};
// R returns the value of the red component of the color.
func (_eedf *PdfColorDeviceRGB )R ()float64 {return _eedf [0]};
// GetContext returns the PdfField context which is the more specific field data type, e.g. PdfFieldButton
// for a button field.
func (_fadaa *PdfField )GetContext ()PdfModel {return _fadaa ._dcagc };
// ToPdfObject implements interface PdfModel.
func (_deda *PdfAnnotationProjection )ToPdfObject ()_ce .PdfObject {_deda .PdfAnnotation .ToPdfObject ();_efdc :=_deda ._dec ;_eefe :=_efdc .PdfObject .(*_ce .PdfObjectDictionary );_deda .PdfAnnotationMarkup .appendToPdfDictionary (_eefe );return _efdc ;
};
// 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 (_badbae *PdfSignature ,_gcebbb Hasher ,_ebgf SignatureHandlerDocMDPParams )(SignatureValidationResult ,error );};
// 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 (_dgfed *PdfFont )SubsetRegistered ()error {switch _adab :=_dgfed ._dace .(type ){case *pdfFontType0 :_ecbe :=_adab .subsetRegistered ();if _ecbe !=nil {_ff .Log .Debug ("\u0053\u0075b\u0073\u0065\u0074 \u0065\u0072\u0072\u006f\u0072\u003a\u0020\u0025\u0076",_ecbe );
return _ecbe ;};if _adab ._cebdd !=nil {if _adab ._fbfa !=nil {_adab ._fbfa .ToPdfObject ();};_adab .ToPdfObject ();};default:_ff .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",_adab );
};return nil ;};func _cfea (_afde *_ce .PdfObjectDictionary )(*PdfShadingType7 ,error ){_ebdbb :=PdfShadingType7 {};_fgcf :=_afde .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065");if _fgcf ==nil {_ff .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 ;};_cbecg ,_ffgaf :=_fgcf .(*_ce .PdfObjectInteger );if !_ffgaf {_ff .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",_fgcf );
return nil ,_ce .ErrTypeError ;};_ebdbb .BitsPerCoordinate =_cbecg ;_fgcf =_afde .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074");if _fgcf ==nil {_ff .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 ;};_cbecg ,_ffgaf =_fgcf .(*_ce .PdfObjectInteger );if !_ffgaf {_ff .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",_fgcf );
return nil ,_ce .ErrTypeError ;};_ebdbb .BitsPerComponent =_cbecg ;_fgcf =_afde .Get ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067");if _fgcf ==nil {_ff .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 ;};_cbecg ,_ffgaf =_fgcf .(*_ce .PdfObjectInteger );if !_ffgaf {_ff .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",_fgcf );
return nil ,_ce .ErrTypeError ;};_ebdbb .BitsPerComponent =_cbecg ;_fgcf =_afde .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");if _fgcf ==nil {_ff .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 ;};_ddecaf ,_ffgaf :=_fgcf .(*_ce .PdfObjectArray );if !_ffgaf {_ff .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",_fgcf );
return nil ,_ce .ErrTypeError ;};_ebdbb .Decode =_ddecaf ;if _baed :=_afde .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");_baed !=nil {_ebdbb .Function =[]PdfFunction {};if _gdbgg ,_bbbfc :=_baed .(*_ce .PdfObjectArray );_bbbfc {for _ ,_bgged :=range _gdbgg .Elements (){_aafe ,_egeef :=_cegfd (_bgged );
if _egeef !=nil {_ff .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",_egeef );return nil ,_egeef ;};_ebdbb .Function =append (_ebdbb .Function ,_aafe );
};}else {_addab ,_cgcbe :=_cegfd (_baed );if _cgcbe !=nil {_ff .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",_cgcbe );return nil ,_cgcbe ;
};_ebdbb .Function =append (_ebdbb .Function ,_addab );};};return &_ebdbb ,nil ;};func _gfdb ()string {_dbef :="\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 _ggbedd _ag .Buffer ;for _dbae :=0;_dbae < 6;_dbae ++{_ggbedd .WriteRune (rune (_dbef [_fb .Intn (len (_dbef ))]));};return _ggbedd .String ();};
// NewPdfAnnotationSquiggly returns a new text squiggly annotation.
func NewPdfAnnotationSquiggly ()*PdfAnnotationSquiggly {_cde :=NewPdfAnnotation ();_ccf :=&PdfAnnotationSquiggly {};_ccf .PdfAnnotation =_cde ;_ccf .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_cde .SetContext (_ccf );return _ccf ;};func (_cgfbf *PdfPage )getParentResources ()(*PdfPageResources ,error ){_fegfc :=_cgfbf .Parent ;
for _fegfc !=nil {_ffagc ,_babdb :=_ce .GetDict (_fegfc );if !_babdb {_ff .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 ,_ge .New ("i\u006e\u0076\u0061\u006cid\u0020p\u0061\u0072\u0065\u006e\u0074 \u006f\u0062\u006a\u0065\u0063\u0074");
};if _gdege :=_ffagc .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");_gdege !=nil {_abacg ,_ggcef :=_ce .GetDict (_gdege );if !_ggcef {return nil ,_ge .New ("i\u006e\u0076\u0061\u006cid\u0020r\u0065\u0073\u006f\u0075\u0072c\u0065\u0020\u0064\u0069\u0063\u0074");
};_bacgdd ,_bccca :=NewPdfPageResourcesFromDict (_abacg );if _bccca !=nil {return nil ,_bccca ;};return _bacgdd ,nil ;};_fegfc =_ffagc .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");};return nil ,nil ;};
// ToPdfObject returns the PDF representation of the shading dictionary.
func (_eaad *PdfShadingType4 )ToPdfObject ()_ce .PdfObject {_eaad .PdfShading .ToPdfObject ();_bfeda ,_gaede :=_eaad .getShadingDict ();if _gaede !=nil {_ff .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 _eaad .BitsPerCoordinate !=nil {_bfeda .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065",_eaad .BitsPerCoordinate );};if _eaad .BitsPerComponent !=nil {_bfeda .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_eaad .BitsPerComponent );
};if _eaad .BitsPerFlag !=nil {_bfeda .Set ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067",_eaad .BitsPerFlag );};if _eaad .Decode !=nil {_bfeda .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_eaad .Decode );};if _eaad .Function !=nil {if len (_eaad .Function )==1{_bfeda .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_eaad .Function [0].ToPdfObject ());
}else {_gafbb :=_ce .MakeArray ();for _ ,_agdbgb :=range _eaad .Function {_gafbb .Append (_agdbgb .ToPdfObject ());};_bfeda .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_gafbb );};};return _eaad ._agcdg ;};const (TrappedUnknown PdfInfoTrapped ="\u0055n\u006b\u006e\u006f\u0077\u006e";
TrappedTrue PdfInfoTrapped ="\u0054\u0072\u0075\u0065";TrappedFalse PdfInfoTrapped ="\u0046\u0061\u006cs\u0065";);func (_ebcgda *PdfWriter )writeObject (_ffcec int ,_ffdaa _ce .PdfObject ){_ff .Log .Trace ("\u0057\u0072\u0069\u0074\u0065\u0020\u006f\u0062\u006a \u0023\u0025\u0064\u000a",_ffcec );
if _aaecg ,_gbeg :=_ffdaa .(*_ce .PdfIndirectObject );_gbeg {_ebcgda ._abff [_ffcec ]=crossReference {Type :1,Offset :_ebcgda ._cgdfab ,Generation :_aaecg .GenerationNumber };_cfacd :=_e .Sprintf ("\u0025d\u0020\u0030\u0020\u006f\u0062\u006a\n",_ffcec );
if _gedgf ,_eccec :=_aaecg .PdfObject .(*pdfSignDictionary );_eccec {_gedgf ._efccb =_ebcgda ._cgdfab +int64 (len (_cfacd ));};if _aaecg .PdfObject ==nil {_ff .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");
_aaecg .PdfObject =_ce .MakeNull ();};_cfacd +=_aaecg .PdfObject .WriteString ();_cfacd +="\u000a\u0065\u006e\u0064\u006f\u0062\u006a\u000a";_ebcgda .writeString (_cfacd );return ;};if _eedddc ,_ddadae :=_ffdaa .(*_ce .PdfObjectStream );_ddadae {_ebcgda ._abff [_ffcec ]=crossReference {Type :1,Offset :_ebcgda ._cgdfab ,Generation :_eedddc .GenerationNumber };
_aabfg :=_e .Sprintf ("\u0025d\u0020\u0030\u0020\u006f\u0062\u006a\n",_ffcec );_aabfg +=_eedddc .PdfObjectDictionary .WriteString ();_aabfg +="\u000a\u0073\u0074\u0072\u0065\u0061\u006d\u000a";_ebcgda .writeString (_aabfg );_ebcgda .writeBytes (_eedddc .Stream );
_ebcgda .writeString ("\u000ae\u006ed\u0073\u0074\u0072\u0065\u0061m\u000a\u0065n\u0064\u006f\u0062\u006a\u000a");return ;};if _bgafb ,_dgaagc :=_ffdaa .(*_ce .PdfObjectStreams );_dgaagc {_ebcgda ._abff [_ffcec ]=crossReference {Type :1,Offset :_ebcgda ._cgdfab ,Generation :_bgafb .GenerationNumber };
_afbc :=_e .Sprintf ("\u0025d\u0020\u0030\u0020\u006f\u0062\u006a\n",_ffcec );var _adfaf []string ;var _ffbcd string ;var _fegefc int64 ;for _aggfd ,_bdcaf :=range _bgafb .Elements (){_dccfe ,_cafgg :=_bdcaf .(*_ce .PdfIndirectObject );if !_cafgg {_ff .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",_ffcec ,_bdcaf );
continue ;};_fgfebb :=_dccfe .PdfObject .WriteString ()+"\u0020";_ffbcd =_ffbcd +_fgfebb ;_adfaf =append (_adfaf ,_e .Sprintf ("\u0025\u0064\u0020%\u0064",_dccfe .ObjectNumber ,_fegefc ));_ebcgda ._abff [int (_dccfe .ObjectNumber )]=crossReference {Type :2,ObjectNumber :_ffcec ,Index :_aggfd };
_fegefc =_fegefc +int64 (len ([]byte (_fgfebb )));};_agddg :=_g .Join (_adfaf ,"\u0020")+"\u0020";_daced :=_ce .NewFlateEncoder ();_dcaab :=_daced .MakeStreamDict ();_dcaab .Set (_ce .PdfObjectName ("\u0054\u0079\u0070\u0065"),_ce .MakeName ("\u004f\u0062\u006a\u0053\u0074\u006d"));
_bcefa :=int64 (_bgafb .Len ());_dcaab .Set (_ce .PdfObjectName ("\u004e"),_ce .MakeInteger (_bcefa ));_agcfc :=int64 (len (_agddg ));_dcaab .Set (_ce .PdfObjectName ("\u0046\u0069\u0072s\u0074"),_ce .MakeInteger (_agcfc ));_abecc ,_ :=_daced .EncodeBytes ([]byte (_agddg +_ffbcd ));
_edadf :=int64 (len (_abecc ));_dcaab .Set (_ce .PdfObjectName ("\u004c\u0065\u006e\u0067\u0074\u0068"),_ce .MakeInteger (_edadf ));_afbc +=_dcaab .WriteString ();_afbc +="\u000a\u0073\u0074\u0072\u0065\u0061\u006d\u000a";_ebcgda .writeString (_afbc );
_ebcgda .writeBytes (_abecc );_ebcgda .writeString ("\u000ae\u006ed\u0073\u0074\u0072\u0065\u0061m\u000a\u0065n\u0064\u006f\u0062\u006a\u000a");return ;};_ebcgda .writeString (_ffdaa .WriteString ());};
// GetXHeight returns the XHeight of the font `descriptor`.
func (_bdfdg *PdfFontDescriptor )GetXHeight ()(float64 ,error ){return _ce .GetNumberAsFloat (_bdfdg .XHeight );};
// PdfAnnotationProjection represents Projection annotations.
type PdfAnnotationProjection struct{*PdfAnnotation ;*PdfAnnotationMarkup ;};func (_ebdde *LTV )enable (_cbgcg ,_gaac []*_eg .Certificate ,_fdad string )error {_caadeb ,_caafa ,_afbf :=_ebdde .buildCertChain (_cbgcg ,_gaac );if _afbf !=nil {return _afbf ;
};_edgb ,_afbf :=_ebdde .getCerts (_caadeb );if _afbf !=nil {return _afbf ;};var _ffcgb ,_cffaa [][]byte ;if _ebdde .OCSPClient !=nil {_ffcgb ,_afbf =_ebdde .getOCSPs (_caadeb ,_caafa );if _afbf !=nil {return _afbf ;};};if _ebdde .CRLClient !=nil {_cffaa ,_afbf =_ebdde .getCRLs (_caadeb );
if _afbf !=nil {return _afbf ;};};_cagf :=_ebdde ._dcacf ;_fcffb ,_afbf :=_cagf .AddCerts (_edgb );if _afbf !=nil {return _afbf ;};_cbfgb ,_afbf :=_cagf .AddOCSPs (_ffcgb );if _afbf !=nil {return _afbf ;};_abcf ,_afbf :=_cagf .AddCRLs (_cffaa );if _afbf !=nil {return _afbf ;
};if _fdad !=""{_cagf .VRI [_fdad ]=&VRI {Cert :_fcffb ,OCSP :_cbfgb ,CRL :_abcf };};_ebdde ._fdfad .SetDSS (_cagf );return nil ;};
// HasExtGState checks whether a font is defined by the specified keyName.
func (_bdgff *PdfPageResources )HasExtGState (keyName _ce .PdfObjectName )bool {_ ,_beccg :=_bdgff .GetFontByName (keyName );return _beccg ;};
// 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 ;};
// ToPdfObject returns the PDF representation of the shading pattern.
func (_dfad *PdfShadingPattern )ToPdfObject ()_ce .PdfObject {_dfad .PdfPattern .ToPdfObject ();_bbcd :=_dfad .getDict ();if _dfad .Shading !=nil {_bbcd .Set ("\u0053h\u0061\u0064\u0069\u006e\u0067",_dfad .Shading .ToPdfObject ());};if _dfad .Matrix !=nil {_bbcd .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_dfad .Matrix );
};if _dfad .ExtGState !=nil {_bbcd .Set ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e",_dfad .ExtGState );};return _dfad ._gadcb ;};
// Write writes the Appender output to io.Writer.
// It can only be called once and further invocations will result in an error.
func (_aeegf *PdfAppender )Write (w _gd .Writer )error {if _aeegf ._fgegg {return _ge .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");
};_ecag :=NewPdfWriter ();_degc ,_aebc :=_ce .GetDict (_ecag ._dbdaa );if !_aebc {return _ge .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");
};_aafb ,_aebc :=_degc .Get ("\u004b\u0069\u0064\u0073").(*_ce .PdfObjectArray );if !_aebc {return _ge .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");
};_cbeg ,_aebc :=_degc .Get ("\u0043\u006f\u0075n\u0074").(*_ce .PdfObjectInteger );if !_aebc {return _ge .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");
};_dddf :=_aeegf ._fcda ._afda ;_aed :=_dddf .GetTrailer ();if _aed ==nil {return _ge .New ("\u006di\u0073s\u0069\u006e\u0067\u0020\u0074\u0072\u0061\u0069\u006c\u0065\u0072");};_cfef ,_aebc :=_ce .GetIndirect (_aed .Get ("\u0052\u006f\u006f\u0074"));if !_aebc {return _ge .New ("c\u0061\u0074\u0061\u006c\u006f\u0067 \u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0065\u0072 \u006e\u006f\u0074 \u0066o\u0075\u006e\u0064");
};_gbed ,_aebc :=_ce .GetDict (_cfef );if !_aebc {_ff .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",_cfef ,*_aed );
return _ge .New ("\u006di\u0073s\u0069\u006e\u0067\u0020\u0063\u0061\u0074\u0061\u006c\u006f\u0067");};_ggef :=false ;for _ ,_ebeaa :=range _aeegf ._fcda .AcroForm .signatureFields (){if _ebeaa .Lock !=nil {_ggef =true ;break ;};};if _ggef {_ecag ._bedff =_cfef ;
};for _ ,_cbae :=range _gbed .Keys (){if _ecag ._bbef .Get (_cbae )==nil {_bgba :=_gbed .Get (_cbae );_ecag ._bbef .Set (_cbae ,_bgba );};};if _aeegf ._fed !=nil {if _aeegf ._fed ._afab {if _gcfag :=_ce .TraceToDirectObject (_aeegf ._fed .ToPdfObject ());
!_ce .IsNullObject (_gcfag ){_ecag ._bbef .Set ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d",_gcfag );_aeegf .updateObjectsDeep (_gcfag ,nil );}else {_ff .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 {_ecag ._bbef .Set ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d",_aeegf ._fed .ToPdfObject ());_aeegf .updateObjectsDeep (_aeegf ._fed .ToPdfObject (),nil );};};if _aeegf ._gee !=nil {_aeegf .updateObjectsDeep (_aeegf ._gee .ToPdfObject (),nil );
_ecag ._bbef .Set ("\u0044\u0053\u0053",_aeegf ._gee .GetContainingPdfObject ());};if _aeegf ._acec !=nil {_ecag ._bbef .Set ("\u0050\u0065\u0072m\u0073",_aeegf ._acec .ToPdfObject ());_aeegf .updateObjectsDeep (_aeegf ._acec .ToPdfObject (),nil );};if _ecag ._facee .Major < 2{_ecag .AddExtension ("\u0045\u0053\u0049\u0043","\u0031\u002e\u0037",5);
_ecag .AddExtension ("\u0041\u0044\u0042\u0045","\u0031\u002e\u0037",8);};if _ebb ,_fada :=_ce .GetDict (_aed .Get ("\u0049\u006e\u0066\u006f"));_fada {if _deag ,_begb :=_ce .GetDict (_ecag ._dcecd );_begb {for _ ,_fadg :=range _ebb .Keys (){if _deag .Get (_fadg )==nil {_deag .Set (_fadg ,_ebb .Get (_fadg ));
};};};};if _aeegf ._geaf !=nil {_ecag ._dcecd =_ce .MakeIndirectObject (_aeegf ._geaf .ToPdfObject ());};_aeegf .updateObjectsDeep (_ecag ._dcecd ,nil );_aeegf .updateObjectsDeep (_ecag ._bedff ,nil );_acee :=false ;if len (_aeegf ._fcda .PageList )!=len (_aeegf ._ggdc ){_acee =true ;
}else {for _baeb :=range _aeegf ._fcda .PageList {switch {case _aeegf ._ggdc [_baeb ]==_aeegf ._fcda .PageList [_baeb ]:case _aeegf ._ggdc [_baeb ]==_aeegf .Reader .PageList [_baeb ]:default:_acee =true ;};if _acee {break ;};};};if _acee {_aeegf .updateObjectsDeep (_ecag ._dbdaa ,nil );
}else {_aeegf ._gecg [_ecag ._dbdaa ]=struct{}{};};_ecag ._dbdaa .ObjectNumber =_aeegf .Reader ._bcgea .ObjectNumber ;_aeegf ._fadeg [_ecag ._dbdaa ]=_aeegf .Reader ._bcgea .ObjectNumber ;_egcd :=[]_ce .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 _ ,_fbbe :=range _aeegf ._ggdc {_fbbg :=_fbbe .ToPdfObject ();*_cbeg =*_cbeg +1;if _gbge ,_dgcf :=_fbbg .(*_ce .PdfIndirectObject );_dgcf &&_gbge .GetParser ()==_aeegf ._fcda ._afda {_aafb .Append (&_gbge .PdfObjectReference );continue ;};if _gdbee ,_acga :=_ce .GetDict (_fbbg );
_acga {_cffc ,_ccaf :=_gdbee .Get ("\u0050\u0061\u0072\u0065\u006e\u0074").(*_ce .PdfIndirectObject );for _ccaf {_ff .Log .Trace ("\u0050a\u0067e\u0020\u0050\u0061\u0072\u0065\u006e\u0074\u003a\u0020\u0025\u0054",_cffc );_ecce ,_cbec :=_cffc .PdfObject .(*_ce .PdfObjectDictionary );
if !_cbec {return _ge .New ("i\u006e\u0076\u0061\u006cid\u0020P\u0061\u0072\u0065\u006e\u0074 \u006f\u0062\u006a\u0065\u0063\u0074");};for _ ,_gada :=range _egcd {_ff .Log .Trace ("\u0046\u0069\u0065\u006c\u0064\u0020\u0025\u0073",_gada );if _eadag :=_gdbee .Get (_gada );
_eadag !=nil {_ff .Log .Trace ("\u002d \u0070a\u0067\u0065\u0020\u0068\u0061s\u0020\u0061l\u0072\u0065\u0061\u0064\u0079");if len (_fbbe ._caab .Keys ())> 0&&!_acee {_dcdeg :=_fbbe ._caab ;if _afgfb :=_dcdeg .Get (_gada );_afgfb !=nil {if _eadag !=_afgfb {_ff .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",_gada ,_afgfb );
_gdbee .Set (_gada ,_afgfb );};};};continue ;};if _dabag :=_ecce .Get (_gada );_dabag !=nil {_ff .Log .Trace ("\u0049\u006e\u0068\u0065ri\u0074\u0069\u006e\u0067\u0020\u0066\u0069\u0065\u006c\u0064\u0020\u0025\u0073",_gada );_gdbee .Set (_gada ,_dabag );
};};_cffc ,_ccaf =_ecce .Get ("\u0050\u0061\u0072\u0065\u006e\u0074").(*_ce .PdfIndirectObject );_ff .Log .Trace ("\u004ee\u0078t\u0020\u0070\u0061\u0072\u0065\u006e\u0074\u003a\u0020\u0025\u0054",_ecce .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"));};
if _acee {_gdbee .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_ecag ._dbdaa );};};_aeegf .updateObjectsDeep (_fbbg ,nil );_aafb .Append (_fbbg );};if _ ,_cfagd :=_aeegf ._gbbg .Seek (0,_gd .SeekStart );_cfagd !=nil {return _cfagd ;};_eafg :=make (map[SignatureHandler ]_gd .Writer );
_dbcf :=_ce .MakeArray ();for _ ,_cdcg :=range _aeegf ._beff {if _eaba ,_fcde :=_ce .GetIndirect (_cdcg );_fcde {if _dgda ,_bdfe :=_eaba .PdfObject .(*pdfSignDictionary );_bdfe {_fdcd :=*_dgda ._efaef ;var _begf error ;_eafg [_fdcd ],_begf =_fdcd .NewDigest (_dgda ._gdbgfe );
if _begf !=nil {return _begf ;};_dbcf .Append (_ce .MakeInteger (0xfffff),_ce .MakeInteger (0xfffff));};};};if _dbcf .Len ()> 0{_dbcf .Append (_ce .MakeInteger (0xfffff),_ce .MakeInteger (0xfffff));};for _ ,_dcbb :=range _aeegf ._beff {if _gbfe ,_dffc :=_ce .GetIndirect (_dcbb );
_dffc {if _edge ,_fbda :=_gbfe .PdfObject .(*pdfSignDictionary );_fbda {_edge .Set ("\u0042y\u0074\u0065\u0052\u0061\u006e\u0067e",_dbcf );};};};_eded :=len (_eafg )> 0;var _gcge _gd .Reader =_aeegf ._gbbg ;if _eded {_fcaf :=make ([]_gd .Writer ,0,len (_eafg ));
for _ ,_bce :=range _eafg {_fcaf =append (_fcaf ,_bce );};_gcge =_gd .TeeReader (_aeegf ._gbbg ,_gd .MultiWriter (_fcaf ...));};_ggecf ,_eeebd :=_gd .Copy (w ,_gcge );if _eeebd !=nil {return _eeebd ;};if len (_aeegf ._beff )==0{return nil ;};_ecag ._bffgf =_ggecf ;
_ecag .ObjNumOffset =_aeegf ._agac ;_ecag ._ddfff =true ;_ecag ._fegdg =_aeegf ._agfe ;_ecag ._efbcg =_aeegf ._gcfe ;_ecag ._bcefd =_aeegf ._gafg ;_ecag ._facee =_aeegf ._fcda .PdfVersion ();_ecag ._fdegda =_aeegf ._fadeg ;_ecag ._cgebe =_aeegf ._egeb .GetCrypter ();
_ecag ._ggbef =_aeegf ._egeb .GetEncryptObj ();_gddb :=_aeegf ._egeb .GetXrefType ();if _gddb !=nil {_abfg :=*_gddb ==_ce .XrefTypeObjectStream ;_ecag ._aedga =&_abfg ;};_ecag ._gdaab =map[_ce .PdfObject ]struct{}{};_ecag ._adbee =[]_ce .PdfObject {};for _ ,_befg :=range _aeegf ._beff {if _ ,_bfff :=_aeegf ._gecg [_befg ];
_bfff {continue ;};_ecag .addObject (_befg );};_bggd :=w ;if _eded {_bggd =_ag .NewBuffer (nil );};if _aeegf ._afef !=""&&_ecag ._cgebe ==nil {_ecag .Encrypt ([]byte (_aeegf ._afef ),[]byte (_aeegf ._afef ),_aeegf ._debba );};if _agbd :=_aed .Get ("\u0049\u0044");
_agbd !=nil {if _eafb ,_fgde :=_ce .GetArray (_agbd );_fgde {_ecag ._cbegb =_eafb ;};};if _cgcfc :=_ecag .Write (_bggd );_cgcfc !=nil {return _cgcfc ;};if _eded {_aeg :=_bggd .(*_ag .Buffer ).Bytes ();_egbge :=_ce .MakeArray ();var _cgaca []*pdfSignDictionary ;
var _gfeg int64 ;for _ ,_abfa :=range _ecag ._adbee {if _eecc ,_bfbe :=_ce .GetIndirect (_abfa );_bfbe {if _agge ,_fcfd :=_eecc .PdfObject .(*pdfSignDictionary );_fcfd {_cgaca =append (_cgaca ,_agge );_egcf :=_agge ._efccb +int64 (_agge ._debdg );_egbge .Append (_ce .MakeInteger (_gfeg ),_ce .MakeInteger (_egcf -_gfeg ));
_gfeg =_agge ._efccb +int64 (_agge ._eadgf );};};};_egbge .Append (_ce .MakeInteger (_gfeg ),_ce .MakeInteger (_ggecf +int64 (len (_aeg ))-_gfeg ));_fdgf :=[]byte (_egbge .WriteString ());for _ ,_cffag :=range _cgaca {_bbac :=int (_cffag ._efccb -_ggecf );
for _cgadg :=_cffag ._fgee ;_cgadg < _cffag ._dfdea ;_cgadg ++{_aeg [_bbac +_cgadg ]=' ';};_cea :=_aeg [_bbac +_cffag ._fgee :_bbac +_cffag ._dfdea ];copy (_cea ,_fdgf );};var _cda int ;for _ ,_eega :=range _cgaca {_dae :=int (_eega ._efccb -_ggecf );_eaeb :=_aeg [_cda :_dae +_eega ._debdg ];
_dfgf :=*_eega ._efaef ;_eafg [_dfgf ].Write (_eaeb );_cda =_dae +_eega ._eadgf ;};for _ ,_bccf :=range _cgaca {_gceg :=_aeg [_cda :];_bbea :=*_bccf ._efaef ;_eafg [_bbea ].Write (_gceg );};for _ ,_deff :=range _cgaca {_fdf :=int (_deff ._efccb -_ggecf );
_gece :=*_deff ._efaef ;_gagc :=_eafg [_gece ];if _fffd :=_gece .Sign (_deff ._gdbgfe ,_gagc );_fffd !=nil {return _fffd ;};_deff ._gdbgfe .ByteRange =_egbge ;_gdgfe :=[]byte (_deff ._gdbgfe .Contents .WriteString ());for _ffee :=_deff ._fgee ;_ffee < _deff ._dfdea ;
_ffee ++{_aeg [_fdf +_ffee ]=' ';};for _adbd :=_deff ._debdg ;_adbd < _deff ._eadgf ;_adbd ++{_aeg [_fdf +_adbd ]=' ';};_bda :=_aeg [_fdf +_deff ._fgee :_fdf +_deff ._dfdea ];copy (_bda ,_fdgf );_bda =_aeg [_fdf +_deff ._debdg :_fdf +_deff ._eadgf ];copy (_bda ,_gdgfe );
};_daab :=_ag .NewBuffer (_aeg );_ ,_eeebd =_gd .Copy (w ,_daab );if _eeebd !=nil {return _eeebd ;};};_aeegf ._fgegg =true ;return nil ;};type pdfSignDictionary struct{*_ce .PdfObjectDictionary ;_efaef *SignatureHandler ;_gdbgfe *PdfSignature ;_efccb int64 ;
_debdg int ;_eadgf int ;_fgee int ;_dfdea int ;};var (CourierName =_ee .CourierName ;CourierBoldName =_ee .CourierBoldName ;CourierObliqueName =_ee .CourierObliqueName ;CourierBoldObliqueName =_ee .CourierBoldObliqueName ;HelveticaName =_ee .HelveticaName ;
HelveticaBoldName =_ee .HelveticaBoldName ;HelveticaObliqueName =_ee .HelveticaObliqueName ;HelveticaBoldObliqueName =_ee .HelveticaBoldObliqueName ;SymbolName =_ee .SymbolName ;ZapfDingbatsName =_ee .ZapfDingbatsName ;TimesRomanName =_ee .TimesRomanName ;
TimesBoldName =_ee .TimesBoldName ;TimesItalicName =_ee .TimesItalicName ;TimesBoldItalicName =_ee .TimesBoldItalicName ;);
// ToPdfObject returns colorspace in a PDF object format [name stream]
func (_eafbb *PdfColorspaceICCBased )ToPdfObject ()_ce .PdfObject {_dgbaa :=&_ce .PdfObjectArray {};_dgbaa .Append (_ce .MakeName ("\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064"));var _fdca *_ce .PdfObjectStream ;if _eafbb ._gcgc !=nil {_fdca =_eafbb ._gcgc ;
}else {_fdca =&_ce .PdfObjectStream {};};_cfcc :=_ce .MakeDict ();_cfcc .Set ("\u004e",_ce .MakeInteger (int64 (_eafbb .N )));if _eafbb .Alternate !=nil {_cfcc .Set ("\u0041l\u0074\u0065\u0072\u006e\u0061\u0074e",_eafbb .Alternate .ToPdfObject ());};if _eafbb .Metadata !=nil {_cfcc .Set ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061",_eafbb .Metadata );
};if _eafbb .Range !=nil {var _cffdf []_ce .PdfObject ;for _ ,_bdeg :=range _eafbb .Range {_cffdf =append (_cffdf ,_ce .MakeFloat (_bdeg ));};_cfcc .Set ("\u0052\u0061\u006eg\u0065",_ce .MakeArray (_cffdf ...));};_cfcc .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_ce .MakeInteger (int64 (len (_eafbb .Data ))));
_fdca .Stream =_eafbb .Data ;_fdca .PdfObjectDictionary =_cfcc ;_dgbaa .Append (_fdca );if _eafbb ._fedfe !=nil {_eafbb ._fedfe .PdfObject =_dgbaa ;return _eafbb ._fedfe ;};return _dgbaa ;};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 _agdgb (_gffed *[]*PdfField ,_ddfg FieldFilterFunc ,_acag bool )[]*PdfField {if _gffed ==nil {return nil ;
};_cbba :=*_gffed ;if len (*_gffed )==0{return nil ;};_dcdad :=_cbba [:0];if _ddfg ==nil {_ddfg =func (*PdfField )bool {return true };};var _dggeb []*PdfField ;for _ ,_fbafb :=range _cbba {_dacg :=_ddfg (_fbafb );if _dacg {_dggeb =append (_dggeb ,_fbafb );
if len (_fbafb .Kids )> 0{_dggeb =append (_dggeb ,_agdgb (&_fbafb .Kids ,_ddfg ,_acag )...);};};if !_acag ||!_dacg ||len (_fbafb .Kids )> 0{_dcdad =append (_dcdad ,_fbafb );};};*_gffed =_dcdad ;return _dggeb ;};func (_dcg *PdfReader )newPdfAnnotationCaretFromDict (_dgc *_ce .PdfObjectDictionary )(*PdfAnnotationCaret ,error ){_cce :=PdfAnnotationCaret {};
_gffe ,_ccae :=_dcg .newPdfAnnotationMarkupFromDict (_dgc );if _ccae !=nil {return nil ,_ccae ;};_cce .PdfAnnotationMarkup =_gffe ;_cce .RD =_dgc .Get ("\u0052\u0044");_cce .Sy =_dgc .Get ("\u0053\u0079");return &_cce ,nil ;};
// EncryptionAlgorithm is used in EncryptOptions to change the default algorithm used to encrypt the document.
type EncryptionAlgorithm int ;func _cefb (_dcda _ce .PdfObject )(*PdfColorspaceSpecialIndexed ,error ){_dabac :=NewPdfColorspaceSpecialIndexed ();if _adcf ,_cgaae :=_dcda .(*_ce .PdfIndirectObject );_cgaae {_dabac ._cbca =_adcf ;};_dcda =_ce .TraceToDirectObject (_dcda );
_edce ,_egcb :=_dcda .(*_ce .PdfObjectArray );if !_egcb {return nil ,_e .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _edce .Len ()!=4{return nil ,_e .Errorf ("\u0069\u006e\u0064\u0065\u0078\u0065\u0064\u0020\u0043\u0053\u003a\u0020\u0069\u006e\u0076a\u006ci\u0064\u0020\u0061\u0072\u0072\u0061\u0079\u0020\u006c\u0065\u006e\u0067\u0074\u0068");
};_dcda =_edce .Get (0);_bbffa ,_egcb :=_dcda .(*_ce .PdfObjectName );if !_egcb {return nil ,_e .Errorf ("\u0069n\u0064\u0065\u0078\u0065\u0064\u0020\u0043\u0053\u003a\u0020\u0069n\u0076\u0061\u006c\u0069\u0064\u0020\u006e\u0061\u006d\u0065");};if *_bbffa !="\u0049n\u0064\u0065\u0078\u0065\u0064"{return nil ,_e .Errorf ("\u0069\u006e\u0064\u0065xe\u0064\u0020\u0043\u0053\u003a\u0020\u0077\u0072\u006f\u006e\u0067\u0020\u006e\u0061m\u0065");
};_dcda =_edce .Get (1);_ccbc ,_ecge :=DetermineColorspaceNameFromPdfObject (_dcda );if _ecge !=nil {return nil ,_ecge ;};if _ccbc =="\u0049n\u0064\u0065\u0078\u0065\u0064"||_ccbc =="\u0050a\u0074\u0074\u0065\u0072\u006e"{_ff .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",_ccbc );
return nil ,_afga ;};_dcdf ,_ecge :=NewPdfColorspaceFromPdfObject (_dcda );if _ecge !=nil {return nil ,_ecge ;};_dabac .Base =_dcdf ;_dcda =_edce .Get (2);_beeb ,_ecge :=_ce .GetNumberAsInt64 (_dcda );if _ecge !=nil {return nil ,_ecge ;};if _beeb > 255{return nil ,_e .Errorf ("\u0069n\u0064\u0065\u0078\u0065d\u0020\u0043\u0053\u003a\u0020I\u006ev\u0061l\u0069\u0064\u0020\u0068\u0069\u0076\u0061l");
};_dabac .HiVal =int (_beeb );_dcda =_edce .Get (3);_dabac .Lookup =_dcda ;_dcda =_ce .TraceToDirectObject (_dcda );var _dcf []byte ;if _aaef ,_baac :=_dcda .(*_ce .PdfObjectString );_baac {_dcf =_aaef .Bytes ();_ff .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",_dcf );
}else if _cfagdf ,_gaae :=_dcda .(*_ce .PdfObjectStream );_gaae {_ff .Log .Trace ("\u0049n\u0064e\u0078\u0065\u0064\u0020\u0073t\u0072\u0065a\u006d\u003a\u0020\u0025\u0073",_dcda .String ());_ff .Log .Trace ("\u0045\u006e\u0063\u006fde\u0064\u0020\u0028\u0025\u0064\u0029\u0020\u003a\u0020\u0025\u0023\u0020\u0078",len (_cfagdf .Stream ),_cfagdf .Stream );
_eabd ,_gafgg :=_ce .DecodeStream (_cfagdf );if _gafgg !=nil {return nil ,_gafgg ;};_ff .Log .Trace ("\u0044e\u0063o\u0064\u0065\u0064\u0020\u0028%\u0064\u0029 \u003a\u0020\u0025\u0020\u0058",len (_eabd ),_eabd );_dcf =_eabd ;}else {_ff .Log .Debug ("\u0054\u0079\u0070\u0065\u003a\u0020\u0025\u0054",_dcda );
return nil ,_e .Errorf ("\u0069\u006e\u0064\u0065\u0078\u0065\u0064\u0020\u0043\u0053\u003a\u0020\u0049\u006e\u0076a\u006ci\u0064\u0020\u0074\u0061\u0062\u006c\u0065\u0020\u0066\u006f\u0072\u006d\u0061\u0074");};if len (_dcf )< _dabac .Base .GetNumComponents ()*(_dabac .HiVal +1){_ff .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");
_ff .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 (_dcf ),_dabac .Base .GetNumComponents (),_dabac .HiVal );
}else {_dcf =_dcf [:_dabac .Base .GetNumComponents ()*(_dabac .HiVal +1)];};_dabac ._adga =_dcf ;return _dabac ,nil ;};
// StandardImplementer is an interface that defines specified PDF standards like PDF/A-1A (pdfa.Profile1A)
// NOTE: This implementation is in experimental development state.
//
// Keep in mind that it might change in the subsequent minor versions.
type StandardImplementer interface{StandardValidator ;StandardApplier ;
// StandardName gets the human-readable name of the standard.
StandardName ()string ;};func (_fafe *PdfReader )newPdfFieldFromIndirectObject (_gdae *_ce .PdfIndirectObject ,_dabcb *PdfField )(*PdfField ,error ){if _abagd ,_eedcd :=_fafe ._aedda .GetModelFromPrimitive (_gdae ).(*PdfField );_eedcd {return _abagd ,nil ;
};_gbbdg ,_bged :=_ce .GetDict (_gdae );if !_bged {return nil ,_e .Errorf ("\u0050\u0064f\u0046\u0069\u0065\u006c\u0064 \u0069\u006e\u0064\u0069\u0072e\u0063\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0020\u006e\u006f\u0074\u0020\u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0069\u006e\u0067\u0020\u0061\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079");
};_dbaa :=NewPdfField ();_dbaa ._aadeb =_gdae ;_dbaa ._aadeb .PdfObject =_gbbdg ;if _decc ,_bccg :=_ce .GetName (_gbbdg .Get ("\u0046\u0054"));_bccg {_dbaa .FT =_decc ;};if _dabcb !=nil {_dbaa .Parent =_dabcb ;};_dbaa .T ,_ =_gbbdg .Get ("\u0054").(*_ce .PdfObjectString );
_dbaa .TU ,_ =_gbbdg .Get ("\u0054\u0055").(*_ce .PdfObjectString );_dbaa .TM ,_ =_gbbdg .Get ("\u0054\u004d").(*_ce .PdfObjectString );_dbaa .Ff ,_ =_gbbdg .Get ("\u0046\u0066").(*_ce .PdfObjectInteger );_dbaa .V =_gbbdg .Get ("\u0056");_dbaa .DV =_gbbdg .Get ("\u0044\u0056");
_dbaa .AA =_gbbdg .Get ("\u0041\u0041");if DA :=_gbbdg .Get ("\u0044\u0041");DA !=nil {DA ,_ :=_ce .GetString (DA );_dbaa .VariableText =&VariableText {DA :DA };Q ,_ :=_gbbdg .Get ("\u0051").(*_ce .PdfObjectInteger );DS ,_ :=_gbbdg .Get ("\u0044\u0053").(*_ce .PdfObjectString );
RV :=_gbbdg .Get ("\u0052\u0056");_dbaa .VariableText .Q =Q ;_dbaa .VariableText .DS =DS ;_dbaa .VariableText .RV =RV ;};_eddge :=_dbaa .FT ;if _eddge ==nil &&_dabcb !=nil {_eddge =_dabcb .FT ;};if _eddge !=nil {switch *_eddge {case "\u0054\u0078":_dabd ,_egef :=_gabd (_gbbdg );
if _egef !=nil {return nil ,_egef ;};_dabd .PdfField =_dbaa ;_dbaa ._dcagc =_dabd ;case "\u0043\u0068":_bacc ,_aaefe :=_agdgd (_gbbdg );if _aaefe !=nil {return nil ,_aaefe ;};_bacc .PdfField =_dbaa ;_dbaa ._dcagc =_bacc ;case "\u0042\u0074\u006e":_ecea ,_gcgeg :=_bgfbde (_gbbdg );
if _gcgeg !=nil {return nil ,_gcgeg ;};_ecea .PdfField =_dbaa ;_dbaa ._dcagc =_ecea ;case "\u0053\u0069\u0067":_ecba ,_cfgdd :=_fafe .newPdfFieldSignatureFromDict (_gbbdg );if _cfgdd !=nil {return nil ,_cfgdd ;};_ecba .PdfField =_dbaa ;_dbaa ._dcagc =_ecba ;
default:_ff .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",*_dbaa .FT );return nil ,_ge .New ("\u0075\u006e\u0073\u0075pp\u006f\u0072\u0074\u0065\u0064\u0020\u0066\u0069\u0065\u006c\u0064\u0020\u0074\u0079p\u0065");
};};if _cgaga ,_dfcc :=_ce .GetName (_gbbdg .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065"));_dfcc {if *_cgaga =="\u0057\u0069\u0064\u0067\u0065\u0074"{_bdag ,_adae :=_fafe .newPdfAnnotationFromIndirectObject (_gdae );if _adae !=nil {return nil ,_adae ;
};_cfccc ,_bfdc :=_bdag .GetContext ().(*PdfAnnotationWidget );if !_bfdc {return nil ,_ge .New ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0077\u0069\u0064\u0067e\u0074 \u0061n\u006e\u006f\u0074\u0061\u0074\u0069\u006fn");};_cfccc ._bag =_dbaa ;_cfccc .Parent =_dbaa ._aadeb ;
_dbaa .Annotations =append (_dbaa .Annotations ,_cfccc );return _dbaa ,nil ;};};_bdcfc :=true ;if _ebbb ,_agbeg :=_ce .GetArray (_gbbdg .Get ("\u004b\u0069\u0064\u0073"));_agbeg {_dgfe :=make ([]*_ce .PdfIndirectObject ,0,_ebbb .Len ());for _ ,_aagad :=range _ebbb .Elements (){_gcgbf ,_aacgb :=_ce .GetIndirect (_aagad );
if !_aacgb {_efad ,_acge :=_ce .GetStream (_aagad );if _acge &&_efad .PdfObjectDictionary !=nil {_edcce ,_gbbag :=_ce .GetNameVal (_efad .Get ("\u0054\u0079\u0070\u0065"));if _gbbag &&_edcce =="\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061"{_ff .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 ,_ge .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");};_dfddg ,_eadcd :=_ce .GetDict (_gcgbf );
if !_eadcd {return nil ,ErrTypeCheck ;};if _bdcfc {_bdcfc =!_bdfdd (_dfddg );};_dgfe =append (_dgfe ,_gcgbf );};for _ ,_bfae :=range _dgfe {if _bdcfc {_gbfd ,_bbeba :=_fafe .newPdfAnnotationFromIndirectObject (_bfae );if _bbeba !=nil {_ff .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",_bbeba );
return nil ,_bbeba ;};_caeed ,_cgbe :=_gbfd ._edc .(*PdfAnnotationWidget );if !_cgbe {return nil ,ErrTypeCheck ;};_caeed ._bag =_dbaa ;_dbaa .Annotations =append (_dbaa .Annotations ,_caeed );}else {_beebc ,_dceg :=_fafe .newPdfFieldFromIndirectObject (_bfae ,_dbaa );
if _dceg !=nil {_ff .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",_dceg );return nil ,_dceg ;};_dbaa .Kids =append (_dbaa .Kids ,_beebc );
};};};return _dbaa ,nil ;};
// GetSamples converts the raw byte slice into samples which are stored in a uint32 bit array.
// Each sample is represented by BitsPerComponent consecutive bits in the raw data.
// NOTE: The method resamples the image byte data before returning the result and
// this could lead to high memory usage, especially on large images. It should
// be avoided, when possible. It is recommended to access the Data field of the
// image directly or use the ColorAt method to extract individual pixels.
func (_gebe *Image )GetSamples ()[]uint32 {_dfef :=_gb .ResampleBytes (_gebe .Data ,int (_gebe .BitsPerComponent ));if _gebe .BitsPerComponent < 8{_dfef =_gebe .samplesTrimPadding (_dfef );};_egag :=int (_gebe .Width )*int (_gebe .Height )*_gebe .ColorComponents ;
if len (_dfef )< _egag {_ff .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 (_dfef ),_egag );
return _dfef ;}else if len (_dfef )> _egag {_ff .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 (_dfef ),_egag );
_dfef =_dfef [:_egag ];};return _dfef ;};
// SetDecode sets the decode image float slice.
func (_cccab *Image )SetDecode (decode []float64 ){_cccab ._bffb =decode };func _eage (_gdba _ce .PdfObject )(*PdfColorspaceDeviceN ,error ){_ebec :=NewPdfColorspaceDeviceN ();if _gcbb ,_bbgf :=_gdba .(*_ce .PdfIndirectObject );_bbgf {_ebec ._gedd =_gcbb ;
};_gdba =_ce .TraceToDirectObject (_gdba );_eeeba ,_afcd :=_gdba .(*_ce .PdfObjectArray );if !_afcd {return nil ,_e .Errorf ("\u0064\u0065\u0076\u0069\u0063\u0065\u004e\u0020\u0043\u0053\u003a \u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006f\u0062j\u0065\u0063\u0074");
};if _eeeba .Len ()!=4&&_eeeba .Len ()!=5{return nil ,_e .Errorf ("\u0064\u0065\u0076ic\u0065\u004e\u0020\u0043\u0053\u003a\u0020\u0049\u006ec\u006fr\u0072e\u0063t\u0020\u0061\u0072\u0072\u0061\u0079\u0020\u006c\u0065\u006e\u0067\u0074\u0068");};_gdba =_eeeba .Get (0);
_acgaa ,_afcd :=_gdba .(*_ce .PdfObjectName );if !_afcd {return nil ,_e .Errorf ("\u0064\u0065\u0076i\u0063\u0065\u004e\u0020C\u0053\u003a\u0020\u0069\u006e\u0076\u0061l\u0069\u0064\u0020\u0066\u0061\u006d\u0069\u006c\u0079\u0020\u006e\u0061\u006d\u0065");
};if *_acgaa !="\u0044e\u0076\u0069\u0063\u0065\u004e"{return nil ,_e .Errorf ("\u0064\u0065v\u0069\u0063\u0065\u004e\u0020\u0043\u0053\u003a\u0020\u0077\u0072\u006f\u006e\u0067\u0020\u0066\u0061\u006d\u0069\u006c\u0079\u0020na\u006d\u0065");};_gdba =_eeeba .Get (1);
_gdba =_ce .TraceToDirectObject (_gdba );_bebc ,_afcd :=_gdba .(*_ce .PdfObjectArray );if !_afcd {return nil ,_e .Errorf ("\u0064\u0065\u0076i\u0063\u0065\u004e\u0020C\u0053\u003a\u0020\u0049\u006e\u0076\u0061l\u0069\u0064\u0020\u006e\u0061\u006d\u0065\u0073\u0020\u0061\u0072\u0072\u0061\u0079");
};_ebec .ColorantNames =_bebc ;_gdba =_eeeba .Get (2);_dcgf ,_dba :=NewPdfColorspaceFromPdfObject (_gdba );if _dba !=nil {return nil ,_dba ;};_ebec .AlternateSpace =_dcgf ;_dfcd ,_dba :=_cegfd (_eeeba .Get (3));if _dba !=nil {return nil ,_dba ;};_ebec .TintTransform =_dfcd ;
if _eeeba .Len ()==5{_dfda ,_bbgcd :=_afee (_eeeba .Get (4));if _bbgcd !=nil {return nil ,_bbgcd ;};_ebec .Attributes =_dfda ;};return _ebec ,nil ;};var _gfaee =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":{}};
// PdfActionSetOCGState represents a SetOCGState action.
type PdfActionSetOCGState struct{*PdfAction ;State _ce .PdfObject ;PreserveRB _ce .PdfObject ;};
// BorderEffect represents a border effect (Table 167 p. 395).
type BorderEffect int ;
// ToPdfObject returns the button field dictionary within an indirect object.
func (_dbca *PdfFieldButton )ToPdfObject ()_ce .PdfObject {_dbca .PdfField .ToPdfObject ();_eefff :=_dbca ._aadeb ;_bggde :=_eefff .PdfObject .(*_ce .PdfObjectDictionary );_bggde .Set ("\u0046\u0054",_ce .MakeName ("\u0042\u0074\u006e"));if _dbca .Opt !=nil {_bggde .Set ("\u004f\u0070\u0074",_dbca .Opt );
};return _eefff ;};func (_bfbce *pdfFontSimple )addEncoding ()error {var (_ecaac string ;_egbebb map[_dc .CharCode ]_dc .GlyphName ;_afcg _dc .SimpleEncoder ;);if _bfbce .Encoder ()!=nil {_fefc ,_eecg :=_bfbce .Encoder ().(_dc .SimpleEncoder );if _eecg &&_fefc !=nil {_ecaac =_fefc .BaseName ();
};};if _bfbce .Encoding !=nil {_cgab ,_ggaf ,_gcbg :=_bfbce .getFontEncoding ();if _gcbg !=nil {_ff .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",_bfbce ._egacd ,_bfbce ._baafb ,_bfbce .Encoding ,_bfbce .Encoding ,_gcbg );
return _gcbg ;};if _cgab !=""{_ecaac =_cgab ;};_egbebb =_ggaf ;_afcg ,_gcbg =_dc .NewSimpleTextEncoder (_ecaac ,_egbebb );if _gcbg !=nil {return _gcbg ;};};if _afcg ==nil {_gbaba :=_bfbce ._daebd ;if _gbaba !=nil {switch _bfbce ._baafb {case "\u0054\u0079\u0070e\u0031":if _gbaba .fontFile !=nil &&_gbaba .fontFile ._bagea !=nil {_ff .Log .Debug ("\u0055\u0073\u0069\u006e\u0067\u0020\u0066\u006f\u006et\u0046\u0069\u006c\u0065");
_afcg =_gbaba .fontFile ._bagea ;};case "\u0054\u0072\u0075\u0065\u0054\u0079\u0070\u0065":if _gbaba ._cdfe !=nil {_ff .Log .Debug ("\u0055s\u0069n\u0067\u0020\u0046\u006f\u006e\u0074\u0046\u0069\u006c\u0065\u0032");_cbecb ,_cbbe :=_gbaba ._cdfe .MakeEncoder ();
if _cbbe ==nil {_afcg =_cbecb ;};if _bfbce ._dgfcg ==nil {_bfbce ._dgfcg =_gbaba ._cdfe .MakeToUnicode ();};};};};};if _afcg !=nil {if _egbebb !=nil {_ff .Log .Trace ("\u0064\u0069\u0066fe\u0072\u0065\u006e\u0063\u0065\u0073\u003d\u0025\u002b\u0076\u0020\u0066\u006f\u006e\u0074\u003d\u0025\u0073",_egbebb ,_bfbce .baseFields ());
_afcg =_dc .ApplyDifferences (_afcg ,_egbebb );};_bfbce .SetEncoder (_afcg );};return nil ;};
// GetCustomInfo returns a custom info value for the specified name.
func (_gebag *PdfInfo )GetCustomInfo (name string )*_ce .PdfObjectString {var _gbaa *_ce .PdfObjectString ;if _gebag ._ecfddd ==nil {return _gbaa ;};if _abga ,_cegc :=_gebag ._ecfddd .Get (*_ce .MakeName (name )).(*_ce .PdfObjectString );_cegc {_gbaa =_abga ;
};return _gbaa ;};
// SetContext set the sub annotation (context).
func (_cdfea *PdfShading )SetContext (ctx PdfModel ){_cdfea ._aadbc =ctx };
// 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 (_gcfbe byte )byte ;
// NewPdfAnnotationHighlight returns a new text highlight annotation.
func NewPdfAnnotationHighlight ()*PdfAnnotationHighlight {_gab :=NewPdfAnnotation ();_gfdd :=&PdfAnnotationHighlight {};_gfdd .PdfAnnotation =_gab ;_gfdd .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_gab .SetContext (_gfdd );return _gfdd ;};
// 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 (_bfbfe *Image )ConvertToBinary ()error {if _bfbfe .ColorComponents ==1&&_bfbfe .BitsPerComponent ==1{return nil ;};_dcfg ,_dgagb :=_bfbfe .ToGoImage ();if _dgagb !=nil {return _dgagb ;};_aadfc ,_dgagb :=_gf .MonochromeConverter .Convert (_dcfg );
if _dgagb !=nil {return _dgagb ;};_bfbfe .Data =_aadfc .Base ().Data ;_bfbfe ._cdecc ,_dgagb =_gf .ScaleAlphaToMonochrome (_bfbfe ._cdecc ,int (_bfbfe .Width ),int (_bfbfe .Height ));if _dgagb !=nil {return _dgagb ;};_bfbfe .BitsPerComponent =1;_bfbfe .ColorComponents =1;
_bfbfe ._bffb =nil ;return nil ;};
// GetNumComponents returns the number of color components.
func (_gaed *PdfColorspaceICCBased )GetNumComponents ()int {return _gaed .N };
// NewPdfColorPatternType2 returns an empty color shading pattern type 2 (Axial).
func NewPdfColorPatternType2 ()*PdfColorPatternType2 {_abacb :=&PdfColorPatternType2 {};return _abacb ;};
// GetCatalogStructTreeRoot gets the catalog StructTreeRoot object.
func (_eeag *PdfReader )GetCatalogStructTreeRoot ()(_ce .PdfObject ,bool ){if _eeag ._cfcdg ==nil {return nil ,false ;};_efec :=_eeag ._cfcdg .Get ("\u0053\u0074\u0072\u0075\u0063\u0074\u0054\u0072\u0065e\u0052\u006f\u006f\u0074");return _efec ,_efec !=nil ;
};
// GetContentStream returns the XObject Form's content stream.
func (_fgffd *XObjectForm )GetContentStream ()([]byte ,error ){_fegdd ,_gddf :=_ce .DecodeStream (_fgffd ._efffe );if _gddf !=nil {return nil ,_gddf ;};return _fegdd ,nil ;};func (_dadf *pdfCIDFontType2 )baseFields ()*fontCommon {return &_dadf .fontCommon };
// ToPdfObject implements interface PdfModel.
func (_egcee *PdfTransformParamsDocMDP )ToPdfObject ()_ce .PdfObject {_badde :=_ce .MakeDict ();_badde .SetIfNotNil ("\u0054\u0079\u0070\u0065",_egcee .Type );_badde .SetIfNotNil ("\u0056",_egcee .V );_badde .SetIfNotNil ("\u0050",_egcee .P );return _badde ;
};
// AddWatermarkImage adds a watermark to the page.
func (_fecdg *PdfPage )AddWatermarkImage (ximg *XObjectImage ,opt WatermarkImageOptions )error {_efgc ,_cffcc :=_fecdg .GetMediaBox ();if _cffcc !=nil {return _cffcc ;};_gccgc :=_efgc .Urx -_efgc .Llx ;_ceadd :=_efgc .Ury -_efgc .Lly ;_gbda :=float64 (*ximg .Width );
_dgfff :=(_gccgc -_gbda )/2;if opt .FitToWidth {_gbda =_gccgc ;_dgfff =0;};_edeac :=_ceadd ;_eaaeb :=float64 (0);if opt .PreserveAspectRatio {_edeac =_gbda *float64 (*ximg .Height )/float64 (*ximg .Width );_eaaeb =(_ceadd -_edeac )/2;};if _fecdg .Resources ==nil {_fecdg .Resources =NewPdfPageResources ();
};_aabgfe :=0;_bfffd :=_ce .PdfObjectName (_e .Sprintf ("\u0049\u006d\u0077%\u0064",_aabgfe ));for _fecdg .Resources .HasXObjectByName (_bfffd ){_aabgfe ++;_bfffd =_ce .PdfObjectName (_e .Sprintf ("\u0049\u006d\u0077%\u0064",_aabgfe ));};_cffcc =_fecdg .AddImageResource (_bfffd ,ximg );
if _cffcc !=nil {return _cffcc ;};_aabgfe =0;_bcba :=_ce .PdfObjectName (_e .Sprintf ("\u0047\u0053\u0025\u0064",_aabgfe ));for _fecdg .HasExtGState (_bcba ){_aabgfe ++;_bcba =_ce .PdfObjectName (_e .Sprintf ("\u0047\u0053\u0025\u0064",_aabgfe ));};_ffbaa :=_ce .MakeDict ();
_ffbaa .Set ("\u0042\u004d",_ce .MakeName ("\u004e\u006f\u0072\u006d\u0061\u006c"));_ffbaa .Set ("\u0043\u0041",_ce .MakeFloat (opt .Alpha ));_ffbaa .Set ("\u0063\u0061",_ce .MakeFloat (opt .Alpha ));_cffcc =_fecdg .AddExtGState (_bcba ,_ffbaa );if _cffcc !=nil {return _cffcc ;
};_afffcc :=_e .Sprintf ("\u0071\u000a"+"\u002f%\u0073\u0020\u0067\u0073\u000a"+"%\u002e\u0030\u0066\u0020\u0030\u00200\u0020\u0025\u002e\u0030\u0066\u0020\u0025\u002e\u0034f\u0020\u0025\u002e4\u0066 \u0063\u006d\u000a"+"\u002f%\u0073\u0020\u0044\u006f\u000a"+"\u0051",_bcba ,_gbda ,_edeac ,_dgfff ,_eaaeb ,_bfffd );
_fecdg .AddContentStreamByString (_afffcc );return nil ;};
// GetPdfVersion gets the version of the PDF used within this document.
func (_gafbf *PdfWriter )GetPdfVersion ()string {return _gafbf .getPdfVersion ()};
// PdfAnnotationPolyLine represents PolyLine annotations.
// (Section 12.5.6.9).
type PdfAnnotationPolyLine struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Vertices _ce .PdfObject ;LE _ce .PdfObject ;BS _ce .PdfObject ;IC _ce .PdfObject ;BE _ce .PdfObject ;IT _ce .PdfObject ;Measure _ce .PdfObject ;};
// PdfInfoTrapped specifies pdf trapped information.
type PdfInfoTrapped string ;func _afdfee (_fbcef _ce .PdfObject )(*PdfFunctionType3 ,error ){_dadfa :=&PdfFunctionType3 {};var _afgbf *_ce .PdfObjectDictionary ;if _dgcb ,_dbbee :=_fbcef .(*_ce .PdfIndirectObject );_dbbee {_cfgfc ,_bcbd :=_dgcb .PdfObject .(*_ce .PdfObjectDictionary );
if !_bcbd {return nil ,_ge .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_dadfa ._badbg =_dgcb ;_afgbf =_cfgfc ;}else if _acgca ,_aabf :=_fbcef .(*_ce .PdfObjectDictionary );_aabf {_afgbf =_acgca ;}else {return nil ,_ge .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");
};_ebbeb ,_ccda :=_ce .TraceToDirectObject (_afgbf .Get ("\u0044\u006f\u006d\u0061\u0069\u006e")).(*_ce .PdfObjectArray );if !_ccda {_ff .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_ge .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 _ebbeb .Len ()!=2{_ff .Log .Error ("\u0044\u006f\u006d\u0061\u0069\u006e\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");return nil ,_ge .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0064\u006f\u006da\u0069\u006e\u0020\u0072an\u0067\u0065");};_bdega ,_cagca :=_ebbeb .ToFloat64Array ();
if _cagca !=nil {return nil ,_cagca ;};_dadfa .Domain =_bdega ;_ebbeb ,_ccda =_ce .TraceToDirectObject (_afgbf .Get ("\u0052\u0061\u006eg\u0065")).(*_ce .PdfObjectArray );if _ccda {if _ebbeb .Len ()< 0||_ebbeb .Len ()%2!=0{return nil ,_ge .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0061\u006e\u0067\u0065");
};_gadgc ,_fdacb :=_ebbeb .ToFloat64Array ();if _fdacb !=nil {return nil ,_fdacb ;};_dadfa .Range =_gadgc ;};_ebbeb ,_ccda =_ce .TraceToDirectObject (_afgbf .Get ("\u0046u\u006e\u0063\u0074\u0069\u006f\u006es")).(*_ce .PdfObjectArray );if !_ccda {_ff .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 ,_ge .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");};_dadfa .Functions =[]PdfFunction {};
for _ ,_gfdde :=range _ebbeb .Elements (){_cffgb ,_ddbb :=_cegfd (_gfdde );if _ddbb !=nil {return nil ,_ddbb ;};_dadfa .Functions =append (_dadfa .Functions ,_cffgb );};_ebbeb ,_ccda =_ce .TraceToDirectObject (_afgbf .Get ("\u0042\u006f\u0075\u006e\u0064\u0073")).(*_ce .PdfObjectArray );
if !_ccda {_ff .Log .Error ("B\u006fu\u006e\u0064\u0073\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_ge .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");
};_dadaa ,_cagca :=_ebbeb .ToFloat64Array ();if _cagca !=nil {return nil ,_cagca ;};_dadfa .Bounds =_dadaa ;if len (_dadfa .Bounds )!=len (_dadfa .Functions )-1{_ff .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 (_dadfa .Bounds ),len (_dadfa .Functions ));
return nil ,_ge .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_ebbeb ,_ccda =_ce .TraceToDirectObject (_afgbf .Get ("\u0045\u006e\u0063\u006f\u0064\u0065")).(*_ce .PdfObjectArray );if !_ccda {_ff .Log .Error ("E\u006ec\u006f\u0064\u0065\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");
return nil ,_ge .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");};_eggfg ,_cagca :=_ebbeb .ToFloat64Array ();
if _cagca !=nil {return nil ,_cagca ;};_dadfa .Encode =_eggfg ;if len (_dadfa .Encode )!=2*len (_dadfa .Functions ){_ff .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 (_dadfa .Encode ),len (_dadfa .Functions ));
return nil ,_ge .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};return _dadfa ,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 _gd .ReadSeeker )(*PdfReader ,error ){const _fcece ="\u006d\u006f\u0064\u0065l:\u004e\u0065\u0077\u0050\u0064\u0066\u0052\u0065\u0061\u0064\u0065\u0072\u004c\u0061z\u0079";return _aaegd (rs ,&ReaderOpts {LazyLoad :true },false ,_fcece );
};
// ToPdfObject converts date to a PDF string object.
func (_cffagc *PdfDate )ToPdfObject ()_ce .PdfObject {_ffgef :=_e .Sprintf ("\u0044\u003a\u0025\u002e\u0034\u0064\u0025\u002e\u0032\u0064\u0025\u002e\u0032\u0064\u0025\u002e\u0032\u0064\u0025\u002e\u0032\u0064\u0025\u002e2\u0064\u0025\u0063\u0025\u002e2\u0064\u0027%\u002e\u0032\u0064\u0027",_cffagc ._cbacb ,_cffagc ._adeec ,_cffagc ._eeegb ,_cffagc ._gbcf ,_cffagc ._ecebf ,_cffagc ._cdbfg ,_cffagc ._accgd ,_cffagc ._gbbfe ,_cffagc ._cfcf );
return _ce .MakeString (_ffgef );};func (_dacfd *PdfWriter )writeBytes (_afca []byte ){if _dacfd ._dcdgg !=nil {return ;};_eadfb ,_gfgbg :=_dacfd ._cafdf .Write (_afca );_dacfd ._cgdfab +=int64 (_eadfb );_dacfd ._dcdgg =_gfgbg ;};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";);
// GetNumComponents returns the number of color components (3 for Lab).
func (_edga *PdfColorLab )GetNumComponents ()int {return 3};
// ColorFromFloats returns a new PdfColor based on the input slice of color
// components. The slice should contain a single element.
func (_baec *PdfColorspaceSpecialIndexed )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=1{return nil ,_ge .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};N :=_baec .Base .GetNumComponents ();_gffeb :=int (vals [0])*N ;
if _gffeb < 0||(_gffeb +N -1)>=len (_baec ._adga ){_ff .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_gffeb );return nil ,ErrColorOutOfRange ;};_bceb :=_baec ._adga [_gffeb :_gffeb +N ];
var _aabc []float64 ;for _ ,_aeea :=range _bceb {_aabc =append (_aabc ,float64 (_aeea )/255.0);};_dddb ,_dbbec :=_baec .Base .ColorFromFloats (_aabc );if _dbbec !=nil {return nil ,_dbbec ;};return _dddb ,nil ;};
// PdfColorPatternType2 represents a color shading pattern type 2 (Axial).
type PdfColorPatternType2 struct{Color PdfColor ;PatternName _ce .PdfObjectName ;};
// PageFromIndirectObject returns the PdfPage and page number for a given indirect object.
func (_geede *PdfReader )PageFromIndirectObject (ind *_ce .PdfIndirectObject )(*PdfPage ,int ,error ){if len (_geede .PageList )!=len (_geede ._cbddb ){return nil ,0,_ge .New ("\u0070\u0061\u0067\u0065\u0020\u006c\u0069\u0073\u0074\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");
};for _cdgebb ,_efdaa :=range _geede ._cbddb {if _efdaa ==ind {return _geede .PageList [_cdgebb ],_cdgebb +1,nil ;};};return nil ,0,_ge .New ("\u0070\u0061\u0067\u0065\u0020\u006e\u006f\u0074\u0020f\u006f\u0075\u006e\u0064");};
// GetContainingPdfObject returns the container of the pattern object (indirect object).
func (_adac *PdfPattern )GetContainingPdfObject ()_ce .PdfObject {return _adac ._gadcb };func _gebff ()string {_cbcgc .Lock ();defer _cbcgc .Unlock ();if len (_daadg )> 0{return _daadg ;};return "\u0055n\u0069\u0044\u006f\u0063 \u002d\u0020\u0068\u0074\u0074p\u003a/\u002fu\u006e\u0069\u0064\u006f\u0063\u002e\u0069o";
};func _aaefeg (_abfgb _ce .PdfObject )[]*_ce .PdfObjectStream {if _abfgb ==nil {return nil ;};_acega ,_aega :=_ce .GetArray (_abfgb );if !_aega ||_acega .Len ()==0{return nil ;};_feedc :=make ([]*_ce .PdfObjectStream ,0,_acega .Len ());for _ ,_febac :=range _acega .Elements (){if _ccfga ,_aeaea :=_ce .GetStream (_febac );
_aeaea {_feedc =append (_feedc ,_ccfga );};};return _feedc ;};
// 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 (_cdcbb *PdfReader )GetObjectNums ()[]int {return _cdcbb ._afda .GetObjectNums ()};
// SetImageHandler sets the image handler used by the package.
func SetImageHandler (imgHandling ImageHandler ){ImageHandling =imgHandling };
// Set applies flag fl to the flag's bitmask and returns the combined flag.
func (_bdbg FieldFlag )Set (fl FieldFlag )FieldFlag {return FieldFlag (_bdbg .Mask ()|fl .Mask ())};func (_addbd *PdfWriter )getPdfVersion ()string {return _e .Sprintf ("\u0025\u0064\u002e%\u0064",_addbd ._facee .Major ,_addbd ._facee .Minor );};func _cfdcf ()string {return _ff .Version };
// AddExtension adds the specified extension to the Extensions dictionary.
// See section 7.1.2 "Extensions Dictionary" (pp. 108-109 PDF32000_2008).
func (_fcfdc *PdfWriter )AddExtension (extName ,baseVersion string ,extLevel int ){_cefbcc ,_effg :=_ce .GetDict (_fcfdc ._bbef .Get ("\u0045\u0078\u0074\u0065\u006e\u0073\u0069\u006f\u006e\u0073"));if !_effg {_cefbcc =_ce .MakeDict ();_fcfdc ._bbef .Set ("\u0045\u0078\u0074\u0065\u006e\u0073\u0069\u006f\u006e\u0073",_cefbcc );
};_bfgaff ,_effg :=_ce .GetDict (_cefbcc .Get (_ce .PdfObjectName (extName )));if !_effg {_bfgaff =_ce .MakeDict ();_cefbcc .Set (_ce .PdfObjectName (extName ),_bfgaff );};if _ecgcf ,_ :=_ce .GetNameVal (_bfgaff .Get ("B\u0061\u0073\u0065\u0056\u0065\u0072\u0073\u0069\u006f\u006e"));
_ecgcf !=baseVersion {_bfgaff .Set ("B\u0061\u0073\u0065\u0056\u0065\u0072\u0073\u0069\u006f\u006e",_ce .MakeName (baseVersion ));};if _egeafa ,_ :=_ce .GetIntVal (_bfgaff .Get ("\u0045\u0078\u0074\u0065\u006e\u0073\u0069\u006f\u006eL\u0065\u0076\u0065\u006c"));
_egeafa !=extLevel {_bfgaff .Set ("\u0045\u0078\u0074\u0065\u006e\u0073\u0069\u006f\u006eL\u0065\u0076\u0065\u006c",_ce .MakeInteger (int64 (extLevel )));};};
// 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 (_fabeg *PdfPage )Size ()(float64 ,float64 ,error ){_ceeda ,_acfc :=_fabeg .GetMediaBox ();if _acfc !=nil {return 0,0,_acfc ;};_fdfb ,_bbad :=_ceeda .Width (),_ceeda .Height ();_bcfbc ,_acfc :=_fabeg .GetRotate ();if _acfc !=nil {_ff .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",_acfc .Error ());
};if _abbf :=_bcfbc ;_abbf %360!=0&&_abbf %90==0{if _adcdc :=(360+_abbf %360)%360;_adcdc ==90||_adcdc ==270{_fdfb ,_bbad =_bbad ,_fdfb ;};};return _fdfb ,_bbad ,nil ;};
// PdfAnnotationFileAttachment represents FileAttachment annotations.
// (Section 12.5.6.15).
type PdfAnnotationFileAttachment struct{*PdfAnnotation ;*PdfAnnotationMarkup ;FS _ce .PdfObject ;Name _ce .PdfObject ;};
// PdfAnnotationFreeText represents FreeText annotations.
// (Section 12.5.6.6).
type PdfAnnotationFreeText struct{*PdfAnnotation ;*PdfAnnotationMarkup ;DA _ce .PdfObject ;Q _ce .PdfObject ;RC _ce .PdfObject ;DS _ce .PdfObject ;CL _ce .PdfObject ;IT _ce .PdfObject ;BE _ce .PdfObject ;RD _ce .PdfObject ;BS _ce .PdfObject ;LE _ce .PdfObject ;
};func _fceadg (_fbdagg *_ce .PdfObjectArray )(float64 ,error ){_abgbc ,_caeeg :=_fbdagg .ToFloat64Array ();if _caeeg !=nil {_ff .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",_fbdagg ,_caeeg );
};switch len (_abgbc ){case 1:return _abgbc [0],nil ;case 3:_aefda :=PdfColorspaceDeviceRGB {};_gdggf ,_efdcfb :=_aefda .ColorFromFloats (_abgbc );if _efdcfb !=nil {return 0.0,_efdcfb ;};return _gdggf .(*PdfColorDeviceRGB ).ToGray ().Val (),nil ;case 4:_ggagf :=PdfColorspaceDeviceCMYK {};
_cbfbd ,_cbgg :=_ggagf .ColorFromFloats (_abgbc );if _cbgg !=nil {return 0.0,_cbgg ;};_adadb ,_cbgg :=_ggagf .ColorToRGB (_cbfbd .(*PdfColorDeviceCMYK ));if _cbgg !=nil {return 0.0,_cbgg ;};return _adadb .(*PdfColorDeviceRGB ).ToGray ().Val (),nil ;};_caeeg =_ge .New ("\u0062a\u0064 \u004d\u0061\u0074\u0074\u0065\u0020\u0063\u006f\u006c\u006f\u0072");
_ff .Log .Error ("\u0074\u006f\u0047ra\u0079\u003a\u0020\u006d\u0061\u0074\u0074\u0065\u003d\u0025\u0073\u0020\u0065\u0072\u0072\u003d\u0025\u0076",_fbdagg ,_caeeg );return 0.0,_caeeg ;};
// ToPdfObject implements interface PdfModel.
func (_gafc *PdfAnnotationRedact )ToPdfObject ()_ce .PdfObject {_gafc .PdfAnnotation .ToPdfObject ();_abgd :=_gafc ._dec ;_gfa :=_abgd .PdfObject .(*_ce .PdfObjectDictionary );_gafc .PdfAnnotationMarkup .appendToPdfDictionary (_gfa );_gfa .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ce .MakeName ("\u0052\u0065\u0064\u0061\u0063\u0074"));
_gfa .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_gafc .QuadPoints );_gfa .SetIfNotNil ("\u0049\u0043",_gafc .IC );_gfa .SetIfNotNil ("\u0052\u004f",_gafc .RO );_gfa .SetIfNotNil ("O\u0076\u0065\u0072\u006c\u0061\u0079\u0054\u0065\u0078\u0074",_gafc .OverlayText );
_gfa .SetIfNotNil ("\u0052\u0065\u0070\u0065\u0061\u0074",_gafc .Repeat );_gfa .SetIfNotNil ("\u0044\u0041",_gafc .DA );_gfa .SetIfNotNil ("\u0051",_gafc .Q );return _abgd ;};
// NewPdfShadingType3 creates an empty shading type 3 dictionary.
func NewPdfShadingType3 ()*PdfShadingType3 {_adbbf :=&PdfShadingType3 {};_adbbf .PdfShading =&PdfShading {};_adbbf .PdfShading ._agcdg =_ce .MakeIndirectObject (_ce .MakeDict ());_adbbf .PdfShading ._aadbc =_adbbf ;return _adbbf ;};
// SetContext sets the sub annotation (context).
func (_gcd *PdfAnnotation )SetContext (ctx PdfModel ){_gcd ._edc =ctx };
// ToPdfObject implements interface PdfModel.
func (_dgfg *PdfAnnotationPolygon )ToPdfObject ()_ce .PdfObject {_dgfg .PdfAnnotation .ToPdfObject ();_fcf :=_dgfg ._dec ;_bab :=_fcf .PdfObject .(*_ce .PdfObjectDictionary );_dgfg .PdfAnnotationMarkup .appendToPdfDictionary (_bab );_bab .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ce .MakeName ("\u0050o\u006c\u0079\u0067\u006f\u006e"));
_bab .SetIfNotNil ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073",_dgfg .Vertices );_bab .SetIfNotNil ("\u004c\u0045",_dgfg .LE );_bab .SetIfNotNil ("\u0042\u0053",_dgfg .BS );_bab .SetIfNotNil ("\u0049\u0043",_dgfg .IC );_bab .SetIfNotNil ("\u0042\u0045",_dgfg .BE );
_bab .SetIfNotNil ("\u0049\u0054",_dgfg .IT );_bab .SetIfNotNil ("\u004de\u0061\u0073\u0075\u0072\u0065",_dgfg .Measure );return _fcf ;};
// ToPdfObject converts the font to a PDF representation.
func (_ccbaa *pdfFontType3 )ToPdfObject ()_ce .PdfObject {if _ccbaa ._degaa ==nil {_ccbaa ._degaa =&_ce .PdfIndirectObject {};};_bbae :=_ccbaa .baseFields ().asPdfObjectDictionary ("\u0054\u0079\u0070e\u0033");_ccbaa ._degaa .PdfObject =_bbae ;if _ccbaa .FirstChar !=nil {_bbae .Set ("\u0046i\u0072\u0073\u0074\u0043\u0068\u0061r",_ccbaa .FirstChar );
};if _ccbaa .LastChar !=nil {_bbae .Set ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072",_ccbaa .LastChar );};if _ccbaa .Widths !=nil {_bbae .Set ("\u0057\u0069\u0064\u0074\u0068\u0073",_ccbaa .Widths );};if _ccbaa .Encoding !=nil {_bbae .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_ccbaa .Encoding );
}else if _ccbaa ._aacfd !=nil {_bdca :=_ccbaa ._aacfd .ToPdfObject ();if _bdca !=nil {_bbae .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_bdca );};};if _ccbaa .FontBBox !=nil {_bbae .Set ("\u0046\u006f\u006e\u0074\u0042\u0042\u006f\u0078",_ccbaa .FontBBox );
};if _ccbaa .FontMatrix !=nil {_bbae .Set ("\u0046\u006f\u006e\u0074\u004d\u0061\u0074\u0069\u0072\u0078",_ccbaa .FontMatrix );};if _ccbaa .CharProcs !=nil {_bbae .Set ("\u0043h\u0061\u0072\u0050\u0072\u006f\u0063s",_ccbaa .CharProcs );};if _ccbaa .Resources !=nil {_bbae .Set ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s",_ccbaa .Resources );
};return _ccbaa ._degaa ;};
// GetAsShadingPattern returns a shading pattern. Check with IsShading() prior to using this.
func (_fega *PdfPattern )GetAsShadingPattern ()*PdfShadingPattern {return _fega ._fbea .(*PdfShadingPattern );};
// SetVersion sets the PDF version of the output file.
func (_bcfa *PdfWriter )SetVersion (majorVersion ,minorVersion int ){_bcfa ._facee .Major =majorVersion ;_bcfa ._facee .Minor =minorVersion ;};func _baef (_ebbd _ce .PdfObject )(map[_dc .CharCode ]float64 ,error ){if _ebbd ==nil {return nil ,nil ;};_ageg ,_ggge :=_ce .GetArray (_ebbd );
if !_ggge {return nil ,nil ;};_bdfee :=map[_dc .CharCode ]float64 {};_fdcae :=_ageg .Len ();for _ddae :=0;_ddae < _fdcae -1;_ddae ++{_eagad :=_ce .TraceToDirectObject (_ageg .Get (_ddae ));_feba ,_bfdf :=_ce .GetIntVal (_eagad );if !_bfdf {return nil ,_e .Errorf ("\u0042a\u0064\u0020\u0066\u006fn\u0074\u0020\u0057\u0020\u006fb\u006a0\u003a \u0069\u003d\u0025\u0064\u0020\u0025\u0023v",_ddae ,_eagad );
};_ddae ++;if _ddae > _fdcae -1{return nil ,_e .Errorf ("\u0042\u0061\u0064\u0020\u0066\u006f\u006e\u0074\u0020\u0057\u0020a\u0072\u0072\u0061\u0079\u003a\u0020\u0061\u0072\u0072\u0032=\u0025\u002b\u0076",_ageg );};_edgad :=_ce .TraceToDirectObject (_ageg .Get (_ddae ));
switch _edgad .(type ){case *_ce .PdfObjectArray :_cbcac ,_ :=_ce .GetArray (_edgad );if _afdff ,_cgbd :=_cbcac .ToFloat64Array ();_cgbd ==nil {for _fgace :=0;_fgace < len (_afdff );_fgace ++{_bdfee [_dc .CharCode (_feba +_fgace )]=_afdff [_fgace ];};}else {return nil ,_e .Errorf ("\u0042\u0061\u0064 \u0066\u006f\u006e\u0074 \u0057\u0020\u0061\u0072\u0072\u0061\u0079 \u006f\u0062\u006a\u0031\u003a\u0020\u0069\u003d\u0025\u0064\u0020\u0025\u0023\u0076",_ddae ,_edgad );
};case *_ce .PdfObjectInteger :_egaba ,_defdb :=_ce .GetIntVal (_edgad );if !_defdb {return nil ,_e .Errorf ("\u0042\u0061d\u0020\u0066\u006f\u006e\u0074\u0020\u0057\u0020\u0069\u006e\u0074\u0020\u006f\u0062\u006a\u0031\u003a\u0020\u0069\u003d\u0025\u0064 %\u0023\u0076",_ddae ,_edgad );
};_ddae ++;if _ddae > _fdcae -1{return nil ,_e .Errorf ("\u0042\u0061\u0064\u0020\u0066\u006f\u006e\u0074\u0020\u0057\u0020a\u0072\u0072\u0061\u0079\u003a\u0020\u0061\u0072\u0072\u0032=\u0025\u002b\u0076",_ageg );};_beebg :=_ageg .Get (_ddae );_fcfde ,_ggdea :=_ce .GetNumberAsFloat (_beebg );
if _ggdea !=nil {return nil ,_e .Errorf ("\u0042\u0061d\u0020\u0066\u006f\u006e\u0074\u0020\u0057\u0020\u0069\u006e\u0074\u0020\u006f\u0062\u006a\u0032\u003a\u0020\u0069\u003d\u0025\u0064 %\u0023\u0076",_ddae ,_beebg );};for _ffcgf :=_feba ;_ffcgf <=_egaba ;
_ffcgf ++{_bdfee [_dc .CharCode (_ffcgf )]=_fcfde ;};default:return nil ,_e .Errorf ("\u0042\u0061\u0064\u0020\u0066\u006f\u006e\u0074\u0020\u0057 \u006f\u0062\u006a\u0031\u0020\u0074\u0079p\u0065\u003a\u0020\u0069\u003d\u0025\u0064\u0020\u0025\u0023\u0076",_ddae ,_edgad );
};};return _bdfee ,nil ;};
// ButtonType represents the subtype of a button field, can be one of:
// - Checkbox (ButtonTypeCheckbox)
// - PushButton (ButtonTypePushButton)
// - RadioButton (ButtonTypeRadioButton)
type ButtonType int ;
// Evaluate runs the function on the passed in slice and returns the results.
func (_badcc *PdfFunctionType3 )Evaluate (x []float64 )([]float64 ,error ){if len (x )!=1{_ff .Log .Error ("\u004f\u006e\u006c\u0079 o\u006e\u0065\u0020\u0069\u006e\u0070\u0075\u0074\u0020\u0061\u006c\u006c\u006f\u0077e\u0064");return nil ,_ge .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");
};return nil ,_ge .New ("\u006e\u006f\u0074\u0020im\u0070\u006c\u0065\u006d\u0065\u006e\u0074\u0065\u0064\u0020\u0079\u0065\u0074");};
// IsCID returns true if the underlying font is CID.
func (_bdfeg *PdfFont )IsCID ()bool {return _bdfeg .baseFields ().isCIDFont ()};
// SetNameDictionary sets the Names entry in the PDF catalog.
// See section 7.7.4 "Name Dictionary" (p. 80 PDF32000_2008).
func (_fdadf *PdfWriter )SetNameDictionary (names _ce .PdfObject )error {if names ==nil {return nil ;};_ff .Log .Trace ("\u0053e\u0074\u0074\u0069\u006e\u0067\u0020\u0063\u0061\u0074\u0061\u006co\u0067\u0020\u004e\u0061\u006d\u0065\u0073\u002e\u002e\u002e");
_fdadf ._bbef .Set ("\u004e\u0061\u006de\u0073",names );return _fdadf .addObjects (names );};
// ColorFromPdfObjects returns a new PdfColor based on the input slice of color
// components. The slice should contain a single PdfObjectFloat element.
func (_acff *PdfColorspaceSpecialIndexed )ColorFromPdfObjects (objects []_ce .PdfObject )(PdfColor ,error ){if len (objects )!=1{return nil ,_ge .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_gebdc ,_dcdc :=_ce .GetNumbersAsFloat (objects );
if _dcdc !=nil {return nil ,_dcdc ;};return _acff .ColorFromFloats (_gebdc );};
// 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 (_cceg *pdfFontSimple )SetEncoder (encoder _dc .TextEncoder ){_cceg ._bbaf =encoder };
// ImageToRGB converts an image with samples in Separation CS to an image with samples specified in
// DeviceRGB CS.
func (_gdda *PdfColorspaceSpecialSeparation )ImageToRGB (img Image )(Image ,error ){_beabd :=_gb .NewReader (img .getBase ());_efcc :=_gf .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),_gdda .AlternateSpace .GetNumComponents (),nil ,img ._cdecc ,nil );
_ggfc :=_gb .NewWriter (_efcc );_afgcc :=_egg .Pow (2,float64 (img .BitsPerComponent ))-1;_ff .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");
_ff .Log .Trace ("\u0054i\u006et\u0054\u0072\u0061\u006e\u0073f\u006f\u0072m\u003a\u0020\u0025\u002b\u0076",_gdda .TintTransform );_afbe :=_gdda .AlternateSpace .DecodeArray ();var (_abeb uint32 ;_bgbf error ;);for {_abeb ,_bgbf =_beabd .ReadSample ();
if _bgbf ==_gd .EOF {break ;};if _bgbf !=nil {return img ,_bgbf ;};_ecbc :=float64 (_abeb )/_afgcc ;_ecccb ,_ffca :=_gdda .TintTransform .Evaluate ([]float64 {_ecbc });if _ffca !=nil {return img ,_ffca ;};for _dfab ,_bagd :=range _ecccb {_ecbd :=_gf .LinearInterpolate (_bagd ,_afbe [_dfab *2],_afbe [_dfab *2+1],0,1);
if _ffca =_ggfc .WriteSample (uint32 (_ecbd *_afgcc ));_ffca !=nil {return img ,_ffca ;};};};return _gdda .AlternateSpace .ImageToRGB (_ffba (&_efcc ));};
// NewPdfActionRendition returns a new "rendition" action.
func NewPdfActionRendition ()*PdfActionRendition {_ggf :=NewPdfAction ();_cegg :=&PdfActionRendition {};_cegg .PdfAction =_ggf ;_ggf .SetContext (_cegg );return _cegg ;};
// SetXObjectFormByName adds the provided XObjectForm to the page resources.
// The added XObjectForm is identified by the specified name.
func (_fafc *PdfPageResources )SetXObjectFormByName (keyName _ce .PdfObjectName ,xform *XObjectForm )error {_efeea :=xform .ToPdfObject ().(*_ce .PdfObjectStream );_abdgc :=_fafc .SetXObjectByName (keyName ,_efeea );return _abdgc ;};
// ToPdfObject implements interface PdfModel.
func (_cef *PdfAnnotationStrikeOut )ToPdfObject ()_ce .PdfObject {_cef .PdfAnnotation .ToPdfObject ();_acgfb :=_cef ._dec ;_cfg :=_acgfb .PdfObject .(*_ce .PdfObjectDictionary );_cef .PdfAnnotationMarkup .appendToPdfDictionary (_cfg );_cfg .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ce .MakeName ("\u0053t\u0072\u0069\u006b\u0065\u004f\u0075t"));
_cfg .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_cef .QuadPoints );return _acgfb ;};
// DecodeArray returns the range of color component values in DeviceGray colorspace.
func (_geef *PdfColorspaceDeviceGray )DecodeArray ()[]float64 {return []float64 {0,1.0}};
// SetPatternByName sets a pattern resource specified by keyName.
func (_ffbcc *PdfPageResources )SetPatternByName (keyName _ce .PdfObjectName ,pattern _ce .PdfObject )error {if _ffbcc .Pattern ==nil {_ffbcc .Pattern =_ce .MakeDict ();};_egffc ,_cbaba :=_ce .GetDict (_ffbcc .Pattern );if !_cbaba {return _ce .ErrTypeError ;
};_egffc .Set (keyName ,pattern );return nil ;};
// DecodeArray returns the range of color component values in the ICCBased colorspace.
func (_gaaa *PdfColorspaceICCBased )DecodeArray ()[]float64 {return _gaaa .Range };type pdfFontSimple struct{fontCommon ;_bgaae *_ce .PdfIndirectObject ;_aggce map[_dc .CharCode ]float64 ;_bbaf _dc .TextEncoder ;_bccdg _dc .TextEncoder ;_cdcd *PdfFontDescriptor ;
// Encoding is subject to limitations that are described in 9.6.6, "Character Encoding".
// BaseFont is derived differently.
FirstChar _ce .PdfObject ;LastChar _ce .PdfObject ;Widths _ce .PdfObject ;Encoding _ce .PdfObject ;_cabcg *_ee .RuneCharSafeMap ;};
// GetOCProperties returns the optional content properties PdfObject.
func (_dacfe *PdfReader )GetOCProperties ()(_ce .PdfObject ,error ){_ddefe :=_dacfe ._cfcdg ;_ecab :=_ddefe .Get ("\u004f\u0043\u0050r\u006f\u0070\u0065\u0072\u0074\u0069\u0065\u0073");_ecab =_ce .ResolveReference (_ecab );if !_dacfe ._cgbdb {_debbgf :=_dacfe .traverseObjectData (_ecab );
if _debbgf !=nil {return nil ,_debbgf ;};};return _ecab ,nil ;};
// PdfAnnotationSquiggly represents Squiggly annotations.
// (Section 12.5.6.10).
type PdfAnnotationSquiggly struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _ce .PdfObject ;};var (ErrRequiredAttributeMissing =_ge .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 =_ge .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0061\u0074\u0074\u0072i\u0062\u0075\u0074\u0065");ErrTypeCheck =_ge .New ("\u0074\u0079\u0070\u0065\u0020\u0063\u0068\u0065\u0063\u006b");_afga =_ge .New ("\u0072\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b\u0020e\u0072\u0072\u006f\u0072");
ErrEncrypted =_ge .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 =_ge .New ("\u0066\u006fn\u0074\u0020\u006eo\u0074\u0020\u0064\u0065\u0066\u0069\u006e\u0065\u0064");
ErrFontNotSupported =_ffae .Errorf ("u\u006e\u0073\u0075\u0070po\u0072t\u0065\u0064\u0020\u0066\u006fn\u0074\u0020\u0028\u0025\u0077\u0029",_ce .ErrNotSupported );ErrType1CFontNotSupported =_ffae .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",_ce .ErrNotSupported );
ErrType3FontNotSupported =_ffae .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",_ce .ErrNotSupported );
ErrTTCmapNotSupported =_ffae .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",_ce .ErrNotSupported );
ErrSignNotEnoughSpace =_ffae .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 =_ffae .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"););
// ImageToRGB converts an image in CMYK32 colorspace to an RGB image.
func (_bbfa *PdfColorspaceDeviceCMYK )ImageToRGB (img Image )(Image ,error ){_ff .Log .Trace ("\u0043\u004d\u0059\u004b\u0033\u0032\u0020\u002d\u003e\u0020\u0052\u0047\u0042");_ff .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 );
_ff .Log .Trace ("\u004c\u0065\u006e \u0064\u0061\u0074\u0061\u003a\u0020\u0025\u0064",len (img .Data ));_ff .Log .Trace ("H\u0065\u0069\u0067\u0068t:\u0020%\u0064\u002c\u0020\u0057\u0069d\u0074\u0068\u003a\u0020\u0025\u0064",img .Height ,img .Width );
_ggeg ,_ffcf :=_gf .NewImage (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),img .ColorComponents ,img .Data ,img ._cdecc ,img ._bffb );if _ffcf !=nil {return Image {},_ffcf ;};_edgf ,_ffcf :=_gf .NRGBAConverter .Convert (_ggeg );if _ffcf !=nil {return Image {},_ffcf ;
};return _ffba (_edgf .Base ()),nil ;};
// GetAsTilingPattern returns a tiling pattern. Check with IsTiling() prior to using this.
func (_abbfd *PdfPattern )GetAsTilingPattern ()*PdfTilingPattern {return _abbfd ._fbea .(*PdfTilingPattern );};
// GetNumComponents returns the number of color components (3 for CalRGB).
func (_dabc *PdfColorCalRGB )GetNumComponents ()int {return 3};
// NewXObjectForm creates a brand new XObject Form. Creates a new underlying PDF object stream primitive.
func NewXObjectForm ()*XObjectForm {_bebed :=&XObjectForm {};_cbfgf :=&_ce .PdfObjectStream {};_cbfgf .PdfObjectDictionary =_ce .MakeDict ();_bebed ._efffe =_cbfgf ;return _bebed ;};
// ToInteger convert to an integer format.
func (_gaef *PdfColorDeviceGray )ToInteger (bits int )uint32 {_bdfc :=_egg .Pow (2,float64 (bits ))-1;return uint32 (_bdfc *_gaef .Val ());};func _aga (_fae _ce .PdfObject )(*PdfBorderStyle ,error ){_faa :=&PdfBorderStyle {};_faa ._facc =_fae ;var _ccea *_ce .PdfObjectDictionary ;
_fae =_ce .TraceToDirectObject (_fae );_ccea ,_eabb :=_fae .(*_ce .PdfObjectDictionary );if !_eabb {return nil ,_ge .New ("\u0074\u0079\u0070\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};if _acfd :=_ccea .Get ("\u0054\u0079\u0070\u0065");_acfd !=nil {_gdbg ,_bfdg :=_acfd .(*_ce .PdfObjectName );
if !_bfdg {_ff .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",_acfd );
}else {if *_gdbg !="\u0042\u006f\u0072\u0064\u0065\u0072"{_ff .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",*_gdbg );};};};if _dagd :=_ccea .Get ("\u0057");
_dagd !=nil {_gbgg ,_agbgc :=_ce .GetNumberAsFloat (_dagd );if _agbgc !=nil {_ff .Log .Debug ("\u0045\u0072\u0072\u006fr \u0072\u0065\u0074\u0072\u0069\u0065\u0076\u0069\u006e\u0067\u0020\u0057\u003a\u0020%\u0076",_agbgc );return nil ,_agbgc ;};_faa .W =&_gbgg ;
};if _geae :=_ccea .Get ("\u0053");_geae !=nil {_cbe ,_gddc :=_geae .(*_ce .PdfObjectName );if !_gddc {return nil ,_ge .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 _eae BorderStyle ;switch *_cbe {case "\u0053":_eae =BorderStyleSolid ;case "\u0044":_eae =BorderStyleDashed ;case "\u0042":_eae =BorderStyleBeveled ;case "\u0049":_eae =BorderStyleInset ;case "\u0055":_eae =BorderStyleUnderline ;default:_ff .Log .Debug ("I\u006e\u0076\u0061\u006cid\u0020s\u0074\u0079\u006c\u0065\u0020n\u0061\u006d\u0065\u0020\u0025\u0073",*_cbe );
return nil ,_ge .New ("\u0073\u0074\u0079\u006ce \u0074\u0079\u0070\u0065\u0020\u0072\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065c\u006b");};_faa .S =&_eae ;};if _ceba :=_ccea .Get ("\u0044");_ceba !=nil {_eeaf ,_fgga :=_ceba .(*_ce .PdfObjectArray );
if !_fgga {_ff .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",_ceba );return nil ,_ge .New ("\u0062o\u0072\u0064\u0065\u0072 \u0044\u0020\u0074\u0079\u0070e\u0020c\u0068e\u0063\u006b\u0020\u0065\u0072\u0072\u006fr");
};_adbf ,_eeae :=_eeaf .ToIntegerArray ();if _eeae !=nil {_ff .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",_eeae );
return nil ,_eeae ;};_faa .D =&_adbf ;};return _faa ,nil ;};func (_ddace *PdfColorspaceCalRGB )String ()string {return "\u0043\u0061\u006c\u0052\u0047\u0042"};func (_gaddfec *pdfCIDFontType0 )baseFields ()*fontCommon {return &_gaddfec .fontCommon };
// ValidateSignatures validates digital signatures in the document.
func (_aedeg *PdfReader )ValidateSignatures (handlers []SignatureHandler )([]SignatureValidationResult ,error ){if _aedeg .AcroForm ==nil {return nil ,nil ;};if _aedeg .AcroForm .Fields ==nil {return nil ,nil ;};type sigFieldPair struct{_affac *PdfSignature ;
_aaagg *PdfField ;_ecfba SignatureHandler ;};var _abggb []*sigFieldPair ;for _ ,_daacf :=range _aedeg .AcroForm .AllFields (){if _daacf .V ==nil {continue ;};if _bcag ,_afcdgg :=_ce .GetDict (_daacf .V );_afcdgg {if _gagg ,_dffdb :=_ce .GetNameVal (_bcag .Get ("\u0054\u0079\u0070\u0065"));
_dffdb &&(_gagg =="\u0053\u0069\u0067"||_gagg =="\u0044\u006f\u0063T\u0069\u006d\u0065\u0053\u0074\u0061\u006d\u0070"){_gdgg ,_cegd :=_ce .GetIndirect (_daacf .V );if !_cegd {_ff .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 ;};_bdcef ,_fbgdg :=_aedeg .newPdfSignatureFromIndirect (_gdgg );if _fbgdg !=nil {return nil ,_fbgdg ;};var _ddbbf SignatureHandler ;for _ ,_cdecd :=range handlers {if _cdecd .IsApplicable (_bdcef ){_ddbbf =_cdecd ;break ;};};_abggb =append (_abggb ,&sigFieldPair {_affac :_bdcef ,_aaagg :_daacf ,_ecfba :_ddbbf });
};};};var _gcbbc []SignatureValidationResult ;for _ ,_fgff :=range _abggb {_ecbda :=SignatureValidationResult {IsSigned :true ,Fields :[]*PdfField {_fgff ._aaagg }};if _fgff ._ecfba ==nil {_ecbda .Errors =append (_ecbda .Errors ,"\u0068a\u006ed\u006c\u0065\u0072\u0020\u006e\u006f\u0074\u0020\u0073\u0065\u0074");
_gcbbc =append (_gcbbc ,_ecbda );continue ;};_cgfgf ,_adfa :=_fgff ._ecfba .NewDigest (_fgff ._affac );if _adfa !=nil {_ecbda .Errors =append (_ecbda .Errors ,"\u0064\u0069\u0067e\u0073\u0074\u0020\u0065\u0072\u0072\u006f\u0072",_adfa .Error ());_gcbbc =append (_gcbbc ,_ecbda );
continue ;};_gagd :=_fgff ._affac .ByteRange ;if _gagd ==nil {_ecbda .Errors =append (_ecbda .Errors ,"\u0042\u0079\u0074\u0065\u0052\u0061\u006e\u0067\u0065\u0020\u006e\u006ft\u0020\u0073\u0065\u0074");_gcbbc =append (_gcbbc ,_ecbda );continue ;};for _abegae :=0;
_abegae < _gagd .Len ();_abegae =_abegae +2{_agagd ,_ :=_ce .GetNumberAsInt64 (_gagd .Get (_abegae ));_gcce ,_ :=_ce .GetIntVal (_gagd .Get (_abegae +1));if _ ,_dadd :=_aedeg ._eggc .Seek (_agagd ,_gd .SeekStart );_dadd !=nil {return nil ,_dadd ;};_fgede :=make ([]byte ,_gcce );
if _ ,_deafe :=_aedeg ._eggc .Read (_fgede );_deafe !=nil {return nil ,_deafe ;};_cgfgf .Write (_fgede );};var _fggd SignatureValidationResult ;if _gbcbc ,_ebbfb :=_fgff ._ecfba .(SignatureHandlerDocMDP );_ebbfb {_fggd ,_adfa =_gbcbc .ValidateWithOpts (_fgff ._affac ,_cgfgf ,SignatureHandlerDocMDPParams {Parser :_aedeg ._afda });
}else {_fggd ,_adfa =_fgff ._ecfba .Validate (_fgff ._affac ,_cgfgf );};if _adfa !=nil {_ff .Log .Debug ("E\u0052\u0052\u004f\u0052: \u0025v\u0020\u0028\u0025\u0054\u0029 \u002d\u0020\u0073\u006b\u0069\u0070",_adfa ,_fgff ._ecfba );_fggd .Errors =append (_fggd .Errors ,_adfa .Error ());
};_fggd .Name =_fgff ._affac .Name .Decoded ();_fggd .Reason =_fgff ._affac .Reason .Decoded ();if _fgff ._affac .M !=nil {_cdafb ,_fddcg :=NewPdfDate (_fgff ._affac .M .String ());if _fddcg !=nil {_ff .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_fddcg );
_fggd .Errors =append (_fggd .Errors ,_fddcg .Error ());continue ;};_fggd .Date =_cdafb ;};_fggd .ContactInfo =_fgff ._affac .ContactInfo .Decoded ();_fggd .Location =_fgff ._affac .Location .Decoded ();_fggd .Fields =_ecbda .Fields ;_gcbbc =append (_gcbbc ,_fggd );
};return _gcbbc ,nil ;};
// ToPdfObject implements interface PdfModel.
func (_aaa *PdfActionImportData )ToPdfObject ()_ce .PdfObject {_aaa .PdfAction .ToPdfObject ();_eda :=_aaa ._bcc ;_ea :=_eda .PdfObject .(*_ce .PdfObjectDictionary );_ea .SetIfNotNil ("\u0053",_ce .MakeName (string (ActionTypeImportData )));if _aaa .F !=nil {_ea .Set ("\u0046",_aaa .F .ToPdfObject ());
};return _eda ;};
// ToPdfObject implements interface PdfModel.
func (_abcg *PdfAnnotationFileAttachment )ToPdfObject ()_ce .PdfObject {_abcg .PdfAnnotation .ToPdfObject ();_fggg :=_abcg ._dec ;_daba :=_fggg .PdfObject .(*_ce .PdfObjectDictionary );_abcg .PdfAnnotationMarkup .appendToPdfDictionary (_daba );_daba .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ce .MakeName ("\u0046\u0069\u006c\u0065\u0041\u0074\u0074\u0061\u0063h\u006d\u0065\u006e\u0074"));
_daba .SetIfNotNil ("\u0046\u0053",_abcg .FS );_daba .SetIfNotNil ("\u004e\u0061\u006d\u0065",_abcg .Name );return _fggg ;};
// ToPdfObject implements interface PdfModel.
func (_ebfca *PdfSignatureReference )ToPdfObject ()_ce .PdfObject {_cfdgd :=_ce .MakeDict ();_cfdgd .SetIfNotNil ("\u0054\u0079\u0070\u0065",_ebfca .Type );_cfdgd .SetIfNotNil ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u004d\u0065\u0074\u0068\u006f\u0064",_ebfca .TransformMethod );
_cfdgd .SetIfNotNil ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u0050\u0061\u0072\u0061\u006d\u0073",_ebfca .TransformParams );_cfdgd .SetIfNotNil ("\u0044\u0061\u0074\u0061",_ebfca .Data );_cfdgd .SetIfNotNil ("\u0044\u0069\u0067e\u0073\u0074\u004d\u0065\u0074\u0068\u006f\u0064",_ebfca .DigestMethod );
return _cfdgd ;};
// PdfFilespec represents a file specification which can either refer to an external or embedded file.
type PdfFilespec struct{Type _ce .PdfObject ;FS _ce .PdfObject ;F _ce .PdfObject ;UF _ce .PdfObject ;DOS _ce .PdfObject ;Mac _ce .PdfObject ;Unix _ce .PdfObject ;ID _ce .PdfObject ;V _ce .PdfObject ;EF _ce .PdfObject ;RF _ce .PdfObject ;Desc _ce .PdfObject ;
CI _ce .PdfObject ;_ddgc _ce .PdfObject ;};
// GetPdfInfo returns the PDF info dictionary.
func (_gebeba *PdfReader )GetPdfInfo ()(*PdfInfo ,error ){_baecb ,_bdgg :=_gebeba .GetTrailer ();if _bdgg !=nil {return nil ,_bdgg ;};var _adfdg *_ce .PdfObjectDictionary ;_gcffee :=_baecb .Get ("\u0049\u006e\u0066\u006f");switch _dbfab :=_gcffee .(type ){case *_ce .PdfObjectReference :_gfefea :=_dbfab ;
_gcffee ,_bdgg =_gebeba .GetIndirectObjectByNumber (int (_gfefea .ObjectNumber ));_gcffee =_ce .TraceToDirectObject (_gcffee );if _bdgg !=nil {return nil ,_bdgg ;};_adfdg ,_ =_gcffee .(*_ce .PdfObjectDictionary );case *_ce .PdfObjectDictionary :_adfdg =_dbfab ;
};if _adfdg ==nil {return nil ,_ge .New ("I\u006e\u0066\u006f\u0020\u0064\u0069c\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u0020\u006eo\u0074\u0020\u0070r\u0065s\u0065\u006e\u0074");};_fabc ,_bdgg :=NewPdfInfoFromObject (_adfdg );if _bdgg !=nil {return nil ,_bdgg ;
};return _fabc ,nil ;};
// DecodeArray returns the range of color component values in CalRGB colorspace.
func (_eaea *PdfColorspaceCalRGB )DecodeArray ()[]float64 {return []float64 {0.0,1.0,0.0,1.0,0.0,1.0};};
// GetPerms returns the Permissions dictionary
func (_dfccf *PdfReader )GetPerms ()*Permissions {return _dfccf ._addg };func (_ggdae *PdfWriter )copyObjects (){_fgdef :=make (map[_ce .PdfObject ]_ce .PdfObject );_fegea :=make ([]_ce .PdfObject ,0,len (_ggdae ._adbee ));_fcdf :=make (map[_ce .PdfObject ]struct{},len (_ggdae ._adbee ));
_dfaag :=make (map[_ce .PdfObject ]struct{});for _ ,_bgdba :=range _ggdae ._adbee {_eadce :=_ggdae .copyObject (_bgdba ,_fgdef ,_dfaag ,false );if _ ,_fdeee :=_dfaag [_bgdba ];_fdeee {continue ;};_fegea =append (_fegea ,_eadce );_fcdf [_eadce ]=struct{}{};
};_ggdae ._adbee =_fegea ;_ggdae ._gdaab =_fcdf ;_ggdae ._dcecd =_ggdae .copyObject (_ggdae ._dcecd ,_fgdef ,nil ,false ).(*_ce .PdfIndirectObject );_ggdae ._bedff =_ggdae .copyObject (_ggdae ._bedff ,_fgdef ,nil ,false ).(*_ce .PdfIndirectObject );if _ggdae ._ggbef !=nil {_ggdae ._ggbef =_ggdae .copyObject (_ggdae ._ggbef ,_fgdef ,nil ,false ).(*_ce .PdfIndirectObject );
};if _ggdae ._ddfff {_ebcde :=make (map[_ce .PdfObject ]int64 );for _gfbec ,_ebaba :=range _ggdae ._fdegda {if _bcafc ,_cdecf :=_fgdef [_gfbec ];_cdecf {_ebcde [_bcafc ]=_ebaba ;}else {_ff .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");
};};_ggdae ._fdegda =_ebcde ;};};
// FieldFlag represents form field flags. Some of the flags can apply to all types of fields whereas other
// flags are specific.
type FieldFlag uint32 ;
// GetContainingPdfObject returns the container of the shading object (indirect object).
func (_efffc *PdfShading )GetContainingPdfObject ()_ce .PdfObject {return _efffc ._agcdg };
// GetXObjectByName returns the XObject with the specified keyName and the object type.
func (_bddb *PdfPageResources )GetXObjectByName (keyName _ce .PdfObjectName )(*_ce .PdfObjectStream ,XObjectType ){if _bddb .XObject ==nil {return nil ,XObjectTypeUndefined ;};_ddge ,_dadfd :=_ce .TraceToDirectObject (_bddb .XObject ).(*_ce .PdfObjectDictionary );
if !_dadfd {_ff .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",_ce .TraceToDirectObject (_bddb .XObject ));
return nil ,XObjectTypeUndefined ;};if _dfbbd :=_ddge .Get (keyName );_dfbbd !=nil {_fdbcf ,_fgbdg :=_ce .GetStream (_dfbbd );if !_fgbdg {_ff .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",_dfbbd );
return nil ,XObjectTypeUndefined ;};_daccd :=_fdbcf .PdfObjectDictionary ;_ccddc ,_fgbdg :=_ce .TraceToDirectObject (_daccd .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065")).(*_ce .PdfObjectName );if !_fgbdg {_ff .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",_daccd .String ());
return nil ,XObjectTypeUndefined ;};if *_ccddc =="\u0049\u006d\u0061g\u0065"{return _fdbcf ,XObjectTypeImage ;}else if *_ccddc =="\u0046\u006f\u0072\u006d"{return _fdbcf ,XObjectTypeForm ;}else if *_ccddc =="\u0050\u0053"{return _fdbcf ,XObjectTypePS ;
}else {_ff .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",*_ccddc );return nil ,XObjectTypeUndefined ;};}else {return nil ,XObjectTypeUndefined ;
};};func _beaa (_eaeba *_ce .PdfObjectDictionary ){_dcfd ,_ccff :=_ce .GetArray (_eaeba .Get ("\u0057\u0069\u0064\u0074\u0068\u0073"));_egeg ,_ffbc :=_ce .GetIntVal (_eaeba .Get ("\u0046i\u0072\u0073\u0074\u0043\u0068\u0061r"));_cceaa ,_dgebe :=_ce .GetIntVal (_eaeba .Get ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072"));
if _ccff &&_ffbc &&_dgebe {_abgag :=_dcfd .Len ();if _abgag !=_cceaa -_egeg +1{_ff .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",_abgag ,_cceaa );
_aggg :=_ce .PdfObjectInteger (_egeg +_abgag -1);_eaeba .Set ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072",&_aggg );};};};
// ColorToRGB converts gray -> rgb for a single color component.
func (_bbgc *PdfColorspaceDeviceGray )ColorToRGB (color PdfColor )(PdfColor ,error ){_debbab ,_acef :=color .(*PdfColorDeviceGray );if !_acef {_ff .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 ,_ge .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};return NewPdfColorDeviceRGB (float64 (*_debbab ),float64 (*_debbab ),float64 (*_debbab )),nil ;};
// NewOutlineBookmark returns an initialized PdfOutlineItem for a given bookmark title and page.
func NewOutlineBookmark (title string ,page *_ce .PdfIndirectObject )*PdfOutlineItem {_ffebd :=PdfOutlineItem {};_ffebd ._edda =&_ffebd ;_ffebd .Title =_ce .MakeString (title );_dfabc :=_ce .MakeArray ();_dfabc .Append (page );_dfabc .Append (_ce .MakeName ("\u0046\u0069\u0074"));
_ffebd .Dest =_dfabc ;return &_ffebd ;};
// GetNumComponents returns the number of color components (1 for Separation).
func (_dfdd *PdfColorspaceSpecialSeparation )GetNumComponents ()int {return 1};
// Write writes out the PDF.
func (_fefea *PdfWriter )Write (writer _gd .Writer )error {_ff .Log .Trace ("\u0057r\u0069\u0074\u0065\u0028\u0029");_gdaef :=_fefea .checkLicense ();if _gdaef !=nil {return _gdaef ;};if _gdaef =_fefea .writeOutlines ();_gdaef !=nil {return _gdaef ;};if _gdaef =_fefea .writeAcroFormFields ();
_gdaef !=nil {return _gdaef ;};_fefea .checkPendingObjects ();if _gdaef =_fefea .writeOutputIntents ();_gdaef !=nil {return _gdaef ;};_fefea .setCatalogVersion ();_fefea .copyObjects ();if _gdaef =_fefea .optimize ();_gdaef !=nil {return _gdaef ;};if _gdaef =_fefea .optimizeDocument ();
_gdaef !=nil {return _gdaef ;};var _ecgge _d .Hash ;if _fefea ._aegf {_ecgge =_ae .New ();writer =_gd .MultiWriter (_ecgge ,writer );};_fefea .setWriter (writer );_dege :=_fefea .checkCrossReferenceStream ();_cgdfba ,_dege :=_fefea .mapObjectStreams (_dege );
_fefea .adjustXRefAffectedVersion (_dege );_fefea .writeDocumentVersion ();_fefea .updateObjectNumbers ();_fefea .writeObjects ();if _gdaef =_fefea .writeObjectsInStreams (_cgdfba );_gdaef !=nil {return _gdaef ;};_gefge :=_fefea ._cgdfab ;var _bgab int ;
for _dbfdc :=range _fefea ._abff {if _dbfdc > _bgab {_bgab =_dbfdc ;};};if _fefea ._aegf {if _gdaef =_fefea .setHashIDs (_ecgge );_gdaef !=nil {return _gdaef ;};};if _dege {if _gdaef =_fefea .writeXRefStreams (_bgab ,_gefge );_gdaef !=nil {return _gdaef ;
};}else {_fefea .writeTrailer (_bgab );};_fefea .makeOffSetReference (_gefge );if _gdaef =_fefea .flushWriter ();_gdaef !=nil {return _gdaef ;};return nil ;};
// NewPdfActionLaunch returns a new "launch" action.
func NewPdfActionLaunch ()*PdfActionLaunch {_de :=NewPdfAction ();_ceb :=&PdfActionLaunch {};_ceb .PdfAction =_de ;_de .SetContext (_ceb );return _ceb ;};func (_bcb *PdfAnnotation )String ()string {_bfd :="";_aeac ,_ace :=_bcb .ToPdfObject ().(*_ce .PdfIndirectObject );
if _ace {_bfd =_e .Sprintf ("\u0025\u0054\u003a\u0020\u0025\u0073",_bcb ._edc ,_aeac .PdfObject .String ());};return _bfd ;};
// ToPdfObject returns the PDF representation of the shading dictionary.
func (_cbega *PdfShadingType7 )ToPdfObject ()_ce .PdfObject {_cbega .PdfShading .ToPdfObject ();_cafa ,_decdb :=_cbega .getShadingDict ();if _decdb !=nil {_ff .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 _cbega .BitsPerCoordinate !=nil {_cafa .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065",_cbega .BitsPerCoordinate );};if _cbega .BitsPerComponent !=nil {_cafa .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_cbega .BitsPerComponent );
};if _cbega .BitsPerFlag !=nil {_cafa .Set ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067",_cbega .BitsPerFlag );};if _cbega .Decode !=nil {_cafa .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_cbega .Decode );};if _cbega .Function !=nil {if len (_cbega .Function )==1{_cafa .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_cbega .Function [0].ToPdfObject ());
}else {_cegcg :=_ce .MakeArray ();for _ ,_bbfe :=range _cbega .Function {_cegcg .Append (_bbfe .ToPdfObject ());};_cafa .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_cegcg );};};return _cbega ._agcdg ;};
// IsPush returns true if the button field represents a push button, false otherwise.
func (_fddc *PdfFieldButton )IsPush ()bool {return _fddc .GetType ()==ButtonTypePush };
// DecodeArray returns the component range values for the Indexed colorspace.
func (_adfd *PdfColorspaceSpecialIndexed )DecodeArray ()[]float64 {return []float64 {0,float64 (_adfd .HiVal )};};
// NewPdfFieldSignature returns an initialized signature field.
func NewPdfFieldSignature (signature *PdfSignature )*PdfFieldSignature {_ggae :=&PdfFieldSignature {};_ggae .PdfField =NewPdfField ();_ggae .PdfField .SetContext (_ggae );_ggae .PdfAnnotationWidget =NewPdfAnnotationWidget ();_ggae .PdfAnnotationWidget .SetContext (_ggae );
_ggae .PdfAnnotationWidget ._dec =_ggae .PdfField ._aadeb ;_ggae .T =_ce .MakeString ("");_ggae .F =_ce .MakeInteger (132);_ggae .V =signature ;return _ggae ;};
// EncryptOptions represents encryption options for an output PDF.
type EncryptOptions struct{Permissions _cca .Permissions ;Algorithm EncryptionAlgorithm ;};
// GetOutlines returns a high-level Outline object, based on the outline tree
// of the reader.
func (_ecac *PdfReader )GetOutlines ()(*Outline ,error ){if _ecac ==nil {return nil ,_ge .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");
};_bfbfea :=_ecac .GetOutlineTree ();if _bfbfea ==nil {return nil ,_ge .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 _acfdea func (_ddcca *PdfOutlineTreeNode ,_cdbe *[]*OutlineItem );_acfdea =func (_baagc *PdfOutlineTreeNode ,_abcaee *[]*OutlineItem ){if _baagc ==nil {return ;};if _baagc ._edda ==nil {_ff .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 _efgca *OutlineItem ;if _eadcg ,_ecbgg :=_baagc ._edda .(*PdfOutlineItem );_ecbgg {_cbfe :=_eadcg .Dest ;if (_cbfe ==nil ||_ce .IsNullObject (_cbfe ))&&_eadcg .A !=nil {if _bfcfb ,_cdgf :=_ce .GetDict (_eadcg .A );_cdgf {if _adgf ,_efdg :=_ce .GetArray (_bfcfb .Get ("\u0044"));
_efdg {_cbfe =_adgf ;}else {_afddd ,_dgfea :=_ce .GetString (_bfcfb .Get ("\u0044"));if !_dgfea {return ;};_cedfc ,_dgfea :=_ecac ._cfcdg .Get ("\u004e\u0061\u006de\u0073").(*_ce .PdfObjectReference );if !_dgfea {return ;};_dcgdb ,_edgdb :=_ecac ._afda .LookupByReference (*_cedfc );
if _edgdb !=nil {_ff .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",_edgdb .Error ());
return ;};_aggcee ,_dgfea :=_dcgdb .(*_ce .PdfIndirectObject );if !_dgfea {return ;};_ebebaa :=map[_ce .PdfObject ]struct{}{};_edgdb =_ecac .buildNameNodes (_aggcee ,_ebebaa );if _edgdb !=nil {_ff .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",_edgdb .Error ());
return ;};for _beeg :=range _ebebaa {_dceb ,_fbecc :=_ce .GetDict (_beeg );if !_fbecc {continue ;};_cfed ,_fbecc :=_ce .GetArray (_dceb .Get ("\u004e\u0061\u006de\u0073"));if !_fbecc {continue ;};for _dacgc ,_gbgf :=range _cfed .Elements (){switch _gbgf .(type ){case *_ce .PdfObjectString :if _gbgf .String ()==_afddd .String (){if _dfde :=_cfed .Get (_dacgc +1);
_dfde !=nil {if _cacec ,_ddabb :=_ce .GetDict (_dfde );_ddabb {_cbfe =_cacec .Get ("\u0044");break ;};};};};};};};};};var _dcdbb OutlineDest ;if _cbfe !=nil &&!_ce .IsNullObject (_cbfe ){if _adegg ,_ecfgc :=_ggab (_cbfe ,_ecac );_ecfgc ==nil {_dcdbb =*_adegg ;
}else {_ff .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",_cbfe ,_ecfgc );
};};_efgca =NewOutlineItem (_eadcg .Title .Decoded (),_dcdbb );*_abcaee =append (*_abcaee ,_efgca );if _eadcg .Next !=nil {_acfdea (_eadcg .Next ,_abcaee );};};if _baagc .First !=nil {if _efgca !=nil {_abcaee =&_efgca .Entries ;};_acfdea (_baagc .First ,_abcaee );
};};_gadfc :=NewOutline ();_acfdea (_bfbfea ,&_gadfc .Entries );return _gadfc ,nil ;};
// ToPdfObject implements interface PdfModel.
func (_gacgd *PdfAnnotationInk )ToPdfObject ()_ce .PdfObject {_gacgd .PdfAnnotation .ToPdfObject ();_cfca :=_gacgd ._dec ;_ddec :=_cfca .PdfObject .(*_ce .PdfObjectDictionary );_gacgd .PdfAnnotationMarkup .appendToPdfDictionary (_ddec );_ddec .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ce .MakeName ("\u0049\u006e\u006b"));
_ddec .SetIfNotNil ("\u0049n\u006b\u004c\u0069\u0073\u0074",_gacgd .InkList );_ddec .SetIfNotNil ("\u0042\u0053",_gacgd .BS );return _cfca ;};func (_bebbf *PdfReader )newPdfAnnotationMovieFromDict (_dcgb *_ce .PdfObjectDictionary )(*PdfAnnotationMovie ,error ){_fdcf :=PdfAnnotationMovie {};
_fdcf .T =_dcgb .Get ("\u0054");_fdcf .Movie =_dcgb .Get ("\u004d\u006f\u0076i\u0065");_fdcf .A =_dcgb .Get ("\u0041");return &_fdcf ,nil ;};func _eacebe (_dgfef _ce .PdfObject ){_ff .Log .Debug ("\u006f\u0062\u006a\u003a\u0020\u0025\u0054\u0020\u0025\u0073",_dgfef ,_dgfef .String ());
if _eafbbf ,_eegcb :=_dgfef .(*_ce .PdfObjectStream );_eegcb {_fccde ,_ebfab :=_ce .DecodeStream (_eafbbf );if _ebfab !=nil {_ff .Log .Debug ("\u0045r\u0072\u006f\u0072\u003a\u0020\u0025v",_ebfab );return ;};_ff .Log .Debug ("D\u0065\u0063\u006f\u0064\u0065\u0064\u003a\u0020\u0025\u0073",_fccde );
}else if _faff ,_accbe :=_dgfef .(*_ce .PdfIndirectObject );_accbe {_ff .Log .Debug ("\u0025\u0054\u0020%\u0076",_faff .PdfObject ,_faff .PdfObject );_ff .Log .Debug ("\u0025\u0073",_faff .PdfObject .String ());};};
// 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 (_cfefc PdfOutputIntentType )String ()string {switch _cfefc {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";};};
// 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 (_ddfb *PdfColorspaceSpecialPattern )ColorFromPdfObjects (objects []_ce .PdfObject )(PdfColor ,error ){if len (objects )< 1{return nil ,_ge .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");
};_aaab :=&PdfColorPattern {};_gaca ,_ebce :=objects [len (objects )-1].(*_ce .PdfObjectName );if !_ebce {_ff .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 ;};_aaab .PatternName =*_gaca ;if len (objects )> 1{_gfcb :=objects [0:len (objects )-1];if _ddfb .UnderlyingCS ==nil {_ff .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 ,_ge .New ("\u0075n\u0064\u0065\u0072\u006cy\u0069\u006e\u0067\u0020\u0043S\u0020n\u006ft\u0020\u0064\u0065\u0066\u0069\u006e\u0065d");};_bbeca ,_cbbb :=_ddfb .UnderlyingCS .ColorFromPdfObjects (_gfcb );if _cbbb !=nil {_ff .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",_cbbb );
return nil ,_cbbb ;};_aaab .Color =_bbeca ;};return _aaab ,nil ;};
// ToPdfObject returns a PDF object representation of the outline.
func (_cbff *Outline )ToPdfObject ()_ce .PdfObject {return _cbff .ToPdfOutline ().ToPdfObject ()};
// 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{_afda *_ce .PdfParser ;_eecdg _ce .PdfObject ;_bcgea *_ce .PdfIndirectObject ;_eaedf *_ce .PdfObjectDictionary ;_cbddb []*_ce .PdfIndirectObject ;PageList []*PdfPage ;_ebcc int ;_cfcdg *_ce .PdfObjectDictionary ;_dbbfe *PdfOutlineTreeNode ;
AcroForm *PdfAcroForm ;DSS *DSS ;Rotate *int64 ;_addg *Permissions ;_fdeb map[*PdfReader ]*PdfReader ;_eedce []*PdfReader ;_aedda *modelManager ;_cgbdb bool ;_efdafe map[_ce .PdfObject ]struct{};_eggc _gd .ReadSeeker ;_feegf string ;_gbffe bool ;_dcggg *ReaderOpts ;
_cdffg bool ;};
// 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 (_ffeda *LTV )EnableAll (extraCerts []*_eg .Certificate )error {_faadg :=_ffeda ._fdfad ._fcda .AcroForm ;for _ ,_degb :=range _faadg .AllFields (){_eabda ,_ :=_degb .GetContext ().(*PdfFieldSignature );if _eabda ==nil {continue ;};_agcc :=_eabda .V ;
if _eegd :=_ffeda .validateSig (_agcc );_eegd !=nil {_ff .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",_eegd );
};if _feagc :=_ffeda .Enable (_agcc ,extraCerts );_feagc !=nil {return _feagc ;};};return nil ;};func (_deca *PdfReader )newPdfAnnotationPolyLineFromDict (_cggf *_ce .PdfObjectDictionary )(*PdfAnnotationPolyLine ,error ){_gdga :=PdfAnnotationPolyLine {};
_aeeg ,_gfge :=_deca .newPdfAnnotationMarkupFromDict (_cggf );if _gfge !=nil {return nil ,_gfge ;};_gdga .PdfAnnotationMarkup =_aeeg ;_gdga .Vertices =_cggf .Get ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073");_gdga .LE =_cggf .Get ("\u004c\u0045");
_gdga .BS =_cggf .Get ("\u0042\u0053");_gdga .IC =_cggf .Get ("\u0049\u0043");_gdga .BE =_cggf .Get ("\u0042\u0045");_gdga .IT =_cggf .Get ("\u0049\u0054");_gdga .Measure =_cggf .Get ("\u004de\u0061\u0073\u0075\u0072\u0065");return &_gdga ,nil ;};
// ToPdfObject convert PdfInfo to pdf object.
func (_acbba *PdfInfo )ToPdfObject ()_ce .PdfObject {_affg :=_ce .MakeDict ();_affg .SetIfNotNil ("\u0054\u0069\u0074l\u0065",_acbba .Title );_affg .SetIfNotNil ("\u0041\u0075\u0074\u0068\u006f\u0072",_acbba .Author );_affg .SetIfNotNil ("\u0053u\u0062\u006a\u0065\u0063\u0074",_acbba .Subject );
_affg .SetIfNotNil ("\u004b\u0065\u0079\u0077\u006f\u0072\u0064\u0073",_acbba .Keywords );_affg .SetIfNotNil ("\u0043r\u0065\u0061\u0074\u006f\u0072",_acbba .Creator );_affg .SetIfNotNil ("\u0050\u0072\u006f\u0064\u0075\u0063\u0065\u0072",_acbba .Producer );
_affg .SetIfNotNil ("\u0054r\u0061\u0070\u0070\u0065\u0064",_acbba .Trapped );if _acbba .CreationDate !=nil {_affg .SetIfNotNil ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065",_acbba .CreationDate .ToPdfObject ());};if _acbba .ModifiedDate !=nil {_affg .SetIfNotNil ("\u004do\u0064\u0044\u0061\u0074\u0065",_acbba .ModifiedDate .ToPdfObject ());
};for _ ,_gadaec :=range _acbba ._ecfddd .Keys (){_affg .SetIfNotNil (_gadaec ,_acbba ._ecfddd .Get (_gadaec ));};return _affg ;};
// 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 (_gcgde *PdfFont )CharcodesToUnicode (charcodes []_dc .CharCode )[]rune {_fggge ,_ ,_ :=_gcgde .CharcodesToUnicodeWithStats (charcodes );return _fggge ;};
// PdfActionHide represents a hide action.
type PdfActionHide struct{*PdfAction ;T _ce .PdfObject ;H _ce .PdfObject ;};func (_ffaga *pdfFontType0 )getFontDescriptor ()*PdfFontDescriptor {if _ffaga ._daebd ==nil &&_ffaga .DescendantFont !=nil {return _ffaga .DescendantFont .FontDescriptor ();};return _ffaga ._daebd ;
};const (ButtonTypeCheckbox ButtonType =iota ;ButtonTypePush ButtonType =iota ;ButtonTypeRadio ButtonType =iota ;);func _eefcd (_gcba *_ce .PdfObjectDictionary )(*PdfShadingType4 ,error ){_dacgf :=PdfShadingType4 {};_dabbf :=_gcba .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065");
if _dabbf ==nil {_ff .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 ;};_ddaaf ,_dedfe :=_dabbf .(*_ce .PdfObjectInteger );if !_dedfe {_ff .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",_dabbf );
return nil ,_ce .ErrTypeError ;};_dacgf .BitsPerCoordinate =_ddaaf ;_dabbf =_gcba .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074");if _dabbf ==nil {_ff .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 ;};_ddaaf ,_dedfe =_dabbf .(*_ce .PdfObjectInteger );if !_dedfe {_ff .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",_dabbf );
return nil ,_ce .ErrTypeError ;};_dacgf .BitsPerComponent =_ddaaf ;_dabbf =_gcba .Get ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067");if _dabbf ==nil {_ff .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 ;};_ddaaf ,_dedfe =_dabbf .(*_ce .PdfObjectInteger );if !_dedfe {_ff .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",_dabbf );
return nil ,_ce .ErrTypeError ;};_dacgf .BitsPerComponent =_ddaaf ;_dabbf =_gcba .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");if _dabbf ==nil {_ff .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 ;};_bfeef ,_dedfe :=_dabbf .(*_ce .PdfObjectArray );if !_dedfe {_ff .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",_dabbf );
return nil ,_ce .ErrTypeError ;};_dacgf .Decode =_bfeef ;_dabbf =_gcba .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");if _dabbf ==nil {_ff .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 ;};_dacgf .Function =[]PdfFunction {};if _bfaee ,_faebe :=_dabbf .(*_ce .PdfObjectArray );_faebe {for _ ,_aeedg :=range _bfaee .Elements (){_eggd ,_eebc :=_cegfd (_aeedg );if _eebc !=nil {_ff .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",_eebc );
return nil ,_eebc ;};_dacgf .Function =append (_dacgf .Function ,_eggd );};}else {_acagcg ,_fdefb :=_cegfd (_dabbf );if _fdefb !=nil {_ff .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",_fdefb );
return nil ,_fdefb ;};_dacgf .Function =append (_dacgf .Function ,_acagcg );};return &_dacgf ,nil ;};
// AlphaMap performs mapping of alpha data for transformations. Allows custom filtering of alpha data etc.
func (_afgcb *Image )AlphaMap (mapFunc AlphaMapFunc ){for _bgca ,_fbbgf :=range _afgcb ._cdecc {_afgcb ._cdecc [_bgca ]=mapFunc (_fbbgf );};};
// SetAlpha sets the alpha layer for the image.
func (_cdgbf *Image )SetAlpha (alpha []byte ){_cdgbf ._cdecc =alpha };
// 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 (_abdg *PdfColorspaceLab )ColorFromPdfObjects (objects []_ce .PdfObject )(PdfColor ,error ){if len (objects )!=3{return nil ,_ge .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_dgca ,_gbab :=_ce .GetNumbersAsFloat (objects );
if _gbab !=nil {return nil ,_gbab ;};return _abdg .ColorFromFloats (_dgca );};
// GetNumComponents returns the number of color components of the colorspace device.
// Returns 3 for an RGB device.
func (_aaec *PdfColorspaceDeviceRGB )GetNumComponents ()int {return 3};
// ToPdfObject implements interface PdfModel.
func (_fcfe *PdfAnnotationHighlight )ToPdfObject ()_ce .PdfObject {_fcfe .PdfAnnotation .ToPdfObject ();_ffc :=_fcfe ._dec ;_egbc :=_ffc .PdfObject .(*_ce .PdfObjectDictionary );_fcfe .PdfAnnotationMarkup .appendToPdfDictionary (_egbc );_egbc .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ce .MakeName ("\u0048i\u0067\u0068\u006c\u0069\u0067\u0068t"));
_egbc .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_fcfe .QuadPoints );return _ffc ;};
// Insert adds a top level outline item in the outline,
// at the specified index.
func (_acacb *Outline )Insert (index uint ,item *OutlineItem ){_cegca :=uint (len (_acacb .Entries ));if index > _cegca {index =_cegca ;};_acacb .Entries =append (_acacb .Entries [:index ],append ([]*OutlineItem {item },_acacb .Entries [index :]...)...);
};
// 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 (_cdec *PdfFont )RunesToCharcodeBytes (data []rune )([]byte ,int ){var _efbc []_dc .TextEncoder ;var _adeac _dc .CMapEncoder ;if _bdad :=_cdec .baseFields ()._dgfcg ;_bdad !=nil {_adeac =_dc .NewCMapEncoder ("",nil ,_bdad );};_cadc :=_cdec .Encoder ();
if _cadc !=nil {switch _dabb :=_cadc .(type ){case _dc .SimpleEncoder :_gfac :=_dabb .BaseName ();if _ ,_ggcgc :=_fdaee [_gfac ];_ggcgc {_efbc =append (_efbc ,_cadc );};};};if len (_efbc )==0{if _cdec .baseFields ()._dgfcg !=nil {_efbc =append (_efbc ,_adeac );
};if _cadc !=nil {_efbc =append (_efbc ,_cadc );};};var _afce _ag .Buffer ;var _cegf int ;for _ ,_fgacf :=range data {var _ecgf bool ;for _ ,_efbb :=range _efbc {if _daca :=_efbb .Encode (string (_fgacf ));len (_daca )> 0{_afce .Write (_daca );_ecgf =true ;
break ;};};if !_ecgf {_ff .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",_fgacf );
_cegf ++;};};if _cegf !=0{_ff .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 ),_cegf ,_cdec ,_efbc );
};return _afce .Bytes (),_cegf ;};
// PdfColorspaceLab is a L*, a*, b* 3 component colorspace.
type PdfColorspaceLab struct{WhitePoint []float64 ;BlackPoint []float64 ;Range []float64 ;_eefd *_ce .PdfIndirectObject ;};
// ColorAt returns the color of the image pixel specified by the x and y coordinates.
func (_eeefg *Image )ColorAt (x ,y int )(_cc .Color ,error ){_fcgg :=_gf .BytesPerLine (int (_eeefg .Width ),int (_eeefg .BitsPerComponent ),_eeefg .ColorComponents );switch _eeefg .ColorComponents {case 1:return _gf .ColorAtGrayscale (x ,y ,int (_eeefg .BitsPerComponent ),_fcgg ,_eeefg .Data ,_eeefg ._bffb );
case 3:return _gf .ColorAtNRGBA (x ,y ,int (_eeefg .Width ),_fcgg ,int (_eeefg .BitsPerComponent ),_eeefg .Data ,_eeefg ._cdecc ,_eeefg ._bffb );case 4:return _gf .ColorAtCMYK (x ,y ,int (_eeefg .Width ),_eeefg .Data ,_eeefg ._bffb );};_ff .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",_eeefg .ColorComponents ,_eeefg .BitsPerComponent );
return nil ,_ge .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");};
// GetCharMetrics returns the char metrics for character code `code`.
func (_cbdf pdfFontType3 )GetCharMetrics (code _dc .CharCode )(_ee .CharMetrics ,bool ){if _cbgdb ,_afdgf :=_cbdf ._afbb [code ];_afdgf {return _ee .CharMetrics {Wx :_cbgdb },true ;};if _ee .IsStdFont (_ee .StdFontName (_cbdf ._egacd )){return _ee .CharMetrics {Wx :250},true ;
};return _ee .CharMetrics {},false ;};
// PdfAnnotationPopup represents Popup annotations.
// (Section 12.5.6.14).
type PdfAnnotationPopup struct{*PdfAnnotation ;Parent _ce .PdfObject ;Open _ce .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{_bggef *_ce .PdfObjectDictionary ;Type *_ce .PdfObjectName ;TransformMethod *_ce .PdfObjectName ;TransformParams _ce .PdfObject ;Data _ce .PdfObject ;DigestMethod *_ce .PdfObjectName ;};
// SetDocInfo set document info.
// This will overwrite any globally declared document info.
func (_degdc *PdfWriter )SetDocInfo (info *PdfInfo ){_degdc .setDocInfo (info .ToPdfObject ())};
// ToPdfObject converts the font to a PDF representation.
func (_gdde *pdfFontType0 )ToPdfObject ()_ce .PdfObject {if _gdde ._cebdd ==nil {_gdde ._cebdd =&_ce .PdfIndirectObject {};};_cbaa :=_gdde .baseFields ().asPdfObjectDictionary ("\u0054\u0079\u0070e\u0030");_gdde ._cebdd .PdfObject =_cbaa ;if _gdde .Encoding !=nil {_cbaa .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_gdde .Encoding );
}else if _gdde ._fbfa !=nil {_cbaa .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_gdde ._fbfa .ToPdfObject ());};if _gdde .DescendantFont !=nil {_cbaa .Set ("\u0044e\u0073c\u0065\u006e\u0064\u0061\u006e\u0074\u0046\u006f\u006e\u0074\u0073",_ce .MakeArray (_gdde .DescendantFont .ToPdfObject ()));
};return _gdde ._cebdd ;};
// 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 _ce .StreamEncoder )(*XObjectImage ,error ){_bfafg :=NewXObjectImage ();return UpdateXObjectImageFromImage (_bfafg ,img ,cs ,encoder );};func _ffaba (_gbcgd *_ce .PdfObjectDictionary ,_ceafg *fontCommon ,_degff _dc .TextEncoder )(*pdfFontSimple ,error ){_egdbd :=_faadb (_ceafg );
_egdbd ._bccdg =_degff ;if _degff ==nil {_gbac :=_gbcgd .Get ("\u0046i\u0072\u0073\u0074\u0043\u0068\u0061r");if _gbac ==nil {_gbac =_ce .MakeInteger (0);};_egdbd .FirstChar =_gbac ;_cgcga ,_bfdgf :=_ce .GetIntVal (_gbac );if !_bfdgf {_ff .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",_gbac );
return nil ,_ce .ErrTypeError ;};_bdgdb :=_dc .CharCode (_cgcga );_gbac =_gbcgd .Get ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072");if _gbac ==nil {_gbac =_ce .MakeInteger (255);};_egdbd .LastChar =_gbac ;_cgcga ,_bfdgf =_ce .GetIntVal (_gbac );if !_bfdgf {_ff .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",_gbac );
return nil ,_ce .ErrTypeError ;};_bcgb :=_dc .CharCode (_cgcga );_egdbd ._aggce =make (map[_dc .CharCode ]float64 );_gbac =_gbcgd .Get ("\u0057\u0069\u0064\u0074\u0068\u0073");if _gbac !=nil {_egdbd .Widths =_gbac ;_gedg ,_efdaf :=_ce .GetArray (_gbac );
if !_efdaf {_ff .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",_gbac );return nil ,_ce .ErrTypeError ;
};_cbed ,_caeab :=_gedg .ToFloat64Array ();if _caeab !=nil {_ff .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 ,_caeab ;};if len (_cbed )!=int (_bcgb -_bdgdb +1){_ff .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",_bcgb -_bdgdb +1,len (_cbed ));
return nil ,_ce .ErrRangeError ;};for _acce ,_fbcd :=range _cbed {_egdbd ._aggce [_bdgdb +_dc .CharCode (_acce )]=_fbcd ;};};};_egdbd .Encoding =_ce .TraceToDirectObject (_gbcgd .Get ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067"));return _egdbd ,nil ;
};func (_bffbf *PdfReader )newPdfPageFromDict (_fcead *_ce .PdfObjectDictionary )(*PdfPage ,error ){_ecae :=NewPdfPage ();_ecae ._cbcaa =_fcead ;_ecae ._caab =*_fcead ;_agaag :=*_fcead ;_eadb ,_ceabf :=_agaag .Get ("\u0054\u0079\u0070\u0065").(*_ce .PdfObjectName );
if !_ceabf {return nil ,_ge .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 *_eadb !="\u0050\u0061\u0067\u0065"{return nil ,_ge .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 _dbdgg :=_agaag .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");_dbdgg !=nil {_ecae .Parent =_dbdgg ;};if _bbafe :=_agaag .Get ("\u004c\u0061\u0073t\u004d\u006f\u0064\u0069\u0066\u0069\u0065\u0064");_bbafe !=nil {_ecdc ,_eccdg :=_ce .GetString (_bbafe );
if !_eccdg {return nil ,_ge .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");};
_bbgfd ,_dcffb :=NewPdfDate (_ecdc .Str ());if _dcffb !=nil {return nil ,_dcffb ;};_ecae .LastModified =&_bbgfd ;};if _gdfae :=_agaag .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");_gdfae !=nil &&!_ce .IsNullObject (_gdfae ){_efcb ,_gfefe :=_ce .GetDict (_gdfae );
if !_gfefe {return nil ,_e .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0065\u0073\u006f\u0075\u0072\u0063e\u0020d\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u0020\u0028\u0025\u0054\u0029",_gdfae );};var _dcbag error ;_ecae .Resources ,_dcbag =NewPdfPageResourcesFromDict (_efcb );
if _dcbag !=nil {return nil ,_dcbag ;};}else {_ffggd ,_ccfa :=_ecae .getParentResources ();if _ccfa !=nil {return nil ,_ccfa ;};if _ffggd ==nil {_ffggd =NewPdfPageResources ();};_ecae .Resources =_ffggd ;};if _bgcae :=_agaag .Get ("\u004d\u0065\u0064\u0069\u0061\u0042\u006f\u0078");
_bgcae !=nil {_gdbdd ,_beabbc :=_ce .GetArray (_bgcae );if !_beabbc {return nil ,_ge .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 _abcge error ;
_ecae .MediaBox ,_abcge =NewPdfRectangle (*_gdbdd );if _abcge !=nil {return nil ,_abcge ;};};if _fabbc :=_agaag .Get ("\u0043r\u006f\u0070\u0042\u006f\u0078");_fabbc !=nil {_fbefc ,_gecfa :=_ce .GetArray (_fabbc );if !_gecfa {return nil ,_ge .New ("\u0070a\u0067\u0065\u0020\u0043r\u006f\u0070\u0042\u006f\u0078 \u006eo\u0074 \u0061\u006e\u0020\u0061\u0072\u0072\u0061y");
};var _fffaef error ;_ecae .CropBox ,_fffaef =NewPdfRectangle (*_fbefc );if _fffaef !=nil {return nil ,_fffaef ;};};if _efgee :=_agaag .Get ("\u0042\u006c\u0065\u0065\u0064\u0042\u006f\u0078");_efgee !=nil {_fffda ,_gdbae :=_ce .GetArray (_efgee );if !_gdbae {return nil ,_ge .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 _geaaa error ;_ecae .BleedBox ,_geaaa =NewPdfRectangle (*_fffda );if _geaaa !=nil {return nil ,_geaaa ;};};if _gegdd :=_agaag .Get ("\u0054r\u0069\u006d\u0042\u006f\u0078");_gegdd !=nil {_dbedc ,_eedg :=_ce .GetArray (_gegdd );if !_eedg {return nil ,_ge .New ("\u0070a\u0067\u0065\u0020\u0054r\u0069\u006d\u0042\u006f\u0078 \u006eo\u0074 \u0061\u006e\u0020\u0061\u0072\u0072\u0061y");
};var _fgba error ;_ecae .TrimBox ,_fgba =NewPdfRectangle (*_dbedc );if _fgba !=nil {return nil ,_fgba ;};};if _agbdaa :=_agaag .Get ("\u0041\u0072\u0074\u0042\u006f\u0078");_agbdaa !=nil {_dfag ,_cgcgad :=_ce .GetArray (_agbdaa );if !_cgcgad {return nil ,_ge .New ("\u0070a\u0067\u0065\u0020\u0041\u0072\u0074\u0042\u006f\u0078\u0020\u006eo\u0074\u0020\u0061\u006e\u0020\u0061\u0072\u0072\u0061\u0079");
};var _gfefc error ;_ecae .ArtBox ,_gfefc =NewPdfRectangle (*_dfag );if _gfefc !=nil {return nil ,_gfefc ;};};if _ggag :=_agaag .Get ("\u0042\u006f\u0078C\u006f\u006c\u006f\u0072\u0049\u006e\u0066\u006f");_ggag !=nil {_ecae .BoxColorInfo =_ggag ;};if _edcee :=_agaag .Get ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073");
_edcee !=nil {_ecae .Contents =_edcee ;};if _caafae :=_agaag .Get ("\u0052\u006f\u0074\u0061\u0074\u0065");_caafae !=nil {_ebbgf ,_gfcae :=_ce .GetNumberAsInt64 (_caafae );if _gfcae !=nil {return nil ,_ge .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");
};_ecae .Rotate =&_ebbgf ;};if _cade :=_agaag .Get ("\u0047\u0072\u006fu\u0070");_cade !=nil {_ecae .Group =_cade ;};if _eagab :=_agaag .Get ("\u0054\u0068\u0075m\u0062");_eagab !=nil {_ecae .Thumb =_eagab ;};if _fafdf :=_agaag .Get ("\u0042");_fafdf !=nil {_ecae .B =_fafdf ;
};if _egee :=_agaag .Get ("\u0044\u0075\u0072");_egee !=nil {_ecae .Dur =_egee ;};if _gcdfa :=_agaag .Get ("\u0054\u0072\u0061n\u0073");_gcdfa !=nil {_ecae .Trans =_gcdfa ;};if _ceec :=_agaag .Get ("\u0041\u0041");_ceec !=nil {_ecae .AA =_ceec ;};if _dageg :=_agaag .Get ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");
_dageg !=nil {_ecae .Metadata =_dageg ;};if _ggegg :=_agaag .Get ("\u0050i\u0065\u0063\u0065\u0049\u006e\u0066o");_ggegg !=nil {_ecae .PieceInfo =_ggegg ;};if _adggd :=_agaag .Get ("\u0053\u0074\u0072\u0075\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074\u0073");
_adggd !=nil {_ecae .StructParents =_adggd ;};if _fgaa :=_agaag .Get ("\u0049\u0044");_fgaa !=nil {_ecae .ID =_fgaa ;};if _bdaea :=_agaag .Get ("\u0050\u005a");_bdaea !=nil {_ecae .PZ =_bdaea ;};if _efab :=_agaag .Get ("\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006fn\u0049\u006e\u0066\u006f");
_efab !=nil {_ecae .SeparationInfo =_efab ;};if _bbfaf :=_agaag .Get ("\u0054\u0061\u0062\u0073");_bbfaf !=nil {_ecae .Tabs =_bbfaf ;};if _eecde :=_agaag .Get ("T\u0065m\u0070\u006c\u0061\u0074\u0065\u0049\u006e\u0073t\u0061\u006e\u0074\u0069at\u0065\u0064");
_eecde !=nil {_ecae .TemplateInstantiated =_eecde ;};if _fegfa :=_agaag .Get ("\u0050r\u0065\u0073\u0053\u0074\u0065\u0070s");_fegfa !=nil {_ecae .PresSteps =_fegfa ;};if _fgfb :=_agaag .Get ("\u0055\u0073\u0065\u0072\u0055\u006e\u0069\u0074");_fgfb !=nil {_ecae .UserUnit =_fgfb ;
};if _dcgaf :=_agaag .Get ("\u0056\u0050");_dcgaf !=nil {_ecae .VP =_dcgaf ;};if _bcddc :=_agaag .Get ("\u0041\u006e\u006e\u006f\u0074\u0073");_bcddc !=nil {_ecae .Annots =_bcddc ;};_ecae ._cagde =_bffbf ;return _ecae ,nil ;};
// ImageToRGB convert an indexed image to RGB.
func (_adbef *PdfColorspaceSpecialIndexed )ImageToRGB (img Image )(Image ,error ){N :=_adbef .Base .GetNumComponents ();if N < 1{return Image {},_e .Errorf ("\u0062\u0061d \u0062\u0061\u0073e\u0020\u0063\u006f\u006cors\u0070ac\u0065\u0020\u004e\u0075\u006d\u0043\u006fmp\u006f\u006e\u0065\u006e\u0074\u0073\u003d%\u0064",N );
};_fdgfg :=_gf .NewImageBase (int (img .Width ),int (img .Height ),8,N ,nil ,img ._cdecc ,img ._bffb );_bcgag :=_gb .NewReader (img .getBase ());_aadf :=_gb .NewWriter (_fdgfg );var (_ddfeg uint32 ;_cgde int ;_dcagf error ;);for {_ddfeg ,_dcagf =_bcgag .ReadSample ();
if _dcagf ==_gd .EOF {break ;}else if _dcagf !=nil {return img ,_dcagf ;};_cgde =int (_ddfeg );_ff .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",_cgde ,N ,len (_adbef ._adga ));
if (_cgde +1)*N > len (_adbef ._adga ){_cgde =len (_adbef ._adga )/N -1;_ff .Log .Trace ("C\u006c\u0069\u0070\u0070in\u0067 \u0074\u006f\u0020\u0069\u006ed\u0065\u0078\u003a\u0020\u0025\u0064",_cgde );if _cgde < 0{_ff .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 _baea :=_cgde *N ;_baea < (_cgde +1)*N ;_baea ++{if _dcagf =_aadf .WriteSample (uint32 (_adbef ._adga [_baea ]));_dcagf !=nil {return img ,_dcagf ;};};};return _adbef .Base .ImageToRGB (_ffba (&_fdgfg ));};
// Duplicate creates a duplicate page based on the current one and returns it.
func (_fceae *PdfPage )Duplicate ()*PdfPage {_acfg :=*_fceae ;_acfg ._cbcaa =_ce .MakeDict ();_acfg ._acbbb =_ce .MakeIndirectObject (_acfg ._cbcaa );_acfg ._caab =*_acfg ._cbcaa ;return &_acfg ;};
// GetContainingPdfObject returns the container of the PdfAcroForm (indirect object).
func (_bbccf *PdfAcroForm )GetContainingPdfObject ()_ce .PdfObject {return _bbccf ._febb };
// PdfFieldButton represents a button field which includes push buttons, checkboxes, and radio buttons.
type PdfFieldButton struct{*PdfField ;Opt *_ce .PdfObjectArray ;_ffff *Image ;};
// 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 *_ce .PdfObjectInteger ;ColorSpace PdfColorspace ;Background *_ce .PdfObjectArray ;BBox *PdfRectangle ;AntiAlias *_ce .PdfObjectBool ;_aadbc PdfModel ;_agcdg _ce .PdfObject ;};
// 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 *_ce .PdfParser ;DiffPolicy _aef .DiffPolicy ;};
// HasExtGState checks if ExtGState name is available.
func (_daceg *PdfPage )HasExtGState (name _ce .PdfObjectName )bool {if _daceg .Resources ==nil {return false ;};if _daceg .Resources .ExtGState ==nil {return false ;};_eedbge ,_bgdae :=_ce .TraceToDirectObject (_daceg .Resources .ExtGState ).(*_ce .PdfObjectDictionary );
if !_bgdae {_ff .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",_ce .TraceToDirectObject (_daceg .Resources .ExtGState ));
return false ;};_bfgc :=_eedbge .Get (name );_agbeb :=_bfgc !=nil ;return _agbeb ;};
// NewPdfColorspaceDeviceCMYK returns a new CMYK32 colorspace object.
func NewPdfColorspaceDeviceCMYK ()*PdfColorspaceDeviceCMYK {return &PdfColorspaceDeviceCMYK {}};
// K returns the value of the key component of the color.
func (_ggba *PdfColorDeviceCMYK )K ()float64 {return _ggba [3]};func _gfabd (_abege *_ce .PdfObjectDictionary )(*PdfShadingType2 ,error ){_fdeff :=PdfShadingType2 {};_aagcg :=_abege .Get ("\u0043\u006f\u006f\u0072\u0064\u0073");if _aagcg ==nil {_ff .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 ;};_agcee ,_abbe :=_aagcg .(*_ce .PdfObjectArray );if !_abbe {_ff .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",_aagcg );
return nil ,_ge .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};if _agcee .Len ()!=4{_ff .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",_agcee .Len ());
return nil ,_ge .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0061\u0074\u0074\u0072i\u0062\u0075\u0074\u0065");};_fdeff .Coords =_agcee ;if _bcfcfa :=_abege .Get ("\u0044\u006f\u006d\u0061\u0069\u006e");_bcfcfa !=nil {_bcfcfa =_ce .TraceToDirectObject (_bcfcfa );
_egagd ,_egacde :=_bcfcfa .(*_ce .PdfObjectArray );if !_egacde {_ff .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",_bcfcfa );return nil ,_ge .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");
};_fdeff .Domain =_egagd ;};_aagcg =_abege .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");if _aagcg ==nil {_ff .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 ;};_fdeff .Function =[]PdfFunction {};if _ddedf ,_bcefg :=_aagcg .(*_ce .PdfObjectArray );_bcefg {for _ ,_ccdeb :=range _ddedf .Elements (){_dgefc ,_cbeae :=_cegfd (_ccdeb );if _cbeae !=nil {_ff .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",_cbeae );
return nil ,_cbeae ;};_fdeff .Function =append (_fdeff .Function ,_dgefc );};}else {_ddgba ,_gbdggf :=_cegfd (_aagcg );if _gbdggf !=nil {_ff .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",_gbdggf );
return nil ,_gbdggf ;};_fdeff .Function =append (_fdeff .Function ,_ddgba );};if _ffbe :=_abege .Get ("\u0045\u0078\u0074\u0065\u006e\u0064");_ffbe !=nil {_ffbe =_ce .TraceToDirectObject (_ffbe );_abfga ,_cbaef :=_ffbe .(*_ce .PdfObjectArray );if !_cbaef {_ff .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",_ffbe );
return nil ,_ce .ErrTypeError ;};if _abfga .Len ()!=2{_ff .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",_abfga .Len ());return nil ,ErrInvalidAttribute ;
};_fdeff .Extend =_abfga ;};return &_fdeff ,nil ;};
// SetOptimizer sets the optimizer to optimize PDF before writing.
func (_cbbdf *PdfWriter )SetOptimizer (optimizer Optimizer ){_cbbdf ._bcged =optimizer };
// 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 (_decag *LTV )EnableChain (chain []*_eg .Certificate )error {return _decag .enable (nil ,chain ,"")};
// Encoder returns the font's text encoder.
func (_ggeeb *pdfFontSimple )Encoder ()_dc .TextEncoder {if _ggeeb ._bbaf !=nil {return _ggeeb ._bbaf ;};if _ggeeb ._bccdg !=nil {return _ggeeb ._bccdg ;};_agaa ,_ :=_dc .NewSimpleTextEncoder ("\u0053\u0074a\u006e\u0064\u0061r\u0064\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",nil );
return _agaa ;};
// ToPdfObject return the CalGray colorspace as a PDF object (name dictionary).
func (_bea *PdfColorspaceCalGray )ToPdfObject ()_ce .PdfObject {_dcef :=&_ce .PdfObjectArray {};_dcef .Append (_ce .MakeName ("\u0043a\u006c\u0047\u0072\u0061\u0079"));_cgae :=_ce .MakeDict ();if _bea .WhitePoint !=nil {_cgae .Set ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074",_ce .MakeArray (_ce .MakeFloat (_bea .WhitePoint [0]),_ce .MakeFloat (_bea .WhitePoint [1]),_ce .MakeFloat (_bea .WhitePoint [2])));
}else {_ff .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 _bea .BlackPoint !=nil {_cgae .Set ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074",_ce .MakeArray (_ce .MakeFloat (_bea .BlackPoint [0]),_ce .MakeFloat (_bea .BlackPoint [1]),_ce .MakeFloat (_bea .BlackPoint [2])));
};_cgae .Set ("\u0047\u0061\u006dm\u0061",_ce .MakeFloat (_bea .Gamma ));_dcef .Append (_cgae );if _bea ._aeadd !=nil {_bea ._aeadd .PdfObject =_dcef ;return _bea ._aeadd ;};return _dcef ;};func (_eadc *PdfReader )newPdfAnnotationSoundFromDict (_agbe *_ce .PdfObjectDictionary )(*PdfAnnotationSound ,error ){_gfdg :=PdfAnnotationSound {};
_gffef ,_cacfd :=_eadc .newPdfAnnotationMarkupFromDict (_agbe );if _cacfd !=nil {return nil ,_cacfd ;};_gfdg .PdfAnnotationMarkup =_gffef ;_gfdg .Name =_agbe .Get ("\u004e\u0061\u006d\u0065");_gfdg .Sound =_agbe .Get ("\u0053\u006f\u0075n\u0064");return &_gfdg ,nil ;
};
// NewPdfPageResourcesColorspaces returns a new PdfPageResourcesColorspaces object.
func NewPdfPageResourcesColorspaces ()*PdfPageResourcesColorspaces {_ddea :=&PdfPageResourcesColorspaces {};_ddea .Names =[]string {};_ddea .Colorspaces =map[string ]PdfColorspace {};_ddea ._bcgd =&_ce .PdfIndirectObject {};return _ddea ;};
// GetNumComponents returns the number of color components of the underlying
// colorspace device.
func (_cfba *PdfColorspaceSpecialPattern )GetNumComponents ()int {return _cfba .UnderlyingCS .GetNumComponents ();};
// ToPdfObject returns the choice field dictionary within an indirect object (container).
func (_gccg *PdfFieldChoice )ToPdfObject ()_ce .PdfObject {_gccg .PdfField .ToPdfObject ();_fggeg :=_gccg ._aadeb ;_facbg :=_fggeg .PdfObject .(*_ce .PdfObjectDictionary );_facbg .Set ("\u0046\u0054",_ce .MakeName ("\u0043\u0068"));if _gccg .Opt !=nil {_facbg .Set ("\u004f\u0070\u0074",_gccg .Opt );
};if _gccg .TI !=nil {_facbg .Set ("\u0054\u0049",_gccg .TI );};if _gccg .I !=nil {_facbg .Set ("\u0049",_gccg .I );};return _fggeg ;};
// GetRotate gets the inheritable rotate value, either from the page
// or a higher up page/pages struct.
func (_adafd *PdfPage )GetRotate ()(int64 ,error ){if _adafd .Rotate !=nil {return *_adafd .Rotate ,nil ;};_ffafa :=_adafd .Parent ;for _ffafa !=nil {_ecbga ,_cdbfb :=_ce .GetDict (_ffafa );if !_cdbfb {return 0,_ge .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 _acea :=_ecbga .Get ("\u0052\u006f\u0074\u0061\u0074\u0065");_acea !=nil {_fgfga ,_ffffd :=_ce .GetInt (_acea );if !_ffffd {return 0,_ge .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0072\u006f\u0074a\u0074\u0065\u0020\u0076al\u0075\u0065");};if _fgfga !=nil {return int64 (*_fgfga ),nil ;
};return 0,_ge .New ("\u0072\u006f\u0074\u0061te\u0020\u0076\u0061\u006c\u0075\u0065\u0020\u0069\u0073\u0020\u006e\u0069\u006c");};_ffafa =_ecbga .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");};return 0,_ge .New ("\u0072o\u0074a\u0074\u0065\u0020\u006e\u006ft\u0020\u0064e\u0066\u0069\u006e\u0065\u0064");
};
// WriteString outputs the object as it is to be written to file.
func (_bgbba *pdfSignDictionary )WriteString ()string {_bgbba ._debdg =0;_bgbba ._eadgf =0;_bgbba ._fgee =0;_bgbba ._dfdea =0;_bbgcb :=_ag .NewBuffer (nil );_bbgcb .WriteString ("\u003c\u003c");for _ ,_gcegce :=range _bgbba .Keys (){_bcfeg :=_bgbba .Get (_gcegce );
switch _gcegce {case "\u0042y\u0074\u0065\u0052\u0061\u006e\u0067e":_bbgcb .WriteString (_gcegce .WriteString ());_bbgcb .WriteString ("\u0020");_bgbba ._fgee =_bbgcb .Len ();_bbgcb .WriteString (_bcfeg .WriteString ());_bbgcb .WriteString ("\u0020");_bgbba ._dfdea =_bbgcb .Len ()-1;
case "\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073":_bbgcb .WriteString (_gcegce .WriteString ());_bbgcb .WriteString ("\u0020");_bgbba ._debdg =_bbgcb .Len ();_bbgcb .WriteString (_bcfeg .WriteString ());_bbgcb .WriteString ("\u0020");_bgbba ._eadgf =_bbgcb .Len ()-1;
default:_bbgcb .WriteString (_gcegce .WriteString ());_bbgcb .WriteString ("\u0020");_bbgcb .WriteString (_bcfeg .WriteString ());};};_bbgcb .WriteString ("\u003e\u003e");return _bbgcb .String ();};func (_aada *PdfReader )newPdfActionTransFromDict (_bge *_ce .PdfObjectDictionary )(*PdfActionTrans ,error ){return &PdfActionTrans {Trans :_bge .Get ("\u0054\u0072\u0061n\u0073")},nil ;
};func (_gdabdc *PdfWriter )makeOffSetReference (_gggdd int64 ){_gaebd :=_e .Sprintf ("\u0073\u0074\u0061\u0072\u0074\u0078\u0072\u0065\u0066\u000a\u0025\u0064\u000a",_gggdd );_gdabdc .writeString (_gaebd );_gdabdc .writeString ("\u0025\u0025\u0045\u004f\u0046\u000a");
};
// CharMetrics represents width and height metrics of a glyph.
type CharMetrics =_ee .CharMetrics ;
// 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 ){_bdfa ,_afefd :=_dd .Open (filePath );if _afefd !=nil {_ff .Log .Debug ("\u0045\u0052\u0052OR\u003a\u0020\u006f\u0070\u0065\u006e\u0069\u006e\u0067\u0020\u0066\u0069\u006c\u0065\u003a\u0020\u0025\u0076",_afefd );
return nil ,_afefd ;};defer _bdfa .Close ();return NewCompositePdfFontFromTTF (_bdfa );};
// GetFontDescriptor returns the font descriptor for `font`.
func (_fffa PdfFont )GetFontDescriptor ()(*PdfFontDescriptor ,error ){return _fffa ._dace .getFontDescriptor (),nil ;};func _dgfda (_bacd *_ce .PdfObjectStream )(*PdfFunctionType0 ,error ){_efgaf :=&PdfFunctionType0 {};_efgaf ._ffgdd =_bacd ;_eaebc :=_bacd .PdfObjectDictionary ;
_cbaec ,_gdfb :=_ce .TraceToDirectObject (_eaebc .Get ("\u0044\u006f\u006d\u0061\u0069\u006e")).(*_ce .PdfObjectArray );if !_gdfb {_ff .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_ge .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 _cbaec .Len ()< 0||_cbaec .Len ()%2!=0{_ff .Log .Error ("\u0044\u006f\u006d\u0061\u0069\u006e\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");return nil ,_ge .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0064\u006f\u006da\u0069\u006e\u0020\u0072an\u0067\u0065");
};_efgaf .NumInputs =_cbaec .Len ()/2;_dceea ,_fbce :=_cbaec .ToFloat64Array ();if _fbce !=nil {return nil ,_fbce ;};_efgaf .Domain =_dceea ;_cbaec ,_gdfb =_ce .TraceToDirectObject (_eaebc .Get ("\u0052\u0061\u006eg\u0065")).(*_ce .PdfObjectArray );if !_gdfb {_ff .Log .Error ("\u0052\u0061\u006e\u0067e \u006e\u006f\u0074\u0020\u0073\u0070\u0065\u0063\u0069\u0066\u0069\u0065\u0064");
return nil ,_ge .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 _cbaec .Len ()< 0||_cbaec .Len ()%2!=0{return nil ,_ge .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0061\u006e\u0067\u0065");
};_efgaf .NumOutputs =_cbaec .Len ()/2;_eefa ,_fbce :=_cbaec .ToFloat64Array ();if _fbce !=nil {return nil ,_fbce ;};_efgaf .Range =_eefa ;_cbaec ,_gdfb =_ce .TraceToDirectObject (_eaebc .Get ("\u0053\u0069\u007a\u0065")).(*_ce .PdfObjectArray );if !_gdfb {_ff .Log .Error ("\u0053i\u007ae\u0020\u006e\u006f\u0074\u0020s\u0070\u0065c\u0069\u0066\u0069\u0065\u0064");
return nil ,_ge .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");};_fcebc ,_fbce :=_cbaec .ToIntegerArray ();
if _fbce !=nil {return nil ,_fbce ;};if len (_fcebc )!=_efgaf .NumInputs {_ff .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 ,_ge .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_efgaf .Size =_fcebc ;_babg ,_gdfb :=_ce .TraceToDirectObject (_eaebc .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0053\u0061\u006d\u0070\u006c\u0065")).(*_ce .PdfObjectInteger );
if !_gdfb {_ff .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 ,_ge .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 *_babg !=1&&*_babg !=2&&*_babg !=4&&*_babg !=8&&*_babg !=12&&*_babg !=16&&*_babg !=24&&*_babg !=32{_ff .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",*_babg );
return nil ,_ge .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_efgaf .BitsPerSample =int (*_babg );_efgaf .Order =1;_fbbce ,_gdfb :=_ce .TraceToDirectObject (_eaebc .Get ("\u004f\u0072\u0064e\u0072")).(*_ce .PdfObjectInteger );
if _gdfb {if *_fbbce !=1&&*_fbbce !=3{_ff .Log .Error ("\u0049n\u0076a\u006c\u0069\u0064\u0020\u006fr\u0064\u0065r\u0020\u0028\u0025\u0064\u0029",*_fbbce );return nil ,_ge .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_efgaf .Order =int (*_fbbce );
};_cbaec ,_gdfb =_ce .TraceToDirectObject (_eaebc .Get ("\u0045\u006e\u0063\u006f\u0064\u0065")).(*_ce .PdfObjectArray );if _gdfb {_deab ,_gfdbf :=_cbaec .ToFloat64Array ();if _gfdbf !=nil {return nil ,_gfdbf ;};_efgaf .Encode =_deab ;};_cbaec ,_gdfb =_ce .TraceToDirectObject (_eaebc .Get ("\u0044\u0065\u0063\u006f\u0064\u0065")).(*_ce .PdfObjectArray );
if _gdfb {_gebge ,_abbc :=_cbaec .ToFloat64Array ();if _abbc !=nil {return nil ,_abbc ;};_efgaf .Decode =_gebge ;};_aecb ,_fbce :=_ce .DecodeStream (_bacd );if _fbce !=nil {return nil ,_fbce ;};_efgaf ._becgb =_aecb ;return _efgaf ,nil ;};
// SetPdfProducer sets the Producer attribute of the output PDF.
func SetPdfProducer (producer string ){_cbcgc .Lock ();defer _cbcgc .Unlock ();_cdgba =producer };func (_bgbda *PdfWriter )seekByName (_egabaf _ce .PdfObject ,_edca []string ,_fccbd string )([]_ce .PdfObject ,error ){_ff .Log .Trace ("\u0053\u0065\u0065\u006b\u0020\u0062\u0079\u0020\u006e\u0061\u006d\u0065.\u002e\u0020\u0025\u0054",_egabaf );
var _agfcf []_ce .PdfObject ;if _cdedb ,_eagd :=_egabaf .(*_ce .PdfIndirectObject );_eagd {return _bgbda .seekByName (_cdedb .PdfObject ,_edca ,_fccbd );};if _efcbe ,_adeggd :=_egabaf .(*_ce .PdfObjectStream );_adeggd {return _bgbda .seekByName (_efcbe .PdfObjectDictionary ,_edca ,_fccbd );
};if _bfced ,_gbcec :=_egabaf .(*_ce .PdfObjectDictionary );_gbcec {_ff .Log .Trace ("\u0044\u0069\u0063\u0074");for _ ,_efcaf :=range _bfced .Keys (){_deeg :=_bfced .Get (_efcaf );if string (_efcaf )==_fccbd {_agfcf =append (_agfcf ,_deeg );};for _ ,_geceb :=range _edca {if string (_efcaf )==_geceb {_ff .Log .Trace ("\u0046\u006f\u006c\u006c\u006f\u0077\u0020\u006b\u0065\u0079\u0020\u0025\u0073",_geceb );
_gcegg ,_eeee :=_bgbda .seekByName (_deeg ,_edca ,_fccbd );if _eeee !=nil {return _agfcf ,_eeee ;};_agfcf =append (_agfcf ,_gcegg ...);break ;};};};return _agfcf ,nil ;};return _agfcf ,nil ;};
// NewPdfColorDeviceCMYK returns a new CMYK32 color.
func NewPdfColorDeviceCMYK (c ,m ,y ,k float64 )*PdfColorDeviceCMYK {_ebbf :=PdfColorDeviceCMYK {c ,m ,y ,k };return &_ebbf ;};
// ToImage converts an object to an Image which can be transformed or saved out.
// The image data is decoded and the Image returned.
func (_dcaaa *XObjectImage )ToImage ()(*Image ,error ){_aecbga :=&Image {};if _dcaaa .Height ==nil {return nil ,_ge .New ("\u0068e\u0069\u0067\u0068\u0074\u0020\u0061\u0074\u0074\u0072\u0069\u0062u\u0074\u0065\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");
};_aecbga .Height =*_dcaaa .Height ;if _dcaaa .Width ==nil {return nil ,_ge .New ("\u0077\u0069\u0064th\u0020\u0061\u0074\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};_aecbga .Width =*_dcaaa .Width ;if _dcaaa .BitsPerComponent ==nil {switch _dcaaa .Filter .(type ){case *_ce .CCITTFaxEncoder ,*_ce .JBIG2Encoder :_aecbga .BitsPerComponent =1;
case *_ce .LZWEncoder ,*_ce .RunLengthEncoder :_aecbga .BitsPerComponent =8;default:return nil ,_ge .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 {_aecbga .BitsPerComponent =*_dcaaa .BitsPerComponent ;};_aecbga .ColorComponents =_dcaaa .ColorSpace .GetNumComponents ();_dcaaa ._gefdf .Set ("\u0043o\u006co\u0072\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074\u0073",_ce .MakeInteger (int64 (_aecbga .ColorComponents )));
_dgcaff ,_aaagga :=_ce .DecodeStream (_dcaaa ._gefdf );if _aaagga !=nil {return nil ,_aaagga ;};_aecbga .Data =_dgcaff ;if _dcaaa .Decode !=nil {_ffcbf ,_ffaad :=_dcaaa .Decode .(*_ce .PdfObjectArray );if !_ffaad {_ff .Log .Debug ("I\u006e\u0076\u0061\u006cid\u0020D\u0065\u0063\u006f\u0064\u0065 \u006f\u0062\u006a\u0065\u0063\u0074");
return nil ,_ge .New ("\u0069\u006e\u0076a\u006c\u0069\u0064\u0020\u0074\u0079\u0070\u0065");};_ebadd ,_dceeg :=_ffcbf .ToFloat64Array ();if _dceeg !=nil {return nil ,_dceeg ;};switch _dcaaa .ColorSpace .(type ){case *PdfColorspaceDeviceCMYK :_addfd :=_dcaaa .ColorSpace .DecodeArray ();
if _addfd [0]==_ebadd [0]&&_addfd [1]==_ebadd [1]&&_addfd [2]==_ebadd [2]&&_addfd [3]==_ebadd [3]{_aecbga ._bffb =_ebadd ;};default:_aecbga ._bffb =_ebadd ;};};return _aecbga ,nil ;};
// SetCatalogMetadata sets the catalog metadata (XMP) stream object.
func (_bgfbb *PdfWriter )SetCatalogMetadata (meta _ce .PdfObject )error {if meta ==nil {_bgfbb ._bbef .Remove ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");return nil ;};_ccabe ,_cccgd :=_ce .GetStream (meta );if !_cccgd {return _ge .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");
};_bgfbb .addObject (_ccabe );_bgfbb ._bbef .Set ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061",_ccabe );return nil ;};
// RemovePage removes a page by number.
func (_fcdaf *PdfAppender )RemovePage (pageNum int ){_afed :=pageNum -1;_fcdaf ._ggdc =append (_fcdaf ._ggdc [0:_afed ],_fcdaf ._ggdc [pageNum :]...);};func _bcegg (_feff _ee .StdFont )pdfFontSimple {_afcdg :=_feff .Descriptor ();return pdfFontSimple {fontCommon :fontCommon {_baafb :"\u0054\u0079\u0070e\u0031",_egacd :_feff .Name ()},_cabcg :_feff .GetMetricsTable (),_cdcd :&PdfFontDescriptor {FontName :_ce .MakeName (string (_afcdg .Name )),FontFamily :_ce .MakeName (_afcdg .Family ),FontWeight :_ce .MakeFloat (float64 (_afcdg .Weight )),Flags :_ce .MakeInteger (int64 (_afcdg .Flags )),FontBBox :_ce .MakeArrayFromFloats (_afcdg .BBox [:]),ItalicAngle :_ce .MakeFloat (_afcdg .ItalicAngle ),Ascent :_ce .MakeFloat (_afcdg .Ascent ),Descent :_ce .MakeFloat (_afcdg .Descent ),CapHeight :_ce .MakeFloat (_afcdg .CapHeight ),XHeight :_ce .MakeFloat (_afcdg .XHeight ),StemV :_ce .MakeFloat (_afcdg .StemV ),StemH :_ce .MakeFloat (_afcdg .StemH )},_bccdg :_feff .Encoder ()};
};
// PdfActionRendition represents a Rendition action.
type PdfActionRendition struct{*PdfAction ;R _ce .PdfObject ;AN _ce .PdfObject ;OP _ce .PdfObject ;JS _ce .PdfObject ;};
// PdfFieldChoice represents a choice field which includes scrollable list boxes and combo boxes.
type PdfFieldChoice struct{*PdfField ;Opt *_ce .PdfObjectArray ;TI *_ce .PdfObjectInteger ;I *_ce .PdfObjectArray ;};
// 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 _gd .ReadSeeker )(*PdfFont ,error ){const _cafdd =_dc .CharCode (32);const _gadg =_dc .CharCode (255);_ecee ,_ebeb :=_fcg .ReadAll (r );if _ebeb !=nil {_ff .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",_ebeb );
return nil ,_ebeb ;};_afdbe ,_ebeb :=_ee .TtfParse (_ag .NewReader (_ecee ));if _ebeb !=nil {_ff .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",_ebeb );
return nil ,_ebeb ;};_cgdg :=&pdfFontSimple {_aggce :make (map[_dc .CharCode ]float64 ),fontCommon :fontCommon {_baafb :"\u0054\u0072\u0075\u0065\u0054\u0079\u0070\u0065"}};_cgdg ._bbaf =_dc .NewWinAnsiEncoder ();_cgdg ._egacd =_afdbe .PostScriptName ;
_cgdg .FirstChar =_ce .MakeInteger (int64 (_cafdd ));_cgdg .LastChar =_ce .MakeInteger (int64 (_gadg ));_gdbec :=1000.0/float64 (_afdbe .UnitsPerEm );if len (_afdbe .Widths )<=0{return nil ,_ge .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");
};_cbbgb :=_gdbec *float64 (_afdbe .Widths [0]);_dccff :=make ([]float64 ,0,_gadg -_cafdd +1);for _cgaac :=_cafdd ;_cgaac <=_gadg ;_cgaac ++{_ffceb ,_fdaff :=_cgdg .Encoder ().CharcodeToRune (_cgaac );if !_fdaff {_ff .Log .Debug ("\u0052u\u006e\u0065\u0020\u006eo\u0074\u0020\u0066\u006f\u0075n\u0064 \u0028c\u006f\u0064\u0065\u003a\u0020\u0025\u0064)",_cgaac );
_dccff =append (_dccff ,_cbbgb );continue ;};_befaa ,_bgdag :=_afdbe .Chars [_ffceb ];if !_bgdag {_ff .Log .Debug ("R\u0075\u006e\u0065\u0020no\u0074 \u0069\u006e\u0020\u0054\u0054F\u0020\u0043\u0068\u0061\u0072\u0073");_dccff =append (_dccff ,_cbbgb );
continue ;};_fbbed :=_gdbec *float64 (_afdbe .Widths [_befaa ]);_dccff =append (_dccff ,_fbbed );};_cgdg .Widths =_ce .MakeIndirectObject (_ce .MakeArrayFromFloats (_dccff ));if len (_dccff )< int (_gadg -_cafdd +1){_ff .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 (_dccff ),255-32+1);
return nil ,_ce .ErrRangeError ;};for _cfbe :=_cafdd ;_cfbe <=_gadg ;_cfbe ++{_cgdg ._aggce [_cfbe ]=_dccff [_cfbe -_cafdd ];};_cgdg .Encoding =_ce .MakeName ("\u0057i\u006eA\u006e\u0073\u0069\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067");_fdb :=&PdfFontDescriptor {};
_fdb .FontName =_ce .MakeName (_afdbe .PostScriptName );_fdb .Ascent =_ce .MakeFloat (_gdbec *float64 (_afdbe .TypoAscender ));_fdb .Descent =_ce .MakeFloat (_gdbec *float64 (_afdbe .TypoDescender ));_fdb .CapHeight =_ce .MakeFloat (_gdbec *float64 (_afdbe .CapHeight ));
_fdb .FontBBox =_ce .MakeArrayFromFloats ([]float64 {_gdbec *float64 (_afdbe .Xmin ),_gdbec *float64 (_afdbe .Ymin ),_gdbec *float64 (_afdbe .Xmax ),_gdbec *float64 (_afdbe .Ymax )});_fdb .ItalicAngle =_ce .MakeFloat (_afdbe .ItalicAngle );_fdb .MissingWidth =_ce .MakeFloat (_gdbec *float64 (_afdbe .Widths [0]));
_gfeb ,_ebeb :=_ce .MakeStream (_ecee ,_ce .NewFlateEncoder ());if _ebeb !=nil {_ff .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",_ebeb );
return nil ,_ebeb ;};_gfeb .PdfObjectDictionary .Set ("\u004ce\u006e\u0067\u0074\u0068\u0031",_ce .MakeInteger (int64 (len (_ecee ))));_fdb .FontFile2 =_gfeb ;if _afdbe .Bold {_fdb .StemV =_ce .MakeInteger (120);}else {_fdb .StemV =_ce .MakeInteger (70);
};_gaeff :=_ecef ;if _afdbe .IsFixedPitch {_gaeff |=_afdc ;};if _afdbe .ItalicAngle !=0{_gaeff |=_egdef ;};_fdb .Flags =_ce .MakeInteger (int64 (_gaeff ));_cgdg ._daebd =_fdb ;_fbfd :=&PdfFont {_dace :_cgdg };return _fbfd ,nil ;};
// ToPdfObject implements interface PdfModel.
func (_dgbf *PdfActionResetForm )ToPdfObject ()_ce .PdfObject {_dgbf .PdfAction .ToPdfObject ();_cebg :=_dgbf ._bcc ;_eeed :=_cebg .PdfObject .(*_ce .PdfObjectDictionary );_eeed .SetIfNotNil ("\u0053",_ce .MakeName (string (ActionTypeResetForm )));_eeed .SetIfNotNil ("\u0046\u0069\u0065\u006c\u0064\u0073",_dgbf .Fields );
_eeed .SetIfNotNil ("\u0046\u006c\u0061g\u0073",_dgbf .Flags );return _cebg ;};func (_afgc *PdfReader )newPdfActionSetOCGStateFromDict (_ffd *_ce .PdfObjectDictionary )(*PdfActionSetOCGState ,error ){return &PdfActionSetOCGState {State :_ffd .Get ("\u0053\u0074\u0061t\u0065"),PreserveRB :_ffd .Get ("\u0050\u0072\u0065\u0073\u0065\u0072\u0076\u0065\u0052\u0042")},nil ;
};
// ToPdfObject returns the PDF representation of the function.
func (_egcdfb *PdfFunctionType0 )ToPdfObject ()_ce .PdfObject {if _egcdfb ._ffgdd ==nil {_egcdfb ._ffgdd =&_ce .PdfObjectStream {};};_egce :=_ce .MakeDict ();_egce .Set ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065",_ce .MakeInteger (0));
_gdaa :=&_ce .PdfObjectArray {};for _ ,_dfede :=range _egcdfb .Domain {_gdaa .Append (_ce .MakeFloat (_dfede ));};_egce .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_gdaa );_effag :=&_ce .PdfObjectArray {};for _ ,_gcag :=range _egcdfb .Range {_effag .Append (_ce .MakeFloat (_gcag ));
};_egce .Set ("\u0052\u0061\u006eg\u0065",_effag );_cagb :=&_ce .PdfObjectArray {};for _ ,_egfd :=range _egcdfb .Size {_cagb .Append (_ce .MakeInteger (int64 (_egfd )));};_egce .Set ("\u0053\u0069\u007a\u0065",_cagb );_egce .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0053\u0061\u006d\u0070\u006c\u0065",_ce .MakeInteger (int64 (_egcdfb .BitsPerSample )));
if _egcdfb .Order !=1{_egce .Set ("\u004f\u0072\u0064e\u0072",_ce .MakeInteger (int64 (_egcdfb .Order )));};_egce .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_ce .MakeInteger (int64 (len (_egcdfb ._becgb ))));_egcdfb ._ffgdd .Stream =_egcdfb ._becgb ;
_egcdfb ._ffgdd .PdfObjectDictionary =_egce ;return _egcdfb ._ffgdd ;};
// 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 (_gefag *PdfReader )RepairAcroForm (opts *AcroFormRepairOptions )error {var _bgfae []*PdfField ;_fdfdb :=map[*_ce .PdfIndirectObject ]struct{}{};for _ ,_bdac :=range _gefag .PageList {_cedca ,_ababg :=_bdac .GetAnnotations ();if _ababg !=nil {return _ababg ;
};for _ ,_dgcdc :=range _cedca {var _bfddb *PdfField ;switch _ccafcd :=_dgcdc .GetContext ().(type ){case *PdfAnnotationWidget :if _ccafcd ._bag !=nil {_bfddb =_ccafcd ._bag ;break ;};if _bgdfd ,_abdcc :=_ce .GetIndirect (_ccafcd .Parent );_abdcc {_bfddb ,_ababg =_gefag .newPdfFieldFromIndirectObject (_bgdfd ,nil );
if _ababg ==nil {break ;};_ff .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",_bgdfd ,_ababg );
};if _ccafcd ._dec !=nil {_bfddb ,_ababg =_gefag .newPdfFieldFromIndirectObject (_ccafcd ._dec ,nil );if _ababg ==nil {break ;};_ff .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",_ccafcd ._dec ,_ababg );
};};if _bfddb ==nil {continue ;};if _ ,_egad :=_fdfdb [_bfddb ._aadeb ];_egad {continue ;};_fdfdb [_bfddb ._aadeb ]=struct{}{};_bgfae =append (_bgfae ,_bfddb );};};if len (_bgfae )==0{return nil ;};if _gefag .AcroForm ==nil {_gefag .AcroForm =NewPdfAcroForm ();
};_gefag .AcroForm .Fields =&_bgfae ;return nil ;};
// NewPdfAnnotationTrapNet returns a new trapnet annotation.
func NewPdfAnnotationTrapNet ()*PdfAnnotationTrapNet {_ade :=NewPdfAnnotation ();_agec :=&PdfAnnotationTrapNet {};_agec .PdfAnnotation =_ade ;_ade .SetContext (_agec );return _agec ;};func _abaa (_edae _ce .PdfObject ,_cgcd bool )(*PdfFont ,error ){_fbaca ,_abfef ,_gagcd :=_bbgfg (_edae );
if _fbaca !=nil {_beaa (_fbaca );};if _gagcd !=nil {if _gagcd ==ErrType1CFontNotSupported {_cbfd ,_faad :=_ffaba (_fbaca ,_abfef ,nil );if _faad !=nil {_ff .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",_abfef ,_faad );
return nil ,_gagcd ;};return &PdfFont {_dace :_cbfd },_gagcd ;};return nil ,_gagcd ;};_bgaee :=&PdfFont {};switch _abfef ._baafb {case "\u0054\u0079\u0070e\u0030":if !_cgcd {_ff .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",_abfef );
return nil ,_ge .New ("\u0063\u0079\u0063\u006cic\u0061\u006c\u0020\u0074\u0079\u0070\u0065\u0030\u0020\u006c\u006f\u0061\u0064\u0069n\u0067");};_adgg ,_fegb :=_dagga (_fbaca ,_abfef );if _fegb !=nil {_ff .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",_abfef ,_fegb );
return nil ,_fegb ;};_bgaee ._dace =_adgg ;case "\u0054\u0079\u0070e\u0031","\u004dM\u0054\u0079\u0070\u0065\u0031","\u0054\u0072\u0075\u0065\u0054\u0079\u0070\u0065":var _abded *pdfFontSimple ;_bcebg ,_bgdc :=_ee .NewStdFontByName (_ee .StdFontName (_abfef ._egacd ));
if _bgdc {_ggcc :=_bcegg (_bcebg );_bgaee ._dace =&_ggcc ;_fbgb :=_ce .TraceToDirectObject (_ggcc .ToPdfObject ());_dece ,_fgege ,_cadab :=_bbgfg (_fbgb );if _cadab !=nil {_ff .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",_abfef ,_ggcc );
return nil ,_cadab ;};for _ ,_aeead :=range _fbaca .Keys (){_dece .Set (_aeead ,_fbaca .Get (_aeead ));};_abded ,_cadab =_ffaba (_dece ,_fgege ,_ggcc ._bccdg );if _cadab !=nil {_ff .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",_abfef ,_ggcc );
return nil ,_cadab ;};_abded ._aggce =_ggcc ._aggce ;_abded ._cabcg =_ggcc ._cabcg ;if _abded ._cdcd ==nil {_abded ._cdcd =_ggcc ._cdcd ;};}else {_abded ,_gagcd =_ffaba (_fbaca ,_abfef ,nil );if _gagcd !=nil {_ff .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",_abfef ,_gagcd );
return nil ,_gagcd ;};};_gagcd =_abded .addEncoding ();if _gagcd !=nil {return nil ,_gagcd ;};if _bgdc {_abded .updateStandard14Font ();};if _bgdc &&_abded ._bbaf ==nil &&_abded ._bccdg ==nil {_ff .Log .Error ("\u0073\u0069\u006d\u0070\u006c\u0065\u0066\u006f\u006e\u0074\u003d\u0025\u0073",_abded );
_ff .Log .Error ("\u0066n\u0074\u003d\u0025\u002b\u0076",_bcebg );};if len (_abded ._aggce )==0{_ff .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a \u004e\u006f\u0020\u0077\u0069d\u0074h\u0073.\u0020\u0066\u006f\u006e\u0074\u003d\u0025s",_abded );};_bgaee ._dace =_abded ;
case "\u0054\u0079\u0070e\u0033":_ddabe ,_febed :=_ddadd (_fbaca ,_abfef );if _febed !=nil {_ff .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",_febed );
return nil ,_febed ;};_bgaee ._dace =_ddabe ;case "\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0030":_ggfg ,_bdbd :=_agdcf (_fbaca ,_abfef );if _bdbd !=nil {_ff .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",_bdbd );
return nil ,_bdbd ;};_bgaee ._dace =_ggfg ;case "\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032":_dcdb ,_egab :=_bgcg (_fbaca ,_abfef );if _egab !=nil {_ff .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",_abfef ,_egab );
return nil ,_egab ;};_bgaee ._dace =_dcdb ;default:_ff .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",_abfef );
return nil ,_e .Errorf ("\u0075\u006e\u0073\u0075\u0070\u0070\u006f\u0072\u0074\u0065d\u0020\u0066\u006f\u006e\u0074\u0020\u0074y\u0070\u0065\u003a\u0020\u0066\u006f\u006e\u0074\u003d\u0025\u0073",_abfef );};return _bgaee ,nil ;};
// Encoder returns the font's text encoder.
func (_fegba *PdfFont )Encoder ()_dc .TextEncoder {_dccc :=_fegba .actualFont ();if _dccc ==nil {_ff .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",_fegba ._dace );
return nil ;};return _dccc .Encoder ();};
// NewPdfShadingPatternType3 creates an empty shading pattern type 3 object.
func NewPdfShadingPatternType3 ()*PdfShadingPatternType3 {_gfea :=&PdfShadingPatternType3 {};_gfea .Matrix =_ce .MakeArrayFromIntegers ([]int {1,0,0,1,0,0});_gfea .PdfPattern =&PdfPattern {};_gfea .PdfPattern .PatternType =int64 (*_ce .MakeInteger (2));
_gfea .PdfPattern ._fbea =_gfea ;_gfea .PdfPattern ._gadcb =_ce .MakeIndirectObject (_ce .MakeDict ());return _gfea ;};func (_cfdgg *PdfWriter )writeObjects (){_ff .Log .Trace ("\u0057\u0072\u0069\u0074\u0069\u006e\u0067\u0020\u0025d\u0020\u006f\u0062\u006a",len (_cfdgg ._adbee ));
_cfdgg ._abff =make (map[int ]crossReference );_cfdgg ._abff [0]=crossReference {Type :0,ObjectNumber :0,Generation :0xFFFF};if _cfdgg ._fegdg .ObjectMap !=nil {for _ecfdddd ,_gcfgd :=range _cfdgg ._fegdg .ObjectMap {if _ecfdddd ==0{continue ;};if _gcfgd .XType ==_ce .XrefTypeObjectStream {_ceabc :=crossReference {Type :2,ObjectNumber :_gcfgd .OsObjNumber ,Index :_gcfgd .OsObjIndex };
_cfdgg ._abff [_ecfdddd ]=_ceabc ;};if _gcfgd .XType ==_ce .XrefTypeTableEntry {_dcgde :=crossReference {Type :1,ObjectNumber :_gcfgd .ObjectNumber ,Offset :_gcfgd .Offset };_cfdgg ._abff [_ecfdddd ]=_dcgde ;};};};};
// NewPdfAnnotationPolyLine returns a new polyline annotation.
func NewPdfAnnotationPolyLine ()*PdfAnnotationPolyLine {_edd :=NewPdfAnnotation ();_fef :=&PdfAnnotationPolyLine {};_fef .PdfAnnotation =_edd ;_fef .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_edd .SetContext (_fef );return _fef ;};
// 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 (_bcdec *PdfPageResources )GetFontByName (keyName _ce .PdfObjectName )(_ce .PdfObject ,bool ){if _bcdec .Font ==nil {return nil ,false ;};_ggeggg ,_agfge :=_ce .TraceToDirectObject (_bcdec .Font ).(*_ce .PdfObjectDictionary );if !_agfge {_ff .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",_ce .TraceToDirectObject (_bcdec .Font ));
return nil ,false ;};if _eebaa :=_ggeggg .Get (keyName );_eebaa !=nil {return _eebaa ,true ;};return nil ,false ;};
// Encrypt encrypts the output file with a specified user/owner password.
func (_gbfec *PdfWriter )Encrypt (userPass ,ownerPass []byte ,options *EncryptOptions )error {_bfbbc :=RC4_128bit ;if options !=nil {_bfbbc =options .Algorithm ;};_abgfc :=_cca .PermOwner ;if options !=nil {_abgfc =options .Permissions ;};var _cbga _aee .Filter ;
switch _bfbbc {case RC4_128bit :_cbga =_aee .NewFilterV2 (16);case AES_128bit :_cbga =_aee .NewFilterAESV2 ();case AES_256bit :_cbga =_aee .NewFilterAESV3 ();default:return _e .Errorf ("\u0075n\u0073\u0075\u0070\u0070o\u0072\u0074\u0065\u0064\u0020a\u006cg\u006fr\u0069\u0074\u0068\u006d\u003a\u0020\u0025v",options .Algorithm );
};_gdefd ,_efbba ,_ggega :=_ce .PdfCryptNewEncrypt (_cbga ,userPass ,ownerPass ,_abgfc );if _ggega !=nil {return _ggega ;};_gbfec ._cgebe =_gdefd ;if _efbba .Major !=0{_gbfec .SetVersion (_efbba .Major ,_efbba .Minor );};_gbfec ._fbfg =_efbba .Encrypt ;
_gbfec ._aecc ,_gbfec ._efbed =_efbba .ID0 ,_efbba .ID1 ;_abee :=_ce .MakeIndirectObject (_efbba .Encrypt );_gbfec ._ggbef =_abee ;_gbfec .addObject (_abee );return nil ;};
// DetermineColorspaceNameFromPdfObject determines PDF colorspace from a PdfObject. Returns the colorspace name and
// an error on failure. If the colorspace was not found, will return an empty string.
func DetermineColorspaceNameFromPdfObject (obj _ce .PdfObject )(_ce .PdfObjectName ,error ){var _abca *_ce .PdfObjectName ;var _cgafg *_ce .PdfObjectArray ;if _ccbda ,_fdfe :=obj .(*_ce .PdfIndirectObject );_fdfe {if _dgba ,_fgdg :=_ccbda .PdfObject .(*_ce .PdfObjectArray );
_fgdg {_cgafg =_dgba ;}else if _gddg ,_gfgb :=_ccbda .PdfObject .(*_ce .PdfObjectName );_gfgb {_abca =_gddg ;};}else if _ebag ,_gfgbf :=obj .(*_ce .PdfObjectArray );_gfgbf {_cgafg =_ebag ;}else if _cgb ,_bebbc :=obj .(*_ce .PdfObjectName );_bebbc {_abca =_cgb ;
};if _abca !=nil {switch *_abca {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 *_abca ,nil ;case "\u0050a\u0074\u0074\u0065\u0072\u006e":return *_abca ,nil ;
};};if _cgafg !=nil &&_cgafg .Len ()> 0{if _cggfa ,_gabff :=_cgafg .Get (0).(*_ce .PdfObjectName );_gabff {switch *_cggfa {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 _cgafg .Len ()==1{return *_cggfa ,nil ;
};case "\u0043a\u006c\u0047\u0072\u0061\u0079","\u0043\u0061\u006c\u0052\u0047\u0042","\u004c\u0061\u0062":return *_cggfa ,nil ;case "\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064","\u0050a\u0074\u0074\u0065\u0072\u006e","\u0049n\u0064\u0065\u0078\u0065\u0064":return *_cggfa ,nil ;
case "\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e","\u0044e\u0076\u0069\u0063\u0065\u004e":return *_cggfa ,nil ;};};};return "",nil ;};func (_ddeee *PdfReader )newPdfAnnotationStampFromDict (_acaf *_ce .PdfObjectDictionary )(*PdfAnnotationStamp ,error ){_ecaa :=PdfAnnotationStamp {};
_egdf ,_dff :=_ddeee .newPdfAnnotationMarkupFromDict (_acaf );if _dff !=nil {return nil ,_dff ;};_ecaa .PdfAnnotationMarkup =_egdf ;_ecaa .Name =_acaf .Get ("\u004e\u0061\u006d\u0065");return &_ecaa ,nil ;};func (_adgb *PdfAppender )mergeResources (_eade ,_ffcc _ce .PdfObject ,_ecfec map[_ce .PdfObjectName ]_ce .PdfObjectName )_ce .PdfObject {if _ffcc ==nil &&_eade ==nil {return nil ;
};if _ffcc ==nil {return _eade ;};_eagb ,_fcac :=_ce .GetDict (_ffcc );if !_fcac {return _eade ;};if _eade ==nil {_cafe :=_ce .MakeDict ();_cafe .Merge (_eagb );return _ffcc ;};_fccd ,_fcac :=_ce .GetDict (_eade );if !_fcac {_ff .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");
_fccd =_ce .MakeDict ();};for _ ,_eec :=range _eagb .Keys (){if _cadf ,_fdde :=_ecfec [_eec ];_fdde {_fccd .Set (_cadf ,_eagb .Get (_eec ));}else {_fccd .Set (_eec ,_eagb .Get (_eec ));};};return _fccd ;};
// 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 (_dcdffb *PdfWriter )SetRotation (rotate int64 )error {_gcbe ,_gdacfa :=_ce .GetDict (_dcdffb ._dbdaa );if !_gdacfa {return ErrTypeCheck ;};_gcbe .Set ("\u0052\u006f\u0074\u0061\u0074\u0065",_ce .MakeInteger (rotate ));return nil ;};func (_efee *PdfReader )newPdfAnnotationProjectionFromDict (_adg *_ce .PdfObjectDictionary )(*PdfAnnotationProjection ,error ){_ege :=&PdfAnnotationProjection {};
_eag ,_dbd :=_efee .newPdfAnnotationMarkupFromDict (_adg );if _dbd !=nil {return nil ,_dbd ;};_ege .PdfAnnotationMarkup =_eag ;return _ege ,nil ;};
// NewPdfAnnotationPolygon returns a new polygon annotation.
func NewPdfAnnotationPolygon ()*PdfAnnotationPolygon {_dbb :=NewPdfAnnotation ();_cdce :=&PdfAnnotationPolygon {};_cdce .PdfAnnotation =_dbb ;_cdce .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_dbb .SetContext (_cdce );return _cdce ;};
// NewPdfActionURI returns a new "Uri" action.
func NewPdfActionURI ()*PdfActionURI {_ed :=NewPdfAction ();_agb :=&PdfActionURI {};_agb .PdfAction =_ed ;_ed .SetContext (_agb );return _agb ;};
// 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 (_ecgfe *PdfSignature )bool ;
// Validate validates a PDF signature against a given digest (hash) such as that determined
// for an input file. Returns validation results.
Validate (_cacgf *PdfSignature ,_dffff 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 (_eegf *PdfSignature )error ;
// NewDigest creates a new digest/hasher based on the signature dictionary and handler.
NewDigest (_dfaa *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 (_fdcdc *PdfSignature ,_egadb Hasher )error ;};func (_gbgcc *PdfReader )newPdfFieldSignatureFromDict (_dfac *_ce .PdfObjectDictionary )(*PdfFieldSignature ,error ){_baaf :=&PdfFieldSignature {};_fgbf ,_gffd :=_ce .GetIndirect (_dfac .Get ("\u0056"));
if _gffd {var _abgg error ;_baaf .V ,_abgg =_gbgcc .newPdfSignatureFromIndirect (_fgbf );if _abgg !=nil {return nil ,_abgg ;};};_baaf .Lock ,_ =_ce .GetIndirect (_dfac .Get ("\u004c\u006f\u0063\u006b"));_baaf .SV ,_ =_ce .GetIndirect (_dfac .Get ("\u0053\u0056"));
return _baaf ,nil ;};func _fbbcd ()_c .Time {_cbcgc .Lock ();defer _cbcgc .Unlock ();return _faegc };
// NewPdfAnnotationStrikeOut returns a new text strikeout annotation.
func NewPdfAnnotationStrikeOut ()*PdfAnnotationStrikeOut {_aec :=NewPdfAnnotation ();_feg :=&PdfAnnotationStrikeOut {};_feg .PdfAnnotation =_aec ;_feg .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_aec .SetContext (_feg );return _feg ;};
// 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 *_ce .PdfObjectName ;AlternateSpace PdfColorspace ;TintTransform PdfFunction ;_bcdf *_ce .PdfIndirectObject ;};
// GetXObjectFormByName returns the XObjectForm with the specified name from the
// page resources, if it exists.
func (_facad *PdfPageResources )GetXObjectFormByName (keyName _ce .PdfObjectName )(*XObjectForm ,error ){_gacea ,_bfcbd :=_facad .GetXObjectByName (keyName );if _gacea ==nil {return nil ,nil ;};if _bfcbd !=XObjectTypeForm {return nil ,_ge .New ("\u006e\u006f\u0074\u0020\u0061\u0020\u0066\u006f\u0072\u006d");
};_cdgaf ,_fbgba :=NewXObjectFormFromStream (_gacea );if _fbgba !=nil {return nil ,_fbgba ;};return _cdgaf ,nil ;};
// 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 (_egafa *PdfWriter )SetOpenAction (dest _ce .PdfObject )error {if dest ==nil ||_ce .IsNullObject (dest ){return nil ;};_egafa ._bbef .Set ("\u004f\u0070\u0065\u006e\u0041\u0063\u0074\u0069\u006f\u006e",dest );return _egafa .addObjects (dest );};
// 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 ;
// PdfShadingType5 is a Lattice-form Gouraud-shaded triangle mesh.
type PdfShadingType5 struct{*PdfShading ;BitsPerCoordinate *_ce .PdfObjectInteger ;BitsPerComponent *_ce .PdfObjectInteger ;VerticesPerRow *_ce .PdfObjectInteger ;Decode *_ce .PdfObjectArray ;Function []PdfFunction ;};
// GetContext returns the annotation context which contains the specific type-dependent context.
// The context represents the subannotation.
func (_cgdf *PdfAnnotation )GetContext ()PdfModel {if _cgdf ==nil {return nil ;};return _cgdf ._edc ;};
// M returns the value of the magenta component of the color.
func (_bccc *PdfColorDeviceCMYK )M ()float64 {return _bccc [1]};
// 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 ,_gfdaf :_ce .MakeDict ()};
};
// ColorToRGB converts a Lab color to an RGB color.
func (_abac *PdfColorspaceLab )ColorToRGB (color PdfColor )(PdfColor ,error ){_deaf :=func (_bgfc float64 )float64 {if _bgfc >=6.0/29{return _bgfc *_bgfc *_bgfc ;};return 108.0/841*(_bgfc -4.0/29.0);};_ebgc ,_gfab :=color .(*PdfColorLab );if !_gfab {_ff .Log .Debug ("\u0069\u006e\u0070\u0075t \u0063\u006f\u006c\u006f\u0072\u0020\u006e\u006f\u0074\u0020\u006c\u0061\u0062");
return nil ,_ge .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};LStar :=_ebgc .L ();AStar :=_ebgc .A ();BStar :=_ebgc .B ();L :=(LStar +16)/116+AStar /500;M :=(LStar +16)/116;N :=(LStar +16)/116-BStar /200;
X :=_abac .WhitePoint [0]*_deaf (L );Y :=_abac .WhitePoint [1]*_deaf (M );Z :=_abac .WhitePoint [2]*_deaf (N );_caee :=3.240479*X +-1.537150*Y +-0.498535*Z ;_cbbg :=-0.969256*X +1.875992*Y +0.041556*Z ;_cgfe :=0.055648*X +-0.204043*Y +1.057311*Z ;_caee =_egg .Min (_egg .Max (_caee ,0),1.0);
_cbbg =_egg .Min (_egg .Max (_cbbg ,0),1.0);_cgfe =_egg .Min (_egg .Max (_cgfe ,0),1.0);return NewPdfColorDeviceRGB (_caee ,_cbbg ,_cgfe ),nil ;};
// NewPermissions returns a new permissions object.
func NewPermissions (docMdp *PdfSignature )*Permissions {_egcbb :=Permissions {};_egcbb .DocMDP =docMdp ;_gecfdd :=_ce .MakeDict ();_gecfdd .Set ("\u0044\u006f\u0063\u004d\u0044\u0050",docMdp .ToPdfObject ());_egcbb ._ffegb =_gecfdd ;return &_egcbb ;};
// Decrypt decrypts the PDF file with a specified password. Also tries to
// decrypt with an empty password. Returns true if successful,
// false otherwise.
func (_bfgg *PdfReader )Decrypt (password []byte )(bool ,error ){_gdcc ,_cgacf :=_bfgg ._afda .Decrypt (password );if _cgacf !=nil {return false ,_cgacf ;};if !_gdcc {return false ,nil ;};_cgacf =_bfgg .loadStructure ();if _cgacf !=nil {_ff .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",_cgacf );
return false ,_cgacf ;};return true ,nil ;};
// PdfColorspaceCalRGB stores A, B, C components
type PdfColorspaceCalRGB struct{WhitePoint []float64 ;BlackPoint []float64 ;Gamma []float64 ;Matrix []float64 ;_gbcb *_ce .PdfObjectDictionary ;_agbda *_ce .PdfIndirectObject ;};
// FieldAppearanceGenerator generates appearance stream for a given field.
type FieldAppearanceGenerator interface{ContentStreamWrapper ;GenerateAppearanceDict (_caed *PdfAcroForm ,_ffgf *PdfField ,_abde *PdfAnnotationWidget )(*_ce .PdfObjectDictionary ,error );};
// GetContainingPdfObject returns the container of the outline (indirect object).
func (_fcdg *PdfOutline )GetContainingPdfObject ()_ce .PdfObject {return _fcdg ._aedbf };
// SetAction sets the PDF action for the annotation link.
func (_fdaf *PdfAnnotationLink )SetAction (action *PdfAction ){_fdaf ._gbba =action ;if action ==nil {_fdaf .A =nil ;};};func _dffb (_defb []byte )[]byte {const _gabffa =52845;const _fdgc =22719;_fbabaf :=55665;for _ ,_abefc :=range _defb [:4]{_fbabaf =(int (_abefc )+_fbabaf )*_gabffa +_fdgc ;
};_fgdgg :=make ([]byte ,len (_defb )-4);for _gfbdc ,_badba :=range _defb [4:]{_fgdgg [_gfbdc ]=byte (int (_badba )^_fbabaf >>8);_fbabaf =(int (_badba )+_fbabaf )*_gabffa +_fdgc ;};return _fgdgg ;};
// NewPdfFontFromPdfObject loads a PdfFont from the dictionary `fontObj`. If there is a problem an
// error is returned.
func NewPdfFontFromPdfObject (fontObj _ce .PdfObject )(*PdfFont ,error ){return _abaa (fontObj ,true )};
// SetDate sets the `M` field of the signature.
func (_adgaf *PdfSignature )SetDate (date _c .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";};_adgaf .M =_ce .MakeString (date .Format (format ));
};
// GetDocMDPPermission returns the DocMDP level of the restrictions
func (_eecaaa *PdfSignature )GetDocMDPPermission ()(_aef .DocMDPPermission ,bool ){for _ ,_efgg :=range _eecaaa .Reference .Elements (){if _cceeg ,_cgbab :=_ce .GetDict (_efgg );_cgbab {if _abaeg ,_agaf :=_ce .GetNameVal (_cceeg .Get ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u004d\u0065\u0074\u0068\u006f\u0064"));
_agaf &&_abaeg =="\u0044\u006f\u0063\u004d\u0044\u0050"{if _deded ,_aaebe :=_ce .GetDict (_cceeg .Get ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u0050\u0061\u0072\u0061\u006d\u0073"));_aaebe {if P ,_cebaa :=_ce .GetIntVal (_deded .Get ("\u0050"));_cebaa {return _aef .DocMDPPermission (P ),true ;
};};};};};return 0,false ;};
// PdfAnnotationWidget represents Widget annotations.
// Note: Widget annotations are used to display form fields.
// (Section 12.5.6.19).
type PdfAnnotationWidget struct{*PdfAnnotation ;H _ce .PdfObject ;MK _ce .PdfObject ;A _ce .PdfObject ;AA _ce .PdfObject ;BS _ce .PdfObject ;Parent _ce .PdfObject ;_bag *PdfField ;_bbcf bool ;};
// String returns a string representation of what flags are set.
func (_ffcae FieldFlag )String ()string {_dadg :="";if _ffcae ==FieldFlagClear {_dadg ="\u0043\u006c\u0065a\u0072";return _dadg ;};if _ffcae &FieldFlagReadOnly > 0{_dadg +="\u007cR\u0065\u0061\u0064\u004f\u006e\u006cy";};if _ffcae &FieldFlagRequired > 0{_dadg +="\u007cR\u0065\u0071\u0075\u0069\u0072\u0065d";
};if _ffcae &FieldFlagNoExport > 0{_dadg +="\u007cN\u006f\u0045\u0078\u0070\u006f\u0072t";};if _ffcae &FieldFlagNoToggleToOff > 0{_dadg +="\u007c\u004e\u006f\u0054\u006f\u0067\u0067\u006c\u0065T\u006f\u004f\u0066\u0066";};if _ffcae &FieldFlagRadio > 0{_dadg +="\u007c\u0052\u0061\u0064\u0069\u006f";
};if _ffcae &FieldFlagPushbutton > 0{_dadg +="|\u0050\u0075\u0073\u0068\u0062\u0075\u0074\u0074\u006f\u006e";};if _ffcae &FieldFlagRadiosInUnision > 0{_dadg +="\u007c\u0052a\u0064\u0069\u006fs\u0049\u006e\u0055\u006e\u0069\u0073\u0069\u006f\u006e";};if _ffcae &FieldFlagMultiline > 0{_dadg +="\u007c\u004d\u0075\u006c\u0074\u0069\u006c\u0069\u006e\u0065";
};if _ffcae &FieldFlagPassword > 0{_dadg +="\u007cP\u0061\u0073\u0073\u0077\u006f\u0072d";};if _ffcae &FieldFlagFileSelect > 0{_dadg +="|\u0046\u0069\u006c\u0065\u0053\u0065\u006c\u0065\u0063\u0074";};if _ffcae &FieldFlagDoNotScroll > 0{_dadg +="\u007c\u0044\u006fN\u006f\u0074\u0053\u0063\u0072\u006f\u006c\u006c";
};if _ffcae &FieldFlagComb > 0{_dadg +="\u007c\u0043\u006fm\u0062";};if _ffcae &FieldFlagRichText > 0{_dadg +="\u007cR\u0069\u0063\u0068\u0054\u0065\u0078t";};if _ffcae &FieldFlagDoNotSpellCheck > 0{_dadg +="\u007c\u0044o\u004e\u006f\u0074S\u0070\u0065\u006c\u006c\u0043\u0068\u0065\u0063\u006b";
};if _ffcae &FieldFlagCombo > 0{_dadg +="\u007c\u0043\u006f\u006d\u0062\u006f";};if _ffcae &FieldFlagEdit > 0{_dadg +="\u007c\u0045\u0064i\u0074";};if _ffcae &FieldFlagSort > 0{_dadg +="\u007c\u0053\u006fr\u0074";};if _ffcae &FieldFlagMultiSelect > 0{_dadg +="\u007c\u004d\u0075l\u0074\u0069\u0053\u0065\u006c\u0065\u0063\u0074";
};if _ffcae &FieldFlagCommitOnSelChange > 0{_dadg +="\u007cC\u006fm\u006d\u0069\u0074\u004f\u006eS\u0065\u006cC\u0068\u0061\u006e\u0067\u0065";};return _g .Trim (_dadg ,"\u007c");};
// PdfAnnotationMovie represents Movie annotations.
// (Section 12.5.6.17).
type PdfAnnotationMovie struct{*PdfAnnotation ;T _ce .PdfObject ;Movie _ce .PdfObject ;A _ce .PdfObject ;};
// UpdateObject marks `obj` as updated and to be included in the following revision.
func (_efa *PdfAppender )UpdateObject (obj _ce .PdfObject ){_efa .replaceObject (obj ,obj );if _ ,_dfgd :=_efa ._acbd [obj ];!_dfgd {_efa ._beff =append (_efa ._beff ,obj );_efa ._acbd [obj ]=struct{}{};};};
// ToJBIG2Image converts current image to the core.JBIG2Image.
func (_gacgc *Image )ToJBIG2Image ()(*_ce .JBIG2Image ,error ){_egffa ,_dbdba :=_gacgc .ToGoImage ();if _dbdba !=nil {return nil ,_dbdba ;};return _ce .GoImageToJBIG2 (_egffa ,_ce .JB2ImageAutoThreshold );};func _cbfc (_aeafe string )(string ,error ){var _efabe _ag .Buffer ;
_efabe .WriteString (_aeafe );_edeaf :=make ([]byte ,8+16);_fgbca :=_c .Now ().UTC ().UnixNano ();_be .BigEndian .PutUint64 (_edeaf ,uint64 (_fgbca ));_ ,_feab :=_bc .Read (_edeaf [8:]);if _feab !=nil {return "",_feab ;};_efabe .WriteString (_bd .EncodeToString (_edeaf ));
return _efabe .String (),nil ;};
// DSS represents a Document Security Store dictionary.
// The DSS dictionary contains both global and signature specific validation
// information. The certificates and revocation data in the `Certs`, `OCSPs`,
// and `CRLs` fields can be used to validate any signature in the document.
// Additionally, the VRI entry contains validation data per signature.
// The keys in the VRI entry are calculated as upper(hex(sha1(sig.Contents))).
// The values are VRI dictionaries containing certificates and revocation
// information used for validating a single signature.
// See ETSI TS 102 778-4 V1.1.1 for more information.
type DSS struct{_ecde *_ce .PdfIndirectObject ;Certs []*_ce .PdfObjectStream ;OCSPs []*_ce .PdfObjectStream ;CRLs []*_ce .PdfObjectStream ;VRI map[string ]*VRI ;_daad map[string ]*_ce .PdfObjectStream ;_eabba map[string ]*_ce .PdfObjectStream ;_abge map[string ]*_ce .PdfObjectStream ;
};func (_bgcec *PdfWriter )addObjects (_gffea _ce .PdfObject )error {_ff .Log .Trace ("\u0041d\u0064i\u006e\u0067\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0073\u0021");if _edeee ,_fdbf :=_gffea .(*_ce .PdfIndirectObject );_fdbf {_ff .Log .Trace ("\u0049\u006e\u0064\u0069\u0072\u0065\u0063\u0074");
_ff .Log .Trace ("\u002d \u0025\u0073\u0020\u0028\u0025\u0070)",_gffea ,_edeee );_ff .Log .Trace ("\u002d\u0020\u0025\u0073",_edeee .PdfObject );if _bgcec .addObject (_edeee ){_ebbfc :=_bgcec .addObjects (_edeee .PdfObject );if _ebbfc !=nil {return _ebbfc ;
};};return nil ;};if _egaca ,_gdec :=_gffea .(*_ce .PdfObjectStream );_gdec {_ff .Log .Trace ("\u0053\u0074\u0072\u0065\u0061\u006d");_ff .Log .Trace ("\u002d \u0025\u0073\u0020\u0025\u0070",_gffea ,_gffea );if _bgcec .addObject (_egaca ){_fcaeab :=_bgcec .addObjects (_egaca .PdfObjectDictionary );
if _fcaeab !=nil {return _fcaeab ;};};return nil ;};if _ffbbf ,_gecbd :=_gffea .(*_ce .PdfObjectDictionary );_gecbd {_ff .Log .Trace ("\u0044\u0069\u0063\u0074");_ff .Log .Trace ("\u002d\u0020\u0025\u0073",_gffea );for _ ,_eeddd :=range _ffbbf .Keys (){_bbfb :=_ffbbf .Get (_eeddd );
if _cfeff ,_deebd :=_bbfb .(*_ce .PdfObjectReference );_deebd {_bbfb =_cfeff .Resolve ();_ffbbf .Set (_eeddd ,_bbfb );};if _eeddd !="\u0050\u0061\u0072\u0065\u006e\u0074"{if _efece :=_bgcec .addObjects (_bbfb );_efece !=nil {return _efece ;};}else {if _ ,_adgbb :=_bbfb .(*_ce .PdfObjectNull );
_adgbb {continue ;};if _gdbaed :=_bgcec .hasObject (_bbfb );!_gdbaed {_ff .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",_bbfb ,_bbfb ,_bbfb );
_bgcec ._dggcg [_bbfb ]=append (_bgcec ._dggcg [_bbfb ],_ffbbf );};};};return nil ;};if _cbfbf ,_cgeff :=_gffea .(*_ce .PdfObjectArray );_cgeff {_ff .Log .Trace ("\u0041\u0072\u0072a\u0079");_ff .Log .Trace ("\u002d\u0020\u0025\u0073",_gffea );if _cbfbf ==nil {return _ge .New ("\u0061\u0072\u0072a\u0079\u0020\u0069\u0073\u0020\u006e\u0069\u006c");
};for _afdbd ,_ccfgag :=range _cbfbf .Elements (){if _debdec ,_dfaee :=_ccfgag .(*_ce .PdfObjectReference );_dfaee {_ccfgag =_debdec .Resolve ();_cbfbf .Set (_afdbd ,_ccfgag );};if _accee :=_bgcec .addObjects (_ccfgag );_accee !=nil {return _accee ;};};
return nil ;};if _ ,_ggbfa :=_gffea .(*_ce .PdfObjectReference );_ggbfa {_ff .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",_gffea );
return _ge .New ("r\u0065\u0066\u0065\u0072en\u0063e\u0020\u006e\u006f\u0074\u0020a\u006c\u006c\u006f\u0077\u0065\u0064");};return nil ;};
// ToPdfObject implements interface PdfModel.
func (_aea *PdfActionSound )ToPdfObject ()_ce .PdfObject {_aea .PdfAction .ToPdfObject ();_dgfc :=_aea ._bcc ;_gef :=_dgfc .PdfObject .(*_ce .PdfObjectDictionary );_gef .SetIfNotNil ("\u0053",_ce .MakeName (string (ActionTypeSound )));_gef .SetIfNotNil ("\u0053\u006f\u0075n\u0064",_aea .Sound );
_gef .SetIfNotNil ("\u0056\u006f\u006c\u0075\u006d\u0065",_aea .Volume );_gef .SetIfNotNil ("S\u0079\u006e\u0063\u0068\u0072\u006f\u006e\u006f\u0075\u0073",_aea .Synchronous );_gef .SetIfNotNil ("\u0052\u0065\u0070\u0065\u0061\u0074",_aea .Repeat );_gef .SetIfNotNil ("\u004d\u0069\u0078",_aea .Mix );
return _dgfc ;};
// 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 *_ce .PdfObjectArray ;AlternateSpace PdfColorspace ;TintTransform PdfFunction ;Attributes *PdfColorspaceDeviceNAttributes ;_gedd *_ce .PdfIndirectObject ;};
// SetPageLabels sets the PageLabels entry in the PDF catalog.
// See section 12.4.2 "Page Labels" (p. 382 PDF32000_2008).
func (_dddab *PdfWriter )SetPageLabels (pageLabels _ce .PdfObject )error {if pageLabels ==nil {return nil ;};_ff .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");
_dddab ._bbef .Set ("\u0050\u0061\u0067\u0065\u004c\u0061\u0062\u0065\u006c\u0073",pageLabels );return _dddab .addObjects (pageLabels );};
// GetColorspaceByName returns the colorspace with the specified name from the page resources.
func (_cceaeg *PdfPageResources )GetColorspaceByName (keyName _ce .PdfObjectName )(PdfColorspace ,bool ){_bdfbe ,_eacaeb :=_cceaeg .GetColorspaces ();if _eacaeb !=nil {_ff .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",_eacaeb );
return nil ,false ;};if _bdfbe ==nil {return nil ,false ;};_dacb ,_cebcg :=_bdfbe .Colorspaces [string (keyName )];if !_cebcg {return nil ,false ;};return _dacb ,true ;};
// ToGoImage converts the unidoc Image to a golang Image structure.
func (_edgd *Image )ToGoImage ()(_cb .Image ,error ){_ff .Log .Trace ("\u0043\u006f\u006e\u0076er\u0074\u0069\u006e\u0067\u0020\u0074\u006f\u0020\u0067\u006f\u0020\u0069\u006d\u0061g\u0065");_gcab ,_dgfcb :=_gf .NewImage (int (_edgd .Width ),int (_edgd .Height ),int (_edgd .BitsPerComponent ),_edgd .ColorComponents ,_edgd .Data ,_edgd ._cdecc ,_edgd ._bffb );
if _dgfcb !=nil {return nil ,_dgfcb ;};return _gcab ,nil ;};
// PdfActionThread represents a thread action.
type PdfActionThread struct{*PdfAction ;F *PdfFilespec ;D _ce .PdfObject ;B _ce .PdfObject ;};
// 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 (_gcdbc *LTV )EnableByName (name string ,extraCerts []*_eg .Certificate )error {_cccgf :=_gcdbc ._fdfad ._fcda .AcroForm ;for _ ,_agffad :=range _cccgf .AllFields (){_dedec ,_ :=_agffad .GetContext ().(*PdfFieldSignature );if _dedec ==nil {continue ;
};if _feec :=_dedec .PartialName ();_feec !=name {continue ;};return _gcdbc .Enable (_dedec .V ,extraCerts );};return nil ;};
// ToPdfObject returns the PDF representation of the shading dictionary.
func (_aaaeg *PdfShadingType6 )ToPdfObject ()_ce .PdfObject {_aaaeg .PdfShading .ToPdfObject ();_ceegb ,_dbddb :=_aaaeg .getShadingDict ();if _dbddb !=nil {_ff .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 _aaaeg .BitsPerCoordinate !=nil {_ceegb .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065",_aaaeg .BitsPerCoordinate );};if _aaaeg .BitsPerComponent !=nil {_ceegb .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_aaaeg .BitsPerComponent );
};if _aaaeg .BitsPerFlag !=nil {_ceegb .Set ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067",_aaaeg .BitsPerFlag );};if _aaaeg .Decode !=nil {_ceegb .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_aaaeg .Decode );};if _aaaeg .Function !=nil {if len (_aaaeg .Function )==1{_ceegb .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_aaaeg .Function [0].ToPdfObject ());
}else {_edcbc :=_ce .MakeArray ();for _ ,_dgbedd :=range _aaaeg .Function {_edcbc .Append (_dgbedd .ToPdfObject ());};_ceegb .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_edcbc );};};return _aaaeg ._agcdg ;};
// ReplaceAcroForm replaces the acrobat form. It appends a new form to the Pdf which
// replaces the original AcroForm.
func (_cacd *PdfAppender )ReplaceAcroForm (acroForm *PdfAcroForm ){if acroForm !=nil {_cacd .updateObjectsDeep (acroForm .ToPdfObject (),nil );};_cacd ._fed =acroForm ;};func (_befbd SignatureValidationResult )String ()string {var _febab _ag .Buffer ;_febab .WriteString (_e .Sprintf ("\u004ea\u006d\u0065\u003a\u0020\u0025\u0073\n",_befbd .Name ));
if _befbd .Date ._cbacb > 0{_febab .WriteString (_e .Sprintf ("\u0044a\u0074\u0065\u003a\u0020\u0025\u0073\n",_befbd .Date .ToGoTime ().String ()));}else {_febab .WriteString ("\u0044\u0061\u0074\u0065 n\u006f\u0074\u0020\u0073\u0070\u0065\u0063\u0069\u0066\u0069\u0065\u0064\u000a");
};if len (_befbd .Reason )> 0{_febab .WriteString (_e .Sprintf ("R\u0065\u0061\u0073\u006f\u006e\u003a\u0020\u0025\u0073\u000a",_befbd .Reason ));}else {_febab .WriteString ("N\u006f \u0072\u0065\u0061\u0073\u006f\u006e\u0020\u0073p\u0065\u0063\u0069\u0066ie\u0064\u000a");
};if len (_befbd .Location )> 0{_febab .WriteString (_e .Sprintf ("\u004c\u006f\u0063\u0061\u0074\u0069\u006f\u006e\u003a\u0020\u0025\u0073\u000a",_befbd .Location ));}else {_febab .WriteString ("\u004c\u006f\u0063at\u0069\u006f\u006e\u0020\u006e\u006f\u0074\u0020\u0073\u0070\u0065\u0063\u0069\u0066\u0069\u0065\u0064\u000a");
};if len (_befbd .ContactInfo )> 0{_febab .WriteString (_e .Sprintf ("\u0043\u006f\u006e\u0074\u0061\u0063\u0074\u0020\u0049\u006e\u0066\u006f:\u0020\u0025\u0073\u000a",_befbd .ContactInfo ));}else {_febab .WriteString ("C\u006f\u006e\u0074\u0061\u0063\u0074 \u0069\u006e\u0066\u006f\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063i\u0066i\u0065\u0064\u000a");
};_febab .WriteString (_e .Sprintf ("F\u0069\u0065\u006c\u0064\u0073\u003a\u0020\u0025\u0064\u000a",len (_befbd .Fields )));if _befbd .IsSigned {_febab .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 {_febab .WriteString ("\u0053\u0069\u0067\u006eed\u003a\u0020\u004e\u006f\u0074\u0020\u0073\u0069\u0067\u006e\u0065\u0064\u000a");};if _befbd .IsVerified {_febab .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 {_febab .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 _befbd .IsTrusted {_febab .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 {_febab .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 !_befbd .GeneralizedTime .IsZero (){_febab .WriteString (_e .Sprintf ("G\u0065n\u0065\u0072\u0061\u006c\u0069\u007a\u0065\u0064T\u0069\u006d\u0065\u003a %\u0073\u000a",_befbd .GeneralizedTime .String ()));
};if _befbd .DiffResults !=nil {_febab .WriteString (_e .Sprintf ("\u0064\u0069\u0066\u0066 i\u0073\u0020\u0070\u0065\u0072\u006d\u0069\u0074\u0074\u0065\u0064\u003a\u0020\u0025v\u000a",_befbd .DiffResults .IsPermitted ()));if len (_befbd .DiffResults .Warnings )> 0{_febab .WriteString ("\u004d\u0044\u0050\u0020\u0077\u0061\u0072\u006e\u0069n\u0067\u0073\u003a\u000a");
for _ ,_aeffe :=range _befbd .DiffResults .Warnings {_febab .WriteString (_e .Sprintf ("\u0009\u0025\u0073\u000a",_aeffe ));};};if len (_befbd .DiffResults .Errors )> 0{_febab .WriteString ("\u004d\u0044\u0050 \u0065\u0072\u0072\u006f\u0072\u0073\u003a\u000a");
for _ ,_geadb :=range _befbd .DiffResults .Errors {_febab .WriteString (_e .Sprintf ("\u0009\u0025\u0073\u000a",_geadb ));};};};if _befbd .IsCrlFound {_febab .WriteString ("R\u0065\u0076\u006f\u0063\u0061\u0074i\u006f\u006e\u0020\u0064\u0061\u0074\u0061\u003a\u0020C\u0052\u004c\u0020f\u006fu\u006e\u0064\u000a");
}else {_febab .WriteString ("\u0052\u0065\u0076o\u0063\u0061\u0074\u0069o\u006e\u0020\u0064\u0061\u0074\u0061\u003a \u0043\u0052\u004c\u0020\u006e\u006f\u0074\u0020\u0066\u006f\u0075\u006e\u0064\u000a");};if _befbd .IsOcspFound {_febab .WriteString ("\u0052\u0065\u0076\u006fc\u0061\u0074\u0069\u006f\u006e\u0020\u0064\u0061\u0074\u0061:\u0020O\u0043\u0053\u0050\u0020\u0066\u006f\u0075n\u0064\u000a");
}else {_febab .WriteString ("\u0052\u0065\u0076\u006f\u0063\u0061\u0074\u0069\u006f\u006e\u0020\u0064\u0061\u0074\u0061:\u0020O\u0043\u0053\u0050\u0020\u006e\u006f\u0074\u0020\u0066\u006f\u0075\u006e\u0064\u000a");};return _febab .String ();};
// AddOutlineTree adds outlines to a PDF file.
func (_aadba *PdfWriter )AddOutlineTree (outlineTree *PdfOutlineTreeNode ){_aadba ._cfcac =outlineTree };
// NewPdfActionTrans returns a new "trans" action.
func NewPdfActionTrans ()*PdfActionTrans {_cdc :=NewPdfAction ();_gde :=&PdfActionTrans {};_gde .PdfAction =_cdc ;_cdc .SetContext (_gde );return _gde ;};
// NewPdfAction returns an initialized generic PDF action model.
func NewPdfAction ()*PdfAction {_da :=&PdfAction {};_da ._bcc =_ce .MakeIndirectObject (_ce .MakeDict ());return _da ;};
// ToPdfObject returns the PDF representation of the shading pattern.
func (_aeddg *PdfShadingPatternType3 )ToPdfObject ()_ce .PdfObject {_aeddg .PdfPattern .ToPdfObject ();_ecefb :=_aeddg .getDict ();if _aeddg .Shading !=nil {_ecefb .Set ("\u0053h\u0061\u0064\u0069\u006e\u0067",_aeddg .Shading .ToPdfObject ());};if _aeddg .Matrix !=nil {_ecefb .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_aeddg .Matrix );
};if _aeddg .ExtGState !=nil {_ecefb .Set ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e",_aeddg .ExtGState );};return _aeddg ._gadcb ;};
// Clear clears flag fl from the flag and returns the resulting flag.
func (_fggcd FieldFlag )Clear (fl FieldFlag )FieldFlag {return FieldFlag (_fggcd .Mask ()&^fl .Mask ())};func _ddce (_fagde _ce .PdfObject )(*PdfColorspaceSpecialSeparation ,error ){_bfed :=NewPdfColorspaceSpecialSeparation ();if _fdcef ,_bfedc :=_fagde .(*_ce .PdfIndirectObject );
_bfedc {_bfed ._bcdf =_fdcef ;};_fagde =_ce .TraceToDirectObject (_fagde );_eaff ,_beag :=_fagde .(*_ce .PdfObjectArray );if !_beag {return nil ,_e .Errorf ("\u0073\u0065p\u0061\u0072\u0061\u0074\u0069\u006f\u006e\u0020\u0043\u0053\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006f\u0062je\u0063\u0074");
};if _eaff .Len ()!=4{return nil ,_e .Errorf ("\u0073\u0065p\u0061\u0072\u0061\u0074i\u006f\u006e \u0043\u0053\u003a\u0020\u0049\u006e\u0063\u006fr\u0072\u0065\u0063\u0074\u0020\u0061\u0072\u0072\u0061\u0079\u0020\u006ce\u006e\u0067\u0074\u0068");};_fagde =_eaff .Get (0);
_cccdg ,_beag :=_fagde .(*_ce .PdfObjectName );if !_beag {return nil ,_e .Errorf ("\u0073\u0065\u0070ar\u0061\u0074\u0069\u006f\u006e\u0020\u0043\u0053\u003a \u0069n\u0076a\u006ci\u0064\u0020\u0066\u0061\u006d\u0069\u006c\u0079\u0020\u006e\u0061\u006d\u0065");
};if *_cccdg !="\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e"{return nil ,_e .Errorf ("\u0073\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e\u0020\u0043\u0053\u003a\u0020w\u0072o\u006e\u0067\u0020\u0066\u0061\u006d\u0069\u006c\u0079\u0020\u006e\u0061\u006d\u0065");
};_fagde =_eaff .Get (1);_cccdg ,_beag =_fagde .(*_ce .PdfObjectName );if !_beag {return nil ,_e .Errorf ("\u0073\u0065pa\u0072\u0061\u0074i\u006f\u006e\u0020\u0043S: \u0049nv\u0061\u006c\u0069\u0064\u0020\u0063\u006flo\u0072\u0061\u006e\u0074\u0020\u006e\u0061m\u0065");
};_bfed .ColorantName =_cccdg ;_fagde =_eaff .Get (2);_ebcgg ,_dgbae :=NewPdfColorspaceFromPdfObject (_fagde );if _dgbae !=nil {return nil ,_dgbae ;};_bfed .AlternateSpace =_ebcgg ;_ecbbb ,_dgbae :=_cegfd (_eaff .Get (3));if _dgbae !=nil {return nil ,_dgbae ;
};_bfed .TintTransform =_ecbbb ;return _bfed ,nil ;};
// ToPdfObject returns the PDF representation of the tiling pattern.
func (_gbdgg *PdfTilingPattern )ToPdfObject ()_ce .PdfObject {_gbdgg .PdfPattern .ToPdfObject ();_fadec :=_gbdgg .getDict ();if _gbdgg .PaintType !=nil {_fadec .Set ("\u0050a\u0069\u006e\u0074\u0054\u0079\u0070e",_gbdgg .PaintType );};if _gbdgg .TilingType !=nil {_fadec .Set ("\u0054\u0069\u006c\u0069\u006e\u0067\u0054\u0079\u0070\u0065",_gbdgg .TilingType );
};if _gbdgg .BBox !=nil {_fadec .Set ("\u0042\u0042\u006f\u0078",_gbdgg .BBox .ToPdfObject ());};if _gbdgg .XStep !=nil {_fadec .Set ("\u0058\u0053\u0074e\u0070",_gbdgg .XStep );};if _gbdgg .YStep !=nil {_fadec .Set ("\u0059\u0053\u0074e\u0070",_gbdgg .YStep );
};if _gbdgg .Resources !=nil {_fadec .Set ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s",_gbdgg .Resources .ToPdfObject ());};if _gbdgg .Matrix !=nil {_fadec .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_gbdgg .Matrix );};return _gbdgg ._gadcb ;};
// NewPdfShadingType2 creates an empty shading type 2 dictionary.
func NewPdfShadingType2 ()*PdfShadingType2 {_bgfcd :=&PdfShadingType2 {};_bgfcd .PdfShading =&PdfShading {};_bgfcd .PdfShading ._agcdg =_ce .MakeIndirectObject (_ce .MakeDict ());_bgfcd .PdfShading ._aadbc =_bgfcd ;return _bgfcd ;};
// PdfFunction interface represents the common methods of a function in PDF.
type PdfFunction interface{Evaluate ([]float64 )([]float64 ,error );ToPdfObject ()_ce .PdfObject ;};func (_acdbf *PdfReader )newPdfSignatureReferenceFromDict (_acbda *_ce .PdfObjectDictionary )(*PdfSignatureReference ,error ){if _fbdag ,_eabdd :=_acdbf ._aedda .GetModelFromPrimitive (_acbda ).(*PdfSignatureReference );
_eabdd {return _fbdag ,nil ;};_edgbg :=&PdfSignatureReference {_bggef :_acbda ,Data :_acbda .Get ("\u0044\u0061\u0074\u0061")};var _ggdb bool ;_edgbg .Type ,_ =_ce .GetName (_acbda .Get ("\u0054\u0079\u0070\u0065"));_edgbg .TransformMethod ,_ggdb =_ce .GetName (_acbda .Get ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u004d\u0065\u0074\u0068\u006f\u0064"));
if !_ggdb {_ff .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 ;};_edgbg .TransformParams ,_ =_ce .GetDict (_acbda .Get ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u0050\u0061\u0072\u0061\u006d\u0073"));_edgbg .DigestMethod ,_ =_ce .GetName (_acbda .Get ("\u0044\u0069\u0067e\u0073\u0074\u004d\u0065\u0074\u0068\u006f\u0064"));
return _edgbg ,nil ;};
// GetDescent returns the Descent of the font `descriptor`.
func (_eeedf *PdfFontDescriptor )GetDescent ()(float64 ,error ){return _ce .GetNumberAsFloat (_eeedf .Descent );};
// ToPdfObject returns the PDF representation of the colorspace.
func (_cgdbb *PdfColorspaceDeviceGray )ToPdfObject ()_ce .PdfObject {return _ce .MakeName ("\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079");};
// ColorFromPdfObjects returns a new PdfColor based on the input slice of color
// component PDF objects.
func (_bfdd *PdfColorspaceICCBased )ColorFromPdfObjects (objects []_ce .PdfObject )(PdfColor ,error ){if _bfdd .Alternate ==nil {if _bfdd .N ==1{_gbggd :=NewPdfColorspaceDeviceGray ();return _gbggd .ColorFromPdfObjects (objects );}else if _bfdd .N ==3{_fgea :=NewPdfColorspaceDeviceRGB ();
return _fgea .ColorFromPdfObjects (objects );}else if _bfdd .N ==4{_facb :=NewPdfColorspaceDeviceCMYK ();return _facb .ColorFromPdfObjects (objects );}else {return nil ,_ge .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 _bfdd .Alternate .ColorFromPdfObjects (objects );};
// ToGray returns a PdfColorDeviceGray color based on the current RGB color.
func (_egbeg *PdfColorDeviceRGB )ToGray ()*PdfColorDeviceGray {_bdaf :=0.3*_egbeg .R ()+0.59*_egbeg .G ()+0.11*_egbeg .B ();_bdaf =_egg .Min (_egg .Max (_bdaf ,0.0),1.0);return NewPdfColorDeviceGray (_bdaf );};func (_bgfgb Image )getBase ()_gf .ImageBase {return _gf .NewImageBase (int (_bgfgb .Width ),int (_bgfgb .Height ),int (_bgfgb .BitsPerComponent ),_bgfgb .ColorComponents ,_bgfgb .Data ,_bgfgb ._cdecc ,_bgfgb ._bffb );
};
// ColorFromPdfObjects gets the color from a series of pdf objects (3 for rgb).
func (_abbd *PdfColorspaceDeviceRGB )ColorFromPdfObjects (objects []_ce .PdfObject )(PdfColor ,error ){if len (objects )!=3{return nil ,_ge .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_cada ,_cdcb :=_ce .GetNumbersAsFloat (objects );
if _cdcb !=nil {return nil ,_cdcb ;};return _abbd .ColorFromFloats (_cada );};
// NewPdfActionNamed returns a new "named" action.
func NewPdfActionNamed ()*PdfActionNamed {_afc :=NewPdfAction ();_fg :=&PdfActionNamed {};_fg .PdfAction =_afc ;_afc .SetContext (_fg );return _fg ;};func (_bggdb *PdfColorspaceLab )String ()string {return "\u004c\u0061\u0062"};func (_aaade *PdfWriter )writeTrailer (_ebee int ){_aaade .writeString ("\u0078\u0072\u0065\u0066\u000d\u000a");
for _bfgeb :=0;_bfgeb <=_ebee ;{for ;_bfgeb <=_ebee ;_bfgeb ++{_dcbdf ,_adagc :=_aaade ._abff [_bfgeb ];if _adagc &&(!_aaade ._ddfff ||_aaade ._ddfff &&(_dcbdf .Type ==1&&_dcbdf .Offset >=_aaade ._bcefd ||_dcbdf .Type ==0)){break ;};};var _feafd int ;for _feafd =_bfgeb +1;
_feafd <=_ebee ;_feafd ++{_fdfbf ,_dadae :=_aaade ._abff [_feafd ];if _dadae &&(!_aaade ._ddfff ||_aaade ._ddfff &&(_fdfbf .Type ==1&&_fdfbf .Offset > _aaade ._bcefd )){continue ;};break ;};_cagea :=_e .Sprintf ("\u0025d\u0020\u0025\u0064\u000d\u000a",_bfgeb ,_feafd -_bfgeb );
_aaade .writeString (_cagea );for _edbg :=_bfgeb ;_edbg < _feafd ;_edbg ++{_dgfeab :=_aaade ._abff [_edbg ];switch _dgfeab .Type {case 0:_cagea =_e .Sprintf ("\u0025\u002e\u0031\u0030\u0064\u0020\u0025\u002e\u0035d\u0020\u0066\u000d\u000a",0,65535);_aaade .writeString (_cagea );
case 1:_cagea =_e .Sprintf ("\u0025\u002e\u0031\u0030\u0064\u0020\u0025\u002e\u0035d\u0020\u006e\u000d\u000a",_dgfeab .Offset ,0);_aaade .writeString (_cagea );};};_bfgeb =_feafd +1;};_cddcf :=_ce .MakeDict ();_cddcf .Set ("\u0049\u006e\u0066\u006f",_aaade ._dcecd );
_cddcf .Set ("\u0052\u006f\u006f\u0074",_aaade ._bedff );_cddcf .Set ("\u0053\u0069\u007a\u0065",_ce .MakeInteger (int64 (_ebee +1)));if _aaade ._ddfff &&_aaade ._efbcg > 0{_cddcf .Set ("\u0050\u0072\u0065\u0076",_ce .MakeInteger (_aaade ._efbcg ));};if _aaade ._cgebe !=nil {_cddcf .Set ("\u0045n\u0063\u0072\u0079\u0070\u0074",_aaade ._ggbef );
};if _aaade ._cbegb ==nil &&_aaade ._aecc !=""&&_aaade ._efbed !=""{_aaade ._cbegb =_ce .MakeArray (_ce .MakeHexString (_aaade ._aecc ),_ce .MakeHexString (_aaade ._efbed ));};if _aaade ._cbegb !=nil {_cddcf .Set ("\u0049\u0044",_aaade ._cbegb );_ff .Log .Trace ("\u0049d\u0073\u003a\u0020\u0025\u0073",_aaade ._cbegb );
};_aaade .writeString ("\u0074\u0072\u0061\u0069\u006c\u0065\u0072\u000a");_aaade .writeString (_cddcf .WriteString ());_aaade .writeString ("\u000a");};func _bfffb ()_c .Time {_cbcgc .Lock ();defer _cbcgc .Unlock ();return _dfecd };
// ColorFromFloats returns a new PdfColor based on the input slice of color
// components.
func (_egdc *PdfColorspaceSpecialPattern )ColorFromFloats (vals []float64 )(PdfColor ,error ){if _egdc .UnderlyingCS ==nil {return nil ,_ge .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 _egdc .UnderlyingCS .ColorFromFloats (vals );};
// ToPdfObject implements interface PdfModel.
func (_edf *PdfActionGoToR )ToPdfObject ()_ce .PdfObject {_edf .PdfAction .ToPdfObject ();_ecg :=_edf ._bcc ;_cgg :=_ecg .PdfObject .(*_ce .PdfObjectDictionary );_cgg .SetIfNotNil ("\u0053",_ce .MakeName (string (ActionTypeGoToR )));if _edf .F !=nil {_cgg .Set ("\u0046",_edf .F .ToPdfObject ());
};_cgg .SetIfNotNil ("\u0044",_edf .D );_cgg .SetIfNotNil ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw",_edf .NewWindow );return _ecg ;};
// BytesToCharcodes converts the bytes in a PDF string to character codes.
func (_ebcd *PdfFont )BytesToCharcodes (data []byte )[]_dc .CharCode {_ff .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 _daggc ,_faeag :=_ebcd ._dace .(*pdfFontType0 );_faeag &&_daggc ._ggecbf !=nil {if _dagee ,_fbgbd :=_daggc .bytesToCharcodes (data );_fbgbd {return _dagee ;};};var (_dbgdg =make ([]_dc .CharCode ,0,len (data )+len (data )%2);_cgafe =_ebcd .baseFields ();
);if _cgafe ._dgfcg !=nil {if _ggde ,_eeebaf :=_cgafe ._dgfcg .BytesToCharcodes (data );_eeebaf {for _ ,_fgcbg :=range _ggde {_dbgdg =append (_dbgdg ,_dc .CharCode (_fgcbg ));};return _dbgdg ;};};if _cgafe .isCIDFont (){if len (data )==1{data =[]byte {0,data [0]};
};if len (data )%2!=0{_ff .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 _dbedf :=0;_dbedf < len (data );_dbedf +=2{_deaee :=uint16 (data [_dbedf ])<<8|uint16 (data [_dbedf +1]);_dbgdg =append (_dbgdg ,_dc .CharCode (_deaee ));};}else {for _ ,_decaa :=range data {_dbgdg =append (_dbgdg ,_dc .CharCode (_decaa ));
};};return _dbgdg ;};
// WatermarkImageOptions contains options for configuring the watermark process.
type WatermarkImageOptions struct{Alpha float64 ;FitToWidth bool ;PreserveAspectRatio bool ;};func (_cgdb *PdfReader )loadAction (_eea _ce .PdfObject )(*PdfAction ,error ){if _fbab ,_efd :=_ce .GetIndirect (_eea );_efd {_fbb ,_cebe :=_cgdb .newPdfActionFromIndirectObject (_fbab );
if _cebe !=nil {return nil ,_cebe ;};return _fbb ,nil ;}else if !_ce .IsNullObject (_eea ){return nil ,_ge .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 ;};
// SetName sets the `Name` field of the signature.
func (_bafbf *PdfSignature )SetName (name string ){_bafbf .Name =_ce .MakeEncodedString (name ,true )};
// IsSimple returns true if `font` is a simple font.
func (_gcegc *PdfFont )IsSimple ()bool {_ ,_cggaa :=_gcegc ._dace .(*pdfFontSimple );return _cggaa };
// PdfAnnotationStamp represents Stamp annotations.
// (Section 12.5.6.12).
type PdfAnnotationStamp struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Name _ce .PdfObject ;};
// ToPdfObject returns the PDF representation of the pattern.
func (_aeafc *PdfPattern )ToPdfObject ()_ce .PdfObject {_fgbef :=_aeafc .getDict ();_fgbef .Set ("\u0054\u0079\u0070\u0065",_ce .MakeName ("\u0050a\u0074\u0074\u0065\u0072\u006e"));_fgbef .Set ("P\u0061\u0074\u0074\u0065\u0072\u006e\u0054\u0079\u0070\u0065",_ce .MakeInteger (_aeafc .PatternType ));
return _aeafc ._gadcb ;};
// 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 ;_ffegb *_ce .PdfObjectDictionary ;};
// SetColorSpace sets `r` colorspace object to `colorspace`.
func (_aeaef *PdfPageResources )SetColorSpace (colorspace *PdfPageResourcesColorspaces ){_aeaef ._acffc =colorspace ;};
// 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 ;_cdecc []byte ;_bffb []float64 ;};func (_acc *PdfReader )newPdfActionMovieFromDict (_ffab *_ce .PdfObjectDictionary )(*PdfActionMovie ,error ){return &PdfActionMovie {Annotation :_ffab .Get ("\u0041\u006e\u006e\u006f\u0074\u0061\u0074\u0069\u006f\u006e"),T :_ffab .Get ("\u0054"),Operation :_ffab .Get ("\u004fp\u0065\u0072\u0061\u0074\u0069\u006fn")},nil ;
};
// GetExtGState gets the ExtGState specified by keyName. Returns a bool
// indicating whether it was found or not.
func (_fdbge *PdfPageResources )GetExtGState (keyName _ce .PdfObjectName )(_ce .PdfObject ,bool ){if _fdbge .ExtGState ==nil {return nil ,false ;};_cgdfb ,_bbbgg :=_ce .TraceToDirectObject (_fdbge .ExtGState ).(*_ce .PdfObjectDictionary );if !_bbbgg {_ff .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",_fdbge .ExtGState );
return nil ,false ;};if _ecffb :=_cgdfb .Get (keyName );_ecffb !=nil {return _ecffb ,true ;};return nil ,false ;};func _agdgd (_cgfcf *_ce .PdfObjectDictionary )(*PdfFieldChoice ,error ){_daef :=&PdfFieldChoice {};_daef .Opt ,_ =_ce .GetArray (_cgfcf .Get ("\u004f\u0070\u0074"));
_daef .TI ,_ =_ce .GetInt (_cgfcf .Get ("\u0054\u0049"));_daef .I ,_ =_ce .GetArray (_cgfcf .Get ("\u0049"));return _daef ,nil ;};
// NewPdfAnnotationProjection returns a new projection annotation.
func NewPdfAnnotationProjection ()*PdfAnnotationProjection {_fefa :=NewPdfAnnotation ();_acca :=&PdfAnnotationProjection {};_acca .PdfAnnotation =_fefa ;_acca .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_fefa .SetContext (_acca );return _acca ;};
// 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 _ce .StreamEncoder ;Intent _ce .PdfObject ;ImageMask _ce .PdfObject ;Mask _ce .PdfObject ;Matte _ce .PdfObject ;Decode _ce .PdfObject ;Interpolate _ce .PdfObject ;Alternatives _ce .PdfObject ;
SMask _ce .PdfObject ;SMaskInData _ce .PdfObject ;Name _ce .PdfObject ;StructParent _ce .PdfObject ;ID _ce .PdfObject ;OPI _ce .PdfObject ;Metadata _ce .PdfObject ;OC _ce .PdfObject ;Stream []byte ;_gefdf *_ce .PdfObjectStream ;};
// NewPdfColorspaceDeviceRGB returns a new RGB colorspace object.
func NewPdfColorspaceDeviceRGB ()*PdfColorspaceDeviceRGB {return &PdfColorspaceDeviceRGB {}};
// ToPdfObject implements interface PdfModel.
func (_dbda *PdfAnnotationPrinterMark )ToPdfObject ()_ce .PdfObject {_dbda .PdfAnnotation .ToPdfObject ();_ddab :=_dbda ._dec ;_egge :=_ddab .PdfObject .(*_ce .PdfObjectDictionary );_egge .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ce .MakeName ("P\u0072\u0069\u006e\u0074\u0065\u0072\u004d\u0061\u0072\u006b"));
_egge .SetIfNotNil ("\u004d\u004e",_dbda .MN );return _ddab ;};
// ColorToRGB verifies that the input color is an RGB color. Method exists in
// order to satisfy the PdfColorspace interface.
func (_gcfc *PdfColorspaceDeviceRGB )ColorToRGB (color PdfColor )(PdfColor ,error ){_fbfe ,_gacc :=color .(*PdfColorDeviceRGB );if !_gacc {_ff .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 ,_ge .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};return _fbfe ,nil ;};
// ColorFromFloats returns a new PdfColorDevice based on the input slice of
// color components. The slice should contain four elements representing the
// cyan, magenta, yellow and key components of the color. The values of the
// elements should be between 0 and 1.
func (_affe *PdfColorspaceDeviceCMYK )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=4{return nil ,_ge .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_debbg :=vals [0];if _debbg < 0.0||_debbg > 1.0{_ff .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_debbg );
return nil ,ErrColorOutOfRange ;};_cfga :=vals [1];if _cfga < 0.0||_cfga > 1.0{_ff .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_cfga );return nil ,ErrColorOutOfRange ;
};_dafb :=vals [2];if _dafb < 0.0||_dafb > 1.0{_ff .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_dafb );return nil ,ErrColorOutOfRange ;};_bfga :=vals [3];
if _bfga < 0.0||_bfga > 1.0{_ff .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_bfga );return nil ,ErrColorOutOfRange ;};_cgeb :=NewPdfColorDeviceCMYK (_debbg ,_cfga ,_dafb ,_bfga );
return _cgeb ,nil ;};func (_afa *PdfReader )newPdfActionThreadFromDict (_cgda *_ce .PdfObjectDictionary )(*PdfActionThread ,error ){_efb ,_bdbb :=_ecbge (_cgda .Get ("\u0046"));if _bdbb !=nil {return nil ,_bdbb ;};return &PdfActionThread {D :_cgda .Get ("\u0044"),B :_cgda .Get ("\u0042"),F :_efb },nil ;
};const (_ PdfOutputIntentType =iota ;PdfOutputIntentTypeA1 ;PdfOutputIntentTypeA2 ;PdfOutputIntentTypeA3 ;PdfOutputIntentTypeA4 ;PdfOutputIntentTypeX ;);
// GetBorderWidth returns the border style's width.
func (_cgdd *PdfBorderStyle )GetBorderWidth ()float64 {if _cgdd .W ==nil {return 1;};return *_cgdd .W ;};
// NewXObjectImage returns a new XObjectImage.
func NewXObjectImage ()*XObjectImage {_fcbag :=&XObjectImage {};_efedf :=&_ce .PdfObjectStream {};_efedf .PdfObjectDictionary =_ce .MakeDict ();_fcbag ._gefdf =_efedf ;return _fcbag ;};
// 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 (_bggb *PdfReader )AcroFormNeedsRepair ()(bool ,error ){var _fefaf []*PdfField ;if _bggb .AcroForm !=nil {_fefaf =_bggb .AcroForm .AllFields ();};_becd :=make (map[*PdfField ]struct{},len (_fefaf ));for _ ,_eaee :=range _fefaf {_becd [_eaee ]=struct{}{};
};for _ ,_edega :=range _bggb .PageList {_bgdbc ,_ffgea :=_edega .GetAnnotations ();if _ffgea !=nil {return false ,_ffgea ;};for _ ,_efcg :=range _bgdbc {_ggfgg ,_bcabe :=_efcg .GetContext ().(*PdfAnnotationWidget );if !_bcabe {continue ;};_cfged :=_ggfgg .Field ();
if _cfged ==nil {return true ,nil ;};if _ ,_abaaf :=_becd [_cfged ];!_abaaf {return true ,nil ;};};};return false ,nil ;};
// Val returns the value of the color.
func (_bbgg *PdfColorCalGray )Val ()float64 {return float64 (*_bbgg )};func _bbgfg (_aaad _ce .PdfObject )(*_ce .PdfObjectDictionary ,*fontCommon ,error ){_dfgfg :=&fontCommon {};if _dafgd ,_ffec :=_aaad .(*_ce .PdfIndirectObject );_ffec {_dfgfg ._edcbg =_dafgd .ObjectNumber ;
};_fdcda ,_eeba :=_ce .GetDict (_aaad );if !_eeba {_ff .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",_aaad );
return nil ,nil ,ErrFontNotSupported ;};_ebfe ,_eeba :=_ce .GetNameVal (_fdcda .Get ("\u0054\u0079\u0070\u0065"));if !_eeba {_ff .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 _ebfe !="\u0046\u006f\u006e\u0074"{_ff .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.",_ebfe ,"\u0046\u006f\u006e\u0074");
return nil ,nil ,_ce .ErrTypeError ;};_abefe ,_eeba :=_ce .GetNameVal (_fdcda .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065"));if !_eeba {_ff .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 ;};_dfgfg ._baafb =_abefe ;_acgac ,_eeba :=_ce .GetNameVal (_fdcda .Get ("\u004e\u0061\u006d\u0065"));if _eeba {_dfgfg ._bdae =_acgac ;};_gbde :=_fdcda .Get ("\u0054o\u0055\u006e\u0069\u0063\u006f\u0064e");if _gbde !=nil {_dfgfg ._bcef =_ce .TraceToDirectObject (_gbde );
_ebdf ,_deaa :=_ddabd (_dfgfg ._bcef ,_dfgfg );if _deaa !=nil {return _fdcda ,_dfgfg ,_deaa ;};_dfgfg ._dgfcg =_ebdf ;}else if _abefe =="\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0030"||_abefe =="\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032"{_bdffb ,_aeae :=_ga .NewCIDSystemInfo (_fdcda .Get ("\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f"));
if _aeae !=nil {return _fdcda ,_dfgfg ,_aeae ;};_cdde :=_e .Sprintf ("\u0025\u0073\u002d\u0025\u0073\u002d\u0055\u0043\u0053\u0032",_bdffb .Registry ,_bdffb .Ordering );if _ga .IsPredefinedCMap (_cdde ){_dfgfg ._dgfcg ,_aeae =_ga .LoadPredefinedCMap (_cdde );
if _aeae !=nil {_ff .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",_cdde ,_aeae );
};};};_cadaa :=_fdcda .Get ("\u0046\u006f\u006e\u0074\u0044\u0065\u0073\u0063\u0072i\u0070\u0074\u006f\u0072");if _cadaa !=nil {_deggaa ,_efda :=_ccfe (_cadaa );if _efda !=nil {_ff .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",_efda );
return _fdcda ,_dfgfg ,_efda ;};_dfgfg ._daebd =_deggaa ;};if _abefe !="\u0054\u0079\u0070e\u0033"{_bdfba ,_bceg :=_ce .GetNameVal (_fdcda .Get ("\u0042\u0061\u0073\u0065\u0046\u006f\u006e\u0074"));if !_bceg {_ff .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 _fdcda ,_dfgfg ,ErrRequiredAttributeMissing ;};_dfgfg ._egacd =_bdfba ;};return _fdcda ,_dfgfg ,nil ;};
// ToPdfObject returns the text field dictionary within an indirect object (container).
func (_dbccg *PdfFieldText )ToPdfObject ()_ce .PdfObject {_dbccg .PdfField .ToPdfObject ();_cdeec :=_dbccg ._aadeb ;_bbeg :=_cdeec .PdfObject .(*_ce .PdfObjectDictionary );_bbeg .Set ("\u0046\u0054",_ce .MakeName ("\u0054\u0078"));if _dbccg .DA !=nil {_bbeg .Set ("\u0044\u0041",_dbccg .DA );
};if _dbccg .Q !=nil {_bbeg .Set ("\u0051",_dbccg .Q );};if _dbccg .DS !=nil {_bbeg .Set ("\u0044\u0053",_dbccg .DS );};if _dbccg .RV !=nil {_bbeg .Set ("\u0052\u0056",_dbccg .RV );};if _dbccg .MaxLen !=nil {_bbeg .Set ("\u004d\u0061\u0078\u004c\u0065\u006e",_dbccg .MaxLen );
};return _cdeec ;};
// IsShading specifies if the pattern is a shading pattern.
func (_egabb *PdfPattern )IsShading ()bool {return _egabb .PatternType ==2};func (_becgdd PdfFont )actualFont ()pdfFont {if _becgdd ._dace ==nil {_ff .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",_becgdd );
};return _becgdd ._dace ;};
// GetRuneMetrics returns the character metrics for the specified rune.
// A bool flag is returned to indicate whether or not the entry was found.
func (_fagdg pdfCIDFontType0 )GetRuneMetrics (r rune )(_ee .CharMetrics ,bool ){return _ee .CharMetrics {Wx :_fagdg ._fcae },true ;};func (_abcae *LTV )validateSig (_ccbeg *PdfSignature )error {if _ccbeg ==nil ||_ccbeg .Contents ==nil ||len (_ccbeg .Contents .Bytes ())==0{return _e .Errorf ("i\u006e\u0076\u0061\u006c\u0069\u0064 \u0073\u0069\u0067\u006e\u0061\u0074\u0075\u0072\u0065 \u0066\u0069\u0065l\u0064:\u0020\u0025\u0076",_ccbeg );
};return nil ;};func (_fgecb *PdfPage )setContainer (_dabcc *_ce .PdfIndirectObject ){_dabcc .PdfObject =_fgecb ._cbcaa ;_fgecb ._acbbb =_dabcc ;};func (_fdcfg *PdfWriter )setDocumentIDs (_gegee ,_bcadga string ){_fdcfg ._cbegb =_ce .MakeArray (_ce .MakeHexString (_gegee ),_ce .MakeHexString (_bcadga ));
};
// GetNumComponents returns the number of color components (1 for Indexed).
func (_cdf *PdfColorspaceSpecialIndexed )GetNumComponents ()int {return 1};
// 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 (_aaafb *PdfPage )AppendContentBytes (cs []byte ,wrapContents bool )error {_aaeeg :=_aaafb .GetContentStreamObjs ();wrapContents =wrapContents &&len (_aaeeg )> 0;_bfdec :=_ce .NewFlateEncoder ();_gbacd :=_ce .MakeArray ();if wrapContents {_bbbff ,_eafcc :=_ce .MakeStream ([]byte ("\u0071\u000a"),_bfdec );
if _eafcc !=nil {return _eafcc ;};_gbacd .Append (_bbbff );};_gbacd .Append (_aaeeg ...);if wrapContents {_eggg ,_fcfaf :=_ce .MakeStream ([]byte ("\u000a\u0051\u000a"),_bfdec );if _fcfaf !=nil {return _fcfaf ;};_gbacd .Append (_eggg );};_bdfbba ,_ceeb :=_ce .MakeStream (cs ,_bfdec );
if _ceeb !=nil {return _ceeb ;};_gbacd .Append (_bdfbba );_aaafb .Contents =_gbacd ;return nil ;};
// ToInteger convert to an integer format.
func (_gfgd *PdfColorCalGray )ToInteger (bits int )uint32 {_geda :=_egg .Pow (2,float64 (bits ))-1;return uint32 (_geda *_gfgd .Val ());};
// PdfAnnotationCaret represents Caret annotations.
// (Section 12.5.6.11).
type PdfAnnotationCaret struct{*PdfAnnotation ;*PdfAnnotationMarkup ;RD _ce .PdfObject ;Sy _ce .PdfObject ;};
// PdfColorspaceCalGray represents CalGray color space.
type PdfColorspaceCalGray struct{WhitePoint []float64 ;BlackPoint []float64 ;Gamma float64 ;_aeadd *_ce .PdfIndirectObject ;};
// AcroFormRepairOptions contains options for rebuilding the AcroForm.
type AcroFormRepairOptions struct{};
// PdfActionType represents an action type in PDF (section 12.6.4 p. 417).
type PdfActionType string ;
// ToPdfObject converts the PdfFont object to its PDF representation.
func (_agdf *PdfFont )ToPdfObject ()_ce .PdfObject {if _agdf ._dace ==nil {_ff .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 _ce .MakeNull ();
};return _agdf ._dace .ToPdfObject ();};func _cegfd (_facf _ce .PdfObject )(PdfFunction ,error ){_facf =_ce .ResolveReference (_facf );if _fdbc ,_fabbg :=_facf .(*_ce .PdfObjectStream );_fabbg {_bdge :=_fdbc .PdfObjectDictionary ;_edde ,_eeafg :=_bdge .Get ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065").(*_ce .PdfObjectInteger );
if !_eeafg {_ff .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 ,_ge .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 *_edde ==0{return _dgfda (_fdbc );}else if *_edde ==4{return _efagg (_fdbc );}else {return nil ,_ge .New ("i\u006e\u0076\u0061\u006cid\u0020f\u0075\u006e\u0063\u0074\u0069o\u006e\u0020\u0074\u0079\u0070\u0065");};}else if _ddga ,_dfcb :=_facf .(*_ce .PdfIndirectObject );
_dfcb {_bccbe ,_cadabd :=_ddga .PdfObject .(*_ce .PdfObjectDictionary );if !_cadabd {_ff .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 ,_ge .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");};_ggff ,_cadabd :=_bccbe .Get ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065").(*_ce .PdfObjectInteger );
if !_cadabd {_ff .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 ,_ge .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 *_ggff ==2{return _debdea (_ddga );}else if *_ggff ==3{return _afdfee (_ddga );}else {return nil ,_ge .New ("i\u006e\u0076\u0061\u006cid\u0020f\u0075\u006e\u0063\u0074\u0069o\u006e\u0020\u0074\u0079\u0070\u0065");};}else if _gdfac ,_gfbgb :=_facf .(*_ce .PdfObjectDictionary );
_gfbgb {_caade ,_gbgcb :=_gdfac .Get ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065").(*_ce .PdfObjectInteger );if !_gbgcb {_ff .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 ,_ge .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 *_caade ==2{return _debdea (_gdfac );}else if *_caade ==3{return _afdfee (_gdfac );
}else {return nil ,_ge .New ("i\u006e\u0076\u0061\u006cid\u0020f\u0075\u006e\u0063\u0074\u0069o\u006e\u0020\u0074\u0079\u0070\u0065");};}else {_ff .Log .Debug ("\u0046u\u006e\u0063\u0074\u0069\u006f\u006e\u0020\u0054\u0079\u0070\u0065 \u0065\u0072\u0072\u006f\u0072\u003a\u0020\u0025\u0023\u0076",_facf );
return nil ,_ge .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};};
// ColorFromFloats returns a new PdfColor based on the input slice of color
// components. The slice should contain a single element.
func (_egcfe *PdfColorspaceSpecialSeparation )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=1{return nil ,_ge .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_gaff :=vals [0];_ggbed :=[]float64 {_gaff };_afadf ,_gegde :=_egcfe .TintTransform .Evaluate (_ggbed );
if _gegde !=nil {_ff .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",_gegde );_ff .Log .Trace ("\u0054\u0069\u006e\u0074 t\u0072\u0061\u006e\u0073\u0066\u006f\u0072\u006d\u003a\u0020\u0025\u002b\u0076",_egcfe .TintTransform );
return nil ,_gegde ;};_ff .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",_afadf ,_egcfe .AlternateSpace );
_accbf ,_gegde :=_egcfe .AlternateSpace .ColorFromFloats (_afadf );if _gegde !=nil {_ff .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",_gegde );
return nil ,_gegde ;};return _accbf ,nil ;};
// Normalize swaps (Llx,Urx) if Urx < Llx, and (Lly,Ury) if Ury < Lly.
func (_fgdba *PdfRectangle )Normalize (){if _fgdba .Llx > _fgdba .Urx {_fgdba .Llx ,_fgdba .Urx =_fgdba .Urx ,_fgdba .Llx ;};if _fgdba .Lly > _fgdba .Ury {_fgdba .Lly ,_fgdba .Ury =_fgdba .Ury ,_fgdba .Lly ;};};
// 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 ;_gbbb *_ce .PdfIndirectObject ;};var _abeaae =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":{}};
// 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 *_ce .PdfObjectStream ;Data []byte ;_fedfe *_ce .PdfIndirectObject ;_gcgc *_ce .PdfObjectStream ;};
// Set sets the colorspace corresponding to key. Add to Names if not set.
func (_bbdf *PdfPageResourcesColorspaces )Set (key _ce .PdfObjectName ,val PdfColorspace ){if _ ,_dbfd :=_bbdf .Colorspaces [string (key )];!_dbfd {_bbdf .Names =append (_bbdf .Names ,string (key ));};_bbdf .Colorspaces [string (key )]=val ;};
// DecodeArray returns an empty slice as there are no components associated with pattern colorspace.
func (_aeaag *PdfColorspaceSpecialPattern )DecodeArray ()[]float64 {return []float64 {}};
// AddOCSPs adds OCSPs to DSS.
func (_gegf *DSS )AddOCSPs (ocsps [][]byte )([]*_ce .PdfObjectStream ,error ){return _gegf .add (&_gegf .OCSPs ,_gegf ._eabba ,ocsps );};
// NewOutlineItem returns a new outline item instance.
func NewOutlineItem (title string ,dest OutlineDest )*OutlineItem {return &OutlineItem {Title :title ,Dest :dest };};func (_bdbc *PdfReader )newPdfAnnotationLinkFromDict (_fdg *_ce .PdfObjectDictionary )(*PdfAnnotationLink ,error ){_bgeb :=PdfAnnotationLink {};
_bgeb .A =_fdg .Get ("\u0041");_bgeb .Dest =_fdg .Get ("\u0044\u0065\u0073\u0074");_bgeb .H =_fdg .Get ("\u0048");_bgeb .PA =_fdg .Get ("\u0050\u0041");_bgeb .QuadPoints =_fdg .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");_bgeb .BS =_fdg .Get ("\u0042\u0053");
return &_bgeb ,nil ;};
// SetAnnotations sets the annotations list.
func (_dfedg *PdfPage )SetAnnotations (annotations []*PdfAnnotation ){_dfedg ._gage =annotations };
// 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 (_befea *PdfFieldButton )SetType (btype ButtonType ){_deea :=uint32 (0);if _befea .Ff !=nil {_deea =uint32 (*_befea .Ff );};switch btype {case ButtonTypePush :_deea |=FieldFlagPushbutton .Mask ();case ButtonTypeRadio :_deea |=FieldFlagRadio .Mask ();
};_befea .Ff =_ce .MakeInteger (int64 (_deea ));};
// ToPdfObject returns the PDF representation of the function.
func (_ccab *PdfFunctionType3 )ToPdfObject ()_ce .PdfObject {_efacd :=_ce .MakeDict ();_efacd .Set ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065",_ce .MakeInteger (3));_adbba :=&_ce .PdfObjectArray {};for _ ,_adfcg :=range _ccab .Domain {_adbba .Append (_ce .MakeFloat (_adfcg ));
};_efacd .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_adbba );if _ccab .Range !=nil {_geaa :=&_ce .PdfObjectArray {};for _ ,_cdfa :=range _ccab .Range {_geaa .Append (_ce .MakeFloat (_cdfa ));};_efacd .Set ("\u0052\u0061\u006eg\u0065",_geaa );};if _ccab .Functions !=nil {_gfebg :=&_ce .PdfObjectArray {};
for _ ,_dcaga :=range _ccab .Functions {_gfebg .Append (_dcaga .ToPdfObject ());};_efacd .Set ("\u0046u\u006e\u0063\u0074\u0069\u006f\u006es",_gfebg );};if _ccab .Bounds !=nil {_addb :=&_ce .PdfObjectArray {};for _ ,_gccfb :=range _ccab .Bounds {_addb .Append (_ce .MakeFloat (_gccfb ));
};_efacd .Set ("\u0042\u006f\u0075\u006e\u0064\u0073",_addb );};if _ccab .Encode !=nil {_aegeg :=&_ce .PdfObjectArray {};for _ ,_ecgdc :=range _ccab .Encode {_aegeg .Append (_ce .MakeFloat (_ecgdc ));};_efacd .Set ("\u0045\u006e\u0063\u006f\u0064\u0065",_aegeg );
};if _ccab ._badbg !=nil {_ccab ._badbg .PdfObject =_efacd ;return _ccab ._badbg ;};return _efacd ;};
// SetPdfSubject sets the Subject attribute of the output PDF.
func SetPdfSubject (subject string ){_cbcgc .Lock ();defer _cbcgc .Unlock ();_bfdac =subject };
// PdfActionMovie represents a movie action.
type PdfActionMovie struct{*PdfAction ;Annotation _ce .PdfObject ;T _ce .PdfObject ;Operation _ce .PdfObject ;};
// NewPdfColorLab returns a new Lab color.
func NewPdfColorLab (l ,a ,b float64 )*PdfColorLab {_dcag :=PdfColorLab {l ,a ,b };return &_dcag };
// GetContext returns a reference to the subpattern entry: either PdfTilingPattern or PdfShadingPattern.
func (_cecda *PdfPattern )GetContext ()PdfModel {return _cecda ._fbea };
// GetRuneMetrics returns the character metrics for the specified rune.
// A bool flag is returned to indicate whether or not the entry was found.
func (_edef pdfFontType3 )GetRuneMetrics (r rune )(_ee .CharMetrics ,bool ){_dcaa :=_edef .Encoder ();if _dcaa ==nil {_ff .Log .Debug ("\u004e\u006f\u0020en\u0063\u006f\u0064\u0065\u0072\u0020\u0066\u006f\u0072\u0020\u0066\u006f\u006e\u0074\u0073\u003d\u0025\u0073",_edef );
return _ee .CharMetrics {},false ;};_addc ,_bgbfe :=_dcaa .RuneToCharcode (r );if !_bgbfe {if r !=' '{_ff .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 ,_edef );
};return _ee .CharMetrics {},false ;};_adbgg ,_ddcd :=_edef .GetCharMetrics (_addc );return _adbgg ,_ddcd ;};
// Add appends a top level outline item to the outline.
func (_fbgbb *Outline )Add (item *OutlineItem ){_fbgbb .Entries =append (_fbgbb .Entries ,item )};func _face (_aeeab *_ce .PdfObjectDictionary )(*PdfShadingType6 ,error ){_cgcfe :=PdfShadingType6 {};_gbabd :=_aeeab .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065");
if _gbabd ==nil {_ff .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 ;};_bfceb ,_gabfc :=_gbabd .(*_ce .PdfObjectInteger );if !_gabfc {_ff .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",_gbabd );
return nil ,_ce .ErrTypeError ;};_cgcfe .BitsPerCoordinate =_bfceb ;_gbabd =_aeeab .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074");if _gbabd ==nil {_ff .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 ;};_bfceb ,_gabfc =_gbabd .(*_ce .PdfObjectInteger );if !_gabfc {_ff .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",_gbabd );
return nil ,_ce .ErrTypeError ;};_cgcfe .BitsPerComponent =_bfceb ;_gbabd =_aeeab .Get ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067");if _gbabd ==nil {_ff .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 ;};_bfceb ,_gabfc =_gbabd .(*_ce .PdfObjectInteger );if !_gabfc {_ff .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",_gbabd );
return nil ,_ce .ErrTypeError ;};_cgcfe .BitsPerComponent =_bfceb ;_gbabd =_aeeab .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");if _gbabd ==nil {_ff .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 ;};_badbea ,_gabfc :=_gbabd .(*_ce .PdfObjectArray );if !_gabfc {_ff .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",_gbabd );
return nil ,_ce .ErrTypeError ;};_cgcfe .Decode =_badbea ;if _dgbg :=_aeeab .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");_dgbg !=nil {_cgcfe .Function =[]PdfFunction {};if _dedeea ,_eeea :=_dgbg .(*_ce .PdfObjectArray );_eeea {for _ ,_fdeed :=range _dedeea .Elements (){_ggafd ,_badge :=_cegfd (_fdeed );
if _badge !=nil {_ff .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",_badge );return nil ,_badge ;};_cgcfe .Function =append (_cgcfe .Function ,_ggafd );
};}else {_ccffd ,_faecd :=_cegfd (_dgbg );if _faecd !=nil {_ff .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",_faecd );return nil ,_faecd ;
};_cgcfe .Function =append (_cgcfe .Function ,_ccffd );};};return &_cgcfe ,nil ;};
// GetPrimitiveFromModel returns the primitive object corresponding to the input `model`.
func (_ebfgd *modelManager )GetPrimitiveFromModel (model PdfModel )_ce .PdfObject {_bfbad ,_ebebb :=_ebfgd ._dgefa [model ];if !_ebebb {return nil ;};return _bfbad ;};
// GenerateHashMaps generates DSS hashmaps for Certificates, OCSPs and CRLs to make sure they are unique.
func (_bcge *DSS )GenerateHashMaps ()error {_fcebb ,_cbcad :=_bcge .generateHashMap (_bcge .Certs );if _cbcad !=nil {return _cbcad ;};_cfage ,_cbcad :=_bcge .generateHashMap (_bcge .OCSPs );if _cbcad !=nil {return _cbcad ;};_eeaea ,_cbcad :=_bcge .generateHashMap (_bcge .CRLs );
if _cbcad !=nil {return _cbcad ;};_bcge ._daad =_fcebb ;_bcge ._eabba =_cfage ;_bcge ._abge =_eeaea ;return nil ;};
// GetContainingPdfObject returns the containing object for the PdfField, i.e. an indirect object
// containing the field dictionary.
func (_bbcg *PdfField )GetContainingPdfObject ()_ce .PdfObject {return _bbcg ._aadeb };var _ pdfFont =(*pdfCIDFontType2 )(nil );
// ColorFromFloats returns a new PdfColor based on input color components.
func (_egdff *PdfColorspaceDeviceN )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=_egdff .GetNumComponents (){return nil ,_ge .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_dfca ,_aeeb :=_egdff .TintTransform .Evaluate (vals );
if _aeeb !=nil {return nil ,_aeeb ;};_aaff ,_aeeb :=_egdff .AlternateSpace .ColorFromFloats (_dfca );if _aeeb !=nil {return nil ,_aeeb ;};return _aaff ,nil ;};func (_eac *PdfReader )newPdfAnnotationCircleFromDict (_accd *_ce .PdfObjectDictionary )(*PdfAnnotationCircle ,error ){_gdeb :=PdfAnnotationCircle {};
_bcda ,_abf :=_eac .newPdfAnnotationMarkupFromDict (_accd );if _abf !=nil {return nil ,_abf ;};_gdeb .PdfAnnotationMarkup =_bcda ;_gdeb .BS =_accd .Get ("\u0042\u0053");_gdeb .IC =_accd .Get ("\u0049\u0043");_gdeb .BE =_accd .Get ("\u0042\u0045");_gdeb .RD =_accd .Get ("\u0052\u0044");
return &_gdeb ,nil ;};
// SetPdfCreator sets the Creator attribute of the output PDF.
func SetPdfCreator (creator string ){_cbcgc .Lock ();defer _cbcgc .Unlock ();_daadg =creator };func (_bbab *PdfAppender )updateObjectsDeep (_fgd _ce .PdfObject ,_gcfee map[_ce .PdfObject ]struct{}){if _gcfee ==nil {_gcfee =map[_ce .PdfObject ]struct{}{};
};if _ ,_ebde :=_gcfee [_fgd ];_ebde ||_fgd ==nil {return ;};_gcfee [_fgd ]=struct{}{};_bgff :=_ce .ResolveReferencesDeep (_fgd ,_bbab ._ccbd );if _bgff !=nil {_ff .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_bgff );};switch _cgcf :=_fgd .(type ){case *_ce .PdfIndirectObject :switch {case _cgcf .GetParser ()==_bbab ._fcda ._afda :return ;
case _cgcf .GetParser ()==_bbab .Reader ._afda :_fbbbg ,_ :=_bbab ._fcda .GetIndirectObjectByNumber (int (_cgcf .ObjectNumber ));_aefc ,_becgd :=_fbbbg .(*_ce .PdfIndirectObject );if _becgd &&_aefc !=nil {if _aefc .PdfObject !=_cgcf .PdfObject &&_aefc .PdfObject .WriteString ()!=_cgcf .PdfObject .WriteString (){if _g .Contains (_cgcf .PdfObject .WriteString (),"\u002f\u0053\u0069\u0067")&&_g .Contains (_cgcf .PdfObject .WriteString (),"\u002f\u0053\u0075\u0062\u0074\u0079\u0070\u0065"){return ;
};_bbab .addNewObject (_fgd );_bbab ._fadeg [_fgd ]=_cgcf .ObjectNumber ;};};default:_bbab .addNewObject (_fgd );};_bbab .updateObjectsDeep (_cgcf .PdfObject ,_gcfee );case *_ce .PdfObjectArray :for _ ,_bgb :=range _cgcf .Elements (){_bbab .updateObjectsDeep (_bgb ,_gcfee );
};case *_ce .PdfObjectDictionary :for _ ,_ddfee :=range _cgcf .Keys (){_bbab .updateObjectsDeep (_cgcf .Get (_ddfee ),_gcfee );};case *_ce .PdfObjectStreams :if _cgcf .GetParser ()!=_bbab ._fcda ._afda {for _ ,_dbf :=range _cgcf .Elements (){_bbab .updateObjectsDeep (_dbf ,_gcfee );
};};case *_ce .PdfObjectStream :switch {case _cgcf .GetParser ()==_bbab ._fcda ._afda :return ;case _cgcf .GetParser ()==_bbab .Reader ._afda :if _ecccg ,_bfcg :=_bbab ._fcda ._afda .LookupByReference (_cgcf .PdfObjectReference );_bfcg ==nil {var _cfcb bool ;
if _dbcg ,_feac :=_ce .GetStream (_ecccg );_feac &&_ag .Equal (_dbcg .Stream ,_cgcf .Stream ){_cfcb =true ;};if _gcac ,_beed :=_ce .GetDict (_ecccg );_cfcb &&_beed {_cfcb =_gcac .WriteString ()==_cgcf .PdfObjectDictionary .WriteString ();};if _cfcb {return ;
};};if _cgcf .ObjectNumber !=0{_bbab ._fadeg [_fgd ]=_cgcf .ObjectNumber ;};default:if _ ,_bbeb :=_bbab ._acbd [_fgd ];!_bbeb {_bbab .addNewObject (_fgd );};};_bbab .updateObjectsDeep (_cgcf .PdfObjectDictionary ,_gcfee );};};
// ToPdfObject implements interface PdfModel.
func (_becg *PdfActionRendition )ToPdfObject ()_ce .PdfObject {_becg .PdfAction .ToPdfObject ();_gdg :=_becg ._bcc ;_ecf :=_gdg .PdfObject .(*_ce .PdfObjectDictionary );_ecf .SetIfNotNil ("\u0053",_ce .MakeName (string (ActionTypeRendition )));_ecf .SetIfNotNil ("\u0052",_becg .R );
_ecf .SetIfNotNil ("\u0041\u004e",_becg .AN );_ecf .SetIfNotNil ("\u004f\u0050",_becg .OP );_ecf .SetIfNotNil ("\u004a\u0053",_becg .JS );return _gdg ;};
// NewPdfAnnotationPrinterMark returns a new printermark annotation.
func NewPdfAnnotationPrinterMark ()*PdfAnnotationPrinterMark {_dbgc :=NewPdfAnnotation ();_cffb :=&PdfAnnotationPrinterMark {};_cffb .PdfAnnotation =_dbgc ;_dbgc .SetContext (_cffb );return _cffb ;};
// GetStandardApplier gets currently used StandardApplier..
func (_bbebg *PdfWriter )GetStandardApplier ()StandardApplier {return _bbebg ._dgeef };
// GetRuneMetrics returns the character metrics for the specified rune.
// A bool flag is returned to indicate whether or not the entry was found.
func (_bafda pdfCIDFontType2 )GetRuneMetrics (r rune )(_ee .CharMetrics ,bool ){_ddgd ,_egcc :=_bafda ._bedga [r ];if !_egcc {_dbffc ,_eeebag :=_ce .GetInt (_bafda .DW );if !_eeebag {return _ee .CharMetrics {},false ;};_ddgd =int (*_dbffc );};return _ee .CharMetrics {Wx :float64 (_ddgd )},true ;
};
// PdfActionNamed represents a named action.
type PdfActionNamed struct{*PdfAction ;N _ce .PdfObject ;};
// String implements interface PdfObject.
func (_fd *PdfAction )String ()string {_cg ,_af :=_fd .ToPdfObject ().(*_ce .PdfIndirectObject );if _af {return _e .Sprintf ("\u0025\u0054\u003a\u0020\u0025\u0073",_fd ._gbf ,_cg .PdfObject .String ());};return "";};
// GetPatternByName gets the pattern specified by keyName. Returns nil if not existing.
// The bool flag indicated whether it was found or not.
func (_abgf *PdfPageResources )GetPatternByName (keyName _ce .PdfObjectName )(*PdfPattern ,bool ){if _abgf .Pattern ==nil {return nil ,false ;};_edab ,_fcgee :=_ce .TraceToDirectObject (_abgf .Pattern ).(*_ce .PdfObjectDictionary );if !_fcgee {_ff .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",_abgf .Pattern );
return nil ,false ;};if _dacc :=_edab .Get (keyName );_dacc !=nil {_gegb ,_ceeebg :=_baecf (_dacc );if _ceeebg !=nil {_ff .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",_ceeebg );
return nil ,false ;};return _gegb ,true ;};return nil ,false ;};func (_egbea *pdfCIDFontType0 )getFontDescriptor ()*PdfFontDescriptor {return _egbea ._daebd };
// 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 (_acbcd *PdfColorspaceCalGray )ColorFromPdfObjects (objects []_ce .PdfObject )(PdfColor ,error ){if len (objects )!=1{return nil ,_ge .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_fadaf ,_aacg :=_ce .GetNumbersAsFloat (objects );
if _aacg !=nil {return nil ,_aacg ;};return _acbcd .ColorFromFloats (_fadaf );};
// GetParamsDict returns *core.PdfObjectDictionary with a set of basic image parameters.
func (_ccfg *Image )GetParamsDict ()*_ce .PdfObjectDictionary {_egda :=_ce .MakeDict ();_egda .Set ("\u0057\u0069\u0064t\u0068",_ce .MakeInteger (_ccfg .Width ));_egda .Set ("\u0048\u0065\u0069\u0067\u0068\u0074",_ce .MakeInteger (_ccfg .Height ));_egda .Set ("\u0043o\u006co\u0072\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074\u0073",_ce .MakeInteger (int64 (_ccfg .ColorComponents )));
_egda .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_ce .MakeInteger (_ccfg .BitsPerComponent ));return _egda ;};
// 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 ()_ce .PdfObject ;GetContainingPdfObject ()_ce .PdfObject ;};
// NewXObjectFormFromStream builds the Form XObject from a stream object.
// TODO: Should this be exposed? Consider different access points.
func NewXObjectFormFromStream (stream *_ce .PdfObjectStream )(*XObjectForm ,error ){_bbfbc :=&XObjectForm {};_bbfbc ._efffe =stream ;_bfefa :=*(stream .PdfObjectDictionary );_eabc ,_gfaaa :=_ce .NewEncoderFromStream (stream );if _gfaaa !=nil {return nil ,_gfaaa ;
};_bbfbc .Filter =_eabc ;if _adgafg :=_bfefa .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065");_adgafg !=nil {_bggdbb ,_baeab :=_adgafg .(*_ce .PdfObjectName );if !_baeab {return nil ,_ge .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");
};if *_bggdbb !="\u0046\u006f\u0072\u006d"{_ff .Log .Debug ("I\u006ev\u0061\u006c\u0069\u0064\u0020\u0066\u006f\u0072m\u0020\u0073\u0075\u0062ty\u0070\u0065");return nil ,_ge .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0066\u006f\u0072m\u0020\u0073\u0075\u0062ty\u0070\u0065");
};};if _bdagd :=_bfefa .Get ("\u0046\u006f\u0072\u006d\u0054\u0079\u0070\u0065");_bdagd !=nil {_bbfbc .FormType =_bdagd ;};if _efdef :=_bfefa .Get ("\u0042\u0042\u006f\u0078");_efdef !=nil {_bbfbc .BBox =_efdef ;};if _ccfcd :=_bfefa .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");
_ccfcd !=nil {_bbfbc .Matrix =_ccfcd ;};if _agabdc :=_bfefa .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");_agabdc !=nil {_agabdc =_ce .TraceToDirectObject (_agabdc );_eeedfc ,_acedc :=_agabdc .(*_ce .PdfObjectDictionary );if !_acedc {_ff .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 ,_ce .ErrTypeError ;};_edaf ,_gbag :=NewPdfPageResourcesFromDict (_eeedfc );if _gbag !=nil {_ff .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 ,_gbag ;};_bbfbc .Resources =_edaf ;_ff .Log .Trace ("\u0046\u006f\u0072\u006d r\u0065\u0073\u006f\u0075\u0072\u0063\u0065\u0073\u003a\u0020\u0025\u0023\u0076",_bbfbc .Resources );};_bbfbc .Group =_bfefa .Get ("\u0047\u0072\u006fu\u0070");_bbfbc .Ref =_bfefa .Get ("\u0052\u0065\u0066");
_bbfbc .MetaData =_bfefa .Get ("\u004d\u0065\u0074\u0061\u0044\u0061\u0074\u0061");_bbfbc .PieceInfo =_bfefa .Get ("\u0050i\u0065\u0063\u0065\u0049\u006e\u0066o");_bbfbc .LastModified =_bfefa .Get ("\u004c\u0061\u0073t\u004d\u006f\u0064\u0069\u0066\u0069\u0065\u0064");
_bbfbc .StructParent =_bfefa .Get ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074");_bbfbc .StructParents =_bfefa .Get ("\u0053\u0074\u0072\u0075\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074\u0073");_bbfbc .OPI =_bfefa .Get ("\u004f\u0050\u0049");
_bbfbc .OC =_bfefa .Get ("\u004f\u0043");_bbfbc .Name =_bfefa .Get ("\u004e\u0061\u006d\u0065");_bbfbc .Stream =stream .Stream ;return _bbfbc ,nil ;};
// ToPdfObject returns the PDF representation of the shading dictionary.
func (_bcbc *PdfShadingType3 )ToPdfObject ()_ce .PdfObject {_bcbc .PdfShading .ToPdfObject ();_gbdcd ,_bdffe :=_bcbc .getShadingDict ();if _bdffe !=nil {_ff .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 _bcbc .Coords !=nil {_gbdcd .Set ("\u0043\u006f\u006f\u0072\u0064\u0073",_bcbc .Coords );};if _bcbc .Domain !=nil {_gbdcd .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_bcbc .Domain );};if _bcbc .Function !=nil {if len (_bcbc .Function )==1{_gbdcd .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_bcbc .Function [0].ToPdfObject ());
}else {_abaedg :=_ce .MakeArray ();for _ ,_degd :=range _bcbc .Function {_abaedg .Append (_degd .ToPdfObject ());};_gbdcd .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_abaedg );};};if _bcbc .Extend !=nil {_gbdcd .Set ("\u0045\u0078\u0074\u0065\u006e\u0064",_bcbc .Extend );
};return _bcbc ._agcdg ;};
// NewPdfActionResetForm returns a new "reset form" action.
func NewPdfActionResetForm ()*PdfActionResetForm {_bbc :=NewPdfAction ();_bec :=&PdfActionResetForm {};_bec .PdfAction =_bbc ;_bbc .SetContext (_bec );return _bec ;};
// 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 ){_faee ,_ecfc :=_fgda (basefont );if _ecfc !=nil {return nil ,_ecfc ;};if basefont !=SymbolName &&basefont !=ZapfDingbatsName {_faee ._bbaf =_dc .NewWinAnsiEncoder ();};return &PdfFont {_dace :&_faee },nil ;
};
// NewPdfAnnotationWidget returns an initialized annotation widget.
func NewPdfAnnotationWidget ()*PdfAnnotationWidget {_abg :=NewPdfAnnotation ();_aeaf :=&PdfAnnotationWidget {};_aeaf .PdfAnnotation =_abg ;_abg .SetContext (_aeaf );return _aeaf ;};func _bgfbde (_ceed *_ce .PdfObjectDictionary )(*PdfFieldButton ,error ){_fegda :=&PdfFieldButton {};
_fegda .PdfField =NewPdfField ();_fegda .PdfField .SetContext (_fegda );_fegda .Opt ,_ =_ce .GetArray (_ceed .Get ("\u004f\u0070\u0074"));_bdegf :=NewPdfAnnotationWidget ();_bdegf .A ,_ =_ce .GetDict (_ceed .Get ("\u0041"));_bdegf .AP ,_ =_ce .GetDict (_ceed .Get ("\u0041\u0050"));
_bdegf .SetContext (_fegda );_fegda .PdfField .Annotations =append (_fegda .PdfField .Annotations ,_bdegf );return _fegda ,nil ;};func (_faceg *PdfWriter )optimize ()error {if _faceg ._bcged ==nil {return nil ;};var _agbfe error ;_faceg ._adbee ,_agbfe =_faceg ._bcged .Optimize (_faceg ._adbee );
if _agbfe !=nil {return _agbfe ;};_fdefae :=make (map[_ce .PdfObject ]struct{},len (_faceg ._adbee ));for _ ,_agad :=range _faceg ._adbee {_fdefae [_agad ]=struct{}{};};_faceg ._gdaab =_fdefae ;return nil ;};
// Hasher is the interface that wraps the basic Write method.
type Hasher interface{Write (_abadc []byte )(_fadgc int ,_edbc error );};
// 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 ;_gfdaf *_ce .PdfObjectDictionary ;};func _gdgff (_fabba _ce .PdfObject )(*PdfColorspaceICCBased ,error ){_fbe :=&PdfColorspaceICCBased {};if _afcc ,_adec :=_fabba .(*_ce .PdfIndirectObject );_adec {_fbe ._fedfe =_afcc ;};_fabba =_ce .TraceToDirectObject (_fabba );
_fbff ,_ggcf :=_fabba .(*_ce .PdfObjectArray );if !_ggcf {return nil ,_e .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _fbff .Len ()!=2{return nil ,_e .Errorf ("i\u006e\u0076\u0061\u006c\u0069\u0064 \u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064\u0020c\u006f\u006c\u006fr\u0073p\u0061\u0063\u0065");
};_fabba =_ce .TraceToDirectObject (_fbff .Get (0));_fccc ,_ggcf :=_fabba .(*_ce .PdfObjectName );if !_ggcf {return nil ,_e .Errorf ("\u0049\u0043\u0043B\u0061\u0073\u0065\u0064 \u006e\u0061\u006d\u0065\u0020\u006e\u006ft\u0020\u0061\u0020\u004e\u0061\u006d\u0065\u0020\u006f\u0062\u006a\u0065\u0063\u0074");
};if *_fccc !="\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064"{return nil ,_e .Errorf ("\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0049\u0043\u0043\u0042a\u0073\u0065\u0064\u0020\u0063\u006f\u006c\u006f\u0072\u0073p\u0061\u0063\u0065");};_fabba =_fbff .Get (1);
_gdfe ,_ggcf :=_ce .GetStream (_fabba );if !_ggcf {_ff .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",_fabba );
return nil ,_e .Errorf ("\u0049\u0043\u0043Ba\u0073\u0065\u0064\u0020\u0073\u0074\u0072\u0065\u0061\u006d\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064");};_eedc :=_gdfe .PdfObjectDictionary ;_ddcgb ,_ggcf :=_eedc .Get ("\u004e").(*_ce .PdfObjectInteger );
if !_ggcf {return nil ,_e .Errorf ("I\u0043\u0043\u0042\u0061\u0073\u0065d\u0020\u006d\u0069\u0073\u0073\u0069n\u0067\u0020\u004e\u0020\u0066\u0072\u006fm\u0020\u0073\u0074\u0072\u0065\u0061\u006d\u0020\u0064\u0069c\u0074");};if *_ddcgb !=1&&*_ddcgb !=3&&*_ddcgb !=4{return nil ,_e .Errorf ("\u0049\u0043\u0043\u0042\u0061s\u0065\u0064\u0020\u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063\u0065 \u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u004e\u0020\u0028\u006e\u006f\u0074\u0020\u0031\u002c\u0033\u002c\u0034\u0029");
};_fbe .N =int (*_ddcgb );if _cbgc :=_eedc .Get ("\u0041l\u0074\u0065\u0072\u006e\u0061\u0074e");_cbgc !=nil {_ggg ,_bfac :=NewPdfColorspaceFromPdfObject (_cbgc );if _bfac !=nil {return nil ,_bfac ;};_fbe .Alternate =_ggg ;};if _ecd :=_eedc .Get ("\u0052\u0061\u006eg\u0065");
_ecd !=nil {_ecd =_ce .TraceToDirectObject (_ecd );_eaae ,_cgfg :=_ecd .(*_ce .PdfObjectArray );if !_cgfg {return nil ,_e .Errorf ("I\u0043\u0043\u0042\u0061\u0073\u0065d\u0020\u0052\u0061\u006e\u0067\u0065\u0020\u006e\u006ft\u0020\u0061\u006e \u0061r\u0072\u0061\u0079");
};if _eaae .Len ()!=2*_fbe .N {return nil ,_e .Errorf ("\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064\u0020\u0052\u0061\u006e\u0067e\u0020\u0077\u0072\u006f\u006e\u0067 \u006e\u0075\u006d\u0062\u0065\u0072\u0020\u006f\u0066\u0020\u0065\u006c\u0065m\u0065\u006e\u0074\u0073");
};_bgcd ,_afafb :=_eaae .GetAsFloat64Slice ();if _afafb !=nil {return nil ,_afafb ;};_fbe .Range =_bgcd ;}else {_fbe .Range =make ([]float64 ,2*_fbe .N );for _bdcb :=0;_bdcb < _fbe .N ;_bdcb ++{_fbe .Range [2*_bdcb ]=0.0;_fbe .Range [2*_bdcb +1]=1.0;};
};if _ggdca :=_eedc .Get ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");_ggdca !=nil {_fddeb ,_fgae :=_ggdca .(*_ce .PdfObjectStream );if !_fgae {return nil ,_e .Errorf ("\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064\u0020\u004de\u0074\u0061\u0064\u0061\u0074\u0061\u0020n\u006f\u0074\u0020\u0061\u0020\u0073\u0074\u0072\u0065\u0061\u006d");
};_fbe .Metadata =_fddeb ;};_bbde ,_aaeaf :=_ce .DecodeStream (_gdfe );if _aaeaf !=nil {return nil ,_aaeaf ;};_fbe .Data =_bbde ;_fbe ._gcgc =_gdfe ;return _fbe ,nil ;};
// GetContainingPdfObject implements interface PdfModel.
func (_bbf *PdfAction )GetContainingPdfObject ()_ce .PdfObject {return _bbf ._bcc };
// PdfShadingPatternType2 is shading patterns that will use a Type 2 shading pattern (Axial).
type PdfShadingPatternType2 struct{*PdfPattern ;Shading *PdfShadingType2 ;Matrix *_ce .PdfObjectArray ;ExtGState _ce .PdfObject ;};
// ToPdfObject implements interface PdfModel.
func (_acf *PdfActionURI )ToPdfObject ()_ce .PdfObject {_acf .PdfAction .ToPdfObject ();_agbg :=_acf ._bcc ;_bfb :=_agbg .PdfObject .(*_ce .PdfObjectDictionary );_bfb .SetIfNotNil ("\u0053",_ce .MakeName (string (ActionTypeURI )));_bfb .SetIfNotNil ("\u0055\u0052\u0049",_acf .URI );
_bfb .SetIfNotNil ("\u0049\u0073\u004da\u0070",_acf .IsMap );return _agbg ;};
// PdfActionSubmitForm represents a submitForm action.
type PdfActionSubmitForm struct{*PdfAction ;F *PdfFilespec ;Fields _ce .PdfObject ;Flags _ce .PdfObject ;};
// NewPdfSignatureReferenceDocMDP returns PdfSignatureReference for the transformParams.
func NewPdfSignatureReferenceDocMDP (transformParams *PdfTransformParamsDocMDP )*PdfSignatureReference {return &PdfSignatureReference {Type :_ce .MakeName ("\u0053\u0069\u0067\u0052\u0065\u0066"),TransformMethod :_ce .MakeName ("\u0044\u006f\u0063\u004d\u0044\u0050"),TransformParams :transformParams .ToPdfObject ()};
};
// ToPdfObject implements interface PdfModel.
func (_fgfdc *PdfAnnotationText )ToPdfObject ()_ce .PdfObject {_fgfdc .PdfAnnotation .ToPdfObject ();_ecbb :=_fgfdc ._dec ;_fgce :=_ecbb .PdfObject .(*_ce .PdfObjectDictionary );if _fgfdc .PdfAnnotationMarkup !=nil {_fgfdc .PdfAnnotationMarkup .appendToPdfDictionary (_fgce );
};_fgce .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ce .MakeName ("\u0054\u0065\u0078\u0074"));_fgce .SetIfNotNil ("\u004f\u0070\u0065\u006e",_fgfdc .Open );_fgce .SetIfNotNil ("\u004e\u0061\u006d\u0065",_fgfdc .Name );_fgce .SetIfNotNil ("\u0053\u0074\u0061t\u0065",_fgfdc .State );
_fgce .SetIfNotNil ("\u0053\u0074\u0061\u0074\u0065\u004d\u006f\u0064\u0065\u006c",_fgfdc .StateModel );return _ecbb ;};func _bfbb (_cefg map[_ee .GID ]int ,_adfgd uint16 )*_ce .PdfObjectArray {_gbee :=&_ce .PdfObjectArray {};_cdbge :=_ee .GID (_adfgd );
for _abega :=_ee .GID (0);_abega < _cdbge ;{_dffgd ,_efef :=_cefg [_abega ];if !_efef {_abega ++;continue ;};_bace :=_abega ;for _gddda :=_bace +1;_gddda < _cdbge ;_gddda ++{if _fedgb ,_dcca :=_cefg [_gddda ];!_dcca ||_dffgd !=_fedgb {break ;};_bace =_gddda ;
};_gbee .Append (_ce .MakeInteger (int64 (_abega )));_gbee .Append (_ce .MakeInteger (int64 (_bace )));_gbee .Append (_ce .MakeInteger (int64 (_dffgd )));_abega =_bace +1;};return _gbee ;};
// NewPdfAnnotationScreen returns a new screen annotation.
func NewPdfAnnotationScreen ()*PdfAnnotationScreen {_egc :=NewPdfAnnotation ();_aaf :=&PdfAnnotationScreen {};_aaf .PdfAnnotation =_egc ;_egc .SetContext (_aaf );return _aaf ;};
// SetFillImage attach a model.Image to push button.
func (_dfgffa *PdfFieldButton )SetFillImage (image *Image ){if _dfgffa .IsPush (){_dfgffa ._ffff =image ;};};
// ColorToRGB converts a DeviceN color to an RGB color.
func (_bcfb *PdfColorspaceDeviceN )ColorToRGB (color PdfColor )(PdfColor ,error ){if _bcfb .AlternateSpace ==nil {return nil ,_ge .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 _bcfb .AlternateSpace .ColorToRGB (color );};func _gacga (_adaec *fontCommon )*pdfCIDFontType0 {return &pdfCIDFontType0 {fontCommon :*_adaec }};
// ToPdfObject converts the pdfFontSimple to its PDF representation for outputting.
func (_efbd *pdfFontSimple )ToPdfObject ()_ce .PdfObject {if _efbd ._bgaae ==nil {_efbd ._bgaae =&_ce .PdfIndirectObject {};};_gddca :=_efbd .baseFields ().asPdfObjectDictionary ("");_efbd ._bgaae .PdfObject =_gddca ;if _efbd .FirstChar !=nil {_gddca .Set ("\u0046i\u0072\u0073\u0074\u0043\u0068\u0061r",_efbd .FirstChar );
};if _efbd .LastChar !=nil {_gddca .Set ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072",_efbd .LastChar );};if _efbd .Widths !=nil {_gddca .Set ("\u0057\u0069\u0064\u0074\u0068\u0073",_efbd .Widths );};if _efbd .Encoding !=nil {_gddca .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_efbd .Encoding );
}else if _efbd ._bbaf !=nil {_cedaa :=_efbd ._bbaf .ToPdfObject ();if _cedaa !=nil {_gddca .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_cedaa );};};return _efbd ._bgaae ;};
// NewPdfAnnotationFreeText returns a new free text annotation.
func NewPdfAnnotationFreeText ()*PdfAnnotationFreeText {_aeada :=NewPdfAnnotation ();_fgfd :=&PdfAnnotationFreeText {};_fgfd .PdfAnnotation =_aeada ;_fgfd .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_aeada .SetContext (_fgfd );return _fgfd ;};
// SetPdfCreationDate sets the CreationDate attribute of the output PDF.
func SetPdfCreationDate (creationDate _c .Time ){_cbcgc .Lock ();defer _cbcgc .Unlock ();_faegc =creationDate ;};
// FlattenFieldsWithOpts flattens the AcroForm fields of the page using the
// provided field appearance generator and the specified options. If no options
// are specified, all form fields are flattened for the page.
// If a filter function is provided using the opts parameter, only the filtered
// fields are flattened. Otherwise, all form fields are flattened.
func (_ecbca *PdfPage )FlattenFieldsWithOpts (appgen FieldAppearanceGenerator ,opts *FieldFlattenOpts )error {_dccf :=map[*PdfAnnotation ]bool {};_dac ,_afbg :=_ecbca .GetAnnotations ();if _afbg !=nil {return _afbg ;};_adef :=false ;for _ ,_edcg :=range _dac {if opts .AnnotFilterFunc !=nil {_dccf [_edcg ]=opts .AnnotFilterFunc (_edcg );
}else {_dccf [_edcg ]=true ;};if _dccf [_edcg ]{_adef =true ;};};if !_adef {return nil ;};return _ecbca .flattenFieldsWithOpts (appgen ,opts ,_dccf );};
// SetPdfKeywords sets the Keywords attribute of the output PDF.
func SetPdfKeywords (keywords string ){_cbcgc .Lock ();defer _cbcgc .Unlock ();_babb =keywords };
// 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 ,*_dd .File ,error ){const _abgbg ="\u006d\u006f\u0064\u0065\u006c\u003a\u004e\u0065\u0077\u0050\u0064f\u0052\u0065\u0061\u0064\u0065\u0072\u0046\u0072\u006f\u006dF\u0069\u006c\u0065";
_ggfca ,_degac :=_dd .Open (pdfFile );if _degac !=nil {return nil ,nil ,_degac ;};_dgeg ,_degac :=_aaegd (_ggfca ,opts ,true ,_abgbg );if _degac !=nil {_ggfca .Close ();return nil ,nil ,_degac ;};return _dgeg ,_ggfca ,nil ;};func _caba ()string {_cbcgc .Lock ();
defer _cbcgc .Unlock ();return _babb };var _ pdfFont =(*pdfFontType0 )(nil );
// NewPdfAnnotationLine returns a new line annotation.
func NewPdfAnnotationLine ()*PdfAnnotationLine {_acgf :=NewPdfAnnotation ();_eed :=&PdfAnnotationLine {};_eed .PdfAnnotation =_acgf ;_eed .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_acgf .SetContext (_eed );return _eed ;};
// NewPdfAnnotation3D returns a new 3d annotation.
func NewPdfAnnotation3D ()*PdfAnnotation3D {_bfc :=NewPdfAnnotation ();_cdd :=&PdfAnnotation3D {};_cdd .PdfAnnotation =_bfc ;_bfc .SetContext (_cdd );return _cdd ;};
// PdfActionJavaScript represents a javaScript action.
type PdfActionJavaScript struct{*PdfAction ;JS _ce .PdfObject ;};
// GetPdfName returns the PDF name used to indicate the border style.
// (Table 166 p. 395).
func (_gcde *BorderStyle )GetPdfName ()string {switch *_gcde {case BorderStyleSolid :return "\u0053";case BorderStyleDashed :return "\u0044";case BorderStyleBeveled :return "\u0042";case BorderStyleInset :return "\u0049";case BorderStyleUnderline :return "\u0055";
};return "";};func (_cfbfa *pdfFontSimple )updateStandard14Font (){_dgede ,_eeca :=_cfbfa .Encoder ().(_dc .SimpleEncoder );if !_eeca {_ff .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",_cfbfa .Encoder (),_cfbfa );
return ;};_ebebc :=_dgede .Charcodes ();_cfbfa ._aggce =make (map[_dc .CharCode ]float64 ,len (_ebebc ));for _ ,_fcafd :=range _ebebc {_gbaac ,_ :=_dgede .CharcodeToRune (_fcafd );_ffbg ,_ :=_cfbfa ._cabcg .Read (_gbaac );_cfbfa ._aggce [_fcafd ]=_ffbg .Wx ;
};};func _gaefc (_baadd _ce .PdfObject )(*PdfShading ,error ){_adfga :=&PdfShading {};var _cebbd *_ce .PdfObjectDictionary ;if _deabb ,_dbfe :=_ce .GetIndirect (_baadd );_dbfe {_adfga ._agcdg =_deabb ;_cfgdc ,_dfec :=_deabb .PdfObject .(*_ce .PdfObjectDictionary );
if !_dfec {_ff .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 ,_ce .ErrTypeError ;};_cebbd =_cfgdc ;}else if _beabg ,_dbcd :=_ce .GetStream (_baadd );
_dbcd {_adfga ._agcdg =_beabg ;_cebbd =_beabg .PdfObjectDictionary ;}else if _baggcf ,_ebefb :=_ce .GetDict (_baadd );_ebefb {_adfga ._agcdg =_baggcf ;_cebbd =_baggcf ;}else {_ff .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",_baadd );
return nil ,_ce .ErrTypeError ;};if _cebbd ==nil {_ff .Log .Debug ("\u0044i\u0063t\u0069\u006f\u006e\u0061\u0072y\u0020\u006di\u0073\u0073\u0069\u006e\u0067");return nil ,_ge .New ("\u0064\u0069\u0063t\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");
};_baadd =_cebbd .Get ("S\u0068\u0061\u0064\u0069\u006e\u0067\u0054\u0079\u0070\u0065");if _baadd ==nil {_ff .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 ;};_baadd =_ce .TraceToDirectObject (_baadd );_feaf ,_bfbed :=_baadd .(*_ce .PdfObjectInteger );if !_bfbed {_ff .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",_baadd );
return nil ,_ce .ErrTypeError ;};if *_feaf < 1||*_feaf > 7{_ff .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",*_feaf );
return nil ,_ce .ErrTypeError ;};_adfga .ShadingType =_feaf ;_baadd =_cebbd .Get ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065");if _baadd ==nil {_ff .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 ;};_gbfba ,_ecgdd :=NewPdfColorspaceFromPdfObject (_baadd );if _ecgdd !=nil {_ff .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",_ecgdd );
return nil ,_ecgdd ;};_adfga .ColorSpace =_gbfba ;_baadd =_cebbd .Get ("\u0042\u0061\u0063\u006b\u0067\u0072\u006f\u0075\u006e\u0064");if _baadd !=nil {_baadd =_ce .TraceToDirectObject (_baadd );_cdbbee ,_fggeb :=_baadd .(*_ce .PdfObjectArray );if !_fggeb {_ff .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)",_baadd );
return nil ,_ce .ErrTypeError ;};_adfga .Background =_cdbbee ;};_baadd =_cebbd .Get ("\u0042\u0042\u006f\u0078");if _baadd !=nil {_baadd =_ce .TraceToDirectObject (_baadd );_ebdaa ,_afedb :=_baadd .(*_ce .PdfObjectArray );if !_afedb {_ff .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)",_baadd );
return nil ,_ce .ErrTypeError ;};_gebca ,_eefdb :=NewPdfRectangle (*_ebdaa );if _eefdb !=nil {_ff .Log .Debug ("\u0042\u0042\u006f\u0078\u0020\u0065\u0072\u0072\u006fr\u003a\u0020\u0025\u0076",_eefdb );return nil ,_eefdb ;};_adfga .BBox =_gebca ;};_baadd =_cebbd .Get ("\u0041n\u0074\u0069\u0041\u006c\u0069\u0061s");
if _baadd !=nil {_baadd =_ce .TraceToDirectObject (_baadd );_gdfacg ,_bdgde :=_baadd .(*_ce .PdfObjectBool );if !_bdgde {_ff .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",_baadd );
return nil ,_ce .ErrTypeError ;};_adfga .AntiAlias =_gdfacg ;};switch *_feaf {case 1:_efgb ,_befdd :=_geca (_cebbd );if _befdd !=nil {return nil ,_befdd ;};_efgb .PdfShading =_adfga ;_adfga ._aadbc =_efgb ;return _adfga ,nil ;case 2:_ggfed ,_ffdcd :=_gfabd (_cebbd );
if _ffdcd !=nil {return nil ,_ffdcd ;};_ggfed .PdfShading =_adfga ;_adfga ._aadbc =_ggfed ;return _adfga ,nil ;case 3:_cfefce ,_egcec :=_bfddba (_cebbd );if _egcec !=nil {return nil ,_egcec ;};_cfefce .PdfShading =_adfga ;_adfga ._aadbc =_cfefce ;return _adfga ,nil ;
case 4:_agcfe ,_badgf :=_eefcd (_cebbd );if _badgf !=nil {return nil ,_badgf ;};_agcfe .PdfShading =_adfga ;_adfga ._aadbc =_agcfe ;return _adfga ,nil ;case 5:_bfbg ,_eeddf :=_acdb (_cebbd );if _eeddf !=nil {return nil ,_eeddf ;};_bfbg .PdfShading =_adfga ;
_adfga ._aadbc =_bfbg ;return _adfga ,nil ;case 6:_fgaf ,_gdca :=_face (_cebbd );if _gdca !=nil {return nil ,_gdca ;};_fgaf .PdfShading =_adfga ;_adfga ._aadbc =_fgaf ;return _adfga ,nil ;case 7:_gegcc ,_gdfga :=_cfea (_cebbd );if _gdfga !=nil {return nil ,_gdfga ;
};_gegcc .PdfShading =_adfga ;_adfga ._aadbc =_gegcc ;return _adfga ,nil ;};return nil ,_ge .New ("u\u006ek\u006e\u006f\u0077\u006e\u0020\u0073\u0068\u0061d\u0069\u006e\u0067\u0020ty\u0070\u0065");};
// PdfColorspaceDeviceCMYK represents a CMYK32 colorspace.
type PdfColorspaceDeviceCMYK struct{};
// GetContainingPdfObject implements interface PdfModel.
func (_eccaa *Permissions )GetContainingPdfObject ()_ce .PdfObject {return _eccaa ._ffegb };
// GetPreviousRevision returns the previous revision of PdfReader for the Pdf document
func (_bgbcf *PdfReader )GetPreviousRevision ()(*PdfReader ,error ){if _bgbcf ._afda .GetRevisionNumber ()==0{return nil ,_ge .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 _bccfb ,_fgabeb :=_bgbcf ._fdeb [_bgbcf ];_fgabeb {return _bccfb ,nil ;};_fdgfga ,_bgfad :=_bgbcf ._afda .GetPreviousRevisionReadSeeker ();if _bgfad !=nil {return nil ,_bgfad ;};_beafd ,_bgfad :=_aaegd (_fdgfga ,_bgbcf ._dcggg ,_bgbcf ._cdffg ,"\u006do\u0064\u0065\u006c\u003aG\u0065\u0074\u0050\u0072\u0065v\u0069o\u0075s\u0052\u0065\u0076\u0069\u0073\u0069\u006fn");
if _bgfad !=nil {return nil ,_bgfad ;};_bgbcf ._eedce [_bgbcf ._afda .GetRevisionNumber ()-1]=_beafd ;_bgbcf ._fdeb [_bgbcf ]=_beafd ;_beafd ._fdeb =_bgbcf ._fdeb ;return _beafd ,nil ;};
// GetAlphabet returns a map of the runes in `text` and their frequencies.
func GetAlphabet (text string )map[rune ]int {_gbcd :=map[rune ]int {};for _ ,_ggaa :=range text {_gbcd [_ggaa ]++;};return _gbcd ;};
// ToPdfObject implements interface PdfModel.
func (_gbfc *PdfAnnotation3D )ToPdfObject ()_ce .PdfObject {_gbfc .PdfAnnotation .ToPdfObject ();_ggdg :=_gbfc ._dec ;_fbbb :=_ggdg .PdfObject .(*_ce .PdfObjectDictionary );_fbbb .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ce .MakeName ("\u0033\u0044"));
_fbbb .SetIfNotNil ("\u0033\u0044\u0044",_gbfc .T3DD );_fbbb .SetIfNotNil ("\u0033\u0044\u0056",_gbfc .T3DV );_fbbb .SetIfNotNil ("\u0033\u0044\u0041",_gbfc .T3DA );_fbbb .SetIfNotNil ("\u0033\u0044\u0049",_gbfc .T3DI );_fbbb .SetIfNotNil ("\u0033\u0044\u0042",_gbfc .T3DB );
return _ggdg ;};
// GetModelFromPrimitive returns the model corresponding to the `primitive` PdfObject.
func (_cggba *modelManager )GetModelFromPrimitive (primitive _ce .PdfObject )PdfModel {model ,_fcaea :=_cggba ._adbfe [primitive ];if !_fcaea {return nil ;};return model ;};func _efagg (_baee *_ce .PdfObjectStream )(*PdfFunctionType4 ,error ){_cdbbe :=&PdfFunctionType4 {};
_cdbbe ._ebecf =_baee ;_afcde :=_baee .PdfObjectDictionary ;_ecbbc ,_gedab :=_ce .TraceToDirectObject (_afcde .Get ("\u0044\u006f\u006d\u0061\u0069\u006e")).(*_ce .PdfObjectArray );if !_gedab {_ff .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");
return nil ,_ge .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 _ecbbc .Len ()%2!=0{_ff .Log .Error ("\u0044\u006f\u006d\u0061\u0069\u006e\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");
return nil ,_ge .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0064\u006f\u006da\u0069\u006e\u0020\u0072an\u0067\u0065");};_bfec ,_gggbf :=_ecbbc .ToFloat64Array ();if _gggbf !=nil {return nil ,_gggbf ;};_cdbbe .Domain =_bfec ;_ecbbc ,_gedab =_ce .TraceToDirectObject (_afcde .Get ("\u0052\u0061\u006eg\u0065")).(*_ce .PdfObjectArray );
if _gedab {if _ecbbc .Len ()< 0||_ecbbc .Len ()%2!=0{return nil ,_ge .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0061\u006e\u0067\u0065");};_gdea ,_aecg :=_ecbbc .ToFloat64Array ();if _aecg !=nil {return nil ,_aecg ;};_cdbbe .Range =_gdea ;
};_efcd ,_gggbf :=_ce .DecodeStream (_baee );if _gggbf !=nil {return nil ,_gggbf ;};_cdbbe ._caec =_efcd ;_ddcc :=_caa .NewPSParser (_efcd );_bbbc ,_gggbf :=_ddcc .Parse ();if _gggbf !=nil {return nil ,_gggbf ;};_cdbbe .Program =_bbbc ;return _cdbbe ,nil ;
};func (_gcfb *PdfFont )baseFields ()*fontCommon {if _gcfb ._dace ==nil {_ff .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 _gcfb ._dace .baseFields ();};
// 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 (_agedb *PdfColorspaceCalRGB )ColorFromPdfObjects (objects []_ce .PdfObject )(PdfColor ,error ){if len (objects )!=3{return nil ,_ge .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_egbb ,_cebd :=_ce .GetNumbersAsFloat (objects );
if _cebd !=nil {return nil ,_cebd ;};return _agedb .ColorFromFloats (_egbb );};
// PdfActionGoTo represents a GoTo action.
type PdfActionGoTo struct{*PdfAction ;D _ce .PdfObject ;};
// 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 (_aedcb *_ffa .Document )error ;};
// AddExtGState adds a graphics state to the XObject resources.
func (_cdea *PdfPage )AddExtGState (name _ce .PdfObjectName ,egs *_ce .PdfObjectDictionary )error {if _cdea .Resources ==nil {_cdea .Resources =NewPdfPageResources ();};if _cdea .Resources .ExtGState ==nil {_cdea .Resources .ExtGState =_ce .MakeDict ();
};_acfdd ,_acagc :=_ce .TraceToDirectObject (_cdea .Resources .ExtGState ).(*_ce .PdfObjectDictionary );if !_acagc {_ff .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",_ce .TraceToDirectObject (_cdea .Resources .ExtGState ));
return _ge .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_acfdd .Set (name ,egs );return nil ;};
// ToPdfObject implements interface PdfModel.
func (_cabeb *PdfAnnotationFreeText )ToPdfObject ()_ce .PdfObject {_cabeb .PdfAnnotation .ToPdfObject ();_faca :=_cabeb ._dec ;_eeb :=_faca .PdfObject .(*_ce .PdfObjectDictionary );_cabeb .PdfAnnotationMarkup .appendToPdfDictionary (_eeb );_eeb .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ce .MakeName ("\u0046\u0072\u0065\u0065\u0054\u0065\u0078\u0074"));
_eeb .SetIfNotNil ("\u0044\u0041",_cabeb .DA );_eeb .SetIfNotNil ("\u0051",_cabeb .Q );_eeb .SetIfNotNil ("\u0052\u0043",_cabeb .RC );_eeb .SetIfNotNil ("\u0044\u0053",_cabeb .DS );_eeb .SetIfNotNil ("\u0043\u004c",_cabeb .CL );_eeb .SetIfNotNil ("\u0049\u0054",_cabeb .IT );
_eeb .SetIfNotNil ("\u0042\u0045",_cabeb .BE );_eeb .SetIfNotNil ("\u0052\u0044",_cabeb .RD );_eeb .SetIfNotNil ("\u0042\u0053",_cabeb .BS );_eeb .SetIfNotNil ("\u004c\u0045",_cabeb .LE );return _faca ;};func (_cbge *PdfColorspaceCalGray )String ()string {return "\u0043a\u006c\u0047\u0072\u0061\u0079"};
func _ffba (_ccdac *_gf .ImageBase )(_bcbfd Image ){_bcbfd .Width =int64 (_ccdac .Width );_bcbfd .Height =int64 (_ccdac .Height );_bcbfd .BitsPerComponent =int64 (_ccdac .BitsPerComponent );_bcbfd .ColorComponents =_ccdac .ColorComponents ;_bcbfd .Data =_ccdac .Data ;
_bcbfd ._bffb =_ccdac .Decode ;_bcbfd ._cdecc =_ccdac .Alpha ;return _bcbfd ;};func (_cgd *PdfReader )newPdfActionGotoFromDict (_fda *_ce .PdfObjectDictionary )(*PdfActionGoTo ,error ){return &PdfActionGoTo {D :_fda .Get ("\u0044")},nil ;};type fontFile struct{_abdd string ;
_cbede string ;_bagea _dc .SimpleEncoder ;};func (_eabbc *PdfWriter )checkPendingObjects (){for _baccb ,_cbebg :=range _eabbc ._dggcg {if !_eabbc .hasObject (_baccb ){_ff .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",_baccb ,_baccb ,_baccb );
for _ ,_dagec :=range _cbebg {for _ ,_fceed :=range _dagec .Keys (){_fcbab :=_dagec .Get (_fceed );if _fcbab ==_baccb {_ff .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");
_dagec .Set (_fceed ,_ce .MakeNull ());break ;};};};};};};
// NewPdfColorspaceSpecialSeparation returns a new separation color.
func NewPdfColorspaceSpecialSeparation ()*PdfColorspaceSpecialSeparation {_cbfb :=&PdfColorspaceSpecialSeparation {};return _cbfb ;};
// WriteString outputs the object as it is to be written to file.
func (_gfaea *PdfTransformParamsDocMDP )WriteString ()string {return _gfaea .ToPdfObject ().WriteString ();};func (_cfacb *Image )getSuitableEncoder ()(_ce .StreamEncoder ,error ){var (_gdaac ,_adge =int (_cfacb .Width ),int (_cfacb .Height );_dcbcb =make (map[string ]bool );
_cbfa =true ;_cfad =false ;_agcf =func ()*_ce .DCTEncoder {return _ce .NewDCTEncoder ()};_ffcfg =func ()*_ce .DCTEncoder {_dgffg :=_ce .NewDCTEncoder ();_dgffg .BitsPerComponent =16;return _dgffg };);for _adbbb :=0;_adbbb < _adge ;_adbbb ++{for _dabacc :=0;
_dabacc < _gdaac ;_dabacc ++{_cfgae ,_accgf :=_cfacb .ColorAt (_dabacc ,_adbbb );if _accgf !=nil {return nil ,_accgf ;};_fcgdg ,_efcdf ,_ebfac ,_agffa :=_cfgae .RGBA ();if _cbfa &&(_fcgdg !=_efcdf ||_fcgdg !=_ebfac ||_efcdf !=_ebfac ){_cbfa =false ;};if !_cfad {switch _cfgae .(type ){case _cc .NRGBA :_cfad =_agffa > 0;
};};_dcbcb [_e .Sprintf ("\u0025\u0064\u002c\u0025\u0064\u002c\u0025\u0064",_fcgdg ,_efcdf ,_ebfac )]=true ;if len (_dcbcb )> 2&&_cfad {return _ffcfg (),nil ;};};};if _cfad ||len (_cfacb ._cdecc )> 0{return _ce .NewFlateEncoder (),nil ;};if len (_dcbcb )<=2{_gbfad :=_cfacb .ConvertToBinary ();
if _gbfad !=nil {return nil ,_gbfad ;};return _ce .NewJBIG2Encoder (),nil ;};if _cbfa {return _agcf (),nil ;};if _cfacb .ColorComponents ==1{if _cfacb .BitsPerComponent ==1{return _ce .NewJBIG2Encoder (),nil ;}else if _cfacb .BitsPerComponent ==8{_cbaee :=_ce .NewDCTEncoder ();
_cbaee .ColorComponents =1;return _cbaee ,nil ;};}else if _cfacb .ColorComponents ==3{if _cfacb .BitsPerComponent ==8{return _agcf (),nil ;}else if _cfacb .BitsPerComponent ==16{return _ffcfg (),nil ;};}else if _cfacb .ColorComponents ==4{_gagb :=_ffcfg ();
_gagb .ColorComponents =4;return _gagb ,nil ;};return _ffcfg (),nil ;};
// PdfBorderStyle represents a border style dictionary (12.5.4 Border Styles p. 394).
type PdfBorderStyle struct{W *float64 ;S *BorderStyle ;D *[]int ;_facc _ce .PdfObject ;};
// NewPdfShadingPatternType2 creates an empty shading pattern type 2 object.
func NewPdfShadingPatternType2 ()*PdfShadingPatternType2 {_ggad :=&PdfShadingPatternType2 {};_ggad .Matrix =_ce .MakeArrayFromIntegers ([]int {1,0,0,1,0,0});_ggad .PdfPattern =&PdfPattern {};_ggad .PdfPattern .PatternType =int64 (*_ce .MakeInteger (2));
_ggad .PdfPattern ._fbea =_ggad ;_ggad .PdfPattern ._gadcb =_ce .MakeIndirectObject (_ce .MakeDict ());return _ggad ;};
// XObjectType represents the type of an XObject.
type XObjectType int ;func (_ebdg *PdfAppender )replaceObject (_aebd ,_aced _ce .PdfObject ){switch _gdgad :=_aebd .(type ){case *_ce .PdfIndirectObject :_ebdg ._fadeg [_aced ]=_gdgad .ObjectNumber ;case *_ce .PdfObjectStream :_ebdg ._fadeg [_aced ]=_gdgad .ObjectNumber ;
};};
// PdfActionSound represents a sound action.
type PdfActionSound struct{*PdfAction ;Sound _ce .PdfObject ;Volume _ce .PdfObject ;Synchronous _ce .PdfObject ;Repeat _ce .PdfObject ;Mix _ce .PdfObject ;};func (_afeg *PdfField )inherit (_feag func (*PdfField )bool )(bool ,error ){_cedg :=map[*PdfField ]bool {};
_gecec :=false ;_ceda :=_afeg ;for _ceda !=nil {if _ ,_ebdge :=_cedg [_ceda ];_ebdge {return false ,_ge .New ("\u0072\u0065\u0063\u0075rs\u0069\u0076\u0065\u0020\u0074\u0072\u0061\u0076\u0065\u0072\u0073\u0061\u006c");};_fdcb :=_feag (_ceda );if _fdcb {_gecec =true ;
break ;};_cedg [_ceda ]=true ;_ceda =_ceda .Parent ;};return _gecec ,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 (_bbaa *PdfColorspaceCalRGB )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=3{return nil ,_ge .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_ceab :=vals [0];if _ceab < 0.0||_ceab > 1.0{_ff .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_ceab );
return nil ,ErrColorOutOfRange ;};_gacgb :=vals [1];if _gacgb < 0.0||_gacgb > 1.0{_ff .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_gacgb );return nil ,ErrColorOutOfRange ;
};_eacd :=vals [2];if _eacd < 0.0||_eacd > 1.0{_ff .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_eacd );return nil ,ErrColorOutOfRange ;};_dfga :=NewPdfColorCalRGB (_ceab ,_gacgb ,_eacd );
return _dfga ,nil ;};func (_afb *PdfColorspaceDeviceGray )String ()string {return "\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079";};
// NewPdfColorspaceICCBased returns a new ICCBased colorspace object.
func NewPdfColorspaceICCBased (N int )(*PdfColorspaceICCBased ,error ){_beab :=&PdfColorspaceICCBased {};if N !=1&&N !=3&&N !=4{return nil ,_e .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u004e\u0020\u0028\u0031/\u0033\u002f\u0034\u0029");
};_beab .N =N ;return _beab ,nil ;};
// Insert adds an outline item as a child of the current outline item,
// at the specified index.
func (_dgcdd *OutlineItem )Insert (index uint ,item *OutlineItem ){_cffcb :=uint (len (_dgcdd .Entries ));if index > _cffcb {index =_cffcb ;};_dgcdd .Entries =append (_dgcdd .Entries [:index ],append ([]*OutlineItem {item },_dgcdd .Entries [index :]...)...);
};