unipdf/model/model.go
2023-02-07 17:17:49 +00:00

4982 lines
740 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 (_b "bufio";_fd "bytes";_dd "crypto/md5";_ff "crypto/rand";_bf "crypto/sha1";_fc "crypto/x509";_ee "encoding/binary";_f "encoding/hex";_af "errors";_d "fmt";_eec "github.com/unidoc/pkcs7";_gd "github.com/unidoc/unipdf/v3/common";_ac "github.com/unidoc/unipdf/v3/core";
_eece "github.com/unidoc/unipdf/v3/core/security";_afa "github.com/unidoc/unipdf/v3/core/security/crypt";_eg "github.com/unidoc/unipdf/v3/internal/cmap";_ed "github.com/unidoc/unipdf/v3/internal/imageutil";_cb "github.com/unidoc/unipdf/v3/internal/license";
_cg "github.com/unidoc/unipdf/v3/internal/sampling";_gf "github.com/unidoc/unipdf/v3/internal/textencoding";_cd "github.com/unidoc/unipdf/v3/internal/timeutils";_ba "github.com/unidoc/unipdf/v3/internal/transform";_fe "github.com/unidoc/unipdf/v3/model/internal/docutil";
_fda "github.com/unidoc/unipdf/v3/model/internal/fonts";_ca "github.com/unidoc/unipdf/v3/model/mdp";_dc "github.com/unidoc/unipdf/v3/model/sigutil";_bb "github.com/unidoc/unipdf/v3/ps";_bd "github.com/unidoc/unitype";_bg "golang.org/x/xerrors";_g "hash";
_ad "image";_bc "image/color";_ "image/gif";_ "image/png";_adc "io";_ea "io/ioutil";_da "math";_be "math/rand";_cef "os";_ce "regexp";_fb "sort";_ae "strconv";_fg "strings";_dg "sync";_e "time";_ffb "unicode";_gb "unicode/utf8";);
// GetPdfName returns the PDF name used to indicate the border style.
// (Table 166 p. 395).
func (_dfea *BorderStyle )GetPdfName ()string {switch *_dfea {case BorderStyleSolid :return "\u0053";case BorderStyleDashed :return "\u0044";case BorderStyleBeveled :return "\u0042";case BorderStyleInset :return "\u0049";case BorderStyleUnderline :return "\u0055";
};return "";};func _fdgge (_affc *_ac .PdfObjectDictionary )(*PdfShadingType1 ,error ){_dccg :=PdfShadingType1 {};if _dcedd :=_affc .Get ("\u0044\u006f\u006d\u0061\u0069\u006e");_dcedd !=nil {_dcedd =_ac .TraceToDirectObject (_dcedd );_cgee ,_ggacb :=_dcedd .(*_ac .PdfObjectArray );
if !_ggacb {_gd .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",_dcedd );return nil ,_af .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");
};_dccg .Domain =_cgee ;};if _dacf :=_affc .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");_dacf !=nil {_dacf =_ac .TraceToDirectObject (_dacf );_cbdfc ,_gcbacc :=_dacf .(*_ac .PdfObjectArray );if !_gcbacc {_gd .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",_dacf );
return nil ,_af .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_dccg .Matrix =_cbdfc ;};_agce :=_affc .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");if _agce ==nil {_gd .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 ;};_dccg .Function =[]PdfFunction {};if _dabad ,_bedfc :=_agce .(*_ac .PdfObjectArray );_bedfc {for _ ,_fgba :=range _dabad .Elements (){_cfedf ,_dbacd :=_gcddf (_fgba );if _dbacd !=nil {_gd .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",_dbacd );
return nil ,_dbacd ;};_dccg .Function =append (_dccg .Function ,_cfedf );};}else {_ggffe ,_ggegc :=_gcddf (_agce );if _ggegc !=nil {_gd .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",_ggegc );
return nil ,_ggegc ;};_dccg .Function =append (_dccg .Function ,_ggffe );};return &_dccg ,nil ;};
// SubsetRegistered subsets the font to only the glyphs that have been registered by the encoder.
//
// NOTE: This only works on fonts that support subsetting. For unsupported fonts this is a no-op, although a debug
// message is emitted. Currently supported fonts are embedded Truetype CID fonts (type 0).
//
// NOTE: Make sure to call this soon before writing (once all needed runes have been registered).
// If using package creator, use its EnableFontSubsetting method instead.
func (_beca *PdfFont )SubsetRegistered ()error {switch _eeaag :=_beca ._gegb .(type ){case *pdfFontType0 :_ffcaf :=_eeaag .subsetRegistered ();if _ffcaf !=nil {_gd .Log .Debug ("\u0053\u0075b\u0073\u0065\u0074 \u0065\u0072\u0072\u006f\u0072\u003a\u0020\u0025\u0076",_ffcaf );
return _ffcaf ;};if _eeaag ._agcb !=nil {if _eeaag ._edfdd !=nil {_eeaag ._edfdd .ToPdfObject ();};_eeaag .ToPdfObject ();};default:_gd .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",_eeaag );
};return nil ;};
// ToPdfObject returns the PDF representation of the function.
func (_decff *PdfFunctionType2 )ToPdfObject ()_ac .PdfObject {_afba :=_ac .MakeDict ();_afba .Set ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065",_ac .MakeInteger (2));_ffdc :=&_ac .PdfObjectArray {};for _ ,_eadgf :=range _decff .Domain {_ffdc .Append (_ac .MakeFloat (_eadgf ));
};_afba .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_ffdc );if _decff .Range !=nil {_cfdg :=&_ac .PdfObjectArray {};for _ ,_gdcaf :=range _decff .Range {_cfdg .Append (_ac .MakeFloat (_gdcaf ));};_afba .Set ("\u0052\u0061\u006eg\u0065",_cfdg );};if _decff .C0 !=nil {_gfbd :=&_ac .PdfObjectArray {};
for _ ,_eadea :=range _decff .C0 {_gfbd .Append (_ac .MakeFloat (_eadea ));};_afba .Set ("\u0043\u0030",_gfbd );};if _decff .C1 !=nil {_afef :=&_ac .PdfObjectArray {};for _ ,_ddfcb :=range _decff .C1 {_afef .Append (_ac .MakeFloat (_ddfcb ));};_afba .Set ("\u0043\u0031",_afef );
};_afba .Set ("\u004e",_ac .MakeFloat (_decff .N ));if _decff ._eaadg !=nil {_decff ._eaadg .PdfObject =_afba ;return _decff ._eaadg ;};return _afba ;};func (_dfae *PdfColorspaceCalGray )String ()string {return "\u0043a\u006c\u0047\u0072\u0061\u0079"};
// CharMetrics represents width and height metrics of a glyph.
type CharMetrics =_fda .CharMetrics ;
// ToPdfObject returns the PDF representation of the shading dictionary.
func (_gdbc *PdfShadingType5 )ToPdfObject ()_ac .PdfObject {_gdbc .PdfShading .ToPdfObject ();_efefa ,_cafed :=_gdbc .getShadingDict ();if _cafed !=nil {_gd .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 _gdbc .BitsPerCoordinate !=nil {_efefa .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065",_gdbc .BitsPerCoordinate );};if _gdbc .BitsPerComponent !=nil {_efefa .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_gdbc .BitsPerComponent );
};if _gdbc .VerticesPerRow !=nil {_efefa .Set ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073\u0050e\u0072\u0052\u006f\u0077",_gdbc .VerticesPerRow );};if _gdbc .Decode !=nil {_efefa .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_gdbc .Decode );};if _gdbc .Function !=nil {if len (_gdbc .Function )==1{_efefa .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_gdbc .Function [0].ToPdfObject ());
}else {_aabe :=_ac .MakeArray ();for _ ,_agcbac :=range _gdbc .Function {_aabe .Append (_agcbac .ToPdfObject ());};_efefa .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_aabe );};};return _gdbc ._dffbg ;};
// GetRotate gets the inheritable rotate value, either from the page
// or a higher up page/pages struct.
func (_ffdf *PdfPage )GetRotate ()(int64 ,error ){if _ffdf .Rotate !=nil {return *_ffdf .Rotate ,nil ;};_beab :=_ffdf .Parent ;for _beab !=nil {_cfbba ,_geab :=_ac .GetDict (_beab );if !_geab {return 0,_af .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 _gbbcb :=_cfbba .Get ("\u0052\u006f\u0074\u0061\u0074\u0065");_gbbcb !=nil {_fdeg ,_bfgd :=_ac .GetInt (_gbbcb );if !_bfgd {return 0,_af .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0072\u006f\u0074a\u0074\u0065\u0020\u0076al\u0075\u0065");};if _fdeg !=nil {return int64 (*_fdeg ),nil ;
};return 0,_af .New ("\u0072\u006f\u0074\u0061te\u0020\u0076\u0061\u006c\u0075\u0065\u0020\u0069\u0073\u0020\u006e\u0069\u006c");};_beab =_cfbba .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");};return 0,_af .New ("\u0072o\u0074a\u0074\u0065\u0020\u006e\u006ft\u0020\u0064e\u0066\u0069\u006e\u0065\u0064");
};
// ToPdfObject implements interface PdfModel.
func (_abb *PdfActionRendition )ToPdfObject ()_ac .PdfObject {_abb .PdfAction .ToPdfObject ();_ecb :=_abb ._eef ;_bee :=_ecb .PdfObject .(*_ac .PdfObjectDictionary );_bee .SetIfNotNil ("\u0053",_ac .MakeName (string (ActionTypeRendition )));_bee .SetIfNotNil ("\u0052",_abb .R );
_bee .SetIfNotNil ("\u0041\u004e",_abb .AN );_bee .SetIfNotNil ("\u004f\u0050",_abb .OP );_bee .SetIfNotNil ("\u004a\u0053",_abb .JS );return _ecb ;};
// 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 (_beff *PdfColorspaceDeviceRGB )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=3{return nil ,_af .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_eafc :=vals [0];if _eafc < 0.0||_eafc > 1.0{_gd .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_eafc );
return nil ,ErrColorOutOfRange ;};_cgcc :=vals [1];if _cgcc < 0.0||_cgcc > 1.0{_gd .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_eafc );return nil ,ErrColorOutOfRange ;
};_ggcf :=vals [2];if _ggcf < 0.0||_ggcf > 1.0{_gd .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_eafc );return nil ,ErrColorOutOfRange ;};_daa :=NewPdfColorDeviceRGB (_eafc ,_cgcc ,_ggcf );
return _daa ,nil ;};
// RepairAcroForm attempts to rebuild the AcroForm fields using the widget
// annotations present in the document pages. Pass nil for the opts parameter
// in order to use the default options.
// NOTE: Currently, the opts parameter is declared in order to enable adding
// future options, but passing nil will always result in the default options
// being used.
func (_gddcc *PdfReader )RepairAcroForm (opts *AcroFormRepairOptions )error {var _gadca []*PdfField ;_cbcfc :=map[*_ac .PdfIndirectObject ]struct{}{};for _ ,_eacae :=range _gddcc .PageList {_begbd ,_efdce :=_eacae .GetAnnotations ();if _efdce !=nil {return _efdce ;
};for _ ,_gfabe :=range _begbd {var _daeba *PdfField ;switch _egce :=_gfabe .GetContext ().(type ){case *PdfAnnotationWidget :if _egce ._gdb !=nil {_daeba =_egce ._gdb ;break ;};if _agegc ,_cdfe :=_ac .GetIndirect (_egce .Parent );_cdfe {_daeba ,_efdce =_gddcc .newPdfFieldFromIndirectObject (_agegc ,nil );
if _efdce ==nil {break ;};_gd .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",_agegc ,_efdce );
};if _egce ._fegd !=nil {_daeba ,_efdce =_gddcc .newPdfFieldFromIndirectObject (_egce ._fegd ,nil );if _efdce ==nil {break ;};_gd .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",_egce ._fegd ,_efdce );
};};if _daeba ==nil {continue ;};if _ ,_cefbe :=_cbcfc [_daeba ._bdde ];_cefbe {continue ;};_cbcfc [_daeba ._bdde ]=struct{}{};_gadca =append (_gadca ,_daeba );};};if len (_gadca )==0{return nil ;};if _gddcc .AcroForm ==nil {_gddcc .AcroForm =NewPdfAcroForm ();
};_gddcc .AcroForm .Fields =&_gadca ;return nil ;};func (_bcbc *PdfReader )newPdfAnnotationPrinterMarkFromDict (_eadb *_ac .PdfObjectDictionary )(*PdfAnnotationPrinterMark ,error ){_bdbg :=PdfAnnotationPrinterMark {};_bdbg .MN =_eadb .Get ("\u004d\u004e");
return &_bdbg ,nil ;};
// Hasher is the interface that wraps the basic Write method.
type Hasher interface{Write (_dgedd []byte )(_bgfee int ,_gcgef error );};
// PdfColorPattern represents a pattern color.
type PdfColorPattern struct{Color PdfColor ;PatternName _ac .PdfObjectName ;};
// C returns the value of the C component of the color.
func (_agff *PdfColorCalRGB )C ()float64 {return _agff [2]};func (_edebd *PdfReader )buildOutlineTree (_cgdfe _ac .PdfObject ,_dcgeb *PdfOutlineTreeNode ,_gggdc *PdfOutlineTreeNode ,_bfeca map[_ac .PdfObject ]struct{})(*PdfOutlineTreeNode ,*PdfOutlineTreeNode ,error ){if _bfeca ==nil {_bfeca =map[_ac .PdfObject ]struct{}{};
};_bfeca [_cgdfe ]=struct{}{};_acbbe ,_feeff :=_cgdfe .(*_ac .PdfIndirectObject );if !_feeff {return nil ,nil ,_d .Errorf ("\u006f\u0075\u0074\u006c\u0069\u006e\u0065 \u0063\u006f\u006et\u0061\u0069\u006e\u0065r\u0020\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0069\u006e\u0064\u0069\u0072\u0065\u0063\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0020\u0025\u0054",_cgdfe );
};_gafge ,_eagab :=_acbbe .PdfObject .(*_ac .PdfObjectDictionary );if !_eagab {return nil ,nil ,_af .New ("\u006e\u006f\u0074 a\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u0020\u006f\u0062\u006a\u0065\u0063\u0074");};_gd .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",_gafge ,_acbbe ,_acbbe );
if _fcdec :=_gafge .Get ("\u0054\u0069\u0074l\u0065");_fcdec !=nil {_dgaed ,_acaea :=_edebd .newPdfOutlineItemFromIndirectObject (_acbbe );if _acaea !=nil {return nil ,nil ,_acaea ;};_dgaed .Parent =_dcgeb ;_dgaed .Prev =_gggdc ;_ggdf :=_ac .ResolveReference (_gafge .Get ("\u0046\u0069\u0072s\u0074"));
if _ ,_edeaa :=_bfeca [_ggdf ];_ggdf !=nil &&_ggdf !=_acbbe &&!_edeaa {if !_ac .IsNullObject (_ggdf ){_edfced ,_fdbaa ,_daaebe :=_edebd .buildOutlineTree (_ggdf ,&_dgaed .PdfOutlineTreeNode ,nil ,_bfeca );if _daaebe !=nil {_gd .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",_daaebe );
}else {_dgaed .First =_edfced ;_dgaed .Last =_fdbaa ;};};};_gddfe :=_ac .ResolveReference (_gafge .Get ("\u004e\u0065\u0078\u0074"));if _ ,_befed :=_bfeca [_gddfe ];_gddfe !=nil &&_gddfe !=_acbbe &&!_befed {if !_ac .IsNullObject (_gddfe ){_eedbad ,_bfcge ,_dcaeg :=_edebd .buildOutlineTree (_gddfe ,_dcgeb ,&_dgaed .PdfOutlineTreeNode ,_bfeca );
if _dcaeg !=nil {_gd .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",_dcaeg );
}else {_dgaed .Next =_eedbad ;return &_dgaed .PdfOutlineTreeNode ,_bfcge ,nil ;};};};return &_dgaed .PdfOutlineTreeNode ,&_dgaed .PdfOutlineTreeNode ,nil ;};_feeeg ,_gefcc :=_aefbc (_acbbe );if _gefcc !=nil {return nil ,nil ,_gefcc ;};_feeeg .Parent =_dcgeb ;
if _aabgg :=_gafge .Get ("\u0046\u0069\u0072s\u0074");_aabgg !=nil {_aabgg =_ac .ResolveReference (_aabgg );if _ ,_abggg :=_bfeca [_aabgg ];_aabgg !=nil &&_aabgg !=_acbbe &&!_abggg {_egeef :=_ac .TraceToDirectObject (_aabgg );if _ ,_fgdd :=_egeef .(*_ac .PdfObjectNull );
!_fgdd &&_egeef !=nil {_cefab ,_ceeb ,_cffca :=_edebd .buildOutlineTree (_aabgg ,&_feeeg .PdfOutlineTreeNode ,nil ,_bfeca );if _cffca !=nil {_gd .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",_cffca );
}else {_feeeg .First =_cefab ;_feeeg .Last =_ceeb ;};};};};return &_feeeg .PdfOutlineTreeNode ,&_feeeg .PdfOutlineTreeNode ,nil ;};
// ToGoTime returns the date in time.Time format.
func (_beabd PdfDate )ToGoTime ()_e .Time {_ffeee :=int (_beabd ._bbdfd *60*60+_beabd ._ecccg *60);switch _beabd ._cbcad {case '-':_ffeee =-_ffeee ;case 'Z':_ffeee =0;};_deeda :=_d .Sprintf ("\u0055\u0054\u0043\u0025\u0063\u0025\u002e\u0032\u0064\u0025\u002e\u0032\u0064",_beabd ._cbcad ,_beabd ._bbdfd ,_beabd ._ecccg );
_eafg :=_e .FixedZone (_deeda ,_ffeee );return _e .Date (int (_beabd ._bfbe ),_e .Month (_beabd ._dbbcd ),int (_beabd ._dgfeb ),int (_beabd ._ffgecb ),int (_beabd ._eega ),int (_beabd ._dcebf ),0,_eafg );};
// PdfAnnotationProjection represents Projection annotations.
type PdfAnnotationProjection struct{*PdfAnnotation ;*PdfAnnotationMarkup ;};
// 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 ;_bfgde *_ac .PdfIndirectObject ;
// Type: Sig/DocTimeStamp
Type *_ac .PdfObjectName ;Filter *_ac .PdfObjectName ;SubFilter *_ac .PdfObjectName ;Contents *_ac .PdfObjectString ;Cert _ac .PdfObject ;ByteRange *_ac .PdfObjectArray ;Reference *_ac .PdfObjectArray ;Changes *_ac .PdfObjectArray ;Name *_ac .PdfObjectString ;
M *_ac .PdfObjectString ;Location *_ac .PdfObjectString ;Reason *_ac .PdfObjectString ;ContactInfo *_ac .PdfObjectString ;R *_ac .PdfObjectInteger ;V *_ac .PdfObjectInteger ;PropBuild *_ac .PdfObjectDictionary ;PropAuthTime *_ac .PdfObjectInteger ;PropAuthType *_ac .PdfObjectName ;
};
// NewPdfActionHide returns a new "hide" action.
func NewPdfActionHide ()*PdfActionHide {_efd :=NewPdfAction ();_ecd :=&PdfActionHide {};_ecd .PdfAction =_efd ;_efd .SetContext (_ecd );return _ecd ;};
// Set applies flag fl to the flag's bitmask and returns the combined flag.
func (_ceed FieldFlag )Set (fl FieldFlag )FieldFlag {return FieldFlag (_ceed .Mask ()|fl .Mask ())};
// ToPdfObject implements interface PdfModel.
func (_egbf *PdfActionSetOCGState )ToPdfObject ()_ac .PdfObject {_egbf .PdfAction .ToPdfObject ();_aba :=_egbf ._eef ;_caf :=_aba .PdfObject .(*_ac .PdfObjectDictionary );_caf .SetIfNotNil ("\u0053",_ac .MakeName (string (ActionTypeSetOCGState )));_caf .SetIfNotNil ("\u0053\u0074\u0061t\u0065",_egbf .State );
_caf .SetIfNotNil ("\u0050\u0072\u0065\u0073\u0065\u0072\u0076\u0065\u0052\u0042",_egbf .PreserveRB );return _aba ;};type pdfCIDFontType0 struct{fontCommon ;_fece *_ac .PdfIndirectObject ;_bbea _gf .TextEncoder ;
// Table 117 Entries in a CIDFont dictionary (page 269)
// (Required) Dictionary that defines the character collection of the CIDFont.
// See Table 116.
CIDSystemInfo *_ac .PdfObjectDictionary ;
// Glyph metrics fields (optional).
DW _ac .PdfObject ;W _ac .PdfObject ;DW2 _ac .PdfObject ;W2 _ac .PdfObject ;_gabfe map[_gf .CharCode ]float64 ;_fggf float64 ;};
// NewPdfAnnotationHighlight returns a new text highlight annotation.
func NewPdfAnnotationHighlight ()*PdfAnnotationHighlight {_fef :=NewPdfAnnotation ();_aggc :=&PdfAnnotationHighlight {};_aggc .PdfAnnotation =_fef ;_aggc .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_fef .SetContext (_aggc );return _aggc ;};
// GetOptimizer returns current PDF optimizer.
func (_gebggd *PdfWriter )GetOptimizer ()Optimizer {return _gebggd ._bddgd };
// IsTiling specifies if the pattern is a tiling pattern.
func (_gfbgd *PdfPattern )IsTiling ()bool {return _gfbgd .PatternType ==1};
// SetDocInfo set document info.
// This will overwrite any globally declared document info.
func (_ecedf *PdfWriter )SetDocInfo (info *PdfInfo ){_ecedf .setDocInfo (info .ToPdfObject ())};
// NewPdfAcroForm returns a new PdfAcroForm with an intialized container (indirect object).
func NewPdfAcroForm ()*PdfAcroForm {return &PdfAcroForm {Fields :&[]*PdfField {},_abecf :_ac .MakeIndirectObject (_ac .MakeDict ())};};
// PdfColorspaceCalGray represents CalGray color space.
type PdfColorspaceCalGray struct{WhitePoint []float64 ;BlackPoint []float64 ;Gamma float64 ;_eabd *_ac .PdfIndirectObject ;};func (_ecda *PdfReader )newPdfAnnotationMovieFromDict (_cceg *_ac .PdfObjectDictionary )(*PdfAnnotationMovie ,error ){_dgdb :=PdfAnnotationMovie {};
_dgdb .T =_cceg .Get ("\u0054");_dgdb .Movie =_cceg .Get ("\u004d\u006f\u0076i\u0065");_dgdb .A =_cceg .Get ("\u0041");return &_dgdb ,nil ;};
// PdfAnnotationLink represents Link annotations.
// (Section 12.5.6.5 p. 403).
type PdfAnnotationLink struct{*PdfAnnotation ;A _ac .PdfObject ;Dest _ac .PdfObject ;H _ac .PdfObject ;PA _ac .PdfObject ;QuadPoints _ac .PdfObject ;BS _ac .PdfObject ;_abaf *PdfAction ;_bede *PdfReader ;};func _gbfea (_bafb *_ac .PdfObjectStream )(*PdfFunctionType4 ,error ){_gfff :=&PdfFunctionType4 {};
_gfff ._adfgg =_bafb ;_caade :=_bafb .PdfObjectDictionary ;_abfbe ,_aeafc :=_ac .TraceToDirectObject (_caade .Get ("\u0044\u006f\u006d\u0061\u0069\u006e")).(*_ac .PdfObjectArray );if !_aeafc {_gd .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");
return nil ,_af .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 _abfbe .Len ()%2!=0{_gd .Log .Error ("\u0044\u006f\u006d\u0061\u0069\u006e\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");
return nil ,_af .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0064\u006f\u006da\u0069\u006e\u0020\u0072an\u0067\u0065");};_gacagf ,_cbbg :=_abfbe .ToFloat64Array ();if _cbbg !=nil {return nil ,_cbbg ;};_gfff .Domain =_gacagf ;_abfbe ,_aeafc =_ac .TraceToDirectObject (_caade .Get ("\u0052\u0061\u006eg\u0065")).(*_ac .PdfObjectArray );
if _aeafc {if _abfbe .Len ()< 0||_abfbe .Len ()%2!=0{return nil ,_af .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0061\u006e\u0067\u0065");};_cbaa ,_feea :=_abfbe .ToFloat64Array ();if _feea !=nil {return nil ,_feea ;};_gfff .Range =_cbaa ;
};_ddgee ,_cbbg :=_ac .DecodeStream (_bafb );if _cbbg !=nil {return nil ,_cbbg ;};_gfff ._ccbc =_ddgee ;_bbgb :=_bb .NewPSParser (_ddgee );_fcdd ,_cbbg :=_bbgb .Parse ();if _cbbg !=nil {return nil ,_cbbg ;};_gfff .Program =_fcdd ;return _gfff ,nil ;};
// Image interface is a basic representation of an image used in PDF.
// The colorspace is not specified, but must be known when handling the image.
type Image struct{Width int64 ;Height int64 ;BitsPerComponent int64 ;ColorComponents int ;Data []byte ;_ebga []byte ;_gffd []float64 ;};
// ToPdfObject converts the PdfFont object to its PDF representation.
func (_bdac *PdfFont )ToPdfObject ()_ac .PdfObject {if _bdac ._gegb ==nil {_gd .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 _ac .MakeNull ();
};return _bdac ._gegb .ToPdfObject ();};
// Evaluate runs the function on the passed in slice and returns the results.
func (_abddb *PdfFunctionType0 )Evaluate (x []float64 )([]float64 ,error ){if len (x )!=_abddb .NumInputs {_gd .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 ,_af .New ("\u0072\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b\u0020e\u0072\u0072\u006f\u0072");};if _abddb ._gfec ==nil {_gefd :=_abddb .processSamples ();if _gefd !=nil {return nil ,_gefd ;};};_fagg :=_abddb .Encode ;if _fagg ==nil {_fagg =[]float64 {};
for _fedab :=0;_fedab < len (_abddb .Size );_fedab ++{_fagg =append (_fagg ,0);_fagg =append (_fagg ,float64 (_abddb .Size [_fedab ]-1));};};_adeaf :=_abddb .Decode ;if _adeaf ==nil {_adeaf =_abddb .Range ;};_beffe :=make ([]int ,len (x ));for _afaec :=0;
_afaec < len (x );_afaec ++{_fadaf :=x [_afaec ];_gbbec :=_da .Min (_da .Max (_fadaf ,_abddb .Domain [2*_afaec ]),_abddb .Domain [2*_afaec +1]);_gfbac :=_ed .LinearInterpolate (_gbbec ,_abddb .Domain [2*_afaec ],_abddb .Domain [2*_afaec +1],_fagg [2*_afaec ],_fagg [2*_afaec +1]);
_bdee :=_da .Min (_da .Max (_gfbac ,0),float64 (_abddb .Size [_afaec ]-1));_bcddb :=int (_da .Floor (_bdee +0.5));if _bcddb < 0{_bcddb =0;}else if _bcddb > _abddb .Size [_afaec ]{_bcddb =_abddb .Size [_afaec ]-1;};_beffe [_afaec ]=_bcddb ;};_cacda :=_beffe [0];
for _agaa :=1;_agaa < _abddb .NumInputs ;_agaa ++{_fadg :=_beffe [_agaa ];for _cgead :=0;_cgead < _agaa ;_cgead ++{_fadg *=_abddb .Size [_cgead ];};_cacda +=_fadg ;};_cacda *=_abddb .NumOutputs ;var _bbceb []float64 ;for _dbfdb :=0;_dbfdb < _abddb .NumOutputs ;
_dbfdb ++{_abde :=_cacda +_dbfdb ;if _abde >=len (_abddb ._gfec ){_gd .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 ;};_baggg :=_abddb ._gfec [_abde ];_aeada :=_ed .LinearInterpolate (float64 (_baggg ),0,_da .Pow (2,float64 (_abddb .BitsPerSample )),_adeaf [2*_dbfdb ],_adeaf [2*_dbfdb +1]);_gebd :=_da .Min (_da .Max (_aeada ,_abddb .Range [2*_dbfdb ]),_abddb .Range [2*_dbfdb +1]);
_bbceb =append (_bbceb ,_gebd );};return _bbceb ,nil ;};
// 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 (_gfadae *_fe .Document )error ;};
// FieldFlag represents form field flags. Some of the flags can apply to all types of fields whereas other
// flags are specific.
type FieldFlag uint32 ;
// NewPdfAnnotation returns an initialized generic PDF annotation model.
func NewPdfAnnotation ()*PdfAnnotation {_ffd :=&PdfAnnotation {};_ffd ._fegd =_ac .MakeIndirectObject (_ac .MakeDict ());return _ffd ;};func (_fdefe *PdfReader )newPdfActionSetOCGStateFromDict (_eefa *_ac .PdfObjectDictionary )(*PdfActionSetOCGState ,error ){return &PdfActionSetOCGState {State :_eefa .Get ("\u0053\u0074\u0061t\u0065"),PreserveRB :_eefa .Get ("\u0050\u0072\u0065\u0073\u0065\u0072\u0076\u0065\u0052\u0042")},nil ;
};
// G returns the value of the green component of the color.
func (_edbc *PdfColorDeviceRGB )G ()float64 {return _edbc [1]};func _ceec (_cggfe string )(string ,error ){var _cegbc _fd .Buffer ;_cegbc .WriteString (_cggfe );_fbddf :=make ([]byte ,8+16);_gdabd :=_e .Now ().UTC ().UnixNano ();_ee .BigEndian .PutUint64 (_fbddf ,uint64 (_gdabd ));
_ ,_facgb :=_ff .Read (_fbddf [8:]);if _facgb !=nil {return "",_facgb ;};_cegbc .WriteString (_f .EncodeToString (_fbddf ));return _cegbc .String (),nil ;};
// PdfActionJavaScript represents a javaScript action.
type PdfActionJavaScript struct{*PdfAction ;JS _ac .PdfObject ;};
// GetContentStream returns the pattern cell's content stream
func (_bfbgc *PdfTilingPattern )GetContentStream ()([]byte ,error ){_fafdf ,_ ,_eafae :=_bfbgc .GetContentStreamWithEncoder ();return _fafdf ,_eafae ;};
// ToPdfObject convert PdfInfo to pdf object.
func (_dbgg *PdfInfo )ToPdfObject ()_ac .PdfObject {_gccd :=_ac .MakeDict ();_gccd .SetIfNotNil ("\u0054\u0069\u0074l\u0065",_dbgg .Title );_gccd .SetIfNotNil ("\u0041\u0075\u0074\u0068\u006f\u0072",_dbgg .Author );_gccd .SetIfNotNil ("\u0053u\u0062\u006a\u0065\u0063\u0074",_dbgg .Subject );
_gccd .SetIfNotNil ("\u004b\u0065\u0079\u0077\u006f\u0072\u0064\u0073",_dbgg .Keywords );_gccd .SetIfNotNil ("\u0043r\u0065\u0061\u0074\u006f\u0072",_dbgg .Creator );_gccd .SetIfNotNil ("\u0050\u0072\u006f\u0064\u0075\u0063\u0065\u0072",_dbgg .Producer );
_gccd .SetIfNotNil ("\u0054r\u0061\u0070\u0070\u0065\u0064",_dbgg .Trapped );if _dbgg .CreationDate !=nil {_gccd .SetIfNotNil ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065",_dbgg .CreationDate .ToPdfObject ());};if _dbgg .ModifiedDate !=nil {_gccd .SetIfNotNil ("\u004do\u0064\u0044\u0061\u0074\u0065",_dbgg .ModifiedDate .ToPdfObject ());
};for _ ,_ceeg :=range _dbgg ._ggfb .Keys (){_gccd .SetIfNotNil (_ceeg ,_dbgg ._ggfb .Get (_ceeg ));};return _gccd ;};
// ToInteger convert to an integer format.
func (_eecg *PdfColorCalRGB )ToInteger (bits int )[3]uint32 {_cdcbb :=_da .Pow (2,float64 (bits ))-1;return [3]uint32 {uint32 (_cdcbb *_eecg .A ()),uint32 (_cdcbb *_eecg .B ()),uint32 (_cdcbb *_eecg .C ())};};
// PdfActionGoTo represents a GoTo action.
type PdfActionGoTo struct{*PdfAction ;D _ac .PdfObject ;};
// 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 *_ac .PdfObjectName ;AlternateSpace PdfColorspace ;TintTransform PdfFunction ;_becg *_ac .PdfIndirectObject ;};
// Register registers (caches) a model to primitive object relationship.
func (_ebdab *modelManager )Register (primitive _ac .PdfObject ,model PdfModel ){_ebdab ._ebgfb [model ]=primitive ;_ebdab ._bbefe [primitive ]=model ;};
// GetPageAsIndirectObject returns the page as a dictionary within an PdfIndirectObject.
func (_fcgee *PdfPage )GetPageAsIndirectObject ()*_ac .PdfIndirectObject {return _fcgee ._ffda };
// SetPdfSubject sets the Subject attribute of the output PDF.
func SetPdfSubject (subject string ){_gcaaba .Lock ();defer _gcaaba .Unlock ();_baggd =subject };
// NewPdfInfoFromObject creates a new PdfInfo from the input core.PdfObject.
func NewPdfInfoFromObject (obj _ac .PdfObject )(*PdfInfo ,error ){var _cfga PdfInfo ;_ebfgc ,_abffe :=obj .(*_ac .PdfObjectDictionary );if !_abffe {return nil ,_d .Errorf ("i\u006e\u0076\u0061\u006c\u0069\u0064 \u0070\u0064\u0066\u0020\u006f\u0062\u006a\u0065\u0063t\u0020\u0074\u0079p\u0065:\u0020\u0025\u0054",obj );
};for _ ,_bggcb :=range _ebfgc .Keys (){switch _bggcb {case "\u0054\u0069\u0074l\u0065":_cfga .Title ,_ =_ac .GetString (_ebfgc .Get ("\u0054\u0069\u0074l\u0065"));case "\u0041\u0075\u0074\u0068\u006f\u0072":_cfga .Author ,_ =_ac .GetString (_ebfgc .Get ("\u0041\u0075\u0074\u0068\u006f\u0072"));
case "\u0053u\u0062\u006a\u0065\u0063\u0074":_cfga .Subject ,_ =_ac .GetString (_ebfgc .Get ("\u0053u\u0062\u006a\u0065\u0063\u0074"));case "\u004b\u0065\u0079\u0077\u006f\u0072\u0064\u0073":_cfga .Keywords ,_ =_ac .GetString (_ebfgc .Get ("\u004b\u0065\u0079\u0077\u006f\u0072\u0064\u0073"));
case "\u0043r\u0065\u0061\u0074\u006f\u0072":_cfga .Creator ,_ =_ac .GetString (_ebfgc .Get ("\u0043r\u0065\u0061\u0074\u006f\u0072"));case "\u0050\u0072\u006f\u0064\u0075\u0063\u0065\u0072":_cfga .Producer ,_ =_ac .GetString (_ebfgc .Get ("\u0050\u0072\u006f\u0064\u0075\u0063\u0065\u0072"));
case "\u0054r\u0061\u0070\u0070\u0065\u0064":_cfga .Trapped ,_ =_ac .GetName (_ebfgc .Get ("\u0054r\u0061\u0070\u0070\u0065\u0064"));case "\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065":if _dagd ,_egef :=_ac .GetString (_ebfgc .Get ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065"));
_egef &&_dagd .String ()!=""{_cebgg ,_ggaa :=NewPdfDate (_dagd .String ());if _ggaa !=nil {return nil ,_d .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0043\u0072e\u0061\u0074\u0069\u006f\u006e\u0044\u0061t\u0065\u0020\u0066\u0069\u0065\u006c\u0064\u003a\u0020\u0025\u0077",_ggaa );
};_cfga .CreationDate =&_cebgg ;};case "\u004do\u0064\u0044\u0061\u0074\u0065":if _cbcg ,_abgc :=_ac .GetString (_ebfgc .Get ("\u004do\u0064\u0044\u0061\u0074\u0065"));_abgc &&_cbcg .String ()!=""{_bdec ,_bafeg :=NewPdfDate (_cbcg .String ());if _bafeg !=nil {return nil ,_d .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u004d\u006f\u0064\u0044a\u0074e\u0020f\u0069\u0065\u006c\u0064\u003a\u0020\u0025w",_bafeg );
};_cfga .ModifiedDate =&_bdec ;};default:_eafce ,_ :=_ac .GetString (_ebfgc .Get (_bggcb ));if _cfga ._ggfb ==nil {_cfga ._ggfb =_ac .MakeDict ();};_cfga ._ggfb .Set (_bggcb ,_eafce );};};return &_cfga ,nil ;};
// Duplicate creates a duplicate page based on the current one and returns it.
func (_faeca *PdfPage )Duplicate ()*PdfPage {_dddgdd :=*_faeca ;_dddgdd ._egcd =_ac .MakeDict ();_dddgdd ._ffda =_ac .MakeIndirectObject (_dddgdd ._egcd );_dddgdd ._cecfa =*_dddgdd ._egcd ;return &_dddgdd ;};
// ToPdfObject converts the PdfPage to a dictionary within an indirect object container.
func (_cgbec *PdfPage )ToPdfObject ()_ac .PdfObject {_cbgdc :=_cgbec ._ffda ;_cgbec .GetPageDict ();return _cbgdc ;};func (_egcc *PdfReader )newPdfActionGotoEFromDict (_fae *_ac .PdfObjectDictionary )(*PdfActionGoToE ,error ){_baa ,_aga :=_caec (_fae .Get ("\u0046"));
if _aga !=nil {return nil ,_aga ;};return &PdfActionGoToE {D :_fae .Get ("\u0044"),NewWindow :_fae .Get ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw"),T :_fae .Get ("\u0054"),F :_baa },nil ;};func _ccbfe (_afacad map[_fda .GID ]int ,_bfbfc uint16 )*_ac .PdfObjectArray {_dgeg :=&_ac .PdfObjectArray {};
_abfba :=_fda .GID (_bfbfc );for _gaae :=_fda .GID (0);_gaae < _abfba ;{_agea ,_abafd :=_afacad [_gaae ];if !_abafd {_gaae ++;continue ;};_fgea :=_gaae ;for _bcfce :=_fgea +1;_bcfce < _abfba ;_bcfce ++{if _ggda ,_fega :=_afacad [_bcfce ];!_fega ||_agea !=_ggda {break ;
};_fgea =_bcfce ;};_dgeg .Append (_ac .MakeInteger (int64 (_gaae )));_dgeg .Append (_ac .MakeInteger (int64 (_fgea )));_dgeg .Append (_ac .MakeInteger (int64 (_agea )));_gaae =_fgea +1;};return _dgeg ;};
// 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 ;_aebdd *_ac .PdfObjectDictionary ;};
// PdfAnnotationCircle represents Circle annotations.
// (Section 12.5.6.8).
type PdfAnnotationCircle struct{*PdfAnnotation ;*PdfAnnotationMarkup ;BS _ac .PdfObject ;IC _ac .PdfObject ;BE _ac .PdfObject ;RD _ac .PdfObject ;};
// DecodeArray returns the range of color component values in the ICCBased colorspace.
func (_bceba *PdfColorspaceICCBased )DecodeArray ()[]float64 {return _bceba .Range };func _eeaca (_eagcb *_ac .PdfObjectDictionary )(*PdfShadingPattern ,error ){_dcfgf :=&PdfShadingPattern {};_gdbb :=_eagcb .Get ("\u0053h\u0061\u0064\u0069\u006e\u0067");
if _gdbb ==nil {_gd .Log .Debug ("\u0053h\u0061d\u0069\u006e\u0067\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ;};_cdcbe ,_bceec :=_gccgd (_gdbb );if _bceec !=nil {_gd .Log .Debug ("\u0045r\u0072\u006f\u0072\u0020l\u006f\u0061\u0064\u0069\u006eg\u0020s\u0068a\u0064\u0069\u006e\u0067\u003a\u0020\u0025v",_bceec );
return nil ,_bceec ;};_dcfgf .Shading =_cdcbe ;if _bgace :=_eagcb .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");_bgace !=nil {_caafaf ,_gceeg :=_bgace .(*_ac .PdfObjectArray );if !_gceeg {_gd .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",_bgace );
return nil ,_ac .ErrTypeError ;};_dcfgf .Matrix =_caafaf ;};if _efcca :=_eagcb .Get ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e");_efcca !=nil {_dcfgf .ExtGState =_efcca ;};return _dcfgf ,nil ;};
// ColorToRGB verifies that the input color is an RGB color. Method exists in
// order to satisfy the PdfColorspace interface.
func (_gbdbac *PdfColorspaceDeviceRGB )ColorToRGB (color PdfColor )(PdfColor ,error ){_eabe ,_eccc :=color .(*PdfColorDeviceRGB );if !_eccc {_gd .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 ,_af .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};return _eabe ,nil ;};func (_dfcde *PdfWriter )updateObjectNumbers (){_abfea :=_dfcde .ObjNumOffset ;_gcbdb :=0;for _ ,_gbeag :=range _dfcde ._gdeaf {_ffcfc :=int64 (_gcbdb +1+_abfea );
_gaccc :=true ;if _dfcde ._cfgc {if _efgg ,_gdac :=_dfcde ._dgbfe [_gbeag ];_gdac {_ffcfc =_efgg ;_gaccc =false ;};};switch _facbd :=_gbeag .(type ){case *_ac .PdfIndirectObject :_facbd .ObjectNumber =_ffcfc ;_facbd .GenerationNumber =0;case *_ac .PdfObjectStream :_facbd .ObjectNumber =_ffcfc ;
_facbd .GenerationNumber =0;case *_ac .PdfObjectStreams :_facbd .ObjectNumber =_ffcfc ;_facbd .GenerationNumber =0;default:_gd .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",_facbd );
continue ;};if _gaccc {_gcbdb ++;};};_daedd :=func (_cddfdd _ac .PdfObject )int64 {switch _eaef :=_cddfdd .(type ){case *_ac .PdfIndirectObject :return _eaef .ObjectNumber ;case *_ac .PdfObjectStream :return _eaef .ObjectNumber ;case *_ac .PdfObjectStreams :return _eaef .ObjectNumber ;
};return 0;};_fb .SliceStable (_dfcde ._gdeaf ,func (_cdaea ,_bbgfa int )bool {return _daedd (_dfcde ._gdeaf [_cdaea ])< _daedd (_dfcde ._gdeaf [_bbgfa ])});};
// SetBorderWidth sets the style's border width.
func (_fgb *PdfBorderStyle )SetBorderWidth (width float64 ){_fgb .W =&width };
// ToPdfObject implements interface PdfModel.
func (_degf *PdfAnnotationCircle )ToPdfObject ()_ac .PdfObject {_degf .PdfAnnotation .ToPdfObject ();_dcg :=_degf ._fegd ;_fffg :=_dcg .PdfObject .(*_ac .PdfObjectDictionary );_degf .PdfAnnotationMarkup .appendToPdfDictionary (_fffg );_fffg .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ac .MakeName ("\u0043\u0069\u0072\u0063\u006c\u0065"));
_fffg .SetIfNotNil ("\u0042\u0053",_degf .BS );_fffg .SetIfNotNil ("\u0049\u0043",_degf .IC );_fffg .SetIfNotNil ("\u0042\u0045",_degf .BE );_fffg .SetIfNotNil ("\u0052\u0044",_degf .RD );return _dcg ;};
// NewPdfTransformParamsDocMDP create a PdfTransformParamsDocMDP with the specific permissions.
func NewPdfTransformParamsDocMDP (permission _ca .DocMDPPermission )*PdfTransformParamsDocMDP {return &PdfTransformParamsDocMDP {Type :_ac .MakeName ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u0050\u0061\u0072\u0061\u006d\u0073"),P :_ac .MakeInteger (int64 (permission )),V :_ac .MakeName ("\u0031\u002e\u0032")};
};
// 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 (_aacf *PdfFieldButton )SetType (btype ButtonType ){_bebb :=uint32 (0);if _aacf .Ff !=nil {_bebb =uint32 (*_aacf .Ff );};switch btype {case ButtonTypePush :_bebb |=FieldFlagPushbutton .Mask ();case ButtonTypeRadio :_bebb |=FieldFlagRadio .Mask ();
};_aacf .Ff =_ac .MakeInteger (int64 (_bebb ));};
// GetCharMetrics returns the char metrics for character code `code`.
func (_acfcg pdfFontType3 )GetCharMetrics (code _gf .CharCode )(_fda .CharMetrics ,bool ){if _ebbdc ,_faad :=_acfcg ._fbad [code ];_faad {return _fda .CharMetrics {Wx :_ebbdc },true ;};if _fda .IsStdFont (_fda .StdFontName (_acfcg ._abab )){return _fda .CharMetrics {Wx :250},true ;
};return _fda .CharMetrics {},false ;};
// 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 (_dafac *PdfColorspaceSpecialPattern )ColorToRGB (color PdfColor )(PdfColor ,error ){_cbbc ,_faac :=color .(*PdfColorPattern );if !_faac {_gd .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 _cbbc .Color ==nil {return color ,nil ;};if _dafac .UnderlyingCS ==nil {return nil ,_af .New ("\u0075n\u0064\u0065\u0072\u006cy\u0069\u006e\u0067\u0020\u0043S\u0020n\u006ft\u0020\u0064\u0065\u0066\u0069\u006e\u0065d");};return _dafac .UnderlyingCS .ColorToRGB (_cbbc .Color );
};
// GetRuneMetrics returns the character metrics for the specified rune.
// A bool flag is returned to indicate whether or not the entry was found.
func (_cgcce pdfCIDFontType2 )GetRuneMetrics (r rune )(_fda .CharMetrics ,bool ){_efeeg ,_ggab :=_cgcce ._adef [r ];if !_ggab {_ccccc ,_acfc :=_ac .GetInt (_cgcce .DW );if !_acfc {return _fda .CharMetrics {},false ;};_efeeg =int (*_ccccc );};return _fda .CharMetrics {Wx :float64 (_efeeg )},true ;
};
// GetCharMetrics returns the char metrics for character code `code`.
func (_begd pdfCIDFontType0 )GetCharMetrics (code _gf .CharCode )(_fda .CharMetrics ,bool ){_ebfc :=_begd ._fggf ;if _dbeb ,_gcgaa :=_begd ._gabfe [code ];_gcgaa {_ebfc =_dbeb ;};return _fda .CharMetrics {Wx :_ebfc },true ;};
// 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 (_caecg *PdfColorspaceDeviceGray )ColorFromPdfObjects (objects []_ac .PdfObject )(PdfColor ,error ){if len (objects )!=1{return nil ,_af .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_acb ,_efgc :=_ac .GetNumbersAsFloat (objects );
if _efgc !=nil {return nil ,_efgc ;};return _caecg .ColorFromFloats (_acb );};func (_eace *PdfReader )newPdfAnnotationPolyLineFromDict (_cabd *_ac .PdfObjectDictionary )(*PdfAnnotationPolyLine ,error ){_eadad :=PdfAnnotationPolyLine {};_bgdb ,_dgf :=_eace .newPdfAnnotationMarkupFromDict (_cabd );
if _dgf !=nil {return nil ,_dgf ;};_eadad .PdfAnnotationMarkup =_bgdb ;_eadad .Vertices =_cabd .Get ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073");_eadad .LE =_cabd .Get ("\u004c\u0045");_eadad .BS =_cabd .Get ("\u0042\u0053");_eadad .IC =_cabd .Get ("\u0049\u0043");
_eadad .BE =_cabd .Get ("\u0042\u0045");_eadad .IT =_cabd .Get ("\u0049\u0054");_eadad .Measure =_cabd .Get ("\u004de\u0061\u0073\u0075\u0072\u0065");return &_eadad ,nil ;};
// GetOutlinesFlattened returns a flattened list of tree nodes and titles.
// NOTE: for most use cases, it is recommended to use the high-level GetOutlines
// method instead, which also provides information regarding the destination
// of the outline items.
func (_fbdfb *PdfReader )GetOutlinesFlattened ()([]*PdfOutlineTreeNode ,[]string ,error ){var _adaca []*PdfOutlineTreeNode ;var _ddgae []string ;var _fedge func (*PdfOutlineTreeNode ,*[]*PdfOutlineTreeNode ,*[]string ,int );_fedge =func (_gfafb *PdfOutlineTreeNode ,_fcagb *[]*PdfOutlineTreeNode ,_bfdgg *[]string ,_fddb int ){if _gfafb ==nil {return ;
};if _gfafb ._dagfd ==nil {_gd .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 ;};_fdbff ,_acabe :=_gfafb ._dagfd .(*PdfOutlineItem );if _acabe {*_fcagb =append (*_fcagb ,&_fdbff .PdfOutlineTreeNode );
_ffde :=_fg .Repeat ("\u0020",_fddb *2)+_fdbff .Title .Decoded ();*_bfdgg =append (*_bfdgg ,_ffde );};if _gfafb .First !=nil {_bcabd :=_fg .Repeat ("\u0020",_fddb *2)+"\u002b";*_bfdgg =append (*_bfdgg ,_bcabd );_fedge (_gfafb .First ,_fcagb ,_bfdgg ,_fddb +1);
};if _acabe &&_fdbff .Next !=nil {_fedge (_fdbff .Next ,_fcagb ,_bfdgg ,_fddb );};};_fedge (_fbdfb ._adbfg ,&_adaca ,&_ddgae ,0);return _adaca ,_ddgae ,nil ;};func (_acd *PdfAnnotation )String ()string {_ebd :="";_gec ,_ceg :=_acd .ToPdfObject ().(*_ac .PdfIndirectObject );
if _ceg {_ebd =_d .Sprintf ("\u0025\u0054\u003a\u0020\u0025\u0073",_acd ._cgf ,_gec .PdfObject .String ());};return _ebd ;};
// ToPdfObject implements interface PdfModel.
func (_ebcda *PdfSignatureReference )ToPdfObject ()_ac .PdfObject {_feaga :=_ac .MakeDict ();_feaga .SetIfNotNil ("\u0054\u0079\u0070\u0065",_ebcda .Type );_feaga .SetIfNotNil ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u004d\u0065\u0074\u0068\u006f\u0064",_ebcda .TransformMethod );
_feaga .SetIfNotNil ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u0050\u0061\u0072\u0061\u006d\u0073",_ebcda .TransformParams );_feaga .SetIfNotNil ("\u0044\u0061\u0074\u0061",_ebcda .Data );_feaga .SetIfNotNil ("\u0044\u0069\u0067e\u0073\u0074\u004d\u0065\u0074\u0068\u006f\u0064",_ebcda .DigestMethod );
return _feaga ;};func (_accf *PdfFilespec )getDict ()*_ac .PdfObjectDictionary {if _caad ,_gcdca :=_accf ._fege .(*_ac .PdfIndirectObject );_gcdca {_bgef ,_ecfc :=_caad .PdfObject .(*_ac .PdfObjectDictionary );if !_ecfc {return nil ;};return _bgef ;}else if _bagbe ,_ebeca :=_accf ._fege .(*_ac .PdfObjectDictionary );
_ebeca {return _bagbe ;}else {_gd .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",_accf ._fege );
return nil ;};};func (_caff *PdfReader )newPdfActionGoTo3DViewFromDict (_bfd *_ac .PdfObjectDictionary )(*PdfActionGoTo3DView ,error ){return &PdfActionGoTo3DView {TA :_bfd .Get ("\u0054\u0041"),V :_bfd .Get ("\u0056")},nil ;};
// ToPdfObject returns an indirect object containing the signature field dictionary.
func (_ebfe *PdfFieldSignature )ToPdfObject ()_ac .PdfObject {if _ebfe .PdfAnnotationWidget !=nil {_ebfe .PdfAnnotationWidget .ToPdfObject ();};_ebfe .PdfField .ToPdfObject ();_afcb :=_ebfe ._bdde ;_ccde :=_afcb .PdfObject .(*_ac .PdfObjectDictionary );
_ccde .SetIfNotNil ("\u0046\u0054",_ac .MakeName ("\u0053\u0069\u0067"));_ccde .SetIfNotNil ("\u004c\u006f\u0063\u006b",_ebfe .Lock );_ccde .SetIfNotNil ("\u0053\u0056",_ebfe .SV );if _ebfe .V !=nil {_ccde .SetIfNotNil ("\u0056",_ebfe .V .ToPdfObject ());
};return _afcb ;};
// ToPdfObject returns the PDF representation of the shading pattern.
func (_dfec *PdfShadingPatternType2 )ToPdfObject ()_ac .PdfObject {_dfec .PdfPattern .ToPdfObject ();_ccgdc :=_dfec .getDict ();if _dfec .Shading !=nil {_ccgdc .Set ("\u0053h\u0061\u0064\u0069\u006e\u0067",_dfec .Shading .ToPdfObject ());};if _dfec .Matrix !=nil {_ccgdc .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_dfec .Matrix );
};if _dfec .ExtGState !=nil {_ccgdc .Set ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e",_dfec .ExtGState );};return _dfec ._fddfb ;};
// NewReaderOpts generates a default `ReaderOpts` instance.
func NewReaderOpts ()*ReaderOpts {return &ReaderOpts {Password :"",LazyLoad :true }};
// PdfAnnotationSquare represents Square annotations.
// (Section 12.5.6.8).
type PdfAnnotationSquare struct{*PdfAnnotation ;*PdfAnnotationMarkup ;BS _ac .PdfObject ;IC _ac .PdfObject ;BE _ac .PdfObject ;RD _ac .PdfObject ;};func (_eeg fontCommon )isCIDFont ()bool {if _eeg ._efebg ==""{_gd .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",_eeg );
};_fedbe :=false ;switch _eeg ._efebg {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":_fedbe =true ;};_gd .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",_fedbe ,_eeg );
return _fedbe ;};
// PdfFilespec represents a file specification which can either refer to an external or embedded file.
type PdfFilespec struct{Type _ac .PdfObject ;FS _ac .PdfObject ;F _ac .PdfObject ;UF _ac .PdfObject ;DOS _ac .PdfObject ;Mac _ac .PdfObject ;Unix _ac .PdfObject ;ID _ac .PdfObject ;V _ac .PdfObject ;EF _ac .PdfObject ;RF _ac .PdfObject ;Desc _ac .PdfObject ;
CI _ac .PdfObject ;_fege _ac .PdfObject ;};
// NewPdfAnnotationMovie returns a new movie annotation.
func NewPdfAnnotationMovie ()*PdfAnnotationMovie {_gac :=NewPdfAnnotation ();_edc :=&PdfAnnotationMovie {};_edc .PdfAnnotation =_gac ;_gac .SetContext (_edc );return _edc ;};
// 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 (_dfee *PdfColorspaceCalGray )ColorFromPdfObjects (objects []_ac .PdfObject )(PdfColor ,error ){if len (objects )!=1{return nil ,_af .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_cdfb ,_ccegb :=_ac .GetNumbersAsFloat (objects );
if _ccegb !=nil {return nil ,_ccegb ;};return _dfee .ColorFromFloats (_cdfb );};func (_fbae *PdfReader )newPdfAnnotationFreeTextFromDict (_adbf *_ac .PdfObjectDictionary )(*PdfAnnotationFreeText ,error ){_cgde :=PdfAnnotationFreeText {};_eba ,_fdc :=_fbae .newPdfAnnotationMarkupFromDict (_adbf );
if _fdc !=nil {return nil ,_fdc ;};_cgde .PdfAnnotationMarkup =_eba ;_cgde .DA =_adbf .Get ("\u0044\u0041");_cgde .Q =_adbf .Get ("\u0051");_cgde .RC =_adbf .Get ("\u0052\u0043");_cgde .DS =_adbf .Get ("\u0044\u0053");_cgde .CL =_adbf .Get ("\u0043\u004c");
_cgde .IT =_adbf .Get ("\u0049\u0054");_cgde .BE =_adbf .Get ("\u0042\u0045");_cgde .RD =_adbf .Get ("\u0052\u0044");_cgde .BS =_adbf .Get ("\u0042\u0053");_cgde .LE =_adbf .Get ("\u004c\u0045");return &_cgde ,nil ;};
// GetContainingPdfObject returns the container of the shading object (indirect object).
func (_abaaf *PdfShading )GetContainingPdfObject ()_ac .PdfObject {return _abaaf ._dffbg };
// ToPdfObject returns a PdfObject representation of PdfColorspaceDeviceNAttributes as a PdfObjectDictionary directly
// or indirectly within an indirect object container.
func (_cegd *PdfColorspaceDeviceNAttributes )ToPdfObject ()_ac .PdfObject {_abeeb :=_ac .MakeDict ();if _cegd .Subtype !=nil {_abeeb .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_cegd .Subtype );};_abeeb .SetIfNotNil ("\u0043o\u006c\u006f\u0072\u0061\u006e\u0074s",_cegd .Colorants );
_abeeb .SetIfNotNil ("\u0050r\u006f\u0063\u0065\u0073\u0073",_cegd .Process );_abeeb .SetIfNotNil ("M\u0069\u0078\u0069\u006e\u0067\u0048\u0069\u006e\u0074\u0073",_cegd .MixingHints );if _cegd ._gaag !=nil {_cegd ._gaag .PdfObject =_abeeb ;return _cegd ._gaag ;
};return _abeeb ;};
// PdfAnnotationUnderline represents Underline annotations.
// (Section 12.5.6.10).
type PdfAnnotationUnderline struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _ac .PdfObject ;};
// FullName returns the full name of the field as in rootname.parentname.partialname.
func (_edef *PdfField )FullName ()(string ,error ){var _ecbff _fd .Buffer ;_fdff :=[]string {};if _edef .T !=nil {_fdff =append (_fdff ,_edef .T .Decoded ());};_acbb :=map[*PdfField ]bool {};_acbb [_edef ]=true ;_beadf :=_edef .Parent ;for _beadf !=nil {if _ ,_cbgcg :=_acbb [_beadf ];
_cbgcg {return _ecbff .String (),_af .New ("\u0072\u0065\u0063\u0075rs\u0069\u0076\u0065\u0020\u0074\u0072\u0061\u0076\u0065\u0072\u0073\u0061\u006c");};if _beadf .T ==nil {return _ecbff .String (),_af .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");
};_fdff =append (_fdff ,_beadf .T .Decoded ());_acbb [_beadf ]=true ;_beadf =_beadf .Parent ;};for _dbgb :=len (_fdff )-1;_dbgb >=0;_dbgb --{_ecbff .WriteString (_fdff [_dbgb ]);if _dbgb > 0{_ecbff .WriteString ("\u002e");};};return _ecbff .String (),nil ;
};func _daffc (_fcgcd *_ac .PdfObjectDictionary ,_cfafg *fontCommon )(*pdfCIDFontType2 ,error ){if _cfafg ._efebg !="\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032"{_gd .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",_cfafg );
return nil ,_ac .ErrRangeError ;};_eacga :=_gddc (_cfafg );_afaab ,_eeebg :=_ac .GetDict (_fcgcd .Get ("\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f"));if !_eeebg {_gd .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",_cfafg );
return nil ,ErrRequiredAttributeMissing ;};_eacga .CIDSystemInfo =_afaab ;_eacga .DW =_fcgcd .Get ("\u0044\u0057");_eacga .W =_fcgcd .Get ("\u0057");_eacga .DW2 =_fcgcd .Get ("\u0044\u0057\u0032");_eacga .W2 =_fcgcd .Get ("\u0057\u0032");_eacga .CIDToGIDMap =_fcgcd .Get ("C\u0049\u0044\u0054\u006f\u0047\u0049\u0044\u004d\u0061\u0070");
_eacga ._ffcf =1000.0;if _bggd ,_fcaa :=_ac .GetNumberAsFloat (_eacga .DW );_fcaa ==nil {_eacga ._ffcf =_bggd ;};_dcbfb ,_eabcg :=_ebfec (_eacga .W );if _eabcg !=nil {return nil ,_eabcg ;};if _dcbfb ==nil {_dcbfb =map[_gf .CharCode ]float64 {};};_eacga ._faab =_dcbfb ;
return _eacga ,nil ;};
// MergePageWith appends page content to source Pdf file page content.
func (_cfgd *PdfAppender )MergePageWith (pageNum int ,page *PdfPage )error {_fdbf :=pageNum -1;var _ebeb *PdfPage ;for _faca ,_cdeef :=range _cfgd ._abda {if _faca ==_fdbf {_ebeb =_cdeef ;};};if _ebeb ==nil {return _d .Errorf ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0050\u0061\u0067\u0065\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061r\u0079\u0020\u0025\u0064\u0020\u006e\u006f\u0074\u0020f\u006f\u0075\u006e\u0064\u0020\u0069\u006e\u0020\u0074\u0068\u0065\u0020\u0073o\u0075\u0072\u0063\u0065\u0020\u0064o\u0063\u0075\u006de\u006e\u0074",pageNum );
};if _ebeb ._ffda !=nil &&_ebeb ._ffda .GetParser ()==_cfgd ._cbdcd ._eebeg {_ebeb =_ebeb .Duplicate ();_cfgd ._abda [_fdbf ]=_ebeb ;};page =page .Duplicate ();_gfbe (page );_ebag :=_faba (_ebeb );_gbce :=_faba (page );_eaabg :=make (map[_ac .PdfObjectName ]_ac .PdfObjectName );
for _bafa :=range _gbce {if _ ,_dafa :=_ebag [_bafa ];_dafa {for _edea :=1;true ;_edea ++{_afaa :=_ac .PdfObjectName (string (_bafa )+_ae .Itoa (_edea ));if _ ,_gada :=_ebag [_afaa ];!_gada {_eaabg [_bafa ]=_afaa ;break ;};};};};_bced ,_ccfg :=page .GetContentStreams ();
if _ccfg !=nil {return _ccfg ;};_ggd ,_ccfg :=_ebeb .GetContentStreams ();if _ccfg !=nil {return _ccfg ;};for _gacb ,_gfba :=range _bced {for _gge ,_cgbe :=range _eaabg {_gfba =_fg .Replace (_gfba ,"\u002f"+string (_gge ),"\u002f"+string (_cgbe ),-1);};
_bced [_gacb ]=_gfba ;};_ggd =append (_ggd ,_bced ...);if _ccfb :=_ebeb .SetContentStreams (_ggd ,_ac .NewFlateEncoder ());_ccfb !=nil {return _ccfb ;};_ebeb ._ceca =append (_ebeb ._ceca ,page ._ceca ...);if _ebeb .Resources ==nil {_ebeb .Resources =NewPdfPageResources ();
};if page .Resources !=nil {_ebeb .Resources .Font =_cfgd .mergeResources (_ebeb .Resources .Font ,page .Resources .Font ,_eaabg );_ebeb .Resources .XObject =_cfgd .mergeResources (_ebeb .Resources .XObject ,page .Resources .XObject ,_eaabg );_ebeb .Resources .Properties =_cfgd .mergeResources (_ebeb .Resources .Properties ,page .Resources .Properties ,_eaabg );
if _ebeb .Resources .ProcSet ==nil {_ebeb .Resources .ProcSet =page .Resources .ProcSet ;};_ebeb .Resources .Shading =_cfgd .mergeResources (_ebeb .Resources .Shading ,page .Resources .Shading ,_eaabg );_ebeb .Resources .ExtGState =_cfgd .mergeResources (_ebeb .Resources .ExtGState ,page .Resources .ExtGState ,_eaabg );
};_ccbe ,_ccfg :=_ebeb .GetMediaBox ();if _ccfg !=nil {return _ccfg ;};_cbag ,_ccfg :=page .GetMediaBox ();if _ccfg !=nil {return _ccfg ;};var _beba bool ;if _ccbe .Llx > _cbag .Llx {_ccbe .Llx =_cbag .Llx ;_beba =true ;};if _ccbe .Lly > _cbag .Lly {_ccbe .Lly =_cbag .Lly ;
_beba =true ;};if _ccbe .Urx < _cbag .Urx {_ccbe .Urx =_cbag .Urx ;_beba =true ;};if _ccbe .Ury < _cbag .Ury {_ccbe .Ury =_cbag .Ury ;_beba =true ;};if _beba {_ebeb .MediaBox =_ccbe ;};return nil ;};
// ToPdfObject returns the PDF representation of the function.
func (_geeg *PdfFunctionType3 )ToPdfObject ()_ac .PdfObject {_ccgfge :=_ac .MakeDict ();_ccgfge .Set ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065",_ac .MakeInteger (3));_gaff :=&_ac .PdfObjectArray {};for _ ,_daacg :=range _geeg .Domain {_gaff .Append (_ac .MakeFloat (_daacg ));
};_ccgfge .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_gaff );if _geeg .Range !=nil {_baedb :=&_ac .PdfObjectArray {};for _ ,_dgbaa :=range _geeg .Range {_baedb .Append (_ac .MakeFloat (_dgbaa ));};_ccgfge .Set ("\u0052\u0061\u006eg\u0065",_baedb );};
if _geeg .Functions !=nil {_edfe :=&_ac .PdfObjectArray {};for _ ,_bgbff :=range _geeg .Functions {_edfe .Append (_bgbff .ToPdfObject ());};_ccgfge .Set ("\u0046u\u006e\u0063\u0074\u0069\u006f\u006es",_edfe );};if _geeg .Bounds !=nil {_eeab :=&_ac .PdfObjectArray {};
for _ ,_fdffg :=range _geeg .Bounds {_eeab .Append (_ac .MakeFloat (_fdffg ));};_ccgfge .Set ("\u0042\u006f\u0075\u006e\u0064\u0073",_eeab );};if _geeg .Encode !=nil {_aafg :=&_ac .PdfObjectArray {};for _ ,_dgedg :=range _geeg .Encode {_aafg .Append (_ac .MakeFloat (_dgedg ));
};_ccgfge .Set ("\u0045\u006e\u0063\u006f\u0064\u0065",_aafg );};if _geeg ._dcbab !=nil {_geeg ._dcbab .PdfObject =_ccgfge ;return _geeg ._dcbab ;};return _ccgfge ;};
// 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 ;
// C returns the value of the cyan component of the color.
func (_abfd *PdfColorDeviceCMYK )C ()float64 {return _abfd [0]};
// 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 (_bdeg *PdfPage )Size ()(float64 ,float64 ,error ){_bccc ,_cfbbf :=_bdeg .GetMediaBox ();if _cfbbf !=nil {return 0,0,_cfbbf ;};_efeac ,_aceg :=_bccc .Width (),_bccc .Height ();_cdcac ,_cfbbf :=_bdeg .GetRotate ();if _cfbbf !=nil {_gd .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",_cfbbf .Error ());
};if _gcfee :=_cdcac ;_gcfee %360!=0&&_gcfee %90==0{if _efcba :=(360+_gcfee %360)%360;_efcba ==90||_efcba ==270{_efeac ,_aceg =_aceg ,_efeac ;};};return _efeac ,_aceg ,nil ;};
// PdfAnnotationTrapNet represents TrapNet annotations.
// (Section 12.5.6.21).
type PdfAnnotationTrapNet struct{*PdfAnnotation };
// GetNumComponents returns the number of color components (3 for RGB).
func (_cabb *PdfColorDeviceRGB )GetNumComponents ()int {return 3};func (_dabd *pdfFontType0 )subsetRegistered ()error {_eged ,_cbff :=_dabd .DescendantFont ._gegb .(*pdfCIDFontType2 );if !_cbff {_gd .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",_dabd .DescendantFont );
return nil ;};if _eged ==nil {return nil ;};if _eged ._bgbdc ==nil {_gd .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 _dabd ._edfdd ==nil {_gd .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 ;};_cdcf ,_cbff :=_ac .GetStream (_eged ._bgbdc .FontFile2 );if !_cbff {_gd .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 _af .New ("\u0066\u006f\u006e\u0074fi\u006c\u0065\u0032\u0020\u006e\u006f\u0074\u0020\u0066\u006f\u0075\u006e\u0064");};_cebf ,_ecge :=_ac .DecodeStream (_cdcf );if _ecge !=nil {_gd .Log .Debug ("\u0044\u0065c\u006f\u0064\u0065 \u0065\u0072\u0072\u006f\u0072\u003a\u0020\u0025\u0076",_ecge );
return _ecge ;};_cagf ,_ecge :=_bd .Parse (_fd .NewReader (_cebf ));if _ecge !=nil {_gd .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 (_cdcf .Stream ));
return _ecge ;};var _dfddc []rune ;var _fgef *_bd .Font ;switch _dbfcg :=_dabd ._edfdd .(type ){case *_gf .TrueTypeFontEncoder :_dfddc =_dbfcg .RegisteredRunes ();_fgef ,_ecge =_cagf .SubsetKeepRunes (_dfddc );if _ecge !=nil {_gd .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_ecge );
return _ecge ;};_dbfcg .SubsetRegistered ();case *_gf .IdentityEncoder :_dfddc =_dbfcg .RegisteredRunes ();_abefe :=make ([]_bd .GlyphIndex ,len (_dfddc ));for _abca ,_afbg :=range _dfddc {_abefe [_abca ]=_bd .GlyphIndex (_afbg );};_fgef ,_ecge =_cagf .SubsetKeepIndices (_abefe );
if _ecge !=nil {_gd .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_ecge );return _ecge ;};case _gf .SimpleEncoder :_gdegc :=_dbfcg .Charcodes ();for _ ,_bged :=range _gdegc {_dffe ,_eagfb :=_dbfcg .CharcodeToRune (_bged );if !_eagfb {_gd .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",_bged );
continue ;};_dfddc =append (_dfddc ,_dffe );};default:return _d .Errorf ("\u0075\u006e\u0073\u0075\u0070\u0070\u006f\u0072\u0074\u0065\u0064\u0020\u0065\u006e\u0063\u006f\u0064\u0065\u0072\u0020\u0066\u006f\u0072\u0020s\u0075\u0062\u0073\u0065\u0074t\u0069\u006eg\u003a\u0020\u0025\u0054",_dabd ._edfdd );
};var _feag _fd .Buffer ;_ecge =_fgef .Write (&_feag );if _ecge !=nil {_gd .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_ecge );return _ecge ;};if _dabd ._acbbb !=nil {_abcb :=make (map[_eg .CharCode ]rune ,len (_dfddc ));for _ ,_dffd :=range _dfddc {_febb ,_bbcdgc :=_dabd ._edfdd .RuneToCharcode (_dffd );
if !_bbcdgc {continue ;};_abcb [_eg .CharCode (_febb )]=_dffd ;};_dabd ._acbbb =_eg .NewToUnicodeCMap (_abcb );};_cdcf ,_ecge =_ac .MakeStream (_feag .Bytes (),_ac .NewFlateEncoder ());if _ecge !=nil {_gd .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_ecge );
return _ecge ;};_cdcf .Set ("\u004ce\u006e\u0067\u0074\u0068\u0031",_ac .MakeInteger (int64 (_feag .Len ())));if _fcda ,_aacaf :=_ac .GetStream (_eged ._bgbdc .FontFile2 );_aacaf {*_fcda =*_cdcf ;}else {_eged ._bgbdc .FontFile2 =_cdcf ;};_bgddc :=_abgae ();
if len (_dabd ._abab )> 0{_dabd ._abab =_edcgd (_dabd ._abab ,_bgddc );};if len (_eged ._abab )> 0{_eged ._abab =_edcgd (_eged ._abab ,_bgddc );};if len (_dabd ._fgfd )> 0{_dabd ._fgfd =_edcgd (_dabd ._fgfd ,_bgddc );};if _eged ._bgbdc !=nil {_gcge ,_eefd :=_ac .GetName (_eged ._bgbdc .FontName );
if _eefd &&len (_gcge .String ())> 0{_agged :=_edcgd (_gcge .String (),_bgddc );_eged ._bgbdc .FontName =_ac .MakeName (_agged );};};return nil ;};
// NewPdfPage returns a new PDF page.
func NewPdfPage ()*PdfPage {_dbdfa :=PdfPage {};_dbdfa ._egcd =_ac .MakeDict ();_dbdfa .Resources =NewPdfPageResources ();_adgae :=_ac .PdfIndirectObject {};_adgae .PdfObject =_dbdfa ._egcd ;_dbdfa ._ffda =&_adgae ;_dbdfa ._cecfa =*_dbdfa ._egcd ;return &_dbdfa ;
};
// Outline represents a PDF outline dictionary (Table 152 - p. 376).
// Currently, the Outline object can only be used to construct PDF outlines.
type Outline struct{Entries []*OutlineItem `json:"entries,omitempty"`;};func _caae (_aacfe string )map[string ]string {_dfeab :=_bfcbg .Split (_aacfe ,-1);_aefade :=map[string ]string {};for _ ,_gaaca :=range _dfeab {_gegdc :=_bbbe .FindStringSubmatch (_gaaca );
if _gegdc ==nil {continue ;};_cabe ,_fbaac :=_gegdc [1],_gegdc [2];_aefade [_cabe ]=_fbaac ;};return _aefade ;};func _daedc (_adga *fontCommon )*pdfFontType3 {return &pdfFontType3 {fontCommon :*_adga }};
// SetForms sets the Acroform for a PDF file.
func (_gbacg *PdfWriter )SetForms (form *PdfAcroForm )error {_gbacg ._fggdf =form ;return nil };
// PdfShadingType3 is a Radial shading.
type PdfShadingType3 struct{*PdfShading ;Coords *_ac .PdfObjectArray ;Domain *_ac .PdfObjectArray ;Function []PdfFunction ;Extend *_ac .PdfObjectArray ;};func (_ffbc *PdfColorspaceSpecialPattern )String ()string {return "\u0050a\u0074\u0074\u0065\u0072\u006e";
};func (_dfagf *DSS )generateHashMap (_ffgd []*_ac .PdfObjectStream )(map[string ]*_ac .PdfObjectStream ,error ){_bfgg :=map[string ]*_ac .PdfObjectStream {};for _ ,_accc :=range _ffgd {_gaec ,_bcbd :=_ac .DecodeStream (_accc );if _bcbd !=nil {return nil ,_bcbd ;
};_dgfg ,_bcbd :=_gfgdad (_gaec );if _bcbd !=nil {return nil ,_bcbd ;};_bfgg [string (_dgfg )]=_accc ;};return _bfgg ,nil ;};func (_dcbc *PdfReader )newPdfAnnotationPopupFromDict (_bcde *_ac .PdfObjectDictionary )(*PdfAnnotationPopup ,error ){_aged :=PdfAnnotationPopup {};
_aged .Parent =_bcde .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");_aged .Open =_bcde .Get ("\u004f\u0070\u0065\u006e");return &_aged ,nil ;};
// SetVersion sets the PDF version of the output file.
func (_ecdceg *PdfWriter )SetVersion (majorVersion ,minorVersion int ){_ecdceg ._gdfdc .Major =majorVersion ;_ecdceg ._gdfdc .Minor =minorVersion ;};
// PdfAnnotationScreen represents Screen annotations.
// (Section 12.5.6.18).
type PdfAnnotationScreen struct{*PdfAnnotation ;T _ac .PdfObject ;MK _ac .PdfObject ;A _ac .PdfObject ;AA _ac .PdfObject ;};
// PdfColorspaceDeviceRGB represents an RGB colorspace.
type PdfColorspaceDeviceRGB struct{};
// ParserMetadata gets the parser metadata.
func (_bgcc *CompliancePdfReader )ParserMetadata ()_ac .ParserMetadata {if _bgcc ._gege ==(_ac .ParserMetadata {}){_bgcc ._gege ,_ =_bgcc ._eebeg .ParserMetadata ();};return _bgcc ._gege ;};
// GetNumComponents returns the number of color components of the colorspace device.
// Returns 3 for a Lab device.
func (_faceb *PdfColorspaceLab )GetNumComponents ()int {return 3};
// NewPdfColorspaceICCBased returns a new ICCBased colorspace object.
func NewPdfColorspaceICCBased (N int )(*PdfColorspaceICCBased ,error ){_dgad :=&PdfColorspaceICCBased {};if N !=1&&N !=3&&N !=4{return nil ,_d .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u004e\u0020\u0028\u0031/\u0033\u002f\u0034\u0029");
};_dgad .N =N ;return _dgad ,nil ;};
// NewPdfActionLaunch returns a new "launch" action.
func NewPdfActionLaunch ()*PdfActionLaunch {_fde :=NewPdfAction ();_egd :=&PdfActionLaunch {};_egd .PdfAction =_fde ;_fde .SetContext (_egd );return _egd ;};func (_fccf *PdfWriter )setDocInfo (_effef _ac .PdfObject ){if _fccf .hasObject (_fccf ._aefadb ){delete (_fccf ._agbff ,_fccf ._aefadb );
delete (_fccf ._ebade ,_fccf ._aefadb );for _fdeec ,_afddc :=range _fccf ._gdeaf {if _afddc ==_fccf ._aefadb {copy (_fccf ._gdeaf [_fdeec :],_fccf ._gdeaf [_fdeec +1:]);_fccf ._gdeaf [len (_fccf ._gdeaf )-1]=nil ;_fccf ._gdeaf =_fccf ._gdeaf [:len (_fccf ._gdeaf )-1];
break ;};};};_baegd :=_ac .PdfIndirectObject {};_baegd .PdfObject =_effef ;_fccf ._aefadb =&_baegd ;_fccf .addObject (&_baegd );};
// AddPage adds a page to the PDF file. The new page should be an indirect object.
func (_efaaa *PdfWriter )AddPage (page *PdfPage )error {const _faeb ="\u006d\u006f\u0064el\u003a\u0050\u0064\u0066\u0057\u0072\u0069\u0074\u0065\u0072\u002e\u0041\u0064\u0064\u0050\u0061\u0067\u0065";_gfbe (page );_gagbe :=page .ToPdfObject ();_gd .Log .Trace ("\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d");
_gd .Log .Trace ("\u0041p\u0070\u0065\u006e\u0064i\u006e\u0067\u0020\u0074\u006f \u0070a\u0067e\u0020\u006c\u0069\u0073\u0074\u0020\u0025T",_gagbe );_caef ,_ggffa :=_ac .GetIndirect (_gagbe );if !_ggffa {return _af .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");
};_gd .Log .Trace ("\u0025\u0073",_caef );_gd .Log .Trace ("\u0025\u0073",_caef .PdfObject );_ggdgg ,_ggffa :=_ac .GetDict (_caef .PdfObject );if !_ggffa {return _af .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");
};_bfagb ,_ggffa :=_ac .GetName (_ggdgg .Get ("\u0054\u0079\u0070\u0065"));if !_ggffa {return _d .Errorf ("\u0070\u0061\u0067\u0065\u0020\u0073\u0068\u006f\u0075\u006c\u0064\u0020\u0068\u0061\u0076\u0065\u0020\u0061\u0020\u0054y\u0070\u0065\u0020\u006b\u0065\u0079\u0020\u0077\u0069t\u0068\u0020\u0061\u0020\u0076\u0061\u006c\u0075\u0065\u0020\u006f\u0066\u0020t\u0079\u0070\u0065\u0020\u006e\u0061m\u0065\u0020\u0028%\u0054\u0029",_ggdgg .Get ("\u0054\u0079\u0070\u0065"));
};if _bfagb .String ()!="\u0050\u0061\u0067\u0065"{return _af .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");};_daacfe :=[]_ac .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"};
_bcdg ,_ggdcd :=_ac .GetIndirect (_ggdgg .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"));_gd .Log .Trace ("P\u0061g\u0065\u0020\u0050\u0061\u0072\u0065\u006e\u0074:\u0020\u0025\u0054\u0020(%\u0076\u0029",_ggdgg .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"),_ggdcd );
for _ggdcd {_gd .Log .Trace ("\u0050a\u0067e\u0020\u0050\u0061\u0072\u0065\u006e\u0074\u003a\u0020\u0025\u0054",_bcdg );_bdeb ,_cbeecg :=_ac .GetDict (_bcdg .PdfObject );if !_cbeecg {return _af .New ("i\u006e\u0076\u0061\u006cid\u0020P\u0061\u0072\u0065\u006e\u0074 \u006f\u0062\u006a\u0065\u0063\u0074");
};for _ ,_eagcc :=range _daacfe {_gd .Log .Trace ("\u0046\u0069\u0065\u006c\u0064\u0020\u0025\u0073",_eagcc );if _ggdgg .Get (_eagcc )!=nil {_gd .Log .Trace ("\u002d \u0070a\u0067\u0065\u0020\u0068\u0061s\u0020\u0061l\u0072\u0065\u0061\u0064\u0079");continue ;
};if _bbbee :=_bdeb .Get (_eagcc );_bbbee !=nil {_gd .Log .Trace ("\u0049\u006e\u0068\u0065ri\u0074\u0069\u006e\u0067\u0020\u0066\u0069\u0065\u006c\u0064\u0020\u0025\u0073",_eagcc );_ggdgg .Set (_eagcc ,_bbbee );};};_bcdg ,_ggdcd =_ac .GetIndirect (_bdeb .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"));
_gd .Log .Trace ("\u004ee\u0078t\u0020\u0070\u0061\u0072\u0065\u006e\u0074\u003a\u0020\u0025\u0054",_bdeb .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"));};_gd .Log .Trace ("\u0054\u0072\u0061\u0076\u0065\u0072\u0073\u0061\u006c \u0064\u006f\u006e\u0065");
_ggdgg .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_efaaa ._dagba );_caef .PdfObject =_ggdgg ;_dagdd ,_ggffa :=_ac .GetDict (_efaaa ._dagba .PdfObject );if !_ggffa {return _af .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");
};_gcbda ,_ggffa :=_ac .GetArray (_dagdd .Get ("\u004b\u0069\u0064\u0073"));if !_ggffa {return _af .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");
};_gcbda .Append (_caef );_efaaa ._gafba [_ggdgg ]=struct{}{};_fafcb ,_ggffa :=_ac .GetInt (_dagdd .Get ("\u0043\u006f\u0075n\u0074"));if !_ggffa {return _af .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");
};*_fafcb =*_fafcb +1;if page ._bcfff ==nil {_cfddc :=_cb .Track (_efaaa ._gafbg ,_faeb );if _cfddc !=nil {return _cfddc ;};}else {_bcccac :=_cb .Track (page ._bcfff ._cdgb ,_faeb );if _bcccac !=nil {return _bcccac ;};};_efaaa .addObject (_caef );_ddefcc :=_efaaa .addObjects (_ggdgg );
if _ddefcc !=nil {return _ddefcc ;};return nil ;};
// NewPdfActionGoToE returns a new "go to embedded" action.
func NewPdfActionGoToE ()*PdfActionGoToE {_eag :=NewPdfAction ();_ef :=&PdfActionGoToE {};_ef .PdfAction =_eag ;_eag .SetContext (_ef );return _ef ;};
// NewPdfAnnotationSquare returns a new square annotation.
func NewPdfAnnotationSquare ()*PdfAnnotationSquare {_acc :=NewPdfAnnotation ();_dde :=&PdfAnnotationSquare {};_dde .PdfAnnotation =_acc ;_dde .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_acc .SetContext (_dde );return _dde ;};func (_fdffe *PdfWriter )makeOffSetReference (_bfefg int64 ){_afaba :=_d .Sprintf ("\u0073\u0074\u0061\u0072\u0074\u0078\u0072\u0065\u0066\u000a\u0025\u0064\u000a",_bfefg );
_fdffe .writeString (_afaba );_fdffe .writeString ("\u0025\u0025\u0045\u004f\u0046\u000a");};
// GetOutlines returns a high-level Outline object, based on the outline tree
// of the reader.
func (_efab *PdfReader )GetOutlines ()(*Outline ,error ){if _efab ==nil {return nil ,_af .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");
};_aggdgg :=_efab .GetOutlineTree ();if _aggdgg ==nil {return nil ,_af .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 _faea func (_ecba *PdfOutlineTreeNode ,_acfg *[]*OutlineItem );_faea =func (_gddca *PdfOutlineTreeNode ,_dbdac *[]*OutlineItem ){if _gddca ==nil {return ;};if _gddca ._dagfd ==nil {_gd .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 _eeeef *OutlineItem ;if _effbf ,_cgadf :=_gddca ._dagfd .(*PdfOutlineItem );_cgadf {_cebfc :=_effbf .Dest ;if (_cebfc ==nil ||_ac .IsNullObject (_cebfc ))&&_effbf .A !=nil {if _cbabg ,_eadbb :=_ac .GetDict (_effbf .A );_eadbb {if _ecdfd ,_ebdgg :=_ac .GetArray (_cbabg .Get ("\u0044"));
_ebdgg {_cebfc =_ecdfd ;}else {_caadde ,_degbb :=_ac .GetString (_cbabg .Get ("\u0044"));if !_degbb {return ;};_defbf ,_degbb :=_efab ._bdfc .Get ("\u004e\u0061\u006de\u0073").(*_ac .PdfObjectReference );if !_degbb {return ;};_fadbg ,_bgaf :=_efab ._eebeg .LookupByReference (*_defbf );
if _bgaf !=nil {_gd .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",_bgaf .Error ());
return ;};_ceffa ,_degbb :=_fadbg .(*_ac .PdfIndirectObject );if !_degbb {return ;};_dgaa :=map[_ac .PdfObject ]struct{}{};_bgaf =_efab .buildNameNodes (_ceffa ,_dgaa );if _bgaf !=nil {_gd .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",_bgaf .Error ());
return ;};for _affaa :=range _dgaa {_gdcfa ,_cccgd :=_ac .GetDict (_affaa );if !_cccgd {continue ;};_aggf ,_cccgd :=_ac .GetArray (_gdcfa .Get ("\u004e\u0061\u006de\u0073"));if !_cccgd {continue ;};for _cffcb ,_agad :=range _aggf .Elements (){switch _agad .(type ){case *_ac .PdfObjectString :if _agad .String ()==_caadde .String (){if _aaeag :=_aggf .Get (_cffcb +1);
_aaeag !=nil {if _ccafd ,_ccecc :=_ac .GetDict (_aaeag );_ccecc {_cebfc =_ccafd .Get ("\u0044");break ;};};};};};};};};};var _aaeeg OutlineDest ;if _cebfc !=nil &&!_ac .IsNullObject (_cebfc ){if _ceccf ,_fcbbd :=_efgde (_cebfc ,_efab );_fcbbd ==nil {_aaeeg =*_ceccf ;
}else {_gd .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",_cebfc ,_fcbbd );
};};_eeeef =NewOutlineItem (_effbf .Title .Decoded (),_aaeeg );*_dbdac =append (*_dbdac ,_eeeef );if _effbf .Next !=nil {_faea (_effbf .Next ,_dbdac );};};if _gddca .First !=nil {if _eeeef !=nil {_dbdac =&_eeeef .Entries ;};_faea (_gddca .First ,_dbdac );
};};_beacf :=NewOutline ();_faea (_aggdgg ,&_beacf .Entries );return _beacf ,nil ;};func (_egacd *PdfReader )traverseObjectData (_degbba _ac .PdfObject )error {return _ac .ResolveReferencesDeep (_degbba ,_egacd ._cccb );};func (_afddf *PdfAcroForm )signatureFields ()[]*PdfFieldSignature {var _gfdg []*PdfFieldSignature ;
for _ ,_ebbce :=range _afddf .AllFields (){switch _feba :=_ebbce .GetContext ().(type ){case *PdfFieldSignature :_agdb :=_feba ;_gfdg =append (_gfdg ,_agdb );};};return _gfdg ;};func _bbdbc (_gebaf _ac .PdfObject )(*PdfFunctionType3 ,error ){_fbbab :=&PdfFunctionType3 {};
var _afcaa *_ac .PdfObjectDictionary ;if _gebde ,_cgaee :=_gebaf .(*_ac .PdfIndirectObject );_cgaee {_adbcb ,_fdccd :=_gebde .PdfObject .(*_ac .PdfObjectDictionary );if !_fdccd {return nil ,_af .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");
};_fbbab ._dcbab =_gebde ;_afcaa =_adbcb ;}else if _dbed ,_ffbab :=_gebaf .(*_ac .PdfObjectDictionary );_ffbab {_afcaa =_dbed ;}else {return nil ,_af .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_cbfe ,_dceee :=_ac .TraceToDirectObject (_afcaa .Get ("\u0044\u006f\u006d\u0061\u0069\u006e")).(*_ac .PdfObjectArray );
if !_dceee {_gd .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_af .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 _cbfe .Len ()!=2{_gd .Log .Error ("\u0044\u006f\u006d\u0061\u0069\u006e\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");return nil ,_af .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0064\u006f\u006da\u0069\u006e\u0020\u0072an\u0067\u0065");};_cgdbc ,_dfaee :=_cbfe .ToFloat64Array ();
if _dfaee !=nil {return nil ,_dfaee ;};_fbbab .Domain =_cgdbc ;_cbfe ,_dceee =_ac .TraceToDirectObject (_afcaa .Get ("\u0052\u0061\u006eg\u0065")).(*_ac .PdfObjectArray );if _dceee {if _cbfe .Len ()< 0||_cbfe .Len ()%2!=0{return nil ,_af .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0061\u006e\u0067\u0065");
};_fcbfg ,_addea :=_cbfe .ToFloat64Array ();if _addea !=nil {return nil ,_addea ;};_fbbab .Range =_fcbfg ;};_cbfe ,_dceee =_ac .TraceToDirectObject (_afcaa .Get ("\u0046u\u006e\u0063\u0074\u0069\u006f\u006es")).(*_ac .PdfObjectArray );if !_dceee {_gd .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 ,_af .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");};_fbbab .Functions =[]PdfFunction {};
for _ ,_ageea :=range _cbfe .Elements (){_ggdd ,_fcfad :=_gcddf (_ageea );if _fcfad !=nil {return nil ,_fcfad ;};_fbbab .Functions =append (_fbbab .Functions ,_ggdd );};_cbfe ,_dceee =_ac .TraceToDirectObject (_afcaa .Get ("\u0042\u006f\u0075\u006e\u0064\u0073")).(*_ac .PdfObjectArray );
if !_dceee {_gd .Log .Error ("B\u006fu\u006e\u0064\u0073\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_af .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");
};_gfcd ,_dfaee :=_cbfe .ToFloat64Array ();if _dfaee !=nil {return nil ,_dfaee ;};_fbbab .Bounds =_gfcd ;if len (_fbbab .Bounds )!=len (_fbbab .Functions )-1{_gd .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 (_fbbab .Bounds ),len (_fbbab .Functions ));
return nil ,_af .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_cbfe ,_dceee =_ac .TraceToDirectObject (_afcaa .Get ("\u0045\u006e\u0063\u006f\u0064\u0065")).(*_ac .PdfObjectArray );if !_dceee {_gd .Log .Error ("E\u006ec\u006f\u0064\u0065\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");
return nil ,_af .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");};_fadab ,_dfaee :=_cbfe .ToFloat64Array ();
if _dfaee !=nil {return nil ,_dfaee ;};_fbbab .Encode =_fadab ;if len (_fbbab .Encode )!=2*len (_fbbab .Functions ){_gd .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 (_fbbab .Encode ),len (_fbbab .Functions ));
return nil ,_af .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};return _fbbab ,nil ;};func (_fggg *PdfWriter )writeOutputIntents ()error {if len (_fggg ._adfggc )==0{return nil ;};_dacdc :=make ([]_ac .PdfObject ,len (_fggg ._adfggc ));
for _debbg ,_gbfad :=range _fggg ._adfggc {_ebcab :=_gbfad .ToPdfObject ();_dacdc [_debbg ]=_ac .MakeIndirectObject (_ebcab );};_deabf :=_ac .MakeIndirectObject (_ac .MakeArray (_dacdc ...));_fggg ._cgfegd .Set ("\u004f\u0075\u0074\u0070\u0075\u0074\u0049\u006e\u0074\u0065\u006e\u0074\u0073",_deabf );
if _eeaab :=_fggg .addObjects (_deabf );_eeaab !=nil {return _eeaab ;};return nil ;};
// ToPdfObject returns the PDF representation of the colorspace.
func (_cfad *PdfColorspaceSpecialPattern )ToPdfObject ()_ac .PdfObject {if _cfad .UnderlyingCS ==nil {return _ac .MakeName ("\u0050a\u0074\u0074\u0065\u0072\u006e");};_aedf :=_ac .MakeArray (_ac .MakeName ("\u0050a\u0074\u0074\u0065\u0072\u006e"));_aedf .Append (_cfad .UnderlyingCS .ToPdfObject ());
if _cfad ._gcdb !=nil {_cfad ._gcdb .PdfObject =_aedf ;return _cfad ._gcdb ;};return _aedf ;};
// NewPdfColorDeviceRGB returns a new PdfColorDeviceRGB based on the r,g,b component values.
func NewPdfColorDeviceRGB (r ,g ,b float64 )*PdfColorDeviceRGB {_gffc :=PdfColorDeviceRGB {r ,g ,b };return &_gffc ;};
// 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 (_afed *PdfFont )RunesToCharcodeBytes (data []rune )([]byte ,int ){var _gaecd []_gf .TextEncoder ;var _cadb _gf .CMapEncoder ;if _deed :=_afed .baseFields ()._acbbb ;_deed !=nil {_cadb =_gf .NewCMapEncoder ("",nil ,_deed );};_eeege :=_afed .Encoder ();
if _eeege !=nil {switch _gfdf :=_eeege .(type ){case _gf .SimpleEncoder :_gccdf :=_gfdf .BaseName ();if _ ,_ecgc :=_dddg [_gccdf ];_ecgc {_gaecd =append (_gaecd ,_eeege );};};};if len (_gaecd )==0{if _afed .baseFields ()._acbbb !=nil {_gaecd =append (_gaecd ,_cadb );
};if _eeege !=nil {_gaecd =append (_gaecd ,_eeege );};};var _edfb _fd .Buffer ;var _aebf int ;for _ ,_abgcg :=range data {var _gfdd bool ;for _ ,_aaca :=range _gaecd {if _cdaac :=_aaca .Encode (string (_abgcg ));len (_cdaac )> 0{_edfb .Write (_cdaac );
_gfdd =true ;break ;};};if !_gfdd {_gd .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",_abgcg );
_aebf ++;};};if _aebf !=0{_gd .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 ),_aebf ,_afed ,_gaecd );
};return _edfb .Bytes (),_aebf ;};
// ValidateSignatures validates digital signatures in the document.
func (_dcgfe *PdfReader )ValidateSignatures (handlers []SignatureHandler )([]SignatureValidationResult ,error ){if _dcgfe .AcroForm ==nil {return nil ,nil ;};if _dcgfe .AcroForm .Fields ==nil {return nil ,nil ;};type sigFieldPair struct{_gaea *PdfSignature ;
_efedb *PdfField ;_adfdb SignatureHandler ;};var _ccdab []*sigFieldPair ;for _ ,_ggefe :=range _dcgfe .AcroForm .AllFields (){if _ggefe .V ==nil {continue ;};if _edfcef ,_gbgb :=_ac .GetDict (_ggefe .V );_gbgb {if _eeed ,_bbdbaf :=_ac .GetNameVal (_edfcef .Get ("\u0054\u0079\u0070\u0065"));
_bbdbaf &&_eeed =="\u0053\u0069\u0067"{_cadae ,_agegg :=_ac .GetIndirect (_ggefe .V );if !_agegg {_gd .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 ;};_dbdbe ,_fadca :=_dcgfe .newPdfSignatureFromIndirect (_cadae );if _fadca !=nil {return nil ,_fadca ;};var _geggc SignatureHandler ;for _ ,_adacab :=range handlers {if _adacab .IsApplicable (_dbdbe ){_geggc =_adacab ;break ;};
};_ccdab =append (_ccdab ,&sigFieldPair {_gaea :_dbdbe ,_efedb :_ggefe ,_adfdb :_geggc });};};};var _efbef []SignatureValidationResult ;for _ ,_bdeeb :=range _ccdab {_edbag :=SignatureValidationResult {IsSigned :true ,Fields :[]*PdfField {_bdeeb ._efedb }};
if _bdeeb ._adfdb ==nil {_edbag .Errors =append (_edbag .Errors ,"\u0068a\u006ed\u006c\u0065\u0072\u0020\u006e\u006f\u0074\u0020\u0073\u0065\u0074");_efbef =append (_efbef ,_edbag );continue ;};_eeca ,_dfeegc :=_bdeeb ._adfdb .NewDigest (_bdeeb ._gaea );
if _dfeegc !=nil {_edbag .Errors =append (_edbag .Errors ,"\u0064\u0069\u0067e\u0073\u0074\u0020\u0065\u0072\u0072\u006f\u0072",_dfeegc .Error ());_efbef =append (_efbef ,_edbag );continue ;};_dabgf :=_bdeeb ._gaea .ByteRange ;if _dabgf ==nil {_edbag .Errors =append (_edbag .Errors ,"\u0042\u0079\u0074\u0065\u0052\u0061\u006e\u0067\u0065\u0020\u006e\u006ft\u0020\u0073\u0065\u0074");
_efbef =append (_efbef ,_edbag );continue ;};for _bafecg :=0;_bafecg < _dabgf .Len ();_bafecg =_bafecg +2{_gedab ,_ :=_ac .GetNumberAsInt64 (_dabgf .Get (_bafecg ));_cgfad ,_ :=_ac .GetIntVal (_dabgf .Get (_bafecg +1));if _ ,_adfc :=_dcgfe ._fafc .Seek (_gedab ,_adc .SeekStart );
_adfc !=nil {return nil ,_adfc ;};_aadf :=make ([]byte ,_cgfad );if _ ,_gfdc :=_dcgfe ._fafc .Read (_aadf );_gfdc !=nil {return nil ,_gfdc ;};_eeca .Write (_aadf );};var _afbbe SignatureValidationResult ;if _ebcdc ,_gfcf :=_bdeeb ._adfdb .(SignatureHandlerDocMDP );
_gfcf {_afbbe ,_dfeegc =_ebcdc .ValidateWithOpts (_bdeeb ._gaea ,_eeca ,SignatureHandlerDocMDPParams {Parser :_dcgfe ._eebeg });}else {_afbbe ,_dfeegc =_bdeeb ._adfdb .Validate (_bdeeb ._gaea ,_eeca );};if _dfeegc !=nil {_gd .Log .Debug ("E\u0052\u0052\u004f\u0052: \u0025v\u0020\u0028\u0025\u0054\u0029 \u002d\u0020\u0073\u006b\u0069\u0070",_dfeegc ,_bdeeb ._adfdb );
_afbbe .Errors =append (_afbbe .Errors ,_dfeegc .Error ());};_afbbe .Name =_bdeeb ._gaea .Name .Decoded ();_afbbe .Reason =_bdeeb ._gaea .Reason .Decoded ();if _bdeeb ._gaea .M !=nil {_eggfa ,_egbfd :=NewPdfDate (_bdeeb ._gaea .M .String ());if _egbfd !=nil {_gd .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_egbfd );
_afbbe .Errors =append (_afbbe .Errors ,_egbfd .Error ());continue ;};_afbbe .Date =_eggfa ;};_afbbe .ContactInfo =_bdeeb ._gaea .ContactInfo .Decoded ();_afbbe .Location =_bdeeb ._gaea .Location .Decoded ();_afbbe .Fields =_edbag .Fields ;_efbef =append (_efbef ,_afbbe );
};return _efbef ,nil ;};
// PdfWriter handles outputing PDF content.
type PdfWriter struct{_efcff *_ac .PdfIndirectObject ;_dagba *_ac .PdfIndirectObject ;_gafba map[_ac .PdfObject ]struct{};_gdeaf []_ac .PdfObject ;_agbff map[_ac .PdfObject ]struct{};_fdadd []*_ac .PdfIndirectObject ;_ddece *PdfOutlineTreeNode ;_cgfegd *_ac .PdfObjectDictionary ;
_gbgfd []_ac .PdfObject ;_aefadb *_ac .PdfIndirectObject ;_abad *_b .Writer ;_edabb int64 ;_adace error ;_bggef *_ac .PdfCrypt ;_bdedb *_ac .PdfObjectDictionary ;_ecgdb *_ac .PdfIndirectObject ;_bffaf *_ac .PdfObjectArray ;_gdfdc _ac .Version ;_fdfcfb *bool ;
_fage map[_ac .PdfObject ][]*_ac .PdfObjectDictionary ;_fggdf *PdfAcroForm ;_bddgd Optimizer ;_faega StandardApplier ;_ggbab map[int ]crossReference ;_deff int64 ;ObjNumOffset int ;_cfgc bool ;_febgg _ac .XrefTable ;_bcbcd int64 ;_gccgde int64 ;_dgbfe map[_ac .PdfObject ]int64 ;
_ebade map[_ac .PdfObject ]struct{};_gafbg string ;_adfggc []*PdfOutputIntent ;_ffdgb bool ;_becagg ,_bcefa string ;};
// Flags returns the field flags for the field accounting for any inherited flags.
func (_bfaa *PdfField )Flags ()FieldFlag {var _dcgc FieldFlag ;_fbdd ,_ggaf :=_bfaa .inherit (func (_bgabg *PdfField )bool {if _bgabg .Ff !=nil {_dcgc =FieldFlag (*_bgabg .Ff );return true ;};return false ;});if _ggaf !=nil {_gd .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",_ggaf );
};if !_fbdd {_gd .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 _dcgc ;};
// ToPdfObject converts colorspace to a PDF object. [/Indexed base hival lookup]
func (_gcdbg *PdfColorspaceSpecialIndexed )ToPdfObject ()_ac .PdfObject {_aagc :=_ac .MakeArray (_ac .MakeName ("\u0049n\u0064\u0065\u0078\u0065\u0064"));_aagc .Append (_gcdbg .Base .ToPdfObject ());_aagc .Append (_ac .MakeInteger (int64 (_gcdbg .HiVal )));
_aagc .Append (_gcdbg .Lookup );if _gcdbg ._dbeed !=nil {_gcdbg ._dbeed .PdfObject =_aagc ;return _gcdbg ._dbeed ;};return _aagc ;};
// Encoder returns the font's text encoder.
func (_fdgba *pdfFontSimple )Encoder ()_gf .TextEncoder {if _fdgba ._caed !=nil {return _fdgba ._caed ;};if _fdgba ._abbba !=nil {return _fdgba ._abbba ;};_cdaeb ,_ :=_gf .NewSimpleTextEncoder ("\u0053\u0074a\u006e\u0064\u0061r\u0064\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",nil );
return _cdaeb ;};
// Width returns the width of `rect`.
func (_aaagb *PdfRectangle )Width ()float64 {return _da .Abs (_aaagb .Urx -_aaagb .Llx )};
// ToPdfObject returns a stream object.
func (_dgdec *XObjectImage )ToPdfObject ()_ac .PdfObject {_gfef :=_dgdec ._gfbdff ;_ffaag :=_gfef .PdfObjectDictionary ;if _dgdec .Filter !=nil {_ffaag =_dgdec .Filter .MakeStreamDict ();_gfef .PdfObjectDictionary =_ffaag ;};_ffaag .Set ("\u0054\u0079\u0070\u0065",_ac .MakeName ("\u0058O\u0062\u006a\u0065\u0063\u0074"));
_ffaag .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ac .MakeName ("\u0049\u006d\u0061g\u0065"));_ffaag .Set ("\u0057\u0069\u0064t\u0068",_ac .MakeInteger (*(_dgdec .Width )));_ffaag .Set ("\u0048\u0065\u0069\u0067\u0068\u0074",_ac .MakeInteger (*(_dgdec .Height )));
if _dgdec .BitsPerComponent !=nil {_ffaag .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_ac .MakeInteger (*(_dgdec .BitsPerComponent )));};if _dgdec .ColorSpace !=nil {_ffaag .SetIfNotNil ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065",_dgdec .ColorSpace .ToPdfObject ());
};_ffaag .SetIfNotNil ("\u0049\u006e\u0074\u0065\u006e\u0074",_dgdec .Intent );_ffaag .SetIfNotNil ("\u0049m\u0061\u0067\u0065\u004d\u0061\u0073k",_dgdec .ImageMask );_ffaag .SetIfNotNil ("\u004d\u0061\u0073\u006b",_dgdec .Mask );_eegcba :=_ffaag .Get ("\u0044\u0065\u0063\u006f\u0064\u0065")!=nil ;
if _dgdec .Decode ==nil &&_eegcba {_ffaag .Remove ("\u0044\u0065\u0063\u006f\u0064\u0065");}else if _dgdec .Decode !=nil {_ffaag .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_dgdec .Decode );};_ffaag .SetIfNotNil ("I\u006e\u0074\u0065\u0072\u0070\u006f\u006c\u0061\u0074\u0065",_dgdec .Interpolate );
_ffaag .SetIfNotNil ("\u0041\u006c\u0074e\u0072\u006e\u0061\u0074\u0069\u0076\u0065\u0073",_dgdec .Alternatives );_ffaag .SetIfNotNil ("\u0053\u004d\u0061s\u006b",_dgdec .SMask );_ffaag .SetIfNotNil ("S\u004d\u0061\u0073\u006b\u0049\u006e\u0044\u0061\u0074\u0061",_dgdec .SMaskInData );
_ffaag .SetIfNotNil ("\u004d\u0061\u0074t\u0065",_dgdec .Matte );_ffaag .SetIfNotNil ("\u004e\u0061\u006d\u0065",_dgdec .Name );_ffaag .SetIfNotNil ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074",_dgdec .StructParent );_ffaag .SetIfNotNil ("\u0049\u0044",_dgdec .ID );
_ffaag .SetIfNotNil ("\u004f\u0050\u0049",_dgdec .OPI );_ffaag .SetIfNotNil ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061",_dgdec .Metadata );_ffaag .SetIfNotNil ("\u004f\u0043",_dgdec .OC );_ffaag .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_ac .MakeInteger (int64 (len (_dgdec .Stream ))));
_gfef .Stream =_dgdec .Stream ;return _gfef ;};
// PdfActionGoToE represents a GoToE action.
type PdfActionGoToE struct{*PdfAction ;F *PdfFilespec ;D _ac .PdfObject ;NewWindow _ac .PdfObject ;T _ac .PdfObject ;};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););
// ToPdfObject implements interface PdfModel.
func (_eea *PdfActionResetForm )ToPdfObject ()_ac .PdfObject {_eea .PdfAction .ToPdfObject ();_cac :=_eea ._eef ;_gde :=_cac .PdfObject .(*_ac .PdfObjectDictionary );_gde .SetIfNotNil ("\u0053",_ac .MakeName (string (ActionTypeResetForm )));_gde .SetIfNotNil ("\u0046\u0069\u0065\u006c\u0064\u0073",_eea .Fields );
_gde .SetIfNotNil ("\u0046\u006c\u0061g\u0073",_eea .Flags );return _cac ;};
// NewPdfColorCalGray returns a new CalGray color.
func NewPdfColorCalGray (grayVal float64 )*PdfColorCalGray {_cade :=PdfColorCalGray (grayVal );return &_cade ;};
// NewPdfShadingPatternType2 creates an empty shading pattern type 2 object.
func NewPdfShadingPatternType2 ()*PdfShadingPatternType2 {_afgd :=&PdfShadingPatternType2 {};_afgd .Matrix =_ac .MakeArrayFromIntegers ([]int {1,0,0,1,0,0});_afgd .PdfPattern =&PdfPattern {};_afgd .PdfPattern .PatternType =int64 (*_ac .MakeInteger (2));
_afgd .PdfPattern ._bfcc =_afgd ;_afgd .PdfPattern ._fddfb =_ac .MakeIndirectObject (_ac .MakeDict ());return _afgd ;};func (_afad *PdfAcroForm )fillImageWithAppearance (_fgabf FieldImageProvider ,_aeagf FieldAppearanceGenerator )error {if _afad ==nil {return nil ;
};_fdabc ,_agfea :=_fgabf .FieldImageValues ();if _agfea !=nil {return _agfea ;};for _ ,_cdagb :=range _afad .AllFields (){_gaecdg :=_cdagb .PartialName ();_cceaf ,_cdfca :=_fdabc [_gaecdg ];if !_cdfca {if _gcfe ,_aegf :=_cdagb .FullName ();_aegf ==nil {_cceaf ,_cdfca =_fdabc [_gcfe ];
};};if !_cdfca {_gd .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",_gaecdg );
continue ;};switch _eefag :=_cdagb .GetContext ().(type ){case *PdfFieldButton :if _eefag .IsPush (){_eefag .SetFillImage (_cceaf );};};if _aeagf ==nil {continue ;};for _ ,_bcca :=range _cdagb .Annotations {_dagfa ,_dbdga :=_aeagf .GenerateAppearanceDict (_afad ,_cdagb ,_bcca );
if _dbdga !=nil {return _dbdga ;};_bcca .AP =_dagfa ;_bcca .ToPdfObject ();};};return nil ;};
// AddCustomInfo adds a custom info into document info dictionary.
func (_gdea *PdfInfo )AddCustomInfo (name string ,value string )error {if _gdea ._ggfb ==nil {_gdea ._ggfb =_ac .MakeDict ();};if _ ,_fbgb :=_degc [name ];_fbgb {return _d .Errorf ("\u0063\u0061\u006e\u006e\u006ft\u0020\u0075\u0073\u0065\u0020\u0073\u0074\u0061\u006e\u0064\u0061\u0072\u0064 \u0069\u006e\u0066\u006f\u0020\u006b\u0065\u0079\u0020\u0025\u0073\u0020\u0061\u0073\u0020\u0063\u0075\u0073\u0074\u006f\u006d\u0020\u0066\u0069\u0065\u006c\u0064\u0020\u006b\u0065y",name );
};_gdea ._ggfb .SetIfNotNil (*_ac .MakeName (name ),_ac .MakeString (value ));return nil ;};
// NewPdfColorspaceDeviceN returns an initialized PdfColorspaceDeviceN.
func NewPdfColorspaceDeviceN ()*PdfColorspaceDeviceN {_egbc :=&PdfColorspaceDeviceN {};return _egbc };
// GetNumComponents returns the number of color components (1 for grayscale).
func (_gfbgg *PdfColorDeviceGray )GetNumComponents ()int {return 1};
// GetContainingPdfObject implements interface PdfModel.
func (_dbec *PdfAnnotation )GetContainingPdfObject ()_ac .PdfObject {return _dbec ._fegd };
// GetRuneMetrics returns the character metrics for the specified rune.
// A bool flag is returned to indicate whether or not the entry was found.
func (_cefc pdfCIDFontType0 )GetRuneMetrics (r rune )(_fda .CharMetrics ,bool ){return _fda .CharMetrics {Wx :_cefc ._fggf },true ;};
// 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 (_bdaad int ,_gdbgf *PdfPage )error ;
// 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 (_gdbgg *PdfReader )FlattenFieldsWithOpts (appgen FieldAppearanceGenerator ,opts *FieldFlattenOpts )error {return _gdbgg .flattenFieldsWithOpts (false ,appgen ,opts );};
// WriteToFile writes the Appender output to file specified by path.
func (_cggd *PdfAppender )WriteToFile (outputPath string )error {_defa ,_caba :=_cef .Create (outputPath );if _caba !=nil {return _caba ;};defer _defa .Close ();return _cggd .Write (_defa );};
// NewPdfAnnotationPolygon returns a new polygon annotation.
func NewPdfAnnotationPolygon ()*PdfAnnotationPolygon {_bcd :=NewPdfAnnotation ();_efaa :=&PdfAnnotationPolygon {};_efaa .PdfAnnotation =_bcd ;_efaa .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_bcd .SetContext (_efaa );return _efaa ;};func _deee (_gegd _ac .PdfObject )(*PdfBorderStyle ,error ){_dec :=&PdfBorderStyle {};
_dec ._gcc =_gegd ;var _fbccc *_ac .PdfObjectDictionary ;_gegd =_ac .TraceToDirectObject (_gegd );_fbccc ,_caeg :=_gegd .(*_ac .PdfObjectDictionary );if !_caeg {return nil ,_af .New ("\u0074\u0079\u0070\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};if _bge :=_fbccc .Get ("\u0054\u0079\u0070\u0065");
_bge !=nil {_ddad ,_cfeg :=_bge .(*_ac .PdfObjectName );if !_cfeg {_gd .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",_bge );
}else {if *_ddad !="\u0042\u006f\u0072\u0064\u0065\u0072"{_gd .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",*_ddad );};};};if _agfb :=_fbccc .Get ("\u0057");
_agfb !=nil {_caeee ,_add :=_ac .GetNumberAsFloat (_agfb );if _add !=nil {_gd .Log .Debug ("\u0045\u0072\u0072\u006fr \u0072\u0065\u0074\u0072\u0069\u0065\u0076\u0069\u006e\u0067\u0020\u0057\u003a\u0020%\u0076",_add );return nil ,_add ;};_dec .W =&_caeee ;
};if _ecad :=_fbccc .Get ("\u0053");_ecad !=nil {_fbfg ,_adbg :=_ecad .(*_ac .PdfObjectName );if !_adbg {return nil ,_af .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 _bgcf BorderStyle ;switch *_fbfg {case "\u0053":_bgcf =BorderStyleSolid ;case "\u0044":_bgcf =BorderStyleDashed ;case "\u0042":_bgcf =BorderStyleBeveled ;case "\u0049":_bgcf =BorderStyleInset ;case "\u0055":_bgcf =BorderStyleUnderline ;default:_gd .Log .Debug ("I\u006e\u0076\u0061\u006cid\u0020s\u0074\u0079\u006c\u0065\u0020n\u0061\u006d\u0065\u0020\u0025\u0073",*_fbfg );
return nil ,_af .New ("\u0073\u0074\u0079\u006ce \u0074\u0079\u0070\u0065\u0020\u0072\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065c\u006b");};_dec .S =&_bgcf ;};if _febe :=_fbccc .Get ("\u0044");_febe !=nil {_bgec ,_cfge :=_febe .(*_ac .PdfObjectArray );
if !_cfge {_gd .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",_febe );return nil ,_af .New ("\u0062o\u0072\u0064\u0065\u0072 \u0044\u0020\u0074\u0079\u0070e\u0020c\u0068e\u0063\u006b\u0020\u0065\u0072\u0072\u006fr");
};_eggf ,_cge :=_bgec .ToIntegerArray ();if _cge !=nil {_gd .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",_cge );
return nil ,_cge ;};_dec .D =&_eggf ;};return _dec ,nil ;};func _abdfg (_abcef *_ac .PdfObjectDictionary )bool {for _ ,_fedag :=range _abcef .Keys (){if _ ,_bebe :=_fead [_fedag .String ()];_bebe {return true ;};};return false ;};
// WriteToFile writes the output PDF to file.
func (_cgab *PdfWriter )WriteToFile (outputFilePath string )error {_gaaff ,_eaced :=_cef .Create (outputFilePath );if _eaced !=nil {return _eaced ;};defer _gaaff .Close ();return _cgab .Write (_gaaff );};type pdfFontSimple struct{fontCommon ;_bbff *_ac .PdfIndirectObject ;
_bdaga map[_gf .CharCode ]float64 ;_caed _gf .TextEncoder ;_abbba _gf .TextEncoder ;_ffbea *PdfFontDescriptor ;
// Encoding is subject to limitations that are described in 9.6.6, "Character Encoding".
// BaseFont is derived differently.
FirstChar _ac .PdfObject ;LastChar _ac .PdfObject ;Widths _ac .PdfObject ;Encoding _ac .PdfObject ;_gbbfd *_fda .RuneCharSafeMap ;};
// ImageToRGB converts Lab colorspace image to RGB and returns the result.
func (_cded *PdfColorspaceLab )ImageToRGB (img Image )(Image ,error ){_gcff :=func (_ceffd float64 )float64 {if _ceffd >=6.0/29{return _ceffd *_ceffd *_ceffd ;};return 108.0/841*(_ceffd -4.0/29.0);};_caegc :=img ._gffd ;if len (_caegc )!=6{_gd .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");
_caegc =_cded .DecodeArray ();};_dbag :=_cg .NewReader (img .getBase ());_eagg :=_ed .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),3,nil ,img ._ebga ,img ._gffd );_aeed :=_cg .NewWriter (_eagg );_ebbd :=_da .Pow (2,float64 (img .BitsPerComponent ))-1;
_dfga :=make ([]uint32 ,3);var (_efedg error ;Ls ,As ,Bs ,L ,M ,N ,X ,Y ,Z ,_bageb ,_bggc ,_gca float64 ;);for {_efedg =_dbag .ReadSamples (_dfga );if _efedg ==_adc .EOF {break ;}else if _efedg !=nil {return img ,_efedg ;};Ls =float64 (_dfga [0])/_ebbd ;
As =float64 (_dfga [1])/_ebbd ;Bs =float64 (_dfga [2])/_ebbd ;Ls =_ed .LinearInterpolate (Ls ,0.0,1.0,_caegc [0],_caegc [1]);As =_ed .LinearInterpolate (As ,0.0,1.0,_caegc [2],_caegc [3]);Bs =_ed .LinearInterpolate (Bs ,0.0,1.0,_caegc [4],_caegc [5]);L =(Ls +16)/116+As /500;
M =(Ls +16)/116;N =(Ls +16)/116-Bs /200;X =_cded .WhitePoint [0]*_gcff (L );Y =_cded .WhitePoint [1]*_gcff (M );Z =_cded .WhitePoint [2]*_gcff (N );_bageb =3.240479*X +-1.537150*Y +-0.498535*Z ;_bggc =-0.969256*X +1.875992*Y +0.041556*Z ;_gca =0.055648*X +-0.204043*Y +1.057311*Z ;
_bageb =_da .Min (_da .Max (_bageb ,0),1.0);_bggc =_da .Min (_da .Max (_bggc ,0),1.0);_gca =_da .Min (_da .Max (_gca ,0),1.0);_dfga [0]=uint32 (_bageb *_ebbd );_dfga [1]=uint32 (_bggc *_ebbd );_dfga [2]=uint32 (_gca *_ebbd );if _efedg =_aeed .WriteSamples (_dfga );
_efedg !=nil {return img ,_efedg ;};};return _affb (&_eagg ),nil ;};
// NewPdfPageResources returns a new PdfPageResources object.
func NewPdfPageResources ()*PdfPageResources {_fggbf :=&PdfPageResources {};_fggbf ._ccggg =_ac .MakeDict ();return _fggbf ;};func _cagd ()_e .Time {_gcaaba .Lock ();defer _gcaaba .Unlock ();return _cdacg };func (_gbg *PdfReader )newPdfAnnotation3DFromDict (_adcd *_ac .PdfObjectDictionary )(*PdfAnnotation3D ,error ){_abcf :=PdfAnnotation3D {};
_abcf .T3DD =_adcd .Get ("\u0033\u0044\u0044");_abcf .T3DV =_adcd .Get ("\u0033\u0044\u0056");_abcf .T3DA =_adcd .Get ("\u0033\u0044\u0041");_abcf .T3DI =_adcd .Get ("\u0033\u0044\u0049");_abcf .T3DB =_adcd .Get ("\u0033\u0044\u0042");return &_abcf ,nil ;
};
// ToPdfObject converts the font to a PDF representation.
func (_agab *pdfFontType3 )ToPdfObject ()_ac .PdfObject {if _agab ._bbba ==nil {_agab ._bbba =&_ac .PdfIndirectObject {};};_fbfdg :=_agab .baseFields ().asPdfObjectDictionary ("\u0054\u0079\u0070e\u0033");_agab ._bbba .PdfObject =_fbfdg ;if _agab .FirstChar !=nil {_fbfdg .Set ("\u0046i\u0072\u0073\u0074\u0043\u0068\u0061r",_agab .FirstChar );
};if _agab .LastChar !=nil {_fbfdg .Set ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072",_agab .LastChar );};if _agab .Widths !=nil {_fbfdg .Set ("\u0057\u0069\u0064\u0074\u0068\u0073",_agab .Widths );};if _agab .Encoding !=nil {_fbfdg .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_agab .Encoding );
}else if _agab ._ebcbd !=nil {_begcg :=_agab ._ebcbd .ToPdfObject ();if _begcg !=nil {_fbfdg .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_begcg );};};if _agab .FontBBox !=nil {_fbfdg .Set ("\u0046\u006f\u006e\u0074\u0042\u0042\u006f\u0078",_agab .FontBBox );
};if _agab .FontMatrix !=nil {_fbfdg .Set ("\u0046\u006f\u006e\u0074\u004d\u0061\u0074\u0069\u0072\u0078",_agab .FontMatrix );};if _agab .CharProcs !=nil {_fbfdg .Set ("\u0043h\u0061\u0072\u0050\u0072\u006f\u0063s",_agab .CharProcs );};if _agab .Resources !=nil {_fbfdg .Set ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s",_agab .Resources );
};return _agab ._bbba ;};
// PdfActionGoTo3DView represents a GoTo3DView action.
type PdfActionGoTo3DView struct{*PdfAction ;TA _ac .PdfObject ;V _ac .PdfObject ;};type pdfCIDFontType2 struct{fontCommon ;_dabfe *_ac .PdfIndirectObject ;_cdgg _gf .TextEncoder ;
// Table 117 Entries in a CIDFont dictionary (page 269)
// Dictionary that defines the character collection of the CIDFont (required).
// See Table 116.
CIDSystemInfo *_ac .PdfObjectDictionary ;
// Glyph metrics fields (optional).
DW _ac .PdfObject ;W _ac .PdfObject ;DW2 _ac .PdfObject ;W2 _ac .PdfObject ;
// CIDs to glyph indices mapping (optional).
CIDToGIDMap _ac .PdfObject ;_faab map[_gf .CharCode ]float64 ;_ffcf float64 ;_adef map[rune ]int ;};
// 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{_gfed *_ac .PdfIndirectObject ;Certs []*_ac .PdfObjectStream ;OCSPs []*_ac .PdfObjectStream ;CRLs []*_ac .PdfObjectStream ;VRI map[string ]*VRI ;_fegf map[string ]*_ac .PdfObjectStream ;_edag map[string ]*_ac .PdfObjectStream ;_gdbfa map[string ]*_ac .PdfObjectStream ;
};
// NewPdfAnnotationLink returns a new link annotation.
func NewPdfAnnotationLink ()*PdfAnnotationLink {_bbe :=NewPdfAnnotation ();_efa :=&PdfAnnotationLink {};_efa .PdfAnnotation =_bbe ;_bbe .SetContext (_efa );return _efa ;};
// SetContext sets the sub action (context).
func (_dcd *PdfAction )SetContext (ctx PdfModel ){_dcd ._gc =ctx };
// Evaluate runs the function on the passed in slice and returns the results.
func (_ggga *PdfFunctionType2 )Evaluate (x []float64 )([]float64 ,error ){if len (x )!=1{_gd .Log .Error ("\u004f\u006e\u006c\u0079 o\u006e\u0065\u0020\u0069\u006e\u0070\u0075\u0074\u0020\u0061\u006c\u006c\u006f\u0077e\u0064");return nil ,_af .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");
};_bbgac :=[]float64 {0.0};if _ggga .C0 !=nil {_bbgac =_ggga .C0 ;};_cgaab :=[]float64 {1.0};if _ggga .C1 !=nil {_cgaab =_ggga .C1 ;};var _efcg []float64 ;for _gbeg :=0;_gbeg < len (_bbgac );_gbeg ++{_ccgfg :=_bbgac [_gbeg ]+_da .Pow (x [0],_ggga .N )*(_cgaab [_gbeg ]-_bbgac [_gbeg ]);
_efcg =append (_efcg ,_ccgfg );};return _efcg ,nil ;};
// 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 *_ac .PdfObjectInteger ;ColorSpace PdfColorspace ;Background *_ac .PdfObjectArray ;BBox *PdfRectangle ;AntiAlias *_ac .PdfObjectBool ;_bfga PdfModel ;_dffbg _ac .PdfObject ;};
// GetCharMetrics returns the char metrics for character code `code`.
func (_gebgg pdfCIDFontType2 )GetCharMetrics (code _gf .CharCode )(_fda .CharMetrics ,bool ){if _dfege ,_defe :=_gebgg ._faab [code ];_defe {return _fda .CharMetrics {Wx :_dfege },true ;};_acafe :=rune (code );_efdaf ,_fbage :=_gebgg ._adef [_acafe ];if !_fbage {_efdaf =int (_gebgg ._ffcf );
};return _fda .CharMetrics {Wx :float64 (_efdaf )},true ;};
// B returns the value of the B component of the color.
func (_fea *PdfColorLab )B ()float64 {return _fea [2]};
// ToInteger convert to an integer format.
func (_eecb *PdfColorCalGray )ToInteger (bits int )uint32 {_cgag :=_da .Pow (2,float64 (bits ))-1;return uint32 (_cgag *_eecb .Val ());};func (_aede *PdfReader )newPdfActionSubmitFormFromDict (_cdf *_ac .PdfObjectDictionary )(*PdfActionSubmitForm ,error ){_gefe ,_cee :=_caec (_cdf .Get ("\u0046"));
if _cee !=nil {return nil ,_cee ;};return &PdfActionSubmitForm {F :_gefe ,Fields :_cdf .Get ("\u0046\u0069\u0065\u006c\u0064\u0073"),Flags :_cdf .Get ("\u0046\u006c\u0061g\u0073")},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 *_ac .PdfObjectArray ;ExtGState _ac .PdfObject ;};
// 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 _adc .ReadSeeker )(*PdfFont ,error ){const _egab =_gf .CharCode (32);const _dcfc =_gf .CharCode (255);_acdbg ,_dbada :=_ea .ReadAll (r );if _dbada !=nil {_gd .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",_dbada );
return nil ,_dbada ;};_fgcd ,_dbada :=_fda .TtfParse (_fd .NewReader (_acdbg ));if _dbada !=nil {_gd .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",_dbada );
return nil ,_dbada ;};_cegc :=&pdfFontSimple {_bdaga :make (map[_gf .CharCode ]float64 ),fontCommon :fontCommon {_efebg :"\u0054\u0072\u0075\u0065\u0054\u0079\u0070\u0065"}};_cegc ._caed =_gf .NewWinAnsiEncoder ();_cegc ._abab =_fgcd .PostScriptName ;_cegc .FirstChar =_ac .MakeInteger (int64 (_egab ));
_cegc .LastChar =_ac .MakeInteger (int64 (_dcfc ));_cgbbg :=1000.0/float64 (_fgcd .UnitsPerEm );if len (_fgcd .Widths )<=0{return nil ,_af .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");
};_ffbd :=_cgbbg *float64 (_fgcd .Widths [0]);_fffde :=make ([]float64 ,0,_dcfc -_egab +1);for _aeded :=_egab ;_aeded <=_dcfc ;_aeded ++{_gdcf ,_bfca :=_cegc .Encoder ().CharcodeToRune (_aeded );if !_bfca {_gd .Log .Debug ("\u0052u\u006e\u0065\u0020\u006eo\u0074\u0020\u0066\u006f\u0075n\u0064 \u0028c\u006f\u0064\u0065\u003a\u0020\u0025\u0064)",_aeded );
_fffde =append (_fffde ,_ffbd );continue ;};_cgdca ,_eagfc :=_fgcd .Chars [_gdcf ];if !_eagfc {_gd .Log .Debug ("R\u0075\u006e\u0065\u0020no\u0074 \u0069\u006e\u0020\u0054\u0054F\u0020\u0043\u0068\u0061\u0072\u0073");_fffde =append (_fffde ,_ffbd );continue ;
};_edaac :=_cgbbg *float64 (_fgcd .Widths [_cgdca ]);_fffde =append (_fffde ,_edaac );};_cegc .Widths =_ac .MakeIndirectObject (_ac .MakeArrayFromFloats (_fffde ));if len (_fffde )< int (_dcfc -_egab +1){_gd .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 (_fffde ),255-32+1);
return nil ,_ac .ErrRangeError ;};for _gggfa :=_egab ;_gggfa <=_dcfc ;_gggfa ++{_cegc ._bdaga [_gggfa ]=_fffde [_gggfa -_egab ];};_cegc .Encoding =_ac .MakeName ("\u0057i\u006eA\u006e\u0073\u0069\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067");_bdaf :=&PdfFontDescriptor {};
_bdaf .FontName =_ac .MakeName (_fgcd .PostScriptName );_bdaf .Ascent =_ac .MakeFloat (_cgbbg *float64 (_fgcd .TypoAscender ));_bdaf .Descent =_ac .MakeFloat (_cgbbg *float64 (_fgcd .TypoDescender ));_bdaf .CapHeight =_ac .MakeFloat (_cgbbg *float64 (_fgcd .CapHeight ));
_bdaf .FontBBox =_ac .MakeArrayFromFloats ([]float64 {_cgbbg *float64 (_fgcd .Xmin ),_cgbbg *float64 (_fgcd .Ymin ),_cgbbg *float64 (_fgcd .Xmax ),_cgbbg *float64 (_fgcd .Ymax )});_bdaf .ItalicAngle =_ac .MakeFloat (_fgcd .ItalicAngle );_bdaf .MissingWidth =_ac .MakeFloat (_cgbbg *float64 (_fgcd .Widths [0]));
_eecca ,_dbada :=_ac .MakeStream (_acdbg ,_ac .NewFlateEncoder ());if _dbada !=nil {_gd .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",_dbada );
return nil ,_dbada ;};_eecca .PdfObjectDictionary .Set ("\u004ce\u006e\u0067\u0074\u0068\u0031",_ac .MakeInteger (int64 (len (_acdbg ))));_bdaf .FontFile2 =_eecca ;if _fgcd .Bold {_bdaf .StemV =_ac .MakeInteger (120);}else {_bdaf .StemV =_ac .MakeInteger (70);
};_cefaa :=_dedda ;if _fgcd .IsFixedPitch {_cefaa |=_beacg ;};if _fgcd .ItalicAngle !=0{_cefaa |=_cebda ;};_bdaf .Flags =_ac .MakeInteger (int64 (_cefaa ));_cegc ._bgbdc =_bdaf ;_adbce :=&PdfFont {_gegb :_cegc };return _adbce ,nil ;};func (_abfg *PdfReader )newPdfAnnotationRedactFromDict (_eccb *_ac .PdfObjectDictionary )(*PdfAnnotationRedact ,error ){_bcf :=PdfAnnotationRedact {};
_ecdd ,_cefd :=_abfg .newPdfAnnotationMarkupFromDict (_eccb );if _cefd !=nil {return nil ,_cefd ;};_bcf .PdfAnnotationMarkup =_ecdd ;_bcf .QuadPoints =_eccb .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");_bcf .IC =_eccb .Get ("\u0049\u0043");
_bcf .RO =_eccb .Get ("\u0052\u004f");_bcf .OverlayText =_eccb .Get ("O\u0076\u0065\u0072\u006c\u0061\u0079\u0054\u0065\u0078\u0074");_bcf .Repeat =_eccb .Get ("\u0052\u0065\u0070\u0065\u0061\u0074");_bcf .DA =_eccb .Get ("\u0044\u0041");_bcf .Q =_eccb .Get ("\u0051");
return &_bcf ,nil ;};
// ToPdfObject implements interface PdfModel.
func (_gab *PdfActionImportData )ToPdfObject ()_ac .PdfObject {_gab .PdfAction .ToPdfObject ();_bef :=_gab ._eef ;_fcea :=_bef .PdfObject .(*_ac .PdfObjectDictionary );_fcea .SetIfNotNil ("\u0053",_ac .MakeName (string (ActionTypeImportData )));if _gab .F !=nil {_fcea .Set ("\u0046",_gab .F .ToPdfObject ());
};return _bef ;};
// GetNumComponents returns the number of color components of the colorspace device.
// Returns 4 for a CMYK32 device.
func (_aceb *PdfColorspaceDeviceCMYK )GetNumComponents ()int {return 4};
// 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 ,*_cef .File ,error ){const _beaga ="\u006d\u006f\u0064\u0065\u006c\u003a\u004e\u0065\u0077\u0050\u0064f\u0052\u0065\u0061\u0064\u0065\u0072\u0046\u0072\u006f\u006dF\u0069\u006c\u0065";
_abggb ,_eabec :=_cef .Open (pdfFile );if _eabec !=nil {return nil ,nil ,_eabec ;};_dfeeg ,_eabec :=_gaada (_abggb ,opts ,true ,_beaga );if _eabec !=nil {_abggb .Close ();return nil ,nil ,_eabec ;};return _dfeeg ,_abggb ,nil ;};func (_agbae *PdfWriter )adjustXRefAffectedVersion (_geeaa bool ){if _geeaa &&_agbae ._gdfdc .Major ==1&&_agbae ._gdfdc .Minor < 5{_agbae ._gdfdc .Minor =5;
};};
// ToPdfOutline returns a low level PdfOutline object, based on the current
// instance.
func (_gbbge *Outline )ToPdfOutline ()*PdfOutline {_fedg :=NewPdfOutline ();var _eegcb []*PdfOutlineItem ;var _dagfc int64 ;var _eccg *PdfOutlineItem ;for _ ,_fcdf :=range _gbbge .Entries {_bddab ,_ddgca :=_fcdf .ToPdfOutlineItem ();_bddab .Parent =&_fedg .PdfOutlineTreeNode ;
if _eccg !=nil {_eccg .Next =&_bddab .PdfOutlineTreeNode ;_bddab .Prev =&_eccg .PdfOutlineTreeNode ;};_eegcb =append (_eegcb ,_bddab );_dagfc +=_ddgca ;_eccg =_bddab ;};_bgbg :=int64 (len (_eegcb ));_dagfc +=_bgbg ;if _bgbg > 0{_fedg .First =&_eegcb [0].PdfOutlineTreeNode ;
_fedg .Last =&_eegcb [_bgbg -1].PdfOutlineTreeNode ;_fedg .Count =&_dagfc ;};return _fedg ;};
// 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 ;};
// String returns a human readable description of `fontfile`.
func (_dcecb *fontFile )String ()string {_deba :="\u005b\u004e\u006f\u006e\u0065\u005d";if _dcecb ._bcdea !=nil {_deba =_dcecb ._bcdea .String ();};return _d .Sprintf ("\u0046O\u004e\u0054\u0046\u0049\u004c\u0045\u007b\u0025\u0023\u0071\u0020e\u006e\u0063\u006f\u0064\u0065\u0072\u003d\u0025\u0073\u007d",_dcecb ._bedba ,_deba );
};
// EncryptionAlgorithm is used in EncryptOptions to change the default algorithm used to encrypt the document.
type EncryptionAlgorithm int ;
// GetNumComponents returns the number of color components of the underlying
// colorspace device.
func (_abbfd *PdfColorspaceSpecialPattern )GetNumComponents ()int {return _abbfd .UnderlyingCS .GetNumComponents ();};
// Add appends an outline item as a child of the current outline item.
func (_dacce *OutlineItem )Add (item *OutlineItem ){_dacce .Entries =append (_dacce .Entries ,item )};
// PdfActionSound represents a sound action.
type PdfActionSound struct{*PdfAction ;Sound _ac .PdfObject ;Volume _ac .PdfObject ;Synchronous _ac .PdfObject ;Repeat _ac .PdfObject ;Mix _ac .PdfObject ;};
// NewPdfFilespecFromObj creates and returns a new PdfFilespec object.
func NewPdfFilespecFromObj (obj _ac .PdfObject )(*PdfFilespec ,error ){_abdge :=&PdfFilespec {};var _eaaec *_ac .PdfObjectDictionary ;if _edge ,_abfgc :=_ac .GetIndirect (obj );_abfgc {_abdge ._fege =_edge ;_fbgcd ,_bebec :=_ac .GetDict (_edge .PdfObject );
if !_bebec {_gd .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 ,_ac .ErrTypeError ;};_eaaec =_fbgcd ;}else if _bbdb ,_fdbb :=_ac .GetDict (obj );
_fdbb {_abdge ._fege =_bbdb ;_eaaec =_bbdb ;}else {_gd .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 ,_ac .ErrTypeError ;};if _eaaec ==nil {_gd .Log .Debug ("\u0044i\u0063t\u0069\u006f\u006e\u0061\u0072y\u0020\u006di\u0073\u0073\u0069\u006e\u0067");
return nil ,_af .New ("\u0064\u0069\u0063t\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};if _eabc :=_eaaec .Get ("\u0054\u0079\u0070\u0065");_eabc !=nil {_geaaa ,_adac :=_eabc .(*_ac .PdfObjectName );if !_adac {_gd .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",_eabc );
}else {if *_geaaa !="\u0046\u0069\u006c\u0065\u0073\u0070\u0065\u0063"{_gd .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",*_geaaa );
};};};if _cffgd :=_eaaec .Get ("\u0046\u0053");_cffgd !=nil {_abdge .FS =_cffgd ;};if _gacag :=_eaaec .Get ("\u0046");_gacag !=nil {_abdge .F =_gacag ;};if _defde :=_eaaec .Get ("\u0055\u0046");_defde !=nil {_abdge .UF =_defde ;};if _efeg :=_eaaec .Get ("\u0044\u004f\u0053");
_efeg !=nil {_abdge .DOS =_efeg ;};if _efff :=_eaaec .Get ("\u004d\u0061\u0063");_efff !=nil {_abdge .Mac =_efff ;};if _fbdcc :=_eaaec .Get ("\u0055\u006e\u0069\u0078");_fbdcc !=nil {_abdge .Unix =_fbdcc ;};if _fffb :=_eaaec .Get ("\u0049\u0044");_fffb !=nil {_abdge .ID =_fffb ;
};if _bdfaf :=_eaaec .Get ("\u0056");_bdfaf !=nil {_abdge .V =_bdfaf ;};if _dcccc :=_eaaec .Get ("\u0045\u0046");_dcccc !=nil {_abdge .EF =_dcccc ;};if _dbgbd :=_eaaec .Get ("\u0052\u0046");_dbgbd !=nil {_abdge .RF =_dbgbd ;};if _aebbb :=_eaaec .Get ("\u0044\u0065\u0073\u0063");
_aebbb !=nil {_abdge .Desc =_aebbb ;};if _begc :=_eaaec .Get ("\u0043\u0049");_begc !=nil {_abdge .CI =_begc ;};return _abdge ,nil ;};
// NewPdfAnnotationInk returns a new ink annotation.
func NewPdfAnnotationInk ()*PdfAnnotationInk {_aeg :=NewPdfAnnotation ();_acg :=&PdfAnnotationInk {};_acg .PdfAnnotation =_aeg ;_acg .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_aeg .SetContext (_acg );return _acg ;};
// String returns a string representation of PdfTransformParamsDocMDP.
func (_eeead *PdfTransformParamsDocMDP )String ()string {return _d .Sprintf ("\u0025\u0073\u0020\u0050\u003a\u0020\u0025\u0073\u0020V\u003a\u0020\u0025\u0073",_eeead .Type ,_eeead .P ,_eeead .V );};func _affb (_ggeag *_ed .ImageBase )(_ffbad Image ){_ffbad .Width =int64 (_ggeag .Width );
_ffbad .Height =int64 (_ggeag .Height );_ffbad .BitsPerComponent =int64 (_ggeag .BitsPerComponent );_ffbad .ColorComponents =_ggeag .ColorComponents ;_ffbad .Data =_ggeag .Data ;_ffbad ._gffd =_ggeag .Decode ;_ffbad ._ebga =_ggeag .Alpha ;return _ffbad ;
};func _caaca (_dgce string )(map[_gf .CharCode ]_gf .GlyphName ,error ){_cacee :=_fg .Split (_dgce ,"\u000a");_baeg :=make (map[_gf .CharCode ]_gf .GlyphName );for _ ,_dbgc :=range _cacee {_adgc :=_dfedc .FindStringSubmatch (_dbgc );if _adgc ==nil {continue ;
};_dbgf ,_cffbb :=_adgc [1],_adgc [2];_gbabg ,_gaeb :=_ae .Atoi (_dbgf );if _gaeb !=nil {_gd .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",_dbgc );
return nil ,_ac .ErrTypeError ;};_baeg [_gf .CharCode (_gbabg )]=_gf .GlyphName (_cffbb );};_gd .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",_baeg );
return _baeg ,nil ;};
// SetPdfTitle sets the Title attribute of the output PDF.
func SetPdfTitle (title string ){_gcaaba .Lock ();defer _gcaaba .Unlock ();_ggffd =title };
// PdfColor interface represents a generic color in PDF.
type PdfColor interface{};
// ToPdfObject implements interface PdfModel.
func (_dcaff *PdfAnnotationSquiggly )ToPdfObject ()_ac .PdfObject {_dcaff .PdfAnnotation .ToPdfObject ();_aab :=_dcaff ._fegd ;_acaa :=_aab .PdfObject .(*_ac .PdfObjectDictionary );_dcaff .PdfAnnotationMarkup .appendToPdfDictionary (_acaa );_acaa .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ac .MakeName ("\u0053\u0071\u0075\u0069\u0067\u0067\u006c\u0079"));
_acaa .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_dcaff .QuadPoints );return _aab ;};
// Normalize swaps (Llx,Urx) if Urx < Llx, and (Lly,Ury) if Ury < Lly.
func (_dbbf *PdfRectangle )Normalize (){if _dbbf .Llx > _dbbf .Urx {_dbbf .Llx ,_dbbf .Urx =_dbbf .Urx ,_dbbf .Llx ;};if _dbbf .Lly > _dbbf .Ury {_dbbf .Lly ,_dbbf .Ury =_dbbf .Ury ,_dbbf .Lly ;};};
// 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 *_ac .PdfIndirectObject ;SV *_ac .PdfIndirectObject ;};func _ffdd (_dbdf _ac .PdfObject )(*PdfColorspaceICCBased ,error ){_fdeac :=&PdfColorspaceICCBased {};if _aeeaa ,_fegc :=_dbdf .(*_ac .PdfIndirectObject );
_fegc {_fdeac ._eeaa =_aeeaa ;};_dbdf =_ac .TraceToDirectObject (_dbdf );_beeb ,_baaa :=_dbdf .(*_ac .PdfObjectArray );if !_baaa {return nil ,_d .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _beeb .Len ()!=2{return nil ,_d .Errorf ("i\u006e\u0076\u0061\u006c\u0069\u0064 \u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064\u0020c\u006f\u006c\u006fr\u0073p\u0061\u0063\u0065");
};_dbdf =_ac .TraceToDirectObject (_beeb .Get (0));_ggde ,_baaa :=_dbdf .(*_ac .PdfObjectName );if !_baaa {return nil ,_d .Errorf ("\u0049\u0043\u0043B\u0061\u0073\u0065\u0064 \u006e\u0061\u006d\u0065\u0020\u006e\u006ft\u0020\u0061\u0020\u004e\u0061\u006d\u0065\u0020\u006f\u0062\u006a\u0065\u0063\u0074");
};if *_ggde !="\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064"{return nil ,_d .Errorf ("\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0049\u0043\u0043\u0042a\u0073\u0065\u0064\u0020\u0063\u006f\u006c\u006f\u0072\u0073p\u0061\u0063\u0065");};_dbdf =_beeb .Get (1);
_fgfb ,_baaa :=_ac .GetStream (_dbdf );if !_baaa {_gd .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",_dbdf );
return nil ,_d .Errorf ("\u0049\u0043\u0043Ba\u0073\u0065\u0064\u0020\u0073\u0074\u0072\u0065\u0061\u006d\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064");};_ggfa :=_fgfb .PdfObjectDictionary ;_egcb ,_baaa :=_ggfa .Get ("\u004e").(*_ac .PdfObjectInteger );
if !_baaa {return nil ,_d .Errorf ("I\u0043\u0043\u0042\u0061\u0073\u0065d\u0020\u006d\u0069\u0073\u0073\u0069n\u0067\u0020\u004e\u0020\u0066\u0072\u006fm\u0020\u0073\u0074\u0072\u0065\u0061\u006d\u0020\u0064\u0069c\u0074");};if *_egcb !=1&&*_egcb !=3&&*_egcb !=4{return nil ,_d .Errorf ("\u0049\u0043\u0043\u0042\u0061s\u0065\u0064\u0020\u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063\u0065 \u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u004e\u0020\u0028\u006e\u006f\u0074\u0020\u0031\u002c\u0033\u002c\u0034\u0029");
};_fdeac .N =int (*_egcb );if _cfdd :=_ggfa .Get ("\u0041l\u0074\u0065\u0072\u006e\u0061\u0074e");_cfdd !=nil {_aadb ,_aecg :=NewPdfColorspaceFromPdfObject (_cfdd );if _aecg !=nil {return nil ,_aecg ;};_fdeac .Alternate =_aadb ;};if _fgfbg :=_ggfa .Get ("\u0052\u0061\u006eg\u0065");
_fgfbg !=nil {_fgfbg =_ac .TraceToDirectObject (_fgfbg );_aabd ,_cfaf :=_fgfbg .(*_ac .PdfObjectArray );if !_cfaf {return nil ,_d .Errorf ("I\u0043\u0043\u0042\u0061\u0073\u0065d\u0020\u0052\u0061\u006e\u0067\u0065\u0020\u006e\u006ft\u0020\u0061\u006e \u0061r\u0072\u0061\u0079");
};if _aabd .Len ()!=2*_fdeac .N {return nil ,_d .Errorf ("\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064\u0020\u0052\u0061\u006e\u0067e\u0020\u0077\u0072\u006f\u006e\u0067 \u006e\u0075\u006d\u0062\u0065\u0072\u0020\u006f\u0066\u0020\u0065\u006c\u0065m\u0065\u006e\u0074\u0073");
};_cgcb ,_abgbd :=_aabd .GetAsFloat64Slice ();if _abgbd !=nil {return nil ,_abgbd ;};_fdeac .Range =_cgcb ;}else {_fdeac .Range =make ([]float64 ,2*_fdeac .N );for _eagf :=0;_eagf < _fdeac .N ;_eagf ++{_fdeac .Range [2*_eagf ]=0.0;_fdeac .Range [2*_eagf +1]=1.0;
};};if _gced :=_ggfa .Get ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");_gced !=nil {_gaca ,_gfda :=_gced .(*_ac .PdfObjectStream );if !_gfda {return nil ,_d .Errorf ("\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064\u0020\u004de\u0074\u0061\u0064\u0061\u0074\u0061\u0020n\u006f\u0074\u0020\u0061\u0020\u0073\u0074\u0072\u0065\u0061\u006d");
};_fdeac .Metadata =_gaca ;};_geaad ,_gaee :=_ac .DecodeStream (_fgfb );if _gaee !=nil {return nil ,_gaee ;};_fdeac .Data =_geaad ;_fdeac ._gafd =_fgfb ;return _fdeac ,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 (_gcdd *PdfColorspaceCalRGB )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=3{return nil ,_af .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_bbfd :=vals [0];if _bbfd < 0.0||_bbfd > 1.0{_gd .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_bbfd );
return nil ,ErrColorOutOfRange ;};_cabg :=vals [1];if _cabg < 0.0||_cabg > 1.0{_gd .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_cabg );return nil ,ErrColorOutOfRange ;
};_gdeg :=vals [2];if _gdeg < 0.0||_gdeg > 1.0{_gd .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_gdeg );return nil ,ErrColorOutOfRange ;};_fbda :=NewPdfColorCalRGB (_bbfd ,_cabg ,_gdeg );
return _fbda ,nil ;};
// ToPdfObject implements interface PdfModel.
func (_ffadaa *Permissions )ToPdfObject ()_ac .PdfObject {return _ffadaa ._aebdd };
// ColorAt returns the color of the image pixel specified by the x and y coordinates.
func (_bedde *Image )ColorAt (x ,y int )(_bc .Color ,error ){_cegg :=_ed .BytesPerLine (int (_bedde .Width ),int (_bedde .BitsPerComponent ),_bedde .ColorComponents );switch _bedde .ColorComponents {case 1:return _ed .ColorAtGrayscale (x ,y ,int (_bedde .BitsPerComponent ),_cegg ,_bedde .Data ,_bedde ._gffd );
case 3:return _ed .ColorAtNRGBA (x ,y ,int (_bedde .Width ),_cegg ,int (_bedde .BitsPerComponent ),_bedde .Data ,_bedde ._ebga ,_bedde ._gffd );case 4:return _ed .ColorAtCMYK (x ,y ,int (_bedde .Width ),_bedde .Data ,_bedde ._gffd );};_gd .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",_bedde .ColorComponents ,_bedde .BitsPerComponent );
return nil ,_af .New ("\u0075\u006e\u0073\u0075p\u0070\u006f\u0072\u0074\u0065\u0064\u0020\u0069\u006d\u0061g\u0065 \u0063\u006f\u006c\u006f\u0072\u0073\u0070a\u0063\u0065");};func (_edgfg *PdfWriter )optimize ()error {if _edgfg ._bddgd ==nil {return nil ;
};var _afbgf error ;_edgfg ._gdeaf ,_afbgf =_edgfg ._bddgd .Optimize (_edgfg ._gdeaf );if _afbgf !=nil {return _afbgf ;};_bcded :=make (map[_ac .PdfObject ]struct{},len (_edgfg ._gdeaf ));for _ ,_cffdf :=range _edgfg ._gdeaf {_bcded [_cffdf ]=struct{}{};
};_edgfg ._agbff =_bcded ;return nil ;};
// PdfFieldChoice represents a choice field which includes scrollable list boxes and combo boxes.
type PdfFieldChoice struct{*PdfField ;Opt *_ac .PdfObjectArray ;TI *_ac .PdfObjectInteger ;I *_ac .PdfObjectArray ;};
// AddFont adds a font dictionary to the Font resources.
func (_bfgfceb *PdfPage )AddFont (name _ac .PdfObjectName ,font _ac .PdfObject )error {if _bfgfceb .Resources ==nil {_bfgfceb .Resources =NewPdfPageResources ();};if _bfgfceb .Resources .Font ==nil {_bfgfceb .Resources .Font =_ac .MakeDict ();};_bgcfd ,_defef :=_ac .TraceToDirectObject (_bfgfceb .Resources .Font ).(*_ac .PdfObjectDictionary );
if !_defef {_gd .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",_ac .TraceToDirectObject (_bfgfceb .Resources .Font ));
return _af .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_bgcfd .Set (name ,font );return nil ;};
// ToPdfObject returns the PDF representation of the shading dictionary.
func (_cdage *PdfShadingType1 )ToPdfObject ()_ac .PdfObject {_cdage .PdfShading .ToPdfObject ();_cgcgf ,_faafcc :=_cdage .getShadingDict ();if _faafcc !=nil {_gd .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 _cdage .Domain !=nil {_cgcgf .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_cdage .Domain );};if _cdage .Matrix !=nil {_cgcgf .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_cdage .Matrix );};if _cdage .Function !=nil {if len (_cdage .Function )==1{_cgcgf .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_cdage .Function [0].ToPdfObject ());
}else {_fcffa :=_ac .MakeArray ();for _ ,_addgb :=range _cdage .Function {_fcffa .Append (_addgb .ToPdfObject ());};_cgcgf .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_fcffa );};};return _cdage ._dffbg ;};
// PdfActionNamed represents a named action.
type PdfActionNamed struct{*PdfAction ;N _ac .PdfObject ;};
// ToPdfObject returns the PDF representation of the function.
func (_faafc *PdfFunctionType4 )ToPdfObject ()_ac .PdfObject {_babbe :=_faafc ._adfgg ;if _babbe ==nil {_faafc ._adfgg =&_ac .PdfObjectStream {};_babbe =_faafc ._adfgg ;};_acde :=_ac .MakeDict ();_acde .Set ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065",_ac .MakeInteger (4));
_cgaad :=&_ac .PdfObjectArray {};for _ ,_becdb :=range _faafc .Domain {_cgaad .Append (_ac .MakeFloat (_becdb ));};_acde .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_cgaad );_dadbf :=&_ac .PdfObjectArray {};for _ ,_eaaca :=range _faafc .Range {_dadbf .Append (_ac .MakeFloat (_eaaca ));
};_acde .Set ("\u0052\u0061\u006eg\u0065",_dadbf );if _faafc ._ccbc ==nil &&_faafc .Program !=nil {_faafc ._ccbc =[]byte (_faafc .Program .String ());};_acde .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_ac .MakeInteger (int64 (len (_faafc ._ccbc ))));
_babbe .Stream =_faafc ._ccbc ;_babbe .PdfObjectDictionary =_acde ;return _babbe ;};func (_ebfbd *PdfReader )newPdfAcroFormFromDict (_begcd *_ac .PdfIndirectObject ,_effaf *_ac .PdfObjectDictionary )(*PdfAcroForm ,error ){_acbeb :=NewPdfAcroForm ();if _begcd !=nil {_acbeb ._abecf =_begcd ;
_begcd .PdfObject =_ac .MakeDict ();};if _bfgfcd :=_effaf .Get ("\u0046\u0069\u0065\u006c\u0064\u0073");_bfgfcd !=nil &&!_ac .IsNullObject (_bfgfcd ){_cbegf ,_dbdg :=_ac .GetArray (_bfgfcd );if !_dbdg {return nil ,_d .Errorf ("\u0066i\u0065\u006c\u0064\u0073\u0020\u006e\u006f\u0074\u0020\u0061\u006e \u0061\u0072\u0072\u0061\u0079\u0020\u0028\u0025\u0054\u0029",_bfgfcd );
};var _gfged []*PdfField ;for _ ,_bfdcd :=range _cbegf .Elements (){_gccea ,_gffg :=_ac .GetIndirect (_bfdcd );if !_gffg {if _ ,_bgeagf :=_bfdcd .(*_ac .PdfObjectNull );_bgeagf {_gd .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 ;};_gd .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",_bfdcd );
return nil ,_d .Errorf ("\u0066\u0069\u0065l\u0064\u0020\u006e\u006ft\u0020\u0069\u006e\u0020\u0061\u006e\u0020i\u006e\u0064\u0069\u0072\u0065\u0063\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074");};_aebbc ,_gfcbc :=_ebfbd .newPdfFieldFromIndirectObject (_gccea ,nil );
if _gfcbc !=nil {return nil ,_gfcbc ;};_gd .Log .Trace ("\u0041\u0063\u0072\u006fFo\u0072\u006d\u0020\u0046\u0069\u0065\u006c\u0064\u003a\u0020\u0025\u002b\u0076",*_aebbc );_gfged =append (_gfged ,_aebbc );};_acbeb .Fields =&_gfged ;};if _aeefg :=_effaf .Get ("\u004ee\u0065d\u0041\u0070\u0070\u0065\u0061\u0072\u0061\u006e\u0063\u0065\u0073");
_aeefg !=nil {_eede ,_ddcbaa :=_ac .GetBool (_aeefg );if _ddcbaa {_acbeb .NeedAppearances =_eede ;}else {_gd .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",_aeefg );
};};if _gfbfb :=_effaf .Get ("\u0053\u0069\u0067\u0046\u006c\u0061\u0067\u0073");_gfbfb !=nil {_cbedfb ,_bdceg :=_ac .GetInt (_gfbfb );if _bdceg {_acbeb .SigFlags =_cbedfb ;}else {_gd .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",_gfbfb );
};};if _bebgb :=_effaf .Get ("\u0043\u004f");_bebgb !=nil {_cbbfd ,_ddfcc :=_ac .GetArray (_bebgb );if _ddfcc {_acbeb .CO =_cbbfd ;}else {_gd .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",_bebgb );
};};if _beffa :=_effaf .Get ("\u0044\u0052");_beffa !=nil {if _daef ,_gbcc :=_ac .GetDict (_beffa );_gbcc {_bgac ,_ceaf :=NewPdfPageResourcesFromDict (_daef );if _ceaf !=nil {_gd .Log .Error ("\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0044R\u003a\u0020\u0025\u0076",_ceaf );
return nil ,_ceaf ;};_acbeb .DR =_bgac ;}else {_gd .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",_beffa );};};if _dbddd :=_effaf .Get ("\u0044\u0041");
_dbddd !=nil {_aeedd ,_ddfba :=_ac .GetString (_dbddd );if _ddfba {_acbeb .DA =_aeedd ;}else {_gd .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",_dbddd );
};};if _gafde :=_effaf .Get ("\u0051");_gafde !=nil {_edde ,_eaacc :=_ac .GetInt (_gafde );if _eaacc {_acbeb .Q =_edde ;}else {_gd .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a \u0051\u0020\u0069\u006e\u0076a\u006ci\u0064 \u0028\u0067\u006f\u0074\u0020\u0025\u0054)",_gafde );
};};if _bacge :=_effaf .Get ("\u0058\u0046\u0041");_bacge !=nil {_acbeb .XFA =_bacge ;};if _aefbd :=_effaf .Get ("\u0041\u0044\u0042\u0045\u005f\u0045\u0063\u0068\u006f\u0053\u0069\u0067\u006e");_aefbd !=nil {_acbeb .ADBEEchoSign =_aefbd ;};_acbeb .ToPdfObject ();
return _acbeb ,nil ;};
// ToPdfObject implements interface PdfModel.
func (_fbbd *PdfAnnotationRedact )ToPdfObject ()_ac .PdfObject {_fbbd .PdfAnnotation .ToPdfObject ();_bcbfa :=_fbbd ._fegd ;_gecf :=_bcbfa .PdfObject .(*_ac .PdfObjectDictionary );_fbbd .PdfAnnotationMarkup .appendToPdfDictionary (_gecf );_gecf .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ac .MakeName ("\u0052\u0065\u0064\u0061\u0063\u0074"));
_gecf .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_fbbd .QuadPoints );_gecf .SetIfNotNil ("\u0049\u0043",_fbbd .IC );_gecf .SetIfNotNil ("\u0052\u004f",_fbbd .RO );_gecf .SetIfNotNil ("O\u0076\u0065\u0072\u006c\u0061\u0079\u0054\u0065\u0078\u0074",_fbbd .OverlayText );
_gecf .SetIfNotNil ("\u0052\u0065\u0070\u0065\u0061\u0074",_fbbd .Repeat );_gecf .SetIfNotNil ("\u0044\u0041",_fbbd .DA );_gecf .SetIfNotNil ("\u0051",_fbbd .Q );return _bcbfa ;};
// ToPdfObject implements interface PdfModel.
func (_aedg *PdfAnnotationFreeText )ToPdfObject ()_ac .PdfObject {_aedg .PdfAnnotation .ToPdfObject ();_cedb :=_aedg ._fegd ;_cbde :=_cedb .PdfObject .(*_ac .PdfObjectDictionary );_aedg .PdfAnnotationMarkup .appendToPdfDictionary (_cbde );_cbde .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ac .MakeName ("\u0046\u0072\u0065\u0065\u0054\u0065\u0078\u0074"));
_cbde .SetIfNotNil ("\u0044\u0041",_aedg .DA );_cbde .SetIfNotNil ("\u0051",_aedg .Q );_cbde .SetIfNotNil ("\u0052\u0043",_aedg .RC );_cbde .SetIfNotNil ("\u0044\u0053",_aedg .DS );_cbde .SetIfNotNil ("\u0043\u004c",_aedg .CL );_cbde .SetIfNotNil ("\u0049\u0054",_aedg .IT );
_cbde .SetIfNotNil ("\u0042\u0045",_aedg .BE );_cbde .SetIfNotNil ("\u0052\u0044",_aedg .RD );_cbde .SetIfNotNil ("\u0042\u0053",_aedg .BS );_cbde .SetIfNotNil ("\u004c\u0045",_aedg .LE );return _cedb ;};func (_efeb *PdfReader )newPdfAnnotationWidgetFromDict (_gcfc *_ac .PdfObjectDictionary )(*PdfAnnotationWidget ,error ){_eafa :=PdfAnnotationWidget {};
_eafa .H =_gcfc .Get ("\u0048");_eafa .MK =_gcfc .Get ("\u004d\u004b");_eafa .A =_gcfc .Get ("\u0041");_eafa .AA =_gcfc .Get ("\u0041\u0041");_eafa .BS =_gcfc .Get ("\u0042\u0053");_eafa .Parent =_gcfc .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");return &_eafa ,nil ;
};
// ToPdfObject implements interface PdfModel.
func (_fdd *PdfActionGoToE )ToPdfObject ()_ac .PdfObject {_fdd .PdfAction .ToPdfObject ();_ecdf :=_fdd ._eef ;_ecdb :=_ecdf .PdfObject .(*_ac .PdfObjectDictionary );_ecdb .SetIfNotNil ("\u0053",_ac .MakeName (string (ActionTypeGoToE )));if _fdd .F !=nil {_ecdb .Set ("\u0046",_fdd .F .ToPdfObject ());
};_ecdb .SetIfNotNil ("\u0044",_fdd .D );_ecdb .SetIfNotNil ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw",_fdd .NewWindow );_ecdb .SetIfNotNil ("\u0054",_fdd .T );return _ecdf ;};func _eeeea (_ggdea *XObjectImage )error {if _ggdea .SMask ==nil {return nil ;
};_efabe ,_dbdaf :=_ggdea .SMask .(*_ac .PdfObjectStream );if !_dbdaf {_gd .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 _ac .ErrTypeError ;
};_dgaba :=_efabe .PdfObjectDictionary ;_cabfd :=_dgaba .Get ("\u004d\u0061\u0074t\u0065");if _cabfd ==nil {return nil ;};_egfec ,_efcee :=_ggefga (_cabfd .(*_ac .PdfObjectArray ));if _efcee !=nil {return _efcee ;};_afcd :=_ac .MakeArrayFromFloats ([]float64 {_egfec });
_dgaba .SetIfNotNil ("\u004d\u0061\u0074t\u0065",_afcd );return nil ;};
// 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 (_gfeb *PdfFont )GetCharMetrics (code _gf .CharCode )(CharMetrics ,bool ){var _ageg _fda .CharMetrics ;switch _dcec :=_gfeb ._gegb .(type ){case *pdfFontSimple :if _cede ,_bcbgg :=_dcec .GetCharMetrics (code );_bcbgg {return _cede ,_bcbgg ;};case *pdfFontType0 :if _eacgg ,_edfbd :=_dcec .GetCharMetrics (code );
_edfbd {return _eacgg ,_edfbd ;};case *pdfCIDFontType0 :if _bbcef ,_dccfc :=_dcec .GetCharMetrics (code );_dccfc {return _bbcef ,_dccfc ;};case *pdfCIDFontType2 :if _agebb ,_adab :=_dcec .GetCharMetrics (code );_adab {return _agebb ,_adab ;};case *pdfFontType3 :if _edfff ,_fgff :=_dcec .GetCharMetrics (code );
_fgff {return _edfff ,_fgff ;};default:_gd .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",_gfeb ._gegb );
return _ageg ,false ;};if _aebe ,_bcgb :=_gfeb .GetFontDescriptor ();_bcgb ==nil &&_aebe !=nil {return _fda .CharMetrics {Wx :_aebe ._fffd },true ;};_gd .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",_gfeb );
return _ageg ,false ;};func _egga (_aefad _ac .PdfObject )(*fontFile ,error ){_gd .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",_aefad );
_fcdab :=&fontFile {};_aefad =_ac .TraceToDirectObject (_aefad );_ccec ,_geagd :=_aefad .(*_ac .PdfObjectStream );if !_geagd {_gd .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",_aefad );
return nil ,_ac .ErrTypeError ;};_aeef :=_ccec .PdfObjectDictionary ;_adbe ,_gadbb :=_ac .DecodeStream (_ccec );if _gadbb !=nil {return nil ,_gadbb ;};_adcg ,_geagd :=_ac .GetNameVal (_aeef .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065"));if !_geagd {_fcdab ._fggeg =_adcg ;
if _adcg =="\u0054\u0079\u0070\u0065\u0031\u0043"{_gd .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 ;};};_ggfd ,_ :=_ac .GetIntVal (_aeef .Get ("\u004ce\u006e\u0067\u0074\u0068\u0031"));_beebb ,_ :=_ac .GetIntVal (_aeef .Get ("\u004ce\u006e\u0067\u0074\u0068\u0032"));if _ggfd > len (_adbe ){_ggfd =len (_adbe );};
if _ggfd +_beebb > len (_adbe ){_beebb =len (_adbe )-_ggfd ;};_daaeb :=_adbe [:_ggfd ];var _gccde []byte ;if _beebb > 0{_gccde =_adbe [_ggfd :_ggfd +_beebb ];};if _ggfd > 0&&_beebb > 0{_ebfga :=_fcdab .loadFromSegments (_daaeb ,_gccde );if _ebfga !=nil {return nil ,_ebfga ;
};};return _fcdab ,nil ;};
// NewPdfActionSetOCGState returns a new "named" action.
func NewPdfActionSetOCGState ()*PdfActionSetOCGState {_ade :=NewPdfAction ();_df :=&PdfActionSetOCGState {};_df .PdfAction =_ade ;_ade .SetContext (_df );return _df ;};
// PdfOutlineItem represents an outline item dictionary (Table 153 - pp. 376 - 377).
type PdfOutlineItem struct{PdfOutlineTreeNode ;Title *_ac .PdfObjectString ;Parent *PdfOutlineTreeNode ;Prev *PdfOutlineTreeNode ;Next *PdfOutlineTreeNode ;Count *int64 ;Dest _ac .PdfObject ;A _ac .PdfObject ;SE _ac .PdfObject ;C _ac .PdfObject ;F _ac .PdfObject ;
_gbcec *_ac .PdfIndirectObject ;};
// DecodeArray returns the component range values for the Indexed colorspace.
func (_cfadd *PdfColorspaceSpecialIndexed )DecodeArray ()[]float64 {return []float64 {0,float64 (_cfadd .HiVal )};};
// 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 (_gcac DefaultImageHandler )Compress (input *Image ,quality int64 )(*Image ,error ){return input ,nil ;};
// 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 *_ac .PdfObjectString ;Q *_ac .PdfObjectInteger ;DS *_ac .PdfObjectString ;RV _ac .PdfObject ;};
// NewPdfColorspaceSpecialIndexed returns a new Indexed color.
func NewPdfColorspaceSpecialIndexed ()*PdfColorspaceSpecialIndexed {return &PdfColorspaceSpecialIndexed {HiVal :255};};
// GetNamedDestinations returns the Dests entry in the PDF catalog.
// See section 12.3.2.3 "Named Destinations" (p. 367 PDF32000_2008).
func (_bcdc *PdfReader )GetNamedDestinations ()(_ac .PdfObject ,error ){_bbcdcg :=_ac .ResolveReference (_bcdc ._bdfc .Get ("\u0044\u0065\u0073t\u0073"));if _bbcdcg ==nil {return nil ,nil ;};if !_bcdc ._dfgg {_gabea :=_bcdc .traverseObjectData (_bbcdcg );
if _gabea !=nil {return nil ,_gabea ;};};return _bbcdcg ,nil ;};func _ebgfe (_ebfd *_ac .PdfObjectDictionary )(*PdfFieldChoice ,error ){_bgccf :=&PdfFieldChoice {};_bgccf .Opt ,_ =_ac .GetArray (_ebfd .Get ("\u004f\u0070\u0074"));_bgccf .TI ,_ =_ac .GetInt (_ebfd .Get ("\u0054\u0049"));
_bgccf .I ,_ =_ac .GetArray (_ebfd .Get ("\u0049"));return _bgccf ,nil ;};func (_gceg *DSS )addCerts (_fefb [][]byte )([]*_ac .PdfObjectStream ,error ){return _gceg .add (&_gceg .Certs ,_gceg ._fegf ,_fefb );};
// A returns the value of the A component of the color.
func (_aabc *PdfColorLab )A ()float64 {return _aabc [1]};
// SetOCProperties sets the optional content properties.
func (_ebdbb *PdfWriter )SetOCProperties (ocProperties _ac .PdfObject )error {_feegb :=_ebdbb ._cgfegd ;if ocProperties !=nil {_gd .Log .Trace ("\u0053e\u0074\u0074\u0069\u006e\u0067\u0020\u004f\u0043\u0020\u0050\u0072o\u0070\u0065\u0072\u0074\u0069\u0065\u0073\u002e\u002e\u002e");
_feegb .Set ("\u004f\u0043\u0050r\u006f\u0070\u0065\u0072\u0074\u0069\u0065\u0073",ocProperties );return _ebdbb .addObjects (ocProperties );};return nil ;};
// ToPdfObject returns the PDF representation of the VRI dictionary.
func (_bcdd *VRI )ToPdfObject ()*_ac .PdfObjectDictionary {_cbbdd :=_ac .MakeDict ();_cbbdd .SetIfNotNil (_ac .PdfObjectName ("\u0043\u0065\u0072\u0074"),_ccae (_bcdd .Cert ));_cbbdd .SetIfNotNil (_ac .PdfObjectName ("\u004f\u0043\u0053\u0050"),_ccae (_bcdd .OCSP ));
_cbbdd .SetIfNotNil (_ac .PdfObjectName ("\u0043\u0052\u004c"),_ccae (_bcdd .CRL ));_cbbdd .SetIfNotNil ("\u0054\u0055",_bcdd .TU );_cbbdd .SetIfNotNil ("\u0054\u0053",_bcdd .TS );return _cbbdd ;};
// SetAnnotations sets the annotations list.
func (_beafg *PdfPage )SetAnnotations (annotations []*PdfAnnotation ){_beafg ._ceca =annotations };
// GetNameDictionary returns the Names entry in the PDF catalog.
// See section 7.7.4 "Name Dictionary" (p. 80 PDF32000_2008).
func (_caedd *PdfReader )GetNameDictionary ()(_ac .PdfObject ,error ){_dbfde :=_ac .ResolveReference (_caedd ._bdfc .Get ("\u004e\u0061\u006de\u0073"));if _dbfde ==nil {return nil ,nil ;};if !_caedd ._dfgg {_ffefa :=_caedd .traverseObjectData (_dbfde );
if _ffefa !=nil {return nil ,_ffefa ;};};return _dbfde ,nil ;};
// ToPdfObject returns the PDF representation of the shading dictionary.
func (_dbdea *PdfShadingType7 )ToPdfObject ()_ac .PdfObject {_dbdea .PdfShading .ToPdfObject ();_eedbc ,_fadag :=_dbdea .getShadingDict ();if _fadag !=nil {_gd .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 _dbdea .BitsPerCoordinate !=nil {_eedbc .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065",_dbdea .BitsPerCoordinate );};if _dbdea .BitsPerComponent !=nil {_eedbc .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_dbdea .BitsPerComponent );
};if _dbdea .BitsPerFlag !=nil {_eedbc .Set ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067",_dbdea .BitsPerFlag );};if _dbdea .Decode !=nil {_eedbc .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_dbdea .Decode );};if _dbdea .Function !=nil {if len (_dbdea .Function )==1{_eedbc .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_dbdea .Function [0].ToPdfObject ());
}else {_gdedd :=_ac .MakeArray ();for _ ,_fdbd :=range _dbdea .Function {_gdedd .Append (_fdbd .ToPdfObject ());};_eedbc .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_gdedd );};};return _dbdea ._dffbg ;};func (_aafb *PdfColorspaceLab )String ()string {return "\u004c\u0061\u0062"};
// SetContext set the sub annotation (context).
func (_aadaff *PdfShading )SetContext (ctx PdfModel ){_aadaff ._bfga =ctx };
// NewPdfAnnotationCircle returns a new circle annotation.
func NewPdfAnnotationCircle ()*PdfAnnotationCircle {_bfbd :=NewPdfAnnotation ();_gfg :=&PdfAnnotationCircle {};_gfg .PdfAnnotation =_bfbd ;_gfg .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_bfbd .SetContext (_gfg );return _gfg ;};
// PdfShadingType1 is a Function-based shading.
type PdfShadingType1 struct{*PdfShading ;Domain *_ac .PdfObjectArray ;Matrix *_ac .PdfObjectArray ;Function []PdfFunction ;};
// String returns the name of the colorspace (DeviceN).
func (_fgbd *PdfColorspaceDeviceN )String ()string {return "\u0044e\u0076\u0069\u0063\u0065\u004e"};
// 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 ;const (_beacg =0x00001;_cgegd =0x00002;_feaae =0x00004;_efdag =0x00008;_dedda =0x00020;_cebda =0x00040;_fgcg =0x10000;_feee =0x20000;_bdgg =0x40000;);func _daae (_bcgd *fontCommon )*pdfFontSimple {return &pdfFontSimple {fontCommon :*_bcgd }};
// PdfColorCalGray represents a CalGray colorspace.
type PdfColorCalGray float64 ;
// PdfFunctionType4 is a Postscript calculator functions.
type PdfFunctionType4 struct{Domain []float64 ;Range []float64 ;Program *_bb .PSProgram ;_bdgfa *_bb .PSExecutor ;_ccbc []byte ;_adfgg *_ac .PdfObjectStream ;};
// ToPdfObject returns a PDF object representation of the outline item.
func (_ccagf *OutlineItem )ToPdfObject ()_ac .PdfObject {_gdbeg ,_ :=_ccagf .ToPdfOutlineItem ();return _gdbeg .ToPdfObject ();};
// Y returns the value of the yellow component of the color.
func (_bfce *PdfColorDeviceCMYK )Y ()float64 {return _bfce [2]};
// PdfColorPatternType3 represents a color shading pattern type 3 (Radial).
type PdfColorPatternType3 struct{Color PdfColor ;PatternName _ac .PdfObjectName ;};
// NewPdfPageResourcesColorspaces returns a new PdfPageResourcesColorspaces object.
func NewPdfPageResourcesColorspaces ()*PdfPageResourcesColorspaces {_gacab :=&PdfPageResourcesColorspaces {};_gacab .Names =[]string {};_gacab .Colorspaces =map[string ]PdfColorspace {};_gacab ._cegba =&_ac .PdfIndirectObject {};return _gacab ;};
// PdfShadingType2 is an Axial shading.
type PdfShadingType2 struct{*PdfShading ;Coords *_ac .PdfObjectArray ;Domain *_ac .PdfObjectArray ;Function []PdfFunction ;Extend *_ac .PdfObjectArray ;};
// StdFontName represents name of a standard font.
type StdFontName =_fda .StdFontName ;
// ToPdfObject returns the choice field dictionary within an indirect object (container).
func (_dbecd *PdfFieldChoice )ToPdfObject ()_ac .PdfObject {_dbecd .PdfField .ToPdfObject ();_eafd :=_dbecd ._bdde ;_badd :=_eafd .PdfObject .(*_ac .PdfObjectDictionary );_badd .Set ("\u0046\u0054",_ac .MakeName ("\u0043\u0068"));if _dbecd .Opt !=nil {_badd .Set ("\u004f\u0070\u0074",_dbecd .Opt );
};if _dbecd .TI !=nil {_badd .Set ("\u0054\u0049",_dbecd .TI );};if _dbecd .I !=nil {_badd .Set ("\u0049",_dbecd .I );};return _eafd ;};
// NewPdfColorspaceFromPdfObject loads a PdfColorspace from a PdfObject. Returns an error if there is
// a failure in loading.
func NewPdfColorspaceFromPdfObject (obj _ac .PdfObject )(PdfColorspace ,error ){if obj ==nil {return nil ,nil ;};var _bccf *_ac .PdfIndirectObject ;var _fffga *_ac .PdfObjectName ;var _efgf *_ac .PdfObjectArray ;if _aagb ,_dcce :=obj .(*_ac .PdfIndirectObject );
_dcce {_bccf =_aagb ;};obj =_ac .TraceToDirectObject (obj );switch _eeeb :=obj .(type ){case *_ac .PdfObjectArray :_efgf =_eeeb ;case *_ac .PdfObjectName :_fffga =_eeeb ;};if _fffga !=nil {switch *_fffga {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:_gd .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",*_fffga );return nil ,_gbda ;};};if _efgf !=nil &&_efgf .Len ()> 0{var _cbad _ac .PdfObject =_bccf ;
if _bccf ==nil {_cbad =_efgf ;};if _fcabe ,_cefg :=_ac .GetName (_efgf .Get (0));_cefg {switch _fcabe .String (){case "\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079":if _efgf .Len ()==1{return NewPdfColorspaceDeviceGray (),nil ;};case "\u0044e\u0076\u0069\u0063\u0065\u0052\u0047B":if _efgf .Len ()==1{return NewPdfColorspaceDeviceRGB (),nil ;
};case "\u0044\u0065\u0076\u0069\u0063\u0065\u0043\u004d\u0059\u004b":if _efgf .Len ()==1{return NewPdfColorspaceDeviceCMYK (),nil ;};case "\u0043a\u006c\u0047\u0072\u0061\u0079":return _gbec (_cbad );case "\u0043\u0061\u006c\u0052\u0047\u0042":return _cebcd (_cbad );
case "\u004c\u0061\u0062":return _bbcdd (_cbad );case "\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064":return _ffdd (_cbad );case "\u0050a\u0074\u0074\u0065\u0072\u006e":return _bbebd (_cbad );case "\u0049n\u0064\u0065\u0078\u0065\u0064":return _ebgb (_cbad );
case "\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e":return _cgdg (_cbad );case "\u0044e\u0076\u0069\u0063\u0065\u004e":return _aefea (_cbad );default:_gd .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",*_fcabe );
};};};_gd .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 ;};
// BytesToCharcodes converts the bytes in a PDF string to character codes.
func (_edcd *PdfFont )BytesToCharcodes (data []byte )[]_gf .CharCode {_gd .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 _ebfb ,_aeaed :=_edcd ._gegb .(*pdfFontType0 );_aeaed &&_ebfb ._gcaa !=nil {if _dcgd ,_gccg :=_ebfb .bytesToCharcodes (data );_gccg {return _dcgd ;};};var (_cfece =make ([]_gf .CharCode ,0,len (data )+len (data )%2);_accd =_edcd .baseFields (););if _accd ._acbbb !=nil {if _ddcba ,_fgcc :=_accd ._acbbb .BytesToCharcodes (data );
_fgcc {for _ ,_aeeaf :=range _ddcba {_cfece =append (_cfece ,_gf .CharCode (_aeeaf ));};return _cfece ;};};if _accd .isCIDFont (){if len (data )==1{data =[]byte {0,data [0]};};if len (data )%2!=0{_gd .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 _bfafb :=0;_bfafb < len (data );_bfafb +=2{_facfg :=uint16 (data [_bfafb ])<<8|uint16 (data [_bfafb +1]);_cfece =append (_cfece ,_gf .CharCode (_facfg ));};}else {for _ ,_ebad :=range data {_cfece =append (_cfece ,_gf .CharCode (_ebad ));
};};return _cfece ;};
// SetReason sets the `Reason` field of the signature.
func (_ecbge *PdfSignature )SetReason (reason string ){_ecbge .Reason =_ac .MakeString (reason )};func (_dgdce *PdfWriter )optimizeDocument ()error {if _dgdce ._faega ==nil {return nil ;};_eebff ,_fdcbg :=_ac .GetDict (_dgdce ._aefadb );if !_fdcbg {return _af .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");
};_bcgfe :=_fe .Document {ID :[2]string {_dgdce ._becagg ,_dgdce ._bcefa },Version :_dgdce ._gdfdc ,Objects :_dgdce ._gdeaf ,Info :_eebff ,Crypt :_dgdce ._bggef ,UseHashBasedID :_dgdce ._ffdgb };if _cdbc :=_dgdce ._faega .ApplyStandard (&_bcgfe );_cdbc !=nil {return _cdbc ;
};_dgdce ._becagg ,_dgdce ._bcefa =_bcgfe .ID [0],_bcgfe .ID [1];_dgdce ._gdfdc =_bcgfe .Version ;_dgdce ._gdeaf =_bcgfe .Objects ;_dgdce ._aefadb .PdfObject =_bcgfe .Info ;_dgdce ._ffdgb =_bcgfe .UseHashBasedID ;_dgdce ._bggef =_bcgfe .Crypt ;_ccbg :=make (map[_ac .PdfObject ]struct{},len (_dgdce ._gdeaf ));
for _ ,_fabbd :=range _dgdce ._gdeaf {_ccbg [_fabbd ]=struct{}{};};_dgdce ._agbff =_ccbg ;return nil ;};func (_fdef *PdfReader )newPdfActionSoundFromDict (_bgc *_ac .PdfObjectDictionary )(*PdfActionSound ,error ){return &PdfActionSound {Sound :_bgc .Get ("\u0053\u006f\u0075n\u0064"),Volume :_bgc .Get ("\u0056\u006f\u006c\u0075\u006d\u0065"),Synchronous :_bgc .Get ("S\u0079\u006e\u0063\u0068\u0072\u006f\u006e\u006f\u0075\u0073"),Repeat :_bgc .Get ("\u0052\u0065\u0070\u0065\u0061\u0074"),Mix :_bgc .Get ("\u004d\u0069\u0078")},nil ;
};
// Encoder returns the font's text encoder.
func (_cffd pdfCIDFontType2 )Encoder ()_gf .TextEncoder {return _cffd ._cdgg };
// SetSubtype sets the Subtype S for given PdfOutputIntent.
func (_cceff *PdfOutputIntent )SetSubtype (subtype PdfOutputIntentType )error {if !subtype .IsValid (){return _af .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");
};_cceff .S =subtype ;return nil ;};func (_ccfc *pdfFontSimple )baseFields ()*fontCommon {return &_ccfc .fontCommon };
// PdfActionImportData represents a importData action.
type PdfActionImportData struct{*PdfAction ;F *PdfFilespec ;};
// ColorFromPdfObjects returns a new PdfColor based on the input slice of color
// component PDF objects.
func (_aebb *PdfColorspaceICCBased )ColorFromPdfObjects (objects []_ac .PdfObject )(PdfColor ,error ){if _aebb .Alternate ==nil {if _aebb .N ==1{_acgb :=NewPdfColorspaceDeviceGray ();return _acgb .ColorFromPdfObjects (objects );}else if _aebb .N ==3{_adbge :=NewPdfColorspaceDeviceRGB ();
return _adbge .ColorFromPdfObjects (objects );}else if _aebb .N ==4{_dgfb :=NewPdfColorspaceDeviceCMYK ();return _dgfb .ColorFromPdfObjects (objects );}else {return nil ,_af .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 _aebb .Alternate .ColorFromPdfObjects (objects );};func _bcdde (_ddfa *_ac .PdfObjectDictionary ,_febg *fontCommon )(*pdfFontType0 ,error ){_cdec ,_gddf :=_ac .GetArray (_ddfa .Get ("\u0044e\u0073c\u0065\u006e\u0064\u0061\u006e\u0074\u0046\u006f\u006e\u0074\u0073"));
if !_gddf {_gd .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",_febg );
return nil ,_ac .ErrRangeError ;};if _cdec .Len ()!=1{_gd .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",_cdec .Len ());return nil ,_ac .ErrRangeError ;
};_feaadb ,_fcgc :=_eebe (_cdec .Get (0),false );if _fcgc !=nil {_gd .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",_fcgc ,_febg );
return nil ,_fcgc ;};_bbebe :=_gfada (_febg );_bbebe .DescendantFont =_feaadb ;_dfdac ,_gddf :=_ac .GetNameVal (_ddfa .Get ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067"));if _gddf {if _dfdac =="\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079\u002d\u0048"||_dfdac =="\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079\u002d\u0056"{_bbebe ._edfdd =_gf .NewIdentityTextEncoder (_dfdac );
}else if _eg .IsPredefinedCMap (_dfdac ){_bbebe ._gcaa ,_fcgc =_eg .LoadPredefinedCMap (_dfdac );if _fcgc !=nil {_gd .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",_dfdac ,_fcgc );
};}else {_gd .Log .Debug ("\u0055\u006e\u0068\u0061\u006e\u0064\u006c\u0065\u0064\u0020\u0063\u006da\u0070\u0020\u0025\u0071",_dfdac );};};if _ebgda :=_feaadb .baseFields ()._acbbb ;_ebgda !=nil {if _fcedf :=_ebgda .Name ();_fcedf =="\u0041d\u006fb\u0065\u002d\u0043\u004e\u0053\u0031\u002d\u0055\u0043\u0053\u0032"||_fcedf =="\u0041\u0064\u006f\u0062\u0065\u002d\u0047\u0042\u0031-\u0055\u0043\u0053\u0032"||_fcedf =="\u0041\u0064\u006f\u0062\u0065\u002d\u004a\u0061\u0070\u0061\u006e\u0031-\u0055\u0043\u0053\u0032"||_fcedf =="\u0041\u0064\u006f\u0062\u0065\u002d\u004b\u006f\u0072\u0065\u0061\u0031-\u0055\u0043\u0053\u0032"{_bbebe ._edfdd =_gf .NewCMapEncoder (_dfdac ,_bbebe ._gcaa ,_ebgda );
};};return _bbebe ,nil ;};func (_eed *PdfReader )newPdfAnnotationWatermarkFromDict (_cgbf *_ac .PdfObjectDictionary )(*PdfAnnotationWatermark ,error ){_faef :=PdfAnnotationWatermark {};_faef .FixedPrint =_cgbf .Get ("\u0046\u0069\u0078\u0065\u0064\u0050\u0072\u0069\u006e\u0074");
return &_faef ,nil ;};
// HasExtGState checks if ExtGState name is available.
func (_cdcacg *PdfPage )HasExtGState (name _ac .PdfObjectName )bool {if _cdcacg .Resources ==nil {return false ;};if _cdcacg .Resources .ExtGState ==nil {return false ;};_ffcca ,_cbdag :=_ac .TraceToDirectObject (_cdcacg .Resources .ExtGState ).(*_ac .PdfObjectDictionary );
if !_cbdag {_gd .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",_ac .TraceToDirectObject (_cdcacg .Resources .ExtGState ));
return false ;};_fgdbga :=_ffcca .Get (name );_bfcba :=_fgdbga !=nil ;return _bfcba ;};
// PdfColorPatternType2 represents a color shading pattern type 2 (Axial).
type PdfColorPatternType2 struct{Color PdfColor ;PatternName _ac .PdfObjectName ;};
// ToImage converts an object to an Image which can be transformed or saved out.
// The image data is decoded and the Image returned.
func (_fcbbb *XObjectImage )ToImage ()(*Image ,error ){_dbged :=&Image {};if _fcbbb .Height ==nil {return nil ,_af .New ("\u0068e\u0069\u0067\u0068\u0074\u0020\u0061\u0074\u0074\u0072\u0069\u0062u\u0074\u0065\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");
};_dbged .Height =*_fcbbb .Height ;if _fcbbb .Width ==nil {return nil ,_af .New ("\u0077\u0069\u0064th\u0020\u0061\u0074\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};_dbged .Width =*_fcbbb .Width ;if _fcbbb .BitsPerComponent ==nil {switch _fcbbb .Filter .(type ){case *_ac .CCITTFaxEncoder ,*_ac .JBIG2Encoder :_dbged .BitsPerComponent =1;
case *_ac .LZWEncoder ,*_ac .RunLengthEncoder :_dbged .BitsPerComponent =8;default:return nil ,_af .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 {_dbged .BitsPerComponent =*_fcbbb .BitsPerComponent ;};_dbged .ColorComponents =_fcbbb .ColorSpace .GetNumComponents ();_fcbbb ._gfbdff .Set ("\u0043o\u006co\u0072\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074\u0073",_ac .MakeInteger (int64 (_dbged .ColorComponents )));
_bdbgb ,_gffaa :=_ac .DecodeStream (_fcbbb ._gfbdff );if _gffaa !=nil {return nil ,_gffaa ;};_dbged .Data =_bdbgb ;if _fcbbb .Decode !=nil {_agedc ,_beefc :=_fcbbb .Decode .(*_ac .PdfObjectArray );if !_beefc {_gd .Log .Debug ("I\u006e\u0076\u0061\u006cid\u0020D\u0065\u0063\u006f\u0064\u0065 \u006f\u0062\u006a\u0065\u0063\u0074");
return nil ,_af .New ("\u0069\u006e\u0076a\u006c\u0069\u0064\u0020\u0074\u0079\u0070\u0065");};_gfcdc ,_ffcdc :=_agedc .ToFloat64Array ();if _ffcdc !=nil {return nil ,_ffcdc ;};_dbged ._gffd =_gfcdc ;};return _dbged ,nil ;};
// NewPdfColorspaceCalGray returns a new CalGray colorspace object.
func NewPdfColorspaceCalGray ()*PdfColorspaceCalGray {_afgg :=&PdfColorspaceCalGray {};_afgg .BlackPoint =[]float64 {0.0,0.0,0.0};_afgg .Gamma =1;return _afgg ;};func (_gfab *PdfColorspaceSpecialSeparation )String ()string {return "\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e";
};
// PdfAnnotationPopup represents Popup annotations.
// (Section 12.5.6.14).
type PdfAnnotationPopup struct{*PdfAnnotation ;Parent _ac .PdfObject ;Open _ac .PdfObject ;};
// ToPdfObject implements interface PdfModel.
func (_dbg *PdfActionMovie )ToPdfObject ()_ac .PdfObject {_dbg .PdfAction .ToPdfObject ();_fcg :=_dbg ._eef ;_eagd :=_fcg .PdfObject .(*_ac .PdfObjectDictionary );_eagd .SetIfNotNil ("\u0053",_ac .MakeName (string (ActionTypeMovie )));_eagd .SetIfNotNil ("\u0041\u006e\u006e\u006f\u0074\u0061\u0074\u0069\u006f\u006e",_dbg .Annotation );
_eagd .SetIfNotNil ("\u0054",_dbg .T );_eagd .SetIfNotNil ("\u004fp\u0065\u0072\u0061\u0074\u0069\u006fn",_dbg .Operation );return _fcg ;};
// 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 (_aedcb *Image )SetSamples (samples []uint32 ){if _aedcb .BitsPerComponent < 8{samples =_aedcb .samplesAddPadding (samples );};_ccbcd :=_cg .ResampleUint32 (samples ,int (_aedcb .BitsPerComponent ),8);_aaef :=make ([]byte ,len (_ccbcd ));for _faed ,_aafd :=range _ccbcd {_aaef [_faed ]=byte (_aafd );
};_aedcb .Data =_aaef ;};
// 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 (_efcf *PdfFont )StringToCharcodeBytes (str string )([]byte ,int ){return _efcf .RunesToCharcodeBytes ([]rune (str ));};
// 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 []*_ac .PdfObjectStream ;OCSP []*_ac .PdfObjectStream ;CRL []*_ac .PdfObjectStream ;TU *_ac .PdfObjectString ;TS *_ac .PdfObjectString ;};func (_gffgg *PdfAcroForm )fill (_ddgc FieldValueProvider ,_addc FieldAppearanceGenerator )error {if _gffgg ==nil {return nil ;
};_cece ,_bedf :=_ddgc .FieldValues ();if _bedf !=nil {return _bedf ;};for _ ,_cddd :=range _gffgg .AllFields (){_eeccb :=_cddd .PartialName ();_ccggdf ,_abcfe :=_cece [_eeccb ];if !_abcfe {if _decb ,_ggeg :=_cddd .FullName ();_ggeg ==nil {_ccggdf ,_abcfe =_cece [_decb ];
};};if !_abcfe {_gd .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",_eeccb );
continue ;};if _dffbf :=_ddgea (_cddd ,_ccggdf );_dffbf !=nil {return _dffbf ;};if _addc ==nil {continue ;};for _ ,_aeaee :=range _cddd .Annotations {_gead ,_ebab :=_addc .GenerateAppearanceDict (_gffgg ,_cddd ,_aeaee );if _ebab !=nil {return _ebab ;};
_aeaee .AP =_gead ;_aeaee .ToPdfObject ();};};return nil ;};
// GetPage returns the PdfPage model for the specified page number.
func (_cefda *PdfReader )GetPage (pageNumber int )(*PdfPage ,error ){if _cefda ._eebeg .GetCrypter ()!=nil &&!_cefda ._eebeg .IsAuthenticated (){return nil ,_d .Errorf ("\u0066\u0069\u006c\u0065\u0020\u006e\u0065\u0065\u0064\u0073\u0020\u0074\u006f\u0020\u0062e\u0020d\u0065\u0063\u0072\u0079\u0070\u0074\u0065\u0064\u0020\u0066\u0069\u0072\u0073\u0074");
};if len (_cefda ._acca )< pageNumber {return nil ,_af .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");
};_cddc :=pageNumber -1;if _cddc < 0{return nil ,_d .Errorf ("\u0070\u0061\u0067\u0065\u0020\u006e\u0075\u006d\u0062\u0065r\u0069\u006e\u0067\u0020\u006d\u0075\u0073t\u0020\u0073\u0074\u0061\u0072\u0074\u0020\u0061\u0074\u0020\u0031");};_ddfdg :=_cefda .PageList [_cddc ];
return _ddfdg ,nil ;};
// NewPdfColorPatternType2 returns an empty color shading pattern type 2 (Axial).
func NewPdfColorPatternType2 ()*PdfColorPatternType2 {_fafad :=&PdfColorPatternType2 {};return _fafad ;};func (_becag fontCommon )asPdfObjectDictionary (_edeb string )*_ac .PdfObjectDictionary {if _edeb !=""&&_becag ._efebg !=""&&_edeb !=_becag ._efebg {_gd .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",_edeb ,_becag );
}else if _edeb ==""&&_becag ._efebg ==""{_gd .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",_becag );
}else if _becag ._efebg ==""{_becag ._efebg =_edeb ;};_debg :=_ac .MakeDict ();_debg .Set ("\u0054\u0079\u0070\u0065",_ac .MakeName ("\u0046\u006f\u006e\u0074"));_debg .Set ("\u0042\u0061\u0073\u0065\u0046\u006f\u006e\u0074",_ac .MakeName (_becag ._abab ));
_debg .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ac .MakeName (_becag ._efebg ));if _becag ._bgbdc !=nil {_debg .Set ("\u0046\u006f\u006e\u0074\u0044\u0065\u0073\u0063\u0072i\u0070\u0074\u006f\u0072",_becag ._bgbdc .ToPdfObject ());};if _becag ._babg !=nil {_debg .Set ("\u0054o\u0055\u006e\u0069\u0063\u006f\u0064e",_becag ._babg );
}else if _becag ._acbbb !=nil {_fecdc ,_ccafc :=_becag ._acbbb .Stream ();if _ccafc !=nil {_gd .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",_ccafc );
}else {_debg .Set ("\u0054o\u0055\u006e\u0069\u0063\u006f\u0064e",_fecdc );};};return _debg ;};
// ToPdfOutlineItem returns a low level PdfOutlineItem object,
// based on the current instance.
func (_dace *OutlineItem )ToPdfOutlineItem ()(*PdfOutlineItem ,int64 ){_gffdg :=NewPdfOutlineItem ();_gffdg .Title =_ac .MakeEncodedString (_dace .Title ,true );_gffdg .Dest =_dace .Dest .ToPdfObject ();var _fbfae []*PdfOutlineItem ;var _aceaf int64 ;var _fcff *PdfOutlineItem ;
for _ ,_bada :=range _dace .Entries {_adgcc ,_fbbgc :=_bada .ToPdfOutlineItem ();_adgcc .Parent =&_gffdg .PdfOutlineTreeNode ;if _fcff !=nil {_fcff .Next =&_adgcc .PdfOutlineTreeNode ;_adgcc .Prev =&_fcff .PdfOutlineTreeNode ;};_fbfae =append (_fbfae ,_adgcc );
_aceaf +=_fbbgc ;_fcff =_adgcc ;};_dbbb :=len (_fbfae );_aceaf +=int64 (_dbbb );if _dbbb > 0{_gffdg .First =&_fbfae [0].PdfOutlineTreeNode ;_gffdg .Last =&_fbfae [_dbbb -1].PdfOutlineTreeNode ;_gffdg .Count =&_aceaf ;};return _gffdg ,_aceaf ;};var _ pdfFont =(*pdfFontSimple )(nil );
// GetNumComponents returns the number of color components (4 for CMYK32).
func (_gabg *PdfColorDeviceCMYK )GetNumComponents ()int {return 4};
// 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 ;_gege _ac .ParserMetadata ;};func (_bbeg *pdfCIDFontType0 )getFontDescriptor ()*PdfFontDescriptor {return _bbeg ._bgbdc };
// AddWatermarkImage adds a watermark to the page.
func (_fbdcb *PdfPage )AddWatermarkImage (ximg *XObjectImage ,opt WatermarkImageOptions )error {_baffg ,_cfede :=_fbdcb .GetMediaBox ();if _cfede !=nil {return _cfede ;};_decc :=_baffg .Urx -_baffg .Llx ;_gbbdf :=_baffg .Ury -_baffg .Lly ;_aagbf :=float64 (*ximg .Width );
_edbcd :=(_decc -_aagbf )/2;if opt .FitToWidth {_aagbf =_decc ;_edbcd =0;};_beaff :=_gbbdf ;_eggae :=float64 (0);if opt .PreserveAspectRatio {_beaff =_aagbf *float64 (*ximg .Height )/float64 (*ximg .Width );_eggae =(_gbbdf -_beaff )/2;};if _fbdcb .Resources ==nil {_fbdcb .Resources =NewPdfPageResources ();
};_caafa :=0;_abgdb :=_ac .PdfObjectName (_d .Sprintf ("\u0049\u006d\u0077%\u0064",_caafa ));for _fbdcb .Resources .HasXObjectByName (_abgdb ){_caafa ++;_abgdb =_ac .PdfObjectName (_d .Sprintf ("\u0049\u006d\u0077%\u0064",_caafa ));};_cfede =_fbdcb .AddImageResource (_abgdb ,ximg );
if _cfede !=nil {return _cfede ;};_caafa =0;_ebabg :=_ac .PdfObjectName (_d .Sprintf ("\u0047\u0053\u0025\u0064",_caafa ));for _fbdcb .HasExtGState (_ebabg ){_caafa ++;_ebabg =_ac .PdfObjectName (_d .Sprintf ("\u0047\u0053\u0025\u0064",_caafa ));};_ddefc :=_ac .MakeDict ();
_ddefc .Set ("\u0042\u004d",_ac .MakeName ("\u004e\u006f\u0072\u006d\u0061\u006c"));_ddefc .Set ("\u0043\u0041",_ac .MakeFloat (opt .Alpha ));_ddefc .Set ("\u0063\u0061",_ac .MakeFloat (opt .Alpha ));_cfede =_fbdcb .AddExtGState (_ebabg ,_ddefc );if _cfede !=nil {return _cfede ;
};_gffa :=_d .Sprintf ("\u0071\u000a"+"\u002f%\u0073\u0020\u0067\u0073\u000a"+"%\u002e\u0030\u0066\u0020\u0030\u00200\u0020\u0025\u002e\u0030\u0066\u0020\u0025\u002e\u0034f\u0020\u0025\u002e4\u0066 \u0063\u006d\u000a"+"\u002f%\u0073\u0020\u0044\u006f\u000a"+"\u0051",_ebabg ,_aagbf ,_beaff ,_edbcd ,_eggae ,_abgdb );
_fbdcb .AddContentStreamByString (_gffa );return nil ;};func _abgae ()string {_abba :="\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 _gdecf _fd .Buffer ;
for _dgfca :=0;_dgfca < 6;_dgfca ++{_gdecf .WriteRune (rune (_abba [_be .Intn (len (_abba ))]));};return _gdecf .String ();};
// ToPdfObject implements interface PdfModel.
func (_cdcb *PdfAnnotationLink )ToPdfObject ()_ac .PdfObject {_cdcb .PdfAnnotation .ToPdfObject ();_gcdf :=_cdcb ._fegd ;_caee :=_gcdf .PdfObject .(*_ac .PdfObjectDictionary );_caee .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ac .MakeName ("\u004c\u0069\u006e\u006b"));
if _cdcb ._abaf !=nil &&_cdcb ._abaf ._gc !=nil {_caee .Set ("\u0041",_cdcb ._abaf ._gc .ToPdfObject ());}else if _cdcb .A !=nil {_caee .Set ("\u0041",_cdcb .A );};_caee .SetIfNotNil ("\u0044\u0065\u0073\u0074",_cdcb .Dest );_caee .SetIfNotNil ("\u0048",_cdcb .H );
_caee .SetIfNotNil ("\u0050\u0041",_cdcb .PA );_caee .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_cdcb .QuadPoints );_caee .SetIfNotNil ("\u0042\u0053",_cdcb .BS );return _gcdf ;};
// 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 *_ac .PdfIndirectObject `json:"-"`;Page int64 `json:"page"`;Mode string `json:"mode"`;X float64 `json:"x"`;Y float64 `json:"y"`;Zoom float64 `json:"zoom"`;};
// ToPdfObject implements interface PdfModel.
func (_gggf *PdfAnnotationRichMedia )ToPdfObject ()_ac .PdfObject {_gggf .PdfAnnotation .ToPdfObject ();_eeae :=_gggf ._fegd ;_affe :=_eeae .PdfObject .(*_ac .PdfObjectDictionary );_affe .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ac .MakeName ("\u0052i\u0063\u0068\u004d\u0065\u0064\u0069a"));
_affe .SetIfNotNil ("\u0052\u0069\u0063\u0068\u004d\u0065\u0064\u0069\u0061\u0053\u0065\u0074t\u0069\u006e\u0067\u0073",_gggf .RichMediaSettings );_affe .SetIfNotNil ("\u0052\u0069c\u0068\u004d\u0065d\u0069\u0061\u0043\u006f\u006e\u0074\u0065\u006e\u0074",_gggf .RichMediaContent );
return _eeae ;};
// String returns a string representation of what flags are set.
func (_gaafc FieldFlag )String ()string {_adec :="";if _gaafc ==FieldFlagClear {_adec ="\u0043\u006c\u0065a\u0072";return _adec ;};if _gaafc &FieldFlagReadOnly > 0{_adec +="\u007cR\u0065\u0061\u0064\u004f\u006e\u006cy";};if _gaafc &FieldFlagRequired > 0{_adec +="\u007cR\u0065\u0071\u0075\u0069\u0072\u0065d";
};if _gaafc &FieldFlagNoExport > 0{_adec +="\u007cN\u006f\u0045\u0078\u0070\u006f\u0072t";};if _gaafc &FieldFlagNoToggleToOff > 0{_adec +="\u007c\u004e\u006f\u0054\u006f\u0067\u0067\u006c\u0065T\u006f\u004f\u0066\u0066";};if _gaafc &FieldFlagRadio > 0{_adec +="\u007c\u0052\u0061\u0064\u0069\u006f";
};if _gaafc &FieldFlagPushbutton > 0{_adec +="|\u0050\u0075\u0073\u0068\u0062\u0075\u0074\u0074\u006f\u006e";};if _gaafc &FieldFlagRadiosInUnision > 0{_adec +="\u007c\u0052a\u0064\u0069\u006fs\u0049\u006e\u0055\u006e\u0069\u0073\u0069\u006f\u006e";};if _gaafc &FieldFlagMultiline > 0{_adec +="\u007c\u004d\u0075\u006c\u0074\u0069\u006c\u0069\u006e\u0065";
};if _gaafc &FieldFlagPassword > 0{_adec +="\u007cP\u0061\u0073\u0073\u0077\u006f\u0072d";};if _gaafc &FieldFlagFileSelect > 0{_adec +="|\u0046\u0069\u006c\u0065\u0053\u0065\u006c\u0065\u0063\u0074";};if _gaafc &FieldFlagDoNotScroll > 0{_adec +="\u007c\u0044\u006fN\u006f\u0074\u0053\u0063\u0072\u006f\u006c\u006c";
};if _gaafc &FieldFlagComb > 0{_adec +="\u007c\u0043\u006fm\u0062";};if _gaafc &FieldFlagRichText > 0{_adec +="\u007cR\u0069\u0063\u0068\u0054\u0065\u0078t";};if _gaafc &FieldFlagDoNotSpellCheck > 0{_adec +="\u007c\u0044o\u004e\u006f\u0074S\u0070\u0065\u006c\u006c\u0043\u0068\u0065\u0063\u006b";
};if _gaafc &FieldFlagCombo > 0{_adec +="\u007c\u0043\u006f\u006d\u0062\u006f";};if _gaafc &FieldFlagEdit > 0{_adec +="\u007c\u0045\u0064i\u0074";};if _gaafc &FieldFlagSort > 0{_adec +="\u007c\u0053\u006fr\u0074";};if _gaafc &FieldFlagMultiSelect > 0{_adec +="\u007c\u004d\u0075l\u0074\u0069\u0053\u0065\u006c\u0065\u0063\u0074";
};if _gaafc &FieldFlagCommitOnSelChange > 0{_adec +="\u007cC\u006fm\u006d\u0069\u0074\u004f\u006eS\u0065\u006cC\u0068\u0061\u006e\u0067\u0065";};return _fg .Trim (_adec ,"\u007c");};
// GetNumComponents returns the number of color components (3 for Lab).
func (_fbgc *PdfColorLab )GetNumComponents ()int {return 3};func (_fafg *pdfCIDFontType0 )baseFields ()*fontCommon {return &_fafg .fontCommon };
// PdfOutline represents a PDF outline dictionary (Table 152 - p. 376).
type PdfOutline struct{PdfOutlineTreeNode ;Parent *PdfOutlineTreeNode ;Count *int64 ;_eggfe *_ac .PdfIndirectObject ;};
// ToPdfObject implements interface PdfModel.
// Note: Call the sub-annotation's ToPdfObject to set both the generic and non-generic information.
func (_cbgf *PdfAnnotation )ToPdfObject ()_ac .PdfObject {_dbeag :=_cbgf ._fegd ;_gadc :=_dbeag .PdfObject .(*_ac .PdfObjectDictionary );_gadc .Clear ();_gadc .Set ("\u0054\u0079\u0070\u0065",_ac .MakeName ("\u0041\u006e\u006eo\u0074"));_gadc .SetIfNotNil ("\u0052\u0065\u0063\u0074",_cbgf .Rect );
_gadc .SetIfNotNil ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073",_cbgf .Contents );_gadc .SetIfNotNil ("\u0050",_cbgf .P );_gadc .SetIfNotNil ("\u004e\u004d",_cbgf .NM );_gadc .SetIfNotNil ("\u004d",_cbgf .M );_gadc .SetIfNotNil ("\u0046",_cbgf .F );
_gadc .SetIfNotNil ("\u0041\u0050",_cbgf .AP );_gadc .SetIfNotNil ("\u0041\u0053",_cbgf .AS );_gadc .SetIfNotNil ("\u0042\u006f\u0072\u0064\u0065\u0072",_cbgf .Border );_gadc .SetIfNotNil ("\u0043",_cbgf .C );_gadc .SetIfNotNil ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074",_cbgf .StructParent );
_gadc .SetIfNotNil ("\u004f\u0043",_cbgf .OC );return _dbeag ;};
// SetContext sets the specific fielddata type, e.g. would be PdfFieldButton for a button field.
func (_efdcag *PdfField )SetContext (ctx PdfModel ){_efdcag ._edab =ctx };
// AddExtGState adds a graphics state to the XObject resources.
func (_bgbgf *PdfPage )AddExtGState (name _ac .PdfObjectName ,egs *_ac .PdfObjectDictionary )error {if _bgbgf .Resources ==nil {_bgbgf .Resources =NewPdfPageResources ();};if _bgbgf .Resources .ExtGState ==nil {_bgbgf .Resources .ExtGState =_ac .MakeDict ();
};_bdbcd ,_fgffg :=_ac .TraceToDirectObject (_bgbgf .Resources .ExtGState ).(*_ac .PdfObjectDictionary );if !_fgffg {_gd .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",_ac .TraceToDirectObject (_bgbgf .Resources .ExtGState ));
return _af .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_bdbcd .Set (name ,egs );return nil ;};func _eeaagf (_dbbg *fontCommon )*pdfCIDFontType0 {return &pdfCIDFontType0 {fontCommon :*_dbbg }};func _edcgd (_efga ,_agcba string )string {if _fg .Contains (_efga ,"\u002b"){_cfbd :=_fg .Split (_efga ,"\u002b");
if len (_cfbd )==2{_efga =_cfbd [1];};};return _agcba +"\u002b"+_efga ;};
// FieldAppearanceGenerator generates appearance stream for a given field.
type FieldAppearanceGenerator interface{ContentStreamWrapper ;GenerateAppearanceDict (_cdd *PdfAcroForm ,_cbda *PdfField ,_gbef *PdfAnnotationWidget )(*_ac .PdfObjectDictionary ,error );};
// 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 ){_caadg ,_bcbe :=_cef .Open (filePath );if _bcbe !=nil {_gd .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",_bcbe );
return nil ,_bcbe ;};defer _caadg .Close ();return NewPdfFontFromTTF (_caadg );};
// ColorFromFloats returns a new PdfColor based on input color components.
func (_fdae *PdfColorspaceDeviceN )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=_fdae .GetNumComponents (){return nil ,_af .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_bgdca ,_abgf :=_fdae .TintTransform .Evaluate (vals );
if _abgf !=nil {return nil ,_abgf ;};_cefe ,_abgf :=_fdae .AlternateSpace .ColorFromFloats (_bgdca );if _abgf !=nil {return nil ,_abgf ;};return _cefe ,nil ;};
// NewPdfAction returns an initialized generic PDF action model.
func NewPdfAction ()*PdfAction {_bdg :=&PdfAction {};_bdg ._eef =_ac .MakeIndirectObject (_ac .MakeDict ());return _bdg ;};func (_dccd *PdfAppender )mergeResources (_ffba ,_fgdgc _ac .PdfObject ,_aeaa map[_ac .PdfObjectName ]_ac .PdfObjectName )_ac .PdfObject {if _fgdgc ==nil &&_ffba ==nil {return nil ;
};if _fgdgc ==nil {return _ffba ;};_fdcd ,_gbgd :=_ac .GetDict (_fgdgc );if !_gbgd {return _ffba ;};if _ffba ==nil {_dce :=_ac .MakeDict ();_dce .Merge (_fdcd );return _fgdgc ;};_eeec ,_gbgd :=_ac .GetDict (_ffba );if !_gbgd {_gd .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");
_eeec =_ac .MakeDict ();};for _ ,_bfcb :=range _fdcd .Keys (){if _fabae ,_fgad :=_aeaa [_bfcb ];_fgad {_eeec .Set (_fabae ,_fdcd .Get (_bfcb ));}else {_eeec .Set (_bfcb ,_fdcd .Get (_bfcb ));};};return _eeec ;};
// NewPdfActionGoTo3DView returns a new "goTo3DView" action.
func NewPdfActionGoTo3DView ()*PdfActionGoTo3DView {_acf :=NewPdfAction ();_dcdb :=&PdfActionGoTo3DView {};_dcdb .PdfAction =_acf ;_acf .SetContext (_dcdb );return _dcdb ;};func (_dfbg *PdfFunctionType0 )processSamples ()error {_dafbf :=_cg .ResampleBytes (_dfbg ._egecf ,_dfbg .BitsPerSample );
_dfbg ._gfec =_dafbf ;return nil ;};func (_dagbd *PdfWriter )writeObjects (){_gd .Log .Trace ("\u0057\u0072\u0069\u0074\u0069\u006e\u0067\u0020\u0025d\u0020\u006f\u0062\u006a",len (_dagbd ._gdeaf ));_dagbd ._ggbab =make (map[int ]crossReference );_dagbd ._ggbab [0]=crossReference {Type :0,ObjectNumber :0,Generation :0xFFFF};
if _dagbd ._febgg .ObjectMap !=nil {for _gffdb ,_bbcfa :=range _dagbd ._febgg .ObjectMap {if _gffdb ==0{continue ;};if _bbcfa .XType ==_ac .XrefTypeObjectStream {_efbda :=crossReference {Type :2,ObjectNumber :_bbcfa .OsObjNumber ,Index :_bbcfa .OsObjIndex };
_dagbd ._ggbab [_gffdb ]=_efbda ;};if _bbcfa .XType ==_ac .XrefTypeTableEntry {_aedcd :=crossReference {Type :1,ObjectNumber :_bbcfa .ObjectNumber ,Offset :_bbcfa .Offset };_dagbd ._ggbab [_gffdb ]=_aedcd ;};};};};func (_ggfdg *PdfWriter )flushWriter ()error {if _ggfdg ._adace ==nil {_ggfdg ._adace =_ggfdg ._abad .Flush ();
};return _ggfdg ._adace ;};
// ToPdfObject returns the PDF representation of the colorspace.
func (_abfe *PdfColorspaceDeviceCMYK )ToPdfObject ()_ac .PdfObject {return _ac .MakeName ("\u0044\u0065\u0076\u0069\u0063\u0065\u0043\u004d\u0059\u004b");};
// ToPdfObject converts the pdfFontSimple to its PDF representation for outputting.
func (_dbgdg *pdfFontSimple )ToPdfObject ()_ac .PdfObject {if _dbgdg ._bbff ==nil {_dbgdg ._bbff =&_ac .PdfIndirectObject {};};_dgeb :=_dbgdg .baseFields ().asPdfObjectDictionary ("");_dbgdg ._bbff .PdfObject =_dgeb ;if _dbgdg .FirstChar !=nil {_dgeb .Set ("\u0046i\u0072\u0073\u0074\u0043\u0068\u0061r",_dbgdg .FirstChar );
};if _dbgdg .LastChar !=nil {_dgeb .Set ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072",_dbgdg .LastChar );};if _dbgdg .Widths !=nil {_dgeb .Set ("\u0057\u0069\u0064\u0074\u0068\u0073",_dbgdg .Widths );};if _dbgdg .Encoding !=nil {_dgeb .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_dbgdg .Encoding );
}else if _dbgdg ._caed !=nil {_gfea :=_dbgdg ._caed .ToPdfObject ();if _gfea !=nil {_dgeb .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_gfea );};};return _dbgdg ._bbff ;};
// SetXObjectImageByName adds the provided XObjectImage to the page resources.
// The added XObjectImage is identified by the specified name.
func (_gaef *PdfPageResources )SetXObjectImageByName (keyName _ac .PdfObjectName ,ximg *XObjectImage )error {_dfcf :=ximg .ToPdfObject ().(*_ac .PdfObjectStream );_afede :=_gaef .SetXObjectByName (keyName ,_dfcf );return _afede ;};const (_ PdfOutputIntentType =iota ;
PdfOutputIntentTypeA1 ;PdfOutputIntentTypeA2 ;PdfOutputIntentTypeA3 ;PdfOutputIntentTypeA4 ;PdfOutputIntentTypeX ;);
// ToPdfObject returns colorspace in a PDF object format [name stream]
func (_aecb *PdfColorspaceICCBased )ToPdfObject ()_ac .PdfObject {_bbed :=&_ac .PdfObjectArray {};_bbed .Append (_ac .MakeName ("\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064"));var _cecg *_ac .PdfObjectStream ;if _aecb ._gafd !=nil {_cecg =_aecb ._gafd ;
}else {_cecg =&_ac .PdfObjectStream {};};_ecbfg :=_ac .MakeDict ();_ecbfg .Set ("\u004e",_ac .MakeInteger (int64 (_aecb .N )));if _aecb .Alternate !=nil {_ecbfg .Set ("\u0041l\u0074\u0065\u0072\u006e\u0061\u0074e",_aecb .Alternate .ToPdfObject ());};if _aecb .Metadata !=nil {_ecbfg .Set ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061",_aecb .Metadata );
};if _aecb .Range !=nil {var _cccc []_ac .PdfObject ;for _ ,_gdab :=range _aecb .Range {_cccc =append (_cccc ,_ac .MakeFloat (_gdab ));};_ecbfg .Set ("\u0052\u0061\u006eg\u0065",_ac .MakeArray (_cccc ...));};_ecbfg .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_ac .MakeInteger (int64 (len (_aecb .Data ))));
_cecg .Stream =_aecb .Data ;_cecg .PdfObjectDictionary =_ecbfg ;_bbed .Append (_cecg );if _aecb ._eeaa !=nil {_aecb ._eeaa .PdfObject =_bbed ;return _aecb ._eeaa ;};return _bbed ;};
// 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 *_ac .PdfObjectStream ;Data []byte ;_eeaa *_ac .PdfIndirectObject ;_gafd *_ac .PdfObjectStream ;};
// 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 ,_egeec :_ac .MakeDict (),ColorComponents :colorComponents };
};
// NewPdfColorspaceCalRGB returns a new CalRGB colorspace object.
func NewPdfColorspaceCalRGB ()*PdfColorspaceCalRGB {_eafb :=&PdfColorspaceCalRGB {};_eafb .BlackPoint =[]float64 {0.0,0.0,0.0};_eafb .Gamma =[]float64 {1.0,1.0,1.0};_eafb .Matrix =[]float64 {1,0,0,0,1,0,0,0,1};return _eafb ;};func (_facg *PdfAppender )updateObjectsDeep (_bbda _ac .PdfObject ,_fddc map[_ac .PdfObject ]struct{}){if _fddc ==nil {_fddc =map[_ac .PdfObject ]struct{}{};
};if _ ,_aebc :=_fddc [_bbda ];_aebc ||_bbda ==nil {return ;};_fddc [_bbda ]=struct{}{};_bbaa :=_ac .ResolveReferencesDeep (_bbda ,_facg ._gbe );if _bbaa !=nil {_gd .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_bbaa );};switch _cfda :=_bbda .(type ){case *_ac .PdfIndirectObject :switch {case _cfda .GetParser ()==_facg ._cbdcd ._eebeg :return ;
case _cfda .GetParser ()==_facg .Reader ._eebeg :_ceac ,_ :=_facg ._cbdcd .GetIndirectObjectByNumber (int (_cfda .ObjectNumber ));_bgfb ,_cda :=_ceac .(*_ac .PdfIndirectObject );if _cda &&_bgfb !=nil {if _bgfb .PdfObject !=_cfda .PdfObject &&_bgfb .PdfObject .WriteString ()!=_cfda .PdfObject .WriteString (){_facg .addNewObject (_bbda );
_facg ._degfa [_bbda ]=_cfda .ObjectNumber ;};};default:_facg .addNewObject (_bbda );};_facg .updateObjectsDeep (_cfda .PdfObject ,_fddc );case *_ac .PdfObjectArray :for _ ,_abbb :=range _cfda .Elements (){_facg .updateObjectsDeep (_abbb ,_fddc );};case *_ac .PdfObjectDictionary :for _ ,_aaec :=range _cfda .Keys (){_facg .updateObjectsDeep (_cfda .Get (_aaec ),_fddc );
};case *_ac .PdfObjectStreams :if _cfda .GetParser ()!=_facg ._cbdcd ._eebeg {for _ ,_cbce :=range _cfda .Elements (){_facg .updateObjectsDeep (_cbce ,_fddc );};};case *_ac .PdfObjectStream :switch {case _cfda .GetParser ()==_facg ._cbdcd ._eebeg :return ;
case _cfda .GetParser ()==_facg .Reader ._eebeg :if _eaae ,_edf :=_facg ._cbdcd ._eebeg .LookupByReference (_cfda .PdfObjectReference );_edf ==nil {var _eab bool ;if _efac ,_gbf :=_ac .GetStream (_eaae );_gbf &&_fd .Equal (_efac .Stream ,_cfda .Stream ){_eab =true ;
};if _cgea ,_ddae :=_ac .GetDict (_eaae );_eab &&_ddae {_eab =_cgea .WriteString ()==_cfda .PdfObjectDictionary .WriteString ();};if _eab {return ;};};if _cfda .ObjectNumber !=0{_facg ._degfa [_bbda ]=_cfda .ObjectNumber ;};default:if _ ,_eefbd :=_facg ._eddbd [_bbda ];
!_eefbd {_facg .addNewObject (_bbda );};};_facg .updateObjectsDeep (_cfda .PdfObjectDictionary ,_fddc );};};
// NewReaderForText makes a new PdfReader for an input PDF content string. For use in testing.
func NewReaderForText (txt string )*PdfReader {return &PdfReader {_cccb :map[_ac .PdfObject ]struct{}{},_gbced :_ddabf (),_eebeg :_ac .NewParserFromString (txt )};};
// 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 ;_egeec *_ac .PdfObjectDictionary ;};
// PdfShadingPatternType3 is shading patterns that will use a Type 3 shading pattern (Radial).
type PdfShadingPatternType3 struct{*PdfPattern ;Shading *PdfShadingType3 ;Matrix *_ac .PdfObjectArray ;ExtGState _ac .PdfObject ;};
// ToPdfObject implements interface PdfModel.
func (_dcaf *PdfAnnotationHighlight )ToPdfObject ()_ac .PdfObject {_dcaf .PdfAnnotation .ToPdfObject ();_dga :=_dcaf ._fegd ;_aefe :=_dga .PdfObject .(*_ac .PdfObjectDictionary );_dcaf .PdfAnnotationMarkup .appendToPdfDictionary (_aefe );_aefe .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ac .MakeName ("\u0048i\u0067\u0068\u006c\u0069\u0067\u0068t"));
_aefe .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_dcaf .QuadPoints );return _dga ;};func _dacaa (_bcfa *_ac .PdfObjectDictionary )(*PdfFieldButton ,error ){_baged :=&PdfFieldButton {};_baged .PdfField =NewPdfField ();_baged .PdfField .SetContext (_baged );
_baged .Opt ,_ =_ac .GetArray (_bcfa .Get ("\u004f\u0070\u0074"));_bbcea :=NewPdfAnnotationWidget ();_bbcea .A ,_ =_ac .GetDict (_bcfa .Get ("\u0041"));_bbcea .AP ,_ =_ac .GetDict (_bcfa .Get ("\u0041\u0050"));_bbcea .SetContext (_baged );_baged .PdfField .Annotations =append (_baged .PdfField .Annotations ,_bbcea );
return _baged ,nil ;};func _afeg (_dbaae *_ac .PdfObjectDictionary )(*PdfShadingType5 ,error ){_bbag :=PdfShadingType5 {};_gcabc :=_dbaae .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065");if _gcabc ==nil {_gd .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 ;};_badc ,_gdag :=_gcabc .(*_ac .PdfObjectInteger );if !_gdag {_gd .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",_gcabc );
return nil ,_ac .ErrTypeError ;};_bbag .BitsPerCoordinate =_badc ;_gcabc =_dbaae .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074");if _gcabc ==nil {_gd .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 ;};_badc ,_gdag =_gcabc .(*_ac .PdfObjectInteger );if !_gdag {_gd .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",_gcabc );
return nil ,_ac .ErrTypeError ;};_bbag .BitsPerComponent =_badc ;_gcabc =_dbaae .Get ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073\u0050e\u0072\u0052\u006f\u0077");if _gcabc ==nil {_gd .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 ;};_badc ,_gdag =_gcabc .(*_ac .PdfObjectInteger );if !_gdag {_gd .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",_gcabc );
return nil ,_ac .ErrTypeError ;};_bbag .VerticesPerRow =_badc ;_gcabc =_dbaae .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");if _gcabc ==nil {_gd .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 ;};_abdab ,_gdag :=_gcabc .(*_ac .PdfObjectArray );if !_gdag {_gd .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",_gcabc );
return nil ,_ac .ErrTypeError ;};_bbag .Decode =_abdab ;if _eddg :=_dbaae .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");_eddg !=nil {_bbag .Function =[]PdfFunction {};if _dgbcb ,_dceb :=_eddg .(*_ac .PdfObjectArray );_dceb {for _ ,_ecedc :=range _dgbcb .Elements (){_dfbdg ,_cedbe :=_gcddf (_ecedc );
if _cedbe !=nil {_gd .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",_cedbe );return nil ,_cedbe ;};_bbag .Function =append (_bbag .Function ,_dfbdg );
};}else {_dcgfd ,_acbbfb :=_gcddf (_eddg );if _acbbfb !=nil {_gd .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",_acbbfb );return nil ,_acbbfb ;
};_bbag .Function =append (_bbag .Function ,_dcgfd );};};return &_bbag ,nil ;};
// SetPdfKeywords sets the Keywords attribute of the output PDF.
func SetPdfKeywords (keywords string ){_gcaaba .Lock ();defer _gcaaba .Unlock ();_dccb =keywords };const (BorderEffectNoEffect BorderEffect =iota ;BorderEffectCloudy BorderEffect =iota ;);
// Encrypt encrypts the output file with a specified user/owner password.
func (_fgbag *PdfWriter )Encrypt (userPass ,ownerPass []byte ,options *EncryptOptions )error {_bdfee :=RC4_128bit ;if options !=nil {_bdfee =options .Algorithm ;};_abbff :=_eece .PermOwner ;if options !=nil {_abbff =options .Permissions ;};var _eebfc _afa .Filter ;
switch _bdfee {case RC4_128bit :_eebfc =_afa .NewFilterV2 (16);case AES_128bit :_eebfc =_afa .NewFilterAESV2 ();case AES_256bit :_eebfc =_afa .NewFilterAESV3 ();default:return _d .Errorf ("\u0075n\u0073\u0075\u0070\u0070o\u0072\u0074\u0065\u0064\u0020a\u006cg\u006fr\u0069\u0074\u0068\u006d\u003a\u0020\u0025v",options .Algorithm );
};_cgggg ,_eabcc ,_ddega :=_ac .PdfCryptNewEncrypt (_eebfc ,userPass ,ownerPass ,_abbff );if _ddega !=nil {return _ddega ;};_fgbag ._bggef =_cgggg ;if _eabcc .Major !=0{_fgbag .SetVersion (_eabcc .Major ,_eabcc .Minor );};_fgbag ._bdedb =_eabcc .Encrypt ;
_fgbag ._becagg ,_fgbag ._bcefa =_eabcc .ID0 ,_eabcc .ID1 ;_fcgcg :=_ac .MakeIndirectObject (_eabcc .Encrypt );_fgbag ._ecgdb =_fcgcg ;_fgbag .addObject (_fcgcg );return nil ;};
// DecodeArray returns the component range values for the DeviceN colorspace.
// [0 1.0 0 1.0 ...] for each color component.
func (_egeg *PdfColorspaceDeviceN )DecodeArray ()[]float64 {var _eebf []float64 ;for _efef :=0;_efef < _egeg .GetNumComponents ();_efef ++{_eebf =append (_eebf ,0.0,1.0);};return _eebf ;};
// String implements interface PdfObject.
func (_aa *PdfAction )String ()string {_dca ,_ec :=_aa .ToPdfObject ().(*_ac .PdfIndirectObject );if _ec {return _d .Sprintf ("\u0025\u0054\u003a\u0020\u0025\u0073",_aa ._gc ,_dca .PdfObject .String ());};return "";};func _bcgf (_gged *_ac .PdfObjectDictionary ,_eadg *fontCommon )(*pdfCIDFontType0 ,error ){if _eadg ._efebg !="\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0030"{_gd .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",_eadg );
return nil ,_ac .ErrRangeError ;};_fgffb :=_eeaagf (_eadg );_ddga ,_babgc :=_ac .GetDict (_gged .Get ("\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f"));if !_babgc {_gd .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",_eadg );
return nil ,ErrRequiredAttributeMissing ;};_fgffb .CIDSystemInfo =_ddga ;_fgffb .DW =_gged .Get ("\u0044\u0057");_fgffb .W =_gged .Get ("\u0057");_fgffb .DW2 =_gged .Get ("\u0044\u0057\u0032");_fgffb .W2 =_gged .Get ("\u0057\u0032");_fgffb ._fggf =1000.0;
if _becfee ,_ecdag :=_ac .GetNumberAsFloat (_fgffb .DW );_ecdag ==nil {_fgffb ._fggf =_becfee ;};_ggadd ,_bgfeda :=_ebfec (_fgffb .W );if _bgfeda !=nil {return nil ,_bgfeda ;};if _ggadd ==nil {_ggadd =map[_gf .CharCode ]float64 {};};_fgffb ._gabfe =_ggadd ;
return _fgffb ,nil ;};
// NewPdfAnnotationRichMedia returns a new rich media annotation.
func NewPdfAnnotationRichMedia ()*PdfAnnotationRichMedia {_bacg :=NewPdfAnnotation ();_eadaf :=&PdfAnnotationRichMedia {};_eadaf .PdfAnnotation =_bacg ;_bacg .SetContext (_eadaf );return _eadaf ;};func (_ccaab *PdfReader )flattenFieldsWithOpts (_gcb bool ,_ggadb FieldAppearanceGenerator ,_aaee *FieldFlattenOpts )error {if _aaee ==nil {_aaee =&FieldFlattenOpts {};
};var _gdfgc bool ;_dgfae :=map[*PdfAnnotation ]bool {};{var _dcba []*PdfField ;_fabf :=_ccaab .AcroForm ;if _fabf !=nil {if _aaee .FilterFunc !=nil {_dcba =_fabf .filteredFields (_aaee .FilterFunc ,true );_gdfgc =_fabf .Fields !=nil &&len (*_fabf .Fields )> 0;
}else {_dcba =_fabf .AllFields ();};};for _ ,_fbdbb :=range _dcba {for _ ,_facga :=range _fbdbb .Annotations {_dgfae [_facga .PdfAnnotation ]=_fbdbb .V !=nil ;if _ggadb !=nil {_babdg ,_baeac :=_ggadb .GenerateAppearanceDict (_fabf ,_fbdbb ,_facga );if _baeac !=nil {return _baeac ;
};_facga .AP =_babdg ;};};};};if _gcb {for _ ,_addb :=range _ccaab .PageList {_eaaae ,_ecef :=_addb .GetAnnotations ();if _ecef !=nil {return _ecef ;};for _ ,_ffee :=range _eaaae {_dgfae [_ffee ]=true ;};};};for _ ,_fbeg :=range _ccaab .PageList {var _eaded []*PdfAnnotation ;
if _ggadb !=nil {if _ecacd :=_ggadb .WrapContentStream (_fbeg );_ecacd !=nil {return _ecacd ;};};_abfb ,_bdfg :=_fbeg .GetAnnotations ();if _bdfg !=nil {return _bdfg ;};for _ ,_ccdf :=range _abfb {_deb ,_aeacff :=_dgfae [_ccdf ];if !_aeacff &&_aaee .AnnotFilterFunc !=nil {if _ ,_gabfg :=_ccdf .GetContext ().(*PdfAnnotationWidget );
!_gabfg {_aeacff =_aaee .AnnotFilterFunc (_ccdf );};};if !_aeacff {_eaded =append (_eaded ,_ccdf );continue ;};switch _ccdf .GetContext ().(type ){case *PdfAnnotationPopup :continue ;case *PdfAnnotationLink :continue ;case *PdfAnnotationProjection :continue ;
};_bgbf ,_ebfa ,_gceb :=_cacc (_ccdf );if _gceb !=nil {if !_deb {_gd .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 ;};_gd .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",_gceb );
continue ;};if _bgbf ==nil {continue ;};_cead :=_fbeg .Resources .GenerateXObjectName ();_fbeg .Resources .SetXObjectFormByName (_cead ,_bgbf );_fgbe ,_gceb :=_ffce (_bgbf );if _gceb !=nil {_gd .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",_gceb );
}else {_adggd :=_ba .IdentityMatrix ();_adggd =_adggd .Translate (-_fgbe .Llx ,-_fgbe .Lly );_adggd =_adggd .Scale (_ebfa .Width ()/_fgbe .Width (),_ebfa .Height ()/_fgbe .Height ());_ebfa .Transform (_adggd );};_efccg :=_da .Min (_ebfa .Llx ,_ebfa .Urx );
_dgag :=_da .Min (_ebfa .Lly ,_ebfa .Ury );var _cacf []string ;_cacf =append (_cacf ,"\u0071");_cacf =append (_cacf ,_d .Sprintf ("\u0025\u002e\u0036\u0066\u0020\u0025\u002e\u0036\u0066\u0020\u0025\u002e\u0036\u0066\u0020%\u002e6\u0066\u0020\u0025\u002e\u0036\u0066\u0020\u0025\u002e\u0036\u0066\u0020\u0063\u006d",1.0,0.0,0.0,1.0,_efccg ,_dgag ));
_cacf =append (_cacf ,_d .Sprintf ("\u002f\u0025\u0073\u0020\u0044\u006f",_cead .String ()));_cacf =append (_cacf ,"\u0051");_bcee :=_fg .Join (_cacf ,"\u000a");_gceb =_fbeg .AppendContentStream (_bcee );if _gceb !=nil {return _gceb ;};if _bgbf .Resources !=nil {_ebcd ,_geda :=_ac .GetDict (_bgbf .Resources .Font );
if _geda {for _ ,_bdcfa :=range _ebcd .Keys (){if !_fbeg .Resources .HasFontByName (_bdcfa ){_fbeg .Resources .SetFontByName (_bdcfa ,_ebcd .Get (_bdcfa ));};};};};};if len (_eaded )> 0{_fbeg ._ceca =_eaded ;}else {_fbeg ._ceca =[]*PdfAnnotation {};};};
if !_gdfgc {_ccaab .AcroForm =nil ;};return nil ;};
// PdfActionURI represents an URI action.
type PdfActionURI struct{*PdfAction ;URI _ac .PdfObject ;IsMap _ac .PdfObject ;};
// ToPdfObject converts PdfAcroForm to a PdfObject, i.e. an indirect object containing the
// AcroForm dictionary.
func (_begcf *PdfAcroForm )ToPdfObject ()_ac .PdfObject {_afcad :=_begcf ._abecf ;_egfe :=_afcad .PdfObject .(*_ac .PdfObjectDictionary );if _begcf .Fields !=nil {_afgf :=_ac .PdfObjectArray {};for _ ,_eagbb :=range *_begcf .Fields {_gcdcc :=_eagbb .GetContext ();
if _gcdcc !=nil {_afgf .Append (_gcdcc .ToPdfObject ());}else {_afgf .Append (_eagbb .ToPdfObject ());};};_egfe .Set ("\u0046\u0069\u0065\u006c\u0064\u0073",&_afgf );};if _begcf .NeedAppearances !=nil {_egfe .Set ("\u004ee\u0065d\u0041\u0070\u0070\u0065\u0061\u0072\u0061\u006e\u0063\u0065\u0073",_begcf .NeedAppearances );
};if _begcf .SigFlags !=nil {_egfe .Set ("\u0053\u0069\u0067\u0046\u006c\u0061\u0067\u0073",_begcf .SigFlags );};if _begcf .CO !=nil {_egfe .Set ("\u0043\u004f",_begcf .CO );};if _begcf .DR !=nil {_egfe .Set ("\u0044\u0052",_begcf .DR .ToPdfObject ());
};if _begcf .DA !=nil {_egfe .Set ("\u0044\u0041",_begcf .DA );};if _begcf .Q !=nil {_egfe .Set ("\u0051",_begcf .Q );};if _begcf .XFA !=nil {_egfe .Set ("\u0058\u0046\u0041",_begcf .XFA );};if _begcf .ADBEEchoSign !=nil {_egfe .Set ("\u0041\u0044\u0042\u0045\u005f\u0045\u0063\u0068\u006f\u0053\u0069\u0067\u006e",_begcf .ADBEEchoSign );
};return _afcad ;};func _eebe (_fggab _ac .PdfObject ,_ecee bool )(*PdfFont ,error ){_fgedg ,_gggb ,_ecea :=_acga (_fggab );if _fgedg !=nil {_agfef (_fgedg );};if _ecea !=nil {if _ecea ==ErrType1CFontNotSupported {_ggggg ,_dfab :=_aeeaae (_fgedg ,_gggb ,nil );
if _dfab !=nil {_gd .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",_gggb ,_dfab );
return nil ,_ecea ;};return &PdfFont {_gegb :_ggggg },_ecea ;};return nil ,_ecea ;};_ffaaf :=&PdfFont {};switch _gggb ._efebg {case "\u0054\u0079\u0070e\u0030":if !_ecee {_gd .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",_gggb );
return nil ,_af .New ("\u0063\u0079\u0063\u006cic\u0061\u006c\u0020\u0074\u0079\u0070\u0065\u0030\u0020\u006c\u006f\u0061\u0064\u0069n\u0067");};_fbgbf ,_bcec :=_bcdde (_fgedg ,_gggb );if _bcec !=nil {_gd .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",_gggb ,_bcec );
return nil ,_bcec ;};_ffaaf ._gegb =_fbgbf ;case "\u0054\u0079\u0070e\u0031","\u004dM\u0054\u0079\u0070\u0065\u0031","\u0054\u0072\u0075\u0065\u0054\u0079\u0070\u0065":var _ccgac *pdfFontSimple ;_gefa ,_adbcc :=_fda .NewStdFontByName (_fda .StdFontName (_gggb ._abab ));
if _adbcc {_ecbbb :=_fcbgg (_gefa );_ffaaf ._gegb =&_ecbbb ;_dcbe :=_ac .TraceToDirectObject (_ecbbb .ToPdfObject ());_baff ,_aaag ,_deeg :=_acga (_dcbe );if _deeg !=nil {_gd .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",_gggb ,_ecbbb );
return nil ,_deeg ;};for _ ,_acbe :=range _fgedg .Keys (){_baff .Set (_acbe ,_fgedg .Get (_acbe ));};_ccgac ,_deeg =_aeeaae (_baff ,_aaag ,_ecbbb ._abbba );if _deeg !=nil {_gd .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",_gggb ,_ecbbb );
return nil ,_deeg ;};_ccgac ._bdaga =_ecbbb ._bdaga ;_ccgac ._gbbfd =_ecbbb ._gbbfd ;if _ccgac ._ffbea ==nil {_ccgac ._ffbea =_ecbbb ._ffbea ;};}else {_ccgac ,_ecea =_aeeaae (_fgedg ,_gggb ,nil );if _ecea !=nil {_gd .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",_gggb ,_ecea );
return nil ,_ecea ;};};_ecea =_ccgac .addEncoding ();if _ecea !=nil {return nil ,_ecea ;};if _adbcc {_ccgac .updateStandard14Font ();};if _adbcc &&_ccgac ._caed ==nil &&_ccgac ._abbba ==nil {_gd .Log .Error ("\u0073\u0069\u006d\u0070\u006c\u0065\u0066\u006f\u006e\u0074\u003d\u0025\u0073",_ccgac );
_gd .Log .Error ("\u0066n\u0074\u003d\u0025\u002b\u0076",_gefa );};if len (_ccgac ._bdaga )==0{_gd .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a \u004e\u006f\u0020\u0077\u0069d\u0074h\u0073.\u0020\u0066\u006f\u006e\u0074\u003d\u0025s",_ccgac );};_ffaaf ._gegb =_ccgac ;
case "\u0054\u0079\u0070e\u0033":_ddfb ,_bfda :=_agfec (_fgedg ,_gggb );if _bfda !=nil {_gd .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",_bfda );
return nil ,_bfda ;};_ffaaf ._gegb =_ddfb ;case "\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0030":_acfb ,_gbcdb :=_bcgf (_fgedg ,_gggb );if _gbcdb !=nil {_gd .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",_gbcdb );
return nil ,_gbcdb ;};_ffaaf ._gegb =_acfb ;case "\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032":_agdcc ,_dbaca :=_daffc (_fgedg ,_gggb );if _dbaca !=nil {_gd .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",_gggb ,_dbaca );
return nil ,_dbaca ;};_ffaaf ._gegb =_agdcc ;default:_gd .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",_gggb );
return nil ,_d .Errorf ("\u0075\u006e\u0073\u0075\u0070\u0070\u006f\u0072\u0074\u0065d\u0020\u0066\u006f\u006e\u0074\u0020\u0074y\u0070\u0065\u003a\u0020\u0066\u006f\u006e\u0074\u003d\u0025\u0073",_gggb );};return _ffaaf ,nil ;};
// ColorFromPdfObjects returns a new PdfColor based on the input slice of color
// components. The slice should contain a single PdfObjectFloat element.
func (_cdab *PdfColorspaceSpecialSeparation )ColorFromPdfObjects (objects []_ac .PdfObject )(PdfColor ,error ){if len (objects )!=1{return nil ,_af .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_afdf ,_cabbg :=_ac .GetNumbersAsFloat (objects );
if _cabbg !=nil {return nil ,_cabbg ;};return _cdab .ColorFromFloats (_afdf );};
// ColorFromFloats returns a new PdfColor based on the input slice of color
// components. The slice should contain a single element.
func (_ebgbb *PdfColorspaceSpecialIndexed )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=1{return nil ,_af .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};N :=_ebgbb .Base .GetNumComponents ();_dfdc :=int (vals [0])*N ;
if _dfdc < 0||(_dfdc +N -1)>=len (_ebgbb ._dagf ){_gd .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_dfdc );return nil ,ErrColorOutOfRange ;};_gacd :=_ebgbb ._dagf [_dfdc :_dfdc +N ];
var _cdaf []float64 ;for _ ,_beebg :=range _gacd {_cdaf =append (_cdaf ,float64 (_beebg )/255.0);};_aefd ,_gecfc :=_ebgbb .Base .ColorFromFloats (_cdaf );if _gecfc !=nil {return nil ,_gecfc ;};return _aefd ,nil ;};
// ToPdfObject implements interface PdfModel.
func (_dgee *PdfAnnotationCaret )ToPdfObject ()_ac .PdfObject {_dgee .PdfAnnotation .ToPdfObject ();_dcc :=_dgee ._fegd ;_ddcb :=_dcc .PdfObject .(*_ac .PdfObjectDictionary );_dgee .PdfAnnotationMarkup .appendToPdfDictionary (_ddcb );_ddcb .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ac .MakeName ("\u0043\u0061\u0072e\u0074"));
_ddcb .SetIfNotNil ("\u0052\u0044",_dgee .RD );_ddcb .SetIfNotNil ("\u0053\u0079",_dgee .Sy );return _dcc ;};
// Write writes out the PDF.
func (_dbeg *PdfWriter )Write (writer _adc .Writer )error {_gd .Log .Trace ("\u0057r\u0069\u0074\u0065\u0028\u0029");_gfegec :=_dbeg .checkLicense ();if _gfegec !=nil {return _gfegec ;};if _gfegec =_dbeg .writeOutlines ();_gfegec !=nil {return _gfegec ;
};if _gfegec =_dbeg .writeAcroFormFields ();_gfegec !=nil {return _gfegec ;};_dbeg .checkPendingObjects ();if _gfegec =_dbeg .writeOutputIntents ();_gfegec !=nil {return _gfegec ;};_dbeg .setCatalogVersion ();_dbeg .copyObjects ();if _gfegec =_dbeg .optimize ();
_gfegec !=nil {return _gfegec ;};if _gfegec =_dbeg .optimizeDocument ();_gfegec !=nil {return _gfegec ;};var _fdedb _g .Hash ;if _dbeg ._ffdgb {_fdedb =_dd .New ();writer =_adc .MultiWriter (_fdedb ,writer );};_dbeg .setWriter (writer );_fbcec :=_dbeg .checkCrossReferenceStream ();
_fbbafc ,_fbcec :=_dbeg .mapObjectStreams (_fbcec );_dbeg .adjustXRefAffectedVersion (_fbcec );_dbeg .writeDocumentVersion ();_dbeg .updateObjectNumbers ();_dbeg .writeObjects ();if _gfegec =_dbeg .writeObjectsInStreams (_fbbafc );_gfegec !=nil {return _gfegec ;
};_cddbf :=_dbeg ._edabb ;var _ddcdb int ;for _cddfd :=range _dbeg ._ggbab {if _cddfd > _ddcdb {_ddcdb =_cddfd ;};};if _dbeg ._ffdgb {if _gfegec =_dbeg .setHashIDs (_fdedb );_gfegec !=nil {return _gfegec ;};};if _fbcec {if _gfegec =_dbeg .writeXRefStreams (_ddcdb ,_cddbf );
_gfegec !=nil {return _gfegec ;};}else {_dbeg .writeTrailer (_ddcdb );};_dbeg .makeOffSetReference (_cddbf );if _gfegec =_dbeg .flushWriter ();_gfegec !=nil {return _gfegec ;};return nil ;};
// AddOutlineTree adds outlines to a PDF file.
func (_adeg *PdfWriter )AddOutlineTree (outlineTree *PdfOutlineTreeNode ){_adeg ._ddece =outlineTree };
// ImageToRGB converts CalRGB colorspace image to RGB and returns the result.
func (_ebca *PdfColorspaceCalRGB )ImageToRGB (img Image )(Image ,error ){_fbaa :=_cg .NewReader (img .getBase ());_ffaf :=_ed .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),3,nil ,nil ,nil );_dgdc :=_cg .NewWriter (_ffaf );
_bebd :=_da .Pow (2,float64 (img .BitsPerComponent ))-1;_gcfbd :=make ([]uint32 ,3);var (_bcbg error ;_efed ,_gbcag ,_dfdad ,_daddc ,_efdb ,_cbbb float64 ;);for {_bcbg =_fbaa .ReadSamples (_gcfbd );if _bcbg ==_adc .EOF {break ;}else if _bcbg !=nil {return img ,_bcbg ;
};_efed =float64 (_gcfbd [0])/_bebd ;_gbcag =float64 (_gcfbd [1])/_bebd ;_dfdad =float64 (_gcfbd [2])/_bebd ;_daddc =_ebca .Matrix [0]*_da .Pow (_efed ,_ebca .Gamma [0])+_ebca .Matrix [3]*_da .Pow (_gbcag ,_ebca .Gamma [1])+_ebca .Matrix [6]*_da .Pow (_dfdad ,_ebca .Gamma [2]);
_efdb =_ebca .Matrix [1]*_da .Pow (_efed ,_ebca .Gamma [0])+_ebca .Matrix [4]*_da .Pow (_gbcag ,_ebca .Gamma [1])+_ebca .Matrix [7]*_da .Pow (_dfdad ,_ebca .Gamma [2]);_cbbb =_ebca .Matrix [2]*_da .Pow (_efed ,_ebca .Gamma [0])+_ebca .Matrix [5]*_da .Pow (_gbcag ,_ebca .Gamma [1])+_ebca .Matrix [8]*_da .Pow (_dfdad ,_ebca .Gamma [2]);
_efed =3.240479*_daddc +-1.537150*_efdb +-0.498535*_cbbb ;_gbcag =-0.969256*_daddc +1.875992*_efdb +0.041556*_cbbb ;_dfdad =0.055648*_daddc +-0.204043*_efdb +1.057311*_cbbb ;_efed =_da .Min (_da .Max (_efed ,0),1.0);_gbcag =_da .Min (_da .Max (_gbcag ,0),1.0);
_dfdad =_da .Min (_da .Max (_dfdad ,0),1.0);_gcfbd [0]=uint32 (_efed *_bebd );_gcfbd [1]=uint32 (_gbcag *_bebd );_gcfbd [2]=uint32 (_dfdad *_bebd );if _bcbg =_dgdc .WriteSamples (_gcfbd );_bcbg !=nil {return img ,_bcbg ;};};return _affb (&_ffaf ),nil ;
};func (_egg *PdfReader )newPdfAnnotationHighlightFromDict (_cca *_ac .PdfObjectDictionary )(*PdfAnnotationHighlight ,error ){_egge :=PdfAnnotationHighlight {};_cbcb ,_dfdb :=_egg .newPdfAnnotationMarkupFromDict (_cca );if _dfdb !=nil {return nil ,_dfdb ;
};_egge .PdfAnnotationMarkup =_cbcb ;_egge .QuadPoints =_cca .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");return &_egge ,nil ;};
// PdfAnnotationPolygon represents Polygon annotations.
// (Section 12.5.6.9).
type PdfAnnotationPolygon struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Vertices _ac .PdfObject ;LE _ac .PdfObject ;BS _ac .PdfObject ;IC _ac .PdfObject ;BE _ac .PdfObject ;IT _ac .PdfObject ;Measure _ac .PdfObject ;};func (_bea *PdfReader )newPdfAnnotationPolygonFromDict (_bdce *_ac .PdfObjectDictionary )(*PdfAnnotationPolygon ,error ){_ceba :=PdfAnnotationPolygon {};
_ecbb ,_fbeb :=_bea .newPdfAnnotationMarkupFromDict (_bdce );if _fbeb !=nil {return nil ,_fbeb ;};_ceba .PdfAnnotationMarkup =_ecbb ;_ceba .Vertices =_bdce .Get ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073");_ceba .LE =_bdce .Get ("\u004c\u0045");
_ceba .BS =_bdce .Get ("\u0042\u0053");_ceba .IC =_bdce .Get ("\u0049\u0043");_ceba .BE =_bdce .Get ("\u0042\u0045");_ceba .IT =_bdce .Get ("\u0049\u0054");_ceba .Measure =_bdce .Get ("\u004de\u0061\u0073\u0075\u0072\u0065");return &_ceba ,nil ;};func _gcddf (_bddcd _ac .PdfObject )(PdfFunction ,error ){_bddcd =_ac .ResolveReference (_bddcd );
if _gaebe ,_deged :=_bddcd .(*_ac .PdfObjectStream );_deged {_edcdf :=_gaebe .PdfObjectDictionary ;_dbace ,_cgedd :=_edcdf .Get ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065").(*_ac .PdfObjectInteger );if !_cgedd {_gd .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 ,_af .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 *_dbace ==0{return _fdgfc (_gaebe );}else if *_dbace ==4{return _gbfea (_gaebe );
}else {return nil ,_af .New ("i\u006e\u0076\u0061\u006cid\u0020f\u0075\u006e\u0063\u0074\u0069o\u006e\u0020\u0074\u0079\u0070\u0065");};}else if _agfd ,_cfed :=_bddcd .(*_ac .PdfIndirectObject );_cfed {_daba ,_fcefbe :=_agfd .PdfObject .(*_ac .PdfObjectDictionary );
if !_fcefbe {_gd .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 ,_af .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");};_bgcb ,_fcefbe :=_daba .Get ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065").(*_ac .PdfObjectInteger );
if !_fcefbe {_gd .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 ,_af .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 *_bgcb ==2{return _gcag (_agfd );}else if *_bgcb ==3{return _bbdbc (_agfd );}else {return nil ,_af .New ("i\u006e\u0076\u0061\u006cid\u0020f\u0075\u006e\u0063\u0074\u0069o\u006e\u0020\u0074\u0079\u0070\u0065");};}else if _egec ,_cbfff :=_bddcd .(*_ac .PdfObjectDictionary );
_cbfff {_eagbg ,_aafbb :=_egec .Get ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065").(*_ac .PdfObjectInteger );if !_aafbb {_gd .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 ,_af .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 *_eagbg ==2{return _gcag (_egec );}else if *_eagbg ==3{return _bbdbc (_egec );
}else {return nil ,_af .New ("i\u006e\u0076\u0061\u006cid\u0020f\u0075\u006e\u0063\u0074\u0069o\u006e\u0020\u0074\u0079\u0070\u0065");};}else {_gd .Log .Debug ("\u0046u\u006e\u0063\u0074\u0069\u006f\u006e\u0020\u0054\u0079\u0070\u0065 \u0065\u0072\u0072\u006f\u0072\u003a\u0020\u0025\u0023\u0076",_bddcd );
return nil ,_af .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};};
// SetImageHandler sets the image handler used by the package.
func SetImageHandler (imgHandling ImageHandler ){ImageHandling =imgHandling };func (_fbca *PdfReader )newPdfActionNamedFromDict (_aeeg *_ac .PdfObjectDictionary )(*PdfActionNamed ,error ){return &PdfActionNamed {N :_aeeg .Get ("\u004e")},nil ;};
// HasXObjectByName checks if an XObject with a specified keyName is defined.
func (_dagg *PdfPageResources )HasXObjectByName (keyName _ac .PdfObjectName )bool {_afdad ,_ :=_dagg .GetXObjectByName (keyName );return _afdad !=nil ;};
// Evaluate runs the function on the passed in slice and returns the results.
func (_baad *PdfFunctionType3 )Evaluate (x []float64 )([]float64 ,error ){if len (x )!=1{_gd .Log .Error ("\u004f\u006e\u006c\u0079 o\u006e\u0065\u0020\u0069\u006e\u0070\u0075\u0074\u0020\u0061\u006c\u006c\u006f\u0077e\u0064");return nil ,_af .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");
};return nil ,_af .New ("\u006e\u006f\u0074\u0020im\u0070\u006c\u0065\u006d\u0065\u006e\u0074\u0065\u0064\u0020\u0079\u0065\u0074");};func (_daafd *PdfWriter )mapObjectStreams (_dfdcg bool )(map[_ac .PdfObject ]bool ,bool ){_decd :=make (map[_ac .PdfObject ]bool );
for _ ,_bbfgb :=range _daafd ._gdeaf {if _ccabe ,_agfefa :=_bbfgb .(*_ac .PdfObjectStreams );_agfefa {_dfdcg =true ;for _ ,_gggag :=range _ccabe .Elements (){_decd [_gggag ]=true ;if _bgbfa ,_dgcdbf :=_gggag .(*_ac .PdfIndirectObject );_dgcdbf {_decd [_bgbfa .PdfObject ]=true ;
};};};};return _decd ,_dfdcg ;};
// ToGray returns a PdfColorDeviceGray color based on the current RGB color.
func (_ddge *PdfColorDeviceRGB )ToGray ()*PdfColorDeviceGray {_acbg :=0.3*_ddge .R ()+0.59*_ddge .G ()+0.11*_ddge .B ();_acbg =_da .Min (_da .Max (_acbg ,0.0),1.0);return NewPdfColorDeviceGray (_acbg );};
// NewPdfPageResourcesFromDict creates and returns a new PdfPageResources object
// from the input dictionary.
func NewPdfPageResourcesFromDict (dict *_ac .PdfObjectDictionary )(*PdfPageResources ,error ){_cbdbd :=NewPdfPageResources ();if _eabgg :=dict .Get ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e");_eabgg !=nil {_cbdbd .ExtGState =_eabgg ;};if _deab :=dict .Get ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065");
_deab !=nil &&!_ac .IsNullObject (_deab ){_cbdbd .ColorSpace =_deab ;};if _efcgb :=dict .Get ("\u0050a\u0074\u0074\u0065\u0072\u006e");_efcgb !=nil {_cbdbd .Pattern =_efcgb ;};if _ddcbg :=dict .Get ("\u0053h\u0061\u0064\u0069\u006e\u0067");_ddcbg !=nil {_cbdbd .Shading =_ddcbg ;
};if _cadg :=dict .Get ("\u0058O\u0062\u006a\u0065\u0063\u0074");_cadg !=nil {_cbdbd .XObject =_cadg ;};if _gdccc :=_ac .ResolveReference (dict .Get ("\u0046\u006f\u006e\u0074"));_gdccc !=nil {_cbdbd .Font =_gdccc ;};if _bfeea :=dict .Get ("\u0050r\u006f\u0063\u0053\u0065\u0074");
_bfeea !=nil {_cbdbd .ProcSet =_bfeea ;};if _baec :=dict .Get ("\u0050\u0072\u006f\u0070\u0065\u0072\u0074\u0069\u0065\u0073");_baec !=nil {_cbdbd .Properties =_baec ;};return _cbdbd ,nil ;};func (_cdcfb *PdfReader )newPdfPageFromDict (_fbaea *_ac .PdfObjectDictionary )(*PdfPage ,error ){_bfaab :=NewPdfPage ();
_bfaab ._egcd =_fbaea ;_bfaab ._cecfa =*_fbaea ;_eaga :=*_fbaea ;_dbge ,_efgb :=_eaga .Get ("\u0054\u0079\u0070\u0065").(*_ac .PdfObjectName );if !_efgb {return nil ,_af .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 *_dbge !="\u0050\u0061\u0067\u0065"{return nil ,_af .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 _ffcbd :=_eaga .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");
_ffcbd !=nil {_bfaab .Parent =_ffcbd ;};if _cedd :=_eaga .Get ("\u004c\u0061\u0073t\u004d\u006f\u0064\u0069\u0066\u0069\u0065\u0064");_cedd !=nil {_cbbcg ,_cadbg :=_ac .GetString (_cedd );if !_cadbg {return nil ,_af .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");
};_gbbb ,_ddaba :=NewPdfDate (_cbbcg .Str ());if _ddaba !=nil {return nil ,_ddaba ;};_bfaab .LastModified =&_gbbb ;};if _beeef :=_eaga .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");_beeef !=nil &&!_ac .IsNullObject (_beeef ){_fbbgb ,_cgffdd :=_ac .GetDict (_beeef );
if !_cgffdd {return nil ,_d .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0065\u0073\u006f\u0075\u0072\u0063e\u0020d\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u0020\u0028\u0025\u0054\u0029",_beeef );};var _agcca error ;_bfaab .Resources ,_agcca =NewPdfPageResourcesFromDict (_fbbgb );
if _agcca !=nil {return nil ,_agcca ;};}else {_deeb ,_dabac :=_bfaab .getParentResources ();if _dabac !=nil {return nil ,_dabac ;};if _deeb ==nil {_deeb =NewPdfPageResources ();};_bfaab .Resources =_deeb ;};if _ceabd :=_eaga .Get ("\u004d\u0065\u0064\u0069\u0061\u0042\u006f\u0078");
_ceabd !=nil {_ffcbe ,_aaeba :=_ac .GetArray (_ceabd );if !_aaeba {return nil ,_af .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 _aeacb error ;
_bfaab .MediaBox ,_aeacb =NewPdfRectangle (*_ffcbe );if _aeacb !=nil {return nil ,_aeacb ;};};if _daaaa :=_eaga .Get ("\u0043r\u006f\u0070\u0042\u006f\u0078");_daaaa !=nil {_dafdg ,_abcbb :=_ac .GetArray (_daaaa );if !_abcbb {return nil ,_af .New ("\u0070a\u0067\u0065\u0020\u0043r\u006f\u0070\u0042\u006f\u0078 \u006eo\u0074 \u0061\u006e\u0020\u0061\u0072\u0072\u0061y");
};var _ggfdd error ;_bfaab .CropBox ,_ggfdd =NewPdfRectangle (*_dafdg );if _ggfdd !=nil {return nil ,_ggfdd ;};};if _ebff :=_eaga .Get ("\u0042\u006c\u0065\u0065\u0064\u0042\u006f\u0078");_ebff !=nil {_bagc ,_bcbfb :=_ac .GetArray (_ebff );if !_bcbfb {return nil ,_af .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 _bcgg error ;_bfaab .BleedBox ,_bcgg =NewPdfRectangle (*_bagc );if _bcgg !=nil {return nil ,_bcgg ;};};if _dcgce :=_eaga .Get ("\u0054r\u0069\u006d\u0042\u006f\u0078");_dcgce !=nil {_bdagac ,_acab :=_ac .GetArray (_dcgce );if !_acab {return nil ,_af .New ("\u0070a\u0067\u0065\u0020\u0054r\u0069\u006d\u0042\u006f\u0078 \u006eo\u0074 \u0061\u006e\u0020\u0061\u0072\u0072\u0061y");
};var _gcea error ;_bfaab .TrimBox ,_gcea =NewPdfRectangle (*_bdagac );if _gcea !=nil {return nil ,_gcea ;};};if _eedd :=_eaga .Get ("\u0041\u0072\u0074\u0042\u006f\u0078");_eedd !=nil {_bcaf ,_beadc :=_ac .GetArray (_eedd );if !_beadc {return nil ,_af .New ("\u0070a\u0067\u0065\u0020\u0041\u0072\u0074\u0042\u006f\u0078\u0020\u006eo\u0074\u0020\u0061\u006e\u0020\u0061\u0072\u0072\u0061\u0079");
};var _bgbfg error ;_bfaab .ArtBox ,_bgbfg =NewPdfRectangle (*_bcaf );if _bgbfg !=nil {return nil ,_bgbfg ;};};if _daebb :=_eaga .Get ("\u0042\u006f\u0078C\u006f\u006c\u006f\u0072\u0049\u006e\u0066\u006f");_daebb !=nil {_bfaab .BoxColorInfo =_daebb ;};
if _fecee :=_eaga .Get ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073");_fecee !=nil {_bfaab .Contents =_fecee ;};if _bedded :=_eaga .Get ("\u0052\u006f\u0074\u0061\u0074\u0065");_bedded !=nil {_dceef ,_bdbgg :=_ac .GetNumberAsInt64 (_bedded );if _bdbgg !=nil {return nil ,_af .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");
};_bfaab .Rotate =&_dceef ;};if _geadf :=_eaga .Get ("\u0047\u0072\u006fu\u0070");_geadf !=nil {_bfaab .Group =_geadf ;};if _fcebe :=_eaga .Get ("\u0054\u0068\u0075m\u0062");_fcebe !=nil {_bfaab .Thumb =_fcebe ;};if _ccge :=_eaga .Get ("\u0042");_ccge !=nil {_bfaab .B =_ccge ;
};if _fbdaa :=_eaga .Get ("\u0044\u0075\u0072");_fbdaa !=nil {_bfaab .Dur =_fbdaa ;};if _aaecg :=_eaga .Get ("\u0054\u0072\u0061n\u0073");_aaecg !=nil {_bfaab .Trans =_aaecg ;};if _affa :=_eaga .Get ("\u0041\u0041");_affa !=nil {_bfaab .AA =_affa ;};if _fbcab :=_eaga .Get ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");
_fbcab !=nil {_bfaab .Metadata =_fbcab ;};if _adcdg :=_eaga .Get ("\u0050i\u0065\u0063\u0065\u0049\u006e\u0066o");_adcdg !=nil {_bfaab .PieceInfo =_adcdg ;};if _aggbd :=_eaga .Get ("\u0053\u0074\u0072\u0075\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074\u0073");
_aggbd !=nil {_bfaab .StructParents =_aggbd ;};if _baaae :=_eaga .Get ("\u0049\u0044");_baaae !=nil {_bfaab .ID =_baaae ;};if _efge :=_eaga .Get ("\u0050\u005a");_efge !=nil {_bfaab .PZ =_efge ;};if _gcgaaf :=_eaga .Get ("\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006fn\u0049\u006e\u0066\u006f");
_gcgaaf !=nil {_bfaab .SeparationInfo =_gcgaaf ;};if _gcee :=_eaga .Get ("\u0054\u0061\u0062\u0073");_gcee !=nil {_bfaab .Tabs =_gcee ;};if _cgda :=_eaga .Get ("T\u0065m\u0070\u006c\u0061\u0074\u0065\u0049\u006e\u0073t\u0061\u006e\u0074\u0069at\u0065\u0064");
_cgda !=nil {_bfaab .TemplateInstantiated =_cgda ;};if _dddb :=_eaga .Get ("\u0050r\u0065\u0073\u0053\u0074\u0065\u0070s");_dddb !=nil {_bfaab .PresSteps =_dddb ;};if _dagbf :=_eaga .Get ("\u0055\u0073\u0065\u0072\u0055\u006e\u0069\u0074");_dagbf !=nil {_bfaab .UserUnit =_dagbf ;
};if _ccggf :=_eaga .Get ("\u0056\u0050");_ccggf !=nil {_bfaab .VP =_ccggf ;};if _bcgbe :=_eaga .Get ("\u0041\u006e\u006e\u006f\u0074\u0073");_bcgbe !=nil {_bfaab .Annots =_bcgbe ;};_bfaab ._bcfff =_cdcfb ;return _bfaab ,nil ;};type fontFile struct{_bedba string ;
_fggeg string ;_bcdea _gf .SimpleEncoder ;};
// GetContext returns the action context which contains the specific type-dependent context.
// The context represents the subaction.
func (_cbg *PdfAction )GetContext ()PdfModel {if _cbg ==nil {return nil ;};return _cbg ._gc ;};
// 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 (_cefb *PdfAcroForm )FillWithAppearance (provider FieldValueProvider ,appGen FieldAppearanceGenerator )error {_caedg :=_cefb .fill (provider ,appGen );if _caedg !=nil {return _caedg ;};if _ ,_fgeb :=provider .(FieldImageProvider );_fgeb {_caedg =_cefb .fillImageWithAppearance (provider .(FieldImageProvider ),appGen );
};return _caedg ;};func (_dadda *PdfWriter )checkPendingObjects (){for _dfddb ,_daded :=range _dadda ._fage {if !_dadda .hasObject (_dfddb ){_gd .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",_dfddb ,_dfddb ,_dfddb );
for _ ,_gbacge :=range _daded {for _ ,_bcggc :=range _gbacge .Keys (){_gfcc :=_gbacge .Get (_bcggc );if _gfcc ==_dfddb {_gd .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");
_gbacge .Set (_bcggc ,_ac .MakeNull ());break ;};};};};};};
// 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 ;};
// PageFromIndirectObject returns the PdfPage and page number for a given indirect object.
func (_baacf *PdfReader )PageFromIndirectObject (ind *_ac .PdfIndirectObject )(*PdfPage ,int ,error ){if len (_baacf .PageList )!=len (_baacf ._acca ){return nil ,0,_af .New ("\u0070\u0061\u0067\u0065\u0020\u006c\u0069\u0073\u0074\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");
};for _bdafd ,_egeag :=range _baacf ._acca {if _egeag ==ind {return _baacf .PageList [_bdafd ],_bdafd +1,nil ;};};return nil ,0,_af .New ("\u0070\u0061\u0067\u0065\u0020\u006e\u006f\u0074\u0020f\u006f\u0075\u006e\u0064");};
// ToPdfObject implements interface PdfModel.
func (_bca *PdfAction )ToPdfObject ()_ac .PdfObject {_ddb :=_bca ._eef ;_dgd :=_ddb .PdfObject .(*_ac .PdfObjectDictionary );_dgd .Clear ();_dgd .Set ("\u0054\u0079\u0070\u0065",_ac .MakeName ("\u0041\u0063\u0074\u0069\u006f\u006e"));_dgd .SetIfNotNil ("\u0053",_bca .S );
_dgd .SetIfNotNil ("\u004e\u0065\u0078\u0074",_bca .Next );return _ddb ;};
// NewPdfAnnotation3D returns a new 3d annotation.
func NewPdfAnnotation3D ()*PdfAnnotation3D {_edg :=NewPdfAnnotation ();_efdca :=&PdfAnnotation3D {};_efdca .PdfAnnotation =_edg ;_edg .SetContext (_efdca );return _efdca ;};
// SetCatalogMetadata sets the catalog metadata (XMP) stream object.
func (_fbbfe *PdfWriter )SetCatalogMetadata (meta _ac .PdfObject )error {if meta ==nil {_fbbfe ._cgfegd .Remove ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");return nil ;};_ebfad ,_degab :=_ac .GetStream (meta );if !_degab {return _af .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");
};_fbbfe .addObject (_ebfad );_fbbfe ._cgfegd .Set ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061",_ebfad );return nil ;};
// PdfAnnotationText represents Text annotations.
// (Section 12.5.6.4 p. 402).
type PdfAnnotationText struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Open _ac .PdfObject ;Name _ac .PdfObject ;State _ac .PdfObject ;StateModel _ac .PdfObject ;};
// PdfFunctionType2 defines an exponential interpolation of one input value and n
// output values:
// f(x) = y_0, ..., y_(n-1)
// y_j = C0_j + x^N * (C1_j - C0_j); for 0 <= j < n
// When N=1 ; linear interpolation between C0 and C1.
type PdfFunctionType2 struct{Domain []float64 ;Range []float64 ;C0 []float64 ;C1 []float64 ;N float64 ;_eaadg *_ac .PdfIndirectObject ;};
// ToPdfObject returns the PDF representation of the shading dictionary.
func (_bcef *PdfShadingType3 )ToPdfObject ()_ac .PdfObject {_bcef .PdfShading .ToPdfObject ();_beaa ,_bcabf :=_bcef .getShadingDict ();if _bcabf !=nil {_gd .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 _bcef .Coords !=nil {_beaa .Set ("\u0043\u006f\u006f\u0072\u0064\u0073",_bcef .Coords );};if _bcef .Domain !=nil {_beaa .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_bcef .Domain );};if _bcef .Function !=nil {if len (_bcef .Function )==1{_beaa .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_bcef .Function [0].ToPdfObject ());
}else {_ccccg :=_ac .MakeArray ();for _ ,_afeaf :=range _bcef .Function {_ccccg .Append (_afeaf .ToPdfObject ());};_beaa .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_ccccg );};};if _bcef .Extend !=nil {_beaa .Set ("\u0045\u0078\u0074\u0065\u006e\u0064",_bcef .Extend );
};return _bcef ._dffbg ;};
// ToPdfObject converts rectangle to a PDF object.
func (_begca *PdfRectangle )ToPdfObject ()_ac .PdfObject {return _ac .MakeArray (_ac .MakeFloat (_begca .Llx ),_ac .MakeFloat (_begca .Lly ),_ac .MakeFloat (_begca .Urx ),_ac .MakeFloat (_begca .Ury ));};
// Fill populates `form` with values provided by `provider`.
func (_dggbb *PdfAcroForm )Fill (provider FieldValueProvider )error {return _dggbb .fill (provider ,nil )};
// ImageToRGB converts ICCBased colorspace image to RGB and returns the result.
func (_caafg *PdfColorspaceICCBased )ImageToRGB (img Image )(Image ,error ){if _caafg .Alternate ==nil {_gd .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 _caafg .N ==1{_gd .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");
_babcb :=NewPdfColorspaceDeviceGray ();return _babcb .ImageToRGB (img );}else if _caafg .N ==3{_gd .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 _caafg .N ==4{_gd .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");
_ggebg :=NewPdfColorspaceDeviceCMYK ();return _ggebg .ImageToRGB (img );}else {return img ,_af .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");
};};_gd .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",_caafg );
_eabg ,_dbde :=_caafg .Alternate .ImageToRGB (img );_gd .Log .Trace ("I\u0043C\u0020\u0049\u006e\u0070\u0075\u0074\u0020\u0069m\u0061\u0067\u0065\u003a %\u002b\u0076",img );_gd .Log .Trace ("I\u0043\u0043\u0020\u004fut\u0070u\u0074\u0020\u0069\u006d\u0061g\u0065\u003a\u0020\u0025\u002b\u0076",_eabg );
return _eabg ,_dbde ;};
// 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 (_deagf *PdfColorspaceCalRGB )ColorFromPdfObjects (objects []_ac .PdfObject )(PdfColor ,error ){if len (objects )!=3{return nil ,_af .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_ebbb ,_badge :=_ac .GetNumbersAsFloat (objects );
if _badge !=nil {return nil ,_badge ;};return _deagf .ColorFromFloats (_ebbb );};
// HasPatternByName checks whether a pattern object is defined by the specified keyName.
func (_gece *PdfPageResources )HasPatternByName (keyName _ac .PdfObjectName )bool {_ ,_ebceb :=_gece .GetPatternByName (keyName );return _ebceb ;};var _ pdfFont =(*pdfCIDFontType2 )(nil );func (_eggda *DSS )generateHashMaps ()error {_cadd ,_gegde :=_eggda .generateHashMap (_eggda .Certs );
if _gegde !=nil {return _gegde ;};_ecec ,_gegde :=_eggda .generateHashMap (_eggda .OCSPs );if _gegde !=nil {return _gegde ;};_cgddd ,_gegde :=_eggda .generateHashMap (_eggda .CRLs );if _gegde !=nil {return _gegde ;};_eggda ._fegf =_cadd ;_eggda ._edag =_ecec ;
_eggda ._gdbfa =_cgddd ;return nil ;};
// GetContext returns a reference to the subpattern entry: either PdfTilingPattern or PdfShadingPattern.
func (_geae *PdfPattern )GetContext ()PdfModel {return _geae ._bfcc };
// NewPdfAppender creates a new Pdf appender from a Pdf reader.
func NewPdfAppender (reader *PdfReader )(*PdfAppender ,error ){_dffad :=&PdfAppender {_dcaa :reader ._fafc ,Reader :reader ,_bbbg :reader ._eebeg ,_gbe :reader ._cccb };_dgfa ,_fgdg :=_dffad ._dcaa .Seek (0,_adc .SeekEnd );if _fgdg !=nil {return nil ,_fgdg ;
};_dffad ._fcef =_dgfa ;if _ ,_fgdg =_dffad ._dcaa .Seek (0,_adc .SeekStart );_fgdg !=nil {return nil ,_fgdg ;};_dffad ._cbdcd ,_fgdg =NewPdfReader (_dffad ._dcaa );if _fgdg !=nil {return nil ,_fgdg ;};for _ ,_abdf :=range _dffad .Reader .GetObjectNums (){if _dffad ._dgfe < _abdf {_dffad ._dgfe =_abdf ;
};};_dffad ._gdg =_dffad ._bbbg .GetXrefTable ();_dffad ._adgf =_dffad ._bbbg .GetXrefOffset ();_dffad ._abda =append (_dffad ._abda ,_dffad ._cbdcd .PageList ...);_dffad ._eddbd =make (map[_ac .PdfObject ]struct{});_dffad ._degfa =make (map[_ac .PdfObject ]int64 );
_dffad ._fbfga =make (map[_ac .PdfObject ]struct{});_dffad ._cabc =_dffad ._cbdcd .AcroForm ;_dffad ._acaf =_dffad ._cbdcd .DSS ;return _dffad ,nil ;};
// GetAnnotations returns the list of page annotations for `page`. If not loaded attempts to load the
// annotations, otherwise returns the loaded list.
func (_ccbbf *PdfPage )GetAnnotations ()([]*PdfAnnotation ,error ){if _ccbbf ._ceca !=nil {return _ccbbf ._ceca ,nil ;};if _ccbbf .Annots ==nil {_ccbbf ._ceca =[]*PdfAnnotation {};return nil ,nil ;};if _ccbbf ._bcfff ==nil {_ccbbf ._ceca =[]*PdfAnnotation {};
return nil ,nil ;};_daada ,_fdfcf :=_ccbbf ._bcfff .loadAnnotations (_ccbbf .Annots );if _fdfcf !=nil {return nil ,_fdfcf ;};if _daada ==nil {_ccbbf ._ceca =[]*PdfAnnotation {};};_ccbbf ._ceca =_daada ;return _ccbbf ._ceca ,nil ;};func (_abc *PdfReader )newPdfAnnotationFileAttachmentFromDict (_ccdb *_ac .PdfObjectDictionary )(*PdfAnnotationFileAttachment ,error ){_daff :=PdfAnnotationFileAttachment {};
_ddf ,_fge :=_abc .newPdfAnnotationMarkupFromDict (_ccdb );if _fge !=nil {return nil ,_fge ;};_daff .PdfAnnotationMarkup =_ddf ;_daff .FS =_ccdb .Get ("\u0046\u0053");_daff .Name =_ccdb .Get ("\u004e\u0061\u006d\u0065");return &_daff ,nil ;};
// NewPdfAnnotationTrapNet returns a new trapnet annotation.
func NewPdfAnnotationTrapNet ()*PdfAnnotationTrapNet {_daed :=NewPdfAnnotation ();_befb :=&PdfAnnotationTrapNet {};_befb .PdfAnnotation =_daed ;_daed .SetContext (_befb );return _befb ;};func _ebfec (_bcdded _ac .PdfObject )(map[_gf .CharCode ]float64 ,error ){if _bcdded ==nil {return nil ,nil ;
};_acge ,_fagd :=_ac .GetArray (_bcdded );if !_fagd {return nil ,nil ;};_faeg :=map[_gf .CharCode ]float64 {};_gbed :=_acge .Len ();for _fcaf :=0;_fcaf < _gbed -1;_fcaf ++{_gfcg :=_ac .TraceToDirectObject (_acge .Get (_fcaf ));_cgdddb ,_gbdac :=_ac .GetIntVal (_gfcg );
if !_gbdac {return nil ,_d .Errorf ("\u0042a\u0064\u0020\u0066\u006fn\u0074\u0020\u0057\u0020\u006fb\u006a0\u003a \u0069\u003d\u0025\u0064\u0020\u0025\u0023v",_fcaf ,_gfcg );};_fcaf ++;if _fcaf > _gbed -1{return nil ,_d .Errorf ("\u0042\u0061\u0064\u0020\u0066\u006f\u006e\u0074\u0020\u0057\u0020a\u0072\u0072\u0061\u0079\u003a\u0020\u0061\u0072\u0072\u0032=\u0025\u002b\u0076",_acge );
};_aadc :=_ac .TraceToDirectObject (_acge .Get (_fcaf ));switch _aadc .(type ){case *_ac .PdfObjectArray :_abgff ,_ :=_ac .GetArray (_aadc );if _dfgf ,_cagc :=_abgff .ToFloat64Array ();_cagc ==nil {for _fedfc :=0;_fedfc < len (_dfgf );_fedfc ++{_faeg [_gf .CharCode (_cgdddb +_fedfc )]=_dfgf [_fedfc ];
};}else {return nil ,_d .Errorf ("\u0042\u0061\u0064 \u0066\u006f\u006e\u0074 \u0057\u0020\u0061\u0072\u0072\u0061\u0079 \u006f\u0062\u006a\u0031\u003a\u0020\u0069\u003d\u0025\u0064\u0020\u0025\u0023\u0076",_fcaf ,_aadc );};case *_ac .PdfObjectInteger :_eaegf ,_edfa :=_ac .GetIntVal (_aadc );
if !_edfa {return nil ,_d .Errorf ("\u0042\u0061d\u0020\u0066\u006f\u006e\u0074\u0020\u0057\u0020\u0069\u006e\u0074\u0020\u006f\u0062\u006a\u0031\u003a\u0020\u0069\u003d\u0025\u0064 %\u0023\u0076",_fcaf ,_aadc );};_fcaf ++;if _fcaf > _gbed -1{return nil ,_d .Errorf ("\u0042\u0061\u0064\u0020\u0066\u006f\u006e\u0074\u0020\u0057\u0020a\u0072\u0072\u0061\u0079\u003a\u0020\u0061\u0072\u0072\u0032=\u0025\u002b\u0076",_acge );
};_dcbcd :=_acge .Get (_fcaf );_cadba ,_faec :=_ac .GetNumberAsFloat (_dcbcd );if _faec !=nil {return nil ,_d .Errorf ("\u0042\u0061d\u0020\u0066\u006f\u006e\u0074\u0020\u0057\u0020\u0069\u006e\u0074\u0020\u006f\u0062\u006a\u0032\u003a\u0020\u0069\u003d\u0025\u0064 %\u0023\u0076",_fcaf ,_dcbcd );
};for _ababa :=_cgdddb ;_ababa <=_eaegf ;_ababa ++{_faeg [_gf .CharCode (_ababa )]=_cadba ;};default:return nil ,_d .Errorf ("\u0042\u0061\u0064\u0020\u0066\u006f\u006e\u0074\u0020\u0057 \u006f\u0062\u006a\u0031\u0020\u0074\u0079p\u0065\u003a\u0020\u0069\u003d\u0025\u0064\u0020\u0025\u0023\u0076",_fcaf ,_aadc );
};};return _faeg ,nil ;};func (_ddac *PdfReader )newPdfAnnotationSoundFromDict (_bbd *_ac .PdfObjectDictionary )(*PdfAnnotationSound ,error ){_ccgf :=PdfAnnotationSound {};_ddcf ,_fcba :=_ddac .newPdfAnnotationMarkupFromDict (_bbd );if _fcba !=nil {return nil ,_fcba ;
};_ccgf .PdfAnnotationMarkup =_ddcf ;_ccgf .Name =_bbd .Get ("\u004e\u0061\u006d\u0065");_ccgf .Sound =_bbd .Get ("\u0053\u006f\u0075n\u0064");return &_ccgf ,nil ;};func (_aded *pdfCIDFontType2 )getFontDescriptor ()*PdfFontDescriptor {return _aded ._bgbdc };
func (_bafff *PdfWriter )writeBytes (_cagcb []byte ){if _bafff ._adace !=nil {return ;};_efaff ,_afcga :=_bafff ._abad .Write (_cagcb );_bafff ._edabb +=int64 (_efaff );_bafff ._adace =_afcga ;};
// NewPermissions returns a new permissions object.
func NewPermissions (docMdp *PdfSignature )*Permissions {_cdbea :=Permissions {};_cdbea .DocMDP =docMdp ;_ggfff :=_ac .MakeDict ();_ggfff .Set ("\u0044\u006f\u0063\u004d\u0044\u0050",docMdp .ToPdfObject ());_cdbea ._aebdd =_ggfff ;return &_cdbea ;};
// ColorFromPdfObjects gets the color from a series of pdf objects (4 for cmyk).
func (_gfbc *PdfColorspaceDeviceCMYK )ColorFromPdfObjects (objects []_ac .PdfObject )(PdfColor ,error ){if len (objects )!=4{return nil ,_af .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_dabf ,_gfgdb :=_ac .GetNumbersAsFloat (objects );
if _gfgdb !=nil {return nil ,_gfgdb ;};return _gfbc .ColorFromFloats (_dabf );};
// PdfAnnotationWidget represents Widget annotations.
// Note: Widget annotations are used to display form fields.
// (Section 12.5.6.19).
type PdfAnnotationWidget struct{*PdfAnnotation ;H _ac .PdfObject ;MK _ac .PdfObject ;A _ac .PdfObject ;AA _ac .PdfObject ;BS _ac .PdfObject ;Parent _ac .PdfObject ;_gdb *PdfField ;_fed bool ;};
// PdfFieldText represents a text field where user can enter text.
type PdfFieldText struct{*PdfField ;DA *_ac .PdfObjectString ;Q *_ac .PdfObjectInteger ;DS *_ac .PdfObjectString ;RV _ac .PdfObject ;MaxLen *_ac .PdfObjectInteger ;};func _faba (_dafb *PdfPage )map[_ac .PdfObjectName ]_ac .PdfObject {_ded :=make (map[_ac .PdfObjectName ]_ac .PdfObject );
if _dafb .Resources ==nil {return _ded ;};if _dafb .Resources .Font !=nil {if _afde ,_dffg :=_ac .GetDict (_dafb .Resources .Font );_dffg {for _ ,_badgb :=range _afde .Keys (){_ded [_badgb ]=_afde .Get (_badgb );};};};if _dafb .Resources .ExtGState !=nil {if _dfbc ,_beeea :=_ac .GetDict (_dafb .Resources .ExtGState );
_beeea {for _ ,_ddab :=range _dfbc .Keys (){_ded [_ddab ]=_dfbc .Get (_ddab );};};};if _dafb .Resources .XObject !=nil {if _def ,_acgfg :=_ac .GetDict (_dafb .Resources .XObject );_acgfg {for _ ,_eeb :=range _def .Keys (){_ded [_eeb ]=_def .Get (_eeb );
};};};if _dafb .Resources .Pattern !=nil {if _gfgde ,_abff :=_ac .GetDict (_dafb .Resources .Pattern );_abff {for _ ,_dag :=range _gfgde .Keys (){_ded [_dag ]=_gfgde .Get (_dag );};};};if _dafb .Resources .Shading !=nil {if _gbcd ,_eggd :=_ac .GetDict (_dafb .Resources .Shading );
_eggd {for _ ,_bcac :=range _gbcd .Keys (){_ded [_bcac ]=_gbcd .Get (_bcac );};};};if _dafb .Resources .ProcSet !=nil {if _ccgd ,_cagba :=_ac .GetDict (_dafb .Resources .ProcSet );_cagba {for _ ,_cgff :=range _ccgd .Keys (){_ded [_cgff ]=_ccgd .Get (_cgff );
};};};if _dafb .Resources .Properties !=nil {if _adfb ,_eedc :=_ac .GetDict (_dafb .Resources .Properties );_eedc {for _ ,_cfa :=range _adfb .Keys (){_ded [_cfa ]=_adfb .Get (_cfa );};};};return _ded ;};func (_cced *PdfReader )newPdfAnnotationTextFromDict (_dbga *_ac .PdfObjectDictionary )(*PdfAnnotationText ,error ){_aae :=PdfAnnotationText {};
_dffa ,_cdc :=_cced .newPdfAnnotationMarkupFromDict (_dbga );if _cdc !=nil {return nil ,_cdc ;};_aae .PdfAnnotationMarkup =_dffa ;_aae .Open =_dbga .Get ("\u004f\u0070\u0065\u006e");_aae .Name =_dbga .Get ("\u004e\u0061\u006d\u0065");_aae .State =_dbga .Get ("\u0053\u0074\u0061t\u0065");
_aae .StateModel =_dbga .Get ("\u0053\u0074\u0061\u0074\u0065\u004d\u006f\u0064\u0065\u006c");return &_aae ,nil ;};
// BorderStyle defines border type, typically used for annotations.
type BorderStyle int ;
// PdfAcroForm represents the AcroForm dictionary used for representation of form data in PDF.
type PdfAcroForm struct{Fields *[]*PdfField ;NeedAppearances *_ac .PdfObjectBool ;SigFlags *_ac .PdfObjectInteger ;CO *_ac .PdfObjectArray ;DR *PdfPageResources ;DA *_ac .PdfObjectString ;Q *_ac .PdfObjectInteger ;XFA _ac .PdfObject ;
// ADBEEchoSign extra objects from Adobe Acrobat, causing signature invalid if not exists.
ADBEEchoSign _ac .PdfObject ;_abecf *_ac .PdfIndirectObject ;_dagc bool ;};func _cdef (_ccca StdFontName )(pdfFontSimple ,error ){_fdgg ,_fbdf :=_fda .NewStdFontByName (_ccca );if !_fbdf {return pdfFontSimple {},ErrFontNotSupported ;};_ggfe :=_fcbgg (_fdgg );
return _ggfe ,nil ;};
// GetCatalogMetadata gets the catalog defined XMP Metadata.
func (_beed *PdfReader )GetCatalogMetadata ()(_ac .PdfObject ,bool ){if _beed ._bdfc ==nil {return nil ,false ;};_decbb :=_beed ._bdfc .Get ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");return _decbb ,_decbb !=nil ;};
// 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 _adc .ReadSeeker )(*CompliancePdfReader ,error ){const _gdae ="\u006d\u006f\u0064\u0065l\u003a\u004e\u0065\u0077\u0043\u006f\u006d\u0070\u006c\u0069a\u006ec\u0065\u0050\u0064\u0066\u0052\u0065\u0061d\u0065\u0072";_caac ,_bbee :=_gaada (rs ,&ReaderOpts {ComplianceMode :true },false ,_gdae );
if _bbee !=nil {return nil ,_bbee ;};return &CompliancePdfReader {PdfReader :_caac },nil ;};
// 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 (_fbagea *PdfPage )AppendContentBytes (cs []byte ,wrapContents bool )error {_bbca :=_fbagea .GetContentStreamObjs ();wrapContents =wrapContents &&len (_bbca )> 0;_geec :=_ac .NewFlateEncoder ();_accb :=_ac .MakeArray ();if wrapContents {_efgfg ,_cfege :=_ac .MakeStream ([]byte ("\u0071\u000a"),_geec );
if _cfege !=nil {return _cfege ;};_accb .Append (_efgfg );};_accb .Append (_bbca ...);if wrapContents {_cfff ,_gdga :=_ac .MakeStream ([]byte ("\u000a\u0051\u000a"),_geec );if _gdga !=nil {return _gdga ;};_accb .Append (_cfff );};_bdbae ,_feedd :=_ac .MakeStream (cs ,_geec );
if _feedd !=nil {return _feedd ;};_accb .Append (_bdbae );_fbagea .Contents =_accb ;return nil ;};func (_cbgce *PdfReader )loadOutlines ()(*PdfOutlineTreeNode ,error ){if _cbgce ._eebeg .GetCrypter ()!=nil &&!_cbgce ._eebeg .IsAuthenticated (){return nil ,_d .Errorf ("\u0066\u0069\u006ce\u0020\u006e\u0065\u0065d\u0020\u0074\u006f\u0020\u0062\u0065\u0020d\u0065\u0063\u0072\u0079\u0070\u0074\u0065\u0064\u0020\u0066\u0069\u0072\u0073\u0074");
};_cbbff :=_cbgce ._bdfc ;_egag :=_cbbff .Get ("\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0073");if _egag ==nil {return nil ,nil ;};_gd .Log .Trace ("\u002d\u0048\u0061\u0073\u0020\u006f\u0075\u0074\u006c\u0069\u006e\u0065\u0073");_cecb :=_ac .ResolveReference (_egag );
_gd .Log .Trace ("\u004f\u0075t\u006c\u0069\u006ee\u0020\u0072\u006f\u006f\u0074\u003a\u0020\u0025\u0076",_cecb );if _acccg :=_ac .IsNullObject (_cecb );_acccg {_gd .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 ;};_efecc ,_fbebcf :=_cecb .(*_ac .PdfIndirectObject );if !_fbebcf {if _ ,_cfdec :=_ac .GetDict (_cecb );!_cfdec {_gd .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 ;};_gd .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");
_efecc =_ac .MakeIndirectObject (_cecb );};_aadg ,_fbebcf :=_efecc .PdfObject .(*_ac .PdfObjectDictionary );if !_fbebcf {return nil ,_af .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");
};_gd .Log .Trace ("O\u0075\u0074\u006c\u0069ne\u0020r\u006f\u006f\u0074\u0020\u0064i\u0063\u0074\u003a\u0020\u0025\u0076",_aadg );_ebce ,_ ,_efede :=_cbgce .buildOutlineTree (_efecc ,nil ,nil ,nil );if _efede !=nil {return nil ,_efede ;};_gd .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",_ebce );
return _ebce ,nil ;};func _fbgfd (_ebec *_ac .PdfIndirectObject ,_cdcd *_ac .PdfObjectDictionary )(*DSS ,error ){if _ebec ==nil {_ebec =_ac .MakeIndirectObject (nil );};_ebec .PdfObject =_ac .MakeDict ();_ebba :=map[string ]*VRI {};if _ecace ,_gagc :=_ac .GetDict (_cdcd .Get ("\u0056\u0052\u0049"));
_gagc {for _ ,_ceda :=range _ecace .Keys (){if _eeaf ,_gebf :=_ac .GetDict (_ecace .Get (_ceda ));_gebf {_ebba [_fg .ToUpper (_ceda .String ())]=_ggec (_eeaf );};};};return &DSS {Certs :_bcfac (_cdcd .Get ("\u0043\u0065\u0072t\u0073")),OCSPs :_bcfac (_cdcd .Get ("\u004f\u0043\u0053P\u0073")),CRLs :_bcfac (_cdcd .Get ("\u0043\u0052\u004c\u0073")),VRI :_ebba ,_gfed :_ebec },nil ;
};
// Clear clears flag fl from the flag and returns the resulting flag.
func (_cdbd FieldFlag )Clear (fl FieldFlag )FieldFlag {return FieldFlag (_cdbd .Mask ()&^fl .Mask ())};var _ pdfFont =(*pdfCIDFontType0 )(nil );
// ToPdfObject implements interface PdfModel.
func (_eeef *PdfAnnotationStamp )ToPdfObject ()_ac .PdfObject {_eeef .PdfAnnotation .ToPdfObject ();_ddbe :=_eeef ._fegd ;_bae :=_ddbe .PdfObject .(*_ac .PdfObjectDictionary );_eeef .PdfAnnotationMarkup .appendToPdfDictionary (_bae );_bae .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ac .MakeName ("\u0053\u0074\u0061m\u0070"));
_bae .SetIfNotNil ("\u004e\u0061\u006d\u0065",_eeef .Name );return _ddbe ;};func _cebcd (_cgce _ac .PdfObject )(*PdfColorspaceCalRGB ,error ){_cagbe :=NewPdfColorspaceCalRGB ();if _bafec ,_abef :=_cgce .(*_ac .PdfIndirectObject );_abef {_cagbe ._cffg =_bafec ;
};_cgce =_ac .TraceToDirectObject (_cgce );_gdgf ,_bfbf :=_cgce .(*_ac .PdfObjectArray );if !_bfbf {return nil ,_d .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _gdgf .Len ()!=2{return nil ,_d .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0043\u0061\u006c\u0052G\u0042 \u0063o\u006c\u006f\u0072\u0073\u0070\u0061\u0063e");
};_cgce =_ac .TraceToDirectObject (_gdgf .Get (0));_fbec ,_bfbf :=_cgce .(*_ac .PdfObjectName );if !_bfbf {return nil ,_d .Errorf ("\u0043\u0061l\u0052\u0047\u0042\u0020\u006e\u0061\u006d\u0065\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u004e\u0061\u006d\u0065\u0020\u006f\u0062je\u0063\u0074");
};if *_fbec !="\u0043\u0061\u006c\u0052\u0047\u0042"{return nil ,_d .Errorf ("\u006e\u006f\u0074 a\u0020\u0043\u0061\u006c\u0052\u0047\u0042\u0020\u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063\u0065");};_cgce =_ac .TraceToDirectObject (_gdgf .Get (1));
_ccab ,_bfbf :=_cgce .(*_ac .PdfObjectDictionary );if !_bfbf {return nil ,_d .Errorf ("\u0043\u0061l\u0052\u0047\u0042\u0020\u006e\u0061\u006d\u0065\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u004e\u0061\u006d\u0065\u0020\u006f\u0062je\u0063\u0074");};_cgce =_ccab .Get ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074");
_cgce =_ac .TraceToDirectObject (_cgce );_babe ,_bfbf :=_cgce .(*_ac .PdfObjectArray );if !_bfbf {return nil ,_d .Errorf ("\u0043\u0061\u006c\u0052\u0047\u0042\u003a\u0020\u0049\u006e\u0076a\u006c\u0069\u0064\u0020\u0057\u0068\u0069\u0074\u0065\u0050o\u0069\u006e\u0074");
};if _babe .Len ()!=3{return nil ,_d .Errorf ("\u0043\u0061\u006c\u0052\u0047\u0042\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064 \u0057h\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074\u0020\u0061\u0072\u0072\u0061\u0079");};_dacc ,_efcc :=_babe .GetAsFloat64Slice ();
if _efcc !=nil {return nil ,_efcc ;};_cagbe .WhitePoint =_dacc ;_cgce =_ccab .Get ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074");if _cgce !=nil {_cgce =_ac .TraceToDirectObject (_cgce );_cfde ,_ffga :=_cgce .(*_ac .PdfObjectArray );if !_ffga {return nil ,_d .Errorf ("\u0043\u0061\u006c\u0052\u0047\u0042\u003a\u0020\u0049\u006e\u0076a\u006c\u0069\u0064\u0020\u0042\u006c\u0061\u0063\u006b\u0050o\u0069\u006e\u0074");
};if _cfde .Len ()!=3{return nil ,_d .Errorf ("\u0043\u0061\u006c\u0052\u0047\u0042\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064 \u0042l\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074\u0020\u0061\u0072\u0072\u0061\u0079");};_gbddc ,_fffec :=_cfde .GetAsFloat64Slice ();
if _fffec !=nil {return nil ,_fffec ;};_cagbe .BlackPoint =_gbddc ;};_cgce =_ccab .Get ("\u0047\u0061\u006dm\u0061");if _cgce !=nil {_cgce =_ac .TraceToDirectObject (_cgce );_abdg ,_face :=_cgce .(*_ac .PdfObjectArray );if !_face {return nil ,_d .Errorf ("C\u0061\u006c\u0052\u0047B:\u0020I\u006e\u0076\u0061\u006c\u0069d\u0020\u0047\u0061\u006d\u006d\u0061");
};if _abdg .Len ()!=3{return nil ,_d .Errorf ("C\u0061\u006c\u0052\u0047\u0042\u003a \u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0047a\u006d\u006d\u0061 \u0061r\u0072\u0061\u0079");};_gbgf ,_fgdca :=_abdg .GetAsFloat64Slice ();if _fgdca !=nil {return nil ,_fgdca ;
};_cagbe .Gamma =_gbgf ;};_cgce =_ccab .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");if _cgce !=nil {_cgce =_ac .TraceToDirectObject (_cgce );_efgff ,_bgab :=_cgce .(*_ac .PdfObjectArray );if !_bgab {return nil ,_d .Errorf ("\u0043\u0061\u006c\u0052GB\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u004d\u0061\u0074\u0072i\u0078");
};if _efgff .Len ()!=9{_gd .Log .Error ("\u004d\u0061t\u0072\u0069\u0078 \u0061\u0072\u0072\u0061\u0079\u003a\u0020\u0025\u0073",_efgff .String ());return nil ,_d .Errorf ("\u0043\u0061\u006c\u0052G\u0042\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064 \u004da\u0074\u0072\u0069\u0078\u0020\u0061\u0072r\u0061\u0079");
};_fbff ,_cegfb :=_efgff .GetAsFloat64Slice ();if _cegfb !=nil {return nil ,_cegfb ;};_cagbe .Matrix =_fbff ;};return _cagbe ,nil ;};
// HasXObjectByName checks if has XObject resource by name.
func (_dgedcc *PdfPage )HasXObjectByName (name _ac .PdfObjectName )bool {_bbbf ,_afaf :=_dgedcc .Resources .XObject .(*_ac .PdfObjectDictionary );if !_afaf {return false ;};if _dedcb :=_bbbf .Get (name );_dedcb !=nil {return true ;};return false ;};
// 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 _ac .PdfObjectArray )(*PdfRectangle ,error ){_acff :=PdfRectangle {};if arr .Len ()!=4{return nil ,_af .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 _acgade error ;_acff .Llx ,_acgade =_ac .GetNumberAsFloat (arr .Get (0));if _acgade !=nil {return nil ,_acgade ;};_acff .Lly ,_acgade =_ac .GetNumberAsFloat (arr .Get (1));if _acgade !=nil {return nil ,_acgade ;};_acff .Urx ,_acgade =_ac .GetNumberAsFloat (arr .Get (2));
if _acgade !=nil {return nil ,_acgade ;};_acff .Ury ,_acgade =_ac .GetNumberAsFloat (arr .Get (3));if _acgade !=nil {return nil ,_acgade ;};return &_acff ,nil ;};
// ImageToRGB returns the passed in image. Method exists in order to satisfy
// the PdfColorspace interface.
func (_ecade *PdfColorspaceDeviceRGB )ImageToRGB (img Image )(Image ,error ){return img ,nil };
// NewCompositePdfFontFromTTFFile loads a composite font from a TTF font file. Composite fonts can
// be used to represent unicode fonts which can have multi-byte character codes, representing a wide
// range of values. They are often used for symbolic languages, including Chinese, Japanese and Korean.
// It is represented by a Type0 Font with an underlying CIDFontType2 and an Identity-H encoding map.
// TODO: May be extended in the future to support a larger variety of CMaps and vertical fonts.
// NOTE: For simple fonts, use NewPdfFontFromTTFFile.
func NewCompositePdfFontFromTTFFile (filePath string )(*PdfFont ,error ){_cebcb ,_eddca :=_cef .Open (filePath );if _eddca !=nil {_gd .Log .Debug ("\u0045\u0052\u0052OR\u003a\u0020\u006f\u0070\u0065\u006e\u0069\u006e\u0067\u0020\u0066\u0069\u006c\u0065\u003a\u0020\u0025\u0076",_eddca );
return nil ,_eddca ;};defer _cebcb .Close ();return NewCompositePdfFontFromTTF (_cebcb );};
// GetContainingPdfObject returns the container of the outline item (indirect object).
func (_cfeda *PdfOutlineItem )GetContainingPdfObject ()_ac .PdfObject {return _cfeda ._gbcec };func _gcag (_aedaa _ac .PdfObject )(*PdfFunctionType2 ,error ){_aeaff :=&PdfFunctionType2 {};var _cddf *_ac .PdfObjectDictionary ;if _edagg ,_dacg :=_aedaa .(*_ac .PdfIndirectObject );
_dacg {_bfggb ,_bdba :=_edagg .PdfObject .(*_ac .PdfObjectDictionary );if !_bdba {return nil ,_af .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_aeaff ._eaadg =_edagg ;_cddf =_bfggb ;}else if _ccegag ,_gcbb :=_aedaa .(*_ac .PdfObjectDictionary );
_gcbb {_cddf =_ccegag ;}else {return nil ,_af .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_gd .Log .Trace ("\u0046U\u004e\u0043\u0032\u003a\u0020\u0025s",_cddf .String ());_dgegc ,_gdccg :=_ac .TraceToDirectObject (_cddf .Get ("\u0044\u006f\u006d\u0061\u0069\u006e")).(*_ac .PdfObjectArray );
if !_gdccg {_gd .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_af .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 _dgegc .Len ()< 0||_dgegc .Len ()%2!=0{_gd .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u0072\u0061\u006e\u0067e\u0020\u0069\u006e\u0076al\u0069\u0064");return nil ,_af .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0064\u006f\u006da\u0069\u006e\u0020\u0072an\u0067\u0065");
};_bddb ,_gagea :=_dgegc .ToFloat64Array ();if _gagea !=nil {return nil ,_gagea ;};_aeaff .Domain =_bddb ;_dgegc ,_gdccg =_ac .TraceToDirectObject (_cddf .Get ("\u0052\u0061\u006eg\u0065")).(*_ac .PdfObjectArray );if _gdccg {if _dgegc .Len ()< 0||_dgegc .Len ()%2!=0{return nil ,_af .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0061\u006e\u0067\u0065");
};_ggca ,_efaca :=_dgegc .ToFloat64Array ();if _efaca !=nil {return nil ,_efaca ;};_aeaff .Range =_ggca ;};_dgegc ,_gdccg =_ac .TraceToDirectObject (_cddf .Get ("\u0043\u0030")).(*_ac .PdfObjectArray );if _gdccg {_fcag ,_fdgbb :=_dgegc .ToFloat64Array ();
if _fdgbb !=nil {return nil ,_fdgbb ;};_aeaff .C0 =_fcag ;};_dgegc ,_gdccg =_ac .TraceToDirectObject (_cddf .Get ("\u0043\u0031")).(*_ac .PdfObjectArray );if _gdccg {_bdda ,_fadb :=_dgegc .ToFloat64Array ();if _fadb !=nil {return nil ,_fadb ;};_aeaff .C1 =_bdda ;
};if len (_aeaff .C0 )!=len (_aeaff .C1 ){_gd .Log .Error ("\u0043\u0030\u0020\u0061nd\u0020\u0043\u0031\u0020\u006e\u006f\u0074\u0020\u006d\u0061\u0074\u0063\u0068\u0069n\u0067");return nil ,_ac .ErrRangeError ;};N ,_gagea :=_ac .GetNumberAsFloat (_ac .TraceToDirectObject (_cddf .Get ("\u004e")));
if _gagea !=nil {_gd .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",_cddf .String ());return nil ,_gagea ;};_aeaff .N =N ;
return _aeaff ,nil ;};func _gbec (_beafe _ac .PdfObject )(*PdfColorspaceCalGray ,error ){_ecgf :=NewPdfColorspaceCalGray ();if _beegb ,_gbbg :=_beafe .(*_ac .PdfIndirectObject );_gbbg {_ecgf ._eabd =_beegb ;};_beafe =_ac .TraceToDirectObject (_beafe );
_fabg ,_dbac :=_beafe .(*_ac .PdfObjectArray );if !_dbac {return nil ,_d .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _fabg .Len ()!=2{return nil ,_d .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0043\u0061\u006cG\u0072\u0061\u0079\u0020\u0063\u006f\u006c\u006f\u0072\u0073p\u0061\u0063\u0065");
};_beafe =_ac .TraceToDirectObject (_fabg .Get (0));_gedg ,_dbac :=_beafe .(*_ac .PdfObjectName );if !_dbac {return nil ,_d .Errorf ("\u0043\u0061\u006c\u0047\u0072\u0061\u0079\u0020\u006e\u0061m\u0065\u0020\u006e\u006f\u0074\u0020\u0061 \u004e\u0061\u006d\u0065\u0020\u006f\u0062\u006a\u0065\u0063\u0074");
};if *_gedg !="\u0043a\u006c\u0047\u0072\u0061\u0079"{return nil ,_d .Errorf ("\u006eo\u0074\u0020\u0061\u0020\u0043\u0061\u006c\u0047\u0072\u0061\u0079 \u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063\u0065");};_beafe =_ac .TraceToDirectObject (_fabg .Get (1));
_dfeg ,_dbac :=_beafe .(*_ac .PdfObjectDictionary );if !_dbac {return nil ,_d .Errorf ("\u0043\u0061lG\u0072\u0061\u0079 \u0064\u0069\u0063\u0074 no\u0074 a\u0020\u0044\u0069\u0063\u0074\u0069\u006fna\u0072\u0079\u0020\u006f\u0062\u006a\u0065c\u0074");
};_beafe =_dfeg .Get ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074");_beafe =_ac .TraceToDirectObject (_beafe );_cbee ,_dbac :=_beafe .(*_ac .PdfObjectArray );if !_dbac {return nil ,_d .Errorf ("C\u0061\u006c\u0047\u0072\u0061\u0079:\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020W\u0068\u0069\u0074e\u0050o\u0069\u006e\u0074");
};if _cbee .Len ()!=3{return nil ,_d .Errorf ("\u0043\u0061\u006c\u0047\u0072\u0061y\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0057\u0068\u0069t\u0065\u0050\u006f\u0069\u006e\u0074\u0020a\u0072\u0072\u0061\u0079");};_adda ,_bdcf :=_cbee .GetAsFloat64Slice ();
if _bdcf !=nil {return nil ,_bdcf ;};_ecgf .WhitePoint =_adda ;_beafe =_dfeg .Get ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074");if _beafe !=nil {_beafe =_ac .TraceToDirectObject (_beafe );_fbdc ,_fggd :=_beafe .(*_ac .PdfObjectArray );
if !_fggd {return nil ,_d .Errorf ("C\u0061\u006c\u0047\u0072\u0061\u0079:\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020B\u006c\u0061\u0063k\u0050o\u0069\u006e\u0074");};if _fbdc .Len ()!=3{return nil ,_d .Errorf ("\u0043\u0061\u006c\u0047\u0072\u0061y\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0042\u006c\u0061c\u006b\u0050\u006f\u0069\u006e\u0074\u0020a\u0072\u0072\u0061\u0079");
};_bgcd ,_fag :=_fbdc .GetAsFloat64Slice ();if _fag !=nil {return nil ,_fag ;};_ecgf .BlackPoint =_bgcd ;};_beafe =_dfeg .Get ("\u0047\u0061\u006dm\u0061");if _beafe !=nil {_beafe =_ac .TraceToDirectObject (_beafe );_cabcg ,_gabf :=_ac .GetNumberAsFloat (_beafe );
if _gabf !=nil {return nil ,_d .Errorf ("C\u0061\u006c\u0047\u0072\u0061\u0079:\u0020\u0067\u0061\u006d\u006d\u0061\u0020\u006e\u006ft\u0020\u0061\u0020n\u0075m\u0062\u0065\u0072");};_ecgf .Gamma =_cabcg ;};return _ecgf ,nil ;};
// AddContentStreamByString adds content stream by string. Puts the content
// string into a stream object and points the content stream towards it.
func (_adgcf *PdfPage )AddContentStreamByString (contentStr string )error {_dceg ,_gfbbc :=_ac .MakeStream ([]byte (contentStr ),_ac .NewFlateEncoder ());if _gfbbc !=nil {return _gfbbc ;};if _adgcf .Contents ==nil {_adgcf .Contents =_dceg ;}else {_cgadb :=_ac .TraceToDirectObject (_adgcf .Contents );
_ddgeb ,_aecae :=_cgadb .(*_ac .PdfObjectArray );if !_aecae {_ddgeb =_ac .MakeArray (_cgadb );};_ddgeb .Append (_dceg );_adgcf .Contents =_ddgeb ;};return nil ;};
// 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 ;
// HasShadingByName checks whether a shading is defined by the specified keyName.
func (_acfae *PdfPageResources )HasShadingByName (keyName _ac .PdfObjectName )bool {_ ,_dgccddc :=_acfae .GetShadingByName (keyName );return _dgccddc ;};
// FieldImageProvider provides fields images for specified fields.
type FieldImageProvider interface{FieldImageValues ()(map[string ]*Image ,error );};func _cacc (_ddcbb *PdfAnnotation )(*XObjectForm ,*PdfRectangle ,error ){_gbgc ,_bdcef :=_ac .GetDict (_ddcbb .AP );if !_bdcef {return nil ,nil ,_af .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 _gbgc ==nil {return nil ,nil ,nil ;};_fade ,_bdcef :=_ac .GetArray (_ddcbb .Rect );if !_bdcef ||_fade .Len ()!=4{return nil ,nil ,_af .New ("\u0072\u0065\u0063t\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064");};_dedd ,_edgef :=NewPdfRectangle (*_fade );
if _edgef !=nil {return nil ,nil ,_edgef ;};_bffa :=_ac .TraceToDirectObject (_gbgc .Get ("\u004e"));switch _fcca :=_bffa .(type ){case *_ac .PdfObjectStream :_aecfb :=_fcca ;_befdc ,_babdf :=NewXObjectFormFromStream (_aecfb );return _befdc ,_dedd ,_babdf ;
case *_ac .PdfObjectDictionary :_ddbeg :=_fcca ;_bdbef ,_feeb :=_ac .GetName (_ddcbb .AS );if !_feeb {return nil ,nil ,nil ;};if _ddbeg .Get (*_bdbef )==nil {_gd .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 ;};_adbgec ,_feeb :=_ac .GetStream (_ddbeg .Get (*_bdbef ));if !_feeb {_gd .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",_bdbef );
return nil ,nil ,_af .New ("\u0073\u0074\u0072\u0065\u0061\u006d\u0020\u006d\u0069s\u0073\u0069\u006e\u0067");};_bfdg ,_bebg :=NewXObjectFormFromStream (_adbgec );return _bfdg ,_dedd ,_bebg ;};_gd .Log .Debug ("\u0049\u006e\u0076\u0061li\u0064\u0020\u0074\u0079\u0070\u0065\u0020\u0066\u006f\u0072\u0020\u004e\u003a\u0020%\u0054",_bffa );
return nil ,nil ,_af .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};func (_cbecg *DSS )addCRLs (_bggb [][]byte )([]*_ac .PdfObjectStream ,error ){return _cbecg .add (&_cbecg .CRLs ,_cbecg ._gdbfa ,_bggb );
};
// GetContainingPdfObject returns the container of the outline tree node (indirect object).
func (_bdfe *PdfOutlineTreeNode )GetContainingPdfObject ()_ac .PdfObject {return _bdfe .GetContext ().GetContainingPdfObject ();};
// AlphaMap performs mapping of alpha data for transformations. Allows custom filtering of alpha data etc.
func (_bfbac *Image )AlphaMap (mapFunc AlphaMapFunc ){for _acae ,_abdb :=range _bfbac ._ebga {_bfbac ._ebga [_acae ]=mapFunc (_abdb );};};
// GetRuneMetrics returns the character metrics for the rune.
// A bool flag is returned to indicate whether or not the entry was found.
func (_ecdcd pdfFontSimple )GetRuneMetrics (r rune )(_fda .CharMetrics ,bool ){if _ecdcd ._gbbfd !=nil {_gggbf ,_fgdbg :=_ecdcd ._gbbfd .Read (r );if _fgdbg {return _gggbf ,true ;};};_bgdcf :=_ecdcd .Encoder ();if _bgdcf ==nil {_gd .Log .Debug ("\u004e\u006f\u0020en\u0063\u006f\u0064\u0065\u0072\u0020\u0066\u006f\u0072\u0020\u0066\u006f\u006e\u0074\u0073\u003d\u0025\u0073",_ecdcd );
return _fda .CharMetrics {},false ;};_bggg ,_dgbf :=_bgdcf .RuneToCharcode (r );if !_dgbf {if r !=' '{_gd .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 ,_ecdcd );
};return _fda .CharMetrics {},false ;};_efaf ,_gdfd :=_ecdcd .GetCharMetrics (_bggg );return _efaf ,_gdfd ;};func (_bgde *PdfReader )newPdfAnnotationFromIndirectObject (_ceag *_ac .PdfIndirectObject )(*PdfAnnotation ,error ){_cegf ,_gee :=_ceag .PdfObject .(*_ac .PdfObjectDictionary );
if !_gee {return nil ,_d .Errorf ("\u0061\u006e\u006e\u006f\u0074\u0061\u0074\u0069\u006f\u006e\u0020\u0069\u006e\u0064\u0069r\u0065\u0063\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0020\u006e\u006ft\u0020\u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0069\u006e\u0067\u0020a \u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079");
};if model :=_bgde ._gbced .GetModelFromPrimitive (_cegf );model !=nil {_fcgb ,_ege :=model .(*PdfAnnotation );if !_ege {return nil ,_d .Errorf ("\u0063\u0061\u0063\u0068\u0065\u0064 \u006d\u006f\u0064\u0065\u006c\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0050D\u0046\u0020\u0061\u006e\u006e\u006f\u0074a\u0074\u0069\u006f\u006e");
};return _fcgb ,nil ;};_ebf :=&PdfAnnotation {};_ebf ._fegd =_ceag ;_bgde ._gbced .Register (_cegf ,_ebf );if _baf :=_cegf .Get ("\u0054\u0079\u0070\u0065");_baf !=nil {_cdg ,_aeae :=_baf .(*_ac .PdfObjectName );if !_aeae {_gd .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",_baf );
}else {if *_cdg !="\u0041\u006e\u006eo\u0074"{_gd .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",*_cdg );};};};if _abbf :=_cegf .Get ("\u0052\u0065\u0063\u0074");
_abbf !=nil {_ebf .Rect =_abbf ;};if _bfa :=_cegf .Get ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073");_bfa !=nil {_ebf .Contents =_bfa ;};if _agc :=_cegf .Get ("\u0050");_agc !=nil {_ebf .P =_agc ;};if _gfgd :=_cegf .Get ("\u004e\u004d");_gfgd !=nil {_ebf .NM =_gfgd ;
};if _bfg :=_cegf .Get ("\u004d");_bfg !=nil {_ebf .M =_bfg ;};if _gbd :=_cegf .Get ("\u0046");_gbd !=nil {_ebf .F =_gbd ;};if _cad :=_cegf .Get ("\u0041\u0050");_cad !=nil {_ebf .AP =_cad ;};if _egda :=_cegf .Get ("\u0041\u0053");_egda !=nil {_ebf .AS =_egda ;
};if _ecbg :=_cegf .Get ("\u0042\u006f\u0072\u0064\u0065\u0072");_ecbg !=nil {_ebf .Border =_ecbg ;};if _bfgf :=_cegf .Get ("\u0043");_bfgf !=nil {_ebf .C =_bfgf ;};if _gbdg :=_cegf .Get ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074");
_gbdg !=nil {_ebf .StructParent =_gbdg ;};if _ccdg :=_cegf .Get ("\u004f\u0043");_ccdg !=nil {_ebf .OC =_ccdg ;};_daeda :=_cegf .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065");if _daeda ==nil {_gd .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");
_ebf ._cgf =nil ;return _ebf ,nil ;};_geaa ,_aedc :=_daeda .(*_ac .PdfObjectName );if !_aedc {_gd .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",_daeda );
return nil ,_d .Errorf ("i\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0053\u0075\u0062\u0074\u0079\u0070\u0065\u0020\u006f\u0062\u006ae\u0063\u0074\u0020\u0074\u0079\u0070\u0065\u0020\u0021\u003d n\u0061\u006d\u0065 \u0028%\u0054\u0029",_daeda );};switch *_geaa {case "\u0054\u0065\u0078\u0074":_dfbb ,_bce :=_bgde .newPdfAnnotationTextFromDict (_cegf );
if _bce !=nil {return nil ,_bce ;};_dfbb .PdfAnnotation =_ebf ;_ebf ._cgf =_dfbb ;return _ebf ,nil ;case "\u004c\u0069\u006e\u006b":_bad ,_fdee :=_bgde .newPdfAnnotationLinkFromDict (_cegf );if _fdee !=nil {return nil ,_fdee ;};_bad .PdfAnnotation =_ebf ;
_ebf ._cgf =_bad ;return _ebf ,nil ;case "\u0046\u0072\u0065\u0065\u0054\u0065\u0078\u0074":_fedc ,_ece :=_bgde .newPdfAnnotationFreeTextFromDict (_cegf );if _ece !=nil {return nil ,_ece ;};_fedc .PdfAnnotation =_ebf ;_ebf ._cgf =_fedc ;return _ebf ,nil ;
case "\u004c\u0069\u006e\u0065":_caa ,_bbcd :=_bgde .newPdfAnnotationLineFromDict (_cegf );if _bbcd !=nil {return nil ,_bbcd ;};_caa .PdfAnnotation =_ebf ;_ebf ._cgf =_caa ;_gd .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",_ebf ,_ebf );
_gd .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",_caa ,_caa );_gd .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",_caa .PdfAnnotationMarkup ,_caa .PdfAnnotationMarkup );
return _ebf ,nil ;case "\u0053\u0071\u0075\u0061\u0072\u0065":_afd ,_fee :=_bgde .newPdfAnnotationSquareFromDict (_cegf );if _fee !=nil {return nil ,_fee ;};_afd .PdfAnnotation =_ebf ;_ebf ._cgf =_afd ;return _ebf ,nil ;case "\u0043\u0069\u0072\u0063\u006c\u0065":_ccfd ,_ccff :=_bgde .newPdfAnnotationCircleFromDict (_cegf );
if _ccff !=nil {return nil ,_ccff ;};_ccfd .PdfAnnotation =_ebf ;_ebf ._cgf =_ccfd ;return _ebf ,nil ;case "\u0050o\u006c\u0079\u0067\u006f\u006e":_ebe ,_efae :=_bgde .newPdfAnnotationPolygonFromDict (_cegf );if _efae !=nil {return nil ,_efae ;};_ebe .PdfAnnotation =_ebf ;
_ebf ._cgf =_ebe ;return _ebf ,nil ;case "\u0050\u006f\u006c\u0079\u004c\u0069\u006e\u0065":_dgcc ,_gfd :=_bgde .newPdfAnnotationPolyLineFromDict (_cegf );if _gfd !=nil {return nil ,_gfd ;};_dgcc .PdfAnnotation =_ebf ;_ebf ._cgf =_dgcc ;return _ebf ,nil ;
case "\u0048i\u0067\u0068\u006c\u0069\u0067\u0068t":_dff ,_gefb :=_bgde .newPdfAnnotationHighlightFromDict (_cegf );if _gefb !=nil {return nil ,_gefb ;};_dff .PdfAnnotation =_ebf ;_ebf ._cgf =_dff ;return _ebf ,nil ;case "\u0055n\u0064\u0065\u0072\u006c\u0069\u006ee":_bdag ,_dgcd :=_bgde .newPdfAnnotationUnderlineFromDict (_cegf );
if _dgcd !=nil {return nil ,_dgcd ;};_bdag .PdfAnnotation =_ebf ;_ebf ._cgf =_bdag ;return _ebf ,nil ;case "\u0053\u0071\u0075\u0069\u0067\u0067\u006c\u0079":_ffcg ,_fbag :=_bgde .newPdfAnnotationSquigglyFromDict (_cegf );if _fbag !=nil {return nil ,_fbag ;
};_ffcg .PdfAnnotation =_ebf ;_ebf ._cgf =_ffcg ;return _ebf ,nil ;case "\u0053t\u0072\u0069\u006b\u0065\u004f\u0075t":_gded ,_ebc :=_bgde .newPdfAnnotationStrikeOut (_cegf );if _ebc !=nil {return nil ,_ebc ;};_gded .PdfAnnotation =_ebf ;_ebf ._cgf =_gded ;
return _ebf ,nil ;case "\u0043\u0061\u0072e\u0074":_fbd ,_bdca :=_bgde .newPdfAnnotationCaretFromDict (_cegf );if _bdca !=nil {return nil ,_bdca ;};_fbd .PdfAnnotation =_ebf ;_ebf ._cgf =_fbd ;return _ebf ,nil ;case "\u0053\u0074\u0061m\u0070":_eee ,_gfge :=_bgde .newPdfAnnotationStampFromDict (_cegf );
if _gfge !=nil {return nil ,_gfge ;};_eee .PdfAnnotation =_ebf ;_ebf ._cgf =_eee ;return _ebf ,nil ;case "\u0049\u006e\u006b":_fede ,_cdge :=_bgde .newPdfAnnotationInkFromDict (_cegf );if _cdge !=nil {return nil ,_cdge ;};_fede .PdfAnnotation =_ebf ;_ebf ._cgf =_fede ;
return _ebf ,nil ;case "\u0050\u006f\u0070u\u0070":_bdbd ,_abf :=_bgde .newPdfAnnotationPopupFromDict (_cegf );if _abf !=nil {return nil ,_abf ;};_bdbd .PdfAnnotation =_ebf ;_ebf ._cgf =_bdbd ;return _ebf ,nil ;case "\u0046\u0069\u006c\u0065\u0041\u0074\u0074\u0061\u0063h\u006d\u0065\u006e\u0074":_egba ,_gfbf :=_bgde .newPdfAnnotationFileAttachmentFromDict (_cegf );
if _gfbf !=nil {return nil ,_gfbf ;};_egba .PdfAnnotation =_ebf ;_ebf ._cgf =_egba ;return _ebf ,nil ;case "\u0053\u006f\u0075n\u0064":_effa ,_fedb :=_bgde .newPdfAnnotationSoundFromDict (_cegf );if _fedb !=nil {return nil ,_fedb ;};_effa .PdfAnnotation =_ebf ;
_ebf ._cgf =_effa ;return _ebf ,nil ;case "\u0052i\u0063\u0068\u004d\u0065\u0064\u0069a":_eceb ,_agb :=_bgde .newPdfAnnotationRichMediaFromDict (_cegf );if _agb !=nil {return nil ,_agb ;};_eceb .PdfAnnotation =_ebf ;_ebf ._cgf =_eceb ;return _ebf ,nil ;
case "\u004d\u006f\u0076i\u0065":_gafg ,_egbe :=_bgde .newPdfAnnotationMovieFromDict (_cegf );if _egbe !=nil {return nil ,_egbe ;};_gafg .PdfAnnotation =_ebf ;_ebf ._cgf =_gafg ;return _ebf ,nil ;case "\u0053\u0063\u0072\u0065\u0065\u006e":_age ,_ddd :=_bgde .newPdfAnnotationScreenFromDict (_cegf );
if _ddd !=nil {return nil ,_ddd ;};_age .PdfAnnotation =_ebf ;_ebf ._cgf =_age ;return _ebf ,nil ;case "\u0057\u0069\u0064\u0067\u0065\u0074":_bfea ,_eddb :=_bgde .newPdfAnnotationWidgetFromDict (_cegf );if _eddb !=nil {return nil ,_eddb ;};_bfea .PdfAnnotation =_ebf ;
_ebf ._cgf =_bfea ;return _ebf ,nil ;case "P\u0072\u0069\u006e\u0074\u0065\u0072\u004d\u0061\u0072\u006b":_gbb ,_ebg :=_bgde .newPdfAnnotationPrinterMarkFromDict (_cegf );if _ebg !=nil {return nil ,_ebg ;};_gbb .PdfAnnotation =_ebf ;_ebf ._cgf =_gbb ;return _ebf ,nil ;
case "\u0054r\u0061\u0070\u004e\u0065\u0074":_dea ,_cbdb :=_bgde .newPdfAnnotationTrapNetFromDict (_cegf );if _cbdb !=nil {return nil ,_cbdb ;};_dea .PdfAnnotation =_ebf ;_ebf ._cgf =_dea ;return _ebf ,nil ;case "\u0057a\u0074\u0065\u0072\u006d\u0061\u0072k":_fbf ,_gbdb :=_bgde .newPdfAnnotationWatermarkFromDict (_cegf );
if _gbdb !=nil {return nil ,_gbdb ;};_fbf .PdfAnnotation =_ebf ;_ebf ._cgf =_fbf ;return _ebf ,nil ;case "\u0033\u0044":_gfa ,_dbe :=_bgde .newPdfAnnotation3DFromDict (_cegf );if _dbe !=nil {return nil ,_dbe ;};_gfa .PdfAnnotation =_ebf ;_ebf ._cgf =_gfa ;
return _ebf ,nil ;case "\u0050\u0072\u006f\u006a\u0065\u0063\u0074\u0069\u006f\u006e":_cgb ,_cfg :=_bgde .newPdfAnnotationProjectionFromDict (_cegf );if _cfg !=nil {return nil ,_cfg ;};_cgb .PdfAnnotation =_ebf ;_ebf ._cgf =_cgb ;return _ebf ,nil ;case "\u0052\u0065\u0064\u0061\u0063\u0074":_beee ,_bded :=_bgde .newPdfAnnotationRedactFromDict (_cegf );
if _bded !=nil {return nil ,_bded ;};_beee .PdfAnnotation =_ebf ;_ebf ._cgf =_beee ;return _ebf ,nil ;};_gd .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",*_geaa );
return nil ,nil ;};
// PdfAnnotation3D represents 3D annotations.
// (Section 13.6.2).
type PdfAnnotation3D struct{*PdfAnnotation ;T3DD _ac .PdfObject ;T3DV _ac .PdfObject ;T3DA _ac .PdfObject ;T3DI _ac .PdfObject ;T3DB _ac .PdfObject ;};
// ToUnicode returns the name of the font's "ToUnicode" field if there is one, or "" if there isn't.
func (_febd *PdfFont )ToUnicode ()string {if _febd .baseFields ()._acbbb ==nil {return "";};return _febd .baseFields ()._acbbb .Name ();};
// NewPdfActionJavaScript returns a new "javaScript" action.
func NewPdfActionJavaScript ()*PdfActionJavaScript {_fac :=NewPdfAction ();_bab :=&PdfActionJavaScript {};_bab .PdfAction =_fac ;_fac .SetContext (_bab );return _bab ;};func (_fefab *PdfReader )newPdfFieldFromIndirectObject (_becc *_ac .PdfIndirectObject ,_eeffe *PdfField )(*PdfField ,error ){if _egefd ,_fdba :=_fefab ._gbced .GetModelFromPrimitive (_becc ).(*PdfField );
_fdba {return _egefd ,nil ;};_agbgc ,_egee :=_ac .GetDict (_becc );if !_egee {return nil ,_d .Errorf ("\u0050\u0064f\u0046\u0069\u0065\u006c\u0064 \u0069\u006e\u0064\u0069\u0072e\u0063\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0020\u006e\u006f\u0074\u0020\u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0069\u006e\u0067\u0020\u0061\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079");
};_gfbb :=NewPdfField ();_gfbb ._bdde =_becc ;_gfbb ._bdde .PdfObject =_agbgc ;if _acdgb ,_bgaba :=_ac .GetName (_agbgc .Get ("\u0046\u0054"));_bgaba {_gfbb .FT =_acdgb ;};if _eeffe !=nil {_gfbb .Parent =_eeffe ;};_gfbb .T ,_ =_agbgc .Get ("\u0054").(*_ac .PdfObjectString );
_gfbb .TU ,_ =_agbgc .Get ("\u0054\u0055").(*_ac .PdfObjectString );_gfbb .TM ,_ =_agbgc .Get ("\u0054\u004d").(*_ac .PdfObjectString );_gfbb .Ff ,_ =_agbgc .Get ("\u0046\u0066").(*_ac .PdfObjectInteger );_gfbb .V =_agbgc .Get ("\u0056");_gfbb .DV =_agbgc .Get ("\u0044\u0056");
_gfbb .AA =_agbgc .Get ("\u0041\u0041");if DA :=_agbgc .Get ("\u0044\u0041");DA !=nil {DA ,_ :=_ac .GetString (DA );_gfbb .VariableText =&VariableText {DA :DA };Q ,_ :=_agbgc .Get ("\u0051").(*_ac .PdfObjectInteger );DS ,_ :=_agbgc .Get ("\u0044\u0053").(*_ac .PdfObjectString );
RV :=_agbgc .Get ("\u0052\u0056");_gfbb .VariableText .Q =Q ;_gfbb .VariableText .DS =DS ;_gfbb .VariableText .RV =RV ;};_adgfg :=_gfbb .FT ;if _adgfg ==nil &&_eeffe !=nil {_adgfg =_eeffe .FT ;};if _adgfg !=nil {switch *_adgfg {case "\u0054\u0078":_ega ,_gdfee :=_adggc (_agbgc );
if _gdfee !=nil {return nil ,_gdfee ;};_ega .PdfField =_gfbb ;_gfbb ._edab =_ega ;case "\u0043\u0068":_eaace ,_ffca :=_ebgfe (_agbgc );if _ffca !=nil {return nil ,_ffca ;};_eaace .PdfField =_gfbb ;_gfbb ._edab =_eaace ;case "\u0042\u0074\u006e":_gaab ,_gddb :=_dacaa (_agbgc );
if _gddb !=nil {return nil ,_gddb ;};_gaab .PdfField =_gfbb ;_gfbb ._edab =_gaab ;case "\u0053\u0069\u0067":_cdabd ,_dadbc :=_fefab .newPdfFieldSignatureFromDict (_agbgc );if _dadbc !=nil {return nil ,_dadbc ;};_cdabd .PdfField =_gfbb ;_gfbb ._edab =_cdabd ;
default:_gd .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",*_gfbb .FT );return nil ,_af .New ("\u0075\u006e\u0073\u0075pp\u006f\u0072\u0074\u0065\u0064\u0020\u0066\u0069\u0065\u006c\u0064\u0020\u0074\u0079p\u0065");
};};if _eccef ,_aegb :=_ac .GetName (_agbgc .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065"));_aegb {if *_eccef =="\u0057\u0069\u0064\u0067\u0065\u0074"{_aebcc ,_ddba :=_fefab .newPdfAnnotationFromIndirectObject (_becc );if _ddba !=nil {return nil ,_ddba ;
};_bgae ,_fgfbd :=_aebcc .GetContext ().(*PdfAnnotationWidget );if !_fgfbd {return nil ,_af .New ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0077\u0069\u0064\u0067e\u0074 \u0061n\u006e\u006f\u0074\u0061\u0074\u0069\u006fn");};_bgae ._gdb =_gfbb ;_bgae .Parent =_gfbb ._bdde ;
_gfbb .Annotations =append (_gfbb .Annotations ,_bgae );return _gfbb ,nil ;};};_cebce :=true ;if _dafca ,_geed :=_ac .GetArray (_agbgc .Get ("\u004b\u0069\u0064\u0073"));_geed {_abgab :=make ([]*_ac .PdfIndirectObject ,0,_dafca .Len ());for _ ,_gegac :=range _dafca .Elements (){_fdcc ,_degca :=_ac .GetIndirect (_gegac );
if !_degca {_gbdc ,_geea :=_ac .GetStream (_gegac );if _geea &&_gbdc .PdfObjectDictionary !=nil {_cacb ,_fgce :=_ac .GetNameVal (_gbdc .Get ("\u0054\u0079\u0070\u0065"));if _fgce &&_cacb =="\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061"{_gd .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 ,_af .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");};_afe ,_cffbe :=_ac .GetDict (_fdcc );
if !_cffbe {return nil ,ErrTypeCheck ;};if _cebce {_cebce =!_abdfg (_afe );};_abgab =append (_abgab ,_fdcc );};for _ ,_cafbe :=range _abgab {if _cebce {_dgdge ,_abae :=_fefab .newPdfAnnotationFromIndirectObject (_cafbe );if _abae !=nil {_gd .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",_abae );
return nil ,_abae ;};_afag ,_gadbg :=_dgdge ._cgf .(*PdfAnnotationWidget );if !_gadbg {return nil ,ErrTypeCheck ;};_afag ._gdb =_gfbb ;_gfbb .Annotations =append (_gfbb .Annotations ,_afag );}else {_ccgba ,_fbbaf :=_fefab .newPdfFieldFromIndirectObject (_cafbe ,_gfbb );
if _fbbaf !=nil {_gd .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",_fbbaf );return nil ,_fbbaf ;};_gfbb .Kids =append (_gfbb .Kids ,_ccgba );
};};};return _gfbb ,nil ;};func (_eagec *PdfWriter )copyObjects (){_dadbbd :=make (map[_ac .PdfObject ]_ac .PdfObject );_bfbfe :=make ([]_ac .PdfObject ,0,len (_eagec ._gdeaf ));_ffdb :=make (map[_ac .PdfObject ]struct{},len (_eagec ._gdeaf ));_eagfbc :=make (map[_ac .PdfObject ]struct{});
for _ ,_dbgeg :=range _eagec ._gdeaf {_acbee :=_eagec .copyObject (_dbgeg ,_dadbbd ,_eagfbc ,false );if _ ,_egbfdb :=_eagfbc [_dbgeg ];_egbfdb {continue ;};_bfbfe =append (_bfbfe ,_acbee );_ffdb [_acbee ]=struct{}{};};_eagec ._gdeaf =_bfbfe ;_eagec ._agbff =_ffdb ;
_eagec ._aefadb =_eagec .copyObject (_eagec ._aefadb ,_dadbbd ,nil ,false ).(*_ac .PdfIndirectObject );_eagec ._efcff =_eagec .copyObject (_eagec ._efcff ,_dadbbd ,nil ,false ).(*_ac .PdfIndirectObject );if _eagec ._ecgdb !=nil {_eagec ._ecgdb =_eagec .copyObject (_eagec ._ecgdb ,_dadbbd ,nil ,false ).(*_ac .PdfIndirectObject );
};if _eagec ._cfgc {_agef :=make (map[_ac .PdfObject ]int64 );for _degde ,_dbcfb :=range _eagec ._dgbfe {if _bgcbd ,_bfeff :=_dadbbd [_degde ];_bfeff {_agef [_bgcbd ]=_dbcfb ;}else {_gd .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");
};};_eagec ._dgbfe =_agef ;};};
// 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 (_agba *PdfWriter )ApplyStandard (optimizer StandardApplier ){_agba ._faega =optimizer };func _bbcfe (_dacac _ac .PdfObject )(*PdfPattern ,error ){_gegf :=&PdfPattern {};var _ebaa *_ac .PdfObjectDictionary ;if _agccd ,_acgcg :=_ac .GetIndirect (_dacac );
_acgcg {_gegf ._fddfb =_agccd ;_fbea ,_cgegg :=_agccd .PdfObject .(*_ac .PdfObjectDictionary );if !_cgegg {_gd .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",_agccd .PdfObject );
return nil ,_ac .ErrTypeError ;};_ebaa =_fbea ;}else if _bfgfg ,_dgfba :=_ac .GetStream (_dacac );_dgfba {_gegf ._fddfb =_bfgfg ;_ebaa =_bfgfg .PdfObjectDictionary ;}else {_gd .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",_dacac );
return nil ,_ac .ErrTypeError ;};_abbd :=_ebaa .Get ("P\u0061\u0074\u0074\u0065\u0072\u006e\u0054\u0079\u0070\u0065");if _abbd ==nil {_gd .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 ;};_eefe ,_bcgdf :=_abbd .(*_ac .PdfObjectInteger );if !_bcgdf {_gd .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",_abbd );
return nil ,_ac .ErrTypeError ;};if *_eefe !=1&&*_eefe !=2{_gd .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",*_eefe );return nil ,_ac .ErrRangeError ;
};_gegf .PatternType =int64 (*_eefe );switch *_eefe {case 1:_bfed ,_bcbcc :=_deccg (_ebaa );if _bcbcc !=nil {return nil ,_bcbcc ;};_bfed .PdfPattern =_gegf ;_gegf ._bfcc =_bfed ;return _gegf ,nil ;case 2:_bdbb ,_caabg :=_eeaca (_ebaa );if _caabg !=nil {return nil ,_caabg ;
};_bdbb .PdfPattern =_gegf ;_gegf ._bfcc =_bdbb ;return _gegf ,nil ;};return nil ,_af .New ("\u0075n\u006bn\u006f\u0077\u006e\u0020\u0070\u0061\u0074\u0074\u0065\u0072\u006e");};
// 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 *_ca .DiffResults ;
// GeneralizedTime is the time at which the time-stamp token has been created by the TSA (RFC 3161).
GeneralizedTime _e .Time ;};const (RC4_128bit =EncryptionAlgorithm (iota );AES_128bit ;AES_256bit ;);
// GetDescent returns the Descent of the font `descriptor`.
func (_aggdg *PdfFontDescriptor )GetDescent ()(float64 ,error ){return _ac .GetNumberAsFloat (_aggdg .Descent );};
// SetNameDictionary sets the Names entry in the PDF catalog.
// See section 7.7.4 "Name Dictionary" (p. 80 PDF32000_2008).
func (_aeagfa *PdfWriter )SetNameDictionary (names _ac .PdfObject )error {if names ==nil {return nil ;};_gd .Log .Trace ("\u0053e\u0074\u0074\u0069\u006e\u0067\u0020\u0063\u0061\u0074\u0061\u006co\u0067\u0020\u004e\u0061\u006d\u0065\u0073\u002e\u002e\u002e");
_aeagfa ._cgfegd .Set ("\u004e\u0061\u006de\u0073",names );return _aeagfa .addObjects (names );};func _dfce (_gecga _ac .PdfObject )(string ,error ){_gecga =_ac .TraceToDirectObject (_gecga );switch _bgccb :=_gecga .(type ){case *_ac .PdfObjectString :return _bgccb .Str (),nil ;
case *_ac .PdfObjectStream :_cgaac ,_degbf :=_ac .DecodeStream (_bgccb );if _degbf !=nil {return "",_degbf ;};return string (_cgaac ),nil ;};return "",_d .Errorf ("\u0069\u006e\u0076\u0061\u006ci\u0064\u0020\u0063\u006f\u006e\u0074\u0065\u006e\u0074\u0020\u0073\u0074\u0072e\u0061\u006d\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0020\u0068\u006f\u006c\u0064\u0065\u0072\u0020\u0028\u0025\u0054\u0029",_gecga );
};
// ToPdfObject returns the PDF representation of the shading pattern.
func (_fceac *PdfShadingPattern )ToPdfObject ()_ac .PdfObject {_fceac .PdfPattern .ToPdfObject ();_cdfbf :=_fceac .getDict ();if _fceac .Shading !=nil {_cdfbf .Set ("\u0053h\u0061\u0064\u0069\u006e\u0067",_fceac .Shading .ToPdfObject ());};if _fceac .Matrix !=nil {_cdfbf .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_fceac .Matrix );
};if _fceac .ExtGState !=nil {_cdfbf .Set ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e",_fceac .ExtGState );};return _fceac ._fddfb ;};
// Has checks if flag fl is set in flag and returns true if so, false otherwise.
func (_bdfbd FieldFlag )Has (fl FieldFlag )bool {return (_bdfbd .Mask ()&fl .Mask ())> 0};func (_cgfgea *PdfReader )loadStructure ()error {if _cgfgea ._eebeg .GetCrypter ()!=nil &&!_cgfgea ._eebeg .IsAuthenticated (){return _d .Errorf ("\u0066\u0069\u006ce\u0020\u006e\u0065\u0065d\u0020\u0074\u006f\u0020\u0062\u0065\u0020d\u0065\u0063\u0072\u0079\u0070\u0074\u0065\u0064\u0020\u0066\u0069\u0072\u0073\u0074");
};_aced :=_cgfgea ._eebeg .GetTrailer ();if _aced ==nil {return _d .Errorf ("\u006di\u0073s\u0069\u006e\u0067\u0020\u0074\u0072\u0061\u0069\u006c\u0065\u0072");};_acbbf ,_gefbf :=_aced .Get ("\u0052\u006f\u006f\u0074").(*_ac .PdfObjectReference );if !_gefbf {return _d .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0052\u006f\u006ft\u0020\u0028\u0074\u0072\u0061\u0069\u006c\u0065\u0072\u003a \u0025\u0073\u0029",_aced );
};_edcc ,_gbcecg :=_cgfgea ._eebeg .LookupByReference (*_acbbf );if _gbcecg !=nil {_gd .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",_gbcecg );
return _gbcecg ;};_fgdce ,_gefbf :=_edcc .(*_ac .PdfIndirectObject );if !_gefbf {_gd .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",_edcc ,*_aced );
return _af .New ("\u006di\u0073s\u0069\u006e\u0067\u0020\u0063\u0061\u0074\u0061\u006c\u006f\u0067");};_ffbg ,_gefbf :=(*_fgdce ).PdfObject .(*_ac .PdfObjectDictionary );if !_gefbf {_gd .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",_fgdce .PdfObject );
return _af .New ("\u0069n\u0076a\u006c\u0069\u0064\u0020\u0063\u0061\u0074\u0061\u006c\u006f\u0067");};_gd .Log .Trace ("C\u0061\u0074\u0061\u006c\u006f\u0067\u003a\u0020\u0025\u0073",_ffbg );_becfb ,_gefbf :=_ffbg .Get ("\u0050\u0061\u0067e\u0073").(*_ac .PdfObjectReference );
if !_gefbf {return _af .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");};_ceefg ,_gbcecg :=_cgfgea ._eebeg .LookupByReference (*_becfb );
if _gbcecg !=nil {_gd .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 _gbcecg ;};_bdbba ,_gefbf :=_ceefg .(*_ac .PdfIndirectObject );if !_gefbf {_gd .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");
_gd .Log .Debug ("\u006f\u0070\u003a\u0020\u0025\u0070",_bdbba );return _af .New ("p\u0061g\u0065\u0073\u0020\u006f\u0062\u006a\u0065\u0063t\u0020\u0069\u006e\u0076al\u0069\u0064");};_cccea ,_gefbf :=_bdbba .PdfObject .(*_ac .PdfObjectDictionary );if !_gefbf {_gd .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",_bdbba );
return _af .New ("p\u0061g\u0065\u0073\u0020\u006f\u0062\u006a\u0065\u0063t\u0020\u0069\u006e\u0076al\u0069\u0064");};_ceccb ,_gefbf :=_ac .GetInt (_cccea .Get ("\u0043\u006f\u0075n\u0074"));if !_gefbf {_gd .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 _af .New ("\u0070\u0061\u0067\u0065s \u0063\u006f\u0075\u006e\u0074\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064");};if _ ,_gefbf =_ac .GetName (_cccea .Get ("\u0054\u0079\u0070\u0065"));!_gefbf {_gd .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");
_cccea .Set ("\u0054\u0079\u0070\u0065",_ac .MakeName ("\u0050\u0061\u0067e\u0073"));};if _dcage ,_cabdc :=_ac .GetInt (_cccea .Get ("\u0052\u006f\u0074\u0061\u0074\u0065"));_cabdc {_gaaec :=int64 (*_dcage );_cgfgea .Rotate =&_gaaec ;};_cgfgea ._egfgf =_acbbf ;
_cgfgea ._bdfc =_ffbg ;_cgfgea ._eccec =_cccea ;_cgfgea ._efeee =_bdbba ;_cgfgea ._dageg =int (*_ceccb );_cgfgea ._acca =[]*_ac .PdfIndirectObject {};_bace :=map[_ac .PdfObject ]struct{}{};_gbcecg =_cgfgea .buildPageList (_bdbba ,nil ,_bace );if _gbcecg !=nil {return _gbcecg ;
};_gd .Log .Trace ("\u002d\u002d\u002d");_gd .Log .Trace ("\u0054\u004f\u0043");_gd .Log .Trace ("\u0050\u0061\u0067e\u0073");_gd .Log .Trace ("\u0025\u0064\u003a\u0020\u0025\u0073",len (_cgfgea ._acca ),_cgfgea ._acca );_cgfgea ._adbfg ,_gbcecg =_cgfgea .loadOutlines ();
if _gbcecg !=nil {_gd .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",_gbcecg );
return _gbcecg ;};_cgfgea .AcroForm ,_gbcecg =_cgfgea .loadForms ();if _gbcecg !=nil {return _gbcecg ;};_cgfgea .DSS ,_gbcecg =_cgfgea .loadDSS ();if _gbcecg !=nil {return _gbcecg ;};_cgfgea ._bddf ,_gbcecg =_cgfgea .loadPerms ();if _gbcecg !=nil {return _gbcecg ;
};return nil ;};
// NewPdfAnnotationCaret returns a new caret annotation.
func NewPdfAnnotationCaret ()*PdfAnnotationCaret {_ged :=NewPdfAnnotation ();_bdb :=&PdfAnnotationCaret {};_bdb .PdfAnnotation =_ged ;_bdb .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_ged .SetContext (_bdb );return _bdb ;};
// HasFontByName checks if has font resource by name.
func (_edbfg *PdfPage )HasFontByName (name _ac .PdfObjectName )bool {_caaddb ,_deae :=_edbfg .Resources .Font .(*_ac .PdfObjectDictionary );if !_deae {return false ;};if _ebac :=_caaddb .Get (name );_ebac !=nil {return true ;};return false ;};func (_ddg *PdfReader )newPdfAnnotationCircleFromDict (_bdbc *_ac .PdfObjectDictionary )(*PdfAnnotationCircle ,error ){_cfea :=PdfAnnotationCircle {};
_cab ,_gad :=_ddg .newPdfAnnotationMarkupFromDict (_bdbc );if _gad !=nil {return nil ,_gad ;};_cfea .PdfAnnotationMarkup =_cab ;_cfea .BS =_bdbc .Get ("\u0042\u0053");_cfea .IC =_bdbc .Get ("\u0049\u0043");_cfea .BE =_bdbc .Get ("\u0042\u0045");_cfea .RD =_bdbc .Get ("\u0052\u0044");
return &_cfea ,nil ;};func (_debe *pdfFontType0 )getFontDescriptor ()*PdfFontDescriptor {if _debe ._bgbdc ==nil &&_debe .DescendantFont !=nil {return _debe .DescendantFont .FontDescriptor ();};return _debe ._bgbdc ;};
// ToPdfObject returns the PDF representation of the colorspace.
func (_gcffe *PdfColorspaceSpecialSeparation )ToPdfObject ()_ac .PdfObject {_eddc :=_ac .MakeArray (_ac .MakeName ("\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e"));_eddc .Append (_gcffe .ColorantName );_eddc .Append (_gcffe .AlternateSpace .ToPdfObject ());
_eddc .Append (_gcffe .TintTransform .ToPdfObject ());if _gcffe ._becg !=nil {_gcffe ._becg .PdfObject =_eddc ;return _gcffe ._becg ;};return _eddc ;};
// ButtonType represents the subtype of a button field, can be one of:
// - Checkbox (ButtonTypeCheckbox)
// - PushButton (ButtonTypePushButton)
// - RadioButton (ButtonTypeRadioButton)
type ButtonType int ;
// NewPdfColorspaceDeviceGray returns a new grayscale colorspace.
func NewPdfColorspaceDeviceGray ()*PdfColorspaceDeviceGray {return &PdfColorspaceDeviceGray {}};
// GetContainingPdfObject returns the container of the resources object (indirect object).
func (_gecfbc *PdfPageResources )GetContainingPdfObject ()_ac .PdfObject {return _gecfbc ._ccggg };
// NewPdfShadingType2 creates an empty shading type 2 dictionary.
func NewPdfShadingType2 ()*PdfShadingType2 {_dcbdad :=&PdfShadingType2 {};_dcbdad .PdfShading =&PdfShading {};_dcbdad .PdfShading ._dffbg =_ac .MakeIndirectObject (_ac .MakeDict ());_dcbdad .PdfShading ._bfga =_dcbdad ;return _dcbdad ;};func (_gdcc *PdfReader )loadAction (_dged _ac .PdfObject )(*PdfAction ,error ){if _fbbc ,_fgc :=_ac .GetIndirect (_dged );
_fgc {_abe ,_dee :=_gdcc .newPdfActionFromIndirectObject (_fbbc );if _dee !=nil {return nil ,_dee ;};return _abe ,nil ;}else if !_ac .IsNullObject (_dged ){return nil ,_af .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 ;};
// 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 (_faae *LTV )EnableByName (name string ,extraCerts []*_fc .Certificate )error {_ccade :=_faae ._bcbad ._cbdcd .AcroForm ;for _ ,_fdfg :=range _ccade .AllFields (){_efdd ,_ :=_fdfg .GetContext ().(*PdfFieldSignature );if _efdd ==nil {continue ;};if _ccce :=_efdd .PartialName ();
_ccce !=name {continue ;};return _faae .Enable (_efdd .V ,extraCerts );};return nil ;};
// SetNamedDestinations sets the Dests entry in the PDF catalog.
// See section 12.3.2.3 "Named Destinations" (p. 367 PDF32000_2008).
func (_dfbdc *PdfWriter )SetNamedDestinations (dests _ac .PdfObject )error {if dests ==nil {return nil ;};_gd .Log .Trace ("\u0053e\u0074\u0074\u0069\u006e\u0067\u0020\u0063\u0061\u0074\u0061\u006co\u0067\u0020\u0044\u0065\u0073\u0074\u0073\u002e\u002e\u002e");
_dfbdc ._cgfegd .Set ("\u0044\u0065\u0073t\u0073",dests );return _dfbdc .addObjects (dests );};
// R returns the value of the red component of the color.
func (_bdbdg *PdfColorDeviceRGB )R ()float64 {return _bdbdg [0]};
// NewPdfColorDeviceGray returns a new grayscale color based on an input grayscale float value in range [0-1].
func NewPdfColorDeviceGray (grayVal float64 )*PdfColorDeviceGray {_geca :=PdfColorDeviceGray (grayVal );return &_geca ;};
// GetContainingPdfObject implements interface PdfModel.
func (_bfcgb *Permissions )GetContainingPdfObject ()_ac .PdfObject {return _bfcgb ._aebdd };
// 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 (_baga *PdfWriter )SetRotation (rotate int64 )error {_ddeg ,_bcbggeg :=_ac .GetDict (_baga ._dagba );if !_bcbggeg {return ErrTypeCheck ;};_ddeg .Set ("\u0052\u006f\u0074\u0061\u0074\u0065",_ac .MakeInteger (rotate ));return nil ;};
// GetBorderWidth returns the border style's width.
func (_bacb *PdfBorderStyle )GetBorderWidth ()float64 {if _bacb .W ==nil {return 1;};return *_bacb .W ;};
// PdfAnnotationRedact represents Redact annotations.
// (Section 12.5.6.23).
type PdfAnnotationRedact struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _ac .PdfObject ;IC _ac .PdfObject ;RO _ac .PdfObject ;OverlayText _ac .PdfObject ;Repeat _ac .PdfObject ;DA _ac .PdfObject ;Q _ac .PdfObject ;};
// NewPdfAnnotationText returns a new text annotation.
func NewPdfAnnotationText ()*PdfAnnotationText {_dfc :=NewPdfAnnotation ();_fdad :=&PdfAnnotationText {};_fdad .PdfAnnotation =_dfc ;_fdad .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_dfc .SetContext (_fdad );return _fdad ;};func _ffce (_eagc *XObjectForm )(*PdfRectangle ,error ){if _bfee ,_fbddb :=_eagc .BBox .(*_ac .PdfObjectArray );
_fbddb {_cbbbe ,_dedcf :=NewPdfRectangle (*_bfee );if _dedcf !=nil {return nil ,_dedcf ;};if _agfed ,_cfdfb :=_eagc .Matrix .(*_ac .PdfObjectArray );_cfdfb {_deaf ,_egfae :=_agfed .ToFloat64Array ();if _egfae !=nil {return nil ,_egfae ;};_bgecg :=_ba .IdentityMatrix ();
if len (_deaf )==6{_bgecg =_ba .NewMatrix (_deaf [0],_deaf [1],_deaf [2],_deaf [3],_deaf [4],_deaf [5]);};_cbbbe .Transform (_bgecg );return _cbbbe ,nil ;};};return nil ,_af .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");
};
// PdfColorspaceSpecialPattern is a Pattern colorspace.
// Can be defined either as /Pattern or with an underlying colorspace [/Pattern cs].
type PdfColorspaceSpecialPattern struct{UnderlyingCS PdfColorspace ;_gcdb *_ac .PdfIndirectObject ;};
// PdfInfoTrapped specifies pdf trapped information.
type PdfInfoTrapped string ;
// GetPdfVersion gets the version of the PDF used within this document.
func (_cebee *PdfWriter )GetPdfVersion ()string {return _cebee .getPdfVersion ()};func (_effd *PdfReader )newPdfActionMovieFromDict (_cbb *_ac .PdfObjectDictionary )(*PdfActionMovie ,error ){return &PdfActionMovie {Annotation :_cbb .Get ("\u0041\u006e\u006e\u006f\u0074\u0061\u0074\u0069\u006f\u006e"),T :_cbb .Get ("\u0054"),Operation :_cbb .Get ("\u004fp\u0065\u0072\u0061\u0074\u0069\u006fn")},nil ;
};
// GetCharMetrics returns the character metrics for the specified character code. A bool flag is
// returned to indicate whether or not the entry was found in the glyph to charcode mapping.
// How it works:
// 1) Return a value the /Widths array (charWidths) if there is one.
// 2) If the font has the same name as a standard 14 font then return width=250.
// 3) Otherwise return no match and let the caller substitute a default.
func (_cbga pdfFontSimple )GetCharMetrics (code _gf .CharCode )(_fda .CharMetrics ,bool ){if _ebgg ,_ggdgc :=_cbga ._bdaga [code ];_ggdgc {return _fda .CharMetrics {Wx :_ebgg },true ;};if _fda .IsStdFont (_fda .StdFontName (_cbga ._abab )){return _fda .CharMetrics {Wx :250},true ;
};return _fda .CharMetrics {},false ;};
// ColorToRGB converts a color in Separation colorspace to RGB colorspace.
func (_gdfg *PdfColorspaceSpecialSeparation )ColorToRGB (color PdfColor )(PdfColor ,error ){if _gdfg .AlternateSpace ==nil {return nil ,_af .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 _gdfg .AlternateSpace .ColorToRGB (color );};
// ToPdfObject returns a *PdfIndirectObject containing a *PdfObjectArray representation of the DeviceN colorspace.
/*
Format: [/DeviceN names alternateSpace tintTransform]
or: [/DeviceN names alternateSpace tintTransform attributes]
*/
func (_egff *PdfColorspaceDeviceN )ToPdfObject ()_ac .PdfObject {_afda :=_ac .MakeArray (_ac .MakeName ("\u0044e\u0076\u0069\u0063\u0065\u004e"));_afda .Append (_egff .ColorantNames );_afda .Append (_egff .AlternateSpace .ToPdfObject ());_afda .Append (_egff .TintTransform .ToPdfObject ());
if _egff .Attributes !=nil {_afda .Append (_egff .Attributes .ToPdfObject ());};if _egff ._cfcg !=nil {_egff ._cfcg .PdfObject =_afda ;return _egff ._cfcg ;};return _afda ;};func _aefea (_ccaad _ac .PdfObject )(*PdfColorspaceDeviceN ,error ){_fbbg :=NewPdfColorspaceDeviceN ();
if _gaga ,_cgddg :=_ccaad .(*_ac .PdfIndirectObject );_cgddg {_fbbg ._cfcg =_gaga ;};_ccaad =_ac .TraceToDirectObject (_ccaad );_ddebe ,_ebcb :=_ccaad .(*_ac .PdfObjectArray );if !_ebcb {return nil ,_d .Errorf ("\u0064\u0065\u0076\u0069\u0063\u0065\u004e\u0020\u0043\u0053\u003a \u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006f\u0062j\u0065\u0063\u0074");
};if _ddebe .Len ()!=4&&_ddebe .Len ()!=5{return nil ,_d .Errorf ("\u0064\u0065\u0076ic\u0065\u004e\u0020\u0043\u0053\u003a\u0020\u0049\u006ec\u006fr\u0072e\u0063t\u0020\u0061\u0072\u0072\u0061\u0079\u0020\u006c\u0065\u006e\u0067\u0074\u0068");};_ccaad =_ddebe .Get (0);
_dcgf ,_ebcb :=_ccaad .(*_ac .PdfObjectName );if !_ebcb {return nil ,_d .Errorf ("\u0064\u0065\u0076i\u0063\u0065\u004e\u0020C\u0053\u003a\u0020\u0069\u006e\u0076\u0061l\u0069\u0064\u0020\u0066\u0061\u006d\u0069\u006c\u0079\u0020\u006e\u0061\u006d\u0065");
};if *_dcgf !="\u0044e\u0076\u0069\u0063\u0065\u004e"{return nil ,_d .Errorf ("\u0064\u0065v\u0069\u0063\u0065\u004e\u0020\u0043\u0053\u003a\u0020\u0077\u0072\u006f\u006e\u0067\u0020\u0066\u0061\u006d\u0069\u006c\u0079\u0020na\u006d\u0065");};_ccaad =_ddebe .Get (1);
_ccaad =_ac .TraceToDirectObject (_ccaad );_fafe ,_ebcb :=_ccaad .(*_ac .PdfObjectArray );if !_ebcb {return nil ,_d .Errorf ("\u0064\u0065\u0076i\u0063\u0065\u004e\u0020C\u0053\u003a\u0020\u0049\u006e\u0076\u0061l\u0069\u0064\u0020\u006e\u0061\u006d\u0065\u0073\u0020\u0061\u0072\u0072\u0061\u0079");
};_fbbg .ColorantNames =_fafe ;_ccaad =_ddebe .Get (2);_gcgc ,_beade :=NewPdfColorspaceFromPdfObject (_ccaad );if _beade !=nil {return nil ,_beade ;};_fbbg .AlternateSpace =_gcgc ;_aeaac ,_beade :=_gcddf (_ddebe .Get (3));if _beade !=nil {return nil ,_beade ;
};_fbbg .TintTransform =_aeaac ;if _ddebe .Len ()==5{_aaae ,_efbc :=_gdcaa (_ddebe .Get (4));if _efbc !=nil {return nil ,_efbc ;};_fbbg .Attributes =_aaae ;};return _fbbg ,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 *_dc .CertClient ;
// OCSPClient is the client used to retrieve OCSP validation information.
OCSPClient *_dc .OCSPClient ;
// CRLClient is the client used to retrieve CRL validation information.
CRLClient *_dc .CRLClient ;
// SkipExisting specifies whether existing signature validations
// should be skipped.
SkipExisting bool ;_bcbad *PdfAppender ;_fdadg *DSS ;};func _eecd (_bcagd *_ac .PdfObjectDictionary )(*PdfShadingType7 ,error ){_eggag :=PdfShadingType7 {};_baccc :=_bcagd .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065");
if _baccc ==nil {_gd .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 ;};_faeag ,_dadc :=_baccc .(*_ac .PdfObjectInteger );if !_dadc {_gd .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",_baccc );
return nil ,_ac .ErrTypeError ;};_eggag .BitsPerCoordinate =_faeag ;_baccc =_bcagd .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074");if _baccc ==nil {_gd .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 ;};_faeag ,_dadc =_baccc .(*_ac .PdfObjectInteger );if !_dadc {_gd .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",_baccc );
return nil ,_ac .ErrTypeError ;};_eggag .BitsPerComponent =_faeag ;_baccc =_bcagd .Get ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067");if _baccc ==nil {_gd .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 ;};_faeag ,_dadc =_baccc .(*_ac .PdfObjectInteger );if !_dadc {_gd .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",_baccc );
return nil ,_ac .ErrTypeError ;};_eggag .BitsPerComponent =_faeag ;_baccc =_bcagd .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");if _baccc ==nil {_gd .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 ;};_daebf ,_dadc :=_baccc .(*_ac .PdfObjectArray );if !_dadc {_gd .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",_baccc );
return nil ,_ac .ErrTypeError ;};_eggag .Decode =_daebf ;if _gcae :=_bcagd .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");_gcae !=nil {_eggag .Function =[]PdfFunction {};if _eagdc ,_dffag :=_gcae .(*_ac .PdfObjectArray );_dffag {for _ ,_ageeaa :=range _eagdc .Elements (){_cfeeb ,_dgdd :=_gcddf (_ageeaa );
if _dgdd !=nil {_gd .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",_dgdd );return nil ,_dgdd ;};_eggag .Function =append (_eggag .Function ,_cfeeb );
};}else {_gcgdc ,_fggebg :=_gcddf (_gcae );if _fggebg !=nil {_gd .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",_fggebg );return nil ,_fggebg ;
};_eggag .Function =append (_eggag .Function ,_gcgdc );};};return &_eggag ,nil ;};
// SetXObjectFormByName adds the provided XObjectForm to the page resources.
// The added XObjectForm is identified by the specified name.
func (_ededa *PdfPageResources )SetXObjectFormByName (keyName _ac .PdfObjectName ,xform *XObjectForm )error {_bdgd :=xform .ToPdfObject ().(*_ac .PdfObjectStream );_aecge :=_ededa .SetXObjectByName (keyName ,_bdgd );return _aecge ;};func (_ebggb *pdfFontSimple )addEncoding ()error {var (_eaaef string ;
_gffb map[_gf .CharCode ]_gf .GlyphName ;_fabd _gf .SimpleEncoder ;);if _ebggb .Encoder ()!=nil {_accff ,_cfcf :=_ebggb .Encoder ().(_gf .SimpleEncoder );if _cfcf &&_accff !=nil {_eaaef =_accff .BaseName ();};};if _ebggb .Encoding !=nil {_addde ,_ffag ,_dgbe :=_ebggb .getFontEncoding ();
if _dgbe !=nil {_gd .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",_ebggb ._abab ,_ebggb ._efebg ,_ebggb .Encoding ,_ebggb .Encoding ,_dgbe );
return _dgbe ;};if _addde !=""{_eaaef =_addde ;};_gffb =_ffag ;_fabd ,_dgbe =_gf .NewSimpleTextEncoder (_eaaef ,_gffb );if _dgbe !=nil {return _dgbe ;};};if _fabd ==nil {_gcde :=_ebggb ._bgbdc ;if _gcde !=nil {switch _ebggb ._efebg {case "\u0054\u0079\u0070e\u0031":if _gcde .fontFile !=nil &&_gcde .fontFile ._bcdea !=nil {_gd .Log .Debug ("\u0055\u0073\u0069\u006e\u0067\u0020\u0066\u006f\u006et\u0046\u0069\u006c\u0065");
_fabd =_gcde .fontFile ._bcdea ;};case "\u0054\u0072\u0075\u0065\u0054\u0079\u0070\u0065":if _gcde ._edfg !=nil {_gd .Log .Debug ("\u0055s\u0069n\u0067\u0020\u0046\u006f\u006e\u0074\u0046\u0069\u006c\u0065\u0032");_bcbb ,_dbddb :=_gcde ._edfg .MakeEncoder ();
if _dbddb ==nil {_fabd =_bcbb ;};};};};};if _fabd !=nil {if _gffb !=nil {_gd .Log .Trace ("\u0064\u0069\u0066fe\u0072\u0065\u006e\u0063\u0065\u0073\u003d\u0025\u002b\u0076\u0020\u0066\u006f\u006e\u0074\u003d\u0025\u0073",_gffb ,_ebggb .baseFields ());_fabd =_gf .ApplyDifferences (_fabd ,_gffb );
};_ebggb .SetEncoder (_fabd );};return nil ;};func _agfec (_deef *_ac .PdfObjectDictionary ,_edbd *fontCommon )(*pdfFontType3 ,error ){_gaccb :=_daedc (_edbd );_baab :=_deef .Get ("\u0046i\u0072\u0073\u0074\u0043\u0068\u0061r");if _baab ==nil {_baab =_ac .MakeInteger (0);
};_gaccb .FirstChar =_baab ;_dfbbe ,_fggabd :=_ac .GetIntVal (_baab );if !_fggabd {_gd .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",_baab );
return nil ,_ac .ErrTypeError ;};_bbdg :=_gf .CharCode (_dfbbe );_baab =_deef .Get ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072");if _baab ==nil {_baab =_ac .MakeInteger (255);};_gaccb .LastChar =_baab ;_dfbbe ,_fggabd =_ac .GetIntVal (_baab );if !_fggabd {_gd .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",_baab );
return nil ,_ac .ErrTypeError ;};_deaa :=_gf .CharCode (_dfbbe );_baab =_deef .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");if _baab !=nil {_gaccb .Resources =_baab ;};_baab =_deef .Get ("\u0043h\u0061\u0072\u0050\u0072\u006f\u0063s");if _baab ==nil {_gd .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",_baab );
return nil ,_ac .ErrNotSupported ;};_gaccb .CharProcs =_baab ;_baab =_deef .Get ("\u0046\u006f\u006e\u0074\u004d\u0061\u0074\u0072\u0069\u0078");if _baab ==nil {_gd .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",_baab );
return nil ,_ac .ErrNotSupported ;};_gaccb .FontMatrix =_baab ;_gaccb ._fbad =make (map[_gf .CharCode ]float64 );_baab =_deef .Get ("\u0057\u0069\u0064\u0074\u0068\u0073");if _baab !=nil {_gaccb .Widths =_baab ;_bgggf ,_eabb :=_ac .GetArray (_baab );if !_eabb {_gd .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",_baab );
return nil ,_ac .ErrTypeError ;};_ggea ,_fabfa :=_bgggf .ToFloat64Array ();if _fabfa !=nil {_gd .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 ,_fabfa ;};if len (_ggea )!=int (_deaa -_bbdg +1){_gd .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",_deaa -_bbdg +1,len (_ggea ));
return nil ,_ac .ErrRangeError ;};_gbgdb ,_eabb :=_ac .GetArray (_gaccb .FontMatrix );if !_eabb {_gd .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",_gbgdb );
return nil ,_fabfa ;};_dgfda ,_fabfa :=_gbgdb .ToFloat64Array ();if _fabfa !=nil {_gd .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 ,_fabfa ;};_fcec :=_ba .NewMatrix (_dgfda [0],_dgfda [1],_dgfda [2],_dgfda [3],_dgfda [4],_dgfda [5]);for _cace ,_cfgg :=range _ggea {_ggff ,_ :=_fcec .Transform (_cfgg ,_cfgg );_gaccb ._fbad [_bbdg +_gf .CharCode (_cace )]=_ggff ;};};_gaccb .Encoding =_ac .TraceToDirectObject (_deef .Get ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067"));
_dcbd :=_deef .Get ("\u0054o\u0055\u006e\u0069\u0063\u006f\u0064e");if _dcbd !=nil {_gaccb ._babg =_ac .TraceToDirectObject (_dcbd );_edbf ,_gebaa :=_dgfc (_gaccb ._babg ,&_gaccb .fontCommon );if _gebaa !=nil {return nil ,_gebaa ;};_gaccb ._acbbb =_edbf ;
};if _fafdc :=_gaccb ._acbbb ;_fafdc !=nil {_gaccb ._ebcbd =_gf .NewCMapEncoder ("",nil ,_fafdc );}else {_gaccb ._ebcbd =_gf .NewPdfDocEncoder ();};return _gaccb ,nil ;};type pdfSignDictionary struct{*_ac .PdfObjectDictionary ;_abgad *SignatureHandler ;
_aacfd *PdfSignature ;_aedff int64 ;_gaegg int ;_cgdfee int ;_dbcgg int ;_gdfcd int ;};
// ToPdfObject implements interface PdfModel.
func (_efb *PdfAnnotationUnderline )ToPdfObject ()_ac .PdfObject {_efb .PdfAnnotation .ToPdfObject ();_ffdg :=_efb ._fegd ;_fdfa :=_ffdg .PdfObject .(*_ac .PdfObjectDictionary );_efb .PdfAnnotationMarkup .appendToPdfDictionary (_fdfa );_fdfa .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ac .MakeName ("\u0055n\u0064\u0065\u0072\u006c\u0069\u006ee"));
_fdfa .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_efb .QuadPoints );return _ffdg ;};func (_gdcae *PdfReader )newPdfAnnotationTrapNetFromDict (_cga *_ac .PdfObjectDictionary )(*PdfAnnotationTrapNet ,error ){_befd :=PdfAnnotationTrapNet {};
return &_befd ,nil ;};
// ToOutlineTree returns a low level PdfOutlineTreeNode object, based on
// the current instance.
func (_gcgf *Outline )ToOutlineTree ()*PdfOutlineTreeNode {return &_gcgf .ToPdfOutline ().PdfOutlineTreeNode ;};func (_ddcd *PdfReader )buildPageList (_acgef *_ac .PdfIndirectObject ,_cgceg *_ac .PdfIndirectObject ,_cafe map[_ac .PdfObject ]struct{})error {if _acgef ==nil {return nil ;
};if _ ,_aacce :=_cafe [_acgef ];_aacce {_gd .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",_acgef .ObjectNumber );
return nil ;};_cafe [_acgef ]=struct{}{};_aabaf ,_ebcgfg :=_acgef .PdfObject .(*_ac .PdfObjectDictionary );if !_ebcgfg {return _af .New ("n\u006f\u0064\u0065\u0020no\u0074 \u0061\u0020\u0064\u0069\u0063t\u0069\u006f\u006e\u0061\u0072\u0079");};_geagg ,_ebcgfg :=(*_aabaf ).Get ("\u0054\u0079\u0070\u0065").(*_ac .PdfObjectName );
if !_ebcgfg {if _aabaf .Get ("\u004b\u0069\u0064\u0073")==nil {return _af .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");};_gd .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.");
_geagg =_ac .MakeName ("\u0050\u0061\u0067e\u0073");_aabaf .Set ("\u0054\u0079\u0070\u0065",_geagg );};_gd .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",*_geagg ,_acgef );
if *_geagg =="\u0050\u0061\u0067\u0065"{_fgeg ,_dadbcc :=_ddcd .newPdfPageFromDict (_aabaf );if _dadbcc !=nil {return _dadbcc ;};_fgeg .setContainer (_acgef );if _cgceg !=nil {_aabaf .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_cgceg );};_ddcd ._acca =append (_ddcd ._acca ,_acgef );
_ddcd .PageList =append (_ddcd .PageList ,_fgeg );return nil ;};if *_geagg !="\u0050\u0061\u0067e\u0073"{_gd .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",_geagg );
return _af .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 _cgceg !=nil {_aabaf .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_cgceg );};if !_ddcd ._dfgg {_dbae :=_ddcd .traverseObjectData (_acgef );if _dbae !=nil {return _dbae ;};};_adeae ,_ddagd :=_ddcd ._eebeg .Resolve (_aabaf .Get ("\u004b\u0069\u0064\u0073"));
if _ddagd !=nil {_gd .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 _ddagd ;};var _ababd *_ac .PdfObjectArray ;
_ababd ,_ebcgfg =_adeae .(*_ac .PdfObjectArray );if !_ebcgfg {_bebab ,_accdf :=_adeae .(*_ac .PdfIndirectObject );if !_accdf {return _af .New ("\u0069\u006e\u0076\u0061li\u0064\u0020\u004b\u0069\u0064\u0073\u0020\u006f\u0062\u006a\u0065\u0063\u0074");};
_ababd ,_ebcgfg =_bebab .PdfObject .(*_ac .PdfObjectArray );if !_ebcgfg {return _af .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");};};_gd .Log .Trace ("\u004b\u0069\u0064\u0073\u003a\u0020\u0025\u0073",_ababd );
for _eagea ,_dbecg :=range _ababd .Elements (){_agaag ,_gbcea :=_ac .GetIndirect (_dbecg );if !_gbcea {_gd .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",_agaag );
return _af .New ("\u0070a\u0067\u0065\u0020\u006e\u006f\u0074\u0020\u0069\u006e\u0064\u0069r\u0065\u0063\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074");};_ababd .Set (_eagea ,_agaag );_ddagd =_ddcd .buildPageList (_agaag ,_acgef ,_cafe );if _ddagd !=nil {return _ddagd ;
};};return nil ;};
// NewPdfOutputIntentFromPdfObject creates a new PdfOutputIntent from the input core.PdfObject.
func NewPdfOutputIntentFromPdfObject (object _ac .PdfObject )(*PdfOutputIntent ,error ){_gadf :=&PdfOutputIntent {};if _agedg :=_gadf .ParsePdfObject (object );_agedg !=nil {return nil ,_agedg ;};return _gadf ,nil ;};func (_gafab *PdfReader )newPdfOutlineItemFromIndirectObject (_abfgcg *_ac .PdfIndirectObject )(*PdfOutlineItem ,error ){_ggddb ,_facaa :=_abfgcg .PdfObject .(*_ac .PdfObjectDictionary );
if !_facaa {return nil ,_d .Errorf ("\u006f\u0075\u0074l\u0069\u006e\u0065\u0020o\u0062\u006a\u0065\u0063\u0074\u0020\u006eo\u0074\u0020\u0061\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079");};_cabbgd :=NewPdfOutlineItem ();_dcef :=_ggddb .Get ("\u0054\u0069\u0074l\u0065");
if _dcef ==nil {return nil ,_d .Errorf ("\u006d\u0069\u0073s\u0069\u006e\u0067\u0020\u0054\u0069\u0074\u006c\u0065\u0020\u0066\u0072\u006f\u006d\u0020\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0020\u0049\u0074\u0065\u006d\u0020\u0028r\u0065\u0071\u0075\u0069\u0072\u0065\u0064\u0029");
};_gabda ,_fdcdg :=_ac .GetString (_dcef );if !_fdcdg {return nil ,_d .Errorf ("\u0074\u0069\u0074le\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0073\u0074\u0072\u0069\u006e\u0067\u0020\u0028\u0025\u0054\u0029",_dcef );};_cabbgd .Title =_gabda ;if _abbfed :=_ggddb .Get ("\u0043\u006f\u0075n\u0074");
_abbfed !=nil {_faadc ,_cbffg :=_abbfed .(*_ac .PdfObjectInteger );if !_cbffg {return nil ,_d .Errorf ("\u0063o\u0075\u006e\u0074\u0020n\u006f\u0074\u0020\u0061\u006e \u0069n\u0074e\u0067\u0065\u0072\u0020\u0028\u0025\u0054)",_abbfed );};_gdad :=int64 (*_faadc );
_cabbgd .Count =&_gdad ;};if _ccdag :=_ggddb .Get ("\u0044\u0065\u0073\u0074");_ccdag !=nil {_cabbgd .Dest =_ac .ResolveReference (_ccdag );if !_gafab ._dfgg {_cafd :=_gafab .traverseObjectData (_cabbgd .Dest );if _cafd !=nil {return nil ,_cafd ;};};};
if _cgdcd :=_ggddb .Get ("\u0041");_cgdcd !=nil {_cabbgd .A =_ac .ResolveReference (_cgdcd );if !_gafab ._dfgg {_ebae :=_gafab .traverseObjectData (_cabbgd .A );if _ebae !=nil {return nil ,_ebae ;};};};if _dddgd :=_ggddb .Get ("\u0053\u0045");_dddgd !=nil {_cabbgd .SE =nil ;
};if _bfag :=_ggddb .Get ("\u0043");_bfag !=nil {_cabbgd .C =_ac .ResolveReference (_bfag );};if _adcgf :=_ggddb .Get ("\u0046");_adcgf !=nil {_cabbgd .F =_ac .ResolveReference (_adcgf );};return _cabbgd ,nil ;};
// GetFontByName gets the font specified by keyName. Returns the PdfObject which
// the entry refers to. Returns a bool value indicating whether or not the entry was found.
func (_cdcge *PdfPageResources )GetFontByName (keyName _ac .PdfObjectName )(_ac .PdfObject ,bool ){if _cdcge .Font ==nil {return nil ,false ;};_aaeea ,_cadf :=_ac .TraceToDirectObject (_cdcge .Font ).(*_ac .PdfObjectDictionary );if !_cadf {_gd .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",_ac .TraceToDirectObject (_cdcge .Font ));
return nil ,false ;};if _gadfa :=_aaeea .Get (keyName );_gadfa !=nil {return _gadfa ,true ;};return nil ,false ;};
// ToPdfObject returns the PdfFontDescriptor as a PDF dictionary inside an indirect object.
func (_eecf *PdfFontDescriptor )ToPdfObject ()_ac .PdfObject {_ebcbf :=_ac .MakeDict ();if _eecf ._adfg ==nil {_eecf ._adfg =&_ac .PdfIndirectObject {};};_eecf ._adfg .PdfObject =_ebcbf ;_ebcbf .Set ("\u0054\u0079\u0070\u0065",_ac .MakeName ("\u0046\u006f\u006e\u0074\u0044\u0065\u0073\u0063\u0072i\u0070\u0074\u006f\u0072"));
if _eecf .FontName !=nil {_ebcbf .Set ("\u0046\u006f\u006e\u0074\u004e\u0061\u006d\u0065",_eecf .FontName );};if _eecf .FontFamily !=nil {_ebcbf .Set ("\u0046\u006f\u006e\u0074\u0046\u0061\u006d\u0069\u006c\u0079",_eecf .FontFamily );};if _eecf .FontStretch !=nil {_ebcbf .Set ("F\u006f\u006e\u0074\u0053\u0074\u0072\u0065\u0074\u0063\u0068",_eecf .FontStretch );
};if _eecf .FontWeight !=nil {_ebcbf .Set ("\u0046\u006f\u006e\u0074\u0057\u0065\u0069\u0067\u0068\u0074",_eecf .FontWeight );};if _eecf .Flags !=nil {_ebcbf .Set ("\u0046\u006c\u0061g\u0073",_eecf .Flags );};if _eecf .FontBBox !=nil {_ebcbf .Set ("\u0046\u006f\u006e\u0074\u0042\u0042\u006f\u0078",_eecf .FontBBox );
};if _eecf .ItalicAngle !=nil {_ebcbf .Set ("I\u0074\u0061\u006c\u0069\u0063\u0041\u006e\u0067\u006c\u0065",_eecf .ItalicAngle );};if _eecf .Ascent !=nil {_ebcbf .Set ("\u0041\u0073\u0063\u0065\u006e\u0074",_eecf .Ascent );};if _eecf .Descent !=nil {_ebcbf .Set ("\u0044e\u0073\u0063\u0065\u006e\u0074",_eecf .Descent );
};if _eecf .Leading !=nil {_ebcbf .Set ("\u004ce\u0061\u0064\u0069\u006e\u0067",_eecf .Leading );};if _eecf .CapHeight !=nil {_ebcbf .Set ("\u0043a\u0070\u0048\u0065\u0069\u0067\u0068t",_eecf .CapHeight );};if _eecf .XHeight !=nil {_ebcbf .Set ("\u0058H\u0065\u0069\u0067\u0068\u0074",_eecf .XHeight );
};if _eecf .StemV !=nil {_ebcbf .Set ("\u0053\u0074\u0065m\u0056",_eecf .StemV );};if _eecf .StemH !=nil {_ebcbf .Set ("\u0053\u0074\u0065m\u0048",_eecf .StemH );};if _eecf .AvgWidth !=nil {_ebcbf .Set ("\u0041\u0076\u0067\u0057\u0069\u0064\u0074\u0068",_eecf .AvgWidth );
};if _eecf .MaxWidth !=nil {_ebcbf .Set ("\u004d\u0061\u0078\u0057\u0069\u0064\u0074\u0068",_eecf .MaxWidth );};if _eecf .MissingWidth !=nil {_ebcbf .Set ("\u004d\u0069\u0073s\u0069\u006e\u0067\u0057\u0069\u0064\u0074\u0068",_eecf .MissingWidth );};if _eecf .FontFile !=nil {_ebcbf .Set ("\u0046\u006f\u006e\u0074\u0046\u0069\u006c\u0065",_eecf .FontFile );
};if _eecf .FontFile2 !=nil {_ebcbf .Set ("\u0046o\u006e\u0074\u0046\u0069\u006c\u00652",_eecf .FontFile2 );};if _eecf .FontFile3 !=nil {_ebcbf .Set ("\u0046o\u006e\u0074\u0046\u0069\u006c\u00653",_eecf .FontFile3 );};if _eecf .CharSet !=nil {_ebcbf .Set ("\u0043h\u0061\u0072\u0053\u0065\u0074",_eecf .CharSet );
};if _eecf .Style !=nil {_ebcbf .Set ("\u0046\u006f\u006e\u0074\u004e\u0061\u006d\u0065",_eecf .FontName );};if _eecf .Lang !=nil {_ebcbf .Set ("\u004c\u0061\u006e\u0067",_eecf .Lang );};if _eecf .FD !=nil {_ebcbf .Set ("\u0046\u0044",_eecf .FD );};if _eecf .CIDSet !=nil {_ebcbf .Set ("\u0043\u0049\u0044\u0053\u0065\u0074",_eecf .CIDSet );
};return _eecf ._adfg ;};
// SetPdfCreator sets the Creator attribute of the output PDF.
func SetPdfCreator (creator string ){_gcaaba .Lock ();defer _gcaaba .Unlock ();_gabba =creator };func (_cdbaf *fontFile )loadFromSegments (_ebbc ,_befea []byte )error {_gd .Log .Trace ("\u006c\u006f\u0061dF\u0072\u006f\u006d\u0053\u0065\u0067\u006d\u0065\u006e\u0074\u0073\u003a\u0020\u0025\u0064\u0020\u0025\u0064",len (_ebbc ),len (_befea ));
_ddbb :=_cdbaf .parseASCIIPart (_ebbc );if _ddbb !=nil {return _ddbb ;};_gd .Log .Trace ("f\u006f\u006e\u0074\u0066\u0069\u006c\u0065\u003d\u0025\u0073",_cdbaf );if len (_befea )==0{return nil ;};_gd .Log .Trace ("f\u006f\u006e\u0074\u0066\u0069\u006c\u0065\u003d\u0025\u0073",_cdbaf );
return nil ;};var _fead =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":{}};
// ToPdfObject implements interface PdfModel.
func (_cdcg *PdfAnnotationInk )ToPdfObject ()_ac .PdfObject {_cdcg .PdfAnnotation .ToPdfObject ();_gfgf :=_cdcg ._fegd ;_ffgb :=_gfgf .PdfObject .(*_ac .PdfObjectDictionary );_cdcg .PdfAnnotationMarkup .appendToPdfDictionary (_ffgb );_ffgb .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ac .MakeName ("\u0049\u006e\u006b"));
_ffgb .SetIfNotNil ("\u0049n\u006b\u004c\u0069\u0073\u0074",_cdcg .InkList );_ffgb .SetIfNotNil ("\u0042\u0053",_cdcg .BS );return _gfgf ;};func (_gbge *PdfColorspaceCalRGB )String ()string {return "\u0043\u0061\u006c\u0052\u0047\u0042"};
// 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 (_defb *PdfReader )CheckAccessRights (password []byte )(bool ,_eece .Permissions ,error ){return _defb ._eebeg .CheckAccessRights (password );};type modelManager struct{_ebgfb map[PdfModel ]_ac .PdfObject ;_bbefe map[_ac .PdfObject ]PdfModel ;};
// NewPdfAnnotationPolyLine returns a new polyline annotation.
func NewPdfAnnotationPolyLine ()*PdfAnnotationPolyLine {_dgc :=NewPdfAnnotation ();_bcc :=&PdfAnnotationPolyLine {};_bcc .PdfAnnotation =_dgc ;_bcc .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_dgc .SetContext (_bcc );return _bcc ;};
// GetTrailer returns the PDF's trailer dictionary.
func (_ebefe *PdfReader )GetTrailer ()(*_ac .PdfObjectDictionary ,error ){_aadgf :=_ebefe ._eebeg .GetTrailer ();if _aadgf ==nil {return nil ,_af .New ("\u0074r\u0061i\u006c\u0065\u0072\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};return _aadgf ,nil ;
};
// GetMediaBox gets the inheritable media box value, either from the page
// or a higher up page/pages struct.
func (_degb *PdfPage )GetMediaBox ()(*PdfRectangle ,error ){if _degb .MediaBox !=nil {return _degb .MediaBox ,nil ;};_eaea :=_degb .Parent ;for _eaea !=nil {_fcaga ,_gaafdb :=_ac .GetDict (_eaea );if !_gaafdb {return nil ,_af .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 _bgad :=_fcaga .Get ("\u004d\u0065\u0064\u0069\u0061\u0042\u006f\u0078");_bgad !=nil {_gdcda ,_egbaf :=_ac .GetArray (_bgad );if !_egbaf {return nil ,_af .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006d\u0065\u0064\u0069a\u0020\u0062\u006f\u0078");
};_aabg ,_abbbe :=NewPdfRectangle (*_gdcda );if _abbbe !=nil {return nil ,_abbbe ;};return _aabg ,nil ;};_eaea =_fcaga .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");};return nil ,_af .New ("m\u0065\u0064\u0069\u0061 b\u006fx\u0020\u006e\u006f\u0074\u0020d\u0065\u0066\u0069\u006e\u0065\u0064");
};
// GetCerts returns the signature certificate chain.
func (_ecbbg *PdfSignature )GetCerts ()([]*_fc .Certificate ,error ){var _ceada []func ()([]*_fc .Certificate ,error );switch _aeccae ,_ :=_ac .GetNameVal (_ecbbg .SubFilter );_aeccae {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":_ceada =append (_ceada ,_ecbbg .extractChainFromPKCS7 ,_ecbbg .extractChainFromCert );
case "\u0061d\u0062e\u002e\u0078\u0035\u0030\u0039.\u0072\u0073a\u005f\u0073\u0068\u0061\u0031":_ceada =append (_ceada ,_ecbbg .extractChainFromCert );case "\u0045\u0054\u0053I\u002e\u0052\u0046\u0043\u0033\u0031\u0036\u0031":_ceada =append (_ceada ,_ecbbg .extractChainFromPKCS7 );
default:return nil ,_d .Errorf ("\u0075n\u0073\u0075\u0070\u0070o\u0072\u0074\u0065\u0064\u0020S\u0075b\u0046i\u006c\u0074\u0065\u0072\u003a\u0020\u0025s",_aeccae );};for _ ,_adbde :=range _ceada {_cdgd ,_gefce :=_adbde ();if _gefce !=nil {return nil ,_gefce ;
};if len (_cdgd )> 0{return _cdgd ,nil ;};};return nil ,ErrSignNoCertificates ;};
// 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 ;
// ToPdfObject implements interface PdfModel.
func (_fbba *PdfAnnotationTrapNet )ToPdfObject ()_ac .PdfObject {_fbba .PdfAnnotation .ToPdfObject ();_cgfb :=_fbba ._fegd ;_eeee :=_cgfb .PdfObject .(*_ac .PdfObjectDictionary );_eeee .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ac .MakeName ("\u0054r\u0061\u0070\u004e\u0065\u0074"));
return _cgfb ;};
// NewPdfSignatureReferenceDocMDP returns PdfSignatureReference for the transformParams.
func NewPdfSignatureReferenceDocMDP (transformParams *PdfTransformParamsDocMDP )*PdfSignatureReference {return &PdfSignatureReference {Type :_ac .MakeName ("\u0053\u0069\u0067\u0052\u0065\u0066"),TransformMethod :_ac .MakeName ("\u0044\u006f\u0063\u004d\u0044\u0050"),TransformParams :transformParams .ToPdfObject ()};
};
// GetContainingPdfObject returns the XObject Form's containing object (indirect object).
func (_fgbgce *XObjectForm )GetContainingPdfObject ()_ac .PdfObject {return _fgbgce ._fggc };
// IsTerminal returns true for terminal fields, false otherwise.
// Terminal fields are fields whose descendants are only widget annotations.
func (_daaa *PdfField )IsTerminal ()bool {return len (_daaa .Kids )==0};
// GetCustomInfo returns a custom info value for the specified name.
func (_dffada *PdfInfo )GetCustomInfo (name string )*_ac .PdfObjectString {var _gcaf *_ac .PdfObjectString ;if _dffada ._ggfb ==nil {return _gcaf ;};if _gbfa ,_dbcf :=_dffada ._ggfb .Get (*_ac .MakeName (name )).(*_ac .PdfObjectString );_dbcf {_gcaf =_gbfa ;
};return _gcaf ;};
// 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 (_fbcg *Image )ConvertToBinary ()error {if _fbcg .ColorComponents ==1&&_fbcg .BitsPerComponent ==1{return nil ;};_caea ,_ccag :=_fbcg .ToGoImage ();if _ccag !=nil {return _ccag ;};_agdde ,_ccag :=_ed .MonochromeConverter .Convert (_caea );if _ccag !=nil {return _ccag ;
};_fbcg .Data =_agdde .Base ().Data ;_fbcg ._ebga ,_ccag =_ed .ScaleAlphaToMonochrome (_fbcg ._ebga ,int (_fbcg .Width ),int (_fbcg .Height ));if _ccag !=nil {return _ccag ;};_fbcg .BitsPerComponent =1;_fbcg .ColorComponents =1;_fbcg ._gffd =nil ;return nil ;
};
// PdfSignatureReference represents a PDF signature reference dictionary and is used for signing via form signature fields.
// (Section 12.8.1, Table 253 - Entries in a signature reference dictionary p. 469 in PDF32000_2008).
type PdfSignatureReference struct{_ebdca *_ac .PdfObjectDictionary ;Type *_ac .PdfObjectName ;TransformMethod *_ac .PdfObjectName ;TransformParams _ac .PdfObject ;Data _ac .PdfObject ;DigestMethod *_ac .PdfObjectName ;};func (_eafee *LTV )validateSig (_adff *PdfSignature )error {if _adff ==nil ||_adff .Contents ==nil ||len (_adff .Contents .Bytes ())==0{return _d .Errorf ("i\u006e\u0076\u0061\u006c\u0069\u0064 \u0073\u0069\u0067\u006e\u0061\u0074\u0075\u0072\u0065 \u0066\u0069\u0065l\u0064:\u0020\u0025\u0076",_adff );
};return nil ;};func _cfccc ()_e .Time {_gcaaba .Lock ();defer _gcaaba .Unlock ();return _ggag };func (_dedca *PdfReader )newPdfSignatureFromIndirect (_cbcfa *_ac .PdfIndirectObject )(*PdfSignature ,error ){_bbffg ,_cbceg :=_cbcfa .PdfObject .(*_ac .PdfObjectDictionary );
if !_cbceg {_gd .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 _daggc ,_aabb :=_dedca ._gbced .GetModelFromPrimitive (_cbcfa ).(*PdfSignature );_aabb {return _daggc ,nil ;};_gace :=&PdfSignature {};_gace ._bfgde =_cbcfa ;_gace .Type ,_ =_ac .GetName (_bbffg .Get ("\u0054\u0079\u0070\u0065"));
_gace .Filter ,_cbceg =_ac .GetName (_bbffg .Get ("\u0046\u0069\u006c\u0074\u0065\u0072"));if !_cbceg {_gd .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 ;};_gace .SubFilter ,_ =_ac .GetName (_bbffg .Get ("\u0053u\u0062\u0046\u0069\u006c\u0074\u0065r"));_gace .Contents ,_cbceg =_ac .GetString (_bbffg .Get ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073"));if !_cbceg {_gd .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 _egbb ,_gddae :=_ac .GetArray (_bbffg .Get ("\u0052e\u0066\u0065\u0072\u0065\u006e\u0063e"));_gddae {_gace .Reference =_ac .MakeArray ();for _ ,_gbfcbe :=range _egbb .Elements (){_eeaga ,_ceefb :=_ac .GetDict (_gbfcbe );
if !_ceefb {_gd .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 ;
};_fgdf ,_bgcfc :=_dedca .newPdfSignatureReferenceFromDict (_eeaga );if _bgcfc !=nil {return nil ,_bgcfc ;};_gace .Reference .Append (_fgdf .ToPdfObject ());};};_gace .Cert =_bbffg .Get ("\u0043\u0065\u0072\u0074");_gace .ByteRange ,_ =_ac .GetArray (_bbffg .Get ("\u0042y\u0074\u0065\u0052\u0061\u006e\u0067e"));
_gace .Changes ,_ =_ac .GetArray (_bbffg .Get ("\u0043h\u0061\u006e\u0067\u0065\u0073"));_gace .Name ,_ =_ac .GetString (_bbffg .Get ("\u004e\u0061\u006d\u0065"));_gace .M ,_ =_ac .GetString (_bbffg .Get ("\u004d"));_gace .Location ,_ =_ac .GetString (_bbffg .Get ("\u004c\u006f\u0063\u0061\u0074\u0069\u006f\u006e"));
_gace .Reason ,_ =_ac .GetString (_bbffg .Get ("\u0052\u0065\u0061\u0073\u006f\u006e"));_gace .ContactInfo ,_ =_ac .GetString (_bbffg .Get ("C\u006f\u006e\u0074\u0061\u0063\u0074\u0049\u006e\u0066\u006f"));_gace .R ,_ =_ac .GetInt (_bbffg .Get ("\u0052"));
_gace .V ,_ =_ac .GetInt (_bbffg .Get ("\u0056"));_gace .PropBuild ,_ =_ac .GetDict (_bbffg .Get ("\u0050\u0072\u006f\u0070\u005f\u0042\u0075\u0069\u006c\u0064"));_gace .PropAuthTime ,_ =_ac .GetInt (_bbffg .Get ("\u0050\u0072\u006f\u0070\u005f\u0041\u0075\u0074\u0068\u0054\u0069\u006d\u0065"));
_gace .PropAuthType ,_ =_ac .GetName (_bbffg .Get ("\u0050\u0072\u006f\u0070\u005f\u0041\u0075\u0074\u0068\u0054\u0079\u0070\u0065"));_dedca ._gbced .Register (_cbcfa ,_gace );return _gace ,nil ;};
// NewPdfWriter initializes a new PdfWriter.
func NewPdfWriter ()PdfWriter {_ffgge :=PdfWriter {};_ffgge ._agbff =map[_ac .PdfObject ]struct{}{};_ffgge ._gdeaf =[]_ac .PdfObject {};_ffgge ._fage =map[_ac .PdfObject ][]*_ac .PdfObjectDictionary {};_ffgge ._ebade =map[_ac .PdfObject ]struct{}{};_ffgge ._gdfdc .Major =1;
_ffgge ._gdfdc .Minor =3;_cbebb :=_ac .MakeDict ();_ggfaab :=[]struct{_ggdec _ac .PdfObjectName ;_gcace string ;}{{"\u0050\u0072\u006f\u0064\u0075\u0063\u0065\u0072",_fecbg ()},{"\u0043r\u0065\u0061\u0074\u006f\u0072",_dagfca ()},{"\u0041\u0075\u0074\u0068\u006f\u0072",_bcefb ()},{"\u0053u\u0062\u006a\u0065\u0063\u0074",_feac ()},{"\u0054\u0069\u0074l\u0065",_facbg ()},{"\u004b\u0065\u0079\u0077\u006f\u0072\u0064\u0073",_efcac ()}};
for _ ,_egeb :=range _ggfaab {if _egeb ._gcace !=""{_cbebb .Set (_egeb ._ggdec ,_ac .MakeString (_egeb ._gcace ));};};if _beaae :=_cagd ();!_beaae .IsZero (){if _eedcg ,_baddf :=NewPdfDateFromTime (_beaae );_baddf ==nil {_cbebb .Set ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065",_eedcg .ToPdfObject ());
};};if _ffcggb :=_cfccc ();!_ffcggb .IsZero (){if _bcaa ,_cebgf :=NewPdfDateFromTime (_ffcggb );_cebgf ==nil {_cbebb .Set ("\u004do\u0064\u0044\u0061\u0074\u0065",_bcaa .ToPdfObject ());};};_dcbfa :=_ac .PdfIndirectObject {};_dcbfa .PdfObject =_cbebb ;
_ffgge ._aefadb =&_dcbfa ;_ffgge .addObject (&_dcbfa );_cgdgd :=_ac .PdfIndirectObject {};_ceddd :=_ac .MakeDict ();_ceddd .Set ("\u0054\u0079\u0070\u0065",_ac .MakeName ("\u0043a\u0074\u0061\u006c\u006f\u0067"));_cgdgd .PdfObject =_ceddd ;_ffgge ._efcff =&_cgdgd ;
_ffgge .addObject (_ffgge ._efcff );_dcadd ,_daacf :=_ceec ("\u0077");if _daacf !=nil {_gd .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_daacf );};_ffgge ._gafbg =_dcadd ;_agca :=_ac .PdfIndirectObject {};_ccgaa :=_ac .MakeDict ();_ccgaa .Set ("\u0054\u0079\u0070\u0065",_ac .MakeName ("\u0050\u0061\u0067e\u0073"));
_gccb :=_ac .PdfObjectArray {};_ccgaa .Set ("\u004b\u0069\u0064\u0073",&_gccb );_ccgaa .Set ("\u0043\u006f\u0075n\u0074",_ac .MakeInteger (0));_agca .PdfObject =_ccgaa ;_ffgge ._dagba =&_agca ;_ffgge ._gafba =map[_ac .PdfObject ]struct{}{};_ffgge .addObject (_ffgge ._dagba );
_ceddd .Set ("\u0050\u0061\u0067e\u0073",&_agca );_ffgge ._cgfegd =_ceddd ;_gd .Log .Trace ("\u0043\u0061\u0074\u0061\u006c\u006f\u0067\u0020\u0025\u0073",_cgdgd );return _ffgge ;};
// ImageToRGB converts an Image in a given PdfColorspace to an RGB image.
func (_dgcg *PdfColorspaceDeviceN )ImageToRGB (img Image )(Image ,error ){_gdec :=_cg .NewReader (img .getBase ());_abga :=_ed .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),img .ColorComponents ,nil ,img ._ebga ,img ._gffd );
_ecce :=_cg .NewWriter (_abga );_dcdga :=_da .Pow (2,float64 (img .BitsPerComponent ))-1;_bbcf :=_dgcg .GetNumComponents ();_efcb :=make ([]uint32 ,_bbcf );_cdgc :=make ([]float64 ,_bbcf );for {_cgeg :=_gdec .ReadSamples (_efcb );if _cgeg ==_adc .EOF {break ;
}else if _cgeg !=nil {return img ,_cgeg ;};for _fafd :=0;_fafd < _bbcf ;_fafd ++{_dcde :=float64 (_efcb [_fafd ])/_dcdga ;_cdgc [_fafd ]=_dcde ;};_cbgfc ,_cgeg :=_dgcg .TintTransform .Evaluate (_cdgc );if _cgeg !=nil {return img ,_cgeg ;};for _ ,_cafgb :=range _cbgfc {_cafgb =_da .Min (_da .Max (0,_cafgb ),1.0);
if _cgeg =_ecce .WriteSample (uint32 (_cafgb *_dcdga ));_cgeg !=nil {return img ,_cgeg ;};};};return _dgcg .AlternateSpace .ImageToRGB (_affb (&_abga ));};func _gfgdad (_cgcf []byte )([]byte ,error ){_gacdf :=_bf .New ();if _ ,_fegga :=_adc .Copy (_gacdf ,_fd .NewReader (_cgcf ));
_fegga !=nil {return nil ,_fegga ;};return _gacdf .Sum (nil ),nil ;};
// Read reads an image and loads into a new Image object with an RGB
// colormap and 8 bits per component.
func (_befae DefaultImageHandler )Read (reader _adc .Reader )(*Image ,error ){_edefd ,_ ,_degd :=_ad .Decode (reader );if _degd !=nil {_gd .Log .Debug ("\u0045\u0072\u0072or\u0020\u0064\u0065\u0063\u006f\u0064\u0069\u006e\u0067\u0020\u0066\u0069\u006c\u0065\u003a\u0020\u0025\u0073",_degd );
return nil ,_degd ;};return _befae .NewImageFromGoImage (_edefd );};
// Add appends a top level outline item to the outline.
func (_bdcg *Outline )Add (item *OutlineItem ){_bdcg .Entries =append (_bdcg .Entries ,item )};
// 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 _adc .ReadSeeker )(*PdfFont ,error ){_cdfdc ,_feeg :=_ea .ReadAll (r );if _feeg !=nil {_gd .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",_feeg );
return nil ,_feeg ;};_cgdc ,_feeg :=_fda .TtfParse (_fd .NewReader (_cdfdc ));if _feeg !=nil {_gd .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",_feeg );
return nil ,_feeg ;};_cgcg :=&pdfCIDFontType2 {fontCommon :fontCommon {_efebg :"\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032"},CIDToGIDMap :_ac .MakeName ("\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079")};if len (_cgdc .Widths )<=0{return nil ,_af .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");
};_ggbc :=1000.0/float64 (_cgdc .UnitsPerEm );_afca :=_ggbc *float64 (_cgdc .Widths [0]);_bcacc :=make (map[rune ]int );_babgg :=make (map[_fda .GID ]int );_gdcac :=_fda .GID (len (_cgdc .Widths ));for _bggde ,_facff :=range _cgdc .Chars {if _facff > _gdcac -1{continue ;
};_gcba :=int (_ggbc *float64 (_cgdc .Widths [_facff ]));_bcacc [_bggde ]=_gcba ;_babgg [_facff ]=_gcba ;};_cgcg ._adef =_bcacc ;_cgcg .DW =_ac .MakeInteger (int64 (_afca ));_afaca :=_ccbfe (_babgg ,uint16 (_gdcac ));_cgcg .W =_ac .MakeIndirectObject (_afaca );
_aeda :=_ac .MakeDict ();_aeda .Set ("\u004f\u0072\u0064\u0065\u0072\u0069\u006e\u0067",_ac .MakeString ("\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079"));_aeda .Set ("\u0052\u0065\u0067\u0069\u0073\u0074\u0072\u0079",_ac .MakeString ("\u0041\u0064\u006fb\u0065"));
_aeda .Set ("\u0053\u0075\u0070\u0070\u006c\u0065\u006d\u0065\u006e\u0074",_ac .MakeInteger (0));_cgcg .CIDSystemInfo =_aeda ;_bcba :=&PdfFontDescriptor {FontName :_ac .MakeName (_cgdc .PostScriptName ),Ascent :_ac .MakeFloat (_ggbc *float64 (_cgdc .TypoAscender )),Descent :_ac .MakeFloat (_ggbc *float64 (_cgdc .TypoDescender )),CapHeight :_ac .MakeFloat (_ggbc *float64 (_cgdc .CapHeight )),FontBBox :_ac .MakeArrayFromFloats ([]float64 {_ggbc *float64 (_cgdc .Xmin ),_ggbc *float64 (_cgdc .Ymin ),_ggbc *float64 (_cgdc .Xmax ),_ggbc *float64 (_cgdc .Ymax )}),ItalicAngle :_ac .MakeFloat (_cgdc .ItalicAngle ),MissingWidth :_ac .MakeFloat (_afca )};
_aaba ,_feeg :=_ac .MakeStream (_cdfdc ,_ac .NewFlateEncoder ());if _feeg !=nil {_gd .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",_feeg );
return nil ,_feeg ;};_aaba .PdfObjectDictionary .Set ("\u004ce\u006e\u0067\u0074\u0068\u0031",_ac .MakeInteger (int64 (len (_cdfdc ))));_bcba .FontFile2 =_aaba ;if _cgdc .Bold {_bcba .StemV =_ac .MakeInteger (120);}else {_bcba .StemV =_ac .MakeInteger (70);
};_gecg :=_feaae ;if _cgdc .IsFixedPitch {_gecg |=_beacg ;};if _cgdc .ItalicAngle !=0{_gecg |=_cebda ;};_bcba .Flags =_ac .MakeInteger (int64 (_gecg ));_cgcg ._abab =_cgdc .PostScriptName ;_cgcg ._bgbdc =_bcba ;_ccbf :=pdfFontType0 {fontCommon :fontCommon {_efebg :"\u0054\u0079\u0070e\u0030",_abab :_cgdc .PostScriptName },DescendantFont :&PdfFont {_gegb :_cgcg },Encoding :_ac .MakeName ("\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079\u002d\u0048"),_edfdd :_cgdc .NewEncoder ()};
if len (_cgdc .Chars )> 0{_caeed :=make (map[_eg .CharCode ]rune ,len (_cgdc .Chars ));for _fcad ,_dbcgd :=range _cgdc .Chars {_gabe :=_eg .CharCode (_dbcgd );if _acccc ,_bdbfd :=_caeed [_gabe ];!_bdbfd ||(_bdbfd &&_acccc > _fcad ){_caeed [_gabe ]=_fcad ;
};};_ccbf ._acbbb =_eg .NewToUnicodeCMap (_caeed );};_fcfa :=PdfFont {_gegb :&_ccbf };return &_fcfa ,nil ;};
// NewPdfDateFromTime will create a PdfDate based on the given time
func NewPdfDateFromTime (timeObj _e .Time )(PdfDate ,error ){_dbfca :=timeObj .Format ("\u002d\u0030\u0037\u003a\u0030\u0030");_adgfa ,_ :=_ae .ParseInt (_dbfca [1:3],10,32);_cbba ,_ :=_ae .ParseInt (_dbfca [4:6],10,32);return PdfDate {_bfbe :int64 (timeObj .Year ()),_dbbcd :int64 (timeObj .Month ()),_dgfeb :int64 (timeObj .Day ()),_ffgecb :int64 (timeObj .Hour ()),_eega :int64 (timeObj .Minute ()),_dcebf :int64 (timeObj .Second ()),_cbcad :_dbfca [0],_bbdfd :_adgfa ,_ecccg :_cbba },nil ;
};
// 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 *_ac .PdfObjectStream )(*XObjectImage ,error ){_agdga :=&XObjectImage {};_agdga ._gfbdff =stream ;_addgd :=*(stream .PdfObjectDictionary );_geee ,_ecggc :=_ac .NewEncoderFromStream (stream );if _ecggc !=nil {return nil ,_ecggc ;
};_agdga .Filter =_geee ;if _gabec :=_ac .TraceToDirectObject (_addgd .Get ("\u0057\u0069\u0064t\u0068"));_gabec !=nil {_afbab ,_fgbca :=_gabec .(*_ac .PdfObjectInteger );if !_fgbca {return nil ,_af .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");
};_abcfa :=int64 (*_afbab );_agdga .Width =&_abcfa ;}else {return nil ,_af .New ("\u0077\u0069\u0064\u0074\u0068\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};if _ebgbdd :=_ac .TraceToDirectObject (_addgd .Get ("\u0048\u0065\u0069\u0067\u0068\u0074"));
_ebgbdd !=nil {_egccb ,_abadb :=_ebgbdd .(*_ac .PdfObjectInteger );if !_abadb {return nil ,_af .New ("i\u006e\u0076\u0061\u006c\u0069\u0064 \u0069\u006d\u0061\u0067\u0065\u0020\u0068\u0065\u0069g\u0068\u0074\u0020o\u0062j\u0065\u0063\u0074");};_gfbag :=int64 (*_egccb );
_agdga .Height =&_gfbag ;}else {return nil ,_af .New ("\u0068\u0065\u0069\u0067\u0068\u0074\u0020\u006d\u0069s\u0073\u0069\u006e\u0067");};if _dgggf :=_ac .TraceToDirectObject (_addgd .Get ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065"));
_dgggf !=nil {_gbcb ,_feaf :=NewPdfColorspaceFromPdfObject (_dgggf );if _feaf !=nil {return nil ,_feaf ;};_agdga .ColorSpace =_gbcb ;}else {_gd .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");
_agdga .ColorSpace =NewPdfColorspaceDeviceGray ();};if _ccdbf :=_ac .TraceToDirectObject (_addgd .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074"));_ccdbf !=nil {_dggff ,_fffbe :=_ccdbf .(*_ac .PdfObjectInteger );
if !_fffbe {return nil ,_af .New ("i\u006e\u0076\u0061\u006c\u0069\u0064 \u0069\u006d\u0061\u0067\u0065\u0020\u0068\u0065\u0069g\u0068\u0074\u0020o\u0062j\u0065\u0063\u0074");};_caegg :=int64 (*_dggff );_agdga .BitsPerComponent =&_caegg ;};_agdga .Intent =_addgd .Get ("\u0049\u006e\u0074\u0065\u006e\u0074");
_agdga .ImageMask =_addgd .Get ("\u0049m\u0061\u0067\u0065\u004d\u0061\u0073k");_agdga .Mask =_addgd .Get ("\u004d\u0061\u0073\u006b");_agdga .Decode =_addgd .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");_agdga .Interpolate =_addgd .Get ("I\u006e\u0074\u0065\u0072\u0070\u006f\u006c\u0061\u0074\u0065");
_agdga .Alternatives =_addgd .Get ("\u0041\u006c\u0074e\u0072\u006e\u0061\u0074\u0069\u0076\u0065\u0073");_agdga .SMask =_addgd .Get ("\u0053\u004d\u0061s\u006b");_agdga .SMaskInData =_addgd .Get ("S\u004d\u0061\u0073\u006b\u0049\u006e\u0044\u0061\u0074\u0061");
_agdga .Matte =_addgd .Get ("\u004d\u0061\u0074t\u0065");_agdga .Name =_addgd .Get ("\u004e\u0061\u006d\u0065");_agdga .StructParent =_addgd .Get ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074");_agdga .ID =_addgd .Get ("\u0049\u0044");
_agdga .OPI =_addgd .Get ("\u004f\u0050\u0049");_agdga .Metadata =_addgd .Get ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");_agdga .OC =_addgd .Get ("\u004f\u0043");_agdga .Stream =stream .Stream ;return _agdga ,nil ;};
// Write writes the Appender output to io.Writer.
// It can only be called once and further invocations will result in an error.
func (_fgdc *PdfAppender )Write (w _adc .Writer )error {if _fgdc ._gae {return _af .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");
};_dccf :=NewPdfWriter ();_eadc ,_ffcb :=_ac .GetDict (_dccf ._dagba );if !_ffcb {return _af .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");
};_aafa ,_ffcb :=_eadc .Get ("\u004b\u0069\u0064\u0073").(*_ac .PdfObjectArray );if !_ffcb {return _af .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");
};_fdeea ,_ffcb :=_eadc .Get ("\u0043\u006f\u0075n\u0074").(*_ac .PdfObjectInteger );if !_ffcb {return _af .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");
};_bbaf :=_fgdc ._cbdcd ._eebeg ;_dcad :=_bbaf .GetTrailer ();if _dcad ==nil {return _af .New ("\u006di\u0073s\u0069\u006e\u0067\u0020\u0074\u0072\u0061\u0069\u006c\u0065\u0072");};_bbf ,_ffcb :=_ac .GetIndirect (_dcad .Get ("\u0052\u006f\u006f\u0074"));
if !_ffcb {return _af .New ("c\u0061\u0074\u0061\u006c\u006f\u0067 \u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0065\u0072 \u006e\u006f\u0074 \u0066o\u0075\u006e\u0064");};_gbfe ,_ffcb :=_ac .GetDict (_bbf );if !_ffcb {_gd .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",_bbf ,*_dcad );
return _af .New ("\u006di\u0073s\u0069\u006e\u0067\u0020\u0063\u0061\u0074\u0061\u006c\u006f\u0067");};for _ ,_ebgd :=range _gbfe .Keys (){if _dccf ._cgfegd .Get (_ebgd )==nil {_bfbda :=_gbfe .Get (_ebgd );_dccf ._cgfegd .Set (_ebgd ,_bfbda );};};if _fgdc ._cabc !=nil {if _fgdc ._cabc ._dagc {if _gdbg :=_ac .TraceToDirectObject (_fgdc ._cabc .ToPdfObject ());
!_ac .IsNullObject (_gdbg ){_dccf ._cgfegd .Set ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d",_gdbg );_fgdc .updateObjectsDeep (_gdbg ,nil );}else {_gd .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 {_dccf ._cgfegd .Set ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d",_fgdc ._cabc .ToPdfObject ());_fgdc .updateObjectsDeep (_fgdc ._cabc .ToPdfObject (),nil );};};if _fgdc ._acaf !=nil {_fgdc .updateObjectsDeep (_fgdc ._acaf .ToPdfObject (),nil );
_dccf ._cgfegd .Set ("\u0044\u0053\u0053",_fgdc ._acaf .GetContainingPdfObject ());};if _fgdc ._adf !=nil {_dccf ._cgfegd .Set ("\u0050\u0065\u0072m\u0073",_fgdc ._adf .ToPdfObject ());_fgdc .updateObjectsDeep (_fgdc ._adf .ToPdfObject (),nil );};if _dccf ._gdfdc .Major < 2{_dccf .AddExtension ("\u0045\u0053\u0049\u0043","\u0031\u002e\u0037",5);
_dccf .AddExtension ("\u0041\u0044\u0042\u0045","\u0031\u002e\u0037",8);};if _cecf ,_ccbb :=_ac .GetDict (_dcad .Get ("\u0049\u006e\u0066\u006f"));_ccbb {if _cebe ,_gegc :=_ac .GetDict (_dccf ._aefadb );_gegc {for _ ,_gbgdg :=range _cecf .Keys (){if _cebe .Get (_gbgdg )==nil {_cebe .Set (_gbgdg ,_cecf .Get (_gbgdg ));
};};};};if _fgdc ._aead !=nil {_dccf ._aefadb =_ac .MakeIndirectObject (_fgdc ._aead .ToPdfObject ());};_fgdc .addNewObject (_dccf ._aefadb );_fgdc .addNewObject (_dccf ._efcff );_dgcbd :=false ;if len (_fgdc ._cbdcd .PageList )!=len (_fgdc ._abda ){_dgcbd =true ;
}else {for _efad :=range _fgdc ._cbdcd .PageList {switch {case _fgdc ._abda [_efad ]==_fgdc ._cbdcd .PageList [_efad ]:case _fgdc ._abda [_efad ]==_fgdc .Reader .PageList [_efad ]:default:_dgcbd =true ;};if _dgcbd {break ;};};};if _dgcbd {_fgdc .updateObjectsDeep (_dccf ._dagba ,nil );
}else {_fgdc ._fbfga [_dccf ._dagba ]=struct{}{};};_dccf ._dagba .ObjectNumber =_fgdc .Reader ._efeee .ObjectNumber ;_fgdc ._degfa [_dccf ._dagba ]=_fgdc .Reader ._efeee .ObjectNumber ;_ggad :=[]_ac .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 _ ,_bcfd :=range _fgdc ._abda {_aeec :=_bcfd .ToPdfObject ();*_fdeea =*_fdeea +1;if _aggab ,_fbgf :=_aeec .(*_ac .PdfIndirectObject );_fbgf &&_aggab .GetParser ()==_fgdc ._cbdcd ._eebeg {_aafa .Append (&_aggab .PdfObjectReference );continue ;};if _gcfa ,_fgab :=_ac .GetDict (_aeec );
_fgab {_cgef ,_gbca :=_gcfa .Get ("\u0050\u0061\u0072\u0065\u006e\u0074").(*_ac .PdfIndirectObject );for _gbca {_gd .Log .Trace ("\u0050a\u0067e\u0020\u0050\u0061\u0072\u0065\u006e\u0074\u003a\u0020\u0025\u0054",_cgef );_fafa ,_adfbg :=_cgef .PdfObject .(*_ac .PdfObjectDictionary );
if !_adfbg {return _af .New ("i\u006e\u0076\u0061\u006cid\u0020P\u0061\u0072\u0065\u006e\u0074 \u006f\u0062\u006a\u0065\u0063\u0074");};for _ ,_cafg :=range _ggad {_gd .Log .Trace ("\u0046\u0069\u0065\u006c\u0064\u0020\u0025\u0073",_cafg );if _dgga :=_gcfa .Get (_cafg );
_dgga !=nil {_gd .Log .Trace ("\u002d \u0070a\u0067\u0065\u0020\u0068\u0061s\u0020\u0061l\u0072\u0065\u0061\u0064\u0079");if len (_bcfd ._cecfa .Keys ())> 0&&!_dgcbd {_ceea :=_bcfd ._cecfa ;if _eeeec :=_ceea .Get (_cafg );_eeeec !=nil {if _dgga !=_eeeec {_gd .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",_cafg ,_eeeec );
_gcfa .Set (_cafg ,_eeeec );};};};continue ;};if _acdg :=_fafa .Get (_cafg );_acdg !=nil {_gd .Log .Trace ("\u0049\u006e\u0068\u0065ri\u0074\u0069\u006e\u0067\u0020\u0066\u0069\u0065\u006c\u0064\u0020\u0025\u0073",_cafg );_gcfa .Set (_cafg ,_acdg );};};
_cgef ,_gbca =_fafa .Get ("\u0050\u0061\u0072\u0065\u006e\u0074").(*_ac .PdfIndirectObject );_gd .Log .Trace ("\u004ee\u0078t\u0020\u0070\u0061\u0072\u0065\u006e\u0074\u003a\u0020\u0025\u0054",_fafa .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"));};_gcfa .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_dccf ._dagba );
};_fgdc .updateObjectsDeep (_aeec ,nil );_aafa .Append (_aeec );};if _ ,_bbeb :=_fgdc ._dcaa .Seek (0,_adc .SeekStart );_bbeb !=nil {return _bbeb ;};_aeaeg :=make (map[SignatureHandler ]_adc .Writer );_fgde :=_ac .MakeArray ();for _ ,_dbad :=range _fgdc ._fgee {if _bedc ,_ffcgg :=_ac .GetIndirect (_dbad );
_ffcgg {if _gdefd ,_cgdb :=_bedc .PdfObject .(*pdfSignDictionary );_cgdb {_abec :=*_gdefd ._abgad ;var _cfeb error ;_aeaeg [_abec ],_cfeb =_abec .NewDigest (_gdefd ._aacfd );if _cfeb !=nil {return _cfeb ;};_fgde .Append (_ac .MakeInteger (0xfffff),_ac .MakeInteger (0xfffff));
};};};if _fgde .Len ()> 0{_fgde .Append (_ac .MakeInteger (0xfffff),_ac .MakeInteger (0xfffff));};for _ ,_afge :=range _fgdc ._fgee {if _gfeg ,_dcee :=_ac .GetIndirect (_afge );_dcee {if _cafb ,_cgade :=_gfeg .PdfObject .(*pdfSignDictionary );_cgade {_cafb .Set ("\u0042y\u0074\u0065\u0052\u0061\u006e\u0067e",_fgde );
};};};_dfda :=len (_aeaeg )> 0;var _fefa _adc .Reader =_fgdc ._dcaa ;if _dfda {_gcfb :=make ([]_adc .Writer ,0,len (_aeaeg ));for _ ,_eefff :=range _aeaeg {_gcfb =append (_gcfb ,_eefff );};_fefa =_adc .TeeReader (_fgdc ._dcaa ,_adc .MultiWriter (_gcfb ...));
};_ddeb ,_gbbf :=_adc .Copy (w ,_fefa );if _gbbf !=nil {return _gbbf ;};if len (_fgdc ._fgee )==0{return nil ;};_dccf ._deff =_ddeb ;_dccf .ObjNumOffset =_fgdc ._dgfe ;_dccf ._cfgc =true ;_dccf ._febgg =_fgdc ._gdg ;_dccf ._bcbcd =_fgdc ._adgf ;_dccf ._gccgde =_fgdc ._fcef ;
_dccf ._gdfdc =_fgdc ._cbdcd .PdfVersion ();_dccf ._dgbfe =_fgdc ._degfa ;_dccf ._bggef =_fgdc ._bbbg .GetCrypter ();_dccf ._ecgdb =_fgdc ._bbbg .GetEncryptObj ();_dfbcf :=_fgdc ._bbbg .GetXrefType ();if _dfbcf !=nil {_ggdg :=*_dfbcf ==_ac .XrefTypeObjectStream ;
_dccf ._fdfcfb =&_ggdg ;};_dccf ._agbff =map[_ac .PdfObject ]struct{}{};_dccf ._gdeaf =[]_ac .PdfObject {};for _ ,_dbf :=range _fgdc ._fgee {if _ ,_fgga :=_fgdc ._fbfga [_dbf ];_fgga {continue ;};_dccf .addObject (_dbf );};_gff :=w ;if _dfda {_gff =_fd .NewBuffer (nil );
};if _fgdc ._abgb !=""&&_dccf ._bggef ==nil {_dccf .Encrypt ([]byte (_fgdc ._abgb ),[]byte (_fgdc ._abgb ),_fgdc ._abea );};if _agd :=_dcad .Get ("\u0049\u0044");_agd !=nil {if _ccda ,_deag :=_ac .GetArray (_agd );_deag {_dccf ._bffaf =_ccda ;};};if _dfbfe :=_dccf .Write (_gff );
_dfbfe !=nil {return _dfbfe ;};if _dfda {_ddebc :=_gff .(*_fd .Buffer ).Bytes ();_aecd :=_ac .MakeArray ();var _aaeb []*pdfSignDictionary ;var _cgdf int64 ;for _ ,_cbdf :=range _dccf ._gdeaf {if _fbfc ,_gcdg :=_ac .GetIndirect (_cbdf );_gcdg {if _agdd ,_efebc :=_fbfc .PdfObject .(*pdfSignDictionary );
_efebc {_aaeb =append (_aaeb ,_agdd );_dcadf :=_agdd ._aedff +int64 (_agdd ._gaegg );_aecd .Append (_ac .MakeInteger (_cgdf ),_ac .MakeInteger (_dcadf -_cgdf ));_cgdf =_agdd ._aedff +int64 (_agdd ._cgdfee );};};};_aecd .Append (_ac .MakeInteger (_cgdf ),_ac .MakeInteger (_ddeb +int64 (len (_ddebc ))-_cgdf ));
_eebb :=[]byte (_aecd .WriteString ());for _ ,_dab :=range _aaeb {_ffcc :=int (_dab ._aedff -_ddeb );for _fggb :=_dab ._dbcgg ;_fggb < _dab ._gdfcd ;_fggb ++{_ddebc [_ffcc +_fggb ]=' ';};_gafc :=_ddebc [_ffcc +_dab ._dbcgg :_ffcc +_dab ._gdfcd ];copy (_gafc ,_eebb );
};var _ecgb int ;for _ ,_cgffd :=range _aaeb {_efea :=int (_cgffd ._aedff -_ddeb );_bbaac :=_ddebc [_ecgb :_efea +_cgffd ._gaegg ];_adde :=*_cgffd ._abgad ;_aeaeg [_adde ].Write (_bbaac );_ecgb =_efea +_cgffd ._cgdfee ;};for _ ,_beec :=range _aaeb {_aefee :=_ddebc [_ecgb :];
_ffbe :=*_beec ._abgad ;_aeaeg [_ffbe ].Write (_aefee );};for _ ,_eggc :=range _aaeb {_dcfe :=int (_eggc ._aedff -_ddeb );_aegd :=*_eggc ._abgad ;_eebc :=_aeaeg [_aegd ];if _dgedc :=_aegd .Sign (_eggc ._aacfd ,_eebc );_dgedc !=nil {return _dgedc ;};_eggc ._aacfd .ByteRange =_aecd ;
_bfde :=[]byte (_eggc ._aacfd .Contents .WriteString ());for _aecc :=_eggc ._dbcgg ;_aecc < _eggc ._gdfcd ;_aecc ++{_ddebc [_dcfe +_aecc ]=' ';};for _gbdba :=_eggc ._gaegg ;_gbdba < _eggc ._cgdfee ;_gbdba ++{_ddebc [_dcfe +_gbdba ]=' ';};_ebee :=_ddebc [_dcfe +_eggc ._dbcgg :_dcfe +_eggc ._gdfcd ];
copy (_ebee ,_eebb );_ebee =_ddebc [_dcfe +_eggc ._gaegg :_dcfe +_eggc ._cgdfee ];copy (_ebee ,_bfde );};_gcgb :=_fd .NewBuffer (_ddebc );_ ,_gbbf =_adc .Copy (w ,_gcgb );if _gbbf !=nil {return _gbbf ;};};_fgdc ._gae =true ;return nil ;};
// GetContainingPdfObject returns the page as a dictionary within an PdfIndirectObject.
func (_eagfd *PdfPage )GetContainingPdfObject ()_ac .PdfObject {return _eagfd ._ffda };func (_cbae *PdfReader )newPdfAnnotationLinkFromDict (_aaea *_ac .PdfObjectDictionary )(*PdfAnnotationLink ,error ){_ede :=PdfAnnotationLink {};_ede .A =_aaea .Get ("\u0041");
_ede .Dest =_aaea .Get ("\u0044\u0065\u0073\u0074");_ede .H =_aaea .Get ("\u0048");_ede .PA =_aaea .Get ("\u0050\u0041");_ede .QuadPoints =_aaea .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");_ede .BS =_aaea .Get ("\u0042\u0053");
return &_ede ,nil ;};func (_dgff *PdfReader )resolveReference (_dbbcb *_ac .PdfObjectReference )(_ac .PdfObject ,bool ,error ){_cdddd ,_bccd :=_dgff ._eebeg .ObjCache [int (_dbbcb .ObjectNumber )];if !_bccd {_gd .Log .Trace ("R\u0065\u0061\u0064\u0065r \u004co\u006f\u006b\u0075\u0070\u0020r\u0065\u0066\u003a\u0020\u0025\u0073",_dbbcb );
_fcbgc ,_fbbad :=_dgff ._eebeg .LookupByReference (*_dbbcb );if _fbbad !=nil {return nil ,false ,_fbbad ;};_dgff ._eebeg .ObjCache [int (_dbbcb .ObjectNumber )]=_fcbgc ;return _fcbgc ,false ,nil ;};return _cdddd ,true ,nil ;};
// GetNumComponents returns the number of color components.
func (_bgdc *PdfColorspaceICCBased )GetNumComponents ()int {return _bgdc .N };
// GetContainingPdfObject returns the container of the DSS (indirect object).
func (_egfff *DSS )GetContainingPdfObject ()_ac .PdfObject {return _egfff ._gfed };
// ToPdfObject implements interface PdfModel.
func (_eade *PdfAnnotationProjection )ToPdfObject ()_ac .PdfObject {_eade .PdfAnnotation .ToPdfObject ();_gdfef :=_eade ._fegd ;_ffbb :=_gdfef .PdfObject .(*_ac .PdfObjectDictionary );_eade .PdfAnnotationMarkup .appendToPdfDictionary (_ffbb );return _gdfef ;
};
// 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 (_abfbec *Image )Resample (targetBitsPerComponent int64 ){if _abfbec .BitsPerComponent ==targetBitsPerComponent {return ;};_fdebd :=_abfbec .GetSamples ();if targetBitsPerComponent < _abfbec .BitsPerComponent {_gafac :=_abfbec .BitsPerComponent -targetBitsPerComponent ;
for _ecfg :=range _fdebd {_fdebd [_ecfg ]>>=uint (_gafac );};}else if targetBitsPerComponent > _abfbec .BitsPerComponent {_fagf :=targetBitsPerComponent -_abfbec .BitsPerComponent ;for _gcdab :=range _fdebd {_fdebd [_gcdab ]<<=uint (_fagf );};};_abfbec .BitsPerComponent =targetBitsPerComponent ;
if _abfbec .BitsPerComponent < 8{_abfbec .resampleLowBits (_fdebd );return ;};_cdca :=_ed .BytesPerLine (int (_abfbec .Width ),int (_abfbec .BitsPerComponent ),_abfbec .ColorComponents );_addf :=make ([]byte ,_cdca *int (_abfbec .Height ));var (_bfcd ,_abbc ,_ecdg ,_fgfad int ;
_egffb uint32 ;);for _ecdg =0;_ecdg < int (_abfbec .Height );_ecdg ++{_bfcd =_ecdg *_cdca ;_abbc =(_ecdg +1)*_cdca -1;_eefc :=_cg .ResampleUint32 (_fdebd [_bfcd :_abbc ],int (targetBitsPerComponent ),8);for _fgfad ,_egffb =range _eefc {_addf [_fgfad +_bfcd ]=byte (_egffb );
};};_abfbec .Data =_addf ;};
// NewPdfAnnotationFreeText returns a new free text annotation.
func NewPdfAnnotationFreeText ()*PdfAnnotationFreeText {_bgbb :=NewPdfAnnotation ();_eaad :=&PdfAnnotationFreeText {};_eaad .PdfAnnotation =_bgbb ;_eaad .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_bgbb .SetContext (_eaad );return _eaad ;};
// 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 };};
// 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 (_cabeg *XObjectForm )SetContentStream (content []byte ,encoder _ac .StreamEncoder )error {_ggcdd :=content ;if encoder ==nil {if _cabeg .Filter !=nil {encoder =_cabeg .Filter ;}else {encoder =_ac .NewRawEncoder ();};};_caeca ,_cgbegd :=encoder .EncodeBytes (_ggcdd );
if _cgbegd !=nil {return _cgbegd ;};_ggcdd =_caeca ;_cabeg .Stream =_ggcdd ;_cabeg .Filter =encoder ;return nil ;};
// 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 text field dictionary within an indirect object (container).
func (_gdeb *PdfFieldText )ToPdfObject ()_ac .PdfObject {_gdeb .PdfField .ToPdfObject ();_aecff :=_gdeb ._bdde ;_cafc :=_aecff .PdfObject .(*_ac .PdfObjectDictionary );_cafc .Set ("\u0046\u0054",_ac .MakeName ("\u0054\u0078"));if _gdeb .DA !=nil {_cafc .Set ("\u0044\u0041",_gdeb .DA );
};if _gdeb .Q !=nil {_cafc .Set ("\u0051",_gdeb .Q );};if _gdeb .DS !=nil {_cafc .Set ("\u0044\u0053",_gdeb .DS );};if _gdeb .RV !=nil {_cafc .Set ("\u0052\u0056",_gdeb .RV );};if _gdeb .MaxLen !=nil {_cafc .Set ("\u004d\u0061\u0078\u004c\u0065\u006e",_gdeb .MaxLen );
};return _aecff ;};
// 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 ;
// 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 (_gafe *PdfColorspaceSpecialPattern )ColorFromPdfObjects (objects []_ac .PdfObject )(PdfColor ,error ){if len (objects )< 1{return nil ,_af .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");
};_ddceb :=&PdfColorPattern {};_eecbg ,_gcgd :=objects [len (objects )-1].(*_ac .PdfObjectName );if !_gcgd {_gd .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 ;};_ddceb .PatternName =*_eecbg ;if len (objects )> 1{_cfdae :=objects [0:len (objects )-1];if _gafe .UnderlyingCS ==nil {_gd .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 ,_af .New ("\u0075n\u0064\u0065\u0072\u006cy\u0069\u006e\u0067\u0020\u0043S\u0020n\u006ft\u0020\u0064\u0065\u0066\u0069\u006e\u0065d");};_gaa ,_cggc :=_gafe .UnderlyingCS .ColorFromPdfObjects (_cfdae );if _cggc !=nil {_gd .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",_cggc );
return nil ,_cggc ;};_ddceb .Color =_gaa ;};return _ddceb ,nil ;};func (_bgfe *PdfColorspaceDeviceCMYK )String ()string {return "\u0044\u0065\u0076\u0069\u0063\u0065\u0043\u004d\u0059\u004b";};
// 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 _ac .StreamEncoder )(*XObjectImage ,error ){_efeacd :=NewXObjectImage ();return UpdateXObjectImageFromImage (_efeacd ,img ,cs ,encoder );};
// SetContext sets the sub annotation (context).
func (_fgg *PdfAnnotation )SetContext (ctx PdfModel ){_fgg ._cgf =ctx };
// Encoder returns the font's text encoder.
func (_cdde pdfCIDFontType0 )Encoder ()_gf .TextEncoder {return _cdde ._bbea };
// ColorToRGB converts a DeviceN color to an RGB color.
func (_ecbga *PdfColorspaceDeviceN )ColorToRGB (color PdfColor )(PdfColor ,error ){if _ecbga .AlternateSpace ==nil {return nil ,_af .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 _ecbga .AlternateSpace .ColorToRGB (color );};
// ToPdfObject converts the pdfCIDFontType2 to a PDF representation.
func (_dgac *pdfCIDFontType2 )ToPdfObject ()_ac .PdfObject {if _dgac ._dabfe ==nil {_dgac ._dabfe =&_ac .PdfIndirectObject {};};_gdcd :=_dgac .baseFields ().asPdfObjectDictionary ("\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032");_dgac ._dabfe .PdfObject =_gdcd ;
if _dgac .CIDSystemInfo !=nil {_gdcd .Set ("\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f",_dgac .CIDSystemInfo );};if _dgac .DW !=nil {_gdcd .Set ("\u0044\u0057",_dgac .DW );};if _dgac .DW2 !=nil {_gdcd .Set ("\u0044\u0057\u0032",_dgac .DW2 );
};if _dgac .W !=nil {_gdcd .Set ("\u0057",_dgac .W );};if _dgac .W2 !=nil {_gdcd .Set ("\u0057\u0032",_dgac .W2 );};if _dgac .CIDToGIDMap !=nil {_gdcd .Set ("C\u0049\u0044\u0054\u006f\u0047\u0049\u0044\u004d\u0061\u0070",_dgac .CIDToGIDMap );};return _dgac ._dabfe ;
};func (_ebbgc *PdfReader )loadAnnotations (_gafea _ac .PdfObject )([]*PdfAnnotation ,error ){_eafdd ,_dgbca :=_ac .GetArray (_gafea );if !_dgbca {return nil ,_d .Errorf ("\u0041\u006e\u006e\u006fts\u0020\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0061\u0072\u0072\u0061\u0079");
};var _gdff []*PdfAnnotation ;for _ ,_bgfg :=range _eafdd .Elements (){_bgfg =_ac .ResolveReference (_bgfg );if _ ,_gcebf :=_bgfg .(*_ac .PdfObjectNull );_gcebf {continue ;};_dcede ,_faccg :=_bgfg .(*_ac .PdfObjectDictionary );_ggdgcf ,_fdabcg :=_bgfg .(*_ac .PdfIndirectObject );
if _faccg {_ggdgcf =&_ac .PdfIndirectObject {};_ggdgcf .PdfObject =_dcede ;}else {if !_fdabcg {return nil ,_d .Errorf ("\u0061\u006eno\u0074\u0061\u0074i\u006f\u006e\u0020\u006eot \u0069n \u0061\u006e\u0020\u0069\u006e\u0064\u0069re\u0063\u0074\u0020\u006f\u0062\u006a\u0065c\u0074");
};};_ccegbf ,_bdad :=_ebbgc .newPdfAnnotationFromIndirectObject (_ggdgcf );if _bdad !=nil {return nil ,_bdad ;};switch _faee :=_ccegbf .GetContext ().(type ){case *PdfAnnotationWidget :for _ ,_gbfcd :=range _ebbgc .AcroForm .AllFields (){if _gbfcd ._bdde ==_faee .Parent {_faee ._gdb =_gbfcd ;
break ;};};};if _ccegbf !=nil {_gdff =append (_gdff ,_ccegbf );};};return _gdff ,nil ;};
// PdfField contains the common attributes of a form field. The context object contains the specific field data
// which can represent a button, text, choice or signature.
// The PdfField is typically not used directly, but is encapsulated by the more specific field types such as
// PdfFieldButton etc (i.e. the context attribute).
type PdfField struct{_edab PdfModel ;_bdde *_ac .PdfIndirectObject ;Parent *PdfField ;Annotations []*PdfAnnotationWidget ;Kids []*PdfField ;FT *_ac .PdfObjectName ;T *_ac .PdfObjectString ;TU *_ac .PdfObjectString ;TM *_ac .PdfObjectString ;Ff *_ac .PdfObjectInteger ;
V _ac .PdfObject ;DV _ac .PdfObject ;AA _ac .PdfObject ;VariableText *VariableText ;};
// ToPdfObject returns the PDF representation of the pattern.
func (_ebcff *PdfPattern )ToPdfObject ()_ac .PdfObject {_bbbfd :=_ebcff .getDict ();_bbbfd .Set ("\u0054\u0079\u0070\u0065",_ac .MakeName ("\u0050a\u0074\u0074\u0065\u0072\u006e"));_bbbfd .Set ("P\u0061\u0074\u0074\u0065\u0072\u006e\u0054\u0079\u0070\u0065",_ac .MakeInteger (_ebcff .PatternType ));
return _ebcff ._fddfb ;};
// AppendContentStream adds content stream by string. Appends to the last
// contentstream instance if many.
func (_cbcbf *PdfPage )AppendContentStream (contentStr string )error {_fadbf ,_cgeae :=_cbcbf .GetContentStreams ();if _cgeae !=nil {return _cgeae ;};if len (_fadbf )==0{_fadbf =[]string {contentStr };return _cbcbf .SetContentStreams (_fadbf ,_ac .NewFlateEncoder ());
};var _gfga _fd .Buffer ;_gfga .WriteString (_fadbf [len (_fadbf )-1]);_gfga .WriteString ("\u000a");_gfga .WriteString (contentStr );_fadbf [len (_fadbf )-1]=_gfga .String ();return _cbcbf .SetContentStreams (_fadbf ,_ac .NewFlateEncoder ());};
// ColorFromPdfObjects returns a new PdfColor based on the input slice of color
// components. The slice should contain a single PdfObjectFloat element.
func (_bfbg *PdfColorspaceSpecialIndexed )ColorFromPdfObjects (objects []_ac .PdfObject )(PdfColor ,error ){if len (objects )!=1{return nil ,_af .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_fdebg ,_gcfg :=_ac .GetNumbersAsFloat (objects );
if _gcfg !=nil {return nil ,_gcfg ;};return _bfbg .ColorFromFloats (_fdebg );};func _gccgd (_bdecb _ac .PdfObject )(*PdfShading ,error ){_gfgac :=&PdfShading {};var _edca *_ac .PdfObjectDictionary ;if _bdcdee ,_gdecg :=_ac .GetIndirect (_bdecb );_gdecg {_gfgac ._dffbg =_bdcdee ;
_ecdcdg ,_ebafd :=_bdcdee .PdfObject .(*_ac .PdfObjectDictionary );if !_ebafd {_gd .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 ,_ac .ErrTypeError ;
};_edca =_ecdcdg ;}else if _dbadab ,_gefaa :=_ac .GetStream (_bdecb );_gefaa {_gfgac ._dffbg =_dbadab ;_edca =_dbadab .PdfObjectDictionary ;}else if _fcggg ,_bcge :=_ac .GetDict (_bdecb );_bcge {_gfgac ._dffbg =_fcggg ;_edca =_fcggg ;}else {_gd .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",_bdecb );
return nil ,_ac .ErrTypeError ;};if _edca ==nil {_gd .Log .Debug ("\u0044i\u0063t\u0069\u006f\u006e\u0061\u0072y\u0020\u006di\u0073\u0073\u0069\u006e\u0067");return nil ,_af .New ("\u0064\u0069\u0063t\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};
_bdecb =_edca .Get ("S\u0068\u0061\u0064\u0069\u006e\u0067\u0054\u0079\u0070\u0065");if _bdecb ==nil {_gd .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 ;};_bdecb =_ac .TraceToDirectObject (_bdecb );_bffge ,_gbbdbc :=_bdecb .(*_ac .PdfObjectInteger );if !_gbbdbc {_gd .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",_bdecb );
return nil ,_ac .ErrTypeError ;};if *_bffge < 1||*_bffge > 7{_gd .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",*_bffge );
return nil ,_ac .ErrTypeError ;};_gfgac .ShadingType =_bffge ;_bdecb =_edca .Get ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065");if _bdecb ==nil {_gd .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 ;};_gffbc ,_bffcc :=NewPdfColorspaceFromPdfObject (_bdecb );if _bffcc !=nil {_gd .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",_bffcc );
return nil ,_bffcc ;};_gfgac .ColorSpace =_gffbc ;_bdecb =_edca .Get ("\u0042\u0061\u0063\u006b\u0067\u0072\u006f\u0075\u006e\u0064");if _bdecb !=nil {_bdecb =_ac .TraceToDirectObject (_bdecb );_aadae ,_cfgb :=_bdecb .(*_ac .PdfObjectArray );if !_cfgb {_gd .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)",_bdecb );
return nil ,_ac .ErrTypeError ;};_gfgac .Background =_aadae ;};_bdecb =_edca .Get ("\u0042\u0042\u006f\u0078");if _bdecb !=nil {_bdecb =_ac .TraceToDirectObject (_bdecb );_bbegd ,_afgfd :=_bdecb .(*_ac .PdfObjectArray );if !_afgfd {_gd .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)",_bdecb );
return nil ,_ac .ErrTypeError ;};_cgdgg ,_ggbca :=NewPdfRectangle (*_bbegd );if _ggbca !=nil {_gd .Log .Debug ("\u0042\u0042\u006f\u0078\u0020\u0065\u0072\u0072\u006fr\u003a\u0020\u0025\u0076",_ggbca );return nil ,_ggbca ;};_gfgac .BBox =_cgdgg ;};_bdecb =_edca .Get ("\u0041n\u0074\u0069\u0041\u006c\u0069\u0061s");
if _bdecb !=nil {_bdecb =_ac .TraceToDirectObject (_bdecb );_aebad ,_dcdfb :=_bdecb .(*_ac .PdfObjectBool );if !_dcdfb {_gd .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",_bdecb );
return nil ,_ac .ErrTypeError ;};_gfgac .AntiAlias =_aebad ;};switch *_bffge {case 1:_bbgbf ,_gfafd :=_fdgge (_edca );if _gfafd !=nil {return nil ,_gfafd ;};_bbgbf .PdfShading =_gfgac ;_gfgac ._bfga =_bbgbf ;return _gfgac ,nil ;case 2:_fadff ,_ffefc :=_cfggcg (_edca );
if _ffefc !=nil {return nil ,_ffefc ;};_fadff .PdfShading =_gfgac ;_gfgac ._bfga =_fadff ;return _gfgac ,nil ;case 3:_cdbec ,_dacee :=_ccgdd (_edca );if _dacee !=nil {return nil ,_dacee ;};_cdbec .PdfShading =_gfgac ;_gfgac ._bfga =_cdbec ;return _gfgac ,nil ;
case 4:_cacbf ,_babce :=_adfff (_edca );if _babce !=nil {return nil ,_babce ;};_cacbf .PdfShading =_gfgac ;_gfgac ._bfga =_cacbf ;return _gfgac ,nil ;case 5:_abeaeg ,_ddafb :=_afeg (_edca );if _ddafb !=nil {return nil ,_ddafb ;};_abeaeg .PdfShading =_gfgac ;
_gfgac ._bfga =_abeaeg ;return _gfgac ,nil ;case 6:_cegcf ,_adfd :=_babfa (_edca );if _adfd !=nil {return nil ,_adfd ;};_cegcf .PdfShading =_gfgac ;_gfgac ._bfga =_cegcf ;return _gfgac ,nil ;case 7:_cgbab ,_efdfg :=_eecd (_edca );if _efdfg !=nil {return nil ,_efdfg ;
};_cgbab .PdfShading =_gfgac ;_gfgac ._bfga =_cgbab ;return _gfgac ,nil ;};return nil ,_af .New ("u\u006ek\u006e\u006f\u0077\u006e\u0020\u0073\u0068\u0061d\u0069\u006e\u0067\u0020ty\u0070\u0065");};
// Encoder returns the font's text encoder.
func (_bdacb pdfFontType0 )Encoder ()_gf .TextEncoder {return _bdacb ._edfdd };
// NewOutline returns a new outline instance.
func NewOutline ()*Outline {return &Outline {}};func (_gfaf *PdfReader )newPdfAnnotationUnderlineFromDict (_aggd *_ac .PdfObjectDictionary )(*PdfAnnotationUnderline ,error ){_ced :=PdfAnnotationUnderline {};_bceb ,_dgcf :=_gfaf .newPdfAnnotationMarkupFromDict (_aggd );
if _dgcf !=nil {return nil ,_dgcf ;};_ced .PdfAnnotationMarkup =_bceb ;_ced .QuadPoints =_aggd .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");return &_ced ,nil ;};
// PdfReader represents a PDF file reader. It is a frontend to the lower level parsing mechanism and provides
// a higher level access to work with PDF structure and information, such as the page structure etc.
type PdfReader struct{_eebeg *_ac .PdfParser ;_egfgf _ac .PdfObject ;_efeee *_ac .PdfIndirectObject ;_eccec *_ac .PdfObjectDictionary ;_acca []*_ac .PdfIndirectObject ;PageList []*PdfPage ;_dageg int ;_bdfc *_ac .PdfObjectDictionary ;_adbfg *PdfOutlineTreeNode ;
AcroForm *PdfAcroForm ;DSS *DSS ;Rotate *int64 ;_bddf *Permissions ;_geega map[*PdfReader ]*PdfReader ;_aedce []*PdfReader ;_gbced *modelManager ;_dfgg bool ;_cccb map[_ac .PdfObject ]struct{};_fafc _adc .ReadSeeker ;_cdgb string ;_edcge bool ;_dcbgf *ReaderOpts ;
_agfbe bool ;};
// GetContentStreams returns the content stream as an array of strings.
func (_dfebf *PdfPage )GetContentStreams ()([]string ,error ){_aadbe :=_dfebf .GetContentStreamObjs ();var _cdbaa []string ;for _ ,_dade :=range _aadbe {_beeec ,_fgag :=_dfce (_dade );if _fgag !=nil {return nil ,_fgag ;};_cdbaa =append (_cdbaa ,_beeec );
};return _cdbaa ,nil ;};
// ColorToRGB converts an Indexed color to an RGB color.
func (_abceg *PdfColorspaceSpecialIndexed )ColorToRGB (color PdfColor )(PdfColor ,error ){if _abceg .Base ==nil {return nil ,_af .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 _abceg .Base .ColorToRGB (color );};
// 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 (_cccfc *LTV )EnableChain (chain []*_fc .Certificate )error {return _cccfc .enable (nil ,chain ,"")};
// PdfAnnotationMarkup represents additional fields for mark-up annotations.
// (Section 12.5.6.2 p. 399).
type PdfAnnotationMarkup struct{T _ac .PdfObject ;Popup *PdfAnnotationPopup ;CA _ac .PdfObject ;RC _ac .PdfObject ;CreationDate _ac .PdfObject ;IRT _ac .PdfObject ;Subj _ac .PdfObject ;RT _ac .PdfObject ;IT _ac .PdfObject ;ExData _ac .PdfObject ;};
// PdfFieldButton represents a button field which includes push buttons, checkboxes, and radio buttons.
type PdfFieldButton struct{*PdfField ;Opt *_ac .PdfObjectArray ;_aegde *Image ;};
// XObjectForm (Table 95 in 8.10.2).
type XObjectForm struct{Filter _ac .StreamEncoder ;FormType _ac .PdfObject ;BBox _ac .PdfObject ;Matrix _ac .PdfObject ;Resources *PdfPageResources ;Group _ac .PdfObject ;Ref _ac .PdfObject ;MetaData _ac .PdfObject ;PieceInfo _ac .PdfObject ;LastModified _ac .PdfObject ;
StructParent _ac .PdfObject ;StructParents _ac .PdfObject ;OPI _ac .PdfObject ;OC _ac .PdfObject ;Name _ac .PdfObject ;
// Stream data.
Stream []byte ;_fggc *_ac .PdfObjectStream ;};func (_cggab *PdfColorspaceICCBased )String ()string {return "\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064";};
// AddPages adds pages to be appended to the end of the source PDF.
func (_gfad *PdfAppender )AddPages (pages ...*PdfPage ){for _ ,_cebg :=range pages {_cebg =_cebg .Duplicate ();_gfbe (_cebg );_gfad ._abda =append (_gfad ._abda ,_cebg );};};
// ColorToRGB converts a CalRGB color to an RGB color.
func (_dfcba *PdfColorspaceCalRGB )ColorToRGB (color PdfColor )(PdfColor ,error ){_eabed ,_ggbd :=color .(*PdfColorCalRGB );if !_ggbd {_gd .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 ,_af .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_baae :=_eabed .A ();_faga :=_eabed .B ();_agfc :=_eabed .C ();X :=_dfcba .Matrix [0]*_da .Pow (_baae ,_dfcba .Gamma [0])+_dfcba .Matrix [3]*_da .Pow (_faga ,_dfcba .Gamma [1])+_dfcba .Matrix [6]*_da .Pow (_agfc ,_dfcba .Gamma [2]);
Y :=_dfcba .Matrix [1]*_da .Pow (_baae ,_dfcba .Gamma [0])+_dfcba .Matrix [4]*_da .Pow (_faga ,_dfcba .Gamma [1])+_dfcba .Matrix [7]*_da .Pow (_agfc ,_dfcba .Gamma [2]);Z :=_dfcba .Matrix [2]*_da .Pow (_baae ,_dfcba .Gamma [0])+_dfcba .Matrix [5]*_da .Pow (_faga ,_dfcba .Gamma [1])+_dfcba .Matrix [8]*_da .Pow (_agfc ,_dfcba .Gamma [2]);
_fgbg :=3.240479*X +-1.537150*Y +-0.498535*Z ;_cbab :=-0.969256*X +1.875992*Y +0.041556*Z ;_adgd :=0.055648*X +-0.204043*Y +1.057311*Z ;_fgbg =_da .Min (_da .Max (_fgbg ,0),1.0);_cbab =_da .Min (_da .Max (_cbab ,0),1.0);_adgd =_da .Min (_da .Max (_adgd ,0),1.0);
return NewPdfColorDeviceRGB (_fgbg ,_cbab ,_adgd ),nil ;};
// Mask returns the uin32 bitmask for the specific flag.
func (_ecbec FieldFlag )Mask ()uint32 {return uint32 (_ecbec )};
// Items returns all children outline items.
func (_gcbg *Outline )Items ()[]*OutlineItem {return _gcbg .Entries };
// NewPdfAnnotationUnderline returns a new text underline annotation.
func NewPdfAnnotationUnderline ()*PdfAnnotationUnderline {_eeag :=NewPdfAnnotation ();_dfe :=&PdfAnnotationUnderline {};_dfe .PdfAnnotation =_eeag ;_dfe .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_eeag .SetContext (_dfe );return _dfe ;};
// BorderEffect represents a border effect (Table 167 p. 395).
type BorderEffect int ;func (_gefc *PdfReader )newPdfAnnotationStampFromDict (_fcfc *_ac .PdfObjectDictionary )(*PdfAnnotationStamp ,error ){_aege :=PdfAnnotationStamp {};_gddd ,_fgd :=_gefc .newPdfAnnotationMarkupFromDict (_fcfc );if _fgd !=nil {return nil ,_fgd ;
};_aege .PdfAnnotationMarkup =_gddd ;_aege .Name =_fcfc .Get ("\u004e\u0061\u006d\u0065");return &_aege ,nil ;};
// NewPdfColorCalRGB returns a new CalRBG color.
func NewPdfColorCalRGB (a ,b ,c float64 )*PdfColorCalRGB {_eebg :=PdfColorCalRGB {a ,b ,c };return &_eebg ;};func _aeeaae (_agcf *_ac .PdfObjectDictionary ,_egffg *fontCommon ,_dffef _gf .TextEncoder )(*pdfFontSimple ,error ){_eaaced :=_daae (_egffg );
_eaaced ._abbba =_dffef ;if _dffef ==nil {_decf :=_agcf .Get ("\u0046i\u0072\u0073\u0074\u0043\u0068\u0061r");if _decf ==nil {_decf =_ac .MakeInteger (0);};_eaaced .FirstChar =_decf ;_ggfab ,_abgcc :=_ac .GetIntVal (_decf );if !_abgcc {_gd .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",_decf );
return nil ,_ac .ErrTypeError ;};_fdag :=_gf .CharCode (_ggfab );_decf =_agcf .Get ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072");if _decf ==nil {_decf =_ac .MakeInteger (255);};_eaaced .LastChar =_decf ;_ggfab ,_abgcc =_ac .GetIntVal (_decf );if !_abgcc {_gd .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",_decf );
return nil ,_ac .ErrTypeError ;};_fbde :=_gf .CharCode (_ggfab );_eaaced ._bdaga =make (map[_gf .CharCode ]float64 );_decf =_agcf .Get ("\u0057\u0069\u0064\u0074\u0068\u0073");if _decf !=nil {_eaaced .Widths =_decf ;_ebge ,_feca :=_ac .GetArray (_decf );
if !_feca {_gd .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",_decf );return nil ,_ac .ErrTypeError ;
};_eaacd ,_dgbc :=_ebge .ToFloat64Array ();if _dgbc !=nil {_gd .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 ,_dgbc ;};if len (_eaacd )!=int (_fbde -_fdag +1){_gd .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",_fbde -_fdag +1,len (_eaacd ));
return nil ,_ac .ErrRangeError ;};for _bceg ,_gcbac :=range _eaacd {_eaaced ._bdaga [_fdag +_gf .CharCode (_bceg )]=_gcbac ;};};};_eaaced .Encoding =_ac .TraceToDirectObject (_agcf .Get ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067"));return _eaaced ,nil ;
};
// ToPdfObject returns the PDF representation of the shading dictionary.
func (_bfecac *PdfShading )ToPdfObject ()_ac .PdfObject {_gdecfc :=_bfecac ._dffbg ;_cdgbg ,_efbba :=_bfecac .getShadingDict ();if _efbba !=nil {_gd .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 _bfecac .ShadingType !=nil {_cdgbg .Set ("S\u0068\u0061\u0064\u0069\u006e\u0067\u0054\u0079\u0070\u0065",_bfecac .ShadingType );};if _bfecac .ColorSpace !=nil {_cdgbg .Set ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065",_bfecac .ColorSpace .ToPdfObject ());
};if _bfecac .Background !=nil {_cdgbg .Set ("\u0042\u0061\u0063\u006b\u0067\u0072\u006f\u0075\u006e\u0064",_bfecac .Background );};if _bfecac .BBox !=nil {_cdgbg .Set ("\u0042\u0042\u006f\u0078",_bfecac .BBox .ToPdfObject ());};if _bfecac .AntiAlias !=nil {_cdgbg .Set ("\u0041n\u0074\u0069\u0041\u006c\u0069\u0061s",_bfecac .AntiAlias );
};return _gdecfc ;};
// ToPdfObject implements interface PdfModel.
func (_egdf *PdfAnnotationPopup )ToPdfObject ()_ac .PdfObject {_egdf .PdfAnnotation .ToPdfObject ();_aada :=_egdf ._fegd ;_fbdb :=_aada .PdfObject .(*_ac .PdfObjectDictionary );_fbdb .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ac .MakeName ("\u0050\u006f\u0070u\u0070"));
_fbdb .SetIfNotNil ("\u0050\u0061\u0072\u0065\u006e\u0074",_egdf .Parent );_fbdb .SetIfNotNil ("\u004f\u0070\u0065\u006e",_egdf .Open );return _aada ;};func (_cdfdca *PdfWriter )writeObject (_fbded int ,_dgadf _ac .PdfObject ){_gd .Log .Trace ("\u0057\u0072\u0069\u0074\u0065\u0020\u006f\u0062\u006a \u0023\u0025\u0064\u000a",_fbded );
if _dccbb ,_dgab :=_dgadf .(*_ac .PdfIndirectObject );_dgab {_cdfdca ._ggbab [_fbded ]=crossReference {Type :1,Offset :_cdfdca ._edabb ,Generation :_dccbb .GenerationNumber };_cfdc :=_d .Sprintf ("\u0025d\u0020\u0030\u0020\u006f\u0062\u006a\n",_fbded );
if _bbfde ,_eccba :=_dccbb .PdfObject .(*pdfSignDictionary );_eccba {_bbfde ._aedff =_cdfdca ._edabb +int64 (len (_cfdc ));};if _dccbb .PdfObject ==nil {_gd .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");
_dccbb .PdfObject =_ac .MakeNull ();};_cfdc +=_dccbb .PdfObject .WriteString ();_cfdc +="\u000a\u0065\u006e\u0064\u006f\u0062\u006a\u000a";_cdfdca .writeString (_cfdc );return ;};if _fcadc ,_ccgfgd :=_dgadf .(*_ac .PdfObjectStream );_ccgfgd {_cdfdca ._ggbab [_fbded ]=crossReference {Type :1,Offset :_cdfdca ._edabb ,Generation :_fcadc .GenerationNumber };
_agdf :=_d .Sprintf ("\u0025d\u0020\u0030\u0020\u006f\u0062\u006a\n",_fbded );_agdf +=_fcadc .PdfObjectDictionary .WriteString ();_agdf +="\u000a\u0073\u0074\u0072\u0065\u0061\u006d\u000a";_cdfdca .writeString (_agdf );_cdfdca .writeBytes (_fcadc .Stream );
_cdfdca .writeString ("\u000ae\u006ed\u0073\u0074\u0072\u0065\u0061m\u000a\u0065n\u0064\u006f\u0062\u006a\u000a");return ;};if _cbfdf ,_gacga :=_dgadf .(*_ac .PdfObjectStreams );_gacga {_cdfdca ._ggbab [_fbded ]=crossReference {Type :1,Offset :_cdfdca ._edabb ,Generation :_cbfdf .GenerationNumber };
_eecgg :=_d .Sprintf ("\u0025d\u0020\u0030\u0020\u006f\u0062\u006a\n",_fbded );var _fagc []string ;var _eggef string ;var _eaebaa int64 ;for _cddab ,_eaaf :=range _cbfdf .Elements (){_gfeaf ,_ddegb :=_eaaf .(*_ac .PdfIndirectObject );if !_ddegb {_gd .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",_fbded ,_eaaf );
continue ;};_cedfa :=_gfeaf .PdfObject .WriteString ()+"\u0020";_eggef =_eggef +_cedfa ;_fagc =append (_fagc ,_d .Sprintf ("\u0025\u0064\u0020%\u0064",_gfeaf .ObjectNumber ,_eaebaa ));_cdfdca ._ggbab [int (_gfeaf .ObjectNumber )]=crossReference {Type :2,ObjectNumber :_fbded ,Index :_cddab };
_eaebaa =_eaebaa +int64 (len ([]byte (_cedfa )));};_beabdf :=_fg .Join (_fagc ,"\u0020")+"\u0020";_cdace :=_ac .NewFlateEncoder ();_dcbb :=_cdace .MakeStreamDict ();_dcbb .Set (_ac .PdfObjectName ("\u0054\u0079\u0070\u0065"),_ac .MakeName ("\u004f\u0062\u006a\u0053\u0074\u006d"));
_fcdbd :=int64 (_cbfdf .Len ());_dcbb .Set (_ac .PdfObjectName ("\u004e"),_ac .MakeInteger (_fcdbd ));_bbbgga :=int64 (len (_beabdf ));_dcbb .Set (_ac .PdfObjectName ("\u0046\u0069\u0072s\u0074"),_ac .MakeInteger (_bbbgga ));_gdccb ,_ :=_cdace .EncodeBytes ([]byte (_beabdf +_eggef ));
_adaaa :=int64 (len (_gdccb ));_dcbb .Set (_ac .PdfObjectName ("\u004c\u0065\u006e\u0067\u0074\u0068"),_ac .MakeInteger (_adaaa ));_eecgg +=_dcbb .WriteString ();_eecgg +="\u000a\u0073\u0074\u0072\u0065\u0061\u006d\u000a";_cdfdca .writeString (_eecgg );
_cdfdca .writeBytes (_gdccb );_cdfdca .writeString ("\u000ae\u006ed\u0073\u0074\u0072\u0065\u0061m\u000a\u0065n\u0064\u006f\u0062\u006a\u000a");return ;};_cdfdca .writeString (_dgadf .WriteString ());};func (_cacefb *LTV )generateVRIKey (_gbddf *PdfSignature )(string ,error ){_eebea ,_dbecb :=_gfgdad (_gbddf .Contents .Bytes ());
if _dbecb !=nil {return "",_dbecb ;};return _fg .ToUpper (_f .EncodeToString (_eebea )),nil ;};
// String returns a string that describes `font`.
func (_adcda *PdfFont )String ()string {_faagg :="";if _adcda ._gegb .Encoder ()!=nil {_faagg =_adcda ._gegb .Encoder ().String ();};return _d .Sprintf ("\u0046\u004f\u004e\u0054\u007b\u0025\u0054\u0020\u0025s\u0020\u0025\u0073\u007d",_adcda ._gegb ,_adcda .baseFields ().coreString (),_faagg );
};func _adggc (_bbdf *_ac .PdfObjectDictionary )(*PdfFieldText ,error ){_cegfe :=&PdfFieldText {};_cegfe .DA ,_ =_ac .GetString (_bbdf .Get ("\u0044\u0041"));_cegfe .Q ,_ =_ac .GetInt (_bbdf .Get ("\u0051"));_cegfe .DS ,_ =_ac .GetString (_bbdf .Get ("\u0044\u0053"));
_cegfe .RV =_bbdf .Get ("\u0052\u0056");_cegfe .MaxLen ,_ =_ac .GetInt (_bbdf .Get ("\u004d\u0061\u0078\u004c\u0065\u006e"));return _cegfe ,nil ;};func (_acdc *pdfFontType0 )bytesToCharcodes (_gede []byte )([]_gf .CharCode ,bool ){if _acdc ._gcaa ==nil {return nil ,false ;
};_egfg ,_abeaf :=_acdc ._gcaa .BytesToCharcodes (_gede );if !_abeaf {return nil ,false ;};_dbgbf :=make ([]_gf .CharCode ,len (_egfg ));for _gfgg ,_abced :=range _egfg {_dbgbf [_gfgg ]=_gf .CharCode (_abced );};return _dbgbf ,true ;};
// Encoder returns the font's text encoder.
func (_ceef pdfFontType3 )Encoder ()_gf .TextEncoder {return _ceef ._ebcbd };
// IsShading specifies if the pattern is a shading pattern.
func (_edabg *PdfPattern )IsShading ()bool {return _edabg .PatternType ==2};
// Set sets the colorspace corresponding to key. Add to Names if not set.
func (_cfegc *PdfPageResourcesColorspaces )Set (key _ac .PdfObjectName ,val PdfColorspace ){if _ ,_eeaaa :=_cfegc .Colorspaces [string (key )];!_eeaaa {_cfegc .Names =append (_cfegc .Names ,string (key ));};_cfegc .Colorspaces [string (key )]=val ;};
// ToPdfObject implements interface PdfModel.
func (_eca *PdfAnnotationLine )ToPdfObject ()_ac .PdfObject {_eca .PdfAnnotation .ToPdfObject ();_fdbc :=_eca ._fegd ;_efdf :=_fdbc .PdfObject .(*_ac .PdfObjectDictionary );_eca .PdfAnnotationMarkup .appendToPdfDictionary (_efdf );_efdf .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ac .MakeName ("\u004c\u0069\u006e\u0065"));
_efdf .SetIfNotNil ("\u004c",_eca .L );_efdf .SetIfNotNil ("\u0042\u0053",_eca .BS );_efdf .SetIfNotNil ("\u004c\u0045",_eca .LE );_efdf .SetIfNotNil ("\u0049\u0043",_eca .IC );_efdf .SetIfNotNil ("\u004c\u004c",_eca .LL );_efdf .SetIfNotNil ("\u004c\u004c\u0045",_eca .LLE );
_efdf .SetIfNotNil ("\u0043\u0061\u0070",_eca .Cap );_efdf .SetIfNotNil ("\u0049\u0054",_eca .IT );_efdf .SetIfNotNil ("\u004c\u004c\u004f",_eca .LLO );_efdf .SetIfNotNil ("\u0043\u0050",_eca .CP );_efdf .SetIfNotNil ("\u004de\u0061\u0073\u0075\u0072\u0065",_eca .Measure );
_efdf .SetIfNotNil ("\u0043\u004f",_eca .CO );return _fdbc ;};
// ToInteger convert to an integer format.
func (_fecd *PdfColorDeviceRGB )ToInteger (bits int )[3]uint32 {_caffb :=_da .Pow (2,float64 (bits ))-1;return [3]uint32 {uint32 (_caffb *_fecd .R ()),uint32 (_caffb *_fecd .G ()),uint32 (_caffb *_fecd .B ())};};
// UpdatePage updates the `page` in the new revision if it has changed.
func (_cebc *PdfAppender )UpdatePage (page *PdfPage ){_cebc .updateObjectsDeep (page .ToPdfObject (),nil )};func (_fcfae *PdfShading )getShadingDict ()(*_ac .PdfObjectDictionary ,error ){_bdabg :=_fcfae ._dffbg ;if _bafdde ,_ebaea :=_bdabg .(*_ac .PdfIndirectObject );
_ebaea {_gfege ,_caccd :=_bafdde .PdfObject .(*_ac .PdfObjectDictionary );if !_caccd {return nil ,_ac .ErrTypeError ;};return _gfege ,nil ;}else if _ceeba ,_fded :=_bdabg .(*_ac .PdfObjectStream );_fded {return _ceeba .PdfObjectDictionary ,nil ;}else if _bffe ,_agac :=_bdabg .(*_ac .PdfObjectDictionary );
_agac {return _bffe ,nil ;}else {_gd .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 ,_ac .ErrTypeError ;
};};
// NewPdfAnnotationSound returns a new sound annotation.
func NewPdfAnnotationSound ()*PdfAnnotationSound {_dda :=NewPdfAnnotation ();_cbbd :=&PdfAnnotationSound {};_cbbd .PdfAnnotation =_dda ;_cbbd .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_dda .SetContext (_cbbd );return _cbbd ;};
// 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 (_aaeac *PdfFont )GetRuneMetrics (r rune )(CharMetrics ,bool ){_ddadf :=_aaeac .actualFont ();if _ddadf ==nil {_gd .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",_aaeac ._gegb );
return _fda .CharMetrics {},false ;};if _afecb ,_adecd :=_ddadf .GetRuneMetrics (r );_adecd {return _afecb ,true ;};if _abac ,_cdba :=_aaeac .GetFontDescriptor ();_cdba ==nil &&_abac !=nil {return _fda .CharMetrics {Wx :_abac ._fffd },true ;};_gd .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",_aaeac );
return _fda .CharMetrics {},false ;};
// SetFillImage attach a model.Image to push button.
func (_gafgg *PdfFieldButton )SetFillImage (image *Image ){if _gafgg .IsPush (){_gafgg ._aegde =image ;};};
// ToInteger convert to an integer format.
func (_ceff *PdfColorDeviceCMYK )ToInteger (bits int )[4]uint32 {_dded :=_da .Pow (2,float64 (bits ))-1;return [4]uint32 {uint32 (_dded *_ceff .C ()),uint32 (_dded *_ceff .M ()),uint32 (_dded *_ceff .Y ()),uint32 (_dded *_ceff .K ())};};
// String returns a string that describes `base`.
func (_fgbef fontCommon )String ()string {return _d .Sprintf ("\u0046\u004f\u004e\u0054\u007b\u0025\u0073\u007d",_fgbef .coreString ());};
// PdfAnnotationStrikeOut represents StrikeOut annotations.
// (Section 12.5.6.10).
type PdfAnnotationStrikeOut struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _ac .PdfObject ;};
// NewPdfAppenderWithOpts creates a new Pdf appender from a Pdf reader with options.
func NewPdfAppenderWithOpts (reader *PdfReader ,opts *ReaderOpts ,encryptOptions *EncryptOptions )(*PdfAppender ,error ){_gbbe :=&PdfAppender {_dcaa :reader ._fafc ,Reader :reader ,_bbbg :reader ._eebeg ,_gbe :reader ._cccb };_fcgd ,_fced :=_gbbe ._dcaa .Seek (0,_adc .SeekEnd );
if _fced !=nil {return nil ,_fced ;};_gbbe ._fcef =_fcgd ;if _ ,_fced =_gbbe ._dcaa .Seek (0,_adc .SeekStart );_fced !=nil {return nil ,_fced ;};_gbbe ._cbdcd ,_fced =NewPdfReaderWithOpts (_gbbe ._dcaa ,opts );if _fced !=nil {return nil ,_fced ;};for _ ,_cbgb :=range _gbbe .Reader .GetObjectNums (){if _gbbe ._dgfe < _cbgb {_gbbe ._dgfe =_cbgb ;
};};_gbbe ._gdg =_gbbe ._bbbg .GetXrefTable ();_gbbe ._adgf =_gbbe ._bbbg .GetXrefOffset ();_gbbe ._abda =append (_gbbe ._abda ,_gbbe ._cbdcd .PageList ...);_gbbe ._eddbd =make (map[_ac .PdfObject ]struct{});_gbbe ._degfa =make (map[_ac .PdfObject ]int64 );
_gbbe ._fbfga =make (map[_ac .PdfObject ]struct{});_gbbe ._cabc =_gbbe ._cbdcd .AcroForm ;_gbbe ._acaf =_gbbe ._cbdcd .DSS ;if opts !=nil {_gbbe ._abgb =opts .Password ;};if encryptOptions !=nil {_gbbe ._abea =encryptOptions ;};return _gbbe ,nil ;};
// NewPdfAnnotationStamp returns a new stamp annotation.
func NewPdfAnnotationStamp ()*PdfAnnotationStamp {_ccgg :=NewPdfAnnotation ();_beeae :=&PdfAnnotationStamp {};_beeae .PdfAnnotation =_ccgg ;_beeae .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_ccgg .SetContext (_beeae );return _beeae ;};
// ParsePdfObject parses input pdf object into given output intent.
func (_fffae *PdfOutputIntent )ParsePdfObject (object _ac .PdfObject )error {_dccdc ,_cfeca :=_ac .GetDict (object );if !_cfeca {_gd .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 _af .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");
};_fffae ._egeec =_dccdc ;_fffae .Type ,_ =_dccdc .GetString ("\u0054\u0079\u0070\u0065");_fegb ,_cfeca :=_dccdc .GetString ("\u0053");if _cfeca {switch _fegb {case "\u0047T\u0053\u005f\u0050\u0044\u0046\u00411":_fffae .S =PdfOutputIntentTypeA1 ;case "\u0047T\u0053\u005f\u0050\u0044\u0046\u00412":_fffae .S =PdfOutputIntentTypeA2 ;
case "\u0047T\u0053\u005f\u0050\u0044\u0046\u00413":_fffae .S =PdfOutputIntentTypeA3 ;case "\u0047T\u0053\u005f\u0050\u0044\u0046\u00414":_fffae .S =PdfOutputIntentTypeA4 ;case "\u0047\u0054\u0053\u005f\u0050\u0044\u0046\u0058":_fffae .S =PdfOutputIntentTypeX ;
};};_fffae .OutputCondition ,_ =_dccdc .GetString ("\u004fu\u0074p\u0075\u0074\u0043\u006f\u006e\u0064\u0069\u0074\u0069\u006f\u006e");_fffae .OutputConditionIdentifier ,_ =_dccdc .GetString ("\u004fu\u0074\u0070\u0075\u0074C\u006f\u006e\u0064\u0069\u0074i\u006fn\u0049d\u0065\u006e\u0074\u0069\u0066\u0069\u0065r");
_fffae .RegistryName ,_ =_dccdc .GetString ("\u0052\u0065\u0067i\u0073\u0074\u0072\u0079\u004e\u0061\u006d\u0065");_fffae .Info ,_ =_dccdc .GetString ("\u0049\u006e\u0066\u006f");if _ccba ,_afcg :=_ac .GetStream (_dccdc .Get ("\u0044\u0065\u0073\u0074\u004f\u0075\u0074\u0070\u0075\u0074\u0050\u0072o\u0066\u0069\u006c\u0065"));
_afcg {_fffae .ColorComponents ,_ =_ac .GetIntVal (_ccba .Get ("\u004e"));_edae ,_aacag :=_ac .DecodeStream (_ccba );if _aacag !=nil {return _aacag ;};_fffae .DestOutputProfile =_edae ;};return nil ;};
// ToPdfObject implements interface PdfModel.
func (_cfbab *PdfSignature )ToPdfObject ()_ac .PdfObject {_fffdba :=_cfbab ._bfgde ;var _fadfed *_ac .PdfObjectDictionary ;if _ggbbf ,_babgb :=_fffdba .PdfObject .(*pdfSignDictionary );_babgb {_fadfed =_ggbbf .PdfObjectDictionary ;}else {_fadfed =_fffdba .PdfObject .(*_ac .PdfObjectDictionary );
};_fadfed .SetIfNotNil ("\u0054\u0079\u0070\u0065",_cfbab .Type );_fadfed .SetIfNotNil ("\u0046\u0069\u006c\u0074\u0065\u0072",_cfbab .Filter );_fadfed .SetIfNotNil ("\u0053u\u0062\u0046\u0069\u006c\u0074\u0065r",_cfbab .SubFilter );_fadfed .SetIfNotNil ("\u0042y\u0074\u0065\u0052\u0061\u006e\u0067e",_cfbab .ByteRange );
_fadfed .SetIfNotNil ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073",_cfbab .Contents );_fadfed .SetIfNotNil ("\u0043\u0065\u0072\u0074",_cfbab .Cert );_fadfed .SetIfNotNil ("\u004e\u0061\u006d\u0065",_cfbab .Name );_fadfed .SetIfNotNil ("\u0052\u0065\u0061\u0073\u006f\u006e",_cfbab .Reason );
_fadfed .SetIfNotNil ("\u004d",_cfbab .M );_fadfed .SetIfNotNil ("\u0052e\u0066\u0065\u0072\u0065\u006e\u0063e",_cfbab .Reference );_fadfed .SetIfNotNil ("\u0043h\u0061\u006e\u0067\u0065\u0073",_cfbab .Changes );_fadfed .SetIfNotNil ("C\u006f\u006e\u0074\u0061\u0063\u0074\u0049\u006e\u0066\u006f",_cfbab .ContactInfo );
return _fffdba ;};
// ToPdfObject implements interface PdfModel.
func (_cagb *PdfAnnotation3D )ToPdfObject ()_ac .PdfObject {_cagb .PdfAnnotation .ToPdfObject ();_dcfg :=_cagb ._fegd ;_fddf :=_dcfg .PdfObject .(*_ac .PdfObjectDictionary );_fddf .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ac .MakeName ("\u0033\u0044"));
_fddf .SetIfNotNil ("\u0033\u0044\u0044",_cagb .T3DD );_fddf .SetIfNotNil ("\u0033\u0044\u0056",_cagb .T3DV );_fddf .SetIfNotNil ("\u0033\u0044\u0041",_cagb .T3DA );_fddf .SetIfNotNil ("\u0033\u0044\u0049",_cagb .T3DI );_fddf .SetIfNotNil ("\u0033\u0044\u0042",_cagb .T3DB );
return _dcfg ;};
// PdfFont represents an underlying font structure which can be of type:
// - Type0
// - Type1
// - TrueType
// etc.
type PdfFont struct{_gegb pdfFont };
// 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 _adc .ReadSeeker ,opts *ReaderOpts )(*PdfReader ,error ){const _ggefg ="\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 _gaada (rs ,opts ,true ,_ggefg );
};
// ToPdfObject returns the PDF representation of the shading dictionary.
func (_egdbc *PdfShadingType6 )ToPdfObject ()_ac .PdfObject {_egdbc .PdfShading .ToPdfObject ();_cffdb ,_fecb :=_egdbc .getShadingDict ();if _fecb !=nil {_gd .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 _egdbc .BitsPerCoordinate !=nil {_cffdb .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065",_egdbc .BitsPerCoordinate );};if _egdbc .BitsPerComponent !=nil {_cffdb .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_egdbc .BitsPerComponent );
};if _egdbc .BitsPerFlag !=nil {_cffdb .Set ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067",_egdbc .BitsPerFlag );};if _egdbc .Decode !=nil {_cffdb .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_egdbc .Decode );};if _egdbc .Function !=nil {if len (_egdbc .Function )==1{_cffdb .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_egdbc .Function [0].ToPdfObject ());
}else {_debac :=_ac .MakeArray ();for _ ,_aagg :=range _egdbc .Function {_debac .Append (_aagg .ToPdfObject ());};_cffdb .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_debac );};};return _egdbc ._dffbg ;};
// NewPdfColorPattern returns an empty color pattern.
func NewPdfColorPattern ()*PdfColorPattern {_ccggd :=&PdfColorPattern {};return _ccggd };
// Items returns all children outline items.
func (_bfgce *OutlineItem )Items ()[]*OutlineItem {return _bfgce .Entries };
// ToPdfObject returns the PDF representation of the outline tree node.
func (_efccb *PdfOutlineTreeNode )ToPdfObject ()_ac .PdfObject {return _efccb .GetContext ().ToPdfObject ();};
// GetNumComponents returns the number of input color components, i.e. that are input to the tint transform.
func (_dafe *PdfColorspaceDeviceN )GetNumComponents ()int {return _dafe .ColorantNames .Len ()};
// AcroFormRepairOptions contains options for rebuilding the AcroForm.
type AcroFormRepairOptions struct{};
// GetCatalogStructTreeRoot gets the catalog StructTreeRoot object.
func (_becdfe *PdfReader )GetCatalogStructTreeRoot ()(_ac .PdfObject ,bool ){if _becdfe ._bdfc ==nil {return nil ,false ;};_eddeg :=_becdfe ._bdfc .Get ("\u0053\u0074\u0072\u0075\u0063\u0074\u0054\u0072\u0065e\u0052\u006f\u006f\u0074");return _eddeg ,_eddeg !=nil ;
};func (_ddcedf *PdfWriter )writeTrailer (_eadge int ){_ddcedf .writeString ("\u0078\u0072\u0065\u0066\u000d\u000a");for _dfaf :=0;_dfaf <=_eadge ;{for ;_dfaf <=_eadge ;_dfaf ++{_fadad ,_caeba :=_ddcedf ._ggbab [_dfaf ];if _caeba &&(!_ddcedf ._cfgc ||_ddcedf ._cfgc &&(_fadad .Type ==1&&_fadad .Offset >=_ddcedf ._gccgde ||_fadad .Type ==0)){break ;
};};var _adfcb int ;for _adfcb =_dfaf +1;_adfcb <=_eadge ;_adfcb ++{_cdedc ,_fgcce :=_ddcedf ._ggbab [_adfcb ];if _fgcce &&(!_ddcedf ._cfgc ||_ddcedf ._cfgc &&(_cdedc .Type ==1&&_cdedc .Offset > _ddcedf ._gccgde )){continue ;};break ;};_dcdfbd :=_d .Sprintf ("\u0025d\u0020\u0025\u0064\u000d\u000a",_dfaf ,_adfcb -_dfaf );
_ddcedf .writeString (_dcdfbd );for _ceee :=_dfaf ;_ceee < _adfcb ;_ceee ++{_dgfcc :=_ddcedf ._ggbab [_ceee ];switch _dgfcc .Type {case 0:_dcdfbd =_d .Sprintf ("\u0025\u002e\u0031\u0030\u0064\u0020\u0025\u002e\u0035d\u0020\u0066\u000d\u000a",0,65535);_ddcedf .writeString (_dcdfbd );
case 1:_dcdfbd =_d .Sprintf ("\u0025\u002e\u0031\u0030\u0064\u0020\u0025\u002e\u0035d\u0020\u006e\u000d\u000a",_dgfcc .Offset ,0);_ddcedf .writeString (_dcdfbd );};};_dfaf =_adfcb +1;};_begfd :=_ac .MakeDict ();_begfd .Set ("\u0049\u006e\u0066\u006f",_ddcedf ._aefadb );
_begfd .Set ("\u0052\u006f\u006f\u0074",_ddcedf ._efcff );_begfd .Set ("\u0053\u0069\u007a\u0065",_ac .MakeInteger (int64 (_eadge +1)));if _ddcedf ._cfgc &&_ddcedf ._bcbcd > 0{_begfd .Set ("\u0050\u0072\u0065\u0076",_ac .MakeInteger (_ddcedf ._bcbcd ));
};if _ddcedf ._bggef !=nil {_begfd .Set ("\u0045n\u0063\u0072\u0079\u0070\u0074",_ddcedf ._ecgdb );};if _ddcedf ._bffaf ==nil &&_ddcedf ._becagg !=""&&_ddcedf ._bcefa !=""{_ddcedf ._bffaf =_ac .MakeArray (_ac .MakeHexString (_ddcedf ._becagg ),_ac .MakeHexString (_ddcedf ._bcefa ));
};if _ddcedf ._bffaf !=nil {_begfd .Set ("\u0049\u0044",_ddcedf ._bffaf );_gd .Log .Trace ("\u0049d\u0073\u003a\u0020\u0025\u0073",_ddcedf ._bffaf );};_ddcedf .writeString ("\u0074\u0072\u0061\u0069\u006c\u0065\u0072\u000a");_ddcedf .writeString (_begfd .WriteString ());
_ddcedf .writeString ("\u000a");};func (_cfee *fontFile )parseASCIIPart (_babf []byte )error {if len (_babf )< 2||string (_babf [:2])!="\u0025\u0021"{return _af .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");
};_gcab ,_efaef ,_dfffd :=_fdcde (_babf );if _dfffd !=nil {return _dfffd ;};_cgfeg :=_caae (_gcab );_cfee ._bedba =_cgfeg ["\u0046\u006f\u006e\u0074\u004e\u0061\u006d\u0065"];if _cfee ._bedba ==""{_gd .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 _efaef !=""{_gccga ,_edda :=_caaca (_efaef );if _edda !=nil {return _edda ;};_fgcdg ,_edda :=_gf .NewCustomSimpleTextEncoder (_gccga ,nil );if _edda !=nil {_gd .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",_edda );
return nil ;};_cfee ._bcdea =_fgcdg ;};return nil ;};
// PdfActionTrans represents a trans action.
type PdfActionTrans struct{*PdfAction ;Trans _ac .PdfObject ;};func (_ffa *PdfReader )newPdfActionRenditionFromDict (_beg *_ac .PdfObjectDictionary )(*PdfActionRendition ,error ){return &PdfActionRendition {R :_beg .Get ("\u0052"),AN :_beg .Get ("\u0041\u004e"),OP :_beg .Get ("\u004f\u0050"),JS :_beg .Get ("\u004a\u0053")},nil ;
};
// PdfOutlineTreeNode contains common fields used by the outline and outline
// item objects.
type PdfOutlineTreeNode struct{_dagfd interface{};First *PdfOutlineTreeNode ;Last *PdfOutlineTreeNode ;};
// ToPdfObject implements interface PdfModel.
func (_egfd *PdfAnnotationWidget )ToPdfObject ()_ac .PdfObject {_egfd .PdfAnnotation .ToPdfObject ();_bdgb :=_egfd ._fegd ;_gadb :=_bdgb .PdfObject .(*_ac .PdfObjectDictionary );if _egfd ._fed {return _bdgb ;};_egfd ._fed =true ;_gadb .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ac .MakeName ("\u0057\u0069\u0064\u0067\u0065\u0074"));
_gadb .SetIfNotNil ("\u0048",_egfd .H );_gadb .SetIfNotNil ("\u004d\u004b",_egfd .MK );_gadb .SetIfNotNil ("\u0041",_egfd .A );_gadb .SetIfNotNil ("\u0041\u0041",_egfd .AA );_gadb .SetIfNotNil ("\u0042\u0053",_egfd .BS );_eaaa :=_egfd .Parent ;if _egfd ._gdb !=nil {if _egfd ._gdb ._bdde ==_egfd ._fegd {_egfd ._gdb .ToPdfObject ();
};_eaaa =_egfd ._gdb .GetContainingPdfObject ();};if _eaaa !=_bdgb {_gadb .SetIfNotNil ("\u0050\u0061\u0072\u0065\u006e\u0074",_eaaa );};_egfd ._fed =false ;return _bdgb ;};
// PdfColorspaceDeviceGray represents a grayscale colorspace.
type PdfColorspaceDeviceGray struct{};func (_gddg *PdfReader )newPdfActionGotoFromDict (_cce *_ac .PdfObjectDictionary )(*PdfActionGoTo ,error ){return &PdfActionGoTo {D :_cce .Get ("\u0044")},nil ;};
// GetCapHeight returns the CapHeight of the font `descriptor`.
func (_addd *PdfFontDescriptor )GetCapHeight ()(float64 ,error ){return _ac .GetNumberAsFloat (_addd .CapHeight );};func (_eagdbb *LTV )getOCSPs (_eaeb []*_fc .Certificate ,_fgfe map[string ]*_fc .Certificate )([][]byte ,error ){_cadeg :=make ([][]byte ,0,len (_eaeb ));
for _ ,_cfddf :=range _eaeb {for _ ,_bffff :=range _cfddf .OCSPServer {if _eagdbb .CertClient .IsCA (_cfddf ){continue ;};_fedac ,_ddgd :=_fgfe [_cfddf .Issuer .CommonName ];if !_ddgd {_gd .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 ;};_ ,_ggade ,_cdfg :=_eagdbb .OCSPClient .MakeRequest (_bffff ,_cfddf ,_fedac );if _cdfg !=nil {_gd .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",_cdfg );
continue ;};_cadeg =append (_cadeg ,_ggade );};};return _cadeg ,nil ;};func (_fbce *PdfAcroForm )filteredFields (_gebe FieldFilterFunc ,_dadg bool )[]*PdfField {if _fbce ==nil {return nil ;};return _gfcbd (_fbce .Fields ,_gebe ,_dadg );};
// SetDSS sets the DSS dictionary (ETSI TS 102 778-4 V1.1.1) of the current
// document revision.
func (_fadc *PdfAppender )SetDSS (dss *DSS ){if dss !=nil {_fadc .updateObjectsDeep (dss .ToPdfObject (),nil );};_fadc ._acaf =dss ;};
// 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 *_ac .PdfObjectName ;Colorants _ac .PdfObject ;Process _ac .PdfObject ;MixingHints _ac .PdfObject ;_gaag *_ac .PdfIndirectObject ;};
// DecodeArray returns the range of color component values in DeviceCMYK colorspace.
func (_gacf *PdfColorspaceDeviceCMYK )DecodeArray ()[]float64 {return []float64 {0.0,1.0,0.0,1.0,0.0,1.0,0.0,1.0};};
// ToPdfObject returns the PDF representation of the shading dictionary.
func (_cgeed *PdfShadingType4 )ToPdfObject ()_ac .PdfObject {_cgeed .PdfShading .ToPdfObject ();_aecca ,_cbafe :=_cgeed .getShadingDict ();if _cbafe !=nil {_gd .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 _cgeed .BitsPerCoordinate !=nil {_aecca .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065",_cgeed .BitsPerCoordinate );};if _cgeed .BitsPerComponent !=nil {_aecca .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_cgeed .BitsPerComponent );
};if _cgeed .BitsPerFlag !=nil {_aecca .Set ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067",_cgeed .BitsPerFlag );};if _cgeed .Decode !=nil {_aecca .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_cgeed .Decode );};if _cgeed .Function !=nil {if len (_cgeed .Function )==1{_aecca .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_cgeed .Function [0].ToPdfObject ());
}else {_bgfea :=_ac .MakeArray ();for _ ,_abbcf :=range _cgeed .Function {_bgfea .Append (_abbcf .ToPdfObject ());};_aecca .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_bgfea );};};return _cgeed ._dffbg ;};
// ToPdfObject implements interface PdfModel.
func (_fgge *PdfAnnotationPolygon )ToPdfObject ()_ac .PdfObject {_fgge .PdfAnnotation .ToPdfObject ();_cgac :=_fgge ._fegd ;_fbaf :=_cgac .PdfObject .(*_ac .PdfObjectDictionary );_fgge .PdfAnnotationMarkup .appendToPdfDictionary (_fbaf );_fbaf .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ac .MakeName ("\u0050o\u006c\u0079\u0067\u006f\u006e"));
_fbaf .SetIfNotNil ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073",_fgge .Vertices );_fbaf .SetIfNotNil ("\u004c\u0045",_fgge .LE );_fbaf .SetIfNotNil ("\u0042\u0053",_fgge .BS );_fbaf .SetIfNotNil ("\u0049\u0043",_fgge .IC );_fbaf .SetIfNotNil ("\u0042\u0045",_fgge .BE );
_fbaf .SetIfNotNil ("\u0049\u0054",_fgge .IT );_fbaf .SetIfNotNil ("\u004de\u0061\u0073\u0075\u0072\u0065",_fgge .Measure );return _cgac ;};func _gabb (_aabf _ac .PdfObject )(*PdfFontDescriptor ,error ){_gdbgb :=&PdfFontDescriptor {};_aabf =_ac .ResolveReference (_aabf );
if _bdcdc ,_feab :=_aabf .(*_ac .PdfIndirectObject );_feab {_gdbgb ._adfg =_bdcdc ;_aabf =_bdcdc .PdfObject ;};_ebbad ,_gcbc :=_ac .GetDict (_aabf );if !_gcbc {_gd .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",_aabf );
return nil ,_ac .ErrTypeError ;};if _cgggd :=_ebbad .Get ("\u0046\u006f\u006e\u0074\u004e\u0061\u006d\u0065");_cgggd !=nil {_gdbgb .FontName =_cgggd ;}else {_gd .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");
};_eaegc ,_ :=_ac .GetName (_gdbgb .FontName );if _dfbca :=_ebbad .Get ("\u0054\u0079\u0070\u0065");_dfbca !=nil {_eebd ,_adgfe :=_dfbca .(*_ac .PdfObjectName );if !_adgfe ||string (*_eebd )!="\u0046\u006f\u006e\u0074\u0044\u0065\u0073\u0063\u0072i\u0070\u0074\u006f\u0072"{_gd .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",_dfbca ,_eaegc ,_gdbgb .FontName );
};}else {_gd .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",_eaegc ,_gdbgb .FontName );
};_gdbgb .FontFamily =_ebbad .Get ("\u0046\u006f\u006e\u0074\u0046\u0061\u006d\u0069\u006c\u0079");_gdbgb .FontStretch =_ebbad .Get ("F\u006f\u006e\u0074\u0053\u0074\u0072\u0065\u0074\u0063\u0068");_gdbgb .FontWeight =_ebbad .Get ("\u0046\u006f\u006e\u0074\u0057\u0065\u0069\u0067\u0068\u0074");
_gdbgb .Flags =_ebbad .Get ("\u0046\u006c\u0061g\u0073");_gdbgb .FontBBox =_ebbad .Get ("\u0046\u006f\u006e\u0074\u0042\u0042\u006f\u0078");_gdbgb .ItalicAngle =_ebbad .Get ("I\u0074\u0061\u006c\u0069\u0063\u0041\u006e\u0067\u006c\u0065");_gdbgb .Ascent =_ebbad .Get ("\u0041\u0073\u0063\u0065\u006e\u0074");
_gdbgb .Descent =_ebbad .Get ("\u0044e\u0073\u0063\u0065\u006e\u0074");_gdbgb .Leading =_ebbad .Get ("\u004ce\u0061\u0064\u0069\u006e\u0067");_gdbgb .CapHeight =_ebbad .Get ("\u0043a\u0070\u0048\u0065\u0069\u0067\u0068t");_gdbgb .XHeight =_ebbad .Get ("\u0058H\u0065\u0069\u0067\u0068\u0074");
_gdbgb .StemV =_ebbad .Get ("\u0053\u0074\u0065m\u0056");_gdbgb .StemH =_ebbad .Get ("\u0053\u0074\u0065m\u0048");_gdbgb .AvgWidth =_ebbad .Get ("\u0041\u0076\u0067\u0057\u0069\u0064\u0074\u0068");_gdbgb .MaxWidth =_ebbad .Get ("\u004d\u0061\u0078\u0057\u0069\u0064\u0074\u0068");
_gdbgb .MissingWidth =_ebbad .Get ("\u004d\u0069\u0073s\u0069\u006e\u0067\u0057\u0069\u0064\u0074\u0068");_gdbgb .FontFile =_ebbad .Get ("\u0046\u006f\u006e\u0074\u0046\u0069\u006c\u0065");_gdbgb .FontFile2 =_ebbad .Get ("\u0046o\u006e\u0074\u0046\u0069\u006c\u00652");
_gdbgb .FontFile3 =_ebbad .Get ("\u0046o\u006e\u0074\u0046\u0069\u006c\u00653");_gdbgb .CharSet =_ebbad .Get ("\u0043h\u0061\u0072\u0053\u0065\u0074");_gdbgb .Style =_ebbad .Get ("\u0053\u0074\u0079l\u0065");_gdbgb .Lang =_ebbad .Get ("\u004c\u0061\u006e\u0067");
_gdbgb .FD =_ebbad .Get ("\u0046\u0044");_gdbgb .CIDSet =_ebbad .Get ("\u0043\u0049\u0044\u0053\u0065\u0074");if _gdbgb .Flags !=nil {if _edbg ,_fbebc :=_ac .GetIntVal (_gdbgb .Flags );_fbebc {_gdbgb ._dbfcb =_edbg ;};};if _gdbgb .MissingWidth !=nil {if _befg ,_dcgge :=_ac .GetNumberAsFloat (_gdbgb .MissingWidth );
_dcgge ==nil {_gdbgb ._fffd =_befg ;};};if _gdbgb .FontFile !=nil {_dcbg ,_cffgdf :=_egga (_gdbgb .FontFile );if _cffgdf !=nil {return _gdbgb ,_cffgdf ;};_gd .Log .Trace ("f\u006f\u006e\u0074\u0046\u0069\u006c\u0065\u003d\u0025\u0073",_dcbg );_gdbgb .fontFile =_dcbg ;
};if _gdbgb .FontFile2 !=nil {_bbcdg ,_edfc :=_fda .NewFontFile2FromPdfObject (_gdbgb .FontFile2 );if _edfc !=nil {return _gdbgb ,_edfc ;};_gd .Log .Trace ("\u0066\u006f\u006et\u0046\u0069\u006c\u0065\u0032\u003d\u0025\u0073",_bbcdg .String ());_gdbgb ._edfg =&_bbcdg ;
};return _gdbgb ,nil ;};func _efgde (_bbebg _ac .PdfObject ,_bfbc *PdfReader )(*OutlineDest ,error ){_fbdcf ,_dfcc :=_ac .GetArray (_bbebg );if !_dfcc {return nil ,_af .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");
};_aeeaad :=_fbdcf .Len ();if _aeeaad < 2{return nil ,_d .Errorf ("\u0069n\u0076\u0061l\u0069\u0064\u0020\u006fu\u0074\u006c\u0069n\u0065\u0020\u0064\u0065\u0073\u0074\u0069\u006e\u0061ti\u006f\u006e\u0020a\u0072\u0072a\u0079\u0020\u006c\u0065\u006e\u0067t\u0068\u003a \u0025\u0064",_aeeaad );
};_fafdga :=&OutlineDest {Mode :"\u0046\u0069\u0074"};_fcdaa :=_fbdcf .Get (0);if _fbed ,_dfbbb :=_ac .GetIndirect (_fcdaa );_dfbbb {if _ ,_dafaf ,_egac :=_bfbc .PageFromIndirectObject (_fbed );_egac ==nil {_fafdga .Page =int64 (_dafaf -1);}else {_gd .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",_fbed );
};_fafdga .PageObj =_fbed ;}else if _ffbef ,_dgbfb :=_ac .GetIntVal (_fcdaa );_dgbfb {if _ffbef >=0&&_ffbef < len (_bfbc .PageList ){_fafdga .PageObj =_bfbc .PageList [_ffbef ].GetPageAsIndirectObject ();}else {_gd .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",_ffbef );
};_fafdga .Page =int64 (_ffbef );}else {return nil ,_d .Errorf ("\u0069\u006eva\u006c\u0069\u0064 \u006f\u0075\u0074\u006cine\u0020de\u0073\u0074\u0069\u006e\u0061\u0074\u0069on\u0020\u0070\u0061\u0067\u0065\u003a\u0020%\u0054",_fcdaa );};_gagb ,_dfcc :=_ac .GetNameVal (_fbdcf .Get (1));
if !_dfcc {_gd .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",_fbdcf .Get (1));
return _fafdga ,nil ;};switch _gagb {case "\u0046\u0069\u0074","\u0046\u0069\u0074\u0042":case "\u0046\u0069\u0074\u0048","\u0046\u0069\u0074B\u0048":if _aeeaad > 2{_fafdga .Y ,_ =_ac .GetNumberAsFloat (_ac .TraceToDirectObject (_fbdcf .Get (2)));};case "\u0046\u0069\u0074\u0056","\u0046\u0069\u0074B\u0056":if _aeeaad > 2{_fafdga .X ,_ =_ac .GetNumberAsFloat (_ac .TraceToDirectObject (_fbdcf .Get (2)));
};case "\u0058\u0059\u005a":if _aeeaad > 4{_fafdga .X ,_ =_ac .GetNumberAsFloat (_ac .TraceToDirectObject (_fbdcf .Get (2)));_fafdga .Y ,_ =_ac .GetNumberAsFloat (_ac .TraceToDirectObject (_fbdcf .Get (3)));_fafdga .Zoom ,_ =_ac .GetNumberAsFloat (_ac .TraceToDirectObject (_fbdcf .Get (4)));
};default:_gagb ="\u0046\u0069\u0074";};_fafdga .Mode =_gagb ;return _fafdga ,nil ;};func (_afga *PdfWriter )writeXRefStreams (_gfdfg int ,_bdcdd int64 )error {_bcfca :=_gfdfg +1;_afga ._ggbab [_bcfca ]=crossReference {Type :1,ObjectNumber :_bcfca ,Offset :_bdcdd };
_cdcgd :=_fd .NewBuffer (nil );_gfbbb :=_ac .MakeArray ();for _defec :=0;_defec <=_gfdfg ;{for ;_defec <=_gfdfg ;_defec ++{_fedacc ,_babdgd :=_afga ._ggbab [_defec ];if _babdgd &&(!_afga ._cfgc ||_afga ._cfgc &&(_fedacc .Type ==1&&_fedacc .Offset >=_afga ._gccgde ||_fedacc .Type ==0)){break ;
};};var _agaage int ;for _agaage =_defec +1;_agaage <=_gfdfg ;_agaage ++{_bacccf ,_dddaa :=_afga ._ggbab [_agaage ];if _dddaa &&(!_afga ._cfgc ||_afga ._cfgc &&(_bacccf .Type ==1&&_bacccf .Offset > _afga ._gccgde )){continue ;};break ;};_gfbbb .Append (_ac .MakeInteger (int64 (_defec )),_ac .MakeInteger (int64 (_agaage -_defec )));
for _agfba :=_defec ;_agfba < _agaage ;_agfba ++{_aceff :=_afga ._ggbab [_agfba ];switch _aceff .Type {case 0:_ee .Write (_cdcgd ,_ee .BigEndian ,byte (0));_ee .Write (_cdcgd ,_ee .BigEndian ,uint32 (0));_ee .Write (_cdcgd ,_ee .BigEndian ,uint16 (0xFFFF));
case 1:_ee .Write (_cdcgd ,_ee .BigEndian ,byte (1));_ee .Write (_cdcgd ,_ee .BigEndian ,uint32 (_aceff .Offset ));_ee .Write (_cdcgd ,_ee .BigEndian ,uint16 (_aceff .Generation ));case 2:_ee .Write (_cdcgd ,_ee .BigEndian ,byte (2));_ee .Write (_cdcgd ,_ee .BigEndian ,uint32 (_aceff .ObjectNumber ));
_ee .Write (_cdcgd ,_ee .BigEndian ,uint16 (_aceff .Index ));};};_defec =_agaage +1;};_bdbcb ,_bggce :=_ac .MakeStream (_cdcgd .Bytes (),_ac .NewFlateEncoder ());if _bggce !=nil {return _bggce ;};_bdbcb .ObjectNumber =int64 (_bcfca );_bdbcb .PdfObjectDictionary .Set ("\u0054\u0079\u0070\u0065",_ac .MakeName ("\u0058\u0052\u0065\u0066"));
_bdbcb .PdfObjectDictionary .Set ("\u0057",_ac .MakeArray (_ac .MakeInteger (1),_ac .MakeInteger (4),_ac .MakeInteger (2)));_bdbcb .PdfObjectDictionary .Set ("\u0049\u006e\u0064e\u0078",_gfbbb );_bdbcb .PdfObjectDictionary .Set ("\u0053\u0069\u007a\u0065",_ac .MakeInteger (int64 (_bcfca +1)));
_bdbcb .PdfObjectDictionary .Set ("\u0049\u006e\u0066\u006f",_afga ._aefadb );_bdbcb .PdfObjectDictionary .Set ("\u0052\u006f\u006f\u0074",_afga ._efcff );if _afga ._cfgc &&_afga ._bcbcd > 0{_bdbcb .PdfObjectDictionary .Set ("\u0050\u0072\u0065\u0076",_ac .MakeInteger (_afga ._bcbcd ));
};if _afga ._bggef !=nil {_bdbcb .Set ("\u0045n\u0063\u0072\u0079\u0070\u0074",_afga ._ecgdb );};if _afga ._bffaf ==nil &&_afga ._becagg !=""&&_afga ._bcefa !=""{_afga ._bffaf =_ac .MakeArray (_ac .MakeHexString (_afga ._becagg ),_ac .MakeHexString (_afga ._bcefa ));
};if _afga ._bffaf !=nil {_gd .Log .Trace ("\u0049d\u0073\u003a\u0020\u0025\u0073",_afga ._bffaf );_bdbcb .Set ("\u0049\u0044",_afga ._bffaf );};_afga .writeObject (int (_bdbcb .ObjectNumber ),_bdbcb );return nil ;};
// GetCharMetrics returns the char metrics for character code `code`.
func (_ebafa pdfFontType0 )GetCharMetrics (code _gf .CharCode )(_fda .CharMetrics ,bool ){if _ebafa .DescendantFont ==nil {_gd .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",_ebafa );
return _fda .CharMetrics {},false ;};return _ebafa .DescendantFont .GetCharMetrics (code );};
// ToPdfObject implements interface PdfModel.
func (_bde *PdfActionGoTo )ToPdfObject ()_ac .PdfObject {_bde .PdfAction .ToPdfObject ();_bdf :=_bde ._eef ;_de :=_bdf .PdfObject .(*_ac .PdfObjectDictionary );_de .SetIfNotNil ("\u0053",_ac .MakeName (string (ActionTypeGoTo )));_de .SetIfNotNil ("\u0044",_bde .D );
return _bdf ;};
// GetPdfInfo returns the PDF info dictionary.
func (_ggcg *PdfReader )GetPdfInfo ()(*PdfInfo ,error ){_afeb ,_ebgfa :=_ggcg .GetTrailer ();if _ebgfa !=nil {return nil ,_ebgfa ;};var _eacef *_ac .PdfObjectDictionary ;_fffded :=_afeb .Get ("\u0049\u006e\u0066\u006f");switch _gccef :=_fffded .(type ){case *_ac .PdfObjectReference :_gccfc :=_gccef ;
_fffded ,_ebgfa =_ggcg .GetIndirectObjectByNumber (int (_gccfc .ObjectNumber ));_fffded =_ac .TraceToDirectObject (_fffded );if _ebgfa !=nil {return nil ,_ebgfa ;};_eacef ,_ =_fffded .(*_ac .PdfObjectDictionary );case *_ac .PdfObjectDictionary :_eacef =_gccef ;
};if _eacef ==nil {return nil ,_af .New ("I\u006e\u0066\u006f\u0020\u0064\u0069c\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u0020\u006eo\u0074\u0020\u0070r\u0065s\u0065\u006e\u0074");};_dbead ,_ebgfa :=NewPdfInfoFromObject (_eacef );if _ebgfa !=nil {return nil ,_ebgfa ;
};return _dbead ,nil ;};var _bfcbg =_ce .MustCompile ("\u005b\\\u006e\u005c\u0072\u005d\u002b");func (_facb *PdfPattern )getDict ()*_ac .PdfObjectDictionary {if _aeade ,_fbab :=_facb ._fddfb .(*_ac .PdfIndirectObject );_fbab {_bcecc ,_aaefg :=_aeade .PdfObject .(*_ac .PdfObjectDictionary );
if !_aaefg {return nil ;};return _bcecc ;}else if _gecfb ,_bgacg :=_facb ._fddfb .(*_ac .PdfObjectStream );_bgacg {return _gecfb .PdfObjectDictionary ;}else {_gd .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",_facb ._fddfb );
return nil ;};};
// GenerateXObjectName generates an unused XObject name that can be used for
// adding new XObjects. Uses format XObj1, XObj2, ...
func (_fcdg *PdfPageResources )GenerateXObjectName ()_ac .PdfObjectName {_edbe :=1;for {_dbcba :=_ac .MakeName (_d .Sprintf ("\u0058\u004f\u0062\u006a\u0025\u0064",_edbe ));if !_fcdg .HasXObjectByName (*_dbcba ){return *_dbcba ;};_edbe ++;};};
// 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 (_cffdbb *PdfWriter )SetOpenAction (dest _ac .PdfObject )error {if dest ==nil ||_ac .IsNullObject (dest ){return nil ;};_cffdbb ._cgfegd .Set ("\u004f\u0070\u0065\u006e\u0041\u0063\u0074\u0069\u006f\u006e",dest );return _cffdbb .addObjects (dest );
};
// SetPdfModifiedDate sets the ModDate attribute of the output PDF.
func SetPdfModifiedDate (modifiedDate _e .Time ){_gcaaba .Lock ();defer _gcaaba .Unlock ();_ggag =modifiedDate ;};
// String returns a string representation of the field.
func (_cfdf *PdfField )String ()string {if _aegee ,_gaafg :=_cfdf .ToPdfObject ().(*_ac .PdfIndirectObject );_gaafg {return _d .Sprintf ("\u0025\u0054\u003a\u0020\u0025\u0073",_cfdf ._edab ,_aegee .PdfObject .String ());};return "";};func (_ddgg *PdfWriter )writeString (_bcbfd string ){if _ddgg ._adace !=nil {return ;
};_bbcaa ,_acfda :=_ddgg ._abad .WriteString (_bcbfd );_ddgg ._edabb +=int64 (_bbcaa );_ddgg ._adace =_acfda ;};
// ToPdfObject recursively builds the Outline tree PDF object.
func (_ffec *PdfOutlineItem )ToPdfObject ()_ac .PdfObject {_bacbd :=_ffec ._gbcec ;_bebba :=_bacbd .PdfObject .(*_ac .PdfObjectDictionary );_bebba .Set ("\u0054\u0069\u0074l\u0065",_ffec .Title );if _ffec .A !=nil {_bebba .Set ("\u0041",_ffec .A );};if _bgeed :=_bebba .Get ("\u0053\u0045");
_bgeed !=nil {_bebba .Remove ("\u0053\u0045");};if _ffec .C !=nil {_bebba .Set ("\u0043",_ffec .C );};if _ffec .Dest !=nil {_bebba .Set ("\u0044\u0065\u0073\u0074",_ffec .Dest );};if _ffec .F !=nil {_bebba .Set ("\u0046",_ffec .F );};if _ffec .Count !=nil {_bebba .Set ("\u0043\u006f\u0075n\u0074",_ac .MakeInteger (*_ffec .Count ));
};if _ffec .Next !=nil {_bebba .Set ("\u004e\u0065\u0078\u0074",_ffec .Next .ToPdfObject ());};if _ffec .First !=nil {_bebba .Set ("\u0046\u0069\u0072s\u0074",_ffec .First .ToPdfObject ());};if _ffec .Prev !=nil {_bebba .Set ("\u0050\u0072\u0065\u0076",_ffec .Prev .GetContext ().GetContainingPdfObject ());
};if _ffec .Last !=nil {_bebba .Set ("\u004c\u0061\u0073\u0074",_ffec .Last .GetContext ().GetContainingPdfObject ());};if _ffec .Parent !=nil {_bebba .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_ffec .Parent .GetContext ().GetContainingPdfObject ());
};return _bacbd ;};
// 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 (_bgebf *PdfReader )GetObjectNums ()[]int {return _bgebf ._eebeg .GetObjectNums ()};
// 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 _ac .StreamEncoder )(*XObjectImage ,error ){if encoder ==nil {encoder =_ac .NewRawEncoder ();};encoder .UpdateParams (img .GetParamsDict ());_ddadc ,_bbgbg :=encoder .EncodeBytes (img .Data );
if _bbgbg !=nil {_gd .Log .Debug ("\u0045\u0072\u0072or\u0020\u0077\u0069\u0074\u0068\u0020\u0065\u006e\u0063\u006f\u0064\u0069\u006e\u0067\u003a\u0020\u0025\u0076",_bbgbg );return nil ,_bbgbg ;};_fbgbb :=NewXObjectImage ();_afbf :=img .Width ;_acbcc :=img .Height ;
_fbgbb .Width =&_afbf ;_fbgbb .Height =&_acbcc ;_cebcg :=img .BitsPerComponent ;_fbgbb .BitsPerComponent =&_cebcg ;_fbgbb .Filter =encoder ;_fbgbb .Stream =_ddadc ;if cs ==nil {if img .ColorComponents ==1{_fbgbb .ColorSpace =NewPdfColorspaceDeviceGray ();
}else if img .ColorComponents ==3{_fbgbb .ColorSpace =NewPdfColorspaceDeviceRGB ();}else if img .ColorComponents ==4{_fbgbb .ColorSpace =NewPdfColorspaceDeviceCMYK ();}else {return nil ,_af .New ("c\u006fl\u006f\u0072\u0073\u0070\u0061\u0063\u0065\u0020u\u006e\u0064\u0065\u0066in\u0065\u0064");
};}else {_fbgbb .ColorSpace =cs ;};if len (img ._ebga )!=0{_faeba :=NewXObjectImage ();_faeba .Filter =encoder ;_bcga ,_affca :=encoder .EncodeBytes (img ._ebga );if _affca !=nil {_gd .Log .Debug ("\u0045\u0072\u0072or\u0020\u0077\u0069\u0074\u0068\u0020\u0065\u006e\u0063\u006f\u0064\u0069\u006e\u0067\u003a\u0020\u0025\u0076",_affca );
return nil ,_affca ;};_faeba .Stream =_bcga ;_faeba .BitsPerComponent =_fbgbb .BitsPerComponent ;_faeba .Width =&img .Width ;_faeba .Height =&img .Height ;_faeba .ColorSpace =NewPdfColorspaceDeviceGray ();_fbgbb .SMask =_faeba .ToPdfObject ();}else {_fbgbb .SMask =xobjIn .SMask ;
_fbgbb .ImageMask =xobjIn .ImageMask ;if _fbgbb .ColorSpace .GetNumComponents ()==1{_eeeea (_fbgbb );};};return _fbgbb ,nil ;};
// Val returns the color value.
func (_acec *PdfColorDeviceGray )Val ()float64 {return float64 (*_acec )};
// ColorFromFloats returns a new PdfColor based on the input slice of color
// components. The slice should contain a single element.
func (_bdge *PdfColorspaceSpecialSeparation )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=1{return nil ,_af .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_aage :=vals [0];_fccg :=[]float64 {_aage };_ccbea ,_aaga :=_bdge .TintTransform .Evaluate (_fccg );
if _aaga !=nil {_gd .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",_aaga );_gd .Log .Trace ("\u0054\u0069\u006e\u0074 t\u0072\u0061\u006e\u0073\u0066\u006f\u0072\u006d\u003a\u0020\u0025\u002b\u0076",_bdge .TintTransform );
return nil ,_aaga ;};_gd .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",_ccbea ,_bdge .AlternateSpace );
_fgdga ,_aaga :=_bdge .AlternateSpace .ColorFromFloats (_ccbea );if _aaga !=nil {_gd .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",_aaga );
return nil ,_aaga ;};return _fgdga ,nil ;};
// B returns the value of the blue component of the color.
func (_aefb *PdfColorDeviceRGB )B ()float64 {return _aefb [2]};
// GetNumComponents returns the number of color components of the colorspace device.
// Returns 3 for an RGB device.
func (_ccea *PdfColorspaceDeviceRGB )GetNumComponents ()int {return 3};
// SetAlpha sets the alpha layer for the image.
func (_fffdb *Image )SetAlpha (alpha []byte ){_fffdb ._ebga =alpha };
// Initialize initializes the PdfSignature.
func (_bfggd *PdfSignature )Initialize ()error {if _bfggd .Handler ==nil {return _af .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 _bfggd .Handler .InitSignature (_bfggd );};
// SetColorSpace sets `r` colorspace object to `colorspace`.
func (_bcfba *PdfPageResources )SetColorSpace (colorspace *PdfPageResourcesColorspaces ){_bcfba ._bdcee =colorspace ;};
// GetXObjectByName gets XObject by name.
func (_baeb *PdfPage )GetXObjectByName (name _ac .PdfObjectName )(_ac .PdfObject ,bool ){_dacgf ,_debb :=_baeb .Resources .XObject .(*_ac .PdfObjectDictionary );if !_debb {return nil ,false ;};if _gaaeg :=_dacgf .Get (name );_gaaeg !=nil {return _gaaeg ,true ;
};return nil ,false ;};
// NewPdfOutlineItem returns an initialized PdfOutlineItem.
func NewPdfOutlineItem ()*PdfOutlineItem {_gedf :=&PdfOutlineItem {_gbcec :_ac .MakeIndirectObject (_ac .MakeDict ())};_gedf ._dagfd =_gedf ;return _gedf ;};
// 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 ,_egeec :_ac .MakeDict ()};
};func _bcfac (_cdcdf _ac .PdfObject )[]*_ac .PdfObjectStream {if _cdcdf ==nil {return nil ;};_ddada ,_gebdf :=_ac .GetArray (_cdcdf );if !_gebdf ||_ddada .Len ()==0{return nil ;};_gbace :=make ([]*_ac .PdfObjectStream ,0,_ddada .Len ());for _ ,_affdb :=range _ddada .Elements (){if _aabgge ,_fabb :=_ac .GetStream (_affdb );
_fabb {_gbace =append (_gbace ,_aabgge );};};return _gbace ;};
// PdfRectangle is a definition of a rectangle.
type PdfRectangle struct{Llx float64 ;Lly float64 ;Urx float64 ;Ury float64 ;};
// ReplacePage replaces the original page to a new page.
func (_eae *PdfAppender )ReplacePage (pageNum int ,page *PdfPage ){_fbef :=pageNum -1;for _fbagg :=range _eae ._abda {if _fbagg ==_fbef {_bbcb :=page .Duplicate ();_gfbe (_bbcb );_eae ._abda [_fbagg ]=_bbcb ;};};};
// GetContainingPdfObject gets the primitive used to parse the color space.
func (_fgaf *PdfColorspaceICCBased )GetContainingPdfObject ()_ac .PdfObject {return _fgaf ._gafd };func _ebgb (_egdg _ac .PdfObject )(*PdfColorspaceSpecialIndexed ,error ){_bbfe :=NewPdfColorspaceSpecialIndexed ();if _gage ,_fgged :=_egdg .(*_ac .PdfIndirectObject );
_fgged {_bbfe ._dbeed =_gage ;};_egdg =_ac .TraceToDirectObject (_egdg );_aeacf ,_abce :=_egdg .(*_ac .PdfObjectArray );if !_abce {return nil ,_d .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _aeacf .Len ()!=4{return nil ,_d .Errorf ("\u0069\u006e\u0064\u0065\u0078\u0065\u0064\u0020\u0043\u0053\u003a\u0020\u0069\u006e\u0076a\u006ci\u0064\u0020\u0061\u0072\u0072\u0061\u0079\u0020\u006c\u0065\u006e\u0067\u0074\u0068");
};_egdg =_aeacf .Get (0);_dafcg ,_abce :=_egdg .(*_ac .PdfObjectName );if !_abce {return nil ,_d .Errorf ("\u0069n\u0064\u0065\u0078\u0065\u0064\u0020\u0043\u0053\u003a\u0020\u0069n\u0076\u0061\u006c\u0069\u0064\u0020\u006e\u0061\u006d\u0065");};if *_dafcg !="\u0049n\u0064\u0065\u0078\u0065\u0064"{return nil ,_d .Errorf ("\u0069\u006e\u0064\u0065xe\u0064\u0020\u0043\u0053\u003a\u0020\u0077\u0072\u006f\u006e\u0067\u0020\u006e\u0061m\u0065");
};_egdg =_aeacf .Get (1);_ddacb ,_bbbgf :=DetermineColorspaceNameFromPdfObject (_egdg );if _bbbgf !=nil {return nil ,_bbbgf ;};if _ddacb =="\u0049n\u0064\u0065\u0078\u0065\u0064"||_ddacb =="\u0050a\u0074\u0074\u0065\u0072\u006e"{_gd .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",_ddacb );
return nil ,_gbda ;};_cbcf ,_bbbgf :=NewPdfColorspaceFromPdfObject (_egdg );if _bbbgf !=nil {return nil ,_bbbgf ;};_bbfe .Base =_cbcf ;_egdg =_aeacf .Get (2);_fcbb ,_bbbgf :=_ac .GetNumberAsInt64 (_egdg );if _bbbgf !=nil {return nil ,_bbbgf ;};if _fcbb > 255{return nil ,_d .Errorf ("\u0069n\u0064\u0065\u0078\u0065d\u0020\u0043\u0053\u003a\u0020I\u006ev\u0061l\u0069\u0064\u0020\u0068\u0069\u0076\u0061l");
};_bbfe .HiVal =int (_fcbb );_egdg =_aeacf .Get (3);_bbfe .Lookup =_egdg ;_egdg =_ac .TraceToDirectObject (_egdg );var _effdb []byte ;if _ggee ,_cbdea :=_egdg .(*_ac .PdfObjectString );_cbdea {_effdb =_ggee .Bytes ();_gd .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",_effdb );
}else if _agbf ,_edeg :=_egdg .(*_ac .PdfObjectStream );_edeg {_gd .Log .Trace ("\u0049n\u0064e\u0078\u0065\u0064\u0020\u0073t\u0072\u0065a\u006d\u003a\u0020\u0025\u0073",_egdg .String ());_gd .Log .Trace ("\u0045\u006e\u0063\u006fde\u0064\u0020\u0028\u0025\u0064\u0029\u0020\u003a\u0020\u0025\u0023\u0020\u0078",len (_agbf .Stream ),_agbf .Stream );
_bdab ,_dccce :=_ac .DecodeStream (_agbf );if _dccce !=nil {return nil ,_dccce ;};_gd .Log .Trace ("\u0044e\u0063o\u0064\u0065\u0064\u0020\u0028%\u0064\u0029 \u003a\u0020\u0025\u0020\u0058",len (_bdab ),_bdab );_effdb =_bdab ;}else {_gd .Log .Debug ("\u0054\u0079\u0070\u0065\u003a\u0020\u0025\u0054",_egdg );
return nil ,_d .Errorf ("\u0069\u006e\u0064\u0065\u0078\u0065\u0064\u0020\u0043\u0053\u003a\u0020\u0049\u006e\u0076a\u006ci\u0064\u0020\u0074\u0061\u0062\u006c\u0065\u0020\u0066\u006f\u0072\u006d\u0061\u0074");};if len (_effdb )< _bbfe .Base .GetNumComponents ()*(_bbfe .HiVal +1){_gd .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");
_gd .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 (_effdb ),_bbfe .Base .GetNumComponents (),_bbfe .HiVal );
}else {_effdb =_effdb [:_bbfe .Base .GetNumComponents ()*(_bbfe .HiVal +1)];};_bbfe ._dagf =_effdb ;return _bbfe ,nil ;};
// ColorFromFloats returns a new PdfColor based on the input slice of color
// components.
func (_ffgee *PdfColorspaceICCBased )ColorFromFloats (vals []float64 )(PdfColor ,error ){if _ffgee .Alternate ==nil {if _ffgee .N ==1{_befc :=NewPdfColorspaceDeviceGray ();return _befc .ColorFromFloats (vals );}else if _ffgee .N ==3{_bfae :=NewPdfColorspaceDeviceRGB ();
return _bfae .ColorFromFloats (vals );}else if _ffgee .N ==4{_ecgbg :=NewPdfColorspaceDeviceCMYK ();return _ecgbg .ColorFromFloats (vals );}else {return nil ,_af .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 _ffgee .Alternate .ColorFromFloats (vals );};func (_ccgb *PdfReader )newPdfActionHideFromDict (_ceb *_ac .PdfObjectDictionary )(*PdfActionHide ,error ){return &PdfActionHide {T :_ceb .Get ("\u0054"),H :_ceb .Get ("\u0048")},nil ;};
// GetFillImage get attached model.Image in push button.
func (_baac *PdfFieldButton )GetFillImage ()*Image {if _baac .IsPush (){return _baac ._aegde ;};return nil ;};
// PdfAnnotationLine represents Line annotations.
// (Section 12.5.6.7).
type PdfAnnotationLine struct{*PdfAnnotation ;*PdfAnnotationMarkup ;L _ac .PdfObject ;BS _ac .PdfObject ;LE _ac .PdfObject ;IC _ac .PdfObject ;LL _ac .PdfObject ;LLE _ac .PdfObject ;Cap _ac .PdfObject ;IT _ac .PdfObject ;LLO _ac .PdfObject ;CP _ac .PdfObject ;
Measure _ac .PdfObject ;CO _ac .PdfObject ;};
// 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 (_eefdg *PdfSignature ,_gebdb Hasher ,_eagcbb SignatureHandlerDocMDPParams )(SignatureValidationResult ,error );};
// PdfAnnotationStamp represents Stamp annotations.
// (Section 12.5.6.12).
type PdfAnnotationStamp struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Name _ac .PdfObject ;};
// ToPdfObject returns the button field dictionary within an indirect object.
func (_edgfb *PdfFieldButton )ToPdfObject ()_ac .PdfObject {_edgfb .PdfField .ToPdfObject ();_gbac :=_edgfb ._bdde ;_fedf :=_gbac .PdfObject .(*_ac .PdfObjectDictionary );_fedf .Set ("\u0046\u0054",_ac .MakeName ("\u0042\u0074\u006e"));if _edgfb .Opt !=nil {_fedf .Set ("\u004f\u0070\u0074",_edgfb .Opt );
};return _gbac ;};func (_bbgf *DSS )add (_cfae *[]*_ac .PdfObjectStream ,_bcff map[string ]*_ac .PdfObjectStream ,_aabda [][]byte )([]*_ac .PdfObjectStream ,error ){_fabe :=make ([]*_ac .PdfObjectStream ,0,len (_aabda ));for _ ,_bgcfb :=range _aabda {_ecf ,_feef :=_gfgdad (_bgcfb );
if _feef !=nil {return nil ,_feef ;};_edgf ,_cgbc :=_bcff [string (_ecf )];if !_cgbc {_edgf ,_feef =_ac .MakeStream (_bgcfb ,_ac .NewRawEncoder ());if _feef !=nil {return nil ,_feef ;};_bcff [string (_ecf )]=_edgf ;*_cfae =append (*_cfae ,_edgf );};_fabe =append (_fabe ,_edgf );
};return _fabe ,nil ;};func _ddgea (_eadf *PdfField ,_bfec _ac .PdfObject )error {switch _eadf .GetContext ().(type ){case *PdfFieldText :switch _eccf :=_bfec .(type ){case *_ac .PdfObjectName :_aaaaf :=_eccf ;_gd .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",_aaaaf .String ());
_eadf .V =_ac .MakeEncodedString (_eccf .String (),true );case *_ac .PdfObjectString :_eadf .V =_ac .MakeEncodedString (_eccf .String (),true );default:_gd .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",_eccf ,_eccf );
};case *PdfFieldButton :switch _bfec .(type ){case *_ac .PdfObjectName :if len (_bfec .String ())> 0{_eadf .V =_bfec ;_cgffe (_eadf ,_bfec );};case *_ac .PdfObjectString :if len (_bfec .String ())> 0{_eadf .V =_ac .MakeName (_bfec .String ());_cgffe (_eadf ,_eadf .V );
};default:_gd .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",_eadf .PartialName (),_bfec );_eadf .V =_bfec ;};case *PdfFieldChoice :switch _bfec .(type ){case *_ac .PdfObjectName :if len (_bfec .String ())> 0{_eadf .V =_ac .MakeString (_bfec .String ());
_cgffe (_eadf ,_bfec );};case *_ac .PdfObjectString :if len (_bfec .String ())> 0{_eadf .V =_bfec ;_cgffe (_eadf ,_ac .MakeName (_bfec .String ()));};default:_gd .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",_eadf .PartialName (),_bfec );
_eadf .V =_bfec ;};case *PdfFieldSignature :_gd .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",_eadf .PartialName (),_bfec );
};return nil ;};
// GetAction returns the PDF action for the annotation link.
func (_gba *PdfAnnotationLink )GetAction ()(*PdfAction ,error ){if _gba ._abaf !=nil {return _gba ._abaf ,nil ;};if _gba .A ==nil {return nil ,nil ;};if _gba ._bede ==nil {return nil ,nil ;};_fad ,_bbg :=_gba ._bede .loadAction (_gba .A );if _bbg !=nil {return nil ,_bbg ;
};_gba ._abaf =_fad ;return _gba ._abaf ,nil ;};
// ToPdfObject implements interface PdfModel.
func (_bbdd *PdfAnnotationScreen )ToPdfObject ()_ac .PdfObject {_bbdd .PdfAnnotation .ToPdfObject ();_ebgf :=_bbdd ._fegd ;_ffge :=_ebgf .PdfObject .(*_ac .PdfObjectDictionary );_ffge .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ac .MakeName ("\u0053\u0063\u0072\u0065\u0065\u006e"));
_ffge .SetIfNotNil ("\u0054",_bbdd .T );_ffge .SetIfNotNil ("\u004d\u004b",_bbdd .MK );_ffge .SetIfNotNil ("\u0041",_bbdd .A );_ffge .SetIfNotNil ("\u0041\u0041",_bbdd .AA );return _ebgf ;};
// IsCheckbox returns true if the button field represents a checkbox, false otherwise.
func (_aggea *PdfFieldButton )IsCheckbox ()bool {return _aggea .GetType ()==ButtonTypeCheckbox };
// PdfInfo holds document information that will overwrite
// document information global variables defined above.
type PdfInfo struct{Title *_ac .PdfObjectString ;Author *_ac .PdfObjectString ;Subject *_ac .PdfObjectString ;Keywords *_ac .PdfObjectString ;Creator *_ac .PdfObjectString ;Producer *_ac .PdfObjectString ;CreationDate *PdfDate ;ModifiedDate *PdfDate ;Trapped *_ac .PdfObjectName ;
_ggfb *_ac .PdfObjectDictionary ;};
// Val returns the value of the color.
func (_beda *PdfColorCalGray )Val ()float64 {return float64 (*_beda )};func (_cbeecb *PdfColorspaceSpecialIndexed )String ()string {return "\u0049n\u0064\u0065\u0078\u0065\u0064";};
// NewOutlineBookmark returns an initialized PdfOutlineItem for a given bookmark title and page.
func NewOutlineBookmark (title string ,page *_ac .PdfIndirectObject )*PdfOutlineItem {_bcgfb :=PdfOutlineItem {};_bcgfb ._dagfd =&_bcgfb ;_bcgfb .Title =_ac .MakeString (title );_egaa :=_ac .MakeArray ();_egaa .Append (page );_egaa .Append (_ac .MakeName ("\u0046\u0069\u0074"));
_bcgfb .Dest =_egaa ;return &_bcgfb ;};var (CourierName =_fda .CourierName ;CourierBoldName =_fda .CourierBoldName ;CourierObliqueName =_fda .CourierObliqueName ;CourierBoldObliqueName =_fda .CourierBoldObliqueName ;HelveticaName =_fda .HelveticaName ;
HelveticaBoldName =_fda .HelveticaBoldName ;HelveticaObliqueName =_fda .HelveticaObliqueName ;HelveticaBoldObliqueName =_fda .HelveticaBoldObliqueName ;SymbolName =_fda .SymbolName ;ZapfDingbatsName =_fda .ZapfDingbatsName ;TimesRomanName =_fda .TimesRomanName ;
TimesBoldName =_fda .TimesBoldName ;TimesItalicName =_fda .TimesItalicName ;TimesBoldItalicName =_fda .TimesBoldItalicName ;);
// ToPdfObject implements interface PdfModel.
func (_fec *PdfActionSound )ToPdfObject ()_ac .PdfObject {_fec .PdfAction .ToPdfObject ();_cf :=_fec ._eef ;_ead :=_cf .PdfObject .(*_ac .PdfObjectDictionary );_ead .SetIfNotNil ("\u0053",_ac .MakeName (string (ActionTypeSound )));_ead .SetIfNotNil ("\u0053\u006f\u0075n\u0064",_fec .Sound );
_ead .SetIfNotNil ("\u0056\u006f\u006c\u0075\u006d\u0065",_fec .Volume );_ead .SetIfNotNil ("S\u0079\u006e\u0063\u0068\u0072\u006f\u006e\u006f\u0075\u0073",_fec .Synchronous );_ead .SetIfNotNil ("\u0052\u0065\u0070\u0065\u0061\u0074",_fec .Repeat );_ead .SetIfNotNil ("\u004d\u0069\u0078",_fec .Mix );
return _cf ;};
// NewPdfAnnotationPopup returns a new popup annotation.
func NewPdfAnnotationPopup ()*PdfAnnotationPopup {_acgf :=NewPdfAnnotation ();_bgf :=&PdfAnnotationPopup {};_bgf .PdfAnnotation =_acgf ;_acgf .SetContext (_bgf );return _bgf ;};
// NewPdfActionRendition returns a new "rendition" action.
func NewPdfActionRendition ()*PdfActionRendition {_gefg :=NewPdfAction ();_cde :=&PdfActionRendition {};_cde .PdfAction =_gefg ;_gefg .SetContext (_cde );return _cde ;};
// ToPdfObject returns the PDF representation of the function.
func (_cfcb *PdfFunctionType0 )ToPdfObject ()_ac .PdfObject {if _cfcb ._gcca ==nil {_cfcb ._gcca =&_ac .PdfObjectStream {};};_ecaa :=_ac .MakeDict ();_ecaa .Set ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065",_ac .MakeInteger (0));
_edee :=&_ac .PdfObjectArray {};for _ ,_bbgeg :=range _cfcb .Domain {_edee .Append (_ac .MakeFloat (_bbgeg ));};_ecaa .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_edee );_cecfb :=&_ac .PdfObjectArray {};for _ ,_ddef :=range _cfcb .Range {_cecfb .Append (_ac .MakeFloat (_ddef ));
};_ecaa .Set ("\u0052\u0061\u006eg\u0065",_cecfb );_cegfbc :=&_ac .PdfObjectArray {};for _ ,_dbda :=range _cfcb .Size {_cegfbc .Append (_ac .MakeInteger (int64 (_dbda )));};_ecaa .Set ("\u0053\u0069\u007a\u0065",_cegfbc );_ecaa .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0053\u0061\u006d\u0070\u006c\u0065",_ac .MakeInteger (int64 (_cfcb .BitsPerSample )));
if _cfcb .Order !=1{_ecaa .Set ("\u004f\u0072\u0064e\u0072",_ac .MakeInteger (int64 (_cfcb .Order )));};_ecaa .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_ac .MakeInteger (int64 (len (_cfcb ._egecf ))));_cfcb ._gcca .Stream =_cfcb ._egecf ;_cfcb ._gcca .PdfObjectDictionary =_ecaa ;
return _cfcb ._gcca ;};type fontCommon struct{_abab string ;_efebg string ;_fgfd string ;_babg _ac .PdfObject ;_acbbb *_eg .CMap ;_bgbdc *PdfFontDescriptor ;_ccega int64 ;};
// ToPdfObject returns the PDF representation of the tiling pattern.
func (_adedg *PdfTilingPattern )ToPdfObject ()_ac .PdfObject {_adedg .PdfPattern .ToPdfObject ();_babde :=_adedg .getDict ();if _adedg .PaintType !=nil {_babde .Set ("\u0050a\u0069\u006e\u0074\u0054\u0079\u0070e",_adedg .PaintType );};if _adedg .TilingType !=nil {_babde .Set ("\u0054\u0069\u006c\u0069\u006e\u0067\u0054\u0079\u0070\u0065",_adedg .TilingType );
};if _adedg .BBox !=nil {_babde .Set ("\u0042\u0042\u006f\u0078",_adedg .BBox .ToPdfObject ());};if _adedg .XStep !=nil {_babde .Set ("\u0058\u0053\u0074e\u0070",_adedg .XStep );};if _adedg .YStep !=nil {_babde .Set ("\u0059\u0053\u0074e\u0070",_adedg .YStep );
};if _adedg .Resources !=nil {_babde .Set ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s",_adedg .Resources .ToPdfObject ());};if _adedg .Matrix !=nil {_babde .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_adedg .Matrix );};return _adedg ._fddfb ;};func _gfada (_gafgb *fontCommon )*pdfFontType0 {return &pdfFontType0 {fontCommon :*_gafgb }};
// L returns the value of the L component of the color.
func (_ccedd *PdfColorLab )L ()float64 {return _ccedd [0]};
// GetOutlineTree returns the outline tree.
func (_ffddd *PdfReader )GetOutlineTree ()*PdfOutlineTreeNode {return _ffddd ._adbfg };func _cgffe (_bagee *PdfField ,_dafda _ac .PdfObject ){for _ ,_edbde :=range _bagee .Annotations {_edbde .AS =_dafda ;_edbde .ToPdfObject ();};};
// GetPrimitiveFromModel returns the primitive object corresponding to the input `model`.
func (_baaac *modelManager )GetPrimitiveFromModel (model PdfModel )_ac .PdfObject {_aega ,_dcfa :=_baaac ._ebgfb [model ];if !_dcfa {return nil ;};return _aega ;};
// NewXObjectImage returns a new XObjectImage.
func NewXObjectImage ()*XObjectImage {_bdcff :=&XObjectImage {};_fdfcb :=&_ac .PdfObjectStream {};_fdfcb .PdfObjectDictionary =_ac .MakeDict ();_bdcff ._gfbdff =_fdfcb ;return _bdcff ;};
// GetRuneMetrics returns the character metrics for the specified rune.
// A bool flag is returned to indicate whether or not the entry was found.
func (_abedd pdfFontType3 )GetRuneMetrics (r rune )(_fda .CharMetrics ,bool ){_cfbe :=_abedd .Encoder ();if _cfbe ==nil {_gd .Log .Debug ("\u004e\u006f\u0020en\u0063\u006f\u0064\u0065\u0072\u0020\u0066\u006f\u0072\u0020\u0066\u006f\u006e\u0074\u0073\u003d\u0025\u0073",_abedd );
return _fda .CharMetrics {},false ;};_addg ,_gcda :=_cfbe .RuneToCharcode (r );if !_gcda {if r !=' '{_gd .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 ,_abedd );
};return _fda .CharMetrics {},false ;};_cfag ,_acfd :=_abedd .GetCharMetrics (_addg );return _cfag ,_acfd ;};
// 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 {_beac ,_fafdg :=NewStandard14Font (basefont );if _fafdg !=nil {panic (_d .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0053\u0074\u0061n\u0064\u0061\u0072\u0064\u0031\u0034\u0046\u006f\u006e\u0074 \u0025\u0023\u0071",basefont ));
};return _beac ;};func _babfa (_cegea *_ac .PdfObjectDictionary )(*PdfShadingType6 ,error ){_gfbgbg :=PdfShadingType6 {};_aaefc :=_cegea .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065");if _aaefc ==nil {_gd .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 ;};_aadd ,_dfac :=_aaefc .(*_ac .PdfObjectInteger );if !_dfac {_gd .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",_aaefc );
return nil ,_ac .ErrTypeError ;};_gfbgbg .BitsPerCoordinate =_aadd ;_aaefc =_cegea .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074");if _aaefc ==nil {_gd .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 ;};_aadd ,_dfac =_aaefc .(*_ac .PdfObjectInteger );if !_dfac {_gd .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",_aaefc );
return nil ,_ac .ErrTypeError ;};_gfbgbg .BitsPerComponent =_aadd ;_aaefc =_cegea .Get ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067");if _aaefc ==nil {_gd .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 ;};_aadd ,_dfac =_aaefc .(*_ac .PdfObjectInteger );if !_dfac {_gd .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",_aaefc );
return nil ,_ac .ErrTypeError ;};_gfbgbg .BitsPerComponent =_aadd ;_aaefc =_cegea .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");if _aaefc ==nil {_gd .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 ;};_ggecg ,_dfac :=_aaefc .(*_ac .PdfObjectArray );if !_dfac {_gd .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",_aaefc );
return nil ,_ac .ErrTypeError ;};_gfbgbg .Decode =_ggecg ;if _fdfgc :=_cegea .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");_fdfgc !=nil {_gfbgbg .Function =[]PdfFunction {};if _aggdgga ,_fbabg :=_fdfgc .(*_ac .PdfObjectArray );_fbabg {for _ ,_ebcgg :=range _aggdgga .Elements (){_eddag ,_gcbcd :=_gcddf (_ebcgg );
if _gcbcd !=nil {_gd .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",_gcbcd );return nil ,_gcbcd ;};_gfbgbg .Function =append (_gfbgbg .Function ,_eddag );
};}else {_gbaef ,_aagfa :=_gcddf (_fdfgc );if _aagfa !=nil {_gd .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",_aagfa );return nil ,_aagfa ;
};_gfbgbg .Function =append (_gfbgbg .Function ,_gbaef );};};return &_gfbgbg ,nil ;};
// String returns string value of output intent for given type
// ISO_19005-2 6.2.3: GTS_PDFA1 value should be used for PDF/A-1, A-2 and A-3 at least
func (_aaefe PdfOutputIntentType )String ()string {switch _aaefe {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";};};const (ButtonTypeCheckbox ButtonType =iota ;
ButtonTypePush ButtonType =iota ;ButtonTypeRadio ButtonType =iota ;);
// NewBorderStyle returns an initialized PdfBorderStyle.
func NewBorderStyle ()*PdfBorderStyle {_fggeb :=&PdfBorderStyle {};return _fggeb };
// NewPdfShadingType3 creates an empty shading type 3 dictionary.
func NewPdfShadingType3 ()*PdfShadingType3 {_abdfa :=&PdfShadingType3 {};_abdfa .PdfShading =&PdfShading {};_abdfa .PdfShading ._dffbg =_ac .MakeIndirectObject (_ac .MakeDict ());_abdfa .PdfShading ._bfga =_abdfa ;return _abdfa ;};
// ToPdfObject returns a PDF object representation of the outline.
func (_cfbb *Outline )ToPdfObject ()_ac .PdfObject {return _cfbb .ToPdfOutline ().ToPdfObject ()};
// PdfAnnotationFreeText represents FreeText annotations.
// (Section 12.5.6.6).
type PdfAnnotationFreeText struct{*PdfAnnotation ;*PdfAnnotationMarkup ;DA _ac .PdfObject ;Q _ac .PdfObject ;RC _ac .PdfObject ;DS _ac .PdfObject ;CL _ac .PdfObject ;IT _ac .PdfObject ;BE _ac .PdfObject ;RD _ac .PdfObject ;BS _ac .PdfObject ;LE _ac .PdfObject ;
};
// ToPdfObject converts the font to a PDF representation.
func (_ceab *pdfFontType0 )ToPdfObject ()_ac .PdfObject {if _ceab ._agcb ==nil {_ceab ._agcb =&_ac .PdfIndirectObject {};};_ffcbc :=_ceab .baseFields ().asPdfObjectDictionary ("\u0054\u0079\u0070e\u0030");_ceab ._agcb .PdfObject =_ffcbc ;if _ceab .Encoding !=nil {_ffcbc .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_ceab .Encoding );
}else if _ceab ._edfdd !=nil {_ffcbc .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_ceab ._edfdd .ToPdfObject ());};if _ceab .DescendantFont !=nil {_ffcbc .Set ("\u0044e\u0073c\u0065\u006e\u0064\u0061\u006e\u0074\u0046\u006f\u006e\u0074\u0073",_ac .MakeArray (_ceab .DescendantFont .ToPdfObject ()));
};return _ceab ._agcb ;};
// DecodeArray returns the component range values for the Separation colorspace.
func (_ceaca *PdfColorspaceSpecialSeparation )DecodeArray ()[]float64 {return []float64 {0,1.0}};func (_bbef *PdfFont )baseFields ()*fontCommon {if _bbef ._gegb ==nil {_gd .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 _bbef ._gegb .baseFields ();};
// 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 (_efec *PdfAppender )Sign (pageNum int ,field *PdfFieldSignature )error {if field ==nil {return _af .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");
};_dccc :=field .V ;if _dccc ==nil {return _af .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");};_dcddb :=pageNum -1;
if _dcddb < 0||_dcddb > len (_efec ._abda )-1{return _d .Errorf ("\u0070\u0061\u0067\u0065\u0020\u0025\u0064\u0020\u006e\u006f\u0074\u0020f\u006f\u0075\u006e\u0064",pageNum );};_dcccd :=_efec .Reader .PageList [_dcddb ];field .P =_dcccd .ToPdfObject ();
if field .T ==nil ||field .T .String ()==""{field .T =_ac .MakeString (_d .Sprintf ("\u0053\u0069\u0067n\u0061\u0074\u0075\u0072\u0065\u0020\u0025\u0064",pageNum ));};_dcccd .AddAnnotation (field .PdfAnnotationWidget .PdfAnnotation );if _efec ._cabc ==_efec ._cbdcd .AcroForm {_efec ._cabc =_efec .Reader .AcroForm ;
};_ebda :=_efec ._cabc ;if _ebda ==nil {_ebda =NewPdfAcroForm ();};_ebda .SigFlags =_ac .MakeInteger (3);_ecde :=append (_ebda .AllFields (),field .PdfField );_ebda .Fields =&_ecde ;_efec .ReplaceAcroForm (_ebda );_efec .UpdatePage (_dcccd );_efec ._abda [_dcddb ]=_dcccd ;
if _ ,_adea :=field .V .GetDocMDPPermission ();_adea {_efec ._adf =NewPermissions (field .V );};return nil ;};
// GetStructRoot gets the StructTreeRoot object
func (_edbcb *PdfPage )GetStructTreeRoot ()(*_ac .PdfObject ,bool ){_aegc ,_afbgd :=_edbcb ._bcfff .GetCatalogStructTreeRoot ();return &_aegc ,_afbgd ;};
// GetParamsDict returns *core.PdfObjectDictionary with a set of basic image parameters.
func (_dgfdg *Image )GetParamsDict ()*_ac .PdfObjectDictionary {_ggef :=_ac .MakeDict ();_ggef .Set ("\u0057\u0069\u0064t\u0068",_ac .MakeInteger (_dgfdg .Width ));_ggef .Set ("\u0048\u0065\u0069\u0067\u0068\u0074",_ac .MakeInteger (_dgfdg .Height ));_ggef .Set ("\u0043o\u006co\u0072\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074\u0073",_ac .MakeInteger (int64 (_dgfdg .ColorComponents )));
_ggef .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_ac .MakeInteger (_dgfdg .BitsPerComponent ));return _ggef ;};
// 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 (_bgadb *PdfReader )AcroFormNeedsRepair ()(bool ,error ){var _fffeg []*PdfField ;if _bgadb .AcroForm !=nil {_fffeg =_bgadb .AcroForm .AllFields ();};_eedgd :=make (map[*PdfField ]struct{},len (_fffeg ));for _ ,_gbgad :=range _fffeg {_eedgd [_gbgad ]=struct{}{};
};for _ ,_gcbf :=range _bgadb .PageList {_badga ,_debgb :=_gcbf .GetAnnotations ();if _debgb !=nil {return false ,_debgb ;};for _ ,_fgfg :=range _badga {_efegb ,_addgg :=_fgfg .GetContext ().(*PdfAnnotationWidget );if !_addgg {continue ;};_dgbee :=_efegb .Field ();
if _dgbee ==nil {return true ,nil ;};if _ ,_eadedf :=_eedgd [_dgbee ];!_eadedf {return true ,nil ;};};};return false ,nil ;};
// CharcodesToUnicodeWithStats is identical to CharcodesToUnicode except it returns more statistical
// information about hits and misses from the reverse mapping process.
// NOTE: The number of runes returned may be greater than the number of charcodes.
// TODO(peterwilliams97): Deprecate in v4 and use only CharcodesToStrings()
func (_egea *PdfFont )CharcodesToUnicodeWithStats (charcodes []_gf .CharCode )(_eccce []rune ,_bedb ,_dgaf int ){_eaacf ,_bedb ,_dgaf :=_egea .CharcodesToStrings (charcodes );return []rune (_fg .Join (_eaacf ,"")),_bedb ,_dgaf ;};
// NewPdfAnnotationProjection returns a new projection annotation.
func NewPdfAnnotationProjection ()*PdfAnnotationProjection {_facf :=NewPdfAnnotation ();_cea :=&PdfAnnotationProjection {};_cea .PdfAnnotation =_facf ;_cea .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_facf .SetContext (_cea );return _cea ;};func (_gadg *PdfField )inherit (_bdbe func (*PdfField )bool )(bool ,error ){_gbdf :=map[*PdfField ]bool {};
_dbcb :=false ;_dceag :=_gadg ;for _dceag !=nil {if _ ,_bfff :=_gbdf [_dceag ];_bfff {return false ,_af .New ("\u0072\u0065\u0063\u0075rs\u0069\u0076\u0065\u0020\u0074\u0072\u0061\u0076\u0065\u0072\u0073\u0061\u006c");};_gcafg :=_bdbe (_dceag );if _gcafg {_dbcb =true ;
break ;};_gbdf [_dceag ]=true ;_dceag =_dceag .Parent ;};return _dbcb ,nil ;};
// PdfShadingPatternType2 is shading patterns that will use a Type 2 shading pattern (Axial).
type PdfShadingPatternType2 struct{*PdfPattern ;Shading *PdfShadingType2 ;Matrix *_ac .PdfObjectArray ;ExtGState _ac .PdfObject ;};func (_daafg *PdfWriter )copyObject (_bgbgfc _ac .PdfObject ,_dgcef map[_ac .PdfObject ]_ac .PdfObject ,_aedgd map[_ac .PdfObject ]struct{},_cafcc bool )_ac .PdfObject {_gfebd :=!_daafg ._cfgc &&_aedgd !=nil ;
if _ebebb ,_bgfbb :=_dgcef [_bgbgfc ];_bgfbb {if _gfebd &&!_cafcc {delete (_aedgd ,_bgbgfc );};return _ebebb ;};if _bgbgfc ==nil {_aabec :=_ac .MakeNull ();return _aabec ;};_cdebf :=_bgbgfc ;switch _dafcac :=_bgbgfc .(type ){case *_ac .PdfObjectArray :_adgfb :=_ac .MakeArray ();
_cdebf =_adgfb ;_dgcef [_bgbgfc ]=_cdebf ;for _ ,_bfgfb :=range _dafcac .Elements (){_adgfb .Append (_daafg .copyObject (_bfgfb ,_dgcef ,_aedgd ,_cafcc ));};case *_ac .PdfObjectStreams :_fbfcc :=&_ac .PdfObjectStreams {PdfObjectReference :_dafcac .PdfObjectReference };
_cdebf =_fbfcc ;_dgcef [_bgbgfc ]=_cdebf ;for _ ,_dbeea :=range _dafcac .Elements (){_fbfcc .Append (_daafg .copyObject (_dbeea ,_dgcef ,_aedgd ,_cafcc ));};case *_ac .PdfObjectStream :_cabfa :=&_ac .PdfObjectStream {Stream :_dafcac .Stream ,PdfObjectReference :_dafcac .PdfObjectReference };
_cdebf =_cabfa ;_dgcef [_bgbgfc ]=_cdebf ;_cabfa .PdfObjectDictionary =_daafg .copyObject (_dafcac .PdfObjectDictionary ,_dgcef ,_aedgd ,_cafcc ).(*_ac .PdfObjectDictionary );case *_ac .PdfObjectDictionary :var _dacb bool ;if _gfebd &&!_cafcc {if _ceaaa ,_ :=_ac .GetNameVal (_dafcac .Get ("\u0054\u0079\u0070\u0065"));
_ceaaa =="\u0050\u0061\u0067\u0065"{_ ,_eafaef :=_daafg ._gafba [_dafcac ];_cafcc =!_eafaef ;_dacb =_cafcc ;};};_dagfcc :=_ac .MakeDict ();_cdebf =_dagfcc ;_dgcef [_bgbgfc ]=_cdebf ;for _ ,_bcacd :=range _dafcac .Keys (){_dagfcc .Set (_bcacd ,_daafg .copyObject (_dafcac .Get (_bcacd ),_dgcef ,_aedgd ,_cafcc ));
};if _dacb {_cdebf =_ac .MakeNull ();_cafcc =false ;};case *_ac .PdfIndirectObject :_agcad :=&_ac .PdfIndirectObject {PdfObjectReference :_dafcac .PdfObjectReference };_cdebf =_agcad ;_dgcef [_bgbgfc ]=_cdebf ;_agcad .PdfObject =_daafg .copyObject (_dafcac .PdfObject ,_dgcef ,_aedgd ,_cafcc );
case *_ac .PdfObjectString :_eacggc :=*_dafcac ;_cdebf =&_eacggc ;_dgcef [_bgbgfc ]=_cdebf ;case *_ac .PdfObjectName :_cgaaa :=*_dafcac ;_cdebf =&_cgaaa ;_dgcef [_bgbgfc ]=_cdebf ;case *_ac .PdfObjectNull :_cdebf =_ac .MakeNull ();_dgcef [_bgbgfc ]=_cdebf ;
case *_ac .PdfObjectInteger :_ebgga :=*_dafcac ;_cdebf =&_ebgga ;_dgcef [_bgbgfc ]=_cdebf ;case *_ac .PdfObjectReference :_decgg :=*_dafcac ;_cdebf =&_decgg ;_dgcef [_bgbgfc ]=_cdebf ;case *_ac .PdfObjectFloat :_cffe :=*_dafcac ;_cdebf =&_cffe ;_dgcef [_bgbgfc ]=_cdebf ;
case *_ac .PdfObjectBool :_aacb :=*_dafcac ;_cdebf =&_aacb ;_dgcef [_bgbgfc ]=_cdebf ;case *pdfSignDictionary :_cdcc :=&pdfSignDictionary {PdfObjectDictionary :_ac .MakeDict (),_abgad :_dafcac ._abgad ,_aacfd :_dafcac ._aacfd };_cdebf =_cdcc ;_dgcef [_bgbgfc ]=_cdebf ;
for _ ,_fegcb :=range _dafcac .Keys (){_cdcc .Set (_fegcb ,_daafg .copyObject (_dafcac .Get (_fegcb ),_dgcef ,_aedgd ,_cafcc ));};default:_gd .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",_bgbgfc );
};if _gfebd &&_cafcc {_aedgd [_bgbgfc ]=struct{}{};};return _cdebf ;};
// WatermarkImageOptions contains options for configuring the watermark process.
type WatermarkImageOptions struct{Alpha float64 ;FitToWidth bool ;PreserveAspectRatio bool ;};
// 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 ;_dcbab *_ac .PdfIndirectObject ;};
// HasColorspaceByName checks if the colorspace with the specified name exists in the page resources.
func (_fcabg *PdfPageResources )HasColorspaceByName (keyName _ac .PdfObjectName )bool {_dgfea ,_afeba :=_fcabg .GetColorspaces ();if _afeba !=nil {_gd .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",_afeba );
return false ;};if _dgfea ==nil {return false ;};_ ,_deeec :=_dgfea .Colorspaces [string (keyName )];return _deeec ;};
// PdfAppender appends new PDF content to an existing PDF document via incremental updates.
type PdfAppender struct{_dcaa _adc .ReadSeeker ;_bbbg *_ac .PdfParser ;_cbdcd *PdfReader ;Reader *PdfReader ;_abda []*PdfPage ;_cabc *PdfAcroForm ;_acaf *DSS ;_adf *Permissions ;_gdg _ac .XrefTable ;_adgf int64 ;_dgfe int ;_fgee []_ac .PdfObject ;_eddbd map[_ac .PdfObject ]struct{};
_degfa map[_ac .PdfObject ]int64 ;_fbfga map[_ac .PdfObject ]struct{};_gbe map[_ac .PdfObject ]struct{};_fcef int64 ;_gae bool ;_abgb string ;_abea *EncryptOptions ;_aead *PdfInfo ;};
// ToPdfObject returns a stream object.
func (_cgggf *XObjectForm )ToPdfObject ()_ac .PdfObject {_cedbaa :=_cgggf ._fggc ;_dfgcc :=_cedbaa .PdfObjectDictionary ;if _cgggf .Filter !=nil {_dfgcc =_cgggf .Filter .MakeStreamDict ();_cedbaa .PdfObjectDictionary =_dfgcc ;};_dfgcc .Set ("\u0054\u0079\u0070\u0065",_ac .MakeName ("\u0058O\u0062\u006a\u0065\u0063\u0074"));
_dfgcc .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ac .MakeName ("\u0046\u006f\u0072\u006d"));_dfgcc .SetIfNotNil ("\u0046\u006f\u0072\u006d\u0054\u0079\u0070\u0065",_cgggf .FormType );_dfgcc .SetIfNotNil ("\u0042\u0042\u006f\u0078",_cgggf .BBox );_dfgcc .SetIfNotNil ("\u004d\u0061\u0074\u0072\u0069\u0078",_cgggf .Matrix );
if _cgggf .Resources !=nil {_dfgcc .SetIfNotNil ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s",_cgggf .Resources .ToPdfObject ());};_dfgcc .SetIfNotNil ("\u0047\u0072\u006fu\u0070",_cgggf .Group );_dfgcc .SetIfNotNil ("\u0052\u0065\u0066",_cgggf .Ref );
_dfgcc .SetIfNotNil ("\u004d\u0065\u0074\u0061\u0044\u0061\u0074\u0061",_cgggf .MetaData );_dfgcc .SetIfNotNil ("\u0050i\u0065\u0063\u0065\u0049\u006e\u0066o",_cgggf .PieceInfo );_dfgcc .SetIfNotNil ("\u004c\u0061\u0073t\u004d\u006f\u0064\u0069\u0066\u0069\u0065\u0064",_cgggf .LastModified );
_dfgcc .SetIfNotNil ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074",_cgggf .StructParent );_dfgcc .SetIfNotNil ("\u0053\u0074\u0072\u0075\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074\u0073",_cgggf .StructParents );_dfgcc .SetIfNotNil ("\u004f\u0050\u0049",_cgggf .OPI );
_dfgcc .SetIfNotNil ("\u004f\u0043",_cgggf .OC );_dfgcc .SetIfNotNil ("\u004e\u0061\u006d\u0065",_cgggf .Name );_dfgcc .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_ac .MakeInteger (int64 (len (_cgggf .Stream ))));_cedbaa .Stream =_cgggf .Stream ;return _cedbaa ;
};func (_cabaa *PdfWriter )writeDocumentVersion (){if _cabaa ._cfgc {_cabaa .writeString ("\u000a");}else {_cabaa .writeString (_d .Sprintf ("\u0025\u0025\u0050D\u0046\u002d\u0025\u0064\u002e\u0025\u0064\u000a",_cabaa ._gdfdc .Major ,_cabaa ._gdfdc .Minor ));
_cabaa .writeString ("\u0025\u00e2\u00e3\u00cf\u00d3\u000a");};};
// ColorToRGB converts a ICCBased color to an RGB color.
func (_fdgac *PdfColorspaceICCBased )ColorToRGB (color PdfColor )(PdfColor ,error ){if _fdgac .Alternate ==nil {_gd .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 _fdgac .N ==1{_gd .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");
_fdebb :=NewPdfColorspaceDeviceGray ();return _fdebb .ColorToRGB (color );}else if _fdgac .N ==3{_gd .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 _fdgac .N ==4{_gd .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");
_aebd :=NewPdfColorspaceDeviceCMYK ();return _aebd .ColorToRGB (color );}else {return nil ,_af .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");
};};_gd .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",_fdgac );
return _fdgac .Alternate .ColorToRGB (color );};const (XObjectTypeUndefined XObjectType =iota ;XObjectTypeImage ;XObjectTypeForm ;XObjectTypePS ;XObjectTypeUnknown ;);
// ColorToRGB converts a Lab color to an RGB color.
func (_dfad *PdfColorspaceLab )ColorToRGB (color PdfColor )(PdfColor ,error ){_ffcbg :=func (_gbea float64 )float64 {if _gbea >=6.0/29{return _gbea *_gbea *_gbea ;};return 108.0/841*(_gbea -4.0/29.0);};_fgf ,_cdfa :=color .(*PdfColorLab );if !_cdfa {_gd .Log .Debug ("\u0069\u006e\u0070\u0075t \u0063\u006f\u006c\u006f\u0072\u0020\u006e\u006f\u0074\u0020\u006c\u0061\u0062");
return nil ,_af .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};LStar :=_fgf .L ();AStar :=_fgf .A ();BStar :=_fgf .B ();L :=(LStar +16)/116+AStar /500;M :=(LStar +16)/116;N :=(LStar +16)/116-BStar /200;
X :=_dfad .WhitePoint [0]*_ffcbg (L );Y :=_dfad .WhitePoint [1]*_ffcbg (M );Z :=_dfad .WhitePoint [2]*_ffcbg (N );_dfeb :=3.240479*X +-1.537150*Y +-0.498535*Z ;_ddag :=-0.969256*X +1.875992*Y +0.041556*Z ;_gfc :=0.055648*X +-0.204043*Y +1.057311*Z ;_dfeb =_da .Min (_da .Max (_dfeb ,0),1.0);
_ddag =_da .Min (_da .Max (_ddag ,0),1.0);_gfc =_da .Min (_da .Max (_gfc ,0),1.0);return NewPdfColorDeviceRGB (_dfeb ,_ddag ,_gfc ),nil ;};
// DefaultImageHandler is the default implementation of the ImageHandler using the standard go library.
type DefaultImageHandler struct{};func (_acegf *PdfReader )lookupPageByObject (_ebfbe _ac .PdfObject )(*PdfPage ,error ){return nil ,_af .New ("\u0070\u0061\u0067\u0065\u0020\u006e\u006f\u0074\u0020f\u006f\u0075\u006e\u0064");};
// 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 (_dfcg *PdfFont )CharcodeBytesToUnicode (data []byte )(string ,int ,int ){_acdb ,_ ,_aaeed :=_dfcg .CharcodesToUnicodeWithStats (_dfcg .BytesToCharcodes (data ));_aacc :=_gf .ExpandLigatures (_acdb );return _aacc ,_gb .RuneCountInString (_aacc ),_aaeed ;
};
// GetModelFromPrimitive returns the model corresponding to the `primitive` PdfObject.
func (_bbgbb *modelManager )GetModelFromPrimitive (primitive _ac .PdfObject )PdfModel {model ,_bedfe :=_bbgbb ._bbefe [primitive ];if !_bedfe {return nil ;};return model ;};
// 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 ){_dbfba ,_gbag :=_cdef (basefont );if _gbag !=nil {return nil ,_gbag ;};if basefont !=SymbolName &&basefont !=ZapfDingbatsName {_dbfba ._caed =_gf .NewWinAnsiEncoder ();};return &PdfFont {_gegb :&_dbfba },nil ;
};
// SetPdfCreationDate sets the CreationDate attribute of the output PDF.
func SetPdfCreationDate (creationDate _e .Time ){_gcaaba .Lock ();defer _gcaaba .Unlock ();_cdacg =creationDate ;};
// ToPdfObject implements model.PdfModel interface.
func (_egacg *PdfOutputIntent )ToPdfObject ()_ac .PdfObject {if _egacg ._egeec ==nil {_egacg ._egeec =_ac .MakeDict ();};_geaf :=_egacg ._egeec ;if _egacg .Type !=""{_geaf .Set ("\u0054\u0079\u0070\u0065",_ac .MakeName (_egacg .Type ));};_geaf .Set ("\u0053",_ac .MakeName (_egacg .S .String ()));
if _egacg .OutputCondition !=""{_geaf .Set ("\u004fu\u0074p\u0075\u0074\u0043\u006f\u006e\u0064\u0069\u0074\u0069\u006f\u006e",_ac .MakeString (_egacg .OutputCondition ));};_geaf .Set ("\u004fu\u0074\u0070\u0075\u0074C\u006f\u006e\u0064\u0069\u0074i\u006fn\u0049d\u0065\u006e\u0074\u0069\u0066\u0069\u0065r",_ac .MakeString (_egacg .OutputConditionIdentifier ));
_geaf .Set ("\u0052\u0065\u0067i\u0073\u0074\u0072\u0079\u004e\u0061\u006d\u0065",_ac .MakeString (_egacg .RegistryName ));if _egacg .Info !=""{_geaf .Set ("\u0049\u006e\u0066\u006f",_ac .MakeString (_egacg .Info ));};if len (_egacg .DestOutputProfile )!=0{_dfdca ,_ffcea :=_ac .MakeStream (_egacg .DestOutputProfile ,_ac .NewFlateEncoder ());
if _ffcea !=nil {_gd .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",_ffcea );
};_dfdca .PdfObjectDictionary .Set ("\u004e",_ac .MakeInteger (int64 (_egacg .ColorComponents )));_dbcd :=make ([]float64 ,_egacg .ColorComponents *2);for _eadeg :=0;_eadeg < _egacg .ColorComponents *2;_eadeg ++{_decg :=0.0;if _eadeg %2!=0{_decg =1.0;};
_dbcd [_eadeg ]=_decg ;};_dfdca .PdfObjectDictionary .Set ("\u0052\u0061\u006eg\u0065",_ac .MakeArrayFromFloats (_dbcd ));_geaf .Set ("\u0044\u0065\u0073\u0074\u004f\u0075\u0074\u0070\u0075\u0074\u0050\u0072o\u0066\u0069\u006c\u0065",_dfdca );};return _geaf ;
};func (_fbcf *PdfReader )newPdfActionLaunchFromDict (_aff *_ac .PdfObjectDictionary )(*PdfActionLaunch ,error ){_fbe ,_gdca :=_caec (_aff .Get ("\u0046"));if _gdca !=nil {return nil ,_gdca ;};return &PdfActionLaunch {Win :_aff .Get ("\u0057\u0069\u006e"),Mac :_aff .Get ("\u004d\u0061\u0063"),Unix :_aff .Get ("\u0055\u006e\u0069\u0078"),NewWindow :_aff .Get ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw"),F :_fbe },nil ;
};func _gdfda (_feeae _ac .PdfObject ){_gd .Log .Debug ("\u006f\u0062\u006a\u003a\u0020\u0025\u0054\u0020\u0025\u0073",_feeae ,_feeae .String ());if _adddd ,_gaaaa :=_feeae .(*_ac .PdfObjectStream );_gaaaa {_agfbb ,_gbbbb :=_ac .DecodeStream (_adddd );
if _gbbbb !=nil {_gd .Log .Debug ("\u0045r\u0072\u006f\u0072\u003a\u0020\u0025v",_gbbbb );return ;};_gd .Log .Debug ("D\u0065\u0063\u006f\u0064\u0065\u0064\u003a\u0020\u0025\u0073",_agfbb );}else if _caeef ,_fbbdb :=_feeae .(*_ac .PdfIndirectObject );_fbbdb {_gd .Log .Debug ("\u0025\u0054\u0020%\u0076",_caeef .PdfObject ,_caeef .PdfObject );
_gd .Log .Debug ("\u0025\u0073",_caeef .PdfObject .String ());};};
// ToPdfObject implements interface PdfModel.
func (_bfba *PdfAnnotationMovie )ToPdfObject ()_ac .PdfObject {_bfba .PdfAnnotation .ToPdfObject ();_bdgf :=_bfba ._fegd ;_adgg :=_bdgf .PdfObject .(*_ac .PdfObjectDictionary );_adgg .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ac .MakeName ("\u004d\u006f\u0076i\u0065"));
_adgg .SetIfNotNil ("\u0054",_bfba .T );_adgg .SetIfNotNil ("\u004d\u006f\u0076i\u0065",_bfba .Movie );_adgg .SetIfNotNil ("\u0041",_bfba .A );return _bdgf ;};func (_dcge *DSS )addOCSPs (_fdab [][]byte )([]*_ac .PdfObjectStream ,error ){return _dcge .add (&_dcge .OCSPs ,_dcge ._edag ,_fdab );
};func (_bddg *PdfSignature )extractChainFromPKCS7 ()([]*_fc .Certificate ,error ){_cfdea ,_bdddg :=_eec .Parse (_bddg .Contents .Bytes ());if _bdddg !=nil {return nil ,_bdddg ;};return _cfdea .Certificates ,nil ;};
// PdfAnnotationHighlight represents Highlight annotations.
// (Section 12.5.6.10).
type PdfAnnotationHighlight struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _ac .PdfObject ;};
// NewPdfFieldSignature returns an initialized signature field.
func NewPdfFieldSignature (signature *PdfSignature )*PdfFieldSignature {_caecf :=&PdfFieldSignature {};_caecf .PdfField =NewPdfField ();_caecf .PdfField .SetContext (_caecf );_caecf .PdfAnnotationWidget =NewPdfAnnotationWidget ();_caecf .PdfAnnotationWidget .SetContext (_caecf );
_caecf .PdfAnnotationWidget ._fegd =_caecf .PdfField ._bdde ;_caecf .T =_ac .MakeString ("");_caecf .F =_ac .MakeInteger (132);_caecf .V =signature ;return _caecf ;};
// WriteString outputs the object as it is to be written to file.
func (_dbgga *pdfSignDictionary )WriteString ()string {_dbgga ._gaegg =0;_dbgga ._cgdfee =0;_dbgga ._dbcgg =0;_dbgga ._gdfcd =0;_gafcc :=_fd .NewBuffer (nil );_gafcc .WriteString ("\u003c\u003c");for _ ,_efacf :=range _dbgga .Keys (){_babee :=_dbgga .Get (_efacf );
switch _efacf {case "\u0042y\u0074\u0065\u0052\u0061\u006e\u0067e":_gafcc .WriteString (_efacf .WriteString ());_gafcc .WriteString ("\u0020");_dbgga ._dbcgg =_gafcc .Len ();_gafcc .WriteString (_babee .WriteString ());_gafcc .WriteString ("\u0020");_dbgga ._gdfcd =_gafcc .Len ()-1;
case "\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073":_gafcc .WriteString (_efacf .WriteString ());_gafcc .WriteString ("\u0020");_dbgga ._gaegg =_gafcc .Len ();_gafcc .WriteString (_babee .WriteString ());_gafcc .WriteString ("\u0020");_dbgga ._cgdfee =_gafcc .Len ()-1;
default:_gafcc .WriteString (_efacf .WriteString ());_gafcc .WriteString ("\u0020");_gafcc .WriteString (_babee .WriteString ());};};_gafcc .WriteString ("\u003e\u003e");return _gafcc .String ();};
// NewOutlineItem returns a new outline item instance.
func NewOutlineItem (title string ,dest OutlineDest )*OutlineItem {return &OutlineItem {Title :title ,Dest :dest };};func _fgbed (_agcc []byte )bool {if len (_agcc )< 4{return true ;};for _cafa :=range _agcc [:4]{_bbga :=rune (_cafa );if !_ffb .Is (_ffb .ASCII_Hex_Digit ,_bbga )&&!_ffb .IsSpace (_bbga ){return true ;
};};return false ;};func _fdgfc (_gbgef *_ac .PdfObjectStream )(*PdfFunctionType0 ,error ){_bcaccb :=&PdfFunctionType0 {};_bcaccb ._gcca =_gbgef ;_abaec :=_gbgef .PdfObjectDictionary ;_ecbc ,_ffada :=_ac .TraceToDirectObject (_abaec .Get ("\u0044\u006f\u006d\u0061\u0069\u006e")).(*_ac .PdfObjectArray );
if !_ffada {_gd .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_af .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 _ecbc .Len ()< 0||_ecbc .Len ()%2!=0{_gd .Log .Error ("\u0044\u006f\u006d\u0061\u0069\u006e\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");return nil ,_af .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0064\u006f\u006da\u0069\u006e\u0020\u0072an\u0067\u0065");
};_bcaccb .NumInputs =_ecbc .Len ()/2;_baba ,_fdebe :=_ecbc .ToFloat64Array ();if _fdebe !=nil {return nil ,_fdebe ;};_bcaccb .Domain =_baba ;_ecbc ,_ffada =_ac .TraceToDirectObject (_abaec .Get ("\u0052\u0061\u006eg\u0065")).(*_ac .PdfObjectArray );if !_ffada {_gd .Log .Error ("\u0052\u0061\u006e\u0067e \u006e\u006f\u0074\u0020\u0073\u0070\u0065\u0063\u0069\u0066\u0069\u0065\u0064");
return nil ,_af .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 _ecbc .Len ()< 0||_ecbc .Len ()%2!=0{return nil ,_af .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0061\u006e\u0067\u0065");
};_bcaccb .NumOutputs =_ecbc .Len ()/2;_aefc ,_fdebe :=_ecbc .ToFloat64Array ();if _fdebe !=nil {return nil ,_fdebe ;};_bcaccb .Range =_aefc ;_ecbc ,_ffada =_ac .TraceToDirectObject (_abaec .Get ("\u0053\u0069\u007a\u0065")).(*_ac .PdfObjectArray );if !_ffada {_gd .Log .Error ("\u0053i\u007ae\u0020\u006e\u006f\u0074\u0020s\u0070\u0065c\u0069\u0066\u0069\u0065\u0064");
return nil ,_af .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");};_fadd ,_fdebe :=_ecbc .ToIntegerArray ();
if _fdebe !=nil {return nil ,_fdebe ;};if len (_fadd )!=_bcaccb .NumInputs {_gd .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 ,_af .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_bcaccb .Size =_fadd ;_bfddb ,_ffada :=_ac .TraceToDirectObject (_abaec .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0053\u0061\u006d\u0070\u006c\u0065")).(*_ac .PdfObjectInteger );
if !_ffada {_gd .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 ,_af .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 *_bfddb !=1&&*_bfddb !=2&&*_bfddb !=4&&*_bfddb !=8&&*_bfddb !=12&&*_bfddb !=16&&*_bfddb !=24&&*_bfddb !=32{_gd .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",*_bfddb );
return nil ,_af .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_bcaccb .BitsPerSample =int (*_bfddb );_bcaccb .Order =1;_bbac ,_ffada :=_ac .TraceToDirectObject (_abaec .Get ("\u004f\u0072\u0064e\u0072")).(*_ac .PdfObjectInteger );
if _ffada {if *_bbac !=1&&*_bbac !=3{_gd .Log .Error ("\u0049n\u0076a\u006c\u0069\u0064\u0020\u006fr\u0064\u0065r\u0020\u0028\u0025\u0064\u0029",*_bbac );return nil ,_af .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_bcaccb .Order =int (*_bbac );
};_ecbc ,_ffada =_ac .TraceToDirectObject (_abaec .Get ("\u0045\u006e\u0063\u006f\u0064\u0065")).(*_ac .PdfObjectArray );if _ffada {_gbcg ,_dbff :=_ecbc .ToFloat64Array ();if _dbff !=nil {return nil ,_dbff ;};_bcaccb .Encode =_gbcg ;};_ecbc ,_ffada =_ac .TraceToDirectObject (_abaec .Get ("\u0044\u0065\u0063\u006f\u0064\u0065")).(*_ac .PdfObjectArray );
if _ffada {_egcbb ,_fgbgc :=_ecbc .ToFloat64Array ();if _fgbgc !=nil {return nil ,_fgbgc ;};_bcaccb .Decode =_egcbb ;};_abfbaf ,_fdebe :=_ac .DecodeStream (_gbgef );if _fdebe !=nil {return nil ,_fdebe ;};_bcaccb ._egecf =_abfbaf ;return _bcaccb ,nil ;};
func (_egbag *PdfReader )newPdfAnnotationMarkupFromDict (_efg *_ac .PdfObjectDictionary )(*PdfAnnotationMarkup ,error ){_fbg :=&PdfAnnotationMarkup {};if _ffaa :=_efg .Get ("\u0054");_ffaa !=nil {_fbg .T =_ffaa ;};if _cfd :=_efg .Get ("\u0050\u006f\u0070u\u0070");
_cfd !=nil {_daf ,_efee :=_cfd .(*_ac .PdfIndirectObject );if !_efee {if _ ,_dgccc :=_cfd .(*_ac .PdfObjectNull );!_dgccc {return nil ,_af .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 {_ada ,_cdfd :=_egbag .newPdfAnnotationFromIndirectObject (_daf );if _cdfd !=nil {return nil ,_cdfd ;};if _ada !=nil {_ccfa ,_bacd :=_ada ._cgf .(*PdfAnnotationPopup );if !_bacd {return nil ,_af .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");
};_fbg .Popup =_ccfa ;};};};if _ddaf :=_efg .Get ("\u0043\u0041");_ddaf !=nil {_fbg .CA =_ddaf ;};if _fcab :=_efg .Get ("\u0052\u0043");_fcab !=nil {_fbg .RC =_fcab ;};if _edgb :=_efg .Get ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065");
_edgb !=nil {_fbg .CreationDate =_edgb ;};if _gbab :=_efg .Get ("\u0049\u0052\u0054");_gbab !=nil {_fbg .IRT =_gbab ;};if _afdd :=_efg .Get ("\u0053\u0075\u0062\u006a");_afdd !=nil {_fbg .Subj =_afdd ;};if _edcf :=_efg .Get ("\u0052\u0054");_edcf !=nil {_fbg .RT =_edcf ;
};if _fbac :=_efg .Get ("\u0049\u0054");_fbac !=nil {_fbg .IT =_fbac ;};if _feed :=_efg .Get ("\u0045\u0078\u0044\u0061\u0074\u0061");_feed !=nil {_fbg .ExData =_feed ;};return _fbg ,nil ;};func (_fgbf *PdfPage )setContainer (_aadaf *_ac .PdfIndirectObject ){_aadaf .PdfObject =_fgbf ._egcd ;
_fgbf ._ffda =_aadaf ;};func _ddabf ()*modelManager {_gggc :=modelManager {};_gggc ._ebgfb =map[PdfModel ]_ac .PdfObject {};_gggc ._bbefe =map[_ac .PdfObject ]PdfModel {};return &_gggc ;};
// NewImageFromGoImage creates a new NRGBA32 unidoc Image from a golang Image.
// If `goimg` is grayscale (*goimage.Gray8) then calls NewGrayImageFromGoImage instead.
func (_fegg DefaultImageHandler )NewImageFromGoImage (goimg _ad .Image )(*Image ,error ){_cabf ,_fbgad :=_ed .FromGoImage (goimg );if _fbgad !=nil {return nil ,_fbgad ;};_aeafb :=_affb (_cabf .Base ());return &_aeafb ,nil ;};
// NewDSS returns a new DSS dictionary.
func NewDSS ()*DSS {return &DSS {_gfed :_ac .MakeIndirectObject (_ac .MakeDict ()),VRI :map[string ]*VRI {}};};
// GetSubFilter returns SubFilter value or empty string.
func (_ccgdaa *pdfSignDictionary )GetSubFilter ()string {_becfg :=_ccgdaa .Get ("\u0053u\u0062\u0046\u0069\u006c\u0074\u0065r");if _becfg ==nil {return "";};if _fcga ,_fdccb :=_ac .GetNameVal (_becfg );_fdccb {return _fcga ;};return "";};
// ReplaceAcroForm replaces the acrobat form. It appends a new form to the Pdf which
// replaces the original AcroForm.
func (_aeab *PdfAppender )ReplaceAcroForm (acroForm *PdfAcroForm ){if acroForm !=nil {_aeab .updateObjectsDeep (acroForm .ToPdfObject (),nil );};_aeab ._cabc =acroForm ;};
// NewPdfAnnotationSquiggly returns a new text squiggly annotation.
func NewPdfAnnotationSquiggly ()*PdfAnnotationSquiggly {_cba :=NewPdfAnnotation ();_dgcb :=&PdfAnnotationSquiggly {};_dgcb .PdfAnnotation =_cba ;_dgcb .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_cba .SetContext (_dgcb );return _dgcb ;};
// ColorToRGB converts a CMYK32 color to an RGB color.
func (_fdgb *PdfColorspaceDeviceCMYK )ColorToRGB (color PdfColor )(PdfColor ,error ){_ebage ,_ecca :=color .(*PdfColorDeviceCMYK );if !_ecca {_gd .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 ,_af .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_bebae :=_ebage .C ();_bafe :=_ebage .M ();_gbdd :=_ebage .Y ();_dfdd :=_ebage .K ();_bebae =_bebae *(1-_dfdd )+_dfdd ;_bafe =_bafe *(1-_dfdd )+_dfdd ;
_gbdd =_gbdd *(1-_dfdd )+_dfdd ;_gaba :=1-_bebae ;_caga :=1-_bafe ;_cbec :=1-_gbdd ;return NewPdfColorDeviceRGB (_gaba ,_caga ,_cbec ),nil ;};
// ToInteger convert to an integer format.
func (_abgbg *PdfColorLab )ToInteger (bits int )[3]uint32 {_gega :=_da .Pow (2,float64 (bits ))-1;return [3]uint32 {uint32 (_gega *_abgbg .L ()),uint32 (_gega *_abgbg .A ()),uint32 (_gega *_abgbg .B ())};};func _cggbg (_ffbba *PdfField )[]*PdfField {_gaafd :=[]*PdfField {_ffbba };
for _ ,_daaf :=range _ffbba .Kids {_gaafd =append (_gaafd ,_cggbg (_daaf )...);};return _gaafd ;};
// GetExtGState gets the ExtGState specified by keyName. Returns a bool
// indicating whether it was found or not.
func (_aebde *PdfPageResources )GetExtGState (keyName _ac .PdfObjectName )(_ac .PdfObject ,bool ){if _aebde .ExtGState ==nil {return nil ,false ;};_fcfff ,_bcbbf :=_ac .TraceToDirectObject (_aebde .ExtGState ).(*_ac .PdfObjectDictionary );if !_bcbbf {_gd .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",_aebde .ExtGState );
return nil ,false ;};if _ccac :=_fcfff .Get (keyName );_ccac !=nil {return _ccac ,true ;};return nil ,false ;};
// 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 (_bgcg *PdfFont )CharcodesToUnicode (charcodes []_gf .CharCode )[]rune {_daea ,_ ,_ :=_bgcg .CharcodesToUnicodeWithStats (charcodes );return _daea ;};
// GetRevision returns the specific version of the PdfReader for the current Pdf document
func (_ebdb *PdfReader )GetRevision (revisionNumber int )(*PdfReader ,error ){_feeaa :=_ebdb ._eebeg .GetRevisionNumber ();if revisionNumber < 0||revisionNumber > _feeaa {return nil ,_af .New ("w\u0072\u006f\u006e\u0067 r\u0065v\u0069\u0073\u0069\u006f\u006e \u006e\u0075\u006d\u0062\u0065\u0072");
};if revisionNumber ==_feeaa {return _ebdb ,nil ;};if _ebdb ._aedce [revisionNumber ]!=nil {return _ebdb ._aedce [revisionNumber ],nil ;};_bdaae :=_ebdb ;for _fadfg :=_feeaa -1;_fadfg >=revisionNumber ;_fadfg --{_acbc ,_bfdde :=_bdaae .GetPreviousRevision ();
if _bfdde !=nil {return nil ,_bfdde ;};_ebdb ._aedce [_fadfg ]=_acbc ;_bdaae =_acbc ;};return _bdaae ,nil ;};
// PdfAnnotationPolyLine represents PolyLine annotations.
// (Section 12.5.6.9).
type PdfAnnotationPolyLine struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Vertices _ac .PdfObject ;LE _ac .PdfObject ;BS _ac .PdfObject ;IC _ac .PdfObject ;BE _ac .PdfObject ;IT _ac .PdfObject ;Measure _ac .PdfObject ;};
// PdfFunction interface represents the common methods of a function in PDF.
type PdfFunction interface{Evaluate ([]float64 )([]float64 ,error );ToPdfObject ()_ac .PdfObject ;};
// NewPdfActionSound returns a new "sound" action.
func NewPdfActionSound ()*PdfActionSound {_ga :=NewPdfAction ();_eaa :=&PdfActionSound {};_eaa .PdfAction =_ga ;_ga .SetContext (_eaa );return _eaa ;};
// ImageToRGB convert 1-component grayscale data to 3-component RGB.
func (_fcge *PdfColorspaceDeviceGray )ImageToRGB (img Image )(Image ,error ){if img .ColorComponents !=1{return img ,_af .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");
};_dgbd ,_eaeg :=_ed .NewImage (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),img .ColorComponents ,img .Data ,img ._ebga ,img ._gffd );if _eaeg !=nil {return img ,_eaeg ;};_added ,_eaeg :=_ed .NRGBAConverter .Convert (_dgbd );if _eaeg !=nil {return img ,_eaeg ;
};_bead :=_affb (_added .Base ());_gd .Log .Trace ("\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079\u0020\u002d>\u0020\u0052\u0047\u0042");_gd .Log .Trace ("s\u0061\u006d\u0070\u006c\u0065\u0073\u003a\u0020\u0025\u0076",img .Data );_gd .Log .Trace ("\u0052G\u0042 \u0073\u0061\u006d\u0070\u006c\u0065\u0073\u003a\u0020\u0025\u0076",_bead .Data );
_gd .Log .Trace ("\u0025\u0076\u0020\u002d\u003e\u0020\u0025\u0076",img ,_bead );return _bead ,nil ;};var _dddg =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":{}};
// PdfActionHide represents a hide action.
type PdfActionHide struct{*PdfAction ;T _ac .PdfObject ;H _ac .PdfObject ;};func (_egaaa *PdfWriter )writeOutlines ()error {if _egaaa ._ddece ==nil {return nil ;};_gd .Log .Trace ("\u004f\u0075t\u006c\u0069\u006ee\u0054\u0072\u0065\u0065\u003a\u0020\u0025\u002b\u0076",_egaaa ._ddece );
_gffgc :=_egaaa ._ddece .ToPdfObject ();_gd .Log .Trace ("\u004fu\u0074\u006c\u0069\u006e\u0065\u0073\u003a\u0020\u0025\u002b\u0076 \u0028\u0025\u0054\u002c\u0020\u0070\u003a\u0025\u0070\u0029",_gffgc ,_gffgc ,_gffgc );_egaaa ._cgfegd .Set ("\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0073",_gffgc );
_beadd :=_egaaa .addObjects (_gffgc );if _beadd !=nil {return _beadd ;};return nil ;};
// GetContainingPdfObject implements interface PdfModel.
func (_dbcec *PdfSignatureReference )GetContainingPdfObject ()_ac .PdfObject {return _dbcec ._ebdca };
// DecodeArray returns the range of color component values in the Lab colorspace.
func (_feda *PdfColorspaceLab )DecodeArray ()[]float64 {_fdcg :=[]float64 {0,100};if _feda .Range !=nil &&len (_feda .Range )==4{_fdcg =append (_fdcg ,_feda .Range ...);}else {_fdcg =append (_fdcg ,-100,100,-100,100);};return _fdcg ;};
// NewPdfOutlineTree returns an initialized PdfOutline tree.
func NewPdfOutlineTree ()*PdfOutline {_abaecg :=NewPdfOutline ();_abaecg ._dagfd =&_abaecg ;return _abaecg ;};func (_bcaee *PdfWriter )checkLicense ()error {_acdde :=_cb .GetLicenseKey ();if (_acdde ==nil ||!_acdde .IsLicensed ())&&!_edfda {_d .Printf ("\u0055\u006e\u006c\u0069\u0063\u0065\u006e\u0073\u0065\u0064\u0020c\u006f\u0070\u0079\u0020\u006f\u0066\u0020\u0055\u006e\u0069P\u0044\u0046\u000a");
_d .Println ("-\u0020\u0047\u0065\u0074\u0020\u0061\u0020\u0066\u0072e\u0065\u0020\u0074\u0072\u0069\u0061\u006c l\u0069\u0063\u0065\u006es\u0065\u0020\u006f\u006e\u0020\u0068\u0074\u0074\u0070s:\u002f\u002fu\u006e\u0069\u0064\u006f\u0063\u002e\u0069\u006f");
return _af .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 ;};func _aefbc (_bgee *_ac .PdfIndirectObject )(*PdfOutline ,error ){_cabdf ,_abfbg :=_bgee .PdfObject .(*_ac .PdfObjectDictionary );
if !_abfbg {return nil ,_d .Errorf ("\u006f\u0075\u0074l\u0069\u006e\u0065\u0020o\u0062\u006a\u0065\u0063\u0074\u0020\u006eo\u0074\u0020\u0061\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079");};_cccac :=NewPdfOutline ();if _fadaa :=_cabdf .Get ("\u0054\u0079\u0070\u0065");
_fadaa !=nil {_eccdc ,_fegdc :=_fadaa .(*_ac .PdfObjectName );if _fegdc {if *_eccdc !="\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0073"{_gd .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",*_eccdc );
};};};if _bdefa :=_cabdf .Get ("\u0043\u006f\u0075n\u0074");_bdefa !=nil {_ggdc ,_fcdda :=_ac .GetNumberAsInt64 (_bdefa );if _fcdda !=nil {return nil ,_fcdda ;};_cccac .Count =&_ggdc ;};return _cccac ,nil ;};
// NewPdfColorspaceLab returns a new Lab colorspace object.
func NewPdfColorspaceLab ()*PdfColorspaceLab {_gcce :=&PdfColorspaceLab {};_gcce .BlackPoint =[]float64 {0.0,0.0,0.0};_gcce .Range =[]float64 {-100,100,-100,100};return _gcce ;};func (_dggg fontCommon )fontFlags ()int {if _dggg ._bgbdc ==nil {return 0;
};return _dggg ._bgbdc ._dbfcb ;};
// PdfBorderEffect represents a PDF border effect.
type PdfBorderEffect struct{S *BorderEffect ;I *float64 ;};
// PdfVersion returns version of the PDF file.
func (_cbdec *PdfReader )PdfVersion ()_ac .Version {return _cbdec ._eebeg .PdfVersion ()};
// ToPdfObject implements interface PdfModel.
func (_fdg *PdfBorderStyle )ToPdfObject ()_ac .PdfObject {_ggfg :=_ac .MakeDict ();if _fdg ._gcc !=nil {if _dcae ,_dgfd :=_fdg ._gcc .(*_ac .PdfIndirectObject );_dgfd {_dcae .PdfObject =_ggfg ;};};_ggfg .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ac .MakeName ("\u0042\u006f\u0072\u0064\u0065\u0072"));
if _fdg .W !=nil {_ggfg .Set ("\u0057",_ac .MakeFloat (*_fdg .W ));};if _fdg .S !=nil {_ggfg .Set ("\u0053",_ac .MakeName (_fdg .S .GetPdfName ()));};if _fdg .D !=nil {_ggfg .Set ("\u0044",_ac .MakeArrayFromIntegers (*_fdg .D ));};if _fdg ._gcc !=nil {return _fdg ._gcc ;
};return _ggfg ;};
// 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 *_ac .PdfObjectInteger ;TilingType *_ac .PdfObjectInteger ;BBox *PdfRectangle ;XStep *_ac .PdfObjectFloat ;YStep *_ac .PdfObjectFloat ;Resources *PdfPageResources ;Matrix *_ac .PdfObjectArray ;};
// 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 (_fccc int ,_eeba *PdfPage );
// 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 *_ac .PdfObjectArray ;AlternateSpace PdfColorspace ;TintTransform PdfFunction ;Attributes *PdfColorspaceDeviceNAttributes ;_cfcg *_ac .PdfIndirectObject ;};
// ToPdfObject returns the PDF representation of the colorspace.
func (_gggd *PdfColorspaceDeviceGray )ToPdfObject ()_ac .PdfObject {return _ac .MakeName ("\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079");};
// SetFilter sets compression filter. Decodes with current filter sets and
// encodes the data with the new filter.
func (_cebcbe *XObjectImage )SetFilter (encoder _ac .StreamEncoder )error {_gdgga :=_cebcbe .Stream ;_adccb ,_cdbg :=_cebcbe .Filter .DecodeBytes (_gdgga );if _cdbg !=nil {return _cdbg ;};_cebcbe .Filter =encoder ;encoder .UpdateParams (_cebcbe .getParamsDict ());
_gdgga ,_cdbg =encoder .EncodeBytes (_adccb );if _cdbg !=nil {return _cdbg ;};_cebcbe .Stream =_gdgga ;return nil ;};func (_ggg *PdfReader )newPdfAnnotationScreenFromDict (_abeg *_ac .PdfObjectDictionary )(*PdfAnnotationScreen ,error ){_abee :=PdfAnnotationScreen {};
_abee .T =_abeg .Get ("\u0054");_abee .MK =_abeg .Get ("\u004d\u004b");_abee .A =_abeg .Get ("\u0041");_abee .AA =_abeg .Get ("\u0041\u0041");return &_abee ,nil ;};
// PdfOutputIntentType is the subtype of the given PdfOutputIntent.
type PdfOutputIntentType int ;
// 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 _ac .PdfObject )(_ac .PdfObjectName ,error ){var _ecgbf *_ac .PdfObjectName ;var _befa *_ac .PdfObjectArray ;if _aeea ,_faa :=obj .(*_ac .PdfIndirectObject );_faa {if _fgdb ,_efaae :=_aeea .PdfObject .(*_ac .PdfObjectArray );
_efaae {_befa =_fgdb ;}else if _cgaa ,_abgd :=_aeea .PdfObject .(*_ac .PdfObjectName );_abgd {_ecgbf =_cgaa ;};}else if _aecdf ,_cged :=obj .(*_ac .PdfObjectArray );_cged {_befa =_aecdf ;}else if _ggge ,_babb :=obj .(*_ac .PdfObjectName );_babb {_ecgbf =_ggge ;
};if _ecgbf !=nil {switch *_ecgbf {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 *_ecgbf ,nil ;case "\u0050a\u0074\u0074\u0065\u0072\u006e":return *_ecgbf ,nil ;
};};if _befa !=nil &&_befa .Len ()> 0{if _fbacg ,_ddda :=_befa .Get (0).(*_ac .PdfObjectName );_ddda {switch *_fbacg {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 _befa .Len ()==1{return *_fbacg ,nil ;
};case "\u0043a\u006c\u0047\u0072\u0061\u0079","\u0043\u0061\u006c\u0052\u0047\u0042","\u004c\u0061\u0062":return *_fbacg ,nil ;case "\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064","\u0050a\u0074\u0074\u0065\u0072\u006e","\u0049n\u0064\u0065\u0078\u0065\u0064":return *_fbacg ,nil ;
case "\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e","\u0044e\u0076\u0069\u0063\u0065\u004e":return *_fbacg ,nil ;};};};return "",nil ;};
// GetContainingPdfObject implements interface PdfModel.
func (_eeeg *PdfFilespec )GetContainingPdfObject ()_ac .PdfObject {return _eeeg ._fege };func (_ggc *PdfReader )newPdfAnnotationStrikeOut (_dadd *_ac .PdfObjectDictionary )(*PdfAnnotationStrikeOut ,error ){_becd :=PdfAnnotationStrikeOut {};_dfff ,_agga :=_ggc .newPdfAnnotationMarkupFromDict (_dadd );
if _agga !=nil {return nil ,_agga ;};_becd .PdfAnnotationMarkup =_dfff ;_becd .QuadPoints =_dadd .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");return &_becd ,nil ;};func (_gabaf *pdfFontSimple )updateStandard14Font (){_cffbf ,_caaa :=_gabaf .Encoder ().(_gf .SimpleEncoder );
if !_caaa {_gd .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",_gabaf .Encoder (),_gabaf );return ;};_gdbed :=_cffbf .Charcodes ();
_gabaf ._bdaga =make (map[_gf .CharCode ]float64 ,len (_gdbed ));for _ ,_bdede :=range _gdbed {_gbbc ,_ :=_cffbf .CharcodeToRune (_bdede );_fcdaf ,_ :=_gabaf ._gbbfd .Read (_gbbc );_gabaf ._bdaga [_bdede ]=_fcdaf .Wx ;};};
// ImageToRGB convert an indexed image to RGB.
func (_bdfb *PdfColorspaceSpecialIndexed )ImageToRGB (img Image )(Image ,error ){N :=_bdfb .Base .GetNumComponents ();if N < 1{return Image {},_d .Errorf ("\u0062\u0061d \u0062\u0061\u0073e\u0020\u0063\u006f\u006cors\u0070ac\u0065\u0020\u004e\u0075\u006d\u0043\u006fmp\u006f\u006e\u0065\u006e\u0074\u0073\u003d%\u0064",N );
};_cgbeg :=_ed .NewImageBase (int (img .Width ),int (img .Height ),8,N ,nil ,img ._ebga ,img ._gffd );_faag :=_cg .NewReader (img .getBase ());_bgeb :=_cg .NewWriter (_cgbeg );var (_bfab uint32 ;_fbfff int ;_dbgd error ;);for {_bfab ,_dbgd =_faag .ReadSample ();
if _dbgd ==_adc .EOF {break ;}else if _dbgd !=nil {return img ,_dbgd ;};_fbfff =int (_bfab );_gd .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",_fbfff ,N ,len (_bdfb ._dagf ));
if (_fbfff +1)*N > len (_bdfb ._dagf ){_fbfff =len (_bdfb ._dagf )/N -1;_gd .Log .Trace ("C\u006c\u0069\u0070\u0070in\u0067 \u0074\u006f\u0020\u0069\u006ed\u0065\u0078\u003a\u0020\u0025\u0064",_fbfff );if _fbfff < 0{_gd .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 _efbe :=_fbfff *N ;_efbe < (_fbfff +1)*N ;_efbe ++{if _dbgd =_bgeb .WriteSample (uint32 (_bdfb ._dagf [_efbe ]));_dbgd !=nil {return img ,_dbgd ;};};};return _bdfb .Base .ImageToRGB (_affb (&_cgbeg ));};func (_dcdd *PdfReader )newPdfActionThreadFromDict (_efdc *_ac .PdfObjectDictionary )(*PdfActionThread ,error ){_cag ,_dfg :=_caec (_efdc .Get ("\u0046"));
if _dfg !=nil {return nil ,_dfg ;};return &PdfActionThread {D :_efdc .Get ("\u0044"),B :_efdc .Get ("\u0042"),F :_cag },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 _adc .ReadSeeker )(*PdfReader ,error ){const _eaca ="\u006do\u0064e\u006c\u003a\u004e\u0065\u0077P\u0064\u0066R\u0065\u0061\u0064\u0065\u0072";return _gaada (rs ,&ReaderOpts {},false ,_eaca );};
// ToPdfObject implements interface PdfModel.
func (_dafdc *PdfAnnotationText )ToPdfObject ()_ac .PdfObject {_dafdc .PdfAnnotation .ToPdfObject ();_egfc :=_dafdc ._fegd ;_aeag :=_egfc .PdfObject .(*_ac .PdfObjectDictionary );if _dafdc .PdfAnnotationMarkup !=nil {_dafdc .PdfAnnotationMarkup .appendToPdfDictionary (_aeag );
};_aeag .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ac .MakeName ("\u0054\u0065\u0078\u0074"));_aeag .SetIfNotNil ("\u004f\u0070\u0065\u006e",_dafdc .Open );_aeag .SetIfNotNil ("\u004e\u0061\u006d\u0065",_dafdc .Name );_aeag .SetIfNotNil ("\u0053\u0074\u0061t\u0065",_dafdc .State );
_aeag .SetIfNotNil ("\u0053\u0074\u0061\u0074\u0065\u004d\u006f\u0064\u0065\u006c",_dafdc .StateModel );return _egfc ;};
// 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 ;_cegba *_ac .PdfIndirectObject ;};
// PdfAnnotationFileAttachment represents FileAttachment annotations.
// (Section 12.5.6.15).
type PdfAnnotationFileAttachment struct{*PdfAnnotation ;*PdfAnnotationMarkup ;FS _ac .PdfObject ;Name _ac .PdfObject ;};
// NewPdfAnnotationWatermark returns a new watermark annotation.
func NewPdfAnnotationWatermark ()*PdfAnnotationWatermark {_bfe :=NewPdfAnnotation ();_acfe :=&PdfAnnotationWatermark {};_acfe .PdfAnnotation =_bfe ;_bfe .SetContext (_acfe );return _acfe ;};
// 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 (_dgccdd byte )byte ;
// GetPerms returns the Permissions dictionary
func (_cfgeb *PdfReader )GetPerms ()*Permissions {return _cfgeb ._bddf };
// DecodeArray returns the range of color component values in DeviceGray colorspace.
func (_dbdd *PdfColorspaceDeviceGray )DecodeArray ()[]float64 {return []float64 {0,1.0}};
// NewPdfActionResetForm returns a new "reset form" action.
func NewPdfActionResetForm ()*PdfActionResetForm {_aee :=NewPdfAction ();_dgb :=&PdfActionResetForm {};_dgb .PdfAction =_aee ;_aee .SetContext (_dgb );return _dgb ;};
// PdfPage represents a page in a PDF document. (7.7.3.3 - Table 30).
type PdfPage struct{Parent _ac .PdfObject ;LastModified *PdfDate ;Resources *PdfPageResources ;CropBox *PdfRectangle ;MediaBox *PdfRectangle ;BleedBox *PdfRectangle ;TrimBox *PdfRectangle ;ArtBox *PdfRectangle ;BoxColorInfo _ac .PdfObject ;Contents _ac .PdfObject ;
Rotate *int64 ;Group _ac .PdfObject ;Thumb _ac .PdfObject ;B _ac .PdfObject ;Dur _ac .PdfObject ;Trans _ac .PdfObject ;AA _ac .PdfObject ;Metadata _ac .PdfObject ;PieceInfo _ac .PdfObject ;StructParents _ac .PdfObject ;ID _ac .PdfObject ;PZ _ac .PdfObject ;
SeparationInfo _ac .PdfObject ;Tabs _ac .PdfObject ;TemplateInstantiated _ac .PdfObject ;PresSteps _ac .PdfObject ;UserUnit _ac .PdfObject ;VP _ac .PdfObject ;Annots _ac .PdfObject ;_ceca []*PdfAnnotation ;_egcd *_ac .PdfObjectDictionary ;_ffda *_ac .PdfIndirectObject ;
_cecfa _ac .PdfObjectDictionary ;_bcfff *PdfReader ;};
// String returns a string describing the font descriptor.
func (_bebgd *PdfFontDescriptor )String ()string {var _abdd []string ;if _bebgd .FontName !=nil {_abdd =append (_abdd ,_bebgd .FontName .String ());};if _bebgd .FontFamily !=nil {_abdd =append (_abdd ,_bebgd .FontFamily .String ());};if _bebgd .fontFile !=nil {_abdd =append (_abdd ,_bebgd .fontFile .String ());
};if _bebgd ._edfg !=nil {_abdd =append (_abdd ,_bebgd ._edfg .String ());};_abdd =append (_abdd ,_d .Sprintf ("\u0046\u006f\u006et\u0046\u0069\u006c\u0065\u0033\u003d\u0025\u0074",_bebgd .FontFile3 !=nil ));return _d .Sprintf ("\u0046\u004f\u004e\u0054_D\u0045\u0053\u0043\u0052\u0049\u0050\u0054\u004f\u0052\u007b\u0025\u0073\u007d",_fg .Join (_abdd ,"\u002c\u0020"));
};
// NewPdfAnnotationLine returns a new line annotation.
func NewPdfAnnotationLine ()*PdfAnnotationLine {_ggf :=NewPdfAnnotation ();_ffc :=&PdfAnnotationLine {};_ffc .PdfAnnotation =_ggf ;_ffc .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_ggf .SetContext (_ffc );return _ffc ;};
// ColorFromPdfObjects returns a new PdfColor based on input color components. The input PdfObjects should
// be numeric.
func (_aaceg *PdfColorspaceDeviceN )ColorFromPdfObjects (objects []_ac .PdfObject )(PdfColor ,error ){if len (objects )!=_aaceg .GetNumComponents (){return nil ,_af .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_cege ,_fffc :=_ac .GetNumbersAsFloat (objects );
if _fffc !=nil {return nil ,_fffc ;};return _aaceg .ColorFromFloats (_cege );};
// GetContext returns the PdfField context which is the more specific field data type, e.g. PdfFieldButton
// for a button field.
func (_cbfb *PdfField )GetContext ()PdfModel {return _cbfb ._edab };func (_dacfa *PdfWriter )checkCrossReferenceStream ()bool {_feadd :=_dacfa ._gdfdc .Major > 1||(_dacfa ._gdfdc .Major ==1&&_dacfa ._gdfdc .Minor > 4);if _dacfa ._fdfcfb !=nil {_feadd =*_dacfa ._fdfcfb ;
};return _feadd ;};
// GetOCProperties returns the optional content properties PdfObject.
func (_gddea *PdfReader )GetOCProperties ()(_ac .PdfObject ,error ){_dcbga :=_gddea ._bdfc ;_dbca :=_dcbga .Get ("\u004f\u0043\u0050r\u006f\u0070\u0065\u0072\u0074\u0069\u0065\u0073");_dbca =_ac .ResolveReference (_dbca );if !_gddea ._dfgg {_dabg :=_gddea .traverseObjectData (_dbca );
if _dabg !=nil {return nil ,_dabg ;};};return _dbca ,nil ;};func _acfec (_bbgfg []byte )[]byte {const _bddc =52845;const _edaae =22719;_dbeae :=55665;for _ ,_acbd :=range _bbgfg [:4]{_dbeae =(int (_acbd )+_dbeae )*_bddc +_edaae ;};_eafcd :=make ([]byte ,len (_bbgfg )-4);
for _bcab ,_ccgc :=range _bbgfg [4:]{_eafcd [_bcab ]=byte (int (_ccgc )^_dbeae >>8);_dbeae =(int (_ccgc )+_dbeae )*_bddc +_edaae ;};return _eafcd ;};
// HasFontByName checks whether a font is defined by the specified keyName.
func (_fgfeg *PdfPageResources )HasFontByName (keyName _ac .PdfObjectName )bool {_ ,_agcbaa :=_fgfeg .GetFontByName (keyName );return _agcbaa ;};
// ColorToRGB converts gray -> rgb for a single color component.
func (_aeeb *PdfColorspaceDeviceGray )ColorToRGB (color PdfColor )(PdfColor ,error ){_cgfa ,_beeg :=color .(*PdfColorDeviceGray );if !_beeg {_gd .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 ,_af .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};return NewPdfColorDeviceRGB (float64 (*_cgfa ),float64 (*_cgfa ),float64 (*_cgfa )),nil ;};const (ActionTypeGoTo PdfActionType ="\u0047\u006f\u0054\u006f";
ActionTypeGoTo3DView PdfActionType ="\u0047\u006f\u0054\u006f\u0033\u0044\u0056\u0069\u0065\u0077";ActionTypeGoToE PdfActionType ="\u0047\u006f\u0054o\u0045";ActionTypeGoToR PdfActionType ="\u0047\u006f\u0054o\u0052";ActionTypeHide PdfActionType ="\u0048\u0069\u0064\u0065";
ActionTypeImportData PdfActionType ="\u0049\u006d\u0070\u006f\u0072\u0074\u0044\u0061\u0074\u0061";ActionTypeJavaScript PdfActionType ="\u004a\u0061\u0076\u0061\u0053\u0063\u0072\u0069\u0070\u0074";ActionTypeLaunch PdfActionType ="\u004c\u0061\u0075\u006e\u0063\u0068";
ActionTypeMovie PdfActionType ="\u004d\u006f\u0076i\u0065";ActionTypeNamed PdfActionType ="\u004e\u0061\u006de\u0064";ActionTypeRendition PdfActionType ="\u0052e\u006e\u0064\u0069\u0074\u0069\u006fn";ActionTypeResetForm PdfActionType ="\u0052e\u0073\u0065\u0074\u0046\u006f\u0072m";
ActionTypeSetOCGState PdfActionType ="S\u0065\u0074\u004f\u0043\u0047\u0053\u0074\u0061\u0074\u0065";ActionTypeSound PdfActionType ="\u0053\u006f\u0075n\u0064";ActionTypeSubmitForm PdfActionType ="\u0053\u0075\u0062\u006d\u0069\u0074\u0046\u006f\u0072\u006d";
ActionTypeThread PdfActionType ="\u0054\u0068\u0072\u0065\u0061\u0064";ActionTypeTrans PdfActionType ="\u0054\u0072\u0061n\u0073";ActionTypeURI PdfActionType ="\u0055\u0052\u0049";);
// NewGrayImageFromGoImage creates a new grayscale unidoc Image from a golang Image.
func (_ccgdg DefaultImageHandler )NewGrayImageFromGoImage (goimg _ad .Image )(*Image ,error ){_fecf :=goimg .Bounds ();_gdda :=&Image {Width :int64 (_fecf .Dx ()),Height :int64 (_fecf .Dy ()),ColorComponents :1,BitsPerComponent :8};switch _cabea :=goimg .(type ){case *_ad .Gray :if len (_cabea .Pix )!=_fecf .Dx ()*_fecf .Dy (){_cbeb ,_bddd :=_ed .GrayConverter .Convert (goimg );
if _bddd !=nil {return nil ,_bddd ;};_gdda .Data =_cbeb .Pix ();}else {_gdda .Data =_cabea .Pix ;};case *_ad .Gray16 :_gdda .BitsPerComponent =16;if len (_cabea .Pix )!=_fecf .Dx ()*_fecf .Dy ()*2{_cbeae ,_daad :=_ed .Gray16Converter .Convert (goimg );
if _daad !=nil {return nil ,_daad ;};_gdda .Data =_cbeae .Pix ();}else {_gdda .Data =_cabea .Pix ;};case _ed .Image :_bgcbg :=_cabea .Base ();if _bgcbg .ColorComponents ==1{_gdda .BitsPerComponent =int64 (_bgcbg .BitsPerComponent );_gdda .Data =_bgcbg .Data ;
return _gdda ,nil ;};_cbgd ,_aefbg :=_ed .GrayConverter .Convert (goimg );if _aefbg !=nil {return nil ,_aefbg ;};_gdda .Data =_cbgd .Pix ();default:_eeeff ,_ddcfe :=_ed .GrayConverter .Convert (goimg );if _ddcfe !=nil {return nil ,_ddcfe ;};_gdda .Data =_eeeff .Pix ();
};return _gdda ,nil ;};
// ContentStreamWrapper wraps the Page's contentstream into q ... Q blocks.
type ContentStreamWrapper interface{WrapContentStream (_cedf *PdfPage )error ;};
// IsValid checks if the given pdf output intent type is valid.
func (_cgggb PdfOutputIntentType )IsValid ()bool {return _cgggb >=PdfOutputIntentTypeA1 &&_cgggb <=PdfOutputIntentTypeX ;};
// ToPdfObject implements interface PdfModel.
func (_cfec *PdfAnnotationWatermark )ToPdfObject ()_ac .PdfObject {_cfec .PdfAnnotation .ToPdfObject ();_afg :=_cfec ._fegd ;_ecg :=_afg .PdfObject .(*_ac .PdfObjectDictionary );_ecg .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ac .MakeName ("\u0057a\u0074\u0065\u0072\u006d\u0061\u0072k"));
_ecg .SetIfNotNil ("\u0046\u0069\u0078\u0065\u0064\u0050\u0072\u0069\u006e\u0074",_cfec .FixedPrint );return _afg ;};
// NewPdfOutline returns an initialized PdfOutline.
func NewPdfOutline ()*PdfOutline {_cdede :=&PdfOutline {_eggfe :_ac .MakeIndirectObject (_ac .MakeDict ())};_cdede ._dagfd =_cdede ;return _cdede ;};func (_cc *PdfReader )newPdfActionFromIndirectObject (_beea *_ac .PdfIndirectObject )(*PdfAction ,error ){_cae ,_ddc :=_beea .PdfObject .(*_ac .PdfObjectDictionary );
if !_ddc {return nil ,_d .Errorf ("\u0061\u0063\u0074\u0069\u006f\u006e\u0020\u0069\u006e\u0064\u0069\u0072\u0065\u0063\u0074\u0020\u006f\u0062j\u0065\u0063\u0074\u0020\u006e\u006f\u0074 \u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0069\u006e\u0067\u0020a\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079");
};if model :=_cc ._gbced .GetModelFromPrimitive (_cae );model !=nil {_cbd ,_ccf :=model .(*PdfAction );if !_ccf {return nil ,_d .Errorf ("\u0063\u0061c\u0068\u0065\u0064\u0020\u006d\u006f\u0064\u0065\u006c\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0050\u0044\u0046\u0020\u0061\u0063ti\u006f\u006e");
};return _cbd ,nil ;};_cgd :=&PdfAction {};_cgd ._eef =_beea ;_cc ._gbced .Register (_cae ,_cgd );if _bfc :=_cae .Get ("\u0054\u0079\u0070\u0065");_bfc !=nil {_egf ,_dgg :=_bfc .(*_ac .PdfObjectName );if !_dgg {_gd .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",_bfc );
}else {if *_egf !="\u0041\u0063\u0074\u0069\u006f\u006e"{_gd .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",*_egf );
};_cgd .Type =_egf ;};};if _dcab :=_cae .Get ("\u004e\u0065\u0078\u0074");_dcab !=nil {_cgd .Next =_dcab ;};if _ccd :=_cae .Get ("\u0053");_ccd !=nil {_cgd .S =_ccd ;};_ddbd ,_gebg :=_cgd .S .(*_ac .PdfObjectName );if !_gebg {_gd .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",_cgd .S );
return nil ,_d .Errorf ("\u0069\u006e\u0076al\u0069\u0064\u0020\u0053\u0020\u006f\u0062\u006a\u0065c\u0074 \u0074y\u0070e\u0020\u0021\u003d\u0020\u006e\u0061\u006d\u0065\u0020\u0028\u0025\u0054\u0029",_cgd .S );};_adb :=PdfActionType (_ddbd .String ());
switch _adb {case ActionTypeGoTo :_bda ,_befe :=_cc .newPdfActionGotoFromDict (_cae );if _befe !=nil {return nil ,_befe ;};_bda .PdfAction =_cgd ;_cgd ._gc =_bda ;return _cgd ,nil ;case ActionTypeGoToR :_egc ,_eeff :=_cc .newPdfActionGotoRFromDict (_cae );
if _eeff !=nil {return nil ,_eeff ;};_egc .PdfAction =_cgd ;_cgd ._gc =_egc ;return _cgd ,nil ;case ActionTypeGoToE :_cdb ,_dgba :=_cc .newPdfActionGotoEFromDict (_cae );if _dgba !=nil {return nil ,_dgba ;};_cdb .PdfAction =_cgd ;_cgd ._gc =_cdb ;return _cgd ,nil ;
case ActionTypeLaunch :_fdf ,_fcf :=_cc .newPdfActionLaunchFromDict (_cae );if _fcf !=nil {return nil ,_fcf ;};_fdf .PdfAction =_cgd ;_cgd ._gc =_fdf ;return _cgd ,nil ;case ActionTypeThread :_eaab ,_aeb :=_cc .newPdfActionThreadFromDict (_cae );if _aeb !=nil {return nil ,_aeb ;
};_eaab .PdfAction =_cgd ;_cgd ._gc =_eaab ;return _cgd ,nil ;case ActionTypeURI :_afae ,_deg :=_cc .newPdfActionURIFromDict (_cae );if _deg !=nil {return nil ,_deg ;};_afae .PdfAction =_cgd ;_cgd ._gc =_afae ;return _cgd ,nil ;case ActionTypeSound :_fdfc ,_dbb :=_cc .newPdfActionSoundFromDict (_cae );
if _dbb !=nil {return nil ,_dbb ;};_fdfc .PdfAction =_cgd ;_cgd ._gc =_fdfc ;return _cgd ,nil ;case ActionTypeMovie :_bdef ,_dbdb :=_cc .newPdfActionMovieFromDict (_cae );if _dbdb !=nil {return nil ,_dbdb ;};_bdef .PdfAction =_cgd ;_cgd ._gc =_bdef ;return _cgd ,nil ;
case ActionTypeHide :_fff ,_gfe :=_cc .newPdfActionHideFromDict (_cae );if _gfe !=nil {return nil ,_gfe ;};_fff .PdfAction =_cgd ;_cgd ._gc =_fff ;return _cgd ,nil ;case ActionTypeNamed :_fcb ,_eff :=_cc .newPdfActionNamedFromDict (_cae );if _eff !=nil {return nil ,_eff ;
};_fcb .PdfAction =_cgd ;_cgd ._gc =_fcb ;return _cgd ,nil ;case ActionTypeSubmitForm :_cgdd ,_gdd :=_cc .newPdfActionSubmitFormFromDict (_cae );if _gdd !=nil {return nil ,_gdd ;};_cgdd .PdfAction =_cgd ;_cgd ._gc =_cgdd ;return _cgd ,nil ;case ActionTypeResetForm :_bcad ,_gfb :=_cc .newPdfActionResetFormFromDict (_cae );
if _gfb !=nil {return nil ,_gfb ;};_bcad .PdfAction =_cgd ;_cgd ._gc =_bcad ;return _cgd ,nil ;case ActionTypeImportData :_eac ,_fbb :=_cc .newPdfActionImportDataFromDict (_cae );if _fbb !=nil {return nil ,_fbb ;};_eac .PdfAction =_cgd ;_cgd ._gc =_eac ;
return _cgd ,nil ;case ActionTypeSetOCGState :_gcd ,_ddce :=_cc .newPdfActionSetOCGStateFromDict (_cae );if _ddce !=nil {return nil ,_ddce ;};_gcd .PdfAction =_cgd ;_cgd ._gc =_gcd ;return _cgd ,nil ;case ActionTypeRendition :_bgd ,_cgg :=_cc .newPdfActionRenditionFromDict (_cae );
if _cgg !=nil {return nil ,_cgg ;};_bgd .PdfAction =_cgd ;_cgd ._gc =_bgd ;return _cgd ,nil ;case ActionTypeTrans :_agf ,_ccg :=_cc .newPdfActionTransFromDict (_cae );if _ccg !=nil {return nil ,_ccg ;};_agf .PdfAction =_cgd ;_cgd ._gc =_agf ;return _cgd ,nil ;
case ActionTypeGoTo3DView :_bbb ,_ace :=_cc .newPdfActionGoTo3DViewFromDict (_cae );if _ace !=nil {return nil ,_ace ;};_bbb .PdfAction =_cgd ;_cgd ._gc =_bbb ;return _cgd ,nil ;case ActionTypeJavaScript :_gcg ,_fdeb :=_cc .newPdfActionJavaScriptFromDict (_cae );
if _fdeb !=nil {return nil ,_fdeb ;};_gcg .PdfAction =_cgd ;_cgd ._gc =_gcg ;return _cgd ,nil ;};_gd .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",_adb );
return nil ,nil ;};
// ToPdfObject implements interface PdfModel.
func (_dfb *PdfActionURI )ToPdfObject ()_ac .PdfObject {_dfb .PdfAction .ToPdfObject ();_gdc :=_dfb ._eef ;_gcf :=_gdc .PdfObject .(*_ac .PdfObjectDictionary );_gcf .SetIfNotNil ("\u0053",_ac .MakeName (string (ActionTypeURI )));_gcf .SetIfNotNil ("\u0055\u0052\u0049",_dfb .URI );
_gcf .SetIfNotNil ("\u0049\u0073\u004da\u0070",_dfb .IsMap );return _gdc ;};
// IsPush returns true if the button field represents a push button, false otherwise.
func (_aegea *PdfFieldButton )IsPush ()bool {return _aegea .GetType ()==ButtonTypePush };
// 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 *_ac .PdfObjectName ;P *_ac .PdfObjectInteger ;V *_ac .PdfObjectName ;};func _bbcdd (_dcgg _ac .PdfObject )(*PdfColorspaceLab ,error ){_ggbe :=NewPdfColorspaceLab ();if _afgga ,_agffg :=_dcgg .(*_ac .PdfIndirectObject );
_agffg {_ggbe ._gacg =_afgga ;};_dcgg =_ac .TraceToDirectObject (_dcgg );_cceae ,_aebcf :=_dcgg .(*_ac .PdfObjectArray );if !_aebcf {return nil ,_d .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _cceae .Len ()!=2{return nil ,_d .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0043\u0061\u006c\u0052G\u0042 \u0063o\u006c\u006f\u0072\u0073\u0070\u0061\u0063e");
};_dcgg =_ac .TraceToDirectObject (_cceae .Get (0));_bgdd ,_aebcf :=_dcgg .(*_ac .PdfObjectName );if !_aebcf {return nil ,_d .Errorf ("\u006c\u0061\u0062\u0020\u006e\u0061\u006d\u0065\u0020\u006e\u006ft\u0020\u0061\u0020\u004e\u0061\u006d\u0065\u0020\u006f\u0062j\u0065\u0063\u0074");
};if *_bgdd !="\u004c\u0061\u0062"{return nil ,_d .Errorf ("n\u006ft\u0020\u0061\u0020\u004c\u0061\u0062\u0020\u0063o\u006c\u006f\u0072\u0073pa\u0063\u0065");};_dcgg =_ac .TraceToDirectObject (_cceae .Get (1));_dfag ,_aebcf :=_dcgg .(*_ac .PdfObjectDictionary );
if !_aebcf {return nil ,_d .Errorf ("c\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063\u0065\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061r\u0079\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067\u0020or\u0020\u0069\u006ev\u0061l\u0069\u0064");};
_dcgg =_dfag .Get ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074");_dcgg =_ac .TraceToDirectObject (_dcgg );_gagf ,_aebcf :=_dcgg .(*_ac .PdfObjectArray );if !_aebcf {return nil ,_d .Errorf ("\u004c\u0061\u0062\u0020In\u0076\u0061\u006c\u0069\u0064\u0020\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069n\u0074");
};if _gagf .Len ()!=3{return nil ,_d .Errorf ("\u004c\u0061b\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074\u0020\u0061rr\u0061\u0079");};_aeadf ,_cgae :=_gagf .GetAsFloat64Slice ();
if _cgae !=nil {return nil ,_cgae ;};_ggbe .WhitePoint =_aeadf ;_dcgg =_dfag .Get ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074");if _dcgg !=nil {_dcgg =_ac .TraceToDirectObject (_dcgg );_agde ,_bgce :=_dcgg .(*_ac .PdfObjectArray );if !_bgce {return nil ,_d .Errorf ("\u004c\u0061\u0062: \u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074");
};if _agde .Len ()!=3{return nil ,_d .Errorf ("\u004c\u0061b\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074\u0020\u0061rr\u0061\u0079");};_eeecg ,_dcea :=_agde .GetAsFloat64Slice ();
if _dcea !=nil {return nil ,_dcea ;};_ggbe .BlackPoint =_eeecg ;};_dcgg =_dfag .Get ("\u0052\u0061\u006eg\u0065");if _dcgg !=nil {_dcgg =_ac .TraceToDirectObject (_dcgg );_ddfd ,_ffgg :=_dcgg .(*_ac .PdfObjectArray );if !_ffgg {_gd .Log .Error ("\u0052\u0061n\u0067\u0065\u0020t\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");
return nil ,_d .Errorf ("\u004ca\u0062:\u0020\u0054\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _ddfd .Len ()!=4{_gd .Log .Error ("\u0052\u0061\u006e\u0067\u0065\u0020\u0072\u0061\u006e\u0067\u0065\u0020e\u0072\u0072\u006f\u0072");return nil ,_d .Errorf ("\u004c\u0061b\u003a\u0020\u0052a\u006e\u0067\u0065\u0020\u0065\u0072\u0072\u006f\u0072");
};_gcdgb ,_dcddc :=_ddfd .GetAsFloat64Slice ();if _dcddc !=nil {return nil ,_dcddc ;};_ggbe .Range =_gcdgb ;};return _ggbe ,nil ;};
// ToPdfObject returns the PDF representation of the colorspace.
func (_bedfef *PdfPageResourcesColorspaces )ToPdfObject ()_ac .PdfObject {_ddgdd :=_ac .MakeDict ();for _ ,_cbfgc :=range _bedfef .Names {_ddgdd .Set (_ac .PdfObjectName (_cbfgc ),_bedfef .Colorspaces [_cbfgc ].ToPdfObject ());};if _bedfef ._cegba !=nil {_bedfef ._cegba .PdfObject =_ddgdd ;
return _bedfef ._cegba ;};return _ddgdd ;};
// SetDecode sets the decode image float slice.
func (_dgdga *Image )SetDecode (decode []float64 ){_dgdga ._gffd =decode };func (_afc *PdfReader )newPdfAnnotationRichMediaFromDict (_bgff *_ac .PdfObjectDictionary )(*PdfAnnotationRichMedia ,error ){_dgbg :=&PdfAnnotationRichMedia {};_dgbg .RichMediaSettings =_bgff .Get ("\u0052\u0069\u0063\u0068\u004d\u0065\u0064\u0069\u0061\u0053\u0065\u0074t\u0069\u006e\u0067\u0073");
_dgbg .RichMediaContent =_bgff .Get ("\u0052\u0069c\u0068\u004d\u0065d\u0069\u0061\u0043\u006f\u006e\u0074\u0065\u006e\u0074");return _dgbg ,nil ;};const (TrappedUnknown PdfInfoTrapped ="\u0055n\u006b\u006e\u006f\u0077\u006e";TrappedTrue PdfInfoTrapped ="\u0054\u0072\u0075\u0065";
TrappedFalse PdfInfoTrapped ="\u0046\u0061\u006cs\u0065";);
// NewStandard14FontWithEncoding returns the standard 14 font named `basefont` as a *PdfFont and
// a TextEncoder that encodes all the runes in `alphabet`, or an error if this is not possible.
// An error can occur if `basefont` is not one the standard 14 font names.
func NewStandard14FontWithEncoding (basefont StdFontName ,alphabet map[rune ]int )(*PdfFont ,_gf .SimpleEncoder ,error ){_fcefb ,_adeab :=_cdef (basefont );if _adeab !=nil {return nil ,nil ,_adeab ;};_fggdb ,_edfd :=_fcefb .Encoder ().(_gf .SimpleEncoder );
if !_edfd {return nil ,nil ,_d .Errorf ("\u006f\u006e\u006c\u0079\u0020s\u0069\u006d\u0070\u006c\u0065\u0020\u0065\u006e\u0063\u006f\u0064\u0069\u006eg\u0020\u0069\u0073\u0020\u0073\u0075\u0070\u0070\u006f\u0072\u0074\u0065\u0064\u002c\u0020\u0067\u006f\u0074\u0020\u0025\u0054",_fcefb .Encoder ());
};_abaa :=make (map[rune ]_gf .GlyphName );for _afb :=range alphabet {if _ ,_fbfd :=_fggdb .RuneToCharcode (_afb );!_fbfd {_ ,_fcgdg :=_fcefb ._gbbfd .Read (_afb );if !_fcgdg {_gd .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",_afb ,_afb );
continue ;};_gdbae ,_fcgdg :=_gf .RuneToGlyph (_afb );if !_fcgdg {_gd .Log .Debug ("\u006eo\u0020\u0067\u006c\u0079\u0070\u0068\u0020\u0066\u006f\u0072\u0020r\u0075\u006e\u0065\u0020\u0025\u0023\u0078\u003d\u0025\u0071",_afb ,_afb );continue ;};if len (_abaa )>=255{return nil ,nil ,_af .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");
};_abaa [_afb ]=_gdbae ;};};var (_eedb []_gf .CharCode ;_geef []_gf .CharCode ;);for _fgfbb :=_gf .CharCode (1);_fgfbb <=0xff;_fgfbb ++{_bccb ,_gadag :=_fggdb .CharcodeToRune (_fgfbb );if !_gadag {_eedb =append (_eedb ,_fgfbb );continue ;};if _ ,_gadag =alphabet [_bccb ];
!_gadag {_geef =append (_geef ,_fgfbb );};};_bfabe :=append (_eedb ,_geef ...);if len (_bfabe )< len (_abaa ){return nil ,nil ,_d .Errorf ("n\u0065\u0065\u0064\u0020\u0074\u006f\u0020\u0065\u006ec\u006f\u0064\u0065\u0020\u0025\u0064\u0020ru\u006e\u0065\u0073\u002c \u0062\u0075\u0074\u0020\u0068\u0061\u0076\u0065\u0020on\u006c\u0079 \u0025\u0064\u0020\u0073\u006c\u006f\u0074\u0073",len (_abaa ),len (_bfabe ));
};_ageb :=make ([]rune ,0,len (_abaa ));for _fgfa :=range _abaa {_ageb =append (_ageb ,_fgfa );};_fb .Slice (_ageb ,func (_cacbg ,_fada int )bool {return _ageb [_cacbg ]< _ageb [_fada ]});_bfge :=make (map[_gf .CharCode ]_gf .GlyphName ,len (_ageb ));for _ ,_dgedb :=range _ageb {_edba :=_bfabe [0];
_bfabe =_bfabe [1:];_bfge [_edba ]=_abaa [_dgedb ];};_fggdb =_gf .ApplyDifferences (_fggdb ,_bfge );_fcefb .SetEncoder (_fggdb );return &PdfFont {_gegb :&_fcefb },_fggdb ,nil ;};
// GetXObjectByName returns the XObject with the specified keyName and the object type.
func (_befcf *PdfPageResources )GetXObjectByName (keyName _ac .PdfObjectName )(*_ac .PdfObjectStream ,XObjectType ){if _befcf .XObject ==nil {return nil ,XObjectTypeUndefined ;};_ffebd ,_befgg :=_ac .TraceToDirectObject (_befcf .XObject ).(*_ac .PdfObjectDictionary );
if !_befgg {_gd .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",_ac .TraceToDirectObject (_befcf .XObject ));
return nil ,XObjectTypeUndefined ;};if _bfbb :=_ffebd .Get (keyName );_bfbb !=nil {_bbecg ,_fcdfe :=_ac .GetStream (_bfbb );if !_fcdfe {_gd .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",_bfbb );
return nil ,XObjectTypeUndefined ;};_adfa :=_bbecg .PdfObjectDictionary ;_ccdfg ,_fcdfe :=_ac .TraceToDirectObject (_adfa .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065")).(*_ac .PdfObjectName );if !_fcdfe {_gd .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",_adfa .String ());
return nil ,XObjectTypeUndefined ;};if *_ccdfg =="\u0049\u006d\u0061g\u0065"{return _bbecg ,XObjectTypeImage ;}else if *_ccdfg =="\u0046\u006f\u0072\u006d"{return _bbecg ,XObjectTypeForm ;}else if *_ccdfg =="\u0050\u0053"{return _bbecg ,XObjectTypePS ;
}else {_gd .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",*_ccdfg );return nil ,XObjectTypeUndefined ;};}else {return nil ,XObjectTypeUndefined ;
};};func (_dceea *PdfWriter )addObject (_ddacbe _ac .PdfObject )bool {_cddea :=_dceea .hasObject (_ddacbe );if !_cddea {_begdb :=_ac .ResolveReferencesDeep (_ddacbe ,_dceea ._ebade );if _begdb !=nil {_gd .Log .Debug ("E\u0052R\u004f\u0052\u003a\u0020\u0025\u0076\u0020\u002d \u0073\u006b\u0069\u0070pi\u006e\u0067",_begdb );
};_dceea ._gdeaf =append (_dceea ._gdeaf ,_ddacbe );_dceea ._agbff [_ddacbe ]=struct{}{};return true ;};return false ;};
// NewPdfActionThread returns a new "thread" action.
func NewPdfActionThread ()*PdfActionThread {_gdf :=NewPdfAction ();_gda :=&PdfActionThread {};_gda .PdfAction =_gdf ;_gdf .SetContext (_gda );return _gda ;};func (_ggba *PdfReader )loadPerms ()(*Permissions ,error ){if _gccgg :=_ggba ._bdfc .Get ("\u0050\u0065\u0072m\u0073");
_gccgg !=nil {if _feggg ,_eaag :=_ac .GetDict (_gccgg );_eaag {_abfge :=_feggg .Get ("\u0044\u006f\u0063\u004d\u0044\u0050");if _abfge ==nil {return nil ,nil ;};if _febbb ,_edfffge :=_ac .GetIndirect (_abfge );_edfffge {_cbac ,_efag :=_ggba .newPdfSignatureFromIndirect (_febbb );
if _efag !=nil {return nil ,_efag ;};return NewPermissions (_cbac ),nil ;};return nil ,_d .Errorf ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0044\u006f\u0063M\u0044\u0050\u0020\u0065nt\u0072\u0079");};return nil ,_d .Errorf ("\u0069\u006e\u0076\u0061li\u0064\u0020\u0050\u0065\u0072\u006d\u0073\u0020\u0065\u006e\u0074\u0072\u0079");
};return nil ,nil ;};
// ColorToRGB converts a CalGray color to an RGB color.
func (_cdae *PdfColorspaceCalGray )ColorToRGB (color PdfColor )(PdfColor ,error ){_cgbd ,_gdge :=color .(*PdfColorCalGray );if !_gdge {_gd .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 ,_af .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};ANorm :=_cgbd .Val ();X :=_cdae .WhitePoint [0]*_da .Pow (ANorm ,_cdae .Gamma );Y :=_cdae .WhitePoint [1]*_da .Pow (ANorm ,_cdae .Gamma );
Z :=_cdae .WhitePoint [2]*_da .Pow (ANorm ,_cdae .Gamma );_febfc :=3.240479*X +-1.537150*Y +-0.498535*Z ;_bage :=-0.969256*X +1.875992*Y +0.041556*Z ;_dgcca :=0.055648*X +-0.204043*Y +1.057311*Z ;_febfc =_da .Min (_da .Max (_febfc ,0),1.0);_bage =_da .Min (_da .Max (_bage ,0),1.0);
_dgcca =_da .Min (_da .Max (_dgcca ,0),1.0);return NewPdfColorDeviceRGB (_febfc ,_bage ,_dgcca ),nil ;};
// 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 (_gecfa _adc .Reader )(*Image ,error );
// NewImageFromGoImage loads a NRGBA32 unidoc Image from a standard Go image structure.
NewImageFromGoImage (_cbfa _ad .Image )(*Image ,error );
// NewGrayImageFromGoImage loads a grayscale unidoc Image from a standard Go image structure.
NewGrayImageFromGoImage (_fdaea _ad .Image )(*Image ,error );
// Compress an image.
Compress (_dcbda *Image ,_beag int64 )(*Image ,error );};
// GetXHeight returns the XHeight of the font `descriptor`.
func (_facd *PdfFontDescriptor )GetXHeight ()(float64 ,error ){return _ac .GetNumberAsFloat (_facd .XHeight );};func (_bbeaf *PdfReader )newPdfSignatureReferenceFromDict (_gbfefa *_ac .PdfObjectDictionary )(*PdfSignatureReference ,error ){if _efba ,_fcbc :=_bbeaf ._gbced .GetModelFromPrimitive (_gbfefa ).(*PdfSignatureReference );
_fcbc {return _efba ,nil ;};_aeefe :=&PdfSignatureReference {_ebdca :_gbfefa ,Data :_gbfefa .Get ("\u0044\u0061\u0074\u0061")};var _cfgbb bool ;_aeefe .Type ,_ =_ac .GetName (_gbfefa .Get ("\u0054\u0079\u0070\u0065"));_aeefe .TransformMethod ,_cfgbb =_ac .GetName (_gbfefa .Get ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u004d\u0065\u0074\u0068\u006f\u0064"));
if !_cfgbb {_gd .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 ;};_aeefe .TransformParams ,_ =_ac .GetDict (_gbfefa .Get ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u0050\u0061\u0072\u0061\u006d\u0073"));_aeefe .DigestMethod ,_ =_ac .GetName (_gbfefa .Get ("\u0044\u0069\u0067e\u0073\u0074\u004d\u0065\u0074\u0068\u006f\u0064"));
return _aeefe ,nil ;};
// PdfActionResetForm represents a resetForm action.
type PdfActionResetForm struct{*PdfAction ;Fields _ac .PdfObject ;Flags _ac .PdfObject ;};
// NewPdfActionGoToR returns a new "go to remote" action.
func NewPdfActionGoToR ()*PdfActionGoToR {_ab :=NewPdfAction ();_dbd :=&PdfActionGoToR {};_dbd .PdfAction =_ab ;_ab .SetContext (_dbd );return _dbd ;};
// 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 (_efdbg *PdfReader )Inspect ()(map[string ]int ,error ){return _efdbg ._eebeg .Inspect ()};func (_dfgd *PdfReader )newPdfAnnotationLineFromDict (_dcag *_ac .PdfObjectDictionary )(*PdfAnnotationLine ,error ){_dgdg :=PdfAnnotationLine {};_bgg ,_badg :=_dfgd .newPdfAnnotationMarkupFromDict (_dcag );
if _badg !=nil {return nil ,_badg ;};_dgdg .PdfAnnotationMarkup =_bgg ;_dgdg .L =_dcag .Get ("\u004c");_dgdg .BS =_dcag .Get ("\u0042\u0053");_dgdg .LE =_dcag .Get ("\u004c\u0045");_dgdg .IC =_dcag .Get ("\u0049\u0043");_dgdg .LL =_dcag .Get ("\u004c\u004c");
_dgdg .LLE =_dcag .Get ("\u004c\u004c\u0045");_dgdg .Cap =_dcag .Get ("\u0043\u0061\u0070");_dgdg .IT =_dcag .Get ("\u0049\u0054");_dgdg .LLO =_dcag .Get ("\u004c\u004c\u004f");_dgdg .CP =_dcag .Get ("\u0043\u0050");_dgdg .Measure =_dcag .Get ("\u004de\u0061\u0073\u0075\u0072\u0065");
_dgdg .CO =_dcag .Get ("\u0043\u004f");return &_dgdg ,nil ;};
// ToPdfObject implements interface PdfModel.
func (_ecac *PdfAnnotationStrikeOut )ToPdfObject ()_ac .PdfObject {_ecac .PdfAnnotation .ToPdfObject ();_cff :=_ecac ._fegd ;_bedd :=_cff .PdfObject .(*_ac .PdfObjectDictionary );_ecac .PdfAnnotationMarkup .appendToPdfDictionary (_bedd );_bedd .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ac .MakeName ("\u0053t\u0072\u0069\u006b\u0065\u004f\u0075t"));
_bedd .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_ecac .QuadPoints );return _cff ;};
// PdfActionThread represents a thread action.
type PdfActionThread struct{*PdfAction ;F *PdfFilespec ;D _ac .PdfObject ;B _ac .PdfObject ;};func _fdcde (_dedcd []byte )(_bfgfce ,_fgffd string ,_cfgab error ){_gd .Log .Trace ("g\u0065\u0074\u0041\u0053CI\u0049S\u0065\u0063\u0074\u0069\u006fn\u0073\u003a\u0020\u0025\u0064\u0020",len (_dedcd ));
_dfbd :=_dafaca .FindIndex (_dedcd );if _dfbd ==nil {_gd .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 "","",_ac .ErrTypeError ;};_dgbb :=_dfbd [1];_gfebc :=_fg .Index (string (_dedcd [_dgbb :]),_geac );if _gfebc < 0{_bfgfce =string (_dedcd [_dgbb :]);return _bfgfce ,"",nil ;};_bbdea :=_dgbb +_gfebc ;_bfgfce =string (_dedcd [_dgbb :_bbdea ]);_bbebf :=_bbdea ;
_gfebc =_fg .Index (string (_dedcd [_bbebf :]),_ddec );if _gfebc < 0{_gd .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",_cfgab );
return "","",_ac .ErrTypeError ;};_gefee :=_bbebf +_gfebc ;_fgffd =string (_dedcd [_bbebf :_gefee ]);return _bfgfce ,_fgffd ,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 (_becf *PdfColorspaceLab )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=3{return nil ,_af .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_bgdeg :=vals [0];if _bgdeg < 0.0||_bgdeg > 100.0{_gd .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",_bgdeg );
return nil ,ErrColorOutOfRange ;};_feaa :=vals [1];_cabbd :=float64 (-100);_gbcdc :=float64 (100);if len (_becf .Range )> 1{_cabbd =_becf .Range [0];_gbcdc =_becf .Range [1];};if _feaa < _cabbd ||_feaa > _gbcdc {_gd .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",_feaa ,_cabbd ,_gbcdc );
return nil ,ErrColorOutOfRange ;};_gdbd :=vals [2];_cbeec :=float64 (-100);_acee :=float64 (100);if len (_becf .Range )> 3{_cbeec =_becf .Range [2];_acee =_becf .Range [3];};if _gdbd < _cbeec ||_gdbd > _acee {_gd .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",_gdbd ,_cbeec ,_acee );
return nil ,ErrColorOutOfRange ;};_dfcd :=NewPdfColorLab (_bgdeg ,_feaa ,_gdbd );return _dfcd ,nil ;};
// GetShadingByName gets the shading specified by keyName. Returns nil if not existing.
// The bool flag indicated whether it was found or not.
func (_fadfe *PdfPageResources )GetShadingByName (keyName _ac .PdfObjectName )(*PdfShading ,bool ){if _fadfe .Shading ==nil {return nil ,false ;};_gfbgb ,_fcdfb :=_ac .TraceToDirectObject (_fadfe .Shading ).(*_ac .PdfObjectDictionary );if !_fcdfb {_gd .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",_fadfe .Shading );
return nil ,false ;};if _bcgfc :=_gfbgb .Get (keyName );_bcgfc !=nil {_abaab ,_eeegg :=_gccgd (_bcgfc );if _eeegg !=nil {_gd .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",_eeegg );
return nil ,false ;};return _abaab ,true ;};return nil ,false ;};func _gaada (_dabae _adc .ReadSeeker ,_edgce *ReaderOpts ,_defg bool ,_gbcad string )(*PdfReader ,error ){if _edgce ==nil {_edgce =NewReaderOpts ();};_ddced :=*_edgce ;_dbba :=&PdfReader {_fafc :_dabae ,_cccb :map[_ac .PdfObject ]struct{}{},_gbced :_ddabf (),_dfgg :_edgce .LazyLoad ,_edcge :_edgce .ComplianceMode ,_agfbe :_defg ,_dcbgf :&_ddced };
_gdfdb ,_ebcc :=_ceec ("\u0072");if _ebcc !=nil {return nil ,_ebcc ;};_ebcc =_cb .Track (_gdfdb ,_gbcad );if _ebcc !=nil {return nil ,_ebcc ;};_dbba ._cdgb =_gdfdb ;var _abgg *_ac .PdfParser ;if !_dbba ._edcge {_abgg ,_ebcc =_ac .NewParser (_dabae );}else {_abgg ,_ebcc =_ac .NewCompliancePdfParser (_dabae );
};if _ebcc !=nil {return nil ,_ebcc ;};_dbba ._eebeg =_abgg ;_aeabe ,_ebcc :=_dbba .IsEncrypted ();if _ebcc !=nil {return nil ,_ebcc ;};if !_aeabe {_ebcc =_dbba .loadStructure ();if _ebcc !=nil {return nil ,_ebcc ;};}else if _defg {_bcae ,_aebeb :=_dbba .Decrypt ([]byte (_edgce .Password ));
if _aebeb !=nil {return nil ,_aebeb ;};if !_bcae {return nil ,_af .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");
};};_dbba ._geega =make (map[*PdfReader ]*PdfReader );_dbba ._aedce =make ([]*PdfReader ,_abgg .GetRevisionNumber ());return _dbba ,nil ;};
// GetVersion gets the document version.
func (_cebgc *PdfWriter )GetVersion ()_ac .Version {return _cebgc ._gdfdc };func _caec (_eefb _ac .PdfObject )(*PdfFilespec ,error ){if _eefb ==nil {return nil ,nil ;};return NewPdfFilespecFromObj (_eefb );};
// ToPdfObject implements interface PdfModel.
func (_fbgadf *PdfTransformParamsDocMDP )ToPdfObject ()_ac .PdfObject {_dcefb :=_ac .MakeDict ();_dcefb .SetIfNotNil ("\u0054\u0079\u0070\u0065",_fbgadf .Type );_dcefb .SetIfNotNil ("\u0056",_fbgadf .V );_dcefb .SetIfNotNil ("\u0050",_fbgadf .P );return _dcefb ;
};
// GetContentStream returns the XObject Form's content stream.
func (_bcddc *XObjectForm )GetContentStream ()([]byte ,error ){_eaceb ,_daddg :=_ac .DecodeStream (_bcddc ._fggc );if _daddg !=nil {return nil ,_daddg ;};return _eaceb ,nil ;};
// XObjectImage (Table 89 in 8.9.5.1).
// Implements PdfModel interface.
type XObjectImage struct{
//ColorSpace PdfObject
Width *int64 ;Height *int64 ;ColorSpace PdfColorspace ;BitsPerComponent *int64 ;Filter _ac .StreamEncoder ;Intent _ac .PdfObject ;ImageMask _ac .PdfObject ;Mask _ac .PdfObject ;Matte _ac .PdfObject ;Decode _ac .PdfObject ;Interpolate _ac .PdfObject ;Alternatives _ac .PdfObject ;
SMask _ac .PdfObject ;SMaskInData _ac .PdfObject ;Name _ac .PdfObject ;StructParent _ac .PdfObject ;ID _ac .PdfObject ;OPI _ac .PdfObject ;Metadata _ac .PdfObject ;OC _ac .PdfObject ;Stream []byte ;_gfbdff *_ac .PdfObjectStream ;};
// ToPdfObject implements interface PdfModel.
func (_bac *PdfActionGoTo3DView )ToPdfObject ()_ac .PdfObject {_bac .PdfAction .ToPdfObject ();_edd :=_bac ._eef ;_gaf :=_edd .PdfObject .(*_ac .PdfObjectDictionary );_gaf .SetIfNotNil ("\u0053",_ac .MakeName (string (ActionTypeGoTo3DView )));_gaf .SetIfNotNil ("\u0054\u0041",_bac .TA );
_gaf .SetIfNotNil ("\u0056",_bac .V );return _edd ;};
// GetContentStreamObjs returns a slice of PDF objects containing the content
// streams of the page.
func (_gbagg *PdfPage )GetContentStreamObjs ()[]_ac .PdfObject {if _gbagg .Contents ==nil {return nil ;};_daag :=_ac .TraceToDirectObject (_gbagg .Contents );if _eaeba ,_dabb :=_daag .(*_ac .PdfObjectArray );_dabb {return _eaeba .Elements ();};return []_ac .PdfObject {_daag };
};
// AddExtGState add External Graphics State (GState). The gsDict can be specified
// either directly as a dictionary or an indirect object containing a dictionary.
func (_bfcf *PdfPageResources )AddExtGState (gsName _ac .PdfObjectName ,gsDict _ac .PdfObject )error {if _bfcf .ExtGState ==nil {_bfcf .ExtGState =_ac .MakeDict ();};_afbd :=_bfcf .ExtGState ;_facfe ,_bdedeg :=_ac .TraceToDirectObject (_afbd ).(*_ac .PdfObjectDictionary );
if !_bdedeg {_gd .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",_afbd ,_ac .TraceToDirectObject (_afbd ));
return _ac .ErrTypeError ;};_facfe .Set (gsName ,gsDict );return nil ;};
// ToPdfObject implements interface PdfModel.
func (_gga *PdfActionJavaScript )ToPdfObject ()_ac .PdfObject {_gga .PdfAction .ToPdfObject ();_cfe :=_gga ._eef ;_ecbf :=_cfe .PdfObject .(*_ac .PdfObjectDictionary );_ecbf .SetIfNotNil ("\u0053",_ac .MakeName (string (ActionTypeJavaScript )));_ecbf .SetIfNotNil ("\u004a\u0053",_gga .JS );
return _cfe ;};
// BaseFont returns the font's "BaseFont" field.
func (_ccfgc *PdfFont )BaseFont ()string {return _ccfgc .baseFields ()._abab };
// 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 (_geage *CompliancePdfReader )error ;};func _dgfc (_aggb _ac .PdfObject ,_bfgfc *fontCommon )(*_eg .CMap ,error ){_ebgbc ,_facebf :=_ac .GetStream (_aggb );if !_facebf {_gd .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",_aggb );
return nil ,_ac .ErrTypeError ;};_aaad ,_edfffg :=_ac .DecodeStream (_ebgbc );if _edfffg !=nil {return nil ,_edfffg ;};_ddff ,_edfffg :=_eg .LoadCmapFromData (_aaad ,!_bfgfc .isCIDFont ());if _edfffg !=nil {_gd .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",_ebgbc .ObjectNumber ,_edfffg );
};return _ddff ,_edfffg ;};
// NewPdfActionNamed returns a new "named" action.
func NewPdfActionNamed ()*PdfActionNamed {_egb :=NewPdfAction ();_adce :=&PdfActionNamed {};_adce .PdfAction =_egb ;_egb .SetContext (_adce );return _adce ;};
// GetNumComponents returns the number of color components of the colorspace device.
// Returns 1 for a CalGray device.
func (_bcg *PdfColorspaceCalGray )GetNumComponents ()int {return 1};var (ErrRequiredAttributeMissing =_af .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 =_af .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0061\u0074\u0074\u0072i\u0062\u0075\u0074\u0065");ErrTypeCheck =_af .New ("\u0074\u0079\u0070\u0065\u0020\u0063\u0068\u0065\u0063\u006b");_gbda =_af .New ("\u0072\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b\u0020e\u0072\u0072\u006f\u0072");
ErrEncrypted =_af .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 =_af .New ("\u0066\u006fn\u0074\u0020\u006eo\u0074\u0020\u0064\u0065\u0066\u0069\u006e\u0065\u0064");
ErrFontNotSupported =_bg .Errorf ("u\u006e\u0073\u0075\u0070po\u0072t\u0065\u0064\u0020\u0066\u006fn\u0074\u0020\u0028\u0025\u0077\u0029",_ac .ErrNotSupported );ErrType1CFontNotSupported =_bg .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",_ac .ErrNotSupported );
ErrType3FontNotSupported =_bg .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",_ac .ErrNotSupported );
ErrTTCmapNotSupported =_bg .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",_ac .ErrNotSupported );
ErrSignNotEnoughSpace =_bg .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 =_bg .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"););
// SetColorspaceByName adds the provided colorspace to the page resources.
func (_fffdf *PdfPageResources )SetColorspaceByName (keyName _ac .PdfObjectName ,cs PdfColorspace )error {_fegba ,_gdcfd :=_fffdf .GetColorspaces ();if _gdcfd !=nil {_gd .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",_gdcfd );
return _gdcfd ;};if _fegba ==nil {_fegba =NewPdfPageResourcesColorspaces ();_fffdf .SetColorSpace (_fegba );};_fegba .Set (keyName ,cs );return nil ;};func _bcefb ()string {_gcaaba .Lock ();defer _gcaaba .Unlock ();return _bffb };
// GetContext returns the annotation context which contains the specific type-dependent context.
// The context represents the subannotation.
func (_cbe *PdfAnnotation )GetContext ()PdfModel {if _cbe ==nil {return nil ;};return _cbe ._cgf ;};func (_caaf *PdfReader )newPdfAnnotationCaretFromDict (_fab *_ac .PdfObjectDictionary )(*PdfAnnotationCaret ,error ){_fbcb :=PdfAnnotationCaret {};_dac ,_cggg :=_caaf .newPdfAnnotationMarkupFromDict (_fab );
if _cggg !=nil {return nil ,_cggg ;};_fbcb .PdfAnnotationMarkup =_dac ;_fbcb .RD =_fab .Get ("\u0052\u0044");_fbcb .Sy =_fab .Get ("\u0053\u0079");return &_fbcb ,nil ;};func (_facbf *XObjectImage )getParamsDict ()*_ac .PdfObjectDictionary {_deeff :=_ac .MakeDict ();
_deeff .Set ("\u0057\u0069\u0064t\u0068",_ac .MakeInteger (*_facbf .Width ));_deeff .Set ("\u0048\u0065\u0069\u0067\u0068\u0074",_ac .MakeInteger (*_facbf .Height ));_deeff .Set ("\u0043o\u006co\u0072\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074\u0073",_ac .MakeInteger (int64 (_facbf .ColorSpace .GetNumComponents ())));
_deeff .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_ac .MakeInteger (*_facbf .BitsPerComponent ));return _deeff ;};func (_cafbb *pdfCIDFontType2 )baseFields ()*fontCommon {return &_cafbb .fontCommon };
// SetContentStream sets the pattern cell's content stream.
func (_cdad *PdfTilingPattern )SetContentStream (content []byte ,encoder _ac .StreamEncoder )error {_eacfe ,_ggggd :=_cdad ._fddfb .(*_ac .PdfObjectStream );if !_ggggd {_gd .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",_cdad ._fddfb );
return _ac .ErrTypeError ;};if encoder ==nil {encoder =_ac .NewRawEncoder ();};_bcag :=_eacfe .PdfObjectDictionary ;_agec :=encoder .MakeStreamDict ();_bcag .Merge (_agec );_cdbf ,_ccefa :=encoder .EncodeBytes (content );if _ccefa !=nil {return _ccefa ;
};_bcag .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_ac .MakeInteger (int64 (len (_cdbf ))));_eacfe .Stream =_cdbf ;return 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 (_bdgc *PdfColorspaceDeviceCMYK )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=4{return nil ,_af .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_dafc :=vals [0];if _dafc < 0.0||_dafc > 1.0{_gd .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_dafc );
return nil ,ErrColorOutOfRange ;};_gdba :=vals [1];if _gdba < 0.0||_gdba > 1.0{_gd .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_gdba );return nil ,ErrColorOutOfRange ;
};_bdd :=vals [2];if _bdd < 0.0||_bdd > 1.0{_gd .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_bdd );return nil ,ErrColorOutOfRange ;};_beaf :=vals [3];if _beaf < 0.0||_beaf > 1.0{_gd .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_beaf );
return nil ,ErrColorOutOfRange ;};_febf :=NewPdfColorDeviceCMYK (_dafc ,_gdba ,_bdd ,_beaf );return _febf ,nil ;};var (_dafaca =_ce .MustCompile ("\u005cd\u002b\u0020\u0064\u0069c\u0074\u005c\u0073\u002b\u0028d\u0075p\u005cs\u002b\u0029\u003f\u0062\u0065\u0067\u0069n");
_bbbe =_ce .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");_dfedc =_ce .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");
_geac ="\u002f\u0045\u006e\u0063od\u0069\u006e\u0067\u0020\u0032\u0035\u0036\u0020\u0061\u0072\u0072\u0061\u0079";_ddec ="\u0072\u0065\u0061d\u006f\u006e\u006c\u0079\u0020\u0064\u0065\u0066";_ecddaf ="\u0063\u0075\u0072\u0072\u0065\u006e\u0074\u0066\u0069\u006c\u0065\u0020e\u0065\u0078\u0065\u0063";
);
// GetAscent returns the Ascent of the font `descriptor`.
func (_efffa *PdfFontDescriptor )GetAscent ()(float64 ,error ){return _ac .GetNumberAsFloat (_efffa .Ascent );};func (_ecc *PdfReader )newPdfActionResetFormFromDict (_eaf *_ac .PdfObjectDictionary )(*PdfActionResetForm ,error ){return &PdfActionResetForm {Fields :_eaf .Get ("\u0046\u0069\u0065\u006c\u0064\u0073"),Flags :_eaf .Get ("\u0046\u006c\u0061g\u0073")},nil ;
};
// PdfPageResources is a Page resources model.
// Implements PdfModel.
type PdfPageResources struct{ExtGState _ac .PdfObject ;ColorSpace _ac .PdfObject ;Pattern _ac .PdfObject ;Shading _ac .PdfObject ;XObject _ac .PdfObject ;Font _ac .PdfObject ;ProcSet _ac .PdfObject ;Properties _ac .PdfObject ;_ccggg *_ac .PdfObjectDictionary ;
_bdcee *PdfPageResourcesColorspaces ;};
// GetContainingPdfObject implements interface PdfModel.
func (_cbc *PdfAction )GetContainingPdfObject ()_ac .PdfObject {return _cbc ._eef };
// GetRevisionNumber returns the version of the current Pdf document
func (_cdaed *PdfReader )GetRevisionNumber ()int {return _cdaed ._eebeg .GetRevisionNumber ()};
// 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 (_afdec *PdfColorspaceCalGray )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=1{return nil ,_af .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_fdaf :=vals [0];if _fdaf < 0.0||_fdaf > 1.0{_gd .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_fdaf );
return nil ,ErrColorOutOfRange ;};_efc :=NewPdfColorCalGray (_fdaf );return _efc ,nil ;};const (BorderStyleSolid BorderStyle =iota ;BorderStyleDashed BorderStyle =iota ;BorderStyleBeveled BorderStyle =iota ;BorderStyleInset BorderStyle =iota ;BorderStyleUnderline BorderStyle =iota ;
);
// SetFlag sets the flag for the field.
func (_aaaca *PdfField )SetFlag (flag FieldFlag ){_aaaca .Ff =_ac .MakeInteger (int64 (flag ))};
// GetNumPages returns the number of pages in the document.
func (_fbcfg *PdfReader )GetNumPages ()(int ,error ){if _fbcfg ._eebeg .GetCrypter ()!=nil &&!_fbcfg ._eebeg .IsAuthenticated (){return 0,_d .Errorf ("\u0066\u0069\u006ce\u0020\u006e\u0065\u0065d\u0020\u0074\u006f\u0020\u0062\u0065\u0020d\u0065\u0063\u0072\u0079\u0070\u0074\u0065\u0064\u0020\u0066\u0069\u0072\u0073\u0074");
};return len (_fbcfg ._acca ),nil ;};
// SetFontByName sets the font specified by keyName to the given object.
func (_dcfbg *PdfPageResources )SetFontByName (keyName _ac .PdfObjectName ,obj _ac .PdfObject )error {if _dcfbg .Font ==nil {_dcfbg .Font =_ac .MakeDict ();};_eabfe ,_gbedc :=_ac .TraceToDirectObject (_dcfbg .Font ).(*_ac .PdfObjectDictionary );if !_gbedc {_gd .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",_ac .TraceToDirectObject (_dcfbg .Font ));
return _ac .ErrTypeError ;};_eabfe .Set (keyName ,obj );return nil ;};
// GetNumComponents returns the number of color components (1 for Separation).
func (_adad *PdfColorspaceSpecialSeparation )GetNumComponents ()int {return 1};
// ToPdfObject returns a PDF object representation of the outline destination.
func (_cbebd OutlineDest )ToPdfObject ()_ac .PdfObject {if (_cbebd .PageObj ==nil &&_cbebd .Page < 0)||_cbebd .Mode ==""{return _ac .MakeNull ();};_caadd :=_ac .MakeArray ();if _cbebd .PageObj !=nil {_caadd .Append (_cbebd .PageObj );}else {_caadd .Append (_ac .MakeInteger (_cbebd .Page ));
};_caadd .Append (_ac .MakeName (_cbebd .Mode ));switch _cbebd .Mode {case "\u0046\u0069\u0074","\u0046\u0069\u0074\u0042":case "\u0046\u0069\u0074\u0048","\u0046\u0069\u0074B\u0048":_caadd .Append (_ac .MakeFloat (_cbebd .Y ));case "\u0046\u0069\u0074\u0056","\u0046\u0069\u0074B\u0056":_caadd .Append (_ac .MakeFloat (_cbebd .X ));
case "\u0058\u0059\u005a":_caadd .Append (_ac .MakeFloat (_cbebd .X ));_caadd .Append (_ac .MakeFloat (_cbebd .Y ));_caadd .Append (_ac .MakeFloat (_cbebd .Zoom ));default:_caadd .Set (1,_ac .MakeName ("\u0046\u0069\u0074"));};return _caadd ;};var ImageHandling ImageHandler =DefaultImageHandler {};
// DecodeArray returns the range of color component values in CalRGB colorspace.
func (_ggce *PdfColorspaceCalRGB )DecodeArray ()[]float64 {return []float64 {0.0,1.0,0.0,1.0,0.0,1.0};};
// CustomKeys returns all custom info keys as list.
func (_fbafc *PdfInfo )CustomKeys ()[]string {if _fbafc ._ggfb ==nil {return nil ;};_dcff :=make ([]string ,len (_fbafc ._ggfb .Keys ()));for _ ,_ffea :=range _fbafc ._ggfb .Keys (){_dcff =append (_dcff ,_ffea .String ());};return _dcff ;};
// GetColorspaceByName returns the colorspace with the specified name from the page resources.
func (_bcaeb *PdfPageResources )GetColorspaceByName (keyName _ac .PdfObjectName )(PdfColorspace ,bool ){_afbb ,_dbdef :=_bcaeb .GetColorspaces ();if _dbdef !=nil {_gd .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",_dbdef );
return nil ,false ;};if _afbb ==nil {return nil ,false ;};_afccf ,_cagg :=_afbb .Colorspaces [string (keyName )];if !_cagg {return nil ,false ;};return _afccf ,true ;};
// B returns the value of the B component of the color.
func (_dggb *PdfColorCalRGB )B ()float64 {return _dggb [1]};func _fcbgg (_bdacd _fda .StdFont )pdfFontSimple {_fgcgf :=_bdacd .Descriptor ();return pdfFontSimple {fontCommon :fontCommon {_efebg :"\u0054\u0079\u0070e\u0031",_abab :_bdacd .Name ()},_gbbfd :_bdacd .GetMetricsTable (),_ffbea :&PdfFontDescriptor {FontName :_ac .MakeName (string (_fgcgf .Name )),FontFamily :_ac .MakeName (_fgcgf .Family ),FontWeight :_ac .MakeFloat (float64 (_fgcgf .Weight )),Flags :_ac .MakeInteger (int64 (_fgcgf .Flags )),FontBBox :_ac .MakeArrayFromFloats (_fgcgf .BBox [:]),ItalicAngle :_ac .MakeFloat (_fgcgf .ItalicAngle ),Ascent :_ac .MakeFloat (_fgcgf .Ascent ),Descent :_ac .MakeFloat (_fgcgf .Descent ),CapHeight :_ac .MakeFloat (_fgcgf .CapHeight ),XHeight :_ac .MakeFloat (_fgcgf .XHeight ),StemV :_ac .MakeFloat (_fgcgf .StemV ),StemH :_ac .MakeFloat (_fgcgf .StemH )},_abbba :_bdacd .Encoder ()};
};func (_cadaa *PdfWriter )setDocumentIDs (_egfdb ,_afgc string ){_cadaa ._bffaf =_ac .MakeArray (_ac .MakeHexString (_egfdb ),_ac .MakeHexString (_afgc ));};
// GetPageLabels returns the PageLabels entry in the PDF catalog.
// See section 12.4.2 "Page Labels" (p. 382 PDF32000_2008).
func (_cafcf *PdfReader )GetPageLabels ()(_ac .PdfObject ,error ){_cdebe :=_ac .ResolveReference (_cafcf ._bdfc .Get ("\u0050\u0061\u0067\u0065\u004c\u0061\u0062\u0065\u006c\u0073"));if _cdebe ==nil {return nil ,nil ;};if !_cafcf ._dfgg {_fbcd :=_cafcf .traverseObjectData (_cdebe );
if _fbcd !=nil {return nil ,_fbcd ;};};return _cdebe ,nil ;};
// RemovePage removes a page by number.
func (_bbce *PdfAppender )RemovePage (pageNum int ){_abbbg :=pageNum -1;_bbce ._abda =append (_bbce ._abda [0:_abbbg ],_bbce ._abda [pageNum :]...);};func (_ecfa *PdfWriter )seekByName (_efccga _ac .PdfObject ,_abeda []string ,_agaf string )([]_ac .PdfObject ,error ){_gd .Log .Trace ("\u0053\u0065\u0065\u006b\u0020\u0062\u0079\u0020\u006e\u0061\u006d\u0065.\u002e\u0020\u0025\u0054",_efccga );
var _aaggf []_ac .PdfObject ;if _ffccg ,_eagaf :=_efccga .(*_ac .PdfIndirectObject );_eagaf {return _ecfa .seekByName (_ffccg .PdfObject ,_abeda ,_agaf );};if _eccfd ,_cdacc :=_efccga .(*_ac .PdfObjectStream );_cdacc {return _ecfa .seekByName (_eccfd .PdfObjectDictionary ,_abeda ,_agaf );
};if _acfea ,_gdbega :=_efccga .(*_ac .PdfObjectDictionary );_gdbega {_gd .Log .Trace ("\u0044\u0069\u0063\u0074");for _ ,_gdefg :=range _acfea .Keys (){_ecaag :=_acfea .Get (_gdefg );if string (_gdefg )==_agaf {_aaggf =append (_aaggf ,_ecaag );};for _ ,_cfegd :=range _abeda {if string (_gdefg )==_cfegd {_gd .Log .Trace ("\u0046\u006f\u006c\u006c\u006f\u0077\u0020\u006b\u0065\u0079\u0020\u0025\u0073",_cfegd );
_fcggga ,_effca :=_ecfa .seekByName (_ecaag ,_abeda ,_agaf );if _effca !=nil {return _aaggf ,_effca ;};_aaggf =append (_aaggf ,_fcggga ...);break ;};};};return _aaggf ,nil ;};return _aaggf ,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 (_fdaed *Image )GetSamples ()[]uint32 {_dgfcd :=_cg .ResampleBytes (_fdaed .Data ,int (_fdaed .BitsPerComponent ));if _fdaed .BitsPerComponent < 8{_dgfcd =_fdaed .samplesTrimPadding (_dgfcd );};_fgeaf :=int (_fdaed .Width )*int (_fdaed .Height )*_fdaed .ColorComponents ;
if len (_dgfcd )< _fgeaf {_gd .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 (_dgfcd ),_fgeaf );
return _dgfcd ;}else if len (_dgfcd )> _fgeaf {_gd .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 (_dgfcd ),_fgeaf );
_dgfcd =_dgfcd [:_fgeaf ];};return _dgfcd ;};func (_gagcf fontCommon )coreString ()string {_fagab :="";if _gagcf ._bgbdc !=nil {_fagab =_gagcf ._bgbdc .String ();};return _d .Sprintf ("\u0025#\u0071\u0020%\u0023\u0071\u0020%\u0071\u0020\u006f\u0062\u006a\u003d\u0025d\u0020\u0054\u006f\u0055\u006e\u0069c\u006f\u0064\u0065\u003d\u0025\u0074\u0020\u0066\u006c\u0061\u0067s\u003d\u0030\u0078\u0025\u0030\u0078\u0020\u0025\u0073",_gagcf ._efebg ,_gagcf ._abab ,_gagcf ._fgfd ,_gagcf ._ccega ,_gagcf ._babg !=nil ,_gagcf .fontFlags (),_fagab );
};
// AddImageResource adds an image to the XObject resources.
func (_fdabe *PdfPage )AddImageResource (name _ac .PdfObjectName ,ximg *XObjectImage )error {var _aeebg *_ac .PdfObjectDictionary ;if _fdabe .Resources .XObject ==nil {_aeebg =_ac .MakeDict ();_fdabe .Resources .XObject =_aeebg ;}else {var _cfgec bool ;
_aeebg ,_cfgec =(_fdabe .Resources .XObject ).(*_ac .PdfObjectDictionary );if !_cfgec {return _af .New ("\u0069\u006e\u0076\u0061li\u0064\u0020\u0078\u0072\u0065\u0073\u0020\u0064\u0069\u0063\u0074\u0020\u0074\u0079p\u0065");};};_aeebg .Set (name ,ximg .ToPdfObject ());
return 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 (_gbfc PdfColor )(PdfColor ,error );
// GetNumComponents returns the number of components in the PdfColorspace.
GetNumComponents ()int ;
// ToPdfObject returns a PdfObject representation of the PdfColorspace.
ToPdfObject ()_ac .PdfObject ;
// ColorFromPdfObjects returns a PdfColor in the given PdfColorspace from an array of PdfObject where each
// PdfObject represents a numeric value.
ColorFromPdfObjects (_edb []_ac .PdfObject )(PdfColor ,error );
// ColorFromFloats returns a new PdfColor based on input color components for a given PdfColorspace.
ColorFromFloats (_gfbg []float64 )(PdfColor ,error );
// DecodeArray returns the Decode array for the PdfColorSpace, i.e. the range of each component.
DecodeArray ()[]float64 ;};func (_cbedf PdfFont )actualFont ()pdfFont {if _cbedf ._gegb ==nil {_gd .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",_cbedf );
};return _cbedf ._gegb ;};func (_bed *PdfReader )newPdfActionURIFromDict (_adbd *_ac .PdfObjectDictionary )(*PdfActionURI ,error ){return &PdfActionURI {URI :_adbd .Get ("\u0055\u0052\u0049"),IsMap :_adbd .Get ("\u0049\u0073\u004da\u0070")},nil ;};
// GetStandardApplier gets currently used StandardApplier..
func (_dffbe *PdfWriter )GetStandardApplier ()StandardApplier {return _dffbe ._faega };
// ToPdfObject implements interface PdfModel.
func (_fbfa *PdfAnnotationPolyLine )ToPdfObject ()_ac .PdfObject {_fbfa .PdfAnnotation .ToPdfObject ();_cbef :=_fbfa ._fegd ;_affd :=_cbef .PdfObject .(*_ac .PdfObjectDictionary );_fbfa .PdfAnnotationMarkup .appendToPdfDictionary (_affd );_affd .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ac .MakeName ("\u0050\u006f\u006c\u0079\u004c\u0069\u006e\u0065"));
_affd .SetIfNotNil ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073",_fbfa .Vertices );_affd .SetIfNotNil ("\u004c\u0045",_fbfa .LE );_affd .SetIfNotNil ("\u0042\u0053",_fbfa .BS );_affd .SetIfNotNil ("\u0049\u0043",_fbfa .IC );_affd .SetIfNotNil ("\u0042\u0045",_fbfa .BE );
_affd .SetIfNotNil ("\u0049\u0054",_fbfa .IT );_affd .SetIfNotNil ("\u004de\u0061\u0073\u0075\u0072\u0065",_fbfa .Measure );return _cbef ;};
// ToPdfObject implements interface PdfModel.
func (_efgd *PdfAnnotationFileAttachment )ToPdfObject ()_ac .PdfObject {_efgd .PdfAnnotation .ToPdfObject ();_fdea :=_efgd ._fegd ;_gbc :=_fdea .PdfObject .(*_ac .PdfObjectDictionary );_efgd .PdfAnnotationMarkup .appendToPdfDictionary (_gbc );_gbc .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ac .MakeName ("\u0046\u0069\u006c\u0065\u0041\u0074\u0074\u0061\u0063h\u006d\u0065\u006e\u0074"));
_gbc .SetIfNotNil ("\u0046\u0053",_efgd .FS );_gbc .SetIfNotNil ("\u004e\u0061\u006d\u0065",_efgd .Name );return _fdea ;};func (_cgbdf *PdfReader )buildNameNodes (_ebbe *_ac .PdfIndirectObject ,_afcc map[_ac .PdfObject ]struct{})error {if _ebbe ==nil {return nil ;
};if _ ,_bagec :=_afcc [_ebbe ];_bagec {_gd .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",_ebbe .ObjectNumber );
return nil ;};_afcc [_ebbe ]=struct{}{};_ecbcg ,_gbgeb :=_ebbe .PdfObject .(*_ac .PdfObjectDictionary );if !_gbgeb {return _af .New ("n\u006f\u0064\u0065\u0020no\u0074 \u0061\u0020\u0064\u0069\u0063t\u0069\u006f\u006e\u0061\u0072\u0079");};if _edbfe ,_abgcd :=_ac .GetDict (_ecbcg .Get ("\u0044\u0065\u0073t\u0073"));
_abgcd {_cfaea ,_gdgab :=_ac .GetArray (_edbfe .Get ("\u004b\u0069\u0064\u0073"));if !_gdgab {return _af .New ("\u0049n\u0076\u0061\u006c\u0069d\u0020\u004b\u0069\u0064\u0073 \u0061r\u0072a\u0079\u0020\u006f\u0062\u006a\u0065\u0063t");};_gd .Log .Trace ("\u004b\u0069\u0064\u0073\u003a\u0020\u0025\u0073",_cfaea );
for _eeeac ,_dcgceb :=range _cfaea .Elements (){_dbbcbe ,_gaed :=_ac .GetIndirect (_dcgceb );if !_gaed {_gd .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",_dbbcbe );
return _af .New ("\u0063h\u0069\u006c\u0064\u0020n\u006f\u0074\u0020\u0069\u006ed\u0069r\u0065c\u0074\u0020\u006f\u0062\u006a\u0065\u0063t");};_cfaea .Set (_eeeac ,_dbbcbe );_cbcgf :=_cgbdf .buildNameNodes (_dbbcbe ,_afcc );if _cbcgf !=nil {return _cbcgf ;
};};};if _dbfg ,_edbb :=_ac .GetDict (_ecbcg );_edbb {if !_ac .IsNullObject (_dbfg .Get ("\u004b\u0069\u0064\u0073")){if _gcaab ,_abgaf :=_ac .GetArray (_dbfg .Get ("\u004b\u0069\u0064\u0073"));_abgaf {for _ffgbc ,_dbeaed :=range _gcaab .Elements (){if _ecefc ,_ggcde :=_ac .GetIndirect (_dbeaed );
_ggcde {_gcaab .Set (_ffgbc ,_ecefc );_gabef :=_cgbdf .buildNameNodes (_ecefc ,_afcc );if _gabef !=nil {return _gabef ;};};};};};};return nil ;};
// Transform rectangle with the supplied matrix.
func (_bbdbe *PdfRectangle )Transform (transformMatrix _ba .Matrix ){_bbdbe .Llx ,_bbdbe .Lly =transformMatrix .Transform (_bbdbe .Llx ,_bbdbe .Lly );_bbdbe .Urx ,_bbdbe .Ury =transformMatrix .Transform (_bbdbe .Urx ,_bbdbe .Ury );_bbdbe .Normalize ();
};
// A returns the value of the A component of the color.
func (_ebeg *PdfColorCalRGB )A ()float64 {return _ebeg [0]};
// PdfAnnotationRichMedia represents Rich Media annotations.
type PdfAnnotationRichMedia struct{*PdfAnnotation ;RichMediaSettings _ac .PdfObject ;RichMediaContent _ac .PdfObject ;};
// Decrypt decrypts the PDF file with a specified password. Also tries to
// decrypt with an empty password. Returns true if successful,
// false otherwise.
func (_dbacf *PdfReader )Decrypt (password []byte )(bool ,error ){_badaa ,_ccada :=_dbacf ._eebeg .Decrypt (password );if _ccada !=nil {return false ,_ccada ;};if !_badaa {return false ,nil ;};_ccada =_dbacf .loadStructure ();if _ccada !=nil {_gd .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",_ccada );
return false ,_ccada ;};return true ,nil ;};
// PartialName returns the partial name of the field.
func (_gcgda *PdfField )PartialName ()string {_gedd :="";if _gcgda .T !=nil {_gedd =_gcgda .T .Decoded ();}else {_gd .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 _gedd ;};func _bbebd (_gbae _ac .PdfObject )(*PdfColorspaceSpecialPattern ,error ){_gd .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",_gbae .String (),_gbae );
_bgea :=NewPdfColorspaceSpecialPattern ();if _aebdf ,_eeac :=_gbae .(*_ac .PdfIndirectObject );_eeac {_bgea ._gcdb =_aebdf ;};_gbae =_ac .TraceToDirectObject (_gbae );if _fdac ,_bbbgg :=_gbae .(*_ac .PdfObjectName );_bbbgg {if *_fdac !="\u0050a\u0074\u0074\u0065\u0072\u006e"{return nil ,_d .Errorf ("\u0069\u006e\u0076a\u006c\u0069\u0064\u0020\u006e\u0061\u006d\u0065");
};return _bgea ,nil ;};_cfcc ,_fbdag :=_gbae .(*_ac .PdfObjectArray );if !_fbdag {_gd .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",_gbae );
return nil ,_d .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0050\u0061\u0074\u0074e\u0072n\u0020C\u0053\u0020\u006f\u0062\u006a\u0065\u0063t");};if _cfcc .Len ()!=1&&_cfcc .Len ()!=2{_gd .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",_cfcc );
return nil ,_d .Errorf ("\u0069n\u0076\u0061\u006c\u0069\u0064\u0020\u0050\u0061\u0074\u0074\u0065r\u006e\u0020\u0043\u0053\u0020\u0061\u0072\u0072\u0061\u0079");};_gbae =_cfcc .Get (0);if _gbga ,_ccad :=_gbae .(*_ac .PdfObjectName );_ccad {if *_gbga !="\u0050a\u0074\u0074\u0065\u0072\u006e"{_gd .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",_gbga );
return nil ,_d .Errorf ("\u0069\u006e\u0076a\u006c\u0069\u0064\u0020\u006e\u0061\u006d\u0065");};};if _cfcc .Len ()> 1{_gbae =_cfcc .Get (1);_gbae =_ac .TraceToDirectObject (_gbae );_dfbfeb ,_fceb :=NewPdfColorspaceFromPdfObject (_gbae );if _fceb !=nil {return nil ,_fceb ;
};_bgea .UnderlyingCS =_dfbfeb ;};_gd .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",_bgea .UnderlyingCS );
return _bgea ,nil ;};func _fbfdb ()string {return _gd .Version };
// GetXObjectImageByName returns the XObjectImage with the specified name from the
// page resources, if it exists.
func (_dabgb *PdfPageResources )GetXObjectImageByName (keyName _ac .PdfObjectName )(*XObjectImage ,error ){_acecf ,_dggd :=_dabgb .GetXObjectByName (keyName );if _acecf ==nil {return nil ,nil ;};if _dggd !=XObjectTypeImage {return nil ,_af .New ("\u006e\u006f\u0074 \u0061\u006e\u0020\u0069\u006d\u0061\u0067\u0065");
};_fafcg ,_dggf :=NewXObjectImageFromStream (_acecf );if _dggf !=nil {return nil ,_dggf ;};return _fafcg ,nil ;};
// GetContainingPdfObject returns the containing object for the PdfField, i.e. an indirect object
// containing the field dictionary.
func (_abafa *PdfField )GetContainingPdfObject ()_ac .PdfObject {return _abafa ._bdde };
// PdfBorderStyle represents a border style dictionary (12.5.4 Border Styles p. 394).
type PdfBorderStyle struct{W *float64 ;S *BorderStyle ;D *[]int ;_gcc _ac .PdfObject ;};
// NewPdfShadingPatternType3 creates an empty shading pattern type 3 object.
func NewPdfShadingPatternType3 ()*PdfShadingPatternType3 {_ceadg :=&PdfShadingPatternType3 {};_ceadg .Matrix =_ac .MakeArrayFromIntegers ([]int {1,0,0,1,0,0});_ceadg .PdfPattern =&PdfPattern {};_ceadg .PdfPattern .PatternType =int64 (*_ac .MakeInteger (2));
_ceadg .PdfPattern ._bfcc =_ceadg ;_ceadg .PdfPattern ._fddfb =_ac .MakeIndirectObject (_ac .MakeDict ());return _ceadg ;};type pdfFont interface{_fda .Font ;
// ToPdfObject returns a PDF representation of the font and implements interface Model.
ToPdfObject ()_ac .PdfObject ;getFontDescriptor ()*PdfFontDescriptor ;baseFields ()*fontCommon ;};func _ccgdd (_affeb *_ac .PdfObjectDictionary )(*PdfShadingType3 ,error ){_egdab :=PdfShadingType3 {};_abdgc :=_affeb .Get ("\u0043\u006f\u006f\u0072\u0064\u0073");
if _abdgc ==nil {_gd .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 ;
};_dgebb ,_ceffg :=_abdgc .(*_ac .PdfObjectArray );if !_ceffg {_gd .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",_abdgc );return nil ,_ac .ErrTypeError ;
};if _dgebb .Len ()!=6{_gd .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",_dgebb .Len ());return nil ,ErrInvalidAttribute ;};_egdab .Coords =_dgebb ;
if _aecdd :=_affeb .Get ("\u0044\u006f\u006d\u0061\u0069\u006e");_aecdd !=nil {_aecdd =_ac .TraceToDirectObject (_aecdd );_fcead ,_dfbdb :=_aecdd .(*_ac .PdfObjectArray );if !_dfbdb {_gd .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",_aecdd );
return nil ,_ac .ErrTypeError ;};_egdab .Domain =_fcead ;};_abdgc =_affeb .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");if _abdgc ==nil {_gd .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 ;};_egdab .Function =[]PdfFunction {};if _ddfcf ,_efada :=_abdgc .(*_ac .PdfObjectArray );_efada {for _ ,_fgac :=range _ddfcf .Elements (){_fggbfd ,_cbfcb :=_gcddf (_fgac );if _cbfcb !=nil {_gd .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",_cbfcb );
return nil ,_cbfcb ;};_egdab .Function =append (_egdab .Function ,_fggbfd );};}else {_bedg ,_cbfce :=_gcddf (_abdgc );if _cbfce !=nil {_gd .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",_cbfce );
return nil ,_cbfce ;};_egdab .Function =append (_egdab .Function ,_bedg );};if _bdacfc :=_affeb .Get ("\u0045\u0078\u0074\u0065\u006e\u0064");_bdacfc !=nil {_bdacfc =_ac .TraceToDirectObject (_bdacfc );_bbfb ,_dcfdb :=_bdacfc .(*_ac .PdfObjectArray );if !_dcfdb {_gd .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",_bdacfc );
return nil ,_ac .ErrTypeError ;};if _bbfb .Len ()!=2{_gd .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",_bbfb .Len ());return nil ,ErrInvalidAttribute ;
};_egdab .Extend =_bbfb ;};return &_egdab ,nil ;};
// AddExtension adds the specified extension to the Extensions dictionary.
// See section 7.1.2 "Extensions Dictionary" (pp. 108-109 PDF32000_2008).
func (_gebee *PdfWriter )AddExtension (extName ,baseVersion string ,extLevel int ){_cafaa ,_caaaf :=_ac .GetDict (_gebee ._cgfegd .Get ("\u0045\u0078\u0074\u0065\u006e\u0073\u0069\u006f\u006e\u0073"));if !_caaaf {_cafaa =_ac .MakeDict ();_gebee ._cgfegd .Set ("\u0045\u0078\u0074\u0065\u006e\u0073\u0069\u006f\u006e\u0073",_cafaa );
};_eaaeb ,_caaaf :=_ac .GetDict (_cafaa .Get (_ac .PdfObjectName (extName )));if !_caaaf {_eaaeb =_ac .MakeDict ();_cafaa .Set (_ac .PdfObjectName (extName ),_eaaeb );};if _afedeb ,_ :=_ac .GetNameVal (_eaaeb .Get ("B\u0061\u0073\u0065\u0056\u0065\u0072\u0073\u0069\u006f\u006e"));
_afedeb !=baseVersion {_eaaeb .Set ("B\u0061\u0073\u0065\u0056\u0065\u0072\u0073\u0069\u006f\u006e",_ac .MakeName (baseVersion ));};if _dgfdd ,_ :=_ac .GetIntVal (_eaaeb .Get ("\u0045\u0078\u0074\u0065\u006e\u0073\u0069\u006f\u006eL\u0065\u0076\u0065\u006c"));
_dgfdd !=extLevel {_eaaeb .Set ("\u0045\u0078\u0074\u0065\u006e\u0073\u0069\u006f\u006eL\u0065\u0076\u0065\u006c",_ac .MakeInteger (int64 (extLevel )));};};
// GetXObjectFormByName returns the XObjectForm with the specified name from the
// page resources, if it exists.
func (_babgf *PdfPageResources )GetXObjectFormByName (keyName _ac .PdfObjectName )(*XObjectForm ,error ){_ebafc ,_cgfgg :=_babgf .GetXObjectByName (keyName );if _ebafc ==nil {return nil ,nil ;};if _cgfgg !=XObjectTypeForm {return nil ,_af .New ("\u006e\u006f\u0074\u0020\u0061\u0020\u0066\u006f\u0072\u006d");
};_fegac ,_ffab :=NewXObjectFormFromStream (_ebafc );if _ffab !=nil {return nil ,_ffab ;};return _fegac ,nil ;};
// GetNumComponents returns the number of color components of the colorspace device.
// Returns 3 for a CalRGB device.
func (_bfdf *PdfColorspaceCalRGB )GetNumComponents ()int {return 3};func (_baea *PdfAppender )addNewObject (_acdd _ac .PdfObject ){if _ ,_bdff :=_baea ._eddbd [_acdd ];!_bdff {_baea ._fgee =append (_baea ._fgee ,_acdd );_baea ._eddbd [_acdd ]=struct{}{};
};};
// EncryptOptions represents encryption options for an output PDF.
type EncryptOptions struct{Permissions _eece .Permissions ;Algorithm EncryptionAlgorithm ;};func (_fbfaeg *PdfPage )getParentResources ()(*PdfPageResources ,error ){_gdfea :=_fbfaeg .Parent ;for _gdfea !=nil {_efca ,_acef :=_ac .GetDict (_gdfea );if !_acef {_gd .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 ,_af .New ("i\u006e\u0076\u0061\u006cid\u0020p\u0061\u0072\u0065\u006e\u0074 \u006f\u0062\u006a\u0065\u0063\u0074");};if _aaccf :=_efca .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");_aaccf !=nil {_efbceg ,_bdaa :=_ac .GetDict (_aaccf );
if !_bdaa {return nil ,_af .New ("i\u006e\u0076\u0061\u006cid\u0020r\u0065\u0073\u006f\u0075\u0072c\u0065\u0020\u0064\u0069\u0063\u0074");};_fgdgg ,_fdabb :=NewPdfPageResourcesFromDict (_efbceg );if _fdabb !=nil {return nil ,_fdabb ;};return _fgdgg ,nil ;
};_gdfea =_efca .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");};return nil ,nil ;};
// ToPdfObject returns the PDF representation of the page resources.
func (_fbdeb *PdfPageResources )ToPdfObject ()_ac .PdfObject {_aeaga :=_fbdeb ._ccggg ;_aeaga .SetIfNotNil ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e",_fbdeb .ExtGState );if _fbdeb ._bdcee !=nil {_fbdeb .ColorSpace =_fbdeb ._bdcee .ToPdfObject ();};
_aeaga .SetIfNotNil ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065",_fbdeb .ColorSpace );_aeaga .SetIfNotNil ("\u0050a\u0074\u0074\u0065\u0072\u006e",_fbdeb .Pattern );_aeaga .SetIfNotNil ("\u0053h\u0061\u0064\u0069\u006e\u0067",_fbdeb .Shading );
_aeaga .SetIfNotNil ("\u0058O\u0062\u006a\u0065\u0063\u0074",_fbdeb .XObject );_aeaga .SetIfNotNil ("\u0046\u006f\u006e\u0074",_fbdeb .Font );_aeaga .SetIfNotNil ("\u0050r\u006f\u0063\u0053\u0065\u0074",_fbdeb .ProcSet );_aeaga .SetIfNotNil ("\u0050\u0072\u006f\u0070\u0065\u0072\u0074\u0069\u0065\u0073",_fbdeb .Properties );
return _aeaga ;};
// DefaultFont returns the default font, which is currently the built in Helvetica.
func DefaultFont ()*PdfFont {_aaaec ,_ccga :=_fda .NewStdFontByName (HelveticaName );if !_ccga {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");
};_gbcaf :=_fcbgg (_aaaec );return &PdfFont {_gegb :&_gbcaf };};
// PdfActionSetOCGState represents a SetOCGState action.
type PdfActionSetOCGState struct{*PdfAction ;State _ac .PdfObject ;PreserveRB _ac .PdfObject ;};
// GetContainingPdfObject returns the container of the pattern object (indirect object).
func (_aagbc *PdfPattern )GetContainingPdfObject ()_ac .PdfObject {return _aagbc ._fddfb };
// ToGoImage converts the unidoc Image to a golang Image structure.
func (_dffff *Image )ToGoImage ()(_ad .Image ,error ){_gd .Log .Trace ("\u0043\u006f\u006e\u0076er\u0074\u0069\u006e\u0067\u0020\u0074\u006f\u0020\u0067\u006f\u0020\u0069\u006d\u0061g\u0065");_fagba ,_ddedc :=_ed .NewImage (int (_dffff .Width ),int (_dffff .Height ),int (_dffff .BitsPerComponent ),_dffff .ColorComponents ,_dffff .Data ,_dffff ._ebga ,_dffff ._gffd );
if _ddedc !=nil {return nil ,_ddedc ;};return _fagba ,nil ;};
// ToInteger convert to an integer format.
func (_dgef *PdfColorDeviceGray )ToInteger (bits int )uint32 {_eggb :=_da .Pow (2,float64 (bits ))-1;return uint32 (_eggb *_dgef .Val ());};
// 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 ;
// GetPageDict converts the Page to a PDF object dictionary.
func (_aeba *PdfPage )GetPageDict ()*_ac .PdfObjectDictionary {_bbdba :=_aeba ._egcd ;_bbdba .Clear ();_bbdba .Set ("\u0054\u0079\u0070\u0065",_ac .MakeName ("\u0050\u0061\u0067\u0065"));_bbdba .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_aeba .Parent );
if _aeba .LastModified !=nil {_bbdba .Set ("\u004c\u0061\u0073t\u004d\u006f\u0064\u0069\u0066\u0069\u0065\u0064",_aeba .LastModified .ToPdfObject ());};if _aeba .Resources !=nil {_bbdba .Set ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s",_aeba .Resources .ToPdfObject ());
};if _aeba .CropBox !=nil {_bbdba .Set ("\u0043r\u006f\u0070\u0042\u006f\u0078",_aeba .CropBox .ToPdfObject ());};if _aeba .MediaBox !=nil {_bbdba .Set ("\u004d\u0065\u0064\u0069\u0061\u0042\u006f\u0078",_aeba .MediaBox .ToPdfObject ());};if _aeba .BleedBox !=nil {_bbdba .Set ("\u0042\u006c\u0065\u0065\u0064\u0042\u006f\u0078",_aeba .BleedBox .ToPdfObject ());
};if _aeba .TrimBox !=nil {_bbdba .Set ("\u0054r\u0069\u006d\u0042\u006f\u0078",_aeba .TrimBox .ToPdfObject ());};if _aeba .ArtBox !=nil {_bbdba .Set ("\u0041\u0072\u0074\u0042\u006f\u0078",_aeba .ArtBox .ToPdfObject ());};_bbdba .SetIfNotNil ("\u0042\u006f\u0078C\u006f\u006c\u006f\u0072\u0049\u006e\u0066\u006f",_aeba .BoxColorInfo );
_bbdba .SetIfNotNil ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073",_aeba .Contents );if _aeba .Rotate !=nil {_bbdba .Set ("\u0052\u006f\u0074\u0061\u0074\u0065",_ac .MakeInteger (*_aeba .Rotate ));};_bbdba .SetIfNotNil ("\u0047\u0072\u006fu\u0070",_aeba .Group );
_bbdba .SetIfNotNil ("\u0054\u0068\u0075m\u0062",_aeba .Thumb );_bbdba .SetIfNotNil ("\u0042",_aeba .B );_bbdba .SetIfNotNil ("\u0044\u0075\u0072",_aeba .Dur );_bbdba .SetIfNotNil ("\u0054\u0072\u0061n\u0073",_aeba .Trans );_bbdba .SetIfNotNil ("\u0041\u0041",_aeba .AA );
_bbdba .SetIfNotNil ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061",_aeba .Metadata );_bbdba .SetIfNotNil ("\u0050i\u0065\u0063\u0065\u0049\u006e\u0066o",_aeba .PieceInfo );_bbdba .SetIfNotNil ("\u0053\u0074\u0072\u0075\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074\u0073",_aeba .StructParents );
_bbdba .SetIfNotNil ("\u0049\u0044",_aeba .ID );_bbdba .SetIfNotNil ("\u0050\u005a",_aeba .PZ );_bbdba .SetIfNotNil ("\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006fn\u0049\u006e\u0066\u006f",_aeba .SeparationInfo );_bbdba .SetIfNotNil ("\u0054\u0061\u0062\u0073",_aeba .Tabs );
_bbdba .SetIfNotNil ("T\u0065m\u0070\u006c\u0061\u0074\u0065\u0049\u006e\u0073t\u0061\u006e\u0074\u0069at\u0065\u0064",_aeba .TemplateInstantiated );_bbdba .SetIfNotNil ("\u0050r\u0065\u0073\u0053\u0074\u0065\u0070s",_aeba .PresSteps );_bbdba .SetIfNotNil ("\u0055\u0073\u0065\u0072\u0055\u006e\u0069\u0074",_aeba .UserUnit );
_bbdba .SetIfNotNil ("\u0056\u0050",_aeba .VP );if _aeba ._ceca !=nil {_ddffa :=_ac .MakeArray ();for _ ,_baca :=range _aeba ._ceca {if _adgag :=_baca .GetContext ();_adgag !=nil {_ddffa .Append (_adgag .ToPdfObject ());}else {_ddffa .Append (_baca .ToPdfObject ());
};};if _ddffa .Len ()> 0{_bbdba .Set ("\u0041\u006e\u006e\u006f\u0074\u0073",_ddffa );};}else if _aeba .Annots !=nil {_bbdba .SetIfNotNil ("\u0041\u006e\u006e\u006f\u0074\u0073",_aeba .Annots );};return _bbdba ;};func (_fadbd *PdfWriter )hasObject (_ebfdc _ac .PdfObject )bool {_ ,_aeccb :=_fadbd ._agbff [_ebfdc ];
return _aeccb ;};
// 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"`;};
// GetCatalogMarkInfo gets catalog MarkInfo object.
func (_cdgba *PdfReader )GetCatalogMarkInfo ()(_ac .PdfObject ,bool ){if _cdgba ._bdfc ==nil {return nil ,false ;};_eefcc :=_cdgba ._bdfc .Get ("\u004d\u0061\u0072\u006b\u0049\u006e\u0066\u006f");return _eefcc ,_eefcc !=nil ;};
// ImageToRGB converts an image in CMYK32 colorspace to an RGB image.
func (_ggcd *PdfColorspaceDeviceCMYK )ImageToRGB (img Image )(Image ,error ){_gd .Log .Trace ("\u0043\u004d\u0059\u004b\u0033\u0032\u0020\u002d\u003e\u0020\u0052\u0047\u0042");_gd .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 );
_gd .Log .Trace ("\u004c\u0065\u006e \u0064\u0061\u0074\u0061\u003a\u0020\u0025\u0064",len (img .Data ));_gd .Log .Trace ("H\u0065\u0069\u0067\u0068t:\u0020%\u0064\u002c\u0020\u0057\u0069d\u0074\u0068\u003a\u0020\u0025\u0064",img .Height ,img .Width );
_cfc ,_ddfc :=_ed .NewImage (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),img .ColorComponents ,img .Data ,img ._ebga ,img ._gffd );if _ddfc !=nil {return Image {},_ddfc ;};_ccaa ,_ddfc :=_ed .NRGBAConverter .Convert (_cfc );if _ddfc !=nil {return Image {},_ddfc ;
};return _affb (_ccaa .Base ()),nil ;};
// GetNumComponents returns the number of color components (1 for Indexed).
func (_eecc *PdfColorspaceSpecialIndexed )GetNumComponents ()int {return 1};func (_dfcff *PdfWriter )setWriter (_aabfg _adc .Writer ){_dfcff ._edabb =_dfcff ._deff ;_dfcff ._abad =_b .NewWriter (_aabfg );};
// 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 _adc .ReadSeeker )(*PdfReader ,error ){const _ffgec ="\u006d\u006f\u0064\u0065l:\u004e\u0065\u0077\u0050\u0064\u0066\u0052\u0065\u0061\u0064\u0065\u0072\u004c\u0061z\u0079";return _gaada (rs ,&ReaderOpts {LazyLoad :true },false ,_ffgec );
};
// 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 *_ac .PdfParser ;DiffPolicy _ca .DiffPolicy ;};
// ToPdfObject sets the common field elements.
// Note: Call the more field context's ToPdfObject to set both the generic and
// non-generic information.
func (_ffbeg *PdfField )ToPdfObject ()_ac .PdfObject {_gbece :=_ffbeg ._bdde ;_dfcbb :=_gbece .PdfObject .(*_ac .PdfObjectDictionary );_eage :=_ac .MakeArray ();for _ ,_dcfb :=range _ffbeg .Kids {_eage .Append (_dcfb .ToPdfObject ());};for _ ,_agdc :=range _ffbeg .Annotations {if _agdc ._fegd !=_ffbeg ._bdde {_eage .Append (_agdc .GetContext ().ToPdfObject ());
};};if _ffbeg .Parent !=nil {_dfcbb .SetIfNotNil ("\u0050\u0061\u0072\u0065\u006e\u0074",_ffbeg .Parent .GetContainingPdfObject ());};if _eage .Len ()> 0{_dfcbb .Set ("\u004b\u0069\u0064\u0073",_eage );};_dfcbb .SetIfNotNil ("\u0046\u0054",_ffbeg .FT );
_dfcbb .SetIfNotNil ("\u0054",_ffbeg .T );_dfcbb .SetIfNotNil ("\u0054\u0055",_ffbeg .TU );_dfcbb .SetIfNotNil ("\u0054\u004d",_ffbeg .TM );_dfcbb .SetIfNotNil ("\u0046\u0066",_ffbeg .Ff );_dfcbb .SetIfNotNil ("\u0056",_ffbeg .V );_dfcbb .SetIfNotNil ("\u0044\u0056",_ffbeg .DV );
_dfcbb .SetIfNotNil ("\u0041\u0041",_ffbeg .AA );if _ffbeg .VariableText !=nil {_dfcbb .SetIfNotNil ("\u0044\u0041",_ffbeg .VariableText .DA );_dfcbb .SetIfNotNil ("\u0051",_ffbeg .VariableText .Q );_dfcbb .SetIfNotNil ("\u0044\u0053",_ffbeg .VariableText .DS );
_dfcbb .SetIfNotNil ("\u0052\u0056",_ffbeg .VariableText .RV );};return _gbece ;};
// GetContainingPdfObject returns the container of the outline (indirect object).
func (_cagbg *PdfOutline )GetContainingPdfObject ()_ac .PdfObject {return _cagbg ._eggfe };
// 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 (_fdbba *LTV )Enable (sig *PdfSignature ,extraCerts []*_fc .Certificate )error {if _cdbeb :=_fdbba .validateSig (sig );_cdbeb !=nil {return _cdbeb ;};_dabdd ,_gcafb :=_fdbba .generateVRIKey (sig );if _gcafb !=nil {return _gcafb ;};if _ ,_cabad :=_fdbba ._fdadg .VRI [_dabdd ];
_cabad &&_fdbba .SkipExisting {return nil ;};_fbfde ,_gcafb :=sig .GetCerts ();if _gcafb !=nil {return _gcafb ;};return _fdbba .enable (_fbfde ,extraCerts ,_dabdd );};func (_fbbb *PdfAnnotationMarkup )appendToPdfDictionary (_abg *_ac .PdfObjectDictionary ){_abg .SetIfNotNil ("\u0054",_fbbb .T );
if _fbbb .Popup !=nil {_abg .Set ("\u0050\u006f\u0070u\u0070",_fbbb .Popup .ToPdfObject ());};_abg .SetIfNotNil ("\u0043\u0041",_fbbb .CA );_abg .SetIfNotNil ("\u0052\u0043",_fbbb .RC );_abg .SetIfNotNil ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065",_fbbb .CreationDate );
_abg .SetIfNotNil ("\u0049\u0052\u0054",_fbbb .IRT );_abg .SetIfNotNil ("\u0053\u0075\u0062\u006a",_fbbb .Subj );_abg .SetIfNotNil ("\u0052\u0054",_fbbb .RT );_abg .SetIfNotNil ("\u0049\u0054",_fbbb .IT );_abg .SetIfNotNil ("\u0045\u0078\u0044\u0061\u0074\u0061",_fbbb .ExData );
};
// Height returns the height of `rect`.
func (_ffecb *PdfRectangle )Height ()float64 {return _da .Abs (_ffecb .Ury -_ffecb .Lly )};
// PdfActionLaunch represents a launch action.
type PdfActionLaunch struct{*PdfAction ;F *PdfFilespec ;Win _ac .PdfObject ;Mac _ac .PdfObject ;Unix _ac .PdfObject ;NewWindow _ac .PdfObject ;};
// ToPdfObject returns the PDF representation of the DSS dictionary.
func (_cgge *DSS )ToPdfObject ()_ac .PdfObject {_edff :=_cgge ._gfed .PdfObject .(*_ac .PdfObjectDictionary );_edff .Clear ();_dedc :=_ac .MakeDict ();for _gacgc ,_afdb :=range _cgge .VRI {_dedc .Set (*_ac .MakeName (_gacgc ),_afdb .ToPdfObject ());};_edff .SetIfNotNil ("\u0043\u0065\u0072t\u0073",_ccae (_cgge .Certs ));
_edff .SetIfNotNil ("\u004f\u0043\u0053P\u0073",_ccae (_cgge .OCSPs ));_edff .SetIfNotNil ("\u0043\u0052\u004c\u0073",_ccae (_cgge .CRLs ));_edff .Set ("\u0056\u0052\u0049",_dedc );return _cgge ._gfed ;};
// NewPdfAnnotationWidget returns an initialized annotation widget.
func NewPdfAnnotationWidget ()*PdfAnnotationWidget {_dbbe :=NewPdfAnnotation ();_gdfc :=&PdfAnnotationWidget {};_gdfc .PdfAnnotation =_dbbe ;_dbbe .SetContext (_gdfc );return _gdfc ;};
// ImageToRGB converts an image with samples in Separation CS to an image with samples specified in
// DeviceRGB CS.
func (_fecc *PdfColorspaceSpecialSeparation )ImageToRGB (img Image )(Image ,error ){_gdce :=_cg .NewReader (img .getBase ());_gaaf :=_ed .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),_fecc .AlternateSpace .GetNumComponents (),nil ,img ._ebga ,nil );
_aaac :=_cg .NewWriter (_gaaf );_efacd :=_da .Pow (2,float64 (img .BitsPerComponent ))-1;_gd .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");
_gd .Log .Trace ("\u0054i\u006et\u0054\u0072\u0061\u006e\u0073f\u006f\u0072m\u003a\u0020\u0025\u002b\u0076",_fecc .TintTransform );_gdbf :=_fecc .AlternateSpace .DecodeArray ();var (_feaad uint32 ;_afdg error ;);for {_feaad ,_afdg =_gdce .ReadSample ();
if _afdg ==_adc .EOF {break ;};if _afdg !=nil {return img ,_afdg ;};_eeda :=float64 (_feaad )/_efacd ;_gaad ,_gfgda :=_fecc .TintTransform .Evaluate ([]float64 {_eeda });if _gfgda !=nil {return img ,_gfgda ;};for _daca ,_fbga :=range _gaad {_bcdb :=_ed .LinearInterpolate (_fbga ,_gdbf [_daca *2],_gdbf [_daca *2+1],0,1);
if _gfgda =_aaac .WriteSample (uint32 (_bcdb *_efacd ));_gfgda !=nil {return img ,_gfgda ;};};};return _fecc .AlternateSpace .ImageToRGB (_affb (&_gaaf ));};func _agfef (_gdgdc *_ac .PdfObjectDictionary ){_afec ,_baed :=_ac .GetArray (_gdgdc .Get ("\u0057\u0069\u0064\u0074\u0068\u0073"));
_bdagb ,_begb :=_ac .GetIntVal (_gdgdc .Get ("\u0046i\u0072\u0073\u0074\u0043\u0068\u0061r"));_ccfe ,_dbcg :=_ac .GetIntVal (_gdgdc .Get ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072"));if _baed &&_begb &&_dbcg {_bbcdc :=_afec .Len ();if _bbcdc !=_ccfe -_bdagb +1{_gd .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",_bbcdc ,_ccfe );
_eedcd :=_ac .PdfObjectInteger (_bdagb +_bbcdc -1);_gdgdc .Set ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072",&_eedcd );};};};func (_eded *PdfReader )newPdfAnnotationSquigglyFromDict (_dafd *_ac .PdfObjectDictionary )(*PdfAnnotationSquiggly ,error ){_deac :=PdfAnnotationSquiggly {};
_bagb ,_gce :=_eded .newPdfAnnotationMarkupFromDict (_dafd );if _gce !=nil {return nil ,_gce ;};_deac .PdfAnnotationMarkup =_bagb ;_deac .QuadPoints =_dafd .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");return &_deac ,nil ;};
// NewLTV returns a new LTV client.
func NewLTV (appender *PdfAppender )(*LTV ,error ){_ccgda :=appender .Reader .DSS ;if _ccgda ==nil {_ccgda =NewDSS ();};if _ffeg :=_ccgda .generateHashMaps ();_ffeg !=nil {return nil ,_ffeg ;};return &LTV {CertClient :_dc .NewCertClient (),OCSPClient :_dc .NewOCSPClient (),CRLClient :_dc .NewCRLClient (),SkipExisting :true ,_bcbad :appender ,_fdadg :_ccgda },nil ;
};
// PdfAnnotationMovie represents Movie annotations.
// (Section 12.5.6.17).
type PdfAnnotationMovie struct{*PdfAnnotation ;T _ac .PdfObject ;Movie _ac .PdfObject ;A _ac .PdfObject ;};
// PdfAnnotationSquiggly represents Squiggly annotations.
// (Section 12.5.6.10).
type PdfAnnotationSquiggly struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _ac .PdfObject ;};
// PdfAnnotationWatermark represents Watermark annotations.
// (Section 12.5.6.22).
type PdfAnnotationWatermark struct{*PdfAnnotation ;FixedPrint _ac .PdfObject ;};func (_facc *PdfColorspaceDeviceRGB )String ()string {return "\u0044e\u0076\u0069\u0063\u0065\u0052\u0047B";};func (_bggf *PdfReader )loadForms ()(*PdfAcroForm ,error ){if _bggf ._eebeg .GetCrypter ()!=nil &&!_bggf ._eebeg .IsAuthenticated (){return nil ,_d .Errorf ("\u0066\u0069\u006ce\u0020\u006e\u0065\u0065d\u0020\u0074\u006f\u0020\u0062\u0065\u0020d\u0065\u0063\u0072\u0079\u0070\u0074\u0065\u0064\u0020\u0066\u0069\u0072\u0073\u0074");
};_eaccc :=_bggf ._bdfc ;_ecga :=_eaccc .Get ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d");if _ecga ==nil {return nil ,nil ;};_dcadfg ,_fbfdgg :=_ac .GetIndirect (_ecga );_ecga =_ac .TraceToDirectObject (_ecga );if _ac .IsNullObject (_ecga ){_gd .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 ;};_ebgaf ,_fedbb :=_ac .GetDict (_ecga );if !_fedbb {_gd .Log .Debug ("\u0049n\u0076\u0061\u006c\u0069d\u0020\u0041\u0063\u0072\u006fF\u006fr\u006d \u0065\u006e\u0074\u0072\u0079\u0020\u0025T",_ecga );_gd .Log .Debug ("\u0044\u006f\u0065\u0073 n\u006f\u0074\u0020\u0068\u0061\u0076\u0065\u0020\u0066\u006f\u0072\u006d\u0073");
return nil ,_d .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0061\u0063\u0072\u006ff\u006fr\u006d \u0065\u006e\u0074\u0072\u0079\u0020\u0025T",_ecga );};_gd .Log .Trace ("\u0048\u0061\u0073\u0020\u0041\u0063\u0072\u006f\u0020f\u006f\u0072\u006d\u0073");
_gd .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 !_bggf ._dfgg {_gffca :=_bggf .traverseObjectData (_ebgaf );
if _gffca !=nil {_gd .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",_gffca );
return nil ,_gffca ;};};_dfddf ,_fdce :=_bggf .newPdfAcroFormFromDict (_dcadfg ,_ebgaf );if _fdce !=nil {return nil ,_fdce ;};_dfddf ._dagc =!_fbfdgg ;return _dfddf ,nil ;};
// PdfActionSubmitForm represents a submitForm action.
type PdfActionSubmitForm struct{*PdfAction ;F *PdfFilespec ;Fields _ac .PdfObject ;Flags _ac .PdfObject ;};
// ToPdfObject implements interface PdfModel.
func (_ggfaa *PdfFilespec )ToPdfObject ()_ac .PdfObject {_dege :=_ggfaa .getDict ();_dege .Clear ();_dege .Set ("\u0054\u0079\u0070\u0065",_ac .MakeName ("\u0046\u0069\u006c\u0065\u0073\u0070\u0065\u0063"));_dege .SetIfNotNil ("\u0046\u0053",_ggfaa .FS );
_dege .SetIfNotNil ("\u0046",_ggfaa .F );_dege .SetIfNotNil ("\u0055\u0046",_ggfaa .UF );_dege .SetIfNotNil ("\u0044\u004f\u0053",_ggfaa .DOS );_dege .SetIfNotNil ("\u004d\u0061\u0063",_ggfaa .Mac );_dege .SetIfNotNil ("\u0055\u006e\u0069\u0078",_ggfaa .Unix );
_dege .SetIfNotNil ("\u0049\u0044",_ggfaa .ID );_dege .SetIfNotNil ("\u0056",_ggfaa .V );_dege .SetIfNotNil ("\u0045\u0046",_ggfaa .EF );_dege .SetIfNotNil ("\u0052\u0046",_ggfaa .RF );_dege .SetIfNotNil ("\u0044\u0065\u0073\u0063",_ggfaa .Desc );_dege .SetIfNotNil ("\u0043\u0049",_ggfaa .CI );
return _ggfaa ._fege ;};
// SetOptimizer sets the optimizer to optimize PDF before writing.
func (_faggg *PdfWriter )SetOptimizer (optimizer Optimizer ){_faggg ._bddgd =optimizer };
// ToPdfObject returns the PDF representation of the shading dictionary.
func (_fcbbe *PdfShadingType2 )ToPdfObject ()_ac .PdfObject {_fcbbe .PdfShading .ToPdfObject ();_cbceb ,_ffaaff :=_fcbbe .getShadingDict ();if _ffaaff !=nil {_gd .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 _cbceb ==nil {_gd .Log .Error ("\u0053\u0068\u0061\u0064in\u0067\u0020\u0064\u0069\u0063\u0074\u0020\u0069\u0073\u0020\u006e\u0069\u006c");return nil ;};if _fcbbe .Coords !=nil {_cbceb .Set ("\u0043\u006f\u006f\u0072\u0064\u0073",_fcbbe .Coords );
};if _fcbbe .Domain !=nil {_cbceb .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_fcbbe .Domain );};if _fcbbe .Function !=nil {if len (_fcbbe .Function )==1{_cbceb .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_fcbbe .Function [0].ToPdfObject ());
}else {_ecada :=_ac .MakeArray ();for _ ,_eafaa :=range _fcbbe .Function {_ecada .Append (_eafaa .ToPdfObject ());};_cbceb .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_ecada );};};if _fcbbe .Extend !=nil {_cbceb .Set ("\u0045\u0078\u0074\u0065\u006e\u0064",_fcbbe .Extend );
};return _fcbbe ._dffbg ;};
// PdfAnnotationPrinterMark represents PrinterMark annotations.
// (Section 12.5.6.20).
type PdfAnnotationPrinterMark struct{*PdfAnnotation ;MN _ac .PdfObject ;};
// NewPdfField returns an initialized PdfField.
func NewPdfField ()*PdfField {return &PdfField {_bdde :_ac .MakeIndirectObject (_ac .MakeDict ())}};
// GetDocMDPPermission returns the DocMDP level of the restrictions
func (_adgdd *PdfSignature )GetDocMDPPermission ()(_ca .DocMDPPermission ,bool ){for _ ,_fdec :=range _adgdd .Reference .Elements (){if _dbgfd ,_ecdfc :=_ac .GetDict (_fdec );_ecdfc {if _aebcca ,_dgcdb :=_ac .GetNameVal (_dbgfd .Get ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u004d\u0065\u0074\u0068\u006f\u0064"));
_dgcdb &&_aebcca =="\u0044\u006f\u0063\u004d\u0044\u0050"{if _abeddc ,_gebgc :=_ac .GetDict (_dbgfd .Get ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u0050\u0061\u0072\u0061\u006d\u0073"));_gebgc {if P ,_cdeff :=_ac .GetIntVal (_abeddc .Get ("\u0050"));
_cdeff {return _ca .DocMDPPermission (P ),true ;};};};};};return 0,false ;};
// GetContext returns a reference to the subshading entry as represented by PdfShadingType1-7.
func (_cddb *PdfShading )GetContext ()PdfModel {return _cddb ._bfga };
// SetAction sets the PDF action for the annotation link.
func (_agg *PdfAnnotationLink )SetAction (action *PdfAction ){_agg ._abaf =action ;if action ==nil {_agg .A =nil ;};};func (_dage *pdfFontType0 )baseFields ()*fontCommon {return &_dage .fontCommon };func (_dbggc Image )getBase ()_ed .ImageBase {return _ed .NewImageBase (int (_dbggc .Width ),int (_dbggc .Height ),int (_dbggc .BitsPerComponent ),_dbggc .ColorComponents ,_dbggc .Data ,_dbggc ._ebga ,_dbggc ._gffd );
};func (_eecfd *pdfFontSimple )getFontEncoding ()(_caaba string ,_fceff map[_gf .CharCode ]_gf .GlyphName ,_bcfe error ){_caaba ="\u0053\u0074a\u006e\u0064\u0061r\u0064\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067";if _bcbgge ,_edaa :=_dcagc [_eecfd ._abab ];
_edaa {_caaba =_bcbgge ;}else if _eecfd .fontFlags ()&_feaae !=0{for _cfgdf ,_dgfbd :=range _dcagc {if _fg .Contains (_eecfd ._abab ,_cfgdf ){_caaba =_dgfbd ;break ;};};};if _eecfd .Encoding ==nil {return _caaba ,nil ,nil ;};switch _ceacc :=_eecfd .Encoding .(type ){case *_ac .PdfObjectName :return string (*_ceacc ),nil ,nil ;
case *_ac .PdfObjectDictionary :_cedba ,_cfba :=_ac .GetName (_ceacc .Get ("\u0042\u0061\u0073e\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067"));if _cfba {_caaba =_cedba .String ();};if _bdacf :=_ceacc .Get ("D\u0069\u0066\u0066\u0065\u0072\u0065\u006e\u0063\u0065\u0073");
_bdacf !=nil {_gagg ,_gcbce :=_ac .GetArray (_bdacf );if !_gcbce {_gd .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",_ceacc ,_ceacc .Get ("D\u0069\u0066\u0066\u0065\u0072\u0065\u006e\u0063\u0065\u0073"));
return "",nil ,_ac .ErrTypeError ;};_fceff ,_bcfe =_gf .FromFontDifferences (_gagg );};return _caaba ,_fceff ,_bcfe ;default:_gd .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",_eecfd .Encoding ,_eecfd .Encoding );
return "",nil ,_ac .ErrTypeError ;};};
// GetAsTilingPattern returns a tiling pattern. Check with IsTiling() prior to using this.
func (_gfbdf *PdfPattern )GetAsTilingPattern ()*PdfTilingPattern {return _gfbdf ._bfcc .(*PdfTilingPattern );};
// PdfActionMovie represents a movie action.
type PdfActionMovie struct{*PdfAction ;Annotation _ac .PdfObject ;T _ac .PdfObject ;Operation _ac .PdfObject ;};func _cfggcg (_cfcbg *_ac .PdfObjectDictionary )(*PdfShadingType2 ,error ){_cefff :=PdfShadingType2 {};_cbfcd :=_cfcbg .Get ("\u0043\u006f\u006f\u0072\u0064\u0073");
if _cbfcd ==nil {_gd .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 ;
};_bbcee ,_baee :=_cbfcd .(*_ac .PdfObjectArray );if !_baee {_gd .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",_cbfcd );return nil ,_af .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");
};if _bbcee .Len ()!=4{_gd .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",_bbcee .Len ());return nil ,_af .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0061\u0074\u0074\u0072i\u0062\u0075\u0074\u0065");
};_cefff .Coords =_bbcee ;if _cggef :=_cfcbg .Get ("\u0044\u006f\u006d\u0061\u0069\u006e");_cggef !=nil {_cggef =_ac .TraceToDirectObject (_cggef );_ageee ,_dbgea :=_cggef .(*_ac .PdfObjectArray );if !_dbgea {_gd .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",_cggef );
return nil ,_af .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_cefff .Domain =_ageee ;};_cbfcd =_cfcbg .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");if _cbfcd ==nil {_gd .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 ;};_cefff .Function =[]PdfFunction {};if _fbbgca ,_cafab :=_cbfcd .(*_ac .PdfObjectArray );_cafab {for _ ,_gcbd :=range _fbbgca .Elements (){_adbed ,_bgge :=_gcddf (_gcbd );if _bgge !=nil {_gd .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",_bgge );
return nil ,_bgge ;};_cefff .Function =append (_cefff .Function ,_adbed );};}else {_fbegg ,_bfbfce :=_gcddf (_cbfcd );if _bfbfce !=nil {_gd .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",_bfbfce );
return nil ,_bfbfce ;};_cefff .Function =append (_cefff .Function ,_fbegg );};if _ffed :=_cfcbg .Get ("\u0045\u0078\u0074\u0065\u006e\u0064");_ffed !=nil {_ffed =_ac .TraceToDirectObject (_ffed );_efce ,_fdfcg :=_ffed .(*_ac .PdfObjectArray );if !_fdfcg {_gd .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",_ffed );
return nil ,_ac .ErrTypeError ;};if _efce .Len ()!=2{_gd .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",_efce .Len ());return nil ,ErrInvalidAttribute ;
};_cefff .Extend =_efce ;};return &_cefff ,nil ;};var _edfda =false ;
// SetDate sets the `M` field of the signature.
func (_ffgc *PdfSignature )SetDate (date _e .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";};_ffgc .M =_ac .MakeString (date .Format (format ));
};
// ToPdfObject implements interface PdfModel.
func (_feb *PdfActionHide )ToPdfObject ()_ac .PdfObject {_feb .PdfAction .ToPdfObject ();_geg :=_feb ._eef ;_feg :=_geg .PdfObject .(*_ac .PdfObjectDictionary );_feg .SetIfNotNil ("\u0053",_ac .MakeName (string (ActionTypeHide )));_feg .SetIfNotNil ("\u0054",_feb .T );
_feg .SetIfNotNil ("\u0048",_feb .H );return _geg ;};
// ToPdfObject converts the pdfCIDFontType0 to a PDF representation.
func (_afea *pdfCIDFontType0 )ToPdfObject ()_ac .PdfObject {return _ac .MakeNull ()};
// 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 (_bccfe *PdfReader )ToWriter (opts *ReaderToWriterOpts )(*PdfWriter ,error ){_abcae :=NewPdfWriter ();if opts ==nil {opts =&ReaderToWriterOpts {};};_cada ,_gbgg :=_bccfe .GetNumPages ();if _gbgg !=nil {_gd .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_gbgg );
return nil ,_gbgg ;};for _eabf :=1;_eabf <=_cada ;_eabf ++{_gafb ,_dgcfb :=_bccfe .GetPage (_eabf );if _dgcfb !=nil {_gd .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_dgcfb );return nil ,_dgcfb ;};if opts .PageProcessCallback !=nil {_dgcfb =opts .PageProcessCallback (_eabf ,_gafb );
if _dgcfb !=nil {_gd .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_dgcfb );return nil ,_dgcfb ;};}else if opts .PageCallback !=nil {opts .PageCallback (_eabf ,_gafb );};_dgcfb =_abcae .AddPage (_gafb );if _dgcfb !=nil {_gd .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_dgcfb );
return nil ,_dgcfb ;};};_abcae ._gdfdc =_bccfe .PdfVersion ();if !opts .SkipInfo {_aaacbe ,_gagd :=_bccfe .GetPdfInfo ();if _gagd !=nil {_gd .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_gagd );}else {_abcae ._aefadb .PdfObject =_aaacbe .ToPdfObject ();
};};if !opts .SkipMetadata {if _abdac :=_bccfe ._bdfc .Get ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");_abdac !=nil {if _gaabb :=_abcae .SetCatalogMetadata (_abdac );_gaabb !=nil {return nil ,_gaabb ;};};};if !opts .SkipAcroForm {_bafdd :=_abcae .SetForms (_bccfe .AcroForm );
if _bafdd !=nil {_gd .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_bafdd );return nil ,_bafdd ;};};if !opts .SkipOutlines {_abcae .AddOutlineTree (_bccfe .GetOutlineTree ());};if !opts .SkipOCProperties {_dfgc ,_dbaa :=_bccfe .GetOCProperties ();
if _dbaa !=nil {_gd .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_dbaa );}else {_dbaa =_abcae .SetOCProperties (_dfgc );if _dbaa !=nil {_gd .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_dbaa );};};};if !opts .SkipPageLabels {_edfce ,_gaafe :=_bccfe .GetPageLabels ();
if _gaafe !=nil {_gd .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_gaafe );}else {_gaafe =_abcae .SetPageLabels (_edfce );if _gaafe !=nil {_gd .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_gaafe );};};};if !opts .SkipNamedDests {_efadb ,_ffggc :=_bccfe .GetNamedDestinations ();
if _ffggc !=nil {_gd .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_ffggc );}else {_ffggc =_abcae .SetNamedDestinations (_efadb );if _ffggc !=nil {_gd .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_ffggc );};};};if !opts .SkipNameDictionary {_bcdf ,_debebg :=_bccfe .GetNameDictionary ();
if _debebg !=nil {_gd .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_debebg );}else {_debebg =_abcae .SetNameDictionary (_bcdf );if _debebg !=nil {_gd .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_debebg );};};};if !opts .SkipRotation &&_bccfe .Rotate !=nil {if _dbaceg :=_abcae .SetRotation (*_bccfe .Rotate );
_dbaceg !=nil {_gd .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_dbaceg );};};return &_abcae ,nil ;};
// ToPdfObject returns the PDF representation of the shading pattern.
func (_efdcd *PdfShadingPatternType3 )ToPdfObject ()_ac .PdfObject {_efdcd .PdfPattern .ToPdfObject ();_eccff :=_efdcd .getDict ();if _efdcd .Shading !=nil {_eccff .Set ("\u0053h\u0061\u0064\u0069\u006e\u0067",_efdcd .Shading .ToPdfObject ());};if _efdcd .Matrix !=nil {_eccff .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_efdcd .Matrix );
};if _efdcd .ExtGState !=nil {_eccff .Set ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e",_efdcd .ExtGState );};return _efdcd ._fddfb ;};
// GetContainingPdfObject returns the container of the PdfAcroForm (indirect object).
func (_ecaf *PdfAcroForm )GetContainingPdfObject ()_ac .PdfObject {return _ecaf ._abecf };
// GetAllContentStreams gets all the content streams for a page as one string.
func (_dccfcc *PdfPage )GetAllContentStreams ()(string ,error ){_efegc ,_ffcd :=_dccfcc .GetContentStreams ();if _ffcd !=nil {return "",_ffcd ;};return _fg .Join (_efegc ,"\u0020"),nil ;};
// IsCID returns true if the underlying font is CID.
func (_cgbfg *PdfFont )IsCID ()bool {return _cgbfg .baseFields ().isCIDFont ()};func _gfcbd (_aeagd *[]*PdfField ,_gegbb FieldFilterFunc ,_fcac bool )[]*PdfField {if _aeagd ==nil {return nil ;};_daec :=*_aeagd ;if len (*_aeagd )==0{return nil ;};_bgca :=_daec [:0];
if _gegbb ==nil {_gegbb =func (*PdfField )bool {return true };};var _dbce []*PdfField ;for _ ,_dgeba :=range _daec {_cdbe :=_gegbb (_dgeba );if _cdbe {_dbce =append (_dbce ,_dgeba );if len (_dgeba .Kids )> 0{_dbce =append (_dbce ,_gfcbd (&_dgeba .Kids ,_gegbb ,_fcac )...);
};};if !_fcac ||!_cdbe ||len (_dgeba .Kids )> 0{_bgca =append (_bgca ,_dgeba );};};*_aeagd =_bgca ;return _dbce ;};
// 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 (_fcdb *PdfAnnotationWidget )Field ()*PdfField {return _fcdb ._gdb };
// GetNumComponents returns the number of color components (1 for CalGray).
func (_beffd *PdfColorCalGray )GetNumComponents ()int {return 1};func _dagfca ()string {_gcaaba .Lock ();defer _gcaaba .Unlock ();if len (_gabba )> 0{return _gabba ;};return "\u0055n\u0069\u0044\u006f\u0063 \u002d\u0020\u0068\u0074\u0074p\u003a/\u002fu\u006e\u0069\u0064\u006f\u0063\u002e\u0069o";
};
// K returns the value of the key component of the color.
func (_ecgd *PdfColorDeviceCMYK )K ()float64 {return _ecgd [3]};func (_dcb *PdfReader )newPdfActionGotoRFromDict (_dad *_ac .PdfObjectDictionary )(*PdfActionGoToR ,error ){_dadf ,_aed :=_caec (_dad .Get ("\u0046"));if _aed !=nil {return nil ,_aed ;};return &PdfActionGoToR {D :_dad .Get ("\u0044"),NewWindow :_dad .Get ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw"),F :_dadf },nil ;
};
// NewPdfColorLab returns a new Lab color.
func NewPdfColorLab (l ,a ,b float64 )*PdfColorLab {_aeac :=PdfColorLab {l ,a ,b };return &_aeac };
// PdfShadingType4 is a Free-form Gouraud-shaded triangle mesh.
type PdfShadingType4 struct{*PdfShading ;BitsPerCoordinate *_ac .PdfObjectInteger ;BitsPerComponent *_ac .PdfObjectInteger ;BitsPerFlag *_ac .PdfObjectInteger ;Decode *_ac .PdfObjectArray ;Function []PdfFunction ;};func _adfff (_bfad *_ac .PdfObjectDictionary )(*PdfShadingType4 ,error ){_abgbge :=PdfShadingType4 {};
_bbegb :=_bfad .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065");if _bbegb ==nil {_gd .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 ;};_dccdd ,_bcggd :=_bbegb .(*_ac .PdfObjectInteger );if !_bcggd {_gd .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",_bbegb );
return nil ,_ac .ErrTypeError ;};_abgbge .BitsPerCoordinate =_dccdd ;_bbegb =_bfad .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074");if _bbegb ==nil {_gd .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 ;};_dccdd ,_bcggd =_bbegb .(*_ac .PdfObjectInteger );if !_bcggd {_gd .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",_bbegb );
return nil ,_ac .ErrTypeError ;};_abgbge .BitsPerComponent =_dccdd ;_bbegb =_bfad .Get ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067");if _bbegb ==nil {_gd .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 ;};_dccdd ,_bcggd =_bbegb .(*_ac .PdfObjectInteger );if !_bcggd {_gd .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",_bbegb );
return nil ,_ac .ErrTypeError ;};_abgbge .BitsPerComponent =_dccdd ;_bbegb =_bfad .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");if _bbegb ==nil {_gd .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 ;};_gadgc ,_bcggd :=_bbegb .(*_ac .PdfObjectArray );if !_bcggd {_gd .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",_bbegb );
return nil ,_ac .ErrTypeError ;};_abgbge .Decode =_gadgc ;_bbegb =_bfad .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");if _bbegb ==nil {_gd .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 ;};_abgbge .Function =[]PdfFunction {};if _cdaedd ,_ecaaa :=_bbegb .(*_ac .PdfObjectArray );_ecaaa {for _ ,_abeb :=range _cdaedd .Elements (){_cfdgd ,_ecgg :=_gcddf (_abeb );if _ecgg !=nil {_gd .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",_ecgg );
return nil ,_ecgg ;};_abgbge .Function =append (_abgbge .Function ,_cfdgd );};}else {_ffcafg ,_dcgde :=_gcddf (_bbegb );if _dcgde !=nil {_gd .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",_dcgde );
return nil ,_dcgde ;};_abgbge .Function =append (_abgbge .Function ,_ffcafg );};return &_abgbge ,nil ;};func _ggec (_dcfd *_ac .PdfObjectDictionary )*VRI {_fdgd ,_ :=_ac .GetString (_dcfd .Get ("\u0054\u0055"));_bdbf ,_ :=_ac .GetString (_dcfd .Get ("\u0054\u0053"));
return &VRI {Cert :_bcfac (_dcfd .Get ("\u0043\u0065\u0072\u0074")),OCSP :_bcfac (_dcfd .Get ("\u004f\u0043\u0053\u0050")),CRL :_bcfac (_dcfd .Get ("\u0043\u0052\u004c")),TU :_fdgd ,TS :_bdbf };};
// PdfAnnotationCaret represents Caret annotations.
// (Section 12.5.6.11).
type PdfAnnotationCaret struct{*PdfAnnotation ;*PdfAnnotationMarkup ;RD _ac .PdfObject ;Sy _ac .PdfObject ;};func _feac ()string {_gcaaba .Lock ();defer _gcaaba .Unlock ();return _baggd };
// SetPdfProducer sets the Producer attribute of the output PDF.
func SetPdfProducer (producer string ){_gcaaba .Lock ();defer _gcaaba .Unlock ();_affcb =producer };
// GetPreviousRevision returns the previous revision of PdfReader for the Pdf document
func (_bgdcg *PdfReader )GetPreviousRevision ()(*PdfReader ,error ){if _bgdcg ._eebeg .GetRevisionNumber ()==0{return nil ,_af .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 _cafae ,_ddaeg :=_bgdcg ._geega [_bgdcg ];_ddaeg {return _cafae ,nil ;};_edfae ,_affbd :=_bgdcg ._eebeg .GetPreviousRevisionReadSeeker ();if _affbd !=nil {return nil ,_affbd ;};_baaee ,_affbd :=_gaada (_edfae ,_bgdcg ._dcbgf ,_bgdcg ._agfbe ,"\u006do\u0064\u0065\u006c\u003aG\u0065\u0074\u0050\u0072\u0065v\u0069o\u0075s\u0052\u0065\u0076\u0069\u0073\u0069\u006fn");
if _affbd !=nil {return nil ,_affbd ;};_bgdcg ._aedce [_bgdcg ._eebeg .GetRevisionNumber ()-1]=_baaee ;_bgdcg ._geega [_bgdcg ]=_baaee ;_baaee ._geega =_bgdcg ._geega ;return _baaee ,nil ;};func (_cgga *PdfReader )newPdfActionJavaScriptFromDict (_dfd *_ac .PdfObjectDictionary )(*PdfActionJavaScript ,error ){return &PdfActionJavaScript {JS :_dfd .Get ("\u004a\u0053")},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 (_aeega *PdfFont )FontDescriptor ()*PdfFontDescriptor {if _aeega .baseFields ()._bgbdc !=nil {return _aeega .baseFields ()._bgbdc ;};if _dadfg :=_aeega ._gegb .getFontDescriptor ();_dadfg !=nil {return _dadfg ;};_gd .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",_aeega );
return nil ;};
// PdfShadingType7 is a Tensor-product patch mesh.
type PdfShadingType7 struct{*PdfShading ;BitsPerCoordinate *_ac .PdfObjectInteger ;BitsPerComponent *_ac .PdfObjectInteger ;BitsPerFlag *_ac .PdfObjectInteger ;Decode *_ac .PdfObjectArray ;Function []PdfFunction ;};
// Insert adds a top level outline item in the outline,
// at the specified index.
func (_dfged *Outline )Insert (index uint ,item *OutlineItem ){_egcbc :=uint (len (_dfged .Entries ));if index > _egcbc {index =_egcbc ;};_dfged .Entries =append (_dfged .Entries [:index ],append ([]*OutlineItem {item },_dfged .Entries [index :]...)...);
};func (_gfcgb *LTV )getCerts (_fcebc []*_fc .Certificate )([][]byte ,error ){_efeeb :=make ([][]byte ,0,len (_fcebc ));for _ ,_cggae :=range _fcebc {_efeeb =append (_efeeb ,_cggae .Raw );};return _efeeb ,nil ;};
// PdfShadingType6 is a Coons patch mesh.
type PdfShadingType6 struct{*PdfShading ;BitsPerCoordinate *_ac .PdfObjectInteger ;BitsPerComponent *_ac .PdfObjectInteger ;BitsPerFlag *_ac .PdfObjectInteger ;Decode *_ac .PdfObjectArray ;Function []PdfFunction ;};func (_fbecg *LTV )enable (_cgfge ,_dfcgg []*_fc .Certificate ,_cfgac string )error {_bffc ,_ageec ,_gegacg :=_fbecg .buildCertChain (_cgfge ,_dfcgg );
if _gegacg !=nil {return _gegacg ;};_aegdd ,_gegacg :=_fbecg .getCerts (_bffc );if _gegacg !=nil {return _gegacg ;};var _gddgd ,_efbb [][]byte ;if _fbecg .OCSPClient !=nil {_gddgd ,_gegacg =_fbecg .getOCSPs (_bffc ,_ageec );if _gegacg !=nil {return _gegacg ;
};};if _fbecg .CRLClient !=nil {_efbb ,_gegacg =_fbecg .getCRLs (_bffc );if _gegacg !=nil {return _gegacg ;};};_dcdgf :=_fbecg ._fdadg ;_ggac ,_gegacg :=_dcdgf .addCerts (_aegdd );if _gegacg !=nil {return _gegacg ;};_gcfgb ,_gegacg :=_dcdgf .addOCSPs (_gddgd );
if _gegacg !=nil {return _gegacg ;};_gbaca ,_gegacg :=_dcdgf .addCRLs (_efbb );if _gegacg !=nil {return _gegacg ;};if _cfgac !=""{_dcdgf .VRI [_cfgac ]=&VRI {Cert :_ggac ,OCSP :_gcfgb ,CRL :_gbaca };};_fbecg ._bcbad .SetDSS (_dcdgf );return nil ;};
// GetFontDescriptor returns the font descriptor for `font`.
func (_eacg PdfFont )GetFontDescriptor ()(*PdfFontDescriptor ,error ){return _eacg ._gegb .getFontDescriptor (),nil ;};func (_dacd *PdfColorspaceDeviceGray )String ()string {return "\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079";};
// SetPageLabels sets the PageLabels entry in the PDF catalog.
// See section 12.4.2 "Page Labels" (p. 382 PDF32000_2008).
func (_abdc *PdfWriter )SetPageLabels (pageLabels _ac .PdfObject )error {if pageLabels ==nil {return nil ;};_gd .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");
_abdc ._cgfegd .Set ("\u0050\u0061\u0067\u0065\u004c\u0061\u0062\u0065\u006c\u0073",pageLabels );return _abdc .addObjects (pageLabels );};
// ToPdfObject implements interface PdfModel.
func (_bgaac *PdfAnnotationSound )ToPdfObject ()_ac .PdfObject {_bgaac .PdfAnnotation .ToPdfObject ();_bba :=_bgaac ._fegd ;_abed :=_bba .PdfObject .(*_ac .PdfObjectDictionary );_bgaac .PdfAnnotationMarkup .appendToPdfDictionary (_abed );_abed .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ac .MakeName ("\u0053\u006f\u0075n\u0064"));
_abed .SetIfNotNil ("\u0053\u006f\u0075n\u0064",_bgaac .Sound );_abed .SetIfNotNil ("\u004e\u0061\u006d\u0065",_bgaac .Name );return _bba ;};
// PdfAnnotationInk represents Ink annotations.
// (Section 12.5.6.13).
type PdfAnnotationInk struct{*PdfAnnotation ;*PdfAnnotationMarkup ;InkList _ac .PdfObject ;BS _ac .PdfObject ;};func (_feaba SignatureValidationResult )String ()string {var _bccca _fd .Buffer ;_bccca .WriteString (_d .Sprintf ("\u004ea\u006d\u0065\u003a\u0020\u0025\u0073\n",_feaba .Name ));
if _feaba .Date ._bfbe > 0{_bccca .WriteString (_d .Sprintf ("\u0044a\u0074\u0065\u003a\u0020\u0025\u0073\n",_feaba .Date .ToGoTime ().String ()));}else {_bccca .WriteString ("\u0044\u0061\u0074\u0065 n\u006f\u0074\u0020\u0073\u0070\u0065\u0063\u0069\u0066\u0069\u0065\u0064\u000a");
};if len (_feaba .Reason )> 0{_bccca .WriteString (_d .Sprintf ("R\u0065\u0061\u0073\u006f\u006e\u003a\u0020\u0025\u0073\u000a",_feaba .Reason ));}else {_bccca .WriteString ("N\u006f \u0072\u0065\u0061\u0073\u006f\u006e\u0020\u0073p\u0065\u0063\u0069\u0066ie\u0064\u000a");
};if len (_feaba .Location )> 0{_bccca .WriteString (_d .Sprintf ("\u004c\u006f\u0063\u0061\u0074\u0069\u006f\u006e\u003a\u0020\u0025\u0073\u000a",_feaba .Location ));}else {_bccca .WriteString ("\u004c\u006f\u0063at\u0069\u006f\u006e\u0020\u006e\u006f\u0074\u0020\u0073\u0070\u0065\u0063\u0069\u0066\u0069\u0065\u0064\u000a");
};if len (_feaba .ContactInfo )> 0{_bccca .WriteString (_d .Sprintf ("\u0043\u006f\u006e\u0074\u0061\u0063\u0074\u0020\u0049\u006e\u0066\u006f:\u0020\u0025\u0073\u000a",_feaba .ContactInfo ));}else {_bccca .WriteString ("C\u006f\u006e\u0074\u0061\u0063\u0074 \u0069\u006e\u0066\u006f\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063i\u0066i\u0065\u0064\u000a");
};_bccca .WriteString (_d .Sprintf ("F\u0069\u0065\u006c\u0064\u0073\u003a\u0020\u0025\u0064\u000a",len (_feaba .Fields )));if _feaba .IsSigned {_bccca .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 {_bccca .WriteString ("\u0053\u0069\u0067\u006eed\u003a\u0020\u004e\u006f\u0074\u0020\u0073\u0069\u0067\u006e\u0065\u0064\u000a");};if _feaba .IsVerified {_bccca .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 {_bccca .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 _feaba .IsTrusted {_bccca .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 {_bccca .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 !_feaba .GeneralizedTime .IsZero (){_bccca .WriteString (_d .Sprintf ("G\u0065n\u0065\u0072\u0061\u006c\u0069\u007a\u0065\u0064T\u0069\u006d\u0065\u003a %\u0073\u000a",_feaba .GeneralizedTime .String ()));
};if _feaba .DiffResults !=nil {_bccca .WriteString (_d .Sprintf ("\u0064\u0069\u0066\u0066 i\u0073\u0020\u0070\u0065\u0072\u006d\u0069\u0074\u0074\u0065\u0064\u003a\u0020\u0025v\u000a",_feaba .DiffResults .IsPermitted ()));if len (_feaba .DiffResults .Warnings )> 0{_bccca .WriteString ("\u004d\u0044\u0050\u0020\u0077\u0061\u0072\u006e\u0069n\u0067\u0073\u003a\u000a");
for _ ,_edce :=range _feaba .DiffResults .Warnings {_bccca .WriteString (_d .Sprintf ("\u0009\u0025\u0073\u000a",_edce ));};};if len (_feaba .DiffResults .Errors )> 0{_bccca .WriteString ("\u004d\u0044\u0050 \u0065\u0072\u0072\u006f\u0072\u0073\u003a\u000a");
for _ ,_egbbg :=range _feaba .DiffResults .Errors {_bccca .WriteString (_d .Sprintf ("\u0009\u0025\u0073\u000a",_egbbg ));};};};return _bccca .String ();};func _gddc (_gfcb *fontCommon )*pdfCIDFontType2 {return &pdfCIDFontType2 {fontCommon :*_gfcb }};
// IsSimple returns true if `font` is a simple font.
func (_ccdgg *PdfFont )IsSimple ()bool {_ ,_egbfc :=_ccdgg ._gegb .(*pdfFontSimple );return _egbfc };var _ pdfFont =(*pdfFontType3 )(nil );type crossReference struct{Type int ;
// Type 1
Offset int64 ;Generation int64 ;
// Type 2
ObjectNumber int ;Index int ;};func (_beabc *PdfWriter )addObjects (_dgcfe _ac .PdfObject )error {_gd .Log .Trace ("\u0041d\u0064i\u006e\u0067\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0073\u0021");if _aedfff ,_cadcg :=_dgcfe .(*_ac .PdfIndirectObject );
_cadcg {_gd .Log .Trace ("\u0049\u006e\u0064\u0069\u0072\u0065\u0063\u0074");_gd .Log .Trace ("\u002d \u0025\u0073\u0020\u0028\u0025\u0070)",_dgcfe ,_aedfff );_gd .Log .Trace ("\u002d\u0020\u0025\u0073",_aedfff .PdfObject );if _beabc .addObject (_aedfff ){_efeec :=_beabc .addObjects (_aedfff .PdfObject );
if _efeec !=nil {return _efeec ;};};return nil ;};if _ccfda ,_caag :=_dgcfe .(*_ac .PdfObjectStream );_caag {_gd .Log .Trace ("\u0053\u0074\u0072\u0065\u0061\u006d");_gd .Log .Trace ("\u002d \u0025\u0073\u0020\u0025\u0070",_dgcfe ,_dgcfe );if _beabc .addObject (_ccfda ){_ecae :=_beabc .addObjects (_ccfda .PdfObjectDictionary );
if _ecae !=nil {return _ecae ;};};return nil ;};if _abbg ,_fbacge :=_dgcfe .(*_ac .PdfObjectDictionary );_fbacge {_gd .Log .Trace ("\u0044\u0069\u0063\u0074");_gd .Log .Trace ("\u002d\u0020\u0025\u0073",_dgcfe );for _ ,_ebbeb :=range _abbg .Keys (){_baeca :=_abbg .Get (_ebbeb );
if _faagf ,_baddfe :=_baeca .(*_ac .PdfObjectReference );_baddfe {_baeca =_faagf .Resolve ();_abbg .Set (_ebbeb ,_baeca );};if _ebbeb !="\u0050\u0061\u0072\u0065\u006e\u0074"{if _gaece :=_beabc .addObjects (_baeca );_gaece !=nil {return _gaece ;};}else {if _ ,_cggea :=_baeca .(*_ac .PdfObjectNull );
_cggea {continue ;};if _aaeg :=_beabc .hasObject (_baeca );!_aaeg {_gd .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",_baeca ,_baeca ,_baeca );
_beabc ._fage [_baeca ]=append (_beabc ._fage [_baeca ],_abbg );};};};return nil ;};if _gcfad ,_afead :=_dgcfe .(*_ac .PdfObjectArray );_afead {_gd .Log .Trace ("\u0041\u0072\u0072a\u0079");_gd .Log .Trace ("\u002d\u0020\u0025\u0073",_dgcfe );if _gcfad ==nil {return _af .New ("\u0061\u0072\u0072a\u0079\u0020\u0069\u0073\u0020\u006e\u0069\u006c");
};for _dgge ,_aafba :=range _gcfad .Elements (){if _fccd ,_bgbdcd :=_aafba .(*_ac .PdfObjectReference );_bgbdcd {_aafba =_fccd .Resolve ();_gcfad .Set (_dgge ,_aafba );};if _cfega :=_beabc .addObjects (_aafba );_cfega !=nil {return _cfega ;};};return nil ;
};if _ ,_bbefd :=_dgcfe .(*_ac .PdfObjectReference );_bbefd {_gd .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",_dgcfe );
return _af .New ("r\u0065\u0066\u0065\u0072en\u0063e\u0020\u006e\u006f\u0074\u0020a\u006c\u006c\u006f\u0077\u0065\u0064");};return nil ;};
// XObjectType represents the type of an XObject.
type XObjectType int ;
// 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 (_gdbge *PdfReader )FlattenFields (allannots bool ,appgen FieldAppearanceGenerator )error {return _gdbge .flattenFieldsWithOpts (allannots ,appgen ,nil );};
// GetContainingPdfObject returns the container of the image object (indirect object).
func (_bffd *XObjectImage )GetContainingPdfObject ()_ac .PdfObject {return _bffd ._gfbdff };
// GetPatternByName gets the pattern specified by keyName. Returns nil if not existing.
// The bool flag indicated whether it was found or not.
func (_bbgdc *PdfPageResources )GetPatternByName (keyName _ac .PdfObjectName )(*PdfPattern ,bool ){if _bbgdc .Pattern ==nil {return nil ,false ;};_fgagc ,_ecag :=_ac .TraceToDirectObject (_bbgdc .Pattern ).(*_ac .PdfObjectDictionary );if !_ecag {_gd .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",_bbgdc .Pattern );
return nil ,false ;};if _efde :=_fgagc .Get (keyName );_efde !=nil {_acefc ,_gbad :=_bbcfe (_efde );if _gbad !=nil {_gd .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",_gbad );
return nil ,false ;};return _acefc ,true ;};return nil ,false ;};
// NewPdfDate returns a new PdfDate object from a PDF date string (see 7.9.4 Dates).
// format: "D: YYYYMMDDHHmmSSOHH'mm"
func NewPdfDate (dateStr string )(PdfDate ,error ){_gbbbd ,_beae :=_cd .ParsePdfTime (dateStr );if _beae !=nil {return PdfDate {},_beae ;};return NewPdfDateFromTime (_gbbbd );};
// NewPdfColorPatternType3 returns an empty color shading pattern type 3 (Radial).
func NewPdfColorPatternType3 ()*PdfColorPatternType3 {_beeee :=&PdfColorPatternType3 {};return _beeee ;};
// 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 (_aebbf *PdfFont )CharcodesToStrings (charcodes []_gf .CharCode )([]string ,int ,int ){_cdaa :=_aebbf .baseFields ();_bbde :=make ([]string ,0,len (charcodes ));_cgagf :=0;_acgc :=_aebbf .Encoder ();_ecdc :=_cdaa ._acbbb !=nil &&_aebbf .IsSimple ()&&_aebbf .Subtype ()=="\u0054\u0072\u0075\u0065\u0054\u0079\u0070\u0065"&&!_fg .Contains (_cdaa ._acbbb .Name (),"\u0049d\u0065\u006e\u0074\u0069\u0074\u0079-");
if !_ecdc &&_acgc !=nil {switch _eedba :=_acgc .(type ){case _gf .SimpleEncoder :_cbfc :=_eedba .BaseName ();if _ ,_acdgf :=_dddg [_cbfc ];_acdgf {for _ ,_egefdb :=range charcodes {if _aeca ,_fefe :=_acgc .CharcodeToRune (_egefdb );_fefe {_bbde =append (_bbde ,string (_aeca ));
}else {_gd .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",_egefdb ,charcodes ,_cdaa .isCIDFont (),_aebbf ,_acgc );
_cgagf ++;_bbde =append (_bbde ,_eg .MissingCodeString );};};return _bbde ,len (_bbde ),_cgagf ;};};};for _ ,_cccf :=range charcodes {if _cdaa ._acbbb !=nil {if _afce ,_dgec :=_cdaa ._acbbb .CharcodeToUnicode (_eg .CharCode (_cccf ));_dgec {_bbde =append (_bbde ,_afce );
continue ;};};if _acgc !=nil {if _bfgeg ,_acdf :=_acgc .CharcodeToRune (_cccf );_acdf {_bbde =append (_bbde ,string (_bfgeg ));continue ;};};_gd .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",_cccf ,charcodes ,_cdaa .isCIDFont (),_aebbf ,_acgc );
_cgagf ++;_bbde =append (_bbde ,_eg .MissingCodeString );};if _cgagf !=0{_gd .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 ),_cgagf ,_aebbf );
};return _bbde ,len (_bbde ),_cgagf ;};
// Evaluate runs the function. Input is [x1 x2 x3].
func (_cgddge *PdfFunctionType4 )Evaluate (xVec []float64 )([]float64 ,error ){if _cgddge ._bdgfa ==nil {_cgddge ._bdgfa =_bb .NewPSExecutor (_cgddge .Program );};var _abeae []_bb .PSObject ;for _ ,_eadee :=range xVec {_abeae =append (_abeae ,_bb .MakeReal (_eadee ));
};_abdff ,_gbgcg :=_cgddge ._bdgfa .Execute (_abeae );if _gbgcg !=nil {return nil ,_gbgcg ;};_cbbbd ,_gbgcg :=_bb .PSObjectArrayToFloat64Array (_abdff );if _gbgcg !=nil {return nil ,_gbgcg ;};return _cbbbd ,nil ;};
// Insert adds an outline item as a child of the current outline item,
// at the specified index.
func (_fcde *OutlineItem )Insert (index uint ,item *OutlineItem ){_fbgcdf :=uint (len (_fcde .Entries ));if index > _fbgcdf {index =_fbgcdf ;};_fcde .Entries =append (_fcde .Entries [:index ],append ([]*OutlineItem {item },_fcde .Entries [index :]...)...);
};
// PdfAnnotation represents an annotation in PDF (section 12.5 p. 389).
type PdfAnnotation struct{_cgf PdfModel ;Rect _ac .PdfObject ;Contents _ac .PdfObject ;P _ac .PdfObject ;NM _ac .PdfObject ;M _ac .PdfObject ;F _ac .PdfObject ;AP _ac .PdfObject ;AS _ac .PdfObject ;Border _ac .PdfObject ;C _ac .PdfObject ;StructParent _ac .PdfObject ;
OC _ac .PdfObject ;_fegd *_ac .PdfIndirectObject ;};func _efcac ()string {_gcaaba .Lock ();defer _gcaaba .Unlock ();return _dccb };
// SetPdfAuthor sets the Author attribute of the output PDF.
func SetPdfAuthor (author string ){_gcaaba .Lock ();defer _gcaaba .Unlock ();_bffb =author };func (_gaceg *PdfWriter )writeObjectsInStreams (_agccc map[_ac .PdfObject ]bool )error {for _ ,_gaagf :=range _gaceg ._gdeaf {if _ggebgc :=_agccc [_gaagf ];_ggebgc {continue ;
};_cggga :=int64 (0);switch _cacdb :=_gaagf .(type ){case *_ac .PdfIndirectObject :_cggga =_cacdb .ObjectNumber ;case *_ac .PdfObjectStream :_cggga =_cacdb .ObjectNumber ;case *_ac .PdfObjectStreams :_cggga =_cacdb .ObjectNumber ;default:_gd .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",_gaagf );
return ErrTypeCheck ;};if _gaceg ._bggef !=nil &&_gaagf !=_gaceg ._ecgdb {_caca :=_gaceg ._bggef .Encrypt (_gaagf ,_cggga ,0);if _caca !=nil {_gd .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",_caca );
return _caca ;};};_gaceg .writeObject (int (_cggga ),_gaagf );};return nil ;};
// ToPdfObject implements interface PdfModel.
func (_fca *PdfActionNamed )ToPdfObject ()_ac .PdfObject {_fca .PdfAction .ToPdfObject ();_gea :=_fca ._eef ;_bga :=_gea .PdfObject .(*_ac .PdfObjectDictionary );_bga .SetIfNotNil ("\u0053",_ac .MakeName (string (ActionTypeNamed )));_bga .SetIfNotNil ("\u004e",_fca .N );
return _gea ;};
// DecodeArray returns the range of color component values in CalGray colorspace.
func (_ceeag *PdfColorspaceCalGray )DecodeArray ()[]float64 {return []float64 {0.0,1.0}};
// 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 (_cgcbb *LTV )EnableAll (extraCerts []*_fc .Certificate )error {_ceabf :=_cgcbb ._bcbad ._cbdcd .AcroForm ;for _ ,_becdf :=range _ceabf .AllFields (){_aebfe ,_ :=_becdf .GetContext ().(*PdfFieldSignature );if _aebfe ==nil {continue ;};_ggeea :=_aebfe .V ;
if _eegc :=_cgcbb .validateSig (_ggeea );_eegc !=nil {_gd .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",_eegc );
};if _gfce :=_cgcbb .Enable (_ggeea ,extraCerts );_gfce !=nil {return _gfce ;};};return nil ;};
// PdfColorspaceDeviceCMYK represents a CMYK32 colorspace.
type PdfColorspaceDeviceCMYK struct{};func _acga (_bgebd _ac .PdfObject )(*_ac .PdfObjectDictionary ,*fontCommon ,error ){_bcece :=&fontCommon {};if _gedc ,_gdde :=_bgebd .(*_ac .PdfIndirectObject );_gdde {_bcece ._ccega =_gedc .ObjectNumber ;};_gdbe ,_adbcd :=_ac .GetDict (_bgebd );
if !_adbcd {_gd .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",_bgebd );
return nil ,nil ,ErrFontNotSupported ;};_fadfb ,_adbcd :=_ac .GetNameVal (_gdbe .Get ("\u0054\u0079\u0070\u0065"));if !_adbcd {_gd .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 _fadfb !="\u0046\u006f\u006e\u0074"{_gd .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.",_fadfb ,"\u0046\u006f\u006e\u0074");
return nil ,nil ,_ac .ErrTypeError ;};_adae ,_adbcd :=_ac .GetNameVal (_gdbe .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065"));if !_adbcd {_gd .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 ;};_bcece ._efebg =_adae ;_dfbe ,_adbcd :=_ac .GetNameVal (_gdbe .Get ("\u004e\u0061\u006d\u0065"));if _adbcd {_bcece ._fgfd =_dfbe ;};_bgfed :=_gdbe .Get ("\u0054o\u0055\u006e\u0069\u0063\u006f\u0064e");if _bgfed !=nil {_bcece ._babg =_ac .TraceToDirectObject (_bgfed );
_gafa ,_gabd :=_dgfc (_bcece ._babg ,_bcece );if _gabd !=nil {return _gdbe ,_bcece ,_gabd ;};_bcece ._acbbb =_gafa ;}else if _adae =="\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0030"||_adae =="\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032"{_dgccd ,_aecab :=_eg .NewCIDSystemInfo (_gdbe .Get ("\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f"));
if _aecab !=nil {return _gdbe ,_bcece ,_aecab ;};_dgae :=_d .Sprintf ("\u0025\u0073\u002d\u0025\u0073\u002d\u0055\u0043\u0053\u0032",_dgccd .Registry ,_dgccd .Ordering );if _eg .IsPredefinedCMap (_dgae ){_bcece ._acbbb ,_aecab =_eg .LoadPredefinedCMap (_dgae );
if _aecab !=nil {_gd .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",_dgae ,_aecab );
};};};_fgbgd :=_gdbe .Get ("\u0046\u006f\u006e\u0074\u0044\u0065\u0073\u0063\u0072i\u0070\u0074\u006f\u0072");if _fgbgd !=nil {_beece ,_dcbf :=_gabb (_fgbgd );if _dcbf !=nil {_gd .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",_dcbf );
return _gdbe ,_bcece ,_dcbf ;};_bcece ._bgbdc =_beece ;};if _adae !="\u0054\u0079\u0070e\u0033"{_cdac ,_ceae :=_ac .GetNameVal (_gdbe .Get ("\u0042\u0061\u0073\u0065\u0046\u006f\u006e\u0074"));if !_ceae {_gd .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 _gdbe ,_bcece ,ErrRequiredAttributeMissing ;};_bcece ._abab =_cdac ;};return _gdbe ,_bcece ,nil ;};
// GetIndirectObjectByNumber retrieves and returns a specific PdfObject by object number.
func (_abagf *PdfReader )GetIndirectObjectByNumber (number int )(_ac .PdfObject ,error ){_gdcfc ,_gdeaa :=_abagf ._eebeg .LookupByNumber (number );return _gdcfc ,_gdeaa ;};
// NewPdfFontFromPdfObject loads a PdfFont from the dictionary `fontObj`. If there is a problem an
// error is returned.
func NewPdfFontFromPdfObject (fontObj _ac .PdfObject )(*PdfFont ,error ){return _eebe (fontObj ,true )};
// ToPdfObject implements interface PdfModel.
func (_aefa *PdfAnnotationPrinterMark )ToPdfObject ()_ac .PdfObject {_aefa .PdfAnnotation .ToPdfObject ();_cbdc :=_aefa ._fegd ;_effg :=_cbdc .PdfObject .(*_ac .PdfObjectDictionary );_effg .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ac .MakeName ("P\u0072\u0069\u006e\u0074\u0065\u0072\u004d\u0061\u0072\u006b"));
_effg .SetIfNotNil ("\u004d\u004e",_aefa .MN );return _cbdc ;};
// M returns the value of the magenta component of the color.
func (_dbee *PdfColorDeviceCMYK )M ()float64 {return _dbee [1]};func (_ebdc *pdfFontType3 )getFontDescriptor ()*PdfFontDescriptor {return _ebdc ._bgbdc };func (_eedg *Image )samplesAddPadding (_ebdg []uint32 )[]uint32 {_dgbfa :=_ed .BytesPerLine (int (_eedg .Width ),int (_eedg .BitsPerComponent ),_eedg .ColorComponents )*(8/int (_eedg .BitsPerComponent ));
_cega :=_dgbfa *int (_eedg .Height );if len (_ebdg )==_cega {return _ebdg ;};_faeff :=make ([]uint32 ,_cega );_cbbbc :=int (_eedg .Width )*_eedg .ColorComponents ;for _eaedb :=0;_eaedb < int (_eedg .Height );_eaedb ++{_bcbge :=_eaedb *int (_eedg .Width );
_cbagc :=_eaedb *_dgbfa ;for _cbca :=0;_cbca < _cbbbc ;_cbca ++{_faeff [_cbagc +_cbca ]=_ebdg [_bcbge +_cbca ];};};return _faeff ;};type pdfFontType0 struct{fontCommon ;_agcb *_ac .PdfIndirectObject ;_edfdd _gf .TextEncoder ;Encoding _ac .PdfObject ;DescendantFont *PdfFont ;
_gcaa *_eg .CMap ;};
// NewPdfActionGoTo returns a new "go to" action.
func NewPdfActionGoTo ()*PdfActionGoTo {_aag :=NewPdfAction ();_ffg :=&PdfActionGoTo {};_ffg .PdfAction =_aag ;_aag .SetContext (_ffg );return _ffg ;};var ErrColorOutOfRange =_af .New ("\u0063o\u006co\u0072\u0020\u006f\u0075\u0074 \u006f\u0066 \u0072\u0061\u006e\u0067\u0065");
func (_agbgf *LTV )getCRLs (_ebbg []*_fc .Certificate )([][]byte ,error ){_cecc :=make ([][]byte ,0,len (_ebbg ));for _ ,_bacc :=range _ebbg {for _ ,_fgcee :=range _bacc .CRLDistributionPoints {if _agbgf .CertClient .IsCA (_bacc ){continue ;};_dggc ,_bgeae :=_agbgf .CRLClient .MakeRequest (_fgcee ,_bacc );
if _bgeae !=nil {_gd .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",_bgeae );continue ;};_cecc =append (_cecc ,_dggc );};};return _cecc ,nil ;};func (_dfbaa *PdfReader )loadDSS ()(*DSS ,error ){if _dfbaa ._eebeg .GetCrypter ()!=nil &&!_dfbaa ._eebeg .IsAuthenticated (){return nil ,_d .Errorf ("\u0066\u0069\u006ce\u0020\u006e\u0065\u0065d\u0020\u0074\u006f\u0020\u0062\u0065\u0020d\u0065\u0063\u0072\u0079\u0070\u0074\u0065\u0064\u0020\u0066\u0069\u0072\u0073\u0074");
};_caaee :=_dfbaa ._bdfc .Get ("\u0044\u0053\u0053");if _caaee ==nil {return nil ,nil ;};_bgcfg ,_ :=_ac .GetIndirect (_caaee );_caaee =_ac .TraceToDirectObject (_caaee );switch _cfggc :=_caaee .(type ){case *_ac .PdfObjectNull :return nil ,nil ;case *_ac .PdfObjectDictionary :return _fbgfd (_bgcfg ,_cfggc );
};return nil ,_d .Errorf ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0044\u0053\u0053 \u0065\u006e\u0074\u0072y \u0025\u0054",_caaee );};
// SetImage updates XObject Image with new image data.
func (_dcdc *XObjectImage )SetImage (img *Image ,cs PdfColorspace )error {_dcdc .Filter .UpdateParams (img .GetParamsDict ());_ffcbce ,_fgegb :=_dcdc .Filter .EncodeBytes (img .Data );if _fgegb !=nil {return _fgegb ;};_dcdc .Stream =_ffcbce ;_badf :=img .Width ;
_dcdc .Width =&_badf ;_bggag :=img .Height ;_dcdc .Height =&_bggag ;_geeee :=img .BitsPerComponent ;_dcdc .BitsPerComponent =&_geeee ;if cs ==nil {if img .ColorComponents ==1{_dcdc .ColorSpace =NewPdfColorspaceDeviceGray ();}else if img .ColorComponents ==3{_dcdc .ColorSpace =NewPdfColorspaceDeviceRGB ();
}else if img .ColorComponents ==4{_dcdc .ColorSpace =NewPdfColorspaceDeviceCMYK ();}else {return _af .New ("c\u006fl\u006f\u0072\u0073\u0070\u0061\u0063\u0065\u0020u\u006e\u0064\u0065\u0066in\u0065\u0064");};}else {_dcdc .ColorSpace =cs ;};return nil ;
};
// 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 (_bgbd *PdfColorspaceDeviceGray )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=1{return nil ,_af .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_gag :=vals [0];if _gag < 0.0||_gag > 1.0{_gd .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 _gag < 0.0{_gag =0.0;}else if _gag > 1.0{_gag =1.0;};return NewPdfColorDeviceGray (_gag ),nil ;};
// NewPdfAnnotationScreen returns a new screen annotation.
func NewPdfAnnotationScreen ()*PdfAnnotationScreen {_bfcg :=NewPdfAnnotation ();_dfa :=&PdfAnnotationScreen {};_dfa .PdfAnnotation =_bfcg ;_bfcg .SetContext (_dfa );return _dfa ;};
// NewPdfActionImportData returns a new "import data" action.
func NewPdfActionImportData ()*PdfActionImportData {_gef :=NewPdfAction ();_bbc :=&PdfActionImportData {};_bbc .PdfAction =_gef ;_gef .SetContext (_bbc );return _bbc ;};func (_gcdga *PdfWriter )setHashIDs (_bbfa _g .Hash )error {_fcgf :=_bbfa .Sum (nil );
if _gcdga ._becagg ==""{_gcdga ._becagg =_f .EncodeToString (_fcgf [:8]);};_gcdga .setDocumentIDs (_gcdga ._becagg ,_f .EncodeToString (_fcgf [8:]));return nil ;};type pdfFontType3 struct{fontCommon ;_bbba *_ac .PdfIndirectObject ;
// These fields are specific to Type 3 fonts.
CharProcs _ac .PdfObject ;Encoding _ac .PdfObject ;FontBBox _ac .PdfObject ;FontMatrix _ac .PdfObject ;FirstChar _ac .PdfObject ;LastChar _ac .PdfObject ;Widths _ac .PdfObject ;Resources _ac .PdfObject ;_fbad map[_gf .CharCode ]float64 ;_ebcbd _gf .TextEncoder ;
};
// 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 (_fcbf *pdfFontSimple )SetEncoder (encoder _gf .TextEncoder ){_fcbf ._caed =encoder };func (_fba *PdfReader )newPdfActionImportDataFromDict (_adbc *_ac .PdfObjectDictionary )(*PdfActionImportData ,error ){_fdb ,_aea :=_caec (_adbc .Get ("\u0046"));
if _aea !=nil {return nil ,_aea ;};return &PdfActionImportData {F :_fdb },nil ;};
// NewPdfColorDeviceCMYK returns a new CMYK32 color.
func NewPdfColorDeviceCMYK (c ,m ,y ,k float64 )*PdfColorDeviceCMYK {_ecebf :=PdfColorDeviceCMYK {c ,m ,y ,k };return &_ecebf ;};
// SetLocation sets the `Location` field of the signature.
func (_dacda *PdfSignature )SetLocation (location string ){_dacda .Location =_ac .MakeString (location )};
// PdfAction represents an action in PDF (section 12.6 p. 412).
type PdfAction struct{_gc PdfModel ;Type _ac .PdfObject ;S _ac .PdfObject ;Next _ac .PdfObject ;_eef *_ac .PdfIndirectObject ;};func (_eda *PdfReader )newPdfActionTransFromDict (_dae *_ac .PdfObjectDictionary )(*PdfActionTrans ,error ){return &PdfActionTrans {Trans :_dae .Get ("\u0054\u0072\u0061n\u0073")},nil ;
};
// ToPdfObject implements interface PdfModel.
func (_efe *PdfActionSubmitForm )ToPdfObject ()_ac .PdfObject {_efe .PdfAction .ToPdfObject ();_bgb :=_efe ._eef ;_gg :=_bgb .PdfObject .(*_ac .PdfObjectDictionary );_gg .SetIfNotNil ("\u0053",_ac .MakeName (string (ActionTypeSubmitForm )));if _efe .F !=nil {_gg .Set ("\u0046",_efe .F .ToPdfObject ());
};_gg .SetIfNotNil ("\u0046\u0069\u0065\u006c\u0064\u0073",_efe .Fields );_gg .SetIfNotNil ("\u0046\u006c\u0061g\u0073",_efe .Flags );return _bgb ;};
// IsColored specifies if the pattern is colored.
func (_bgabgd *PdfTilingPattern )IsColored ()bool {if _bgabgd .PaintType !=nil &&*_bgabgd .PaintType ==1{return true ;};return false ;};
// SetXObjectByName adds the XObject from the passed in stream to the page resources.
// The added XObject is identified by the specified name.
func (_dega *PdfPageResources )SetXObjectByName (keyName _ac .PdfObjectName ,stream *_ac .PdfObjectStream )error {if _dega .XObject ==nil {_dega .XObject =_ac .MakeDict ();};_fbbbd :=_ac .TraceToDirectObject (_dega .XObject );_afgb ,_abdbe :=_fbbbd .(*_ac .PdfObjectDictionary );
if !_abdbe {_gd .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",_dega .XObject ,_fbbbd );return _af .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");
};_afgb .Set (keyName ,stream );return nil ;};
// ToPdfObject converts date to a PDF string object.
func (_cccd *PdfDate )ToPdfObject ()_ac .PdfObject {_fcbd :=_d .Sprintf ("\u0044\u003a\u0025\u002e\u0034\u0064\u0025\u002e\u0032\u0064\u0025\u002e\u0032\u0064\u0025\u002e\u0032\u0064\u0025\u002e\u0032\u0064\u0025\u002e2\u0064\u0025\u0063\u0025\u002e2\u0064\u0027%\u002e\u0032\u0064\u0027",_cccd ._bfbe ,_cccd ._dbbcd ,_cccd ._dgfeb ,_cccd ._ffgecb ,_cccd ._eega ,_cccd ._dcebf ,_cccd ._cbcad ,_cccd ._bbdfd ,_cccd ._ecccg );
return _ac .MakeString (_fcbd );};func _deccg (_fbead *_ac .PdfObjectDictionary )(*PdfTilingPattern ,error ){_ddcg :=&PdfTilingPattern {};_gegec :=_fbead .Get ("\u0050a\u0069\u006e\u0074\u0054\u0079\u0070e");if _gegec ==nil {_gd .Log .Debug ("\u0050\u0061\u0069\u006e\u0074\u0054\u0079\u0070\u0065\u0020\u006d\u0069s\u0073\u0069\u006e\u0067");
return nil ,ErrRequiredAttributeMissing ;};_gageaa ,_dfaaf :=_gegec .(*_ac .PdfObjectInteger );if !_dfaaf {_gd .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",_gegec );
return nil ,_ac .ErrTypeError ;};_ddcg .PaintType =_gageaa ;_gegec =_fbead .Get ("\u0054\u0069\u006c\u0069\u006e\u0067\u0054\u0079\u0070\u0065");if _gegec ==nil {_gd .Log .Debug ("\u0054i\u006ci\u006e\u0067\u0054\u0079\u0070e\u0020\u006di\u0073\u0073\u0069\u006e\u0067");
return nil ,ErrRequiredAttributeMissing ;};_ddee ,_dfaaf :=_gegec .(*_ac .PdfObjectInteger );if !_dfaaf {_gd .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",_gegec );
return nil ,_ac .ErrTypeError ;};_ddcg .TilingType =_ddee ;_gegec =_fbead .Get ("\u0042\u0042\u006f\u0078");if _gegec ==nil {_gd .Log .Debug ("\u0042\u0042\u006fx\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ;
};_gegec =_ac .TraceToDirectObject (_gegec );_geddd ,_dfaaf :=_gegec .(*_ac .PdfObjectArray );if !_dfaaf {_gd .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",_gegec );
return nil ,_ac .ErrTypeError ;};_gdgg ,_fdgdd :=NewPdfRectangle (*_geddd );if _fdgdd !=nil {_gd .Log .Debug ("\u0042\u0042\u006f\u0078\u0020\u0065\u0072\u0072\u006fr\u003a\u0020\u0025\u0076",_fdgdd );return nil ,_fdgdd ;};_ddcg .BBox =_gdgg ;_gegec =_fbead .Get ("\u0058\u0053\u0074e\u0070");
if _gegec ==nil {_gd .Log .Debug ("\u0058\u0053\u0074\u0065\u0070\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ;};_ccaff ,_fdgdd :=_ac .GetNumberAsFloat (_gegec );if _fdgdd !=nil {_gd .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",_ccaff );
return nil ,_fdgdd ;};_ddcg .XStep =_ac .MakeFloat (_ccaff );_gegec =_fbead .Get ("\u0059\u0053\u0074e\u0070");if _gegec ==nil {_gd .Log .Debug ("\u0059\u0053\u0074\u0065\u0070\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ;
};_ffdcd ,_fdgdd :=_ac .GetNumberAsFloat (_gegec );if _fdgdd !=nil {_gd .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",_ffdcd );
return nil ,_fdgdd ;};_ddcg .YStep =_ac .MakeFloat (_ffdcd );_gegec =_fbead .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");if _gegec ==nil {_gd .Log .Debug ("\u0052\u0065\u0073\u006f\u0075\u0072\u0063\u0065\u0073\u0020\u006d\u0069s\u0073\u0069\u006e\u0067");
return nil ,ErrRequiredAttributeMissing ;};_fbead ,_dfaaf =_ac .TraceToDirectObject (_gegec ).(*_ac .PdfObjectDictionary );if !_dfaaf {return nil ,_d .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0065\u0073\u006f\u0075\u0072\u0063e\u0020d\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u0020\u0028\u0025\u0054\u0029",_gegec );
};_bbec ,_fdgdd :=NewPdfPageResourcesFromDict (_fbead );if _fdgdd !=nil {return nil ,_fdgdd ;};_ddcg .Resources =_bbec ;if _cbdeg :=_fbead .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");_cbdeg !=nil {_ddgcd ,_cebb :=_cbdeg .(*_ac .PdfObjectArray );if !_cebb {_gd .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",_cbdeg );
return nil ,_ac .ErrTypeError ;};_ddcg .Matrix =_ddgcd ;};return _ddcg ,nil ;};
// NewPdfColorspaceDeviceRGB returns a new RGB colorspace object.
func NewPdfColorspaceDeviceRGB ()*PdfColorspaceDeviceRGB {return &PdfColorspaceDeviceRGB {}};
// GetNumComponents returns the number of color components of the colorspace device.
// Returns 1 for a grayscale device.
func (_gccf *PdfColorspaceDeviceGray )GetNumComponents ()int {return 1};
// ColorFromFloats returns a new PdfColor based on the input slice of color
// components.
func (_ddabc *PdfColorspaceSpecialPattern )ColorFromFloats (vals []float64 )(PdfColor ,error ){if _ddabc .UnderlyingCS ==nil {return nil ,_af .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 _ddabc .UnderlyingCS .ColorFromFloats (vals );};func (_agfbea *PdfWriter )setCatalogVersion (){_agfbea ._cgfegd .Set ("\u0056e\u0072\u0073\u0069\u006f\u006e",_ac .MakeName (_d .Sprintf ("\u0025\u0064\u002e%\u0064",_agfbea ._gdfdc .Major ,_agfbea ._gdfdc .Minor )));
};
// ToPdfObject returns colorspace in a PDF object format [name dictionary]
func (_eacb *PdfColorspaceLab )ToPdfObject ()_ac .PdfObject {_adeac :=_ac .MakeArray ();_adeac .Append (_ac .MakeName ("\u004c\u0061\u0062"));_adbcg :=_ac .MakeDict ();if _eacb .WhitePoint !=nil {_gfac :=_ac .MakeArray (_ac .MakeFloat (_eacb .WhitePoint [0]),_ac .MakeFloat (_eacb .WhitePoint [1]),_ac .MakeFloat (_eacb .WhitePoint [2]));
_adbcg .Set ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074",_gfac );}else {_gd .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 _eacb .BlackPoint !=nil {_edgc :=_ac .MakeArray (_ac .MakeFloat (_eacb .BlackPoint [0]),_ac .MakeFloat (_eacb .BlackPoint [1]),_ac .MakeFloat (_eacb .BlackPoint [2]));_adbcg .Set ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074",_edgc );
};if _eacb .Range !=nil {_befbf :=_ac .MakeArray (_ac .MakeFloat (_eacb .Range [0]),_ac .MakeFloat (_eacb .Range [1]),_ac .MakeFloat (_eacb .Range [2]),_ac .MakeFloat (_eacb .Range [3]));_adbcg .Set ("\u0052\u0061\u006eg\u0065",_befbf );};_adeac .Append (_adbcg );
if _eacb ._gacg !=nil {_eacb ._gacg .PdfObject =_adeac ;return _eacb ._gacg ;};return _adeac ;};
// NewPdfActionSubmitForm returns a new "submit form" action.
func NewPdfActionSubmitForm ()*PdfActionSubmitForm {_ge :=NewPdfAction ();_eb :=&PdfActionSubmitForm {};_eb .PdfAction =_ge ;_ge .SetContext (_eb );return _eb ;};
// ColorFromPdfObjects gets the color from a series of pdf objects (3 for rgb).
func (_afff *PdfColorspaceDeviceRGB )ColorFromPdfObjects (objects []_ac .PdfObject )(PdfColor ,error ){if len (objects )!=3{return nil ,_af .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_fbgg ,_ggb :=_ac .GetNumbersAsFloat (objects );
if _ggb !=nil {return nil ,_ggb ;};return _afff .ColorFromFloats (_fbgg );};
// NewPdfAnnotationStrikeOut returns a new text strikeout annotation.
func NewPdfAnnotationStrikeOut ()*PdfAnnotationStrikeOut {_bdc :=NewPdfAnnotation ();_edaf :=&PdfAnnotationStrikeOut {};_edaf .PdfAnnotation =_bdc ;_edaf .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_bdc .SetContext (_edaf );return _edaf ;};
// ImageToGray returns a new grayscale image based on the passed in RGB image.
func (_geag *PdfColorspaceDeviceRGB )ImageToGray (img Image )(Image ,error ){if img .ColorComponents !=3{return img ,_af .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");
};_fdca ,_cafba :=_ed .NewImage (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),img .ColorComponents ,img .Data ,img ._ebga ,img ._gffd );if _cafba !=nil {return img ,_cafba ;};_dfffe ,_cafba :=_ed .GrayConverter .Convert (_fdca );if _cafba !=nil {return img ,_cafba ;
};return _affb (_dfffe .Base ()),nil ;};
// Encoder returns the font's text encoder.
func (_bfdd *PdfFont )Encoder ()_gf .TextEncoder {_bebge :=_bfdd .actualFont ();if _bebge ==nil {_gd .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",_bfdd ._gegb );
return nil ;};return _bebge .Encoder ();};
// ToPdfObject implements interface PdfModel.
func (_aef *PdfActionLaunch )ToPdfObject ()_ac .PdfObject {_aef .PdfAction .ToPdfObject ();_fbcc :=_aef ._eef ;_gdfe :=_fbcc .PdfObject .(*_ac .PdfObjectDictionary );_gdfe .SetIfNotNil ("\u0053",_ac .MakeName (string (ActionTypeLaunch )));if _aef .F !=nil {_gdfe .Set ("\u0046",_aef .F .ToPdfObject ());
};_gdfe .SetIfNotNil ("\u0057\u0069\u006e",_aef .Win );_gdfe .SetIfNotNil ("\u004d\u0061\u0063",_aef .Mac );_gdfe .SetIfNotNil ("\u0055\u006e\u0069\u0078",_aef .Unix );_gdfe .SetIfNotNil ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw",_aef .NewWindow );
return _fbcc ;};
// 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 _ac .PdfObject ;FontFamily _ac .PdfObject ;FontStretch _ac .PdfObject ;FontWeight _ac .PdfObject ;Flags _ac .PdfObject ;FontBBox _ac .PdfObject ;ItalicAngle _ac .PdfObject ;Ascent _ac .PdfObject ;Descent _ac .PdfObject ;
Leading _ac .PdfObject ;CapHeight _ac .PdfObject ;XHeight _ac .PdfObject ;StemV _ac .PdfObject ;StemH _ac .PdfObject ;AvgWidth _ac .PdfObject ;MaxWidth _ac .PdfObject ;MissingWidth _ac .PdfObject ;FontFile _ac .PdfObject ;FontFile2 _ac .PdfObject ;FontFile3 _ac .PdfObject ;
CharSet _ac .PdfObject ;_dbfcb int ;_fffd float64 ;*fontFile ;_edfg *_fda .TtfType ;
// Additional entries for CIDFonts
Style _ac .PdfObject ;Lang _ac .PdfObject ;FD _ac .PdfObject ;CIDSet _ac .PdfObject ;_adfg *_ac .PdfIndirectObject ;};
// 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 ;_egecf []byte ;_gfec []uint32 ;_gcca *_ac .PdfObjectStream ;};
// 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 (_bbfc *PdfFieldButton )GetType ()ButtonType {_gbged :=ButtonTypeCheckbox ;if _bbfc .Ff !=nil {if (uint32 (*_bbfc .Ff )&FieldFlagPushbutton .Mask ())> 0{_gbged =ButtonTypePush ;}else if (uint32 (*_bbfc .Ff )&FieldFlagRadio .Mask ())> 0{_gbged =ButtonTypeRadio ;
};};return _gbged ;};
// 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 ()_ac .PdfObject ;GetContainingPdfObject ()_ac .PdfObject ;};var _degc =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":{}};
// SetName sets the `Name` field of the signature.
func (_bdfae *PdfSignature )SetName (name string ){_bdfae .Name =_ac .MakeString (name )};
// NewPdfColorspaceSpecialPattern returns a new pattern color.
func NewPdfColorspaceSpecialPattern ()*PdfColorspaceSpecialPattern {return &PdfColorspaceSpecialPattern {};};
// NewXObjectFormFromStream builds the Form XObject from a stream object.
// TODO: Should this be exposed? Consider different access points.
func NewXObjectFormFromStream (stream *_ac .PdfObjectStream )(*XObjectForm ,error ){_dfbbf :=&XObjectForm {};_dfbbf ._fggc =stream ;_ecff :=*(stream .PdfObjectDictionary );_gddfc ,_cdgca :=_ac .NewEncoderFromStream (stream );if _cdgca !=nil {return nil ,_cdgca ;
};_dfbbf .Filter =_gddfc ;if _ebgbd :=_ecff .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065");_ebgbd !=nil {_edgdea ,_fbbbc :=_ebgbd .(*_ac .PdfObjectName );if !_fbbbc {return nil ,_af .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");
};if *_edgdea !="\u0046\u006f\u0072\u006d"{_gd .Log .Debug ("I\u006ev\u0061\u006c\u0069\u0064\u0020\u0066\u006f\u0072m\u0020\u0073\u0075\u0062ty\u0070\u0065");return nil ,_af .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0066\u006f\u0072m\u0020\u0073\u0075\u0062ty\u0070\u0065");
};};if _agfcb :=_ecff .Get ("\u0046\u006f\u0072\u006d\u0054\u0079\u0070\u0065");_agfcb !=nil {_dfbbf .FormType =_agfcb ;};if _aafab :=_ecff .Get ("\u0042\u0042\u006f\u0078");_aafab !=nil {_dfbbf .BBox =_aafab ;};if _accab :=_ecff .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");
_accab !=nil {_dfbbf .Matrix =_accab ;};if _cdcdb :=_ecff .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");_cdcdb !=nil {_cdcdb =_ac .TraceToDirectObject (_cdcdb );_bbaacf ,_acfcgd :=_cdcdb .(*_ac .PdfObjectDictionary );if !_acfcgd {_gd .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 ,_ac .ErrTypeError ;};_eeefc ,_bfged :=NewPdfPageResourcesFromDict (_bbaacf );if _bfged !=nil {_gd .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 ,_bfged ;};_dfbbf .Resources =_eeefc ;_gd .Log .Trace ("\u0046\u006f\u0072\u006d r\u0065\u0073\u006f\u0075\u0072\u0063\u0065\u0073\u003a\u0020\u0025\u0023\u0076",_dfbbf .Resources );};_dfbbf .Group =_ecff .Get ("\u0047\u0072\u006fu\u0070");_dfbbf .Ref =_ecff .Get ("\u0052\u0065\u0066");
_dfbbf .MetaData =_ecff .Get ("\u004d\u0065\u0074\u0061\u0044\u0061\u0074\u0061");_dfbbf .PieceInfo =_ecff .Get ("\u0050i\u0065\u0063\u0065\u0049\u006e\u0066o");_dfbbf .LastModified =_ecff .Get ("\u004c\u0061\u0073t\u004d\u006f\u0064\u0069\u0066\u0069\u0065\u0064");
_dfbbf .StructParent =_ecff .Get ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074");_dfbbf .StructParents =_ecff .Get ("\u0053\u0074\u0072\u0075\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074\u0073");_dfbbf .OPI =_ecff .Get ("\u004f\u0050\u0049");
_dfbbf .OC =_ecff .Get ("\u004f\u0043");_dfbbf .Name =_ecff .Get ("\u004e\u0061\u006d\u0065");_dfbbf .Stream =stream .Stream ;return _dfbbf ,nil ;};
// NewXObjectForm creates a brand new XObject Form. Creates a new underlying PDF object stream primitive.
func NewXObjectForm ()*XObjectForm {_gceac :=&XObjectForm {};_adaba :=&_ac .PdfObjectStream {};_adaba .PdfObjectDictionary =_ac .MakeDict ();_gceac ._fggc =_adaba ;return _gceac ;};
// Subtype returns the font's "Subtype" field.
func (_bfgb *PdfFont )Subtype ()string {_ebdf :=_bfgb .baseFields ()._efebg ;if _bbgeb ,_ebaf :=_bfgb ._gegb .(*pdfFontType0 );_ebaf {_ebdf =_ebdf +"\u003a"+_bbgeb .DescendantFont .Subtype ();};return _ebdf ;};
// NewPdfAnnotationFileAttachment returns a new file attachment annotation.
func NewPdfAnnotationFileAttachment ()*PdfAnnotationFileAttachment {_dge :=NewPdfAnnotation ();_dba :=&PdfAnnotationFileAttachment {};_dba .PdfAnnotation =_dge ;_dba .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_dge .SetContext (_dba );return _dba ;};
var _ pdfFont =(*pdfFontType0 )(nil );
// PdfActionGoToR represents a GoToR action.
type PdfActionGoToR struct{*PdfAction ;F *PdfFilespec ;D _ac .PdfObject ;NewWindow _ac .PdfObject ;};func _adggdg (_dccca _ac .PdfObject )(*PdfPageResourcesColorspaces ,error ){_egecd :=&PdfPageResourcesColorspaces {};if _dgcdd ,_ebada :=_dccca .(*_ac .PdfIndirectObject );
_ebada {_egecd ._cegba =_dgcdd ;_dccca =_dgcdd .PdfObject ;};_dccdb ,_effaa :=_ac .GetDict (_dccca );if !_effaa {return nil ,_af .New ("\u0043\u0053\u0020at\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");
};_egecd .Names =[]string {};_egecd .Colorspaces =map[string ]PdfColorspace {};for _ ,_bdcde :=range _dccdb .Keys (){_aagf :=_dccdb .Get (_bdcde );_egecd .Names =append (_egecd .Names ,string (_bdcde ));_agbd ,_efeed :=NewPdfColorspaceFromPdfObject (_aagf );
if _efeed !=nil {return nil ,_efeed ;};_egecd .Colorspaces [string (_bdcde )]=_agbd ;};return _egecd ,nil ;};func (_dcabc *PdfSignature )extractChainFromCert ()([]*_fc .Certificate ,error ){var _bbfgc *_ac .PdfObjectArray ;switch _debba :=_dcabc .Cert .(type ){case *_ac .PdfObjectString :_bbfgc =_ac .MakeArray (_debba );
case *_ac .PdfObjectArray :_bbfgc =_debba ;default:return nil ,_d .Errorf ("\u0069n\u0076\u0061l\u0069\u0064\u0020s\u0069\u0067\u006e\u0061\u0074\u0075\u0072e\u0020\u0063\u0065\u0072\u0074\u0069f\u0069\u0063\u0061\u0074\u0065\u0020\u006f\u0062\u006a\u0065\u0063t\u0020\u0074\u0079\u0070\u0065\u003a\u0020\u0025\u0054",_debba );
};var _baeed _fd .Buffer ;for _ ,_cggefc :=range _bbfgc .Elements (){_faegc ,_bddcdd :=_ac .GetString (_cggefc );if !_bddcdd {return nil ,_d .Errorf ("\u0069\u006ev\u0061\u006c\u0069\u0064\u0020\u0063\u0065\u0072\u0074\u0069\u0066\u0069\u0063\u0061\u0074\u0065\u0020\u006f\u0062j\u0065\u0063\u0074\u0020\u0074\u0079p\u0065\u0020\u0069\u006e\u0020\u0073\u0069\u0067\u006e\u0061\u0074\u0075\u0072\u0065 \u0063\u0065r\u0074\u0069\u0066\u0069c\u0061\u0074\u0065\u0020\u0063h\u0061\u0069\u006e\u003a\u0020\u0025\u0054",_cggefc );
};if _ ,_efbbb :=_baeed .Write (_faegc .Bytes ());_efbbb !=nil {return nil ,_efbbb ;};};return _fc .ParseCertificates (_baeed .Bytes ());};
// NewPdfActionMovie returns a new "movie" action.
func NewPdfActionMovie ()*PdfActionMovie {_fce :=NewPdfAction ();_fbc :=&PdfActionMovie {};_fbc .PdfAction =_fce ;_fce .SetContext (_fbc );return _fbc ;};
// SetContext sets the sub pattern (context). Either PdfTilingPattern or PdfShadingPattern.
func (_cddde *PdfPattern )SetContext (ctx PdfModel ){_cddde ._bfcc =ctx };
// GetContainingPdfObject implements interface PdfModel.
func (_bccbd *PdfSignature )GetContainingPdfObject ()_ac .PdfObject {return _bccbd ._bfgde };func _fecbg ()string {_gcaaba .Lock ();defer _gcaaba .Unlock ();_fddba :=_cb .GetLicenseKey ();if len (_affcb )> 0&&(_fddba .IsLicensed ()||_edfda ){return _affcb ;
};return _d .Sprintf ("\u0055\u006e\u0069Do\u0063\u0020\u0076\u0025\u0073\u0020\u0028\u0025\u0073)\u0020-\u0020h\u0074t\u0070\u003a\u002f\u002f\u0075\u006e\u0069\u0064\u006f\u0063\u002e\u0069\u006f",_fbfdb (),_fddba .TypeToString ());};func _gfbe (_feceg *PdfPage ){_abdad :=_cb .GetLicenseKey ();
if _abdad !=nil &&_abdad .IsLicensed (){return ;};_defc :=_ac .PdfObjectName ("\u0055\u0046\u0031");if !_feceg .Resources .HasFontByName (_defc ){_feceg .Resources .SetFontByName (_defc ,DefaultFont ().ToPdfObject ());};var _fgbc []string ;_fgbc =append (_fgbc ,"\u0071");
_fgbc =append (_fgbc ,"\u0042\u0054");_fgbc =append (_fgbc ,_d .Sprintf ("\u002f%\u0073\u0020\u0031\u0034\u0020\u0054f",_defc .String ()));_fgbc =append (_fgbc ,"\u0031\u0020\u0030\u0020\u0030\u0020\u0072\u0067");_fgbc =append (_fgbc ,"\u0031\u0030\u0020\u0031\u0030\u0020\u0054\u0064");
_dgeed :="\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";
_fgbc =append (_fgbc ,_d .Sprintf ("\u0028%\u0073\u0029\u0020\u0054\u006a",_dgeed ));_fgbc =append (_fgbc ,"\u0045\u0054");_fgbc =append (_fgbc ,"\u0051");_fecec :=_fg .Join (_fgbc ,"\u000a");_feceg .AddContentStreamByString (_fecec );_feceg .ToPdfObject ();
};
// 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 (_febda *PdfOutlineTreeNode )GetContext ()PdfModel {if _gcaba ,_efbd :=_febda ._dagfd .(*PdfOutline );_efbd {return _gcaba ;};if _beef ,_eeea :=_febda ._dagfd .(*PdfOutlineItem );_eeea {return _beef ;};_gd .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 ;};
// GetEncryptionMethod returns a descriptive information string about the encryption method used.
func (_ffcgf *PdfReader )GetEncryptionMethod ()string {_cefgd :=_ffcgf ._eebeg .GetCrypter ();return _cefgd .String ();};func (_dgde *pdfFontType3 )baseFields ()*fontCommon {return &_dgde .fontCommon };func (_debga *LTV )buildCertChain (_ddgcb ,_eacd []*_fc .Certificate )([]*_fc .Certificate ,map[string ]*_fc .Certificate ,error ){_dced :=map[string ]*_fc .Certificate {};
for _ ,_efeae :=range _ddgcb {_dced [_efeae .Subject .CommonName ]=_efeae ;};_bfecd :=_ddgcb ;for _ ,_beege :=range _eacd {_acecg :=_beege .Subject .CommonName ;if _ ,_fcdc :=_dced [_acecg ];_fcdc {continue ;};_dced [_acecg ]=_beege ;_bfecd =append (_bfecd ,_beege );
};if len (_bfecd )==0{return nil ,nil ,ErrSignNoCertificates ;};var _gbbcf error ;for _eacf :=_bfecd [0];_eacf !=nil &&!_debga .CertClient .IsCA (_eacf );{_ebfba ,_gbdbg :=_dced [_eacf .Issuer .CommonName ];if !_gbdbg {if _ebfba ,_gbbcf =_debga .CertClient .GetIssuer (_eacf );
_gbbcf !=nil {_gd .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",_gbbcf );
break ;};_dced [_eacf .Issuer .CommonName ]=_ebfba ;_bfecd =append (_bfecd ,_ebfba );};_eacf =_ebfba ;};return _bfecd ,_dced ,nil ;};
// IsEncrypted returns true if the PDF file is encrypted.
func (_feceb *PdfReader )IsEncrypted ()(bool ,error ){return _feceb ._eebeg .IsEncrypted ()};
// ToPdfObject implements interface PdfModel.
func (_bgaa *PdfAnnotationSquare )ToPdfObject ()_ac .PdfObject {_bgaa .PdfAnnotation .ToPdfObject ();_cdee :=_bgaa ._fegd ;_aegeg :=_cdee .PdfObject .(*_ac .PdfObjectDictionary );if _bgaa .PdfAnnotationMarkup !=nil {_bgaa .PdfAnnotationMarkup .appendToPdfDictionary (_aegeg );
};_aegeg .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ac .MakeName ("\u0053\u0071\u0075\u0061\u0072\u0065"));_aegeg .SetIfNotNil ("\u0042\u0053",_bgaa .BS );_aegeg .SetIfNotNil ("\u0049\u0043",_bgaa .IC );_aegeg .SetIfNotNil ("\u0042\u0045",_bgaa .BE );
_aegeg .SetIfNotNil ("\u0052\u0044",_bgaa .RD );return _cdee ;};
// IsRadio returns true if the button field represents a radio button, false otherwise.
func (_cgage *PdfFieldButton )IsRadio ()bool {return _cgage .GetType ()==ButtonTypeRadio };
// GetContentStreamWithEncoder returns the pattern cell's content stream and its encoder
func (_fggbg *PdfTilingPattern )GetContentStreamWithEncoder ()([]byte ,_ac .StreamEncoder ,error ){_aedcf ,_efffaf :=_fggbg ._fddfb .(*_ac .PdfObjectStream );if !_efffaf {_gd .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",_fggbg ._fddfb );
return nil ,nil ,_ac .ErrTypeError ;};_bbfg ,_ebcbfd :=_ac .DecodeStream (_aedcf );if _ebcbfd !=nil {_gd .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",_ebcbfd );
return nil ,nil ,_ebcbfd ;};_eefg ,_ebcbfd :=_ac .NewEncoderFromStream (_aedcf );if _ebcbfd !=nil {_gd .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",_ebcbfd );
return nil ,nil ,_ebcbfd ;};return _bbfg ,_eefg ,nil ;};
// Optimizer is the interface that performs optimization of PDF object structure for output writing.
//
// Optimize receives a slice of input `objects`, performs optimization, including removing, replacing objects and
// output the optimized slice of objects.
type Optimizer interface{Optimize (_afdga []_ac .PdfObject )([]_ac .PdfObject ,error );};
// NewPdfFilespec returns an initialized generic PDF filespec model.
func NewPdfFilespec ()*PdfFilespec {_eabgf :=&PdfFilespec {};_eabgf ._fege =_ac .MakeIndirectObject (_ac .MakeDict ());return _eabgf ;};
// WriteString outputs the object as it is to be written to file.
func (_egffc *PdfTransformParamsDocMDP )WriteString ()string {return _egffc .ToPdfObject ().WriteString ();};func (_dffb *PdfAppender )replaceObject (_fffe ,_ffeb _ac .PdfObject ){switch _fbbf :=_fffe .(type ){case *_ac .PdfIndirectObject :_dffb ._degfa [_ffeb ]=_fbbf .ObjectNumber ;
case *_ac .PdfObjectStream :_dffb ._degfa [_ffeb ]=_fbbf .ObjectNumber ;};};func (_debeb *pdfFontSimple )getFontDescriptor ()*PdfFontDescriptor {if _bafag :=_debeb ._bgbdc ;_bafag !=nil {return _bafag ;};return _debeb ._ffbea ;};
// PdfShadingType5 is a Lattice-form Gouraud-shaded triangle mesh.
type PdfShadingType5 struct{*PdfShading ;BitsPerCoordinate *_ac .PdfObjectInteger ;BitsPerComponent *_ac .PdfObjectInteger ;VerticesPerRow *_ac .PdfObjectInteger ;Decode *_ac .PdfObjectArray ;Function []PdfFunction ;};
// NewPdfAnnotationRedact returns a new redact annotation.
func NewPdfAnnotationRedact ()*PdfAnnotationRedact {_faf :=NewPdfAnnotation ();_bff :=&PdfAnnotationRedact {};_bff .PdfAnnotation =_faf ;_bff .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_faf .SetContext (_bff );return _bff ;};
// AddAnnotation appends `annot` to the list of page annotations.
func (_daga *PdfPage )AddAnnotation (annot *PdfAnnotation ){if _daga ._ceca ==nil {_daga .GetAnnotations ();};_daga ._ceca =append (_daga ._ceca ,annot );};
// SetShadingByName sets a shading resource specified by keyName.
func (_ddcc *PdfPageResources )SetShadingByName (keyName _ac .PdfObjectName ,shadingObj _ac .PdfObject )error {if _ddcc .Shading ==nil {_ddcc .Shading =_ac .MakeDict ();};_gdggd ,_gebce :=_ac .GetDict (_ddcc .Shading );if !_gebce {return _ac .ErrTypeError ;
};_gdggd .Set (keyName ,shadingObj );return nil ;};
// 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 (_afadg *PdfPage )SetContentStreams (cStreams []string ,encoder _ac .StreamEncoder )error {if len (cStreams )==0{_afadg .Contents =nil ;return nil ;};if encoder ==nil {encoder =_ac .NewRawEncoder ();};var _bcce []*_ac .PdfObjectStream ;for _ ,_gaffg :=range cStreams {_dcgcea :=&_ac .PdfObjectStream {};
_dgebab :=encoder .MakeStreamDict ();_ebcf ,_bbcec :=encoder .EncodeBytes ([]byte (_gaffg ));if _bbcec !=nil {return _bbcec ;};_dgebab .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_ac .MakeInteger (int64 (len (_ebcf ))));_dcgcea .PdfObjectDictionary =_dgebab ;
_dcgcea .Stream =_ebcf ;_bcce =append (_bcce ,_dcgcea );};if len (_bcce )==1{_afadg .Contents =_bcce [0];}else {_faefc :=_ac .MakeArray ();for _ ,_gdaf :=range _bcce {_faefc .Append (_gdaf );};_afadg .Contents =_faefc ;};return nil ;};
// ToPdfObject return the CalGray colorspace as a PDF object (name dictionary).
func (_cbgc *PdfColorspaceCalGray )ToPdfObject ()_ac .PdfObject {_dedg :=&_ac .PdfObjectArray {};_dedg .Append (_ac .MakeName ("\u0043a\u006c\u0047\u0072\u0061\u0079"));_addad :=_ac .MakeDict ();if _cbgc .WhitePoint !=nil {_addad .Set ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074",_ac .MakeArray (_ac .MakeFloat (_cbgc .WhitePoint [0]),_ac .MakeFloat (_cbgc .WhitePoint [1]),_ac .MakeFloat (_cbgc .WhitePoint [2])));
}else {_gd .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 _cbgc .BlackPoint !=nil {_addad .Set ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074",_ac .MakeArray (_ac .MakeFloat (_cbgc .BlackPoint [0]),_ac .MakeFloat (_cbgc .BlackPoint [1]),_ac .MakeFloat (_cbgc .BlackPoint [2])));
};_addad .Set ("\u0047\u0061\u006dm\u0061",_ac .MakeFloat (_cbgc .Gamma ));_dedg .Append (_addad );if _cbgc ._eabd !=nil {_cbgc ._eabd .PdfObject =_dedg ;return _cbgc ._eabd ;};return _dedg ;};
// SetPatternByName sets a pattern resource specified by keyName.
func (_adadg *PdfPageResources )SetPatternByName (keyName _ac .PdfObjectName ,pattern _ac .PdfObject )error {if _adadg .Pattern ==nil {_adadg .Pattern =_ac .MakeDict ();};_dfcef ,_bbacc :=_ac .GetDict (_adadg .Pattern );if !_bbacc {return _ac .ErrTypeError ;
};_dfcef .Set (keyName ,pattern );return nil ;};
// ToPdfObject implements interface PdfModel.
func (_cec *PdfActionThread )ToPdfObject ()_ac .PdfObject {_cec .PdfAction .ToPdfObject ();_ag :=_cec ._eef ;_geb :=_ag .PdfObject .(*_ac .PdfObjectDictionary );_geb .SetIfNotNil ("\u0053",_ac .MakeName (string (ActionTypeThread )));if _cec .F !=nil {_geb .Set ("\u0046",_cec .F .ToPdfObject ());
};_geb .SetIfNotNil ("\u0044",_cec .D );_geb .SetIfNotNil ("\u0042",_cec .B );return _ag ;};func _gdcaa (_deea _ac .PdfObject )(*PdfColorspaceDeviceNAttributes ,error ){_begf :=&PdfColorspaceDeviceNAttributes {};var _ggbb *_ac .PdfObjectDictionary ;switch _eaba :=_deea .(type ){case *_ac .PdfIndirectObject :_begf ._gaag =_eaba ;
var _feec bool ;_ggbb ,_feec =_eaba .PdfObject .(*_ac .PdfObjectDictionary );if !_feec {_gd .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 ,_af .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};case *_ac .PdfObjectDictionary :_ggbb =_eaba ;case *_ac .PdfObjectReference :_egcf :=_eaba .Resolve ();return _gdcaa (_egcf );default:_gd .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 ,_af .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _gebc :=_ggbb .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065");_gebc !=nil {_cbed ,_defd :=_ac .TraceToDirectObject (_gebc ).(*_ac .PdfObjectName );if !_defd {_gd .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 ,_af .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};_begf .Subtype =_cbed ;};if _aaacb :=_ggbb .Get ("\u0043o\u006c\u006f\u0072\u0061\u006e\u0074s");_aaacb !=nil {_begf .Colorants =_aaacb ;};if _fdgf :=_ggbb .Get ("\u0050r\u006f\u0063\u0065\u0073\u0073");
_fdgf !=nil {_begf .Process =_fdgf ;};if _dbfd :=_ggbb .Get ("M\u0069\u0078\u0069\u006e\u0067\u0048\u0069\u006e\u0074\u0073");_dbfd !=nil {_begf .MixingHints =_dbfd ;};return _begf ,nil ;};
// NewPdfColorspaceSpecialSeparation returns a new separation color.
func NewPdfColorspaceSpecialSeparation ()*PdfColorspaceSpecialSeparation {_gfega :=&PdfColorspaceSpecialSeparation {};return _gfega ;};
// PdfDate represents a date, which is a PDF string of the form:
// (D:YYYYMMDDHHmmSSOHH'mm)
type PdfDate struct{_bfbe int64 ;_dbbcd int64 ;_dgfeb int64 ;_ffgecb int64 ;_eega int64 ;_dcebf int64 ;_cbcad byte ;_bbdfd int64 ;_ecccg int64 ;};func (_abd *PdfReader )newPdfAnnotationInkFromDict (_ceaa *_ac .PdfObjectDictionary )(*PdfAnnotationInk ,error ){_gdef :=PdfAnnotationInk {};
_dcdf ,_egfb :=_abd .newPdfAnnotationMarkupFromDict (_ceaa );if _egfb !=nil {return nil ,_egfb ;};_gdef .PdfAnnotationMarkup =_dcdf ;_gdef .InkList =_ceaa .Get ("\u0049n\u006b\u004c\u0069\u0073\u0074");_gdef .BS =_ceaa .Get ("\u0042\u0053");return &_gdef ,nil ;
};func (_gefgc *Image )samplesTrimPadding (_cbfd []uint32 )[]uint32 {_cbaf :=_gefgc .ColorComponents *int (_gefgc .Width )*int (_gefgc .Height );if len (_cbfd )==_cbaf {return _cbfd ;};_fbdg :=make ([]uint32 ,_cbaf );_ccfba :=int (_gefgc .Width )*_gefgc .ColorComponents ;
var _gfbcd ,_bafd ,_eeabd ,_gbfag int ;_ceefc :=_ed .BytesPerLine (int (_gefgc .Width ),int (_gefgc .BitsPerComponent ),_gefgc .ColorComponents );for _gfbcd =0;_gfbcd < int (_gefgc .Height );_gfbcd ++{_bafd =_gfbcd *int (_gefgc .Width );_eeabd =_gfbcd *_ceefc ;
for _gbfag =0;_gbfag < _ccfba ;_gbfag ++{_fbdg [_bafd +_gbfag ]=_cbfd [_eeabd +_gbfag ];};};return _fbdg ;};
// AllFields returns a flattened list of all fields in the form.
func (_eafe *PdfAcroForm )AllFields ()[]*PdfField {if _eafe ==nil {return nil ;};var _fddda []*PdfField ;if _eafe .Fields !=nil {for _ ,_dbgda :=range *_eafe .Fields {_fddda =append (_fddda ,_cggbg (_dbgda )...);};};return _fddda ;};
// GetAlphabet returns a map of the runes in `text` and their frequencies.
func GetAlphabet (text string )map[rune ]int {_aaaa :=map[rune ]int {};for _ ,_afac :=range text {_aaaa [_afac ]++;};return _aaaa ;};var _dcagc =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"};
// ToPdfObject implements interface PdfModel.
func (_cgc *PdfActionGoToR )ToPdfObject ()_ac .PdfObject {_cgc .PdfAction .ToPdfObject ();_aca :=_cgc ._eef ;_bfb :=_aca .PdfObject .(*_ac .PdfObjectDictionary );_bfb .SetIfNotNil ("\u0053",_ac .MakeName (string (ActionTypeGoToR )));if _cgc .F !=nil {_bfb .Set ("\u0046",_cgc .F .ToPdfObject ());
};_bfb .SetIfNotNil ("\u0044",_cgc .D );_bfb .SetIfNotNil ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw",_cgc .NewWindow );return _aca ;};
// GetAsShadingPattern returns a shading pattern. Check with IsShading() prior to using this.
func (_cgfd *PdfPattern )GetAsShadingPattern ()*PdfShadingPattern {return _cgfd ._bfcc .(*PdfShadingPattern );};
// ToPdfObject returns the PDF representation of the colorspace.
func (_bbbc *PdfColorspaceDeviceRGB )ToPdfObject ()_ac .PdfObject {return _ac .MakeName ("\u0044e\u0076\u0069\u0063\u0065\u0052\u0047B");};
// GetNumComponents returns the number of color components (3 for CalRGB).
func (_eccd *PdfColorCalRGB )GetNumComponents ()int {return 3};func _cgdg (_fedbd _ac .PdfObject )(*PdfColorspaceSpecialSeparation ,error ){_cggf :=NewPdfColorspaceSpecialSeparation ();if _gaeg ,_dgea :=_fedbd .(*_ac .PdfIndirectObject );_dgea {_cggf ._becg =_gaeg ;
};_fedbd =_ac .TraceToDirectObject (_fedbd );_eacc ,_dbfb :=_fedbd .(*_ac .PdfObjectArray );if !_dbfb {return nil ,_d .Errorf ("\u0073\u0065p\u0061\u0072\u0061\u0074\u0069\u006f\u006e\u0020\u0043\u0053\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006f\u0062je\u0063\u0074");
};if _eacc .Len ()!=4{return nil ,_d .Errorf ("\u0073\u0065p\u0061\u0072\u0061\u0074i\u006f\u006e \u0043\u0053\u003a\u0020\u0049\u006e\u0063\u006fr\u0072\u0065\u0063\u0074\u0020\u0061\u0072\u0072\u0061\u0079\u0020\u006ce\u006e\u0067\u0074\u0068");};_fedbd =_eacc .Get (0);
_fcbg ,_dbfb :=_fedbd .(*_ac .PdfObjectName );if !_dbfb {return nil ,_d .Errorf ("\u0073\u0065\u0070ar\u0061\u0074\u0069\u006f\u006e\u0020\u0043\u0053\u003a \u0069n\u0076a\u006ci\u0064\u0020\u0066\u0061\u006d\u0069\u006c\u0079\u0020\u006e\u0061\u006d\u0065");
};if *_fcbg !="\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e"{return nil ,_d .Errorf ("\u0073\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e\u0020\u0043\u0053\u003a\u0020w\u0072o\u006e\u0067\u0020\u0066\u0061\u006d\u0069\u006c\u0079\u0020\u006e\u0061\u006d\u0065");
};_fedbd =_eacc .Get (1);_fcbg ,_dbfb =_fedbd .(*_ac .PdfObjectName );if !_dbfb {return nil ,_d .Errorf ("\u0073\u0065pa\u0072\u0061\u0074i\u006f\u006e\u0020\u0043S: \u0049nv\u0061\u006c\u0069\u0064\u0020\u0063\u006flo\u0072\u0061\u006e\u0074\u0020\u006e\u0061m\u0065");
};_cggf .ColorantName =_fcbg ;_fedbd =_eacc .Get (2);_fgcb ,_efeba :=NewPdfColorspaceFromPdfObject (_fedbd );if _efeba !=nil {return nil ,_efeba ;};_cggf .AlternateSpace =_fgcb ;_agdg ,_efeba :=_gcddf (_eacc .Get (3));if _efeba !=nil {return nil ,_efeba ;
};_cggf .TintTransform =_agdg ;return _cggf ,nil ;};func _ccae (_cadag []*_ac .PdfObjectStream )*_ac .PdfObjectArray {if len (_cadag )==0{return nil ;};_gcaed :=make ([]_ac .PdfObject ,0,len (_cadag ));for _ ,_gggae :=range _cadag {_gcaed =append (_gcaed ,_gggae );
};return _ac .MakeArray (_gcaed ...);};
// PdfActionType represents an action type in PDF (section 12.6.4 p. 417).
type PdfActionType string ;
// UpdateObject marks `obj` as updated and to be included in the following revision.
func (_ffad *PdfAppender )UpdateObject (obj _ac .PdfObject ){_ffad .replaceObject (obj ,obj );if _ ,_ccc :=_ffad ._eddbd [obj ];!_ccc {_ffad ._fgee =append (_ffad ._fgee ,obj );_ffad ._eddbd [obj ]=struct{}{};};};func (_fddd *PdfReader )newPdfAnnotationSquareFromDict (_dfbf *_ac .PdfObjectDictionary )(*PdfAnnotationSquare ,error ){_bec :=PdfAnnotationSquare {};
_dbea ,_beb :=_fddd .newPdfAnnotationMarkupFromDict (_dfbf );if _beb !=nil {return nil ,_beb ;};_bec .PdfAnnotationMarkup =_dbea ;_bec .BS =_dfbf .Get ("\u0042\u0053");_bec .IC =_dfbf .Get ("\u0049\u0043");_bec .BE =_dfbf .Get ("\u0042\u0045");_bec .RD =_dfbf .Get ("\u0052\u0044");
return &_bec ,nil ;};func _ggefga (_fdgc *_ac .PdfObjectArray )(float64 ,error ){_caege ,_cfffb :=_fdgc .ToFloat64Array ();if _cfffb !=nil {_gd .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",_fdgc ,_cfffb );
};switch len (_caege ){case 1:return _caege [0],nil ;case 3:_ceaaf :=PdfColorspaceDeviceRGB {};_aeccd ,_gdfa :=_ceaaf .ColorFromFloats (_caege );if _gdfa !=nil {return 0.0,_gdfa ;};return _aeccd .(*PdfColorDeviceRGB ).ToGray ().Val (),nil ;case 4:_gffae :=PdfColorspaceDeviceCMYK {};
_eeecd ,_aefcd :=_gffae .ColorFromFloats (_caege );if _aefcd !=nil {return 0.0,_aefcd ;};_gdgc ,_aefcd :=_gffae .ColorToRGB (_eeecd .(*PdfColorDeviceCMYK ));if _aefcd !=nil {return 0.0,_aefcd ;};return _gdgc .(*PdfColorDeviceRGB ).ToGray ().Val (),nil ;
};_cfffb =_af .New ("\u0062a\u0064 \u004d\u0061\u0074\u0074\u0065\u0020\u0063\u006f\u006c\u006f\u0072");_gd .Log .Error ("\u0074\u006f\u0047ra\u0079\u003a\u0020\u006d\u0061\u0074\u0074\u0065\u003d\u0025\u0073\u0020\u0065\u0072\u0072\u003d\u0025\u0076",_fdgc ,_cfffb );
return 0.0,_cfffb ;};func (_dcddcd *PdfReader )newPdfFieldSignatureFromDict (_gacc *_ac .PdfObjectDictionary )(*PdfFieldSignature ,error ){_eacbd :=&PdfFieldSignature {};_cccg ,_gegg :=_ac .GetIndirect (_gacc .Get ("\u0056"));if _gegg {var _fadf error ;
_eacbd .V ,_fadf =_dcddcd .newPdfSignatureFromIndirect (_cccg );if _fadf !=nil {return nil ,_fadf ;};};_eacbd .Lock ,_ =_ac .GetIndirect (_gacc .Get ("\u004c\u006f\u0063\u006b"));_eacbd .SV ,_ =_ac .GetIndirect (_gacc .Get ("\u0053\u0056"));return _eacbd ,nil ;
};
// PdfColorspaceSpecialIndexed is an indexed color space is a lookup table, where the input element
// is an index to the lookup table and the output is a color defined in the lookup table in the Base
// colorspace.
// [/Indexed base hival lookup]
type PdfColorspaceSpecialIndexed struct{Base PdfColorspace ;HiVal int ;Lookup _ac .PdfObject ;_dagf []byte ;_dbeed *_ac .PdfIndirectObject ;};
// SetDocInfo sets the document /Info metadata.
// This will overwrite any globally declared document info.
func (_aec *PdfAppender )SetDocInfo (info *PdfInfo ){_aec ._aead =info };
// ToPdfObject implements interface PdfModel.
func (_fcd *PdfActionTrans )ToPdfObject ()_ac .PdfObject {_fcd .PdfAction .ToPdfObject ();_eada :=_fcd ._eef ;_cbf :=_eada .PdfObject .(*_ac .PdfObjectDictionary );_cbf .SetIfNotNil ("\u0053",_ac .MakeName (string (ActionTypeTrans )));_cbf .SetIfNotNil ("\u0054\u0072\u0061n\u0073",_fcd .Trans );
return _eada ;};func (_fbabd *PdfWriter )getPdfVersion ()string {return _d .Sprintf ("\u0025\u0064\u002e%\u0064",_fbabd ._gdfdc .Major ,_fbabd ._gdfdc .Minor );};
// NewPdfSignature creates a new PdfSignature object.
func NewPdfSignature (handler SignatureHandler )*PdfSignature {_gdebd :=&PdfSignature {Type :_ac .MakeName ("\u0053\u0069\u0067"),Handler :handler };_fceg :=&pdfSignDictionary {PdfObjectDictionary :_ac .MakeDict (),_abgad :&handler ,_aacfd :_gdebd };_gdebd ._bfgde =_ac .MakeIndirectObject (_fceg );
return _gdebd ;};
// DecodeArray returns the range of color component values in DeviceRGB colorspace.
func (_aeaf *PdfColorspaceDeviceRGB )DecodeArray ()[]float64 {return []float64 {0.0,1.0,0.0,1.0,0.0,1.0};};
// ImageToRGB converts image in CalGray color space to RGB (A, B, C -> X, Y, Z).
func (_cdag *PdfColorspaceCalGray )ImageToRGB (img Image )(Image ,error ){_ffaaa :=_cg .NewReader (img .getBase ());_ccaf :=_ed .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),3,nil ,nil ,nil );_cgbb :=_cg .NewWriter (_ccaf );
_aace :=_da .Pow (2,float64 (img .BitsPerComponent ))-1;_daac :=make ([]uint32 ,3);var (_gggg uint32 ;ANorm ,X ,Y ,Z ,_agee ,_bgga ,_bcea float64 ;_acgg error ;);for {_gggg ,_acgg =_ffaaa .ReadSample ();if _acgg ==_adc .EOF {break ;}else if _acgg !=nil {return img ,_acgg ;
};ANorm =float64 (_gggg )/_aace ;X =_cdag .WhitePoint [0]*_da .Pow (ANorm ,_cdag .Gamma );Y =_cdag .WhitePoint [1]*_da .Pow (ANorm ,_cdag .Gamma );Z =_cdag .WhitePoint [2]*_da .Pow (ANorm ,_cdag .Gamma );_agee =3.240479*X +-1.537150*Y +-0.498535*Z ;_bgga =-0.969256*X +1.875992*Y +0.041556*Z ;
_bcea =0.055648*X +-0.204043*Y +1.057311*Z ;_agee =_da .Min (_da .Max (_agee ,0),1.0);_bgga =_da .Min (_da .Max (_bgga ,0),1.0);_bcea =_da .Min (_da .Max (_bcea ,0),1.0);_daac [0]=uint32 (_agee *_aace );_daac [1]=uint32 (_bgga *_aace );_daac [2]=uint32 (_bcea *_aace );
if _acgg =_cgbb .WriteSamples (_daac );_acgg !=nil {return img ,_acgg ;};};return _affb (&_ccaf ),nil ;};
// FieldValueProvider provides field values from a data source such as FDF, JSON or any other.
type FieldValueProvider interface{FieldValues ()(map[string ]_ac .PdfObject ,error );};
// 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 ;};
// NewPdfActionURI returns a new "Uri" action.
func NewPdfActionURI ()*PdfActionURI {_dgda :=NewPdfAction ();_adg :=&PdfActionURI {};_adg .PdfAction =_dgda ;_dgda .SetContext (_adg );return _adg ;};
// DecodeArray returns an empty slice as there are no components associated with pattern colorspace.
func (_fabab *PdfColorspaceSpecialPattern )DecodeArray ()[]float64 {return []float64 {}};
// ToPdfObject recursively builds the Outline tree PDF object.
func (_bcdbg *PdfOutline )ToPdfObject ()_ac .PdfObject {_ggebd :=_bcdbg ._eggfe ;_fdebba :=_ggebd .PdfObject .(*_ac .PdfObjectDictionary );_fdebba .Set ("\u0054\u0079\u0070\u0065",_ac .MakeName ("\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0073"));if _bcdbg .First !=nil {_fdebba .Set ("\u0046\u0069\u0072s\u0074",_bcdbg .First .ToPdfObject ());
};if _bcdbg .Last !=nil {_fdebba .Set ("\u004c\u0061\u0073\u0074",_bcdbg .Last .GetContext ().GetContainingPdfObject ());};if _bcdbg .Parent !=nil {_fdebba .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_bcdbg .Parent .GetContext ().GetContainingPdfObject ());
};if _bcdbg .Count !=nil {_fdebba .Set ("\u0043\u006f\u0075n\u0074",_ac .MakeInteger (*_bcdbg .Count ));};return _ggebd ;};
// 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 ;
// NewPdfColorspaceDeviceCMYK returns a new CMYK32 colorspace object.
func NewPdfColorspaceDeviceCMYK ()*PdfColorspaceDeviceCMYK {return &PdfColorspaceDeviceCMYK {}};
// ToPdfObject returns colorspace in a PDF object format [name dictionary]
func (_fagb *PdfColorspaceCalRGB )ToPdfObject ()_ac .PdfObject {_bdfa :=&_ac .PdfObjectArray {};_bdfa .Append (_ac .MakeName ("\u0043\u0061\u006c\u0052\u0047\u0042"));_agfe :=_ac .MakeDict ();if _fagb .WhitePoint !=nil {_adaa :=_ac .MakeArray (_ac .MakeFloat (_fagb .WhitePoint [0]),_ac .MakeFloat (_fagb .WhitePoint [1]),_ac .MakeFloat (_fagb .WhitePoint [2]));
_agfe .Set ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074",_adaa );}else {_gd .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 _fagb .BlackPoint !=nil {_dcdg :=_ac .MakeArray (_ac .MakeFloat (_fagb .BlackPoint [0]),_ac .MakeFloat (_fagb .BlackPoint [1]),_ac .MakeFloat (_fagb .BlackPoint [2]));_agfe .Set ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074",_dcdg );
};if _fagb .Gamma !=nil {_gcec :=_ac .MakeArray (_ac .MakeFloat (_fagb .Gamma [0]),_ac .MakeFloat (_fagb .Gamma [1]),_ac .MakeFloat (_fagb .Gamma [2]));_agfe .Set ("\u0047\u0061\u006dm\u0061",_gcec );};if _fagb .Matrix !=nil {_dfcb :=_ac .MakeArray (_ac .MakeFloat (_fagb .Matrix [0]),_ac .MakeFloat (_fagb .Matrix [1]),_ac .MakeFloat (_fagb .Matrix [2]),_ac .MakeFloat (_fagb .Matrix [3]),_ac .MakeFloat (_fagb .Matrix [4]),_ac .MakeFloat (_fagb .Matrix [5]),_ac .MakeFloat (_fagb .Matrix [6]),_ac .MakeFloat (_fagb .Matrix [7]),_ac .MakeFloat (_fagb .Matrix [8]));
_agfe .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_dfcb );};_bdfa .Append (_agfe );if _fagb ._cffg !=nil {_fagb ._cffg .PdfObject =_bdfa ;return _fagb ._cffg ;};return _bdfa ;};
// GetContainingPdfObject implements model.PdfModel interface.
func (_fbced *PdfOutputIntent )GetContainingPdfObject ()_ac .PdfObject {return _fbced ._egeec };
// 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 ;_bfcc PdfModel ;_fddfb _ac .PdfObject ;};
// 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 (_edgd *PdfColorspaceLab )ColorFromPdfObjects (objects []_ac .PdfObject )(PdfColor ,error ){if len (objects )!=3{return nil ,_af .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_fbggb ,_ecdba :=_ac .GetNumbersAsFloat (objects );
if _ecdba !=nil {return nil ,_ecdba ;};return _edgd .ColorFromFloats (_fbggb );};
// PdfActionRendition represents a Rendition action.
type PdfActionRendition struct{*PdfAction ;R _ac .PdfObject ;AN _ac .PdfObject ;OP _ac .PdfObject ;JS _ac .PdfObject ;};
// HasExtGState checks whether a font is defined by the specified keyName.
func (_ggfba *PdfPageResources )HasExtGState (keyName _ac .PdfObjectName )bool {_ ,_fcgg :=_ggfba .GetFontByName (keyName );return _fcgg ;};
// ImageToRGB returns an error since an image cannot be defined in a pattern colorspace.
func (_cegb *PdfColorspaceSpecialPattern )ImageToRGB (img Image )(Image ,error ){_gd .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 ,_af .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");};
// PdfColorspaceLab is a L*, a*, b* 3 component colorspace.
type PdfColorspaceLab struct{WhitePoint []float64 ;BlackPoint []float64 ;Range []float64 ;_gacg *_ac .PdfIndirectObject ;};func (_aafbc *Image )resampleLowBits (_fffce []uint32 ){_ebcgf :=_ed .BytesPerLine (int (_aafbc .Width ),int (_aafbc .BitsPerComponent ),_aafbc .ColorComponents );
_gceca :=make ([]byte ,_aafbc .ColorComponents *_ebcgf *int (_aafbc .Height ));_aggbc :=int (_aafbc .BitsPerComponent )*_aafbc .ColorComponents *int (_aafbc .Width );_baegb :=uint8 (8);var (_abag ,_faefg int ;_fcdbf uint32 ;);for _cacef :=0;_cacef < int (_aafbc .Height );
_cacef ++{_faefg =_cacef *_ebcgf ;for _bgbbg :=0;_bgbbg < _aggbc ;_bgbbg ++{_fcdbf =_fffce [_abag ];_baegb -=uint8 (_aafbc .BitsPerComponent );_gceca [_faefg ]|=byte (_fcdbf )<<_baegb ;if _baegb ==0{_baegb =8;_faefg ++;};_abag ++;};};_aafbc .Data =_gceca ;
};var (_gcaaba _dg .Mutex ;_bffb ="";_cdacg _e .Time ;_gabba ="";_dccb ="";_ggag _e .Time ;_affcb ="";_baggd ="";_ggffd ="";);
// NewPdfActionTrans returns a new "trans" action.
func NewPdfActionTrans ()*PdfActionTrans {_bag :=NewPdfAction ();_fa :=&PdfActionTrans {};_fa .PdfAction =_bag ;_bag .SetContext (_fa );return _fa ;};
// NewPdfAnnotationPrinterMark returns a new printermark annotation.
func NewPdfAnnotationPrinterMark ()*PdfAnnotationPrinterMark {_aac :=NewPdfAnnotation ();_aggcc :=&PdfAnnotationPrinterMark {};_aggcc .PdfAnnotation =_aac ;_aac .SetContext (_aggcc );return _aggcc ;};
// PdfColorspaceCalRGB stores A, B, C components
type PdfColorspaceCalRGB struct{WhitePoint []float64 ;BlackPoint []float64 ;Gamma []float64 ;Matrix []float64 ;_dbbc *_ac .PdfObjectDictionary ;_cffg *_ac .PdfIndirectObject ;};func (_bfagc *PdfWriter )writeAcroFormFields ()error {if _bfagc ._fggdf ==nil {return nil ;
};_gd .Log .Trace ("\u0057r\u0069t\u0069\u006e\u0067\u0020\u0061c\u0072\u006f \u0066\u006f\u0072\u006d\u0073");_bdacc :=_bfagc ._fggdf .ToPdfObject ();_gd .Log .Trace ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d\u003a\u0020\u0025\u002b\u0076",_bdacc );
_bfagc ._cgfegd .Set ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d",_bdacc );_aebg :=_bfagc .addObjects (_bdacc );if _aebg !=nil {return _aebg ;};return nil ;};
// 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 (_cagff *PdfSignature )bool ;
// Validate validates a PDF signature against a given digest (hash) such as that determined
// for an input file. Returns validation results.
Validate (_dcaba *PdfSignature ,_fbbgg 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 (_gbddb *PdfSignature )error ;
// NewDigest creates a new digest/hasher based on the signature dictionary and handler.
NewDigest (_ecdee *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 (_cgbece *PdfSignature ,_bbgc Hasher )error ;};func _facbg ()string {_gcaaba .Lock ();defer _gcaaba .Unlock ();return _ggffd };func (_dcf *PdfReader )newPdfAnnotationProjectionFromDict (_bfdc *_ac .PdfObjectDictionary )(*PdfAnnotationProjection ,error ){_aad :=&PdfAnnotationProjection {};
_fga ,_badb :=_dcf .newPdfAnnotationMarkupFromDict (_bfdc );if _badb !=nil {return nil ,_badb ;};_aad .PdfAnnotationMarkup =_fga ;return _aad ,nil ;};
// ToJBIG2Image converts current image to the core.JBIG2Image.
func (_eddab *Image )ToJBIG2Image ()(*_ac .JBIG2Image ,error ){_gcebg ,_fbdcd :=_eddab .ToGoImage ();if _fbdcd !=nil {return nil ,_fbdcd ;};return _ac .GoImageToJBIG2 (_gcebg ,_ac .JB2ImageAutoThreshold );};
// 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 (_bfecb *PdfPageResources )GetColorspaces ()(*PdfPageResourcesColorspaces ,error ){if _bfecb ._bdcee !=nil {return _bfecb ._bdcee ,nil ;};if _bfecb .ColorSpace ==nil {return nil ,nil ;};_dagdg ,_ceafc :=_adggdg (_bfecb .ColorSpace );if _ceafc !=nil {return nil ,_ceafc ;
};_bfecb ._bdcee =_dagdg ;return _bfecb ._bdcee ,nil ;};
// GetRuneMetrics returns the character metrics for the specified rune.
// A bool flag is returned to indicate whether or not the entry was found.
func (_abdfd pdfFontType0 )GetRuneMetrics (r rune )(_fda .CharMetrics ,bool ){if _abdfd .DescendantFont ==nil {_gd .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",_abdfd );
return _fda .CharMetrics {},false ;};return _abdfd .DescendantFont .GetRuneMetrics (r );};
// PdfAnnotationSound represents Sound annotations.
// (Section 12.5.6.16).
type PdfAnnotationSound struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Sound _ac .PdfObject ;Name _ac .PdfObject ;};