unipdf/model/model.go
2024-06-27 16:15:49 +00:00

5199 lines
771 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";_bf "bytes";_dad "crypto/md5";_fc "crypto/rand";_ed "crypto/sha1";_gff "crypto/x509";_ff "encoding/binary";_f "encoding/hex";_ad "errors";_dc "fmt";_dff "github.com/gabriel-vasile/mimetype";_ada "github.com/unidoc/pkcs7";
_ag "github.com/unidoc/unipdf/v3/common";_fd "github.com/unidoc/unipdf/v3/core";_dfg "github.com/unidoc/unipdf/v3/core/security";_dce "github.com/unidoc/unipdf/v3/core/security/crypt";_gd "github.com/unidoc/unipdf/v3/internal/cmap";_gbed "github.com/unidoc/unipdf/v3/internal/imageutil";
_ae "github.com/unidoc/unipdf/v3/internal/license";_bg "github.com/unidoc/unipdf/v3/internal/sampling";_ee "github.com/unidoc/unipdf/v3/internal/textencoding";_def "github.com/unidoc/unipdf/v3/internal/timeutils";_gdd "github.com/unidoc/unipdf/v3/internal/transform";
_ca "github.com/unidoc/unipdf/v3/model/internal/docutil";_cf "github.com/unidoc/unipdf/v3/model/internal/fonts";_gfg "github.com/unidoc/unipdf/v3/model/mdp";_ef "github.com/unidoc/unipdf/v3/model/sigutil";_fa "github.com/unidoc/unipdf/v3/ps";_geb "github.com/unidoc/unitype";
_ebb "golang.org/x/xerrors";_a "hash";_gb "image";_gc "image/color";_ "image/gif";_ "image/png";_bc "io";_gcb "io/ioutil";_af "math";_de "math/rand";_gbe "os";_gf "path/filepath";_ge "regexp";_da "sort";_bd "strconv";_gg "strings";_g "sync";_cd "time";
_df "unicode";_eb "unicode/utf8";);
// SetAlpha sets the alpha layer for the image.
func (_ddcf *Image )SetAlpha (alpha []byte ){_ddcf ._gfffd =alpha };func (_cfcce *pdfCIDFontType0 )baseFields ()*fontCommon {return &_cfcce .fontCommon };func (_abead *PdfWriter )getPdfVersion ()string {return _dc .Sprintf ("\u0025\u0064\u002e%\u0064",_abead ._ggaddg .Major ,_abead ._ggaddg .Minor );
};
// NewXObjectFormFromStream builds the Form XObject from a stream object.
// TODO: Should this be exposed? Consider different access points.
func NewXObjectFormFromStream (stream *_fd .PdfObjectStream )(*XObjectForm ,error ){_eddfa :=&XObjectForm {};_eddfa ._cebfa =stream ;_feada :=*(stream .PdfObjectDictionary );_gcedb ,_fadfe :=_fd .NewEncoderFromStream (stream );if _fadfe !=nil {return nil ,_fadfe ;
};_eddfa .Filter =_gcedb ;if _cedfb :=_feada .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065");_cedfb !=nil {_gecffg ,_dcgfa :=_cedfb .(*_fd .PdfObjectName );if !_dcgfa {return nil ,_ad .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");
};if *_gecffg !="\u0046\u006f\u0072\u006d"{_ag .Log .Debug ("I\u006ev\u0061\u006c\u0069\u0064\u0020\u0066\u006f\u0072m\u0020\u0073\u0075\u0062ty\u0070\u0065");return nil ,_ad .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0066\u006f\u0072m\u0020\u0073\u0075\u0062ty\u0070\u0065");
};};if _gbgfb :=_feada .Get ("\u0046\u006f\u0072\u006d\u0054\u0079\u0070\u0065");_gbgfb !=nil {_eddfa .FormType =_gbgfb ;};if _edgae :=_feada .Get ("\u0042\u0042\u006f\u0078");_edgae !=nil {_eddfa .BBox =_edgae ;};if _daabe :=_feada .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");
_daabe !=nil {_eddfa .Matrix =_daabe ;};if _egafeb :=_feada .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");_egafeb !=nil {_egafeb =_fd .TraceToDirectObject (_egafeb );_efafgb ,_egcdg :=_egafeb .(*_fd .PdfObjectDictionary );if !_egcdg {_ag .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 ,_fd .ErrTypeError ;};_dgbfg ,_gacffb :=NewPdfPageResourcesFromDict (_efafgb );if _gacffb !=nil {_ag .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 ,_gacffb ;};_eddfa .Resources =_dgbfg ;_ag .Log .Trace ("\u0046\u006f\u0072\u006d r\u0065\u0073\u006f\u0075\u0072\u0063\u0065\u0073\u003a\u0020\u0025\u0023\u0076",_eddfa .Resources );};_eddfa .Group =_feada .Get ("\u0047\u0072\u006fu\u0070");
_eddfa .Ref =_feada .Get ("\u0052\u0065\u0066");_eddfa .MetaData =_feada .Get ("\u004d\u0065\u0074\u0061\u0044\u0061\u0074\u0061");_eddfa .PieceInfo =_feada .Get ("\u0050i\u0065\u0063\u0065\u0049\u006e\u0066o");_eddfa .LastModified =_feada .Get ("\u004c\u0061\u0073t\u004d\u006f\u0064\u0069\u0066\u0069\u0065\u0064");
_eddfa .StructParent =_feada .Get ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074");_eddfa .StructParents =_feada .Get ("\u0053\u0074\u0072\u0075\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074\u0073");_eddfa .OPI =_feada .Get ("\u004f\u0050\u0049");
_eddfa .OC =_feada .Get ("\u004f\u0043");_eddfa .Name =_feada .Get ("\u004e\u0061\u006d\u0065");_eddfa .Stream =stream .Stream ;return _eddfa ,nil ;};
// GetContentStreamObjs returns a slice of PDF objects containing the content
// streams of the page.
func (_gcdfe *PdfPage )GetContentStreamObjs ()[]_fd .PdfObject {if _gcdfe .Contents ==nil {return nil ;};_cgffg :=_fd .TraceToDirectObject (_gcdfe .Contents );if _ebcf ,_fadg :=_cgffg .(*_fd .PdfObjectArray );_fadg {return _ebcf .Elements ();};return []_fd .PdfObject {_cgffg };
};
// 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 (_bgccg _bc .Reader )(*Image ,error );
// NewImageFromGoImage loads a NRGBA32 unidoc Image from a standard Go image structure.
NewImageFromGoImage (_ggfc _gb .Image )(*Image ,error );
// NewGrayImageFromGoImage loads a grayscale unidoc Image from a standard Go image structure.
NewGrayImageFromGoImage (_bede _gb .Image )(*Image ,error );
// Compress an image.
Compress (_dfgc *Image ,_aebef int64 )(*Image ,error );};func (_gfbe *PdfReader )newPdfAnnotationLineFromDict (_gca *_fd .PdfObjectDictionary )(*PdfAnnotationLine ,error ){_adfb :=PdfAnnotationLine {};_bbb ,_daf :=_gfbe .newPdfAnnotationMarkupFromDict (_gca );
if _daf !=nil {return nil ,_daf ;};_adfb .PdfAnnotationMarkup =_bbb ;_adfb .L =_gca .Get ("\u004c");_adfb .BS =_gca .Get ("\u0042\u0053");_adfb .LE =_gca .Get ("\u004c\u0045");_adfb .IC =_gca .Get ("\u0049\u0043");_adfb .LL =_gca .Get ("\u004c\u004c");
_adfb .LLE =_gca .Get ("\u004c\u004c\u0045");_adfb .Cap =_gca .Get ("\u0043\u0061\u0070");_adfb .IT =_gca .Get ("\u0049\u0054");_adfb .LLO =_gca .Get ("\u004c\u004c\u004f");_adfb .CP =_gca .Get ("\u0043\u0050");_adfb .Measure =_gca .Get ("\u004de\u0061\u0073\u0075\u0072\u0065");
_adfb .CO =_gca .Get ("\u0043\u004f");return &_adfb ,nil ;};
// ImageToRGB convert 1-component grayscale data to 3-component RGB.
func (_bcdg *PdfColorspaceDeviceGray )ImageToRGB (img Image )(Image ,error ){if img .ColorComponents !=1{return img ,_ad .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");
};_aceg ,_gdba :=_gbed .NewImage (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),img .ColorComponents ,img .Data ,img ._gfffd ,img ._cdbdc );if _gdba !=nil {return img ,_gdba ;};_efgg ,_gdba :=_gbed .NRGBAConverter .Convert (_aceg );
if _gdba !=nil {return img ,_gdba ;};_dffa :=_eeafa (_efgg .Base ());_ag .Log .Trace ("\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079\u0020\u002d>\u0020\u0052\u0047\u0042");_ag .Log .Trace ("s\u0061\u006d\u0070\u006c\u0065\u0073\u003a\u0020\u0025\u0076",img .Data );
_ag .Log .Trace ("\u0052G\u0042 \u0073\u0061\u006d\u0070\u006c\u0065\u0073\u003a\u0020\u0025\u0076",_dffa .Data );_ag .Log .Trace ("\u0025\u0076\u0020\u002d\u003e\u0020\u0025\u0076",img ,_dffa );return _dffa ,nil ;};
// NewPdfActionRendition returns a new "rendition" action.
func NewPdfActionRendition ()*PdfActionRendition {_efb :=NewPdfAction ();_ded :=&PdfActionRendition {};_ded .PdfAction =_efb ;_efb .SetContext (_ded );return _ded ;};
// NewPdfFileSpecFromEmbeddedFile construct a new PdfFileSpec that contains an embedded file.
func NewPdfFileSpecFromEmbeddedFile (file *EmbeddedFile )*PdfFilespec {_dabg :=&PdfFilespec {};_dabg ._cbfc =_fd .MakeIndirectObject (_fd .MakeDict ());_dabg .Desc =_fd .MakeString (file .Description );_dabg .EF =file .ToPdfObject ();_dabg .F =_fd .MakeString (file .Name );
_dabg .UF =_fd .MakeEncodedString (file .Name ,true );_gbcc :="U\u006e\u0073\u0070\u0065\u0063\u0069\u0066\u0069\u0065\u0064";switch file .Relationship {case RelationshipSource :_gbcc ="\u0053\u006f\u0075\u0072\u0063\u0065";case RelationshipData :_gbcc ="\u0044\u0061\u0074\u0061";
case RelationshipAlternative :_gbcc ="A\u006c\u0074\u0065\u0072\u006e\u0061\u0074\u0069\u0076\u0065";case RelationshipSupplement :_gbcc ="\u0053\u0075\u0070\u0070\u006c\u0065\u006d\u0065\u006e\u0074";};_dabg .AFRelationship =_fd .MakeName (_gbcc );return _dabg ;
};
// ToPdfObject returns the PDF representation of the colorspace.
func (_ebaf *PdfColorspaceSpecialPattern )ToPdfObject ()_fd .PdfObject {if _ebaf .UnderlyingCS ==nil {return _fd .MakeName ("\u0050a\u0074\u0074\u0065\u0072\u006e");};_ebca :=_fd .MakeArray (_fd .MakeName ("\u0050a\u0074\u0074\u0065\u0072\u006e"));_ebca .Append (_ebaf .UnderlyingCS .ToPdfObject ());
if _ebaf ._gcgab !=nil {_ebaf ._gcgab .PdfObject =_ebca ;return _ebaf ._gcgab ;};return _ebca ;};
// FieldFlag represents form field flags. Some of the flags can apply to all types of fields whereas other
// flags are specific.
type FieldFlag uint32 ;
// NewPdfActionGoToE returns a new "go to embedded" action.
func NewPdfActionGoToE ()*PdfActionGoToE {_efd :=NewPdfAction ();_gad :=&PdfActionGoToE {};_gad .PdfAction =_efd ;_efd .SetContext (_gad );return _gad ;};func _gabge (_gfec _fd .PdfObject ,_bbgfd bool )(*PdfFont ,error ){_eced ,_edef ,_cbgf :=_ccag (_gfec );
if _eced !=nil {_eeeea (_eced );};if _cbgf !=nil {if _cbgf ==ErrType1CFontNotSupported {_adgbf ,_gegec :=_fcced (_eced ,_edef ,nil );if _gegec !=nil {_ag .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",_edef ,_gegec );
return nil ,_cbgf ;};return &PdfFont {_gbaac :_adgbf },_cbgf ;};return nil ,_cbgf ;};_caad :=&PdfFont {};switch _edef ._eded {case "\u0054\u0079\u0070e\u0030":if !_bbgfd {_ag .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",_edef );
return nil ,_ad .New ("\u0063\u0079\u0063\u006cic\u0061\u006c\u0020\u0074\u0079\u0070\u0065\u0030\u0020\u006c\u006f\u0061\u0064\u0069n\u0067");};_abaf ,_defef :=_afde (_eced ,_edef );if _defef !=nil {_ag .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",_edef ,_defef );
return nil ,_defef ;};_caad ._gbaac =_abaf ;case "\u0054\u0079\u0070e\u0031","\u004dM\u0054\u0079\u0070\u0065\u0031","\u0054\u0072\u0075\u0065\u0054\u0079\u0070\u0065":var _fdfa *pdfFontSimple ;_ddgf ,_ggce :=_cf .NewStdFontByName (_cf .StdFontName (_edef ._ffedb ));
if _ggce {_abgee :=_fdea (_ddgf );_caad ._gbaac =&_abgee ;_cecg :=_fd .TraceToDirectObject (_abgee .ToPdfObject ());_bgefc ,_fdgg ,_eecb :=_ccag (_cecg );if _eecb !=nil {_ag .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",_edef ,_abgee );
return nil ,_eecb ;};for _ ,_geddb :=range _eced .Keys (){_bgefc .Set (_geddb ,_eced .Get (_geddb ));};_fdfa ,_eecb =_fcced (_bgefc ,_fdgg ,_abgee ._gadae );if _eecb !=nil {_ag .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",_edef ,_abgee );
return nil ,_eecb ;};_fdfa ._bafeg =_abgee ._bafeg ;_fdfa ._dcgdd =_abgee ._dcgdd ;if _fdfa ._cbffb ==nil {_fdfa ._cbffb =_abgee ._cbffb ;};}else {_fdfa ,_cbgf =_fcced (_eced ,_edef ,nil );if _cbgf !=nil {_ag .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",_edef ,_cbgf );
return nil ,_cbgf ;};};_cbgf =_fdfa .addEncoding ();if _cbgf !=nil {return nil ,_cbgf ;};if _ggce {_fdfa .updateStandard14Font ();};if _ggce &&_fdfa ._dcfda ==nil &&_fdfa ._gadae ==nil {_ag .Log .Error ("\u0073\u0069\u006d\u0070\u006c\u0065\u0066\u006f\u006e\u0074\u003d\u0025\u0073",_fdfa );
_ag .Log .Error ("\u0066n\u0074\u003d\u0025\u002b\u0076",_ddgf );};if len (_fdfa ._bafeg )==0{_ag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a \u004e\u006f\u0020\u0077\u0069d\u0074h\u0073.\u0020\u0066\u006f\u006e\u0074\u003d\u0025s",_fdfa );};_caad ._gbaac =_fdfa ;
case "\u0054\u0079\u0070e\u0033":_fdee ,_deeed :=_fgbga (_eced ,_edef );if _deeed !=nil {_ag .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",_deeed );
return nil ,_deeed ;};_caad ._gbaac =_fdee ;case "\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0030":_cafe ,_cebd :=_feffd (_eced ,_edef );if _cebd !=nil {_ag .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",_cebd );
return nil ,_cebd ;};_caad ._gbaac =_cafe ;case "\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032":_gaaa ,_gbda :=_gadd (_eced ,_edef );if _gbda !=nil {_ag .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",_edef ,_gbda );
return nil ,_gbda ;};_caad ._gbaac =_gaaa ;default:_ag .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",_edef );
return nil ,_dc .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",_edef );};return _caad ,nil ;};
// ToPdfObject converts PdfAcroForm to a PdfObject, i.e. an indirect object containing the
// AcroForm dictionary.
func (_aafa *PdfAcroForm )ToPdfObject ()_fd .PdfObject {_fffae :=_aafa ._fefdb ;_ccagd :=_fffae .PdfObject .(*_fd .PdfObjectDictionary );if _aafa .Fields !=nil {_feec :=_fd .PdfObjectArray {};for _ ,_afeea :=range *_aafa .Fields {_bacg :=_afeea .GetContext ();
if _bacg !=nil {_feec .Append (_bacg .ToPdfObject ());}else {_feec .Append (_afeea .ToPdfObject ());};};_ccagd .Set ("\u0046\u0069\u0065\u006c\u0064\u0073",&_feec );};if _aafa .NeedAppearances !=nil {_ccagd .Set ("\u004ee\u0065d\u0041\u0070\u0070\u0065\u0061\u0072\u0061\u006e\u0063\u0065\u0073",_aafa .NeedAppearances );
}else {if _edac :=_ccagd .Get ("\u004ee\u0065d\u0041\u0070\u0070\u0065\u0061\u0072\u0061\u006e\u0063\u0065\u0073");_edac !=nil {_ccagd .Remove ("\u004ee\u0065d\u0041\u0070\u0070\u0065\u0061\u0072\u0061\u006e\u0063\u0065\u0073");};};if _aafa .SigFlags !=nil {_ccagd .Set ("\u0053\u0069\u0067\u0046\u006c\u0061\u0067\u0073",_aafa .SigFlags );
};if _aafa .CO !=nil {_ccagd .Set ("\u0043\u004f",_aafa .CO );};if _aafa .DR !=nil {_ccagd .Set ("\u0044\u0052",_aafa .DR .ToPdfObject ());};if _aafa .DA !=nil {_ccagd .Set ("\u0044\u0041",_aafa .DA );};if _aafa .Q !=nil {_ccagd .Set ("\u0051",_aafa .Q );
};if _aafa .XFA !=nil {_ccagd .Set ("\u0058\u0046\u0041",_aafa .XFA );};if _aafa .ADBEEchoSign !=nil {_ccagd .Set ("\u0041\u0044\u0042\u0045\u005f\u0045\u0063\u0068\u006f\u0053\u0069\u0067\u006e",_aafa .ADBEEchoSign );};return _fffae ;};
// PdfActionRendition represents a Rendition action.
type PdfActionRendition struct{*PdfAction ;R _fd .PdfObject ;AN _fd .PdfObject ;OP _fd .PdfObject ;JS _fd .PdfObject ;};
// NewPdfColorspaceDeviceRGB returns a new RGB colorspace object.
func NewPdfColorspaceDeviceRGB ()*PdfColorspaceDeviceRGB {return &PdfColorspaceDeviceRGB {}};
// PdfAnnotationLink represents Link annotations.
// (Section 12.5.6.5 p. 403).
type PdfAnnotationLink struct{*PdfAnnotation ;A _fd .PdfObject ;Dest _fd .PdfObject ;H _fd .PdfObject ;PA _fd .PdfObject ;QuadPoints _fd .PdfObject ;BS _fd .PdfObject ;_abb *PdfAction ;_cff *PdfReader ;};
// PdfAnnotationWidget represents Widget annotations.
// Note: Widget annotations are used to display form fields.
// (Section 12.5.6.19).
type PdfAnnotationWidget struct{*PdfAnnotation ;H _fd .PdfObject ;MK _fd .PdfObject ;A _fd .PdfObject ;AA _fd .PdfObject ;BS _fd .PdfObject ;Parent _fd .PdfObject ;_eabc *PdfField ;_cfgb bool ;};
// ToPdfObject converts date to a PDF string object.
func (_gfcea *PdfDate )ToPdfObject ()_fd .PdfObject {_dcada :=_dc .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",_gfcea ._bdaae ,_gfcea ._gbdf ,_gfcea ._afcde ,_gfcea ._bgagg ,_gfcea ._gbgef ,_gfcea ._cfdgb ,_gfcea ._fcdea ,_gfcea ._bbea ,_gfcea ._gdeac );
return _fd .MakeString (_dcada );};
// ToPdfObject implements interface PdfModel.
func (_bfec *PdfAnnotationLine )ToPdfObject ()_fd .PdfObject {_bfec .PdfAnnotation .ToPdfObject ();_egd :=_bfec ._aeb ;_cdbcd :=_egd .PdfObject .(*_fd .PdfObjectDictionary );_bfec .PdfAnnotationMarkup .appendToPdfDictionary (_cdbcd );_cdbcd .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fd .MakeName ("\u004c\u0069\u006e\u0065"));
_cdbcd .SetIfNotNil ("\u004c",_bfec .L );_cdbcd .SetIfNotNil ("\u0042\u0053",_bfec .BS );_cdbcd .SetIfNotNil ("\u004c\u0045",_bfec .LE );_cdbcd .SetIfNotNil ("\u0049\u0043",_bfec .IC );_cdbcd .SetIfNotNil ("\u004c\u004c",_bfec .LL );_cdbcd .SetIfNotNil ("\u004c\u004c\u0045",_bfec .LLE );
_cdbcd .SetIfNotNil ("\u0043\u0061\u0070",_bfec .Cap );_cdbcd .SetIfNotNil ("\u0049\u0054",_bfec .IT );_cdbcd .SetIfNotNil ("\u004c\u004c\u004f",_bfec .LLO );_cdbcd .SetIfNotNil ("\u0043\u0050",_bfec .CP );_cdbcd .SetIfNotNil ("\u004de\u0061\u0073\u0075\u0072\u0065",_bfec .Measure );
_cdbcd .SetIfNotNil ("\u0043\u004f",_bfec .CO );return _egd ;};func _deecg (_dgagb *fontCommon )*pdfCIDFontType0 {return &pdfCIDFontType0 {fontCommon :*_dgagb }};var _dceef =false ;
// PdfAnnotationScreen represents Screen annotations.
// (Section 12.5.6.18).
type PdfAnnotationScreen struct{*PdfAnnotation ;T _fd .PdfObject ;MK _fd .PdfObject ;A _fd .PdfObject ;AA _fd .PdfObject ;};
// ToPdfObject implements interface PdfModel.
func (_ccea *PdfAnnotationWidget )ToPdfObject ()_fd .PdfObject {_ccea .PdfAnnotation .ToPdfObject ();_gae :=_ccea ._aeb ;_gbfg :=_gae .PdfObject .(*_fd .PdfObjectDictionary );if _ccea ._cfgb {return _gae ;};_ccea ._cfgb =true ;_gbfg .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fd .MakeName ("\u0057\u0069\u0064\u0067\u0065\u0074"));
_gbfg .SetIfNotNil ("\u0048",_ccea .H );_gbfg .SetIfNotNil ("\u004d\u004b",_ccea .MK );_gbfg .SetIfNotNil ("\u0041",_ccea .A );_gbfg .SetIfNotNil ("\u0041\u0041",_ccea .AA );_gbfg .SetIfNotNil ("\u0042\u0053",_ccea .BS );_gddf :=_ccea .Parent ;if _ccea ._eabc !=nil {if _ccea ._eabc ._dffeb ==_ccea ._aeb {_ccea ._eabc .ToPdfObject ();
};_gddf =_ccea ._eabc .GetContainingPdfObject ();};if _gddf !=_gae {_gbfg .SetIfNotNil ("\u0050\u0061\u0072\u0065\u006e\u0074",_gddf );};_ccea ._cfgb =false ;return _gae ;};
// NewPdfDateFromTime will create a PdfDate based on the given time
func NewPdfDateFromTime (timeObj _cd .Time )(PdfDate ,error ){_ccdde :=timeObj .Format ("\u002d\u0030\u0037\u003a\u0030\u0030");_dbbac ,_ :=_bd .ParseInt (_ccdde [1:3],10,32);_dbbbbd ,_ :=_bd .ParseInt (_ccdde [4:6],10,32);return PdfDate {_bdaae :int64 (timeObj .Year ()),_gbdf :int64 (timeObj .Month ()),_afcde :int64 (timeObj .Day ()),_bgagg :int64 (timeObj .Hour ()),_gbgef :int64 (timeObj .Minute ()),_cfdgb :int64 (timeObj .Second ()),_fcdea :_ccdde [0],_bbea :_dbbac ,_gdeac :_dbbbbd },nil ;
};
// Read reads an image and loads into a new Image object with an RGB
// colormap and 8 bits per component.
func (_acecf DefaultImageHandler )Read (reader _bc .Reader )(*Image ,error ){_cgce ,_ ,_cfdbg :=_gb .Decode (reader );if _cfdbg !=nil {_ag .Log .Debug ("\u0045\u0072\u0072or\u0020\u0064\u0065\u0063\u006f\u0064\u0069\u006e\u0067\u0020\u0066\u0069\u006c\u0065\u003a\u0020\u0025\u0073",_cfdbg );
return nil ,_cfdbg ;};return _acecf .NewImageFromGoImage (_cgce );};
// Encoder returns the font's text encoder.
func (_cfega pdfCIDFontType0 )Encoder ()_ee .TextEncoder {return _cfega ._ffabe };const (RC4_128bit =EncryptionAlgorithm (iota );AES_128bit ;AES_256bit ;);
// A returns the value of the A component of the color.
func (_eeaa *PdfColorCalRGB )A ()float64 {return _eeaa [0]};func _eeeea (_dcae *_fd .PdfObjectDictionary ){_fabfe ,_gafb :=_fd .GetArray (_dcae .Get ("\u0057\u0069\u0064\u0074\u0068\u0073"));_fabgd ,_egdb :=_fd .GetIntVal (_dcae .Get ("\u0046i\u0072\u0073\u0074\u0043\u0068\u0061r"));
_feab ,_bdbg :=_fd .GetIntVal (_dcae .Get ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072"));if _gafb &&_egdb &&_bdbg {_bedbb :=_fabfe .Len ();if _bedbb !=_feab -_fabgd +1{_ag .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",_bedbb ,_feab );
_dabb :=_fd .PdfObjectInteger (_fabgd +_bedbb -1);_dcae .Set ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072",&_dabb );};};};func _fcaeg (_ecebd *_fd .PdfObjectDictionary )(*PdfShadingType3 ,error ){_gfag :=PdfShadingType3 {};_deag :=_ecebd .Get ("\u0043\u006f\u006f\u0072\u0064\u0073");
if _deag ==nil {_ag .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 ;
};_bcbc ,_dcgb :=_deag .(*_fd .PdfObjectArray );if !_dcgb {_ag .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",_deag );return nil ,_fd .ErrTypeError ;
};if _bcbc .Len ()!=6{_ag .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",_bcbc .Len ());return nil ,ErrInvalidAttribute ;};_gfag .Coords =_bcbc ;
if _gcca :=_ecebd .Get ("\u0044\u006f\u006d\u0061\u0069\u006e");_gcca !=nil {_gcca =_fd .TraceToDirectObject (_gcca );_cacgg ,_gfae :=_gcca .(*_fd .PdfObjectArray );if !_gfae {_ag .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",_gcca );
return nil ,_fd .ErrTypeError ;};_gfag .Domain =_cacgg ;};_deag =_ecebd .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");if _deag ==nil {_ag .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 ;};_gfag .Function =[]PdfFunction {};if _fccb ,_cgcec :=_deag .(*_fd .PdfObjectArray );_cgcec {for _ ,_egdgb :=range _fccb .Elements (){_feagg ,_cfead :=_badad (_egdgb );if _cfead !=nil {_ag .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",_cfead );
return nil ,_cfead ;};_gfag .Function =append (_gfag .Function ,_feagg );};}else {_eadfe ,_faffd :=_badad (_deag );if _faffd !=nil {_ag .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",_faffd );
return nil ,_faffd ;};_gfag .Function =append (_gfag .Function ,_eadfe );};if _cagdg :=_ecebd .Get ("\u0045\u0078\u0074\u0065\u006e\u0064");_cagdg !=nil {_cagdg =_fd .TraceToDirectObject (_cagdg );_bafag ,_egbfb :=_cagdg .(*_fd .PdfObjectArray );if !_egbfb {_ag .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",_cagdg );
return nil ,_fd .ErrTypeError ;};if _bafag .Len ()!=2{_ag .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",_bafag .Len ());return nil ,ErrInvalidAttribute ;
};_gfag .Extend =_bafag ;};return &_gfag ,nil ;};func _bdaa (_fcgdf map[_cf .GID ]int ,_ddfb uint16 )*_fd .PdfObjectArray {_ccefea :=&_fd .PdfObjectArray {};_eeac :=_cf .GID (_ddfb );for _afce :=_cf .GID (0);_afce < _eeac ;{_eegg ,_cedd :=_fcgdf [_afce ];
if !_cedd {_afce ++;continue ;};_egfc :=_afce ;for _adae :=_egfc +1;_adae < _eeac ;_adae ++{if _gefb ,_egdfg :=_fcgdf [_adae ];!_egdfg ||_eegg !=_gefb {break ;};_egfc =_adae ;};_ccefea .Append (_fd .MakeInteger (int64 (_afce )));_ccefea .Append (_fd .MakeInteger (int64 (_egfc )));
_ccefea .Append (_fd .MakeInteger (int64 (_eegg )));_afce =_egfc +1;};return _ccefea ;};
// Encoder returns the font's text encoder.
func (_cgeec pdfFontType3 )Encoder ()_ee .TextEncoder {return _cgeec ._eceb };
// GetCapHeight returns the CapHeight of the font `descriptor`.
func (_ageb *PdfFontDescriptor )GetCapHeight ()(float64 ,error ){return _fd .GetNumberAsFloat (_ageb .CapHeight );};
// FieldAppearanceGenerator generates appearance stream for a given field.
type FieldAppearanceGenerator interface{ContentStreamWrapper ;GenerateAppearanceDict (_gffac *PdfAcroForm ,_dabc *PdfField ,_cffab *PdfAnnotationWidget )(*_fd .PdfObjectDictionary ,error );};func _bceg (_dcedb StdFontName )(pdfFontSimple ,error ){_afaf ,_ffaaf :=_cf .NewStdFontByName (_dcedb );
if !_ffaaf {return pdfFontSimple {},ErrFontNotSupported ;};_adbdd :=_fdea (_afaf );return _adbdd ,nil ;};
// NewPdfColorCalRGB returns a new CalRBG color.
func NewPdfColorCalRGB (a ,b ,c float64 )*PdfColorCalRGB {_abfa :=PdfColorCalRGB {a ,b ,c };return &_abfa ;};func (_adfg *PdfReader )newPdfActionSetOCGStateFromDict (_cae *_fd .PdfObjectDictionary )(*PdfActionSetOCGState ,error ){return &PdfActionSetOCGState {State :_cae .Get ("\u0053\u0074\u0061t\u0065"),PreserveRB :_cae .Get ("\u0050\u0072\u0065\u0073\u0065\u0072\u0076\u0065\u0052\u0042")},nil ;
};func (_bgef *PdfFilespec )getDict ()*_fd .PdfObjectDictionary {if _fgae ,_daeed :=_bgef ._cbfc .(*_fd .PdfIndirectObject );_daeed {_fbee ,_dafdd :=_fgae .PdfObject .(*_fd .PdfObjectDictionary );if !_dafdd {return nil ;};return _fbee ;}else if _dgbf ,_bccgg :=_bgef ._cbfc .(*_fd .PdfObjectDictionary );
_bccgg {return _dgbf ;}else {_ag .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",_bgef ._cbfc );
return nil ;};};
// SetName sets the `Name` field of the signature.
func (_geafe *PdfSignature )SetName (name string ){_geafe .Name =_fd .MakeEncodedString (name ,true )};
// GetContainingPdfObject implements interface PdfModel.
func (_gbbd *PdfFilespec )GetContainingPdfObject ()_fd .PdfObject {return _gbbd ._cbfc };var _geafg =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":{}};
// IsCID returns true if the underlying font is CID.
func (_acfbf *PdfFont )IsCID ()bool {return _acfbf .baseFields ().isCIDFont ()};func _fafdc (_gbcg _fd .PdfObject )(*PdfColorspaceSpecialSeparation ,error ){_bbdb :=NewPdfColorspaceSpecialSeparation ();if _gggd ,_cffe :=_gbcg .(*_fd .PdfIndirectObject );
_cffe {_bbdb ._dbeeaf =_gggd ;};_gbcg =_fd .TraceToDirectObject (_gbcg );_aafg ,_ffbe :=_gbcg .(*_fd .PdfObjectArray );if !_ffbe {return nil ,_dc .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 _aafg .Len ()!=4{return nil ,_dc .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");};_gbcg =_aafg .Get (0);
_abgac ,_ffbe :=_gbcg .(*_fd .PdfObjectName );if !_ffbe {return nil ,_dc .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 *_abgac !="\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e"{return nil ,_dc .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");
};_gbcg =_aafg .Get (1);_abgac ,_ffbe =_gbcg .(*_fd .PdfObjectName );if !_ffbe {return nil ,_dc .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");
};_bbdb .ColorantName =_abgac ;_gbcg =_aafg .Get (2);_ebdf ,_agac :=NewPdfColorspaceFromPdfObject (_gbcg );if _agac !=nil {return nil ,_agac ;};_bbdb .AlternateSpace =_ebdf ;_cdc ,_agac :=_badad (_aafg .Get (3));if _agac !=nil {return nil ,_agac ;};_bbdb .TintTransform =_cdc ;
return _bbdb ,nil ;};func _bbcga (_gdeba _fd .PdfObject )(*fontFile ,error ){_ag .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",_gdeba );
_caeda :=&fontFile {};_gdeba =_fd .TraceToDirectObject (_gdeba );_dfff ,_egbc :=_gdeba .(*_fd .PdfObjectStream );if !_egbc {_ag .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",_gdeba );
return nil ,_fd .ErrTypeError ;};_cecged :=_dfff .PdfObjectDictionary ;_egcdb ,_fdafb :=_fd .DecodeStream (_dfff );if _fdafb !=nil {return nil ,_fdafb ;};_fccc ,_egbc :=_fd .GetNameVal (_cecged .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065"));if !_egbc {_caeda ._gccee =_fccc ;
if _fccc =="\u0054\u0079\u0070\u0065\u0031\u0043"{_ag .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 ;};};_afgfb ,_ :=_fd .GetIntVal (_cecged .Get ("\u004ce\u006e\u0067\u0074\u0068\u0031"));_abff ,_ :=_fd .GetIntVal (_cecged .Get ("\u004ce\u006e\u0067\u0074\u0068\u0032"));if _afgfb > len (_egcdb ){_afgfb =len (_egcdb );
};if _afgfb +_abff > len (_egcdb ){_abff =len (_egcdb )-_afgfb ;};_febef :=_egcdb [:_afgfb ];var _cfedd []byte ;if _abff > 0{_cfedd =_egcdb [_afgfb :_afgfb +_abff ];};if _afgfb > 0&&_abff > 0{_fefbb :=_caeda .loadFromSegments (_febef ,_cfedd );if _fefbb !=nil {return nil ,_fefbb ;
};};return _caeda ,nil ;};
// PdfOutputIntentType is the subtype of the given PdfOutputIntent.
type PdfOutputIntentType int ;
// WriteToFile writes the Appender output to file specified by path.
func (_ggca *PdfAppender )WriteToFile (outputPath string )error {_cddf ,_fege :=_gbe .Create (outputPath );if _fege !=nil {return _fege ;};defer _cddf .Close ();return _ggca .Write (_cddf );};
// NewImageFromGoImage creates a new NRGBA32 unidoc Image from a golang Image.
// If `goimg` is grayscale (*goimage.Gray8) then calls NewGrayImageFromGoImage instead.
func (_eggc DefaultImageHandler )NewImageFromGoImage (goimg _gb .Image )(*Image ,error ){_eada ,_agddfg :=_gbed .FromGoImage (goimg );if _agddfg !=nil {return nil ,_agddfg ;};_bddaf :=_eeafa (_eada .Base ());return &_bddaf ,nil ;};const (BorderEffectNoEffect BorderEffect =iota ;
BorderEffectCloudy BorderEffect =iota ;);
// NewPdfPageResourcesColorspaces returns a new PdfPageResourcesColorspaces object.
func NewPdfPageResourcesColorspaces ()*PdfPageResourcesColorspaces {_cecef :=&PdfPageResourcesColorspaces {};_cecef .Names =[]string {};_cecef .Colorspaces =map[string ]PdfColorspace {};_cecef ._abdg =&_fd .PdfIndirectObject {};return _cecef ;};
// ToPdfObject returns the PDF representation of the shading dictionary.
func (_fagd *PdfShadingType7 )ToPdfObject ()_fd .PdfObject {_fagd .PdfShading .ToPdfObject ();_aabdd ,_bfeeg :=_fagd .getShadingDict ();if _bfeeg !=nil {_ag .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 _fagd .BitsPerCoordinate !=nil {_aabdd .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065",_fagd .BitsPerCoordinate );};if _fagd .BitsPerComponent !=nil {_aabdd .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_fagd .BitsPerComponent );
};if _fagd .BitsPerFlag !=nil {_aabdd .Set ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067",_fagd .BitsPerFlag );};if _fagd .Decode !=nil {_aabdd .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_fagd .Decode );};if _fagd .Function !=nil {if len (_fagd .Function )==1{_aabdd .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_fagd .Function [0].ToPdfObject ());
}else {_fecaf :=_fd .MakeArray ();for _ ,_acegb :=range _fagd .Function {_fecaf .Append (_acegb .ToPdfObject ());};_aabdd .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_fecaf );};};return _fagd ._cdgfd ;};
// GetContext returns the annotation context which contains the specific type-dependent context.
// The context represents the subannotation.
func (_edg *PdfAnnotation )GetContext ()PdfModel {if _edg ==nil {return nil ;};return _edg ._cfda ;};
// 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 ;_dccfd PdfModel ;_gcgba _fd .PdfObject ;};
// SetSubtype sets the Subtype S for given PdfOutputIntent.
func (_ccgb *PdfOutputIntent )SetSubtype (subtype PdfOutputIntentType )error {if !subtype .IsValid (){return _ad .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");
};_ccgb .S =subtype ;return nil ;};
// GetXObjectFormByName returns the XObjectForm with the specified name from the
// page resources, if it exists.
func (_daagd *PdfPageResources )GetXObjectFormByName (keyName _fd .PdfObjectName )(*XObjectForm ,error ){_aaaae ,_fdfcff :=_daagd .GetXObjectByName (keyName );if _aaaae ==nil {return nil ,nil ;};if _fdfcff !=XObjectTypeForm {return nil ,_ad .New ("\u006e\u006f\u0074\u0020\u0061\u0020\u0066\u006f\u0072\u006d");
};_aadcg ,_cgcfb :=NewXObjectFormFromStream (_aaaae );if _cgcfb !=nil {return nil ,_cgcfb ;};return _aadcg ,nil ;};func (_ddfc *PdfReader )newPdfAnnotationSquigglyFromDict (_fad *_fd .PdfObjectDictionary )(*PdfAnnotationSquiggly ,error ){_fabc :=PdfAnnotationSquiggly {};
_ebaa ,_eaad :=_ddfc .newPdfAnnotationMarkupFromDict (_fad );if _eaad !=nil {return nil ,_eaad ;};_fabc .PdfAnnotationMarkup =_ebaa ;_fabc .QuadPoints =_fad .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");return &_fabc ,nil ;};func (_fec *PdfColorspaceLab )String ()string {return "\u004c\u0061\u0062"};
// GetNumComponents returns the number of color components of the colorspace device.
// Returns 3 for a CalRGB device.
func (_fdgc *PdfColorspaceCalRGB )GetNumComponents ()int {return 3};
// NewPdfAnnotationSquare returns a new square annotation.
func NewPdfAnnotationSquare ()*PdfAnnotationSquare {_ecb :=NewPdfAnnotation ();_eadf :=&PdfAnnotationSquare {};_eadf .PdfAnnotation =_ecb ;_eadf .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_ecb .SetContext (_eadf );return _eadf ;};
// BaseFont returns the font's "BaseFont" field.
func (_cfeed *PdfFont )BaseFont ()string {return _cfeed .baseFields ()._ffedb };
// ToPdfObject implements interface PdfModel.
func (_gec *PdfAnnotationFileAttachment )ToPdfObject ()_fd .PdfObject {_gec .PdfAnnotation .ToPdfObject ();_adac :=_gec ._aeb ;_gbab :=_adac .PdfObject .(*_fd .PdfObjectDictionary );_gec .PdfAnnotationMarkup .appendToPdfDictionary (_gbab );_gbab .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fd .MakeName ("\u0046\u0069\u006c\u0065\u0041\u0074\u0074\u0061\u0063h\u006d\u0065\u006e\u0074"));
_gbab .SetIfNotNil ("\u0046\u0053",_gec .FS );_gbab .SetIfNotNil ("\u004e\u0061\u006d\u0065",_gec .Name );return _adac ;};func (_ecdce *PdfAcroForm )filteredFields (_dgbaa FieldFilterFunc ,_ecffb bool )[]*PdfField {if _ecdce ==nil {return nil ;};return _ddgd (_ecdce .Fields ,_dgbaa ,_ecffb );
};
// ToPdfObject returns the PDF representation of the function.
func (_dgcb *PdfFunctionType3 )ToPdfObject ()_fd .PdfObject {_fcbd :=_fd .MakeDict ();_fcbd .Set ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065",_fd .MakeInteger (3));_dbeaf :=&_fd .PdfObjectArray {};for _ ,_acaagb :=range _dgcb .Domain {_dbeaf .Append (_fd .MakeFloat (_acaagb ));
};_fcbd .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_dbeaf );if _dgcb .Range !=nil {_cdacf :=&_fd .PdfObjectArray {};for _ ,_dbbb :=range _dgcb .Range {_cdacf .Append (_fd .MakeFloat (_dbbb ));};_fcbd .Set ("\u0052\u0061\u006eg\u0065",_cdacf );};if _dgcb .Functions !=nil {_agcca :=&_fd .PdfObjectArray {};
for _ ,_edgc :=range _dgcb .Functions {_agcca .Append (_edgc .ToPdfObject ());};_fcbd .Set ("\u0046u\u006e\u0063\u0074\u0069\u006f\u006es",_agcca );};if _dgcb .Bounds !=nil {_ceagd :=&_fd .PdfObjectArray {};for _ ,_fbege :=range _dgcb .Bounds {_ceagd .Append (_fd .MakeFloat (_fbege ));
};_fcbd .Set ("\u0042\u006f\u0075\u006e\u0064\u0073",_ceagd );};if _dgcb .Encode !=nil {_eceba :=&_fd .PdfObjectArray {};for _ ,_agde :=range _dgcb .Encode {_eceba .Append (_fd .MakeFloat (_agde ));};_fcbd .Set ("\u0045\u006e\u0063\u006f\u0064\u0065",_eceba );
};if _dgcb ._dcaf !=nil {_dgcb ._dcaf .PdfObject =_fcbd ;return _dgcb ._dcaf ;};return _fcbd ;};type pdfCIDFontType0 struct{fontCommon ;_fdbba *_fd .PdfIndirectObject ;_ffabe _ee .TextEncoder ;
// Table 117 Entries in a CIDFont dictionary (page 269)
// (Required) Dictionary that defines the character collection of the CIDFont.
// See Table 116.
CIDSystemInfo *_fd .PdfObjectDictionary ;
// Glyph metrics fields (optional).
DW _fd .PdfObject ;W _fd .PdfObject ;DW2 _fd .PdfObject ;W2 _fd .PdfObject ;_ccca map[_ee .CharCode ]float64 ;_aaeef float64 ;};
// VRI represents a Validation-Related Information dictionary.
// The VRI dictionary contains validation data in the form of
// certificates, OCSP and CRL information, for a single signature.
// See ETSI TS 102 778-4 V1.1.1 for more information.
type VRI struct{Cert []*_fd .PdfObjectStream ;OCSP []*_fd .PdfObjectStream ;CRL []*_fd .PdfObjectStream ;TU *_fd .PdfObjectString ;TS *_fd .PdfObjectString ;};
// 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 ;
// PdfAnnotationWatermark represents Watermark annotations.
// (Section 12.5.6.22).
type PdfAnnotationWatermark struct{*PdfAnnotation ;FixedPrint _fd .PdfObject ;};
// NewPermissions returns a new permissions object.
func NewPermissions (docMdp *PdfSignature )*Permissions {_ccbd :=Permissions {};_ccbd .DocMDP =docMdp ;_eegbb :=_fd .MakeDict ();_eegbb .Set ("\u0044\u006f\u0063\u004d\u0044\u0050",docMdp .ToPdfObject ());_ccbd ._ecebg =_eegbb ;return &_ccbd ;};
// ValidateSignatures validates digital signatures in the document.
func (_dedb *PdfReader )ValidateSignatures (handlers []SignatureHandler )([]SignatureValidationResult ,error ){if _dedb .AcroForm ==nil {return nil ,nil ;};if _dedb .AcroForm .Fields ==nil {return nil ,nil ;};type sigFieldPair struct{_ddceg *PdfSignature ;
_bbadf *PdfField ;_ffggce SignatureHandler ;};var _begcc []*sigFieldPair ;for _ ,_bedaf :=range _dedb .AcroForm .AllFields (){if _bedaf .V ==nil {continue ;};if _dedc ,_dacab :=_fd .GetDict (_bedaf .V );_dacab {if _fccbf ,_bgbgd :=_fd .GetNameVal (_dedc .Get ("\u0054\u0079\u0070\u0065"));
_bgbgd &&(_fccbf =="\u0053\u0069\u0067"||_fccbf =="\u0044\u006f\u0063T\u0069\u006d\u0065\u0053\u0074\u0061\u006d\u0070"){_ddfed ,_fceea :=_fd .GetIndirect (_bedaf .V );if !_fceea {_ag .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 ;};_aecf ,_bfag :=_dedb .newPdfSignatureFromIndirect (_ddfed );if _bfag !=nil {return nil ,_bfag ;};var _gcdeg SignatureHandler ;for _ ,_bafab :=range handlers {if _bafab .IsApplicable (_aecf ){_gcdeg =_bafab ;break ;};};_begcc =append (_begcc ,&sigFieldPair {_ddceg :_aecf ,_bbadf :_bedaf ,_ffggce :_gcdeg });
};};};var _gedde []SignatureValidationResult ;for _ ,_dggfd :=range _begcc {_bcafd :=SignatureValidationResult {IsSigned :true ,Fields :[]*PdfField {_dggfd ._bbadf }};if _dggfd ._ffggce ==nil {_bcafd .Errors =append (_bcafd .Errors ,"\u0068a\u006ed\u006c\u0065\u0072\u0020\u006e\u006f\u0074\u0020\u0073\u0065\u0074");
_gedde =append (_gedde ,_bcafd );continue ;};_gcdde ,_bddega :=_dggfd ._ffggce .NewDigest (_dggfd ._ddceg );if _bddega !=nil {_bcafd .Errors =append (_bcafd .Errors ,"\u0064\u0069\u0067e\u0073\u0074\u0020\u0065\u0072\u0072\u006f\u0072",_bddega .Error ());
_gedde =append (_gedde ,_bcafd );continue ;};_ddfbf :=_dggfd ._ddceg .ByteRange ;if _ddfbf ==nil {_bcafd .Errors =append (_bcafd .Errors ,"\u0042\u0079\u0074\u0065\u0052\u0061\u006e\u0067\u0065\u0020\u006e\u006ft\u0020\u0073\u0065\u0074");_gedde =append (_gedde ,_bcafd );
continue ;};for _cdbae :=0;_cdbae < _ddfbf .Len ();_cdbae =_cdbae +2{_baeaf ,_ :=_fd .GetNumberAsInt64 (_ddfbf .Get (_cdbae ));_baged ,_ :=_fd .GetIntVal (_ddfbf .Get (_cdbae +1));if _ ,_bfgde :=_dedb ._gcafg .Seek (_baeaf ,_bc .SeekStart );_bfgde !=nil {return nil ,_bfgde ;
};_dfdc :=make ([]byte ,_baged );if _ ,_fgda :=_dedb ._gcafg .Read (_dfdc );_fgda !=nil {return nil ,_fgda ;};_gcdde .Write (_dfdc );};var _gdge SignatureValidationResult ;if _bcgb ,_dgafg :=_dggfd ._ffggce .(SignatureHandlerDocMDP );_dgafg {_gdge ,_bddega =_bcgb .ValidateWithOpts (_dggfd ._ddceg ,_gcdde ,SignatureHandlerDocMDPParams {Parser :_dedb ._faaf });
}else {_gdge ,_bddega =_dggfd ._ffggce .Validate (_dggfd ._ddceg ,_gcdde );};if _bddega !=nil {_ag .Log .Debug ("E\u0052\u0052\u004f\u0052: \u0025v\u0020\u0028\u0025\u0054\u0029 \u002d\u0020\u0073\u006b\u0069\u0070",_bddega ,_dggfd ._ffggce );_gdge .Errors =append (_gdge .Errors ,_bddega .Error ());
};_gdge .Name =_dggfd ._ddceg .Name .Decoded ();_gdge .Reason =_dggfd ._ddceg .Reason .Decoded ();if _dggfd ._ddceg .M !=nil {_gfabc ,_acade :=NewPdfDate (_dggfd ._ddceg .M .String ());if _acade !=nil {_ag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_acade );
_gdge .Errors =append (_gdge .Errors ,_acade .Error ());continue ;};_gdge .Date =_gfabc ;};_gdge .ContactInfo =_dggfd ._ddceg .ContactInfo .Decoded ();_gdge .Location =_dggfd ._ddceg .Location .Decoded ();_gdge .Fields =_bcafd .Fields ;_gedde =append (_gedde ,_gdge );
};return _gedde ,nil ;};func (_febc *PdfReader )newPdfAnnotationScreenFromDict (_abbc *_fd .PdfObjectDictionary )(*PdfAnnotationScreen ,error ){_cgbb :=PdfAnnotationScreen {};_cgbb .T =_abbc .Get ("\u0054");_cgbb .MK =_abbc .Get ("\u004d\u004b");_cgbb .A =_abbc .Get ("\u0041");
_cgbb .AA =_abbc .Get ("\u0041\u0041");return &_cgbb ,nil ;};
// IsTerminal returns true for terminal fields, false otherwise.
// Terminal fields are fields whose descendants are only widget annotations.
func (_ccfg *PdfField )IsTerminal ()bool {return len (_ccfg .Kids )==0};
// 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 (_gcfc *PdfPage )SetContentStreams (cStreams []string ,encoder _fd .StreamEncoder )error {if len (cStreams )==0{_gcfc .Contents =nil ;return nil ;};if encoder ==nil {encoder =_fd .NewRawEncoder ();};var _fefaf []*_fd .PdfObjectStream ;for _ ,_efaeg :=range cStreams {_gedcd :=&_fd .PdfObjectStream {};
_cedge :=encoder .MakeStreamDict ();_bdgce ,_dfgff :=encoder .EncodeBytes ([]byte (_efaeg ));if _dfgff !=nil {return _dfgff ;};_cedge .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_fd .MakeInteger (int64 (len (_bdgce ))));_gedcd .PdfObjectDictionary =_cedge ;
_gedcd .Stream =_bdgce ;_fefaf =append (_fefaf ,_gedcd );};if len (_fefaf )==1{_gcfc .Contents =_fefaf [0];}else {_dcecac :=_fd .MakeArray ();for _ ,_accgde :=range _fefaf {_dcecac .Append (_accgde );};_gcfc .Contents =_dcecac ;};return nil ;};
// NewPdfColorspaceSpecialSeparation returns a new separation color.
func NewPdfColorspaceSpecialSeparation ()*PdfColorspaceSpecialSeparation {_dgfe :=&PdfColorspaceSpecialSeparation {};return _dgfe ;};
// ToPdfObject implements interface PdfModel.
func (_eff *PdfAnnotationHighlight )ToPdfObject ()_fd .PdfObject {_eff .PdfAnnotation .ToPdfObject ();_gbfc :=_eff ._aeb ;_ebge :=_gbfc .PdfObject .(*_fd .PdfObjectDictionary );_eff .PdfAnnotationMarkup .appendToPdfDictionary (_ebge );_ebge .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fd .MakeName ("\u0048i\u0067\u0068\u006c\u0069\u0067\u0068t"));
_ebge .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_eff .QuadPoints );return _gbfc ;};
// PdfAnnotationFileAttachment represents FileAttachment annotations.
// (Section 12.5.6.15).
type PdfAnnotationFileAttachment struct{*PdfAnnotation ;*PdfAnnotationMarkup ;FS _fd .PdfObject ;Name _fd .PdfObject ;};
// PdfActionThread represents a thread action.
type PdfActionThread struct{*PdfAction ;F *PdfFilespec ;D _fd .PdfObject ;B _fd .PdfObject ;};
// ToPdfObject implements interface PdfModel.
func (_cfdd *PdfAnnotationText )ToPdfObject ()_fd .PdfObject {_cfdd .PdfAnnotation .ToPdfObject ();_cdgg :=_cfdd ._aeb ;_gbcf :=_cdgg .PdfObject .(*_fd .PdfObjectDictionary );if _cfdd .PdfAnnotationMarkup !=nil {_cfdd .PdfAnnotationMarkup .appendToPdfDictionary (_gbcf );
};_gbcf .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fd .MakeName ("\u0054\u0065\u0078\u0074"));_gbcf .SetIfNotNil ("\u004f\u0070\u0065\u006e",_cfdd .Open );_gbcf .SetIfNotNil ("\u004e\u0061\u006d\u0065",_cfdd .Name );_gbcf .SetIfNotNil ("\u0053\u0074\u0061t\u0065",_cfdd .State );
_gbcf .SetIfNotNil ("\u0053\u0074\u0061\u0074\u0065\u004d\u006f\u0064\u0065\u006c",_cfdd .StateModel );return _cdgg ;};
// 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 ,_fbbec :_fd .MakeDict ()};
};func _edbab (_dcbb *PdfAnnotation )(*XObjectForm ,*PdfRectangle ,error ){_dceg ,_baec :=_fd .GetDict (_dcbb .AP );if !_baec {return nil ,nil ,_ad .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 _dceg ==nil {return nil ,nil ,nil ;};_agga ,_baec :=_fd .GetArray (_dcbb .Rect );if !_baec ||_agga .Len ()!=4{return nil ,nil ,_ad .New ("\u0072\u0065\u0063t\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064");};_dfcace ,_gebce :=NewPdfRectangle (*_agga );
if _gebce !=nil {return nil ,nil ,_gebce ;};_gage :=_fd .TraceToDirectObject (_dceg .Get ("\u004e"));switch _gecbbg :=_gage .(type ){case *_fd .PdfObjectStream :_ccegcg :=_gecbbg ;_ecea ,_cgbf :=NewXObjectFormFromStream (_ccegcg );return _ecea ,_dfcace ,_cgbf ;
case *_fd .PdfObjectDictionary :_gafc :=_gecbbg ;if _gafc ==nil {_ag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0046\u0061\u0069\u006c\u0065\u0064\u0020\u0074\u006f\u0020\u0067e\u0074\u0020\u0061\u0070\u0070\u0065\u0061r\u0061\u006e\u0063\u0065\u002e\u0020\u0044\u0069\u0063\u0074\u0069o\u006e\u0061\u0072\u0079\u0020\u0069\u0073\u0020\u006e\u0069\u006c");
return nil ,nil ,nil ;};var _dagab _fd .PdfObject ;_fffe ,_fcedd :=_fd .GetName (_dcbb .AS );if _fcedd {_dagab =_gafc .Get (*_fffe );}else {_eeaac :=_dcbb ._aeb .PdfObject .(*_fd .PdfObjectDictionary );if _eeaac ==nil {_ag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020F\u0061\u0069\u006ce\u0064\u0020\u0074\u006f \u0067\u0065\u0074\u0020\u0061\u0070\u0070\u0065\u0061\u0072\u0061\u006e\u0063\u0065\u0020\u0066\u0072\u006f\u006d\u0020\u0076\u0061\u006c\u0075\u0065\u002e");
return nil ,nil ,nil ;};if _agadc :=_eeaac .Get ("\u0056");_agadc !=nil {_dagab =_gafc .Get (_fd .PdfObjectName (_agadc .String ()));};};if _dagab ==nil {_ag .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 ;};_cgbc ,_fcedd :=_fd .GetStream (_dagab );if !_fcedd {_ag .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",_fffe );
return nil ,nil ,_ad .New ("\u0073\u0074\u0072\u0065\u0061\u006d\u0020\u006d\u0069s\u0073\u0069\u006e\u0067");};_gbaef ,_acba :=NewXObjectFormFromStream (_cgbc );return _gbaef ,_dfcace ,_acba ;};_ag .Log .Debug ("\u0049\u006e\u0076\u0061li\u0064\u0020\u0074\u0079\u0070\u0065\u0020\u0066\u006f\u0072\u0020\u004e\u003a\u0020%\u0054",_gage );
return nil ,nil ,_ad .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};
// PdfFieldButton represents a button field which includes push buttons, checkboxes, and radio buttons.
type PdfFieldButton struct{*PdfField ;Opt *_fd .PdfObjectArray ;_daeaa *Image ;};
// 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 (_agdb int ,_bffa *PdfPage )error ;
// PdfBorderStyle represents a border style dictionary (12.5.4 Border Styles p. 394).
type PdfBorderStyle struct{W *float64 ;S *BorderStyle ;D *[]int ;_cdd _fd .PdfObject ;};
// ToPdfObject returns an indirect object containing the signature field dictionary.
func (_dffbf *PdfFieldSignature )ToPdfObject ()_fd .PdfObject {if _dffbf .PdfAnnotationWidget !=nil {_dffbf .PdfAnnotationWidget .ToPdfObject ();};_dffbf .PdfField .ToPdfObject ();_agff :=_dffbf ._dffeb ;_dggd :=_agff .PdfObject .(*_fd .PdfObjectDictionary );
_dggd .SetIfNotNil ("\u0046\u0054",_fd .MakeName ("\u0053\u0069\u0067"));_dggd .SetIfNotNil ("\u004c\u006f\u0063\u006b",_dffbf .Lock );_dggd .SetIfNotNil ("\u0053\u0056",_dffbf .SV );if _dffbf .V !=nil {_dggd .SetIfNotNil ("\u0056",_dffbf .V .ToPdfObject ());
};return _agff ;};
// NewPdfActionSetOCGState returns a new "named" action.
func NewPdfActionSetOCGState ()*PdfActionSetOCGState {_dbb :=NewPdfAction ();_bce :=&PdfActionSetOCGState {};_bce .PdfAction =_dbb ;_dbb .SetContext (_bce );return _bce ;};func (_aegda fontCommon )fontFlags ()int {if _aegda ._babe ==nil {return 0;};return _aegda ._babe ._egced ;
};
// DecodeArray returns the component range values for the DeviceN colorspace.
// [0 1.0 0 1.0 ...] for each color component.
func (_beea *PdfColorspaceDeviceN )DecodeArray ()[]float64 {var _fdda []float64 ;for _edbgc :=0;_edbgc < _beea .GetNumComponents ();_edbgc ++{_fdda =append (_fdda ,0.0,1.0);};return _fdda ;};
// ToPdfObject implements interface PdfModel.
func (_ccba *PdfAnnotationFreeText )ToPdfObject ()_fd .PdfObject {_ccba .PdfAnnotation .ToPdfObject ();_ddb :=_ccba ._aeb ;_bebd :=_ddb .PdfObject .(*_fd .PdfObjectDictionary );_ccba .PdfAnnotationMarkup .appendToPdfDictionary (_bebd );_bebd .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fd .MakeName ("\u0046\u0072\u0065\u0065\u0054\u0065\u0078\u0074"));
_bebd .SetIfNotNil ("\u0044\u0041",_ccba .DA );_bebd .SetIfNotNil ("\u0051",_ccba .Q );_bebd .SetIfNotNil ("\u0052\u0043",_ccba .RC );_bebd .SetIfNotNil ("\u0044\u0053",_ccba .DS );_bebd .SetIfNotNil ("\u0043\u004c",_ccba .CL );_bebd .SetIfNotNil ("\u0049\u0054",_ccba .IT );
_bebd .SetIfNotNil ("\u0042\u0045",_ccba .BE );_bebd .SetIfNotNil ("\u0052\u0044",_ccba .RD );_bebd .SetIfNotNil ("\u0042\u0053",_ccba .BS );_bebd .SetIfNotNil ("\u004c\u0045",_ccba .LE );return _ddb ;};func (_geff Image )getBase ()_gbed .ImageBase {return _gbed .NewImageBase (int (_geff .Width ),int (_geff .Height ),int (_geff .BitsPerComponent ),_geff .ColorComponents ,_geff .Data ,_geff ._gfffd ,_geff ._cdbdc );
};
// GetPageDict converts the Page to a PDF object dictionary.
func (_gddb *PdfPage )GetPageDict ()*_fd .PdfObjectDictionary {_dgccd :=_gddb ._gaec ;_dgccd .Clear ();_dgccd .Set ("\u0054\u0079\u0070\u0065",_fd .MakeName ("\u0050\u0061\u0067\u0065"));_dgccd .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_gddb .Parent );
if _gddb .LastModified !=nil {_dgccd .Set ("\u004c\u0061\u0073t\u004d\u006f\u0064\u0069\u0066\u0069\u0065\u0064",_gddb .LastModified .ToPdfObject ());};if _gddb .Resources !=nil {_dgccd .Set ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s",_gddb .Resources .ToPdfObject ());
};if _gddb .CropBox !=nil {_dgccd .Set ("\u0043r\u006f\u0070\u0042\u006f\u0078",_gddb .CropBox .ToPdfObject ());};if _gddb .MediaBox !=nil {_dgccd .Set ("\u004d\u0065\u0064\u0069\u0061\u0042\u006f\u0078",_gddb .MediaBox .ToPdfObject ());};if _gddb .BleedBox !=nil {_dgccd .Set ("\u0042\u006c\u0065\u0065\u0064\u0042\u006f\u0078",_gddb .BleedBox .ToPdfObject ());
};if _gddb .TrimBox !=nil {_dgccd .Set ("\u0054r\u0069\u006d\u0042\u006f\u0078",_gddb .TrimBox .ToPdfObject ());};if _gddb .ArtBox !=nil {_dgccd .Set ("\u0041\u0072\u0074\u0042\u006f\u0078",_gddb .ArtBox .ToPdfObject ());};_dgccd .SetIfNotNil ("\u0042\u006f\u0078C\u006f\u006c\u006f\u0072\u0049\u006e\u0066\u006f",_gddb .BoxColorInfo );
_dgccd .SetIfNotNil ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073",_gddb .Contents );if _gddb .Rotate !=nil {_dgccd .Set ("\u0052\u006f\u0074\u0061\u0074\u0065",_fd .MakeInteger (*_gddb .Rotate ));};_dgccd .SetIfNotNil ("\u0047\u0072\u006fu\u0070",_gddb .Group );
_dgccd .SetIfNotNil ("\u0054\u0068\u0075m\u0062",_gddb .Thumb );_dgccd .SetIfNotNil ("\u0042",_gddb .B );_dgccd .SetIfNotNil ("\u0044\u0075\u0072",_gddb .Dur );_dgccd .SetIfNotNil ("\u0054\u0072\u0061n\u0073",_gddb .Trans );_dgccd .SetIfNotNil ("\u0041\u0041",_gddb .AA );
_dgccd .SetIfNotNil ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061",_gddb .Metadata );_dgccd .SetIfNotNil ("\u0050i\u0065\u0063\u0065\u0049\u006e\u0066o",_gddb .PieceInfo );_dgccd .SetIfNotNil ("\u0053\u0074\u0072\u0075\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074\u0073",_gddb .StructParents );
_dgccd .SetIfNotNil ("\u0049\u0044",_gddb .ID );_dgccd .SetIfNotNil ("\u0050\u005a",_gddb .PZ );_dgccd .SetIfNotNil ("\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006fn\u0049\u006e\u0066\u006f",_gddb .SeparationInfo );_dgccd .SetIfNotNil ("\u0054\u0061\u0062\u0073",_gddb .Tabs );
_dgccd .SetIfNotNil ("T\u0065m\u0070\u006c\u0061\u0074\u0065\u0049\u006e\u0073t\u0061\u006e\u0074\u0069at\u0065\u0064",_gddb .TemplateInstantiated );_dgccd .SetIfNotNil ("\u0050r\u0065\u0073\u0053\u0074\u0065\u0070s",_gddb .PresSteps );_dgccd .SetIfNotNil ("\u0055\u0073\u0065\u0072\u0055\u006e\u0069\u0074",_gddb .UserUnit );
_dgccd .SetIfNotNil ("\u0056\u0050",_gddb .VP );if _gddb ._gbaf !=nil {_fcdg :=_fd .MakeArray ();for _ ,_dbbbb :=range _gddb ._gbaf {if _ffged :=_dbbbb .GetContext ();_ffged !=nil {_fcdg .Append (_ffged .ToPdfObject ());}else {_fcdg .Append (_dbbbb .ToPdfObject ());
};};if _fcdg .Len ()> 0{_dgccd .Set ("\u0041\u006e\u006e\u006f\u0074\u0073",_fcdg );};}else if _gddb .Annots !=nil {_dgccd .SetIfNotNil ("\u0041\u006e\u006e\u006f\u0074\u0073",_gddb .Annots );};return _dgccd ;};
// NewPdfActionResetForm returns a new "reset form" action.
func NewPdfActionResetForm ()*PdfActionResetForm {_bcf :=NewPdfAction ();_bgc :=&PdfActionResetForm {};_bgc .PdfAction =_bcf ;_bcf .SetContext (_bgc );return _bgc ;};func (_beg *PdfReader )newPdfAnnotationFromIndirectObject (_bcd *_fd .PdfIndirectObject )(*PdfAnnotation ,error ){_gdg ,_gcg :=_bcd .PdfObject .(*_fd .PdfObjectDictionary );
if !_gcg {return nil ,_dc .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 :=_beg ._fbabb .GetModelFromPrimitive (_gdg );model !=nil {_gfd ,_abg :=model .(*PdfAnnotation );if !_abg {return nil ,_dc .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 _gfd ,nil ;};_acc :=&PdfAnnotation {};_acc ._aeb =_bcd ;_beg ._fbabb .Register (_gdg ,_acc );if _fdcg :=_gdg .Get ("\u0054\u0079\u0070\u0065");_fdcg !=nil {_ggd ,_abe :=_fdcg .(*_fd .PdfObjectName );if !_abe {_ag .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",_fdcg );
}else {if *_ggd !="\u0041\u006e\u006eo\u0074"{_ag .Log .Trace ("\u0055\u006e\u0073\u0075\u0073\u0070\u0065\u0063\u0074\u0065d\u0020\u0054\u0079\u0070\u0065\u0020\u0021=\u0020\u0041\u006e\u006e\u006f\u0074\u0020\u0028\u0025\u0073\u0029",*_ggd );};};};if _aeba :=_gdg .Get ("\u0052\u0065\u0063\u0074");
_aeba !=nil {_acc .Rect =_aeba ;};if _deeb :=_gdg .Get ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073");_deeb !=nil {_acc .Contents =_deeb ;};if _fab :=_gdg .Get ("\u0050");_fab !=nil {_acc .P =_fab ;};if _befe :=_gdg .Get ("\u004e\u004d");_befe !=nil {_acc .NM =_befe ;
};if _bge :=_gdg .Get ("\u004d");_bge !=nil {_acc .M =_bge ;};if _bfge :=_gdg .Get ("\u0046");_bfge !=nil {_acc .F =_bfge ;};if _cgc :=_gdg .Get ("\u0041\u0050");_cgc !=nil {_acc .AP =_cgc ;};if _gcbg :=_gdg .Get ("\u0041\u0053");_gcbg !=nil {_acc .AS =_gcbg ;
};if _ffcc :=_gdg .Get ("\u0042\u006f\u0072\u0064\u0065\u0072");_ffcc !=nil {_acc .Border =_ffcc ;};if _fdb :=_gdg .Get ("\u0043");_fdb !=nil {_acc .C =_fdb ;};if _bfa :=_gdg .Get ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074");
_bfa !=nil {_acc .StructParent =_bfa ;};if _ccfb :=_gdg .Get ("\u004f\u0043");_ccfb !=nil {_acc .OC =_ccfb ;};_cbfb :=_gdg .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065");if _cbfb ==nil {_ag .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");
_acc ._cfda =nil ;return _acc ,nil ;};_bded ,_gdcc :=_cbfb .(*_fd .PdfObjectName );if !_gdcc {_ag .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",_cbfb );
return nil ,_dc .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",_cbfb );};switch *_bded {case "\u0054\u0065\u0078\u0074":_bbee ,_egg :=_beg .newPdfAnnotationTextFromDict (_gdg );
if _egg !=nil {return nil ,_egg ;};_bbee .PdfAnnotation =_acc ;_acc ._cfda =_bbee ;return _acc ,nil ;case "\u004c\u0069\u006e\u006b":_aae ,_bdbb :=_beg .newPdfAnnotationLinkFromDict (_gdg );if _bdbb !=nil {return nil ,_bdbb ;};_aae .PdfAnnotation =_acc ;
_acc ._cfda =_aae ;return _acc ,nil ;case "\u0046\u0072\u0065\u0065\u0054\u0065\u0078\u0074":_ccc ,_bbfa :=_beg .newPdfAnnotationFreeTextFromDict (_gdg );if _bbfa !=nil {return nil ,_bbfa ;};_ccc .PdfAnnotation =_acc ;_acc ._cfda =_ccc ;return _acc ,nil ;
case "\u004c\u0069\u006e\u0065":_gac ,_cfb :=_beg .newPdfAnnotationLineFromDict (_gdg );if _cfb !=nil {return nil ,_cfb ;};_gac .PdfAnnotation =_acc ;_acc ._cfda =_gac ;_ag .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",_acc ,_acc );
_ag .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",_gac ,_gac );_ag .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",_gac .PdfAnnotationMarkup ,_gac .PdfAnnotationMarkup );
return _acc ,nil ;case "\u0053\u0071\u0075\u0061\u0072\u0065":_ebgd ,_cdb :=_beg .newPdfAnnotationSquareFromDict (_gdg );if _cdb !=nil {return nil ,_cdb ;};_ebgd .PdfAnnotation =_acc ;_acc ._cfda =_ebgd ;return _acc ,nil ;case "\u0043\u0069\u0072\u0063\u006c\u0065":_eabb ,_gged :=_beg .newPdfAnnotationCircleFromDict (_gdg );
if _gged !=nil {return nil ,_gged ;};_eabb .PdfAnnotation =_acc ;_acc ._cfda =_eabb ;return _acc ,nil ;case "\u0050o\u006c\u0079\u0067\u006f\u006e":_eba ,_bcg :=_beg .newPdfAnnotationPolygonFromDict (_gdg );if _bcg !=nil {return nil ,_bcg ;};_eba .PdfAnnotation =_acc ;
_acc ._cfda =_eba ;return _acc ,nil ;case "\u0050\u006f\u006c\u0079\u004c\u0069\u006e\u0065":_eabca ,_agef :=_beg .newPdfAnnotationPolyLineFromDict (_gdg );if _agef !=nil {return nil ,_agef ;};_eabca .PdfAnnotation =_acc ;_acc ._cfda =_eabca ;return _acc ,nil ;
case "\u0048i\u0067\u0068\u006c\u0069\u0067\u0068t":_ggc ,_gbbc :=_beg .newPdfAnnotationHighlightFromDict (_gdg );if _gbbc !=nil {return nil ,_gbbc ;};_ggc .PdfAnnotation =_acc ;_acc ._cfda =_ggc ;return _acc ,nil ;case "\u0055n\u0064\u0065\u0072\u006c\u0069\u006ee":_feb ,_dace :=_beg .newPdfAnnotationUnderlineFromDict (_gdg );
if _dace !=nil {return nil ,_dace ;};_feb .PdfAnnotation =_acc ;_acc ._cfda =_feb ;return _acc ,nil ;case "\u0053\u0071\u0075\u0069\u0067\u0067\u006c\u0079":_bgbe ,_adfe :=_beg .newPdfAnnotationSquigglyFromDict (_gdg );if _adfe !=nil {return nil ,_adfe ;
};_bgbe .PdfAnnotation =_acc ;_acc ._cfda =_bgbe ;return _acc ,nil ;case "\u0053t\u0072\u0069\u006b\u0065\u004f\u0075t":_fcga ,_abcf :=_beg .newPdfAnnotationStrikeOut (_gdg );if _abcf !=nil {return nil ,_abcf ;};_fcga .PdfAnnotation =_acc ;_acc ._cfda =_fcga ;
return _acc ,nil ;case "\u0043\u0061\u0072e\u0074":_dgf ,_fcc :=_beg .newPdfAnnotationCaretFromDict (_gdg );if _fcc !=nil {return nil ,_fcc ;};_dgf .PdfAnnotation =_acc ;_acc ._cfda =_dgf ;return _acc ,nil ;case "\u0053\u0074\u0061m\u0070":_eecd ,_ccbb :=_beg .newPdfAnnotationStampFromDict (_gdg );
if _ccbb !=nil {return nil ,_ccbb ;};_eecd .PdfAnnotation =_acc ;_acc ._cfda =_eecd ;return _acc ,nil ;case "\u0049\u006e\u006b":_eef ,_dgd :=_beg .newPdfAnnotationInkFromDict (_gdg );if _dgd !=nil {return nil ,_dgd ;};_eef .PdfAnnotation =_acc ;_acc ._cfda =_eef ;
return _acc ,nil ;case "\u0050\u006f\u0070u\u0070":_gebg ,_adaf :=_beg .newPdfAnnotationPopupFromDict (_gdg );if _adaf !=nil {return nil ,_adaf ;};_gebg .PdfAnnotation =_acc ;_acc ._cfda =_gebg ;return _acc ,nil ;case "\u0046\u0069\u006c\u0065\u0041\u0074\u0074\u0061\u0063h\u006d\u0065\u006e\u0074":_ecbg ,_fddfe :=_beg .newPdfAnnotationFileAttachmentFromDict (_gdg );
if _fddfe !=nil {return nil ,_fddfe ;};_ecbg .PdfAnnotation =_acc ;_acc ._cfda =_ecbg ;return _acc ,nil ;case "\u0053\u006f\u0075n\u0064":_accb ,_dbc :=_beg .newPdfAnnotationSoundFromDict (_gdg );if _dbc !=nil {return nil ,_dbc ;};_accb .PdfAnnotation =_acc ;
_acc ._cfda =_accb ;return _acc ,nil ;case "\u0052i\u0063\u0068\u004d\u0065\u0064\u0069a":_gag ,_ffa :=_beg .newPdfAnnotationRichMediaFromDict (_gdg );if _ffa !=nil {return nil ,_ffa ;};_gag .PdfAnnotation =_acc ;_acc ._cfda =_gag ;return _acc ,nil ;case "\u004d\u006f\u0076i\u0065":_dfc ,_ccbc :=_beg .newPdfAnnotationMovieFromDict (_gdg );
if _ccbc !=nil {return nil ,_ccbc ;};_dfc .PdfAnnotation =_acc ;_acc ._cfda =_dfc ;return _acc ,nil ;case "\u0053\u0063\u0072\u0065\u0065\u006e":_daddf ,_ccef :=_beg .newPdfAnnotationScreenFromDict (_gdg );if _ccef !=nil {return nil ,_ccef ;};_daddf .PdfAnnotation =_acc ;
_acc ._cfda =_daddf ;return _acc ,nil ;case "\u0057\u0069\u0064\u0067\u0065\u0074":_geg ,_adb :=_beg .newPdfAnnotationWidgetFromDict (_gdg );if _adb !=nil {return nil ,_adb ;};_geg .PdfAnnotation =_acc ;_acc ._cfda =_geg ;return _acc ,nil ;case "P\u0072\u0069\u006e\u0074\u0065\u0072\u004d\u0061\u0072\u006b":_ceg ,_fccg :=_beg .newPdfAnnotationPrinterMarkFromDict (_gdg );
if _fccg !=nil {return nil ,_fccg ;};_ceg .PdfAnnotation =_acc ;_acc ._cfda =_ceg ;return _acc ,nil ;case "\u0054r\u0061\u0070\u004e\u0065\u0074":_fbcf ,_ffg :=_beg .newPdfAnnotationTrapNetFromDict (_gdg );if _ffg !=nil {return nil ,_ffg ;};_fbcf .PdfAnnotation =_acc ;
_acc ._cfda =_fbcf ;return _acc ,nil ;case "\u0057a\u0074\u0065\u0072\u006d\u0061\u0072k":_bbg ,_edgb :=_beg .newPdfAnnotationWatermarkFromDict (_gdg );if _edgb !=nil {return nil ,_edgb ;};_bbg .PdfAnnotation =_acc ;_acc ._cfda =_bbg ;return _acc ,nil ;
case "\u0033\u0044":_fcd ,_faa :=_beg .newPdfAnnotation3DFromDict (_gdg );if _faa !=nil {return nil ,_faa ;};_fcd .PdfAnnotation =_acc ;_acc ._cfda =_fcd ;return _acc ,nil ;case "\u0050\u0072\u006f\u006a\u0065\u0063\u0074\u0069\u006f\u006e":_dddb ,_dbd :=_beg .newPdfAnnotationProjectionFromDict (_gdg );
if _dbd !=nil {return nil ,_dbd ;};_dddb .PdfAnnotation =_acc ;_acc ._cfda =_dddb ;return _acc ,nil ;case "\u0052\u0065\u0064\u0061\u0063\u0074":_deaf ,_fde :=_beg .newPdfAnnotationRedactFromDict (_gdg );if _fde !=nil {return nil ,_fde ;};_deaf .PdfAnnotation =_acc ;
_acc ._cfda =_deaf ;return _acc ,nil ;};_ag .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",*_bded );
return nil ,nil ;};
// Permissions specify a permissions dictionary (PDF 1.5).
// (Section 12.8.4, Table 258 - Entries in a permissions dictionary p. 477 in PDF32000_2008).
type Permissions struct{DocMDP *PdfSignature ;_ecebg *_fd .PdfObjectDictionary ;};func (_ecedf *PdfReader )newPdfSignatureReferenceFromDict (_fedca *_fd .PdfObjectDictionary )(*PdfSignatureReference ,error ){if _bfaf ,_aabca :=_ecedf ._fbabb .GetModelFromPrimitive (_fedca ).(*PdfSignatureReference );
_aabca {return _bfaf ,nil ;};_gfdcg :=&PdfSignatureReference {_acdd :_fedca ,Data :_fedca .Get ("\u0044\u0061\u0074\u0061")};var _ccfeg bool ;_gfdcg .Type ,_ =_fd .GetName (_fedca .Get ("\u0054\u0079\u0070\u0065"));_gfdcg .TransformMethod ,_ccfeg =_fd .GetName (_fedca .Get ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u004d\u0065\u0074\u0068\u006f\u0064"));
if !_ccfeg {_ag .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 ;};_gfdcg .TransformParams ,_ =_fd .GetDict (_fedca .Get ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u0050\u0061\u0072\u0061\u006d\u0073"));_gfdcg .DigestMethod ,_ =_fd .GetName (_fedca .Get ("\u0044\u0069\u0067e\u0073\u0074\u004d\u0065\u0074\u0068\u006f\u0064"));
return _gfdcg ,nil ;};
// K returns the value of the key component of the color.
func (_ggda *PdfColorDeviceCMYK )K ()float64 {return _ggda [3]};
// GetRevision returns the specific version of the PdfReader for the current Pdf document
func (_dafbe *PdfReader )GetRevision (revisionNumber int )(*PdfReader ,error ){_aabgg :=_dafbe ._faaf .GetRevisionNumber ();if revisionNumber < 0||revisionNumber > _aabgg {return nil ,_ad .New ("w\u0072\u006f\u006e\u0067 r\u0065v\u0069\u0073\u0069\u006f\u006e \u006e\u0075\u006d\u0062\u0065\u0072");
};if revisionNumber ==_aabgg {return _dafbe ,nil ;};if _dafbe ._afcee [revisionNumber ]!=nil {return _dafbe ._afcee [revisionNumber ],nil ;};_fadc :=_dafbe ;for _egffbd :=_aabgg -1;_egffbd >=revisionNumber ;_egffbd --{_gccgf ,_bbdddf :=_fadc .GetPreviousRevision ();
if _bbdddf !=nil {return nil ,_bbdddf ;};_dafbe ._afcee [_egffbd ]=_gccgf ;_fadc =_gccgf ;};return _fadc ,nil ;};
// 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 (_dfgab *PdfAcroForm )FillWithAppearance (provider FieldValueProvider ,appGen FieldAppearanceGenerator )error {_gdgce :=_dfgab .fill (provider ,appGen );if _gdgce !=nil {return _gdgce ;};if _ ,_egga :=provider .(FieldImageProvider );_egga {_gdgce =_dfgab .fillImageWithAppearance (provider .(FieldImageProvider ),appGen );
};return _gdgce ;};
// 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 (_agaa *PdfColorspaceCalRGB )ColorFromPdfObjects (objects []_fd .PdfObject )(PdfColor ,error ){if len (objects )!=3{return nil ,_ad .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_febcg ,_cddg :=_fd .GetNumbersAsFloat (objects );
if _cddg !=nil {return nil ,_cddg ;};return _agaa .ColorFromFloats (_febcg );};func (_fac *PdfAnnotation )String ()string {_adab :="";_agfg ,_fdg :=_fac .ToPdfObject ().(*_fd .PdfIndirectObject );if _fdg {_adab =_dc .Sprintf ("\u0025\u0054\u003a\u0020\u0025\u0073",_fac ._cfda ,_agfg .PdfObject .String ());
};return _adab ;};func (_ccfca *LTV )buildCertChain (_cdfgbc ,_egcce []*_gff .Certificate )([]*_gff .Certificate ,map[string ]*_gff .Certificate ,error ){_dfdfb :=map[string ]*_gff .Certificate {};for _ ,_fcgcg :=range _cdfgbc {_dfdfb [_fcgcg .Subject .CommonName ]=_fcgcg ;
};_fdbfd :=_cdfgbc ;for _ ,_fcbb :=range _egcce {_ffga :=_fcbb .Subject .CommonName ;if _ ,_gbaee :=_dfdfb [_ffga ];_gbaee {continue ;};_dfdfb [_ffga ]=_fcbb ;_fdbfd =append (_fdbfd ,_fcbb );};if len (_fdbfd )==0{return nil ,nil ,ErrSignNoCertificates ;
};var _fggb error ;for _dbbdb :=_fdbfd [0];_dbbdb !=nil &&!_ccfca .CertClient .IsCA (_dbbdb );{_agffg ,_adbf :=_dfdfb [_dbbdb .Issuer .CommonName ];if !_adbf {if _agffg ,_fggb =_ccfca .CertClient .GetIssuer (_dbbdb );_fggb !=nil {_ag .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",_fggb );
break ;};_dfdfb [_dbbdb .Issuer .CommonName ]=_agffg ;_fdbfd =append (_fdbfd ,_agffg );};_dbbdb =_agffg ;};return _fdbfd ,_dfdfb ,nil ;};const (FieldFlagClear FieldFlag =0;FieldFlagReadOnly FieldFlag =1;FieldFlagRequired FieldFlag =(1<<1);FieldFlagNoExport FieldFlag =(2<<1);
FieldFlagNoToggleToOff FieldFlag =(1<<14);FieldFlagRadio FieldFlag =(1<<15);FieldFlagPushbutton FieldFlag =(1<<16);FieldFlagRadiosInUnision FieldFlag =(1<<25);FieldFlagMultiline FieldFlag =(1<<12);FieldFlagPassword FieldFlag =(1<<13);FieldFlagFileSelect FieldFlag =(1<<20);
FieldFlagDoNotScroll FieldFlag =(1<<23);FieldFlagComb FieldFlag =(1<<24);FieldFlagRichText FieldFlag =(1<<26);FieldFlagDoNotSpellCheck FieldFlag =(1<<22);FieldFlagCombo FieldFlag =(1<<17);FieldFlagEdit FieldFlag =(1<<18);FieldFlagSort FieldFlag =(1<<19);
FieldFlagMultiSelect FieldFlag =(1<<21);FieldFlagCommitOnSelChange FieldFlag =(1<<27););func _cgdbg (_abceg *_fd .PdfObjectDictionary )(*PdfTilingPattern ,error ){_gcbgd :=&PdfTilingPattern {};_dfba :=_abceg .Get ("\u0050a\u0069\u006e\u0074\u0054\u0079\u0070e");
if _dfba ==nil {_ag .Log .Debug ("\u0050\u0061\u0069\u006e\u0074\u0054\u0079\u0070\u0065\u0020\u006d\u0069s\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ;};_eeaae ,_fcbcc :=_dfba .(*_fd .PdfObjectInteger );if !_fcbcc {_ag .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",_dfba );
return nil ,_fd .ErrTypeError ;};_gcbgd .PaintType =_eeaae ;_dfba =_abceg .Get ("\u0054\u0069\u006c\u0069\u006e\u0067\u0054\u0079\u0070\u0065");if _dfba ==nil {_ag .Log .Debug ("\u0054i\u006ci\u006e\u0067\u0054\u0079\u0070e\u0020\u006di\u0073\u0073\u0069\u006e\u0067");
return nil ,ErrRequiredAttributeMissing ;};_affea ,_fcbcc :=_dfba .(*_fd .PdfObjectInteger );if !_fcbcc {_ag .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",_dfba );
return nil ,_fd .ErrTypeError ;};_gcbgd .TilingType =_affea ;_dfba =_abceg .Get ("\u0042\u0042\u006f\u0078");if _dfba ==nil {_ag .Log .Debug ("\u0042\u0042\u006fx\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ;
};_dfba =_fd .TraceToDirectObject (_dfba );_gfcaf ,_fcbcc :=_dfba .(*_fd .PdfObjectArray );if !_fcbcc {_ag .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",_dfba );
return nil ,_fd .ErrTypeError ;};_bdafc ,_abba :=NewPdfRectangle (*_gfcaf );if _abba !=nil {_ag .Log .Debug ("\u0042\u0042\u006f\u0078\u0020\u0065\u0072\u0072\u006fr\u003a\u0020\u0025\u0076",_abba );return nil ,_abba ;};_gcbgd .BBox =_bdafc ;_dfba =_abceg .Get ("\u0058\u0053\u0074e\u0070");
if _dfba ==nil {_ag .Log .Debug ("\u0058\u0053\u0074\u0065\u0070\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ;};_dddedb ,_abba :=_fd .GetNumberAsFloat (_dfba );if _abba !=nil {_ag .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",_dddedb );
return nil ,_abba ;};_gcbgd .XStep =_fd .MakeFloat (_dddedb );_dfba =_abceg .Get ("\u0059\u0053\u0074e\u0070");if _dfba ==nil {_ag .Log .Debug ("\u0059\u0053\u0074\u0065\u0070\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ;
};_eddac ,_abba :=_fd .GetNumberAsFloat (_dfba );if _abba !=nil {_ag .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",_eddac );
return nil ,_abba ;};_gcbgd .YStep =_fd .MakeFloat (_eddac );_dfba =_abceg .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");if _dfba ==nil {_ag .Log .Debug ("\u0052\u0065\u0073\u006f\u0075\u0072\u0063\u0065\u0073\u0020\u006d\u0069s\u0073\u0069\u006e\u0067");
return nil ,ErrRequiredAttributeMissing ;};_abceg ,_fcbcc =_fd .TraceToDirectObject (_dfba ).(*_fd .PdfObjectDictionary );if !_fcbcc {return nil ,_dc .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",_dfba );
};_bgbebg ,_abba :=NewPdfPageResourcesFromDict (_abceg );if _abba !=nil {return nil ,_abba ;};_gcbgd .Resources =_bgbebg ;if _fdacd :=_abceg .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");_fdacd !=nil {_daggd ,_bgbf :=_fdacd .(*_fd .PdfObjectArray );if !_bgbf {_ag .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",_fdacd );
return nil ,_fd .ErrTypeError ;};_gcbgd .Matrix =_daggd ;};return _gcbgd ,nil ;};
// PdfActionGoTo represents a GoTo action.
type PdfActionGoTo struct{*PdfAction ;D _fd .PdfObject ;};
// NewPdfOutlineItem returns an initialized PdfOutlineItem.
func NewPdfOutlineItem ()*PdfOutlineItem {_cdeba :=&PdfOutlineItem {_ecga :_fd .MakeIndirectObject (_fd .MakeDict ())};_cdeba ._gcgcg =_cdeba ;return _cdeba ;};
// NewOutline returns a new outline instance.
func NewOutline ()*Outline {return &Outline {}};
// NewReaderOpts generates a default `ReaderOpts` instance.
func NewReaderOpts ()*ReaderOpts {return &ReaderOpts {Password :"",LazyLoad :true }};
// ToPdfObject implements interface PdfModel.
func (_bgcd *PdfActionSubmitForm )ToPdfObject ()_fd .PdfObject {_bgcd .PdfAction .ToPdfObject ();_edaf :=_bgcd ._bfb ;_bgf :=_edaf .PdfObject .(*_fd .PdfObjectDictionary );_bgf .SetIfNotNil ("\u0053",_fd .MakeName (string (ActionTypeSubmitForm )));if _bgcd .F !=nil {_bgf .Set ("\u0046",_bgcd .F .ToPdfObject ());
};_bgf .SetIfNotNil ("\u0046\u0069\u0065\u006c\u0064\u0073",_bgcd .Fields );_bgf .SetIfNotNil ("\u0046\u006c\u0061g\u0073",_bgcd .Flags );return _edaf ;};
// ColorFromPdfObjects returns a new PdfColor based on the input slice of color
// components. The slice should contain a single PdfObjectFloat element.
func (_bgda *PdfColorspaceSpecialIndexed )ColorFromPdfObjects (objects []_fd .PdfObject )(PdfColor ,error ){if len (objects )!=1{return nil ,_ad .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_abgge ,_bcgg :=_fd .GetNumbersAsFloat (objects );
if _bcgg !=nil {return nil ,_bcgg ;};return _bgda .ColorFromFloats (_abgge );};
// Encoder returns the font's text encoder.
func (_bgbeb *PdfFont )Encoder ()_ee .TextEncoder {_dcac :=_bgbeb .actualFont ();if _dcac ==nil {_ag .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",_bgbeb ._gbaac );
return nil ;};return _dcac .Encoder ();};func (_gcda *PdfReader )newPdfActionJavaScriptFromDict (_fba *_fd .PdfObjectDictionary )(*PdfActionJavaScript ,error ){return &PdfActionJavaScript {JS :_fba .Get ("\u004a\u0053")},nil ;};
// ToInteger convert to an integer format.
func (_bffc *PdfColorDeviceGray )ToInteger (bits int )uint32 {_gffbd :=_af .Pow (2,float64 (bits ))-1;return uint32 (_gffbd *_bffc .Val ());};
// ToPdfObject implements interface PdfModel.
func (_caae *PdfAnnotationLink )ToPdfObject ()_fd .PdfObject {_caae .PdfAnnotation .ToPdfObject ();_ffdb :=_caae ._aeb ;_cfcf :=_ffdb .PdfObject .(*_fd .PdfObjectDictionary );_cfcf .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fd .MakeName ("\u004c\u0069\u006e\u006b"));
if _caae ._abb !=nil &&_caae ._abb ._ga !=nil {_cfcf .Set ("\u0041",_caae ._abb ._ga .ToPdfObject ());}else if _caae .A !=nil {_cfcf .Set ("\u0041",_caae .A );};_cfcf .SetIfNotNil ("\u0044\u0065\u0073\u0074",_caae .Dest );_cfcf .SetIfNotNil ("\u0048",_caae .H );
_cfcf .SetIfNotNil ("\u0050\u0041",_caae .PA );_cfcf .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_caae .QuadPoints );_cfcf .SetIfNotNil ("\u0042\u0053",_caae .BS );return _ffdb ;};
// ToPdfObject returns the PDF representation of the shading pattern.
func (_ffdge *PdfShadingPatternType3 )ToPdfObject ()_fd .PdfObject {_ffdge .PdfPattern .ToPdfObject ();_eccce :=_ffdge .getDict ();if _ffdge .Shading !=nil {_eccce .Set ("\u0053h\u0061\u0064\u0069\u006e\u0067",_ffdge .Shading .ToPdfObject ());};if _ffdge .Matrix !=nil {_eccce .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_ffdge .Matrix );
};if _ffdge .ExtGState !=nil {_eccce .Set ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e",_ffdge .ExtGState );};return _ffdge ._gcgba ;};
// Insert adds an outline item as a child of the current outline item,
// at the specified index.
func (_daaeg *OutlineItem )Insert (index uint ,item *OutlineItem ){_gcea :=uint (len (_daaeg .Entries ));if index > _gcea {index =_gcea ;};_daaeg .Entries =append (_daaeg .Entries [:index ],append ([]*OutlineItem {item },_daaeg .Entries [index :]...)...);
};func (_dfac *PdfReader )loadOutlines ()(*PdfOutlineTreeNode ,error ){if _dfac ._faaf .GetCrypter ()!=nil &&!_dfac ._faaf .IsAuthenticated (){return nil ,_dc .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");
};_ddaa :=_dfac ._gabca ;_ccfbcb :=_ddaa .Get ("\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0073");if _ccfbcb ==nil {return nil ,nil ;};_ag .Log .Trace ("\u002d\u0048\u0061\u0073\u0020\u006f\u0075\u0074\u006c\u0069\u006e\u0065\u0073");_ffcdg :=_fd .ResolveReference (_ccfbcb );
_ag .Log .Trace ("\u004f\u0075t\u006c\u0069\u006ee\u0020\u0072\u006f\u006f\u0074\u003a\u0020\u0025\u0076",_ffcdg );if _aedf :=_fd .IsNullObject (_ffcdg );_aedf {_ag .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 ;};_cdgge ,_bcdff :=_ffcdg .(*_fd .PdfIndirectObject );if !_bcdff {if _ ,_gbgdb :=_fd .GetDict (_ffcdg );!_gbgdb {_ag .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 ;};_ag .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");
_cdgge =_fd .MakeIndirectObject (_ffcdg );};_gecff ,_bcdff :=_cdgge .PdfObject .(*_fd .PdfObjectDictionary );if !_bcdff {return nil ,_ad .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");
};_ag .Log .Trace ("O\u0075\u0074\u006c\u0069ne\u0020r\u006f\u006f\u0074\u0020\u0064i\u0063\u0074\u003a\u0020\u0025\u0076",_gecff );_fcbg ,_ ,_dbcgd :=_dfac .buildOutlineTree (_cdgge ,nil ,nil ,nil );if _dbcgd !=nil {return nil ,_dbcgd ;};_ag .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",_fcbg );
return _fcbg ,nil ;};
// Add appends a top level outline item to the outline.
func (_cgabf *Outline )Add (item *OutlineItem ){_cgabf .Entries =append (_cgabf .Entries ,item )};
// SetLocation sets the `Location` field of the signature.
func (_aggfb *PdfSignature )SetLocation (location string ){_aggfb .Location =_fd .MakeString (location )};
// GetModelFromPrimitive returns the model corresponding to the `primitive` PdfObject.
func (_acee *modelManager )GetModelFromPrimitive (primitive _fd .PdfObject )PdfModel {model ,_ffgac :=_acee ._aabd [primitive ];if !_ffgac {return nil ;};return model ;};func (_daa *PdfReader )newPdfAnnotationRedactFromDict (_dda *_fd .PdfObjectDictionary )(*PdfAnnotationRedact ,error ){_daec :=PdfAnnotationRedact {};
_abgg ,_bfgg :=_daa .newPdfAnnotationMarkupFromDict (_dda );if _bfgg !=nil {return nil ,_bfgg ;};_daec .PdfAnnotationMarkup =_abgg ;_daec .QuadPoints =_dda .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");_daec .IC =_dda .Get ("\u0049\u0043");
_daec .RO =_dda .Get ("\u0052\u004f");_daec .OverlayText =_dda .Get ("O\u0076\u0065\u0072\u006c\u0061\u0079\u0054\u0065\u0078\u0074");_daec .Repeat =_dda .Get ("\u0052\u0065\u0070\u0065\u0061\u0074");_daec .DA =_dda .Get ("\u0044\u0041");_daec .Q =_dda .Get ("\u0051");
return &_daec ,nil ;};
// ImageToRGB convert an indexed image to RGB.
func (_ccegc *PdfColorspaceSpecialIndexed )ImageToRGB (img Image )(Image ,error ){N :=_ccegc .Base .GetNumComponents ();if N < 1{return Image {},_dc .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 );
};_ffca :=_gbed .NewImageBase (int (img .Width ),int (img .Height ),8,N ,nil ,img ._gfffd ,img ._cdbdc );_aefcc :=_bg .NewReader (img .getBase ());_acdb :=_bg .NewWriter (_ffca );var (_aaca uint32 ;_bafc int ;_cafcg error ;);for {_aaca ,_cafcg =_aefcc .ReadSample ();
if _cafcg ==_bc .EOF {break ;}else if _cafcg !=nil {return img ,_cafcg ;};_bafc =int (_aaca );_ag .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",_bafc ,N ,len (_ccegc ._fdac ));
if (_bafc +1)*N > len (_ccegc ._fdac ){_bafc =len (_ccegc ._fdac )/N -1;_ag .Log .Trace ("C\u006c\u0069\u0070\u0070in\u0067 \u0074\u006f\u0020\u0069\u006ed\u0065\u0078\u003a\u0020\u0025\u0064",_bafc );if _bafc < 0{_ag .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 _bcbda :=_bafc *N ;_bcbda < (_bafc +1)*N ;_bcbda ++{if _cafcg =_acdb .WriteSample (uint32 (_ccegc ._fdac [_bcbda ]));_cafcg !=nil {return img ,_cafcg ;};};};return _ccegc .Base .ImageToRGB (_eeafa (&_ffca ));};
// 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 (_ecdgd *PdfFont )CharcodesToStrings (charcodes []_ee .CharCode ,replacementText string )([]string ,int ,int ){_bdbcfc :=_ecdgd .baseFields ();_bbadc :=make ([]string ,0,len (charcodes ));_defgf :=0;_ceade :=_ecdgd .Encoder ();_aagfc :=_bdbcfc ._dgdg !=nil &&_ecdgd .IsSimple ()&&_ecdgd .Subtype ()=="\u0054\u0072\u0075\u0065\u0054\u0079\u0070\u0065"&&!_gg .Contains (_bdbcfc ._dgdg .Name (),"\u0049d\u0065\u006e\u0074\u0069\u0074\u0079-");
if !_aagfc &&_ceade !=nil {switch _bbdaa :=_ceade .(type ){case _ee .SimpleEncoder :_fbdfe :=_bbdaa .BaseName ();if _ ,_fdfec :=_geafg [_fbdfe ];_fdfec {for _ ,_dcab :=range charcodes {if _bdda ,_gaeb :=_ceade .CharcodeToRune (_dcab );_gaeb {_bbadc =append (_bbadc ,string (_bdda ));
}else {_ag .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",_dcab ,charcodes ,_bdbcfc .isCIDFont (),_ecdgd ,_ceade );
_defgf ++;_bbadc =append (_bbadc ,_gd .MissingCodeString );};};return _bbadc ,len (_bbadc ),_defgf ;};};};for _ ,_dffbfc :=range charcodes {if _bdbcfc ._dgdg !=nil {if _egae ,_bdbeb :=_bdbcfc ._dgdg .CharcodeToUnicode (_gd .CharCode (_dffbfc ));_bdbeb {_afgf ,_ :=_eb .DecodeLastRuneInString (_egae );
_bgggc :=_bgaef (_afgf );if !(_bgggc =="\u0043\u006f"){_bbadc =append (_bbadc ,_egae );continue ;};_ag .Log .Debug ("E\u0052\u0052\u004fR\u003a\u0020\u0054\u006f\u0055\u006e\u0069\u0063\u006f\u0064\u0065\u0020\u0043\u006d\u0061p\u0020\u0068\u0061\u0073\u0020\u0069\u006e\u0063\u006f\u0072\u0072\u0065\u0063t\u0020\u006d\u0061\u0070\u0070\u0069\u006e\u0067.\u0020\u0063\u006f\u0064\u0065\u003d\u0030\u0078\u0025\u0030\u0034\u0078\u0020\u0069\u0073\u0020m\u0061\u0070\u0070\u0065\u0064 \u0074\u006f\u0020\u0061\u006e\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064 \u0063\u006f\u0064\u0065 \u0070\u006f\u0069\u006e\u0074\u0020\u0025\u0073",_dffbfc ,_egae );
};};if _ceade !=nil {if _abbcec ,_dcad :=_ceade .CharcodeToRune (_dffbfc );_dcad {_ecbcg :=_bgaef (_abbcec );if !(_ecbcg =="\u0043\u006f"){_bbadc =append (_bbadc ,string (_abbcec ));continue ;};_ag .Log .Debug ("\u0045\u0052R\u004f\u0052\u003a\u0020\u0065\u006e\u0063\u006f\u0064\u0065\u0072\u0020\u0066\u0061\u0069\u006c\u0065\u0064\u002e \u0063\u006f\u0064\u0065\u003d\u0030x\u0025\u0030\u0034\u0078\u0020\u0069\u0073\u0020\u0064\u0065\u0063\u006f\u0064\u0065d\u0020\u0074o\u0020\u0061\u006e\u0020i\u006e\u0076\u0061\u006c\u0069d\u0020\u0072\u0075\u006e\u0020\u0025\u0073",_dffbfc ,string (_abbcec ));
};};if replacementText !=""{_bbadc =append (_bbadc ,replacementText );}else {_ag .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",_dffbfc ,charcodes ,_bdbcfc .isCIDFont (),_ecdgd ,_ceade );
_defgf ++;_bbadc =append (_bbadc ,_gd .MissingCodeString );};};if _defgf !=0{_ag .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 ),_defgf ,_ecdgd );
};return _bbadc ,len (_bbadc ),_defgf ;};func (_fag *PdfReader )newPdfAnnotationPolygonFromDict (_agbb *_fd .PdfObjectDictionary )(*PdfAnnotationPolygon ,error ){_dacce :=PdfAnnotationPolygon {};_adfgb ,_aga :=_fag .newPdfAnnotationMarkupFromDict (_agbb );
if _aga !=nil {return nil ,_aga ;};_dacce .PdfAnnotationMarkup =_adfgb ;_dacce .Vertices =_agbb .Get ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073");_dacce .LE =_agbb .Get ("\u004c\u0045");_dacce .BS =_agbb .Get ("\u0042\u0053");_dacce .IC =_agbb .Get ("\u0049\u0043");
_dacce .BE =_agbb .Get ("\u0042\u0045");_dacce .IT =_agbb .Get ("\u0049\u0054");_dacce .Measure =_agbb .Get ("\u004de\u0061\u0073\u0075\u0072\u0065");return &_dacce ,nil ;};
// WatermarkImageOptions contains options for configuring the watermark process.
type WatermarkImageOptions struct{Alpha float64 ;FitToWidth bool ;PreserveAspectRatio bool ;};
// NewPdfFontFromPdfObject loads a PdfFont from the dictionary `fontObj`. If there is a problem an
// error is returned.
func NewPdfFontFromPdfObject (fontObj _fd .PdfObject )(*PdfFont ,error ){return _gabge (fontObj ,true )};
// NewPdfActionGoTo returns a new "go to" action.
func NewPdfActionGoTo ()*PdfActionGoTo {_dfe :=NewPdfAction ();_ab :=&PdfActionGoTo {};_ab .PdfAction =_dfe ;_dfe .SetContext (_ab );return _ab ;};
// 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 (_ebgc *PdfColorspaceLab )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=3{return nil ,_ad .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_gbacc :=vals [0];if _gbacc < 0.0||_gbacc > 100.0{_ag .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",_gbacc );
return nil ,ErrColorOutOfRange ;};_aage :=vals [1];_bgged :=float64 (-100);_efdcg :=float64 (100);if len (_ebgc .Range )> 1{_bgged =_ebgc .Range [0];_efdcg =_ebgc .Range [1];};if _aage < _bgged ||_aage > _efdcg {_ag .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",_aage ,_bgged ,_efdcg );
return nil ,ErrColorOutOfRange ;};_bbde :=vals [2];_ecag :=float64 (-100);_acgg :=float64 (100);if len (_ebgc .Range )> 3{_ecag =_ebgc .Range [2];_acgg =_ebgc .Range [3];};if _bbde < _ecag ||_bbde > _acgg {_ag .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",_bbde ,_ecag ,_acgg );
return nil ,ErrColorOutOfRange ;};_geag :=NewPdfColorLab (_gbacc ,_aage ,_bbde );return _geag ,nil ;};
// NewPdfAppenderWithOpts creates a new Pdf appender from a Pdf reader with options.
func NewPdfAppenderWithOpts (reader *PdfReader ,opts *ReaderOpts ,encryptOptions *EncryptOptions )(*PdfAppender ,error ){_acag :=&PdfAppender {_cgae :reader ._gcafg ,Reader :reader ,_fcec :reader ._faaf ,_bade :reader ._cedebc };_edfe ,_badec :=_acag ._cgae .Seek (0,_bc .SeekEnd );
if _badec !=nil {return nil ,_badec ;};_acag ._cdfg =_edfe ;if _ ,_badec =_acag ._cgae .Seek (0,_bc .SeekStart );_badec !=nil {return nil ,_badec ;};_acag ._efec ,_badec =NewPdfReaderWithOpts (_acag ._cgae ,opts );if _badec !=nil {return nil ,_badec ;};
for _ ,_daca :=range _acag .Reader .GetObjectNums (){if _acag ._bgfg < _daca {_acag ._bgfg =_daca ;};};_acag ._ccfe =_acag ._fcec .GetXrefTable ();_acag ._fda =_acag ._fcec .GetXrefOffset ();_acag ._gbca =append (_acag ._gbca ,_acag ._efec .PageList ...);
_acag ._dbdc =make (map[_fd .PdfObject ]struct{});_acag ._aceb =make (map[_fd .PdfObject ]int64 );_acag ._cfa =make (map[_fd .PdfObject ]struct{});_acag ._agfb =_acag ._efec .AcroForm ;_acag ._bgge =_acag ._efec .DSS ;if opts !=nil {_acag ._gffb =opts .Password ;
};if encryptOptions !=nil {_acag ._gdef =encryptOptions ;};return _acag ,nil ;};
// NewPdfColorLab returns a new Lab color.
func NewPdfColorLab (l ,a ,b float64 )*PdfColorLab {_dcbec :=PdfColorLab {l ,a ,b };return &_dcbec };
// ToPdfObject generates a PdfObject representation of the Names struct.
func (_beae *Names )ToPdfObject ()_fd .PdfObject {_bdfbf :=_beae ._acbf ;_fcffe ,_cggdd :=_bdfbf .PdfObject .(*_fd .PdfObjectDictionary );if !_cggdd {_ag .Log .Debug ("\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006fb\u006a\u0065\u0063\u0074");return _bdfbf ;
};if _beae .EmbeddedFiles !=nil {_fcffe .Set ("\u0045\u006d\u0062\u0065\u0064\u0064\u0065\u0064\u0046\u0069\u006c\u0065\u0073",_fd .MakeIndirectObject (_beae .EmbeddedFiles ));};return _bdfbf ;};func (_cfgdg *Image )getSuitableEncoder ()(_fd .StreamEncoder ,error ){var (_bagg ,_fbdfd =int (_cfgdg .Width ),int (_cfgdg .Height );
_cdfcf =make (map[string ]bool );_gbdg =true ;_beac =false ;_bcde =func ()*_fd .DCTEncoder {return _fd .NewDCTEncoder ()};_ebaed =func ()*_fd .DCTEncoder {_gbbef :=_fd .NewDCTEncoder ();_gbbef .BitsPerComponent =16;return _gbbef };);for _ceefe :=0;_ceefe < _fbdfd ;
_ceefe ++{for _acfbd :=0;_acfbd < _bagg ;_acfbd ++{_gabb ,_faddd :=_cfgdg .ColorAt (_acfbd ,_ceefe );if _faddd !=nil {return nil ,_faddd ;};_aaebd ,_efbad ,_ccfef ,_gbccc :=_gabb .RGBA ();if _gbdg &&(_aaebd !=_efbad ||_aaebd !=_ccfef ||_efbad !=_ccfef ){_gbdg =false ;
};if !_beac {switch _gabb .(type ){case _gc .NRGBA :_beac =_gbccc > 0;};};_cdfcf [_dc .Sprintf ("\u0025\u0064\u002c\u0025\u0064\u002c\u0025\u0064",_aaebd ,_efbad ,_ccfef )]=true ;if len (_cdfcf )> 2&&_beac {return _ebaed (),nil ;};};};if _beac ||len (_cfgdg ._gfffd )> 0{return _fd .NewFlateEncoder (),nil ;
};if len (_cdfcf )<=2{_fdeac :=_cfgdg .ConvertToBinary ();if _fdeac !=nil {return nil ,_fdeac ;};return _fd .NewJBIG2Encoder (),nil ;};if _gbdg {return _bcde (),nil ;};if _cfgdg .ColorComponents ==1{if _cfgdg .BitsPerComponent ==1{return _fd .NewJBIG2Encoder (),nil ;
}else if _cfgdg .BitsPerComponent ==8{_ebagf :=_fd .NewDCTEncoder ();_ebagf .ColorComponents =1;return _ebagf ,nil ;};}else if _cfgdg .ColorComponents ==3{if _cfgdg .BitsPerComponent ==8{return _bcde (),nil ;}else if _cfgdg .BitsPerComponent ==16{return _ebaed (),nil ;
};}else if _cfgdg .ColorComponents ==4{_cbfgf :=_ebaed ();_cbfgf .ColorComponents =4;return _cbfgf ,nil ;};return _ebaed (),nil ;};func (_gdgg *PdfReader )loadAction (_ffb _fd .PdfObject )(*PdfAction ,error ){if _cccg ,_agb :=_fd .GetIndirect (_ffb );_agb {_cfeb ,_cgcc :=_gdgg .newPdfActionFromIndirectObject (_cccg );
if _cgcc !=nil {return nil ,_cgcc ;};return _cfeb ,nil ;}else if !_fd .IsNullObject (_ffb ){return nil ,_ad .New ("\u0061\u0063\u0074\u0069\u006fn\u0020\u0073\u0068\u006f\u0075\u006c\u0064\u0020\u0070\u006f\u0069\u006e\u0074 \u0074\u006f\u0020\u0061\u006e\u0020\u0069\u006e\u0064\u0069\u0072\u0065\u0063\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074");
};return nil ,nil ;};func _egdga ()string {_feadd .Lock ();defer _feadd .Unlock ();return _cfgbe };func (_bfeg *PdfReader )newPdfAnnotationTrapNetFromDict (_gfed *_fd .PdfObjectDictionary )(*PdfAnnotationTrapNet ,error ){_faeg :=PdfAnnotationTrapNet {};
return &_faeg ,nil ;};var ImageHandling ImageHandler =DefaultImageHandler {};
// NewPdfActionSound returns a new "sound" action.
func NewPdfActionSound ()*PdfActionSound {_ba :=NewPdfAction ();_efc :=&PdfActionSound {};_efc .PdfAction =_ba ;_ba .SetContext (_efc );return _efc ;};
// ToPdfObject implements interface PdfModel.
func (_bdg *PdfAnnotationUnderline )ToPdfObject ()_fd .PdfObject {_bdg .PdfAnnotation .ToPdfObject ();_ebga :=_bdg ._aeb ;_cgf :=_ebga .PdfObject .(*_fd .PdfObjectDictionary );_bdg .PdfAnnotationMarkup .appendToPdfDictionary (_cgf );_cgf .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fd .MakeName ("\u0055n\u0064\u0065\u0072\u006c\u0069\u006ee"));
_cgf .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_bdg .QuadPoints );return _ebga ;};func _abbdf (_ccda string )(string ,error ){var _dgcg _bf .Buffer ;_dgcg .WriteString (_ccda );_cbcd :=make ([]byte ,8+16);_edgcdc :=_cd .Now ().UTC ().UnixNano ();
_ff .BigEndian .PutUint64 (_cbcd ,uint64 (_edgcdc ));_ ,_effdf :=_fc .Read (_cbcd [8:]);if _effdf !=nil {return "",_effdf ;};_dgcg .WriteString (_f .EncodeToString (_cbcd ));return _dgcg .String (),nil ;};
// NewDSS returns a new DSS dictionary.
func NewDSS ()*DSS {return &DSS {_bdcdg :_fd .MakeIndirectObject (_fd .MakeDict ()),VRI :map[string ]*VRI {}};};
// GetContainingPdfObject returns the containing object for the PdfField, i.e. an indirect object
// containing the field dictionary.
func (_bbdd *PdfField )GetContainingPdfObject ()_fd .PdfObject {return _bbdd ._dffeb };
// ToPdfObject returns the PDF representation of the colorspace.
func (_daaa *PdfColorspaceDeviceRGB )ToPdfObject ()_fd .PdfObject {return _fd .MakeName ("\u0044e\u0076\u0069\u0063\u0065\u0052\u0047B");};func _ggfe (_eaddg _fd .PdfObject )(*PdfPattern ,error ){_efbbc :=&PdfPattern {};var _eddfc *_fd .PdfObjectDictionary ;
if _egcgc ,_gabdb :=_fd .GetIndirect (_eaddg );_gabdb {_efbbc ._gcgba =_egcgc ;_ffae ,_ddef :=_egcgc .PdfObject .(*_fd .PdfObjectDictionary );if !_ddef {_ag .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",_egcgc .PdfObject );
return nil ,_fd .ErrTypeError ;};_eddfc =_ffae ;}else if _egcea ,_gcdcfe :=_fd .GetStream (_eaddg );_gcdcfe {_efbbc ._gcgba =_egcea ;_eddfc =_egcea .PdfObjectDictionary ;}else {_ag .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",_eaddg );
return nil ,_fd .ErrTypeError ;};_gagcd :=_eddfc .Get ("P\u0061\u0074\u0074\u0065\u0072\u006e\u0054\u0079\u0070\u0065");if _gagcd ==nil {_ag .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 ;};_dcfacb ,_dcfec :=_gagcd .(*_fd .PdfObjectInteger );if !_dcfec {_ag .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",_gagcd );
return nil ,_fd .ErrTypeError ;};if *_dcfacb !=1&&*_dcfacb !=2{_ag .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",*_dcfacb );return nil ,_fd .ErrRangeError ;
};_efbbc .PatternType =int64 (*_dcfacb );switch *_dcfacb {case 1:_eabff ,_bbeg :=_cgdbg (_eddfc );if _bbeg !=nil {return nil ,_bbeg ;};_eabff .PdfPattern =_efbbc ;_efbbc ._dccfd =_eabff ;return _efbbc ,nil ;case 2:_gbaccf ,_edcff :=_dcaab (_eddfc );if _edcff !=nil {return nil ,_edcff ;
};_gbaccf .PdfPattern =_efbbc ;_efbbc ._dccfd =_gbaccf ;return _efbbc ,nil ;};return nil ,_ad .New ("\u0075n\u006bn\u006f\u0077\u006e\u0020\u0070\u0061\u0074\u0074\u0065\u0072\u006e");};
// SetPdfTitle sets the Title attribute of the output PDF.
func SetPdfTitle (title string ){_feadd .Lock ();defer _feadd .Unlock ();_geacc =title };func _eedg (_fecf *XObjectForm )(*PdfRectangle ,bool ,error ){if _eedf ,_dcfac :=_fecf .BBox .(*_fd .PdfObjectArray );_dcfac {_dedab ,_bcaac :=NewPdfRectangle (*_eedf );
if _bcaac !=nil {return nil ,false ,_bcaac ;};if _gaee ,_bebb :=_fecf .Matrix .(*_fd .PdfObjectArray );_bebb {_edecb ,_ggdbf :=_gaee .ToFloat64Array ();if _ggdbf !=nil {return nil ,false ,_ggdbf ;};_gfaf :=_gdd .IdentityMatrix ();if len (_edecb )==6{_gfaf =_gdd .NewMatrix (_edecb [0],_edecb [1],_edecb [2],_edecb [3],_edecb [4],_edecb [5]);
};_dedab .Transform (_gfaf );return _dedab ,true ,nil ;};return _dedab ,false ,nil ;};return nil ,false ,_ad .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");
};
// Set sets the colorspace corresponding to key. Add to Names if not set.
func (_aefd *PdfPageResourcesColorspaces )Set (key _fd .PdfObjectName ,val PdfColorspace ){if _ ,_gggge :=_aefd .Colorspaces [string (key )];!_gggge {_aefd .Names =append (_aefd .Names ,string (key ));};_aefd .Colorspaces [string (key )]=val ;};func _gadd (_ffad *_fd .PdfObjectDictionary ,_gbcaa *fontCommon )(*pdfCIDFontType2 ,error ){if _gbcaa ._eded !="\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032"{_ag .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",_gbcaa );
return nil ,_fd .ErrRangeError ;};_cffd :=_bcbga (_gbcaa );_eeae ,_aadd :=_fd .GetDict (_ffad .Get ("\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f"));if !_aadd {_ag .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",_gbcaa );
return nil ,ErrRequiredAttributeMissing ;};_cffd .CIDSystemInfo =_eeae ;_cffd .DW =_ffad .Get ("\u0044\u0057");_cffd .W =_ffad .Get ("\u0057");_cffd .DW2 =_ffad .Get ("\u0044\u0057\u0032");_cffd .W2 =_ffad .Get ("\u0057\u0032");_cffd .CIDToGIDMap =_ffad .Get ("C\u0049\u0044\u0054\u006f\u0047\u0049\u0044\u004d\u0061\u0070");
_cffd ._ebbc =1000.0;if _dbgcg ,_dbabf :=_fd .GetNumberAsFloat (_cffd .DW );_dbabf ==nil {_cffd ._ebbc =_dbgcg ;};_abfac ,_gebgeb :=_gecgg (_cffd .W );if _gebgeb !=nil {return nil ,_gebgeb ;};if _abfac ==nil {_abfac =map[_ee .CharCode ]float64 {};};_cffd ._defb =_abfac ;
return _cffd ,nil ;};
// GetNumComponents returns the number of color components of the colorspace device.
// Returns 3 for an RGB device.
func (_fccgb *PdfColorspaceDeviceRGB )GetNumComponents ()int {return 3};
// DecodeArray returns the range of color component values in DeviceCMYK colorspace.
func (_ebeb *PdfColorspaceDeviceCMYK )DecodeArray ()[]float64 {return []float64 {0.0,1.0,0.0,1.0,0.0,1.0,0.0,1.0};};
// NewPdfColorCalGray returns a new CalGray color.
func NewPdfColorCalGray (grayVal float64 )*PdfColorCalGray {_bbdg :=PdfColorCalGray (grayVal );return &_bbdg ;};func (_dfeg *PdfReader )newPdfAnnotationTextFromDict (_egb *_fd .PdfObjectDictionary )(*PdfAnnotationText ,error ){_dbccd :=PdfAnnotationText {};
_ffab ,_bdc :=_dfeg .newPdfAnnotationMarkupFromDict (_egb );if _bdc !=nil {return nil ,_bdc ;};_dbccd .PdfAnnotationMarkup =_ffab ;_dbccd .Open =_egb .Get ("\u004f\u0070\u0065\u006e");_dbccd .Name =_egb .Get ("\u004e\u0061\u006d\u0065");_dbccd .State =_egb .Get ("\u0053\u0074\u0061t\u0065");
_dbccd .StateModel =_egb .Get ("\u0053\u0074\u0061\u0074\u0065\u004d\u006f\u0064\u0065\u006c");return &_dbccd ,nil ;};
// SetColorspaceByName adds the provided colorspace to the page resources.
func (_gacef *PdfPageResources )SetColorspaceByName (keyName _fd .PdfObjectName ,cs PdfColorspace )error {_babad ,_cbfcc :=_gacef .GetColorspaces ();if _cbfcc !=nil {_ag .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",_cbfcc );
return _cbfcc ;};if _babad ==nil {_babad =NewPdfPageResourcesColorspaces ();_gacef .SetColorSpace (_babad );};_babad .Set (keyName ,cs );return nil ;};
// 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 (_dcdgd *PdfReader )FlattenFields (allannots bool ,appgen FieldAppearanceGenerator )error {return _dcdgd .flattenFieldsWithOpts (allannots ,appgen ,nil );};
// NewPdfFilespecFromObj creates and returns a new PdfFilespec object.
func NewPdfFilespecFromObj (obj _fd .PdfObject )(*PdfFilespec ,error ){_abae :=&PdfFilespec {};var _geec *_fd .PdfObjectDictionary ;if _ecbf ,_bddb :=_fd .GetIndirect (obj );_bddb {_abae ._cbfc =_ecbf ;_afga ,_cade :=_fd .GetDict (_ecbf .PdfObject );if !_cade {_ag .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 ,_fd .ErrTypeError ;};_geec =_afga ;}else if _aeff ,_abdf :=_fd .GetDict (obj );_abdf {_abae ._cbfc =_aeff ;_geec =_aeff ;}else {_ag .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 ,_fd .ErrTypeError ;};if _geec ==nil {_ag .Log .Debug ("\u0044i\u0063t\u0069\u006f\u006e\u0061\u0072y\u0020\u006di\u0073\u0073\u0069\u006e\u0067");return nil ,_ad .New ("\u0064\u0069\u0063t\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};
if _cgfad :=_geec .Get ("\u0054\u0079\u0070\u0065");_cgfad !=nil {_aafed ,_dccga :=_cgfad .(*_fd .PdfObjectName );if !_dccga {_ag .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",_cgfad );
}else {if *_aafed !="\u0046\u0069\u006c\u0065\u0073\u0070\u0065\u0063"{_ag .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",*_aafed );
};};};if _ceae :=_geec .Get ("\u0046\u0053");_ceae !=nil {_abae .FS =_ceae ;};if _fbaef :=_geec .Get ("\u0046");_fbaef !=nil {_abae .F =_fbaef ;};if _fbgfd :=_geec .Get ("\u0055\u0046");_fbgfd !=nil {_abae .UF =_fbgfd ;};if _becd :=_geec .Get ("\u0044\u004f\u0053");
_becd !=nil {_abae .DOS =_becd ;};if _bbgbd :=_geec .Get ("\u004d\u0061\u0063");_bbgbd !=nil {_abae .Mac =_bbgbd ;};if _ebfe :=_geec .Get ("\u0055\u006e\u0069\u0078");_ebfe !=nil {_abae .Unix =_ebfe ;};if _feff :=_geec .Get ("\u0049\u0044");_feff !=nil {_abae .ID =_feff ;
};if _ebec :=_geec .Get ("\u0056");_ebec !=nil {_abae .V =_ebec ;};if _gdbed :=_geec .Get ("\u0045\u0046");_gdbed !=nil {_abae .EF =_gdbed ;};if _daed :=_geec .Get ("\u0052\u0046");_daed !=nil {_abae .RF =_daed ;};if _cbeee :=_geec .Get ("\u0044\u0065\u0073\u0063");
_cbeee !=nil {_abae .Desc =_cbeee ;};if _gega :=_geec .Get ("\u0043\u0049");_gega !=nil {_abae .CI =_gega ;};if _dfafb :=_geec .Get ("\u0041\u0046\u0052\u0065\u006c\u0061\u0074\u0069\u006fn\u0073\u0068\u0069\u0070");_dfafb !=nil {_abae .AFRelationship =_dfafb ;
};return _abae ,nil ;};
// ToPdfObject implements interface PdfModel.
func (_aeae *PdfAnnotationInk )ToPdfObject ()_fd .PdfObject {_aeae .PdfAnnotation .ToPdfObject ();_ffgf :=_aeae ._aeb ;_ffgg :=_ffgf .PdfObject .(*_fd .PdfObjectDictionary );_aeae .PdfAnnotationMarkup .appendToPdfDictionary (_ffgg );_ffgg .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fd .MakeName ("\u0049\u006e\u006b"));
_ffgg .SetIfNotNil ("\u0049n\u006b\u004c\u0069\u0073\u0074",_aeae .InkList );_ffgg .SetIfNotNil ("\u0042\u0053",_aeae .BS );return _ffgf ;};
// ToGray returns a PdfColorDeviceGray color based on the current RGB color.
func (_gagfbb *PdfColorDeviceRGB )ToGray ()*PdfColorDeviceGray {_fcfb :=0.3*_gagfbb .R ()+0.59*_gagfbb .G ()+0.11*_gagfbb .B ();_fcfb =_af .Min (_af .Max (_fcfb ,0.0),1.0);return NewPdfColorDeviceGray (_fcfb );};
// 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 ;_fbbec *_fd .PdfObjectDictionary ;};
// 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 (_efafb *PdfColorspaceCalGray )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=1{return nil ,_ad .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_cdec :=vals [0];if _cdec < 0.0||_cdec > 1.0{_ag .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_cdec );
return nil ,ErrColorOutOfRange ;};_gdfeb :=NewPdfColorCalGray (_cdec );return _gdfeb ,nil ;};func (_bedgf *PdfWriter )addObject (_dbcbgd _fd .PdfObject )bool {_ecgd :=_bedgf .hasObject (_dbcbgd );if !_ecgd {_ggbcf :=_fd .ResolveReferencesDeep (_dbcbgd ,_bedgf ._bagca );
if _ggbcf !=nil {_ag .Log .Debug ("E\u0052R\u004f\u0052\u003a\u0020\u0025\u0076\u0020\u002d \u0073\u006b\u0069\u0070pi\u006e\u0067",_ggbcf );};_bedgf ._agfbf =append (_bedgf ._agfbf ,_dbcbgd );_bedgf ._agfaff [_dbcbgd ]=struct{}{};return true ;};return false ;
};func (_ccad *DSS )generateHashMap (_gabd []*_fd .PdfObjectStream )(map[string ]*_fd .PdfObjectStream ,error ){_fabaf :=map[string ]*_fd .PdfObjectStream {};for _ ,_gaaf :=range _gabd {_dgbc ,_agdaf :=_fd .DecodeStream (_gaaf );if _agdaf !=nil {return nil ,_agdaf ;
};_agfa ,_agdaf :=_eagg (_dgbc );if _agdaf !=nil {return nil ,_agdaf ;};_fabaf [string (_agfa )]=_gaaf ;};return _fabaf ,nil ;};
// ColorToRGB converts gray -> rgb for a single color component.
func (_fef *PdfColorspaceDeviceGray )ColorToRGB (color PdfColor )(PdfColor ,error ){_fbgfc ,_egfa :=color .(*PdfColorDeviceGray );if !_egfa {_ag .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 ,_ad .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};return NewPdfColorDeviceRGB (float64 (*_fbgfc ),float64 (*_fbgfc ),float64 (*_fbgfc )),nil ;};
// NewPdfField returns an initialized PdfField.
func NewPdfField ()*PdfField {return &PdfField {_dffeb :_fd .MakeIndirectObject (_fd .MakeDict ())}};func (_cgced *PdfReader )loadDSS ()(*DSS ,error ){if _cgced ._faaf .GetCrypter ()!=nil &&!_cgced ._faaf .IsAuthenticated (){return nil ,_dc .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");
};_dbfce :=_cgced ._gabca .Get ("\u0044\u0053\u0053");if _dbfce ==nil {return nil ,nil ;};_egdca ,_ :=_fd .GetIndirect (_dbfce );_dbfce =_fd .TraceToDirectObject (_dbfce );switch _egafg :=_dbfce .(type ){case *_fd .PdfObjectNull :return nil ,nil ;case *_fd .PdfObjectDictionary :return _ggdg (_egdca ,_egafg );
};return nil ,_dc .Errorf ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0044\u0053\u0053 \u0065\u006e\u0074\u0072y \u0025\u0054",_dbfce );};
// ToInteger convert to an integer format.
func (_ecfda *PdfColorDeviceRGB )ToInteger (bits int )[3]uint32 {_cebae :=_af .Pow (2,float64 (bits ))-1;return [3]uint32 {uint32 (_cebae *_ecfda .R ()),uint32 (_cebae *_ecfda .G ()),uint32 (_cebae *_ecfda .B ())};};func (_fffce *PdfReader )newPdfAcroFormFromDict (_cgdb *_fd .PdfIndirectObject ,_ebcg *_fd .PdfObjectDictionary )(*PdfAcroForm ,error ){_gggc :=NewPdfAcroForm ();
if _cgdb !=nil {_gggc ._fefdb =_cgdb ;_cgdb .PdfObject =_fd .MakeDict ();};if _aebga :=_ebcg .Get ("\u0046\u0069\u0065\u006c\u0064\u0073");_aebga !=nil &&!_fd .IsNullObject (_aebga ){_geebd ,_bfcg :=_fd .GetArray (_aebga );if !_bfcg {return nil ,_dc .Errorf ("\u0066i\u0065\u006c\u0064\u0073\u0020\u006e\u006f\u0074\u0020\u0061\u006e \u0061\u0072\u0072\u0061\u0079\u0020\u0028\u0025\u0054\u0029",_aebga );
};var _ceea []*PdfField ;for _ ,_dgfbd :=range _geebd .Elements (){_cgdag ,_gcddf :=_fd .GetIndirect (_dgfbd );if !_gcddf {if _ ,_ccae :=_dgfbd .(*_fd .PdfObjectNull );_ccae {_ag .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 ;};_ag .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",_dgfbd );
return nil ,_dc .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");};_gdagf ,_dceb :=_fffce .newPdfFieldFromIndirectObject (_cgdag ,nil );
if _dceb !=nil {return nil ,_dceb ;};_ag .Log .Trace ("\u0041\u0063\u0072\u006fFo\u0072\u006d\u0020\u0046\u0069\u0065\u006c\u0064\u003a\u0020\u0025\u002b\u0076",*_gdagf );_ceea =append (_ceea ,_gdagf );};_gggc .Fields =&_ceea ;};if _cafef :=_ebcg .Get ("\u004ee\u0065d\u0041\u0070\u0070\u0065\u0061\u0072\u0061\u006e\u0063\u0065\u0073");
_cafef !=nil {_cecbd ,_aabaa :=_fd .GetBool (_cafef );if _aabaa {_gggc .NeedAppearances =_cecbd ;}else {_ag .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",_cafef );
};};if _gagd :=_ebcg .Get ("\u0053\u0069\u0067\u0046\u006c\u0061\u0067\u0073");_gagd !=nil {_cfcba ,_acbbd :=_fd .GetInt (_gagd );if _acbbd {_gggc .SigFlags =_cfcba ;}else {_ag .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",_gagd );
};};if _cegg :=_ebcg .Get ("\u0043\u004f");_cegg !=nil {_dbfca ,_ecgce :=_fd .GetArray (_cegg );if _ecgce {_gggc .CO =_dbfca ;}else {_ag .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",_cegg );
};};if _fbaf :=_ebcg .Get ("\u0044\u0052");_fbaf !=nil {if _cadda ,_gffe :=_fd .GetDict (_fbaf );_gffe {_cebfb ,_geegb :=NewPdfPageResourcesFromDict (_cadda );if _geegb !=nil {_ag .Log .Error ("\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0044R\u003a\u0020\u0025\u0076",_geegb );
return nil ,_geegb ;};_gggc .DR =_cebfb ;}else {_ag .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",_fbaf );};};if _afgad :=_ebcg .Get ("\u0044\u0041");
_afgad !=nil {_fbbdf ,_aacab :=_fd .GetString (_afgad );if _aacab {_gggc .DA =_fbbdf ;}else {_ag .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",_afgad );
};};if _dfag :=_ebcg .Get ("\u0051");_dfag !=nil {_gcddg ,_daada :=_fd .GetInt (_dfag );if _daada {_gggc .Q =_gcddg ;}else {_ag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a \u0051\u0020\u0069\u006e\u0076a\u006ci\u0064 \u0028\u0067\u006f\u0074\u0020\u0025\u0054)",_dfag );
};};if _baafc :=_ebcg .Get ("\u0058\u0046\u0041");_baafc !=nil {_gggc .XFA =_baafc ;};if _ededc :=_ebcg .Get ("\u0041\u0044\u0042\u0045\u005f\u0045\u0063\u0068\u006f\u0053\u0069\u0067\u006e");_ededc !=nil {_gggc .ADBEEchoSign =_ededc ;};_gggc .ToPdfObject ();
return _gggc ,nil ;};func (_ffefc *PdfWriter )updateObjectNumbers (){_bbecb :=_ffefc .ObjNumOffset ;_eaedb :=0;for _ ,_dbcba :=range _ffefc ._agfbf {_cgaef :=int64 (_eaedb +1+_bbecb );_gfecf :=true ;if _ffefc ._fbgg {if _fefbg ,_deafd :=_ffefc ._ddgad [_dbcba ];
_deafd {_cgaef =_fefbg ;_gfecf =false ;};};switch _gbbgc :=_dbcba .(type ){case *_fd .PdfIndirectObject :_gbbgc .ObjectNumber =_cgaef ;_gbbgc .GenerationNumber =0;case *_fd .PdfObjectStream :_gbbgc .ObjectNumber =_cgaef ;_gbbgc .GenerationNumber =0;case *_fd .PdfObjectStreams :_gbbgc .ObjectNumber =_cgaef ;
_gbbgc .GenerationNumber =0;default:_ag .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",_gbbgc );continue ;
};if _gfecf {_eaedb ++;};};_dfabd :=func (_eccb _fd .PdfObject )int64 {switch _fcfcb :=_eccb .(type ){case *_fd .PdfIndirectObject :return _fcfcb .ObjectNumber ;case *_fd .PdfObjectStream :return _fcfcb .ObjectNumber ;case *_fd .PdfObjectStreams :return _fcfcb .ObjectNumber ;
};return 0;};_da .SliceStable (_ffefc ._agfbf ,func (_ecgbfe ,_dfbbc int )bool {return _dfabd (_ffefc ._agfbf [_ecgbfe ])< _dfabd (_ffefc ._agfbf [_dfbbc ])});};
// DecodeArray returns the range of color component values in the ICCBased colorspace.
func (_edae *PdfColorspaceICCBased )DecodeArray ()[]float64 {return _edae .Range };
// NewPdfActionLaunch returns a new "launch" action.
func NewPdfActionLaunch ()*PdfActionLaunch {_ffc :=NewPdfAction ();_be :=&PdfActionLaunch {};_be .PdfAction =_ffc ;_ffc .SetContext (_be );return _be ;};
// BorderEffect represents a border effect (Table 167 p. 395).
type BorderEffect int ;
// GetCustomInfo returns a custom info value for the specified name.
func (_eeaaf *PdfInfo )GetCustomInfo (name string )*_fd .PdfObjectString {var _bgdd *_fd .PdfObjectString ;if _eeaaf ._defeg ==nil {return _bgdd ;};if _fedf ,_aafe :=_eeaaf ._defeg .Get (*_fd .MakeName (name )).(*_fd .PdfObjectString );_aafe {_bgdd =_fedf ;
};return _bgdd ;};func _eadc (_deba *_fd .PdfObjectDictionary )(*PdfFieldButton ,error ){_cbda :=&PdfFieldButton {};_cbda .PdfField =NewPdfField ();_cbda .PdfField .SetContext (_cbda );_cbda .Opt ,_ =_fd .GetArray (_deba .Get ("\u004f\u0070\u0074"));_dgbg :=NewPdfAnnotationWidget ();
_dgbg .A ,_ =_fd .GetDict (_deba .Get ("\u0041"));_dgbg .AP ,_ =_fd .GetDict (_deba .Get ("\u0041\u0050"));_dgbg .SetContext (_cbda );_cbda .PdfField .Annotations =append (_cbda .PdfField .Annotations ,_dgbg );return _cbda ,nil ;};
// NewPdfSignatureReferenceDocMDP returns PdfSignatureReference for the transformParams.
func NewPdfSignatureReferenceDocMDP (transformParams *PdfTransformParamsDocMDP )*PdfSignatureReference {return &PdfSignatureReference {Type :_fd .MakeName ("\u0053\u0069\u0067\u0052\u0065\u0066"),TransformMethod :_fd .MakeName ("\u0044\u006f\u0063\u004d\u0044\u0050"),TransformParams :transformParams .ToPdfObject ()};
};type pdfFont interface{_cf .Font ;
// ToPdfObject returns a PDF representation of the font and implements interface Model.
ToPdfObject ()_fd .PdfObject ;getFontDescriptor ()*PdfFontDescriptor ;baseFields ()*fontCommon ;};
// GetNumComponents returns the number of color components (1 for grayscale).
func (_ccee *PdfColorDeviceGray )GetNumComponents ()int {return 1};
// NewPdfFieldSignature returns an initialized signature field.
func NewPdfFieldSignature (signature *PdfSignature )*PdfFieldSignature {_debba :=&PdfFieldSignature {};_debba .PdfField =NewPdfField ();_debba .PdfField .SetContext (_debba );_debba .PdfAnnotationWidget =NewPdfAnnotationWidget ();_debba .PdfAnnotationWidget .SetContext (_debba );
_debba .PdfAnnotationWidget ._aeb =_debba .PdfField ._dffeb ;_debba .T =_fd .MakeString ("");_debba .F =_fd .MakeInteger (132);_debba .V =signature ;return _debba ;};
// NewPdfColorspaceFromPdfObject loads a PdfColorspace from a PdfObject. Returns an error if there is
// a failure in loading.
func NewPdfColorspaceFromPdfObject (obj _fd .PdfObject )(PdfColorspace ,error ){if obj ==nil {return nil ,nil ;};var _edaa *_fd .PdfIndirectObject ;var _ffge *_fd .PdfObjectName ;var _fffa *_fd .PdfObjectArray ;if _ggfg ,_degd :=obj .(*_fd .PdfIndirectObject );
_degd {_edaa =_ggfg ;};obj =_fd .TraceToDirectObject (obj );switch _edba :=obj .(type ){case *_fd .PdfObjectArray :_fffa =_edba ;case *_fd .PdfObjectName :_ffge =_edba ;};if _ffge !=nil {switch *_ffge {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:_ag .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",*_ffge );return nil ,_fbeg ;};};if _fffa !=nil &&_fffa .Len ()> 0{var _dfgg _fd .PdfObject =_edaa ;
if _edaa ==nil {_dfgg =_fffa ;};if _dada ,_bcda :=_fd .GetName (_fffa .Get (0));_bcda {switch _dada .String (){case "\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079":if _fffa .Len ()==1{return NewPdfColorspaceDeviceGray (),nil ;};case "\u0044e\u0076\u0069\u0063\u0065\u0052\u0047B":if _fffa .Len ()==1{return NewPdfColorspaceDeviceRGB (),nil ;
};case "\u0044\u0065\u0076\u0069\u0063\u0065\u0043\u004d\u0059\u004b":if _fffa .Len ()==1{return NewPdfColorspaceDeviceCMYK (),nil ;};case "\u0043a\u006c\u0047\u0072\u0061\u0079":return _ecbe (_dfgg );case "\u0043\u0061\u006c\u0052\u0047\u0042":return _ebdg (_dfgg );
case "\u004c\u0061\u0062":return _geaf (_dfgg );case "\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064":return _bbdf (_dfgg );case "\u0050a\u0074\u0074\u0065\u0072\u006e":return _acea (_dfgg );case "\u0049n\u0064\u0065\u0078\u0065\u0064":return _dbeea (_dfgg );
case "\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e":return _fafdc (_dfgg );case "\u0044e\u0076\u0069\u0063\u0065\u004e":return _ggacg (_dfgg );default:_ag .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",*_dada );
};};};_ag .Log .Debug ("\u0050\u0044\u0046\u0020\u0046i\u006c\u0065\u0020\u0045\u0072\u0072\u006f\u0072\u003a\u0020\u0043\u006f\u006co\u0072\u0073\u0070\u0061\u0063\u0065\u0020\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072\u003a\u0020\u0025\u0073",obj .String ());
return nil ,ErrTypeCheck ;};func _gfac (_gfba _fd .PdfObject )*Names {_eegec :=_dfgfd ();_gbgbc :=_fd .TraceToDirectObject (_gfba ).(*_fd .PdfObjectDictionary );if _bdbab :=_gbgbc .Get ("\u0044\u0065\u0073t\u0073");_bdbab !=nil {_eegec .Dests =_fd .TraceToDirectObject (_bdbab ).(*_fd .PdfObjectDictionary );
};if _bgaf :=_gbgbc .Get ("\u0041\u0050");_bgaf !=nil {_eegec .AP =_fd .TraceToDirectObject (_bgaf ).(*_fd .PdfObjectDictionary );};if _bbdcg :=_gbgbc .Get ("\u004a\u0061\u0076\u0061\u0053\u0063\u0072\u0069\u0070\u0074");_bbdcg !=nil {_eegec .JavaScript =_fd .TraceToDirectObject (_bbdcg ).(*_fd .PdfObjectDictionary );
};if _egea :=_gbgbc .Get ("\u0050\u0061\u0067e\u0073");_egea !=nil {_eegec .Pages =_fd .TraceToDirectObject (_egea ).(*_fd .PdfObjectDictionary );};if _gffdd :=_gbgbc .Get ("\u0054e\u006d\u0070\u006c\u0061\u0074\u0065s");_gffdd !=nil {_eegec .Templates =_fd .TraceToDirectObject (_gffdd ).(*_fd .PdfObjectDictionary );
};if _ffcaa :=_gbgbc .Get ("\u0049\u0044\u0053");_ffcaa !=nil {_eegec .IDS =_fd .TraceToDirectObject (_ffcaa ).(*_fd .PdfObjectDictionary );};if _acfc :=_gbgbc .Get ("\u0055\u0052\u004c\u0053");_acfc !=nil {_eegec .URLS =_fd .TraceToDirectObject (_acfc ).(*_fd .PdfObjectDictionary );
};if _fcccb :=_gbgbc .Get ("\u0045\u006d\u0062\u0065\u0064\u0064\u0065\u0064\u0046\u0069\u006c\u0065\u0073");_fcccb !=nil {_eegec .EmbeddedFiles =_fd .TraceToDirectObject (_fcccb ).(*_fd .PdfObjectDictionary );};if _baad :=_gbgbc .Get ("\u0041\u006c\u0074\u0065rn\u0061\u0074\u0065\u0050\u0072\u0065\u0073\u0065\u006e\u0074\u0061\u0074\u0069\u006fn\u0073");
_baad !=nil {_eegec .AlternatePresentations =_fd .TraceToDirectObject (_baad ).(*_fd .PdfObjectDictionary );};if _cdgc :=_gbgbc .Get ("\u0052\u0065\u006e\u0064\u0069\u0074\u0069\u006f\u006e\u0073");_cdgc !=nil {_eegec .Renditions =_fd .TraceToDirectObject (_cdgc ).(*_fd .PdfObjectDictionary );
};return _eegec ;};
// ColorFromFloats returns a new PdfColor based on the input slice of color
// components. The slice should contain a single element.
func (_dgfd *PdfColorspaceSpecialIndexed )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=1{return nil ,_ad .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};N :=_dgfd .Base .GetNumComponents ();_gedff :=int (vals [0])*N ;
if _gedff < 0||(_gedff +N -1)>=len (_dgfd ._fdac ){_ag .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_gedff );return nil ,ErrColorOutOfRange ;};_agda :=_dgfd ._fdac [_gedff :_gedff +N ];
var _abce []float64 ;for _ ,_edca :=range _agda {_abce =append (_abce ,float64 (_edca )/255.0);};_geaa ,_dece :=_dgfd .Base .ColorFromFloats (_abce );if _dece !=nil {return nil ,_dece ;};return _geaa ,nil ;};
// GetContainingPdfObject implements interface PdfModel.
func (_acbb *PdfAnnotation )GetContainingPdfObject ()_fd .PdfObject {return _acbb ._aeb };
// DefaultImageHandler is the default implementation of the ImageHandler using the standard go library.
type DefaultImageHandler struct{};
// PdfOutlineItem represents an outline item dictionary (Table 153 - pp. 376 - 377).
type PdfOutlineItem struct{PdfOutlineTreeNode ;Title *_fd .PdfObjectString ;Parent *PdfOutlineTreeNode ;Prev *PdfOutlineTreeNode ;Next *PdfOutlineTreeNode ;Count *int64 ;Dest _fd .PdfObject ;A _fd .PdfObject ;SE _fd .PdfObject ;C _fd .PdfObject ;F _fd .PdfObject ;
_ecga *_fd .PdfIndirectObject ;};
// NewPdfOutline returns an initialized PdfOutline.
func NewPdfOutline ()*PdfOutline {_aabcg :=&PdfOutline {_fcef :_fd .MakeIndirectObject (_fd .MakeDict ())};_aabcg ._gcgcg =_aabcg ;return _aabcg ;};
// NewPdfAnnotationProjection returns a new projection annotation.
func NewPdfAnnotationProjection ()*PdfAnnotationProjection {_ffdd :=NewPdfAnnotation ();_bfe :=&PdfAnnotationProjection {};_bfe .PdfAnnotation =_ffdd ;_bfe .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_ffdd .SetContext (_bfe );return _bfe ;};
// NewPdfTransformParamsDocMDP create a PdfTransformParamsDocMDP with the specific permissions.
func NewPdfTransformParamsDocMDP (permission _gfg .DocMDPPermission )*PdfTransformParamsDocMDP {return &PdfTransformParamsDocMDP {Type :_fd .MakeName ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u0050\u0061\u0072\u0061\u006d\u0073"),P :_fd .MakeInteger (int64 (permission )),V :_fd .MakeName ("\u0031\u002e\u0032")};
};
// NewPdfAnnotationLine returns a new line annotation.
func NewPdfAnnotationLine ()*PdfAnnotationLine {_gba :=NewPdfAnnotation ();_gfgf :=&PdfAnnotationLine {};_gfgf .PdfAnnotation =_gba ;_gfgf .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_gba .SetContext (_gfgf );return _gfgf ;};
// NewOutlineBookmark returns an initialized PdfOutlineItem for a given bookmark title and page.
func NewOutlineBookmark (title string ,page *_fd .PdfIndirectObject )*PdfOutlineItem {_dabde :=PdfOutlineItem {};_dabde ._gcgcg =&_dabde ;_dabde .Title =_fd .MakeString (title );_bdad :=_fd .MakeArray ();_bdad .Append (page );_bdad .Append (_fd .MakeName ("\u0046\u0069\u0074"));
_dabde .Dest =_bdad ;return &_dabde ;};
// IsTiling specifies if the pattern is a tiling pattern.
func (_cdad *PdfPattern )IsTiling ()bool {return _cdad .PatternType ==1};
// Val returns the color value.
func (_bccg *PdfColorDeviceGray )Val ()float64 {return float64 (*_bccg )};
// ToPdfObject implements interface PdfModel.
func (_dgc *PdfBorderStyle )ToPdfObject ()_fd .PdfObject {_bdabe :=_fd .MakeDict ();if _dgc ._cdd !=nil {if _eegd ,_adbdc :=_dgc ._cdd .(*_fd .PdfIndirectObject );_adbdc {_eegd .PdfObject =_bdabe ;};};_bdabe .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fd .MakeName ("\u0042\u006f\u0072\u0064\u0065\u0072"));
if _dgc .W !=nil {_bdabe .Set ("\u0057",_fd .MakeFloat (*_dgc .W ));};if _dgc .S !=nil {_bdabe .Set ("\u0053",_fd .MakeName (_dgc .S .GetPdfName ()));};if _dgc .D !=nil {_bdabe .Set ("\u0044",_fd .MakeArrayFromIntegers (*_dgc .D ));};if _dgc ._cdd !=nil {return _dgc ._cdd ;
};return _bdabe ;};func _ebdg (_fbfdf _fd .PdfObject )(*PdfColorspaceCalRGB ,error ){_edab :=NewPdfColorspaceCalRGB ();if _abdc ,_aeab :=_fbfdf .(*_fd .PdfIndirectObject );_aeab {_edab ._gadad =_abdc ;};_fbfdf =_fd .TraceToDirectObject (_fbfdf );_dagee ,_aaegc :=_fbfdf .(*_fd .PdfObjectArray );
if !_aaegc {return nil ,_dc .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _dagee .Len ()!=2{return nil ,_dc .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0043\u0061\u006c\u0052G\u0042 \u0063o\u006c\u006f\u0072\u0073\u0070\u0061\u0063e");
};_fbfdf =_fd .TraceToDirectObject (_dagee .Get (0));_dddg ,_aaegc :=_fbfdf .(*_fd .PdfObjectName );if !_aaegc {return nil ,_dc .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 *_dddg !="\u0043\u0061\u006c\u0052\u0047\u0042"{return nil ,_dc .Errorf ("\u006e\u006f\u0074 a\u0020\u0043\u0061\u006c\u0052\u0047\u0042\u0020\u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063\u0065");};_fbfdf =_fd .TraceToDirectObject (_dagee .Get (1));
_ddad ,_aaegc :=_fbfdf .(*_fd .PdfObjectDictionary );if !_aaegc {return nil ,_dc .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");
};_fbfdf =_ddad .Get ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074");_fbfdf =_fd .TraceToDirectObject (_fbfdf );_cbad ,_aaegc :=_fbfdf .(*_fd .PdfObjectArray );if !_aaegc {return nil ,_dc .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 _cbad .Len ()!=3{return nil ,_dc .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");};_efdfa ,_facbe :=_cbad .GetAsFloat64Slice ();
if _facbe !=nil {return nil ,_facbe ;};_edab .WhitePoint =_efdfa ;_fbfdf =_ddad .Get ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074");if _fbfdf !=nil {_fbfdf =_fd .TraceToDirectObject (_fbfdf );_fgbd ,_gaab :=_fbfdf .(*_fd .PdfObjectArray );
if !_gaab {return nil ,_dc .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 _fgbd .Len ()!=3{return nil ,_dc .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");
};_gfdd ,_gced :=_fgbd .GetAsFloat64Slice ();if _gced !=nil {return nil ,_gced ;};_edab .BlackPoint =_gfdd ;};_fbfdf =_ddad .Get ("\u0047\u0061\u006dm\u0061");if _fbfdf !=nil {_fbfdf =_fd .TraceToDirectObject (_fbfdf );_gcdcf ,_affad :=_fbfdf .(*_fd .PdfObjectArray );
if !_affad {return nil ,_dc .Errorf ("C\u0061\u006c\u0052\u0047B:\u0020I\u006e\u0076\u0061\u006c\u0069d\u0020\u0047\u0061\u006d\u006d\u0061");};if _gcdcf .Len ()!=3{return nil ,_dc .Errorf ("C\u0061\u006c\u0052\u0047\u0042\u003a \u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0047a\u006d\u006d\u0061 \u0061r\u0072\u0061\u0079");
};_gfgfe ,_eccf :=_gcdcf .GetAsFloat64Slice ();if _eccf !=nil {return nil ,_eccf ;};_edab .Gamma =_gfgfe ;};_fbfdf =_ddad .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");if _fbfdf !=nil {_fbfdf =_fd .TraceToDirectObject (_fbfdf );_fbe ,_dbcb :=_fbfdf .(*_fd .PdfObjectArray );
if !_dbcb {return nil ,_dc .Errorf ("\u0043\u0061\u006c\u0052GB\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u004d\u0061\u0074\u0072i\u0078");};if _fbe .Len ()!=9{_ag .Log .Error ("\u004d\u0061t\u0072\u0069\u0078 \u0061\u0072\u0072\u0061\u0079\u003a\u0020\u0025\u0073",_fbe .String ());
return nil ,_dc .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");};_gcedc ,_dceed :=_fbe .GetAsFloat64Slice ();if _dceed !=nil {return nil ,_dceed ;
};_edab .Matrix =_gcedc ;};return _edab ,nil ;};func (_cdf *PdfReader )newPdfActionFromIndirectObject (_gafe *_fd .PdfIndirectObject )(*PdfAction ,error ){_gcf ,_eg :=_gafe .PdfObject .(*_fd .PdfObjectDictionary );if !_eg {return nil ,_dc .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 :=_cdf ._fbabb .GetModelFromPrimitive (_gcf );model !=nil {_beb ,_dead :=model .(*PdfAction );if !_dead {return nil ,_dc .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 _beb ,nil ;};_bga :=&PdfAction {};_bga ._bfb =_gafe ;_cdf ._fbabb .Register (_gcf ,_bga );if _afb :=_gcf .Get ("\u0054\u0079\u0070\u0065");_afb !=nil {_fce ,_gge :=_afb .(*_fd .PdfObjectName );if !_gge {_ag .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",_afb );
}else {if *_fce !="\u0041\u0063\u0074\u0069\u006f\u006e"{_ag .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",*_fce );
};_bga .Type =_fce ;};};if _ce :=_gcf .Get ("\u004e\u0065\u0078\u0074");_ce !=nil {_bga .Next =_ce ;};if _gdce :=_gcf .Get ("\u0053");_gdce !=nil {_bga .S =_gdce ;};_bbf ,_cdg :=_bga .S .(*_fd .PdfObjectName );if !_cdg {_ag .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",_bga .S );
return nil ,_dc .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",_bga .S );};_bgg :=PdfActionType (_bbf .String ());
switch _bgg {case ActionTypeGoTo :_cg ,_dccg :=_cdf .newPdfActionGotoFromDict (_gcf );if _dccg !=nil {return nil ,_dccg ;};_cg .PdfAction =_bga ;_bga ._ga =_cg ;return _bga ,nil ;case ActionTypeGoToR :_ddg ,_eddf :=_cdf .newPdfActionGotoRFromDict (_gcf );
if _eddf !=nil {return nil ,_eddf ;};_ddg .PdfAction =_bga ;_bga ._ga =_ddg ;return _bga ,nil ;case ActionTypeGoToE :_cee ,_bfg :=_cdf .newPdfActionGotoEFromDict (_gcf );if _bfg !=nil {return nil ,_bfg ;};_cee .PdfAction =_bga ;_bga ._ga =_cee ;return _bga ,nil ;
case ActionTypeLaunch :_fdf ,_aegd :=_cdf .newPdfActionLaunchFromDict (_gcf );if _aegd !=nil {return nil ,_aegd ;};_fdf .PdfAction =_bga ;_bga ._ga =_fdf ;return _bga ,nil ;case ActionTypeThread :_fgb ,_eec :=_cdf .newPdfActionThreadFromDict (_gcf );if _eec !=nil {return nil ,_eec ;
};_fgb .PdfAction =_bga ;_bga ._ga =_fgb ;return _bga ,nil ;case ActionTypeURI :_bae ,_cba :=_cdf .newPdfActionURIFromDict (_gcf );if _cba !=nil {return nil ,_cba ;};_bae .PdfAction =_bga ;_bga ._ga =_bae ;return _bga ,nil ;case ActionTypeSound :_aba ,_adc :=_cdf .newPdfActionSoundFromDict (_gcf );
if _adc !=nil {return nil ,_adc ;};_aba .PdfAction =_bga ;_bga ._ga =_aba ;return _bga ,nil ;case ActionTypeMovie :_ebd ,_ecd :=_cdf .newPdfActionMovieFromDict (_gcf );if _ecd !=nil {return nil ,_ecd ;};_ebd .PdfAction =_bga ;_bga ._ga =_ebd ;return _bga ,nil ;
case ActionTypeHide :_ecc ,_bggf :=_cdf .newPdfActionHideFromDict (_gcf );if _bggf !=nil {return nil ,_bggf ;};_ecc .PdfAction =_bga ;_bga ._ga =_ecc ;return _bga ,nil ;case ActionTypeNamed :_eadb ,_gcd :=_cdf .newPdfActionNamedFromDict (_gcf );if _gcd !=nil {return nil ,_gcd ;
};_eadb .PdfAction =_bga ;_bga ._ga =_eadb ;return _bga ,nil ;case ActionTypeSubmitForm :_gbef ,_cfc :=_cdf .newPdfActionSubmitFormFromDict (_gcf );if _cfc !=nil {return nil ,_cfc ;};_gbef .PdfAction =_bga ;_bga ._ga =_gbef ;return _bga ,nil ;case ActionTypeResetForm :_baf ,_aab :=_cdf .newPdfActionResetFormFromDict (_gcf );
if _aab !=nil {return nil ,_aab ;};_baf .PdfAction =_bga ;_bga ._ga =_baf ;return _bga ,nil ;case ActionTypeImportData :_bdag ,_dga :=_cdf .newPdfActionImportDataFromDict (_gcf );if _dga !=nil {return nil ,_dga ;};_bdag .PdfAction =_bga ;_bga ._ga =_bdag ;
return _bga ,nil ;case ActionTypeSetOCGState :_fcf ,_defg :=_cdf .newPdfActionSetOCGStateFromDict (_gcf );if _defg !=nil {return nil ,_defg ;};_fcf .PdfAction =_bga ;_bga ._ga =_fcf ;return _bga ,nil ;case ActionTypeRendition :_cbf ,_bcc :=_cdf .newPdfActionRenditionFromDict (_gcf );
if _bcc !=nil {return nil ,_bcc ;};_cbf .PdfAction =_bga ;_bga ._ga =_cbf ;return _bga ,nil ;case ActionTypeTrans :_gfe ,_aca :=_cdf .newPdfActionTransFromDict (_gcf );if _aca !=nil {return nil ,_aca ;};_gfe .PdfAction =_bga ;_bga ._ga =_gfe ;return _bga ,nil ;
case ActionTypeGoTo3DView :_bcff ,_dge :=_cdf .newPdfActionGoTo3DViewFromDict (_gcf );if _dge !=nil {return nil ,_dge ;};_bcff .PdfAction =_bga ;_bga ._ga =_bcff ;return _bga ,nil ;case ActionTypeJavaScript :_bef ,_aag :=_cdf .newPdfActionJavaScriptFromDict (_gcf );
if _aag !=nil {return nil ,_aag ;};_bef .PdfAction =_bga ;_bga ._ga =_bef ;return _bga ,nil ;};_ag .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",_bgg );
return nil ,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 (_dgabb pdfFontType0 )GetRuneMetrics (r rune )(_cf .CharMetrics ,bool ){if _dgabb .DescendantFont ==nil {_ag .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",_dgabb );
return _cf .CharMetrics {},false ;};return _dgabb .DescendantFont .GetRuneMetrics (r );};func (_ecde *PdfReader )newPdfActionGotoRFromDict (_abc *_fd .PdfObjectDictionary )(*PdfActionGoToR ,error ){_agg ,_gda :=_ece (_abc .Get ("\u0046"));if _gda !=nil {return nil ,_gda ;
};return &PdfActionGoToR {D :_abc .Get ("\u0044"),NewWindow :_abc .Get ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw"),F :_agg },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 _bc .ReadSeeker )(*CompliancePdfReader ,error ){const _decda ="\u006d\u006f\u0064\u0065l\u003a\u004e\u0065\u0077\u0043\u006f\u006d\u0070\u006c\u0069a\u006ec\u0065\u0050\u0064\u0066\u0052\u0065\u0061d\u0065\u0072";_ececf ,_dcec :=_daab (rs ,&ReaderOpts {ComplianceMode :true },false ,_decda );
if _dcec !=nil {return nil ,_dcec ;};return &CompliancePdfReader {PdfReader :_ececf },nil ;};func _fdea (_cdfb _cf .StdFont )pdfFontSimple {_cbgee :=_cdfb .Descriptor ();return pdfFontSimple {fontCommon :fontCommon {_eded :"\u0054\u0079\u0070e\u0031",_ffedb :_cdfb .Name ()},_dcgdd :_cdfb .GetMetricsTable (),_cbffb :&PdfFontDescriptor {FontName :_fd .MakeName (string (_cbgee .Name )),FontFamily :_fd .MakeName (_cbgee .Family ),FontWeight :_fd .MakeFloat (float64 (_cbgee .Weight )),Flags :_fd .MakeInteger (int64 (_cbgee .Flags )),FontBBox :_fd .MakeArrayFromFloats (_cbgee .BBox [:]),ItalicAngle :_fd .MakeFloat (_cbgee .ItalicAngle ),Ascent :_fd .MakeFloat (_cbgee .Ascent ),Descent :_fd .MakeFloat (_cbgee .Descent ),CapHeight :_fd .MakeFloat (_cbgee .CapHeight ),XHeight :_fd .MakeFloat (_cbgee .XHeight ),StemV :_fd .MakeFloat (_cbgee .StemV ),StemH :_fd .MakeFloat (_cbgee .StemH )},_gadae :_cdfb .Encoder ()};
};func _fadbb (_afccf *_fd .PdfObjectDictionary )(*PdfFieldChoice ,error ){_dafb :=&PdfFieldChoice {};_dafb .Opt ,_ =_fd .GetArray (_afccf .Get ("\u004f\u0070\u0074"));_dafb .TI ,_ =_fd .GetInt (_afccf .Get ("\u0054\u0049"));_dafb .I ,_ =_fd .GetArray (_afccf .Get ("\u0049"));
return _dafb ,nil ;};
// ToPdfObject implements interface PdfModel.
func (_abcfb *PdfAnnotationPolygon )ToPdfObject ()_fd .PdfObject {_abcfb .PdfAnnotation .ToPdfObject ();_egda :=_abcfb ._aeb ;_daga :=_egda .PdfObject .(*_fd .PdfObjectDictionary );_abcfb .PdfAnnotationMarkup .appendToPdfDictionary (_daga );_daga .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fd .MakeName ("\u0050o\u006c\u0079\u0067\u006f\u006e"));
_daga .SetIfNotNil ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073",_abcfb .Vertices );_daga .SetIfNotNil ("\u004c\u0045",_abcfb .LE );_daga .SetIfNotNil ("\u0042\u0053",_abcfb .BS );_daga .SetIfNotNil ("\u0049\u0043",_abcfb .IC );_daga .SetIfNotNil ("\u0042\u0045",_abcfb .BE );
_daga .SetIfNotNil ("\u0049\u0054",_abcfb .IT );_daga .SetIfNotNil ("\u004de\u0061\u0073\u0075\u0072\u0065",_abcfb .Measure );return _egda ;};
// DefaultFont returns the default font, which is currently the built in Helvetica.
func DefaultFont ()*PdfFont {_dgcf ,_dceca :=_cf .NewStdFontByName (HelveticaName );if !_dceca {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");
};_dfgd :=_fdea (_dgcf );return &PdfFont {_gbaac :&_dfgd };};
// SetShadingByName sets a shading resource specified by keyName.
func (_fbac *PdfPageResources )SetShadingByName (keyName _fd .PdfObjectName ,shadingObj _fd .PdfObject )error {if _fbac .Shading ==nil {_fbac .Shading =_fd .MakeDict ();};_caec ,_aabgd :=_fd .GetDict (_fbac .Shading );if !_aabgd {return _fd .ErrTypeError ;
};_caec .Set (keyName ,shadingObj );return nil ;};
// NewPdfAppender creates a new Pdf appender from a Pdf reader.
func NewPdfAppender (reader *PdfReader )(*PdfAppender ,error ){_bdcb :=&PdfAppender {_cgae :reader ._gcafg ,Reader :reader ,_fcec :reader ._faaf ,_bade :reader ._cedebc };_faec ,_cfbd :=_bdcb ._cgae .Seek (0,_bc .SeekEnd );if _cfbd !=nil {return nil ,_cfbd ;
};_bdcb ._cdfg =_faec ;if _ ,_cfbd =_bdcb ._cgae .Seek (0,_bc .SeekStart );_cfbd !=nil {return nil ,_cfbd ;};_bdcb ._efec ,_cfbd =NewPdfReader (_bdcb ._cgae );if _cfbd !=nil {return nil ,_cfbd ;};for _ ,_bfad :=range _bdcb .Reader .GetObjectNums (){if _bdcb ._bgfg < _bfad {_bdcb ._bgfg =_bfad ;
};};_bdcb ._ccfe =_bdcb ._fcec .GetXrefTable ();_bdcb ._fda =_bdcb ._fcec .GetXrefOffset ();_bdcb ._gbca =append (_bdcb ._gbca ,_bdcb ._efec .PageList ...);_bdcb ._dbdc =make (map[_fd .PdfObject ]struct{});_bdcb ._aceb =make (map[_fd .PdfObject ]int64 );
_bdcb ._cfa =make (map[_fd .PdfObject ]struct{});_bdcb ._agfb =_bdcb ._efec .AcroForm ;_bdcb ._bgge =_bdcb ._efec .DSS ;return _bdcb ,nil ;};
// GetNumComponents returns the number of input color components, i.e. that are input to the tint transform.
func (_ceca *PdfColorspaceDeviceN )GetNumComponents ()int {return _ceca .ColorantNames .Len ()};
// DecodeArray returns the range of color component values in DeviceGray colorspace.
func (_bdgd *PdfColorspaceDeviceGray )DecodeArray ()[]float64 {return []float64 {0,1.0}};
// BorderStyle defines border type, typically used for annotations.
type BorderStyle int ;
// HasFontByName checks if has font resource by name.
func (_ggcag *PdfPage )HasFontByName (name _fd .PdfObjectName )bool {_daag ,_gbegg :=_ggcag .Resources .Font .(*_fd .PdfObjectDictionary );if !_gbegg {return false ;};if _fgfda :=_daag .Get (name );_fgfda !=nil {return true ;};return false ;};
// 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 (_gebgea *PdfColorspaceDeviceGray )ColorFromPdfObjects (objects []_fd .PdfObject )(PdfColor ,error ){if len (objects )!=1{return nil ,_ad .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_edfgf ,_febe :=_fd .GetNumbersAsFloat (objects );
if _febe !=nil {return nil ,_febe ;};return _gebgea .ColorFromFloats (_edfgf );};
// FieldValueProvider provides field values from a data source such as FDF, JSON or any other.
type FieldValueProvider interface{FieldValues ()(map[string ]_fd .PdfObject ,error );};func (_dded *PdfWriter )optimizeDocument ()error {if _dded ._fagbg ==nil {return nil ;};_acccg ,_ggddg :=_fd .GetDict (_dded ._ggdfa );if !_ggddg {return _ad .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");
};_cdggc :=_ca .Document {ID :[2]string {_dded ._gaeaa ,_dded ._cgaga },Version :_dded ._ggaddg ,Objects :_dded ._agfbf ,Info :_acccg ,Crypt :_dded ._egadf ,UseHashBasedID :_dded ._cgde };if _bfabb :=_dded ._fagbg .ApplyStandard (&_cdggc );_bfabb !=nil {return _bfabb ;
};_dded ._gaeaa ,_dded ._cgaga =_cdggc .ID [0],_cdggc .ID [1];_dded ._ggaddg =_cdggc .Version ;_dded ._agfbf =_cdggc .Objects ;_dded ._ggdfa .PdfObject =_cdggc .Info ;_dded ._cgde =_cdggc .UseHashBasedID ;_dded ._egadf =_cdggc .Crypt ;_fdbdd :=make (map[_fd .PdfObject ]struct{},len (_dded ._agfbf ));
for _ ,_fbcd :=range _dded ._agfbf {_fdbdd [_fbcd ]=struct{}{};};_dded ._agfaff =_fdbdd ;return nil ;};
// ColorToRGB converts a Lab color to an RGB color.
func (_bdcde *PdfColorspaceLab )ColorToRGB (color PdfColor )(PdfColor ,error ){_dgde :=func (_efce float64 )float64 {if _efce >=6.0/29{return _efce *_efce *_efce ;};return 108.0/841*(_efce -4.0/29.0);};_efbb ,_fgab :=color .(*PdfColorLab );if !_fgab {_ag .Log .Debug ("\u0069\u006e\u0070\u0075t \u0063\u006f\u006c\u006f\u0072\u0020\u006e\u006f\u0074\u0020\u006c\u0061\u0062");
return nil ,_ad .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};LStar :=_efbb .L ();AStar :=_efbb .A ();BStar :=_efbb .B ();L :=(LStar +16)/116+AStar /500;M :=(LStar +16)/116;N :=(LStar +16)/116-BStar /200;
X :=_bdcde .WhitePoint [0]*_dgde (L );Y :=_bdcde .WhitePoint [1]*_dgde (M );Z :=_bdcde .WhitePoint [2]*_dgde (N );_cbcg :=3.240479*X +-1.537150*Y +-0.498535*Z ;_gdgb :=-0.969256*X +1.875992*Y +0.041556*Z ;_dcdc :=0.055648*X +-0.204043*Y +1.057311*Z ;_cbcg =_af .Min (_af .Max (_cbcg ,0),1.0);
_gdgb =_af .Min (_af .Max (_gdgb ,0),1.0);_dcdc =_af .Min (_af .Max (_dcdc ,0),1.0);return NewPdfColorDeviceRGB (_cbcg ,_gdgb ,_dcdc ),nil ;};
// IsEncrypted returns true if the PDF file is encrypted.
func (_aaaff *PdfReader )IsEncrypted ()(bool ,error ){return _aaaff ._faaf .IsEncrypted ()};
// SetDocInfo set document info.
// This will overwrite any globally declared document info.
func (_cagad *PdfWriter )SetDocInfo (info *PdfInfo ){_cagad .setDocInfo (info .ToPdfObject ())};func _abbbc (_ffdgd _fd .PdfObject )[]*_fd .PdfObjectStream {if _ffdgd ==nil {return nil ;};_ebdcb ,_bcggc :=_fd .GetArray (_ffdgd );if !_bcggc ||_ebdcb .Len ()==0{return nil ;
};_eadea :=make ([]*_fd .PdfObjectStream ,0,_ebdcb .Len ());for _ ,_ccebd :=range _ebdcb .Elements (){if _ggfcc ,_bgbeg :=_fd .GetStream (_ccebd );_bgbeg {_eadea =append (_eadea ,_ggfcc );};};return _eadea ;};
// Subtype returns the font's "Subtype" field.
func (_ccfba *PdfFont )Subtype ()string {_fbbef :=_ccfba .baseFields ()._eded ;if _dbgc ,_abcab :=_ccfba ._gbaac .(*pdfFontType0 );_abcab {_fbbef =_fbbef +"\u003a"+_dbgc .DescendantFont .Subtype ();};return _fbbef ;};
// ToPdfObject returns colorspace in a PDF object format [name dictionary]
func (_bdfa *PdfColorspaceCalRGB )ToPdfObject ()_fd .PdfObject {_afaa :=&_fd .PdfObjectArray {};_afaa .Append (_fd .MakeName ("\u0043\u0061\u006c\u0052\u0047\u0042"));_ffed :=_fd .MakeDict ();if _bdfa .WhitePoint !=nil {_gfda :=_fd .MakeArray (_fd .MakeFloat (_bdfa .WhitePoint [0]),_fd .MakeFloat (_bdfa .WhitePoint [1]),_fd .MakeFloat (_bdfa .WhitePoint [2]));
_ffed .Set ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074",_gfda );}else {_ag .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 _bdfa .BlackPoint !=nil {_cgfd :=_fd .MakeArray (_fd .MakeFloat (_bdfa .BlackPoint [0]),_fd .MakeFloat (_bdfa .BlackPoint [1]),_fd .MakeFloat (_bdfa .BlackPoint [2]));_ffed .Set ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074",_cgfd );
};if _bdfa .Gamma !=nil {_fddc :=_fd .MakeArray (_fd .MakeFloat (_bdfa .Gamma [0]),_fd .MakeFloat (_bdfa .Gamma [1]),_fd .MakeFloat (_bdfa .Gamma [2]));_ffed .Set ("\u0047\u0061\u006dm\u0061",_fddc );};if _bdfa .Matrix !=nil {_fdag :=_fd .MakeArray (_fd .MakeFloat (_bdfa .Matrix [0]),_fd .MakeFloat (_bdfa .Matrix [1]),_fd .MakeFloat (_bdfa .Matrix [2]),_fd .MakeFloat (_bdfa .Matrix [3]),_fd .MakeFloat (_bdfa .Matrix [4]),_fd .MakeFloat (_bdfa .Matrix [5]),_fd .MakeFloat (_bdfa .Matrix [6]),_fd .MakeFloat (_bdfa .Matrix [7]),_fd .MakeFloat (_bdfa .Matrix [8]));
_ffed .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_fdag );};_afaa .Append (_ffed );if _bdfa ._gadad !=nil {_bdfa ._gadad .PdfObject =_afaa ;return _bdfa ._gadad ;};return _afaa ;};
// ToPdfObject sets the common field elements.
// Note: Call the more field context's ToPdfObject to set both the generic and
// non-generic information.
func (_bcgdb *PdfField )ToPdfObject ()_fd .PdfObject {_ffeaa :=_bcgdb ._dffeb ;_fced :=_ffeaa .PdfObject .(*_fd .PdfObjectDictionary );_fcea :=_fd .MakeArray ();for _ ,_gcad :=range _bcgdb .Kids {_fcea .Append (_gcad .ToPdfObject ());};for _ ,_gfdde :=range _bcgdb .Annotations {if _gfdde ._aeb !=_bcgdb ._dffeb {_fcea .Append (_gfdde .GetContext ().ToPdfObject ());
};};if _bcgdb .Parent !=nil {_fced .SetIfNotNil ("\u0050\u0061\u0072\u0065\u006e\u0074",_bcgdb .Parent .GetContainingPdfObject ());};if _fcea .Len ()> 0{_fced .Set ("\u004b\u0069\u0064\u0073",_fcea );};_fced .SetIfNotNil ("\u0046\u0054",_bcgdb .FT );_fced .SetIfNotNil ("\u0054",_bcgdb .T );
_fced .SetIfNotNil ("\u0054\u0055",_bcgdb .TU );_fced .SetIfNotNil ("\u0054\u004d",_bcgdb .TM );_fced .SetIfNotNil ("\u0046\u0066",_bcgdb .Ff );_fced .SetIfNotNil ("\u0056",_bcgdb .V );_fced .SetIfNotNil ("\u0044\u0056",_bcgdb .DV );_fced .SetIfNotNil ("\u0041\u0041",_bcgdb .AA );
if _bcgdb .VariableText !=nil {_fced .SetIfNotNil ("\u0044\u0041",_bcgdb .VariableText .DA );_fced .SetIfNotNil ("\u0051",_bcgdb .VariableText .Q );_fced .SetIfNotNil ("\u0044\u0053",_bcgdb .VariableText .DS );_fced .SetIfNotNil ("\u0052\u0056",_bcgdb .VariableText .RV );
};return _ffeaa ;};
// CharMetrics represents width and height metrics of a glyph.
type CharMetrics =_cf .CharMetrics ;func _cdgfdg (_eddcbb *_fd .PdfObjectDictionary )(*PdfShadingType1 ,error ){_fecfb :=PdfShadingType1 {};if _cegdc :=_eddcbb .Get ("\u0044\u006f\u006d\u0061\u0069\u006e");_cegdc !=nil {_cegdc =_fd .TraceToDirectObject (_cegdc );
_ffdga ,_gfdaeg :=_cegdc .(*_fd .PdfObjectArray );if !_gfdaeg {_ag .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",_cegdc );return nil ,_ad .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");
};_fecfb .Domain =_ffdga ;};if _cbdg :=_eddcbb .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");_cbdg !=nil {_cbdg =_fd .TraceToDirectObject (_cbdg );_aadad ,_aeecf :=_cbdg .(*_fd .PdfObjectArray );if !_aeecf {_ag .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",_cbdg );
return nil ,_ad .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_fecfb .Matrix =_aadad ;};_caebb :=_eddcbb .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");if _caebb ==nil {_ag .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 ;};_fecfb .Function =[]PdfFunction {};if _fgcfd ,_edcb :=_caebb .(*_fd .PdfObjectArray );_edcb {for _ ,_agege :=range _fgcfd .Elements (){_cdagdc ,_ceeaab :=_badad (_agege );if _ceeaab !=nil {_ag .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",_ceeaab );
return nil ,_ceeaab ;};_fecfb .Function =append (_fecfb .Function ,_cdagdc );};}else {_aagfb ,_adbgf :=_badad (_caebb );if _adbgf !=nil {_ag .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",_adbgf );
return nil ,_adbgf ;};_fecfb .Function =append (_fecfb .Function ,_aagfb );};return &_fecfb ,nil ;};
// GetNumComponents returns the number of color components (1 for Separation).
func (_bafd *PdfColorspaceSpecialSeparation )GetNumComponents ()int {return 1};func _dcfae (_abbb _fd .PdfObject )(*PdfPageResourcesColorspaces ,error ){_eedag :=&PdfPageResourcesColorspaces {};if _befae ,_abgba :=_abbb .(*_fd .PdfIndirectObject );_abgba {_eedag ._abdg =_befae ;
_abbb =_befae .PdfObject ;};_gffec ,_fbadf :=_fd .GetDict (_abbb );if !_fbadf {return nil ,_ad .New ("\u0043\u0053\u0020at\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};_eedag .Names =[]string {};
_eedag .Colorspaces =map[string ]PdfColorspace {};for _ ,_edbabf :=range _gffec .Keys (){_bgbcc :=_gffec .Get (_edbabf );_eedag .Names =append (_eedag .Names ,string (_edbabf ));_bbgbf ,_cccgdc :=NewPdfColorspaceFromPdfObject (_bgbcc );if _cccgdc !=nil {return nil ,_cccgdc ;
};_eedag .Colorspaces [string (_edbabf )]=_bbgbf ;};return _eedag ,nil ;};
// PdfShadingType1 is a Function-based shading.
type PdfShadingType1 struct{*PdfShading ;Domain *_fd .PdfObjectArray ;Matrix *_fd .PdfObjectArray ;Function []PdfFunction ;};
// String returns a human readable description of `fontfile`.
func (_befb *fontFile )String ()string {_gaba :="\u005b\u004e\u006f\u006e\u0065\u005d";if _befb ._cecab !=nil {_gaba =_befb ._cecab .String ();};return _dc .Sprintf ("\u0046O\u004e\u0054\u0046\u0049\u004c\u0045\u007b\u0025\u0023\u0071\u0020e\u006e\u0063\u006f\u0064\u0065\u0072\u003d\u0025\u0073\u007d",_befb ._cbfca ,_gaba );
};func (_fcfc *PdfReader )newPdfAnnotationSoundFromDict (_fed *_fd .PdfObjectDictionary )(*PdfAnnotationSound ,error ){_gbf :=PdfAnnotationSound {};_aff ,_aabe :=_fcfc .newPdfAnnotationMarkupFromDict (_fed );if _aabe !=nil {return nil ,_aabe ;};_gbf .PdfAnnotationMarkup =_aff ;
_gbf .Name =_fed .Get ("\u004e\u0061\u006d\u0065");_gbf .Sound =_fed .Get ("\u0053\u006f\u0075n\u0064");return &_gbf ,nil ;};
// PageFromIndirectObject returns the PdfPage and page number for a given indirect object.
func (_acefg *PdfReader )PageFromIndirectObject (ind *_fd .PdfIndirectObject )(*PdfPage ,int ,error ){if len (_acefg .PageList )!=len (_acefg ._bbfca ){return nil ,0,_ad .New ("\u0070\u0061\u0067\u0065\u0020\u006c\u0069\u0073\u0074\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");
};for _cfggdf ,_eaddd :=range _acefg ._bbfca {if _eaddd ==ind {return _acefg .PageList [_cfggdf ],_cfggdf +1,nil ;};};return nil ,0,_ad .New ("\u0070\u0061\u0067\u0065\u0020\u006e\u006f\u0074\u0020f\u006f\u0075\u006e\u0064");};
// GetStructRoot gets the StructTreeRoot object
func (_cgfdg *PdfPage )GetStructTreeRoot ()(*_fd .PdfObject ,bool ){_bacgg ,_cgfb :=_cgfdg ._dfaff .GetCatalogStructTreeRoot ();return &_bacgg ,_cgfb ;};
// DecodeArray returns the range of color component values in CalRGB colorspace.
func (_fggd *PdfColorspaceCalRGB )DecodeArray ()[]float64 {return []float64 {0.0,1.0,0.0,1.0,0.0,1.0};};func (_cadf *PdfReader )newPdfAnnotationStampFromDict (_edag *_fd .PdfObjectDictionary )(*PdfAnnotationStamp ,error ){_gcc :=PdfAnnotationStamp {};_ebfb ,_fgg :=_cadf .newPdfAnnotationMarkupFromDict (_edag );
if _fgg !=nil {return nil ,_fgg ;};_gcc .PdfAnnotationMarkup =_ebfb ;_gcc .Name =_edag .Get ("\u004e\u0061\u006d\u0065");return &_gcc ,nil ;};
// NewPdfAnnotationFreeText returns a new free text annotation.
func NewPdfAnnotationFreeText ()*PdfAnnotationFreeText {_ebf :=NewPdfAnnotation ();_dba :=&PdfAnnotationFreeText {};_dba .PdfAnnotation =_ebf ;_dba .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_ebf .SetContext (_dba );return _dba ;};
// DecodeArray returns the range of color component values in DeviceRGB colorspace.
func (_gggg *PdfColorspaceDeviceRGB )DecodeArray ()[]float64 {return []float64 {0.0,1.0,0.0,1.0,0.0,1.0};};
// HasXObjectByName checks if an XObject with a specified keyName is defined.
func (_bdabeb *PdfPageResources )HasXObjectByName (keyName _fd .PdfObjectName )bool {_aged ,_ :=_bdabeb .GetXObjectByName (keyName );return _aged !=nil ;};
// NewPdfFilespec returns an initialized generic PDF filespec model.
func NewPdfFilespec ()*PdfFilespec {_bcag :=&PdfFilespec {};_bcag ._cbfc =_fd .MakeIndirectObject (_fd .MakeDict ());return _bcag ;};
// 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 ;func (_fcfda *PdfPage )getParentResources ()(*PdfPageResources ,error ){_gdfbgf :=_fcfda .Parent ;for _gdfbgf !=nil {_eafd ,_beebb :=_fd .GetDict (_gdfbgf );if !_beebb {_ag .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 ,_ad .New ("i\u006e\u0076\u0061\u006cid\u0020p\u0061\u0072\u0065\u006e\u0074 \u006f\u0062\u006a\u0065\u0063\u0074");};if _eegca :=_eafd .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");_eegca !=nil {_dcfc ,_cdgfb :=_fd .GetDict (_eegca );
if !_cdgfb {return nil ,_ad .New ("i\u006e\u0076\u0061\u006cid\u0020r\u0065\u0073\u006f\u0075\u0072c\u0065\u0020\u0064\u0069\u0063\u0074");};_babc ,_fbbbc :=NewPdfPageResourcesFromDict (_dcfc );if _fbbbc !=nil {return nil ,_fbbbc ;};return _babc ,nil ;
};_gdfbgf =_eafd .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");};return nil ,nil ;};
// ToInteger convert to an integer format.
func (_edec *PdfColorDeviceCMYK )ToInteger (bits int )[4]uint32 {_eccc :=_af .Pow (2,float64 (bits ))-1;return [4]uint32 {uint32 (_eccc *_edec .C ()),uint32 (_eccc *_edec .M ()),uint32 (_eccc *_edec .Y ()),uint32 (_eccc *_edec .K ())};};
// GetContainingPdfObject implements interface PdfModel.
func (_bca *PdfAction )GetContainingPdfObject ()_fd .PdfObject {return _bca ._bfb };func _acea (_bfef _fd .PdfObject )(*PdfColorspaceSpecialPattern ,error ){_ag .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",_bfef .String (),_bfef );
_ffcdb :=NewPdfColorspaceSpecialPattern ();if _efcf ,_deff :=_bfef .(*_fd .PdfIndirectObject );_deff {_ffcdb ._gcgab =_efcf ;};_bfef =_fd .TraceToDirectObject (_bfef );if _bbag ,_eecg :=_bfef .(*_fd .PdfObjectName );_eecg {if *_bbag !="\u0050a\u0074\u0074\u0065\u0072\u006e"{return nil ,_dc .Errorf ("\u0069\u006e\u0076a\u006c\u0069\u0064\u0020\u006e\u0061\u006d\u0065");
};return _ffcdb ,nil ;};_agcc ,_becg :=_bfef .(*_fd .PdfObjectArray );if !_becg {_ag .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",_bfef );
return nil ,_dc .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0050\u0061\u0074\u0074e\u0072n\u0020C\u0053\u0020\u006f\u0062\u006a\u0065\u0063t");};if _agcc .Len ()!=1&&_agcc .Len ()!=2{_ag .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",_agcc );
return nil ,_dc .Errorf ("\u0069n\u0076\u0061\u006c\u0069\u0064\u0020\u0050\u0061\u0074\u0074\u0065r\u006e\u0020\u0043\u0053\u0020\u0061\u0072\u0072\u0061\u0079");};_bfef =_agcc .Get (0);if _deebc ,_cgcbd :=_bfef .(*_fd .PdfObjectName );_cgcbd {if *_deebc !="\u0050a\u0074\u0074\u0065\u0072\u006e"{_ag .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",_deebc );
return nil ,_dc .Errorf ("\u0069\u006e\u0076a\u006c\u0069\u0064\u0020\u006e\u0061\u006d\u0065");};};if _agcc .Len ()> 1{_bfef =_agcc .Get (1);_bfef =_fd .TraceToDirectObject (_bfef );_bfaag ,_efefc :=NewPdfColorspaceFromPdfObject (_bfef );if _efefc !=nil {return nil ,_efefc ;
};_ffcdb .UnderlyingCS =_bfaag ;};_ag .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",_ffcdb .UnderlyingCS );
return _ffcdb ,nil ;};
// OutlineDest represents the destination of an outline item.
// It holds the page and the position on the page an outline item points to.
type OutlineDest struct{PageObj *_fd .PdfIndirectObject `json:"-"`;Page int64 `json:"page"`;Mode string `json:"mode"`;X float64 `json:"x"`;Y float64 `json:"y"`;Zoom float64 `json:"zoom"`;};
// 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 (_ggcf *PdfWriter )SetRotation (rotate int64 )error {_eaaeb ,_adbeb :=_fd .GetDict (_ggcf ._eecde );if !_adbeb {return ErrTypeCheck ;};_eaaeb .Set ("\u0052\u006f\u0074\u0061\u0074\u0065",_fd .MakeInteger (rotate ));return nil ;};
// String implements interface PdfObject.
func (_ede *PdfAction )String ()string {_adg ,_fg :=_ede .ToPdfObject ().(*_fd .PdfIndirectObject );if _fg {return _dc .Sprintf ("\u0025\u0054\u003a\u0020\u0025\u0073",_ede ._ga ,_adg .PdfObject .String ());};return "";};
// PdfAnnotationPopup represents Popup annotations.
// (Section 12.5.6.14).
type PdfAnnotationPopup struct{*PdfAnnotation ;Parent _fd .PdfObject ;Open _fd .PdfObject ;};func (_bagedf *PdfWriter )writeObject (_fbddf int ,_ffaed _fd .PdfObject ){_ag .Log .Trace ("\u0057\u0072\u0069\u0074\u0065\u0020\u006f\u0062\u006a \u0023\u0025\u0064\u000a",_fbddf );
if _cfdfg ,_ebaef :=_ffaed .(*_fd .PdfIndirectObject );_ebaef {_bagedf ._bccbb [_fbddf ]=crossReference {Type :1,Offset :_bagedf ._bbcab ,Generation :_cfdfg .GenerationNumber };_facaa :=_dc .Sprintf ("\u0025d\u0020\u0030\u0020\u006f\u0062\u006a\n",_fbddf );
if _dfda ,_dedag :=_cfdfg .PdfObject .(*pdfSignDictionary );_dedag {_dfda ._gedfg =_bagedf ._bbcab +int64 (len (_facaa ));};if _cfdfg .PdfObject ==nil {_ag .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");
_cfdfg .PdfObject =_fd .MakeNull ();};_facaa +=_cfdfg .PdfObject .WriteString ();_facaa +="\u000a\u0065\u006e\u0064\u006f\u0062\u006a\u000a";_bagedf .writeString (_facaa );return ;};if _befbd ,_eadbd :=_ffaed .(*_fd .PdfObjectStream );_eadbd {_bagedf ._bccbb [_fbddf ]=crossReference {Type :1,Offset :_bagedf ._bbcab ,Generation :_befbd .GenerationNumber };
_accd :=_dc .Sprintf ("\u0025d\u0020\u0030\u0020\u006f\u0062\u006a\n",_fbddf );_accd +=_befbd .PdfObjectDictionary .WriteString ();_accd +="\u000a\u0073\u0074\u0072\u0065\u0061\u006d\u000a";_bagedf .writeString (_accd );if _befbd .Lazy {_fcgbd ,_baeea :=_gbe .ReadFile (_befbd .TempFile );
if _baeea !=nil {_ag .Log .Info ("\u0045\u0072\u0072\u006f\u0072\u0020\u0066\u0069\u006e\u0064\u0069\u006e\u0067\u0020\u006ca\u007ay\u0020\u0074\u0065\u006d\u0070\u0020\u0066\u0069\u006c\u0065\u003a\u0020\u0025\u0073",_befbd .TempFile );return ;};_bagedf .writeBytes (_fcgbd );
_gbe .Remove (_befbd .TempFile );}else {_bagedf .writeBytes (_befbd .Stream );};_bagedf .writeString ("\u000ae\u006ed\u0073\u0074\u0072\u0065\u0061m\u000a\u0065n\u0064\u006f\u0062\u006a\u000a");return ;};if _dageeg ,_bdcdea :=_ffaed .(*_fd .PdfObjectStreams );
_bdcdea {_bagedf ._bccbb [_fbddf ]=crossReference {Type :1,Offset :_bagedf ._bbcab ,Generation :_dageeg .GenerationNumber };_cffed :=_dc .Sprintf ("\u0025d\u0020\u0030\u0020\u006f\u0062\u006a\n",_fbddf );var _dedgg []string ;var _deeba string ;var _becabg int64 ;
for _dffce ,_aefdg :=range _dageeg .Elements (){_cbabf ,_gbcfc :=_aefdg .(*_fd .PdfIndirectObject );if !_gbcfc {_ag .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",_fbddf ,_aefdg );
continue ;};_afadc :=_cbabf .PdfObject .WriteString ()+"\u0020";_deeba =_deeba +_afadc ;_dedgg =append (_dedgg ,_dc .Sprintf ("\u0025\u0064\u0020%\u0064",_cbabf .ObjectNumber ,_becabg ));_bagedf ._bccbb [int (_cbabf .ObjectNumber )]=crossReference {Type :2,ObjectNumber :_fbddf ,Index :_dffce };
_becabg =_becabg +int64 (len ([]byte (_afadc )));};_cfebf :=_gg .Join (_dedgg ,"\u0020")+"\u0020";_fddcd :=_fd .NewFlateEncoder ();_fbgcc :=_fddcd .MakeStreamDict ();_fbgcc .Set (_fd .PdfObjectName ("\u0054\u0079\u0070\u0065"),_fd .MakeName ("\u004f\u0062\u006a\u0053\u0074\u006d"));
_eabcc :=int64 (_dageeg .Len ());_fbgcc .Set (_fd .PdfObjectName ("\u004e"),_fd .MakeInteger (_eabcc ));_bafcg :=int64 (len (_cfebf ));_fbgcc .Set (_fd .PdfObjectName ("\u0046\u0069\u0072s\u0074"),_fd .MakeInteger (_bafcg ));_cfbfb ,_ :=_fddcd .EncodeBytes ([]byte (_cfebf +_deeba ));
_gcace :=int64 (len (_cfbfb ));_fbgcc .Set (_fd .PdfObjectName ("\u004c\u0065\u006e\u0067\u0074\u0068"),_fd .MakeInteger (_gcace ));_cffed +=_fbgcc .WriteString ();_cffed +="\u000a\u0073\u0074\u0072\u0065\u0061\u006d\u000a";_bagedf .writeString (_cffed );
_bagedf .writeBytes (_cfbfb );_bagedf .writeString ("\u000ae\u006ed\u0073\u0074\u0072\u0065\u0061m\u000a\u0065n\u0064\u006f\u0062\u006a\u000a");return ;};_bagedf .writeString (_ffaed .WriteString ());};
// IsShading specifies if the pattern is a shading pattern.
func (_edgg *PdfPattern )IsShading ()bool {return _edgg .PatternType ==2};
// NewPdfInfoFromObject creates a new PdfInfo from the input core.PdfObject.
func NewPdfInfoFromObject (obj _fd .PdfObject )(*PdfInfo ,error ){var _aaee PdfInfo ;_edgf ,_dffba :=obj .(*_fd .PdfObjectDictionary );if !_dffba {return nil ,_dc .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 _ ,_beecb :=range _edgf .Keys (){switch _beecb {case "\u0054\u0069\u0074l\u0065":_aaee .Title ,_ =_fd .GetString (_edgf .Get ("\u0054\u0069\u0074l\u0065"));case "\u0041\u0075\u0074\u0068\u006f\u0072":_aaee .Author ,_ =_fd .GetString (_edgf .Get ("\u0041\u0075\u0074\u0068\u006f\u0072"));
case "\u0053u\u0062\u006a\u0065\u0063\u0074":_aaee .Subject ,_ =_fd .GetString (_edgf .Get ("\u0053u\u0062\u006a\u0065\u0063\u0074"));case "\u004b\u0065\u0079\u0077\u006f\u0072\u0064\u0073":_aaee .Keywords ,_ =_fd .GetString (_edgf .Get ("\u004b\u0065\u0079\u0077\u006f\u0072\u0064\u0073"));
case "\u0043r\u0065\u0061\u0074\u006f\u0072":_aaee .Creator ,_ =_fd .GetString (_edgf .Get ("\u0043r\u0065\u0061\u0074\u006f\u0072"));case "\u0050\u0072\u006f\u0064\u0075\u0063\u0065\u0072":_aaee .Producer ,_ =_fd .GetString (_edgf .Get ("\u0050\u0072\u006f\u0064\u0075\u0063\u0065\u0072"));
case "\u0054r\u0061\u0070\u0070\u0065\u0064":_aaee .Trapped ,_ =_fd .GetName (_edgf .Get ("\u0054r\u0061\u0070\u0070\u0065\u0064"));case "\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065":if _fadf ,_ggaa :=_fd .GetString (_edgf .Get ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065"));
_ggaa &&_fadf .String ()!=""{_ebde ,_eade :=NewPdfDate (_fadf .String ());if _eade !=nil {return nil ,_dc .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",_eade );
};_aaee .CreationDate =&_ebde ;};case "\u004do\u0064\u0044\u0061\u0074\u0065":if _bdgc ,_gggde :=_fd .GetString (_edgf .Get ("\u004do\u0064\u0044\u0061\u0074\u0065"));_gggde &&_bdgc .String ()!=""{_gabf ,_fcecc :=NewPdfDate (_bdgc .String ());if _fcecc !=nil {return nil ,_dc .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u004d\u006f\u0064\u0044a\u0074e\u0020f\u0069\u0065\u006c\u0064\u003a\u0020\u0025w",_fcecc );
};_aaee .ModifiedDate =&_gabf ;};default:_dgag ,_ :=_fd .GetString (_edgf .Get (_beecb ));if _aaee ._defeg ==nil {_aaee ._defeg =_fd .MakeDict ();};_aaee ._defeg .Set (_beecb ,_dgag );};};return &_aaee ,nil ;};
// Evaluate runs the function on the passed in slice and returns the results.
func (_abfab *PdfFunctionType0 )Evaluate (x []float64 )([]float64 ,error ){if len (x )!=_abfab .NumInputs {_ag .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 ,_ad .New ("\u0072\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b\u0020e\u0072\u0072\u006f\u0072");};if _abfab ._ebgce ==nil {_fggg :=_abfab .processSamples ();if _fggg !=nil {return nil ,_fggg ;};};_edgadg :=_abfab .Encode ;if _edgadg ==nil {_edgadg =[]float64 {};
for _dbcbgc :=0;_dbcbgc < len (_abfab .Size );_dbcbgc ++{_edgadg =append (_edgadg ,0);_edgadg =append (_edgadg ,float64 (_abfab .Size [_dbcbgc ]-1));};};_cdce :=_abfab .Decode ;if _cdce ==nil {_cdce =_abfab .Range ;};_fdgfe :=make ([]int ,len (x ));for _ddcdc :=0;
_ddcdc < len (x );_ddcdc ++{_gfdcc :=x [_ddcdc ];_faecg :=_af .Min (_af .Max (_gfdcc ,_abfab .Domain [2*_ddcdc ]),_abfab .Domain [2*_ddcdc +1]);_efdag :=_gbed .LinearInterpolate (_faecg ,_abfab .Domain [2*_ddcdc ],_abfab .Domain [2*_ddcdc +1],_edgadg [2*_ddcdc ],_edgadg [2*_ddcdc +1]);
_cfacd :=_af .Min (_af .Max (_efdag ,0),float64 (_abfab .Size [_ddcdc ]-1));_geebb :=int (_af .Floor (_cfacd +0.5));if _geebb < 0{_geebb =0;}else if _geebb > _abfab .Size [_ddcdc ]{_geebb =_abfab .Size [_ddcdc ]-1;};_fdgfe [_ddcdc ]=_geebb ;};_edaff :=_fdgfe [0];
for _gddca :=1;_gddca < _abfab .NumInputs ;_gddca ++{_cgac :=_fdgfe [_gddca ];for _efdfdc :=0;_efdfdc < _gddca ;_efdfdc ++{_cgac *=_abfab .Size [_efdfdc ];};_edaff +=_cgac ;};_edaff *=_abfab .NumOutputs ;var _fccdg []float64 ;for _bgede :=0;_bgede < _abfab .NumOutputs ;
_bgede ++{_ggcdg :=_edaff +_bgede ;if _ggcdg >=len (_abfab ._ebgce ){_ag .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 ;};_geada :=_abfab ._ebgce [_ggcdg ];_bdba :=_gbed .LinearInterpolate (float64 (_geada ),0,_af .Pow (2,float64 (_abfab .BitsPerSample )),_cdce [2*_bgede ],_cdce [2*_bgede +1]);_eacb :=_af .Min (_af .Max (_bdba ,_abfab .Range [2*_bgede ]),_abfab .Range [2*_bgede +1]);
_fccdg =append (_fccdg ,_eacb );};return _fccdg ,nil ;};
// PdfAction represents an action in PDF (section 12.6 p. 412).
type PdfAction struct{_ga PdfModel ;Type _fd .PdfObject ;S _fd .PdfObject ;Next _fd .PdfObject ;_bfb *_fd .PdfIndirectObject ;};
// 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 ;_bgcc _fd .ParserMetadata ;};
// GetContentStreamWithEncoder returns the pattern cell's content stream and its encoder
func (_gdffg *PdfTilingPattern )GetContentStreamWithEncoder ()([]byte ,_fd .StreamEncoder ,error ){_fdbbb ,_beffe :=_gdffg ._gcgba .(*_fd .PdfObjectStream );if !_beffe {_ag .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",_gdffg ._gcgba );
return nil ,nil ,_fd .ErrTypeError ;};_fbffg ,_bgfcf :=_fd .DecodeStream (_fdbbb );if _bgfcf !=nil {_ag .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",_bgfcf );
return nil ,nil ,_bgfcf ;};_gbecd ,_bgfcf :=_fd .NewEncoderFromStream (_fdbbb );if _bgfcf !=nil {_ag .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",_bgfcf );
return nil ,nil ,_bgfcf ;};return _fbffg ,_gbecd ,nil ;};
// AddExtGState adds a graphics state to the XObject resources.
func (_gafda *PdfPage )AddExtGState (name _fd .PdfObjectName ,egs *_fd .PdfObjectDictionary )error {if _gafda .Resources ==nil {_gafda .Resources =NewPdfPageResources ();};if _gafda .Resources .ExtGState ==nil {_gafda .Resources .ExtGState =_fd .MakeDict ();
};_bbbd ,_abgbgf :=_fd .TraceToDirectObject (_gafda .Resources .ExtGState ).(*_fd .PdfObjectDictionary );if !_abgbgf {_ag .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",_fd .TraceToDirectObject (_gafda .Resources .ExtGState ));
return _ad .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_bbbd .Set (name ,egs );return nil ;};var (_feadd _g .Mutex ;_fbgc ="";_afgca _cd .Time ;_feebde ="";_cfgbe ="";_gbfgb _cd .Time ;_ecebc ="";_gcba ="";
_geacc ="";);
// String returns a string representation of the field.
func (_eceg *PdfField )String ()string {if _bgdfe ,_aefeb :=_eceg .ToPdfObject ().(*_fd .PdfIndirectObject );_aefeb {return _dc .Sprintf ("\u0025\u0054\u003a\u0020\u0025\u0073",_eceg ._becad ,_bgdfe .PdfObject .String ());};return "";};func (_eggcc *Image )resampleLowBits (_gbdga []uint32 ){_eafgd :=_gbed .BytesPerLine (int (_eggcc .Width ),int (_eggcc .BitsPerComponent ),_eggcc .ColorComponents );
_dadab :=make ([]byte ,_eggcc .ColorComponents *_eafgd *int (_eggcc .Height ));_afed :=int (_eggcc .BitsPerComponent )*_eggcc .ColorComponents *int (_eggcc .Width );_dbegf :=uint8 (8);var (_fggc ,_dffea int ;_gebab uint32 ;);for _agfdbg :=0;_agfdbg < int (_eggcc .Height );
_agfdbg ++{_dffea =_agfdbg *_eafgd ;for _gbcgc :=0;_gbcgc < _afed ;_gbcgc ++{_gebab =_gbdga [_fggc ];_dbegf -=uint8 (_eggcc .BitsPerComponent );_dadab [_dffea ]|=byte (_gebab )<<_dbegf ;if _dbegf ==0{_dbegf =8;_dffea ++;};_fggc ++;};};_eggcc .Data =_dadab ;
};func _bgae (_adbe []byte )(_efdbd ,_fdbc string ,_eeeeg error ){_ag .Log .Trace ("g\u0065\u0074\u0041\u0053CI\u0049S\u0065\u0063\u0074\u0069\u006fn\u0073\u003a\u0020\u0025\u0064\u0020",len (_adbe ));_gcbed :=_aeagf .FindIndex (_adbe );if _gcbed ==nil {_ag .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 "","",_fd .ErrTypeError ;};_effc :=_gcbed [1];_beaf :=_gg .Index (string (_adbe [_effc :]),_fedc );if _beaf < 0{_efdbd =string (_adbe [_effc :]);return _efdbd ,"",nil ;};_cdcf :=_effc +_beaf ;_efdbd =string (_adbe [_effc :_cdcf ]);_gcgf :=_cdcf ;
_beaf =_gg .Index (string (_adbe [_gcgf :]),_ddded );if _beaf < 0{_ag .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",_eeeeg );
return "","",_fd .ErrTypeError ;};_edcf :=_gcgf +_beaf ;_fdbc =string (_adbe [_gcgf :_edcf ]);return _efdbd ,_fdbc ,nil ;};
// GetContainingPdfObject returns the container of the DSS (indirect object).
func (_bbac *DSS )GetContainingPdfObject ()_fd .PdfObject {return _bbac ._bdcdg };
// NewPdfAction returns an initialized generic PDF action model.
func NewPdfAction ()*PdfAction {_cb :=&PdfAction {};_cb ._bfb =_fd .MakeIndirectObject (_fd .MakeDict ());return _cb ;};
// B returns the value of the B component of the color.
func (_baaf *PdfColorCalRGB )B ()float64 {return _baaf [1]};func _cbec (_gffaf *PdfField ,_dagbb _fd .PdfObject )error {switch _gffaf .GetContext ().(type ){case *PdfFieldText :switch _adbae :=_dagbb .(type ){case *_fd .PdfObjectName :_edgbf :=_adbae ;
_ag .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",_edgbf .String ());
_gffaf .V =_fd .MakeEncodedString (_adbae .String (),true );case *_fd .PdfObjectString :_gffaf .V =_fd .MakeEncodedString (_adbae .String (),true );default:_ag .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",_adbae ,_adbae );
};case *PdfFieldButton :switch _dagbb .(type ){case *_fd .PdfObjectName :if len (_dagbb .String ())> 0{_gffaf .V =_dagbb ;_egffb (_gffaf ,_dagbb );};case *_fd .PdfObjectString :if len (_dagbb .String ())> 0{_gffaf .V =_fd .MakeName (_dagbb .String ());
_egffb (_gffaf ,_gffaf .V );};default:_ag .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",_gffaf .PartialName (),_dagbb );_gffaf .V =_dagbb ;
};case *PdfFieldChoice :switch _dagbb .(type ){case *_fd .PdfObjectName :if len (_dagbb .String ())> 0{_gffaf .V =_fd .MakeString (_dagbb .String ());_egffb (_gffaf ,_dagbb );};case *_fd .PdfObjectString :if len (_dagbb .String ())> 0{_gffaf .V =_dagbb ;
_egffb (_gffaf ,_fd .MakeName (_dagbb .String ()));};default:_ag .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",_gffaf .PartialName (),_dagbb );
_gffaf .V =_dagbb ;};case *PdfFieldSignature :_ag .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",_gffaf .PartialName (),_dagbb );
};return nil ;};
// PdfAnnotationMovie represents Movie annotations.
// (Section 12.5.6.17).
type PdfAnnotationMovie struct{*PdfAnnotation ;T _fd .PdfObject ;Movie _fd .PdfObject ;A _fd .PdfObject ;};func _bgaef (_dafbee rune )string {for _deea ,_baefg :=range _df .Categories {if len (_deea )==2&&_df .Is (_baefg ,_dafbee ){return _deea ;};};return "\u0043\u006e";
};
// EmbeddedFile represents an embedded file.
type EmbeddedFile struct{Name string ;Content []byte ;FileType string ;Description string ;Relationship FileRelationship ;Hash string ;CreationTime _cd .Time ;ModTime _cd .Time ;};
// 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 (_afgbb PdfOutputIntentType )String ()string {switch _afgbb {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";};};
// Encoder returns the font's text encoder.
func (_egcdc *pdfFontSimple )Encoder ()_ee .TextEncoder {if _egcdc ._dcfda !=nil {return _egcdc ._dcfda ;};if _egcdc ._gadae !=nil {return _egcdc ._gadae ;};_ffccg ,_ :=_ee .NewSimpleTextEncoder ("\u0053\u0074a\u006e\u0064\u0061r\u0064\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",nil );
return _ffccg ;};
// Fill populates `form` with values provided by `provider`.
func (_dbec *PdfAcroForm )Fill (provider FieldValueProvider )error {return _dbec .fill (provider ,nil )};func (_fgf *PdfReader )newPdfAnnotationPolyLineFromDict (_bgd *_fd .PdfObjectDictionary )(*PdfAnnotationPolyLine ,error ){_abga :=PdfAnnotationPolyLine {};
_bgbg ,_adgf :=_fgf .newPdfAnnotationMarkupFromDict (_bgd );if _adgf !=nil {return nil ,_adgf ;};_abga .PdfAnnotationMarkup =_bgbg ;_abga .Vertices =_bgd .Get ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073");_abga .LE =_bgd .Get ("\u004c\u0045");_abga .BS =_bgd .Get ("\u0042\u0053");
_abga .IC =_bgd .Get ("\u0049\u0043");_abga .BE =_bgd .Get ("\u0042\u0045");_abga .IT =_bgd .Get ("\u0049\u0054");_abga .Measure =_bgd .Get ("\u004de\u0061\u0073\u0075\u0072\u0065");return &_abga ,nil ;};
// PdfFontDescriptor specifies metrics and other attributes of a font and can refer to a FontFile
// for embedded fonts.
// 9.8 Font Descriptors (page 281)
type PdfFontDescriptor struct{FontName _fd .PdfObject ;FontFamily _fd .PdfObject ;FontStretch _fd .PdfObject ;FontWeight _fd .PdfObject ;Flags _fd .PdfObject ;FontBBox _fd .PdfObject ;ItalicAngle _fd .PdfObject ;Ascent _fd .PdfObject ;Descent _fd .PdfObject ;
Leading _fd .PdfObject ;CapHeight _fd .PdfObject ;XHeight _fd .PdfObject ;StemV _fd .PdfObject ;StemH _fd .PdfObject ;AvgWidth _fd .PdfObject ;MaxWidth _fd .PdfObject ;MissingWidth _fd .PdfObject ;FontFile _fd .PdfObject ;FontFile2 _fd .PdfObject ;FontFile3 _fd .PdfObject ;
CharSet _fd .PdfObject ;_egced int ;_gfbd float64 ;*fontFile ;_dccc *_cf .TtfType ;
// Additional entries for CIDFonts
Style _fd .PdfObject ;Lang _fd .PdfObject ;FD _fd .PdfObject ;CIDSet _fd .PdfObject ;_aefcd *_fd .PdfIndirectObject ;};
// SetXObjectFormByName adds the provided XObjectForm to the page resources.
// The added XObjectForm is identified by the specified name.
func (_ecfe *PdfPageResources )SetXObjectFormByName (keyName _fd .PdfObjectName ,xform *XObjectForm )error {_abede :=xform .ToPdfObject ().(*_fd .PdfObjectStream );_cacga :=_ecfe .SetXObjectByName (keyName ,_abede );return _cacga ;};
// SetXObjectImageByNameLazy adds the provided XObjectImage to the page resources.
// The added XObjectImage is identified by the specified name.
func (_aecef *PdfPageResources )SetXObjectImageByNameLazy (keyName _fd .PdfObjectName ,ximg *XObjectImage ,lazy bool )error {_ddcbg :=ximg .ToPdfObject ().(*_fd .PdfObjectStream );if lazy {_ddcbg .MakeLazy ();};_aafff :=_aecef .SetXObjectByName (keyName ,_ddcbg );
return _aafff ;};
// DecodeArray returns an empty slice as there are no components associated with pattern colorspace.
func (_gccc *PdfColorspaceSpecialPattern )DecodeArray ()[]float64 {return []float64 {}};
// ToPdfObject implements interface PdfModel.
func (_aefeba *PdfTransformParamsDocMDP )ToPdfObject ()_fd .PdfObject {_gefgb :=_fd .MakeDict ();_gefgb .SetIfNotNil ("\u0054\u0079\u0070\u0065",_aefeba .Type );_gefgb .SetIfNotNil ("\u0056",_aefeba .V );_gefgb .SetIfNotNil ("\u0050",_aefeba .P );return _gefgb ;
};
// PdfActionSubmitForm represents a submitForm action.
type PdfActionSubmitForm struct{*PdfAction ;F *PdfFilespec ;Fields _fd .PdfObject ;Flags _fd .PdfObject ;};func (_aagd *PdfReader )newPdfOutlineItemFromIndirectObject (_fgage *_fd .PdfIndirectObject )(*PdfOutlineItem ,error ){_gceg ,_gddgb :=_fgage .PdfObject .(*_fd .PdfObjectDictionary );
if !_gddgb {return nil ,_dc .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");};_bfedg :=NewPdfOutlineItem ();_dgebb :=_gceg .Get ("\u0054\u0069\u0074l\u0065");
if _dgebb ==nil {return nil ,_dc .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");
};_acbfb ,_fdcf :=_fd .GetString (_dgebb );if !_fdcf {return nil ,_dc .Errorf ("\u0074\u0069\u0074le\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0073\u0074\u0072\u0069\u006e\u0067\u0020\u0028\u0025\u0054\u0029",_dgebb );};_bfedg .Title =_acbfb ;if _edff :=_gceg .Get ("\u0043\u006f\u0075n\u0074");
_edff !=nil {_agfc ,_gecgf :=_edff .(*_fd .PdfObjectInteger );if !_gecgf {return nil ,_dc .Errorf ("\u0063o\u0075\u006e\u0074\u0020n\u006f\u0074\u0020\u0061\u006e \u0069n\u0074e\u0067\u0065\u0072\u0020\u0028\u0025\u0054)",_edff );};_dccbb :=int64 (*_agfc );
_bfedg .Count =&_dccbb ;};if _cdffd :=_gceg .Get ("\u0044\u0065\u0073\u0074");_cdffd !=nil {_bfedg .Dest =_fd .ResolveReference (_cdffd );if !_aagd ._gfdda {_egbbg :=_aagd .traverseObjectData (_bfedg .Dest );if _egbbg !=nil {return nil ,_egbbg ;};};};if _caedg :=_gceg .Get ("\u0041");
_caedg !=nil {_bfedg .A =_fd .ResolveReference (_caedg );if !_aagd ._gfdda {_ccbe :=_aagd .traverseObjectData (_bfedg .A );if _ccbe !=nil {return nil ,_ccbe ;};};};if _abcabe :=_gceg .Get ("\u0053\u0045");_abcabe !=nil {_bfedg .SE =nil ;};if _bgad :=_gceg .Get ("\u0043");
_bgad !=nil {_bfedg .C =_fd .ResolveReference (_bgad );};if _gecbe :=_gceg .Get ("\u0046");_gecbe !=nil {_bfedg .F =_fd .ResolveReference (_gecbe );};return _bfedg ,nil ;};
// ToPdfObject implements interface PdfModel.
func (_ebe *PdfAnnotationProjection )ToPdfObject ()_fd .PdfObject {_ebe .PdfAnnotation .ToPdfObject ();_aege :=_ebe ._aeb ;_gbcb :=_aege .PdfObject .(*_fd .PdfObjectDictionary );_ebe .PdfAnnotationMarkup .appendToPdfDictionary (_gbcb );return _aege ;};
// 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 (_dbbba *PdfReader )GetOutlinesFlattened ()([]*PdfOutlineTreeNode ,[]string ,error ){var _ceed []*PdfOutlineTreeNode ;var _cfdae []string ;var _dggcc func (*PdfOutlineTreeNode ,*[]*PdfOutlineTreeNode ,*[]string ,int );_dggcc =func (_acgba *PdfOutlineTreeNode ,_fggag *[]*PdfOutlineTreeNode ,_dbaec *[]string ,_bgfgd int ){if _acgba ==nil {return ;
};if _acgba ._gcgcg ==nil {_ag .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 ;};_aafb ,_bcagd :=_acgba ._gcgcg .(*PdfOutlineItem );if _bcagd {*_fggag =append (*_fggag ,&_aafb .PdfOutlineTreeNode );
_efdd :=_gg .Repeat ("\u0020",_bgfgd *2)+_aafb .Title .Decoded ();*_dbaec =append (*_dbaec ,_efdd );};if _acgba .First !=nil {_ffdae :=_gg .Repeat ("\u0020",_bgfgd *2)+"\u002b";*_dbaec =append (*_dbaec ,_ffdae );_dggcc (_acgba .First ,_fggag ,_dbaec ,_bgfgd +1);
};if _bcagd &&_aafb .Next !=nil {_dggcc (_aafb .Next ,_fggag ,_dbaec ,_bgfgd );};};_dggcc (_dbbba ._aceac ,&_ceed ,&_cfdae ,0);return _ceed ,_cfdae ,nil ;};
// ColorFromPdfObjects returns a new PdfColor based on the input slice of color
// components. The slice should contain a single PdfObjectFloat element.
func (_decd *PdfColorspaceSpecialSeparation )ColorFromPdfObjects (objects []_fd .PdfObject )(PdfColor ,error ){if len (objects )!=1{return nil ,_ad .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_deda ,_dgfgc :=_fd .GetNumbersAsFloat (objects );
if _dgfgc !=nil {return nil ,_dgfgc ;};return _decd .ColorFromFloats (_deda );};
// 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 (_ffea *PdfColorspaceDeviceRGB )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=3{return nil ,_ad .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_gcbf :=vals [0];if _gcbf < 0.0||_gcbf > 1.0{_ag .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_gcbf );
return nil ,ErrColorOutOfRange ;};_gdddg :=vals [1];if _gdddg < 0.0||_gdddg > 1.0{_ag .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_gcbf );return nil ,ErrColorOutOfRange ;
};_aebg :=vals [2];if _aebg < 0.0||_aebg > 1.0{_ag .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_gcbf );return nil ,ErrColorOutOfRange ;};_gecb :=NewPdfColorDeviceRGB (_gcbf ,_gdddg ,_aebg );
return _gecb ,nil ;};
// Inspect inspects the object types, subtypes and content in the PDF file returning a map of
// object type to number of instances of each.
func (_ebdbf *PdfReader )Inspect ()(map[string ]int ,error ){return _ebdbf ._faaf .Inspect ()};
// Items returns all children outline items.
func (_eedb *OutlineItem )Items ()[]*OutlineItem {return _eedb .Entries };
// ToPdfObject returns the PDF representation of the shading dictionary.
func (_abdgd *PdfShading )ToPdfObject ()_fd .PdfObject {_ffgcc :=_abdgd ._cdgfd ;_cebeg ,_bgbadc :=_abdgd .getShadingDict ();if _bgbadc !=nil {_ag .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 _abdgd .ShadingType !=nil {_cebeg .Set ("S\u0068\u0061\u0064\u0069\u006e\u0067\u0054\u0079\u0070\u0065",_abdgd .ShadingType );};if _abdgd .ColorSpace !=nil {_cebeg .Set ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065",_abdgd .ColorSpace .ToPdfObject ());
};if _abdgd .Background !=nil {_cebeg .Set ("\u0042\u0061\u0063\u006b\u0067\u0072\u006f\u0075\u006e\u0064",_abdgd .Background );};if _abdgd .BBox !=nil {_cebeg .Set ("\u0042\u0042\u006f\u0078",_abdgd .BBox .ToPdfObject ());};if _abdgd .AntiAlias !=nil {_cebeg .Set ("\u0041n\u0074\u0069\u0041\u006c\u0069\u0061s",_abdgd .AntiAlias );
};return _ffgcc ;};
// PdfActionImportData represents a importData action.
type PdfActionImportData struct{*PdfAction ;F *PdfFilespec ;};
// ToPdfObject returns colorspace in a PDF object format [name stream]
func (_gdbe *PdfColorspaceICCBased )ToPdfObject ()_fd .PdfObject {_afaee :=&_fd .PdfObjectArray {};_afaee .Append (_fd .MakeName ("\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064"));var _ceag *_fd .PdfObjectStream ;if _gdbe ._fbad !=nil {_ceag =_gdbe ._fbad ;
}else {_ceag =&_fd .PdfObjectStream {};};_eaab :=_fd .MakeDict ();_eaab .Set ("\u004e",_fd .MakeInteger (int64 (_gdbe .N )));if _gdbe .Alternate !=nil {_eaab .Set ("\u0041l\u0074\u0065\u0072\u006e\u0061\u0074e",_gdbe .Alternate .ToPdfObject ());};if _gdbe .Metadata !=nil {_eaab .Set ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061",_gdbe .Metadata );
};if _gdbe .Range !=nil {var _cffc []_fd .PdfObject ;for _ ,_fbdb :=range _gdbe .Range {_cffc =append (_cffc ,_fd .MakeFloat (_fbdb ));};_eaab .Set ("\u0052\u0061\u006eg\u0065",_fd .MakeArray (_cffc ...));};_eaab .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_fd .MakeInteger (int64 (len (_gdbe .Data ))));
_ceag .Stream =_gdbe .Data ;_ceag .PdfObjectDictionary =_eaab ;_afaee .Append (_ceag );if _gdbe ._gddfd !=nil {_gdbe ._gddfd .PdfObject =_afaee ;return _gdbe ._gddfd ;};return _afaee ;};func (_bdfe fontCommon )isCIDFont ()bool {if _bdfe ._eded ==""{_ag .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",_bdfe );
};_gbgb :=false ;switch _bdfe ._eded {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":_gbgb =true ;};_ag .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",_gbgb ,_bdfe );
return _gbgb ;};
// FieldImageProvider provides fields images for specified fields.
type FieldImageProvider interface{FieldImageValues ()(map[string ]*Image ,error );};
// NewPdfColorPatternType3 returns an empty color shading pattern type 3 (Radial).
func NewPdfColorPatternType3 ()*PdfColorPatternType3 {_afbb :=&PdfColorPatternType3 {};return _afbb };
// NewPdfPageResources returns a new PdfPageResources object.
func NewPdfPageResources ()*PdfPageResources {_eeabb :=&PdfPageResources {};_eeabb ._adegd =_fd .MakeDict ();return _eeabb ;};func _bcaa (_deb _fd .PdfObject )(*PdfColorspaceDeviceNAttributes ,error ){_fgbdc :=&PdfColorspaceDeviceNAttributes {};var _fecb *_fd .PdfObjectDictionary ;
switch _efbf :=_deb .(type ){case *_fd .PdfIndirectObject :_fgbdc ._cbd =_efbf ;var _cfff bool ;_fecb ,_cfff =_efbf .PdfObject .(*_fd .PdfObjectDictionary );if !_cfff {_ag .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 ,_ad .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};case *_fd .PdfObjectDictionary :_fecb =_efbf ;case *_fd .PdfObjectReference :_bfgb :=_efbf .Resolve ();return _bcaa (_bfgb );default:_ag .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 ,_ad .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _dddec :=_fecb .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065");_dddec !=nil {_gdadcd ,_dagg :=_fd .TraceToDirectObject (_dddec ).(*_fd .PdfObjectName );if !_dagg {_ag .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 ,_ad .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};_fgbdc .Subtype =_gdadcd ;};if _aaecg :=_fecb .Get ("\u0043o\u006c\u006f\u0072\u0061\u006e\u0074s");_aaecg !=nil {_fgbdc .Colorants =_aaecg ;};if _efdcb :=_fecb .Get ("\u0050r\u006f\u0063\u0065\u0073\u0073");
_efdcb !=nil {_fgbdc .Process =_efdcb ;};if _eafa :=_fecb .Get ("M\u0069\u0078\u0069\u006e\u0067\u0048\u0069\u006e\u0074\u0073");_eafa !=nil {_fgbdc .MixingHints =_eafa ;};return _fgbdc ,nil ;};
// NewStandard14FontMustCompile returns the standard 14 font named `basefont` as a *PdfFont.
// If `basefont` is one of the 14 Standard14Font values defined above then NewStandard14FontMustCompile
// is guaranteed to succeed.
func NewStandard14FontMustCompile (basefont StdFontName )*PdfFont {_gef ,_debae :=NewStandard14Font (basefont );if _debae !=nil {panic (_dc .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 _gef ;};const (_ PdfOutputIntentType =iota ;PdfOutputIntentTypeA1 ;PdfOutputIntentTypeA2 ;PdfOutputIntentTypeA3 ;PdfOutputIntentTypeA4 ;PdfOutputIntentTypeX ;);
// 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 (_adgfe *PdfReader )AcroFormNeedsRepair ()(bool ,error ){var _dfbcg []*PdfField ;if _adgfe .AcroForm !=nil {_dfbcg =_adgfe .AcroForm .AllFields ();};_bdccd :=make (map[*PdfField ]struct{},len (_dfbcg ));for _ ,_aefb :=range _dfbcg {_bdccd [_aefb ]=struct{}{};
};for _ ,_cddfg :=range _adgfe .PageList {_agdf ,_eegf :=_cddfg .GetAnnotations ();if _eegf !=nil {return false ,_eegf ;};for _ ,_baeef :=range _agdf {_feag ,_befad :=_baeef .GetContext ().(*PdfAnnotationWidget );if !_befad {continue ;};_ddec :=_feag .Field ();
if _ddec ==nil {return true ,nil ;};if _ ,_abgeg :=_bdccd [_ddec ];!_abgeg {return true ,nil ;};};};return false ,nil ;};
// SetOpenAction sets the OpenAction in the PDF catalog.
// The value shall be either an array defining a destination (12.3.2 "Destinations" PDF32000_2008),
// or an action dictionary representing an action (12.6 "Actions" PDF32000_2008).
func (_agddc *PdfWriter )SetOpenAction (dest _fd .PdfObject )error {if dest ==nil ||_fd .IsNullObject (dest ){return nil ;};_agddc ._fdaca .Set ("\u004f\u0070\u0065\u006e\u0041\u0063\u0074\u0069\u006f\u006e",dest );return _agddc .addObjects (dest );};func (_gfgff *PdfWriter )checkPendingObjects (){for _bffg ,_cebcd :=range _gfgff ._aaabd {if !_gfgff .hasObject (_bffg ){_ag .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",_bffg ,_bffg ,_bffg );
for _ ,_gfabda :=range _cebcd {for _ ,_dbgfe :=range _gfabda .Keys (){_gcbab :=_gfabda .Get (_dbgfe );if _gcbab ==_bffg {_ag .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");
_gfabda .Set (_dbgfe ,_fd .MakeNull ());break ;};};};};};};func _gcgad (_cedee *_fd .PdfObjectStream )(*PdfFunctionType0 ,error ){_eabgd :=&PdfFunctionType0 {};_eabgd ._efff =_cedee ;_fggdg :=_cedee .PdfObjectDictionary ;_ccfbc ,_bgeg :=_fd .TraceToDirectObject (_fggdg .Get ("\u0044\u006f\u006d\u0061\u0069\u006e")).(*_fd .PdfObjectArray );
if !_bgeg {_ag .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_ad .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 _ccfbc .Len ()< 0||_ccfbc .Len ()%2!=0{_ag .Log .Error ("\u0044\u006f\u006d\u0061\u0069\u006e\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");return nil ,_ad .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0064\u006f\u006da\u0069\u006e\u0020\u0072an\u0067\u0065");
};_eabgd .NumInputs =_ccfbc .Len ()/2;_bfbbf ,_bgccd :=_ccfbc .ToFloat64Array ();if _bgccd !=nil {return nil ,_bgccd ;};_eabgd .Domain =_bfbbf ;_ccfbc ,_bgeg =_fd .TraceToDirectObject (_fggdg .Get ("\u0052\u0061\u006eg\u0065")).(*_fd .PdfObjectArray );
if !_bgeg {_ag .Log .Error ("\u0052\u0061\u006e\u0067e \u006e\u006f\u0074\u0020\u0073\u0070\u0065\u0063\u0069\u0066\u0069\u0065\u0064");return nil ,_ad .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 _ccfbc .Len ()< 0||_ccfbc .Len ()%2!=0{return nil ,_ad .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0061\u006e\u0067\u0065");};_eabgd .NumOutputs =_ccfbc .Len ()/2;_bbdec ,_bgccd :=_ccfbc .ToFloat64Array ();if _bgccd !=nil {return nil ,_bgccd ;
};_eabgd .Range =_bbdec ;_ccfbc ,_bgeg =_fd .TraceToDirectObject (_fggdg .Get ("\u0053\u0069\u007a\u0065")).(*_fd .PdfObjectArray );if !_bgeg {_ag .Log .Error ("\u0053i\u007ae\u0020\u006e\u006f\u0074\u0020s\u0070\u0065c\u0069\u0066\u0069\u0065\u0064");
return nil ,_ad .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");};_eabab ,_bgccd :=_ccfbc .ToIntegerArray ();
if _bgccd !=nil {return nil ,_bgccd ;};if len (_eabab )!=_eabgd .NumInputs {_ag .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 ,_ad .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_eabgd .Size =_eabab ;_gggeg ,_bgeg :=_fd .TraceToDirectObject (_fggdg .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0053\u0061\u006d\u0070\u006c\u0065")).(*_fd .PdfObjectInteger );
if !_bgeg {_ag .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 ,_ad .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 *_gggeg !=1&&*_gggeg !=2&&*_gggeg !=4&&*_gggeg !=8&&*_gggeg !=12&&*_gggeg !=16&&*_gggeg !=24&&*_gggeg !=32{_ag .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",*_gggeg );
return nil ,_ad .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_eabgd .BitsPerSample =int (*_gggeg );_eabgd .Order =1;_ccafa ,_bgeg :=_fd .TraceToDirectObject (_fggdg .Get ("\u004f\u0072\u0064e\u0072")).(*_fd .PdfObjectInteger );
if _bgeg {if *_ccafa !=1&&*_ccafa !=3{_ag .Log .Error ("\u0049n\u0076a\u006c\u0069\u0064\u0020\u006fr\u0064\u0065r\u0020\u0028\u0025\u0064\u0029",*_ccafa );return nil ,_ad .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_eabgd .Order =int (*_ccafa );
};_ccfbc ,_bgeg =_fd .TraceToDirectObject (_fggdg .Get ("\u0045\u006e\u0063\u006f\u0064\u0065")).(*_fd .PdfObjectArray );if _bgeg {_ecad ,_fgcgc :=_ccfbc .ToFloat64Array ();if _fgcgc !=nil {return nil ,_fgcgc ;};_eabgd .Encode =_ecad ;};_ccfbc ,_bgeg =_fd .TraceToDirectObject (_fggdg .Get ("\u0044\u0065\u0063\u006f\u0064\u0065")).(*_fd .PdfObjectArray );
if _bgeg {_cfcfd ,_befdf :=_ccfbc .ToFloat64Array ();if _befdf !=nil {return nil ,_befdf ;};_eabgd .Decode =_cfcfd ;};_geggf ,_bgccd :=_fd .DecodeStream (_cedee );if _bgccd !=nil {return nil ,_bgccd ;};_eabgd ._facbf =_geggf ;return _eabgd ,nil ;};
// SetDocInfo sets the document /Info metadata.
// This will overwrite any globally declared document info.
func (_ebdc *PdfAppender )SetDocInfo (info *PdfInfo ){_ebdc ._edb =info };func (_aeee *PdfColorspaceSpecialSeparation )String ()string {return "\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e";};
// Field returns the parent form field of the widget annotation, if one exists.
// NOTE: the method returns nil if the parent form field has not been parsed.
func (_bebe *PdfAnnotationWidget )Field ()*PdfField {return _bebe ._eabc };
// ColorFromFloats returns a new PdfColor based on the input slice of color
// components.
func (_fafg *PdfColorspaceSpecialPattern )ColorFromFloats (vals []float64 )(PdfColor ,error ){if _fafg .UnderlyingCS ==nil {return nil ,_ad .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 _fafg .UnderlyingCS .ColorFromFloats (vals );};
// ToPdfObject returns colorspace in a PDF object format [name dictionary]
func (_cgfe *PdfColorspaceLab )ToPdfObject ()_fd .PdfObject {_cega :=_fd .MakeArray ();_cega .Append (_fd .MakeName ("\u004c\u0061\u0062"));_bged :=_fd .MakeDict ();if _cgfe .WhitePoint !=nil {_eddb :=_fd .MakeArray (_fd .MakeFloat (_cgfe .WhitePoint [0]),_fd .MakeFloat (_cgfe .WhitePoint [1]),_fd .MakeFloat (_cgfe .WhitePoint [2]));
_bged .Set ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074",_eddb );}else {_ag .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 _cgfe .BlackPoint !=nil {_cdegg :=_fd .MakeArray (_fd .MakeFloat (_cgfe .BlackPoint [0]),_fd .MakeFloat (_cgfe .BlackPoint [1]),_fd .MakeFloat (_cgfe .BlackPoint [2]));_bged .Set ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074",_cdegg );
};if _cgfe .Range !=nil {_eebb :=_fd .MakeArray (_fd .MakeFloat (_cgfe .Range [0]),_fd .MakeFloat (_cgfe .Range [1]),_fd .MakeFloat (_cgfe .Range [2]),_fd .MakeFloat (_cgfe .Range [3]));_bged .Set ("\u0052\u0061\u006eg\u0065",_eebb );};_cega .Append (_bged );
if _cgfe ._ddfd !=nil {_cgfe ._ddfd .PdfObject =_cega ;return _cgfe ._ddfd ;};return _cega ;};func (_gbacb *PdfWriter )AttachFile (file *EmbeddedFile )error {_bfdf :=_gbacb ._gdabc ;if _bfdf ==nil {_bfdf =_dfgfd ();};_faefd :=_bfdf .addEmbeddedFile (file );
if _faefd !=nil {return _faefd ;};_gbacb ._gdabc =_bfdf ;return nil ;};
// NewPdfActionGoTo3DView returns a new "goTo3DView" action.
func NewPdfActionGoTo3DView ()*PdfActionGoTo3DView {_dg :=NewPdfAction ();_dadd :=&PdfActionGoTo3DView {};_dadd .PdfAction =_dg ;_dg .SetContext (_dadd );return _dadd ;};func (_ebffd *pdfFontType3 )getFontDescriptor ()*PdfFontDescriptor {return _ebffd ._babe };
// PdfActionJavaScript represents a javaScript action.
type PdfActionJavaScript struct{*PdfAction ;JS _fd .PdfObject ;};
// GetMediaBox gets the inheritable media box value, either from the page
// or a higher up page/pages struct.
func (_dagdc *PdfPage )GetMediaBox ()(*PdfRectangle ,error ){if _dagdc .MediaBox !=nil {return _dagdc .MediaBox ,nil ;};_edbbg :=_dagdc .Parent ;for _edbbg !=nil {_dcece ,_eebad :=_fd .GetDict (_edbbg );if !_eebad {return nil ,_ad .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 _cdbgc :=_dcece .Get ("\u004d\u0065\u0064\u0069\u0061\u0042\u006f\u0078");_cdbgc !=nil {_egdba ,_gbcaad :=_fd .GetArray (_cdbgc );if !_gbcaad {return nil ,_ad .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006d\u0065\u0064\u0069a\u0020\u0062\u006f\u0078");
};_eeede ,_aeeef :=NewPdfRectangle (*_egdba );if _aeeef !=nil {return nil ,_aeeef ;};return _eeede ,nil ;};_edbbg =_dcece .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");};return nil ,_ad .New ("m\u0065\u0064\u0069\u0061 b\u006fx\u0020\u006e\u006f\u0074\u0020d\u0065\u0066\u0069\u006e\u0065\u0064");
};
// PdfAnnotationStamp represents Stamp annotations.
// (Section 12.5.6.12).
type PdfAnnotationStamp struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Name _fd .PdfObject ;};
// NewPdfColorspaceLab returns a new Lab colorspace object.
func NewPdfColorspaceLab ()*PdfColorspaceLab {_bbeba :=&PdfColorspaceLab {};_bbeba .BlackPoint =[]float64 {0.0,0.0,0.0};_bbeba .Range =[]float64 {-100,100,-100,100};return _bbeba ;};
// ToPdfObject implements interface PdfModel.
func (_gbeb *PdfActionMovie )ToPdfObject ()_fd .PdfObject {_gbeb .PdfAction .ToPdfObject ();_aaa :=_gbeb ._bfb ;_ace :=_aaa .PdfObject .(*_fd .PdfObjectDictionary );_ace .SetIfNotNil ("\u0053",_fd .MakeName (string (ActionTypeMovie )));_ace .SetIfNotNil ("\u0041\u006e\u006e\u006f\u0074\u0061\u0074\u0069\u006f\u006e",_gbeb .Annotation );
_ace .SetIfNotNil ("\u0054",_gbeb .T );_ace .SetIfNotNil ("\u004fp\u0065\u0072\u0061\u0074\u0069\u006fn",_gbeb .Operation );return _aaa ;};
// NewPdfActionJavaScript returns a new "javaScript" action.
func NewPdfActionJavaScript ()*PdfActionJavaScript {_aa :=NewPdfAction ();_age :=&PdfActionJavaScript {};_age .PdfAction =_aa ;_aa .SetContext (_age );return _age ;};
// PdfColorDeviceGray represents a grayscale color value that shall be represented by a single number in the
// range 0.0 to 1.0 where 0.0 corresponds to black and 1.0 to white.
type PdfColorDeviceGray float64 ;func (_bfc *PdfReader )newPdfAnnotationWatermarkFromDict (_fabcg *_fd .PdfObjectDictionary )(*PdfAnnotationWatermark ,error ){_cfga :=PdfAnnotationWatermark {};_cfga .FixedPrint =_fabcg .Get ("\u0046\u0069\u0078\u0065\u0064\u0050\u0072\u0069\u006e\u0074");
return &_cfga ,nil ;};
// ImageToRGB converts Lab colorspace image to RGB and returns the result.
func (_cagb *PdfColorspaceLab )ImageToRGB (img Image )(Image ,error ){_geae :=func (_bgac float64 )float64 {if _bgac >=6.0/29{return _bgac *_bgac *_bgac ;};return 108.0/841*(_bgac -4.0/29.0);};_gbae :=img ._cdbdc ;if len (_gbae )!=6{_ag .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");
_gbae =_cagb .DecodeArray ();};_ggea :=_bg .NewReader (img .getBase ());_acggg :=_gbed .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),3,nil ,img ._gfffd ,img ._cdbdc );_bggg :=_bg .NewWriter (_acggg );_efef :=_af .Pow (2,float64 (img .BitsPerComponent ))-1;
_dbfe :=make ([]uint32 ,3);var (_bage error ;Ls ,As ,Bs ,L ,M ,N ,X ,Y ,Z ,_cbg ,_bcgd ,_aebe float64 ;);for {_bage =_ggea .ReadSamples (_dbfe );if _bage ==_bc .EOF {break ;}else if _bage !=nil {return img ,_bage ;};Ls =float64 (_dbfe [0])/_efef ;As =float64 (_dbfe [1])/_efef ;
Bs =float64 (_dbfe [2])/_efef ;Ls =_gbed .LinearInterpolate (Ls ,0.0,1.0,_gbae [0],_gbae [1]);As =_gbed .LinearInterpolate (As ,0.0,1.0,_gbae [2],_gbae [3]);Bs =_gbed .LinearInterpolate (Bs ,0.0,1.0,_gbae [4],_gbae [5]);L =(Ls +16)/116+As /500;M =(Ls +16)/116;
N =(Ls +16)/116-Bs /200;X =_cagb .WhitePoint [0]*_geae (L );Y =_cagb .WhitePoint [1]*_geae (M );Z =_cagb .WhitePoint [2]*_geae (N );_cbg =3.240479*X +-1.537150*Y +-0.498535*Z ;_bcgd =-0.969256*X +1.875992*Y +0.041556*Z ;_aebe =0.055648*X +-0.204043*Y +1.057311*Z ;
_cbg =_af .Min (_af .Max (_cbg ,0),1.0);_bcgd =_af .Min (_af .Max (_bcgd ,0),1.0);_aebe =_af .Min (_af .Max (_aebe ,0),1.0);_dbfe [0]=uint32 (_cbg *_efef );_dbfe [1]=uint32 (_bcgd *_efef );_dbfe [2]=uint32 (_aebe *_efef );if _bage =_bggg .WriteSamples (_dbfe );
_bage !=nil {return img ,_bage ;};};return _eeafa (&_acggg ),nil ;};
// HasXObjectByName checks if has XObject resource by name.
func (_bageg *PdfPage )HasXObjectByName (name _fd .PdfObjectName )bool {_fcabe ,_gfgbd :=_bageg .Resources .XObject .(*_fd .PdfObjectDictionary );if !_gfgbd {return false ;};if _geacd :=_fcabe .Get (name );_geacd !=nil {return true ;};return false ;};
// ToPdfObject returns the PDF representation of the function.
func (_ggdac *PdfFunctionType2 )ToPdfObject ()_fd .PdfObject {_baaea :=_fd .MakeDict ();_baaea .Set ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065",_fd .MakeInteger (2));_fadbd :=&_fd .PdfObjectArray {};for _ ,_ecgcg :=range _ggdac .Domain {_fadbd .Append (_fd .MakeFloat (_ecgcg ));
};_baaea .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_fadbd );if _ggdac .Range !=nil {_dabe :=&_fd .PdfObjectArray {};for _ ,_cagga :=range _ggdac .Range {_dabe .Append (_fd .MakeFloat (_cagga ));};_baaea .Set ("\u0052\u0061\u006eg\u0065",_dabe );};if _ggdac .C0 !=nil {_badac :=&_fd .PdfObjectArray {};
for _ ,_cbbga :=range _ggdac .C0 {_badac .Append (_fd .MakeFloat (_cbbga ));};_baaea .Set ("\u0043\u0030",_badac );};if _ggdac .C1 !=nil {_gdee :=&_fd .PdfObjectArray {};for _ ,_cecd :=range _ggdac .C1 {_gdee .Append (_fd .MakeFloat (_cecd ));};_baaea .Set ("\u0043\u0031",_gdee );
};_baaea .Set ("\u004e",_fd .MakeFloat (_ggdac .N ));if _ggdac ._babf !=nil {_ggdac ._babf .PdfObject =_baaea ;return _ggdac ._babf ;};return _baaea ;};
// NewPdfAnnotationStamp returns a new stamp annotation.
func NewPdfAnnotationStamp ()*PdfAnnotationStamp {_cgeg :=NewPdfAnnotation ();_befa :=&PdfAnnotationStamp {};_befa .PdfAnnotation =_cgeg ;_befa .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_cgeg .SetContext (_befa );return _befa ;};func _abgab (_cbgce *_fd .PdfIndirectObject )(*PdfOutline ,error ){_cafaa ,_aebefe :=_cbgce .PdfObject .(*_fd .PdfObjectDictionary );
if !_aebefe {return nil ,_dc .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");};_fgfb :=NewPdfOutline ();if _ebbf :=_cafaa .Get ("\u0054\u0079\u0070\u0065");
_ebbf !=nil {_dfefb ,_ggdec :=_ebbf .(*_fd .PdfObjectName );if _ggdec {if *_dfefb !="\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0073"{_ag .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",*_dfefb );
};};};if _ggcb :=_cafaa .Get ("\u0043\u006f\u0075n\u0074");_ggcb !=nil {_bbfdg ,_bfdba :=_fd .GetNumberAsInt64 (_ggcb );if _bfdba !=nil {return nil ,_bfdba ;};_fgfb .Count =&_bbfdg ;};return _fgfb ,nil ;};type pdfFontType3 struct{fontCommon ;_fcac *_fd .PdfIndirectObject ;
// These fields are specific to Type 3 fonts.
CharProcs _fd .PdfObject ;Encoding _fd .PdfObject ;FontBBox _fd .PdfObject ;FontMatrix _fd .PdfObject ;FirstChar _fd .PdfObject ;LastChar _fd .PdfObject ;Widths _fd .PdfObject ;Resources _fd .PdfObject ;_febf map[_ee .CharCode ]float64 ;_eceb _ee .TextEncoder ;
};
// PdfPageResources is a Page resources model.
// Implements PdfModel.
type PdfPageResources struct{ExtGState _fd .PdfObject ;ColorSpace _fd .PdfObject ;Pattern _fd .PdfObject ;Shading _fd .PdfObject ;XObject _fd .PdfObject ;Font _fd .PdfObject ;ProcSet _fd .PdfObject ;Properties _fd .PdfObject ;_adegd *_fd .PdfObjectDictionary ;
_agaf *PdfPageResourcesColorspaces ;};
// AddOCSPs adds OCSPs to DSS.
func (_egaff *DSS )AddOCSPs (ocsps [][]byte )([]*_fd .PdfObjectStream ,error ){return _egaff .add (&_egaff .OCSPs ,_egaff ._baceg ,ocsps );};func (_bcbdb *PdfWriter )writeXRefStreams (_cafcgb int ,_cgbfg int64 )error {_abfaa :=_cafcgb +1;_bcbdb ._bccbb [_abfaa ]=crossReference {Type :1,ObjectNumber :_abfaa ,Offset :_cgbfg };
_cbgfg :=_bf .NewBuffer (nil );_fgcbcd :=_fd .MakeArray ();for _dacga :=0;_dacga <=_cafcgb ;{for ;_dacga <=_cafcgb ;_dacga ++{_cbdca ,_bgffc :=_bcbdb ._bccbb [_dacga ];if _bgffc &&(!_bcbdb ._fbgg ||_bcbdb ._fbgg &&(_cbdca .Type ==1&&_cbdca .Offset >=_bcbdb ._bfdbd ||_cbdca .Type ==0)){break ;
};};var _ebfff int ;for _ebfff =_dacga +1;_ebfff <=_cafcgb ;_ebfff ++{_gcfae ,_gfgd :=_bcbdb ._bccbb [_ebfff ];if _gfgd &&(!_bcbdb ._fbgg ||_bcbdb ._fbgg &&(_gcfae .Type ==1&&_gcfae .Offset > _bcbdb ._bfdbd )){continue ;};break ;};_fgcbcd .Append (_fd .MakeInteger (int64 (_dacga )),_fd .MakeInteger (int64 (_ebfff -_dacga )));
for _deddd :=_dacga ;_deddd < _ebfff ;_deddd ++{_aebgf :=_bcbdb ._bccbb [_deddd ];switch _aebgf .Type {case 0:_ff .Write (_cbgfg ,_ff .BigEndian ,byte (0));_ff .Write (_cbgfg ,_ff .BigEndian ,uint32 (0));_ff .Write (_cbgfg ,_ff .BigEndian ,uint16 (0xFFFF));
case 1:_ff .Write (_cbgfg ,_ff .BigEndian ,byte (1));_ff .Write (_cbgfg ,_ff .BigEndian ,uint32 (_aebgf .Offset ));_ff .Write (_cbgfg ,_ff .BigEndian ,uint16 (_aebgf .Generation ));case 2:_ff .Write (_cbgfg ,_ff .BigEndian ,byte (2));_ff .Write (_cbgfg ,_ff .BigEndian ,uint32 (_aebgf .ObjectNumber ));
_ff .Write (_cbgfg ,_ff .BigEndian ,uint16 (_aebgf .Index ));};};_dacga =_ebfff +1;};_fdffg ,_cafbg :=_fd .MakeStream (_cbgfg .Bytes (),_fd .NewFlateEncoder ());if _cafbg !=nil {return _cafbg ;};_fdffg .ObjectNumber =int64 (_abfaa );_fdffg .PdfObjectDictionary .Set ("\u0054\u0079\u0070\u0065",_fd .MakeName ("\u0058\u0052\u0065\u0066"));
_fdffg .PdfObjectDictionary .Set ("\u0057",_fd .MakeArray (_fd .MakeInteger (1),_fd .MakeInteger (4),_fd .MakeInteger (2)));_fdffg .PdfObjectDictionary .Set ("\u0049\u006e\u0064e\u0078",_fgcbcd );_fdffg .PdfObjectDictionary .Set ("\u0053\u0069\u007a\u0065",_fd .MakeInteger (int64 (_abfaa )));
_fdffg .PdfObjectDictionary .Set ("\u0049\u006e\u0066\u006f",_bcbdb ._ggdfa );_fdffg .PdfObjectDictionary .Set ("\u0052\u006f\u006f\u0074",_bcbdb ._defdd );if _bcbdb ._fbgg &&_bcbdb ._ecfc > 0{_fdffg .PdfObjectDictionary .Set ("\u0050\u0072\u0065\u0076",_fd .MakeInteger (_bcbdb ._ecfc ));
};if _bcbdb ._egadf !=nil {_fdffg .Set ("\u0045n\u0063\u0072\u0079\u0070\u0074",_bcbdb ._abbcc );};if _bcbdb ._bgdef ==nil &&_bcbdb ._gaeaa !=""&&_bcbdb ._cgaga !=""{_bcbdb ._bgdef =_fd .MakeArray (_fd .MakeHexString (_bcbdb ._gaeaa ),_fd .MakeHexString (_bcbdb ._cgaga ));
};if _bcbdb ._bgdef !=nil {_ag .Log .Trace ("\u0049d\u0073\u003a\u0020\u0025\u0073",_bcbdb ._bgdef );_fdffg .Set ("\u0049\u0044",_bcbdb ._bgdef );};_bcbdb .writeObject (int (_fdffg .ObjectNumber ),_fdffg );return nil ;};
// ToPdfObject returns the PDF representation of the outline tree node.
func (_dfaeg *PdfOutlineTreeNode )ToPdfObject ()_fd .PdfObject {return _dfaeg .GetContext ().ToPdfObject ();};
// 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 *_fd .PdfObjectInteger ;ColorSpace PdfColorspace ;Background *_fd .PdfObjectArray ;BBox *PdfRectangle ;AntiAlias *_fd .PdfObjectBool ;_cgfce PdfModel ;_cdgfd _fd .PdfObject ;};
// 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 ()_fd .PdfObject ;GetContainingPdfObject ()_fd .PdfObject ;};
// AddContentStreamByString adds content stream by string. Puts the content
// string into a stream object and points the content stream towards it.
func (_bcfaf *PdfPage )AddContentStreamByString (contentStr string )error {_fbeee ,_cadeg :=_fd .MakeStream ([]byte (contentStr ),_fd .NewFlateEncoder ());if _cadeg !=nil {return _cadeg ;};if _bcfaf .Contents ==nil {_bcfaf .Contents =_fbeee ;}else {_adgfb :=_fd .TraceToDirectObject (_bcfaf .Contents );
_ccacg ,_gbdd :=_adgfb .(*_fd .PdfObjectArray );if !_gbdd {_ccacg =_fd .MakeArray (_adgfb );};_ccacg .Append (_fbeee );_bcfaf .Contents =_ccacg ;};return nil ;};func (_badd *PdfAcroForm )fillImageWithAppearance (_fcff FieldImageProvider ,_cfeaa FieldAppearanceGenerator )error {if _badd ==nil {return nil ;
};_daffa ,_fegc :=_fcff .FieldImageValues ();if _fegc !=nil {return _fegc ;};for _ ,_dafa :=range _badd .AllFields (){_dbaac :=_dafa .PartialName ();_efbff ,_defc :=_daffa [_dbaac ];if !_defc {if _fagc ,_dfbga :=_dafa .FullName ();_dfbga ==nil {_efbff ,_defc =_daffa [_fagc ];
};};if !_defc {_ag .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",_dbaac );
continue ;};switch _aedde :=_dafa .GetContext ().(type ){case *PdfFieldButton :if _aedde .IsPush (){_aedde .SetFillImage (_efbff );};};if _cfeaa ==nil {continue ;};for _ ,_facf :=range _dafa .Annotations {_acgaa ,_gdffe :=_cfeaa .GenerateAppearanceDict (_badd ,_dafa ,_facf );
if _gdffe !=nil {return _gdffe ;};_facf .AP =_acgaa ;_facf .ToPdfObject ();};};return nil ;};const (RelationshipSource FileRelationship =iota ;RelationshipData ;RelationshipAlternative ;RelationshipSupplement ;RelationshipUnspecified ;);
// ToPdfObject implements interface PdfModel.
func (_gaf *PdfActionImportData )ToPdfObject ()_fd .PdfObject {_gaf .PdfAction .ToPdfObject ();_gde :=_gaf ._bfb ;_gabc :=_gde .PdfObject .(*_fd .PdfObjectDictionary );_gabc .SetIfNotNil ("\u0053",_fd .MakeName (string (ActionTypeImportData )));if _gaf .F !=nil {_gabc .Set ("\u0046",_gaf .F .ToPdfObject ());
};return _gde ;};
// PdfAnnotationPolygon represents Polygon annotations.
// (Section 12.5.6.9).
type PdfAnnotationPolygon struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Vertices _fd .PdfObject ;LE _fd .PdfObject ;BS _fd .PdfObject ;IC _fd .PdfObject ;BE _fd .PdfObject ;IT _fd .PdfObject ;Measure _fd .PdfObject ;};
// GenerateHashMaps generates DSS hashmaps for Certificates, OCSPs and CRLs to make sure they are unique.
func (_dbea *DSS )GenerateHashMaps ()error {_fabg ,_fdfcf :=_dbea .generateHashMap (_dbea .Certs );if _fdfcf !=nil {return _fdfcf ;};_cegf ,_fdfcf :=_dbea .generateHashMap (_dbea .OCSPs );if _fdfcf !=nil {return _fdfcf ;};_ddbc ,_fdfcf :=_dbea .generateHashMap (_dbea .CRLs );
if _fdfcf !=nil {return _fdfcf ;};_dbea ._ffbg =_fabg ;_dbea ._baceg =_cegf ;_dbea ._bgacf =_ddbc ;return nil ;};
// Outline represents a PDF outline dictionary (Table 152 - p. 376).
// Currently, the Outline object can only be used to construct PDF outlines.
type Outline struct{Entries []*OutlineItem `json:"entries,omitempty"`;};
// ToPdfObject implements interface PdfModel.
func (_ced *PdfAnnotationRedact )ToPdfObject ()_fd .PdfObject {_ced .PdfAnnotation .ToPdfObject ();_dddd :=_ced ._aeb ;_defgg :=_dddd .PdfObject .(*_fd .PdfObjectDictionary );_ced .PdfAnnotationMarkup .appendToPdfDictionary (_defgg );_defgg .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fd .MakeName ("\u0052\u0065\u0064\u0061\u0063\u0074"));
_defgg .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_ced .QuadPoints );_defgg .SetIfNotNil ("\u0049\u0043",_ced .IC );_defgg .SetIfNotNil ("\u0052\u004f",_ced .RO );_defgg .SetIfNotNil ("O\u0076\u0065\u0072\u006c\u0061\u0079\u0054\u0065\u0078\u0074",_ced .OverlayText );
_defgg .SetIfNotNil ("\u0052\u0065\u0070\u0065\u0061\u0074",_ced .Repeat );_defgg .SetIfNotNil ("\u0044\u0041",_ced .DA );_defgg .SetIfNotNil ("\u0051",_ced .Q );return _dddd ;};func _egffb (_fgeae *PdfField ,_debbag _fd .PdfObject ){for _ ,_eaac :=range _fgeae .Annotations {_eaac .AS =_debbag ;
_eaac .ToPdfObject ();};};
// Y returns the value of the yellow component of the color.
func (_adged *PdfColorDeviceCMYK )Y ()float64 {return _adged [2]};
// Hasher is the interface that wraps the basic Write method.
type Hasher interface{Write (_gggbc []byte )(_eefea int ,_ceefd error );};func (_adgcc *PdfReader )lookupPageByObject (_bgdc _fd .PdfObject )(*PdfPage ,error ){return nil ,_ad .New ("\u0070\u0061\u0067\u0065\u0020\u006e\u006f\u0074\u0020f\u006f\u0075\u006e\u0064");
};
// 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 ){_fdbf ,_eega :=_gbe .Open (filePath );if _eega !=nil {_ag .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",_eega );
return nil ,_eega ;};defer _fdbf .Close ();return NewPdfFontFromTTF (_fdbf );};
// SetReason sets the `Reason` field of the signature.
func (_eagdb *PdfSignature )SetReason (reason string ){_eagdb .Reason =_fd .MakeEncodedString (reason ,true );};
// NewMultipleFontEncoder returns instantiates a new *MultipleFontEncoder
func NewMultipleFontEncoder (fonts []*PdfFont )*MultipleFontEncoder {return &MultipleFontEncoder {_ccbbf :fonts ,CurrentFont :fonts [0]};};
// NewPdfColorspaceCalRGB returns a new CalRGB colorspace object.
func NewPdfColorspaceCalRGB ()*PdfColorspaceCalRGB {_fgaf :=&PdfColorspaceCalRGB {};_fgaf .BlackPoint =[]float64 {0.0,0.0,0.0};_fgaf .Gamma =[]float64 {1.0,1.0,1.0};_fgaf .Matrix =[]float64 {1,0,0,0,1,0,0,0,1};return _fgaf ;};
// 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 (_fceeg *LTV )EnableAll (extraCerts []*_gff .Certificate )error {_fafff :=_fceeg ._gaggb ._efec .AcroForm ;for _ ,_ddaf :=range _fafff .AllFields (){_cebdb ,_ :=_ddaf .GetContext ().(*PdfFieldSignature );if _cebdb ==nil {continue ;};_cbgd :=_cebdb .V ;
if _bgbac :=_fceeg .validateSig (_cbgd );_bgbac !=nil {_ag .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",_bgbac );
};if _dgbfa :=_fceeg .Enable (_cbgd ,extraCerts );_dgbfa !=nil {return _dgbfa ;};};return nil ;};
// NewPdfActionNamed returns a new "named" action.
func NewPdfActionNamed ()*PdfActionNamed {_fcg :=NewPdfAction ();_eab :=&PdfActionNamed {};_eab .PdfAction =_fcg ;_fcg .SetContext (_eab );return _eab ;};
// Write writes out the PDF.
func (_gfece *PdfWriter )Write (writer _bc .Writer )error {_ag .Log .Trace ("\u0057r\u0069\u0074\u0065\u0028\u0029");_cffbc :=_gfece .checkLicense ();if _cffbc !=nil {return _cffbc ;};if _cffbc =_gfece .writeOutlines ();_cffbc !=nil {return _cffbc ;};if _cffbc =_gfece .writeAcroFormFields ();
_cffbc !=nil {return _cffbc ;};if _cffbc =_gfece .writeNamesDictionary ();_cffbc !=nil {return _cffbc ;};_gfece .checkPendingObjects ();if _cffbc =_gfece .writeOutputIntents ();_cffbc !=nil {return _cffbc ;};_gfece .setCatalogVersion ();_gfece .copyObjects ();
if _cffbc =_gfece .optimize ();_cffbc !=nil {return _cffbc ;};if _cffbc =_gfece .optimizeDocument ();_cffbc !=nil {return _cffbc ;};var _abfeb _a .Hash ;if _gfece ._cgde {_abfeb =_dad .New ();writer =_bc .MultiWriter (_abfeb ,writer );};_gfece .setWriter (writer );
_bfggbe :=_gfece .checkCrossReferenceStream ();_dgcee ,_bfggbe :=_gfece .mapObjectStreams (_bfggbe );_gfece .adjustXRefAffectedVersion (_bfggbe );_gfece .writeDocumentVersion ();_gfece .updateObjectNumbers ();_gfece .writeObjects ();if _cffbc =_gfece .writeObjectsInStreams (_dgcee );
_cffbc !=nil {return _cffbc ;};_gaedc :=_gfece ._bbcab ;var _fdfbc int ;for _dfcafe :=range _gfece ._bccbb {if _dfcafe > _fdfbc {_fdfbc =_dfcafe ;};};if _gfece ._cgde {if _cffbc =_gfece .setHashIDs (_abfeb );_cffbc !=nil {return _cffbc ;};};if _bfggbe {if _cffbc =_gfece .writeXRefStreams (_fdfbc ,_gaedc );
_cffbc !=nil {return _cffbc ;};}else {_gfece .writeTrailer (_fdfbc );};_gfece .makeOffSetReference (_gaedc );if _cffbc =_gfece .flushWriter ();_cffbc !=nil {return _cffbc ;};return nil ;};
// SetBorderWidth sets the style's border width.
func (_deae *PdfBorderStyle )SetBorderWidth (width float64 ){_deae .W =&width };
// PdfActionURI represents an URI action.
type PdfActionURI struct{*PdfAction ;URI _fd .PdfObject ;IsMap _fd .PdfObject ;};
// DecodeArray returns the component range values for the Separation colorspace.
func (_accfc *PdfColorspaceSpecialSeparation )DecodeArray ()[]float64 {return []float64 {0,1.0}};func (_aaeb *PdfPage )flattenFieldsWithOpts (_cbaa FieldAppearanceGenerator ,_fbbe *FieldFlattenOpts ,_edgad map[*PdfAnnotation ]bool )error {var _cbdfb []*PdfAnnotation ;
if _cbaa !=nil {if _caef :=_cbaa .WrapContentStream (_aaeb );_caef !=nil {return _caef ;};};_dbed ,_edccb :=_aaeb .GetAnnotations ();if _edccb !=nil {return _edccb ;};for _ ,_cfgba :=range _dbed {_decfb ,_geeg :=_edgad [_cfgba ];if !_geeg &&_fbbe .AnnotFilterFunc !=nil {if _ ,_eeag :=_cfgba .GetContext ().(*PdfAnnotationWidget );
!_eeag {_geeg =_fbbe .AnnotFilterFunc (_cfgba );};};if !_geeg {_cbdfb =append (_cbdfb ,_cfgba );continue ;};switch _cfgba .GetContext ().(type ){case *PdfAnnotationPopup :continue ;case *PdfAnnotationLink :continue ;case *PdfAnnotationProjection :continue ;
};_ceagb ,_acdbe ,_acfd :=_edbab (_cfgba );if _acfd !=nil {if !_decfb {_ag .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 ;};_ag .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",_acfd );
continue ;};if _ceagb ==nil {continue ;};_ggfa :=_aaeb .Resources .GenerateXObjectName ();_aaeb .Resources .SetXObjectFormByName (_ggfa ,_ceagb );_ddeed ,_aggd ,_acfd :=_eedg (_ceagb );if _acfd !=nil {_ag .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",_acfd );
}else {_aacag :=_gdd .IdentityMatrix ();_aacag =_aacag .Translate (-_ddeed .Llx ,-_ddeed .Lly );if _aggd {_aebf :=0.0;if _ddeed .Width ()> 0{_aebf =_acdbe .Width ()/_ddeed .Width ();};_ddfg :=0.0;if _ddeed .Height ()> 0{_ddfg =_acdbe .Height ()/_ddeed .Height ();
};_aacag =_aacag .Scale (_aebf ,_ddfg );};_acdbe .Transform (_aacag );};_fdfb :=_af .Min (_acdbe .Llx ,_acdbe .Urx );_agea :=_af .Min (_acdbe .Lly ,_acdbe .Ury );var _gdggc []string ;_gdggc =append (_gdggc ,"\u0071");_gdggc =append (_gdggc ,_dc .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,_fdfb ,_agea ));
_gdggc =append (_gdggc ,_dc .Sprintf ("\u002f\u0025\u0073\u0020\u0044\u006f",_ggfa .String ()));_gdggc =append (_gdggc ,"\u0051");_bagc :=_gg .Join (_gdggc ,"\u000a");_acfd =_aaeb .AppendContentStream (_bagc );if _acfd !=nil {return _acfd ;};if _ceagb .Resources !=nil {_efead ,_gdefb :=_fd .GetDict (_ceagb .Resources .Font );
if _gdefb {for _ ,_acdgb :=range _efead .Keys (){if !_aaeb .Resources .HasFontByName (_acdgb ){_aaeb .Resources .SetFontByName (_acdgb ,_efead .Get (_acdgb ));};};};};};if len (_cbdfb )> 0{_aaeb ._gbaf =_cbdfb ;}else {_aaeb ._gbaf =[]*PdfAnnotation {};
};return nil ;};
// SetXObjectImageByName adds the provided XObjectImage to the page resources.
// The added XObjectImage is identified by the specified name.
func (_baabg *PdfPageResources )SetXObjectImageByName (keyName _fd .PdfObjectName ,ximg *XObjectImage )error {_acdbg :=ximg .ToPdfObject ().(*_fd .PdfObjectStream );_efbce :=_baabg .SetXObjectByName (keyName ,_acdbg );return _efbce ;};
// 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 (_edcg pdfFontSimple )GetCharMetrics (code _ee .CharCode )(_cf .CharMetrics ,bool ){if _ebaff ,_fageg :=_edcg ._bafeg [code ];_fageg {return _cf .CharMetrics {Wx :_ebaff },true ;};if _cf .IsStdFont (_cf .StdFontName (_edcg ._ffedb )){return _cf .CharMetrics {Wx :250},true ;
};return _cf .CharMetrics {},false ;};
// PdfVersion returns version of the PDF file.
func (_beee *PdfReader )PdfVersion ()_fd .Version {return _beee ._faaf .PdfVersion ()};
// AddWatermarkImage adds a watermark to the page.
func (_bbcf *PdfPage )AddWatermarkImage (ximg *XObjectImage ,opt WatermarkImageOptions )error {_dbef ,_gfcf :=_bbcf .GetMediaBox ();if _gfcf !=nil {return _gfcf ;};_ebcce :=_dbef .Urx -_dbef .Llx ;_bdgda :=_dbef .Ury -_dbef .Lly ;_babfb :=float64 (*ximg .Width );
_eaebe :=(_ebcce -_babfb )/2;if opt .FitToWidth {_babfb =_ebcce ;_eaebe =0;};_gfgef :=_bdgda ;_fgac :=float64 (0);if opt .PreserveAspectRatio {_gfgef =_babfb *float64 (*ximg .Height )/float64 (*ximg .Width );_fgac =(_bdgda -_gfgef )/2;};if _bbcf .Resources ==nil {_bbcf .Resources =NewPdfPageResources ();
};_cceaa :=0;_edefd :=_fd .PdfObjectName (_dc .Sprintf ("\u0049\u006d\u0077%\u0064",_cceaa ));for _bbcf .Resources .HasXObjectByName (_edefd ){_cceaa ++;_edefd =_fd .PdfObjectName (_dc .Sprintf ("\u0049\u006d\u0077%\u0064",_cceaa ));};_gfcf =_bbcf .AddImageResource (_edefd ,ximg );
if _gfcf !=nil {return _gfcf ;};_cceaa =0;_ddgbf :=_fd .PdfObjectName (_dc .Sprintf ("\u0047\u0053\u0025\u0064",_cceaa ));for _bbcf .HasExtGState (_ddgbf ){_cceaa ++;_ddgbf =_fd .PdfObjectName (_dc .Sprintf ("\u0047\u0053\u0025\u0064",_cceaa ));};_caffd :=_fd .MakeDict ();
_caffd .Set ("\u0042\u004d",_fd .MakeName ("\u004e\u006f\u0072\u006d\u0061\u006c"));_caffd .Set ("\u0043\u0041",_fd .MakeFloat (opt .Alpha ));_caffd .Set ("\u0063\u0061",_fd .MakeFloat (opt .Alpha ));_gfcf =_bbcf .AddExtGState (_ddgbf ,_caffd );if _gfcf !=nil {return _gfcf ;
};_bddcd :=_dc .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",_ddgbf ,_babfb ,_gfgef ,_eaebe ,_fgac ,_edefd );
_bbcf .AddContentStreamByString (_bddcd );return nil ;};
// NewPdfAnnotation returns an initialized generic PDF annotation model.
func NewPdfAnnotation ()*PdfAnnotation {_dagd :=&PdfAnnotation {};_dagd ._aeb =_fd .MakeIndirectObject (_fd .MakeDict ());return _dagd ;};
// PdfActionLaunch represents a launch action.
type PdfActionLaunch struct{*PdfAction ;F *PdfFilespec ;Win _fd .PdfObject ;Mac _fd .PdfObject ;Unix _fd .PdfObject ;NewWindow _fd .PdfObject ;};
// SetDSS sets the DSS dictionary (ETSI TS 102 778-4 V1.1.1) of the current
// document revision.
func (_ccfd *PdfAppender )SetDSS (dss *DSS ){if dss !=nil {_ccfd .updateObjectsDeep (dss .ToPdfObject (),nil );};_ccfd ._bgge =dss ;};
// GetAnnotations returns the list of page annotations for `page`. If not loaded attempts to load the
// annotations, otherwise returns the loaded list.
func (_dadb *PdfPage )GetAnnotations ()([]*PdfAnnotation ,error ){if _dadb ._gbaf !=nil {return _dadb ._gbaf ,nil ;};if _dadb .Annots ==nil {_dadb ._gbaf =[]*PdfAnnotation {};return nil ,nil ;};if _dadb ._dfaff ==nil {_dadb ._gbaf =[]*PdfAnnotation {};
return nil ,nil ;};_becf ,_dfadg :=_dadb ._dfaff .loadAnnotations (_dadb .Annots );if _dfadg !=nil {return nil ,_dfadg ;};if _becf ==nil {_dadb ._gbaf =[]*PdfAnnotation {};};_dadb ._gbaf =_becf ;return _dadb ._gbaf ,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 _fd .PdfObject ;_fdac []byte ;_ecdg *_fd .PdfIndirectObject ;};
// GetDescent returns the Descent of the font `descriptor`.
func (_ggbd *PdfFontDescriptor )GetDescent ()(float64 ,error ){return _fd .GetNumberAsFloat (_ggbd .Descent );};
// 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 ,_ee .SimpleEncoder ,error ){_eafga ,_cgec :=_bceg (basefont );if _cgec !=nil {return nil ,nil ,_cgec ;};_adbb ,_adfd :=_eafga .Encoder ().(_ee .SimpleEncoder );
if !_adfd {return nil ,nil ,_dc .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",_eafga .Encoder ());
};_dcdbb :=make (map[rune ]_ee .GlyphName );for _dfbb :=range alphabet {if _ ,_ecff :=_adbb .RuneToCharcode (_dfbb );!_ecff {_ ,_abfe :=_eafga ._dcgdd .Read (_dfbb );if !_abfe {_ag .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",_dfbb ,_dfbb );
continue ;};_aegaf ,_abfe :=_ee .RuneToGlyph (_dfbb );if !_abfe {_ag .Log .Debug ("\u006eo\u0020\u0067\u006c\u0079\u0070\u0068\u0020\u0066\u006f\u0072\u0020r\u0075\u006e\u0065\u0020\u0025\u0023\u0078\u003d\u0025\u0071",_dfbb ,_dfbb );continue ;};if len (_dcdbb )>=255{return nil ,nil ,_ad .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");
};_dcdbb [_dfbb ]=_aegaf ;};};var (_gacec []_ee .CharCode ;_ddgab []_ee .CharCode ;);for _gfdf :=_ee .CharCode (1);_gfdf <=0xff;_gfdf ++{_gdadb ,_aggae :=_adbb .CharcodeToRune (_gfdf );if !_aggae {_gacec =append (_gacec ,_gfdf );continue ;};if _ ,_aggae =alphabet [_gdadb ];
!_aggae {_ddgab =append (_ddgab ,_gfdf );};};_egdf :=append (_gacec ,_ddgab ...);if len (_egdf )< len (_dcdbb ){return nil ,nil ,_dc .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 (_dcdbb ),len (_egdf ));
};_efbaf :=make ([]rune ,0,len (_dcdbb ));for _dgbgd :=range _dcdbb {_efbaf =append (_efbaf ,_dgbgd );};_da .Slice (_efbaf ,func (_bgea ,_bcea int )bool {return _efbaf [_bgea ]< _efbaf [_bcea ]});_eebgd :=make (map[_ee .CharCode ]_ee .GlyphName ,len (_efbaf ));
for _ ,_acfdb :=range _efbaf {_dcef :=_egdf [0];_egdf =_egdf [1:];_eebgd [_dcef ]=_dcdbb [_acfdb ];};_adbb =_ee .ApplyDifferences (_adbb ,_eebgd );_eafga .SetEncoder (_adbb );return &PdfFont {_gbaac :&_eafga },_adbb ,nil ;};
// StringToCharcodeBytes maps the provided string runes to charcode bytes and
// it returns the resulting slice of bytes, along with the number of runes
// which could not be converted. If the number of misses is 0, all string runes
// were successfully converted.
func (_dgbad *PdfFont )StringToCharcodeBytes (str string )([]byte ,int ){return _dgbad .RunesToCharcodeBytes ([]rune (str ));};
// WriteString outputs the object as it is to be written to file.
func (_cccga *pdfSignDictionary )WriteString ()string {_cccga ._cfdbb =0;_cccga ._efcd =0;_cccga ._cdfec =0;_cccga ._cecea =0;_bgga :=_bf .NewBuffer (nil );_bgga .WriteString ("\u003c\u003c");for _ ,_fabaa :=range _cccga .Keys (){_efgfb :=_cccga .Get (_fabaa );
switch _fabaa {case "\u0042y\u0074\u0065\u0052\u0061\u006e\u0067e":_bgga .WriteString (_fabaa .WriteString ());_bgga .WriteString ("\u0020");_cccga ._cdfec =_bgga .Len ();_bgga .WriteString (_efgfb .WriteString ());_bgga .WriteString ("\u0020");_cccga ._cecea =_bgga .Len ()-1;
case "\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073":_bgga .WriteString (_fabaa .WriteString ());_bgga .WriteString ("\u0020");_cccga ._cfdbb =_bgga .Len ();_bgga .WriteString (_efgfb .WriteString ());_bgga .WriteString ("\u0020");_cccga ._efcd =_bgga .Len ()-1;
default:_bgga .WriteString (_fabaa .WriteString ());_bgga .WriteString ("\u0020");_bgga .WriteString (_efgfb .WriteString ());};};_bgga .WriteString ("\u003e\u003e");return _bgga .String ();};
// GetDocMDPPermission returns the DocMDP level of the restrictions
func (_gccdg *PdfSignature )GetDocMDPPermission ()(_gfg .DocMDPPermission ,bool ){for _ ,_acegbb :=range _gccdg .Reference .Elements (){if _ecdee ,_dgcaf :=_fd .GetDict (_acegbb );_dgcaf {if _ebegb ,_cfde :=_fd .GetNameVal (_ecdee .Get ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u004d\u0065\u0074\u0068\u006f\u0064"));
_cfde &&_ebegb =="\u0044\u006f\u0063\u004d\u0044\u0050"{if _dgbdeg ,_dafag :=_fd .GetDict (_ecdee .Get ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u0050\u0061\u0072\u0061\u006d\u0073"));_dafag {if P ,_aaecfg :=_fd .GetIntVal (_dgbdeg .Get ("\u0050"));
_aaecfg {return _gfg .DocMDPPermission (P ),true ;};};};};};return 0,false ;};
// ToInteger convert to an integer format.
func (_badc *PdfColorCalRGB )ToInteger (bits int )[3]uint32 {_dddf :=_af .Pow (2,float64 (bits ))-1;return [3]uint32 {uint32 (_dddf *_badc .A ()),uint32 (_dddf *_badc .B ()),uint32 (_dddf *_badc .C ())};};
// ToPdfObject implements interface PdfModel.
func (_ddca *PdfAnnotationCircle )ToPdfObject ()_fd .PdfObject {_ddca .PdfAnnotation .ToPdfObject ();_beef :=_ddca ._aeb ;_egc :=_beef .PdfObject .(*_fd .PdfObjectDictionary );_ddca .PdfAnnotationMarkup .appendToPdfDictionary (_egc );_egc .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fd .MakeName ("\u0043\u0069\u0072\u0063\u006c\u0065"));
_egc .SetIfNotNil ("\u0042\u0053",_ddca .BS );_egc .SetIfNotNil ("\u0049\u0043",_ddca .IC );_egc .SetIfNotNil ("\u0042\u0045",_ddca .BE );_egc .SetIfNotNil ("\u0052\u0044",_ddca .RD );return _beef ;};
// CustomKeys returns all custom info keys as list.
func (_efaec *PdfInfo )CustomKeys ()[]string {if _efaec ._defeg ==nil {return nil ;};_ecgbf :=make ([]string ,len (_efaec ._defeg .Keys ()));for _ ,_fdae :=range _efaec ._defeg .Keys (){_ecgbf =append (_ecgbf ,_fdae .String ());};return _ecgbf ;};func (_bfggc *PdfWriter )writeTrailer (_gdccde int ){_bfggc .writeString ("\u0078\u0072\u0065\u0066\u000d\u000a");
for _edadd :=0;_edadd <=_gdccde ;{for ;_edadd <=_gdccde ;_edadd ++{_gedg ,_ddecb :=_bfggc ._bccbb [_edadd ];if _ddecb &&(!_bfggc ._fbgg ||_bfggc ._fbgg &&(_gedg .Type ==1&&_gedg .Offset >=_bfggc ._bfdbd ||_gedg .Type ==0)){break ;};};var _fdbbag int ;for _fdbbag =_edadd +1;
_fdbbag <=_gdccde ;_fdbbag ++{_fgageb ,_bbge :=_bfggc ._bccbb [_fdbbag ];if _bbge &&(!_bfggc ._fbgg ||_bfggc ._fbgg &&(_fgageb .Type ==1&&_fgageb .Offset > _bfggc ._bfdbd )){continue ;};break ;};_fdegf :=_dc .Sprintf ("\u0025d\u0020\u0025\u0064\u000d\u000a",_edadd ,_fdbbag -_edadd );
_bfggc .writeString (_fdegf );for _beaaa :=_edadd ;_beaaa < _fdbbag ;_beaaa ++{_egagf :=_bfggc ._bccbb [_beaaa ];switch _egagf .Type {case 0:_fdegf =_dc .Sprintf ("\u0025\u002e\u0031\u0030\u0064\u0020\u0025\u002e\u0035d\u0020\u0066\u000d\u000a",0,65535);
_bfggc .writeString (_fdegf );case 1:_fdegf =_dc .Sprintf ("\u0025\u002e\u0031\u0030\u0064\u0020\u0025\u002e\u0035d\u0020\u006e\u000d\u000a",_egagf .Offset ,0);_bfggc .writeString (_fdegf );};};_edadd =_fdbbag +1;};_gdcbab :=_fd .MakeDict ();_gdcbab .Set ("\u0049\u006e\u0066\u006f",_bfggc ._ggdfa );
_gdcbab .Set ("\u0052\u006f\u006f\u0074",_bfggc ._defdd );_gdcbab .Set ("\u0053\u0069\u007a\u0065",_fd .MakeInteger (int64 (_gdccde +1)));if _bfggc ._fbgg &&_bfggc ._ecfc > 0{_gdcbab .Set ("\u0050\u0072\u0065\u0076",_fd .MakeInteger (_bfggc ._ecfc ));};
if _bfggc ._egadf !=nil {_gdcbab .Set ("\u0045n\u0063\u0072\u0079\u0070\u0074",_bfggc ._abbcc );};if _bfggc ._bgdef ==nil &&_bfggc ._gaeaa !=""&&_bfggc ._cgaga !=""{_bfggc ._bgdef =_fd .MakeArray (_fd .MakeHexString (_bfggc ._gaeaa ),_fd .MakeHexString (_bfggc ._cgaga ));
};if _bfggc ._bgdef !=nil {_gdcbab .Set ("\u0049\u0044",_bfggc ._bgdef );_ag .Log .Trace ("\u0049d\u0073\u003a\u0020\u0025\u0073",_bfggc ._bgdef );};_bfggc .writeString ("\u0074\u0072\u0061\u0069\u006c\u0065\u0072\u000a");_bfggc .writeString (_gdcbab .WriteString ());
_bfggc .writeString ("\u000a");};func (_ddfa *PdfReader )newPdfActionGoTo3DViewFromDict (_agd *_fd .PdfObjectDictionary )(*PdfActionGoTo3DView ,error ){return &PdfActionGoTo3DView {TA :_agd .Get ("\u0054\u0041"),V :_agd .Get ("\u0056")},nil ;};
// PdfInfoTrapped specifies pdf trapped information.
type PdfInfoTrapped string ;
// NewPdfColorspaceDeviceCMYK returns a new CMYK32 colorspace object.
func NewPdfColorspaceDeviceCMYK ()*PdfColorspaceDeviceCMYK {return &PdfColorspaceDeviceCMYK {}};
// 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 (_ebfa *LTV )EnableByName (name string ,extraCerts []*_gff .Certificate )error {_dcca :=_ebfa ._gaggb ._efec .AcroForm ;for _ ,_cddb :=range _dcca .AllFields (){_aaecf ,_ :=_cddb .GetContext ().(*PdfFieldSignature );if _aaecf ==nil {continue ;};if _cabe :=_aaecf .PartialName ();
_cabe !=name {continue ;};return _ebfa .Enable (_aaecf .V ,extraCerts );};return nil ;};
// PdfColorCalGray represents a CalGray colorspace.
type PdfColorCalGray float64 ;
// GetNumPages returns the number of pages in the document.
func (_cafde *PdfReader )GetNumPages ()(int ,error ){if _cafde ._faaf .GetCrypter ()!=nil &&!_cafde ._faaf .IsAuthenticated (){return 0,_dc .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 (_cafde ._bbfca ),nil ;};func (_bccc *PdfReader )newPdfActionHideFromDict (_abca *_fd .PdfObjectDictionary )(*PdfActionHide ,error ){return &PdfActionHide {T :_abca .Get ("\u0054"),H :_abca .Get ("\u0048")},nil ;};func (_gbacd *PdfReader )loadForms ()(*PdfAcroForm ,error ){if _gbacd ._faaf .GetCrypter ()!=nil &&!_gbacd ._faaf .IsAuthenticated (){return nil ,_dc .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");
};_gdabe :=_gbacd ._gabca ;_cdae :=_gdabe .Get ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d");if _cdae ==nil {return nil ,nil ;};_dgbaf ,_cadef :=_fd .GetIndirect (_cdae );_cdae =_fd .TraceToDirectObject (_cdae );if _fd .IsNullObject (_cdae ){_ag .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 ;};_fedaa ,_acfbfa :=_fd .GetDict (_cdae );if !_acfbfa {_ag .Log .Debug ("\u0049n\u0076\u0061\u006c\u0069d\u0020\u0041\u0063\u0072\u006fF\u006fr\u006d \u0065\u006e\u0074\u0072\u0079\u0020\u0025T",_cdae );_ag .Log .Debug ("\u0044\u006f\u0065\u0073 n\u006f\u0074\u0020\u0068\u0061\u0076\u0065\u0020\u0066\u006f\u0072\u006d\u0073");
return nil ,_dc .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0061\u0063\u0072\u006ff\u006fr\u006d \u0065\u006e\u0074\u0072\u0079\u0020\u0025T",_cdae );};_ag .Log .Trace ("\u0048\u0061\u0073\u0020\u0041\u0063\u0072\u006f\u0020f\u006f\u0072\u006d\u0073");
_ag .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 !_gbacd ._gfdda {_ceeaa :=_gbacd .traverseObjectData (_fedaa );
if _ceeaa !=nil {_ag .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",_ceeaa );
return nil ,_ceeaa ;};};_gdgf ,_fegdb :=_gbacd .newPdfAcroFormFromDict (_dgbaf ,_fedaa );if _fegdb !=nil {return nil ,_fegdb ;};_gdgf ._cfbb =!_cadef ;return _gdgf ,nil ;};func (_fgffa *pdfCIDFontType2 )getFontDescriptor ()*PdfFontDescriptor {return _fgffa ._babe };
// ToPdfObject implements interface PdfModel.
// Note: Call the sub-annotation's ToPdfObject to set both the generic and non-generic information.
func (_aggf *PdfAnnotation )ToPdfObject ()_fd .PdfObject {_ebbg :=_aggf ._aeb ;_eefe :=_ebbg .PdfObject .(*_fd .PdfObjectDictionary );_eefe .Clear ();_eefe .Set ("\u0054\u0079\u0070\u0065",_fd .MakeName ("\u0041\u006e\u006eo\u0074"));_eefe .SetIfNotNil ("\u0052\u0065\u0063\u0074",_aggf .Rect );
_eefe .SetIfNotNil ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073",_aggf .Contents );_eefe .SetIfNotNil ("\u0050",_aggf .P );_eefe .SetIfNotNil ("\u004e\u004d",_aggf .NM );_eefe .SetIfNotNil ("\u004d",_aggf .M );_eefe .SetIfNotNil ("\u0046",_aggf .F );
_eefe .SetIfNotNil ("\u0041\u0050",_aggf .AP );_eefe .SetIfNotNil ("\u0041\u0053",_aggf .AS );_eefe .SetIfNotNil ("\u0042\u006f\u0072\u0064\u0065\u0072",_aggf .Border );_eefe .SetIfNotNil ("\u0043",_aggf .C );_eefe .SetIfNotNil ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074",_aggf .StructParent );
_eefe .SetIfNotNil ("\u004f\u0043",_aggf .OC );return _ebbg ;};
// ColorToRGB converts a CalGray color to an RGB color.
func (_bfaa *PdfColorspaceCalGray )ColorToRGB (color PdfColor )(PdfColor ,error ){_afbc ,_gabg :=color .(*PdfColorCalGray );if !_gabg {_ag .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 ,_ad .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};ANorm :=_afbc .Val ();X :=_bfaa .WhitePoint [0]*_af .Pow (ANorm ,_bfaa .Gamma );Y :=_bfaa .WhitePoint [1]*_af .Pow (ANorm ,_bfaa .Gamma );
Z :=_bfaa .WhitePoint [2]*_af .Pow (ANorm ,_bfaa .Gamma );_aefg :=3.240479*X +-1.537150*Y +-0.498535*Z ;_bbece :=-0.969256*X +1.875992*Y +0.041556*Z ;_bcfb :=0.055648*X +-0.204043*Y +1.057311*Z ;_aefg =_af .Min (_af .Max (_aefg ,0),1.0);_bbece =_af .Min (_af .Max (_bbece ,0),1.0);
_bcfb =_af .Min (_af .Max (_bcfb ,0),1.0);return NewPdfColorDeviceRGB (_aefg ,_bbece ,_bcfb ),nil ;};
// SetPdfCreator sets the Creator attribute of the output PDF.
func SetPdfCreator (creator string ){_feadd .Lock ();defer _feadd .Unlock ();_feebde =creator };func (_acaa *PdfReader )newPdfFieldFromIndirectObject (_cedba *_fd .PdfIndirectObject ,_eagag *PdfField )(*PdfField ,error ){if _abedc ,_eedd :=_acaa ._fbabb .GetModelFromPrimitive (_cedba ).(*PdfField );
_eedd {return _abedc ,nil ;};_bacaa ,_dedg :=_fd .GetDict (_cedba );if !_dedg {return nil ,_dc .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");
};_ccaf :=NewPdfField ();_ccaf ._dffeb =_cedba ;_ccaf ._dffeb .PdfObject =_bacaa ;if _dged ,_geed :=_fd .GetName (_bacaa .Get ("\u0046\u0054"));_geed {_ccaf .FT =_dged ;};if _eagag !=nil {_ccaf .Parent =_eagag ;};_ccaf .T ,_ =_bacaa .Get ("\u0054").(*_fd .PdfObjectString );
_ccaf .TU ,_ =_bacaa .Get ("\u0054\u0055").(*_fd .PdfObjectString );_ccaf .TM ,_ =_bacaa .Get ("\u0054\u004d").(*_fd .PdfObjectString );_ccaf .Ff ,_ =_bacaa .Get ("\u0046\u0066").(*_fd .PdfObjectInteger );_ccaf .V =_bacaa .Get ("\u0056");_ccaf .DV =_bacaa .Get ("\u0044\u0056");
_ccaf .AA =_bacaa .Get ("\u0041\u0041");if DA :=_bacaa .Get ("\u0044\u0041");DA !=nil {DA ,_ :=_fd .GetString (DA );_ccaf .VariableText =&VariableText {DA :DA };Q ,_ :=_bacaa .Get ("\u0051").(*_fd .PdfObjectInteger );DS ,_ :=_bacaa .Get ("\u0044\u0053").(*_fd .PdfObjectString );
RV :=_bacaa .Get ("\u0052\u0056");_ccaf .VariableText .Q =Q ;_ccaf .VariableText .DS =DS ;_ccaf .VariableText .RV =RV ;};_afee :=_ccaf .FT ;if _afee ==nil &&_eagag !=nil {_afee =_eagag .FT ;};if _afee !=nil {switch *_afee {case "\u0054\u0078":_bgbda ,_aeeab :=_cdcc (_bacaa );
if _aeeab !=nil {return nil ,_aeeab ;};_bgbda .PdfField =_ccaf ;_ccaf ._becad =_bgbda ;case "\u0043\u0068":_cgddfe ,_fafgc :=_fadbb (_bacaa );if _fafgc !=nil {return nil ,_fafgc ;};_cgddfe .PdfField =_ccaf ;_ccaf ._becad =_cgddfe ;case "\u0042\u0074\u006e":_fbce ,_bafe :=_eadc (_bacaa );
if _bafe !=nil {return nil ,_bafe ;};_fbce .PdfField =_ccaf ;_ccaf ._becad =_fbce ;case "\u0053\u0069\u0067":_dbba ,_cafb :=_acaa .newPdfFieldSignatureFromDict (_bacaa );if _cafb !=nil {return nil ,_cafb ;};_dbba .PdfField =_ccaf ;_ccaf ._becad =_dbba ;
default:_ag .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",*_ccaf .FT );return nil ,_ad .New ("\u0075\u006e\u0073\u0075pp\u006f\u0072\u0074\u0065\u0064\u0020\u0066\u0069\u0065\u006c\u0064\u0020\u0074\u0079p\u0065");
};};if _ebcab ,_gdgbe :=_fd .GetName (_bacaa .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065"));_gdgbe {if *_ebcab =="\u0057\u0069\u0064\u0067\u0065\u0074"{_ffbb ,_abdca :=_acaa .newPdfAnnotationFromIndirectObject (_cedba );if _abdca !=nil {return nil ,_abdca ;
};_fdbbg ,_defde :=_ffbb .GetContext ().(*PdfAnnotationWidget );if !_defde {return nil ,_ad .New ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0077\u0069\u0064\u0067e\u0074 \u0061n\u006e\u006f\u0074\u0061\u0074\u0069\u006fn");};_fdbbg ._eabc =_ccaf ;_fdbbg .Parent =_ccaf ._dffeb ;
_ccaf .Annotations =append (_ccaf .Annotations ,_fdbbg );return _ccaf ,nil ;};};_gabcb :=true ;if _efecd ,_cadff :=_fd .GetArray (_bacaa .Get ("\u004b\u0069\u0064\u0073"));_cadff {_fdeb :=make ([]*_fd .PdfIndirectObject ,0,_efecd .Len ());for _ ,_gccca :=range _efecd .Elements (){_bfd ,_gdggg :=_fd .GetIndirect (_gccca );
if !_gdggg {_aegcd ,_egbaa :=_fd .GetStream (_gccca );if _egbaa &&_aegcd .PdfObjectDictionary !=nil {_eddg ,_cabg :=_fd .GetNameVal (_aegcd .Get ("\u0054\u0079\u0070\u0065"));if _cabg &&_eddg =="\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061"{_ag .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 ,_ad .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");};_ddaeb ,_gacb :=_fd .GetDict (_bfd );
if !_gacb {return nil ,ErrTypeCheck ;};if _gabcb {_gabcb =!_gdfa (_ddaeb );};_fdeb =append (_fdeb ,_bfd );};for _ ,_ffbgb :=range _fdeb {if _gabcb {_dfea ,_fcaf :=_acaa .newPdfAnnotationFromIndirectObject (_ffbgb );if _fcaf !=nil {_ag .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",_fcaf );
return nil ,_fcaf ;};_fbbba ,_eafb :=_dfea ._cfda .(*PdfAnnotationWidget );if !_eafb {return nil ,ErrTypeCheck ;};_fbbba ._eabc =_ccaf ;_ccaf .Annotations =append (_ccaf .Annotations ,_fbbba );}else {_fbaab ,_bafbf :=_acaa .newPdfFieldFromIndirectObject (_ffbgb ,_ccaf );
if _bafbf !=nil {_ag .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",_bafbf );return nil ,_bafbf ;};_ccaf .Kids =append (_ccaf .Kids ,_fbaab );
};};};return _ccaf ,nil ;};func _eagg (_cedgf []byte )([]byte ,error ){_cbgea :=_ed .New ();if _ ,_befdd :=_bc .Copy (_cbgea ,_bf .NewReader (_cedgf ));_befdd !=nil {return nil ,_befdd ;};return _cbgea .Sum (nil ),nil ;};
// SetContext sets the specific fielddata type, e.g. would be PdfFieldButton for a button field.
func (_ecacc *PdfField )SetContext (ctx PdfModel ){_ecacc ._becad =ctx };
// NewPdfAnnotationTrapNet returns a new trapnet annotation.
func NewPdfAnnotationTrapNet ()*PdfAnnotationTrapNet {_dca :=NewPdfAnnotation ();_baed :=&PdfAnnotationTrapNet {};_baed .PdfAnnotation =_dca ;_dca .SetContext (_baed );return _baed ;};
// ToPdfObject implements interface PdfModel.
func (_eabf *PdfActionGoTo3DView )ToPdfObject ()_fd .PdfObject {_eabf .PdfAction .ToPdfObject ();_fee :=_eabf ._bfb ;_fgd :=_fee .PdfObject .(*_fd .PdfObjectDictionary );_fgd .SetIfNotNil ("\u0053",_fd .MakeName (string (ActionTypeGoTo3DView )));_fgd .SetIfNotNil ("\u0054\u0041",_eabf .TA );
_fgd .SetIfNotNil ("\u0056",_eabf .V );return _fee ;};
// PdfAnnotationMarkup represents additional fields for mark-up annotations.
// (Section 12.5.6.2 p. 399).
type PdfAnnotationMarkup struct{T _fd .PdfObject ;Popup *PdfAnnotationPopup ;CA _fd .PdfObject ;RC _fd .PdfObject ;CreationDate _fd .PdfObject ;IRT _fd .PdfObject ;Subj _fd .PdfObject ;RT _fd .PdfObject ;IT _fd .PdfObject ;ExData _fd .PdfObject ;};
// PdfInfo holds document information that will overwrite
// document information global variables defined above.
type PdfInfo struct{Title *_fd .PdfObjectString ;Author *_fd .PdfObjectString ;Subject *_fd .PdfObjectString ;Keywords *_fd .PdfObjectString ;Creator *_fd .PdfObjectString ;Producer *_fd .PdfObjectString ;CreationDate *PdfDate ;ModifiedDate *PdfDate ;Trapped *_fd .PdfObjectName ;
_defeg *_fd .PdfObjectDictionary ;};type modelManager struct{_eeead map[PdfModel ]_fd .PdfObject ;_aabd map[_fd .PdfObject ]PdfModel ;};
// NewPdfOutputIntentFromPdfObject creates a new PdfOutputIntent from the input core.PdfObject.
func NewPdfOutputIntentFromPdfObject (object _fd .PdfObject )(*PdfOutputIntent ,error ){_gbbcd :=&PdfOutputIntent {};if _gedced :=_gbbcd .ParsePdfObject (object );_gedced !=nil {return nil ,_gedced ;};return _gbbcd ,nil ;};
// HasFontByName checks whether a font is defined by the specified keyName.
func (_adafcbe *PdfPageResources )HasFontByName (keyName _fd .PdfObjectName )bool {_ ,_gdecb :=_adafcbe .GetFontByName (keyName );return _gdecb ;};
// ImageToRGB converts an image in CMYK32 colorspace to an RGB image.
func (_cgab *PdfColorspaceDeviceCMYK )ImageToRGB (img Image )(Image ,error ){_ag .Log .Trace ("\u0043\u004d\u0059\u004b\u0033\u0032\u0020\u002d\u003e\u0020\u0052\u0047\u0042");_ag .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 );
_ag .Log .Trace ("\u004c\u0065\u006e \u0064\u0061\u0074\u0061\u003a\u0020\u0025\u0064",len (img .Data ));_ag .Log .Trace ("H\u0065\u0069\u0067\u0068t:\u0020%\u0064\u002c\u0020\u0057\u0069d\u0074\u0068\u003a\u0020\u0025\u0064",img .Height ,img .Width );
_eaeee ,_gedd :=_gbed .NewImage (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),img .ColorComponents ,img .Data ,img ._gfffd ,img ._cdbdc );if _gedd !=nil {return Image {},_gedd ;};_abee ,_gedd :=_gbed .NRGBAConverter .Convert (_eaeee );
if _gedd !=nil {return Image {},_gedd ;};return _eeafa (_abee .Base ()),nil ;};
// ToPdfObject implements interface PdfModel.
func (_gdag *PdfAnnotationScreen )ToPdfObject ()_fd .PdfObject {_gdag .PdfAnnotation .ToPdfObject ();_cccf :=_gdag ._aeb ;_beed :=_cccf .PdfObject .(*_fd .PdfObjectDictionary );_beed .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fd .MakeName ("\u0053\u0063\u0072\u0065\u0065\u006e"));
_beed .SetIfNotNil ("\u0054",_gdag .T );_beed .SetIfNotNil ("\u004d\u004b",_gdag .MK );_beed .SetIfNotNil ("\u0041",_gdag .A );_beed .SetIfNotNil ("\u0041\u0041",_gdag .AA );return _cccf ;};
// FileRelationship represents a attachment file relationship type.
type FileRelationship int ;
// UpdatePage updates the `page` in the new revision if it has changed.
func (_affg *PdfAppender )UpdatePage (page *PdfPage ){_affg .updateObjectsDeep (page .ToPdfObject (),nil )};func (_bbffc *PdfWriter )copyObject (_dfgfg _fd .PdfObject ,_dccffg map[_fd .PdfObject ]_fd .PdfObject ,_fadcd map[_fd .PdfObject ]struct{},_acgbd bool )_fd .PdfObject {_debd :=!_bbffc ._fbgg &&_fadcd !=nil ;
if _afbgg ,_bgfad :=_dccffg [_dfgfg ];_bgfad {if _debd &&!_acgbd {delete (_fadcd ,_dfgfg );};return _afbgg ;};if _dfgfg ==nil {_cggga :=_fd .MakeNull ();return _cggga ;};_eccea :=_dfgfg ;switch _dacfa :=_dfgfg .(type ){case *_fd .PdfObjectArray :_dfebf :=_fd .MakeArray ();
_eccea =_dfebf ;_dccffg [_dfgfg ]=_eccea ;for _ ,_bfdfe :=range _dacfa .Elements (){_dfebf .Append (_bbffc .copyObject (_bfdfe ,_dccffg ,_fadcd ,_acgbd ));};case *_fd .PdfObjectStreams :_bbfeg :=&_fd .PdfObjectStreams {PdfObjectReference :_dacfa .PdfObjectReference };
_eccea =_bbfeg ;_dccffg [_dfgfg ]=_eccea ;for _ ,_addg :=range _dacfa .Elements (){_bbfeg .Append (_bbffc .copyObject (_addg ,_dccffg ,_fadcd ,_acgbd ));};case *_fd .PdfObjectStream :_ccacgf :=&_fd .PdfObjectStream {Stream :_dacfa .Stream ,PdfObjectReference :_dacfa .PdfObjectReference ,Lazy :_dacfa .Lazy ,TempFile :_dacfa .TempFile };
_eccea =_ccacgf ;_dccffg [_dfgfg ]=_eccea ;_ccacgf .PdfObjectDictionary =_bbffc .copyObject (_dacfa .PdfObjectDictionary ,_dccffg ,_fadcd ,_acgbd ).(*_fd .PdfObjectDictionary );case *_fd .PdfObjectDictionary :var _fddef bool ;if _debd &&!_acgbd {if _dfbe ,_ :=_fd .GetNameVal (_dacfa .Get ("\u0054\u0079\u0070\u0065"));
_dfbe =="\u0050\u0061\u0067\u0065"{_ ,_bcgfd :=_bbffc ._efed [_dacfa ];_acgbd =!_bcgfd ;_fddef =_acgbd ;};};_gbcbfb :=_fd .MakeDict ();_eccea =_gbcbfb ;_dccffg [_dfgfg ]=_eccea ;for _ ,_gfad :=range _dacfa .Keys (){_gbcbfb .Set (_gfad ,_bbffc .copyObject (_dacfa .Get (_gfad ),_dccffg ,_fadcd ,_acgbd ));
};if _fddef {_eccea =_fd .MakeNull ();_acgbd =false ;};case *_fd .PdfIndirectObject :_cdcfc :=&_fd .PdfIndirectObject {PdfObjectReference :_dacfa .PdfObjectReference };_eccea =_cdcfc ;_dccffg [_dfgfg ]=_eccea ;_cdcfc .PdfObject =_bbffc .copyObject (_dacfa .PdfObject ,_dccffg ,_fadcd ,_acgbd );
case *_fd .PdfObjectString :_gffff :=*_dacfa ;_eccea =&_gffff ;_dccffg [_dfgfg ]=_eccea ;case *_fd .PdfObjectName :_ebagd :=*_dacfa ;_eccea =&_ebagd ;_dccffg [_dfgfg ]=_eccea ;case *_fd .PdfObjectNull :_eccea =_fd .MakeNull ();_dccffg [_dfgfg ]=_eccea ;
case *_fd .PdfObjectInteger :_eaedf :=*_dacfa ;_eccea =&_eaedf ;_dccffg [_dfgfg ]=_eccea ;case *_fd .PdfObjectReference :_eeffa :=*_dacfa ;_eccea =&_eeffa ;_dccffg [_dfgfg ]=_eccea ;case *_fd .PdfObjectFloat :_cdbfe :=*_dacfa ;_eccea =&_cdbfe ;_dccffg [_dfgfg ]=_eccea ;
case *_fd .PdfObjectBool :_ggacd :=*_dacfa ;_eccea =&_ggacd ;_dccffg [_dfgfg ]=_eccea ;case *pdfSignDictionary :_aaaga :=&pdfSignDictionary {PdfObjectDictionary :_fd .MakeDict (),_efeca :_dacfa ._efeca ,_eeabe :_dacfa ._eeabe };_eccea =_aaaga ;_dccffg [_dfgfg ]=_eccea ;
for _ ,_afcef :=range _dacfa .Keys (){_aaaga .Set (_afcef ,_bbffc .copyObject (_dacfa .Get (_afcef ),_dccffg ,_fadcd ,_acgbd ));};default:_ag .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",_dfgfg );
};if _debd &&_acgbd {_fadcd [_dfgfg ]=struct{}{};};return _eccea ;};func _gecgg (_cgcf _fd .PdfObject )(map[_ee .CharCode ]float64 ,error ){if _cgcf ==nil {return nil ,nil ;};_bfdb ,_abgb :=_fd .GetArray (_cgcf );if !_abgb {return nil ,nil ;};_abcabg :=map[_ee .CharCode ]float64 {};
_dbdf :=_bfdb .Len ();for _dbcga :=0;_dbcga < _dbdf -1;_dbcga ++{_aaba :=_fd .TraceToDirectObject (_bfdb .Get (_dbcga ));_ebbbd ,_dffbaf :=_fd .GetIntVal (_aaba );if !_dffbaf {return nil ,_dc .Errorf ("\u0042a\u0064\u0020\u0066\u006fn\u0074\u0020\u0057\u0020\u006fb\u006a0\u003a \u0069\u003d\u0025\u0064\u0020\u0025\u0023v",_dbcga ,_aaba );
};_dbcga ++;if _dbcga > _dbdf -1{return nil ,_dc .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",_bfdb );};_cggc :=_fd .TraceToDirectObject (_bfdb .Get (_dbcga ));
switch _cggc .(type ){case *_fd .PdfObjectArray :_gbfga ,_ :=_fd .GetArray (_cggc );if _cceba ,_edccbg :=_gbfga .ToFloat64Array ();_edccbg ==nil {for _acaag :=0;_acaag < len (_cceba );_acaag ++{_abcabg [_ee .CharCode (_ebbbd +_acaag )]=_cceba [_acaag ];
};}else {return nil ,_dc .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",_dbcga ,_cggc );};case *_fd .PdfObjectInteger :_bfegf ,_abfba :=_fd .GetIntVal (_cggc );
if !_abfba {return nil ,_dc .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",_dbcga ,_cggc );};_dbcga ++;if _dbcga > _dbdf -1{return nil ,_dc .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",_bfdb );
};_ceeb :=_bfdb .Get (_dbcga );_edbff ,_cfedc :=_fd .GetNumberAsFloat (_ceeb );if _cfedc !=nil {return nil ,_dc .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",_dbcga ,_ceeb );
};for _ddgga :=_ebbbd ;_ddgga <=_bfegf ;_ddgga ++{_abcabg [_ee .CharCode (_ddgga )]=_edbff ;};default:return nil ,_dc .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",_dbcga ,_cggc );
};};return _abcabg ,nil ;};
// PdfFunction interface represents the common methods of a function in PDF.
type PdfFunction interface{Evaluate ([]float64 )([]float64 ,error );ToPdfObject ()_fd .PdfObject ;};
// ParsePdfObject parses input pdf object into given output intent.
func (_dfcfg *PdfOutputIntent )ParsePdfObject (object _fd .PdfObject )error {_fegce ,_fagbc :=_fd .GetDict (object );if !_fagbc {_ag .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 _ad .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");
};_dfcfg ._fbbec =_fegce ;_dfcfg .Type ,_ =_fegce .GetString ("\u0054\u0079\u0070\u0065");_aeffa ,_fagbc :=_fegce .GetString ("\u0053");if _fagbc {switch _aeffa {case "\u0047T\u0053\u005f\u0050\u0044\u0046\u00411":_dfcfg .S =PdfOutputIntentTypeA1 ;case "\u0047T\u0053\u005f\u0050\u0044\u0046\u00412":_dfcfg .S =PdfOutputIntentTypeA2 ;
case "\u0047T\u0053\u005f\u0050\u0044\u0046\u00413":_dfcfg .S =PdfOutputIntentTypeA3 ;case "\u0047T\u0053\u005f\u0050\u0044\u0046\u00414":_dfcfg .S =PdfOutputIntentTypeA4 ;case "\u0047\u0054\u0053\u005f\u0050\u0044\u0046\u0058":_dfcfg .S =PdfOutputIntentTypeX ;
};};_dfcfg .OutputCondition ,_ =_fegce .GetString ("\u004fu\u0074p\u0075\u0074\u0043\u006f\u006e\u0064\u0069\u0074\u0069\u006f\u006e");_dfcfg .OutputConditionIdentifier ,_ =_fegce .GetString ("\u004fu\u0074\u0070\u0075\u0074C\u006f\u006e\u0064\u0069\u0074i\u006fn\u0049d\u0065\u006e\u0074\u0069\u0066\u0069\u0065r");
_dfcfg .RegistryName ,_ =_fegce .GetString ("\u0052\u0065\u0067i\u0073\u0074\u0072\u0079\u004e\u0061\u006d\u0065");_dfcfg .Info ,_ =_fegce .GetString ("\u0049\u006e\u0066\u006f");if _deebf ,_gbcbd :=_fd .GetStream (_fegce .Get ("\u0044\u0065\u0073\u0074\u004f\u0075\u0074\u0070\u0075\u0074\u0050\u0072o\u0066\u0069\u006c\u0065"));
_gbcbd {_dfcfg .ColorComponents ,_ =_fd .GetIntVal (_deebf .Get ("\u004e"));_acadb ,_dbdcb :=_fd .DecodeStream (_deebf );if _dbdcb !=nil {return _dbdcb ;};_dfcfg .DestOutputProfile =_acadb ;};return nil ;};
// ToPdfObject converts colorspace to a PDF object. [/Indexed base hival lookup]
func (_bceeg *PdfColorspaceSpecialIndexed )ToPdfObject ()_fd .PdfObject {_fede :=_fd .MakeArray (_fd .MakeName ("\u0049n\u0064\u0065\u0078\u0065\u0064"));_fede .Append (_bceeg .Base .ToPdfObject ());_fede .Append (_fd .MakeInteger (int64 (_bceeg .HiVal )));
_fede .Append (_bceeg .Lookup );if _bceeg ._ecdg !=nil {_bceeg ._ecdg .PdfObject =_fede ;return _bceeg ._ecdg ;};return _fede ;};func (_fgfd *LTV )getCerts (_bfeag []*_gff .Certificate )([][]byte ,error ){_gddce :=make ([][]byte ,0,len (_bfeag ));for _ ,_cggg :=range _bfeag {_gddce =append (_gddce ,_cggg .Raw );
};return _gddce ,nil ;};
// SetPdfKeywords sets the Keywords attribute of the output PDF.
func SetPdfKeywords (keywords string ){_feadd .Lock ();defer _feadd .Unlock ();_cfgbe =keywords };
// ToPdfObject converts the pdfCIDFontType0 to a PDF representation.
func (_acebdf *pdfCIDFontType0 )ToPdfObject ()_fd .PdfObject {return _fd .MakeNull ()};
// 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 (_faaeb *PdfFont )CharcodesToUnicode (charcodes []_ee .CharCode )[]rune {_gfgb ,_ ,_ :=_faaeb .CharcodesToUnicodeWithStats (charcodes );return _gfgb ;};
// NewEmbeddedFileFromObject construct a new EmbeddedFile from supplied object.
func NewEmbeddedFileFromObject (obj _fd .PdfObject )(*EmbeddedFile ,error ){_fgbda :=_fd .TraceToDirectObject (obj );_bfggb ,_ecbd :=_fgbda .(*_fd .PdfObjectDictionary );if !_ecbd {return nil ,_ad .New ("\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006fb\u006a\u0065\u0063\u0074");
};_cbdfg :=_fd .TraceToDirectObject (_bfggb .Get ("\u0046"));if _cbdfg ==nil {return nil ,_ad .New ("\u0049n\u0076\u0061\u006c\u0069\u0064\u0020\u006f\u0062\u006a\u0065\u0063t\u0020\u0073\u0074\u0072\u0075\u0063\u0074\u0075\u0072\u0065");};_fade ,_ecbd :=_cbdfg .(*_fd .PdfObjectStream );
if !_ecbd {return nil ,_ad .New ("\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0073t\u0072\u0065\u0061\u006d");};_adff :=_fade .PdfObjectDictionary ;_geadd :=_adff .Get ("\u0050\u0061\u0072\u0061\u006d\u0073");if _geadd ==nil {return nil ,_ad .New ("P\u0061\u0072\u0061\u006d\u0073\u0020o\u0062\u006a\u0065\u0063\u0074\u0020\u006e\u006f\u0074 \u0061\u0076\u0061i\u006ca\u0062\u006c\u0065");
};_ebdfa ,_ecbd :=_geadd .(*_fd .PdfObjectDictionary );if !_ecbd {return nil ,_ad .New ("I\u006e\u0076\u0061\u006cid\u0020P\u0061\u0072\u0061\u006d\u0073 \u006f\u0062\u006a\u0065\u0063\u0074");};_dfcac :="";_fcbe :=_ebdfa .Get ("\u0043\u0068\u0065\u0063\u006b\u0053\u0075\u006d");
if _fcbe !=nil {_dfcac =_fcbe .(*_fd .PdfObjectString ).Str ();};_fcba ,_dcbeb :=_fd .DecodeStream (_fade );if _dcbeb !=nil {return nil ,_dcbeb ;};_feca :=&EmbeddedFile {Content :_fcba ,Hash :_dfcac };return _feca ,nil ;};
// PdfFilespec represents a file specification which can either refer to an external or embedded file.
type PdfFilespec struct{Type _fd .PdfObject ;FS _fd .PdfObject ;F _fd .PdfObject ;UF _fd .PdfObject ;DOS _fd .PdfObject ;Mac _fd .PdfObject ;Unix _fd .PdfObject ;ID _fd .PdfObject ;V _fd .PdfObject ;EF _fd .PdfObject ;RF _fd .PdfObject ;Desc _fd .PdfObject ;
CI _fd .PdfObject ;AFRelationship _fd .PdfObject ;_cbfc _fd .PdfObject ;};
// Evaluate runs the function on the passed in slice and returns the results.
func (_dgbfe *PdfFunctionType3 )Evaluate (x []float64 )([]float64 ,error ){if len (x )!=1{_ag .Log .Error ("\u004f\u006e\u006c\u0079 o\u006e\u0065\u0020\u0069\u006e\u0070\u0075\u0074\u0020\u0061\u006c\u006c\u006f\u0077e\u0064");return nil ,_ad .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");
};return nil ,_ad .New ("\u006e\u006f\u0074\u0020im\u0070\u006c\u0065\u006d\u0065\u006e\u0074\u0065\u0064\u0020\u0079\u0065\u0074");};
// NewPdfAnnotationText returns a new text annotation.
func NewPdfAnnotationText ()*PdfAnnotationText {_bfgd :=NewPdfAnnotation ();_acae :=&PdfAnnotationText {};_acae .PdfAnnotation =_bfgd ;_acae .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_bfgd .SetContext (_acae );return _acae ;};
// G returns the value of the green component of the color.
func (_gfedf *PdfColorDeviceRGB )G ()float64 {return _gfedf [1]};
// NewPdfAnnotationPopup returns a new popup annotation.
func NewPdfAnnotationPopup ()*PdfAnnotationPopup {_dcb :=NewPdfAnnotation ();_bfba :=&PdfAnnotationPopup {};_bfba .PdfAnnotation =_dcb ;_dcb .SetContext (_bfba );return _bfba ;};func (_fagad *PdfWriter )setCatalogVersion (){_fagad ._fdaca .Set ("\u0056e\u0072\u0073\u0069\u006f\u006e",_fd .MakeName (_dc .Sprintf ("\u0025\u0064\u002e%\u0064",_fagad ._ggaddg .Major ,_fagad ._ggaddg .Minor )));
};
// 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 _bc .ReadSeeker )(*PdfReader ,error ){const _dddag ="\u006do\u0064e\u006c\u003a\u004e\u0065\u0077P\u0064\u0066R\u0065\u0061\u0064\u0065\u0072";return _daab (rs ,&ReaderOpts {},false ,_dddag );};func _ggbab (_beebf *fontCommon )*pdfFontType3 {return &pdfFontType3 {fontCommon :*_beebf }};
// ColorFromPdfObjects returns a new PdfColor based on input color components. The input PdfObjects should
// be numeric.
func (_bfcff *PdfColorspaceDeviceN )ColorFromPdfObjects (objects []_fd .PdfObject )(PdfColor ,error ){if len (objects )!=_bfcff .GetNumComponents (){return nil ,_ad .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_bdbcf ,_ebfcg :=_fd .GetNumbersAsFloat (objects );
if _ebfcg !=nil {return nil ,_ebfcg ;};return _bfcff .ColorFromFloats (_bdbcf );};func (_efab *PdfWriter )flushWriter ()error {if _efab ._bgfb ==nil {_efab ._bgfb =_efab ._abgaac .Flush ();};return _efab ._bgfb ;};
// SetPdfCreationDate sets the CreationDate attribute of the output PDF.
func SetPdfCreationDate (creationDate _cd .Time ){_feadd .Lock ();defer _feadd .Unlock ();_afgca =creationDate ;};
// AddPages adds pages to be appended to the end of the source PDF.
func (_cef *PdfAppender )AddPages (pages ...*PdfPage ){for _ ,_eece :=range pages {_eece =_eece .Duplicate ();_baeb (_eece );_cef ._gbca =append (_cef ._gbca ,_eece );};};func (_fcdd *PdfReader )newPdfAnnotationHighlightFromDict (_cgge *_fd .PdfObjectDictionary )(*PdfAnnotationHighlight ,error ){_dbcg :=PdfAnnotationHighlight {};
_dgdc ,_fbbf :=_fcdd .newPdfAnnotationMarkupFromDict (_cgge );if _fbbf !=nil {return nil ,_fbbf ;};_dbcg .PdfAnnotationMarkup =_dgdc ;_dbcg .QuadPoints =_cgge .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");return &_dbcg ,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 (_cbdd pdfCIDFontType0 )GetRuneMetrics (r rune )(_cf .CharMetrics ,bool ){return _cf .CharMetrics {Wx :_cbdd ._aaeef },true ;};
// GetContext returns the PdfField context which is the more specific field data type, e.g. PdfFieldButton
// for a button field.
func (_fbbc *PdfField )GetContext ()PdfModel {return _fbbc ._becad };func _fgbga (_bfee *_fd .PdfObjectDictionary ,_ffcb *fontCommon )(*pdfFontType3 ,error ){_agfe :=_ggbab (_ffcb );_ggbec :=_bfee .Get ("\u0046i\u0072\u0073\u0074\u0043\u0068\u0061r");if _ggbec ==nil {_ggbec =_fd .MakeInteger (0);
};_agfe .FirstChar =_ggbec ;_dggdf ,_bdbf :=_fd .GetIntVal (_ggbec );if !_bdbf {_ag .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",_ggbec );
return nil ,_fd .ErrTypeError ;};_fegea :=_ee .CharCode (_dggdf );_ggbec =_bfee .Get ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072");if _ggbec ==nil {_ggbec =_fd .MakeInteger (255);};_agfe .LastChar =_ggbec ;_dggdf ,_bdbf =_fd .GetIntVal (_ggbec );
if !_bdbf {_ag .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",_ggbec );return nil ,_fd .ErrTypeError ;
};_agbbg :=_ee .CharCode (_dggdf );_ggbec =_bfee .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");if _ggbec !=nil {_agfe .Resources =_ggbec ;};_ggbec =_bfee .Get ("\u0043h\u0061\u0072\u0050\u0072\u006f\u0063s");if _ggbec ==nil {_ag .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",_ggbec );
return nil ,_fd .ErrNotSupported ;};_agfe .CharProcs =_ggbec ;_ggbec =_bfee .Get ("\u0046\u006f\u006e\u0074\u004d\u0061\u0074\u0072\u0069\u0078");if _ggbec ==nil {_ag .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",_ggbec );
return nil ,_fd .ErrNotSupported ;};_agfe .FontMatrix =_ggbec ;_agfe ._febf =make (map[_ee .CharCode ]float64 );_ggbec =_bfee .Get ("\u0057\u0069\u0064\u0074\u0068\u0073");if _ggbec !=nil {_agfe .Widths =_ggbec ;_ecdc ,_acgggb :=_fd .GetArray (_ggbec );
if !_acgggb {_ag .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",_ggbec );return nil ,_fd .ErrTypeError ;
};_bdbga ,_fbadg :=_ecdc .ToFloat64Array ();if _fbadg !=nil {_ag .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 ,_fbadg ;};if len (_bdbga )!=int (_agbbg -_fegea +1){_ag .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",_agbbg -_fegea +1,len (_bdbga ));
return nil ,_fd .ErrRangeError ;};_cccb ,_acgggb :=_fd .GetArray (_agfe .FontMatrix );if !_acgggb {_ag .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",_cccb );
return nil ,_fbadg ;};_bcba ,_fbadg :=_cccb .ToFloat64Array ();if _fbadg !=nil {_ag .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 ,_fbadg ;};_edda :=_gdd .NewMatrix (_bcba [0],_bcba [1],_bcba [2],_bcba [3],_bcba [4],_bcba [5]);for _ceeg ,_acga :=range _bdbga {_gcdgd ,_ :=_edda .Transform (_acga ,_acga );_agfe ._febf [_fegea +_ee .CharCode (_ceeg )]=_gcdgd ;};};_agfe .Encoding =_fd .TraceToDirectObject (_bfee .Get ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067"));
_agfaf :=_bfee .Get ("\u0054o\u0055\u006e\u0069\u0063\u006f\u0064e");if _agfaf !=nil {_agfe ._eebbb =_fd .TraceToDirectObject (_agfaf );_cfac ,_ebgag :=_dbaa (_agfe ._eebbb ,&_agfe .fontCommon );if _ebgag !=nil {return nil ,_ebgag ;};_agfe ._dgdg =_cfac ;
};if _fbcef :=_agfe ._dgdg ;_fbcef !=nil {_agfe ._eceb =_ee .NewCMapEncoder ("",nil ,_fbcef );}else {_agfe ._eceb =_ee .NewPdfDocEncoder ();};return _agfe ,nil ;};
// ToPdfObject implements interface PdfModel.
func (_cbcb *PdfSignatureReference )ToPdfObject ()_fd .PdfObject {_caeag :=_fd .MakeDict ();_caeag .SetIfNotNil ("\u0054\u0079\u0070\u0065",_cbcb .Type );_caeag .SetIfNotNil ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u004d\u0065\u0074\u0068\u006f\u0064",_cbcb .TransformMethod );
_caeag .SetIfNotNil ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u0050\u0061\u0072\u0061\u006d\u0073",_cbcb .TransformParams );_caeag .SetIfNotNil ("\u0044\u0061\u0074\u0061",_cbcb .Data );_caeag .SetIfNotNil ("\u0044\u0069\u0067e\u0073\u0074\u004d\u0065\u0074\u0068\u006f\u0064",_cbcb .DigestMethod );
return _caeag ;};func (_aebge *PdfColorspaceCalRGB )String ()string {return "\u0043\u0061\u006c\u0052\u0047\u0042"};type pdfFontType0 struct{fontCommon ;_ffead *_fd .PdfIndirectObject ;_agbe _ee .TextEncoder ;Encoding _fd .PdfObject ;DescendantFont *PdfFont ;
_bbbfb *_gd .CMap ;};
// 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 (_abfg *PdfFieldButton )GetType ()ButtonType {_acdg :=ButtonTypeCheckbox ;if _abfg .Ff !=nil {if (uint32 (*_abfg .Ff )&FieldFlagPushbutton .Mask ())> 0{_acdg =ButtonTypePush ;}else if (uint32 (*_abfg .Ff )&FieldFlagRadio .Mask ())> 0{_acdg =ButtonTypeRadio ;
};};return _acdg ;};func _gfbac (_eeggc *_fd .PdfObjectDictionary )(*PdfShadingType4 ,error ){_bbgga :=PdfShadingType4 {};_fbgfdg :=_eeggc .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065");if _fbgfdg ==nil {_ag .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 ;};_fbbg ,_dbaaa :=_fbgfdg .(*_fd .PdfObjectInteger );if !_dbaaa {_ag .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",_fbgfdg );
return nil ,_fd .ErrTypeError ;};_bbgga .BitsPerCoordinate =_fbbg ;_fbgfdg =_eeggc .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074");if _fbgfdg ==nil {_ag .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 ;};_fbbg ,_dbaaa =_fbgfdg .(*_fd .PdfObjectInteger );if !_dbaaa {_ag .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",_fbgfdg );
return nil ,_fd .ErrTypeError ;};_bbgga .BitsPerComponent =_fbbg ;_fbgfdg =_eeggc .Get ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067");if _fbgfdg ==nil {_ag .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 ;};_fbbg ,_dbaaa =_fbgfdg .(*_fd .PdfObjectInteger );if !_dbaaa {_ag .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",_fbgfdg );
return nil ,_fd .ErrTypeError ;};_bbgga .BitsPerComponent =_fbbg ;_fbgfdg =_eeggc .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");if _fbgfdg ==nil {_ag .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 ;};_bfaagc ,_dbaaa :=_fbgfdg .(*_fd .PdfObjectArray );if !_dbaaa {_ag .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",_fbgfdg );
return nil ,_fd .ErrTypeError ;};_bbgga .Decode =_bfaagc ;_fbgfdg =_eeggc .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");if _fbgfdg ==nil {_ag .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 ;};_bbgga .Function =[]PdfFunction {};if _gdgca ,_caebd :=_fbgfdg .(*_fd .PdfObjectArray );_caebd {for _ ,_baedb :=range _gdgca .Elements (){_addag ,_egceg :=_badad (_baedb );if _egceg !=nil {_ag .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",_egceg );
return nil ,_egceg ;};_bbgga .Function =append (_bbgga .Function ,_addag );};}else {_cfca ,_aedddb :=_badad (_fbgfdg );if _aedddb !=nil {_ag .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",_aedddb );
return nil ,_aedddb ;};_bbgga .Function =append (_bbgga .Function ,_cfca );};return &_bbgga ,nil ;};
// GenerateXObjectName generates an unused XObject name that can be used for
// adding new XObjects. Uses format XObj1, XObj2, ...
func (_aeaba *PdfPageResources )GenerateXObjectName ()_fd .PdfObjectName {_edccc :=1;for {_fdfg :=_fd .MakeName (_dc .Sprintf ("\u0058\u004f\u0062\u006a\u0025\u0064",_edccc ));if !_aeaba .HasXObjectByName (*_fdfg ){return *_fdfg ;};_edccc ++;};};
// 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 (_ecgc *PdfFont )SubsetRegistered ()error {switch _dgdb :=_ecgc ._gbaac .(type ){case *pdfFontType0 :_gdaa :=_dgdb .subsetRegistered ();if _gdaa !=nil {_ag .Log .Debug ("\u0053\u0075b\u0073\u0065\u0074 \u0065\u0072\u0072\u006f\u0072\u003a\u0020\u0025\u0076",_gdaa );
return _gdaa ;};if _dgdb ._ffead !=nil {if _dgdb ._agbe !=nil {_dgdb ._agbe .ToPdfObject ();};_dgdb .ToPdfObject ();};default:_ag .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",_dgdb );
};return nil ;};
// GetAscent returns the Ascent of the font `descriptor`.
func (_agged *PdfFontDescriptor )GetAscent ()(float64 ,error ){return _fd .GetNumberAsFloat (_agged .Ascent );};
// ColorFromPdfObjects gets the color from a series of pdf objects (4 for cmyk).
func (_cdfc *PdfColorspaceDeviceCMYK )ColorFromPdfObjects (objects []_fd .PdfObject )(PdfColor ,error ){if len (objects )!=4{return nil ,_ad .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_gbcfg ,_cdgb :=_fd .GetNumbersAsFloat (objects );
if _cdgb !=nil {return nil ,_cdgb ;};return _cdfc .ColorFromFloats (_gbcfg );};func (_ffafgb *PdfWriter )writeAcroFormFields ()error {if _ffafgb ._agdg ==nil {return nil ;};_ag .Log .Trace ("\u0057r\u0069t\u0069\u006e\u0067\u0020\u0061c\u0072\u006f \u0066\u006f\u0072\u006d\u0073");
_ggabe :=_ffafgb ._agdg .ToPdfObject ();_ag .Log .Trace ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d\u003a\u0020\u0025\u002b\u0076",_ggabe );_ffafgb ._fdaca .Set ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d",_ggabe );_ebabd :=_ffafgb .addObjects (_ggabe );
if _ebabd !=nil {return _ebabd ;};return nil ;};
// NewPdfColorspaceSpecialPattern returns a new pattern color.
func NewPdfColorspaceSpecialPattern ()*PdfColorspaceSpecialPattern {return &PdfColorspaceSpecialPattern {};};
// IsPush returns true if the button field represents a push button, false otherwise.
func (_fdaa *PdfFieldButton )IsPush ()bool {return _fdaa .GetType ()==ButtonTypePush };
// GetNumComponents returns the number of color components of the colorspace device.
// Returns 1 for a CalGray device.
func (_faag *PdfColorspaceCalGray )GetNumComponents ()int {return 1};
// NewPdfAnnotationRichMedia returns a new rich media annotation.
func NewPdfAnnotationRichMedia ()*PdfAnnotationRichMedia {_faf :=NewPdfAnnotation ();_ffd :=&PdfAnnotationRichMedia {};_ffd .PdfAnnotation =_faf ;_faf .SetContext (_ffd );return _ffd ;};
// GetVersion gets the document version.
func (_bagb *PdfWriter )GetVersion ()_fd .Version {return _bagb ._ggaddg };
// SetNameDictionary sets the Names entry in the PDF catalog.
// See section 7.7.4 "Name Dictionary" (p. 80 PDF32000_2008).
func (_deef *PdfWriter )SetNameDictionary (names _fd .PdfObject )error {if names ==nil {return nil ;};_deef ._gdabc =_gfac (names );_ag .Log .Trace ("\u0053e\u0074\u0074\u0069\u006e\u0067\u0020\u0063\u0061\u0074\u0061\u006co\u0067\u0020\u004e\u0061\u006d\u0065\u0073\u002e\u002e\u002e");
_deef ._fdaca .Set ("\u004e\u0061\u006de\u0073",names );return _deef .addObjects (names );};
// 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 _bc .ReadSeeker )(*PdfFont ,error ){_gede ,_egfdf :=_gcb .ReadAll (r );if _egfdf !=nil {_ag .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",_egfdf );
return nil ,_egfdf ;};_degda ,_egfdf :=_cf .TtfParse (_bf .NewReader (_gede ));if _egfdf !=nil {_ag .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",_egfdf );
return nil ,_egfdf ;};_dfed :=&pdfCIDFontType2 {fontCommon :fontCommon {_eded :"\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032"},CIDToGIDMap :_fd .MakeName ("\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079")};if len (_degda .Widths )<=0{return nil ,_ad .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");
};_cdfgb :=1000.0/float64 (_degda .UnitsPerEm );_cgdg :=_cdfgb *float64 (_degda .Widths [0]);_bcgc :=make (map[rune ]int );_agega :=make (map[_cf .GID ]int );_gbaeg :=_cf .GID (len (_degda .Widths ));for _gdaaa ,_bgdgf :=range _degda .Chars {if _bgdgf > _gbaeg -1{continue ;
};_dgbgda :=int (_cdfgb *float64 (_degda .Widths [_bgdgf ]));_bcgc [_gdaaa ]=_dgbgda ;_agega [_bgdgf ]=_dgbgda ;};_dfed ._agbed =_bcgc ;_dfed .DW =_fd .MakeInteger (int64 (_cgdg ));_ebdfd :=_bdaa (_agega ,uint16 (_gbaeg ));_dfed .W =_fd .MakeIndirectObject (_ebdfd );
_ebaag :=_fd .MakeDict ();_ebaag .Set ("\u004f\u0072\u0064\u0065\u0072\u0069\u006e\u0067",_fd .MakeString ("\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079"));_ebaag .Set ("\u0052\u0065\u0067\u0069\u0073\u0074\u0072\u0079",_fd .MakeString ("\u0041\u0064\u006fb\u0065"));
_ebaag .Set ("\u0053\u0075\u0070\u0070\u006c\u0065\u006d\u0065\u006e\u0074",_fd .MakeInteger (0));_dfed .CIDSystemInfo =_ebaag ;_abeag :=&PdfFontDescriptor {FontName :_fd .MakeName (_degda .PostScriptName ),Ascent :_fd .MakeFloat (_cdfgb *float64 (_degda .TypoAscender )),Descent :_fd .MakeFloat (_cdfgb *float64 (_degda .TypoDescender )),CapHeight :_fd .MakeFloat (_cdfgb *float64 (_degda .CapHeight )),FontBBox :_fd .MakeArrayFromFloats ([]float64 {_cdfgb *float64 (_degda .Xmin ),_cdfgb *float64 (_degda .Ymin ),_cdfgb *float64 (_degda .Xmax ),_cdfgb *float64 (_degda .Ymax )}),ItalicAngle :_fd .MakeFloat (_degda .ItalicAngle ),MissingWidth :_fd .MakeFloat (_cgdg )};
_aaabg ,_egfdf :=_fd .MakeStream (_gede ,_fd .NewFlateEncoder ());if _egfdf !=nil {_ag .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",_egfdf );
return nil ,_egfdf ;};_aaabg .PdfObjectDictionary .Set ("\u004ce\u006e\u0067\u0074\u0068\u0031",_fd .MakeInteger (int64 (len (_gede ))));_abeag .FontFile2 =_aaabg ;if _degda .Bold {_abeag .StemV =_fd .MakeInteger (120);}else {_abeag .StemV =_fd .MakeInteger (70);
};_gcgb :=_fefd ;if _degda .IsFixedPitch {_gcgb |=_debadb ;};if _degda .ItalicAngle !=0{_gcgb |=_eaeg ;};_abeag .Flags =_fd .MakeInteger (int64 (_gcgb ));_dfed ._ffedb =_degda .PostScriptName ;_dfed ._babe =_abeag ;_cged :=pdfFontType0 {fontCommon :fontCommon {_eded :"\u0054\u0079\u0070e\u0030",_ffedb :_degda .PostScriptName },DescendantFont :&PdfFont {_gbaac :_dfed },Encoding :_fd .MakeName ("\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079\u002d\u0048"),_agbe :_degda .NewEncoder ()};
if len (_degda .Chars )> 0{_dceeg :=make (map[_gd .CharCode ]rune ,len (_degda .Chars ));for _dade ,_fgfca :=range _degda .Chars {_dafffg :=_gd .CharCode (_fgfca );if _abfaf ,_dcbc :=_dceeg [_dafffg ];!_dcbc ||(_dcbc &&_abfaf > _dade ){_dceeg [_dafffg ]=_dade ;
};};_cged ._dgdg =_gd .NewToUnicodeCMap (_dceeg );};_fgbg :=PdfFont {_gbaac :&_cged };return &_fgbg ,nil ;};
// GetFillImage get attached model.Image in push button.
func (_daaab *PdfFieldButton )GetFillImage ()*Image {if _daaab .IsPush (){return _daaab ._daeaa ;};return nil ;};
// PdfRectangle is a definition of a rectangle.
type PdfRectangle struct{Llx float64 ;Lly float64 ;Urx float64 ;Ury float64 ;};
// 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 ;_babf *_fd .PdfIndirectObject ;};
// 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 *_ef .CertClient ;
// OCSPClient is the client used to retrieve OCSP validation information.
OCSPClient *_ef .OCSPClient ;
// CRLClient is the client used to retrieve CRL validation information.
CRLClient *_ef .CRLClient ;
// SkipExisting specifies whether existing signature validations
// should be skipped.
SkipExisting bool ;_gaggb *PdfAppender ;_fefa *DSS ;};
// ImageToRGB converts ICCBased colorspace image to RGB and returns the result.
func (_fddg *PdfColorspaceICCBased )ImageToRGB (img Image )(Image ,error ){if _fddg .Alternate ==nil {_ag .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 _fddg .N ==1{_ag .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");
_egafe :=NewPdfColorspaceDeviceGray ();return _egafe .ImageToRGB (img );}else if _fddg .N ==3{_ag .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 _fddg .N ==4{_ag .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");
_dcfg :=NewPdfColorspaceDeviceCMYK ();return _dcfg .ImageToRGB (img );}else {return img ,_ad .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");
};};_ag .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",_fddg );
_ggae ,_dgecc :=_fddg .Alternate .ImageToRGB (img );_ag .Log .Trace ("I\u0043C\u0020\u0049\u006e\u0070\u0075\u0074\u0020\u0069m\u0061\u0067\u0065\u003a %\u002b\u0076",img );_ag .Log .Trace ("I\u0043\u0043\u0020\u004fut\u0070u\u0074\u0020\u0069\u006d\u0061g\u0065\u003a\u0020\u0025\u002b\u0076",_ggae );
return _ggae ,_dgecc ;};func _baeb (_bddbe *PdfPage ){_ebgcf :=_ae .GetLicenseKey ();if _ebgcf !=nil &&_ebgcf .IsLicensed (){return ;};_ffdca :=_fd .PdfObjectName ("\u0055\u0046\u0031");if !_bddbe .Resources .HasFontByName (_ffdca ){_bddbe .Resources .SetFontByName (_ffdca ,DefaultFont ().ToPdfObject ());
};var _gegb []string ;_gegb =append (_gegb ,"\u0071");_gegb =append (_gegb ,"\u0042\u0054");_gegb =append (_gegb ,_dc .Sprintf ("\u002f%\u0073\u0020\u0031\u0034\u0020\u0054f",_ffdca .String ()));_gegb =append (_gegb ,"\u0031\u0020\u0030\u0020\u0030\u0020\u0072\u0067");
_gegb =append (_gegb ,"\u0031\u0030\u0020\u0031\u0030\u0020\u0054\u0064");_gfbgf :="\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";
_gegb =append (_gegb ,_dc .Sprintf ("\u0028%\u0073\u0029\u0020\u0054\u006a",_gfbgf ));_gegb =append (_gegb ,"\u0045\u0054");_gegb =append (_gegb ,"\u0051");_fddfc :=_gg .Join (_gegb ,"\u000a");_bddbe .AddContentStreamByString (_fddfc );_bddbe .ToPdfObject ();
};func (_cac *PdfReader )newPdfAnnotationCircleFromDict (_deca *_fd .PdfObjectDictionary )(*PdfAnnotationCircle ,error ){_dbe :=PdfAnnotationCircle {};_cbb ,_ega :=_cac .newPdfAnnotationMarkupFromDict (_deca );if _ega !=nil {return nil ,_ega ;};_dbe .PdfAnnotationMarkup =_cbb ;
_dbe .BS =_deca .Get ("\u0042\u0053");_dbe .IC =_deca .Get ("\u0049\u0043");_dbe .BE =_deca .Get ("\u0042\u0045");_dbe .RD =_deca .Get ("\u0052\u0044");return &_dbe ,nil ;};
// 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 *_fd .PdfObjectInteger ;TilingType *_fd .PdfObjectInteger ;BBox *PdfRectangle ;XStep *_fd .PdfObjectFloat ;YStep *_fd .PdfObjectFloat ;Resources *PdfPageResources ;Matrix *_fd .PdfObjectArray ;};
// 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 (_abeea *PdfPageResources )GetFontByName (keyName _fd .PdfObjectName )(_fd .PdfObject ,bool ){if _abeea .Font ==nil {return nil ,false ;};_abfga ,_gbdcd :=_fd .TraceToDirectObject (_abeea .Font ).(*_fd .PdfObjectDictionary );if !_gbdcd {_ag .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",_fd .TraceToDirectObject (_abeea .Font ));
return nil ,false ;};if _cgcg :=_abfga .Get (keyName );_cgcg !=nil {return _cgcg ,true ;};return nil ,false ;};
// PdfAnnotationInk represents Ink annotations.
// (Section 12.5.6.13).
type PdfAnnotationInk struct{*PdfAnnotation ;*PdfAnnotationMarkup ;InkList _fd .PdfObject ;BS _fd .PdfObject ;};
// AddFont adds a font dictionary to the Font resources.
func (_aeabf *PdfPage )AddFont (name _fd .PdfObjectName ,font _fd .PdfObject )error {if _aeabf .Resources ==nil {_aeabf .Resources =NewPdfPageResources ();};if _aeabf .Resources .Font ==nil {_aeabf .Resources .Font =_fd .MakeDict ();};_baea ,_dfedg :=_fd .TraceToDirectObject (_aeabf .Resources .Font ).(*_fd .PdfObjectDictionary );
if !_dfedg {_ag .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",_fd .TraceToDirectObject (_aeabf .Resources .Font ));
return _ad .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_baea .Set (name ,font );return nil ;};
// CharcodeBytesToUnicode converts PDF character codes `data` to a Go unicode string.
//
// 9.10 Extraction of Text Content (page 292)
// The process of finding glyph descriptions in OpenType fonts by a conforming reader shall be the following:
// - For Type 1 fonts using “CFF” tables, the process shall be as described in 9.6.6.2, "Encodings
// for Type 1 Fonts".
// - For TrueType fonts using “glyf” tables, the process shall be as described in 9.6.6.4,
// "Encodings for TrueType Fonts". Since this process sometimes produces ambiguous results,
// conforming writers, instead of using a simple font, shall use a Type 0 font with an Identity-H
// encoding and use the glyph indices as character codes, as described following Table 118.
func (_ddgb *PdfFont )CharcodeBytesToUnicode (data []byte )(string ,int ,int ){_bbagb ,_ ,_eaff :=_ddgb .CharcodesToUnicodeWithStats (_ddgb .BytesToCharcodes (data ));_debe :=_ee .ExpandLigatures (_bbagb );return _debe ,_eb .RuneCountInString (_debe ),_eaff ;
};
// GetNameDictionary returns the Names entry in the PDF catalog.
// See section 7.7.4 "Name Dictionary" (p. 80 PDF32000_2008).
func (_ecdbf *PdfReader )GetNameDictionary ()(_fd .PdfObject ,error ){_gfgg :=_fd .ResolveReference (_ecdbf ._gabca .Get ("\u004e\u0061\u006de\u0073"));if _gfgg ==nil {return nil ,nil ;};if !_ecdbf ._gfdda {_ccaa :=_ecdbf .traverseObjectData (_gfgg );if _ccaa !=nil {return nil ,_ccaa ;
};};return _gfgg ,nil ;};func _bddaa ()_cd .Time {_feadd .Lock ();defer _feadd .Unlock ();return _afgca };
// PdfPage represents a page in a PDF document. (7.7.3.3 - Table 30).
type PdfPage struct{Parent _fd .PdfObject ;LastModified *PdfDate ;Resources *PdfPageResources ;CropBox *PdfRectangle ;MediaBox *PdfRectangle ;BleedBox *PdfRectangle ;TrimBox *PdfRectangle ;ArtBox *PdfRectangle ;BoxColorInfo _fd .PdfObject ;Contents _fd .PdfObject ;
Rotate *int64 ;Group _fd .PdfObject ;Thumb _fd .PdfObject ;B _fd .PdfObject ;Dur _fd .PdfObject ;Trans _fd .PdfObject ;AA _fd .PdfObject ;Metadata _fd .PdfObject ;PieceInfo _fd .PdfObject ;StructParents _fd .PdfObject ;ID _fd .PdfObject ;PZ _fd .PdfObject ;
SeparationInfo _fd .PdfObject ;Tabs _fd .PdfObject ;TemplateInstantiated _fd .PdfObject ;PresSteps _fd .PdfObject ;UserUnit _fd .PdfObject ;VP _fd .PdfObject ;Annots _fd .PdfObject ;_gbaf []*PdfAnnotation ;_gaec *_fd .PdfObjectDictionary ;_fgcac *_fd .PdfIndirectObject ;
_cadc _fd .PdfObjectDictionary ;_dfaff *PdfReader ;};
// ColorFromFloats returns a new PdfColor based on input color components.
func (_ebgeb *PdfColorspaceDeviceN )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=_ebgeb .GetNumComponents (){return nil ,_ad .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_eggb ,_gcced :=_ebgeb .TintTransform .Evaluate (vals );
if _gcced !=nil {return nil ,_gcced ;};_ecece ,_gcced :=_ebgeb .AlternateSpace .ColorFromFloats (_eggb );if _gcced !=nil {return nil ,_gcced ;};return _ecece ,nil ;};
// PdfColorspaceDeviceCMYK represents a CMYK32 colorspace.
type PdfColorspaceDeviceCMYK struct{};
// GetPdfInfo returns the PDF info dictionary.
func (_febcb *PdfReader )GetPdfInfo ()(*PdfInfo ,error ){_cebce ,_dfebc :=_febcb .GetTrailer ();if _dfebc !=nil {return nil ,_dfebc ;};var _daadd *_fd .PdfObjectDictionary ;_eddab :=_cebce .Get ("\u0049\u006e\u0066\u006f");switch _abadd :=_eddab .(type ){case *_fd .PdfObjectReference :_cgfba :=_abadd ;
_eddab ,_dfebc =_febcb .GetIndirectObjectByNumber (int (_cgfba .ObjectNumber ));_eddab =_fd .TraceToDirectObject (_eddab );if _dfebc !=nil {return nil ,_dfebc ;};_daadd ,_ =_eddab .(*_fd .PdfObjectDictionary );case *_fd .PdfObjectDictionary :_daadd =_abadd ;
};if _daadd ==nil {return nil ,_ad .New ("I\u006e\u0066\u006f\u0020\u0064\u0069c\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u0020\u006eo\u0074\u0020\u0070r\u0065s\u0065\u006e\u0074");};_gfdae ,_dfebc :=NewPdfInfoFromObject (_daadd );if _dfebc !=nil {return nil ,_dfebc ;
};return _gfdae ,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 (_gdeb *PdfColorspaceDeviceCMYK )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=4{return nil ,_ad .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_cceg :=vals [0];if _cceg < 0.0||_cceg > 1.0{_ag .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_cceg );
return nil ,ErrColorOutOfRange ;};_fcgb :=vals [1];if _fcgb < 0.0||_fcgb > 1.0{_ag .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_fcgb );return nil ,ErrColorOutOfRange ;
};_gdbg :=vals [2];if _gdbg < 0.0||_gdbg > 1.0{_ag .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_gdbg );return nil ,ErrColorOutOfRange ;};_fabf :=vals [3];
if _fabf < 0.0||_fabf > 1.0{_ag .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_fabf );return nil ,ErrColorOutOfRange ;};_efea :=NewPdfColorDeviceCMYK (_cceg ,_fcgb ,_gdbg ,_fabf );
return _efea ,nil ;};const (_debadb =0x00001;_fdfd =0x00002;_fefd =0x00004;_fabeg =0x00008;_gebb =0x00020;_eaeg =0x00040;_egbb =0x10000;_cfea =0x20000;_edbe =0x40000;);
// AddCRLs adds CRLs to DSS.
func (_caab *DSS )AddCRLs (crls [][]byte )([]*_fd .PdfObjectStream ,error ){return _caab .add (&_caab .CRLs ,_caab ._bgacf ,crls );};func (_gbbe *PdfReader )newPdfAnnotationMovieFromDict (_bdcd *_fd .PdfObjectDictionary )(*PdfAnnotationMovie ,error ){_eeb :=PdfAnnotationMovie {};
_eeb .T =_bdcd .Get ("\u0054");_eeb .Movie =_bdcd .Get ("\u004d\u006f\u0076i\u0065");_eeb .A =_bdcd .Get ("\u0041");return &_eeb ,nil ;};
// FlattenFieldsWithOpts flattens the AcroForm fields of the page using the
// provided field appearance generator and the specified options. If no options
// are specified, all form fields are flattened for the page.
// If a filter function is provided using the opts parameter, only the filtered
// fields are flattened. Otherwise, all form fields are flattened.
func (_degc *PdfPage )FlattenFieldsWithOpts (appgen FieldAppearanceGenerator ,opts *FieldFlattenOpts )error {_cdfe :=map[*PdfAnnotation ]bool {};_bfgfc ,_afaaf :=_degc .GetAnnotations ();if _afaaf !=nil {return _afaaf ;};_agfd :=false ;for _ ,_ecda :=range _bfgfc {if opts .AnnotFilterFunc !=nil {_cdfe [_ecda ]=opts .AnnotFilterFunc (_ecda );
}else {_cdfe [_ecda ]=true ;};if _cdfe [_ecda ]{_agfd =true ;};};if !_agfd {return nil ;};return _degc .flattenFieldsWithOpts (appgen ,opts ,_cdfe );};
// ToPdfObject implements interface PdfModel.
func (_bdaf *PdfActionHide )ToPdfObject ()_fd .PdfObject {_bdaf .PdfAction .ToPdfObject ();_ccf :=_bdaf ._bfb ;_edfg :=_ccf .PdfObject .(*_fd .PdfObjectDictionary );_edfg .SetIfNotNil ("\u0053",_fd .MakeName (string (ActionTypeHide )));_edfg .SetIfNotNil ("\u0054",_bdaf .T );
_edfg .SetIfNotNil ("\u0048",_bdaf .H );return _ccf ;};
// ToPdfObject returns the PDF representation of the colorspace.
func (_ddee *PdfColorspaceDeviceGray )ToPdfObject ()_fd .PdfObject {return _fd .MakeName ("\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079");};
// SetContext sets the sub pattern (context). Either PdfTilingPattern or PdfShadingPattern.
func (_edcdb *PdfPattern )SetContext (ctx PdfModel ){_edcdb ._dccfd =ctx };func (_aaga *fontFile )loadFromSegments (_gedce ,_gfede []byte )error {_ag .Log .Trace ("\u006c\u006f\u0061dF\u0072\u006f\u006d\u0053\u0065\u0067\u006d\u0065\u006e\u0074\u0073\u003a\u0020\u0025\u0064\u0020\u0025\u0064",len (_gedce ),len (_gfede ));
_bdae :=_aaga .parseASCIIPart (_gedce );if _bdae !=nil {return _bdae ;};_ag .Log .Trace ("f\u006f\u006e\u0074\u0066\u0069\u006c\u0065\u003d\u0025\u0073",_aaga );if len (_gfede )==0{return nil ;};_ag .Log .Trace ("f\u006f\u006e\u0074\u0066\u0069\u006c\u0065\u003d\u0025\u0073",_aaga );
return nil ;};
// 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 ){_bdfd ,_fceb :=_bceg (basefont );if _fceb !=nil {return nil ,_fceb ;};if basefont !=SymbolName &&basefont !=ZapfDingbatsName {_bdfd ._dcfda =_ee .NewWinAnsiEncoder ();};return &PdfFont {_gbaac :&_bdfd },nil ;
};
// 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 *_fd .PdfObjectName ;Colorants _fd .PdfObject ;Process _fd .PdfObject ;MixingHints _fd .PdfObject ;_cbd *_fd .PdfIndirectObject ;};
// PdfColorPattern represents a pattern color.
type PdfColorPattern struct{Color PdfColor ;PatternName _fd .PdfObjectName ;};func (_fgec *PdfReader )newPdfActionResetFormFromDict (_bbe *_fd .PdfObjectDictionary )(*PdfActionResetForm ,error ){return &PdfActionResetForm {Fields :_bbe .Get ("\u0046\u0069\u0065\u006c\u0064\u0073"),Flags :_bbe .Get ("\u0046\u006c\u0061g\u0073")},nil ;
};
// PdfFont represents an underlying font structure which can be of type:
// - Type0
// - Type1
// - TrueType
// etc.
type PdfFont struct{_gbaac pdfFont };func (_abcb *LTV )enable (_ebdab ,_cfccb []*_gff .Certificate ,_efbge string )error {_bcab ,_decba ,_ecab :=_abcb .buildCertChain (_ebdab ,_cfccb );if _ecab !=nil {return _ecab ;};_cefb ,_ecab :=_abcb .getCerts (_bcab );
if _ecab !=nil {return _ecab ;};var _aaffc ,_fdgcd [][]byte ;if _abcb .OCSPClient !=nil {_aaffc ,_ecab =_abcb .getOCSPs (_bcab ,_decba );if _ecab !=nil {return _ecab ;};};if _abcb .CRLClient !=nil {_fdgcd ,_ecab =_abcb .getCRLs (_bcab );if _ecab !=nil {return _ecab ;
};};_caegg :=_abcb ._fefa ;_abgef ,_ecab :=_caegg .AddCerts (_cefb );if _ecab !=nil {return _ecab ;};_cafg ,_ecab :=_caegg .AddOCSPs (_aaffc );if _ecab !=nil {return _ecab ;};_eeacf ,_ecab :=_caegg .AddCRLs (_fdgcd );if _ecab !=nil {return _ecab ;};if _efbge !=""{_caegg .VRI [_efbge ]=&VRI {Cert :_abgef ,OCSP :_cafg ,CRL :_eeacf };
};_abcb ._gaggb .SetDSS (_caegg );return nil ;};
// Height returns the height of `rect`.
func (_ecggg *PdfRectangle )Height ()float64 {return _af .Abs (_ecggg .Ury -_ecggg .Lly )};func _eege (_gddg string )map[string ]string {_bfdg :=_daef .Split (_gddg ,-1);_ffec :=map[string ]string {};for _ ,_gecge :=range _bfdg {_ebcbb :=_ebccf .FindStringSubmatch (_gecge );
if _ebcbb ==nil {continue ;};_fbff ,_eabce :=_ebcbb [1],_ebcbb [2];_ffec [_fbff ]=_eabce ;};return _ffec ;};
// 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 *_fd .PdfObjectName ;AlternateSpace PdfColorspace ;TintTransform PdfFunction ;_dbeeaf *_fd .PdfIndirectObject ;};
// PdfAnnotation3D represents 3D annotations.
// (Section 13.6.2).
type PdfAnnotation3D struct{*PdfAnnotation ;T3DD _fd .PdfObject ;T3DV _fd .PdfObject ;T3DA _fd .PdfObject ;T3DI _fd .PdfObject ;T3DB _fd .PdfObject ;};func _affgb (_eafeg *XObjectImage )error {if _eafeg .SMask ==nil {return nil ;};_bffge ,_baecd :=_eafeg .SMask .(*_fd .PdfObjectStream );
if !_baecd {_ag .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 _fd .ErrTypeError ;};_acda :=_bffge .PdfObjectDictionary ;
_cbdfa :=_acda .Get ("\u004d\u0061\u0074t\u0065");if _cbdfa ==nil {return nil ;};_ebaacg ,_bcfeb :=_cfddd (_cbdfa .(*_fd .PdfObjectArray ));if _bcfeb !=nil {return _bcfeb ;};_fbddd :=_fd .MakeArrayFromFloats ([]float64 {_ebaacg });_acda .SetIfNotNil ("\u004d\u0061\u0074t\u0065",_fbddd );
return 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 ){_abbdb ,_gbff :=_gbe .Open (filePath );if _gbff !=nil {_ag .Log .Debug ("\u0045\u0052\u0052OR\u003a\u0020\u006f\u0070\u0065\u006e\u0069\u006e\u0067\u0020\u0066\u0069\u006c\u0065\u003a\u0020\u0025\u0076",_gbff );
return nil ,_gbff ;};defer _abbdb .Close ();return NewCompositePdfFontFromTTF (_abbdb );};
// L returns the value of the L component of the color.
func (_agbgf *PdfColorLab )L ()float64 {return _agbgf [0]};
// NewPdfColorspaceDeviceN returns an initialized PdfColorspaceDeviceN.
func NewPdfColorspaceDeviceN ()*PdfColorspaceDeviceN {_efgd :=&PdfColorspaceDeviceN {};return _efgd };
// String returns a string describing the font descriptor.
func (_dfegd *PdfFontDescriptor )String ()string {var _cfbc []string ;if _dfegd .FontName !=nil {_cfbc =append (_cfbc ,_dfegd .FontName .String ());};if _dfegd .FontFamily !=nil {_cfbc =append (_cfbc ,_dfegd .FontFamily .String ());};if _dfegd .fontFile !=nil {_cfbc =append (_cfbc ,_dfegd .fontFile .String ());
};if _dfegd ._dccc !=nil {_cfbc =append (_cfbc ,_dfegd ._dccc .String ());};_cfbc =append (_cfbc ,_dc .Sprintf ("\u0046\u006f\u006et\u0046\u0069\u006c\u0065\u0033\u003d\u0025\u0074",_dfegd .FontFile3 !=nil ));return _dc .Sprintf ("\u0046\u004f\u004e\u0054_D\u0045\u0053\u0043\u0052\u0049\u0050\u0054\u004f\u0052\u007b\u0025\u0073\u007d",_gg .Join (_cfbc ,"\u002c\u0020"));
};
// PartialName returns the partial name of the field.
func (_cccec *PdfField )PartialName ()string {_dcda :="";if _cccec .T !=nil {_dcda =_cccec .T .Decoded ();}else {_ag .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 _dcda ;};func (_debee *PdfWriter )setWriter (_dfgaef _bc .Writer ){_debee ._bbcab =_debee ._dfgae ;_debee ._abgaac =_b .NewWriter (_dfgaef );};func (_dfgac *PdfReader )loadStructure ()error {if _dfgac ._faaf .GetCrypter ()!=nil &&!_dfgac ._faaf .IsAuthenticated (){return _dc .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");
};_daafb :=_dfgac ._faaf .GetTrailer ();if _daafb ==nil {return _dc .Errorf ("\u006di\u0073s\u0069\u006e\u0067\u0020\u0074\u0072\u0061\u0069\u006c\u0065\u0072");};_dccbc ,_cbbca :=_daafb .Get ("\u0052\u006f\u006f\u0074").(*_fd .PdfObjectReference );if !_cbbca {return _dc .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",_daafb );
};_bfeda ,_fcceee :=_dfgac ._faaf .LookupByReference (*_dccbc );if _fcceee !=nil {_ag .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",_fcceee );
return _fcceee ;};_gdbf ,_cbbca :=_bfeda .(*_fd .PdfIndirectObject );if !_cbbca {_ag .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",_bfeda ,*_daafb );
return _ad .New ("\u006di\u0073s\u0069\u006e\u0067\u0020\u0063\u0061\u0074\u0061\u006c\u006f\u0067");};_dgcd ,_cbbca :=(*_gdbf ).PdfObject .(*_fd .PdfObjectDictionary );if !_cbbca {_ag .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",_gdbf .PdfObject );
return _ad .New ("\u0069n\u0076a\u006c\u0069\u0064\u0020\u0063\u0061\u0074\u0061\u006c\u006f\u0067");};_ag .Log .Trace ("C\u0061\u0074\u0061\u006c\u006f\u0067\u003a\u0020\u0025\u0073",_dgcd );_dgdfe ,_cbbca :=_dgcd .Get ("\u0050\u0061\u0067e\u0073").(*_fd .PdfObjectReference );
if !_cbbca {return _ad .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");};_bddfb ,_fcceee :=_dfgac ._faaf .LookupByReference (*_dgdfe );
if _fcceee !=nil {_ag .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 _fcceee ;};_geaec ,_cbbca :=_bddfb .(*_fd .PdfIndirectObject );if !_cbbca {_ag .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");
_ag .Log .Debug ("\u006f\u0070\u003a\u0020\u0025\u0070",_geaec );return _ad .New ("p\u0061g\u0065\u0073\u0020\u006f\u0062\u006a\u0065\u0063t\u0020\u0069\u006e\u0076al\u0069\u0064");};_fafec ,_cbbca :=_geaec .PdfObject .(*_fd .PdfObjectDictionary );if !_cbbca {_ag .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",_geaec );
return _ad .New ("p\u0061g\u0065\u0073\u0020\u006f\u0062\u006a\u0065\u0063t\u0020\u0069\u006e\u0076al\u0069\u0064");};_fdbga ,_cbbca :=_fd .GetInt (_fafec .Get ("\u0043\u006f\u0075n\u0074"));if !_cbbca {_ag .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 _ad .New ("\u0070\u0061\u0067\u0065s \u0063\u006f\u0075\u006e\u0074\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064");};if _ ,_cbbca =_fd .GetName (_fafec .Get ("\u0054\u0079\u0070\u0065"));!_cbbca {_ag .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");
_fafec .Set ("\u0054\u0079\u0070\u0065",_fd .MakeName ("\u0050\u0061\u0067e\u0073"));};if _ddag ,_bdef :=_fd .GetInt (_fafec .Get ("\u0052\u006f\u0074\u0061\u0074\u0065"));_bdef {_bafa :=int64 (*_ddag );_dfgac .Rotate =&_bafa ;};_dfgac ._cbfcd =_dccbc ;
_dfgac ._gabca =_dgcd ;_dfgac ._dddeg =_fafec ;_dfgac ._gaag =_geaec ;_dfgac ._fdeae =int (*_fdbga );_dfgac ._bbfca =[]*_fd .PdfIndirectObject {};_cgbba :=map[_fd .PdfObject ]struct{}{};_fcceee =_dfgac .buildPageList (_geaec ,nil ,_cgbba );if _fcceee !=nil {return _fcceee ;
};_ag .Log .Trace ("\u002d\u002d\u002d");_ag .Log .Trace ("\u0054\u004f\u0043");_ag .Log .Trace ("\u0050\u0061\u0067e\u0073");_ag .Log .Trace ("\u0025\u0064\u003a\u0020\u0025\u0073",len (_dfgac ._bbfca ),_dfgac ._bbfca );_dfgac ._aceac ,_fcceee =_dfgac .loadOutlines ();
if _fcceee !=nil {_ag .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",_fcceee );
return _fcceee ;};_dfgac .AcroForm ,_fcceee =_dfgac .loadForms ();if _fcceee !=nil {return _fcceee ;};_dfgac .DSS ,_fcceee =_dfgac .loadDSS ();if _fcceee !=nil {return _fcceee ;};_dfgac ._cggae ,_fcceee =_dfgac .loadPerms ();if _fcceee !=nil {return _fcceee ;
};return nil ;};func (_dgbde fontCommon )asPdfObjectDictionary (_ebbba string )*_fd .PdfObjectDictionary {if _ebbba !=""&&_dgbde ._eded !=""&&_ebbba !=_dgbde ._eded {_ag .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",_ebbba ,_dgbde );
}else if _ebbba ==""&&_dgbde ._eded ==""{_ag .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",_dgbde );
}else if _dgbde ._eded ==""{_dgbde ._eded =_ebbba ;};_bfff :=_fd .MakeDict ();_bfff .Set ("\u0054\u0079\u0070\u0065",_fd .MakeName ("\u0046\u006f\u006e\u0074"));_bfff .Set ("\u0042\u0061\u0073\u0065\u0046\u006f\u006e\u0074",_fd .MakeName (_dgbde ._ffedb ));
_bfff .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fd .MakeName (_dgbde ._eded ));if _dgbde ._babe !=nil {_bfff .Set ("\u0046\u006f\u006e\u0074\u0044\u0065\u0073\u0063\u0072i\u0070\u0074\u006f\u0072",_dgbde ._babe .ToPdfObject ());};if _dgbde ._eebbb !=nil {_bfff .Set ("\u0054o\u0055\u006e\u0069\u0063\u006f\u0064e",_dgbde ._eebbb );
}else if _dgbde ._dgdg !=nil {_gdec ,_egfdg :=_dgbde ._dgdg .Stream ();if _egfdg !=nil {_ag .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",_egfdg );
}else {_bfff .Set ("\u0054o\u0055\u006e\u0069\u0063\u006f\u0064e",_gdec );};};return _bfff ;};func _aaece (_ecfdg _fd .PdfObject )(*PdfFontDescriptor ,error ){_gcccf :=&PdfFontDescriptor {};_ecfdg =_fd .ResolveReference (_ecfdg );if _bbddd ,_gggdg :=_ecfdg .(*_fd .PdfIndirectObject );
_gggdg {_gcccf ._aefcd =_bbddd ;_ecfdg =_bbddd .PdfObject ;};_fccee ,_cgfdc :=_fd .GetDict (_ecfdg );if !_cgfdc {_ag .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",_ecfdg );
return nil ,_fd .ErrTypeError ;};if _gdgba :=_fccee .Get ("\u0046\u006f\u006e\u0074\u004e\u0061\u006d\u0065");_gdgba !=nil {_gcccf .FontName =_gdgba ;}else {_ag .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");
};_cbdag ,_ :=_fd .GetName (_gcccf .FontName );if _dbeeg :=_fccee .Get ("\u0054\u0079\u0070\u0065");_dbeeg !=nil {_bbafe ,_adcg :=_dbeeg .(*_fd .PdfObjectName );if !_adcg ||string (*_bbafe )!="\u0046\u006f\u006e\u0074\u0044\u0065\u0073\u0063\u0072i\u0070\u0074\u006f\u0072"{_ag .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",_dbeeg ,_cbdag ,_gcccf .FontName );
};}else {_ag .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",_cbdag ,_gcccf .FontName );
};_gcccf .FontFamily =_fccee .Get ("\u0046\u006f\u006e\u0074\u0046\u0061\u006d\u0069\u006c\u0079");_gcccf .FontStretch =_fccee .Get ("F\u006f\u006e\u0074\u0053\u0074\u0072\u0065\u0074\u0063\u0068");_gcccf .FontWeight =_fccee .Get ("\u0046\u006f\u006e\u0074\u0057\u0065\u0069\u0067\u0068\u0074");
_gcccf .Flags =_fccee .Get ("\u0046\u006c\u0061g\u0073");_gcccf .FontBBox =_fccee .Get ("\u0046\u006f\u006e\u0074\u0042\u0042\u006f\u0078");_gcccf .ItalicAngle =_fccee .Get ("I\u0074\u0061\u006c\u0069\u0063\u0041\u006e\u0067\u006c\u0065");_gcccf .Ascent =_fccee .Get ("\u0041\u0073\u0063\u0065\u006e\u0074");
_gcccf .Descent =_fccee .Get ("\u0044e\u0073\u0063\u0065\u006e\u0074");_gcccf .Leading =_fccee .Get ("\u004ce\u0061\u0064\u0069\u006e\u0067");_gcccf .CapHeight =_fccee .Get ("\u0043a\u0070\u0048\u0065\u0069\u0067\u0068t");_gcccf .XHeight =_fccee .Get ("\u0058H\u0065\u0069\u0067\u0068\u0074");
_gcccf .StemV =_fccee .Get ("\u0053\u0074\u0065m\u0056");_gcccf .StemH =_fccee .Get ("\u0053\u0074\u0065m\u0048");_gcccf .AvgWidth =_fccee .Get ("\u0041\u0076\u0067\u0057\u0069\u0064\u0074\u0068");_gcccf .MaxWidth =_fccee .Get ("\u004d\u0061\u0078\u0057\u0069\u0064\u0074\u0068");
_gcccf .MissingWidth =_fccee .Get ("\u004d\u0069\u0073s\u0069\u006e\u0067\u0057\u0069\u0064\u0074\u0068");_gcccf .FontFile =_fccee .Get ("\u0046\u006f\u006e\u0074\u0046\u0069\u006c\u0065");_gcccf .FontFile2 =_fccee .Get ("\u0046o\u006e\u0074\u0046\u0069\u006c\u00652");
_gcccf .FontFile3 =_fccee .Get ("\u0046o\u006e\u0074\u0046\u0069\u006c\u00653");_gcccf .CharSet =_fccee .Get ("\u0043h\u0061\u0072\u0053\u0065\u0074");_gcccf .Style =_fccee .Get ("\u0053\u0074\u0079l\u0065");_gcccf .Lang =_fccee .Get ("\u004c\u0061\u006e\u0067");
_gcccf .FD =_fccee .Get ("\u0046\u0044");_gcccf .CIDSet =_fccee .Get ("\u0043\u0049\u0044\u0053\u0065\u0074");if _gcccf .Flags !=nil {if _fbec ,_fage :=_fd .GetIntVal (_gcccf .Flags );_fage {_gcccf ._egced =_fbec ;};};if _gcccf .MissingWidth !=nil {if _aecdd ,_ddcec :=_fd .GetNumberAsFloat (_gcccf .MissingWidth );
_ddcec ==nil {_gcccf ._gfbd =_aecdd ;};};if _gcccf .FontFile !=nil {_dbfc ,_ebff :=_bbcga (_gcccf .FontFile );if _ebff !=nil {return _gcccf ,_ebff ;};_ag .Log .Trace ("f\u006f\u006e\u0074\u0046\u0069\u006c\u0065\u003d\u0025\u0073",_dbfc );_gcccf .fontFile =_dbfc ;
};if _gcccf .FontFile2 !=nil {_fdaff ,_cccge :=_cf .NewFontFile2FromPdfObject (_gcccf .FontFile2 );if _cccge !=nil {return _gcccf ,_cccge ;};_ag .Log .Trace ("\u0066\u006f\u006et\u0046\u0069\u006c\u0065\u0032\u003d\u0025\u0073",_fdaff .String ());_gcccf ._dccc =&_fdaff ;
};return _gcccf ,nil ;};
// PdfOutlineTreeNode contains common fields used by the outline and outline
// item objects.
type PdfOutlineTreeNode struct{_gcgcg interface{};First *PdfOutlineTreeNode ;Last *PdfOutlineTreeNode ;};
// GetPrimitiveFromModel returns the primitive object corresponding to the input `model`.
func (_eegb *modelManager )GetPrimitiveFromModel (model PdfModel )_fd .PdfObject {_fgade ,_acef :=_eegb ._eeead [model ];if !_acef {return nil ;};return _fgade ;};
// PdfActionMovie represents a movie action.
type PdfActionMovie struct{*PdfAction ;Annotation _fd .PdfObject ;T _fd .PdfObject ;Operation _fd .PdfObject ;};
// GetRuneMetrics returns the character metrics for the rune.
// A bool flag is returned to indicate whether or not the entry was found.
func (_daaaf pdfFontSimple )GetRuneMetrics (r rune )(_cf .CharMetrics ,bool ){if _daaaf ._dcgdd !=nil {_bcegd ,_bfdc :=_daaaf ._dcgdd .Read (r );if _bfdc {return _bcegd ,true ;};};_aacb :=_daaaf .Encoder ();if _aacb ==nil {_ag .Log .Debug ("\u004e\u006f\u0020en\u0063\u006f\u0064\u0065\u0072\u0020\u0066\u006f\u0072\u0020\u0066\u006f\u006e\u0074\u0073\u003d\u0025\u0073",_daaaf );
return _cf .CharMetrics {},false ;};_gdebf ,_eac :=_aacb .RuneToCharcode (r );if !_eac {if r !=' '{_ag .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 ,_daaaf );
};return _cf .CharMetrics {},false ;};_cggca ,_gegef :=_daaaf .GetCharMetrics (_gdebf );return _cggca ,_gegef ;};
// GetSubFilter returns SubFilter value or empty string.
func (_bbeceb *pdfSignDictionary )GetSubFilter ()string {_gcgcgf :=_bbeceb .Get ("\u0053u\u0062\u0046\u0069\u006c\u0074\u0065r");if _gcgcgf ==nil {return "";};if _dadf ,_bedbd :=_fd .GetNameVal (_gcgcgf );_bedbd {return _dadf ;};return "";};func (_gddgf *PdfSignature )extractChainFromPKCS7 ()([]*_gff .Certificate ,error ){_effb ,_eebbe :=_ada .Parse (_gddgf .Contents .Bytes ());
if _eebbe !=nil {return nil ,_eebbe ;};return _effb .Certificates ,nil ;};func _eeafa (_becbd *_gbed .ImageBase )(_fcgad Image ){_fcgad .Width =int64 (_becbd .Width );_fcgad .Height =int64 (_becbd .Height );_fcgad .BitsPerComponent =int64 (_becbd .BitsPerComponent );
_fcgad .ColorComponents =_becbd .ColorComponents ;_fcgad .Data =_becbd .Data ;_fcgad ._cdbdc =_becbd .Decode ;_fcgad ._gfffd =_becbd .Alpha ;return _fcgad ;};
// PdfOutline represents a PDF outline dictionary (Table 152 - p. 376).
type PdfOutline struct{PdfOutlineTreeNode ;Parent *PdfOutlineTreeNode ;Count *int64 ;_fcef *_fd .PdfIndirectObject ;};func (_cbac *PdfReader )newPdfActionLaunchFromDict (_dfa *_fd .PdfObjectDictionary )(*PdfActionLaunch ,error ){_ddc ,_gcfg :=_ece (_dfa .Get ("\u0046"));
if _gcfg !=nil {return nil ,_gcfg ;};return &PdfActionLaunch {Win :_dfa .Get ("\u0057\u0069\u006e"),Mac :_dfa .Get ("\u004d\u0061\u0063"),Unix :_dfa .Get ("\u0055\u006e\u0069\u0078"),NewWindow :_dfa .Get ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw"),F :_ddc },nil ;
};
// GetContainingPdfObject returns the container of the PdfAcroForm (indirect object).
func (_aegcde *PdfAcroForm )GetContainingPdfObject ()_fd .PdfObject {return _aegcde ._fefdb };
// NewPdfWriter initializes a new PdfWriter.
func NewPdfWriter ()PdfWriter {_eggce :=PdfWriter {};_eggce ._agfaff =map[_fd .PdfObject ]struct{}{};_eggce ._agfbf =[]_fd .PdfObject {};_eggce ._aaabd =map[_fd .PdfObject ][]*_fd .PdfObjectDictionary {};_eggce ._bagca =map[_fd .PdfObject ]struct{}{};_eggce ._ggaddg .Major =1;
_eggce ._ggaddg .Minor =3;_gagee :=_fd .MakeDict ();_cfgcc :=[]struct{_ddfce _fd .PdfObjectName ;_gdbge string ;}{{"\u0050\u0072\u006f\u0064\u0075\u0063\u0065\u0072",_eeeaa ()},{"\u0043r\u0065\u0061\u0074\u006f\u0072",_edeca ()},{"\u0041\u0075\u0074\u0068\u006f\u0072",_bgaa ()},{"\u0053u\u0062\u006a\u0065\u0063\u0074",_cbea ()},{"\u0054\u0069\u0074l\u0065",_gfeef ()},{"\u004b\u0065\u0079\u0077\u006f\u0072\u0064\u0073",_egdga ()}};
for _ ,_bbff :=range _cfgcc {if _bbff ._gdbge !=""{_gagee .Set (_bbff ._ddfce ,_fd .MakeString (_bbff ._gdbge ));};};if _ddead :=_bddaa ();!_ddead .IsZero (){if _adcae ,_fcgde :=NewPdfDateFromTime (_ddead );_fcgde ==nil {_gagee .Set ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065",_adcae .ToPdfObject ());
};};if _gfagc :=_ddbf ();!_gfagc .IsZero (){if _cbccd ,_egafgc :=NewPdfDateFromTime (_gfagc );_egafgc ==nil {_gagee .Set ("\u004do\u0064\u0044\u0061\u0074\u0065",_cbccd .ToPdfObject ());};};_bbdfg :=_fd .PdfIndirectObject {};_bbdfg .PdfObject =_gagee ;
_eggce ._ggdfa =&_bbdfg ;_eggce .addObject (&_bbdfg );_eefb :=_fd .PdfIndirectObject {};_dedbd :=_fd .MakeDict ();_dedbd .Set ("\u0054\u0079\u0070\u0065",_fd .MakeName ("\u0043a\u0074\u0061\u006c\u006f\u0067"));_eefb .PdfObject =_dedbd ;_eggce ._defdd =&_eefb ;
_eggce .addObject (_eggce ._defdd );_fcgfa ,_ccdec :=_abbdf ("\u0077");if _ccdec !=nil {_ag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_ccdec );};_eggce ._cdfgf =_fcgfa ;_aeeee :=_fd .PdfIndirectObject {};_bfafd :=_fd .MakeDict ();_bfafd .Set ("\u0054\u0079\u0070\u0065",_fd .MakeName ("\u0050\u0061\u0067e\u0073"));
_cebg :=_fd .PdfObjectArray {};_bfafd .Set ("\u004b\u0069\u0064\u0073",&_cebg );_bfafd .Set ("\u0043\u006f\u0075n\u0074",_fd .MakeInteger (0));_aeeee .PdfObject =_bfafd ;_eggce ._eecde =&_aeeee ;_eggce ._efed =map[_fd .PdfObject ]struct{}{};_eggce .addObject (_eggce ._eecde );
_dedbd .Set ("\u0050\u0061\u0067e\u0073",&_aeeee );_eggce ._fdaca =_dedbd ;_ag .Log .Trace ("\u0043\u0061\u0074\u0061\u006c\u006f\u0067\u0020\u0025\u0073",_eefb );return _eggce ;};
// 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 };};
// GetContainingPdfObject returns the container of the outline tree node (indirect object).
func (_bcae *PdfOutlineTreeNode )GetContainingPdfObject ()_fd .PdfObject {return _bcae .GetContext ().GetContainingPdfObject ();};func _bbdf (_befg _fd .PdfObject )(*PdfColorspaceICCBased ,error ){_gffab :=&PdfColorspaceICCBased {};if _efdfd ,_ceadf :=_befg .(*_fd .PdfIndirectObject );
_ceadf {_gffab ._gddfd =_efdfd ;};_befg =_fd .TraceToDirectObject (_befg );_dbff ,_eafg :=_befg .(*_fd .PdfObjectArray );if !_eafg {return nil ,_dc .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _dbff .Len ()!=2{return nil ,_dc .Errorf ("i\u006e\u0076\u0061\u006c\u0069\u0064 \u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064\u0020c\u006f\u006c\u006fr\u0073p\u0061\u0063\u0065");
};_befg =_fd .TraceToDirectObject (_dbff .Get (0));_fbaa ,_eafg :=_befg .(*_fd .PdfObjectName );if !_eafg {return nil ,_dc .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 *_fbaa !="\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064"{return nil ,_dc .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");};_befg =_dbff .Get (1);
_gcdab ,_eafg :=_fd .GetStream (_befg );if !_eafg {_ag .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",_befg );
return nil ,_dc .Errorf ("\u0049\u0043\u0043Ba\u0073\u0065\u0064\u0020\u0073\u0074\u0072\u0065\u0061\u006d\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064");};_efafg :=_gcdab .PdfObjectDictionary ;_ecge ,_eafg :=_efafg .Get ("\u004e").(*_fd .PdfObjectInteger );
if !_eafg {return nil ,_dc .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 *_ecge !=1&&*_ecge !=3&&*_ecge !=4{return nil ,_dc .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");
};_gffab .N =int (*_ecge );if _fagg :=_efafg .Get ("\u0041l\u0074\u0065\u0072\u006e\u0061\u0074e");_fagg !=nil {_fbbd ,_ebag :=NewPdfColorspaceFromPdfObject (_fagg );if _ebag !=nil {return nil ,_ebag ;};_gffab .Alternate =_fbbd ;};if _aafd :=_efafg .Get ("\u0052\u0061\u006eg\u0065");
_aafd !=nil {_aafd =_fd .TraceToDirectObject (_aafd );_egbg ,_dagbe :=_aafd .(*_fd .PdfObjectArray );if !_dagbe {return nil ,_dc .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 _egbg .Len ()!=2*_gffab .N {return nil ,_dc .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");
};_agge ,_bbad :=_egbg .GetAsFloat64Slice ();if _bbad !=nil {return nil ,_bbad ;};_gffab .Range =_agge ;}else {_gffab .Range =make ([]float64 ,2*_gffab .N );for _dacbb :=0;_dacbb < _gffab .N ;_dacbb ++{_gffab .Range [2*_dacbb ]=0.0;_gffab .Range [2*_dacbb +1]=1.0;
};};if _bgedb :=_efafg .Get ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");_bgedb !=nil {_ggdc ,_eaaf :=_bgedb .(*_fd .PdfObjectStream );if !_eaaf {return nil ,_dc .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");
};_gffab .Metadata =_ggdc ;};_aggc ,_geaed :=_fd .DecodeStream (_gcdab );if _geaed !=nil {return nil ,_geaed ;};_gffab .Data =_aggc ;_gffab ._fbad =_gcdab ;return _gffab ,nil ;};
// 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 (_fgdde *pdfFontSimple )SetEncoder (encoder _ee .TextEncoder ){_fgdde ._dcfda =encoder };
// 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 (_cgecd *LTV )EnableChain (chain []*_gff .Certificate )error {return _cgecd .enable (nil ,chain ,"")};
// NewPdfShadingPatternType3 creates an empty shading pattern type 3 object.
func NewPdfShadingPatternType3 ()*PdfShadingPatternType3 {_bdaec :=&PdfShadingPatternType3 {};_bdaec .Matrix =_fd .MakeArrayFromIntegers ([]int {1,0,0,1,0,0});_bdaec .PdfPattern =&PdfPattern {};_bdaec .PdfPattern .PatternType =int64 (*_fd .MakeInteger (2));
_bdaec .PdfPattern ._dccfd =_bdaec ;_bdaec .PdfPattern ._gcgba =_fd .MakeIndirectObject (_fd .MakeDict ());return _bdaec ;};
// 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 *_fd .PdfObjectArray ;ExtGState _fd .PdfObject ;};
// ToPdfObject returns the PDF representation of the function.
func (_gceb *PdfFunctionType4 )ToPdfObject ()_fd .PdfObject {_afca :=_gceb ._bdga ;if _afca ==nil {_gceb ._bdga =&_fd .PdfObjectStream {};_afca =_gceb ._bdga ;};_ccfcc :=_fd .MakeDict ();_ccfcc .Set ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065",_fd .MakeInteger (4));
_dfaba :=&_fd .PdfObjectArray {};for _ ,_cbcad :=range _gceb .Domain {_dfaba .Append (_fd .MakeFloat (_cbcad ));};_ccfcc .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_dfaba );_bedgb :=&_fd .PdfObjectArray {};for _ ,_ceceea :=range _gceb .Range {_bedgb .Append (_fd .MakeFloat (_ceceea ));
};_ccfcc .Set ("\u0052\u0061\u006eg\u0065",_bedgb );if _gceb ._cbaff ==nil &&_gceb .Program !=nil {_gceb ._cbaff =[]byte (_gceb .Program .String ());};_ccfcc .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_fd .MakeInteger (int64 (len (_gceb ._cbaff ))));
_afca .Stream =_gceb ._cbaff ;_afca .PdfObjectDictionary =_ccfcc ;return _afca ;};func _gebge (_efdb *PdfPage )map[_fd .PdfObjectName ]_fd .PdfObject {_efaf :=make (map[_fd .PdfObjectName ]_fd .PdfObject );if _efdb .Resources ==nil {return _efaf ;};if _efdb .Resources .Font !=nil {if _cfdf ,_affa :=_fd .GetDict (_efdb .Resources .Font );
_affa {for _ ,_feba :=range _cfdf .Keys (){_efaf [_feba ]=_cfdf .Get (_feba );};};};if _efdb .Resources .ExtGState !=nil {if _ebab ,_bgag :=_fd .GetDict (_efdb .Resources .ExtGState );_bgag {for _ ,_eefeb :=range _ebab .Keys (){_efaf [_eefeb ]=_ebab .Get (_eefeb );
};};};if _efdb .Resources .XObject !=nil {if _effg ,_fgdca :=_fd .GetDict (_efdb .Resources .XObject );_fgdca {for _ ,_cecb :=range _effg .Keys (){_efaf [_cecb ]=_effg .Get (_cecb );};};};if _efdb .Resources .Pattern !=nil {if _bfgf ,_efcc :=_fd .GetDict (_efdb .Resources .Pattern );
_efcc {for _ ,_dbgd :=range _bfgf .Keys (){_efaf [_dbgd ]=_bfgf .Get (_dbgd );};};};if _efdb .Resources .Shading !=nil {if _edcd ,_dgfg :=_fd .GetDict (_efdb .Resources .Shading );_dgfg {for _ ,_bace :=range _edcd .Keys (){_efaf [_bace ]=_edcd .Get (_bace );
};};};if _efdb .Resources .ProcSet !=nil {if _bea ,_bcac :=_fd .GetDict (_efdb .Resources .ProcSet );_bcac {for _ ,_fgcg :=range _bea .Keys (){_efaf [_fgcg ]=_bea .Get (_fgcg );};};};if _efdb .Resources .Properties !=nil {if _fcgg ,_cfcc :=_fd .GetDict (_efdb .Resources .Properties );
_cfcc {for _ ,_ggba :=range _fcgg .Keys (){_efaf [_ggba ]=_fcgg .Get (_ggba );};};};return _efaf ;};
// 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 *_fd .PdfObjectStream ;Data []byte ;_gddfd *_fd .PdfIndirectObject ;_fbad *_fd .PdfObjectStream ;};
// ToPdfObject returns the PDF representation of the colorspace.
func (_gfeaa *PdfPageResourcesColorspaces )ToPdfObject ()_fd .PdfObject {_faef :=_fd .MakeDict ();for _ ,_decefa :=range _gfeaa .Names {_faef .Set (_fd .PdfObjectName (_decefa ),_gfeaa .Colorspaces [_decefa ].ToPdfObject ());};if _gfeaa ._abdg !=nil {_gfeaa ._abdg .PdfObject =_faef ;
return _gfeaa ._abdg ;};return _faef ;};
// AcroFormRepairOptions contains options for rebuilding the AcroForm.
type AcroFormRepairOptions struct{};func (_gbgeb *PdfWriter )mapObjectStreams (_egade bool )(map[_fd .PdfObject ]bool ,bool ){_cceec :=make (map[_fd .PdfObject ]bool );for _ ,_cafeb :=range _gbgeb ._agfbf {if _agbgd ,_aadag :=_cafeb .(*_fd .PdfObjectStreams );
_aadag {_egade =true ;for _ ,_cdged :=range _agbgd .Elements (){_cceec [_cdged ]=true ;if _ecege ,_fddde :=_cdged .(*_fd .PdfIndirectObject );_fddde {_cceec [_ecege .PdfObject ]=true ;};};};};return _cceec ,_egade ;};
// ToPdfObject implements interface PdfModel.
func (_dea *PdfActionNamed )ToPdfObject ()_fd .PdfObject {_dea .PdfAction .ToPdfObject ();_bb :=_dea ._bfb ;_dcee :=_bb .PdfObject .(*_fd .PdfObjectDictionary );_dcee .SetIfNotNil ("\u0053",_fd .MakeName (string (ActionTypeNamed )));_dcee .SetIfNotNil ("\u004e",_dea .N );
return _bb ;};
// SetContentStream sets the pattern cell's content stream.
func (_ggfd *PdfTilingPattern )SetContentStream (content []byte ,encoder _fd .StreamEncoder )error {_fdbef ,_dege :=_ggfd ._gcgba .(*_fd .PdfObjectStream );if !_dege {_ag .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",_ggfd ._gcgba );
return _fd .ErrTypeError ;};if encoder ==nil {encoder =_fd .NewRawEncoder ();};_gebgd :=_fdbef .PdfObjectDictionary ;_dbdgf :=encoder .MakeStreamDict ();_gebgd .Merge (_dbdgf );_cfdfb ,_fffee :=encoder .EncodeBytes (content );if _fffee !=nil {return _fffee ;
};_gebgd .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_fd .MakeInteger (int64 (len (_cfdfb ))));_fdbef .Stream =_cfdfb ;return nil ;};
// ToPdfObject implements interface PdfModel.
func (_bad *PdfActionLaunch )ToPdfObject ()_fd .PdfObject {_bad .PdfAction .ToPdfObject ();_fbf :=_bad ._bfb ;_fe :=_fbf .PdfObject .(*_fd .PdfObjectDictionary );_fe .SetIfNotNil ("\u0053",_fd .MakeName (string (ActionTypeLaunch )));if _bad .F !=nil {_fe .Set ("\u0046",_bad .F .ToPdfObject ());
};_fe .SetIfNotNil ("\u0057\u0069\u006e",_bad .Win );_fe .SetIfNotNil ("\u004d\u0061\u0063",_bad .Mac );_fe .SetIfNotNil ("\u0055\u006e\u0069\u0078",_bad .Unix );_fe .SetIfNotNil ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw",_bad .NewWindow );return _fbf ;
};
// Duplicate creates a duplicate page based on the current one and returns it.
func (_abfbg *PdfPage )Duplicate ()*PdfPage {_efbag :=*_abfbg ;_efbag ._gaec =_fd .MakeDict ();_efbag ._fgcac =_fd .MakeIndirectObject (_efbag ._gaec );_efbag ._cadc =*_efbag ._gaec ;return &_efbag ;};
// NewPdfColorspaceICCBased returns a new ICCBased colorspace object.
func NewPdfColorspaceICCBased (N int )(*PdfColorspaceICCBased ,error ){_adfgg :=&PdfColorspaceICCBased {};if N !=1&&N !=3&&N !=4{return nil ,_dc .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u004e\u0020\u0028\u0031/\u0033\u002f\u0034\u0029");
};_adfgg .N =N ;return _adfgg ,nil ;};
// PdfActionType represents an action type in PDF (section 12.6.4 p. 417).
type PdfActionType string ;
// B returns the value of the blue component of the color.
func (_bdabb *PdfColorDeviceRGB )B ()float64 {return _bdabb [2]};func (_eadce *LTV )generateVRIKey (_bbbcd *PdfSignature )(string ,error ){_cebaf ,_gbfcf :=_eagg (_bbbcd .Contents .Bytes ());if _gbfcf !=nil {return "",_gbfcf ;};return _gg .ToUpper (_f .EncodeToString (_cebaf )),nil ;
};
// NewPdfShadingType3 creates an empty shading type 3 dictionary.
func NewPdfShadingType3 ()*PdfShadingType3 {_addbd :=&PdfShadingType3 {};_addbd .PdfShading =&PdfShading {};_addbd .PdfShading ._cdgfd =_fd .MakeIndirectObject (_fd .MakeDict ());_addbd .PdfShading ._cgfce =_addbd ;return _addbd ;};var (CourierName =_cf .CourierName ;
CourierBoldName =_cf .CourierBoldName ;CourierObliqueName =_cf .CourierObliqueName ;CourierBoldObliqueName =_cf .CourierBoldObliqueName ;HelveticaName =_cf .HelveticaName ;HelveticaBoldName =_cf .HelveticaBoldName ;HelveticaObliqueName =_cf .HelveticaObliqueName ;
HelveticaBoldObliqueName =_cf .HelveticaBoldObliqueName ;SymbolName =_cf .SymbolName ;ZapfDingbatsName =_cf .ZapfDingbatsName ;TimesRomanName =_cf .TimesRomanName ;TimesBoldName =_cf .TimesBoldName ;TimesItalicName =_cf .TimesItalicName ;TimesBoldItalicName =_cf .TimesBoldItalicName ;
);
// ReplacePage replaces the original page to a new page.
func (_fbaeg *PdfAppender )ReplacePage (pageNum int ,page *PdfPage ){_dbce :=pageNum -1;for _ecbc :=range _fbaeg ._gbca {if _ecbc ==_dbce {_agad :=page .Duplicate ();_baeb (_agad );_fbaeg ._gbca [_ecbc ]=_agad ;};};};
// GetRuneMetrics iterates through each font in the list of fonts the returns the fonts.CharMetrics from working font.
func (_ffda *MultipleFontEncoder )GetRuneMetrics (r rune )(_cf .CharMetrics ,bool ){_dfgdd :=_ffda .CurrentFont ;_abgbd ,_ggee :=_dfgdd .GetRuneMetrics (r );for _cccd :=1;_cccd < len (_ffda ._ccbbf )&&_abgbd .Wx ==0;_cccd ++{_dfgdd =_ffda ._ccbbf [_cccd ];
_abgbd ,_ggee =_dfgdd .GetRuneMetrics (r );};return _abgbd ,_ggee ;};func (_fbegf *fontFile )parseASCIIPart (_cbdc []byte )error {if len (_cbdc )< 2||string (_cbdc [:2])!="\u0025\u0021"{return _ad .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");
};_ebadg ,_dddfb ,_egfb :=_bgae (_cbdc );if _egfb !=nil {return _egfb ;};_beagd :=_eege (_ebadg );_fbegf ._cbfca =_beagd ["\u0046\u006f\u006e\u0074\u004e\u0061\u006d\u0065"];if _fbegf ._cbfca ==""{_ag .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 _dddfb !=""{_dbbef ,_cgccb :=_ecafd (_dddfb );if _cgccb !=nil {return _cgccb ;};_eccd ,_cgccb :=_ee .NewCustomSimpleTextEncoder (_dbbef ,nil );if _cgccb !=nil {_ag .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",_cgccb );
return nil ;};_fbegf ._cecab =_eccd ;};return nil ;};
// SetPdfAuthor sets the Author attribute of the output PDF.
func SetPdfAuthor (author string ){_feadd .Lock ();defer _feadd .Unlock ();_fbgc =author };func (_gegac *pdfFontSimple )baseFields ()*fontCommon {return &_gegac .fontCommon };
// NewPdfActionHide returns a new "hide" action.
func NewPdfActionHide ()*PdfActionHide {_fge :=NewPdfAction ();_gee :=&PdfActionHide {};_gee .PdfAction =_fge ;_fge .SetContext (_gee );return _gee ;};
// GetAsTilingPattern returns a tiling pattern. Check with IsTiling() prior to using this.
func (_afceb *PdfPattern )GetAsTilingPattern ()*PdfTilingPattern {return _afceb ._dccfd .(*PdfTilingPattern );};
// SetAction sets the PDF action for the annotation link.
func (_bgb *PdfAnnotationLink )SetAction (action *PdfAction ){_bgb ._abb =action ;if action ==nil {_bgb .A =nil ;};};
// Insert adds a top level outline item in the outline,
// at the specified index.
func (_gdbgg *Outline )Insert (index uint ,item *OutlineItem ){_gabgge :=uint (len (_gdbgg .Entries ));if index > _gabgge {index =_gabgge ;};_gdbgg .Entries =append (_gdbgg .Entries [:index ],append ([]*OutlineItem {item },_gdbgg .Entries [index :]...)...);
};
// 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 (_dagfd *PdfFont )FontDescriptor ()*PdfFontDescriptor {if _dagfd .baseFields ()._babe !=nil {return _dagfd .baseFields ()._babe ;};if _fafae :=_dagfd ._gbaac .getFontDescriptor ();_fafae !=nil {return _fafae ;};_ag .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",_dagfd );
return 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{_becad PdfModel ;_dffeb *_fd .PdfIndirectObject ;Parent *PdfField ;Annotations []*PdfAnnotationWidget ;Kids []*PdfField ;FT *_fd .PdfObjectName ;T *_fd .PdfObjectString ;TU *_fd .PdfObjectString ;TM *_fd .PdfObjectString ;Ff *_fd .PdfObjectInteger ;
V _fd .PdfObject ;DV _fd .PdfObject ;AA _fd .PdfObject ;VariableText *VariableText ;};
// SetOptimizer sets the optimizer to optimize PDF before writing.
func (_ceadc *PdfWriter )SetOptimizer (optimizer Optimizer ){_ceadc ._cffdf =optimizer };
// Encoder iterates through the list of fonts and returns a working encoder
func (_acegd *MultipleFontEncoder )Encoder (rn rune )(_ee .TextEncoder ,bool ){_bffb :=_acegd .CurrentFont ;_begcb :=_bffb .Encoder ();_ ,_aeddd :=_begcb .RuneToCharcode (rn );for _bfedb :=1;_bfedb < len (_acegd ._ccbbf )&&!_aeddd ;_bfedb ++{_bffb =_acegd ._ccbbf [_bfedb ];
_begcb =_bffb .Encoder ();_ ,_aeddd =_begcb .RuneToCharcode (rn );_acegd .CurrentFont =_bffb ;};return _begcb ,_aeddd ;};func (_ddfdc *PdfColorspaceSpecialPattern )String ()string {return "\u0050a\u0074\u0074\u0065\u0072\u006e";};
// ToPdfObject implements interface PdfModel.
func (_edd *PdfActionRendition )ToPdfObject ()_fd .PdfObject {_edd .PdfAction .ToPdfObject ();_defe :=_edd ._bfb ;_dab :=_defe .PdfObject .(*_fd .PdfObjectDictionary );_dab .SetIfNotNil ("\u0053",_fd .MakeName (string (ActionTypeRendition )));_dab .SetIfNotNil ("\u0052",_edd .R );
_dab .SetIfNotNil ("\u0041\u004e",_edd .AN );_dab .SetIfNotNil ("\u004f\u0050",_edd .OP );_dab .SetIfNotNil ("\u004a\u0053",_edd .JS );return _defe ;};
// ImageToRGB converts an image with samples in Separation CS to an image with samples specified in
// DeviceRGB CS.
func (_bcbe *PdfColorspaceSpecialSeparation )ImageToRGB (img Image )(Image ,error ){_aeed :=_bg .NewReader (img .getBase ());_bcgga :=_gbed .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),_bcbe .AlternateSpace .GetNumComponents (),nil ,img ._gfffd ,nil );
_fegga :=_bg .NewWriter (_bcgga );_acdc :=_af .Pow (2,float64 (img .BitsPerComponent ))-1;_ag .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");
_ag .Log .Trace ("\u0054i\u006et\u0054\u0072\u0061\u006e\u0073f\u006f\u0072m\u003a\u0020\u0025\u002b\u0076",_bcbe .TintTransform );_fdaf :=_bcbe .AlternateSpace .DecodeArray ();var (_fbeb uint32 ;_ggab error ;);for {_fbeb ,_ggab =_aeed .ReadSample ();if _ggab ==_bc .EOF {break ;
};if _ggab !=nil {return img ,_ggab ;};_aefac :=float64 (_fbeb )/_acdc ;_cagc ,_cdbb :=_bcbe .TintTransform .Evaluate ([]float64 {_aefac });if _cdbb !=nil {return img ,_cdbb ;};for _bdbc ,_bccd :=range _cagc {_acebd :=_gbed .LinearInterpolate (_bccd ,_fdaf [_bdbc *2],_fdaf [_bdbc *2+1],0,1);
if _cdbb =_fegga .WriteSample (uint32 (_acebd *_acdc ));_cdbb !=nil {return img ,_cdbb ;};};};return _bcbe .AlternateSpace .ImageToRGB (_eeafa (&_bcgga ));};
// PdfAnnotationUnderline represents Underline annotations.
// (Section 12.5.6.10).
type PdfAnnotationUnderline struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _fd .PdfObject ;};
// ReaderOpts defines options for creating PdfReader instances.
type ReaderOpts struct{
// Password password of the PDF file encryption.
// Default: empty ("").
Password string ;
// LazyLoad set if the PDF file would be loaded using lazy-loading mode.
// Default: true.
LazyLoad bool ;
// ComplianceMode set if parsed PDF file should contain meta information for the verifiers of the compliance standards like PDF/A.
ComplianceMode bool ;};func _febfg (_cecaf *_fd .PdfObjectDictionary )(*PdfShadingType7 ,error ){_dgabc :=PdfShadingType7 {};_gbdce :=_cecaf .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065");if _gbdce ==nil {_ag .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 ;};_dgfba ,_cdgbd :=_gbdce .(*_fd .PdfObjectInteger );if !_cdgbd {_ag .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",_gbdce );
return nil ,_fd .ErrTypeError ;};_dgabc .BitsPerCoordinate =_dgfba ;_gbdce =_cecaf .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074");if _gbdce ==nil {_ag .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 ;};_dgfba ,_cdgbd =_gbdce .(*_fd .PdfObjectInteger );if !_cdgbd {_ag .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",_gbdce );
return nil ,_fd .ErrTypeError ;};_dgabc .BitsPerComponent =_dgfba ;_gbdce =_cecaf .Get ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067");if _gbdce ==nil {_ag .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 ;};_dgfba ,_cdgbd =_gbdce .(*_fd .PdfObjectInteger );if !_cdgbd {_ag .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",_gbdce );
return nil ,_fd .ErrTypeError ;};_dgabc .BitsPerComponent =_dgfba ;_gbdce =_cecaf .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");if _gbdce ==nil {_ag .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 ;};_fadcb ,_cdgbd :=_gbdce .(*_fd .PdfObjectArray );if !_cdgbd {_ag .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",_gbdce );
return nil ,_fd .ErrTypeError ;};_dgabc .Decode =_fadcb ;if _bcgfe :=_cecaf .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");_bcgfe !=nil {_dgabc .Function =[]PdfFunction {};if _afbdd ,_daafe :=_bcgfe .(*_fd .PdfObjectArray );_daafe {for _ ,_aggef :=range _afbdd .Elements (){_dfaed ,_ggef :=_badad (_aggef );
if _ggef !=nil {_ag .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",_ggef );return nil ,_ggef ;};_dgabc .Function =append (_dgabc .Function ,_dfaed );
};}else {_babd ,_fgcbc :=_badad (_bcgfe );if _fgcbc !=nil {_ag .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",_fgcbc );return nil ,_fgcbc ;
};_dgabc .Function =append (_dgabc .Function ,_babd );};};return &_dgabc ,nil ;};
// RunesToCharcodeBytes maps the provided runes to charcode bytes and it
// returns the resulting slice of bytes, along with the number of runes which
// could not be converted. If the number of misses is 0, all runes were
// successfully converted.
func (_ddba *PdfFont )RunesToCharcodeBytes (data []rune )([]byte ,int ){var _ggfaa []_ee .TextEncoder ;var _abea _ee .CMapEncoder ;if _fceaa :=_ddba .baseFields ()._dgdg ;_fceaa !=nil {_abea =_ee .NewCMapEncoder ("",nil ,_fceaa );};_gggb :=_ddba .Encoder ();
if _gggb !=nil {switch _gdaf :=_gggb .(type ){case _ee .SimpleEncoder :_fagb :=_gdaf .BaseName ();if _ ,_dbcf :=_geafg [_fagb ];_dbcf {_ggfaa =append (_ggfaa ,_gggb );};};};if len (_ggfaa )==0{if _ddba .baseFields ()._dgdg !=nil {_ggfaa =append (_ggfaa ,_abea );
};if _gggb !=nil {_ggfaa =append (_ggfaa ,_gggb );};};var _deecc _bf .Buffer ;var _cfeg int ;for _ ,_cgege :=range data {var _bgdb bool ;for _ ,_ffgff :=range _ggfaa {if _fddcb :=_ffgff .Encode (string (_cgege ));len (_fddcb )> 0{_deecc .Write (_fddcb );
_bgdb =true ;break ;};};if !_bgdb {_ag .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",_cgege );
_cfeg ++;};};if _cfeg !=0{_ag .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 ),_cfeg ,_ddba ,_ggfaa );
};return _deecc .Bytes (),_cfeg ;};func (_fgee *PdfReader )newPdfActionMovieFromDict (_daddc *_fd .PdfObjectDictionary )(*PdfActionMovie ,error ){return &PdfActionMovie {Annotation :_daddc .Get ("\u0041\u006e\u006e\u006f\u0074\u0061\u0074\u0069\u006f\u006e"),T :_daddc .Get ("\u0054"),Operation :_daddc .Get ("\u004fp\u0065\u0072\u0061\u0074\u0069\u006fn")},nil ;
};func _gdfa (_fbfb *_fd .PdfObjectDictionary )bool {for _ ,_fdec :=range _fbfb .Keys (){if _ ,_baca :=_aegc [_fdec .String ()];_baca {return true ;};};return false ;};
// GetCatalogMetadata gets the catalog defined XMP Metadata.
func (_dcabg *PdfReader )GetCatalogMetadata ()(_fd .PdfObject ,bool ){if _dcabg ._gabca ==nil {return nil ,false ;};_gebd :=_dcabg ._gabca .Get ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");return _gebd ,_gebd !=nil ;};
// SetImageHandler sets the image handler used by the package.
func SetImageHandler (imgHandling ImageHandler ){ImageHandling =imgHandling };
// PdfBorderEffect represents a PDF border effect.
type PdfBorderEffect struct{S *BorderEffect ;I *float64 ;};
// SetFlag sets the flag for the field.
func (_fgea *PdfField )SetFlag (flag FieldFlag ){_fgea .Ff =_fd .MakeInteger (int64 (flag ))};func (_ccagdf *PdfWriter )writeOutlines ()error {if _ccagdf ._adfcff ==nil {return nil ;};_ag .Log .Trace ("\u004f\u0075t\u006c\u0069\u006ee\u0054\u0072\u0065\u0065\u003a\u0020\u0025\u002b\u0076",_ccagdf ._adfcff );
_gffad :=_ccagdf ._adfcff .ToPdfObject ();_ag .Log .Trace ("\u004fu\u0074\u006c\u0069\u006e\u0065\u0073\u003a\u0020\u0025\u002b\u0076 \u0028\u0025\u0054\u002c\u0020\u0070\u003a\u0025\u0070\u0029",_gffad ,_gffad ,_gffad );_ccagdf ._fdaca .Set ("\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0073",_gffad );
_cadgf :=_ccagdf .addObjects (_gffad );if _cadgf !=nil {return _cadgf ;};return nil ;};
// Initialize initializes the PdfSignature.
func (_eeeb *PdfSignature )Initialize ()error {if _eeeb .Handler ==nil {return _ad .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 _eeeb .Handler .InitSignature (_eeeb );};
// GetOCProperties returns the optional content properties PdfObject.
func (_gffcd *PdfReader )GetOCProperties ()(_fd .PdfObject ,error ){_gafcd :=_gffcd ._gabca ;_ggfgfg :=_gafcd .Get ("\u004f\u0043\u0050r\u006f\u0070\u0065\u0072\u0074\u0069\u0065\u0073");_ggfgfg =_fd .ResolveReference (_ggfgfg );if !_gffcd ._gfdda {_acdfb :=_gffcd .traverseObjectData (_ggfgfg );
if _acdfb !=nil {return nil ,_acdfb ;};};return _ggfgfg ,nil ;};
// ToPdfObject implements interface PdfModel.
func (_adgg *PdfActionSetOCGState )ToPdfObject ()_fd .PdfObject {_adgg .PdfAction .ToPdfObject ();_eeg :=_adgg ._bfb ;_efba :=_eeg .PdfObject .(*_fd .PdfObjectDictionary );_efba .SetIfNotNil ("\u0053",_fd .MakeName (string (ActionTypeSetOCGState )));_efba .SetIfNotNil ("\u0053\u0074\u0061t\u0065",_adgg .State );
_efba .SetIfNotNil ("\u0050\u0072\u0065\u0073\u0065\u0072\u0076\u0065\u0052\u0042",_adgg .PreserveRB );return _eeg ;};
// 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 (_fabcff *PdfColorspaceCalRGB )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=3{return nil ,_ad .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_beab :=vals [0];if _beab < 0.0||_beab > 1.0{_ag .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_beab );
return nil ,ErrColorOutOfRange ;};_gbbb :=vals [1];if _gbbb < 0.0||_gbbb > 1.0{_ag .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_gbbb );return nil ,ErrColorOutOfRange ;
};_ebbd :=vals [2];if _ebbd < 0.0||_ebbd > 1.0{_ag .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_ebbd );return nil ,ErrColorOutOfRange ;};_ccdd :=NewPdfColorCalRGB (_beab ,_gbbb ,_ebbd );
return _ccdd ,nil ;};func (_fabcf *PdfColorspaceDeviceGray )String ()string {return "\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079";};
// PdfAnnotationRedact represents Redact annotations.
// (Section 12.5.6.23).
type PdfAnnotationRedact struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _fd .PdfObject ;IC _fd .PdfObject ;RO _fd .PdfObject ;OverlayText _fd .PdfObject ;Repeat _fd .PdfObject ;DA _fd .PdfObject ;Q _fd .PdfObject ;};
// ToPdfObject converts the pdfFontSimple to its PDF representation for outputting.
func (_daeee *pdfFontSimple )ToPdfObject ()_fd .PdfObject {if _daeee ._ddggg ==nil {_daeee ._ddggg =&_fd .PdfIndirectObject {};};_egbbc :=_daeee .baseFields ().asPdfObjectDictionary ("");_daeee ._ddggg .PdfObject =_egbbc ;if _daeee .FirstChar !=nil {_egbbc .Set ("\u0046i\u0072\u0073\u0074\u0043\u0068\u0061r",_daeee .FirstChar );
};if _daeee .LastChar !=nil {_egbbc .Set ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072",_daeee .LastChar );};if _daeee .Widths !=nil {_egbbc .Set ("\u0057\u0069\u0064\u0074\u0068\u0073",_daeee .Widths );};if _daeee .Encoding !=nil {_egbbc .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_daeee .Encoding );
}else if _daeee ._dcfda !=nil {_baae :=_daeee ._dcfda .ToPdfObject ();if _baae !=nil {_egbbc .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_baae );};};return _daeee ._ddggg ;};
// 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 (_afef *PdfFont )CharcodesToUnicodeWithStats (charcodes []_ee .CharCode )(_eegdb []rune ,_ggde ,_agab int ){_efefd ,_ggde ,_agab :=_afef .CharcodesToStrings (charcodes ,"");return []rune (_gg .Join (_efefd ,"")),_ggde ,_agab ;};func (_ecgfb *PdfReader )newPdfSignatureFromIndirect (_gcfdc *_fd .PdfIndirectObject )(*PdfSignature ,error ){_cdca ,_edbaa :=_gcfdc .PdfObject .(*_fd .PdfObjectDictionary );
if !_edbaa {_ag .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 _eddd ,_bbebe :=_ecgfb ._fbabb .GetModelFromPrimitive (_gcfdc ).(*PdfSignature );_bbebe {return _eddd ,nil ;};_gfdfg :=&PdfSignature {};_gfdfg ._cbaga =_gcfdc ;_gfdfg .Type ,_ =_fd .GetName (_cdca .Get ("\u0054\u0079\u0070\u0065"));
_gfdfg .Filter ,_edbaa =_fd .GetName (_cdca .Get ("\u0046\u0069\u006c\u0074\u0065\u0072"));if !_edbaa {_ag .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 ;};_gfdfg .SubFilter ,_ =_fd .GetName (_cdca .Get ("\u0053u\u0062\u0046\u0069\u006c\u0074\u0065r"));_gfdfg .Contents ,_edbaa =_fd .GetString (_cdca .Get ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073"));if !_edbaa {_ag .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 _bfebd ,_gcage :=_fd .GetArray (_cdca .Get ("\u0052e\u0066\u0065\u0072\u0065\u006e\u0063e"));_gcage {_gfdfg .Reference =_fd .MakeArray ();for _ ,_aecc :=range _bfebd .Elements (){_bdffc ,_gaeg :=_fd .GetDict (_aecc );
if !_gaeg {_ag .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 ;
};_gdbb ,_affac :=_ecgfb .newPdfSignatureReferenceFromDict (_bdffc );if _affac !=nil {return nil ,_affac ;};_gfdfg .Reference .Append (_gdbb .ToPdfObject ());};};_gfdfg .Cert =_cdca .Get ("\u0043\u0065\u0072\u0074");_gfdfg .ByteRange ,_ =_fd .GetArray (_cdca .Get ("\u0042y\u0074\u0065\u0052\u0061\u006e\u0067e"));
_gfdfg .Changes ,_ =_fd .GetArray (_cdca .Get ("\u0043h\u0061\u006e\u0067\u0065\u0073"));_gfdfg .Name ,_ =_fd .GetString (_cdca .Get ("\u004e\u0061\u006d\u0065"));_gfdfg .M ,_ =_fd .GetString (_cdca .Get ("\u004d"));_gfdfg .Location ,_ =_fd .GetString (_cdca .Get ("\u004c\u006f\u0063\u0061\u0074\u0069\u006f\u006e"));
_gfdfg .Reason ,_ =_fd .GetString (_cdca .Get ("\u0052\u0065\u0061\u0073\u006f\u006e"));_gfdfg .ContactInfo ,_ =_fd .GetString (_cdca .Get ("C\u006f\u006e\u0074\u0061\u0063\u0074\u0049\u006e\u0066\u006f"));_gfdfg .R ,_ =_fd .GetInt (_cdca .Get ("\u0052"));
_gfdfg .V ,_ =_fd .GetInt (_cdca .Get ("\u0056"));_gfdfg .PropBuild ,_ =_fd .GetDict (_cdca .Get ("\u0050\u0072\u006f\u0070\u005f\u0042\u0075\u0069\u006c\u0064"));_gfdfg .PropAuthTime ,_ =_fd .GetInt (_cdca .Get ("\u0050\u0072\u006f\u0070\u005f\u0041\u0075\u0074\u0068\u0054\u0069\u006d\u0065"));
_gfdfg .PropAuthType ,_ =_fd .GetName (_cdca .Get ("\u0050\u0072\u006f\u0070\u005f\u0041\u0075\u0074\u0068\u0054\u0079\u0070\u0065"));_ecgfb ._fbabb .Register (_gcfdc ,_gfdfg );return _gfdfg ,nil ;};
// ToPdfOutline returns a low level PdfOutline object, based on the current
// instance.
func (_dbcea *Outline )ToPdfOutline ()*PdfOutline {_efde :=NewPdfOutline ();var _fgadc []*PdfOutlineItem ;var _bfdad int64 ;var _dfdgc *PdfOutlineItem ;for _ ,_ceee :=range _dbcea .Entries {_ffgde ,_afgb :=_ceee .ToPdfOutlineItem ();_ffgde .Parent =&_efde .PdfOutlineTreeNode ;
if _dfdgc !=nil {_dfdgc .Next =&_ffgde .PdfOutlineTreeNode ;_ffgde .Prev =&_dfdgc .PdfOutlineTreeNode ;};_fgadc =append (_fgadc ,_ffgde );_bfdad +=_afgb ;_dfdgc =_ffgde ;};_ccac :=int64 (len (_fgadc ));_bfdad +=_ccac ;if _ccac > 0{_efde .First =&_fgadc [0].PdfOutlineTreeNode ;
_efde .Last =&_fgadc [_ccac -1].PdfOutlineTreeNode ;_efde .Count =&_bfdad ;};return _efde ;};
// ToPdfObject returns the PDF representation of the DSS dictionary.
func (_agbf *DSS )ToPdfObject ()_fd .PdfObject {_cbcac :=_agbf ._bdcdg .PdfObject .(*_fd .PdfObjectDictionary );_cbcac .Clear ();_fgbe :=_fd .MakeDict ();for _eabbb ,_caaec :=range _agbf .VRI {_fgbe .Set (*_fd .MakeName (_eabbb ),_caaec .ToPdfObject ());
};_cbcac .SetIfNotNil ("\u0043\u0065\u0072t\u0073",_gfafb (_agbf .Certs ));_cbcac .SetIfNotNil ("\u004f\u0043\u0053P\u0073",_gfafb (_agbf .OCSPs ));_cbcac .SetIfNotNil ("\u0043\u0052\u004c\u0073",_gfafb (_agbf .CRLs ));_cbcac .Set ("\u0056\u0052\u0049",_fgbe );
return _agbf ._bdcdg ;};func _fdfgc (_eddfe *_fd .PdfObjectDictionary )(*PdfShadingType6 ,error ){_gceac :=PdfShadingType6 {};_bgdde :=_eddfe .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065");if _bgdde ==nil {_ag .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 ;};_bbabe ,_fgddb :=_bgdde .(*_fd .PdfObjectInteger );if !_fgddb {_ag .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",_bgdde );
return nil ,_fd .ErrTypeError ;};_gceac .BitsPerCoordinate =_bbabe ;_bgdde =_eddfe .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074");if _bgdde ==nil {_ag .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 ;};_bbabe ,_fgddb =_bgdde .(*_fd .PdfObjectInteger );if !_fgddb {_ag .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",_bgdde );
return nil ,_fd .ErrTypeError ;};_gceac .BitsPerComponent =_bbabe ;_bgdde =_eddfe .Get ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067");if _bgdde ==nil {_ag .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 ;};_bbabe ,_fgddb =_bgdde .(*_fd .PdfObjectInteger );if !_fgddb {_ag .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",_bgdde );
return nil ,_fd .ErrTypeError ;};_gceac .BitsPerComponent =_bbabe ;_bgdde =_eddfe .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");if _bgdde ==nil {_ag .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 ;};_bcfd ,_fgddb :=_bgdde .(*_fd .PdfObjectArray );if !_fgddb {_ag .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",_bgdde );
return nil ,_fd .ErrTypeError ;};_gceac .Decode =_bcfd ;if _gggbe :=_eddfe .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");_gggbe !=nil {_gceac .Function =[]PdfFunction {};if _dbdac ,_cegfb :=_gggbe .(*_fd .PdfObjectArray );_cegfb {for _ ,_ccfbcbd :=range _dbdac .Elements (){_aaagb ,_adec :=_badad (_ccfbcbd );
if _adec !=nil {_ag .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",_adec );return nil ,_adec ;};_gceac .Function =append (_gceac .Function ,_aaagb );
};}else {_dacfg ,_egdaa :=_badad (_gggbe );if _egdaa !=nil {_ag .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",_egdaa );return nil ,_egdaa ;
};_gceac .Function =append (_gceac .Function ,_dacfg );};};return &_gceac ,nil ;};
// ToPdfObject implements interface PdfModel.
func (_ecba *PdfAnnotationTrapNet )ToPdfObject ()_fd .PdfObject {_ecba .PdfAnnotation .ToPdfObject ();_aaf :=_ecba ._aeb ;_fgeed :=_aaf .PdfObject .(*_fd .PdfObjectDictionary );_fgeed .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fd .MakeName ("\u0054r\u0061\u0070\u004e\u0065\u0074"));
return _aaf ;};
// ToPdfObject implements interface PdfModel.
func (_acd *PdfActionSound )ToPdfObject ()_fd .PdfObject {_acd .PdfAction .ToPdfObject ();_edea :=_acd ._bfb ;_bec :=_edea .PdfObject .(*_fd .PdfObjectDictionary );_bec .SetIfNotNil ("\u0053",_fd .MakeName (string (ActionTypeSound )));_bec .SetIfNotNil ("\u0053\u006f\u0075n\u0064",_acd .Sound );
_bec .SetIfNotNil ("\u0056\u006f\u006c\u0075\u006d\u0065",_acd .Volume );_bec .SetIfNotNil ("S\u0079\u006e\u0063\u0068\u0072\u006f\u006e\u006f\u0075\u0073",_acd .Synchronous );_bec .SetIfNotNil ("\u0052\u0065\u0070\u0065\u0061\u0074",_acd .Repeat );_bec .SetIfNotNil ("\u004d\u0069\u0078",_acd .Mix );
return _edea ;};
// ColorFromFloats returns a new PdfColor based on the input slice of color
// components. The slice should contain a single element.
func (_gcbda *PdfColorspaceSpecialSeparation )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=1{return nil ,_ad .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_gdddgd :=vals [0];_cece :=[]float64 {_gdddgd };
_cbbf ,_cbbd :=_gcbda .TintTransform .Evaluate (_cece );if _cbbd !=nil {_ag .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",_cbbd );
_ag .Log .Trace ("\u0054\u0069\u006e\u0074 t\u0072\u0061\u006e\u0073\u0066\u006f\u0072\u006d\u003a\u0020\u0025\u002b\u0076",_gcbda .TintTransform );return nil ,_cbbd ;};_ag .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",_cbbf ,_gcbda .AlternateSpace );
_bcdf ,_cbbd :=_gcbda .AlternateSpace .ColorFromFloats (_cbbf );if _cbbd !=nil {_ag .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",_cbbd );
return nil ,_cbbd ;};return _bcdf ,nil ;};
// A returns the value of the A component of the color.
func (_cgda *PdfColorLab )A ()float64 {return _cgda [1]};func _daab (_adeae _bc .ReadSeeker ,_baefec *ReaderOpts ,_ebfcf bool ,_eafdg string )(*PdfReader ,error ){if _baefec ==nil {_baefec =NewReaderOpts ();};_fdcbb :=*_baefec ;_gefgc :=&PdfReader {_gcafg :_adeae ,_cedebc :map[_fd .PdfObject ]struct{}{},_fbabb :_adedc (),_gfdda :_baefec .LazyLoad ,_agdae :_baefec .ComplianceMode ,_gaggbb :_ebfcf ,_badf :&_fdcbb };
_edfd ,_bccf :=_abbdf ("\u0072");if _bccf !=nil {return nil ,_bccf ;};_bccf =_ae .Track (_edfd ,_eafdg );if _bccf !=nil {return nil ,_bccf ;};_gefgc ._ecbab =_edfd ;var _bbadg *_fd .PdfParser ;if !_gefgc ._agdae {_bbadg ,_bccf =_fd .NewParser (_adeae );
}else {_bbadg ,_bccf =_fd .NewCompliancePdfParser (_adeae );};if _bccf !=nil {return nil ,_bccf ;};_gefgc ._faaf =_bbadg ;_fbgec ,_bccf :=_gefgc .IsEncrypted ();if _bccf !=nil {return nil ,_bccf ;};if !_fbgec {_bccf =_gefgc .loadStructure ();if _bccf !=nil {return nil ,_bccf ;
};}else if _ebfcf {_dbfed ,_bfbca :=_gefgc .Decrypt ([]byte (_baefec .Password ));if _bfbca !=nil {return nil ,_bfbca ;};if !_dbfed {return nil ,_ad .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");
};};_gefgc ._dbggb =make (map[*PdfReader ]*PdfReader );_gefgc ._afcee =make ([]*PdfReader ,_bbadg .GetRevisionNumber ());return _gefgc ,nil ;};
// ToPdfObject returns a PDF object representation of the outline destination.
func (_eggdg OutlineDest )ToPdfObject ()_fd .PdfObject {if (_eggdg .PageObj ==nil &&_eggdg .Page < 0)||_eggdg .Mode ==""{return _fd .MakeNull ();};_agefd :=_fd .MakeArray ();if _eggdg .PageObj !=nil {_agefd .Append (_eggdg .PageObj );}else {_agefd .Append (_fd .MakeInteger (_eggdg .Page ));
};_agefd .Append (_fd .MakeName (_eggdg .Mode ));switch _eggdg .Mode {case "\u0046\u0069\u0074","\u0046\u0069\u0074\u0042":case "\u0046\u0069\u0074\u0048","\u0046\u0069\u0074B\u0048":_agefd .Append (_fd .MakeFloat (_eggdg .Y ));case "\u0046\u0069\u0074\u0056","\u0046\u0069\u0074B\u0056":_agefd .Append (_fd .MakeFloat (_eggdg .X ));
case "\u0058\u0059\u005a":_agefd .Append (_fd .MakeFloat (_eggdg .X ));_agefd .Append (_fd .MakeFloat (_eggdg .Y ));_agefd .Append (_fd .MakeFloat (_eggdg .Zoom ));default:_agefd .Set (1,_fd .MakeName ("\u0046\u0069\u0074"));};return _agefd ;};func (_gagfbbf *PdfReader )resolveReference (_egbf *_fd .PdfObjectReference )(_fd .PdfObject ,bool ,error ){_abfd ,_gdgff :=_gagfbbf ._faaf .ObjCache [int (_egbf .ObjectNumber )];
if !_gdgff {_ag .Log .Trace ("R\u0065\u0061\u0064\u0065r \u004co\u006f\u006b\u0075\u0070\u0020r\u0065\u0066\u003a\u0020\u0025\u0073",_egbf );_gefd ,_dgefb :=_gagfbbf ._faaf .LookupByReference (*_egbf );if _dgefb !=nil {return nil ,false ,_dgefb ;};_gagfbbf ._faaf .ObjCache [int (_egbf .ObjectNumber )]=_gefd ;
return _gefd ,false ,nil ;};return _abfd ,true ,nil ;};
// Add appends an outline item as a child of the current outline item.
func (_ffcce *OutlineItem )Add (item *OutlineItem ){_ffcce .Entries =append (_ffcce .Entries ,item )};
// PdfFunctionType4 is a Postscript calculator functions.
type PdfFunctionType4 struct{Domain []float64 ;Range []float64 ;Program *_fa .PSProgram ;_bdbbc *_fa .PSExecutor ;_cbaff []byte ;_bdga *_fd .PdfObjectStream ;};
// ToPdfObject implements interface PdfModel.
func (_facb *PdfAnnotationMovie )ToPdfObject ()_fd .PdfObject {_facb .PdfAnnotation .ToPdfObject ();_ccfc :=_facb ._aeb ;_ccbac :=_ccfc .PdfObject .(*_fd .PdfObjectDictionary );_ccbac .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fd .MakeName ("\u004d\u006f\u0076i\u0065"));
_ccbac .SetIfNotNil ("\u0054",_facb .T );_ccbac .SetIfNotNil ("\u004d\u006f\u0076i\u0065",_facb .Movie );_ccbac .SetIfNotNil ("\u0041",_facb .A );return _ccfc ;};
// String returns a string representation of what flags are set.
func (_dgdf FieldFlag )String ()string {_egfg :="";if _dgdf ==FieldFlagClear {_egfg ="\u0043\u006c\u0065a\u0072";return _egfg ;};if _dgdf &FieldFlagReadOnly > 0{_egfg +="\u007cR\u0065\u0061\u0064\u004f\u006e\u006cy";};if _dgdf &FieldFlagRequired > 0{_egfg +="\u007cR\u0065\u0071\u0075\u0069\u0072\u0065d";
};if _dgdf &FieldFlagNoExport > 0{_egfg +="\u007cN\u006f\u0045\u0078\u0070\u006f\u0072t";};if _dgdf &FieldFlagNoToggleToOff > 0{_egfg +="\u007c\u004e\u006f\u0054\u006f\u0067\u0067\u006c\u0065T\u006f\u004f\u0066\u0066";};if _dgdf &FieldFlagRadio > 0{_egfg +="\u007c\u0052\u0061\u0064\u0069\u006f";
};if _dgdf &FieldFlagPushbutton > 0{_egfg +="|\u0050\u0075\u0073\u0068\u0062\u0075\u0074\u0074\u006f\u006e";};if _dgdf &FieldFlagRadiosInUnision > 0{_egfg +="\u007c\u0052a\u0064\u0069\u006fs\u0049\u006e\u0055\u006e\u0069\u0073\u0069\u006f\u006e";};if _dgdf &FieldFlagMultiline > 0{_egfg +="\u007c\u004d\u0075\u006c\u0074\u0069\u006c\u0069\u006e\u0065";
};if _dgdf &FieldFlagPassword > 0{_egfg +="\u007cP\u0061\u0073\u0073\u0077\u006f\u0072d";};if _dgdf &FieldFlagFileSelect > 0{_egfg +="|\u0046\u0069\u006c\u0065\u0053\u0065\u006c\u0065\u0063\u0074";};if _dgdf &FieldFlagDoNotScroll > 0{_egfg +="\u007c\u0044\u006fN\u006f\u0074\u0053\u0063\u0072\u006f\u006c\u006c";
};if _dgdf &FieldFlagComb > 0{_egfg +="\u007c\u0043\u006fm\u0062";};if _dgdf &FieldFlagRichText > 0{_egfg +="\u007cR\u0069\u0063\u0068\u0054\u0065\u0078t";};if _dgdf &FieldFlagDoNotSpellCheck > 0{_egfg +="\u007c\u0044o\u004e\u006f\u0074S\u0070\u0065\u006c\u006c\u0043\u0068\u0065\u0063\u006b";
};if _dgdf &FieldFlagCombo > 0{_egfg +="\u007c\u0043\u006f\u006d\u0062\u006f";};if _dgdf &FieldFlagEdit > 0{_egfg +="\u007c\u0045\u0064i\u0074";};if _dgdf &FieldFlagSort > 0{_egfg +="\u007c\u0053\u006fr\u0074";};if _dgdf &FieldFlagMultiSelect > 0{_egfg +="\u007c\u004d\u0075l\u0074\u0069\u0053\u0065\u006c\u0065\u0063\u0074";
};if _dgdf &FieldFlagCommitOnSelChange > 0{_egfg +="\u007cC\u006fm\u006d\u0069\u0074\u004f\u006eS\u0065\u006cC\u0068\u0061\u006e\u0067\u0065";};return _gg .Trim (_egfg ,"\u007c");};
// ToInteger convert to an integer format.
func (_cfge *PdfColorLab )ToInteger (bits int )[3]uint32 {_cbca :=_af .Pow (2,float64 (bits ))-1;return [3]uint32 {uint32 (_cbca *_cfge .L ()),uint32 (_cbca *_cfge .A ()),uint32 (_cbca *_cfge .B ())};};func _ccag (_baefe _fd .PdfObject )(*_fd .PdfObjectDictionary ,*fontCommon ,error ){_cfcec :=&fontCommon {};
if _dccd ,_dfcf :=_baefe .(*_fd .PdfIndirectObject );_dfcf {_cfcec ._ffbd =_dccd .ObjectNumber ;};_gcaf ,_ffgec :=_fd .GetDict (_baefe );if !_ffgec {_ag .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",_baefe );
return nil ,nil ,ErrFontNotSupported ;};_dagc ,_ffgec :=_fd .GetNameVal (_gcaf .Get ("\u0054\u0079\u0070\u0065"));if !_ffgec {_ag .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 _dagc !="\u0046\u006f\u006e\u0074"{_ag .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.",_dagc ,"\u0046\u006f\u006e\u0074");
return nil ,nil ,_fd .ErrTypeError ;};_gcac ,_ffgec :=_fd .GetNameVal (_gcaf .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065"));if !_ffgec {_ag .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 ;};_cfcec ._eded =_gcac ;_dafff ,_ffgec :=_fd .GetNameVal (_gcaf .Get ("\u004e\u0061\u006d\u0065"));if _ffgec {_cfcec ._cabb =_dafff ;};_fgbac :=_gcaf .Get ("\u0054o\u0055\u006e\u0069\u0063\u006f\u0064e");if _fgbac !=nil {_cfcec ._eebbb =_fd .TraceToDirectObject (_fgbac );
_bedba ,_babbd :=_dbaa (_cfcec ._eebbb ,_cfcec );if _babbd !=nil {return _gcaf ,_cfcec ,_babbd ;};_cfcec ._dgdg =_bedba ;}else if _gcac =="\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0030"||_gcac =="\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032"{_bddff ,_cafbe :=_gd .NewCIDSystemInfo (_gcaf .Get ("\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f"));
if _cafbe !=nil {return _gcaf ,_cfcec ,_cafbe ;};_bgbc :=_dc .Sprintf ("\u0025\u0073\u002d\u0025\u0073\u002d\u0055\u0043\u0053\u0032",_bddff .Registry ,_bddff .Ordering );if _gd .IsPredefinedCMap (_bgbc ){_cfcec ._dgdg ,_cafbe =_gd .LoadPredefinedCMap (_bgbc );
if _cafbe !=nil {_ag .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",_bgbc ,_cafbe );
};};};_debad :=_gcaf .Get ("\u0046\u006f\u006e\u0074\u0044\u0065\u0073\u0063\u0072i\u0070\u0074\u006f\u0072");if _debad !=nil {_dcecg ,_gfdag :=_aaece (_debad );if _gfdag !=nil {_ag .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",_gfdag );
return _gcaf ,_cfcec ,_gfdag ;};_cfcec ._babe =_dcecg ;};if _gcac !="\u0054\u0079\u0070e\u0033"{_egaeb ,_dfbf :=_fd .GetNameVal (_gcaf .Get ("\u0042\u0061\u0073\u0065\u0046\u006f\u006e\u0074"));if !_dfbf {_ag .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 _gcaf ,_cfcec ,ErrRequiredAttributeMissing ;};_cfcec ._ffedb =_egaeb ;};return _gcaf ,_cfcec ,nil ;};const (BorderStyleSolid BorderStyle =iota ;BorderStyleDashed BorderStyle =iota ;BorderStyleBeveled BorderStyle =iota ;BorderStyleInset BorderStyle =iota ;
BorderStyleUnderline BorderStyle =iota ;);
// UpdateObject marks `obj` as updated and to be included in the following revision.
func (_fbba *PdfAppender )UpdateObject (obj _fd .PdfObject ){_fbba .replaceObject (obj ,obj );if _ ,_aedd :=_fbba ._dbdc [obj ];!_aedd {_fbba ._gagg =append (_fbba ._gagg ,obj );_fbba ._dbdc [obj ]=struct{}{};};};func (_bgabb *PdfReader )buildNameNodes (_cbgbb *_fd .PdfIndirectObject ,_fceg map[_fd .PdfObject ]struct{})error {if _cbgbb ==nil {return nil ;
};if _ ,_gggec :=_fceg [_cbgbb ];_gggec {_ag .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",_cbgbb .ObjectNumber );
return nil ;};_fceg [_cbgbb ]=struct{}{};_fagef ,_cefc :=_cbgbb .PdfObject .(*_fd .PdfObjectDictionary );if !_cefc {return _ad .New ("n\u006f\u0064\u0065\u0020no\u0074 \u0061\u0020\u0064\u0069\u0063t\u0069\u006f\u006e\u0061\u0072\u0079");};if _eabd ,_agdadc :=_fd .GetDict (_fagef .Get ("\u0044\u0065\u0073t\u0073"));
_agdadc {_ccbff ,_gbecb :=_fd .GetArray (_eabd .Get ("\u004b\u0069\u0064\u0073"));if !_gbecb {return _ad .New ("\u0049n\u0076\u0061\u006c\u0069d\u0020\u004b\u0069\u0064\u0073 \u0061r\u0072a\u0079\u0020\u006f\u0062\u006a\u0065\u0063t");};_ag .Log .Trace ("\u004b\u0069\u0064\u0073\u003a\u0020\u0025\u0073",_ccbff );
for _becfb ,_ffdc :=range _ccbff .Elements (){_dfdgg ,_abgfg :=_fd .GetIndirect (_ffdc );if !_abgfg {_ag .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",_dfdgg );
return _ad .New ("\u0063h\u0069\u006c\u0064\u0020n\u006f\u0074\u0020\u0069\u006ed\u0069r\u0065c\u0074\u0020\u006f\u0062\u006a\u0065\u0063t");};_ccbff .Set (_becfb ,_dfdgg );_gfdaa :=_bgabb .buildNameNodes (_dfdgg ,_fceg );if _gfdaa !=nil {return _gfdaa ;
};};};if _egead ,_cdgfe :=_fd .GetDict (_fagef );_cdgfe {if !_fd .IsNullObject (_egead .Get ("\u004b\u0069\u0064\u0073")){if _ebdcd ,_gcgd :=_fd .GetArray (_egead .Get ("\u004b\u0069\u0064\u0073"));_gcgd {for _abag ,_dfeag :=range _ebdcd .Elements (){if _dffdbf ,_daafba :=_fd .GetIndirect (_dfeag );
_daafba {_ebdcd .Set (_abag ,_dffdbf );_eaacf :=_bgabb .buildNameNodes (_dffdbf ,_fceg );if _eaacf !=nil {return _eaacf ;};};};};};};return nil ;};
// multiFontEncoder implements a an Encoder that holds a list of fonts provided.
type MultipleFontEncoder struct{_ccbbf []*PdfFont ;CurrentFont *PdfFont ;};func _ggdg (_eefebe *_fd .PdfIndirectObject ,_gbec *_fd .PdfObjectDictionary )(*DSS ,error ){if _eefebe ==nil {_eefebe =_fd .MakeIndirectObject (nil );};_eefebe .PdfObject =_fd .MakeDict ();
_bgcf :=map[string ]*VRI {};if _bedab ,_dbcbb :=_fd .GetDict (_gbec .Get ("\u0056\u0052\u0049"));_dbcbb {for _ ,_eecc :=range _bedab .Keys (){if _fcce ,_ddae :=_fd .GetDict (_bedab .Get (_eecc ));_ddae {_bgcf [_gg .ToUpper (_eecc .String ())]=_agdd (_fcce );
};};};return &DSS {Certs :_abbbc (_gbec .Get ("\u0043\u0065\u0072t\u0073")),OCSPs :_abbbc (_gbec .Get ("\u004f\u0043\u0053P\u0073")),CRLs :_abbbc (_gbec .Get ("\u0043\u0052\u004c\u0073")),VRI :_bgcf ,_bdcdg :_eefebe },nil ;};
// ToPdfObject implements interface PdfModel.
func (_efdf *PdfAnnotationPolyLine )ToPdfObject ()_fd .PdfObject {_efdf .PdfAnnotation .ToPdfObject ();_fccdb :=_efdf ._aeb ;_bdab :=_fccdb .PdfObject .(*_fd .PdfObjectDictionary );_efdf .PdfAnnotationMarkup .appendToPdfDictionary (_bdab );_bdab .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fd .MakeName ("\u0050\u006f\u006c\u0079\u004c\u0069\u006e\u0065"));
_bdab .SetIfNotNil ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073",_efdf .Vertices );_bdab .SetIfNotNil ("\u004c\u0045",_efdf .LE );_bdab .SetIfNotNil ("\u0042\u0053",_efdf .BS );_bdab .SetIfNotNil ("\u0049\u0043",_efdf .IC );_bdab .SetIfNotNil ("\u0042\u0045",_efdf .BE );
_bdab .SetIfNotNil ("\u0049\u0054",_efdf .IT );_bdab .SetIfNotNil ("\u004de\u0061\u0073\u0075\u0072\u0065",_efdf .Measure );return _fccdb ;};
// AddOutlineTree adds outlines to a PDF file.
func (_ccgce *PdfWriter )AddOutlineTree (outlineTree *PdfOutlineTreeNode ){_ccgce ._adfcff =outlineTree ;};
// ToPdfObject implements interface PdfModel.
func (_cbbe *PdfAnnotationCaret )ToPdfObject ()_fd .PdfObject {_cbbe .PdfAnnotation .ToPdfObject ();_cea :=_cbbe ._aeb ;_dcf :=_cea .PdfObject .(*_fd .PdfObjectDictionary );_cbbe .PdfAnnotationMarkup .appendToPdfDictionary (_dcf );_dcf .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fd .MakeName ("\u0043\u0061\u0072e\u0074"));
_dcf .SetIfNotNil ("\u0052\u0044",_cbbe .RD );_dcf .SetIfNotNil ("\u0053\u0079",_cbbe .Sy );return _cea ;};
// HasExtGState checks whether a font is defined by the specified keyName.
func (_gfbcd *PdfPageResources )HasExtGState (keyName _fd .PdfObjectName )bool {_ ,_aafce :=_gfbcd .GetFontByName (keyName );return _aafce ;};
// NewPdfAnnotationScreen returns a new screen annotation.
func NewPdfAnnotationScreen ()*PdfAnnotationScreen {_adda :=NewPdfAnnotation ();_gbc :=&PdfAnnotationScreen {};_gbc .PdfAnnotation =_adda ;_adda .SetContext (_gbc );return _gbc ;};
// NewPdfSignature creates a new PdfSignature object.
func NewPdfSignature (handler SignatureHandler )*PdfSignature {_fbbeb :=&PdfSignature {Type :_fd .MakeName ("\u0053\u0069\u0067"),Handler :handler };_gdaeff :=&pdfSignDictionary {PdfObjectDictionary :_fd .MakeDict (),_efeca :&handler ,_eeabe :_fbbeb };
_fbbeb ._cbaga =_fd .MakeIndirectObject (_gdaeff );return _fbbeb ;};func (_afgc *PdfPattern )getDict ()*_fd .PdfObjectDictionary {if _fedfg ,_bcfcg :=_afgc ._gcgba .(*_fd .PdfIndirectObject );_bcfcg {_fefe ,_gadb :=_fedfg .PdfObject .(*_fd .PdfObjectDictionary );
if !_gadb {return nil ;};return _fefe ;}else if _gfbg ,_dcbbg :=_afgc ._gcgba .(*_fd .PdfObjectStream );_dcbbg {return _gfbg .PdfObjectDictionary ;}else {_ag .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",_afgc ._gcgba );
return nil ;};};
// GetPdfName returns the PDF name used to indicate the border style.
// (Table 166 p. 395).
func (_ddfaa *BorderStyle )GetPdfName ()string {switch *_ddfaa {case BorderStyleSolid :return "\u0053";case BorderStyleDashed :return "\u0044";case BorderStyleBeveled :return "\u0042";case BorderStyleInset :return "\u0049";case BorderStyleUnderline :return "\u0055";
};return "";};func (_fcgga *PdfWriter )writeOutputIntents ()error {if len (_fcgga ._adef )==0{return nil ;};_fcfff :=make ([]_fd .PdfObject ,len (_fcgga ._adef ));for _gaefae ,_ffaff :=range _fcgga ._adef {_dacbf :=_ffaff .ToPdfObject ();_fcfff [_gaefae ]=_fd .MakeIndirectObject (_dacbf );
};_dcbbb :=_fd .MakeIndirectObject (_fd .MakeArray (_fcfff ...));_fcgga ._fdaca .Set ("\u004f\u0075\u0074\u0070\u0075\u0074\u0049\u006e\u0074\u0065\u006e\u0074\u0073",_dcbbb );if _deecdd :=_fcgga .addObjects (_dcbbb );_deecdd !=nil {return _deecdd ;};return nil ;
};func _eeeaa ()string {_feadd .Lock ();defer _feadd .Unlock ();_decae :=_ae .GetLicenseKey ();if len (_ecebc )> 0&&(_decae .IsLicensed ()||_dceef ){return _ecebc ;};return _dc .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",_dcafe (),_decae .TypeToString ());
};
// GetEncryptionMethod returns a descriptive information string about the encryption method used.
func (_fddgf *PdfReader )GetEncryptionMethod ()string {_ddcfa :=_fddgf ._faaf .GetCrypter ();return _ddcfa .String ();};
// String returns the name of the colorspace (DeviceN).
func (_aggb *PdfColorspaceDeviceN )String ()string {return "\u0044e\u0076\u0069\u0063\u0065\u004e"};
// 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{_acdd *_fd .PdfObjectDictionary ;Type *_fd .PdfObjectName ;TransformMethod *_fd .PdfObjectName ;TransformParams _fd .PdfObject ;Data _fd .PdfObject ;DigestMethod *_fd .PdfObjectName ;};
// XObjectForm (Table 95 in 8.10.2).
type XObjectForm struct{Filter _fd .StreamEncoder ;FormType _fd .PdfObject ;BBox _fd .PdfObject ;Matrix _fd .PdfObject ;Resources *PdfPageResources ;Group _fd .PdfObject ;Ref _fd .PdfObject ;MetaData _fd .PdfObject ;PieceInfo _fd .PdfObject ;LastModified _fd .PdfObject ;
StructParent _fd .PdfObject ;StructParents _fd .PdfObject ;OPI _fd .PdfObject ;OC _fd .PdfObject ;Name _fd .PdfObject ;
// Stream data.
Stream []byte ;_cebfa *_fd .PdfObjectStream ;};func _gfeef ()string {_feadd .Lock ();defer _feadd .Unlock ();return _geacc };
// ToJBIG2Image converts current image to the core.JBIG2Image.
func (_agccg *Image )ToJBIG2Image ()(*_fd .JBIG2Image ,error ){_gfgcfg ,_aedcga :=_agccg .ToGoImage ();if _aedcga !=nil {return nil ,_aedcga ;};return _fd .GoImageToJBIG2 (_gfgcfg ,_fd .JB2ImageAutoThreshold );};
// SetDecode sets the decode image float slice.
func (_ebee *Image )SetDecode (decode []float64 ){_ebee ._cdbdc =decode };
// ToPdfObject implements interface PdfModel.
func (_ggg *PdfAnnotationPrinterMark )ToPdfObject ()_fd .PdfObject {_ggg .PdfAnnotation .ToPdfObject ();_bedd :=_ggg ._aeb ;_ddbd :=_bedd .PdfObject .(*_fd .PdfObjectDictionary );_ddbd .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fd .MakeName ("P\u0072\u0069\u006e\u0074\u0065\u0072\u004d\u0061\u0072\u006b"));
_ddbd .SetIfNotNil ("\u004d\u004e",_ggg .MN );return _bedd ;};func (_cbgb PdfFont )actualFont ()pdfFont {if _cbgb ._gbaac ==nil {_ag .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",_cbgb );
};return _cbgb ._gbaac ;};
// GetTrailer returns the PDF's trailer dictionary.
func (_ddcda *PdfReader )GetTrailer ()(*_fd .PdfObjectDictionary ,error ){_dccac :=_ddcda ._faaf .GetTrailer ();if _dccac ==nil {return nil ,_ad .New ("\u0074r\u0061i\u006c\u0065\u0072\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};return _dccac ,nil ;
};
// SetXObjectByName adds the XObject from the passed in stream to the page resources.
// The added XObject is identified by the specified name.
func (_ceeea *PdfPageResources )SetXObjectByName (keyName _fd .PdfObjectName ,stream *_fd .PdfObjectStream )error {if _ceeea .XObject ==nil {_ceeea .XObject =_fd .MakeDict ();};_eebf :=_fd .TraceToDirectObject (_ceeea .XObject );_dbefg ,_dggee :=_eebf .(*_fd .PdfObjectDictionary );
if !_dggee {_ag .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",_ceeea .XObject ,_eebf );return _ad .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");
};_dbefg .Set (keyName ,stream );return nil ;};func (_bggc *PdfWriter )setDocInfo (_cegbc _fd .PdfObject ){if _bggc .hasObject (_bggc ._ggdfa ){delete (_bggc ._agfaff ,_bggc ._ggdfa );delete (_bggc ._bagca ,_bggc ._ggdfa );for _bebdaa ,_aceeb :=range _bggc ._agfbf {if _aceeb ==_bggc ._ggdfa {copy (_bggc ._agfbf [_bebdaa :],_bggc ._agfbf [_bebdaa +1:]);
_bggc ._agfbf [len (_bggc ._agfbf )-1]=nil ;_bggc ._agfbf =_bggc ._agfbf [:len (_bggc ._agfbf )-1];break ;};};};_aecefg :=_fd .PdfIndirectObject {};_aecefg .PdfObject =_cegbc ;_bggc ._ggdfa =&_aecefg ;_bggc .addObject (&_aecefg );};
// SetCatalogLanguage sets the catalog language.
func (_eaddga *PdfWriter )SetCatalogLanguage (lang _fd .PdfObject )error {if lang ==nil {_eaddga ._fdaca .Remove ("\u004c\u0061\u006e\u0067");return nil ;};_eaddga .addObject (lang );_eaddga ._fdaca .Set ("\u004c\u0061\u006e\u0067",lang );return nil ;};
func (_gbacf *PdfFunctionType0 )processSamples ()error {_beeag :=_bg .ResampleBytes (_gbacf ._facbf ,_gbacf .BitsPerSample );_gbacf ._ebgce =_beeag ;return nil ;};
// NewPdfAcroForm returns a new PdfAcroForm with an initialized container (indirect object).
func NewPdfAcroForm ()*PdfAcroForm {return &PdfAcroForm {Fields :&[]*PdfField {},_fefdb :_fd .MakeIndirectObject (_fd .MakeDict ())};};var _ccebb =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":{}};
// PdfActionHide represents a hide action.
type PdfActionHide struct{*PdfAction ;T _fd .PdfObject ;H _fd .PdfObject ;};func _badad (_acaad _fd .PdfObject )(PdfFunction ,error ){_acaad =_fd .ResolveReference (_acaad );if _agce ,_aada :=_acaad .(*_fd .PdfObjectStream );_aada {_gebba :=_agce .PdfObjectDictionary ;
_fdafg ,_fgbaa :=_gebba .Get ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065").(*_fd .PdfObjectInteger );if !_fgbaa {_ag .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 ,_ad .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 *_fdafg ==0{return _gcgad (_agce );}else if *_fdafg ==4{return _cccfb (_agce );
}else {return nil ,_ad .New ("i\u006e\u0076\u0061\u006cid\u0020f\u0075\u006e\u0063\u0074\u0069o\u006e\u0020\u0074\u0079\u0070\u0065");};}else if _fead ,_gfdfa :=_acaad .(*_fd .PdfIndirectObject );_gfdfa {_gdaef ,_afabg :=_fead .PdfObject .(*_fd .PdfObjectDictionary );
if !_afabg {_ag .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 ,_ad .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");};_bfbd ,_afabg :=_gdaef .Get ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065").(*_fd .PdfObjectInteger );
if !_afabg {_ag .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 ,_ad .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 *_bfbd ==2{return _acgcc (_fead );}else if *_bfbd ==3{return _ceddb (_fead );}else {return nil ,_ad .New ("i\u006e\u0076\u0061\u006cid\u0020f\u0075\u006e\u0063\u0074\u0069o\u006e\u0020\u0074\u0079\u0070\u0065");};}else if _gbeg ,_egfbg :=_acaad .(*_fd .PdfObjectDictionary );
_egfbg {_gacf ,_addeg :=_gbeg .Get ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065").(*_fd .PdfObjectInteger );if !_addeg {_ag .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 ,_ad .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 *_gacf ==2{return _acgcc (_gbeg );}else if *_gacf ==3{return _ceddb (_gbeg );
}else {return nil ,_ad .New ("i\u006e\u0076\u0061\u006cid\u0020f\u0075\u006e\u0063\u0074\u0069o\u006e\u0020\u0074\u0079\u0070\u0065");};}else {_ag .Log .Debug ("\u0046u\u006e\u0063\u0074\u0069\u006f\u006e\u0020\u0054\u0079\u0070\u0065 \u0065\u0072\u0072\u006f\u0072\u003a\u0020\u0025\u0023\u0076",_acaad );
return nil ,_ad .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};};
// NewPdfAnnotationCircle returns a new circle annotation.
func NewPdfAnnotationCircle ()*PdfAnnotationCircle {_cce :=NewPdfAnnotation ();_efa :=&PdfAnnotationCircle {};_efa .PdfAnnotation =_cce ;_efa .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_cce .SetContext (_efa );return _efa ;};type pdfCIDFontType2 struct{fontCommon ;
_bceb *_fd .PdfIndirectObject ;_fccef _ee .TextEncoder ;
// Table 117 Entries in a CIDFont dictionary (page 269)
// Dictionary that defines the character collection of the CIDFont (required).
// See Table 116.
CIDSystemInfo *_fd .PdfObjectDictionary ;
// Glyph metrics fields (optional).
DW _fd .PdfObject ;W _fd .PdfObject ;DW2 _fd .PdfObject ;W2 _fd .PdfObject ;
// CIDs to glyph indices mapping (optional).
CIDToGIDMap _fd .PdfObject ;_defb map[_ee .CharCode ]float64 ;_ebbc float64 ;_agbed map[rune ]int ;};
// C returns the value of the cyan component of the color.
func (_efggf *PdfColorDeviceCMYK )C ()float64 {return _efggf [0]};type pdfFontSimple struct{fontCommon ;_ddggg *_fd .PdfIndirectObject ;_bafeg map[_ee .CharCode ]float64 ;_dcfda _ee .TextEncoder ;_gadae _ee .TextEncoder ;_cbffb *PdfFontDescriptor ;
// Encoding is subject to limitations that are described in 9.6.6, "Character Encoding".
// BaseFont is derived differently.
FirstChar _fd .PdfObject ;LastChar _fd .PdfObject ;Widths _fd .PdfObject ;Encoding _fd .PdfObject ;_dcgdd *_cf .RuneCharSafeMap ;};
// ToPdfObject implements interface PdfModel.
func (_fdd *PdfActionJavaScript )ToPdfObject ()_fd .PdfObject {_fdd .PdfAction .ToPdfObject ();_eaga :=_fdd ._bfb ;_cbc :=_eaga .PdfObject .(*_fd .PdfObjectDictionary );_cbc .SetIfNotNil ("\u0053",_fd .MakeName (string (ActionTypeJavaScript )));_cbc .SetIfNotNil ("\u004a\u0053",_fdd .JS );
return _eaga ;};func _bgaa ()string {_feadd .Lock ();defer _feadd .Unlock ();return _fbgc };
// GetContainingPdfObject returns the container of the pattern object (indirect object).
func (_fecee *PdfPattern )GetContainingPdfObject ()_fd .PdfObject {return _fecee ._gcgba };func (_dbccc fontCommon )coreString ()string {_dddac :="";if _dbccc ._babe !=nil {_dddac =_dbccc ._babe .String ();};return _dc .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",_dbccc ._eded ,_dbccc ._ffedb ,_dbccc ._cabb ,_dbccc ._ffbd ,_dbccc ._eebbb !=nil ,_dbccc .fontFlags (),_dddac );
};func (_dbaaf *pdfFontSimple )getFontDescriptor ()*PdfFontDescriptor {if _ggdeb :=_dbaaf ._babe ;_ggdeb !=nil {return _ggdeb ;};return _dbaaf ._cbffb ;};
// GetContainingPdfObject implements interface PdfModel.
func (_fgfcg *PdfSignatureReference )GetContainingPdfObject ()_fd .PdfObject {return _fgfcg ._acdd };func (_adf *PdfReader )newPdfActionThreadFromDict (_aec *_fd .PdfObjectDictionary )(*PdfActionThread ,error ){_cca ,_daba :=_ece (_aec .Get ("\u0046"));
if _daba !=nil {return nil ,_daba ;};return &PdfActionThread {D :_aec .Get ("\u0044"),B :_aec .Get ("\u0042"),F :_cca },nil ;};
// GetContentStreams returns the content stream as an array of strings.
func (_ccec *PdfPage )GetContentStreams ()([]string ,error ){_bdaebe :=_ccec .GetContentStreamObjs ();var _ecdb []string ;for _ ,_acbd :=range _bdaebe {_fcae ,_ebea :=_bdca (_acbd );if _ebea !=nil {return nil ,_ebea ;};_ecdb =append (_ecdb ,_fcae );};return _ecdb ,nil ;
};func (_cced *PdfReader )newPdfAnnotationStrikeOut (_fdbb *_fd .PdfObjectDictionary )(*PdfAnnotationStrikeOut ,error ){_abge :=PdfAnnotationStrikeOut {};_fgdg ,_adag :=_cced .newPdfAnnotationMarkupFromDict (_fdbb );if _adag !=nil {return nil ,_adag ;};
_abge .PdfAnnotationMarkup =_fgdg ;_abge .QuadPoints =_fdbb .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");return &_abge ,nil ;};
// GetContainingPdfObject implements interface PdfModel.
func (_ffgaa *Permissions )GetContainingPdfObject ()_fd .PdfObject {return _ffgaa ._ecebg };
// ToPdfObject returns the PDF representation of the tiling pattern.
func (_bdbee *PdfTilingPattern )ToPdfObject ()_fd .PdfObject {_bdbee .PdfPattern .ToPdfObject ();_cgadd :=_bdbee .getDict ();if _bdbee .PaintType !=nil {_cgadd .Set ("\u0050a\u0069\u006e\u0074\u0054\u0079\u0070e",_bdbee .PaintType );};if _bdbee .TilingType !=nil {_cgadd .Set ("\u0054\u0069\u006c\u0069\u006e\u0067\u0054\u0079\u0070\u0065",_bdbee .TilingType );
};if _bdbee .BBox !=nil {_cgadd .Set ("\u0042\u0042\u006f\u0078",_bdbee .BBox .ToPdfObject ());};if _bdbee .XStep !=nil {_cgadd .Set ("\u0058\u0053\u0074e\u0070",_bdbee .XStep );};if _bdbee .YStep !=nil {_cgadd .Set ("\u0059\u0053\u0074e\u0070",_bdbee .YStep );
};if _bdbee .Resources !=nil {_cgadd .Set ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s",_bdbee .Resources .ToPdfObject ());};if _bdbee .Matrix !=nil {_cgadd .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_bdbee .Matrix );};return _bdbee ._gcgba ;};func _cdba (_bcdb *PdfField )[]*PdfField {_fcdeb :=[]*PdfField {_bcdb };
for _ ,_eabg :=range _bcdb .Kids {_fcdeb =append (_fcdeb ,_cdba (_eabg )...);};return _fcdeb ;};
// 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 (_gdfae *Image )SetSamples (samples []uint32 ){if _gdfae .BitsPerComponent < 8{samples =_gdfae .samplesAddPadding (samples );};_cdbeg :=_bg .ResampleUint32 (samples ,int (_gdfae .BitsPerComponent ),8);_cbag :=make ([]byte ,len (_cdbeg ));for _gbccg ,_ebebf :=range _cdbeg {_cbag [_gbccg ]=byte (_ebebf );
};_gdfae .Data =_cbag ;};
// GetIndirectObjectByNumber retrieves and returns a specific PdfObject by object number.
func (_daafa *PdfReader )GetIndirectObjectByNumber (number int )(_fd .PdfObject ,error ){_eafdf ,_cccgc :=_daafa ._faaf .LookupByNumber (number );return _eafdf ,_cccgc ;};
// GetOutlineTree returns the outline tree.
func (_edfgfe *PdfReader )GetOutlineTree ()*PdfOutlineTreeNode {return _edfgfe ._aceac };
// ContentStreamWrapper wraps the Page's contentstream into q ... Q blocks.
type ContentStreamWrapper interface{WrapContentStream (_dacg *PdfPage )error ;};
// PdfColorspaceLab is a L*, a*, b* 3 component colorspace.
type PdfColorspaceLab struct{WhitePoint []float64 ;BlackPoint []float64 ;Range []float64 ;_ddfd *_fd .PdfIndirectObject ;};
// GetShadingByName gets the shading specified by keyName. Returns nil if not existing.
// The bool flag indicated whether it was found or not.
func (_cdbgg *PdfPageResources )GetShadingByName (keyName _fd .PdfObjectName )(*PdfShading ,bool ){if _cdbgg .Shading ==nil {return nil ,false ;};_afbebe ,_abfbb :=_fd .TraceToDirectObject (_cdbgg .Shading ).(*_fd .PdfObjectDictionary );if !_abfbb {_ag .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",_cdbgg .Shading );
return nil ,false ;};if _cgefb :=_afbebe .Get (keyName );_cgefb !=nil {_ccff ,_gaeaf :=_cceab (_cgefb );if _gaeaf !=nil {_ag .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",_gaeaf );
return nil ,false ;};return _ccff ,true ;};return nil ,false ;};const (TrappedUnknown PdfInfoTrapped ="\u0055n\u006b\u006e\u006f\u0077\u006e";TrappedTrue PdfInfoTrapped ="\u0054\u0072\u0075\u0065";TrappedFalse PdfInfoTrapped ="\u0046\u0061\u006cs\u0065";
);
// Transform rectangle with the supplied matrix.
func (_defgff *PdfRectangle )Transform (transformMatrix _gdd .Matrix ){_defgff .Llx ,_defgff .Lly =transformMatrix .Transform (_defgff .Llx ,_defgff .Lly );_defgff .Urx ,_defgff .Ury =transformMatrix .Transform (_defgff .Urx ,_defgff .Ury );_defgff .Normalize ();
};func (_aaaa *PdfReader )loadAnnotations (_gefbc _fd .PdfObject )([]*PdfAnnotation ,error ){_eabba ,_abcga :=_fd .GetArray (_gefbc );if !_abcga {return nil ,_dc .Errorf ("\u0041\u006e\u006e\u006fts\u0020\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0061\u0072\u0072\u0061\u0079");
};var _aaeeg []*PdfAnnotation ;for _ ,_abad :=range _eabba .Elements (){_abad =_fd .ResolveReference (_abad );if _ ,_daadc :=_abad .(*_fd .PdfObjectNull );_daadc {continue ;};_gdcba ,_cgece :=_abad .(*_fd .PdfObjectDictionary );_ddbgd ,_fcbecf :=_abad .(*_fd .PdfIndirectObject );
if _cgece {_ddbgd =&_fd .PdfIndirectObject {};_ddbgd .PdfObject =_gdcba ;}else {if !_fcbecf {return nil ,_dc .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");
};};_abgbg ,_cbccb :=_aaaa .newPdfAnnotationFromIndirectObject (_ddbgd );if _cbccb !=nil {return nil ,_cbccb ;};switch _caeed :=_abgbg .GetContext ().(type ){case *PdfAnnotationWidget :for _ ,_aaaf :=range _aaaa .AcroForm .AllFields (){if _aaaf ._dffeb ==_caeed .Parent {_caeed ._eabc =_aaaf ;
break ;};};};if _abgbg !=nil {_aaeeg =append (_aaeeg ,_abgbg );};};return _aaeeg ,nil ;};
// 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 (_gffc DefaultImageHandler )Compress (input *Image ,quality int64 )(*Image ,error ){return input ,nil ;};
// GetPageAsIndirectObject returns the page as a dictionary within an PdfIndirectObject.
func (_eeggd *PdfPage )GetPageAsIndirectObject ()*_fd .PdfIndirectObject {return _eeggd ._fgcac };
// GetPdfVersion gets the version of the PDF used within this document.
func (_gfccb *PdfWriter )GetPdfVersion ()string {return _gfccb .getPdfVersion ()};
// PdfColorspaceCalRGB stores A, B, C components
type PdfColorspaceCalRGB struct{WhitePoint []float64 ;BlackPoint []float64 ;Gamma []float64 ;Matrix []float64 ;_dbee *_fd .PdfObjectDictionary ;_gadad *_fd .PdfIndirectObject ;};
// GetColorspaceByName returns the colorspace with the specified name from the page resources.
func (_fagbe *PdfPageResources )GetColorspaceByName (keyName _fd .PdfObjectName )(PdfColorspace ,bool ){_bdcaf ,_ccdea :=_fagbe .GetColorspaces ();if _ccdea !=nil {_ag .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",_ccdea );
return nil ,false ;};if _bdcaf ==nil {return nil ,false ;};_ebgef ,_ecdfg :=_bdcaf .Colorspaces [string (keyName )];if !_ecdfg {return nil ,false ;};return _ebgef ,true ;};
// PdfActionSound represents a sound action.
type PdfActionSound struct{*PdfAction ;Sound _fd .PdfObject ;Volume _fd .PdfObject ;Synchronous _fd .PdfObject ;Repeat _fd .PdfObject ;Mix _fd .PdfObject ;};
// Width returns the width of `rect`.
func (_ggaeg *PdfRectangle )Width ()float64 {return _af .Abs (_ggaeg .Urx -_ggaeg .Llx )};func _fagfg ()string {_abab :="\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 _gdafc _bf .Buffer ;for _adfgba :=0;_adfgba < 6;_adfgba ++{_gdafc .WriteRune (rune (_abab [_de .Intn (len (_abab ))]));};return _gdafc .String ();};
// GetNumComponents returns the number of color components (4 for CMYK32).
func (_egca *PdfColorDeviceCMYK )GetNumComponents ()int {return 4};type crossReference struct{Type int ;
// Type 1
Offset int64 ;Generation int64 ;
// Type 2
ObjectNumber int ;Index int ;};
// ToPdfObject implements interface PdfModel.
func (_ceced *Permissions )ToPdfObject ()_fd .PdfObject {return _ceced ._ecebg };
// 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 _fd .StreamEncoder )(*XObjectImage ,error ){if encoder ==nil {var _feae error ;encoder ,_feae =img .getSuitableEncoder ();if _feae !=nil {_ag .Log .Debug ("F\u0061\u0069l\u0075\u0072\u0065\u0020\u006f\u006e\u0020\u0066\u0069\u006e\u0064\u0069\u006e\u0067\u0020\u0073\u0075\u0069\u0074\u0061b\u006c\u0065\u0020\u0069\u006d\u0061\u0067\u0065\u0020\u0065\u006e\u0063\u006f\u0064\u0065\u0072,\u0020\u0066\u0061\u006c\u006c\u0062\u0061\u0063\u006b\u0020\u0074\u006f\u0020R\u0061\u0077\u0045\u006e\u0063\u006f\u0064\u0065\u0072\u003a\u0020%\u0076",_feae );
encoder =_fd .NewRawEncoder ();};};encoder .UpdateParams (img .GetParamsDict ());_ccffa ,_adbag :=encoder .EncodeBytes (img .Data );if _adbag !=nil {_ag .Log .Debug ("\u0045\u0072\u0072or\u0020\u0077\u0069\u0074\u0068\u0020\u0065\u006e\u0063\u006f\u0064\u0069\u006e\u0067\u003a\u0020\u0025\u0076",_adbag );
return nil ,_adbag ;};_daadab :=NewXObjectImage ();_aegg :=img .Width ;_ebfbe :=img .Height ;_daadab .Width =&_aegg ;_daadab .Height =&_ebfbe ;_deabd :=img .BitsPerComponent ;_daadab .BitsPerComponent =&_deabd ;_daadab .Filter =encoder ;_daadab .Stream =_ccffa ;
if cs ==nil {if img .ColorComponents ==1{_daadab .ColorSpace =NewPdfColorspaceDeviceGray ();if img .BitsPerComponent ==16{switch encoder .(type ){case *_fd .DCTEncoder :_daadab .ColorSpace =NewPdfColorspaceDeviceRGB ();_deabd =8;_daadab .BitsPerComponent =&_deabd ;
};};}else if img .ColorComponents ==3{_daadab .ColorSpace =NewPdfColorspaceDeviceRGB ();}else if img .ColorComponents ==4{switch encoder .(type ){case *_fd .DCTEncoder :_daadab .ColorSpace =NewPdfColorspaceDeviceRGB ();default:_daadab .ColorSpace =NewPdfColorspaceDeviceCMYK ();
};}else {return nil ,_ad .New ("c\u006fl\u006f\u0072\u0073\u0070\u0061\u0063\u0065\u0020u\u006e\u0064\u0065\u0066in\u0065\u0064");};}else {_daadab .ColorSpace =cs ;};if len (img ._gfffd )!=0{_dcde :=NewXObjectImage ();_dcde .Filter =encoder ;_eegdbb ,_bdabg :=encoder .EncodeBytes (img ._gfffd );
if _bdabg !=nil {_ag .Log .Debug ("\u0045\u0072\u0072or\u0020\u0077\u0069\u0074\u0068\u0020\u0065\u006e\u0063\u006f\u0064\u0069\u006e\u0067\u003a\u0020\u0025\u0076",_bdabg );return nil ,_bdabg ;};_dcde .Stream =_eegdbb ;_dcde .BitsPerComponent =_daadab .BitsPerComponent ;
_dcde .Width =&img .Width ;_dcde .Height =&img .Height ;_dcde .ColorSpace =NewPdfColorspaceDeviceGray ();_daadab .SMask =_dcde .ToPdfObject ();}else {_daadab .SMask =xobjIn .SMask ;_daadab .ImageMask =xobjIn .ImageMask ;if _daadab .ColorSpace .GetNumComponents ()==1{_affgb (_daadab );
};};return _daadab ,nil ;};
// ToPdfObject returns the PDF representation of the function.
func (_efccea *PdfFunctionType0 )ToPdfObject ()_fd .PdfObject {if _efccea ._efff ==nil {_efccea ._efff =&_fd .PdfObjectStream {};};_gabe :=_fd .MakeDict ();_gabe .Set ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065",_fd .MakeInteger (0));
_ddeee :=&_fd .PdfObjectArray {};for _ ,_gbgca :=range _efccea .Domain {_ddeee .Append (_fd .MakeFloat (_gbgca ));};_gabe .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_ddeee );_facc :=&_fd .PdfObjectArray {};for _ ,_geca :=range _efccea .Range {_facc .Append (_fd .MakeFloat (_geca ));
};_gabe .Set ("\u0052\u0061\u006eg\u0065",_facc );_efaa :=&_fd .PdfObjectArray {};for _ ,_decc :=range _efccea .Size {_efaa .Append (_fd .MakeInteger (int64 (_decc )));};_gabe .Set ("\u0053\u0069\u007a\u0065",_efaa );_gabe .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0053\u0061\u006d\u0070\u006c\u0065",_fd .MakeInteger (int64 (_efccea .BitsPerSample )));
if _efccea .Order !=1{_gabe .Set ("\u004f\u0072\u0064e\u0072",_fd .MakeInteger (int64 (_efccea .Order )));};_gabe .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_fd .MakeInteger (int64 (len (_efccea ._facbf ))));_efccea ._efff .Stream =_efccea ._facbf ;_efccea ._efff .PdfObjectDictionary =_gabe ;
return _efccea ._efff ;};
// GetAction returns the PDF action for the annotation link.
func (_gedf *PdfAnnotationLink )GetAction ()(*PdfAction ,error ){if _gedf ._abb !=nil {return _gedf ._abb ,nil ;};if _gedf .A ==nil {return nil ,nil ;};if _gedf ._cff ==nil {return nil ,nil ;};_fdc ,_dbg :=_gedf ._cff .loadAction (_gedf .A );if _dbg !=nil {return nil ,_dbg ;
};_gedf ._abb =_fdc ;return _gedf ._abb ,nil ;};
// GetCerts returns the signature certificate chain.
func (_agfcg *PdfSignature )GetCerts ()([]*_gff .Certificate ,error ){var _gffdc []func ()([]*_gff .Certificate ,error );switch _fbcbf ,_ :=_fd .GetNameVal (_agfcg .SubFilter );_fbcbf {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":_gffdc =append (_gffdc ,_agfcg .extractChainFromPKCS7 ,_agfcg .extractChainFromCert );
case "\u0061d\u0062e\u002e\u0078\u0035\u0030\u0039.\u0072\u0073a\u005f\u0073\u0068\u0061\u0031":_gffdc =append (_gffdc ,_agfcg .extractChainFromCert );case "\u0045\u0054\u0053I\u002e\u0052\u0046\u0043\u0033\u0031\u0036\u0031":_gffdc =append (_gffdc ,_agfcg .extractChainFromPKCS7 );
default:return nil ,_dc .Errorf ("\u0075n\u0073\u0075\u0070\u0070o\u0072\u0074\u0065\u0064\u0020S\u0075b\u0046i\u006c\u0074\u0065\u0072\u003a\u0020\u0025s",_fbcbf );};for _ ,_daaeba :=range _gffdc {_dgaf ,_ffff :=_daaeba ();if _ffff !=nil {return nil ,_ffff ;
};if len (_dgaf )> 0{return _dgaf ,nil ;};};return nil ,ErrSignNoCertificates ;};
// SetContext sets the sub action (context).
func (_gfb *PdfAction )SetContext (ctx PdfModel ){_gfb ._ga =ctx };func (_gcdd *PdfAcroForm )signatureFields ()[]*PdfFieldSignature {var _dabd []*PdfFieldSignature ;for _ ,_ggffc :=range _gcdd .AllFields (){switch _gdccd :=_ggffc .GetContext ().(type ){case *PdfFieldSignature :_ebaaf :=_gdccd ;
_dabd =append (_dabd ,_ebaaf );};};return _dabd ;};func (_dagdg *PdfWriter )checkLicense ()error {_ebcfe :=_ae .GetLicenseKey ();if (_ebcfe ==nil ||!_ebcfe .IsLicensed ())&&!_dceef {_dc .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");
_dc .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 _ad .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 ;};
// ColorAt returns the color of the image pixel specified by the x and y coordinates.
func (_bfffg *Image )ColorAt (x ,y int )(_gc .Color ,error ){_gfgfc :=_gbed .BytesPerLine (int (_bfffg .Width ),int (_bfffg .BitsPerComponent ),_bfffg .ColorComponents );switch _bfffg .ColorComponents {case 1:return _gbed .ColorAtGrayscale (x ,y ,int (_bfffg .BitsPerComponent ),_gfgfc ,_bfffg .Data ,_bfffg ._cdbdc );
case 3:return _gbed .ColorAtNRGBA (x ,y ,int (_bfffg .Width ),_gfgfc ,int (_bfffg .BitsPerComponent ),_bfffg .Data ,_bfffg ._gfffd ,_bfffg ._cdbdc );case 4:return _gbed .ColorAtCMYK (x ,y ,int (_bfffg .Width ),_bfffg .Data ,_bfffg ._cdbdc );};_ag .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",_bfffg .ColorComponents ,_bfffg .BitsPerComponent );
return nil ,_ad .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");};
// NewPdfActionGoToR returns a new "go to remote" action.
func NewPdfActionGoToR ()*PdfActionGoToR {_ead :=NewPdfAction ();_ggf :=&PdfActionGoToR {};_ggf .PdfAction =_ead ;_ead .SetContext (_ggf );return _ggf ;};func (_bdec *PdfReader )newPdfAnnotationProjectionFromDict (_bee *_fd .PdfObjectDictionary )(*PdfAnnotationProjection ,error ){_fgag :=&PdfAnnotationProjection {};
_bdcda ,_fccd :=_bdec .newPdfAnnotationMarkupFromDict (_bee );if _fccd !=nil {return nil ,_fccd ;};_fgag .PdfAnnotationMarkup =_bdcda ;return _fgag ,nil ;};func _bfcb (_cead _fd .PdfObject )(*PdfBorderStyle ,error ){_cfbg :=&PdfBorderStyle {};_cfbg ._cdd =_cead ;
var _adde *_fd .PdfObjectDictionary ;_cead =_fd .TraceToDirectObject (_cead );_adde ,_gafea :=_cead .(*_fd .PdfObjectDictionary );if !_gafea {return nil ,_ad .New ("\u0074\u0079\u0070\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};if _gbaa :=_adde .Get ("\u0054\u0079\u0070\u0065");
_gbaa !=nil {_ebbb ,_eged :=_gbaa .(*_fd .PdfObjectName );if !_eged {_ag .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",_gbaa );
}else {if *_ebbb !="\u0042\u006f\u0072\u0064\u0065\u0072"{_ag .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",*_ebbb );};};};if _efgf :=_adde .Get ("\u0057");
_efgf !=nil {_ecfd ,_feg :=_fd .GetNumberAsFloat (_efgf );if _feg !=nil {_ag .Log .Debug ("\u0045\u0072\u0072\u006fr \u0072\u0065\u0074\u0072\u0069\u0065\u0076\u0069\u006e\u0067\u0020\u0057\u003a\u0020%\u0076",_feg );return nil ,_feg ;};_cfbg .W =&_ecfd ;
};if _cdbe :=_adde .Get ("\u0053");_cdbe !=nil {_cacf ,_efe :=_cdbe .(*_fd .PdfObjectName );if !_efe {return nil ,_ad .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 _gccg BorderStyle ;switch *_cacf {case "\u0053":_gccg =BorderStyleSolid ;case "\u0044":_gccg =BorderStyleDashed ;case "\u0042":_gccg =BorderStyleBeveled ;case "\u0049":_gccg =BorderStyleInset ;case "\u0055":_gccg =BorderStyleUnderline ;default:_ag .Log .Debug ("I\u006e\u0076\u0061\u006cid\u0020s\u0074\u0079\u006c\u0065\u0020n\u0061\u006d\u0065\u0020\u0025\u0073",*_cacf );
return nil ,_ad .New ("\u0073\u0074\u0079\u006ce \u0074\u0079\u0070\u0065\u0020\u0072\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065c\u006b");};_cfbg .S =&_gccg ;};if _caeb :=_adde .Get ("\u0044");_caeb !=nil {_feda ,_cde :=_caeb .(*_fd .PdfObjectArray );
if !_cde {_ag .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",_caeb );return nil ,_ad .New ("\u0062o\u0072\u0064\u0065\u0072 \u0044\u0020\u0074\u0079\u0070e\u0020c\u0068e\u0063\u006b\u0020\u0065\u0072\u0072\u006fr");
};_cec ,_fbbb :=_feda .ToIntegerArray ();if _fbbb !=nil {_ag .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",_fbbb );
return nil ,_fbbb ;};_cfbg .D =&_cec ;};return _cfbg ,nil ;};
// PdfColor interface represents a generic color in PDF.
type PdfColor interface{};
// NewPdfActionSubmitForm returns a new "submit form" action.
func NewPdfActionSubmitForm ()*PdfActionSubmitForm {_gebc :=NewPdfAction ();_gab :=&PdfActionSubmitForm {};_gab .PdfAction =_gebc ;_gebc .SetContext (_gab );return _gab ;};
// NewPdfActionTrans returns a new "trans" action.
func NewPdfActionTrans ()*PdfActionTrans {_afa :=NewPdfAction ();_dag :=&PdfActionTrans {};_dag .PdfAction =_afa ;_afa .SetContext (_dag );return _dag ;};func (_beca *PdfReader )newPdfActionGotoFromDict (_cga *_fd .PdfObjectDictionary )(*PdfActionGoTo ,error ){return &PdfActionGoTo {D :_cga .Get ("\u0044")},nil ;
};
// GetPage returns the PdfPage model for the specified page number.
func (_dfgef *PdfReader )GetPage (pageNumber int )(*PdfPage ,error ){if _dfgef ._faaf .GetCrypter ()!=nil &&!_dfgef ._faaf .IsAuthenticated (){return nil ,_dc .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 (_dfgef ._bbfca )< pageNumber {return nil ,_ad .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");
};_gcfaa :=pageNumber -1;if _gcfaa < 0{return nil ,_dc .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");};_bbefa :=_dfgef .PageList [_gcfaa ];
return _bbefa ,nil ;};
// SetOCProperties sets the optional content properties.
func (_cgea *PdfWriter )SetOCProperties (ocProperties _fd .PdfObject )error {_eefee :=_cgea ._fdaca ;if ocProperties !=nil {_ag .Log .Trace ("\u0053e\u0074\u0074\u0069\u006e\u0067\u0020\u004f\u0043\u0020\u0050\u0072o\u0070\u0065\u0072\u0074\u0069\u0065\u0073\u002e\u002e\u002e");
_eefee .Set ("\u004f\u0043\u0050r\u006f\u0070\u0065\u0072\u0074\u0069\u0065\u0073",ocProperties );return _cgea .addObjects (ocProperties );};return nil ;};
// Names represents a PDF name tree.
//
// Ref: PDF32000_2008 chapter 7.7.4.
type Names struct{_acbf *_fd .PdfIndirectObject ;
// Dests is a name tree mapping name string to destinations.
Dests *_fd .PdfObjectDictionary ;
// AP is a name tree mapping name strings to annotation appearance streams.
AP *_fd .PdfObjectDictionary ;
// JavaScript is a name tree mapping name strings to JavaScript actions.
JavaScript *_fd .PdfObjectDictionary ;
// Pages is a name tree mapping name strings to visible pages for use in interactive forms.
Pages *_fd .PdfObjectDictionary ;
// Templates is a name tree mapping name strings to invisible (template) pages for use in interactive forms.
Templates *_fd .PdfObjectDictionary ;
// IDS is a name tree mapping digital identifies to Web Capture content sets.
IDS *_fd .PdfObjectDictionary ;
// URLS is a name tree mapping URLs to Web Capture content sets.
URLS *_fd .PdfObjectDictionary ;
// EmbeddedFiles is a name tree mapping name strings to file specifications for embedded file streams.
EmbeddedFiles *_fd .PdfObjectDictionary ;
// AlternatePresentations is a name tree mapping name strings to alternate presentations.
AlternatePresentations *_fd .PdfObjectDictionary ;
// Renditions is a name tree mapping name strings (which shall have Unicode encoding) to rendition objects.
Renditions *_fd .PdfObjectDictionary ;};
// Decrypt decrypts the PDF file with a specified password. Also tries to
// decrypt with an empty password. Returns true if successful,
// false otherwise.
func (_afafg *PdfReader )Decrypt (password []byte )(bool ,error ){_eegge ,_dbcag :=_afafg ._faaf .Decrypt (password );if _dbcag !=nil {return false ,_dbcag ;};if !_eegge {return false ,nil ;};_dbcag =_afafg .loadStructure ();if _dbcag !=nil {_ag .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",_dbcag );
return false ,_dbcag ;};return true ,nil ;};
// String returns a string representation of PdfTransformParamsDocMDP.
func (_fadfc *PdfTransformParamsDocMDP )String ()string {return _dc .Sprintf ("\u0025\u0073\u0020\u0050\u003a\u0020\u0025\u0073\u0020V\u003a\u0020\u0025\u0073",_fadfc .Type ,_fadfc .P ,_fadfc .V );};
// 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 (_fbaaf *LTV )Enable (sig *PdfSignature ,extraCerts []*_gff .Certificate )error {if _ggbc :=_fbaaf .validateSig (sig );_ggbc !=nil {return _ggbc ;};_bdeb ,_gaggg :=_fbaaf .generateVRIKey (sig );if _gaggg !=nil {return _gaggg ;};if _ ,_bgbgc :=_fbaaf ._fefa .VRI [_bdeb ];
_bgbgc &&_fbaaf .SkipExisting {return nil ;};_cebc ,_gaggg :=sig .GetCerts ();if _gaggg !=nil {return _gaggg ;};return _fbaaf .enable (_cebc ,extraCerts ,_bdeb );};func _fcced (_gbefg *_fd .PdfObjectDictionary ,_cbeed *fontCommon ,_bfadb _ee .TextEncoder )(*pdfFontSimple ,error ){_eegcf :=_bdcba (_cbeed );
_eegcf ._gadae =_bfadb ;if _bfadb ==nil {_eggdf :=_gbefg .Get ("\u0046i\u0072\u0073\u0074\u0043\u0068\u0061r");if _eggdf ==nil {_eggdf =_fd .MakeInteger (0);};_eegcf .FirstChar =_eggdf ;_dbcbe ,_aegdc :=_fd .GetIntVal (_eggdf );if !_aegdc {_ag .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",_eggdf );
return nil ,_fd .ErrTypeError ;};_daad :=_ee .CharCode (_dbcbe );_eggdf =_gbefg .Get ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072");if _eggdf ==nil {_eggdf =_fd .MakeInteger (255);};_eegcf .LastChar =_eggdf ;_dbcbe ,_aegdc =_fd .GetIntVal (_eggdf );
if !_aegdc {_ag .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",_eggdf );return nil ,_fd .ErrTypeError ;
};_dcbcg :=_ee .CharCode (_dbcbe );_eegcf ._bafeg =make (map[_ee .CharCode ]float64 );_eggdf =_gbefg .Get ("\u0057\u0069\u0064\u0074\u0068\u0073");if _eggdf !=nil {_eegcf .Widths =_eggdf ;_bcece ,_cgcbg :=_fd .GetArray (_eggdf );if !_cgcbg {_ag .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",_eggdf );
return nil ,_fd .ErrTypeError ;};_efbbe ,_cggd :=_bcece .ToFloat64Array ();if _cggd !=nil {_ag .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 ,_cggd ;};if len (_efbbe )!=int (_dcbcg -_daad +1){_ag .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",_dcbcg -_daad +1,len (_efbbe ));
return nil ,_fd .ErrRangeError ;};for _gdfb ,_bcdd :=range _efbbe {_eegcf ._bafeg [_daad +_ee .CharCode (_gdfb )]=_bcdd ;};};};_eegcf .Encoding =_fd .TraceToDirectObject (_gbefg .Get ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067"));return _eegcf ,nil ;
};
// ToPdfObject implements interface PdfModel.
func (_efdc *PdfAnnotation3D )ToPdfObject ()_fd .PdfObject {_efdc .PdfAnnotation .ToPdfObject ();_gdfe :=_efdc ._aeb ;_bac :=_gdfe .PdfObject .(*_fd .PdfObjectDictionary );_bac .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fd .MakeName ("\u0033\u0044"));
_bac .SetIfNotNil ("\u0033\u0044\u0044",_efdc .T3DD );_bac .SetIfNotNil ("\u0033\u0044\u0056",_efdc .T3DV );_bac .SetIfNotNil ("\u0033\u0044\u0041",_efdc .T3DA );_bac .SetIfNotNil ("\u0033\u0044\u0049",_efdc .T3DI );_bac .SetIfNotNil ("\u0033\u0044\u0042",_efdc .T3DB );
return _gdfe ;};func (_bdcae *PdfWriter )hasObject (_gdbfcc _fd .PdfObject )bool {_ ,_ceebc :=_bdcae ._agfaff [_gdbfcc ];return _ceebc ;};
// NewPdfAnnotationInk returns a new ink annotation.
func NewPdfAnnotationInk ()*PdfAnnotationInk {_eaa :=NewPdfAnnotation ();_gafd :=&PdfAnnotationInk {};_gafd .PdfAnnotation =_eaa ;_gafd .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_eaa .SetContext (_gafd );return _gafd ;};
// PdfAnnotationHighlight represents Highlight annotations.
// (Section 12.5.6.10).
type PdfAnnotationHighlight struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _fd .PdfObject ;};
// ReplaceAcroForm replaces the acrobat form. It appends a new form to the Pdf which
// replaces the original AcroForm.
func (_gagfa *PdfAppender )ReplaceAcroForm (acroForm *PdfAcroForm ){if acroForm !=nil {_gagfa .updateObjectsDeep (acroForm .ToPdfObject (),nil );};_gagfa ._agfb =acroForm ;};
// ColorToRGB verifies that the input color is an RGB color. Method exists in
// order to satisfy the PdfColorspace interface.
func (_fgfc *PdfColorspaceDeviceRGB )ColorToRGB (color PdfColor )(PdfColor ,error ){_dbdg ,_bbec :=color .(*PdfColorDeviceRGB );if !_bbec {_ag .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 ,_ad .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};return _dbdg ,nil ;};
// 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 (_agcg *Image )ConvertToBinary ()error {if _agcg .ColorComponents ==1&&_agcg .BitsPerComponent ==1{return nil ;};_affe ,_ecced :=_agcg .ToGoImage ();if _ecced !=nil {return _ecced ;};_febd ,_ecced :=_gbed .MonochromeConverter .Convert (_affe );if _ecced !=nil {return _ecced ;
};_agcg .Data =_febd .Base ().Data ;_agcg ._gfffd ,_ecced =_gbed .ScaleAlphaToMonochrome (_agcg ._gfffd ,int (_agcg .Width ),int (_agcg .Height ));if _ecced !=nil {return _ecced ;};_agcg .BitsPerComponent =1;_agcg .ColorComponents =1;_agcg ._cdbdc =nil ;
return nil ;};
// NewPdfActionURI returns a new "Uri" action.
func NewPdfActionURI ()*PdfActionURI {_cfg :=NewPdfAction ();_acb :=&PdfActionURI {};_acb .PdfAction =_cfg ;_cfg .SetContext (_acb );return _acb ;};
// PdfColorspaceDeviceRGB represents an RGB colorspace.
type PdfColorspaceDeviceRGB struct{};func (_fbdfcg *PdfWriter )copyObjects (){_ccade :=make (map[_fd .PdfObject ]_fd .PdfObject );_bbfbc :=make ([]_fd .PdfObject ,0,len (_fbdfcg ._agfbf ));_faeb :=make (map[_fd .PdfObject ]struct{},len (_fbdfcg ._agfbf ));
_fegcf :=make (map[_fd .PdfObject ]struct{});for _ ,_aadcgg :=range _fbdfcg ._agfbf {_gbagd :=_fbdfcg .copyObject (_aadcgg ,_ccade ,_fegcf ,false );if _ ,_aafeea :=_fegcf [_aadcgg ];_aafeea {continue ;};_bbfbc =append (_bbfbc ,_gbagd );_faeb [_gbagd ]=struct{}{};
};_fbdfcg ._agfbf =_bbfbc ;_fbdfcg ._agfaff =_faeb ;_fbdfcg ._ggdfa =_fbdfcg .copyObject (_fbdfcg ._ggdfa ,_ccade ,nil ,false ).(*_fd .PdfIndirectObject );_fbdfcg ._defdd =_fbdfcg .copyObject (_fbdfcg ._defdd ,_ccade ,nil ,false ).(*_fd .PdfIndirectObject );
if _fbdfcg ._abbcc !=nil {_fbdfcg ._abbcc =_fbdfcg .copyObject (_fbdfcg ._abbcc ,_ccade ,nil ,false ).(*_fd .PdfIndirectObject );};if _fbdfcg ._fbgg {_ccdb :=make (map[_fd .PdfObject ]int64 );for _bgdgg ,_edde :=range _fbdfcg ._ddgad {if _agdbd ,_fddbf :=_ccade [_bgdgg ];
_fddbf {_ccdb [_agdbd ]=_edde ;}else {_ag .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");
};};_fbdfcg ._ddgad =_ccdb ;};};
// Evaluate runs the function. Input is [x1 x2 x3].
func (_abfbab *PdfFunctionType4 )Evaluate (xVec []float64 )([]float64 ,error ){if _abfbab ._bdbbc ==nil {_abfbab ._bdbbc =_fa .NewPSExecutor (_abfbab .Program );};var _aabbdf []_fa .PSObject ;for _ ,_fabb :=range xVec {_aabbdf =append (_aabbdf ,_fa .MakeReal (_fabb ));
};_gbfe ,_fbef :=_abfbab ._bdbbc .Execute (_aabbdf );if _fbef !=nil {return nil ,_fbef ;};_dfcff ,_fbef :=_fa .PSObjectArrayToFloat64Array (_gbfe );if _fbef !=nil {return nil ,_fbef ;};return _dfcff ,nil ;};
// ToPdfObject returns the PDF representation of the colorspace.
func (_cceb *PdfColorspaceSpecialSeparation )ToPdfObject ()_fd .PdfObject {_cecf :=_fd .MakeArray (_fd .MakeName ("\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e"));_cecf .Append (_cceb .ColorantName );_cecf .Append (_cceb .AlternateSpace .ToPdfObject ());
_cecf .Append (_cceb .TintTransform .ToPdfObject ());if _cceb ._dbeeaf !=nil {_cceb ._dbeeaf .PdfObject =_cecf ;return _cceb ._dbeeaf ;};return _cecf ;};
// ToPdfObject returns the PDF representation of the shading dictionary.
func (_caadf *PdfShadingType5 )ToPdfObject ()_fd .PdfObject {_caadf .PdfShading .ToPdfObject ();_daeda ,_bgfgf :=_caadf .getShadingDict ();if _bgfgf !=nil {_ag .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 _caadf .BitsPerCoordinate !=nil {_daeda .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065",_caadf .BitsPerCoordinate );};if _caadf .BitsPerComponent !=nil {_daeda .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_caadf .BitsPerComponent );
};if _caadf .VerticesPerRow !=nil {_daeda .Set ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073\u0050e\u0072\u0052\u006f\u0077",_caadf .VerticesPerRow );};if _caadf .Decode !=nil {_daeda .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_caadf .Decode );};
if _caadf .Function !=nil {if len (_caadf .Function )==1{_daeda .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_caadf .Function [0].ToPdfObject ());}else {_afcae :=_fd .MakeArray ();for _ ,_ddgdc :=range _caadf .Function {_afcae .Append (_ddgdc .ToPdfObject ());
};_daeda .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_afcae );};};return _caadf ._cdgfd ;};
// 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 _bc .ReadSeeker ,opts *ReaderOpts )(*PdfReader ,error ){const _eeab ="\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 _daab (rs ,opts ,true ,_eeab );
};
// 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"`;};
// ToPdfObject implements interface PdfModel.
func (_fbae *PdfAnnotationSquiggly )ToPdfObject ()_fd .PdfObject {_fbae .PdfAnnotation .ToPdfObject ();_caed :=_fbae ._aeb ;_dgg :=_caed .PdfObject .(*_fd .PdfObjectDictionary );_fbae .PdfAnnotationMarkup .appendToPdfDictionary (_dgg );_dgg .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fd .MakeName ("\u0053\u0071\u0075\u0069\u0067\u0067\u006c\u0079"));
_dgg .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_fbae .QuadPoints );return _caed ;};func (_ddggd *Names )addEmbeddedFile (_ffbed *EmbeddedFile )error {if _ddggd .EmbeddedFiles ==nil {_ddggd .EmbeddedFiles =_fd .MakeDict ();
_ddggd .EmbeddedFiles .Set ("\u004e\u0061\u006de\u0073",_fd .MakeArray ());};_baff :=NewPdfFileSpecFromEmbeddedFile (_ffbed );_adgc :=_ddggd .EmbeddedFiles .Get ("\u004e\u0061\u006de\u0073");_bbgge ,_fbdc :=_adgc .(*_fd .PdfObjectArray );if !_fbdc {return _ad .New ("\u0049\u006e\u0076\u0061li\u0064\u0020\u004e\u0061\u006d\u0065\u0073\u0020\u0061\u0072\u0072\u0061\u0079");
};type FileSpecMap struct{_cafae string ;_cbcadb *PdfFilespec ;};_ddbgg :=[]FileSpecMap {};for _gdfea :=0;_gdfea < len (_bbgge .Elements ());_gdfea +=2{if _gdfea %2==0{_abeb :=_bbgge .Get (_gdfea );if _abeb !=nil {_geadf :=_abeb .(*_fd .PdfObjectString );
_ggadd :=_bbgge .Get (_gdfea +1);_ccaba ,_eefde :=NewPdfFilespecFromObj (_ggadd );if _eefde !=nil {return _eefde ;};_ddbgg =append (_ddbgg ,FileSpecMap {_cafae :_geadf .String (),_cbcadb :_ccaba });};};};_ddbgg =append (_ddbgg ,FileSpecMap {_cafae :_ffbed .Name ,_cbcadb :_baff });
_da .Slice (_ddbgg ,func (_dcaa ,_feebd int )bool {return _ddbgg [_dcaa ]._cafae < _ddbgg [_feebd ]._cafae });_bbgge =_fd .MakeArray ();for _ ,_gdegc :=range _ddbgg {_bbgge .Append (_fd .MakeString (_gdegc ._cafae ));_bbgge .Append (_gdegc ._cbcadb .ToPdfObject ());
};_ddggd .EmbeddedFiles .Set ("\u004e\u0061\u006de\u0073",_bbgge );return nil ;};func (_dbdgc *LTV )getCRLs (_cgaf []*_gff .Certificate )([][]byte ,error ){_bbebb :=make ([][]byte ,0,len (_cgaf ));for _ ,_agacb :=range _cgaf {for _ ,_ffdbf :=range _agacb .CRLDistributionPoints {if _dbdgc .CertClient .IsCA (_agacb ){continue ;
};_bdede ,_cdbcc :=_dbdgc .CRLClient .MakeRequest (_ffdbf ,_agacb );if _cdbcc !=nil {_ag .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",_cdbcc );continue ;
};_bbebb =append (_bbebb ,_bdede );};};return _bbebb ,nil ;};
// String returns a string that describes `font`.
func (_eage *PdfFont )String ()string {_fdff :="";if _eage ._gbaac .Encoder ()!=nil {_fdff =_eage ._gbaac .Encoder ().String ();};return _dc .Sprintf ("\u0046\u004f\u004e\u0054\u007b\u0025\u0054\u0020\u0025s\u0020\u0025\u0073\u007d",_eage ._gbaac ,_eage .baseFields ().coreString (),_fdff );
};
// GetContainingPdfObject gets the primitive used to parse the color space.
func (_dfdd *PdfColorspaceICCBased )GetContainingPdfObject ()_fd .PdfObject {return _dfdd ._fbad };
// 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 *_fd .PdfObjectName ;P *_fd .PdfObjectInteger ;V *_fd .PdfObjectName ;};
// GetRevisionNumber returns the version of the current Pdf document
func (_dbaf *PdfReader )GetRevisionNumber ()int {return _dbaf ._faaf .GetRevisionNumber ()};
// 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 *_fd .PdfObjectStream )(*XObjectImage ,error ){_ddfbg :=&XObjectImage {};_ddfbg ._bbcgd =stream ;_ddfef :=*(stream .PdfObjectDictionary );_bead ,_acdfa :=_fd .NewEncoderFromStream (stream );if _acdfa !=nil {return nil ,_acdfa ;
};_ddfbg .Filter =_bead ;if _dcdea :=_fd .TraceToDirectObject (_ddfef .Get ("\u0057\u0069\u0064t\u0068"));_dcdea !=nil {_gbee ,_edgba :=_dcdea .(*_fd .PdfObjectInteger );if !_edgba {return nil ,_ad .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");
};_cefea :=int64 (*_gbee );_ddfbg .Width =&_cefea ;}else {return nil ,_ad .New ("\u0077\u0069\u0064\u0074\u0068\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};if _cbbgg :=_fd .TraceToDirectObject (_ddfef .Get ("\u0048\u0065\u0069\u0067\u0068\u0074"));
_cbbgg !=nil {_agada ,_ebdga :=_cbbgg .(*_fd .PdfObjectInteger );if !_ebdga {return nil ,_ad .New ("i\u006e\u0076\u0061\u006c\u0069\u0064 \u0069\u006d\u0061\u0067\u0065\u0020\u0068\u0065\u0069g\u0068\u0074\u0020o\u0062j\u0065\u0063\u0074");};_cgba :=int64 (*_agada );
_ddfbg .Height =&_cgba ;}else {return nil ,_ad .New ("\u0068\u0065\u0069\u0067\u0068\u0074\u0020\u006d\u0069s\u0073\u0069\u006e\u0067");};if _cefae :=_fd .TraceToDirectObject (_ddfef .Get ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065"));
_cefae !=nil {_dcdaa ,_cbcca :=NewPdfColorspaceFromPdfObject (_cefae );if _cbcca !=nil {return nil ,_cbcca ;};_ddfbg .ColorSpace =_dcdaa ;}else {_ag .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");
_ddfbg .ColorSpace =NewPdfColorspaceDeviceGray ();};if _edgfc :=_fd .TraceToDirectObject (_ddfef .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074"));_edgfc !=nil {_cfbdf ,_dfcd :=_edgfc .(*_fd .PdfObjectInteger );
if !_dfcd {return nil ,_ad .New ("i\u006e\u0076\u0061\u006c\u0069\u0064 \u0069\u006d\u0061\u0067\u0065\u0020\u0068\u0065\u0069g\u0068\u0074\u0020o\u0062j\u0065\u0063\u0074");};_cecgd :=int64 (*_cfbdf );_ddfbg .BitsPerComponent =&_cecgd ;};_ddfbg .Intent =_ddfef .Get ("\u0049\u006e\u0074\u0065\u006e\u0074");
_ddfbg .ImageMask =_ddfef .Get ("\u0049m\u0061\u0067\u0065\u004d\u0061\u0073k");_ddfbg .Mask =_ddfef .Get ("\u004d\u0061\u0073\u006b");_ddfbg .Decode =_ddfef .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");_ddfbg .Interpolate =_ddfef .Get ("I\u006e\u0074\u0065\u0072\u0070\u006f\u006c\u0061\u0074\u0065");
_ddfbg .Alternatives =_ddfef .Get ("\u0041\u006c\u0074e\u0072\u006e\u0061\u0074\u0069\u0076\u0065\u0073");_ddfbg .SMask =_ddfef .Get ("\u0053\u004d\u0061s\u006b");_ddfbg .SMaskInData =_ddfef .Get ("S\u004d\u0061\u0073\u006b\u0049\u006e\u0044\u0061\u0074\u0061");
_ddfbg .Matte =_ddfef .Get ("\u004d\u0061\u0074t\u0065");_ddfbg .Name =_ddfef .Get ("\u004e\u0061\u006d\u0065");_ddfbg .StructParent =_ddfef .Get ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074");_ddfbg .ID =_ddfef .Get ("\u0049\u0044");
_ddfbg .OPI =_ddfef .Get ("\u004f\u0050\u0049");_ddfbg .Metadata =_ddfef .Get ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");_ddfbg .OC =_ddfef .Get ("\u004f\u0043");_ddfbg .Stream =stream .Stream ;return _ddfbg ,nil ;};func _agdd (_fgba *_fd .PdfObjectDictionary )*VRI {_afccd ,_ :=_fd .GetString (_fgba .Get ("\u0054\u0055"));
_afad ,_ :=_fd .GetString (_fgba .Get ("\u0054\u0053"));return &VRI {Cert :_abbbc (_fgba .Get ("\u0043\u0065\u0072\u0074")),OCSP :_abbbc (_fgba .Get ("\u004f\u0043\u0053\u0050")),CRL :_abbbc (_fgba .Get ("\u0043\u0052\u004c")),TU :_afccd ,TS :_afad };};
// PdfAnnotationPrinterMark represents PrinterMark annotations.
// (Section 12.5.6.20).
type PdfAnnotationPrinterMark struct{*PdfAnnotation ;MN _fd .PdfObject ;};
// GetNumComponents returns the number of color components of the colorspace device.
// Returns 3 for a Lab device.
func (_abfb *PdfColorspaceLab )GetNumComponents ()int {return 3};
// GetRuneMetrics returns the character metrics for the specified rune.
// A bool flag is returned to indicate whether or not the entry was found.
func (_babea pdfCIDFontType2 )GetRuneMetrics (r rune )(_cf .CharMetrics ,bool ){_bdbea ,_dfcb :=_babea ._agbed [r ];if !_dfcb {_faaac ,_eebd :=_fd .GetInt (_babea .DW );if !_eebd {return _cf .CharMetrics {},false ;};_bdbea =int (*_faaac );};return _cf .CharMetrics {Wx :float64 (_bdbea )},true ;
};
// GetXObjectImageByName returns the XObjectImage with the specified name from the
// page resources, if it exists.
func (_agfdbgb *PdfPageResources )GetXObjectImageByName (keyName _fd .PdfObjectName )(*XObjectImage ,error ){_cefg ,_cgaa :=_agfdbgb .GetXObjectByName (keyName );if _cefg ==nil {return nil ,nil ;};if _cgaa !=XObjectTypeImage {return nil ,_ad .New ("\u006e\u006f\u0074 \u0061\u006e\u0020\u0069\u006d\u0061\u0067\u0065");
};_ebabc ,_ccgc :=NewXObjectImageFromStream (_cefg );if _ccgc !=nil {return nil ,_ccgc ;};return _ebabc ,nil ;};
// AddExtension adds the specified extension to the Extensions dictionary.
// See section 7.1.2 "Extensions Dictionary" (pp. 108-109 PDF32000_2008).
func (_aebeg *PdfWriter )AddExtension (extName ,baseVersion string ,extLevel int ){_caacd ,_agceb :=_fd .GetDict (_aebeg ._fdaca .Get ("\u0045\u0078\u0074\u0065\u006e\u0073\u0069\u006f\u006e\u0073"));if !_agceb {_caacd =_fd .MakeDict ();_aebeg ._fdaca .Set ("\u0045\u0078\u0074\u0065\u006e\u0073\u0069\u006f\u006e\u0073",_caacd );
};_ffcdcb ,_agceb :=_fd .GetDict (_caacd .Get (_fd .PdfObjectName (extName )));if !_agceb {_ffcdcb =_fd .MakeDict ();_caacd .Set (_fd .PdfObjectName (extName ),_ffcdcb );};if _adebe ,_ :=_fd .GetNameVal (_ffcdcb .Get ("B\u0061\u0073\u0065\u0056\u0065\u0072\u0073\u0069\u006f\u006e"));
_adebe !=baseVersion {_ffcdcb .Set ("B\u0061\u0073\u0065\u0056\u0065\u0072\u0073\u0069\u006f\u006e",_fd .MakeName (baseVersion ));};if _bdafcb ,_ :=_fd .GetIntVal (_ffcdcb .Get ("\u0045\u0078\u0074\u0065\u006e\u0073\u0069\u006f\u006eL\u0065\u0076\u0065\u006c"));
_bdafcb !=extLevel {_ffcdcb .Set ("\u0045\u0078\u0074\u0065\u006e\u0073\u0069\u006f\u006eL\u0065\u0076\u0065\u006c",_fd .MakeInteger (int64 (extLevel )));};};
// ToPdfOutlineItem returns a low level PdfOutlineItem object,
// based on the current instance.
func (_dfbc *OutlineItem )ToPdfOutlineItem ()(*PdfOutlineItem ,int64 ){_gcgfg :=NewPdfOutlineItem ();_gcgfg .Title =_fd .MakeEncodedString (_dfbc .Title ,true );_gcgfg .Dest =_dfbc .Dest .ToPdfObject ();var _edcag []*PdfOutlineItem ;var _gcaa int64 ;var _bcabg *PdfOutlineItem ;
for _ ,_ecgfd :=range _dfbc .Entries {_bgce ,_deecd :=_ecgfd .ToPdfOutlineItem ();_bgce .Parent =&_gcgfg .PdfOutlineTreeNode ;if _bcabg !=nil {_bcabg .Next =&_bgce .PdfOutlineTreeNode ;_bgce .Prev =&_bcabg .PdfOutlineTreeNode ;};_edcag =append (_edcag ,_bgce );
_gcaa +=_deecd ;_bcabg =_bgce ;};_bfega :=len (_edcag );_gcaa +=int64 (_bfega );if _bfega > 0{_gcgfg .First =&_edcag [0].PdfOutlineTreeNode ;_gcgfg .Last =&_edcag [_bfega -1].PdfOutlineTreeNode ;_gcgfg .Count =&_gcaa ;};return _gcgfg ,_gcaa ;};
// SetColorSpace sets `r` colorspace object to `colorspace`.
func (_cbdaa *PdfPageResources )SetColorSpace (colorspace *PdfPageResourcesColorspaces ){_cbdaa ._agaf =colorspace ;};func (_edaffg *PdfWriter )seekByName (_fagefd _fd .PdfObject ,_bebdf []string ,_abeg string )([]_fd .PdfObject ,error ){_ag .Log .Trace ("\u0053\u0065\u0065\u006b\u0020\u0062\u0079\u0020\u006e\u0061\u006d\u0065.\u002e\u0020\u0025\u0054",_fagefd );
var _cdgfc []_fd .PdfObject ;if _dbabg ,_gfffc :=_fagefd .(*_fd .PdfIndirectObject );_gfffc {return _edaffg .seekByName (_dbabg .PdfObject ,_bebdf ,_abeg );};if _abccd ,_bffab :=_fagefd .(*_fd .PdfObjectStream );_bffab {return _edaffg .seekByName (_abccd .PdfObjectDictionary ,_bebdf ,_abeg );
};if _bgbfd ,_ddcdg :=_fagefd .(*_fd .PdfObjectDictionary );_ddcdg {_ag .Log .Trace ("\u0044\u0069\u0063\u0074");for _ ,_acgad :=range _bgbfd .Keys (){_bfecc :=_bgbfd .Get (_acgad );if string (_acgad )==_abeg {_cdgfc =append (_cdgfc ,_bfecc );};for _ ,_fdbdg :=range _bebdf {if string (_acgad )==_fdbdg {_ag .Log .Trace ("\u0046\u006f\u006c\u006c\u006f\u0077\u0020\u006b\u0065\u0079\u0020\u0025\u0073",_fdbdg );
_fgfga ,_efcfg :=_edaffg .seekByName (_bfecc ,_bebdf ,_abeg );if _efcfg !=nil {return _cdgfc ,_efcfg ;};_cdgfc =append (_cdgfc ,_fgfga ...);break ;};};};return _cdgfc ,nil ;};return _cdgfc ,nil ;};
// PdfActionSetOCGState represents a SetOCGState action.
type PdfActionSetOCGState struct{*PdfAction ;State _fd .PdfObject ;PreserveRB _fd .PdfObject ;};
// PdfAnnotationFreeText represents FreeText annotations.
// (Section 12.5.6.6).
type PdfAnnotationFreeText struct{*PdfAnnotation ;*PdfAnnotationMarkup ;DA _fd .PdfObject ;Q _fd .PdfObject ;RC _fd .PdfObject ;DS _fd .PdfObject ;CL _fd .PdfObject ;IT _fd .PdfObject ;BE _fd .PdfObject ;RD _fd .PdfObject ;BS _fd .PdfObject ;LE _fd .PdfObject ;
};type fontFile struct{_cbfca string ;_gccee string ;_cecab _ee .SimpleEncoder ;};func (_bff *PdfAppender )addNewObject (_acf _fd .PdfObject ){if _ ,_gbede :=_bff ._dbdc [_acf ];!_gbede {_bff ._gagg =append (_bff ._gagg ,_acf );_bff ._dbdc [_acf ]=struct{}{};
};};
// Write writes the Appender output to io.Writer.
// It can only be called once and further invocations will result in an error.
func (_feeg *PdfAppender )Write (w _bc .Writer )error {if _feeg ._fdbd {return _ad .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");
};_gddc :=NewPdfWriter ();_afeb ,_bgdg :=_fd .GetDict (_gddc ._eecde );if !_bgdg {return _ad .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");
};_ccbae ,_bgdg :=_afeb .Get ("\u004b\u0069\u0064\u0073").(*_fd .PdfObjectArray );if !_bgdg {return _ad .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");
};_cdbg ,_bgdg :=_afeb .Get ("\u0043\u006f\u0075n\u0074").(*_fd .PdfObjectInteger );if !_bgdg {return _ad .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");
};_acgb :=_feeg ._efec ._faaf ;_fcgf :=_acgb .GetTrailer ();if _fcgf ==nil {return _ad .New ("\u006di\u0073s\u0069\u006e\u0067\u0020\u0074\u0072\u0061\u0069\u006c\u0065\u0072");};_cceag ,_bgdg :=_fd .GetIndirect (_fcgf .Get ("\u0052\u006f\u006f\u0074"));
if !_bgdg {return _ad .New ("c\u0061\u0074\u0061\u006c\u006f\u0067 \u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0065\u0072 \u006e\u006f\u0074 \u0066o\u0075\u006e\u0064");};_efag ,_bgdg :=_fd .GetDict (_cceag );if !_bgdg {_ag .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",_cceag ,*_fcgf );
return _ad .New ("\u006di\u0073s\u0069\u006e\u0067\u0020\u0063\u0061\u0074\u0061\u006c\u006f\u0067");};_gcdc :=false ;for _ ,_bbgf :=range _feeg ._efec .AcroForm .signatureFields (){if _bbgf .Lock !=nil {_gcdc =true ;break ;};};if _gcdc {_gddc ._defdd =_cceag ;
};for _ ,_geea :=range _efag .Keys (){if _gddc ._fdaca .Get (_geea )==nil {_dagb :=_efag .Get (_geea );_gddc ._fdaca .Set (_geea ,_dagb );};};if _feeg ._agfb !=nil {if _feeg ._agfb ._cfbb {if _ecce :=_fd .TraceToDirectObject (_feeg ._agfb .ToPdfObject ());
!_fd .IsNullObject (_ecce ){_gddc ._fdaca .Set ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d",_ecce );_feeg .updateObjectsDeep (_ecce ,nil );}else {_ag .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 {_gddc ._fdaca .Set ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d",_feeg ._agfb .ToPdfObject ());_feeg .updateObjectsDeep (_feeg ._agfb .ToPdfObject (),nil );};};if _feeg ._bgge !=nil {_feeg .updateObjectsDeep (_feeg ._bgge .ToPdfObject (),nil );
_gddc ._fdaca .Set ("\u0044\u0053\u0053",_feeg ._bgge .GetContainingPdfObject ());};if _feeg ._daea !=nil {_gddc ._fdaca .Set ("\u0050\u0065\u0072m\u0073",_feeg ._daea .ToPdfObject ());_feeg .updateObjectsDeep (_feeg ._daea .ToPdfObject (),nil );};if _gddc ._ggaddg .Major < 2{_gddc .AddExtension ("\u0045\u0053\u0049\u0043","\u0031\u002e\u0037",5);
_gddc .AddExtension ("\u0041\u0044\u0042\u0045","\u0031\u002e\u0037",8);};if _bcfff ,_dafd :=_fd .GetDict (_fcgf .Get ("\u0049\u006e\u0066\u006f"));_dafd {if _eae ,_cdda :=_fd .GetDict (_gddc ._ggdfa );_cdda {for _ ,_dcbd :=range _bcfff .Keys (){if _eae .Get (_dcbd )==nil {_eae .Set (_dcbd ,_bcfff .Get (_dcbd ));
};};};};if _feeg ._edb !=nil {_gddc ._ggdfa =_fd .MakeIndirectObject (_feeg ._edb .ToPdfObject ());};_feeg .updateObjectsDeep (_gddc ._ggdfa ,nil );_feeg .updateObjectsDeep (_gddc ._defdd ,nil );_beeb :=false ;if len (_feeg ._efec .PageList )!=len (_feeg ._gbca ){_beeb =true ;
}else {for _face :=range _feeg ._efec .PageList {switch {case _feeg ._gbca [_face ]==_feeg ._efec .PageList [_face ]:case _feeg ._gbca [_face ]==_feeg .Reader .PageList [_face ]:default:_beeb =true ;};if _beeb {break ;};};};if _beeb {_feeg .updateObjectsDeep (_gddc ._eecde ,nil );
}else {_feeg ._cfa [_gddc ._eecde ]=struct{}{};};_gddc ._eecde .ObjectNumber =_feeg .Reader ._gaag .ObjectNumber ;_feeg ._aceb [_gddc ._eecde ]=_feeg .Reader ._gaag .ObjectNumber ;_dcff :=[]_fd .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 _ ,_bbbf :=range _feeg ._gbca {_abcc :=_bbbf .ToPdfObject ();*_cdbg =*_cdbg +1;if _dagf ,_bedb :=_abcc .(*_fd .PdfIndirectObject );_bedb &&_dagf .GetParser ()==_feeg ._efec ._faaf {_ccbae .Append (&_dagf .PdfObjectReference );continue ;};if _gfaa ,_afg :=_fd .GetDict (_abcc );
_afg {_gadg ,_begb :=_gfaa .Get ("\u0050\u0061\u0072\u0065\u006e\u0074").(*_fd .PdfIndirectObject );for _begb {_ag .Log .Trace ("\u0050a\u0067e\u0020\u0050\u0061\u0072\u0065\u006e\u0074\u003a\u0020\u0025\u0054",_gadg );_aef ,_adcd :=_gadg .PdfObject .(*_fd .PdfObjectDictionary );
if !_adcd {return _ad .New ("i\u006e\u0076\u0061\u006cid\u0020P\u0061\u0072\u0065\u006e\u0074 \u006f\u0062\u006a\u0065\u0063\u0074");};for _ ,_bcef :=range _dcff {_ag .Log .Trace ("\u0046\u0069\u0065\u006c\u0064\u0020\u0025\u0073",_bcef );if _afcf :=_gfaa .Get (_bcef );
_afcf !=nil {_ag .Log .Trace ("\u002d \u0070a\u0067\u0065\u0020\u0068\u0061s\u0020\u0061l\u0072\u0065\u0061\u0064\u0079");if len (_bbbf ._cadc .Keys ())> 0&&!_beeb {_deaea :=_bbbf ._cadc ;if _eeee :=_deaea .Get (_bcef );_eeee !=nil {if _afcf !=_eeee {_ag .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",_bcef ,_eeee );
_gfaa .Set (_bcef ,_eeee );};};};continue ;};if _fagf :=_aef .Get (_bcef );_fagf !=nil {_ag .Log .Trace ("\u0049\u006e\u0068\u0065ri\u0074\u0069\u006e\u0067\u0020\u0066\u0069\u0065\u006c\u0064\u0020\u0025\u0073",_bcef );_gfaa .Set (_bcef ,_fagf );};};_gadg ,_begb =_aef .Get ("\u0050\u0061\u0072\u0065\u006e\u0074").(*_fd .PdfIndirectObject );
_ag .Log .Trace ("\u004ee\u0078t\u0020\u0070\u0061\u0072\u0065\u006e\u0074\u003a\u0020\u0025\u0054",_aef .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"));};if _beeb {_gfaa .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_gddc ._eecde );};};_feeg .updateObjectsDeep (_abcc ,nil );
_ccbae .Append (_abcc );};if _ ,_geba :=_feeg ._cgae .Seek (0,_bc .SeekStart );_geba !=nil {return _geba ;};_gdfd :=make (map[SignatureHandler ]_bc .Writer );_gfgcfd :=_fd .MakeArray ();for _ ,_efbd :=range _feeg ._gagg {if _dgec ,_cfedg :=_fd .GetIndirect (_efbd );
_cfedg {if _ecaa ,_aaef :=_dgec .PdfObject .(*pdfSignDictionary );_aaef {_efbc :=*_ecaa ._efeca ;var _bgab error ;_gdfd [_efbc ],_bgab =_efbc .NewDigest (_ecaa ._eeabe );if _bgab !=nil {return _bgab ;};_gfgcfd .Append (_fd .MakeInteger (0xfffff),_fd .MakeInteger (0xfffff));
};};};if _gfgcfd .Len ()> 0{_gfgcfd .Append (_fd .MakeInteger (0xfffff),_fd .MakeInteger (0xfffff));};for _ ,_cage :=range _feeg ._gagg {if _dgfb ,_ecdf :=_fd .GetIndirect (_cage );_ecdf {if _egf ,_ceba :=_dgfb .PdfObject .(*pdfSignDictionary );_ceba {_egf .Set ("\u0042y\u0074\u0065\u0052\u0061\u006e\u0067e",_gfgcfd );
};};};_eefab :=len (_gdfd )> 0;var _ebdcg _bc .Reader =_feeg ._cgae ;if _eefab {_egcg :=make ([]_bc .Writer ,0,len (_gdfd ));for _ ,_geef :=range _gdfd {_egcg =append (_egcg ,_geef );};_ebdcg =_bc .TeeReader (_feeg ._cgae ,_bc .MultiWriter (_egcg ...));
};_ffcd ,_efbg :=_bc .Copy (w ,_ebdcg );if _efbg !=nil {return _efbg ;};if len (_feeg ._gagg )==0{return nil ;};_gddc ._dfgae =_ffcd ;_gddc .ObjNumOffset =_feeg ._bgfg ;_gddc ._fbgg =true ;_gddc ._aeffd =_feeg ._ccfe ;_gddc ._ecfc =_feeg ._fda ;_gddc ._bfdbd =_feeg ._cdfg ;
_gddc ._ggaddg =_feeg ._efec .PdfVersion ();_gddc ._ddgad =_feeg ._aceb ;_gddc ._egadf =_feeg ._fcec .GetCrypter ();_gddc ._abbcc =_feeg ._fcec .GetEncryptObj ();_bgec :=_feeg ._fcec .GetXrefType ();if _bgec !=nil {_eea :=*_bgec ==_fd .XrefTypeObjectStream ;
_gddc ._bgced =&_eea ;};_gddc ._agfaff =map[_fd .PdfObject ]struct{}{};_gddc ._agfbf =[]_fd .PdfObject {};for _ ,_cdab :=range _feeg ._gagg {if _ ,_bdf :=_feeg ._cfa [_cdab ];_bdf {continue ;};_gddc .addObject (_cdab );};_gffd :=w ;if _eefab {_gffd =_bf .NewBuffer (nil );
};if _feeg ._gffb !=""&&_gddc ._egadf ==nil {_gddc .Encrypt ([]byte (_feeg ._gffb ),[]byte (_feeg ._gffb ),_feeg ._gdef );};if _eeea :=_fcgf .Get ("\u0049\u0044");_eeea !=nil {if _dde ,_cadb :=_fd .GetArray (_eeea );_cadb {_gddc ._bgdef =_dde ;};};if _gdad :=_gddc .Write (_gffd );
_gdad !=nil {return _gdad ;};if _eefab {_fgbc :=_gffd .(*_bf .Buffer ).Bytes ();_fegg :=_fd .MakeArray ();var _gace []*pdfSignDictionary ;var _bbgg int64 ;for _ ,_fgca :=range _gddc ._agfbf {if _dedd ,_egdd :=_fd .GetIndirect (_fgca );_egdd {if _faba ,_gcee :=_dedd .PdfObject .(*pdfSignDictionary );
_gcee {_gace =append (_gace ,_faba );_eebg :=_faba ._gedfg +int64 (_faba ._cfdbb );_fegg .Append (_fd .MakeInteger (_bbgg ),_fd .MakeInteger (_eebg -_bbgg ));_bbgg =_faba ._gedfg +int64 (_faba ._efcd );};};};_fegg .Append (_fd .MakeInteger (_bbgg ),_fd .MakeInteger (_ffcd +int64 (len (_fgbc ))-_bbgg ));
_ccfcb :=[]byte (_fegg .WriteString ());for _ ,_dbbg :=range _gace {_dfaa :=int (_dbbg ._gedfg -_ffcd );for _eccg :=_dbbg ._cdfec ;_eccg < _dbbg ._cecea ;_eccg ++{_fgbc [_dfaa +_eccg ]=' ';};_dfge :=_fgbc [_dfaa +_dbbg ._cdfec :_dfaa +_dbbg ._cecea ];copy (_dfge ,_ccfcb );
};var _fdab int ;for _ ,_bdbe :=range _gace {_cab :=int (_bdbe ._gedfg -_ffcd );_fgadf :=_fgbc [_fdab :_cab +_bdbe ._cfdbb ];_ccefe :=*_bdbe ._efeca ;_gdfd [_ccefe ].Write (_fgadf );_fdab =_cab +_bdbe ._efcd ;};for _ ,_cbfg :=range _gace {_aaeg :=_fgbc [_fdab :];
_defea :=*_cbfg ._efeca ;_gdfd [_defea ].Write (_aaeg );};for _ ,_bgeca :=range _gace {_gecg :=int (_bgeca ._gedfg -_ffcd );_aecdc :=*_bgeca ._efeca ;_cgfa :=_gdfd [_aecdc ];if _acbe :=_aecdc .Sign (_bgeca ._eeabe ,_cgfa );_acbe !=nil {return _acbe ;};
_bgeca ._eeabe .ByteRange =_fegg ;_daff :=[]byte (_bgeca ._eeabe .Contents .WriteString ());for _abac :=_bgeca ._cdfec ;_abac < _bgeca ._cecea ;_abac ++{_fgbc [_gecg +_abac ]=' ';};for _ggac :=_bgeca ._cfdbb ;_ggac < _bgeca ._efcd ;_ggac ++{_fgbc [_gecg +_ggac ]=' ';
};_aacd :=_fgbc [_gecg +_bgeca ._cdfec :_gecg +_bgeca ._cecea ];copy (_aacd ,_ccfcb );_aacd =_fgbc [_gecg +_bgeca ._cfdbb :_gecg +_bgeca ._efcd ];copy (_aacd ,_daff );};_gagfb :=_bf .NewBuffer (_fgbc );_ ,_efbg =_bc .Copy (w ,_gagfb );if _efbg !=nil {return _efbg ;
};};_feeg ._fdbd =true ;return nil ;};
// ToPdfObject returns the PDF representation of the shading dictionary.
func (_dgdba *PdfShadingType6 )ToPdfObject ()_fd .PdfObject {_dgdba .PdfShading .ToPdfObject ();_aabcc ,_ccaeb :=_dgdba .getShadingDict ();if _ccaeb !=nil {_ag .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 _dgdba .BitsPerCoordinate !=nil {_aabcc .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065",_dgdba .BitsPerCoordinate );};if _dgdba .BitsPerComponent !=nil {_aabcc .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_dgdba .BitsPerComponent );
};if _dgdba .BitsPerFlag !=nil {_aabcc .Set ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067",_dgdba .BitsPerFlag );};if _dgdba .Decode !=nil {_aabcc .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_dgdba .Decode );};if _dgdba .Function !=nil {if len (_dgdba .Function )==1{_aabcc .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_dgdba .Function [0].ToPdfObject ());
}else {_bdddd :=_fd .MakeArray ();for _ ,_gdca :=range _dgdba .Function {_bdddd .Append (_gdca .ToPdfObject ());};_aabcc .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_bdddd );};};return _dgdba ._cdgfd ;};func _ceddb (_aadaa _fd .PdfObject )(*PdfFunctionType3 ,error ){_eageg :=&PdfFunctionType3 {};
var _afaec *_fd .PdfObjectDictionary ;if _ebbcf ,_aageb :=_aadaa .(*_fd .PdfIndirectObject );_aageb {_cabd ,_dbcde :=_ebbcf .PdfObject .(*_fd .PdfObjectDictionary );if !_dbcde {return nil ,_ad .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");
};_eageg ._dcaf =_ebbcf ;_afaec =_cabd ;}else if _gddff ,_deeee :=_aadaa .(*_fd .PdfObjectDictionary );_deeee {_afaec =_gddff ;}else {return nil ,_ad .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_ffaae ,_gfabd :=_fd .TraceToDirectObject (_afaec .Get ("\u0044\u006f\u006d\u0061\u0069\u006e")).(*_fd .PdfObjectArray );
if !_gfabd {_ag .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_ad .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 _ffaae .Len ()!=2{_ag .Log .Error ("\u0044\u006f\u006d\u0061\u0069\u006e\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");return nil ,_ad .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0064\u006f\u006da\u0069\u006e\u0020\u0072an\u0067\u0065");};_cdebg ,_ffbdg :=_ffaae .ToFloat64Array ();
if _ffbdg !=nil {return nil ,_ffbdg ;};_eageg .Domain =_cdebg ;_ffaae ,_gfabd =_fd .TraceToDirectObject (_afaec .Get ("\u0052\u0061\u006eg\u0065")).(*_fd .PdfObjectArray );if _gfabd {if _ffaae .Len ()< 0||_ffaae .Len ()%2!=0{return nil ,_ad .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0061\u006e\u0067\u0065");
};_ebgceb ,_aacabf :=_ffaae .ToFloat64Array ();if _aacabf !=nil {return nil ,_aacabf ;};_eageg .Range =_ebgceb ;};_ffaae ,_gfabd =_fd .TraceToDirectObject (_afaec .Get ("\u0046u\u006e\u0063\u0074\u0069\u006f\u006es")).(*_fd .PdfObjectArray );if !_gfabd {_ag .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 ,_ad .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");};_eageg .Functions =[]PdfFunction {};
for _ ,_aeeeb :=range _ffaae .Elements (){_geeab ,_ffbee :=_badad (_aeeeb );if _ffbee !=nil {return nil ,_ffbee ;};_eageg .Functions =append (_eageg .Functions ,_geeab );};_ffaae ,_gfabd =_fd .TraceToDirectObject (_afaec .Get ("\u0042\u006f\u0075\u006e\u0064\u0073")).(*_fd .PdfObjectArray );
if !_gfabd {_ag .Log .Error ("B\u006fu\u006e\u0064\u0073\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_ad .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");
};_cedg ,_ffbdg :=_ffaae .ToFloat64Array ();if _ffbdg !=nil {return nil ,_ffbdg ;};_eageg .Bounds =_cedg ;if len (_eageg .Bounds )!=len (_eageg .Functions )-1{_ag .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 (_eageg .Bounds ),len (_eageg .Functions ));
return nil ,_ad .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_ffaae ,_gfabd =_fd .TraceToDirectObject (_afaec .Get ("\u0045\u006e\u0063\u006f\u0064\u0065")).(*_fd .PdfObjectArray );if !_gfabd {_ag .Log .Error ("E\u006ec\u006f\u0064\u0065\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");
return nil ,_ad .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");};_aace ,_ffbdg :=_ffaae .ToFloat64Array ();
if _ffbdg !=nil {return nil ,_ffbdg ;};_eageg .Encode =_aace ;if len (_eageg .Encode )!=2*len (_eageg .Functions ){_ag .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 (_eageg .Encode ),len (_eageg .Functions ));
return nil ,_ad .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};return _eageg ,nil ;};
// ToPdfObject converts rectangle to a PDF object.
func (_afddd *PdfRectangle )ToPdfObject ()_fd .PdfObject {return _fd .MakeArray (_fd .MakeFloat (_afddd .Llx ),_fd .MakeFloat (_afddd .Lly ),_fd .MakeFloat (_afddd .Urx ),_fd .MakeFloat (_afddd .Ury ));};func (_gdadc *PdfColorspaceICCBased )String ()string {return "\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064";
};func (_ffcdba SignatureValidationResult )String ()string {var _abade _bf .Buffer ;_abade .WriteString (_dc .Sprintf ("\u004ea\u006d\u0065\u003a\u0020\u0025\u0073\n",_ffcdba .Name ));if _ffcdba .Date ._bdaae > 0{_abade .WriteString (_dc .Sprintf ("\u0044a\u0074\u0065\u003a\u0020\u0025\u0073\n",_ffcdba .Date .ToGoTime ().String ()));
}else {_abade .WriteString ("\u0044\u0061\u0074\u0065 n\u006f\u0074\u0020\u0073\u0070\u0065\u0063\u0069\u0066\u0069\u0065\u0064\u000a");};if len (_ffcdba .Reason )> 0{_abade .WriteString (_dc .Sprintf ("R\u0065\u0061\u0073\u006f\u006e\u003a\u0020\u0025\u0073\u000a",_ffcdba .Reason ));
}else {_abade .WriteString ("N\u006f \u0072\u0065\u0061\u0073\u006f\u006e\u0020\u0073p\u0065\u0063\u0069\u0066ie\u0064\u000a");};if len (_ffcdba .Location )> 0{_abade .WriteString (_dc .Sprintf ("\u004c\u006f\u0063\u0061\u0074\u0069\u006f\u006e\u003a\u0020\u0025\u0073\u000a",_ffcdba .Location ));
}else {_abade .WriteString ("\u004c\u006f\u0063at\u0069\u006f\u006e\u0020\u006e\u006f\u0074\u0020\u0073\u0070\u0065\u0063\u0069\u0066\u0069\u0065\u0064\u000a");};if len (_ffcdba .ContactInfo )> 0{_abade .WriteString (_dc .Sprintf ("\u0043\u006f\u006e\u0074\u0061\u0063\u0074\u0020\u0049\u006e\u0066\u006f:\u0020\u0025\u0073\u000a",_ffcdba .ContactInfo ));
}else {_abade .WriteString ("C\u006f\u006e\u0074\u0061\u0063\u0074 \u0069\u006e\u0066\u006f\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063i\u0066i\u0065\u0064\u000a");};_abade .WriteString (_dc .Sprintf ("F\u0069\u0065\u006c\u0064\u0073\u003a\u0020\u0025\u0064\u000a",len (_ffcdba .Fields )));
if _ffcdba .IsSigned {_abade .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 {_abade .WriteString ("\u0053\u0069\u0067\u006eed\u003a\u0020\u004e\u006f\u0074\u0020\u0073\u0069\u0067\u006e\u0065\u0064\u000a");
};if _ffcdba .IsVerified {_abade .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 {_abade .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 _ffcdba .IsTrusted {_abade .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 {_abade .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 !_ffcdba .GeneralizedTime .IsZero (){_abade .WriteString (_dc .Sprintf ("G\u0065n\u0065\u0072\u0061\u006c\u0069\u007a\u0065\u0064T\u0069\u006d\u0065\u003a %\u0073\u000a",_ffcdba .GeneralizedTime .String ()));};if _ffcdba .DiffResults !=nil {_abade .WriteString (_dc .Sprintf ("\u0064\u0069\u0066\u0066 i\u0073\u0020\u0070\u0065\u0072\u006d\u0069\u0074\u0074\u0065\u0064\u003a\u0020\u0025v\u000a",_ffcdba .DiffResults .IsPermitted ()));
if len (_ffcdba .DiffResults .Warnings )> 0{_abade .WriteString ("\u004d\u0044\u0050\u0020\u0077\u0061\u0072\u006e\u0069n\u0067\u0073\u003a\u000a");for _ ,_bcgcf :=range _ffcdba .DiffResults .Warnings {_abade .WriteString (_dc .Sprintf ("\u0009\u0025\u0073\u000a",_bcgcf ));
};};if len (_ffcdba .DiffResults .Errors )> 0{_abade .WriteString ("\u004d\u0044\u0050 \u0065\u0072\u0072\u006f\u0072\u0073\u003a\u000a");for _ ,_edada :=range _ffcdba .DiffResults .Errors {_abade .WriteString (_dc .Sprintf ("\u0009\u0025\u0073\u000a",_edada ));
};};};if _ffcdba .IsCrlFound {_abade .WriteString ("R\u0065\u0076\u006f\u0063\u0061\u0074i\u006f\u006e\u0020\u0064\u0061\u0074\u0061\u003a\u0020C\u0052\u004c\u0020f\u006fu\u006e\u0064\u000a");}else {_abade .WriteString ("\u0052\u0065\u0076o\u0063\u0061\u0074\u0069o\u006e\u0020\u0064\u0061\u0074\u0061\u003a \u0043\u0052\u004c\u0020\u006e\u006f\u0074\u0020\u0066\u006f\u0075\u006e\u0064\u000a");
};if _ffcdba .IsOcspFound {_abade .WriteString ("\u0052\u0065\u0076\u006fc\u0061\u0074\u0069\u006f\u006e\u0020\u0064\u0061\u0074\u0061:\u0020O\u0043\u0053\u0050\u0020\u0066\u006f\u0075n\u0064\u000a");}else {_abade .WriteString ("\u0052\u0065\u0076\u006f\u0063\u0061\u0074\u0069\u006f\u006e\u0020\u0064\u0061\u0074\u0061:\u0020O\u0043\u0053\u0050\u0020\u006e\u006f\u0074\u0020\u0066\u006f\u0075\u006e\u0064\u000a");
};return _abade .String ();};func (_dfb *PdfReader )newPdfAnnotationInkFromDict (_afag *_fd .PdfObjectDictionary )(*PdfAnnotationInk ,error ){_dage :=PdfAnnotationInk {};_cbe ,_ecgb :=_dfb .newPdfAnnotationMarkupFromDict (_afag );if _ecgb !=nil {return nil ,_ecgb ;
};_dage .PdfAnnotationMarkup =_cbe ;_dage .InkList =_afag .Get ("\u0049n\u006b\u004c\u0069\u0073\u0074");_dage .BS =_afag .Get ("\u0042\u0053");return &_dage ,nil ;};func (_acca *PdfSignature )extractChainFromCert ()([]*_gff .Certificate ,error ){var _fdfdg *_fd .PdfObjectArray ;
switch _adagg :=_acca .Cert .(type ){case *_fd .PdfObjectString :_fdfdg =_fd .MakeArray (_adagg );case *_fd .PdfObjectArray :_fdfdg =_adagg ;default:return nil ,_dc .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",_adagg );
};var _dccff _bf .Buffer ;for _ ,_bdfgb :=range _fdfdg .Elements (){_bdbba ,_gfgge :=_fd .GetString (_bdfgb );if !_gfgge {return nil ,_dc .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",_bdfgb );
};if _ ,_eafe :=_dccff .Write (_bdbba .Bytes ());_eafe !=nil {return nil ,_eafe ;};};return _gff .ParseCertificates (_dccff .Bytes ());};
// PdfColorPatternType3 represents a color shading pattern type 3 (Radial).
type PdfColorPatternType3 struct{Color PdfColor ;PatternName _fd .PdfObjectName ;};
// 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 (_dggdc *PdfReader )ToWriter (opts *ReaderToWriterOpts )(*PdfWriter ,error ){_aeeg :=NewPdfWriter ();if opts ==nil {opts =&ReaderToWriterOpts {};};_cabdd ,_abcfc :=_dggdc .GetNumPages ();if _abcfc !=nil {_ag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_abcfc );
return nil ,_abcfc ;};for _bcafc :=1;_bcafc <=_cabdd ;_bcafc ++{_cgacc ,_bbdeg :=_dggdc .GetPage (_bcafc );if _bbdeg !=nil {_ag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_bbdeg );return nil ,_bbdeg ;};if opts .PageProcessCallback !=nil {_bbdeg =opts .PageProcessCallback (_bcafc ,_cgacc );
if _bbdeg !=nil {_ag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_bbdeg );return nil ,_bbdeg ;};}else if opts .PageCallback !=nil {opts .PageCallback (_bcafc ,_cgacc );};_bbdeg =_aeeg .AddPage (_cgacc );if _bbdeg !=nil {_ag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_bbdeg );
return nil ,_bbdeg ;};};_aeeg ._ggaddg =_dggdc .PdfVersion ();if !opts .SkipInfo {_acff ,_adbc :=_dggdc .GetPdfInfo ();if _adbc !=nil {_ag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_adbc );}else {_aeeg ._ggdfa .PdfObject =_acff .ToPdfObject ();
};};if !opts .SkipMetadata {if _fcdge :=_dggdc ._gabca .Get ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");_fcdge !=nil {if _fdgcdg :=_aeeg .SetCatalogMetadata (_fcdge );_fdgcdg !=nil {return nil ,_fdgcdg ;};};};if !opts .SkipMarkInfo {if _egad ,_abbf :=_dggdc .GetCatalogMarkInfo ();
_abbf {if _gbadc :=_aeeg .SetCatalogMarkInfo (_egad );_gbadc !=nil {return nil ,_gbadc ;};};};if !opts .SkipAcroForm {_fdeea :=_aeeg .SetForms (_dggdc .AcroForm );if _fdeea !=nil {_ag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_fdeea );
return nil ,_fdeea ;};};if !opts .SkipViewerPreferences {if _cgcef ,_cbdagg :=_dggdc .GetCatalogViewerPreferences ();_cbdagg {if _bbegb :=_aeeg .SetCatalogViewerPreferences (_cgcef );_bbegb !=nil {return nil ,_bbegb ;};};};if !opts .SkipLanguage {if _ececfa ,_efege :=_dggdc .GetCatalogLanguage ();
_efege {if _afgcc :=_aeeg .SetCatalogLanguage (_ececfa );_afgcc !=nil {return nil ,_afgcc ;};};};if !opts .SkipOutlines {_aeeg .AddOutlineTree (_dggdc .GetOutlineTree ());};if !opts .SkipOCProperties {_fcfe ,_dgffc :=_dggdc .GetOCProperties ();if _dgffc !=nil {_ag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_dgffc );
}else {_dgffc =_aeeg .SetOCProperties (_fcfe );if _dgffc !=nil {_ag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_dgffc );};};};if !opts .SkipPageLabels {_ffcge ,_ebeef :=_dggdc .GetPageLabels ();if _ebeef !=nil {_ag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_ebeef );
}else {_ebeef =_aeeg .SetPageLabels (_ffcge );if _ebeef !=nil {_ag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_ebeef );};};};if !opts .SkipNamedDests {_fgbde ,_gfce :=_dggdc .GetNamedDestinations ();if _gfce !=nil {_ag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_gfce );
}else {_gfce =_aeeg .SetNamedDestinations (_fgbde );if _gfce !=nil {_ag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_gfce );};};};if !opts .SkipNameDictionary {_dddfa ,_gadf :=_dggdc .GetNameDictionary ();if _gadf !=nil {_ag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_gadf );
}else {_gadf =_aeeg .SetNameDictionary (_dddfa );if _gadf !=nil {_ag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_gadf );};};};if !opts .SkipRotation &&_dggdc .Rotate !=nil {if _gaead :=_aeeg .SetRotation (*_dggdc .Rotate );_gaead !=nil {_ag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_gaead );
};};return &_aeeg ,nil ;};
// ParserMetadata gets the parser metadata.
func (_bgba *CompliancePdfReader )ParserMetadata ()_fd .ParserMetadata {if _bgba ._bgcc ==(_fd .ParserMetadata {}){_bgba ._bgcc ,_ =_bgba ._faaf .ParserMetadata ();};return _bgba ._bgcc ;};func _dfgfd ()*Names {return &Names {_acbf :_fd .MakeIndirectObject (_fd .MakeDict ())}};
// GetAllContentStreams gets all the content streams for a page as one string.
func (_afbec *PdfPage )GetAllContentStreams ()(string ,error ){_bceec ,_fbccd :=_afbec .GetContentStreams ();if _fbccd !=nil {return "",_fbccd ;};return _gg .Join (_bceec ,"\u0020"),nil ;};
// ToPdfObject returns the PDF representation of the shading pattern.
func (_eabfc *PdfShadingPattern )ToPdfObject ()_fd .PdfObject {_eabfc .PdfPattern .ToPdfObject ();_bbdgg :=_eabfc .getDict ();if _eabfc .Shading !=nil {_bbdgg .Set ("\u0053h\u0061\u0064\u0069\u006e\u0067",_eabfc .Shading .ToPdfObject ());};if _eabfc .Matrix !=nil {_bbdgg .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_eabfc .Matrix );
};if _eabfc .ExtGState !=nil {_bbdgg .Set ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e",_eabfc .ExtGState );};return _eabfc ._gcgba ;};
// ToPdfObject recursively builds the Outline tree PDF object.
func (_fbfbg *PdfOutlineItem )ToPdfObject ()_fd .PdfObject {_bfebb :=_fbfbg ._ecga ;_abbg :=_bfebb .PdfObject .(*_fd .PdfObjectDictionary );_abbg .Set ("\u0054\u0069\u0074l\u0065",_fbfbg .Title );if _fbfbg .A !=nil {_abbg .Set ("\u0041",_fbfbg .A );};if _cfgbb :=_abbg .Get ("\u0053\u0045");
_cfgbb !=nil {_abbg .Remove ("\u0053\u0045");};if _fbfbg .C !=nil {_abbg .Set ("\u0043",_fbfbg .C );};if _fbfbg .Dest !=nil {_abbg .Set ("\u0044\u0065\u0073\u0074",_fbfbg .Dest );};if _fbfbg .F !=nil {_abbg .Set ("\u0046",_fbfbg .F );};if _fbfbg .Count !=nil {_abbg .Set ("\u0043\u006f\u0075n\u0074",_fd .MakeInteger (*_fbfbg .Count ));
};if _fbfbg .Next !=nil {_abbg .Set ("\u004e\u0065\u0078\u0074",_fbfbg .Next .ToPdfObject ());};if _fbfbg .First !=nil {_abbg .Set ("\u0046\u0069\u0072s\u0074",_fbfbg .First .ToPdfObject ());};if _fbfbg .Prev !=nil {_abbg .Set ("\u0050\u0072\u0065\u0076",_fbfbg .Prev .GetContext ().GetContainingPdfObject ());
};if _fbfbg .Last !=nil {_abbg .Set ("\u004c\u0061\u0073\u0074",_fbfbg .Last .GetContext ().GetContainingPdfObject ());};if _fbfbg .Parent !=nil {_abbg .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_fbfbg .Parent .GetContext ().GetContainingPdfObject ());
};return _bfebb ;};
// NewPdfColorDeviceCMYK returns a new CMYK32 color.
func NewPdfColorDeviceCMYK (c ,m ,y ,k float64 )*PdfColorDeviceCMYK {_eggd :=PdfColorDeviceCMYK {c ,m ,y ,k };return &_eggd ;};func _cccfb (_eeaad *_fd .PdfObjectStream )(*PdfFunctionType4 ,error ){_afbba :=&PdfFunctionType4 {};_afbba ._bdga =_eeaad ;_edgbfb :=_eeaad .PdfObjectDictionary ;
_afbe ,_eddcb :=_fd .TraceToDirectObject (_edgbfb .Get ("\u0044\u006f\u006d\u0061\u0069\u006e")).(*_fd .PdfObjectArray );if !_eddcb {_ag .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_ad .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 _afbe .Len ()%2!=0{_ag .Log .Error ("\u0044\u006f\u006d\u0061\u0069\u006e\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");return nil ,_ad .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0064\u006f\u006da\u0069\u006e\u0020\u0072an\u0067\u0065");};_dcgdb ,_cecbc :=_afbe .ToFloat64Array ();
if _cecbc !=nil {return nil ,_cecbc ;};_afbba .Domain =_dcgdb ;_afbe ,_eddcb =_fd .TraceToDirectObject (_edgbfb .Get ("\u0052\u0061\u006eg\u0065")).(*_fd .PdfObjectArray );if _eddcb {if _afbe .Len ()< 0||_afbe .Len ()%2!=0{return nil ,_ad .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0061\u006e\u0067\u0065");
};_gdfbg ,_bebg :=_afbe .ToFloat64Array ();if _bebg !=nil {return nil ,_bebg ;};_afbba .Range =_gdfbg ;};_fddd ,_cecbc :=_fd .DecodeStream (_eeaad );if _cecbc !=nil {return nil ,_cecbc ;};_afbba ._cbaff =_fddd ;_cfdgg :=_fa .NewPSParser (_fddd );_accga ,_cecbc :=_cfdgg .Parse ();
if _cecbc !=nil {return nil ,_cecbc ;};_afbba .Program =_accga ;return _afbba ,nil ;};var _gfbc =map[string ]string {"\u0053\u0079\u006d\u0062\u006f\u006c":"\u0053\u0079\u006d\u0062\u006f\u006c\u0045\u006e\u0063o\u0064\u0069\u006e\u0067","\u005a\u0061\u0070f\u0044\u0069\u006e\u0067\u0062\u0061\u0074\u0073":"Z\u0061p\u0066\u0044\u0069\u006e\u0067\u0062\u0061\u0074s\u0045\u006e\u0063\u006fdi\u006e\u0067"};
// GetContainingPdfObject implements model.PdfModel interface.
func (_dgffe *PdfOutputIntent )GetContainingPdfObject ()_fd .PdfObject {return _dgffe ._fbbec };func (_ebfc *PdfColorspaceDeviceCMYK )String ()string {return "\u0044\u0065\u0076\u0069\u0063\u0065\u0043\u004d\u0059\u004b";};
// NewPdfColorDeviceRGB returns a new PdfColorDeviceRGB based on the r,g,b component values.
func NewPdfColorDeviceRGB (r ,g ,b float64 )*PdfColorDeviceRGB {_cgca :=PdfColorDeviceRGB {r ,g ,b };return &_cgca ;};
// 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 ;_dcaf *_fd .PdfIndirectObject ;};
// PdfAppender appends new PDF content to an existing PDF document via incremental updates.
type PdfAppender struct{_cgae _bc .ReadSeeker ;_fcec *_fd .PdfParser ;_efec *PdfReader ;Reader *PdfReader ;_gbca []*PdfPage ;_agfb *PdfAcroForm ;_bgge *DSS ;_daea *Permissions ;_ccfe _fd .XrefTable ;_fda int64 ;_bgfg int ;_gagg []_fd .PdfObject ;_dbdc map[_fd .PdfObject ]struct{};
_aceb map[_fd .PdfObject ]int64 ;_cfa map[_fd .PdfObject ]struct{};_bade map[_fd .PdfObject ]struct{};_cdfg int64 ;_fdbd bool ;_gffb string ;_gdef *EncryptOptions ;_edb *PdfInfo ;};
// GetCatalogLanguage gets catalog Language object.
func (_bacgb *PdfReader )GetCatalogLanguage ()(_fd .PdfObject ,bool ){if _bacgb ._gabca ==nil {return nil ,false ;};_adcba :=_bacgb ._gabca .Get ("\u004c\u0061\u006e\u0067");return _adcba ,_adcba !=nil ;};func _geaf (_gabgg _fd .PdfObject )(*PdfColorspaceLab ,error ){_dgba :=NewPdfColorspaceLab ();
if _cgad ,_ggdf :=_gabgg .(*_fd .PdfIndirectObject );_ggdf {_dgba ._ddfd =_cgad ;};_gabgg =_fd .TraceToDirectObject (_gabgg );_gfbf ,_gbgda :=_gabgg .(*_fd .PdfObjectArray );if !_gbgda {return nil ,_dc .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");
};if _gfbf .Len ()!=2{return nil ,_dc .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0043\u0061\u006c\u0052G\u0042 \u0063o\u006c\u006f\u0072\u0073\u0070\u0061\u0063e");};_gabgg =_fd .TraceToDirectObject (_gfbf .Get (0));_dcgd ,_gbgda :=_gabgg .(*_fd .PdfObjectName );
if !_gbgda {return nil ,_dc .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 *_dcgd !="\u004c\u0061\u0062"{return nil ,_dc .Errorf ("n\u006ft\u0020\u0061\u0020\u004c\u0061\u0062\u0020\u0063o\u006c\u006f\u0072\u0073pa\u0063\u0065");
};_gabgg =_fd .TraceToDirectObject (_gfbf .Get (1));_cgee ,_gbgda :=_gabgg .(*_fd .PdfObjectDictionary );if !_gbgda {return nil ,_dc .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");
};_gabgg =_cgee .Get ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074");_gabgg =_fd .TraceToDirectObject (_gabgg );_ebgb ,_gbgda :=_gabgg .(*_fd .PdfObjectArray );if !_gbgda {return nil ,_dc .Errorf ("\u004c\u0061\u0062\u0020In\u0076\u0061\u006c\u0069\u0064\u0020\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069n\u0074");
};if _ebgb .Len ()!=3{return nil ,_dc .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");};_dacb ,_cddc :=_ebgb .GetAsFloat64Slice ();
if _cddc !=nil {return nil ,_cddc ;};_dgba .WhitePoint =_dacb ;_gabgg =_cgee .Get ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074");if _gabgg !=nil {_gabgg =_fd .TraceToDirectObject (_gabgg );_gfedfg ,_gecbb :=_gabgg .(*_fd .PdfObjectArray );
if !_gecbb {return nil ,_dc .Errorf ("\u004c\u0061\u0062: \u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074");};if _gfedfg .Len ()!=3{return nil ,_dc .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");
};_fffc ,_aabb :=_gfedfg .GetAsFloat64Slice ();if _aabb !=nil {return nil ,_aabb ;};_dgba .BlackPoint =_fffc ;};_gabgg =_cgee .Get ("\u0052\u0061\u006eg\u0065");if _gabgg !=nil {_gabgg =_fd .TraceToDirectObject (_gabgg );_cfdg ,_deaa :=_gabgg .(*_fd .PdfObjectArray );
if !_deaa {_ag .Log .Error ("\u0052\u0061n\u0067\u0065\u0020t\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");return nil ,_dc .Errorf ("\u004ca\u0062:\u0020\u0054\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _cfdg .Len ()!=4{_ag .Log .Error ("\u0052\u0061\u006e\u0067\u0065\u0020\u0072\u0061\u006e\u0067\u0065\u0020e\u0072\u0072\u006f\u0072");
return nil ,_dc .Errorf ("\u004c\u0061b\u003a\u0020\u0052a\u006e\u0067\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};_cgfc ,_gcfgf :=_cfdg .GetAsFloat64Slice ();if _gcfgf !=nil {return nil ,_gcfgf ;};_dgba .Range =_cgfc ;};return _dgba ,nil ;};
// SetFontByName sets the font specified by keyName to the given object.
func (_cggfc *PdfPageResources )SetFontByName (keyName _fd .PdfObjectName ,obj _fd .PdfObject )error {if _cggfc .Font ==nil {_cggfc .Font =_fd .MakeDict ();};_eccaf ,_bdceg :=_fd .TraceToDirectObject (_cggfc .Font ).(*_fd .PdfObjectDictionary );if !_bdceg {_ag .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",_fd .TraceToDirectObject (_cggfc .Font ));
return _fd .ErrTypeError ;};_eccaf .Set (keyName ,obj );return nil ;};
// AddImageResource adds an image to the XObject resources.
func (_faad *PdfPage )AddImageResource (name _fd .PdfObjectName ,ximg *XObjectImage )error {var _aabea *_fd .PdfObjectDictionary ;if _faad .Resources .XObject ==nil {_aabea =_fd .MakeDict ();_faad .Resources .XObject =_aabea ;}else {var _edgd bool ;_aabea ,_edgd =(_faad .Resources .XObject ).(*_fd .PdfObjectDictionary );
if !_edgd {return _ad .New ("\u0069\u006e\u0076\u0061li\u0064\u0020\u0078\u0072\u0065\u0073\u0020\u0064\u0069\u0063\u0074\u0020\u0074\u0079p\u0065");};};_aabea .Set (name ,ximg .ToPdfObject ());return nil ;};
// ToImage converts an object to an Image which can be transformed or saved out.
// The image data is decoded and the Image returned.
func (_ecfdag *XObjectImage )ToImage ()(*Image ,error ){_dbde :=&Image {};if _ecfdag .Height ==nil {return nil ,_ad .New ("\u0068e\u0069\u0067\u0068\u0074\u0020\u0061\u0074\u0074\u0072\u0069\u0062u\u0074\u0065\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");
};_dbde .Height =*_ecfdag .Height ;if _ecfdag .Width ==nil {return nil ,_ad .New ("\u0077\u0069\u0064th\u0020\u0061\u0074\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};_dbde .Width =*_ecfdag .Width ;if _ecfdag .BitsPerComponent ==nil {switch _ecfdag .Filter .(type ){case *_fd .CCITTFaxEncoder ,*_fd .JBIG2Encoder :_dbde .BitsPerComponent =1;
case *_fd .LZWEncoder ,*_fd .RunLengthEncoder :_dbde .BitsPerComponent =8;default:return nil ,_ad .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 {_dbde .BitsPerComponent =*_ecfdag .BitsPerComponent ;};_dbde .ColorComponents =_ecfdag .ColorSpace .GetNumComponents ();_ecfdag ._bbcgd .Set ("\u0043o\u006co\u0072\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074\u0073",_fd .MakeInteger (int64 (_dbde .ColorComponents )));
_bdgaf ,_cacb :=_fd .DecodeStream (_ecfdag ._bbcgd );if _cacb !=nil {return nil ,_cacb ;};_dbde .Data =_bdgaf ;if _ecfdag .Decode !=nil {_eaaee ,_gfcfa :=_ecfdag .Decode .(*_fd .PdfObjectArray );if !_gfcfa {_ag .Log .Debug ("I\u006e\u0076\u0061\u006cid\u0020D\u0065\u0063\u006f\u0064\u0065 \u006f\u0062\u006a\u0065\u0063\u0074");
return nil ,_ad .New ("\u0069\u006e\u0076a\u006c\u0069\u0064\u0020\u0074\u0079\u0070\u0065");};_aeddb ,_defdff :=_eaaee .ToFloat64Array ();if _defdff !=nil {return nil ,_defdff ;};switch _ecfdag .ColorSpace .(type ){case *PdfColorspaceDeviceCMYK :_dgcgg :=_ecfdag .ColorSpace .DecodeArray ();
if _dgcgg [0]==_aeddb [0]&&_dgcgg [1]==_aeddb [1]&&_dgcgg [2]==_aeddb [2]&&_dgcgg [3]==_aeddb [3]{_dbde ._cdbdc =_aeddb ;};default:_dbde ._cdbdc =_aeddb ;};};return _dbde ,nil ;};
// Has checks if flag fl is set in flag and returns true if so, false otherwise.
func (_agee FieldFlag )Has (fl FieldFlag )bool {return (_agee .Mask ()&fl .Mask ())> 0};
// PdfShadingType4 is a Free-form Gouraud-shaded triangle mesh.
type PdfShadingType4 struct{*PdfShading ;BitsPerCoordinate *_fd .PdfObjectInteger ;BitsPerComponent *_fd .PdfObjectInteger ;BitsPerFlag *_fd .PdfObjectInteger ;Decode *_fd .PdfObjectArray ;Function []PdfFunction ;};
// NewPdfColorPatternType2 returns an empty color shading pattern type 2 (Axial).
func NewPdfColorPatternType2 ()*PdfColorPatternType2 {_bgdgc :=&PdfColorPatternType2 {};return _bgdgc ;};
// SetVersion sets the PDF version of the output file.
func (_cebb *PdfWriter )SetVersion (majorVersion ,minorVersion int ){_cebb ._ggaddg .Major =majorVersion ;_cebb ._ggaddg .Minor =minorVersion ;};func _dacfd (_dbac *_fd .PdfObjectDictionary )(*PdfShadingType5 ,error ){_fcfcf :=PdfShadingType5 {};_dddbd :=_dbac .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065");
if _dddbd ==nil {_ag .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 ;};_bgdga ,_dbgab :=_dddbd .(*_fd .PdfObjectInteger );if !_dbgab {_ag .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",_dddbd );
return nil ,_fd .ErrTypeError ;};_fcfcf .BitsPerCoordinate =_bgdga ;_dddbd =_dbac .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074");if _dddbd ==nil {_ag .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 ;};_bgdga ,_dbgab =_dddbd .(*_fd .PdfObjectInteger );if !_dbgab {_ag .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",_dddbd );
return nil ,_fd .ErrTypeError ;};_fcfcf .BitsPerComponent =_bgdga ;_dddbd =_dbac .Get ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073\u0050e\u0072\u0052\u006f\u0077");if _dddbd ==nil {_ag .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 ;};_bgdga ,_dbgab =_dddbd .(*_fd .PdfObjectInteger );if !_dbgab {_ag .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",_dddbd );
return nil ,_fd .ErrTypeError ;};_fcfcf .VerticesPerRow =_bgdga ;_dddbd =_dbac .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");if _dddbd ==nil {_ag .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 ;};_fdcfe ,_dbgab :=_dddbd .(*_fd .PdfObjectArray );if !_dbgab {_ag .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",_dddbd );
return nil ,_fd .ErrTypeError ;};_fcfcf .Decode =_fdcfe ;if _fffb :=_dbac .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");_fffb !=nil {_fcfcf .Function =[]PdfFunction {};if _abcgaa ,_cebfbd :=_fffb .(*_fd .PdfObjectArray );_cebfbd {for _ ,_eeadb :=range _abcgaa .Elements (){_fgcd ,_egdcg :=_badad (_eeadb );
if _egdcg !=nil {_ag .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",_egdcg );return nil ,_egdcg ;};_fcfcf .Function =append (_fcfcf .Function ,_fgcd );
};}else {_cfgc ,_fedgf :=_badad (_fffb );if _fedgf !=nil {_ag .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",_fedgf );return nil ,_fedgf ;
};_fcfcf .Function =append (_fcfcf .Function ,_cfgc );};};return &_fcfcf ,nil ;};
// GetContainingPdfObject returns the container of the shading object (indirect object).
func (_dgfcg *PdfShading )GetContainingPdfObject ()_fd .PdfObject {return _dgfcg ._cdgfd };
// GetOutlines returns a high-level Outline object, based on the outline tree
// of the reader.
func (_deaef *PdfReader )GetOutlines ()(*Outline ,error ){if _deaef ==nil {return nil ,_ad .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");
};_gcae :=_deaef .GetOutlineTree ();if _gcae ==nil {return nil ,_ad .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 _efac func (_gaggc *PdfOutlineTreeNode ,_gebgg *[]*OutlineItem );_efac =func (_gegab *PdfOutlineTreeNode ,_dcefb *[]*OutlineItem ){if _gegab ==nil {return ;};if _gegab ._gcgcg ==nil {_ag .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 _gfdbf *OutlineItem ;if _bdfbe ,_daedc :=_gegab ._gcgcg .(*PdfOutlineItem );_daedc {_bfefd :=_bdfbe .Dest ;if (_bfefd ==nil ||_fd .IsNullObject (_bfefd ))&&_bdfbe .A !=nil {if _cccad ,_efdca :=_fd .GetDict (_bdfbe .A );_efdca {if _cfdcd ,_abgf :=_fd .GetArray (_cccad .Get ("\u0044"));
_abgf {_bfefd =_cfdcd ;}else {_dfggb ,_daaeb :=_fd .GetString (_cccad .Get ("\u0044"));if !_daaeb {return ;};_adfcf ,_daaeb :=_deaef ._gabca .Get ("\u004e\u0061\u006de\u0073").(*_fd .PdfObjectReference );if !_daaeb {return ;};_fedcd ,_facec :=_deaef ._faaf .LookupByReference (*_adfcf );
if _facec !=nil {_ag .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",_facec .Error ());
return ;};_gbcdd ,_daaeb :=_fedcd .(*_fd .PdfIndirectObject );if !_daaeb {return ;};_adaa :=map[_fd .PdfObject ]struct{}{};_facec =_deaef .buildNameNodes (_gbcdd ,_adaa );if _facec !=nil {_ag .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",_facec .Error ());
return ;};for _edefb :=range _adaa {_cefac ,_eabcaf :=_fd .GetDict (_edefb );if !_eabcaf {continue ;};_bbbfd ,_eabcaf :=_fd .GetArray (_cefac .Get ("\u004e\u0061\u006de\u0073"));if !_eabcaf {continue ;};for _bbfb ,_gdbfc :=range _bbbfd .Elements (){switch _gdbfc .(type ){case *_fd .PdfObjectString :if _gdbfc .String ()==_dfggb .String (){if _gcccc :=_bbbfd .Get (_bbfb +1);
_gcccc !=nil {if _cedbf ,_accce :=_fd .GetDict (_gcccc );_accce {_bfefd =_cedbf .Get ("\u0044");break ;};};};};};};};};};var _ebaac OutlineDest ;if _bfefd !=nil &&!_fd .IsNullObject (_bfefd ){if _fdce ,_fbcgg :=_adea (_bfefd ,_deaef );_fbcgg ==nil {_ebaac =*_fdce ;
}else {_ag .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",_bfefd ,_fbcgg );
};};_gfdbf =NewOutlineItem (_bdfbe .Title .Decoded (),_ebaac );*_dcefb =append (*_dcefb ,_gfdbf );if _bdfbe .Next !=nil {_efac (_bdfbe .Next ,_dcefb );};};if _gegab .First !=nil {if _gfdbf !=nil {_dcefb =&_gfdbf .Entries ;};_efac (_gegab .First ,_dcefb );
};};_abgaa :=NewOutline ();_efac (_gcae ,&_abgaa .Entries );return _abgaa ,nil ;};
// GetAlphabet returns a map of the runes in `text` and their frequencies.
func GetAlphabet (text string )map[rune ]int {_gcdg :=map[rune ]int {};for _ ,_fggf :=range text {_gcdg [_fggf ]++;};return _gcdg ;};
// 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 *_fd .PdfIndirectObject ;SV *_fd .PdfIndirectObject ;};
// SetContext sets the sub annotation (context).
func (_caeg *PdfAnnotation )SetContext (ctx PdfModel ){_caeg ._cfda =ctx };func (_dacd *PdfWriter )writeNamesDictionary ()error {if _dacd ._gdabc ==nil {return nil ;};_gacga :=_dacd ._gdabc .ToPdfObject ();_dacd ._fdaca .Set ("\u004e\u0061\u006de\u0073",_gacga );
_bagdd :=_dacd .addObjects (_gacga );if _bagdd !=nil {return _bagdd ;};return nil ;};
// NewPdfAnnotation3D returns a new 3d annotation.
func NewPdfAnnotation3D ()*PdfAnnotation3D {_eddfg :=NewPdfAnnotation ();_faea :=&PdfAnnotation3D {};_faea .PdfAnnotation =_eddfg ;_eddfg .SetContext (_faea );return _faea ;};func _bdca (_gdgd _fd .PdfObject )(string ,error ){_gdgd =_fd .TraceToDirectObject (_gdgd );
switch _dfdbg :=_gdgd .(type ){case *_fd .PdfObjectString :return _dfdbg .Str (),nil ;case *_fd .PdfObjectStream :_gcec ,_acfef :=_fd .DecodeStream (_dfdbg );if _acfef !=nil {return "",_acfef ;};return string (_gcec ),nil ;};return "",_dc .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",_gdgd );
};
// SetPdfSubject sets the Subject attribute of the output PDF.
func SetPdfSubject (subject string ){_feadd .Lock ();defer _feadd .Unlock ();_gcba =subject };
// AddAnnotation appends `annot` to the list of page annotations.
func (_efegf *PdfPage )AddAnnotation (annot *PdfAnnotation ){if _efegf ._gbaf ==nil {_efegf .GetAnnotations ();};_efegf ._gbaf =append (_efegf ._gbaf ,annot );};
// SetFilter sets compression filter. Decodes with current filter sets and
// encodes the data with the new filter.
func (_dgbgdg *XObjectImage )SetFilter (encoder _fd .StreamEncoder )error {_ccegcf :=_dgbgdg .Stream ;_edefa ,_ebeefd :=_dgbgdg .Filter .DecodeBytes (_ccegcf );if _ebeefd !=nil {return _ebeefd ;};_dgbgdg .Filter =encoder ;encoder .UpdateParams (_dgbgdg .getParamsDict ());
_ccegcf ,_ebeefd =encoder .EncodeBytes (_edefa );if _ebeefd !=nil {return _ebeefd ;};_dgbgdg .Stream =_ccegcf ;return nil ;};func _ece (_gdb _fd .PdfObject )(*PdfFilespec ,error ){if _gdb ==nil {return nil ,nil ;};return NewPdfFilespecFromObj (_gdb );};
// 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 ;_cbaga *_fd .PdfIndirectObject ;
// Type: Sig/DocTimeStamp
Type *_fd .PdfObjectName ;Filter *_fd .PdfObjectName ;SubFilter *_fd .PdfObjectName ;Contents *_fd .PdfObjectString ;Cert _fd .PdfObject ;ByteRange *_fd .PdfObjectArray ;Reference *_fd .PdfObjectArray ;Changes *_fd .PdfObjectArray ;Name *_fd .PdfObjectString ;
M *_fd .PdfObjectString ;Location *_fd .PdfObjectString ;Reason *_fd .PdfObjectString ;ContactInfo *_fd .PdfObjectString ;R *_fd .PdfObjectInteger ;V *_fd .PdfObjectInteger ;PropBuild *_fd .PdfObjectDictionary ;PropAuthTime *_fd .PdfObjectInteger ;PropAuthType *_fd .PdfObjectName ;
};func (_ebad *pdfCIDFontType2 )baseFields ()*fontCommon {return &_ebad .fontCommon };
// ToPdfObject returns a PdfObject representation of PdfColorspaceDeviceNAttributes as a PdfObjectDictionary directly
// or indirectly within an indirect object container.
func (_adgff *PdfColorspaceDeviceNAttributes )ToPdfObject ()_fd .PdfObject {_eead :=_fd .MakeDict ();if _adgff .Subtype !=nil {_eead .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_adgff .Subtype );};_eead .SetIfNotNil ("\u0043o\u006c\u006f\u0072\u0061\u006e\u0074s",_adgff .Colorants );
_eead .SetIfNotNil ("\u0050r\u006f\u0063\u0065\u0073\u0073",_adgff .Process );_eead .SetIfNotNil ("M\u0069\u0078\u0069\u006e\u0067\u0048\u0069\u006e\u0074\u0073",_adgff .MixingHints );if _adgff ._cbd !=nil {_adgff ._cbd .PdfObject =_eead ;return _adgff ._cbd ;
};return _eead ;};
// WriteToFile writes the output PDF to file.
func (_eafdfd *PdfWriter )WriteToFile (outputFilePath string )error {_dccfe ,_cadfc :=_gbe .Create (outputFilePath );if _cadfc !=nil {return _cadfc ;};defer _dccfe .Close ();return _eafdfd .Write (_dccfe );};
// PdfColorspaceCalGray represents CalGray color space.
type PdfColorspaceCalGray struct{WhitePoint []float64 ;BlackPoint []float64 ;Gamma float64 ;_gbaaf *_fd .PdfIndirectObject ;};
// ToPdfObject implements interface PdfModel.
func (_fgded *PdfFilespec )ToPdfObject ()_fd .PdfObject {_agdad :=_fgded .getDict ();_agdad .Clear ();_agdad .Set ("\u0054\u0079\u0070\u0065",_fd .MakeName ("\u0046\u0069\u006c\u0065\u0073\u0070\u0065\u0063"));_agdad .SetIfNotNil ("\u0046\u0053",_fgded .FS );
_agdad .SetIfNotNil ("\u0046",_fgded .F );_agdad .SetIfNotNil ("\u0055\u0046",_fgded .UF );_agdad .SetIfNotNil ("\u0044\u004f\u0053",_fgded .DOS );_agdad .SetIfNotNil ("\u004d\u0061\u0063",_fgded .Mac );_agdad .SetIfNotNil ("\u0055\u006e\u0069\u0078",_fgded .Unix );
_agdad .SetIfNotNil ("\u0049\u0044",_fgded .ID );_agdad .SetIfNotNil ("\u0056",_fgded .V );_agdad .SetIfNotNil ("\u0045\u0046",_fgded .EF );_agdad .SetIfNotNil ("\u0052\u0046",_fgded .RF );_agdad .SetIfNotNil ("\u0044\u0065\u0073\u0063",_fgded .Desc );
_agdad .SetIfNotNil ("\u0043\u0049",_fgded .CI );_agdad .SetIfNotNil ("\u0041\u0046\u0052\u0065\u006c\u0061\u0074\u0069\u006fn\u0073\u0068\u0069\u0070",_fgded .AFRelationship );return _fgded ._cbfc ;};var _ pdfFont =(*pdfFontType3 )(nil );
// NewPdfAnnotationSquiggly returns a new text squiggly annotation.
func NewPdfAnnotationSquiggly ()*PdfAnnotationSquiggly {_cgb :=NewPdfAnnotation ();_afd :=&PdfAnnotationSquiggly {};_afd .PdfAnnotation =_cgb ;_afd .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_cgb .SetContext (_afd );return _afd ;};
// NewPdfActionMovie returns a new "movie" action.
func NewPdfActionMovie ()*PdfActionMovie {_db :=NewPdfAction ();_ged :=&PdfActionMovie {};_ged .PdfAction =_db ;_db .SetContext (_ged );return _ged ;};
// PdfShadingType3 is a Radial shading.
type PdfShadingType3 struct{*PdfShading ;Coords *_fd .PdfObjectArray ;Domain *_fd .PdfObjectArray ;Function []PdfFunction ;Extend *_fd .PdfObjectArray ;};
// 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 *_fd .PdfParser ;DiffPolicy _gfg .DiffPolicy ;};func (_ecdd *PdfField )inherit (_fgcb func (*PdfField )bool )(bool ,error ){_ffeg :=map[*PdfField ]bool {};_gcdad :=false ;_cebf :=_ecdd ;for _cebf !=nil {if _ ,_agddf :=_ffeg [_cebf ];
_agddf {return false ,_ad .New ("\u0072\u0065\u0063\u0075rs\u0069\u0076\u0065\u0020\u0074\u0072\u0061\u0076\u0065\u0072\u0073\u0061\u006c");};_ddga :=_fgcb (_cebf );if _ddga {_gcdad =true ;break ;};_ffeg [_cebf ]=true ;_cebf =_cebf .Parent ;};return _gcdad ,nil ;
};func (_eca *PdfReader )newPdfAnnotationFileAttachmentFromDict (_gagf *_fd .PdfObjectDictionary )(*PdfAnnotationFileAttachment ,error ){_cbee :=PdfAnnotationFileAttachment {};_cag ,_fcfg :=_eca .newPdfAnnotationMarkupFromDict (_gagf );if _fcfg !=nil {return nil ,_fcfg ;
};_cbee .PdfAnnotationMarkup =_cag ;_cbee .FS =_gagf .Get ("\u0046\u0053");_cbee .Name =_gagf .Get ("\u004e\u0061\u006d\u0065");return &_cbee ,nil ;};
// NewGrayImageFromGoImage creates a new grayscale unidoc Image from a golang Image.
func (_egedd DefaultImageHandler )NewGrayImageFromGoImage (goimg _gb .Image )(*Image ,error ){_cbafa :=goimg .Bounds ();_gfea :=&Image {Width :int64 (_cbafa .Dx ()),Height :int64 (_cbafa .Dy ()),ColorComponents :1,BitsPerComponent :8};switch _dfee :=goimg .(type ){case *_gb .Gray :if len (_dfee .Pix )!=_cbafa .Dx ()*_cbafa .Dy (){_ebbcg ,_beggf :=_gbed .GrayConverter .Convert (goimg );
if _beggf !=nil {return nil ,_beggf ;};_gfea .Data =_ebbcg .Pix ();}else {_gfea .Data =_dfee .Pix ;};case *_gb .Gray16 :_gfea .BitsPerComponent =16;if len (_dfee .Pix )!=_cbafa .Dx ()*_cbafa .Dy ()*2{_ffde ,_bfdd :=_gbed .Gray16Converter .Convert (goimg );
if _bfdd !=nil {return nil ,_bfdd ;};_gfea .Data =_ffde .Pix ();}else {_gfea .Data =_dfee .Pix ;};case _gbed .Image :_gbffb :=_dfee .Base ();if _gbffb .ColorComponents ==1{_gfea .BitsPerComponent =int64 (_gbffb .BitsPerComponent );_gfea .Data =_gbffb .Data ;
return _gfea ,nil ;};_acec ,_bgbdg :=_gbed .GrayConverter .Convert (goimg );if _bgbdg !=nil {return nil ,_bgbdg ;};_gfea .Data =_acec .Pix ();default:_cadbg ,_bdgg :=_gbed .GrayConverter .Convert (goimg );if _bdgg !=nil {return nil ,_bdgg ;};_gfea .Data =_cadbg .Pix ();
};return _gfea ,nil ;};
// PdfShadingPatternType3 is shading patterns that will use a Type 3 shading pattern (Radial).
type PdfShadingPatternType3 struct{*PdfPattern ;Shading *PdfShadingType3 ;Matrix *_fd .PdfObjectArray ;ExtGState _fd .PdfObject ;};
// GetParamsDict returns *core.PdfObjectDictionary with a set of basic image parameters.
func (_bfbdd *Image )GetParamsDict ()*_fd .PdfObjectDictionary {_fbefa :=_fd .MakeDict ();_fbefa .Set ("\u0057\u0069\u0064t\u0068",_fd .MakeInteger (_bfbdd .Width ));_fbefa .Set ("\u0048\u0065\u0069\u0067\u0068\u0074",_fd .MakeInteger (_bfbdd .Height ));
_fbefa .Set ("\u0043o\u006co\u0072\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074\u0073",_fd .MakeInteger (int64 (_bfbdd .ColorComponents )));_fbefa .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_fd .MakeInteger (_bfbdd .BitsPerComponent ));
return _fbefa ;};
// GetContext returns a reference to the subpattern entry: either PdfTilingPattern or PdfShadingPattern.
func (_adbg *PdfPattern )GetContext ()PdfModel {return _adbg ._dccfd };func _adedc ()*modelManager {_fgaa :=modelManager {};_fgaa ._eeead =map[PdfModel ]_fd .PdfObject {};_fgaa ._aabd =map[_fd .PdfObject ]PdfModel {};return &_fgaa ;};
// 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{_bdcdg *_fd .PdfIndirectObject ;Certs []*_fd .PdfObjectStream ;OCSPs []*_fd .PdfObjectStream ;CRLs []*_fd .PdfObjectStream ;VRI map[string ]*VRI ;_ffbg map[string ]*_fd .PdfObjectStream ;_baceg map[string ]*_fd .PdfObjectStream ;_bgacf map[string ]*_fd .PdfObjectStream ;
};
// PdfShadingType6 is a Coons patch mesh.
type PdfShadingType6 struct{*PdfShading ;BitsPerCoordinate *_fd .PdfObjectInteger ;BitsPerComponent *_fd .PdfObjectInteger ;BitsPerFlag *_fd .PdfObjectInteger ;Decode *_fd .PdfObjectArray ;Function []PdfFunction ;};
// SetContext set the sub annotation (context).
func (_fggbe *PdfShading )SetContext (ctx PdfModel ){_fggbe ._cgfce =ctx };
// 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 _fd .PdfObjectArray )(*PdfRectangle ,error ){_facba :=PdfRectangle {};if arr .Len ()!=4{return nil ,_ad .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 _aegeg error ;_facba .Llx ,_aegeg =_fd .GetNumberAsFloat (arr .Get (0));if _aegeg !=nil {return nil ,_aegeg ;};_facba .Lly ,_aegeg =_fd .GetNumberAsFloat (arr .Get (1));if _aegeg !=nil {return nil ,_aegeg ;};_facba .Urx ,_aegeg =_fd .GetNumberAsFloat (arr .Get (2));
if _aegeg !=nil {return nil ,_aegeg ;};_facba .Ury ,_aegeg =_fd .GetNumberAsFloat (arr .Get (3));if _aegeg !=nil {return nil ,_aegeg ;};return &_facba ,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{_faaf *_fd .PdfParser ;_cbfcd _fd .PdfObject ;_gaag *_fd .PdfIndirectObject ;_dddeg *_fd .PdfObjectDictionary ;_bbfca []*_fd .PdfIndirectObject ;PageList []*PdfPage ;_fdeae int ;_gabca *_fd .PdfObjectDictionary ;_aceac *PdfOutlineTreeNode ;
AcroForm *PdfAcroForm ;DSS *DSS ;Rotate *int64 ;_cggae *Permissions ;_dbggb map[*PdfReader ]*PdfReader ;_afcee []*PdfReader ;_fbabb *modelManager ;_gfdda bool ;_cedebc map[_fd .PdfObject ]struct{};_gcafg _bc .ReadSeeker ;_ecbab string ;_agdae bool ;_badf *ReaderOpts ;
_gaggbb bool ;};
// GetPerms returns the Permissions dictionary
func (_cefd *PdfReader )GetPerms ()*Permissions {return _cefd ._cggae };func _dcafe ()string {return _ag .Version };
// ColorToRGB converts an Indexed color to an RGB color.
func (_dbbe *PdfColorspaceSpecialIndexed )ColorToRGB (color PdfColor )(PdfColor ,error ){if _dbbe .Base ==nil {return nil ,_ad .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 _dbbe .Base .ColorToRGB (color );};
// Val returns the value of the color.
func (_fgga *PdfColorCalGray )Val ()float64 {return float64 (*_fgga )};
// NewPdfAnnotationCaret returns a new caret annotation.
func NewPdfAnnotationCaret ()*PdfAnnotationCaret {_fgdc :=NewPdfAnnotation ();_fdcc :=&PdfAnnotationCaret {};_fdcc .PdfAnnotation =_fgdc ;_fdcc .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_fgdc .SetContext (_fdcc );return _fdcc ;};
// ToPdfObject converts the font to a PDF representation.
func (_ddege *pdfFontType3 )ToPdfObject ()_fd .PdfObject {if _ddege ._fcac ==nil {_ddege ._fcac =&_fd .PdfIndirectObject {};};_agfga :=_ddege .baseFields ().asPdfObjectDictionary ("\u0054\u0079\u0070e\u0033");_ddege ._fcac .PdfObject =_agfga ;if _ddege .FirstChar !=nil {_agfga .Set ("\u0046i\u0072\u0073\u0074\u0043\u0068\u0061r",_ddege .FirstChar );
};if _ddege .LastChar !=nil {_agfga .Set ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072",_ddege .LastChar );};if _ddege .Widths !=nil {_agfga .Set ("\u0057\u0069\u0064\u0074\u0068\u0073",_ddege .Widths );};if _ddege .Encoding !=nil {_agfga .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_ddege .Encoding );
}else if _ddege ._eceb !=nil {_ggeb :=_ddege ._eceb .ToPdfObject ();if _ggeb !=nil {_agfga .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_ggeb );};};if _ddege .FontBBox !=nil {_agfga .Set ("\u0046\u006f\u006e\u0074\u0042\u0042\u006f\u0078",_ddege .FontBBox );
};if _ddege .FontMatrix !=nil {_agfga .Set ("\u0046\u006f\u006e\u0074\u004d\u0061\u0074\u0069\u0072\u0078",_ddege .FontMatrix );};if _ddege .CharProcs !=nil {_agfga .Set ("\u0043h\u0061\u0072\u0050\u0072\u006f\u0063s",_ddege .CharProcs );};if _ddege .Resources !=nil {_agfga .Set ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s",_ddege .Resources );
};return _ddege ._fcac ;};
// 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 (_ebfcd *PdfSignature )bool ;
// Validate validates a PDF signature against a given digest (hash) such as that determined
// for an input file. Returns validation results.
Validate (_efged *PdfSignature ,_cgfg 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 (_gdga *PdfSignature )error ;
// NewDigest creates a new digest/hasher based on the signature dictionary and handler.
NewDigest (_bbbbd *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 (_abgcg *PdfSignature ,_cccc Hasher )error ;};
// Items returns all children outline items.
func (_gecf *Outline )Items ()[]*OutlineItem {return _gecf .Entries };func _cbea ()string {_feadd .Lock ();defer _feadd .Unlock ();return _gcba };
// 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 (_bdfb PdfColor )(PdfColor ,error );
// GetNumComponents returns the number of components in the PdfColorspace.
GetNumComponents ()int ;
// ToPdfObject returns a PdfObject representation of the PdfColorspace.
ToPdfObject ()_fd .PdfObject ;
// ColorFromPdfObjects returns a PdfColor in the given PdfColorspace from an array of PdfObject where each
// PdfObject represents a numeric value.
ColorFromPdfObjects (_gfff []_fd .PdfObject )(PdfColor ,error );
// ColorFromFloats returns a new PdfColor based on input color components for a given PdfColorspace.
ColorFromFloats (_beda []float64 )(PdfColor ,error );
// DecodeArray returns the Decode array for the PdfColorSpace, i.e. the range of each component.
DecodeArray ()[]float64 ;};
// NewEmbeddedFile constructs a new EmbeddedFile object from supplied file.
// The file type of the file would be detected automatically.
func NewEmbeddedFile (path string )(*EmbeddedFile ,error ){_cfccd ,_caee :=_gbe .ReadFile (path );if _caee !=nil {return nil ,_caee ;};_dfce :=_dff .Detect (_cfccd );_ddeg :=_dad .Sum (_cfccd );_ceef :=&EmbeddedFile {Name :_gf .Base (path ),Content :_cfccd ,FileType :_dfce .String (),Hash :_f .EncodeToString (_ddeg [:])};
return _ceef ,nil ;};func (_dbcge *PdfReader )newPdfFieldSignatureFromDict (_bbca *_fd .PdfObjectDictionary )(*PdfFieldSignature ,error ){_dgfbb :=&PdfFieldSignature {};_eegc ,_dgcc :=_fd .GetIndirect (_bbca .Get ("\u0056"));if _dgcc {var _adcc error ;
_dgfbb .V ,_adcc =_dbcge .newPdfSignatureFromIndirect (_eegc );if _adcc !=nil {return nil ,_adcc ;};};_dgfbb .Lock ,_ =_fd .GetIndirect (_bbca .Get ("\u004c\u006f\u0063\u006b"));_dgfbb .SV ,_ =_fd .GetIndirect (_bbca .Get ("\u0053\u0056"));return _dgfbb ,nil ;
};
// String returns a string that describes `base`.
func (_cdece fontCommon )String ()string {return _dc .Sprintf ("\u0046\u004f\u004e\u0054\u007b\u0025\u0073\u007d",_cdece .coreString ());};func (_bbcd *PdfReader )newPdfAnnotationFreeTextFromDict (_gddd *_fd .PdfObjectDictionary )(*PdfAnnotationFreeText ,error ){_cbcc :=PdfAnnotationFreeText {};
_gcdf ,_ffce :=_bbcd .newPdfAnnotationMarkupFromDict (_gddd );if _ffce !=nil {return nil ,_ffce ;};_cbcc .PdfAnnotationMarkup =_gcdf ;_cbcc .DA =_gddd .Get ("\u0044\u0041");_cbcc .Q =_gddd .Get ("\u0051");_cbcc .RC =_gddd .Get ("\u0052\u0043");_cbcc .DS =_gddd .Get ("\u0044\u0053");
_cbcc .CL =_gddd .Get ("\u0043\u004c");_cbcc .IT =_gddd .Get ("\u0049\u0054");_cbcc .BE =_gddd .Get ("\u0042\u0045");_cbcc .RD =_gddd .Get ("\u0052\u0044");_cbcc .BS =_gddd .Get ("\u0042\u0053");_cbcc .LE =_gddd .Get ("\u004c\u0045");return &_cbcc ,nil ;
};
// EncryptOptions represents encryption options for an output PDF.
type EncryptOptions struct{Permissions _dfg .Permissions ;Algorithm EncryptionAlgorithm ;};
// PdfShadingType7 is a Tensor-product patch mesh.
type PdfShadingType7 struct{*PdfShading ;BitsPerCoordinate *_fd .PdfObjectInteger ;BitsPerComponent *_fd .PdfObjectInteger ;BitsPerFlag *_fd .PdfObjectInteger ;Decode *_fd .PdfObjectArray ;Function []PdfFunction ;};func (_eageab *pdfFontSimple )updateStandard14Font (){_geaab ,_ebgbb :=_eageab .Encoder ().(_ee .SimpleEncoder );
if !_ebgbb {_ag .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",_eageab .Encoder (),_eageab );return ;
};_fecff :=_geaab .Charcodes ();_eageab ._bafeg =make (map[_ee .CharCode ]float64 ,len (_fecff ));for _ ,_fbcg :=range _fecff {_acbg ,_ :=_geaab .CharcodeToRune (_fbcg );_adca ,_ :=_eageab ._dcgdd .Read (_acbg );_eageab ._bafeg [_fbcg ]=_adca .Wx ;};};
// ColorFromPdfObjects returns a new PdfColor based on the input slice of color
// component PDF objects.
func (_dbcbg *PdfColorspaceICCBased )ColorFromPdfObjects (objects []_fd .PdfObject )(PdfColor ,error ){if _dbcbg .Alternate ==nil {if _dbcbg .N ==1{_cddee :=NewPdfColorspaceDeviceGray ();return _cddee .ColorFromPdfObjects (objects );}else if _dbcbg .N ==3{_egfd :=NewPdfColorspaceDeviceRGB ();
return _egfd .ColorFromPdfObjects (objects );}else if _dbcbg .N ==4{_agag :=NewPdfColorspaceDeviceCMYK ();return _agag .ColorFromPdfObjects (objects );}else {return nil ,_ad .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 _dbcbg .Alternate .ColorFromPdfObjects (objects );};
// B returns the value of the B component of the color.
func (_ecbeb *PdfColorLab )B ()float64 {return _ecbeb [2]};
// PdfFieldText represents a text field where user can enter text.
type PdfFieldText struct{*PdfField ;DA *_fd .PdfObjectString ;Q *_fd .PdfObjectInteger ;DS *_fd .PdfObjectString ;RV _fd .PdfObject ;MaxLen *_fd .PdfObjectInteger ;};
// StdFontName represents name of a standard font.
type StdFontName =_cf .StdFontName ;
// ToPdfObject returns the PDF representation of the shading pattern.
func (_dggbd *PdfShadingPatternType2 )ToPdfObject ()_fd .PdfObject {_dggbd .PdfPattern .ToPdfObject ();_gdgga :=_dggbd .getDict ();if _dggbd .Shading !=nil {_gdgga .Set ("\u0053h\u0061\u0064\u0069\u006e\u0067",_dggbd .Shading .ToPdfObject ());};if _dggbd .Matrix !=nil {_gdgga .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_dggbd .Matrix );
};if _dggbd .ExtGState !=nil {_gdgga .Set ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e",_dggbd .ExtGState );};return _dggbd ._gcgba ;};func (_cgcfc *PdfWriter )optimize ()error {if _cgcfc ._cffdf ==nil {return nil ;};var _gfaga error ;_cgcfc ._agfbf ,_gfaga =_cgcfc ._cffdf .Optimize (_cgcfc ._agfbf );
if _gfaga !=nil {return _gfaga ;};_fegcc :=make (map[_fd .PdfObject ]struct{},len (_cgcfc ._agfbf ));for _ ,_ffeaf :=range _cgcfc ._agfbf {_fegcc [_ffeaf ]=struct{}{};};_cgcfc ._agfaff =_fegcc ;return nil ;};
// PdfAnnotation represents an annotation in PDF (section 12.5 p. 389).
type PdfAnnotation struct{_cfda PdfModel ;Rect _fd .PdfObject ;Contents _fd .PdfObject ;P _fd .PdfObject ;NM _fd .PdfObject ;M _fd .PdfObject ;F _fd .PdfObject ;AP _fd .PdfObject ;AS _fd .PdfObject ;Border _fd .PdfObject ;C _fd .PdfObject ;StructParent _fd .PdfObject ;
OC _fd .PdfObject ;_aeb *_fd .PdfIndirectObject ;};
// ToPdfObject implements model.PdfModel interface.
func (_cbfd *PdfOutputIntent )ToPdfObject ()_fd .PdfObject {if _cbfd ._fbbec ==nil {_cbfd ._fbbec =_fd .MakeDict ();};_bgfd :=_cbfd ._fbbec ;if _cbfd .Type !=""{_bgfd .Set ("\u0054\u0079\u0070\u0065",_fd .MakeName (_cbfd .Type ));};_bgfd .Set ("\u0053",_fd .MakeName (_cbfd .S .String ()));
if _cbfd .OutputCondition !=""{_bgfd .Set ("\u004fu\u0074p\u0075\u0074\u0043\u006f\u006e\u0064\u0069\u0074\u0069\u006f\u006e",_fd .MakeString (_cbfd .OutputCondition ));};_bgfd .Set ("\u004fu\u0074\u0070\u0075\u0074C\u006f\u006e\u0064\u0069\u0074i\u006fn\u0049d\u0065\u006e\u0074\u0069\u0066\u0069\u0065r",_fd .MakeString (_cbfd .OutputConditionIdentifier ));
_bgfd .Set ("\u0052\u0065\u0067i\u0073\u0074\u0072\u0079\u004e\u0061\u006d\u0065",_fd .MakeString (_cbfd .RegistryName ));if _cbfd .Info !=""{_bgfd .Set ("\u0049\u006e\u0066\u006f",_fd .MakeString (_cbfd .Info ));};if len (_cbfd .DestOutputProfile )!=0{_fedge ,_egag :=_fd .MakeStream (_cbfd .DestOutputProfile ,_fd .NewFlateEncoder ());
if _egag !=nil {_ag .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",_egag );
};_fedge .PdfObjectDictionary .Set ("\u004e",_fd .MakeInteger (int64 (_cbfd .ColorComponents )));_aacae :=make ([]float64 ,_cbfd .ColorComponents *2);for _edgcb :=0;_edgcb < _cbfd .ColorComponents *2;_edgcb ++{_agadg :=0.0;if _edgcb %2!=0{_agadg =1.0;};
_aacae [_edgcb ]=_agadg ;};_fedge .PdfObjectDictionary .Set ("\u0052\u0061\u006eg\u0065",_fd .MakeArrayFromFloats (_aacae ));_bgfd .Set ("\u0044\u0065\u0073\u0074\u004f\u0075\u0074\u0070\u0075\u0074\u0050\u0072o\u0066\u0069\u006c\u0065",_fedge );};return _bgfd ;
};func (_gggeb *LTV )getOCSPs (_baegf []*_gff .Certificate ,_egcc map[string ]*_gff .Certificate )([][]byte ,error ){_gbga :=make ([][]byte ,0,len (_baegf ));for _ ,_fegee :=range _baegf {for _ ,_daedf :=range _fegee .OCSPServer {if _gggeb .CertClient .IsCA (_fegee ){continue ;
};_ggabd ,_cdgfa :=_egcc [_fegee .Issuer .CommonName ];if !_cdgfa {_ag .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 ;};_ ,_geefe ,_eabbf :=_gggeb .OCSPClient .MakeRequest (_daedf ,_fegee ,_ggabd );if _eabbf !=nil {_ag .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",_eabbf );
continue ;};_gbga =append (_gbga ,_geefe );};};return _gbga ,nil ;};
// RemovePage removes a page by number.
func (_faaa *PdfAppender )RemovePage (pageNum int ){_ceb :=pageNum -1;_faaa ._gbca =append (_faaa ._gbca [0:_ceb ],_faaa ._gbca [pageNum :]...);};func (_ffefg *PdfWriter )setDocumentIDs (_ecfdd ,_agcbb string ){_ffefg ._bgdef =_fd .MakeArray (_fd .MakeHexString (_ecfdd ),_fd .MakeHexString (_agcbb ));
};
// ToPdfObject returns the PDF representation of the VRI dictionary.
func (_cfdc *VRI )ToPdfObject ()*_fd .PdfObjectDictionary {_fbebb :=_fd .MakeDict ();_fbebb .SetIfNotNil (_fd .PdfObjectName ("\u0043\u0065\u0072\u0074"),_gfafb (_cfdc .Cert ));_fbebb .SetIfNotNil (_fd .PdfObjectName ("\u004f\u0043\u0053\u0050"),_gfafb (_cfdc .OCSP ));
_fbebb .SetIfNotNil (_fd .PdfObjectName ("\u0043\u0052\u004c"),_gfafb (_cfdc .CRL ));_fbebb .SetIfNotNil ("\u0054\u0055",_cfdc .TU );_fbebb .SetIfNotNil ("\u0054\u0053",_cfdc .TS );return _fbebb ;};
// GetNumComponents returns the number of color components (1 for Indexed).
func (_cafc *PdfColorspaceSpecialIndexed )GetNumComponents ()int {return 1};
// PdfDate represents a date, which is a PDF string of the form:
// (D:YYYYMMDDHHmmSSOHH'mm)
type PdfDate struct{_bdaae int64 ;_gbdf int64 ;_afcde int64 ;_bgagg int64 ;_gbgef int64 ;_cfdgb int64 ;_fcdea byte ;_bbea int64 ;_gdeac int64 ;};
// GetRotate gets the inheritable rotate value, either from the page
// or a higher up page/pages struct.
func (_eaged *PdfPage )GetRotate ()(int64 ,error ){if _eaged .Rotate !=nil {return *_eaged .Rotate ,nil ;};_eebbc :=_eaged .Parent ;for _eebbc !=nil {_gaacb ,_fggga :=_fd .GetDict (_eebbc );if !_fggga {return 0,_ad .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 _gcbedb :=_gaacb .Get ("\u0052\u006f\u0074\u0061\u0074\u0065");_gcbedb !=nil {_dfgda ,_fadeb :=_fd .GetInt (_gcbedb );if !_fadeb {return 0,_ad .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0072\u006f\u0074a\u0074\u0065\u0020\u0076al\u0075\u0065");
};if _dfgda !=nil {return int64 (*_dfgda ),nil ;};return 0,_ad .New ("\u0072\u006f\u0074\u0061te\u0020\u0076\u0061\u006c\u0075\u0065\u0020\u0069\u0073\u0020\u006e\u0069\u006c");};_eebbc =_gaacb .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");};return 0,_ad .New ("\u0072o\u0074a\u0074\u0065\u0020\u006e\u006ft\u0020\u0064e\u0066\u0069\u006e\u0065\u0064");
};
// ToPdfObject returns the PDF representation of the colorspace.
func (_cfcb *PdfColorspaceDeviceCMYK )ToPdfObject ()_fd .PdfObject {return _fd .MakeName ("\u0044\u0065\u0076\u0069\u0063\u0065\u0043\u004d\u0059\u004b");};
// ColorToRGB converts a CalRGB color to an RGB color.
func (_cefad *PdfColorspaceCalRGB )ColorToRGB (color PdfColor )(PdfColor ,error ){_dcce ,_cegb :=color .(*PdfColorCalRGB );if !_cegb {_ag .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 ,_ad .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_gecd :=_dcce .A ();_feea :=_dcce .B ();_fafd :=_dcce .C ();X :=_cefad .Matrix [0]*_af .Pow (_gecd ,_cefad .Gamma [0])+_cefad .Matrix [3]*_af .Pow (_feea ,_cefad .Gamma [1])+_cefad .Matrix [6]*_af .Pow (_fafd ,_cefad .Gamma [2]);
Y :=_cefad .Matrix [1]*_af .Pow (_gecd ,_cefad .Gamma [0])+_cefad .Matrix [4]*_af .Pow (_feea ,_cefad .Gamma [1])+_cefad .Matrix [7]*_af .Pow (_fafd ,_cefad .Gamma [2]);Z :=_cefad .Matrix [2]*_af .Pow (_gecd ,_cefad .Gamma [0])+_cefad .Matrix [5]*_af .Pow (_feea ,_cefad .Gamma [1])+_cefad .Matrix [8]*_af .Pow (_fafd ,_cefad .Gamma [2]);
_aaab :=3.240479*X +-1.537150*Y +-0.498535*Z ;_ecgf :=-0.969256*X +1.875992*Y +0.041556*Z ;_dbae :=0.055648*X +-0.204043*Y +1.057311*Z ;_aaab =_af .Min (_af .Max (_aaab ,0),1.0);_ecgf =_af .Min (_af .Max (_ecgf ,0),1.0);_dbae =_af .Min (_af .Max (_dbae ,0),1.0);
return NewPdfColorDeviceRGB (_aaab ,_ecgf ,_dbae ),nil ;};
// GetContentStream returns the XObject Form's content stream.
func (_cagda *XObjectForm )GetContentStream ()([]byte ,error ){_ebdbb ,_fbfef :=_fd .DecodeStream (_cagda ._cebfa );if _fbfef !=nil {return nil ,_fbfef ;};return _ebdbb ,nil ;};
// PdfAnnotationCircle represents Circle annotations.
// (Section 12.5.6.8).
type PdfAnnotationCircle struct{*PdfAnnotation ;*PdfAnnotationMarkup ;BS _fd .PdfObject ;IC _fd .PdfObject ;BE _fd .PdfObject ;RD _fd .PdfObject ;};
// ToPdfObject returns the PDF representation of the shading dictionary.
func (_dgcbe *PdfShadingType4 )ToPdfObject ()_fd .PdfObject {_dgcbe .PdfShading .ToPdfObject ();_bcaaa ,_bgfce :=_dgcbe .getShadingDict ();if _bgfce !=nil {_ag .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 _dgcbe .BitsPerCoordinate !=nil {_bcaaa .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065",_dgcbe .BitsPerCoordinate );};if _dgcbe .BitsPerComponent !=nil {_bcaaa .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_dgcbe .BitsPerComponent );
};if _dgcbe .BitsPerFlag !=nil {_bcaaa .Set ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067",_dgcbe .BitsPerFlag );};if _dgcbe .Decode !=nil {_bcaaa .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_dgcbe .Decode );};if _dgcbe .Function !=nil {if len (_dgcbe .Function )==1{_bcaaa .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_dgcbe .Function [0].ToPdfObject ());
}else {_bgfgc :=_fd .MakeArray ();for _ ,_dbfd :=range _dgcbe .Function {_bgfgc .Append (_dbfd .ToPdfObject ());};_bcaaa .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_bgfgc );};};return _dgcbe ._cdgfd ;};
// GetNumComponents returns the number of color components of the colorspace device.
// Returns 4 for a CMYK32 device.
func (_acgf *PdfColorspaceDeviceCMYK )GetNumComponents ()int {return 4};
// NewPdfShadingPatternType2 creates an empty shading pattern type 2 object.
func NewPdfShadingPatternType2 ()*PdfShadingPatternType2 {_fdebc :=&PdfShadingPatternType2 {};_fdebc .Matrix =_fd .MakeArrayFromIntegers ([]int {1,0,0,1,0,0});_fdebc .PdfPattern =&PdfPattern {};_fdebc .PdfPattern .PatternType =int64 (*_fd .MakeInteger (2));
_fdebc .PdfPattern ._dccfd =_fdebc ;_fdebc .PdfPattern ._gcgba =_fd .MakeIndirectObject (_fd .MakeDict ());return _fdebc ;};
// 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 (_fecdd *PdfSignature ,_fcafb Hasher ,_gbaag SignatureHandlerDocMDPParams )(SignatureValidationResult ,error );};
// PdfAnnotationPolyLine represents PolyLine annotations.
// (Section 12.5.6.9).
type PdfAnnotationPolyLine struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Vertices _fd .PdfObject ;LE _fd .PdfObject ;BS _fd .PdfObject ;IC _fd .PdfObject ;BE _fd .PdfObject ;IT _fd .PdfObject ;Measure _fd .PdfObject ;};
// 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 _fd .PdfObject )(_fd .PdfObjectName ,error ){var _gacgf *_fd .PdfObjectName ;var _ggbe *_fd .PdfObjectArray ;if _abcaf ,_gafg :=obj .(*_fd .PdfIndirectObject );_gafg {if _aedcg ,_edafb :=_abcaf .PdfObject .(*_fd .PdfObjectArray );
_edafb {_ggbe =_aedcg ;}else if _eaeb ,_acfb :=_abcaf .PdfObject .(*_fd .PdfObjectName );_acfb {_gacgf =_eaeb ;};}else if _cgag ,_fdfc :=obj .(*_fd .PdfObjectArray );_fdfc {_ggbe =_cgag ;}else if _bbda ,_beff :=obj .(*_fd .PdfObjectName );_beff {_gacgf =_bbda ;
};if _gacgf !=nil {switch *_gacgf {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 *_gacgf ,nil ;case "\u0050a\u0074\u0074\u0065\u0072\u006e":return *_gacgf ,nil ;
};};if _ggbe !=nil &&_ggbe .Len ()> 0{if _cfaa ,_eed :=_ggbe .Get (0).(*_fd .PdfObjectName );_eed {switch *_cfaa {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 _ggbe .Len ()==1{return *_cfaa ,nil ;
};case "\u0043a\u006c\u0047\u0072\u0061\u0079","\u0043\u0061\u006c\u0052\u0047\u0042","\u004c\u0061\u0062":return *_cfaa ,nil ;case "\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064","\u0050a\u0074\u0074\u0065\u0072\u006e","\u0049n\u0064\u0065\u0078\u0065\u0064":return *_cfaa ,nil ;
case "\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e","\u0044e\u0076\u0069\u0063\u0065\u004e":return *_cfaa ,nil ;};};};return "",nil ;};
// NewPdfAnnotationStrikeOut returns a new text strikeout annotation.
func NewPdfAnnotationStrikeOut ()*PdfAnnotationStrikeOut {_ccg :=NewPdfAnnotation ();_bgbd :=&PdfAnnotationStrikeOut {};_bgbd .PdfAnnotation =_ccg ;_bgbd .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_ccg .SetContext (_bgbd );return _bgbd ;};func (_abccg *pdfFontType0 )subsetRegistered ()error {_gdab ,_gacc :=_abccg .DescendantFont ._gbaac .(*pdfCIDFontType2 );
if !_gacc {_ag .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",_abccg .DescendantFont );return nil ;};if _gdab ==nil {return nil ;
};if _gdab ._babe ==nil {_ag .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 _abccg ._agbe ==nil {_ag .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 ;};_agddg ,_gacc :=_fd .GetStream (_gdab ._babe .FontFile2 );if !_gacc {_ag .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 _ad .New ("\u0066\u006f\u006e\u0074fi\u006c\u0065\u0032\u0020\u006e\u006f\u0074\u0020\u0066\u006f\u0075\u006e\u0064");};_aefec ,_fgbb :=_fd .DecodeStream (_agddg );if _fgbb !=nil {_ag .Log .Debug ("\u0044\u0065c\u006f\u0064\u0065 \u0065\u0072\u0072\u006f\u0072\u003a\u0020\u0025\u0076",_fgbb );
return _fgbb ;};_ebfcb ,_fgbb :=_geb .Parse (_bf .NewReader (_aefec ));if _fgbb !=nil {_ag .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 (_agddg .Stream ));
return _fgbb ;};var _ccafc []rune ;var _edce *_geb .Font ;switch _ffcab :=_abccg ._agbe .(type ){case *_ee .TrueTypeFontEncoder :_ccafc =_ffcab .RegisteredRunes ();_edce ,_fgbb =_ebfcb .SubsetKeepRunes (_ccafc );if _fgbb !=nil {_ag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_fgbb );
return _fgbb ;};_ffcab .SubsetRegistered ();case *_ee .IdentityEncoder :_ccafc =_ffcab .RegisteredRunes ();_cgffd :=make ([]_geb .GlyphIndex ,len (_ccafc ));for _cbge ,_gcadd :=range _ccafc {_cgffd [_cbge ]=_geb .GlyphIndex (_gcadd );};_edce ,_fgbb =_ebfcb .SubsetKeepIndices (_cgffd );
if _fgbb !=nil {_ag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_fgbb );return _fgbb ;};case _ee .SimpleEncoder :_aeage :=_ffcab .Charcodes ();for _ ,_efgba :=range _aeage {_ebdeg ,_cdfaf :=_ffcab .CharcodeToRune (_efgba );if !_cdfaf {_ag .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",_efgba );
continue ;};_ccafc =append (_ccafc ,_ebdeg );};default:return _dc .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",_abccg ._agbe );
};var _gcceb _bf .Buffer ;_fgbb =_edce .Write (&_gcceb );if _fgbb !=nil {_ag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_fgbb );return _fgbb ;};if _abccg ._dgdg !=nil {_dcbdd :=make (map[_gd .CharCode ]rune ,len (_ccafc ));for _ ,_aaffa :=range _ccafc {_defdf ,_fbfde :=_abccg ._agbe .RuneToCharcode (_aaffa );
if !_fbfde {continue ;};_dcbdd [_gd .CharCode (_defdf )]=_aaffa ;};_abccg ._dgdg =_gd .NewToUnicodeCMap (_dcbdd );};_agddg ,_fgbb =_fd .MakeStream (_gcceb .Bytes (),_fd .NewFlateEncoder ());if _fgbb !=nil {_ag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_fgbb );
return _fgbb ;};_agddg .Set ("\u004ce\u006e\u0067\u0074\u0068\u0031",_fd .MakeInteger (int64 (_gcceb .Len ())));if _aeca ,_dgeg :=_fd .GetStream (_gdab ._babe .FontFile2 );_dgeg {*_aeca =*_agddg ;}else {_gdab ._babe .FontFile2 =_agddg ;};_ecged :=_fagfg ();
if len (_abccg ._ffedb )> 0{_abccg ._ffedb =_febca (_abccg ._ffedb ,_ecged );};if len (_gdab ._ffedb )> 0{_gdab ._ffedb =_febca (_gdab ._ffedb ,_ecged );};if len (_abccg ._cabb )> 0{_abccg ._cabb =_febca (_abccg ._cabb ,_ecged );};if _gdab ._babe !=nil {_cbacg ,_afdf :=_fd .GetName (_gdab ._babe .FontName );
if _afdf &&len (_cbacg .String ())> 0{_bbbc :=_febca (_cbacg .String (),_ecged );_gdab ._babe .FontName =_fd .MakeName (_bbbc );};};return nil ;};func (_fded *PdfColorspaceDeviceRGB )String ()string {return "\u0044e\u0076\u0069\u0063\u0065\u0052\u0047B";
};
// DecodeArray returns the range of color component values in CalGray colorspace.
func (_afac *PdfColorspaceCalGray )DecodeArray ()[]float64 {return []float64 {0.0,1.0}};
// Mask returns the uin32 bitmask for the specific flag.
func (_gaggd FieldFlag )Mask ()uint32 {return uint32 (_gaggd )};
// GetNumComponents returns the number of color components.
func (_accf *PdfColorspaceICCBased )GetNumComponents ()int {return _accf .N };
// IsSimple returns true if `font` is a simple font.
func (_fdca *PdfFont )IsSimple ()bool {_ ,_bcaf :=_fdca ._gbaac .(*pdfFontSimple );return _bcaf };func (_eggeed *PdfWriter )writeBytes (_cegae []byte ){if _eggeed ._bgfb !=nil {return ;};_dfefg ,_efbcg :=_eggeed ._abgaac .Write (_cegae );_eggeed ._bbcab +=int64 (_dfefg );
_eggeed ._bgfb =_efbcg ;};func (_gbad *pdfCIDFontType0 )getFontDescriptor ()*PdfFontDescriptor {return _gbad ._babe };
// SetPatternByName sets a pattern resource specified by keyName.
func (_bgbad *PdfPageResources )SetPatternByName (keyName _fd .PdfObjectName ,pattern _fd .PdfObject )error {if _bgbad .Pattern ==nil {_bgbad .Pattern =_fd .MakeDict ();};_bcbgd ,_adcgf :=_fd .GetDict (_bgbad .Pattern );if !_adcgf {return _fd .ErrTypeError ;
};_bcbgd .Set (keyName ,pattern );return nil ;};
// R returns the value of the red component of the color.
func (_decf *PdfColorDeviceRGB )R ()float64 {return _decf [0]};
// PdfFieldChoice represents a choice field which includes scrollable list boxes and combo boxes.
type PdfFieldChoice struct{*PdfField ;Opt *_fd .PdfObjectArray ;TI *_fd .PdfObjectInteger ;I *_fd .PdfObjectArray ;};
// ToPdfObject implements interface PdfModel.
func (_dd *PdfActionThread )ToPdfObject ()_fd .PdfObject {_dd .PdfAction .ToPdfObject ();_bda :=_dd ._bfb ;_efg :=_bda .PdfObject .(*_fd .PdfObjectDictionary );_efg .SetIfNotNil ("\u0053",_fd .MakeName (string (ActionTypeThread )));if _dd .F !=nil {_efg .Set ("\u0046",_dd .F .ToPdfObject ());
};_efg .SetIfNotNil ("\u0044",_dd .D );_efg .SetIfNotNil ("\u0042",_dd .B );return _bda ;};
// GetContainingPdfObject returns the container of the outline (indirect object).
func (_bbfc *PdfOutline )GetContainingPdfObject ()_fd .PdfObject {return _bbfc ._fcef };
// ToPdfObject implements interface PdfModel.
func (_egdg *PdfAnnotationPopup )ToPdfObject ()_fd .PdfObject {_egdg .PdfAnnotation .ToPdfObject ();_ccgd :=_egdg ._aeb ;_ege :=_ccgd .PdfObject .(*_fd .PdfObjectDictionary );_ege .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fd .MakeName ("\u0050\u006f\u0070u\u0070"));
_ege .SetIfNotNil ("\u0050\u0061\u0072\u0065\u006e\u0074",_egdg .Parent );_ege .SetIfNotNil ("\u004f\u0070\u0065\u006e",_egdg .Open );return _ccgd ;};
// 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 _bc .ReadSeeker )(*PdfReader ,error ){const _fdacgd ="\u006d\u006f\u0064\u0065l:\u004e\u0065\u0077\u0050\u0064\u0066\u0052\u0065\u0061\u0064\u0065\u0072\u004c\u0061z\u0079";return _daab (rs ,&ReaderOpts {LazyLoad :true },false ,_fdacgd );
};const (ButtonTypeCheckbox ButtonType =iota ;ButtonTypePush ButtonType =iota ;ButtonTypeRadio ButtonType =iota ;);func _dbaa (_fafgd _fd .PdfObject ,_ffgfb *fontCommon )(*_gd .CMap ,error ){_dfef ,_aedda :=_fd .GetStream (_fafgd );if !_aedda {_ag .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",_fafgd );
return nil ,_fd .ErrTypeError ;};_bgfa ,_bcgf :=_fd .DecodeStream (_dfef );if _bcgf !=nil {return nil ,_bcgf ;};_ecbfe ,_bcgf :=_gd .LoadCmapFromData (_bgfa ,!_ffgfb .isCIDFont ());if _bcgf !=nil {_ag .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",_dfef .ObjectNumber ,_bcgf );
};return _ecbfe ,_bcgf ;};
// NewXObjectImage returns a new XObjectImage.
func NewXObjectImage ()*XObjectImage {_efgad :=&XObjectImage {};_dbbgb :=&_fd .PdfObjectStream {};_dbbgb .PdfObjectDictionary =_fd .MakeDict ();_efgad ._bbcgd =_dbbgb ;return _efgad ;};
// ImageToGray returns a new grayscale image based on the passed in RGB image.
func (_bgcg *PdfColorspaceDeviceRGB )ImageToGray (img Image )(Image ,error ){if img .ColorComponents !=3{return img ,_ad .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");
};_ebae ,_gfee :=_gbed .NewImage (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),img .ColorComponents ,img .Data ,img ._gfffd ,img ._cdbdc );if _gfee !=nil {return img ,_gfee ;};_dcfe ,_gfee :=_gbed .GrayConverter .Convert (_ebae );if _gfee !=nil {return img ,_gfee ;
};return _eeafa (_dcfe .Base ()),nil ;};func _febca (_fcgdc ,_fcdfa string )string {if _gg .Contains (_fcgdc ,"\u002b"){_cafbc :=_gg .Split (_fcgdc ,"\u002b");if len (_cafbc )==2{_fcgdc =_cafbc [1];};};return _fcdfa +"\u002b"+_fcgdc ;};
// PdfActionResetForm represents a resetForm action.
type PdfActionResetForm struct{*PdfAction ;Fields _fd .PdfObject ;Flags _fd .PdfObject ;};
// PdfAnnotationCaret represents Caret annotations.
// (Section 12.5.6.11).
type PdfAnnotationCaret struct{*PdfAnnotation ;*PdfAnnotationMarkup ;RD _fd .PdfObject ;Sy _fd .PdfObject ;};
// GetExtGState gets the ExtGState specified by keyName. Returns a bool
// indicating whether it was found or not.
func (_fdaaa *PdfPageResources )GetExtGState (keyName _fd .PdfObjectName )(_fd .PdfObject ,bool ){if _fdaaa .ExtGState ==nil {return nil ,false ;};_gfgga ,_dedgd :=_fd .TraceToDirectObject (_fdaaa .ExtGState ).(*_fd .PdfObjectDictionary );if !_dedgd {_ag .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",_fdaaa .ExtGState );
return nil ,false ;};if _aafee :=_gfgga .Get (keyName );_aafee !=nil {return _aafee ,true ;};return nil ,false ;};func (_cdbc *PdfReader )newPdfAnnotationWidgetFromDict (_efgb *_fd .PdfObjectDictionary )(*PdfAnnotationWidget ,error ){_bbcdd :=PdfAnnotationWidget {};
_bbcdd .H =_efgb .Get ("\u0048");_bbcdd .MK =_efgb .Get ("\u004d\u004b");_bbcdd .A =_efgb .Get ("\u0041");_bbcdd .AA =_efgb .Get ("\u0041\u0041");_bbcdd .BS =_efgb .Get ("\u0042\u0053");_bbcdd .Parent =_efgb .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");
return &_bbcdd ,nil ;};func (_adbdb *PdfAcroForm )fill (_egcb FieldValueProvider ,_dffg FieldAppearanceGenerator )error {if _adbdb ==nil {return nil ;};_dgfc ,_fegge :=_egcb .FieldValues ();if _fegge !=nil {return _fegge ;};for _ ,_fddce :=range _adbdb .AllFields (){_bbfaf :=_fddce .PartialName ();
_cdbd ,_daadb :=_dgfc [_bbfaf ];if !_daadb {if _bgbce ,_fafba :=_fddce .FullName ();_fafba ==nil {_cdbd ,_daadb =_dgfc [_bgbce ];};};if !_daadb {_ag .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",_bbfaf );
continue ;};if _eeff :=_cbec (_fddce ,_cdbd );_eeff !=nil {return _eeff ;};if _dffg ==nil {continue ;};for _ ,_bgca :=range _fddce .Annotations {_cdgf ,_gdgcg :=_dffg .GenerateAppearanceDict (_adbdb ,_fddce ,_bgca );if _gdgcg !=nil {return _gdgcg ;};_bgca .AP =_cdgf ;
_bgca .ToPdfObject ();};};return nil ;};
// GetCatalogMarkInfo gets catalog MarkInfo object.
func (_dggbc *PdfReader )GetCatalogMarkInfo ()(_fd .PdfObject ,bool ){if _dggbc ._gabca ==nil {return nil ,false ;};_afaga :=_dggbc ._gabca .Get ("\u004d\u0061\u0072\u006b\u0049\u006e\u0066\u006f");return _afaga ,_afaga !=nil ;};
// HasPatternByName checks whether a pattern object is defined by the specified keyName.
func (_addf *PdfPageResources )HasPatternByName (keyName _fd .PdfObjectName )bool {_ ,_edcea :=_addf .GetPatternByName (keyName );return _edcea ;};func (_abcg *Image )samplesAddPadding (_cagce []uint32 )[]uint32 {_bdbbce :=_gbed .BytesPerLine (int (_abcg .Width ),int (_abcg .BitsPerComponent ),_abcg .ColorComponents )*(8/int (_abcg .BitsPerComponent ));
_gdbaa :=_bdbbce *int (_abcg .Height );if len (_cagce )==_gdbaa {return _cagce ;};_bbgfda :=make ([]uint32 ,_gdbaa );_adfc :=int (_abcg .Width )*_abcg .ColorComponents ;for _addb :=0;_addb < int (_abcg .Height );_addb ++{_fada :=_addb *int (_abcg .Width );
_fdfbb :=_addb *_bdbbce ;for _gaca :=0;_gaca < _adfc ;_gaca ++{_bbgfda [_fdfbb +_gaca ]=_cagce [_fada +_gaca ];};};return _bbgfda ;};
// NewPdfPageResourcesFromDict creates and returns a new PdfPageResources object
// from the input dictionary.
func NewPdfPageResourcesFromDict (dict *_fd .PdfObjectDictionary )(*PdfPageResources ,error ){_eeedb :=NewPdfPageResources ();if _aagc :=dict .Get ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e");_aagc !=nil {_eeedb .ExtGState =_aagc ;};if _agfab :=dict .Get ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065");
_agfab !=nil &&!_fd .IsNullObject (_agfab ){_eeedb .ColorSpace =_agfab ;};if _dabdd :=dict .Get ("\u0050a\u0074\u0074\u0065\u0072\u006e");_dabdd !=nil {_eeedb .Pattern =_dabdd ;};if _adffb :=dict .Get ("\u0053h\u0061\u0064\u0069\u006e\u0067");_adffb !=nil {_eeedb .Shading =_adffb ;
};if _dfcecc :=dict .Get ("\u0058O\u0062\u006a\u0065\u0063\u0074");_dfcecc !=nil {_eeedb .XObject =_dfcecc ;};if _ebba :=_fd .ResolveReference (dict .Get ("\u0046\u006f\u006e\u0074"));_ebba !=nil {_eeedb .Font =_ebba ;};if _fbafb :=dict .Get ("\u0050r\u006f\u0063\u0053\u0065\u0074");
_fbafb !=nil {_eeedb .ProcSet =_fbafb ;};if _dcabd :=dict .Get ("\u0050\u0072\u006f\u0070\u0065\u0072\u0074\u0069\u0065\u0073");_dcabd !=nil {_eeedb .Properties =_dcabd ;};return _eeedb ,nil ;};
// PdfAcroForm represents the AcroForm dictionary used for representation of form data in PDF.
type PdfAcroForm struct{Fields *[]*PdfField ;NeedAppearances *_fd .PdfObjectBool ;SigFlags *_fd .PdfObjectInteger ;CO *_fd .PdfObjectArray ;DR *PdfPageResources ;DA *_fd .PdfObjectString ;Q *_fd .PdfObjectInteger ;XFA _fd .PdfObject ;
// ADBEEchoSign extra objects from Adobe Acrobat, causing signature invalid if not exists.
ADBEEchoSign _fd .PdfObject ;_fefdb *_fd .PdfIndirectObject ;_cfbb bool ;};var (_aeagf =_ge .MustCompile ("\u005cd\u002b\u0020\u0064\u0069c\u0074\u005c\u0073\u002b\u0028d\u0075p\u005cs\u002b\u0029\u003f\u0062\u0065\u0067\u0069n");_ebccf =_ge .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");
_bada =_ge .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");
_fedc ="\u002f\u0045\u006e\u0063od\u0069\u006e\u0067\u0020\u0032\u0035\u0036\u0020\u0061\u0072\u0072\u0061\u0079";_ddded ="\u0072\u0065\u0061d\u006f\u006e\u006c\u0079\u0020\u0064\u0065\u0066";_affb ="\u0063\u0075\u0072\u0072\u0065\u006e\u0074\u0066\u0069\u006c\u0065\u0020e\u0065\u0078\u0065\u0063";
);func (_ggaddc *PdfReader )loadPerms ()(*Permissions ,error ){if _bacb :=_ggaddc ._gabca .Get ("\u0050\u0065\u0072m\u0073");_bacb !=nil {if _aegde ,_bcaacd :=_fd .GetDict (_bacb );_bcaacd {_geagd :=_aegde .Get ("\u0044\u006f\u0063\u004d\u0044\u0050");
if _geagd ==nil {return nil ,nil ;};if _aedfd ,_afgg :=_fd .GetIndirect (_geagd );_afgg {_baccc ,_acgce :=_ggaddc .newPdfSignatureFromIndirect (_aedfd );if _acgce !=nil {return nil ,_acgce ;};return NewPermissions (_baccc ),nil ;};return nil ,_dc .Errorf ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0044\u006f\u0063M\u0044\u0050\u0020\u0065nt\u0072\u0079");
};return nil ,_dc .Errorf ("\u0069\u006e\u0076\u0061li\u0064\u0020\u0050\u0065\u0072\u006d\u0073\u0020\u0065\u006e\u0074\u0072\u0079");};return nil ,nil ;};func (_ccab *PdfReader )newPdfActionTransFromDict (_fbfdb *_fd .PdfObjectDictionary )(*PdfActionTrans ,error ){return &PdfActionTrans {Trans :_fbfdb .Get ("\u0054\u0072\u0061n\u0073")},nil ;
};
// NewXObjectForm creates a brand new XObject Form. Creates a new underlying PDF object stream primitive.
func NewXObjectForm ()*XObjectForm {_cagee :=&XObjectForm {};_gcagg :=&_fd .PdfObjectStream {};_gcagg .PdfObjectDictionary =_fd .MakeDict ();_cagee ._cebfa =_gcagg ;return _cagee ;};
// NewPdfAnnotationWatermark returns a new watermark annotation.
func NewPdfAnnotationWatermark ()*PdfAnnotationWatermark {_fbg :=NewPdfAnnotation ();_gffa :=&PdfAnnotationWatermark {};_gffa .PdfAnnotation =_fbg ;_fbg .SetContext (_gffa );return _gffa ;};
// HasColorspaceByName checks if the colorspace with the specified name exists in the page resources.
func (_ggbea *PdfPageResources )HasColorspaceByName (keyName _fd .PdfObjectName )bool {_fffca ,_ecdcb :=_ggbea .GetColorspaces ();if _ecdcb !=nil {_ag .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",_ecdcb );
return false ;};if _fffca ==nil {return false ;};_ ,_bgdaf :=_fffca .Colorspaces [string (keyName )];return _bgdaf ;};func (_cadd *pdfFontSimple )addEncoding ()error {var (_fbcfd string ;_gdbgb map[_ee .CharCode ]_ee .GlyphName ;_agffb _ee .SimpleEncoder ;
);if _cadd .Encoder ()!=nil {_gcfe ,_gaef :=_cadd .Encoder ().(_ee .SimpleEncoder );if _gaef &&_gcfe !=nil {_fbcfd =_gcfe .BaseName ();};};if _cadd .Encoding !=nil {_fbccb ,_ebcc ,_agaaec :=_cadd .getFontEncoding ();if _agaaec !=nil {_ag .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",_cadd ._ffedb ,_cadd ._eded ,_cadd .Encoding ,_cadd .Encoding ,_agaaec );
return _agaaec ;};if _fbccb !=""{_fbcfd =_fbccb ;};_gdbgb =_ebcc ;_agffb ,_agaaec =_ee .NewSimpleTextEncoder (_fbcfd ,_gdbgb );if _agaaec !=nil {return _agaaec ;};};if _agffb ==nil {_aded :=_cadd ._babe ;if _aded !=nil {switch _cadd ._eded {case "\u0054\u0079\u0070e\u0031":if _aded .fontFile !=nil &&_aded .fontFile ._cecab !=nil {_ag .Log .Debug ("\u0055\u0073\u0069\u006e\u0067\u0020\u0066\u006f\u006et\u0046\u0069\u006c\u0065");
_agffb =_aded .fontFile ._cecab ;};case "\u0054\u0072\u0075\u0065\u0054\u0079\u0070\u0065":if _aded ._dccc !=nil {_ag .Log .Debug ("\u0055s\u0069n\u0067\u0020\u0046\u006f\u006e\u0074\u0046\u0069\u006c\u0065\u0032");_bdfdc ,_efagg :=_aded ._dccc .MakeEncoder ();
if _efagg ==nil {_agffb =_bdfdc ;};if _cadd ._dgdg ==nil {_cadd ._dgdg =_aded ._dccc .MakeToUnicode ();};};};};};if _agffb !=nil {if _gdbgb !=nil {_ag .Log .Trace ("\u0064\u0069\u0066fe\u0072\u0065\u006e\u0063\u0065\u0073\u003d\u0025\u002b\u0076\u0020\u0066\u006f\u006e\u0074\u003d\u0025\u0073",_gdbgb ,_cadd .baseFields ());
_agffb =_ee .ApplyDifferences (_agffb ,_gdbgb );};_cadd .SetEncoder (_agffb );};return nil ;};
// GetPageLabels returns the PageLabels entry in the PDF catalog.
// See section 12.4.2 "Page Labels" (p. 382 PDF32000_2008).
func (_cacg *PdfReader )GetPageLabels ()(_fd .PdfObject ,error ){_adeg :=_fd .ResolveReference (_cacg ._gabca .Get ("\u0050\u0061\u0067\u0065\u004c\u0061\u0062\u0065\u006c\u0073"));if _adeg ==nil {return nil ,nil ;};if !_cacg ._gfdda {_efeb :=_cacg .traverseObjectData (_adeg );
if _efeb !=nil {return nil ,_efeb ;};};return _adeg ,nil ;};type fontCommon struct{_ffedb string ;_eded string ;_cabb string ;_eebbb _fd .PdfObject ;_dgdg *_gd .CMap ;_babe *PdfFontDescriptor ;_ffbd int64 ;};
// GetCatalogStructTreeRoot gets the catalog StructTreeRoot object.
func (_cggaba *PdfReader )GetCatalogStructTreeRoot ()(_fd .PdfObject ,bool ){if _cggaba ._gabca ==nil {return nil ,false ;};_abdea :=_cggaba ._gabca .Get ("\u0053\u0074\u0072\u0075\u0063\u0074\u0054\u0072\u0065e\u0052\u006f\u006f\u0074");return _abdea ,_abdea !=nil ;
};
// SetForms sets the Acroform for a PDF file.
func (_afaac *PdfWriter )SetForms (form *PdfAcroForm )error {_afaac ._agdg =form ;return nil };
// NewReaderForText makes a new PdfReader for an input PDF content string. For use in testing.
func NewReaderForText (txt string )*PdfReader {return &PdfReader {_cedebc :map[_fd .PdfObject ]struct{}{},_fbabb :_adedc (),_faaf :_fd .NewParserFromString (txt )};};
// ImageToRGB converts CalRGB colorspace image to RGB and returns the result.
func (_eefd *PdfColorspaceCalRGB )ImageToRGB (img Image )(Image ,error ){_afae :=_bg .NewReader (img .getBase ());_ffef :=_gbed .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),3,nil ,nil ,nil );_adgb :=_bg .NewWriter (_ffef );
_ggbaa :=_af .Pow (2,float64 (img .BitsPerComponent ))-1;_eaf :=make ([]uint32 ,3);var (_eaba error ;_fgff ,_bbcg ,_ceab ,_bbfg ,_fcbc ,_cagg float64 ;);for {_eaba =_afae .ReadSamples (_eaf );if _eaba ==_bc .EOF {break ;}else if _eaba !=nil {return img ,_eaba ;
};_fgff =float64 (_eaf [0])/_ggbaa ;_bbcg =float64 (_eaf [1])/_ggbaa ;_ceab =float64 (_eaf [2])/_ggbaa ;_bbfg =_eefd .Matrix [0]*_af .Pow (_fgff ,_eefd .Gamma [0])+_eefd .Matrix [3]*_af .Pow (_bbcg ,_eefd .Gamma [1])+_eefd .Matrix [6]*_af .Pow (_ceab ,_eefd .Gamma [2]);
_fcbc =_eefd .Matrix [1]*_af .Pow (_fgff ,_eefd .Gamma [0])+_eefd .Matrix [4]*_af .Pow (_bbcg ,_eefd .Gamma [1])+_eefd .Matrix [7]*_af .Pow (_ceab ,_eefd .Gamma [2]);_cagg =_eefd .Matrix [2]*_af .Pow (_fgff ,_eefd .Gamma [0])+_eefd .Matrix [5]*_af .Pow (_bbcg ,_eefd .Gamma [1])+_eefd .Matrix [8]*_af .Pow (_ceab ,_eefd .Gamma [2]);
_fgff =3.240479*_bbfg +-1.537150*_fcbc +-0.498535*_cagg ;_bbcg =-0.969256*_bbfg +1.875992*_fcbc +0.041556*_cagg ;_ceab =0.055648*_bbfg +-0.204043*_fcbc +1.057311*_cagg ;_fgff =_af .Min (_af .Max (_fgff ,0),1.0);_bbcg =_af .Min (_af .Max (_bbcg ,0),1.0);
_ceab =_af .Min (_af .Max (_ceab ,0),1.0);_eaf [0]=uint32 (_fgff *_ggbaa );_eaf [1]=uint32 (_bbcg *_ggbaa );_eaf [2]=uint32 (_ceab *_ggbaa );if _eaba =_adgb .WriteSamples (_eaf );_eaba !=nil {return img ,_eaba ;};};return _eeafa (&_ffef ),nil ;};
// AlphaMap performs mapping of alpha data for transformations. Allows custom filtering of alpha data etc.
func (_geedg *Image )AlphaMap (mapFunc AlphaMapFunc ){for _gaea ,_gdeae :=range _geedg ._gfffd {_geedg ._gfffd [_gaea ]=mapFunc (_gdeae );};};
// 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 ;};
// SetPdfModifiedDate sets the ModDate attribute of the output PDF.
func SetPdfModifiedDate (modifiedDate _cd .Time ){_feadd .Lock ();defer _feadd .Unlock ();_gbfgb =modifiedDate ;};
// Encoder returns the font's text encoder.
func (_cbafc pdfCIDFontType2 )Encoder ()_ee .TextEncoder {return _cbafc ._fccef };const (XObjectTypeUndefined XObjectType =iota ;XObjectTypeImage ;XObjectTypeForm ;XObjectTypePS ;XObjectTypeUnknown ;);
// GetContext returns a reference to the subshading entry as represented by PdfShadingType1-7.
func (_gdebag *PdfShading )GetContext ()PdfModel {return _gdebag ._cgfce };
// ToOutlineTree returns a low level PdfOutlineTreeNode object, based on
// the current instance.
func (_dfgbf *Outline )ToOutlineTree ()*PdfOutlineTreeNode {return &_dfgbf .ToPdfOutline ().PdfOutlineTreeNode ;};
// GetContainingPdfObject implements interface PdfModel.
func (_bffd *PdfSignature )GetContainingPdfObject ()_fd .PdfObject {return _bffd ._cbaga };func (_dgb *PdfReader )newPdfActionSubmitFormFromDict (_abd *_fd .PdfObjectDictionary )(*PdfActionSubmitForm ,error ){_bed ,_cfe :=_ece (_abd .Get ("\u0046"));if _cfe !=nil {return nil ,_cfe ;
};return &PdfActionSubmitForm {F :_bed ,Fields :_abd .Get ("\u0046\u0069\u0065\u006c\u0064\u0073"),Flags :_abd .Get ("\u0046\u006c\u0061g\u0073")},nil ;};
// GetCIDToGIDMapObject get the underlying CIDToGIDMap object if the font type is CIDFontType2.
func (_dfae *PdfFont )GetCIDToGIDMapObject ()_fd .PdfObject {_ggegg ,_cbcce :=_dfae ._gbaac .(*pdfCIDFontType2 );if _cbcce {return _ggegg .CIDToGIDMap ;};return nil ;};
// 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 ;SkipMarkInfo bool ;SkipViewerPreferences bool ;
SkipLanguage bool ;PageProcessCallback PageProcessCallback ;
// Deprecated: will be removed in v4. Use PageProcessCallback instead.
PageCallback PageCallback ;};
// PdfActionTrans represents a trans action.
type PdfActionTrans struct{*PdfAction ;Trans _fd .PdfObject ;};
// HasExtGState checks if ExtGState name is available.
func (_ddfba *PdfPage )HasExtGState (name _fd .PdfObjectName )bool {if _ddfba .Resources ==nil {return false ;};if _ddfba .Resources .ExtGState ==nil {return false ;};_eaae ,_bgffd :=_fd .TraceToDirectObject (_ddfba .Resources .ExtGState ).(*_fd .PdfObjectDictionary );
if !_bgffd {_ag .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",_fd .TraceToDirectObject (_ddfba .Resources .ExtGState ));
return false ;};_bgdgfd :=_eaae .Get (name );_cbaab :=_bgdgfd !=nil ;return _cbaab ;};
// NewPdfColorspaceSpecialIndexed returns a new Indexed color.
func NewPdfColorspaceSpecialIndexed ()*PdfColorspaceSpecialIndexed {return &PdfColorspaceSpecialIndexed {HiVal :255};};
// 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 (_cbbfe *CompliancePdfReader )error ;};
// 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 (_ffadf *XObjectForm )SetContentStream (content []byte ,encoder _fd .StreamEncoder )error {_bbeed :=content ;if encoder ==nil {if _ffadf .Filter !=nil {encoder =_ffadf .Filter ;}else {encoder =_fd .NewRawEncoder ();};};_effcb ,_egec :=encoder .EncodeBytes (_bbeed );
if _egec !=nil {return _egec ;};_bbeed =_effcb ;_ffadf .Stream =_bbeed ;_ffadf .Filter =encoder ;return nil ;};
// AddExtGState add External Graphics State (GState). The gsDict can be specified
// either directly as a dictionary or an indirect object containing a dictionary.
func (_ggaf *PdfPageResources )AddExtGState (gsName _fd .PdfObjectName ,gsDict _fd .PdfObject )error {if _ggaf .ExtGState ==nil {_ggaf .ExtGState =_fd .MakeDict ();};_cacc :=_ggaf .ExtGState ;_acagd ,_cbccg :=_fd .TraceToDirectObject (_cacc ).(*_fd .PdfObjectDictionary );
if !_cbccg {_ag .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",_cacc ,_fd .TraceToDirectObject (_cacc ));
return _fd .ErrTypeError ;};_acagd .Set (gsName ,gsDict );return nil ;};
// GetContentStream returns the pattern cell's content stream
func (_bdaag *PdfTilingPattern )GetContentStream ()([]byte ,error ){_cbbdb ,_ ,_aefad :=_bdaag .GetContentStreamWithEncoder ();return _cbbdb ,_aefad ;};
// ToPdfObject implements interface PdfModel.
func (_ade *PdfAnnotationWatermark )ToPdfObject ()_fd .PdfObject {_ade .PdfAnnotation .ToPdfObject ();_fedg :=_ade ._aeb ;_fgfe :=_fedg .PdfObject .(*_fd .PdfObjectDictionary );_fgfe .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fd .MakeName ("\u0057a\u0074\u0065\u0072\u006d\u0061\u0072k"));
_fgfe .SetIfNotNil ("\u0046\u0069\u0078\u0065\u0064\u0050\u0072\u0069\u006e\u0074",_ade .FixedPrint );return _fedg ;};
// 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 (_cgccf *PdfOutlineTreeNode )GetContext ()PdfModel {if _ffgbg ,_gaac :=_cgccf ._gcgcg .(*PdfOutline );_gaac {return _ffgbg ;};if _cdgcc ,_dbdfg :=_cgccf ._gcgcg .(*PdfOutlineItem );_dbdfg {return _cdgcc ;};_ag .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 ;};func _ecbe (_cgcb _fd .PdfObject )(*PdfColorspaceCalGray ,error ){_beec :=NewPdfColorspaceCalGray ();if _abbd ,_eaea :=_cgcb .(*_fd .PdfIndirectObject );_eaea {_beec ._gbaaf =_abbd ;};_cgcb =_fd .TraceToDirectObject (_cgcb );_fafb ,_edcc :=_cgcb .(*_fd .PdfObjectArray );
if !_edcc {return nil ,_dc .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _fafb .Len ()!=2{return nil ,_dc .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");
};_cgcb =_fd .TraceToDirectObject (_fafb .Get (0));_dcfd ,_edcc :=_cgcb .(*_fd .PdfObjectName );if !_edcc {return nil ,_dc .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 *_dcfd !="\u0043a\u006c\u0047\u0072\u0061\u0079"{return nil ,_dc .Errorf ("\u006eo\u0074\u0020\u0061\u0020\u0043\u0061\u006c\u0047\u0072\u0061\u0079 \u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063\u0065");};_cgcb =_fd .TraceToDirectObject (_fafb .Get (1));
_gcga ,_edcc :=_cgcb .(*_fd .PdfObjectDictionary );if !_edcc {return nil ,_dc .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");
};_cgcb =_gcga .Get ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074");_cgcb =_fd .TraceToDirectObject (_cgcb );_cdbgf ,_edcc :=_cgcb .(*_fd .PdfObjectArray );if !_edcc {return nil ,_dc .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 _cdbgf .Len ()!=3{return nil ,_dc .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");};_ccce ,_egfe :=_cdbgf .GetAsFloat64Slice ();
if _egfe !=nil {return nil ,_egfe ;};_beec .WhitePoint =_ccce ;_cgcb =_gcga .Get ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074");if _cgcb !=nil {_cgcb =_fd .TraceToDirectObject (_cgcb );_fadd ,_cfggd :=_cgcb .(*_fd .PdfObjectArray );if !_cfggd {return nil ,_dc .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 _fadd .Len ()!=3{return nil ,_dc .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");};_babg ,_fbgb :=_fadd .GetAsFloat64Slice ();
if _fbgb !=nil {return nil ,_fbgb ;};_beec .BlackPoint =_babg ;};_cgcb =_gcga .Get ("\u0047\u0061\u006dm\u0061");if _cgcb !=nil {_cgcb =_fd .TraceToDirectObject (_cgcb );_aegef ,_gege :=_fd .GetNumberAsFloat (_cgcb );if _gege !=nil {return nil ,_dc .Errorf ("C\u0061\u006c\u0047\u0072\u0061\u0079:\u0020\u0067\u0061\u006d\u006d\u0061\u0020\u006e\u006ft\u0020\u0061\u0020n\u0075m\u0062\u0065\u0072");
};_beec .Gamma =_aegef ;};return _beec ,nil ;};
// ToPdfObject returns a stream object.
func (_edbec *XObjectImage )ToPdfObject ()_fd .PdfObject {_aabfg :=_edbec ._bbcgd ;if _edbec ._egdda {return _aabfg ;};_cdfecd :=_aabfg .PdfObjectDictionary ;if _edbec .Filter !=nil {_cdfecd =_edbec .Filter .MakeStreamDict ();_aabfg .PdfObjectDictionary =_cdfecd ;
};_cdfecd .Set ("\u0054\u0079\u0070\u0065",_fd .MakeName ("\u0058O\u0062\u006a\u0065\u0063\u0074"));_cdfecd .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fd .MakeName ("\u0049\u006d\u0061g\u0065"));_cdfecd .Set ("\u0057\u0069\u0064t\u0068",_fd .MakeInteger (*(_edbec .Width )));
_cdfecd .Set ("\u0048\u0065\u0069\u0067\u0068\u0074",_fd .MakeInteger (*(_edbec .Height )));if _edbec .BitsPerComponent !=nil {_cdfecd .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_fd .MakeInteger (*(_edbec .BitsPerComponent )));
};if _edbec .ColorSpace !=nil {_cdfecd .SetIfNotNil ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065",_edbec .ColorSpace .ToPdfObject ());};_cdfecd .SetIfNotNil ("\u0049\u006e\u0074\u0065\u006e\u0074",_edbec .Intent );_cdfecd .SetIfNotNil ("\u0049m\u0061\u0067\u0065\u004d\u0061\u0073k",_edbec .ImageMask );
_cdfecd .SetIfNotNil ("\u004d\u0061\u0073\u006b",_edbec .Mask );_eeaee :=_cdfecd .Get ("\u0044\u0065\u0063\u006f\u0064\u0065")!=nil ;if _edbec .Decode ==nil &&_eeaee {_cdfecd .Remove ("\u0044\u0065\u0063\u006f\u0064\u0065");}else if _edbec .Decode !=nil {_cdfecd .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_edbec .Decode );
};_cdfecd .SetIfNotNil ("I\u006e\u0074\u0065\u0072\u0070\u006f\u006c\u0061\u0074\u0065",_edbec .Interpolate );_cdfecd .SetIfNotNil ("\u0041\u006c\u0074e\u0072\u006e\u0061\u0074\u0069\u0076\u0065\u0073",_edbec .Alternatives );_cdfecd .SetIfNotNil ("\u0053\u004d\u0061s\u006b",_edbec .SMask );
_cdfecd .SetIfNotNil ("S\u004d\u0061\u0073\u006b\u0049\u006e\u0044\u0061\u0074\u0061",_edbec .SMaskInData );_cdfecd .SetIfNotNil ("\u004d\u0061\u0074t\u0065",_edbec .Matte );_cdfecd .SetIfNotNil ("\u004e\u0061\u006d\u0065",_edbec .Name );_cdfecd .SetIfNotNil ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074",_edbec .StructParent );
_cdfecd .SetIfNotNil ("\u0049\u0044",_edbec .ID );_cdfecd .SetIfNotNil ("\u004f\u0050\u0049",_edbec .OPI );_cdfecd .SetIfNotNil ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061",_edbec .Metadata );_cdfecd .SetIfNotNil ("\u004f\u0043",_edbec .OC );_cdfecd .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_fd .MakeInteger (int64 (len (_edbec .Stream ))));
_aabfg .Stream =_edbec .Stream ;_edbec ._egdda =true ;return _aabfg ;};
// ToGoTime returns the date in time.Time format.
func (_ecega PdfDate )ToGoTime ()_cd .Time {_eeggef :=int (_ecega ._bbea *60*60+_ecega ._gdeac *60);switch _ecega ._fcdea {case '-':_eeggef =-_eeggef ;case 'Z':_eeggef =0;};_cgagcd :=_dc .Sprintf ("\u0055\u0054\u0043\u0025\u0063\u0025\u002e\u0032\u0064\u0025\u002e\u0032\u0064",_ecega ._fcdea ,_ecega ._bbea ,_ecega ._gdeac );
_dbfg :=_cd .FixedZone (_cgagcd ,_eeggef );return _cd .Date (int (_ecega ._bdaae ),_cd .Month (_ecega ._gbdf ),int (_ecega ._afcde ),int (_ecega ._bgagg ),int (_ecega ._gbgef ),int (_ecega ._cfdgb ),0,_dbfg );};
// ToPdfObject implements interface PdfModel.
func (_dffe *PdfAnnotationStamp )ToPdfObject ()_fd .PdfObject {_dffe .PdfAnnotation .ToPdfObject ();_baef :=_dffe ._aeb ;_bbbe :=_baef .PdfObject .(*_fd .PdfObjectDictionary );_dffe .PdfAnnotationMarkup .appendToPdfDictionary (_bbbe );_bbbe .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fd .MakeName ("\u0053\u0074\u0061m\u0070"));
_bbbe .SetIfNotNil ("\u004e\u0061\u006d\u0065",_dffe .Name );return _baef ;};
// GetPreviousRevision returns the previous revision of PdfReader for the Pdf document
func (_bagee *PdfReader )GetPreviousRevision ()(*PdfReader ,error ){if _bagee ._faaf .GetRevisionNumber ()==0{return nil ,_ad .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 _dacae ,_ebdeb :=_bagee ._dbggb [_bagee ];_ebdeb {return _dacae ,nil ;};_aedcf ,_daebfa :=_bagee ._faaf .GetPreviousRevisionReadSeeker ();if _daebfa !=nil {return nil ,_daebfa ;};_decbd ,_daebfa :=_daab (_aedcf ,_bagee ._badf ,_bagee ._gaggbb ,"\u006do\u0064\u0065\u006c\u003aG\u0065\u0074\u0050\u0072\u0065v\u0069o\u0075s\u0052\u0065\u0076\u0069\u0073\u0069\u006fn");
if _daebfa !=nil {return nil ,_daebfa ;};_bagee ._afcee [_bagee ._faaf .GetRevisionNumber ()-1]=_decbd ;_bagee ._dbggb [_bagee ]=_decbd ;_decbd ._dbggb =_bagee ._dbggb ;return _decbd ,nil ;};
// IsRadio returns true if the button field represents a radio button, false otherwise.
func (_dbbc *PdfFieldButton )IsRadio ()bool {return _dbbc .GetType ()==ButtonTypeRadio };
// 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 (_febdg int ,_daeeg *PdfPage );func _dbeea (_cgddf _fd .PdfObject )(*PdfColorspaceSpecialIndexed ,error ){_dddab :=NewPdfColorspaceSpecialIndexed ();if _cegbe ,_eabe :=_cgddf .(*_fd .PdfIndirectObject );_eabe {_dddab ._ecdg =_cegbe ;
};_cgddf =_fd .TraceToDirectObject (_cgddf );_aefe ,_dfeb :=_cgddf .(*_fd .PdfObjectArray );if !_dfeb {return nil ,_dc .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _aefe .Len ()!=4{return nil ,_dc .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");
};_cgddf =_aefe .Get (0);_cbbaf ,_dfeb :=_cgddf .(*_fd .PdfObjectName );if !_dfeb {return nil ,_dc .Errorf ("\u0069n\u0064\u0065\u0078\u0065\u0064\u0020\u0043\u0053\u003a\u0020\u0069n\u0076\u0061\u006c\u0069\u0064\u0020\u006e\u0061\u006d\u0065");};if *_cbbaf !="\u0049n\u0064\u0065\u0078\u0065\u0064"{return nil ,_dc .Errorf ("\u0069\u006e\u0064\u0065xe\u0064\u0020\u0043\u0053\u003a\u0020\u0077\u0072\u006f\u006e\u0067\u0020\u006e\u0061m\u0065");
};_cgddf =_aefe .Get (1);_gfgfa ,_bcbd :=DetermineColorspaceNameFromPdfObject (_cgddf );if _bcbd !=nil {return nil ,_bcbd ;};if _gfgfa =="\u0049n\u0064\u0065\u0078\u0065\u0064"||_gfgfa =="\u0050a\u0074\u0074\u0065\u0072\u006e"{_ag .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",_gfgfa );
return nil ,_fbeg ;};_gfdc ,_bcbd :=NewPdfColorspaceFromPdfObject (_cgddf );if _bcbd !=nil {return nil ,_bcbd ;};_dddab .Base =_gfdc ;_cgddf =_aefe .Get (2);_efceb ,_bcbd :=_fd .GetNumberAsInt64 (_cgddf );if _bcbd !=nil {return nil ,_bcbd ;};if _efceb > 255{return nil ,_dc .Errorf ("\u0069n\u0064\u0065\u0078\u0065d\u0020\u0043\u0053\u003a\u0020I\u006ev\u0061l\u0069\u0064\u0020\u0068\u0069\u0076\u0061l");
};_dddab .HiVal =int (_efceb );_cgddf =_aefe .Get (3);_dddab .Lookup =_cgddf ;_cgddf =_fd .TraceToDirectObject (_cgddf );var _dbca []byte ;if _bcee ,_begc :=_cgddf .(*_fd .PdfObjectString );_begc {_dbca =_bcee .Bytes ();_ag .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",_dbca );
}else if _fbab ,_eddc :=_cgddf .(*_fd .PdfObjectStream );_eddc {_ag .Log .Trace ("\u0049n\u0064e\u0078\u0065\u0064\u0020\u0073t\u0072\u0065a\u006d\u003a\u0020\u0025\u0073",_cgddf .String ());_ag .Log .Trace ("\u0045\u006e\u0063\u006fde\u0064\u0020\u0028\u0025\u0064\u0029\u0020\u003a\u0020\u0025\u0023\u0020\u0078",len (_fbab .Stream ),_fbab .Stream );
_aagf ,_baee :=_fd .DecodeStream (_fbab );if _baee !=nil {return nil ,_baee ;};_ag .Log .Trace ("\u0044e\u0063o\u0064\u0065\u0064\u0020\u0028%\u0064\u0029 \u003a\u0020\u0025\u0020\u0058",len (_aagf ),_aagf );_dbca =_aagf ;}else {_ag .Log .Debug ("\u0054\u0079\u0070\u0065\u003a\u0020\u0025\u0054",_cgddf );
return nil ,_dc .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 (_dbca )< _dddab .Base .GetNumComponents ()*(_dddab .HiVal +1){_ag .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");
_ag .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 (_dbca ),_dddab .Base .GetNumComponents (),_dddab .HiVal );
}else {_dbca =_dbca [:_dddab .Base .GetNumComponents ()*(_dddab .HiVal +1)];};_dddab ._fdac =_dbca ;return _dddab ,nil ;};
// NewPdfAnnotationMovie returns a new movie annotation.
func NewPdfAnnotationMovie ()*PdfAnnotationMovie {_gedc :=NewPdfAnnotation ();_gga :=&PdfAnnotationMovie {};_gga .PdfAnnotation =_gedc ;_gedc .SetContext (_gga );return _gga ;};
// Register registers (caches) a model to primitive object relationship.
func (_dacf *modelManager )Register (primitive _fd .PdfObject ,model PdfModel ){_dacf ._eeead [model ]=primitive ;_dacf ._aabd [primitive ]=model ;};
// ButtonType represents the subtype of a button field, can be one of:
// - Checkbox (ButtonTypeCheckbox)
// - PushButton (ButtonTypePushButton)
// - RadioButton (ButtonTypeRadioButton)
type ButtonType int ;
// 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 ,_fbbec :_fd .MakeDict (),ColorComponents :colorComponents };
};
// NewPdfColorPattern returns an empty color pattern.
func NewPdfColorPattern ()*PdfColorPattern {_cagd :=&PdfColorPattern {};return _cagd };func (_ddbg *PdfReader )flattenFieldsWithOpts (_dgce bool ,_bcfc FieldAppearanceGenerator ,_fecd *FieldFlattenOpts )error {if _fecd ==nil {_fecd =&FieldFlattenOpts {};
};var _cbbg bool ;_cabf :=map[*PdfAnnotation ]bool {};{var _abec []*PdfField ;_adad :=_ddbg .AcroForm ;if _adad !=nil {if _fecd .FilterFunc !=nil {_abec =_adad .filteredFields (_fecd .FilterFunc ,true );_cbbg =_adad .Fields !=nil &&len (*_adad .Fields )> 0;
}else {_abec =_adad .AllFields ();};};for _ ,_bbaa :=range _abec {if len (_bbaa .Annotations )< 1{_ag .Log .Debug ("\u004e\u006f\u0020\u0061\u006e\u006e\u006f\u0074\u0061\u0074\u0069\u006f\u006e\u0020\u0066\u006f\u0075\u006ed\u0020\u0066\u006f\u0072\u003a\u0020\u0025v\u002c\u0020\u006c\u006f\u006f\u006b\u0020\u0069\u006e\u0074\u006f \u004b\u0069\u0064\u0073\u0020\u004f\u0062\u006a\u0065\u0063\u0074",_bbaa .PartialName ());
for _gbaea ,_dgbd :=range _bbaa .Kids {for _ ,_gadag :=range _dgbd .Annotations {_cabf [_gadag .PdfAnnotation ]=_bbaa .V !=nil ;if _dgbd .V ==nil {_dgbd .V =_bbaa .V ;};if _dgbd .T ==nil {_dgbd .T =_fd .MakeString (_dc .Sprintf ("\u0025\u0073\u0023%\u0064",_bbaa .PartialName (),_gbaea ));
};if _bcfc !=nil {_beabb ,_cfccc :=_bcfc .GenerateAppearanceDict (_adad ,_dgbd ,_gadag );if _cfccc !=nil {return _cfccc ;};_gadag .AP =_beabb ;};};};};for _ ,_ebgdf :=range _bbaa .Annotations {_cabf [_ebgdf .PdfAnnotation ]=_bbaa .V !=nil ;if _bcfc !=nil {_aacf ,_ggecf :=_bcfc .GenerateAppearanceDict (_adad ,_bbaa ,_ebgdf );
if _ggecf !=nil {return _ggecf ;};_ebgdf .AP =_aacf ;};};};};if _dgce {for _ ,_afcg :=range _ddbg .PageList {_cebe ,_gcbe :=_afcg .GetAnnotations ();if _gcbe !=nil {return _gcbe ;};for _ ,_gbcdb :=range _cebe {_cabf [_gbcdb ]=true ;};};};for _ ,_daeg :=range _ddbg .PageList {_gecc :=_daeg .flattenFieldsWithOpts (_bcfc ,_fecd ,_cabf );
if _gecc !=nil {return _gecc ;};};if !_cbbg {_ddbg .AcroForm =nil ;};return nil ;};
// 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 (_dcbbc *PdfReader )CheckAccessRights (password []byte )(bool ,_dfg .Permissions ,error ){return _dcbbc ._faaf .CheckAccessRights (password );};
// PdfAnnotationRichMedia represents Rich Media annotations.
type PdfAnnotationRichMedia struct{*PdfAnnotation ;RichMediaSettings _fd .PdfObject ;RichMediaContent _fd .PdfObject ;};
// PdfAnnotationText represents Text annotations.
// (Section 12.5.6.4 p. 402).
type PdfAnnotationText struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Open _fd .PdfObject ;Name _fd .PdfObject ;State _fd .PdfObject ;StateModel _fd .PdfObject ;};var _aegc =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":{}};
// GetAsShadingPattern returns a shading pattern. Check with IsShading() prior to using this.
func (_gcbgf *PdfPattern )GetAsShadingPattern ()*PdfShadingPattern {return _gcbgf ._dccfd .(*PdfShadingPattern );};
// 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 (_fbdd *PdfFieldButton )SetType (btype ButtonType ){_feeb :=uint32 (0);if _fbdd .Ff !=nil {_feeb =uint32 (*_fbdd .Ff );};switch btype {case ButtonTypePush :_feeb |=FieldFlagPushbutton .Mask ();case ButtonTypeRadio :_feeb |=FieldFlagRadio .Mask ();
};_fbdd .Ff =_fd .MakeInteger (int64 (_feeb ));};
// Flags returns the field flags for the field accounting for any inherited flags.
func (_cegd *PdfField )Flags ()FieldFlag {var _gdccg FieldFlag ;_adgba ,_gdgc :=_cegd .inherit (func (_bfggg *PdfField )bool {if _bfggg .Ff !=nil {_gdccg =FieldFlag (*_bfggg .Ff );return true ;};return false ;});if _gdgc !=nil {_ag .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",_gdgc );
};if !_adgba {_ag .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 _gdccg ;};
// ColorFromFloats returns a new PdfColor based on the input slice of color
// components.
func (_babb *PdfColorspaceICCBased )ColorFromFloats (vals []float64 )(PdfColor ,error ){if _babb .Alternate ==nil {if _babb .N ==1{_edeg :=NewPdfColorspaceDeviceGray ();return _edeg .ColorFromFloats (vals );}else if _babb .N ==3{_dccec :=NewPdfColorspaceDeviceRGB ();
return _dccec .ColorFromFloats (vals );}else if _babb .N ==4{_fbgd :=NewPdfColorspaceDeviceCMYK ();return _fbgd .ColorFromFloats (vals );}else {return nil ,_ad .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 _babb .Alternate .ColorFromFloats (vals );};func _adea (_egcgd _fd .PdfObject ,_eeffg *PdfReader )(*OutlineDest ,error ){_affbc ,_adafc :=_fd .GetArray (_egcgd );if !_adafc {return nil ,_ad .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");
};_aabbb :=_affbc .Len ();if _aabbb < 2{return nil ,_dc .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",_aabbb );
};_fdaeg :=&OutlineDest {Mode :"\u0046\u0069\u0074"};_cdgfac :=_affbc .Get (0);if _gfcc ,_eeceb :=_fd .GetIndirect (_cdgfac );_eeceb {if _ ,_bcebc ,_bddc :=_eeffg .PageFromIndirectObject (_gfcc );_bddc ==nil {_fdaeg .Page =int64 (_bcebc -1);}else {_ag .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",_gfcc );
};_fdaeg .PageObj =_gfcc ;}else if _bgcac ,_afbca :=_fd .GetIntVal (_cdgfac );_afbca {if _bgcac >=0&&_bgcac < len (_eeffg .PageList ){_fdaeg .PageObj =_eeffg .PageList [_bgcac ].GetPageAsIndirectObject ();}else {_ag .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",_bgcac );
};_fdaeg .Page =int64 (_bgcac );}else {return nil ,_dc .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",_cdgfac );};_bfadf ,_adafc :=_fd .GetNameVal (_affbc .Get (1));
if !_adafc {_ag .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",_affbc .Get (1));
return _fdaeg ,nil ;};switch _bfadf {case "\u0046\u0069\u0074","\u0046\u0069\u0074\u0042":case "\u0046\u0069\u0074\u0048","\u0046\u0069\u0074B\u0048":if _aabbb > 2{_fdaeg .Y ,_ =_fd .GetNumberAsFloat (_fd .TraceToDirectObject (_affbc .Get (2)));};case "\u0046\u0069\u0074\u0056","\u0046\u0069\u0074B\u0056":if _aabbb > 2{_fdaeg .X ,_ =_fd .GetNumberAsFloat (_fd .TraceToDirectObject (_affbc .Get (2)));
};case "\u0058\u0059\u005a":if _aabbb > 4{_fdaeg .X ,_ =_fd .GetNumberAsFloat (_fd .TraceToDirectObject (_affbc .Get (2)));_fdaeg .Y ,_ =_fd .GetNumberAsFloat (_fd .TraceToDirectObject (_affbc .Get (3)));_fdaeg .Zoom ,_ =_fd .GetNumberAsFloat (_fd .TraceToDirectObject (_affbc .Get (4)));
};default:_bfadf ="\u0046\u0069\u0074";};_fdaeg .Mode =_bfadf ;return _fdaeg ,nil ;};
// NewPdfAnnotationSound returns a new sound annotation.
func NewPdfAnnotationSound ()*PdfAnnotationSound {_afc :=NewPdfAnnotation ();_gead :=&PdfAnnotationSound {};_gead .PdfAnnotation =_afc ;_gead .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_afc .SetContext (_gead );return _gead ;};
// ImageToRGB returns the passed in image. Method exists in order to satisfy
// the PdfColorspace interface.
func (_cefa *PdfColorspaceDeviceRGB )ImageToRGB (img Image )(Image ,error ){return img ,nil };
// NewPdfAnnotationFileAttachment returns a new file attachment annotation.
func NewPdfAnnotationFileAttachment ()*PdfAnnotationFileAttachment {_gfgc :=NewPdfAnnotation ();_defd :=&PdfAnnotationFileAttachment {};_defd .PdfAnnotation =_gfgc ;_defd .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_gfgc .SetContext (_defd );return _defd ;
};func (_abef *pdfFontSimple )getFontEncoding ()(_fcdff string ,_agfdb map[_ee .CharCode ]_ee .GlyphName ,_bcgfa error ){_fcdff ="\u0053\u0074a\u006e\u0064\u0061r\u0064\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067";if _efcfd ,_gfged :=_gfbc [_abef ._ffedb ];
_gfged {_fcdff =_efcfd ;}else if _abef .fontFlags ()&_fefd !=0{for _cecee ,_ccefb :=range _gfbc {if _gg .Contains (_abef ._ffedb ,_cecee ){_fcdff =_ccefb ;break ;};};};if _abef .Encoding ==nil {return _fcdff ,nil ,nil ;};switch _fbaabd :=_abef .Encoding .(type ){case *_fd .PdfObjectName :return string (*_fbaabd ),nil ,nil ;
case *_fd .PdfObjectDictionary :_ffdg ,_egbae :=_fd .GetName (_fbaabd .Get ("\u0042\u0061\u0073e\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067"));if _egbae {_fcdff =_ffdg .String ();};if _bfed :=_fbaabd .Get ("D\u0069\u0066\u0066\u0065\u0072\u0065\u006e\u0063\u0065\u0073");
_bfed !=nil {_edccd ,_dbgfa :=_fd .GetArray (_bfed );if !_dbgfa {_ag .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",_fbaabd ,_fbaabd .Get ("D\u0069\u0066\u0066\u0065\u0072\u0065\u006e\u0063\u0065\u0073"));
return "",nil ,_fd .ErrTypeError ;};_agfdb ,_bcgfa =_ee .FromFontDifferences (_edccd );};return _fcdff ,_agfdb ,_bcgfa ;default:_ag .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",_abef .Encoding ,_abef .Encoding );
return "",nil ,_fd .ErrTypeError ;};};
// ToPdfObject returns a *PdfIndirectObject containing a *PdfObjectArray representation of the DeviceN colorspace.
/*
Format: [/DeviceN names alternateSpace tintTransform]
or: [/DeviceN names alternateSpace tintTransform attributes]
*/
func (_gegd *PdfColorspaceDeviceN )ToPdfObject ()_fd .PdfObject {_bbab :=_fd .MakeArray (_fd .MakeName ("\u0044e\u0076\u0069\u0063\u0065\u004e"));_bbab .Append (_gegd .ColorantNames );_bbab .Append (_gegd .AlternateSpace .ToPdfObject ());_bbab .Append (_gegd .TintTransform .ToPdfObject ());
if _gegd .Attributes !=nil {_bbab .Append (_gegd .Attributes .ToPdfObject ());};if _gegd ._eebe !=nil {_gegd ._eebe .PdfObject =_bbab ;return _gegd ._eebe ;};return _bbab ;};
// GetPatternByName gets the pattern specified by keyName. Returns nil if not existing.
// The bool flag indicated whether it was found or not.
func (_dbdde *PdfPageResources )GetPatternByName (keyName _fd .PdfObjectName )(*PdfPattern ,bool ){if _dbdde .Pattern ==nil {return nil ,false ;};_cffb ,_ffcdc :=_fd .TraceToDirectObject (_dbdde .Pattern ).(*_fd .PdfObjectDictionary );if !_ffcdc {_ag .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",_dbdde .Pattern );
return nil ,false ;};if _edabe :=_cffb .Get (keyName );_edabe !=nil {_fdbeb ,_ebeg :=_ggfe (_edabe );if _ebeg !=nil {_ag .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",_ebeg );
return nil ,false ;};return _fdbeb ,true ;};return nil ,false ;};
// SetAnnotations sets the annotations list.
func (_ffdf *PdfPage )SetAnnotations (annotations []*PdfAnnotation ){_ffdf ._gbaf =annotations };
// NewPdfShadingType2 creates an empty shading type 2 dictionary.
func NewPdfShadingType2 ()*PdfShadingType2 {_cdeaf :=&PdfShadingType2 {};_cdeaf .PdfShading =&PdfShading {};_cdeaf .PdfShading ._cdgfd =_fd .MakeIndirectObject (_fd .MakeDict ());_cdeaf .PdfShading ._cgfce =_cdeaf ;return _cdeaf ;};
// GetXObjectByName returns the XObject with the specified keyName and the object type.
func (_gegaca *PdfPageResources )GetXObjectByName (keyName _fd .PdfObjectName )(*_fd .PdfObjectStream ,XObjectType ){if _gegaca .XObject ==nil {return nil ,XObjectTypeUndefined ;};_gfedb ,_cbgbd :=_fd .TraceToDirectObject (_gegaca .XObject ).(*_fd .PdfObjectDictionary );
if !_cbgbd {_ag .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",_fd .TraceToDirectObject (_gegaca .XObject ));
return nil ,XObjectTypeUndefined ;};if _eeeaf :=_gfedb .Get (keyName );_eeeaf !=nil {_bbgde ,_edbbf :=_fd .GetStream (_eeeaf );if !_edbbf {_ag .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",_eeeaf );
return nil ,XObjectTypeUndefined ;};_cacge :=_bbgde .PdfObjectDictionary ;_effag ,_edbbf :=_fd .TraceToDirectObject (_cacge .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065")).(*_fd .PdfObjectName );if !_edbbf {_ag .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",_cacge .String ());
return nil ,XObjectTypeUndefined ;};if *_effag =="\u0049\u006d\u0061g\u0065"{return _bbgde ,XObjectTypeImage ;}else if *_effag =="\u0046\u006f\u0072\u006d"{return _bbgde ,XObjectTypeForm ;}else if *_effag =="\u0050\u0053"{return _bbgde ,XObjectTypePS ;
}else {_ag .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",*_effag );return nil ,XObjectTypeUndefined ;};}else {return nil ,XObjectTypeUndefined ;
};};
// AppendContentStream adds content stream by string. Appends to the last
// contentstream instance if many.
func (_egaef *PdfPage )AppendContentStream (contentStr string )error {_dabdg ,_bgecc :=_egaef .GetContentStreams ();if _bgecc !=nil {return _bgecc ;};if len (_dabdg )==0{_dabdg =[]string {contentStr };return _egaef .SetContentStreams (_dabdg ,_fd .NewFlateEncoder ());
};var _gefg _bf .Buffer ;_gefg .WriteString (_dabdg [len (_dabdg )-1]);_gefg .WriteString ("\u000a");_gefg .WriteString (contentStr );_dabdg [len (_dabdg )-1]=_gefg .String ();return _egaef .SetContentStreams (_dabdg ,_fd .NewFlateEncoder ());};
// ToPdfObject implements interface PdfModel.
func (_ec *PdfActionGoToE )ToPdfObject ()_fd .PdfObject {_ec .PdfAction .ToPdfObject ();_fbc :=_ec ._bfb ;_acg :=_fbc .PdfObject .(*_fd .PdfObjectDictionary );_acg .SetIfNotNil ("\u0053",_fd .MakeName (string (ActionTypeGoToE )));if _ec .F !=nil {_acg .Set ("\u0046",_ec .F .ToPdfObject ());
};_acg .SetIfNotNil ("\u0044",_ec .D );_acg .SetIfNotNil ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw",_ec .NewWindow );_acg .SetIfNotNil ("\u0054",_ec .T );return _fbc ;};
// GetContainingPdfObject returns the container of the image object (indirect object).
func (_cbcf *XObjectImage )GetContainingPdfObject ()_fd .PdfObject {return _cbcf ._bbcgd };
// GetOptimizer returns current PDF optimizer.
func (_dfcbd *PdfWriter )GetOptimizer ()Optimizer {return _dfcbd ._cffdf };func (_bcbb *LTV )validateSig (_bfeec *PdfSignature )error {if _bfeec ==nil ||_bfeec .Contents ==nil ||len (_bfeec .Contents .Bytes ())==0{return _dc .Errorf ("i\u006e\u0076\u0061\u006c\u0069\u0064 \u0073\u0069\u0067\u006e\u0061\u0074\u0075\u0072\u0065 \u0066\u0069\u0065l\u0064:\u0020\u0025\u0076",_bfeec );
};return nil ;};
// SignatureValidationResult defines the response from the signature validation handler.
type SignatureValidationResult struct{
// List of errors when validating the signature.
Errors []string ;IsSigned bool ;IsVerified bool ;IsTrusted bool ;Fields []*PdfField ;Name string ;Date PdfDate ;Reason string ;Location string ;ContactInfo string ;DiffResults *_gfg .DiffResults ;IsCrlFound bool ;IsOcspFound bool ;
// GeneralizedTime is the time at which the time-stamp token has been created by the TSA (RFC 3161).
GeneralizedTime _cd .Time ;};func (_acagc *PdfWriter )writeObjectsInStreams (_cdeff map[_fd .PdfObject ]bool )error {for _ ,_aegf :=range _acagc ._agfbf {if _efdee :=_cdeff [_aegf ];_efdee {continue ;};_dcbfe :=int64 (0);switch _bdagc :=_aegf .(type ){case *_fd .PdfIndirectObject :_dcbfe =_bdagc .ObjectNumber ;
case *_fd .PdfObjectStream :_dcbfe =_bdagc .ObjectNumber ;case *_fd .PdfObjectStreams :_dcbfe =_bdagc .ObjectNumber ;case *_fd .PdfObjectReference :_dcbfe =_bdagc .ObjectNumber ;case *_fd .PdfObjectDictionary ,*_fd .PdfObjectString :default:_ag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020U\u006e\u0073\u0075p\u0070\u006f\u0072t\u0065\u0064 \u0074\u0079\u0070\u0065\u0020\u0069n\u0020wr\u0069\u0074\u0065\u0072\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0073\u003a\u0020\u0025\u0054\u0020\u0028\u0074\u0079\u0070\u0065\u0020\u0025\u0054\u0029",_aegf ,_bdagc );
return ErrTypeCheck ;};if _acagc ._egadf !=nil &&_aegf !=_acagc ._abbcc {_faffe :=_acagc ._egadf .Encrypt (_aegf ,_dcbfe ,0);if _faffe !=nil {_ag .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",_faffe );
return _faffe ;};};_acagc .writeObject (int (_dcbfe ),_aegf );};return nil ;};var _daef =_ge .MustCompile ("\u005b\\\u006e\u005c\u0072\u005d\u002b");
// GetBorderWidth returns the border style's width.
func (_deg *PdfBorderStyle )GetBorderWidth ()float64 {if _deg .W ==nil {return 1;};return *_deg .W ;};
// ColorToRGB converts a DeviceN color to an RGB color.
func (_gcgc *PdfColorspaceDeviceN )ColorToRGB (color PdfColor )(PdfColor ,error ){if _gcgc .AlternateSpace ==nil {return nil ,_ad .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 _gcgc .AlternateSpace .ColorToRGB (color );};
// GetNamedDestinations returns the Dests entry in the PDF catalog.
// See section 12.3.2.3 "Named Destinations" (p. 367 PDF32000_2008).
func (_effa *PdfReader )GetNamedDestinations ()(_fd .PdfObject ,error ){_egef :=_fd .ResolveReference (_effa ._gabca .Get ("\u0044\u0065\u0073t\u0073"));if _egef ==nil {return nil ,nil ;};if !_effa ._gfdda {_cbccc :=_effa .traverseObjectData (_egef );if _cbccc !=nil {return nil ,_cbccc ;
};};return _egef ,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 (_cbacb *Image )GetSamples ()[]uint32 {_gbffc :=_bg .ResampleBytes (_cbacb .Data ,int (_cbacb .BitsPerComponent ));if _cbacb .BitsPerComponent < 8{_gbffc =_cbacb .samplesTrimPadding (_gbffc );};_ebgde :=int (_cbacb .Width )*int (_cbacb .Height )*_cbacb .ColorComponents ;
if len (_gbffc )< _ebgde {_ag .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 (_gbffc ),_ebgde );
return _gbffc ;}else if len (_gbffc )> _ebgde {_ag .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 (_gbffc ),_ebgde );
_gbffc =_gbffc [:_ebgde ];};return _gbffc ;};
// MergePageWith appends page content to source Pdf file page content.
func (_eee *PdfAppender )MergePageWith (pageNum int ,page *PdfPage )error {_aeda :=pageNum -1;var _aabg *PdfPage ;for _afdc ,_cgga :=range _eee ._gbca {if _afdc ==_aeda {_aabg =_cgga ;};};if _aabg ==nil {return _dc .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 _aabg ._fgcac !=nil &&_aabg ._fgcac .GetParser ()==_eee ._efec ._faaf {_aabg =_aabg .Duplicate ();_eee ._gbca [_aeda ]=_aabg ;};page =page .Duplicate ();_baeb (page );_bfbc :=_gebge (_aabg );_gfa :=_gebge (page );_ffag :=make (map[_fd .PdfObjectName ]_fd .PdfObjectName );
for _cggf :=range _gfa {if _ ,_faae :=_bfbc [_cggf ];_faae {for _ebc :=1;true ;_ebc ++{_gada :=_fd .PdfObjectName (string (_cggf )+_bd .Itoa (_ebc ));if _ ,_bgfc :=_bfbc [_gada ];!_bgfc {_ffag [_cggf ]=_gada ;break ;};};};};_cbff ,_abbce :=page .GetContentStreams ();
if _abbce !=nil {return _abbce ;};_gbag ,_abbce :=_aabg .GetContentStreams ();if _abbce !=nil {return _abbce ;};for _adaga ,_daae :=range _cbff {for _edbba ,_fgde :=range _ffag {_daae =_gg .Replace (_daae ,"\u002f"+string (_edbba ),"\u002f"+string (_fgde ),-1);
};_cbff [_adaga ]=_daae ;};_gbag =append (_gbag ,_cbff ...);if _aaec :=_aabg .SetContentStreams (_gbag ,_fd .NewFlateEncoder ());_aaec !=nil {return _aaec ;};_aabg ._gbaf =append (_aabg ._gbaf ,page ._gbaf ...);if _aabg .Resources ==nil {_aabg .Resources =NewPdfPageResources ();
};if page .Resources !=nil {_aabg .Resources .Font =_eee .mergeResources (_aabg .Resources .Font ,page .Resources .Font ,_ffag );_aabg .Resources .XObject =_eee .mergeResources (_aabg .Resources .XObject ,page .Resources .XObject ,_ffag );_aabg .Resources .Properties =_eee .mergeResources (_aabg .Resources .Properties ,page .Resources .Properties ,_ffag );
if _aabg .Resources .ProcSet ==nil {_aabg .Resources .ProcSet =page .Resources .ProcSet ;};_aabg .Resources .Shading =_eee .mergeResources (_aabg .Resources .Shading ,page .Resources .Shading ,_ffag );_aabg .Resources .ExtGState =_eee .mergeResources (_aabg .Resources .ExtGState ,page .Resources .ExtGState ,_ffag );
};_bdgb ,_abbce :=_aabg .GetMediaBox ();if _abbce !=nil {return _abbce ;};_dfd ,_abbce :=page .GetMediaBox ();if _abbce !=nil {return _abbce ;};var _cedb bool ;if _bdgb .Llx > _dfd .Llx {_bdgb .Llx =_dfd .Llx ;_cedb =true ;};if _bdgb .Lly > _dfd .Lly {_bdgb .Lly =_dfd .Lly ;
_cedb =true ;};if _bdgb .Urx < _dfd .Urx {_bdgb .Urx =_dfd .Urx ;_cedb =true ;};if _bdgb .Ury < _dfd .Ury {_bdgb .Ury =_dfd .Ury ;_cedb =true ;};if _cedb {_aabg .MediaBox =_bdgb ;};return nil ;};
// ToPdfObject converts the PdfPage to a dictionary within an indirect object container.
func (_cbffc *PdfPage )ToPdfObject ()_fd .PdfObject {_febec :=_cbffc ._fgcac ;_cbffc .GetPageDict ();return _febec ;};
// ImageToRGB returns an error since an image cannot be defined in a pattern colorspace.
func (_cfgd *PdfColorspaceSpecialPattern )ImageToRGB (img Image )(Image ,error ){_ag .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 ,_ad .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");};
// PdfAnnotationProjection represents Projection annotations.
type PdfAnnotationProjection struct{*PdfAnnotation ;*PdfAnnotationMarkup ;};
// ToPdfObject implements interface PdfModel.
func (_eaacfb *PdfSignature )ToPdfObject ()_fd .PdfObject {_dabbd :=_eaacfb ._cbaga ;var _gacbe *_fd .PdfObjectDictionary ;if _aagg ,_eaagg :=_dabbd .PdfObject .(*pdfSignDictionary );_eaagg {_gacbe =_aagg .PdfObjectDictionary ;}else {_gacbe =_dabbd .PdfObject .(*_fd .PdfObjectDictionary );
};_gacbe .SetIfNotNil ("\u0054\u0079\u0070\u0065",_eaacfb .Type );_gacbe .SetIfNotNil ("\u0046\u0069\u006c\u0074\u0065\u0072",_eaacfb .Filter );_gacbe .SetIfNotNil ("\u0053u\u0062\u0046\u0069\u006c\u0074\u0065r",_eaacfb .SubFilter );_gacbe .SetIfNotNil ("\u0042y\u0074\u0065\u0052\u0061\u006e\u0067e",_eaacfb .ByteRange );
_gacbe .SetIfNotNil ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073",_eaacfb .Contents );_gacbe .SetIfNotNil ("\u0043\u0065\u0072\u0074",_eaacfb .Cert );_gacbe .SetIfNotNil ("\u004e\u0061\u006d\u0065",_eaacfb .Name );_gacbe .SetIfNotNil ("\u0052\u0065\u0061\u0073\u006f\u006e",_eaacfb .Reason );
_gacbe .SetIfNotNil ("\u004d",_eaacfb .M );_gacbe .SetIfNotNil ("\u0052e\u0066\u0065\u0072\u0065\u006e\u0063e",_eaacfb .Reference );_gacbe .SetIfNotNil ("\u0043h\u0061\u006e\u0067\u0065\u0073",_eaacfb .Changes );_gacbe .SetIfNotNil ("C\u006f\u006e\u0074\u0061\u0063\u0074\u0049\u006e\u0066\u006f",_eaacfb .ContactInfo );
return _dabbd ;};
// ToPdfObject implements interface PdfModel.
func (_fdfe *PdfAnnotationSound )ToPdfObject ()_fd .PdfObject {_fdfe .PdfAnnotation .ToPdfObject ();_adbd :=_fdfe ._aeb ;_adge :=_adbd .PdfObject .(*_fd .PdfObjectDictionary );_fdfe .PdfAnnotationMarkup .appendToPdfDictionary (_adge );_adge .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fd .MakeName ("\u0053\u006f\u0075n\u0064"));
_adge .SetIfNotNil ("\u0053\u006f\u0075n\u0064",_fdfe .Sound );_adge .SetIfNotNil ("\u004e\u0061\u006d\u0065",_fdfe .Name );return _adbd ;};func (_cedf *PdfAppender )updateObjectsDeep (_faga _fd .PdfObject ,_ddde map[_fd .PdfObject ]struct{}){if _ddde ==nil {_ddde =map[_fd .PdfObject ]struct{}{};
};if _ ,_bbgb :=_ddde [_faga ];_bbgb ||_faga ==nil {return ;};_ddde [_faga ]=struct{}{};_fca :=_fd .ResolveReferencesDeep (_faga ,_cedf ._bade );if _fca !=nil {_ag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_fca );};switch _dgff :=_faga .(type ){case *_fd .PdfIndirectObject :switch {case _dgff .GetParser ()==_cedf ._efec ._faaf :return ;
case _dgff .GetParser ()==_cedf .Reader ._faaf :_aecd ,_ :=_cedf ._efec .GetIndirectObjectByNumber (int (_dgff .ObjectNumber ));_ccbf ,_cdde :=_aecd .(*_fd .PdfIndirectObject );if _cdde &&_ccbf !=nil {if _ccbf .PdfObject !=_dgff .PdfObject &&_ccbf .PdfObject .WriteString ()!=_dgff .PdfObject .WriteString (){if _gg .Contains (_dgff .PdfObject .WriteString (),"\u002f\u0053\u0069\u0067")&&_gg .Contains (_dgff .PdfObject .WriteString (),"\u002f\u0053\u0075\u0062\u0074\u0079\u0070\u0065"){return ;
};_cedf .addNewObject (_faga );_cedf ._aceb [_faga ]=_dgff .ObjectNumber ;};};default:_cedf .addNewObject (_faga );};_cedf .updateObjectsDeep (_dgff .PdfObject ,_ddde );case *_fd .PdfObjectArray :for _ ,_bab :=range _dgff .Elements (){_cedf .updateObjectsDeep (_bab ,_ddde );
};case *_fd .PdfObjectDictionary :for _ ,_ccabg :=range _dgff .Keys (){_cedf .updateObjectsDeep (_dgff .Get (_ccabg ),_ddde );};case *_fd .PdfObjectStreams :if _dgff .GetParser ()!=_cedf ._efec ._faaf {for _ ,_adba :=range _dgff .Elements (){_cedf .updateObjectsDeep (_adba ,_ddde );
};};case *_fd .PdfObjectStream :switch {case _dgff .GetParser ()==_cedf ._efec ._faaf :return ;case _dgff .GetParser ()==_cedf .Reader ._faaf :if _cdeg ,_bfbb :=_cedf ._efec ._faaf .LookupByReference (_dgff .PdfObjectReference );_bfbb ==nil {var _edbb bool ;
if _addec ,_gbd :=_fd .GetStream (_cdeg );_gbd &&_bf .Equal (_addec .Stream ,_dgff .Stream ){_edbb =true ;};if _fagaa ,_egcf :=_fd .GetDict (_cdeg );_edbb &&_egcf {_edbb =_fagaa .WriteString ()==_dgff .PdfObjectDictionary .WriteString ();};if _edbb {return ;
};};if _dgff .ObjectNumber !=0{_cedf ._aceb [_faga ]=_dgff .ObjectNumber ;};default:if _ ,_fdgbd :=_cedf ._dbdc [_faga ];!_fdgbd {_cedf .addNewObject (_faga );};};_cedf .updateObjectsDeep (_dgff .PdfObjectDictionary ,_ddde );};};
// PdfAnnotationLine represents Line annotations.
// (Section 12.5.6.7).
type PdfAnnotationLine struct{*PdfAnnotation ;*PdfAnnotationMarkup ;L _fd .PdfObject ;BS _fd .PdfObject ;LE _fd .PdfObject ;IC _fd .PdfObject ;LL _fd .PdfObject ;LLE _fd .PdfObject ;Cap _fd .PdfObject ;IT _fd .PdfObject ;LLO _fd .PdfObject ;CP _fd .PdfObject ;
Measure _fd .PdfObject ;CO _fd .PdfObject ;};func (_gdffb *PdfWriter )addObjects (_feee _fd .PdfObject )error {_ag .Log .Trace ("\u0041d\u0064i\u006e\u0067\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0073\u0021");if _aacfd ,_bedc :=_feee .(*_fd .PdfIndirectObject );
_bedc {_ag .Log .Trace ("\u0049\u006e\u0064\u0069\u0072\u0065\u0063\u0074");_ag .Log .Trace ("\u002d \u0025\u0073\u0020\u0028\u0025\u0070)",_feee ,_aacfd );_ag .Log .Trace ("\u002d\u0020\u0025\u0073",_aacfd .PdfObject );if _gdffb .addObject (_aacfd ){_ggadc :=_gdffb .addObjects (_aacfd .PdfObject );
if _ggadc !=nil {return _ggadc ;};};return nil ;};if _abaee ,_cbabc :=_feee .(*_fd .PdfObjectStream );_cbabc {_ag .Log .Trace ("\u0053\u0074\u0072\u0065\u0061\u006d");_ag .Log .Trace ("\u002d \u0025\u0073\u0020\u0025\u0070",_feee ,_feee );if _gdffb .addObject (_abaee ){_fedb :=_gdffb .addObjects (_abaee .PdfObjectDictionary );
if _fedb !=nil {return _fedb ;};};return nil ;};if _bfgcc ,_fdffb :=_feee .(*_fd .PdfObjectDictionary );_fdffb {_ag .Log .Trace ("\u0044\u0069\u0063\u0074");_ag .Log .Trace ("\u002d\u0020\u0025\u0073",_feee );for _ ,_faed :=range _bfgcc .Keys (){_defgga :=_bfgcc .Get (_faed );
if _afbcc ,_fbea :=_defgga .(*_fd .PdfObjectReference );_fbea {_defgga =_afbcc .Resolve ();_bfgcc .Set (_faed ,_defgga );};if _faed !="\u0050\u0061\u0072\u0065\u006e\u0074"{if _gacba :=_gdffb .addObjects (_defgga );_gacba !=nil {return _gacba ;};}else {if _ ,_efdbb :=_defgga .(*_fd .PdfObjectNull );
_efdbb {continue ;};if _edcccc :=_gdffb .hasObject (_defgga );!_edcccc {_ag .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",_defgga ,_defgga ,_defgga );
_gdffb ._aaabd [_defgga ]=append (_gdffb ._aaabd [_defgga ],_bfgcc );};};};return nil ;};if _eefgb ,_ddaaf :=_feee .(*_fd .PdfObjectArray );_ddaaf {_ag .Log .Trace ("\u0041\u0072\u0072a\u0079");_ag .Log .Trace ("\u002d\u0020\u0025\u0073",_feee );if _eefgb ==nil {return _ad .New ("\u0061\u0072\u0072a\u0079\u0020\u0069\u0073\u0020\u006e\u0069\u006c");
};for _cagf ,_facdb :=range _eefgb .Elements (){if _fbbbb ,_abgbc :=_facdb .(*_fd .PdfObjectReference );_abgbc {_facdb =_fbbbb .Resolve ();_eefgb .Set (_cagf ,_facdb );};if _cbcaa :=_gdffb .addObjects (_facdb );_cbcaa !=nil {return _cbcaa ;};};return nil ;
};if _ ,_cddeb :=_feee .(*_fd .PdfObjectReference );_cddeb {_ag .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",_feee );
return _ad .New ("r\u0065\u0066\u0065\u0072en\u0063e\u0020\u006e\u006f\u0074\u0020a\u006c\u006c\u006f\u0077\u0065\u0064");};return nil ;};func (_dfaf *PdfReader )newPdfAnnotationPopupFromDict (_aegdg *_fd .PdfObjectDictionary )(*PdfAnnotationPopup ,error ){_aed :=PdfAnnotationPopup {};
_aed .Parent =_aegdg .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");_aed .Open =_aegdg .Get ("\u004f\u0070\u0065\u006e");return &_aed ,nil ;};func (_cfd *PdfReader )newPdfActionSoundFromDict (_bafb *_fd .PdfObjectDictionary )(*PdfActionSound ,error ){return &PdfActionSound {Sound :_bafb .Get ("\u0053\u006f\u0075n\u0064"),Volume :_bafb .Get ("\u0056\u006f\u006c\u0075\u006d\u0065"),Synchronous :_bafb .Get ("S\u0079\u006e\u0063\u0068\u0072\u006f\u006e\u006f\u0075\u0073"),Repeat :_bafb .Get ("\u0052\u0065\u0070\u0065\u0061\u0074"),Mix :_bafb .Get ("\u004d\u0069\u0078")},nil ;
};
// SetCatalogViewerPreferences sets the catalog ViewerPreferences dictionary.
func (_gbdge *PdfWriter )SetCatalogViewerPreferences (pref _fd .PdfObject )error {if pref ==nil {_gbdge ._fdaca .Remove ("\u0056\u0069\u0065\u0077\u0065\u0072\u0050\u0072\u0065\u0066\u0065\u0072e\u006e\u0063\u0065\u0073");return nil ;};_gbdge .addObject (pref );
_gbdge ._fdaca .Set ("\u0056\u0069\u0065\u0077\u0065\u0072\u0050\u0072\u0065\u0066\u0065\u0072e\u006e\u0063\u0065\u0073",pref );return nil ;};func _cfddd (_gbbca *_fd .PdfObjectArray )(float64 ,error ){_baefed ,_adagf :=_gbbca .ToFloat64Array ();if _adagf !=nil {_ag .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",_gbbca ,_adagf );
};switch len (_baefed ){case 1:return _baefed [0],nil ;case 3:_aefff :=PdfColorspaceDeviceRGB {};_ffbf ,_acce :=_aefff .ColorFromFloats (_baefed );if _acce !=nil {return 0.0,_acce ;};return _ffbf .(*PdfColorDeviceRGB ).ToGray ().Val (),nil ;case 4:_gdegca :=PdfColorspaceDeviceCMYK {};
_cccadf ,_cbfff :=_gdegca .ColorFromFloats (_baefed );if _cbfff !=nil {return 0.0,_cbfff ;};_gcbeb ,_cbfff :=_gdegca .ColorToRGB (_cccadf .(*PdfColorDeviceCMYK ));if _cbfff !=nil {return 0.0,_cbfff ;};return _gcbeb .(*PdfColorDeviceRGB ).ToGray ().Val (),nil ;
};_adagf =_ad .New ("\u0062a\u0064 \u004d\u0061\u0074\u0074\u0065\u0020\u0063\u006f\u006c\u006f\u0072");_ag .Log .Error ("\u0074\u006f\u0047ra\u0079\u003a\u0020\u006d\u0061\u0074\u0074\u0065\u003d\u0025\u0073\u0020\u0065\u0072\u0072\u003d\u0025\u0076",_gbbca ,_adagf );
return 0.0,_adagf ;};func (_cdeb *pdfFontType0 )baseFields ()*fontCommon {return &_cdeb .fontCommon };
// NewPdfAnnotationHighlight returns a new text highlight annotation.
func NewPdfAnnotationHighlight ()*PdfAnnotationHighlight {_fbdf :=NewPdfAnnotation ();_bfgc :=&PdfAnnotationHighlight {};_bfgc .PdfAnnotation =_fbdf ;_bfgc .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_fbdf .SetContext (_bfgc );return _bfgc ;};
// WriteString outputs the object as it is to be written to file.
func (_gggf *PdfTransformParamsDocMDP )WriteString ()string {return _gggf .ToPdfObject ().WriteString ()};
// NewPdfAnnotationPrinterMark returns a new printermark annotation.
func NewPdfAnnotationPrinterMark ()*PdfAnnotationPrinterMark {_aagb :=NewPdfAnnotation ();_ecg :=&PdfAnnotationPrinterMark {};_ecg .PdfAnnotation =_aagb ;_aagb .SetContext (_ecg );return _ecg ;};
// NewPdfPage returns a new PDF page.
func NewPdfPage ()*PdfPage {_ceggb :=PdfPage {};_ceggb ._gaec =_fd .MakeDict ();_ceggb .Resources =NewPdfPageResources ();_fdba :=_fd .PdfIndirectObject {};_fdba .PdfObject =_ceggb ._gaec ;_ceggb ._fgcac =&_fdba ;_ceggb ._cadc =*_ceggb ._gaec ;return &_ceggb ;
};
// 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 (_fea *PdfAppender )Sign (pageNum int ,field *PdfFieldSignature )error {if field ==nil {return _ad .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");
};_eagaf :=field .V ;if _eagaf ==nil {return _ad .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");};_ddabe :=pageNum -1;
if _ddabe < 0||_ddabe > len (_fea ._gbca )-1{return _dc .Errorf ("\u0070\u0061\u0067\u0065\u0020\u0025\u0064\u0020\u006e\u006f\u0074\u0020f\u006f\u0075\u006e\u0064",pageNum );};_ecac :=_fea .Reader .PageList [_ddabe ];field .P =_ecac .ToPdfObject ();if field .T ==nil ||field .T .String ()==""{field .T =_fd .MakeString (_dc .Sprintf ("\u0053\u0069\u0067n\u0061\u0074\u0075\u0072\u0065\u0020\u0025\u0064",pageNum ));
};_ecac .AddAnnotation (field .PdfAnnotationWidget .PdfAnnotation );if _fea ._agfb ==_fea ._efec .AcroForm {_fea ._agfb =_fea .Reader .AcroForm ;};_fgad :=_fea ._agfb ;if _fgad ==nil {_fgad =NewPdfAcroForm ();};_fgad .SigFlags =_fd .MakeInteger (3);if _fgad .NeedAppearances !=nil {_fgad .NeedAppearances =nil ;
};_bfcf :=append (_fgad .AllFields (),field .PdfField );_fgad .Fields =&_bfcf ;_fea .ReplaceAcroForm (_fgad );_fea .UpdatePage (_ecac );_fea ._gbca [_ddabe ]=_ecac ;if _ ,_cgdd :=field .V .GetDocMDPPermission ();_cgdd {_fea ._daea =NewPermissions (field .V );
};return nil ;};func (_fbd *PdfReader )newPdfActionGotoEFromDict (_aac *_fd .PdfObjectDictionary )(*PdfActionGoToE ,error ){_gea ,_gbg :=_ece (_aac .Get ("\u0046"));if _gbg !=nil {return nil ,_gbg ;};return &PdfActionGoToE {D :_aac .Get ("\u0044"),NewWindow :_aac .Get ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw"),T :_aac .Get ("\u0054"),F :_gea },nil ;
};
// PdfColorPatternType2 represents a color shading pattern type 2 (Axial).
type PdfColorPatternType2 struct{Color PdfColor ;PatternName _fd .PdfObjectName ;};
// GetXHeight returns the XHeight of the font `descriptor`.
func (_cafa *PdfFontDescriptor )GetXHeight ()(float64 ,error ){return _fd .GetNumberAsFloat (_cafa .XHeight );};
// 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 (_agebf *PdfReader )RepairAcroForm (opts *AcroFormRepairOptions )error {var _faaaf []*PdfField ;_feebg :=map[*_fd .PdfIndirectObject ]struct{}{};for _ ,_gecda :=range _agebf .PageList {_gafde ,_afcgb :=_gecda .GetAnnotations ();if _afcgb !=nil {return _afcgb ;
};for _ ,_gaaga :=range _gafde {var _gbfcb *PdfField ;switch _bddac :=_gaaga .GetContext ().(type ){case *PdfAnnotationWidget :if _bddac ._eabc !=nil {_gbfcb =_bddac ._eabc ;break ;};if _edbbgc ,_caaee :=_fd .GetIndirect (_bddac .Parent );_caaee {_gbfcb ,_afcgb =_agebf .newPdfFieldFromIndirectObject (_edbbgc ,nil );
if _afcgb ==nil {break ;};_ag .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",_edbbgc ,_afcgb );
};if _bddac ._aeb !=nil {_gbfcb ,_afcgb =_agebf .newPdfFieldFromIndirectObject (_bddac ._aeb ,nil );if _afcgb ==nil {break ;};_ag .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",_bddac ._aeb ,_afcgb );
};};if _gbfcb ==nil {continue ;};if _ ,_dffccb :=_feebg [_gbfcb ._dffeb ];_dffccb {continue ;};_feebg [_gbfcb ._dffeb ]=struct{}{};_faaaf =append (_faaaf ,_gbfcb );};};if len (_faaaf )==0{return nil ;};if _agebf .AcroForm ==nil {_agebf .AcroForm =NewPdfAcroForm ();
};_agebf .AcroForm .Fields =&_faaaf ;return 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 (_bcbaf *_ca .Document )error ;};
// ToPdfObject implements interface PdfModel.
func (_caf *PdfAnnotationStrikeOut )ToPdfObject ()_fd .PdfObject {_caf .PdfAnnotation .ToPdfObject ();_fcfd :=_caf ._aeb ;_dfca :=_fcfd .PdfObject .(*_fd .PdfObjectDictionary );_caf .PdfAnnotationMarkup .appendToPdfDictionary (_dfca );_dfca .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fd .MakeName ("\u0053t\u0072\u0069\u006b\u0065\u004f\u0075t"));
_dfca .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_caf .QuadPoints );return _fcfd ;};
// ToPdfObject converts the pdfCIDFontType2 to a PDF representation.
func (_fbdfc *pdfCIDFontType2 )ToPdfObject ()_fd .PdfObject {if _fbdfc ._bceb ==nil {_fbdfc ._bceb =&_fd .PdfIndirectObject {};};_ffcg :=_fbdfc .baseFields ().asPdfObjectDictionary ("\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032");
_fbdfc ._bceb .PdfObject =_ffcg ;if _fbdfc .CIDSystemInfo !=nil {_ffcg .Set ("\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f",_fbdfc .CIDSystemInfo );};if _fbdfc .DW !=nil {_ffcg .Set ("\u0044\u0057",_fbdfc .DW );};if _fbdfc .DW2 !=nil {_ffcg .Set ("\u0044\u0057\u0032",_fbdfc .DW2 );
};if _fbdfc .W !=nil {_ffcg .Set ("\u0057",_fbdfc .W );};if _fbdfc .W2 !=nil {_ffcg .Set ("\u0057\u0032",_fbdfc .W2 );};if _fbdfc .CIDToGIDMap !=nil {_ffcg .Set ("C\u0049\u0044\u0054\u006f\u0047\u0049\u0044\u004d\u0061\u0070",_fbdfc .CIDToGIDMap );};return _fbdfc ._bceb ;
};
// ImageToRGB converts an Image in a given PdfColorspace to an RGB image.
func (_aeea *PdfColorspaceDeviceN )ImageToRGB (img Image )(Image ,error ){_dgfa :=_bg .NewReader (img .getBase ());_efae :=_gbed .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),img .ColorComponents ,nil ,img ._gfffd ,img ._cdbdc );
_dfdg :=_bg .NewWriter (_efae );_cbfbb :=_af .Pow (2,float64 (img .BitsPerComponent ))-1;_bbbeb :=_aeea .GetNumComponents ();_ffaa :=make ([]uint32 ,_bbbeb );_fcdee :=make ([]float64 ,_bbbeb );for {_gdea :=_dgfa .ReadSamples (_ffaa );if _gdea ==_bc .EOF {break ;
}else if _gdea !=nil {return img ,_gdea ;};for _fdacg :=0;_fdacg < _bbbeb ;_fdacg ++{_bcga :=float64 (_ffaa [_fdacg ])/_cbfbb ;_fcdee [_fdacg ]=_bcga ;};_dbeg ,_gdea :=_aeea .TintTransform .Evaluate (_fcdee );if _gdea !=nil {return img ,_gdea ;};for _ ,_addd :=range _dbeg {_addd =_af .Min (_af .Max (0,_addd ),1.0);
if _gdea =_dfdg .WriteSample (uint32 (_addd *_cbfbb ));_gdea !=nil {return img ,_gdea ;};};};return _aeea .AlternateSpace .ImageToRGB (_eeafa (&_efae ));};
// EncryptionAlgorithm is used in EncryptOptions to change the default algorithm used to encrypt the document.
type EncryptionAlgorithm int ;
// Normalize swaps (Llx,Urx) if Urx < Llx, and (Lly,Ury) if Ury < Lly.
func (_efga *PdfRectangle )Normalize (){if _efga .Llx > _efga .Urx {_efga .Llx ,_efga .Urx =_efga .Urx ,_efga .Llx ;};if _efga .Lly > _efga .Ury {_efga .Lly ,_efga .Ury =_efga .Ury ,_efga .Lly ;};};
// 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 ;_gfffd []byte ;_cdbdc []float64 ;};
// NewXObjectImageFromImageLazy creates a new XObject Image from an image object
// with default options. If encoder is nil, uses raw encoding (none).
// If lazy is true, then lazy mode is enabled for XObject.
// Lazy mode allows to reduce memory usage with the help of temporary files.
func NewXObjectImageFromImageLazy (img *Image ,cs PdfColorspace ,encoder _fd .StreamEncoder ,lazy bool )(*XObjectImage ,error ){_dgea :=NewXObjectImage ();if lazy {_abdeg ,_eddfac :=UpdateXObjectImageFromImage (_dgea ,img ,cs ,encoder );if _eddfac !=nil {return nil ,_eddfac ;
};_abdeg .ToPdfObject ();_eddfac =_abdeg ._bbcgd .MakeLazy ();if _eddfac !=nil {return nil ,_eddfac ;};_abdeg .Stream =nil ;return _abdeg ,nil ;};return UpdateXObjectImageFromImage (_dgea ,img ,cs ,encoder );};
// ToPdfObject implements interface PdfModel.
func (_edc *PdfActionResetForm )ToPdfObject ()_fd .PdfObject {_edc .PdfAction .ToPdfObject ();_ddf :=_edc ._bfb ;_cda :=_ddf .PdfObject .(*_fd .PdfObjectDictionary );_cda .SetIfNotNil ("\u0053",_fd .MakeName (string (ActionTypeResetForm )));_cda .SetIfNotNil ("\u0046\u0069\u0065\u006c\u0064\u0073",_edc .Fields );
_cda .SetIfNotNil ("\u0046\u006c\u0061g\u0073",_edc .Flags );return _ddf ;};
// GetNumComponents returns the number of color components (3 for CalRGB).
func (_baeg *PdfColorCalRGB )GetNumComponents ()int {return 3};func (_cfcg *PdfReader )newPdfActionRenditionFromDict (_gdf *_fd .PdfObjectDictionary )(*PdfActionRendition ,error ){return &PdfActionRendition {R :_gdf .Get ("\u0052"),AN :_gdf .Get ("\u0041\u004e"),OP :_gdf .Get ("\u004f\u0050"),JS :_gdf .Get ("\u004a\u0053")},nil ;
};
// ToPdfObject returns the PDF representation of the pattern.
func (_defba *PdfPattern )ToPdfObject ()_fd .PdfObject {_afadg :=_defba .getDict ();_afadg .Set ("\u0054\u0079\u0070\u0065",_fd .MakeName ("\u0050a\u0074\u0074\u0065\u0072\u006e"));_afadg .Set ("P\u0061\u0074\u0074\u0065\u0072\u006e\u0054\u0079\u0070\u0065",_fd .MakeInteger (_defba .PatternType ));
return _defba ._gcgba ;};
// PdfActionNamed represents a named action.
type PdfActionNamed struct{*PdfAction ;N _fd .PdfObject ;};
// PdfColorspaceDeviceGray represents a grayscale colorspace.
type PdfColorspaceDeviceGray struct{};func (_dgeb *PdfReader )newPdfAnnotationLinkFromDict (_dcbe *_fd .PdfObjectDictionary )(*PdfAnnotationLink ,error ){_daeb :=PdfAnnotationLink {};_daeb .A =_dcbe .Get ("\u0041");_daeb .Dest =_dcbe .Get ("\u0044\u0065\u0073\u0074");
_daeb .H =_dcbe .Get ("\u0048");_daeb .PA =_dcbe .Get ("\u0050\u0041");_daeb .QuadPoints =_dcbe .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");_daeb .BS =_dcbe .Get ("\u0042\u0053");return &_daeb ,nil ;};func (_dbdd *PdfReader )newPdfAnnotation3DFromDict (_deec *_fd .PdfObjectDictionary )(*PdfAnnotation3D ,error ){_dafc :=PdfAnnotation3D {};
_dafc .T3DD =_deec .Get ("\u0033\u0044\u0044");_dafc .T3DV =_deec .Get ("\u0033\u0044\u0056");_dafc .T3DA =_deec .Get ("\u0033\u0044\u0041");_dafc .T3DI =_deec .Get ("\u0033\u0044\u0049");_dafc .T3DB =_deec .Get ("\u0033\u0044\u0042");return &_dafc ,nil ;
};
// AddCustomInfo adds a custom info into document info dictionary.
func (_acegf *PdfInfo )AddCustomInfo (name string ,value string )error {if _acegf ._defeg ==nil {_acegf ._defeg =_fd .MakeDict ();};if _ ,_aaff :=_ccebb [name ];_aaff {return _dc .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 );
};_acegf ._defeg .SetIfNotNil (*_fd .MakeName (name ),_fd .MakeString (value ));return nil ;};
// SetImage updates XObject Image with new image data.
func (_begdd *XObjectImage )SetImage (img *Image ,cs PdfColorspace )error {_begdd .Filter .UpdateParams (img .GetParamsDict ());_cbcbe ,_afecd :=_begdd .Filter .EncodeBytes (img .Data );if _afecd !=nil {return _afecd ;};_begdd .Stream =_cbcbe ;_efgfdg :=img .Width ;
_begdd .Width =&_efgfdg ;_dcfdf :=img .Height ;_begdd .Height =&_dcfdf ;_bfefgf :=img .BitsPerComponent ;_begdd .BitsPerComponent =&_bfefgf ;if cs ==nil {if img .ColorComponents ==1{_begdd .ColorSpace =NewPdfColorspaceDeviceGray ();}else if img .ColorComponents ==3{_begdd .ColorSpace =NewPdfColorspaceDeviceRGB ();
}else if img .ColorComponents ==4{_begdd .ColorSpace =NewPdfColorspaceDeviceCMYK ();}else {return _ad .New ("c\u006fl\u006f\u0072\u0073\u0070\u0061\u0063\u0065\u0020u\u006e\u0064\u0065\u0066in\u0065\u0064");};}else {_begdd .ColorSpace =cs ;};return nil ;
};var _ pdfFont =(*pdfFontType0 )(nil );func (_dagae *PdfShading )getShadingDict ()(*_fd .PdfObjectDictionary ,error ){_cada :=_dagae ._cdgfd ;if _egeda ,_bddeg :=_cada .(*_fd .PdfIndirectObject );_bddeg {_edfeb ,_egfcfd :=_egeda .PdfObject .(*_fd .PdfObjectDictionary );
if !_egfcfd {return nil ,_fd .ErrTypeError ;};return _edfeb ,nil ;}else if _bbfgd ,_dfadc :=_cada .(*_fd .PdfObjectStream );_dfadc {return _bbfgd .PdfObjectDictionary ,nil ;}else if _afgce ,_gagfg :=_cada .(*_fd .PdfObjectDictionary );_gagfg {return _afgce ,nil ;
}else {_ag .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 ,_fd .ErrTypeError ;};};func _eacbg (_cbgg _fd .PdfObject ){_ag .Log .Debug ("\u006f\u0062\u006a\u003a\u0020\u0025\u0054\u0020\u0025\u0073",_cbgg ,_cbgg .String ());
if _fafab ,_cccaf :=_cbgg .(*_fd .PdfObjectStream );_cccaf {_egbcb ,_fbga :=_fd .DecodeStream (_fafab );if _fbga !=nil {_ag .Log .Debug ("\u0045r\u0072\u006f\u0072\u003a\u0020\u0025v",_fbga );return ;};_ag .Log .Debug ("D\u0065\u0063\u006f\u0064\u0065\u0064\u003a\u0020\u0025\u0073",_egbcb );
}else if _ddge ,_fdegc :=_cbgg .(*_fd .PdfIndirectObject );_fdegc {_ag .Log .Debug ("\u0025\u0054\u0020%\u0076",_ddge .PdfObject ,_ddge .PdfObject );_ag .Log .Debug ("\u0025\u0073",_ddge .PdfObject .String ());};};
// SetPageLabels sets the PageLabels entry in the PDF catalog.
// See section 12.4.2 "Page Labels" (p. 382 PDF32000_2008).
func (_dbbf *PdfWriter )SetPageLabels (pageLabels _fd .PdfObject )error {if pageLabels ==nil {return nil ;};_ag .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");
_dbbf ._fdaca .Set ("\u0050\u0061\u0067\u0065\u004c\u0061\u0062\u0065\u006c\u0073",pageLabels );return _dbbf .addObjects (pageLabels );};func _cafce (_eeaf []byte )[]byte {const _ggdeg =52845;const _abdbg =22719;_efdfab :=55665;for _ ,_caeea :=range _eeaf [:4]{_efdfab =(int (_caeea )+_efdfab )*_ggdeg +_abdbg ;
};_ggfb :=make ([]byte ,len (_eeaf )-4);for _dfdf ,_gbfgd :=range _eeaf [4:]{_ggfb [_dfdf ]=byte (int (_gbfgd )^_efdfab >>8);_efdfab =(int (_gbfgd )+_efdfab )*_ggdeg +_abdbg ;};return _ggfb ;};
// ToPdfObject implements interface PdfModel.
func (_dcc *PdfAction )ToPdfObject ()_fd .PdfObject {_bdb :=_dcc ._bfb ;_ac :=_bdb .PdfObject .(*_fd .PdfObjectDictionary );_ac .Clear ();_ac .Set ("\u0054\u0079\u0070\u0065",_fd .MakeName ("\u0041\u0063\u0074\u0069\u006f\u006e"));_ac .SetIfNotNil ("\u0053",_dcc .S );
_ac .SetIfNotNil ("\u004e\u0065\u0078\u0074",_dcc .Next );return _bdb ;};
// ToPdfObject implements interface PdfModel.
func (_adgd *PdfActionTrans )ToPdfObject ()_fd .PdfObject {_adgd .PdfAction .ToPdfObject ();_eag :=_adgd ._bfb ;_bbd :=_eag .PdfObject .(*_fd .PdfObjectDictionary );_bbd .SetIfNotNil ("\u0053",_fd .MakeName (string (ActionTypeTrans )));_bbd .SetIfNotNil ("\u0054\u0072\u0061n\u0073",_adgd .Trans );
return _eag ;};
// NewLTV returns a new LTV client.
func NewLTV (appender *PdfAppender )(*LTV ,error ){_gfcg :=appender .Reader .DSS ;if _gfcg ==nil {_gfcg =NewDSS ();};if _agced :=_gfcg .GenerateHashMaps ();_agced !=nil {return nil ,_agced ;};return &LTV {CertClient :_ef .NewCertClient (),OCSPClient :_ef .NewOCSPClient (),CRLClient :_ef .NewCRLClient (),SkipExisting :true ,_gaggb :appender ,_fefa :_gfcg },nil ;
};
// ColorFromPdfObjects gets the color from a series of pdf objects (3 for rgb).
func (_dfab *PdfColorspaceDeviceRGB )ColorFromPdfObjects (objects []_fd .PdfObject )(PdfColor ,error ){if len (objects )!=3{return nil ,_ad .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_fagaab ,_fdgf :=_fd .GetNumbersAsFloat (objects );
if _fdgf !=nil {return nil ,_fdgf ;};return _dfab .ColorFromFloats (_fagaab );};func (_dfbae *XObjectImage )getParamsDict ()*_fd .PdfObjectDictionary {_cfbbc :=_fd .MakeDict ();_cfbbc .Set ("\u0057\u0069\u0064t\u0068",_fd .MakeInteger (*_dfbae .Width ));
_cfbbc .Set ("\u0048\u0065\u0069\u0067\u0068\u0074",_fd .MakeInteger (*_dfbae .Height ));_cfbbc .Set ("\u0043o\u006co\u0072\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074\u0073",_fd .MakeInteger (int64 (_dfbae .ColorSpace .GetNumComponents ())));
_cfbbc .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_fd .MakeInteger (*_dfbae .BitsPerComponent ));return _cfbbc ;};
// GetRuneMetrics returns the character metrics for the specified rune.
// A bool flag is returned to indicate whether or not the entry was found.
func (_cdac pdfFontType3 )GetRuneMetrics (r rune )(_cf .CharMetrics ,bool ){_ddabd :=_cdac .Encoder ();if _ddabd ==nil {_ag .Log .Debug ("\u004e\u006f\u0020en\u0063\u006f\u0064\u0065\u0072\u0020\u0066\u006f\u0072\u0020\u0066\u006f\u006e\u0074\u0073\u003d\u0025\u0073",_cdac );
return _cf .CharMetrics {},false ;};_bgfca ,_gfeec :=_ddabd .RuneToCharcode (r );if !_gfeec {if r !=' '{_ag .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 ,_cdac );
};return _cf .CharMetrics {},false ;};_ggff ,_dabga :=_cdac .GetCharMetrics (_bgfca );return _ggff ,_dabga ;};
// ToPdfObject returns the PDF representation of the page resources.
func (_caeege *PdfPageResources )ToPdfObject ()_fd .PdfObject {_dggeb :=_caeege ._adegd ;_dggeb .SetIfNotNil ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e",_caeege .ExtGState );if _caeege ._agaf !=nil {_caeege .ColorSpace =_caeege ._agaf .ToPdfObject ();
};_dggeb .SetIfNotNil ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065",_caeege .ColorSpace );_dggeb .SetIfNotNil ("\u0050a\u0074\u0074\u0065\u0072\u006e",_caeege .Pattern );_dggeb .SetIfNotNil ("\u0053h\u0061\u0064\u0069\u006e\u0067",_caeege .Shading );
_dggeb .SetIfNotNil ("\u0058O\u0062\u006a\u0065\u0063\u0074",_caeege .XObject );_dggeb .SetIfNotNil ("\u0046\u006f\u006e\u0074",_caeege .Font );_dggeb .SetIfNotNil ("\u0050r\u006f\u0063\u0053\u0065\u0074",_caeege .ProcSet );_dggeb .SetIfNotNil ("\u0050\u0072\u006f\u0070\u0065\u0072\u0074\u0069\u0065\u0073",_caeege .Properties );
return _dggeb ;};func (_adgfa *PdfReader )newPdfAnnotationCaretFromDict (_gce *_fd .PdfObjectDictionary )(*PdfAnnotationCaret ,error ){_abde :=PdfAnnotationCaret {};_agbg ,_gcdac :=_adgfa .newPdfAnnotationMarkupFromDict (_gce );if _gcdac !=nil {return nil ,_gcdac ;
};_abde .PdfAnnotationMarkup =_agbg ;_abde .RD =_gce .Get ("\u0052\u0044");_abde .Sy =_gce .Get ("\u0053\u0079");return &_abde ,nil ;};
// ColorToRGB only converts color used with uncolored patterns (defined in underlying colorspace). Does not go into the
// pattern objects and convert those. If that is desired, needs to be done separately. See for example
// grayscale conversion example in unidoc-examples repo.
func (_dcfa *PdfColorspaceSpecialPattern )ColorToRGB (color PdfColor )(PdfColor ,error ){_ddfaac ,_cggab :=color .(*PdfColorPattern );if !_cggab {_ag .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 _ddfaac .Color ==nil {return color ,nil ;};if _dcfa .UnderlyingCS ==nil {return nil ,_ad .New ("\u0075n\u0064\u0065\u0072\u006cy\u0069\u006e\u0067\u0020\u0043S\u0020n\u006ft\u0020\u0064\u0065\u0066\u0069\u006e\u0065d");};
return _dcfa .UnderlyingCS .ColorToRGB (_ddfaac .Color );};
// ToPdfObject implements interface PdfModel.
func (_dee *PdfActionGoToR )ToPdfObject ()_fd .PdfObject {_dee .PdfAction .ToPdfObject ();_eda :=_dee ._bfb ;_aeg :=_eda .PdfObject .(*_fd .PdfObjectDictionary );_aeg .SetIfNotNil ("\u0053",_fd .MakeName (string (ActionTypeGoToR )));if _dee .F !=nil {_aeg .Set ("\u0046",_dee .F .ToPdfObject ());
};_aeg .SetIfNotNil ("\u0044",_dee .D );_aeg .SetIfNotNil ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw",_dee .NewWindow );return _eda ;};func (_gcbd *PdfReader )newPdfAnnotationSquareFromDict (_fbge *_fd .PdfObjectDictionary )(*PdfAnnotationSquare ,error ){_dacc :=PdfAnnotationSquare {};
_ddcg ,_eabcd :=_gcbd .newPdfAnnotationMarkupFromDict (_fbge );if _eabcd !=nil {return nil ,_eabcd ;};_dacc .PdfAnnotationMarkup =_ddcg ;_dacc .BS =_fbge .Get ("\u0042\u0053");_dacc .IC =_fbge .Get ("\u0049\u0043");_dacc .BE =_fbge .Get ("\u0042\u0045");
_dacc .RD =_fbge .Get ("\u0052\u0044");return &_dacc ,nil ;};
// ToPdfObject returns a PDF object representation of the outline.
func (_bdfaf *Outline )ToPdfObject ()_fd .PdfObject {return _bdfaf .ToPdfOutline ().ToPdfObject ()};
// 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 (_aabc byte )byte ;
// ToInteger convert to an integer format.
func (_efcce *PdfColorCalGray )ToInteger (bits int )uint32 {_egge :=_af .Pow (2,float64 (bits ))-1;return uint32 (_egge *_efcce .Val ());};func (_agbgc *PdfReader )newPdfAnnotationRichMediaFromDict (_aeag *_fd .PdfObjectDictionary )(*PdfAnnotationRichMedia ,error ){_aad :=&PdfAnnotationRichMedia {};
_aad .RichMediaSettings =_aeag .Get ("\u0052\u0069\u0063\u0068\u004d\u0065\u0064\u0069\u0061\u0053\u0065\u0074t\u0069\u006e\u0067\u0073");_aad .RichMediaContent =_aeag .Get ("\u0052\u0069c\u0068\u004d\u0065d\u0069\u0061\u0043\u006f\u006e\u0074\u0065\u006e\u0074");
return _aad ,nil ;};
// GetContext returns the action context which contains the specific type-dependent context.
// The context represents the subaction.
func (_ea *PdfAction )GetContext ()PdfModel {if _ea ==nil {return nil ;};return _ea ._ga ;};
// NewPdfColorDeviceGray returns a new grayscale color based on an input grayscale float value in range [0-1].
func NewPdfColorDeviceGray (grayVal float64 )*PdfColorDeviceGray {_egba :=PdfColorDeviceGray (grayVal );return &_egba ;};
// NewPdfActionImportData returns a new "import data" action.
func NewPdfActionImportData ()*PdfActionImportData {_fb :=NewPdfAction ();_dae :=&PdfActionImportData {};_dae .PdfAction =_fb ;_fb .SetContext (_dae );return _dae ;};
// ColorToRGB converts a CMYK32 color to an RGB color.
func (_feaf *PdfColorspaceDeviceCMYK )ColorToRGB (color PdfColor )(PdfColor ,error ){_beefc ,_acbc :=color .(*PdfColorDeviceCMYK );if !_acbc {_ag .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 ,_ad .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_dffb :=_beefc .C ();_fccdf :=_beefc .M ();_gbac :=_beefc .Y ();_aega :=_beefc .K ();_dffb =_dffb *(1-_aega )+_aega ;_fccdf =_fccdf *(1-_aega )+_aega ;
_gbac =_gbac *(1-_aega )+_aega ;_aabgf :=1-_dffb ;_badb :=1-_fccdf ;_dffcc :=1-_gbac ;return NewPdfColorDeviceRGB (_aabgf ,_badb ,_dffcc ),nil ;};
// ToUnicode returns the name of the font's "ToUnicode" field if there is one, or "" if there isn't.
func (_cede *PdfFont )ToUnicode ()string {if _cede .baseFields ()._dgdg ==nil {return "";};return _cede .baseFields ()._dgdg .Name ();};func _abacge (_acdba []byte )bool {if len (_acdba )< 4{return true ;};for _ddbb :=range _acdba [:4]{_eafge :=rune (_ddbb );
if !_df .Is (_df .ASCII_Hex_Digit ,_eafge )&&!_df .IsSpace (_eafge ){return true ;};};return false ;};func (_bebda *PdfColorspaceCalGray )String ()string {return "\u0043a\u006c\u0047\u0072\u0061\u0079"};
// Set applies flag fl to the flag's bitmask and returns the combined flag.
func (_bcce FieldFlag )Set (fl FieldFlag )FieldFlag {return FieldFlag (_bcce .Mask ()|fl .Mask ())};
// ToPdfObject implements interface PdfModel.
func (_abf *PdfActionURI )ToPdfObject ()_fd .PdfObject {_abf .PdfAction .ToPdfObject ();_edf :=_abf ._bfb ;_cc :=_edf .PdfObject .(*_fd .PdfObjectDictionary );_cc .SetIfNotNil ("\u0053",_fd .MakeName (string (ActionTypeURI )));_cc .SetIfNotNil ("\u0055\u0052\u0049",_abf .URI );
_cc .SetIfNotNil ("\u0049\u0073\u004da\u0070",_abf .IsMap );return _edf ;};
// IsCheckbox returns true if the button field represents a checkbox, false otherwise.
func (_bfefb *PdfFieldButton )IsCheckbox ()bool {return _bfefb .GetType ()==ButtonTypeCheckbox };
// 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 ;
// 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 ,*_gbe .File ,error ){const _gded ="\u006d\u006f\u0064\u0065\u006c\u003a\u004e\u0065\u0077\u0050\u0064f\u0052\u0065\u0061\u0064\u0065\u0072\u0046\u0072\u006f\u006dF\u0069\u006c\u0065";
_ebfbg ,_ebaea :=_gbe .Open (pdfFile );if _ebaea !=nil {return nil ,nil ,_ebaea ;};_caag ,_ebaea :=_daab (_ebfbg ,opts ,true ,_gded );if _ebaea !=nil {_ebfbg .Close ();return nil ,nil ,_ebaea ;};return _caag ,_ebfbg ,nil ;};
// ToPdfObject returns the text field dictionary within an indirect object (container).
func (_gbcdf *PdfFieldText )ToPdfObject ()_fd .PdfObject {_gbcdf .PdfField .ToPdfObject ();_ceaa :=_gbcdf ._dffeb ;_dbcd :=_ceaa .PdfObject .(*_fd .PdfObjectDictionary );_dbcd .Set ("\u0046\u0054",_fd .MakeName ("\u0054\u0078"));if _gbcdf .DA !=nil {_dbcd .Set ("\u0044\u0041",_gbcdf .DA );
};if _gbcdf .Q !=nil {_dbcd .Set ("\u0051",_gbcdf .Q );};if _gbcdf .DS !=nil {_dbcd .Set ("\u0044\u0053",_gbcdf .DS );};if _gbcdf .RV !=nil {_dbcd .Set ("\u0052\u0056",_gbcdf .RV );};if _gbcdf .MaxLen !=nil {_dbcd .Set ("\u004d\u0061\u0078\u004c\u0065\u006e",_gbcdf .MaxLen );
};return _ceaa ;};
// ToPdfObject returns the PDF representation of the shading dictionary.
func (_fgdgg *PdfShadingType2 )ToPdfObject ()_fd .PdfObject {_fgdgg .PdfShading .ToPdfObject ();_eeccb ,_beafa :=_fgdgg .getShadingDict ();if _beafa !=nil {_ag .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 _eeccb ==nil {_ag .Log .Error ("\u0053\u0068\u0061\u0064in\u0067\u0020\u0064\u0069\u0063\u0074\u0020\u0069\u0073\u0020\u006e\u0069\u006c");return nil ;};if _fgdgg .Coords !=nil {_eeccb .Set ("\u0043\u006f\u006f\u0072\u0064\u0073",_fgdgg .Coords );
};if _fgdgg .Domain !=nil {_eeccb .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_fgdgg .Domain );};if _fgdgg .Function !=nil {if len (_fgdgg .Function )==1{_eeccb .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_fgdgg .Function [0].ToPdfObject ());
}else {_acfdf :=_fd .MakeArray ();for _ ,_ecgef :=range _fgdgg .Function {_acfdf .Append (_ecgef .ToPdfObject ());};_eeccb .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_acfdf );};};if _fgdgg .Extend !=nil {_eeccb .Set ("\u0045\u0078\u0074\u0065\u006e\u0064",_fgdgg .Extend );
};return _fgdgg ._cdgfd ;};func _adgec (_caac *fontCommon )*pdfFontType0 {return &pdfFontType0 {fontCommon :*_caac }};
// 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 ;_abdg *_fd .PdfIndirectObject ;};
// BytesToCharcodes converts the bytes in a PDF string to character codes.
func (_dcbg *PdfFont )BytesToCharcodes (data []byte )[]_ee .CharCode {_ag .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 _fafe ,_gcfa :=_dcbg ._gbaac .(*pdfFontType0 );_gcfa &&_fafe ._bbbfb !=nil {if _cdge ,_cbaf :=_fafe .bytesToCharcodes (data );_cbaf {return _cdge ;};};var (_ebfg =make ([]_ee .CharCode ,0,len (data )+len (data )%2);_dfbg =_dcbg .baseFields (););if _dfbg ._dgdg !=nil {if _dccf ,_gfdca :=_dfbg ._dgdg .BytesToCharcodes (data );
_gfdca {for _ ,_bbdge :=range _dccf {_ebfg =append (_ebfg ,_ee .CharCode (_bbdge ));};return _ebfg ;};};if _dfbg .isCIDFont (){if len (data )==1{data =[]byte {0,data [0]};};if len (data )%2!=0{_ag .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 _dbgg :=0;_dbgg < len (data );_dbgg +=2{_gfgeb :=uint16 (data [_dbgg ])<<8|uint16 (data [_dbgg +1]);_ebfg =append (_ebfg ,_ee .CharCode (_gfgeb ));};}else {for _ ,_bagd :=range data {_ebfg =append (_ebfg ,_ee .CharCode (_bagd ));
};};return _ebfg ;};
// 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 (_aafc *PdfFont )GetRuneMetrics (r rune )(CharMetrics ,bool ){_eagea :=_aafc .actualFont ();if _eagea ==nil {_ag .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",_aafc ._gbaac );
return _cf .CharMetrics {},false ;};if _gcbee ,_ffabc :=_eagea .GetRuneMetrics (r );_ffabc {return _gcbee ,true ;};if _cbdab ,_gcdfb :=_aafc .GetFontDescriptor ();_gcdfb ==nil &&_cbdab !=nil {return _cf .CharMetrics {Wx :_cbdab ._gfbd },true ;};_ag .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",_aafc );
return _cf .CharMetrics {},false ;};
// ToPdfObject implements interface PdfModel.
func (_cagcf *EmbeddedFile )ToPdfObject ()_fd .PdfObject {_cfce :=_fd .NewFlateEncoder ();_bfcbg ,_ageg :=_fd .MakeStream (_cagcf .Content ,_cfce );if _ageg !=nil {_ag .Log .Debug ("\u0046\u0061\u0069\u006c\u0065d\u0020\u0074\u006f\u0020\u0063\u0072\u0065\u0061\u0074\u0065\u0020\u0065\u006db\u0065\u0064\u0064\u0065\u0064\u0020\u0066\u0069\u006c\u0065\u0020\u0073\u0074\u0072\u0065\u0061\u006d\u003a\u0020\u0025\u0076",_ageg );
return nil ;};_ggdb :=_bfcbg .PdfObjectDictionary ;_ggdb .Set ("\u0054\u0079\u0070\u0065",_fd .MakeName ("\u0045\u006d\u0062e\u0064\u0064\u0065\u0064\u0046\u0069\u006c\u0065"));_ggdb .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fd .MakeEncodedString ("\u0074\u0065\u0078\u0074\u002f\u0070\u006c\u0061\u0069\u006e",true ));
_daebb :=_fd .MakeDict ();_daebb .Set ("\u0043\u0068\u0065\u0063\u006b\u0053\u0075\u006d",_fd .MakeString (_cagcf .Hash [:]));_daebb .Set ("\u0053\u0069\u007a\u0065",_fd .MakeInteger (int64 (len (_cagcf .Content ))));_bbcag :=_cagcf .CreationTime ;if _bbcag .IsZero (){_bbcag =_cd .Now ();
};_agbgcg :=_cagcf .ModTime ;if _agbgcg .IsZero (){_agbgcg =_bbcag ;};_cgeef ,_ageg :=NewPdfDateFromTime (_bbcag );if _ageg !=nil {_ag .Log .Debug ("\u0046\u0061\u0069\u006c\u0065\u0064\u0020\u0074o\u0020\u0063\u0072ea\u0074\u0065\u0020\u0065\u006d\u0062e\u0064\u0064\u0065\u0064\u0020\u0066\u0069\u006c\u0065\u0020\u0063\u0072\u0065\u0061\u0074i\u006f\u006e\u0020\u0064\u0061\u0074\u0065\u003a \u0025\u0076",_ageg );
return nil ;};_fbade ,_ageg :=NewPdfDateFromTime (_agbgcg );if _ageg !=nil {_ag .Log .Debug ("\u0046\u0061\u0069\u006c\u0065\u0064\u0020\u0074o\u0020\u0063\u0072ea\u0074\u0065\u0020\u0065\u006d\u0062e\u0064\u0064\u0065\u0064\u0020\u0066\u0069\u006c\u0065\u0020\u0063\u0072\u0065\u0061\u0074i\u006f\u006e\u0020\u0064\u0061\u0074\u0065\u003a \u0025\u0076",_ageg );
return nil ;};_daebb .Set ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065",_cgeef .ToPdfObject ());_daebb .Set ("\u004do\u0064\u0044\u0061\u0074\u0065",_fbade .ToPdfObject ());_ggdb .Set ("\u0050\u0061\u0072\u0061\u006d\u0073",_daebb );
_adbdg :=_fd .MakeDict ();_adbdg .Set (*_fd .MakeName ("\u0046"),_bfcbg );return _adbdg ;};
// SetDate sets the `M` field of the signature.
func (_dgcbd *PdfSignature )SetDate (date _cd .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";};_dgcbd .M =_fd .MakeString (date .Format (format ));
};
// GetDSS gets the DSS dictionary (ETSI TS 102 778-4 V1.1.1) of the current
// document revision.
func (_ecfa *PdfAppender )GetDSS ()(_eeed *DSS ){return _ecfa ._bgge };func (_dedgf *PdfWriter )writeString (_becfd string ){if _dedgf ._bgfb !=nil {return ;};_bdaea ,_dfdda :=_dedgf ._abgaac .WriteString (_becfd );_dedgf ._bbcab +=int64 (_bdaea );_dedgf ._bgfb =_dfdda ;
};
// 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 (_bbfae *PdfColorspaceDeviceGray )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=1{return nil ,_ad .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_ffe :=vals [0];if _ffe < 0.0||_ffe > 1.0{_ag .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 _ffe < 0.0{_ffe =0.0;}else if _ffe > 1.0{_ffe =1.0;};return NewPdfColorDeviceGray (_ffe ),nil ;};
// NewPdfAnnotationUnderline returns a new text underline annotation.
func NewPdfAnnotationUnderline ()*PdfAnnotationUnderline {_bcb :=NewPdfAnnotation ();_cfed :=&PdfAnnotationUnderline {};_cfed .PdfAnnotation =_bcb ;_cfed .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_bcb .SetContext (_cfed );return _cfed ;};
// ToGoImage converts the unidoc Image to a golang Image structure.
func (_fdabe *Image )ToGoImage ()(_gb .Image ,error ){_ag .Log .Trace ("\u0043\u006f\u006e\u0076er\u0074\u0069\u006e\u0067\u0020\u0074\u006f\u0020\u0067\u006f\u0020\u0069\u006d\u0061g\u0065");_ddgff ,_fcaa :=_gbed .NewImage (int (_fdabe .Width ),int (_fdabe .Height ),int (_fdabe .BitsPerComponent ),_fdabe .ColorComponents ,_fdabe .Data ,_fdabe ._gfffd ,_fdabe ._cdbdc );
if _fcaa !=nil {return nil ,_fcaa ;};return _ddgff ,nil ;};
// SetCatalogMetadata sets the catalog metadata (XMP) stream object.
func (_bcefd *PdfWriter )SetCatalogMetadata (meta _fd .PdfObject )error {if meta ==nil {_bcefd ._fdaca .Remove ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");return nil ;};_dfgcg ,_aegac :=_fd .GetStream (meta );if !_aegac {return _ad .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");
};_bcefd .addObject (_dfgcg );_bcefd ._fdaca .Set ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061",_dfgcg );return nil ;};
// ToPdfObject returns the choice field dictionary within an indirect object (container).
func (_debb *PdfFieldChoice )ToPdfObject ()_fd .PdfObject {_debb .PdfField .ToPdfObject ();_fbbde :=_debb ._dffeb ;_efge :=_fbbde .PdfObject .(*_fd .PdfObjectDictionary );_efge .Set ("\u0046\u0054",_fd .MakeName ("\u0043\u0068"));if _debb .Opt !=nil {_efge .Set ("\u004f\u0070\u0074",_debb .Opt );
};if _debb .TI !=nil {_efge .Set ("\u0054\u0049",_debb .TI );};if _debb .I !=nil {_efge .Set ("\u0049",_debb .I );};return _fbbde ;};
// ToPdfObject implements interface PdfModel.
func (_bba *PdfAnnotationRichMedia )ToPdfObject ()_fd .PdfObject {_bba .PdfAnnotation .ToPdfObject ();_dcdg :=_bba ._aeb ;_acge :=_dcdg .PdfObject .(*_fd .PdfObjectDictionary );_acge .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fd .MakeName ("\u0052i\u0063\u0068\u004d\u0065\u0064\u0069a"));
_acge .SetIfNotNil ("\u0052\u0069\u0063\u0068\u004d\u0065\u0064\u0069\u0061\u0053\u0065\u0074t\u0069\u006e\u0067\u0073",_bba .RichMediaSettings );_acge .SetIfNotNil ("\u0052\u0069c\u0068\u004d\u0065d\u0069\u0061\u0043\u006f\u006e\u0074\u0065\u006e\u0074",_bba .RichMediaContent );
return _dcdg ;};func (_feeace *PdfWriter )writeObjects (){_ag .Log .Trace ("\u0057\u0072\u0069\u0074\u0069\u006e\u0067\u0020\u0025d\u0020\u006f\u0062\u006a",len (_feeace ._agfbf ));_feeace ._bccbb =make (map[int ]crossReference );_feeace ._bccbb [0]=crossReference {Type :0,ObjectNumber :0,Generation :0xFFFF};
if _feeace ._aeffd .ObjectMap !=nil {for _ceaag ,_ebeag :=range _feeace ._aeffd .ObjectMap {if _ceaag ==0{continue ;};if _ebeag .XType ==_fd .XrefTypeObjectStream {_baaca :=crossReference {Type :2,ObjectNumber :_ebeag .OsObjNumber ,Index :_ebeag .OsObjIndex };
_feeace ._bccbb [_ceaag ]=_baaca ;};if _ebeag .XType ==_fd .XrefTypeTableEntry {_gcffg :=crossReference {Type :1,ObjectNumber :_ebeag .ObjectNumber ,Offset :_ebeag .Offset };_feeace ._bccbb [_ceaag ]=_gcffg ;};};};};func _bcbga (_caegd *fontCommon )*pdfCIDFontType2 {return &pdfCIDFontType2 {fontCommon :*_caegd }};
// GetAttachedFiles retrieves all the attached files info and content.
func (_cdecea *PdfReader )GetAttachedFiles ()([]*EmbeddedFile ,error ){_efcfa ,_befde :=_cdecea .GetNameDictionary ();if _befde !=nil {return nil ,_befde ;};_gfdab :=_gfac (_efcfa );if _gfdab .EmbeddedFiles ==nil {return nil ,nil ;};_bddag :=_gfdab .EmbeddedFiles .Get ("\u004e\u0061\u006de\u0073");
_dgfac ,_gfacc :=_bddag .(*_fd .PdfObjectArray );if !_gfacc {return nil ,_ad .New ("\u0049\u006e\u0076\u0061li\u0064\u0020\u004e\u0061\u006d\u0065\u0073\u0020\u0061\u0072\u0072\u0061\u0079");};_cebda :=[]*EmbeddedFile {};for _ggdecb :=1;_ggdecb < len (_dgfac .Elements ());
_ggdecb +=2{if _ggdecb %2!=0{_bbgbdc :=_dgfac .Get (_ggdecb );_bgddg ,_cffac :=NewPdfFilespecFromObj (_bbgbdc );if _cffac !=nil {return nil ,_cffac ;};_eddca ,_cffac :=NewEmbeddedFileFromObject (_bgddg .EF );if _cffac !=nil {return nil ,_cffac ;};_adedb ,_baab :=_bgddg .F .(*_fd .PdfObjectString );
if _baab {_eddca .Name =_adedb .Str ();};_eddca .Description =_bgddg .Desc .WriteString ();switch _bgddg .AFRelationship .WriteString (){case "\u0053\u006f\u0075\u0072\u0063\u0065":_eddca .Relationship =RelationshipSource ;case "\u0044\u0061\u0074\u0061":_eddca .Relationship =RelationshipData ;
case "A\u006c\u0074\u0065\u0072\u006e\u0061\u0074\u0069\u0076\u0065":_eddca .Relationship =RelationshipAlternative ;case "\u0053\u0075\u0070\u0070\u006c\u0065\u006d\u0065\u006e\u0074":_eddca .Relationship =RelationshipSupplement ;default:_eddca .Relationship =RelationshipUnspecified ;
};_cebda =append (_cebda ,_eddca );};};return _cebda ,nil ;};func _edeca ()string {_feadd .Lock ();defer _feadd .Unlock ();if len (_feebde )> 0{return _feebde ;};return "\u0055n\u0069\u0044\u006f\u0063 \u002d\u0020\u0068\u0074\u0074p\u003a/\u002fu\u006e\u0069\u0064\u006f\u0063\u002e\u0069o";
};
// AllFields returns a flattened list of all fields in the form.
func (_edad *PdfAcroForm )AllFields ()[]*PdfField {if _edad ==nil {return nil ;};var _dcag []*PdfField ;if _edad .Fields !=nil {for _ ,_cafbb :=range *_edad .Fields {_dcag =append (_dcag ,_cdba (_cafbb )...);};};return _dcag ;};func _fgcae (_abgefe *_fd .PdfObjectDictionary )(*PdfShadingType2 ,error ){_gffbb :=PdfShadingType2 {};
_adceg :=_abgefe .Get ("\u0043\u006f\u006f\u0072\u0064\u0073");if _adceg ==nil {_ag .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 ;};_bdgcg ,_cdgfde :=_adceg .(*_fd .PdfObjectArray );if !_cdgfde {_ag .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",_adceg );
return nil ,_ad .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};if _bdgcg .Len ()!=4{_ag .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",_bdgcg .Len ());
return nil ,_ad .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0061\u0074\u0074\u0072i\u0062\u0075\u0074\u0065");};_gffbb .Coords =_bdgcg ;if _dcabgd :=_abgefe .Get ("\u0044\u006f\u006d\u0061\u0069\u006e");_dcabgd !=nil {_dcabgd =_fd .TraceToDirectObject (_dcabgd );
_aacbf ,_defca :=_dcabgd .(*_fd .PdfObjectArray );if !_defca {_ag .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",_dcabgd );return nil ,_ad .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");
};_gffbb .Domain =_aacbf ;};_adceg =_abgefe .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");if _adceg ==nil {_ag .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 ;};_gffbb .Function =[]PdfFunction {};if _afbd ,_fgbed :=_adceg .(*_fd .PdfObjectArray );_fgbed {for _ ,_gbge :=range _afbd .Elements (){_fbece ,_ffggc :=_badad (_gbge );if _ffggc !=nil {_ag .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",_ffggc );
return nil ,_ffggc ;};_gffbb .Function =append (_gffbb .Function ,_fbece );};}else {_eccfg ,_fgcgf :=_badad (_adceg );if _fgcgf !=nil {_ag .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",_fgcgf );
return nil ,_fgcgf ;};_gffbb .Function =append (_gffbb .Function ,_eccfg );};if _bedea :=_abgefe .Get ("\u0045\u0078\u0074\u0065\u006e\u0064");_bedea !=nil {_bedea =_fd .TraceToDirectObject (_bedea );_eedbb ,_bafgf :=_bedea .(*_fd .PdfObjectArray );if !_bafgf {_ag .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",_bedea );
return nil ,_fd .ErrTypeError ;};if _eedbb .Len ()!=2{_ag .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",_eedbb .Len ());return nil ,ErrInvalidAttribute ;
};_gffbb .Extend =_eedbb ;};return &_gffbb ,nil ;};
// SetCatalogMarkInfo sets the catalog MarkInfo dictionary.
func (_ecfce *PdfWriter )SetCatalogMarkInfo (info _fd .PdfObject )error {if info ==nil {_ecfce ._fdaca .Remove ("\u004d\u0061\u0072\u006b\u0049\u006e\u0066\u006f");return nil ;};_ecfce .addObject (info );_ecfce ._fdaca .Set ("\u004d\u0061\u0072\u006b\u0049\u006e\u0066\u006f",info );
return nil ;};
// 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 *_fd .PdfObjectArray ;AlternateSpace PdfColorspace ;TintTransform PdfFunction ;Attributes *PdfColorspaceDeviceNAttributes ;_eebe *_fd .PdfIndirectObject ;};func (_adeb *PdfReader )traverseObjectData (_cbbb _fd .PdfObject )error {return _fd .ResolveReferencesDeep (_cbbb ,_adeb ._cedebc );
};
// 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 (_affeb *Image )Resample (targetBitsPerComponent int64 ){if _affeb .BitsPerComponent ==targetBitsPerComponent {return ;};_egfcf :=_affeb .GetSamples ();if targetBitsPerComponent < _affeb .BitsPerComponent {_cgagg :=_affeb .BitsPerComponent -targetBitsPerComponent ;
for _bfea :=range _egfcf {_egfcf [_bfea ]>>=uint (_cgagg );};}else if targetBitsPerComponent > _affeb .BitsPerComponent {_ebbbf :=targetBitsPerComponent -_affeb .BitsPerComponent ;for _bfbg :=range _egfcf {_egfcf [_bfbg ]<<=uint (_ebbbf );};};_affeb .BitsPerComponent =targetBitsPerComponent ;
if _affeb .BitsPerComponent < 8{_affeb .resampleLowBits (_egfcf );return ;};_bfeb :=_gbed .BytesPerLine (int (_affeb .Width ),int (_affeb .BitsPerComponent ),_affeb .ColorComponents );_ffgb :=make ([]byte ,_bfeb *int (_affeb .Height ));var (_ggecc ,_daddg ,_ebfee ,_fffag int ;
_aecae uint32 ;);for _ebfee =0;_ebfee < int (_affeb .Height );_ebfee ++{_ggecc =_ebfee *_bfeb ;_daddg =(_ebfee +1)*_bfeb -1;_dfggd :=_bg .ResampleUint32 (_egfcf [_ggecc :_daddg ],int (targetBitsPerComponent ),8);for _fffag ,_aecae =range _dfggd {_ffgb [_fffag +_ggecc ]=byte (_aecae );
};};_affeb .Data =_ffgb ;};
// Clear clears flag fl from the flag and returns the resulting flag.
func (_bcfa FieldFlag )Clear (fl FieldFlag )FieldFlag {return FieldFlag (_bcfa .Mask ()&^fl .Mask ())};func _bdcba (_gdff *fontCommon )*pdfFontSimple {return &pdfFontSimple {fontCommon :*_gdff }};
// ToPdfObject returns the PDF representation of the shading dictionary.
func (_eeabf *PdfShadingType3 )ToPdfObject ()_fd .PdfObject {_eeabf .PdfShading .ToPdfObject ();_fdega ,_degdaa :=_eeabf .getShadingDict ();if _degdaa !=nil {_ag .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 _eeabf .Coords !=nil {_fdega .Set ("\u0043\u006f\u006f\u0072\u0064\u0073",_eeabf .Coords );};if _eeabf .Domain !=nil {_fdega .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_eeabf .Domain );};if _eeabf .Function !=nil {if len (_eeabf .Function )==1{_fdega .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_eeabf .Function [0].ToPdfObject ());
}else {_aeaf :=_fd .MakeArray ();for _ ,_gcdeb :=range _eeabf .Function {_aeaf .Append (_gcdeb .ToPdfObject ());};_fdega .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_aeaf );};};if _eeabf .Extend !=nil {_fdega .Set ("\u0045\u0078\u0074\u0065\u006e\u0064",_eeabf .Extend );
};return _eeabf ._cdgfd ;};
// GetContainingPdfObject returns the container of the resources object (indirect object).
func (_bedfb *PdfPageResources )GetContainingPdfObject ()_fd .PdfObject {return _bedfb ._adegd };
// GetFontDescriptor returns the font descriptor for `font`.
func (_dced PdfFont )GetFontDescriptor ()(*PdfFontDescriptor ,error ){return _dced ._gbaac .getFontDescriptor (),nil ;};
// NewBorderStyle returns an initialized PdfBorderStyle.
func NewBorderStyle ()*PdfBorderStyle {_dbfa :=&PdfBorderStyle {};return _dbfa };func (_acaf *pdfFontType0 )getFontDescriptor ()*PdfFontDescriptor {if _acaf ._babe ==nil &&_acaf .DescendantFont !=nil {return _acaf .DescendantFont .FontDescriptor ();};return _acaf ._babe ;
};func (_febgb *PdfWriter )makeOffSetReference (_abddg int64 ){_bafgc :=_dc .Sprintf ("\u0073\u0074\u0061\u0072\u0074\u0078\u0072\u0065\u0066\u000a\u0025\u0064\u000a",_abddg );_febgb .writeString (_bafgc );_febgb .writeString ("\u0025\u0025\u0045\u004f\u0046\u000a");
};
// ToPdfObject returns the PdfFontDescriptor as a PDF dictionary inside an indirect object.
func (_cfdce *PdfFontDescriptor )ToPdfObject ()_fd .PdfObject {_ccde :=_fd .MakeDict ();if _cfdce ._aefcd ==nil {_cfdce ._aefcd =&_fd .PdfIndirectObject {};};_cfdce ._aefcd .PdfObject =_ccde ;_ccde .Set ("\u0054\u0079\u0070\u0065",_fd .MakeName ("\u0046\u006f\u006e\u0074\u0044\u0065\u0073\u0063\u0072i\u0070\u0074\u006f\u0072"));
if _cfdce .FontName !=nil {_ccde .Set ("\u0046\u006f\u006e\u0074\u004e\u0061\u006d\u0065",_cfdce .FontName );};if _cfdce .FontFamily !=nil {_ccde .Set ("\u0046\u006f\u006e\u0074\u0046\u0061\u006d\u0069\u006c\u0079",_cfdce .FontFamily );};if _cfdce .FontStretch !=nil {_ccde .Set ("F\u006f\u006e\u0074\u0053\u0074\u0072\u0065\u0074\u0063\u0068",_cfdce .FontStretch );
};if _cfdce .FontWeight !=nil {_ccde .Set ("\u0046\u006f\u006e\u0074\u0057\u0065\u0069\u0067\u0068\u0074",_cfdce .FontWeight );};if _cfdce .Flags !=nil {_ccde .Set ("\u0046\u006c\u0061g\u0073",_cfdce .Flags );};if _cfdce .FontBBox !=nil {_ccde .Set ("\u0046\u006f\u006e\u0074\u0042\u0042\u006f\u0078",_cfdce .FontBBox );
};if _cfdce .ItalicAngle !=nil {_ccde .Set ("I\u0074\u0061\u006c\u0069\u0063\u0041\u006e\u0067\u006c\u0065",_cfdce .ItalicAngle );};if _cfdce .Ascent !=nil {_ccde .Set ("\u0041\u0073\u0063\u0065\u006e\u0074",_cfdce .Ascent );};if _cfdce .Descent !=nil {_ccde .Set ("\u0044e\u0073\u0063\u0065\u006e\u0074",_cfdce .Descent );
};if _cfdce .Leading !=nil {_ccde .Set ("\u004ce\u0061\u0064\u0069\u006e\u0067",_cfdce .Leading );};if _cfdce .CapHeight !=nil {_ccde .Set ("\u0043a\u0070\u0048\u0065\u0069\u0067\u0068t",_cfdce .CapHeight );};if _cfdce .XHeight !=nil {_ccde .Set ("\u0058H\u0065\u0069\u0067\u0068\u0074",_cfdce .XHeight );
};if _cfdce .StemV !=nil {_ccde .Set ("\u0053\u0074\u0065m\u0056",_cfdce .StemV );};if _cfdce .StemH !=nil {_ccde .Set ("\u0053\u0074\u0065m\u0048",_cfdce .StemH );};if _cfdce .AvgWidth !=nil {_ccde .Set ("\u0041\u0076\u0067\u0057\u0069\u0064\u0074\u0068",_cfdce .AvgWidth );
};if _cfdce .MaxWidth !=nil {_ccde .Set ("\u004d\u0061\u0078\u0057\u0069\u0064\u0074\u0068",_cfdce .MaxWidth );};if _cfdce .MissingWidth !=nil {_ccde .Set ("\u004d\u0069\u0073s\u0069\u006e\u0067\u0057\u0069\u0064\u0074\u0068",_cfdce .MissingWidth );};if _cfdce .FontFile !=nil {_ccde .Set ("\u0046\u006f\u006e\u0074\u0046\u0069\u006c\u0065",_cfdce .FontFile );
};if _cfdce .FontFile2 !=nil {_ccde .Set ("\u0046o\u006e\u0074\u0046\u0069\u006c\u00652",_cfdce .FontFile2 );};if _cfdce .FontFile3 !=nil {_ccde .Set ("\u0046o\u006e\u0074\u0046\u0069\u006c\u00653",_cfdce .FontFile3 );};if _cfdce .CharSet !=nil {_ccde .Set ("\u0043h\u0061\u0072\u0053\u0065\u0074",_cfdce .CharSet );
};if _cfdce .Style !=nil {_ccde .Set ("\u0046\u006f\u006e\u0074\u004e\u0061\u006d\u0065",_cfdce .FontName );};if _cfdce .Lang !=nil {_ccde .Set ("\u004c\u0061\u006e\u0067",_cfdce .Lang );};if _cfdce .FD !=nil {_ccde .Set ("\u0046\u0044",_cfdce .FD );};
if _cfdce .CIDSet !=nil {_ccde .Set ("\u0043\u0049\u0044\u0053\u0065\u0074",_cfdce .CIDSet );};return _cfdce ._aefcd ;};
// PdfWriter handles outputing PDF content.
type PdfWriter struct{_defdd *_fd .PdfIndirectObject ;_eecde *_fd .PdfIndirectObject ;_efed map[_fd .PdfObject ]struct{};_agfbf []_fd .PdfObject ;_agfaff map[_fd .PdfObject ]struct{};_bbebbe []*_fd .PdfIndirectObject ;_adfcff *PdfOutlineTreeNode ;_fdaca *_fd .PdfObjectDictionary ;
_cdef []_fd .PdfObject ;_ggdfa *_fd .PdfIndirectObject ;_abgaac *_b .Writer ;_bbcab int64 ;_bgfb error ;_egadf *_fd .PdfCrypt ;_dbecf *_fd .PdfObjectDictionary ;_abbcc *_fd .PdfIndirectObject ;_bgdef *_fd .PdfObjectArray ;_ggaddg _fd .Version ;_bgced *bool ;
_aaabd map[_fd .PdfObject ][]*_fd .PdfObjectDictionary ;_agdg *PdfAcroForm ;_gdabc *Names ;_cffdf Optimizer ;_fagbg StandardApplier ;_bccbb map[int ]crossReference ;_dfgae int64 ;ObjNumOffset int ;_fbgg bool ;_aeffd _fd .XrefTable ;_ecfc int64 ;_bfdbd int64 ;
_ddgad map[_fd .PdfObject ]int64 ;_bagca map[_fd .PdfObject ]struct{};_cdfgf string ;_adef []*PdfOutputIntent ;_cgde bool ;_gaeaa ,_cgaga string ;};func (_egab *PdfReader )newPdfAnnotationUnderlineFromDict (_dcd *_fd .PdfObjectDictionary )(*PdfAnnotationUnderline ,error ){_efcb :=PdfAnnotationUnderline {};
_cbba ,_bdd :=_egab .newPdfAnnotationMarkupFromDict (_dcd );if _bdd !=nil {return nil ,_bdd ;};_efcb .PdfAnnotationMarkup =_cbba ;_efcb .QuadPoints =_dcd .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");return &_efcb ,nil ;};
// NewEmbeddedFileFromContent construct a new EmbeddedFile from supplied file content.
func NewEmbeddedFileFromContent (content []byte )(*EmbeddedFile ,error ){_aabgc :=_dff .Detect (content );_bdde :=_dad .Sum (content );_fdbg :=&EmbeddedFile {Name :"\u0061\u0074\u0074\u0061\u0063\u0068\u006d\u0065\u006e\u0074",Content :content ,FileType :_aabgc .String (),Hash :_f .EncodeToString (_bdde [:])};
return _fdbg ,nil ;};
// ToPdfObject returns the PDF representation of the shading dictionary.
func (_gbceb *PdfShadingType1 )ToPdfObject ()_fd .PdfObject {_gbceb .PdfShading .ToPdfObject ();_ffdac ,_cbafcb :=_gbceb .getShadingDict ();if _cbafcb !=nil {_ag .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 _gbceb .Domain !=nil {_ffdac .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_gbceb .Domain );};if _gbceb .Matrix !=nil {_ffdac .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_gbceb .Matrix );};if _gbceb .Function !=nil {if len (_gbceb .Function )==1{_ffdac .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_gbceb .Function [0].ToPdfObject ());
}else {_bfde :=_fd .MakeArray ();for _ ,_ffddd :=range _gbceb .Function {_bfde .Append (_ffddd .ToPdfObject ());};_ffdac .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_bfde );};};return _gbceb ._cdgfd ;};
// NewPdfActionThread returns a new "thread" action.
func NewPdfActionThread ()*PdfActionThread {_add :=NewPdfAction ();_dac :=&PdfActionThread {};_dac .PdfAction =_add ;_add .SetContext (_dac );return _dac ;};
// GetCatalogViewerPreferences gets catalog ViewerPreferences object.
func (_bdfg *PdfReader )GetCatalogViewerPreferences ()(_fd .PdfObject ,bool ){if _bdfg ._gabca ==nil {return nil ,false ;};_afdd :=_bdfg ._gabca .Get ("\u0056\u0069\u0065\u0077\u0065\u0072\u0050\u0072\u0065\u0066\u0065\u0072e\u006e\u0063\u0065\u0073");
return _afdd ,_afdd !=nil ;};
// ColorFromPdfObjects returns a new PdfColor based on the input slice of color
// components. The slice should contain a single PdfObjectFloat element in
// range 0-1.
func (_afab *PdfColorspaceCalGray )ColorFromPdfObjects (objects []_fd .PdfObject )(PdfColor ,error ){if len (objects )!=1{return nil ,_ad .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_gcbdb ,_ddgg :=_fd .GetNumbersAsFloat (objects );
if _ddgg !=nil {return nil ,_ddgg ;};return _afab .ColorFromFloats (_gcbdb );};
// PdfColorDeviceCMYK is a CMYK32 color, where each component is defined in the range 0.0 - 1.0 where 1.0 is the primary intensity.
type PdfColorDeviceCMYK [4]float64 ;func _gfafb (_fbfg []*_fd .PdfObjectStream )*_fd .PdfObjectArray {if len (_fbfg )==0{return nil ;};_bbce :=make ([]_fd .PdfObject ,0,len (_fbfg ));for _ ,_dddbdb :=range _fbfg {_bbce =append (_bbce ,_dddbdb );};return _fd .MakeArray (_bbce ...);
};var ErrColorOutOfRange =_ad .New ("\u0063o\u006co\u0072\u0020\u006f\u0075\u0074 \u006f\u0066 \u0072\u0061\u006e\u0067\u0065");func (_gfeb *PdfReader )newPdfPageFromDict (_dfdb *_fd .PdfObjectDictionary )(*PdfPage ,error ){_cggef :=NewPdfPage ();_cggef ._gaec =_dfdb ;
_cggef ._cadc =*_dfdb ;_decfd :=*_dfdb ;_aece ,_dcfdg :=_decfd .Get ("\u0054\u0079\u0070\u0065").(*_fd .PdfObjectName );if !_dcfdg {return nil ,_ad .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 *_aece !="\u0050\u0061\u0067\u0065"{return nil ,_ad .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 _gbafe :=_decfd .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");
_gbafe !=nil {_cggef .Parent =_gbafe ;};if _fgce :=_decfd .Get ("\u004c\u0061\u0073t\u004d\u006f\u0064\u0069\u0066\u0069\u0065\u0064");_fgce !=nil {_aaeed ,_aggdb :=_fd .GetString (_fgce );if !_aggdb {return nil ,_ad .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");
};_gbcbb ,_febce :=NewPdfDate (_aaeed .Str ());if _febce !=nil {return nil ,_febce ;};_cggef .LastModified =&_gbcbb ;};if _cgcd :=_decfd .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");_cgcd !=nil &&!_fd .IsNullObject (_cgcd ){_fgef ,_febg :=_fd .GetDict (_cgcd );
if !_febg {return nil ,_dc .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",_cgcd );};var _ggcc error ;_cggef .Resources ,_ggcc =NewPdfPageResourcesFromDict (_fgef );
if _ggcc !=nil {return nil ,_ggcc ;};}else {_fbgff ,_becab :=_cggef .getParentResources ();if _becab !=nil {return nil ,_becab ;};if _fbgff ==nil {_fbgff =NewPdfPageResources ();};_cggef .Resources =_fbgff ;};if _cabc :=_decfd .Get ("\u004d\u0065\u0064\u0069\u0061\u0042\u006f\u0078");
_cabc !=nil {_fabd ,_edbfc :=_fd .GetArray (_cabc );if !_edbfc {return nil ,_ad .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 _agfgg error ;
_cggef .MediaBox ,_agfgg =NewPdfRectangle (*_fabd );if _agfgg !=nil {return nil ,_agfgg ;};};if _gfgca :=_decfd .Get ("\u0043r\u006f\u0070\u0042\u006f\u0078");_gfgca !=nil {_bebdaf ,_cdagd :=_fd .GetArray (_gfgca );if !_cdagd {return nil ,_ad .New ("\u0070a\u0067\u0065\u0020\u0043r\u006f\u0070\u0042\u006f\u0078 \u006eo\u0074 \u0061\u006e\u0020\u0061\u0072\u0072\u0061y");
};var _gaed error ;_cggef .CropBox ,_gaed =NewPdfRectangle (*_bebdaf );if _gaed !=nil {return nil ,_gaed ;};};if _gdbad :=_decfd .Get ("\u0042\u006c\u0065\u0065\u0064\u0042\u006f\u0078");_gdbad !=nil {_geac ,_aabgca :=_fd .GetArray (_gdbad );if !_aabgca {return nil ,_ad .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 _cbcacc error ;_cggef .BleedBox ,_cbcacc =NewPdfRectangle (*_geac );if _cbcacc !=nil {return nil ,_cbcacc ;};};if _fdggd :=_decfd .Get ("\u0054r\u0069\u006d\u0042\u006f\u0078");_fdggd !=nil {_fgbbf ,_effd :=_fd .GetArray (_fdggd );if !_effd {return nil ,_ad .New ("\u0070a\u0067\u0065\u0020\u0054r\u0069\u006d\u0042\u006f\u0078 \u006eo\u0074 \u0061\u006e\u0020\u0061\u0072\u0072\u0061y");
};var _ebgf error ;_cggef .TrimBox ,_ebgf =NewPdfRectangle (*_fgbbf );if _ebgf !=nil {return nil ,_ebgf ;};};if _agcb :=_decfd .Get ("\u0041\u0072\u0074\u0042\u006f\u0078");_agcb !=nil {_aggcf ,_bbbea :=_fd .GetArray (_agcb );if !_bbbea {return nil ,_ad .New ("\u0070a\u0067\u0065\u0020\u0041\u0072\u0074\u0042\u006f\u0078\u0020\u006eo\u0074\u0020\u0061\u006e\u0020\u0061\u0072\u0072\u0061\u0079");
};var _cgbbd error ;_cggef .ArtBox ,_cgbbd =NewPdfRectangle (*_aggcf );if _cgbbd !=nil {return nil ,_cgbbd ;};};if _edeb :=_decfd .Get ("\u0042\u006f\u0078C\u006f\u006c\u006f\u0072\u0049\u006e\u0066\u006f");_edeb !=nil {_cggef .BoxColorInfo =_edeb ;};if _acaea :=_decfd .Get ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073");
_acaea !=nil {_cggef .Contents =_acaea ;};if _cfgea :=_decfd .Get ("\u0052\u006f\u0074\u0061\u0074\u0065");_cfgea !=nil {_bdggb ,_dagcg :=_fd .GetNumberAsInt64 (_cfgea );if _dagcg !=nil {return nil ,_ad .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");
};_cggef .Rotate =&_bdggb ;};if _bgaeg :=_decfd .Get ("\u0047\u0072\u006fu\u0070");_bgaeg !=nil {_cggef .Group =_bgaeg ;};if _egagc :=_decfd .Get ("\u0054\u0068\u0075m\u0062");_egagc !=nil {_cggef .Thumb =_egagc ;};if _bgbaa :=_decfd .Get ("\u0042");_bgbaa !=nil {_cggef .B =_bgbaa ;
};if _cgecdf :=_decfd .Get ("\u0044\u0075\u0072");_cgecdf !=nil {_cggef .Dur =_cgecdf ;};if _dcgf :=_decfd .Get ("\u0054\u0072\u0061n\u0073");_dcgf !=nil {_cggef .Trans =_dcgf ;};if _eafc :=_decfd .Get ("\u0041\u0041");_eafc !=nil {_cggef .AA =_eafc ;};
if _dbeb :=_decfd .Get ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");_dbeb !=nil {_cggef .Metadata =_dbeb ;};if _gdfbc :=_decfd .Get ("\u0050i\u0065\u0063\u0065\u0049\u006e\u0066o");_gdfbc !=nil {_cggef .PieceInfo =_gdfbc ;};if _gbea :=_decfd .Get ("\u0053\u0074\u0072\u0075\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074\u0073");
_gbea !=nil {_cggef .StructParents =_gbea ;};if _gbgf :=_decfd .Get ("\u0049\u0044");_gbgf !=nil {_cggef .ID =_gbgf ;};if _acegg :=_decfd .Get ("\u0050\u005a");_acegg !=nil {_cggef .PZ =_acegg ;};if _accc :=_decfd .Get ("\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006fn\u0049\u006e\u0066\u006f");
_accc !=nil {_cggef .SeparationInfo =_accc ;};if _agbege :=_decfd .Get ("\u0054\u0061\u0062\u0073");_agbege !=nil {_cggef .Tabs =_agbege ;};if _efccb :=_decfd .Get ("T\u0065m\u0070\u006c\u0061\u0074\u0065\u0049\u006e\u0073t\u0061\u006e\u0074\u0069at\u0065\u0064");
_efccb !=nil {_cggef .TemplateInstantiated =_efccb ;};if _efaecd :=_decfd .Get ("\u0050r\u0065\u0073\u0053\u0074\u0065\u0070s");_efaecd !=nil {_cggef .PresSteps =_efaecd ;};if _ffafg :=_decfd .Get ("\u0055\u0073\u0065\u0072\u0055\u006e\u0069\u0074");_ffafg !=nil {_cggef .UserUnit =_ffafg ;
};if _dcebe :=_decfd .Get ("\u0056\u0050");_dcebe !=nil {_cggef .VP =_dcebe ;};if _geegf :=_decfd .Get ("\u0041\u006e\u006e\u006f\u0074\u0073");_geegf !=nil {_cggef .Annots =_geegf ;};_cggef ._dfaff =_gfeb ;return _cggef ,nil ;};
// GetContainingPdfObject returns the container of the outline item (indirect object).
func (_dggb *PdfOutlineItem )GetContainingPdfObject ()_fd .PdfObject {return _dggb ._ecga };
// IsValid checks if the given pdf output intent type is valid.
func (_ecbaf PdfOutputIntentType )IsValid ()bool {return _ecbaf >=PdfOutputIntentTypeA1 &&_ecbaf <=PdfOutputIntentTypeX ;};
// GetCharMetrics returns the char metrics for character code `code`.
func (_dbda pdfFontType0 )GetCharMetrics (code _ee .CharCode )(_cf .CharMetrics ,bool ){if _dbda .DescendantFont ==nil {_ag .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",_dbda );
return _cf .CharMetrics {},false ;};return _dbda .DescendantFont .GetCharMetrics (code );};
// ToPdfObject converts the PdfFont object to its PDF representation.
func (_ddce *PdfFont )ToPdfObject ()_fd .PdfObject {if _ddce ._gbaac ==nil {_ag .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 _fd .MakeNull ();
};return _ddce ._gbaac .ToPdfObject ();};
// SetNamedDestinations sets the Dests entry in the PDF catalog.
// See section 12.3.2.3 "Named Destinations" (p. 367 PDF32000_2008).
func (_dfedb *PdfWriter )SetNamedDestinations (dests _fd .PdfObject )error {if dests ==nil {return nil ;};_ag .Log .Trace ("\u0053e\u0074\u0074\u0069\u006e\u0067\u0020\u0063\u0061\u0074\u0061\u006co\u0067\u0020\u0044\u0065\u0073\u0074\u0073\u002e\u002e\u002e");
_dfedb ._fdaca .Set ("\u0044\u0065\u0073t\u0073",dests );return _dfedb .addObjects (dests );};
// NewPdfColorspaceCalGray returns a new CalGray colorspace object.
func NewPdfColorspaceCalGray ()*PdfColorspaceCalGray {_accgd :=&PdfColorspaceCalGray {};_accgd .BlackPoint =[]float64 {0.0,0.0,0.0};_accgd .Gamma =1;return _accgd ;};func (_cfgg *PdfReader )newPdfAnnotationPrinterMarkFromDict (_dafe *_fd .PdfObjectDictionary )(*PdfAnnotationPrinterMark ,error ){_aaad :=PdfAnnotationPrinterMark {};
_aaad .MN =_dafe .Get ("\u004d\u004e");return &_aaad ,nil ;};
// ToPdfObject returns the button field dictionary within an indirect object.
func (_fafa *PdfFieldButton )ToPdfObject ()_fd .PdfObject {_fafa .PdfField .ToPdfObject ();_fegd :=_fafa ._dffeb ;_dcgc :=_fegd .PdfObject .(*_fd .PdfObjectDictionary );_dcgc .Set ("\u0046\u0054",_fd .MakeName ("\u0042\u0074\u006e"));if _fafa .Opt !=nil {_dcgc .Set ("\u004f\u0070\u0074",_fafa .Opt );
};return _fegd ;};
// ToPdfObject implements interface PdfModel.
func (_fbgf *PdfAnnotationSquare )ToPdfObject ()_fd .PdfObject {_fbgf .PdfAnnotation .ToPdfObject ();_dbab :=_fbgf ._aeb ;_ecf :=_dbab .PdfObject .(*_fd .PdfObjectDictionary );if _fbgf .PdfAnnotationMarkup !=nil {_fbgf .PdfAnnotationMarkup .appendToPdfDictionary (_ecf );
};_ecf .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fd .MakeName ("\u0053\u0071\u0075\u0061\u0072\u0065"));_ecf .SetIfNotNil ("\u0042\u0053",_fbgf .BS );_ecf .SetIfNotNil ("\u0049\u0043",_fbgf .IC );_ecf .SetIfNotNil ("\u0042\u0045",_fbgf .BE );
_ecf .SetIfNotNil ("\u0052\u0044",_fbgf .RD );return _dbab ;};func _cceab (_gccgg _fd .PdfObject )(*PdfShading ,error ){_gffge :=&PdfShading {};var _bfab *_fd .PdfObjectDictionary ;if _ddgggg ,_gccd :=_fd .GetIndirect (_gccgg );_gccd {_gffge ._cdgfd =_ddgggg ;
_dcggf ,_abcag :=_ddgggg .PdfObject .(*_fd .PdfObjectDictionary );if !_abcag {_ag .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 ,_fd .ErrTypeError ;
};_bfab =_dcggf ;}else if _gcag ,_becbe :=_fd .GetStream (_gccgg );_becbe {_gffge ._cdgfd =_gcag ;_bfab =_gcag .PdfObjectDictionary ;}else if _cbadg ,_cbgfe :=_fd .GetDict (_gccgg );_cbgfe {_gffge ._cdgfd =_cbadg ;_bfab =_cbadg ;}else {_ag .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",_gccgg );
return nil ,_fd .ErrTypeError ;};if _bfab ==nil {_ag .Log .Debug ("\u0044i\u0063t\u0069\u006f\u006e\u0061\u0072y\u0020\u006di\u0073\u0073\u0069\u006e\u0067");return nil ,_ad .New ("\u0064\u0069\u0063t\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};
_gccgg =_bfab .Get ("S\u0068\u0061\u0064\u0069\u006e\u0067\u0054\u0079\u0070\u0065");if _gccgg ==nil {_ag .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 ;};_gccgg =_fd .TraceToDirectObject (_gccgg );_bfccc ,_ffbcb :=_gccgg .(*_fd .PdfObjectInteger );if !_ffbcb {_ag .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",_gccgg );
return nil ,_fd .ErrTypeError ;};if *_bfccc < 1||*_bfccc > 7{_ag .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",*_bfccc );
return nil ,_fd .ErrTypeError ;};_gffge .ShadingType =_bfccc ;_gccgg =_bfab .Get ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065");if _gccgg ==nil {_ag .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 ;};_fggage ,_dccdg :=NewPdfColorspaceFromPdfObject (_gccgg );if _dccdg !=nil {_ag .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",_dccdg );
return nil ,_dccdg ;};_gffge .ColorSpace =_fggage ;_gccgg =_bfab .Get ("\u0042\u0061\u0063\u006b\u0067\u0072\u006f\u0075\u006e\u0064");if _gccgg !=nil {_gccgg =_fd .TraceToDirectObject (_gccgg );_bege ,_fgadcd :=_gccgg .(*_fd .PdfObjectArray );if !_fgadcd {_ag .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)",_gccgg );
return nil ,_fd .ErrTypeError ;};_gffge .Background =_bege ;};_gccgg =_bfab .Get ("\u0042\u0042\u006f\u0078");if _gccgg !=nil {_gccgg =_fd .TraceToDirectObject (_gccgg );_efcg ,_fdagd :=_gccgg .(*_fd .PdfObjectArray );if !_fdagd {_ag .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)",_gccgg );
return nil ,_fd .ErrTypeError ;};_bcdeb ,_fddb :=NewPdfRectangle (*_efcg );if _fddb !=nil {_ag .Log .Debug ("\u0042\u0042\u006f\u0078\u0020\u0065\u0072\u0072\u006fr\u003a\u0020\u0025\u0076",_fddb );return nil ,_fddb ;};_gffge .BBox =_bcdeb ;};_gccgg =_bfab .Get ("\u0041n\u0074\u0069\u0041\u006c\u0069\u0061s");
if _gccgg !=nil {_gccgg =_fd .TraceToDirectObject (_gccgg );_cfcbag ,_afgfbe :=_gccgg .(*_fd .PdfObjectBool );if !_afgfbe {_ag .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",_gccgg );
return nil ,_fd .ErrTypeError ;};_gffge .AntiAlias =_cfcbag ;};switch *_bfccc {case 1:_acfg ,_cefe :=_cdgfdg (_bfab );if _cefe !=nil {return nil ,_cefe ;};_acfg .PdfShading =_gffge ;_gffge ._cgfce =_acfg ;return _gffge ,nil ;case 2:_bebdd ,_edacd :=_fgcae (_bfab );
if _edacd !=nil {return nil ,_edacd ;};_bebdd .PdfShading =_gffge ;_gffge ._cgfce =_bebdd ;return _gffge ,nil ;case 3:_adgbb ,_afdb :=_fcaeg (_bfab );if _afdb !=nil {return nil ,_afdb ;};_adgbb .PdfShading =_gffge ;_gffge ._cgfce =_adgbb ;return _gffge ,nil ;
case 4:_fedfe ,_feeaa :=_gfbac (_bfab );if _feeaa !=nil {return nil ,_feeaa ;};_fedfe .PdfShading =_gffge ;_gffge ._cgfce =_fedfe ;return _gffge ,nil ;case 5:_egcae ,_efggfb :=_dacfd (_bfab );if _efggfb !=nil {return nil ,_efggfb ;};_egcae .PdfShading =_gffge ;
_gffge ._cgfce =_egcae ;return _gffge ,nil ;case 6:_adce ,_abbab :=_fdfgc (_bfab );if _abbab !=nil {return nil ,_abbab ;};_adce .PdfShading =_gffge ;_gffge ._cgfce =_adce ;return _gffge ,nil ;case 7:_gdfc ,_agdba :=_febfg (_bfab );if _agdba !=nil {return nil ,_agdba ;
};_gdfc .PdfShading =_gffge ;_gffge ._cgfce =_gdfc ;return _gffge ,nil ;};return nil ,_ad .New ("u\u006ek\u006e\u006f\u0077\u006e\u0020\u0073\u0068\u0061d\u0069\u006e\u0067\u0020ty\u0070\u0065");};
// NewPdfAnnotationWidget returns an initialized annotation widget.
func NewPdfAnnotationWidget ()*PdfAnnotationWidget {_fdgb :=NewPdfAnnotation ();_bde :=&PdfAnnotationWidget {};_bde .PdfAnnotation =_fdgb ;_fdgb .SetContext (_bde );return _bde ;};
// AddPage adds a page to the PDF file. The new page should be an indirect object.
func (_daefb *PdfWriter )AddPage (page *PdfPage )error {const _bcdag ="\u006d\u006f\u0064el\u003a\u0050\u0064\u0066\u0057\u0072\u0069\u0074\u0065\u0072\u002e\u0041\u0064\u0064\u0050\u0061\u0067\u0065";_baeb (page );_ggdebd :=page .ToPdfObject ();_ag .Log .Trace ("\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d");
_ag .Log .Trace ("\u0041p\u0070\u0065\u006e\u0064i\u006e\u0067\u0020\u0074\u006f \u0070a\u0067e\u0020\u006c\u0069\u0073\u0074\u0020\u0025T",_ggdebd );_adfdf ,_bagbf :=_fd .GetIndirect (_ggdebd );if !_bagbf {return _ad .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");
};_ag .Log .Trace ("\u0025\u0073",_adfdf );_ag .Log .Trace ("\u0025\u0073",_adfdf .PdfObject );_ddadd ,_bagbf :=_fd .GetDict (_adfdf .PdfObject );if !_bagbf {return _ad .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");
};_gbde ,_bagbf :=_fd .GetName (_ddadd .Get ("\u0054\u0079\u0070\u0065"));if !_bagbf {return _dc .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",_ddadd .Get ("\u0054\u0079\u0070\u0065"));
};if _gbde .String ()!="\u0050\u0061\u0067\u0065"{return _ad .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");};_eeacd :=[]_fd .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"};
_gdaeb ,_cecac :=_fd .GetIndirect (_ddadd .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"));_ag .Log .Trace ("P\u0061g\u0065\u0020\u0050\u0061\u0072\u0065\u006e\u0074:\u0020\u0025\u0054\u0020(%\u0076\u0029",_ddadd .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"),_cecac );
for _cecac {_ag .Log .Trace ("\u0050a\u0067e\u0020\u0050\u0061\u0072\u0065\u006e\u0074\u003a\u0020\u0025\u0054",_gdaeb );_dggdg ,_aadfd :=_fd .GetDict (_gdaeb .PdfObject );if !_aadfd {return _ad .New ("i\u006e\u0076\u0061\u006cid\u0020P\u0061\u0072\u0065\u006e\u0074 \u006f\u0062\u006a\u0065\u0063\u0074");
};for _ ,_ffbdf :=range _eeacd {_ag .Log .Trace ("\u0046\u0069\u0065\u006c\u0064\u0020\u0025\u0073",_ffbdf );if _ddadd .Get (_ffbdf )!=nil {_ag .Log .Trace ("\u002d \u0070a\u0067\u0065\u0020\u0068\u0061s\u0020\u0061l\u0072\u0065\u0061\u0064\u0079");continue ;
};if _fdccb :=_dggdg .Get (_ffbdf );_fdccb !=nil {_ag .Log .Trace ("\u0049\u006e\u0068\u0065ri\u0074\u0069\u006e\u0067\u0020\u0066\u0069\u0065\u006c\u0064\u0020\u0025\u0073",_ffbdf );_ddadd .Set (_ffbdf ,_fdccb );};};_gdaeb ,_cecac =_fd .GetIndirect (_dggdg .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"));
_ag .Log .Trace ("\u004ee\u0078t\u0020\u0070\u0061\u0072\u0065\u006e\u0074\u003a\u0020\u0025\u0054",_dggdg .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"));};_ag .Log .Trace ("\u0054\u0072\u0061\u0076\u0065\u0072\u0073\u0061\u006c \u0064\u006f\u006e\u0065");
_ddadd .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_daefb ._eecde );_adfdf .PdfObject =_ddadd ;_bfegg ,_bagbf :=_fd .GetDict (_daefb ._eecde .PdfObject );if !_bagbf {return _ad .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");
};_faee ,_bagbf :=_fd .GetArray (_bfegg .Get ("\u004b\u0069\u0064\u0073"));if !_bagbf {return _ad .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");
};_faee .Append (_adfdf );_daefb ._efed [_ddadd ]=struct{}{};_cdfbd ,_bagbf :=_fd .GetInt (_bfegg .Get ("\u0043\u006f\u0075n\u0074"));if !_bagbf {return _ad .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");
};*_cdfbd =*_cdfbd +1;if page ._dfaff ==nil {_cecfe :=_ae .Track (_daefb ._cdfgf ,_bcdag );if _cecfe !=nil {return _cecfe ;};}else {_ccfcaa :=_ae .Track (page ._dfaff ._ecbab ,_bcdag );if _ccfcaa !=nil {return _ccfcaa ;};};_daefb .addObject (_adfdf );_abacb :=_daefb .addObjects (_ddadd );
if _abacb !=nil {return _abacb ;};return nil ;};func _acgcc (_bddg _fd .PdfObject )(*PdfFunctionType2 ,error ){_cccgd :=&PdfFunctionType2 {};var _bdce *_fd .PdfObjectDictionary ;if _dfgdf ,_cfab :=_bddg .(*_fd .PdfIndirectObject );_cfab {_gggcd ,_fbdbg :=_dfgdf .PdfObject .(*_fd .PdfObjectDictionary );
if !_fbdbg {return nil ,_ad .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_cccgd ._babf =_dfgdf ;_bdce =_gggcd ;}else if _dfgb ,_gabgf :=_bddg .(*_fd .PdfObjectDictionary );_gabgf {_bdce =_dfgb ;}else {return nil ,_ad .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");
};_ag .Log .Trace ("\u0046U\u004e\u0043\u0032\u003a\u0020\u0025s",_bdce .String ());_ebdd ,_gdaff :=_fd .TraceToDirectObject (_bdce .Get ("\u0044\u006f\u006d\u0061\u0069\u006e")).(*_fd .PdfObjectArray );if !_gdaff {_ag .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");
return nil ,_ad .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 _ebdd .Len ()< 0||_ebdd .Len ()%2!=0{_ag .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u0072\u0061\u006e\u0067e\u0020\u0069\u006e\u0076al\u0069\u0064");
return nil ,_ad .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0064\u006f\u006da\u0069\u006e\u0020\u0072an\u0067\u0065");};_faca ,_dfec :=_ebdd .ToFloat64Array ();if _dfec !=nil {return nil ,_dfec ;};_cccgd .Domain =_faca ;_ebdd ,_gdaff =_fd .TraceToDirectObject (_bdce .Get ("\u0052\u0061\u006eg\u0065")).(*_fd .PdfObjectArray );
if _gdaff {if _ebdd .Len ()< 0||_ebdd .Len ()%2!=0{return nil ,_ad .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0061\u006e\u0067\u0065");};_bggb ,_fcgc :=_ebdd .ToFloat64Array ();if _fcgc !=nil {return nil ,_fcgc ;};_cccgd .Range =_bggb ;
};_ebdd ,_gdaff =_fd .TraceToDirectObject (_bdce .Get ("\u0043\u0030")).(*_fd .PdfObjectArray );if _gdaff {_edfb ,_bebf :=_ebdd .ToFloat64Array ();if _bebf !=nil {return nil ,_bebf ;};_cccgd .C0 =_edfb ;};_ebdd ,_gdaff =_fd .TraceToDirectObject (_bdce .Get ("\u0043\u0031")).(*_fd .PdfObjectArray );
if _gdaff {_cfdbd ,_fggdc :=_ebdd .ToFloat64Array ();if _fggdc !=nil {return nil ,_fggdc ;};_cccgd .C1 =_cfdbd ;};if len (_cccgd .C0 )!=len (_cccgd .C1 ){_ag .Log .Error ("\u0043\u0030\u0020\u0061nd\u0020\u0043\u0031\u0020\u006e\u006f\u0074\u0020\u006d\u0061\u0074\u0063\u0068\u0069n\u0067");
return nil ,_fd .ErrRangeError ;};N ,_dfec :=_fd .GetNumberAsFloat (_fd .TraceToDirectObject (_bdce .Get ("\u004e")));if _dfec !=nil {_ag .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",_bdce .String ());
return nil ,_dfec ;};_cccgd .N =N ;return _cccgd ,nil ;};
// GetContainingPdfObject returns the page as a dictionary within an PdfIndirectObject.
func (_cgef *PdfPage )GetContainingPdfObject ()_fd .PdfObject {return _cgef ._fgcac };
// NewPdfColorspaceDeviceGray returns a new grayscale colorspace.
func NewPdfColorspaceDeviceGray ()*PdfColorspaceDeviceGray {return &PdfColorspaceDeviceGray {}};
// PdfColorspaceSpecialPattern is a Pattern colorspace.
// Can be defined either as /Pattern or with an underlying colorspace [/Pattern cs].
type PdfColorspaceSpecialPattern struct{UnderlyingCS PdfColorspace ;_gcgab *_fd .PdfIndirectObject ;};func (_dgged *PdfWriter )adjustXRefAffectedVersion (_aecag bool ){if _aecag &&_dgged ._ggaddg .Major ==1&&_dgged ._ggaddg .Minor < 5{_dgged ._ggaddg .Minor =5;
};};
// PdfShadingType5 is a Lattice-form Gouraud-shaded triangle mesh.
type PdfShadingType5 struct{*PdfShading ;BitsPerCoordinate *_fd .PdfObjectInteger ;BitsPerComponent *_fd .PdfObjectInteger ;VerticesPerRow *_fd .PdfObjectInteger ;Decode *_fd .PdfObjectArray ;Function []PdfFunction ;};func (_gcedd *pdfFontType0 )bytesToCharcodes (_aaea []byte )([]_ee .CharCode ,bool ){if _gcedd ._bbbfb ==nil {return nil ,false ;
};_deeef ,_bgecb :=_gcedd ._bbbfb .BytesToCharcodes (_aaea );if !_bgecb {return nil ,false ;};_caff :=make ([]_ee .CharCode ,len (_deeef ));for _fcab ,_decef :=range _deeef {_caff [_fcab ]=_ee .CharCode (_decef );};return _caff ,true ;};
// GetStandardApplier gets currently used StandardApplier..
func (_acdeb *PdfWriter )GetStandardApplier ()StandardApplier {return _acdeb ._fagbg };func (_begd *DSS )add (_ggbad *[]*_fd .PdfObjectStream ,_gfge map[string ]*_fd .PdfObjectStream ,_fcgd [][]byte )([]*_fd .PdfObjectStream ,error ){_gbbbc :=make ([]*_fd .PdfObjectStream ,0,len (_fcgd ));
for _ ,_caebf :=range _fcgd {_aecg ,_bddf :=_eagg (_caebf );if _bddf !=nil {return nil ,_bddf ;};_begba ,_cfbf :=_gfge [string (_aecg )];if !_cfbf {_begba ,_bddf =_fd .MakeStream (_caebf ,_fd .NewRawEncoder ());if _bddf !=nil {return nil ,_bddf ;};_gfge [string (_aecg )]=_begba ;
*_ggbad =append (*_ggbad ,_begba );};_gbbbc =append (_gbbbc ,_begba );};return _gbbbc ,nil ;};
// C returns the value of the C component of the color.
func (_bedbf *PdfColorCalRGB )C ()float64 {return _bedbf [2]};
// SetPdfProducer sets the Producer attribute of the output PDF.
func SetPdfProducer (producer string ){_feadd .Lock ();defer _feadd .Unlock ();_ecebc =producer };
// ImageToRGB converts image in CalGray color space to RGB (A, B, C -> X, Y, Z).
func (_cfgf *PdfColorspaceCalGray )ImageToRGB (img Image )(Image ,error ){_dgge :=_bg .NewReader (img .getBase ());_bgece :=_gbed .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),3,nil ,nil ,nil );_cgagc :=_bg .NewWriter (_bgece );
_fefg :=_af .Pow (2,float64 (img .BitsPerComponent ))-1;_gdcb :=make ([]uint32 ,3);var (_fgeca uint32 ;ANorm ,X ,Y ,Z ,_cded ,_egee ,_feegb float64 ;_beag error ;);for {_fgeca ,_beag =_dgge .ReadSample ();if _beag ==_bc .EOF {break ;}else if _beag !=nil {return img ,_beag ;
};ANorm =float64 (_fgeca )/_fefg ;X =_cfgf .WhitePoint [0]*_af .Pow (ANorm ,_cfgf .Gamma );Y =_cfgf .WhitePoint [1]*_af .Pow (ANorm ,_cfgf .Gamma );Z =_cfgf .WhitePoint [2]*_af .Pow (ANorm ,_cfgf .Gamma );_cded =3.240479*X +-1.537150*Y +-0.498535*Z ;_egee =-0.969256*X +1.875992*Y +0.041556*Z ;
_feegb =0.055648*X +-0.204043*Y +1.057311*Z ;_cded =_af .Min (_af .Max (_cded ,0),1.0);_egee =_af .Min (_af .Max (_egee ,0),1.0);_feegb =_af .Min (_af .Max (_feegb ,0),1.0);_gdcb [0]=uint32 (_cded *_fefg );_gdcb [1]=uint32 (_egee *_fefg );_gdcb [2]=uint32 (_feegb *_fefg );
if _beag =_cgagc .WriteSamples (_gdcb );_beag !=nil {return img ,_beag ;};};return _eeafa (&_bgece ),nil ;};func (_bbbba *Image )samplesTrimPadding (_dbcgb []uint32 )[]uint32 {_cgbff :=_bbbba .ColorComponents *int (_bbbba .Width )*int (_bbbba .Height );
if len (_dbcgb )==_cgbff {return _dbcgb ;};_acage :=make ([]uint32 ,_cgbff );_dgefd :=int (_bbbba .Width )*_bbbba .ColorComponents ;var _ddfe ,_gcdea ,_gcedcd ,_ebagfe int ;_ggag :=_gbed .BytesPerLine (int (_bbbba .Width ),int (_bbbba .BitsPerComponent ),_bbbba .ColorComponents );
for _ddfe =0;_ddfe < int (_bbbba .Height );_ddfe ++{_gcdea =_ddfe *int (_bbbba .Width );_gcedcd =_ddfe *_ggag ;for _ebagfe =0;_ebagfe < _dgefd ;_ebagfe ++{_acage [_gcdea +_ebagfe ]=_dbcgb [_gcedcd +_ebagfe ];};};return _acage ;};func (_ffcef *PdfAppender )mergeResources (_bdcc ,_eefa _fd .PdfObject ,_adfa map[_fd .PdfObjectName ]_fd .PdfObjectName )_fd .PdfObject {if _eefa ==nil &&_bdcc ==nil {return nil ;
};if _eefa ==nil {return _bdcc ;};_bedf ,_egaf :=_fd .GetDict (_eefa );if !_egaf {return _bdcc ;};if _bdcc ==nil {_ddab :=_fd .MakeDict ();_ddab .Merge (_bedf );return _eefa ;};_bbeb ,_egaf :=_fd .GetDict (_bdcc );if !_egaf {_ag .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");
_bbeb =_fd .MakeDict ();};for _ ,_dffc :=range _bedf .Keys (){if _agc ,_gcce :=_adfa [_dffc ];_gcce {_bbeb .Set (_agc ,_bedf .Get (_dffc ));}else {_bbeb .Set (_dffc ,_bedf .Get (_dffc ));};};return _bbeb ;};func _dcaab (_cafad *_fd .PdfObjectDictionary )(*PdfShadingPattern ,error ){_eafcb :=&PdfShadingPattern {};
_gcbc :=_cafad .Get ("\u0053h\u0061\u0064\u0069\u006e\u0067");if _gcbc ==nil {_ag .Log .Debug ("\u0053h\u0061d\u0069\u006e\u0067\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ;};_bdeef ,_bgbddf :=_cceab (_gcbc );
if _bgbddf !=nil {_ag .Log .Debug ("\u0045r\u0072\u006f\u0072\u0020l\u006f\u0061\u0064\u0069\u006eg\u0020s\u0068a\u0064\u0069\u006e\u0067\u003a\u0020\u0025v",_bgbddf );return nil ,_bgbddf ;};_eafcb .Shading =_bdeef ;if _aabag :=_cafad .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");
_aabag !=nil {_eabgf ,_acaaa :=_aabag .(*_fd .PdfObjectArray );if !_acaaa {_ag .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",_aabag );
return nil ,_fd .ErrTypeError ;};_eafcb .Matrix =_eabgf ;};if _eadfc :=_cafad .Get ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e");_eadfc !=nil {_eafcb .ExtGState =_eadfc ;};return _eafcb ,nil ;};
// PdfShadingPatternType2 is shading patterns that will use a Type 2 shading pattern (Axial).
type PdfShadingPatternType2 struct{*PdfPattern ;Shading *PdfShadingType2 ;Matrix *_fd .PdfObjectArray ;ExtGState _fd .PdfObject ;};
// ToPdfObject converts the font to a PDF representation.
func (_debf *pdfFontType0 )ToPdfObject ()_fd .PdfObject {if _debf ._ffead ==nil {_debf ._ffead =&_fd .PdfIndirectObject {};};_ddcb :=_debf .baseFields ().asPdfObjectDictionary ("\u0054\u0079\u0070e\u0030");_debf ._ffead .PdfObject =_ddcb ;if _debf .Encoding !=nil {_ddcb .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_debf .Encoding );
}else if _debf ._agbe !=nil {_ddcb .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_debf ._agbe .ToPdfObject ());};if _debf .DescendantFont !=nil {_ddcb .Set ("\u0044e\u0073c\u0065\u006e\u0064\u0061\u006e\u0074\u0046\u006f\u006e\u0074\u0073",_fd .MakeArray (_debf .DescendantFont .ToPdfObject ()));
};return _debf ._ffead ;};
// PdfAnnotationSound represents Sound annotations.
// (Section 12.5.6.16).
type PdfAnnotationSound struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Sound _fd .PdfObject ;Name _fd .PdfObject ;};
// Reset sets the multi font encoder to its initial state.
func (_ggcg *MultipleFontEncoder )Reset (){_ggcg .CurrentFont =_ggcg ._ccbbf [0]};func (_agf *PdfReader )newPdfActionImportDataFromDict (_adcb *_fd .PdfObjectDictionary )(*PdfActionImportData ,error ){_ccb ,_gcde :=_ece (_adcb .Get ("\u0046"));if _gcde !=nil {return nil ,_gcde ;
};return &PdfActionImportData {F :_ccb },nil ;};func (_afddf *PdfWriter )writeDocumentVersion (){if _afddf ._fbgg {_afddf .writeString ("\u000a");}else {_afddf .writeString (_dc .Sprintf ("\u0025\u0025\u0050D\u0046\u002d\u0025\u0064\u002e\u0025\u0064\u000a",_afddf ._ggaddg .Major ,_afddf ._ggaddg .Minor ));
_afddf .writeString ("\u0025\u00e2\u00e3\u00cf\u00d3\u000a");};};
// IsColored specifies if the pattern is colored.
func (_gacgg *PdfTilingPattern )IsColored ()bool {if _gacgg .PaintType !=nil &&*_gacgg .PaintType ==1{return true ;};return false ;};var _ pdfFont =(*pdfCIDFontType0 )(nil );
// GetNumComponents returns the number of color components (3 for RGB).
func (_edbg *PdfColorDeviceRGB )GetNumComponents ()int {return 3};
// ColorToRGB converts a ICCBased color to an RGB color.
func (_beebg *PdfColorspaceICCBased )ColorToRGB (color PdfColor )(PdfColor ,error ){if _beebg .Alternate ==nil {_ag .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 _beebg .N ==1{_ag .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");
_ebcb :=NewPdfColorspaceDeviceGray ();return _ebcb .ColorToRGB (color );}else if _beebg .N ==3{_ag .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 _beebg .N ==4{_ag .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");
_cddd :=NewPdfColorspaceDeviceCMYK ();return _cddd .ColorToRGB (color );}else {return nil ,_ad .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");
};};_ag .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",_beebg );
return _beebg .Alternate .ColorToRGB (color );};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";);
// 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 _bc .ReadSeeker )(*PdfFont ,error ){const _gfdb =_ee .CharCode (32);const _bbdc =_ee .CharCode (255);_afbg ,_bcgad :=_gcb .ReadAll (r );if _bcgad !=nil {_ag .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",_bcgad );
return nil ,_bcgad ;};_cbeef ,_bcgad :=_cf .TtfParse (_bf .NewReader (_afbg ));if _bcgad !=nil {_ag .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",_bcgad );
return nil ,_bcgad ;};_gdgcb :=&pdfFontSimple {_bafeg :make (map[_ee .CharCode ]float64 ),fontCommon :fontCommon {_eded :"\u0054\u0072\u0075\u0065\u0054\u0079\u0070\u0065"}};_gdgcb ._dcfda =_ee .NewWinAnsiEncoder ();_gdgcb ._ffedb =_cbeef .PostScriptName ;
_gdgcb .FirstChar =_fd .MakeInteger (int64 (_gfdb ));_gdgcb .LastChar =_fd .MakeInteger (int64 (_bbdc ));_caggg :=1000.0/float64 (_cbeef .UnitsPerEm );if len (_cbeef .Widths )<=0{return nil ,_ad .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");
};_acad :=_caggg *float64 (_cbeef .Widths [0]);_cebfe :=make ([]float64 ,0,_bbdc -_gfdb +1);for _agbeg :=_gfdb ;_agbeg <=_bbdc ;_agbeg ++{_cbaac ,_fcddf :=_gdgcb .Encoder ().CharcodeToRune (_agbeg );if !_fcddf {_ag .Log .Debug ("\u0052u\u006e\u0065\u0020\u006eo\u0074\u0020\u0066\u006f\u0075n\u0064 \u0028c\u006f\u0064\u0065\u003a\u0020\u0025\u0064)",_agbeg );
_cebfe =append (_cebfe ,_acad );continue ;};_deac ,_gcge :=_cbeef .Chars [_cbaac ];if !_gcge {_ag .Log .Debug ("R\u0075\u006e\u0065\u0020no\u0074 \u0069\u006e\u0020\u0054\u0054F\u0020\u0043\u0068\u0061\u0072\u0073");_cebfe =append (_cebfe ,_acad );continue ;
};_badg :=_caggg *float64 (_cbeef .Widths [_deac ]);_cebfe =append (_cebfe ,_badg );};_gdgcb .Widths =_fd .MakeIndirectObject (_fd .MakeArrayFromFloats (_cebfe ));if len (_cebfe )< int (_bbdc -_gfdb +1){_ag .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 (_cebfe ),255-32+1);
return nil ,_fd .ErrRangeError ;};for _fcee :=_gfdb ;_fcee <=_bbdc ;_fcee ++{_gdgcb ._bafeg [_fcee ]=_cebfe [_fcee -_gfdb ];};_gdgcb .Encoding =_fd .MakeName ("\u0057i\u006eA\u006e\u0073\u0069\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067");_baac :=&PdfFontDescriptor {};
_baac .FontName =_fd .MakeName (_cbeef .PostScriptName );_baac .Ascent =_fd .MakeFloat (_caggg *float64 (_cbeef .TypoAscender ));_baac .Descent =_fd .MakeFloat (_caggg *float64 (_cbeef .TypoDescender ));_baac .CapHeight =_fd .MakeFloat (_caggg *float64 (_cbeef .CapHeight ));
_baac .FontBBox =_fd .MakeArrayFromFloats ([]float64 {_caggg *float64 (_cbeef .Xmin ),_caggg *float64 (_cbeef .Ymin ),_caggg *float64 (_cbeef .Xmax ),_caggg *float64 (_cbeef .Ymax )});_baac .ItalicAngle =_fd .MakeFloat (_cbeef .ItalicAngle );_baac .MissingWidth =_fd .MakeFloat (_caggg *float64 (_cbeef .Widths [0]));
_ggdbd ,_bcgad :=_fd .MakeStream (_afbg ,_fd .NewFlateEncoder ());if _bcgad !=nil {_ag .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",_bcgad );
return nil ,_bcgad ;};_ggdbd .PdfObjectDictionary .Set ("\u004ce\u006e\u0067\u0074\u0068\u0031",_fd .MakeInteger (int64 (len (_afbg ))));_baac .FontFile2 =_ggdbd ;if _cbeef .Bold {_baac .StemV =_fd .MakeInteger (120);}else {_baac .StemV =_fd .MakeInteger (70);
};_cdbca :=_gebb ;if _cbeef .IsFixedPitch {_cdbca |=_debadb ;};if _cbeef .ItalicAngle !=0{_cdbca |=_eaeg ;};_baac .Flags =_fd .MakeInteger (int64 (_cdbca ));_gdgcb ._babe =_baac ;_ffgd :=&PdfFont {_gbaac :_gdgcb };return _ffgd ,nil ;};
// GetNumComponents returns the number of color components (1 for CalGray).
func (_aefa *PdfColorCalGray )GetNumComponents ()int {return 1};func _ggacg (_ggcd _fd .PdfObject )(*PdfColorspaceDeviceN ,error ){_fgdd :=NewPdfColorspaceDeviceN ();if _gdfdc ,_efgfd :=_ggcd .(*_fd .PdfIndirectObject );_efgfd {_fgdd ._eebe =_gdfdc ;};
_ggcd =_fd .TraceToDirectObject (_ggcd );_gafef ,_fabe :=_ggcd .(*_fd .PdfObjectArray );if !_fabe {return nil ,_dc .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 _gafef .Len ()!=4&&_gafef .Len ()!=5{return nil ,_dc .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");};_ggcd =_gafef .Get (0);
_cdga ,_fabe :=_ggcd .(*_fd .PdfObjectName );if !_fabe {return nil ,_dc .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 *_cdga !="\u0044e\u0076\u0069\u0063\u0065\u004e"{return nil ,_dc .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");};_ggcd =_gafef .Get (1);
_ggcd =_fd .TraceToDirectObject (_ggcd );_afcd ,_fabe :=_ggcd .(*_fd .PdfObjectArray );if !_fabe {return nil ,_dc .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");
};_fgdd .ColorantNames =_afcd ;_ggcd =_gafef .Get (2);_gfc ,_bgabg :=NewPdfColorspaceFromPdfObject (_ggcd );if _bgabg !=nil {return nil ,_bgabg ;};_fgdd .AlternateSpace =_gfc ;_egff ,_bgabg :=_badad (_gafef .Get (3));if _bgabg !=nil {return nil ,_bgabg ;
};_fgdd .TintTransform =_egff ;if _gafef .Len ()==5{_dccb ,_ecaf :=_bcaa (_gafef .Get (4));if _ecaf !=nil {return nil ,_ecaf ;};_fgdd .Attributes =_dccb ;};return _fgdd ,nil ;};
// PdfAnnotationSquare represents Square annotations.
// (Section 12.5.6.8).
type PdfAnnotationSquare struct{*PdfAnnotation ;*PdfAnnotationMarkup ;BS _fd .PdfObject ;IC _fd .PdfObject ;BE _fd .PdfObject ;RD _fd .PdfObject ;};
// GetNumComponents returns the number of color components of the colorspace device.
// Returns 1 for a grayscale device.
func (_cfag *PdfColorspaceDeviceGray )GetNumComponents ()int {return 1};
// GetCharMetrics returns the char metrics for character code `code`.
func (_bgff pdfCIDFontType2 )GetCharMetrics (code _ee .CharCode )(_cf .CharMetrics ,bool ){if _dega ,_acgc :=_bgff ._defb [code ];_acgc {return _cf .CharMetrics {Wx :_dega },true ;};_ggcaa :=rune (code );_bfgff ,_dfgf :=_bgff ._agbed [_ggcaa ];if !_dfgf {_bfgff =int (_bgff ._ebbc );
};return _cf .CharMetrics {Wx :float64 (_bfgff )},true ;};
// 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 (_deee *PdfReader )FlattenFieldsWithOpts (appgen FieldAppearanceGenerator ,opts *FieldFlattenOpts )error {return _deee .flattenFieldsWithOpts (false ,appgen ,opts );};
// PdfActionGoTo3DView represents a GoTo3DView action.
type PdfActionGoTo3DView struct{*PdfAction ;TA _fd .PdfObject ;V _fd .PdfObject ;};func (_cdfa *PdfAnnotationMarkup )appendToPdfDictionary (_ggeg *_fd .PdfObjectDictionary ){_ggeg .SetIfNotNil ("\u0054",_cdfa .T );if _cdfa .Popup !=nil {_ggeg .Set ("\u0050\u006f\u0070u\u0070",_cdfa .Popup .ToPdfObject ());
};_ggeg .SetIfNotNil ("\u0043\u0041",_cdfa .CA );_ggeg .SetIfNotNil ("\u0052\u0043",_cdfa .RC );_ggeg .SetIfNotNil ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065",_cdfa .CreationDate );_ggeg .SetIfNotNil ("\u0049\u0052\u0054",_cdfa .IRT );
_ggeg .SetIfNotNil ("\u0053\u0075\u0062\u006a",_cdfa .Subj );_ggeg .SetIfNotNil ("\u0052\u0054",_cdfa .RT );_ggeg .SetIfNotNil ("\u0049\u0054",_cdfa .IT );_ggeg .SetIfNotNil ("\u0045\u0078\u0044\u0061\u0074\u0061",_cdfa .ExData );};func _afde (_fdbe *_fd .PdfObjectDictionary ,_cafd *fontCommon )(*pdfFontType0 ,error ){_gdadg ,_cfdb :=_fd .GetArray (_fdbe .Get ("\u0044e\u0073c\u0065\u006e\u0064\u0061\u006e\u0074\u0046\u006f\u006e\u0074\u0073"));
if !_cfdb {_ag .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",_cafd );
return nil ,_fd .ErrRangeError ;};if _gdadg .Len ()!=1{_ag .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",_gdadg .Len ());return nil ,_fd .ErrRangeError ;
};_bdcg ,_dgfeg :=_gabge (_gdadg .Get (0),false );if _dgfeg !=nil {_ag .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",_dgfeg ,_cafd );
return nil ,_dgfeg ;};_gdecg :=_fdbe .Get ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067");_aabf :="";_fbaee :=_adgec (_cafd );_fbaee .DescendantFont =_bdcg ;switch _cecc :=_gdecg .(type ){case *_fd .PdfObjectName :_aabf ,_cfdb =_fd .GetNameVal (_gdecg );
if _cfdb {if _aabf =="\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079\u002d\u0048"||_aabf =="\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079\u002d\u0056"{_fbaee ._agbe =_ee .NewIdentityTextEncoder (_aabf );}else if _gd .IsPredefinedCMap (_aabf ){_fbaee ._bbbfb ,_dgfeg =_gd .LoadPredefinedCMap (_aabf );
if _dgfeg !=nil {_ag .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",_aabf ,_dgfeg );
};}else {_ag .Log .Debug ("\u0055\u006e\u0068\u0061\u006e\u0064\u006c\u0065\u0064\u0020\u0063\u006da\u0070\u0020\u0025\u0071",_aabf );};};case *_fd .PdfObjectStream :if _fbaee ._eebbb ==nil {_gfca ,_bcffe :=_gd .NewCIDSystemInfo (_cecc .PdfObjectDictionary .Get ("\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f"));
if _bcffe !=nil {_ag .Log .Debug ("\u0055\u006e\u0061b\u006c\u0065\u0020\u0074o\u0020\u0067\u0065\u0074\u0020\u0043\u0049D\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f\u003a\u0020\u0025\u0076",_bcffe );};_gbfb :=_dc .Sprintf ("\u0025\u0073\u002d\u0025\u0073\u002d\u0055\u0043\u0053\u0032",_gfca .Registry ,_gfca .Ordering );
if _gd .IsPredefinedCMap (_gbfb ){_fbaee ._bbbfb ,_bcffe =_gd .LoadPredefinedCMap (_gbfb );if _bcffe !=nil {_ag .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",_gbfb ,_bcffe );
};}else {_gbfb =_cecc .PdfObjectDictionary .Get ("\u0043\u004d\u0061\u0070\u004e\u0061\u006d\u0065").String ();_gfbdb ,_affaa :=_fd .DecodeStream (_cecc );if _affaa !=nil {_ag .Log .Debug ("U\u006e\u0061\u0062\u006c\u0065\u0020t\u006f\u0020\u0064\u0065\u0063\u006f\u0064\u0065\u0020s\u0074\u0072\u0065a\u006d:\u0020\u0025\u0076",_affaa );
return _fbaee ,_affaa ;};if _gbba :=_gbfb =="\u004f\u006ee\u0042\u0079\u0074e\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079\u0048"||_gbfb =="\u004f\u006ee\u0042\u0079\u0074e\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079\u0056";_gbba {_fbaee ._bbbfb ,_affaa =_gd .LoadCmapFromData (_gfbdb ,_gbba );
if _affaa !=nil {_ag .Log .Debug ("\u0055\u006e\u0061\u0062\u006ce\u0020\u0074\u006f\u0020\u006c\u006f\u0061\u0064\u0020\u0043\u004d\u0061\u0070 \u0066\u0072\u006f\u006d\u0020\u0073\u0074\u0072\u0065\u0061\u006d\u003a\u0020\u0025\u0076\u0020\u002d\u002d\u0020\u0025\u0076",_affaa ,string (_gfbdb ));
return _fbaee ,_affaa ;};_bbfe :=make (map[_gd .CharCode ]rune ,256);for _gegg :=0x00;_gegg <=0xFF;_gegg ++{_bbfe [_gd .CharCode (_gegg )]=rune (_gegg );};_fbaee ._dgdg =_gd .NewToUnicodeCMap (_bbfe );};};};};if _dfad :=_bdcg .baseFields ()._dgdg ;_dfad !=nil {if _dabge :=_dfad .Name ();
_dabge =="\u0041d\u006fb\u0065\u002d\u0043\u004e\u0053\u0031\u002d\u0055\u0043\u0053\u0032"||_dabge =="\u0041\u0064\u006f\u0062\u0065\u002d\u0047\u0042\u0031-\u0055\u0043\u0053\u0032"||_dabge =="\u0041\u0064\u006f\u0062\u0065\u002d\u004a\u0061\u0070\u0061\u006e\u0031-\u0055\u0043\u0053\u0032"||_dabge =="\u0041\u0064\u006f\u0062\u0065\u002d\u004b\u006f\u0072\u0065\u0061\u0031-\u0055\u0043\u0053\u0032"{_fbaee ._agbe =_ee .NewCMapEncoder (_aabf ,_fbaee ._bbbfb ,_dfad );
};};return _fbaee ,nil ;};func _cdcc (_cfgeb *_fd .PdfObjectDictionary )(*PdfFieldText ,error ){_bddd :=&PdfFieldText {};_bddd .DA ,_ =_fd .GetString (_cfgeb .Get ("\u0044\u0041"));_bddd .Q ,_ =_fd .GetInt (_cfgeb .Get ("\u0051"));_bddd .DS ,_ =_fd .GetString (_cfgeb .Get ("\u0044\u0053"));
_bddd .RV =_cfgeb .Get ("\u0052\u0056");_bddd .MaxLen ,_ =_fd .GetInt (_cfgeb .Get ("\u004d\u0061\u0078\u004c\u0065\u006e"));return _bddd ,nil ;};
// M returns the value of the magenta component of the color.
func (_eaee *PdfColorDeviceCMYK )M ()float64 {return _eaee [1]};
// 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 (_fggdef *PdfReader )GetObjectNums ()[]int {return _fggdef ._faaf .GetObjectNums ()};
// DecodeArray returns the range of color component values in the Lab colorspace.
func (_edga *PdfColorspaceLab )DecodeArray ()[]float64 {_ececd :=[]float64 {0,100};if _edga .Range !=nil &&len (_edga .Range )==4{_ececd =append (_ececd ,_edga .Range ...);}else {_ececd =append (_ececd ,-100,100,-100,100);};return _ececd ;};
// PdfActionGoToE represents a GoToE action.
type PdfActionGoToE struct{*PdfAction ;F *PdfFilespec ;D _fd .PdfObject ;NewWindow _fd .PdfObject ;T _fd .PdfObject ;};
// GetNumComponents returns the number of color components of the underlying
// colorspace device.
func (_accfb *PdfColorspaceSpecialPattern )GetNumComponents ()int {return _accfb .UnderlyingCS .GetNumComponents ();};func _ecafd (_gfab string )(map[_ee .CharCode ]_ee .GlyphName ,error ){_eedc :=_gg .Split (_gfab ,"\u000a");_bdaeb :=make (map[_ee .CharCode ]_ee .GlyphName );
for _ ,_daebf :=range _eedc {_ecbdf :=_bada .FindStringSubmatch (_daebf );if _ecbdf ==nil {continue ;};_gfgea ,_becaf :=_ecbdf [1],_ecbdf [2];_gaefa ,_bcbf :=_bd .Atoi (_gfgea );if _bcbf !=nil {_ag .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",_daebf );
return nil ,_fd .ErrTypeError ;};_bdaeb [_ee .CharCode (_gaefa )]=_ee .GlyphName (_becaf );};_ag .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",_bdaeb );
return _bdaeb ,nil ;};func (_bfce *PdfReader )buildPageList (_bafg *_fd .PdfIndirectObject ,_cdede *_fd .PdfIndirectObject ,_caeeg map[_fd .PdfObject ]struct{})error {if _bafg ==nil {return nil ;};if _ ,_bcfe :=_caeeg [_bafg ];_bcfe {_ag .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",_bafg .ObjectNumber );
return nil ;};_caeeg [_bafg ]=struct{}{};_fgbgd ,_fbdcc :=_bafg .PdfObject .(*_fd .PdfObjectDictionary );if !_fbdcc {return _ad .New ("n\u006f\u0064\u0065\u0020no\u0074 \u0061\u0020\u0064\u0069\u0063t\u0069\u006f\u006e\u0061\u0072\u0079");};_bbdadc ,_fbdcc :=(*_fgbgd ).Get ("\u0054\u0079\u0070\u0065").(*_fd .PdfObjectName );
if !_fbdcc {if _fgbgd .Get ("\u004b\u0069\u0064\u0073")==nil {return _ad .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");};_ag .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.");
_bbdadc =_fd .MakeName ("\u0050\u0061\u0067e\u0073");_fgbgd .Set ("\u0054\u0079\u0070\u0065",_bbdadc );};_ag .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",*_bbdadc ,_bafg );
if *_bbdadc =="\u0050\u0061\u0067\u0065"{_bbef ,_gafdcf :=_bfce .newPdfPageFromDict (_fgbgd );if _gafdcf !=nil {return _gafdcf ;};_bbef .setContainer (_bafg );if _cdede !=nil {_fgbgd .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_cdede );};_bfce ._bbfca =append (_bfce ._bbfca ,_bafg );
_bfce .PageList =append (_bfce .PageList ,_bbef );return nil ;};if *_bbdadc !="\u0050\u0061\u0067e\u0073"{_ag .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",_bbdadc );
return _ad .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 _cdede !=nil {_fgbgd .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_cdede );};if !_bfce ._gfdda {_dcge :=_bfce .traverseObjectData (_bafg );if _dcge !=nil {return _dcge ;};};_gcbfc ,_ebgdb :=_bfce ._faaf .Resolve (_fgbgd .Get ("\u004b\u0069\u0064\u0073"));
if _ebgdb !=nil {_ag .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 _ebgdb ;};var _abdcab *_fd .PdfObjectArray ;
_abdcab ,_fbdcc =_gcbfc .(*_fd .PdfObjectArray );if !_fbdcc {_cdee ,_gceae :=_gcbfc .(*_fd .PdfIndirectObject );if !_gceae {return _ad .New ("\u0069\u006e\u0076\u0061li\u0064\u0020\u004b\u0069\u0064\u0073\u0020\u006f\u0062\u006a\u0065\u0063\u0074");};_abdcab ,_fbdcc =_cdee .PdfObject .(*_fd .PdfObjectArray );
if !_fbdcc {return _ad .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");};};_ag .Log .Trace ("\u004b\u0069\u0064\u0073\u003a\u0020\u0025\u0073",_abdcab );
for _cdea ,_ddbdf :=range _abdcab .Elements (){_ceac ,_ggdd :=_fd .GetIndirect (_ddbdf );if !_ggdd {_ag .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",_ceac );
return _ad .New ("\u0070a\u0067\u0065\u0020\u006e\u006f\u0074\u0020\u0069\u006e\u0064\u0069r\u0065\u0063\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074");};_abdcab .Set (_cdea ,_ceac );_ebgdb =_bfce .buildPageList (_ceac ,_bafg ,_caeeg );if _ebgdb !=nil {return _ebgdb ;
};};return nil ;};
// FullName returns the full name of the field as in rootname.parentname.partialname.
func (_gdeg *PdfField )FullName ()(string ,error ){var _fdde _bf .Buffer ;_eaebg :=[]string {};if _gdeg .T !=nil {_eaebg =append (_eaebg ,_gdeg .T .Decoded ());};_fgfcd :=map[*PdfField ]bool {};_fgfcd [_gdeg ]=true ;_eaed :=_gdeg .Parent ;for _eaed !=nil {if _ ,_dcbf :=_fgfcd [_eaed ];
_dcbf {return _fdde .String (),_ad .New ("\u0072\u0065\u0063\u0075rs\u0069\u0076\u0065\u0020\u0074\u0072\u0061\u0076\u0065\u0072\u0073\u0061\u006c");};if _eaed .T ==nil {return _fdde .String (),_ad .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");
};_eaebg =append (_eaebg ,_eaed .T .Decoded ());_fgfcd [_eaed ]=true ;_eaed =_eaed .Parent ;};for _efeg :=len (_eaebg )-1;_efeg >=0;_efeg --{_fdde .WriteString (_eaebg [_efeg ]);if _efeg > 0{_fdde .WriteString ("\u002e");};};return _fdde .String (),nil ;
};func (_aafeb *PdfReader )buildOutlineTree (_abeagc _fd .PdfObject ,_ccdg *PdfOutlineTreeNode ,_aagef *PdfOutlineTreeNode ,_agdag map[_fd .PdfObject ]struct{})(*PdfOutlineTreeNode ,*PdfOutlineTreeNode ,error ){if _agdag ==nil {_agdag =map[_fd .PdfObject ]struct{}{};
};_agdag [_abeagc ]=struct{}{};_fcfga ,_gbdc :=_abeagc .(*_fd .PdfIndirectObject );if !_gbdc {return nil ,nil ,_dc .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",_abeagc );
};_bdcee ,_baafce :=_fcfga .PdfObject .(*_fd .PdfObjectDictionary );if !_baafce {return nil ,nil ,_ad .New ("\u006e\u006f\u0074 a\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u0020\u006f\u0062\u006a\u0065\u0063\u0074");};_ag .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",_bdcee ,_fcfga ,_fcfga );
if _ebbfe :=_bdcee .Get ("\u0054\u0069\u0074l\u0065");_ebbfe !=nil {_bfdgb ,_gacggg :=_aafeb .newPdfOutlineItemFromIndirectObject (_fcfga );if _gacggg !=nil {return nil ,nil ,_gacggg ;};_bfdgb .Parent =_ccdg ;_bfdgb .Prev =_aagef ;_aggfe :=_fd .ResolveReference (_bdcee .Get ("\u0046\u0069\u0072s\u0074"));
if _ ,_bdaca :=_agdag [_aggfe ];_aggfe !=nil &&_aggfe !=_fcfga &&!_bdaca {if !_fd .IsNullObject (_aggfe ){_bfefg ,_fafdg ,_edbfe :=_aafeb .buildOutlineTree (_aggfe ,&_bfdgb .PdfOutlineTreeNode ,nil ,_agdag );if _edbfe !=nil {_ag .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",_edbfe );
}else {_bfdgb .First =_bfefg ;_bfdgb .Last =_fafdg ;};};};_agdac :=_fd .ResolveReference (_bdcee .Get ("\u004e\u0065\u0078\u0074"));if _ ,_afadgf :=_agdag [_agdac ];_agdac !=nil &&_agdac !=_fcfga &&!_afadgf {if !_fd .IsNullObject (_agdac ){_bcbfe ,_eedfd ,_fecbc :=_aafeb .buildOutlineTree (_agdac ,_ccdg ,&_bfdgb .PdfOutlineTreeNode ,_agdag );
if _fecbc !=nil {_ag .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",_fecbc );
}else {_bfdgb .Next =_bcbfe ;return &_bfdgb .PdfOutlineTreeNode ,_eedfd ,nil ;};};};return &_bfdgb .PdfOutlineTreeNode ,&_bfdgb .PdfOutlineTreeNode ,nil ;};_ccabga ,_bagde :=_abgab (_fcfga );if _bagde !=nil {return nil ,nil ,_bagde ;};_ccabga .Parent =_ccdg ;
if _bbgd :=_bdcee .Get ("\u0046\u0069\u0072s\u0074");_bbgd !=nil {_bbgd =_fd .ResolveReference (_bbgd );if _ ,_eecdg :=_agdag [_bbgd ];_bbgd !=nil &&_bbgd !=_fcfga &&!_eecdg {_dffef :=_fd .TraceToDirectObject (_bbgd );if _ ,_cafba :=_dffef .(*_fd .PdfObjectNull );
!_cafba &&_dffef !=nil {_adbaa ,_beebff ,_ecca :=_aafeb .buildOutlineTree (_bbgd ,&_ccabga .PdfOutlineTreeNode ,nil ,_agdag );if _ecca !=nil {_ag .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",_ecca );
}else {_ccabga .First =_adbaa ;_ccabga .Last =_beebff ;};};};};return &_ccabga .PdfOutlineTreeNode ,&_ccabga .PdfOutlineTreeNode ,nil ;};type pdfSignDictionary struct{*_fd .PdfObjectDictionary ;_efeca *SignatureHandler ;_eeabe *PdfSignature ;_gedfg int64 ;
_cfdbb int ;_efcd int ;_cdfec int ;_cecea int ;};func (_gbcfa *PdfWriter )setHashIDs (_bdafd _a .Hash )error {_dafbg :=_bdafd .Sum (nil );if _gbcfa ._gaeaa ==""{_gbcfa ._gaeaa =_f .EncodeToString (_dafbg [:8]);};_gbcfa .setDocumentIDs (_gbcfa ._gaeaa ,_f .EncodeToString (_dafbg [8:]));
return nil ;};
// NewPdfAnnotationLink returns a new link annotation.
func NewPdfAnnotationLink ()*PdfAnnotationLink {_fddf :=NewPdfAnnotation ();_ccd :=&PdfAnnotationLink {};_ccd .PdfAnnotation =_fddf ;_fddf .SetContext (_ccd );return _ccd ;};
// NewPdfAnnotationPolyLine returns a new polyline annotation.
func NewPdfAnnotationPolyLine ()*PdfAnnotationPolyLine {_ebg :=NewPdfAnnotation ();_cge :=&PdfAnnotationPolyLine {};_cge .PdfAnnotation =_ebg ;_cge .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_ebg .SetContext (_cge );return _cge ;};
// Evaluate runs the function on the passed in slice and returns the results.
func (_daaf *PdfFunctionType2 )Evaluate (x []float64 )([]float64 ,error ){if len (x )!=1{_ag .Log .Error ("\u004f\u006e\u006c\u0079 o\u006e\u0065\u0020\u0069\u006e\u0070\u0075\u0074\u0020\u0061\u006c\u006c\u006f\u0077e\u0064");return nil ,_ad .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");
};_cbbgf :=[]float64 {0.0};if _daaf .C0 !=nil {_cbbgf =_daaf .C0 ;};_ecdgb :=[]float64 {1.0};if _daaf .C1 !=nil {_ecdgb =_daaf .C1 ;};var _bbbfbf []float64 ;for _ebed :=0;_ebed < len (_cbbgf );_ebed ++{_cdccg :=_cbbgf [_ebed ]+_af .Pow (x [0],_daaf .N )*(_ecdgb [_ebed ]-_cbbgf [_ebed ]);
_bbbfbf =append (_bbbfbf ,_cdccg );};return _bbbfbf ,nil ;};
// NewPdfOutlineTree returns an initialized PdfOutline tree.
func NewPdfOutlineTree ()*PdfOutline {_dggf :=NewPdfOutline ();_dggf ._gcgcg =&_dggf ;return _dggf };
// 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 *_fd .PdfObjectString ;Q *_fd .PdfObjectInteger ;DS *_fd .PdfObjectString ;RV _fd .PdfObject ;};
// GetContainingPdfObject returns the XObject Form's containing object (indirect object).
func (_bcebf *XObjectForm )GetContainingPdfObject ()_fd .PdfObject {return _bcebf ._cebfa };func (_fcde *PdfColorspaceSpecialIndexed )String ()string {return "\u0049n\u0064\u0065\u0078\u0065\u0064";};
// SetFillImage attach a model.Image to push button.
func (_cfba *PdfFieldButton )SetFillImage (image *Image ){if _cfba .IsPush (){_cfba ._daeaa =image ;};};var _ pdfFont =(*pdfCIDFontType2 )(nil );func (_dcacf *pdfFontType3 )baseFields ()*fontCommon {return &_dcacf .fontCommon };
// 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 (_gebf *PdfWriter )ApplyStandard (optimizer StandardApplier ){_gebf ._fagbg =optimizer };func (_fae *PdfReader )newPdfActionURIFromDict (_gbebd *_fd .PdfObjectDictionary )(*PdfActionURI ,error ){return &PdfActionURI {URI :_gbebd .Get ("\u0055\u0052\u0049"),IsMap :_gbebd .Get ("\u0049\u0073\u004da\u0070")},nil ;
};
// PdfAnnotationTrapNet represents TrapNet annotations.
// (Section 12.5.6.21).
type PdfAnnotationTrapNet struct{*PdfAnnotation };func _ddgd (_gbcac *[]*PdfField ,_bgbb FieldFilterFunc ,_fgfg bool )[]*PdfField {if _gbcac ==nil {return nil ;};_caea :=*_gbcac ;if len (*_gbcac )==0{return nil ;};_edbfb :=_caea [:0];if _bgbb ==nil {_bgbb =func (*PdfField )bool {return true };
};var _agbc []*PdfField ;for _ ,_acdbc :=range _caea {_bbfaa :=_bgbb (_acdbc );if _bbfaa {_agbc =append (_agbc ,_acdbc );if len (_acdbc .Kids )> 0{_agbc =append (_agbc ,_ddgd (&_acdbc .Kids ,_bgbb ,_fgfg )...);};};if !_fgfg ||!_bbfaa ||len (_acdbc .Kids )> 0{_edbfb =append (_edbfb ,_acdbc );
};};*_gbcac =_edbfb ;return _agbc ;};
// GetXObjectByName gets XObject by name.
func (_abfae *PdfPage )GetXObjectByName (name _fd .PdfObjectName )(_fd .PdfObject ,bool ){_eadd ,_efad :=_abfae .Resources .XObject .(*_fd .PdfObjectDictionary );if !_efad {return nil ,false ;};if _aaeefe :=_eadd .Get (name );_aaeefe !=nil {return _aaeefe ,true ;
};return nil ,false ;};
// ColorToRGB converts a color in Separation colorspace to RGB colorspace.
func (_edbf *PdfColorspaceSpecialSeparation )ColorToRGB (color PdfColor )(PdfColor ,error ){if _edbf .AlternateSpace ==nil {return nil ,_ad .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 _edbf .AlternateSpace .ColorToRGB (color );};
// 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 ;_facbf []byte ;_ebgce []uint32 ;_efff *_fd .PdfObjectStream ;};
// Encrypt encrypts the output file with a specified user/owner password.
func (_ceaef *PdfWriter )Encrypt (userPass ,ownerPass []byte ,options *EncryptOptions )error {_acbgg :=RC4_128bit ;if options !=nil {_acbgg =options .Algorithm ;};_cgeb :=_dfg .PermOwner ;if options !=nil {_cgeb =options .Permissions ;};var _bffdf _dce .Filter ;
switch _acbgg {case RC4_128bit :_bffdf =_dce .NewFilterV2 (16);case AES_128bit :_bffdf =_dce .NewFilterAESV2 ();case AES_256bit :_bffdf =_dce .NewFilterAESV3 ();default:return _dc .Errorf ("\u0075n\u0073\u0075\u0070\u0070o\u0072\u0074\u0065\u0064\u0020a\u006cg\u006fr\u0069\u0074\u0068\u006d\u003a\u0020\u0025v",options .Algorithm );
};_fggca ,_fedcb ,_fbgdf :=_fd .PdfCryptNewEncrypt (_bffdf ,userPass ,ownerPass ,_cgeb );if _fbgdf !=nil {return _fbgdf ;};_ceaef ._egadf =_fggca ;if _fedcb .Major !=0{_ceaef .SetVersion (_fedcb .Major ,_fedcb .Minor );};_ceaef ._dbecf =_fedcb .Encrypt ;
_ceaef ._gaeaa ,_ceaef ._cgaga =_fedcb .ID0 ,_fedcb .ID1 ;_abdd :=_fd .MakeIndirectObject (_fedcb .Encrypt );_ceaef ._abbcc =_abdd ;_ceaef .addObject (_abdd );return nil ;};
// NewXObjectImageFromImage creates a new XObject Image from an image object
// with default options. If encoder is nil, uses raw encoding (none).
func NewXObjectImageFromImage (img *Image ,cs PdfColorspace ,encoder _fd .StreamEncoder )(*XObjectImage ,error ){_gegc :=NewXObjectImage ();return UpdateXObjectImageFromImage (_gegc ,img ,cs ,encoder );};
// ToPdfObject implements interface PdfModel.
func (_fgc *PdfActionGoTo )ToPdfObject ()_fd .PdfObject {_fgc .PdfAction .ToPdfObject ();_gbb :=_fgc ._bfb ;_gdc :=_gbb .PdfObject .(*_fd .PdfObjectDictionary );_gdc .SetIfNotNil ("\u0053",_fd .MakeName (string (ActionTypeGoTo )));_gdc .SetIfNotNil ("\u0044",_fgc .D );
return _gbb ;};
// HasShadingByName checks whether a shading is defined by the specified keyName.
func (_aecda *PdfPageResources )HasShadingByName (keyName _fd .PdfObjectName )bool {_ ,_bfefde :=_aecda .GetShadingByName (keyName );return _bfefde ;};func (_beece *PdfFont )baseFields ()*fontCommon {if _beece ._gbaac ==nil {_ag .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 _beece ._gbaac .baseFields ();};func (_dfcaf *PdfAppender )replaceObject (_bacc ,_ebdb _fd .PdfObject ){switch _bgdf :=_bacc .(type ){case *_fd .PdfIndirectObject :_dfcaf ._aceb [_ebdb ]=_bgdf .ObjectNumber ;case *_fd .PdfObjectStream :_dfcaf ._aceb [_ebdb ]=_bgdf .ObjectNumber ;
};};func (_bfggd *PdfPage )setContainer (_fdaad *_fd .PdfIndirectObject ){_fdaad .PdfObject =_bfggd ._gaec ;_bfggd ._fgcac =_fdaad ;};func (_cdbee *PdfWriter )checkCrossReferenceStream ()bool {_bfbdg :=_cdbee ._ggaddg .Major > 1||(_cdbee ._ggaddg .Major ==1&&_cdbee ._ggaddg .Minor > 4);
if _cdbee ._bgced !=nil {_bfbdg =*_cdbee ._bgced ;};return _bfbdg ;};
// GetNumComponents returns the number of color components (3 for Lab).
func (_ffbc *PdfColorLab )GetNumComponents ()int {return 3};func (_caa *PdfReader )newPdfAnnotationMarkupFromDict (_cgd *_fd .PdfObjectDictionary )(*PdfAnnotationMarkup ,error ){_dbcc :=&PdfAnnotationMarkup {};if _dbf :=_cgd .Get ("\u0054");_dbf !=nil {_dbcc .T =_dbf ;
};if _cdaf :=_cgd .Get ("\u0050\u006f\u0070u\u0070");_cdaf !=nil {_gebgc ,_aea :=_cdaf .(*_fd .PdfIndirectObject );if !_aea {if _ ,_fcb :=_cdaf .(*_fd .PdfObjectNull );!_fcb {return nil ,_ad .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 {_fga ,_gaa :=_caa .newPdfAnnotationFromIndirectObject (_gebgc );if _gaa !=nil {return nil ,_gaa ;};if _fga !=nil {_gegf ,_accg :=_fga ._cfda .(*PdfAnnotationPopup );if !_accg {return nil ,_ad .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");
};_dbcc .Popup =_gegf ;};};};if _fgeeg :=_cgd .Get ("\u0043\u0041");_fgeeg !=nil {_dbcc .CA =_fgeeg ;};if _gfgcf :=_cgd .Get ("\u0052\u0043");_gfgcf !=nil {_dbcc .RC =_gfgcf ;};if _gacg :=_cgd .Get ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065");
_gacg !=nil {_dbcc .CreationDate =_gacg ;};if _cad :=_cgd .Get ("\u0049\u0052\u0054");_cad !=nil {_dbcc .IRT =_cad ;};if _gegfd :=_cgd .Get ("\u0053\u0075\u0062\u006a");_gegfd !=nil {_dbcc .Subj =_gegfd ;};if _fbb :=_cgd .Get ("\u0052\u0054");_fbb !=nil {_dbcc .RT =_fbb ;
};if _baa :=_cgd .Get ("\u0049\u0054");_baa !=nil {_dbcc .IT =_baa ;};if _cgg :=_cgd .Get ("\u0045\u0078\u0044\u0061\u0074\u0061");_cgg !=nil {_dbcc .ExData =_cgg ;};return _dbcc ,nil ;};
// ToPdfObject returns a stream object.
func (_abfeg *XObjectForm )ToPdfObject ()_fd .PdfObject {_eggf :=_abfeg ._cebfa ;_ebdde :=_eggf .PdfObjectDictionary ;if _abfeg .Filter !=nil {_ebdde =_abfeg .Filter .MakeStreamDict ();_eggf .PdfObjectDictionary =_ebdde ;};_ebdde .Set ("\u0054\u0079\u0070\u0065",_fd .MakeName ("\u0058O\u0062\u006a\u0065\u0063\u0074"));
_ebdde .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fd .MakeName ("\u0046\u006f\u0072\u006d"));_ebdde .SetIfNotNil ("\u0046\u006f\u0072\u006d\u0054\u0079\u0070\u0065",_abfeg .FormType );_ebdde .SetIfNotNil ("\u0042\u0042\u006f\u0078",_abfeg .BBox );_ebdde .SetIfNotNil ("\u004d\u0061\u0074\u0072\u0069\u0078",_abfeg .Matrix );
if _abfeg .Resources !=nil {_ebdde .SetIfNotNil ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s",_abfeg .Resources .ToPdfObject ());};_ebdde .SetIfNotNil ("\u0047\u0072\u006fu\u0070",_abfeg .Group );_ebdde .SetIfNotNil ("\u0052\u0065\u0066",_abfeg .Ref );
_ebdde .SetIfNotNil ("\u004d\u0065\u0074\u0061\u0044\u0061\u0074\u0061",_abfeg .MetaData );_ebdde .SetIfNotNil ("\u0050i\u0065\u0063\u0065\u0049\u006e\u0066o",_abfeg .PieceInfo );_ebdde .SetIfNotNil ("\u004c\u0061\u0073t\u004d\u006f\u0064\u0069\u0066\u0069\u0065\u0064",_abfeg .LastModified );
_ebdde .SetIfNotNil ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074",_abfeg .StructParent );_ebdde .SetIfNotNil ("\u0053\u0074\u0072\u0075\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074\u0073",_abfeg .StructParents );_ebdde .SetIfNotNil ("\u004f\u0050\u0049",_abfeg .OPI );
_ebdde .SetIfNotNil ("\u004f\u0043",_abfeg .OC );_ebdde .SetIfNotNil ("\u004e\u0061\u006d\u0065",_abfeg .Name );_ebdde .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_fd .MakeInteger (int64 (len (_abfeg .Stream ))));_eggf .Stream =_abfeg .Stream ;return _eggf ;
};
// NewPdfAnnotationRedact returns a new redact annotation.
func NewPdfAnnotationRedact ()*PdfAnnotationRedact {_dec :=NewPdfAnnotation ();_gbgd :=&PdfAnnotationRedact {};_gbgd .PdfAnnotation =_dec ;_gbgd .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_dec .SetContext (_gbgd );return _gbgd ;};
// PdfShadingType2 is an Axial shading.
type PdfShadingType2 struct{*PdfShading ;Coords *_fd .PdfObjectArray ;Domain *_fd .PdfObjectArray ;Function []PdfFunction ;Extend *_fd .PdfObjectArray ;};
// ToPdfObject convert PdfInfo to pdf object.
func (_eagad *PdfInfo )ToPdfObject ()_fd .PdfObject {_bbbb :=_fd .MakeDict ();_bbbb .SetIfNotNil ("\u0054\u0069\u0074l\u0065",_eagad .Title );_bbbb .SetIfNotNil ("\u0041\u0075\u0074\u0068\u006f\u0072",_eagad .Author );_bbbb .SetIfNotNil ("\u0053u\u0062\u006a\u0065\u0063\u0074",_eagad .Subject );
_bbbb .SetIfNotNil ("\u004b\u0065\u0079\u0077\u006f\u0072\u0064\u0073",_eagad .Keywords );_bbbb .SetIfNotNil ("\u0043r\u0065\u0061\u0074\u006f\u0072",_eagad .Creator );_bbbb .SetIfNotNil ("\u0050\u0072\u006f\u0064\u0075\u0063\u0065\u0072",_eagad .Producer );
_bbbb .SetIfNotNil ("\u0054r\u0061\u0070\u0070\u0065\u0064",_eagad .Trapped );if _eagad .CreationDate !=nil {_bbbb .SetIfNotNil ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065",_eagad .CreationDate .ToPdfObject ());};if _eagad .ModifiedDate !=nil {_bbbb .SetIfNotNil ("\u004do\u0064\u0044\u0061\u0074\u0065",_eagad .ModifiedDate .ToPdfObject ());
};for _ ,_cdag :=range _eagad ._defeg .Keys (){_bbbb .SetIfNotNil (_cdag ,_eagad ._defeg .Get (_cdag ));};return _bbbb ;};
// NewPdfAnnotationPolygon returns a new polygon annotation.
func NewPdfAnnotationPolygon ()*PdfAnnotationPolygon {_dcg :=NewPdfAnnotation ();_afe :=&PdfAnnotationPolygon {};_afe .PdfAnnotation =_dcg ;_afe .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_dcg .SetContext (_afe );return _afe ;};
// 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 (_aebc *PdfColorspaceSpecialPattern )ColorFromPdfObjects (objects []_fd .PdfObject )(PdfColor ,error ){if len (objects )< 1{return nil ,_ad .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");
};_fggde :=&PdfColorPattern {};_dbccg ,_dbbd :=objects [len (objects )-1].(*_fd .PdfObjectName );if !_dbbd {_ag .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 ;};_fggde .PatternName =*_dbccg ;if len (objects )> 1{_agbbd :=objects [0:len (objects )-1];if _aebc .UnderlyingCS ==nil {_ag .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 ,_ad .New ("\u0075n\u0064\u0065\u0072\u006cy\u0069\u006e\u0067\u0020\u0043S\u0020n\u006ft\u0020\u0064\u0065\u0066\u0069\u006e\u0065d");};_dcgg ,_gbbce :=_aebc .UnderlyingCS .ColorFromPdfObjects (_agbbd );if _gbbce !=nil {_ag .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",_gbbce );
return nil ,_gbbce ;};_fggde .Color =_dcgg ;};return _fggde ,nil ;};
// GetCharMetrics returns the char metrics for character code `code`.
func (_ffceff pdfFontType3 )GetCharMetrics (code _ee .CharCode )(_cf .CharMetrics ,bool ){if _aabae ,_fbfe :=_ffceff ._febf [code ];_fbfe {return _cf .CharMetrics {Wx :_aabae },true ;};if _cf .IsStdFont (_cf .StdFontName (_ffceff ._ffedb )){return _cf .CharMetrics {Wx :250},true ;
};return _cf .CharMetrics {},false ;};
// ToPdfObject return the CalGray colorspace as a PDF object (name dictionary).
func (_egdc *PdfColorspaceCalGray )ToPdfObject ()_fd .PdfObject {_aefc :=&_fd .PdfObjectArray {};_aefc .Append (_fd .MakeName ("\u0043a\u006c\u0047\u0072\u0061\u0079"));_abacg :=_fd .MakeDict ();if _egdc .WhitePoint !=nil {_abacg .Set ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074",_fd .MakeArray (_fd .MakeFloat (_egdc .WhitePoint [0]),_fd .MakeFloat (_egdc .WhitePoint [1]),_fd .MakeFloat (_egdc .WhitePoint [2])));
}else {_ag .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 _egdc .BlackPoint !=nil {_abacg .Set ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074",_fd .MakeArray (_fd .MakeFloat (_egdc .BlackPoint [0]),_fd .MakeFloat (_egdc .BlackPoint [1]),_fd .MakeFloat (_egdc .BlackPoint [2])));
};_abacg .Set ("\u0047\u0061\u006dm\u0061",_fd .MakeFloat (_egdc .Gamma ));_aefc .Append (_abacg );if _egdc ._gbaaf !=nil {_egdc ._gbaaf .PdfObject =_aefc ;return _egdc ._gbaaf ;};return _aefc ;};var (ErrRequiredAttributeMissing =_ad .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 =_ad .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0061\u0074\u0074\u0072i\u0062\u0075\u0074\u0065");ErrTypeCheck =_ad .New ("\u0074\u0079\u0070\u0065\u0020\u0063\u0068\u0065\u0063\u006b");_fbeg =_ad .New ("\u0072\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b\u0020e\u0072\u0072\u006f\u0072");
ErrEncrypted =_ad .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 =_ad .New ("\u0066\u006fn\u0074\u0020\u006eo\u0074\u0020\u0064\u0065\u0066\u0069\u006e\u0065\u0064");
ErrFontNotSupported =_ebb .Errorf ("u\u006e\u0073\u0075\u0070po\u0072t\u0065\u0064\u0020\u0066\u006fn\u0074\u0020\u0028\u0025\u0077\u0029",_fd .ErrNotSupported );ErrType1CFontNotSupported =_ebb .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",_fd .ErrNotSupported );
ErrType3FontNotSupported =_ebb .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",_fd .ErrNotSupported );
ErrTTCmapNotSupported =_ebb .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",_fd .ErrNotSupported );
ErrSignNotEnoughSpace =_ebb .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 =_ebb .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"););
// 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 (_bgbag *PdfPage )AppendContentBytes (cs []byte ,wrapContents bool )error {_bcdfc :=_bgbag .GetContentStreamObjs ();wrapContents =wrapContents &&len (_bcdfc )> 0;_bgagb :=_fd .NewFlateEncoder ();_eeda :=_fd .MakeArray ();if wrapContents {_bdace ,_adgffe :=_fd .MakeStream ([]byte ("\u0071\u000a"),_bgagb );
if _adgffe !=nil {return _adgffe ;};_eeda .Append (_bdace );};_eeda .Append (_bcdfc ...);if wrapContents {_dggbf ,_facea :=_fd .MakeStream ([]byte ("\u000a\u0051\u000a"),_bgagb );if _facea !=nil {return _facea ;};_eeda .Append (_dggbf );};_cedeb ,_dgfaf :=_fd .MakeStream (cs ,_bgagb );
if _dgfaf !=nil {return _dgfaf ;};_eeda .Append (_cedeb );_bgbag .Contents =_eeda ;return nil ;};
// Size returns the width and the height of the page. The method reports
// the page dimensions as displayed by a PDF viewer (i.e. page rotation is
// taken into account).
func (_ffcf *PdfPage )Size ()(float64 ,float64 ,error ){_dccaa ,_gbbg :=_ffcf .GetMediaBox ();if _gbbg !=nil {return 0,0,_gbbg ;};_cagbb ,_bfcc :=_dccaa .Width (),_dccaa .Height ();_gagb ,_gbbg :=_ffcf .GetRotate ();if _gbbg !=nil {_ag .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",_gbbg .Error ());
};if _fefc :=_gagb ;_fefc %360!=0&&_fefc %90==0{if _gbbab :=(360+_fefc %360)%360;_gbbab ==90||_gbbab ==270{_cagbb ,_bfcc =_bfcc ,_cagbb ;};};return _cagbb ,_bfcc ,nil ;};
// 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 ;
// 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 ){_ebegf ,_caga :=_def .ParsePdfTime (dateStr );if _caga !=nil {return PdfDate {},_caga ;};return NewPdfDateFromTime (_ebegf );};
// PdfActionGoToR represents a GoToR action.
type PdfActionGoToR struct{*PdfAction ;F *PdfFilespec ;D _fd .PdfObject ;NewWindow _fd .PdfObject ;};
// Encoder returns the font's text encoder.
func (_acde pdfFontType0 )Encoder ()_ee .TextEncoder {return _acde ._agbe };func _feffd (_bbed *_fd .PdfObjectDictionary ,_aefcde *fontCommon )(*pdfCIDFontType0 ,error ){if _aefcde ._eded !="\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0030"{_ag .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",_aefcde );
return nil ,_fd .ErrRangeError ;};_ebaab :=_deecg (_aefcde );_bbfga ,_dgedb :=_fd .GetDict (_bbed .Get ("\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f"));if !_dgedb {_ag .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",_aefcde );
return nil ,ErrRequiredAttributeMissing ;};_ebaab .CIDSystemInfo =_bbfga ;_ebaab .DW =_bbed .Get ("\u0044\u0057");_ebaab .W =_bbed .Get ("\u0057");_ebaab .DW2 =_bbed .Get ("\u0044\u0057\u0032");_ebaab .W2 =_bbed .Get ("\u0057\u0032");_ebaab ._aaeef =1000.0;
if _ffba ,_gffbe :=_fd .GetNumberAsFloat (_ebaab .DW );_gffbe ==nil {_ebaab ._aaeef =_ffba ;};_ggdga ,_aeaee :=_gecgg (_ebaab .W );if _aeaee !=nil {return nil ,_aeaee ;};if _ggdga ==nil {_ggdga =map[_ee .CharCode ]float64 {};};_ebaab ._ccca =_ggdga ;return _ebaab ,nil ;
};
// NewOutlineItem returns a new outline item instance.
func NewOutlineItem (title string ,dest OutlineDest )*OutlineItem {return &OutlineItem {Title :title ,Dest :dest };};
// 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 (_bagf *PdfPageResources )GetColorspaces ()(*PdfPageResourcesColorspaces ,error ){if _bagf ._agaf !=nil {return _bagf ._agaf ,nil ;};if _bagf .ColorSpace ==nil {return nil ,nil ;};_bfbgd ,_ababf :=_dcfae (_bagf .ColorSpace );if _ababf !=nil {return nil ,_ababf ;
};_bagf ._agaf =_bfbgd ;return _bagf ._agaf ,nil ;};var _ pdfFont =(*pdfFontSimple )(nil );
// GetCharMetrics returns the char metrics for character code `code`.
func (_gdcf pdfCIDFontType0 )GetCharMetrics (code _ee .CharCode )(_cf .CharMetrics ,bool ){_adbdgb :=_gdcf ._aaeef ;if _cgdc ,_ebdbc :=_gdcf ._ccca [code ];_ebdbc {_adbdgb =_cgdc ;};return _cf .CharMetrics {Wx :_adbdgb },true ;};
// ToPdfObject recursively builds the Outline tree PDF object.
func (_gabgc *PdfOutline )ToPdfObject ()_fd .PdfObject {_eadg :=_gabgc ._fcef ;_gbce :=_eadg .PdfObject .(*_fd .PdfObjectDictionary );_gbce .Set ("\u0054\u0079\u0070\u0065",_fd .MakeName ("\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0073"));if _gabgc .First !=nil {_gbce .Set ("\u0046\u0069\u0072s\u0074",_gabgc .First .ToPdfObject ());
};if _gabgc .Last !=nil {_gbce .Set ("\u004c\u0061\u0073\u0074",_gabgc .Last .GetContext ().GetContainingPdfObject ());};if _gabgc .Parent !=nil {_gbce .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_gabgc .Parent .GetContext ().GetContainingPdfObject ());
};if _gabgc .Count !=nil {_gbce .Set ("\u0043\u006f\u0075n\u0074",_fd .MakeInteger (*_gabgc .Count ));};return _eadg ;};
// 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 _fd .StreamEncoder ;Intent _fd .PdfObject ;ImageMask _fd .PdfObject ;Mask _fd .PdfObject ;Matte _fd .PdfObject ;Decode _fd .PdfObject ;Interpolate _fd .PdfObject ;Alternatives _fd .PdfObject ;
SMask _fd .PdfObject ;SMaskInData _fd .PdfObject ;Name _fd .PdfObject ;StructParent _fd .PdfObject ;ID _fd .PdfObject ;OPI _fd .PdfObject ;Metadata _fd .PdfObject ;OC _fd .PdfObject ;Stream []byte ;_bbcgd *_fd .PdfObjectStream ;_egdda bool ;};
// XObjectType represents the type of an XObject.
type XObjectType int ;
// ToPdfObject returns a PDF object representation of the outline item.
func (_gggba *OutlineItem )ToPdfObject ()_fd .PdfObject {_bdbfc ,_ :=_gggba .ToPdfOutlineItem ();return _bdbfc .ToPdfObject ();};
// PdfAnnotationStrikeOut represents StrikeOut annotations.
// (Section 12.5.6.10).
type PdfAnnotationStrikeOut struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _fd .PdfObject ;};
// 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 (_eedge []_fd .PdfObject )([]_fd .PdfObject ,error );};
// PdfAnnotationSquiggly represents Squiggly annotations.
// (Section 12.5.6.10).
type PdfAnnotationSquiggly struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _fd .PdfObject ;};
// StandardImplementer is an interface that defines specified PDF standards like PDF/A-1A (pdfa.Profile1A)
// NOTE: This implementation is in experimental development state.
//
// Keep in mind that it might change in the subsequent minor versions.
type StandardImplementer interface{StandardValidator ;StandardApplier ;
// StandardName gets the human-readable name of the standard.
StandardName ()string ;};
// DecodeArray returns the component range values for the Indexed colorspace.
func (_bdeg *PdfColorspaceSpecialIndexed )DecodeArray ()[]float64 {return []float64 {0,float64 (_bdeg .HiVal )};};
// 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 (_ddda *PdfColorspaceLab )ColorFromPdfObjects (objects []_fd .PdfObject )(PdfColor ,error ){if len (objects )!=3{return nil ,_ad .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_fadb ,_efbcc :=_fd .GetNumbersAsFloat (objects );
if _efbcc !=nil {return nil ,_efbcc ;};return _ddda .ColorFromFloats (_fadb );};
// 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 ;
// AddCerts adds certificates to DSS.
func (_gffdf *DSS )AddCerts (certs [][]byte )([]*_fd .PdfObjectStream ,error ){return _gffdf .add (&_gffdf .Certs ,_gffdf ._ffbg ,certs );};
// 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 (_afccb *PdfFont )GetCharMetrics (code _ee .CharCode )(CharMetrics ,bool ){var _ebda _cf .CharMetrics ;switch _ggbaf :=_afccb ._gbaac .(type ){case *pdfFontSimple :if _dffd ,_cegdf :=_ggbaf .GetCharMetrics (code );_cegdf {return _dffd ,_cegdf ;};case *pdfFontType0 :if _cecge ,_fcgfb :=_ggbaf .GetCharMetrics (code );
_fcgfb {return _cecge ,_fcgfb ;};case *pdfCIDFontType0 :if _ebfeb ,_agaae :=_ggbaf .GetCharMetrics (code );_agaae {return _ebfeb ,_agaae ;};case *pdfCIDFontType2 :if _ecegg ,_addaa :=_ggbaf .GetCharMetrics (code );_addaa {return _ecegg ,_addaa ;};case *pdfFontType3 :if _ggge ,_fecaa :=_ggbaf .GetCharMetrics (code );
_fecaa {return _ggge ,_fecaa ;};default:_ag .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",_afccb ._gbaac );
return _ebda ,false ;};if _cgff ,_dddc :=_afccb .GetFontDescriptor ();_dddc ==nil &&_cgff !=nil {return _cf .CharMetrics {Wx :_cgff ._gfbd },true ;};_ag .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",_afccb );
return _ebda ,false ;};func (_fbfd *PdfReader )newPdfActionNamedFromDict (_ddd *_fd .PdfObjectDictionary )(*PdfActionNamed ,error ){return &PdfActionNamed {N :_ddd .Get ("\u004e")},nil ;};func _ddbf ()_cd .Time {_feadd .Lock ();defer _feadd .Unlock ();
return _gbfgb };