mirror of
https://github.com/unidoc/unipdf.git
synced 2025-04-30 13:48:51 +08:00
4907 lines
735 KiB
Go
4907 lines
735 KiB
Go
//
|
||
// 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 (_ba "bufio";_ca "bytes";_dd "crypto/md5";_gd "crypto/rand";_bd "crypto/sha1";_g "crypto/x509";_cb "encoding/binary";_d "encoding/hex";_gf "errors";_bg "fmt";_gb "github.com/unidoc/pkcs7";_eg "github.com/unidoc/unipdf/v3/common";_ebb "github.com/unidoc/unipdf/v3/core";
|
||
_fe "github.com/unidoc/unipdf/v3/core/security";_fa "github.com/unidoc/unipdf/v3/core/security/crypt";_ebe "github.com/unidoc/unipdf/v3/internal/cmap";_dg "github.com/unidoc/unipdf/v3/internal/imageutil";_ce "github.com/unidoc/unipdf/v3/internal/license";
|
||
_abg "github.com/unidoc/unipdf/v3/internal/sampling";_da "github.com/unidoc/unipdf/v3/internal/textencoding";_fd "github.com/unidoc/unipdf/v3/internal/timeutils";_fef "github.com/unidoc/unipdf/v3/internal/transform";_bda "github.com/unidoc/unipdf/v3/model/internal/docutil";
|
||
_bad "github.com/unidoc/unipdf/v3/model/internal/fonts";_ac "github.com/unidoc/unipdf/v3/model/mdp";_cg "github.com/unidoc/unipdf/v3/model/sigutil";_bc "github.com/unidoc/unipdf/v3/ps";_gbg "github.com/unidoc/unitype";_bfc "golang.org/x/xerrors";_c "hash";
|
||
_gdc "image";_e "image/color";_ "image/gif";_ "image/png";_ab "io";_ef "io/ioutil";_cbg "math";_ff "math/rand";_ed "os";_a "regexp";_ae "sort";_aa "strconv";_ee "strings";_bf "sync";_f "time";_cc "unicode";_de "unicode/utf8";);
|
||
|
||
// DefaultImageHandler is the default implementation of the ImageHandler using the standard go library.
|
||
type DefaultImageHandler struct{};func (_fdfbe *PdfWriter )writeString (_ggfbf string ){if _fdfbe ._bgef !=nil {return ;};_fbdbg ,_cbaba :=_fdfbe ._cbabb .WriteString (_ggfbf );_fdfbe ._afedd +=int64 (_fbdbg );_fdfbe ._bgef =_cbaba ;};
|
||
|
||
// NewPdfAnnotationCircle returns a new circle annotation.
|
||
func NewPdfAnnotationCircle ()*PdfAnnotationCircle {_cfg :=NewPdfAnnotation ();_geb :=&PdfAnnotationCircle {};_geb .PdfAnnotation =_cfg ;_geb .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_cfg .SetContext (_geb );return _geb ;};func (_febag *Image )samplesTrimPadding (_efgc []uint32 )[]uint32 {_fdfge :=_febag .ColorComponents *int (_febag .Width )*int (_febag .Height );
|
||
if len (_efgc )==_fdfge {return _efgc ;};_bdbbd :=make ([]uint32 ,_fdfge );_daeae :=int (_febag .Width )*_febag .ColorComponents ;var _aebae ,_bege ,_agabg ,_ggcb int ;_bcefb :=_dg .BytesPerLine (int (_febag .Width ),int (_febag .BitsPerComponent ),_febag .ColorComponents );
|
||
for _aebae =0;_aebae < int (_febag .Height );_aebae ++{_bege =_aebae *int (_febag .Width );_agabg =_aebae *_bcefb ;for _ggcb =0;_ggcb < _daeae ;_ggcb ++{_bdbbd [_bege +_ggcb ]=_efgc [_agabg +_ggcb ];};};return _bdbbd ;};func (_agaf *pdfCIDFontType0 )getFontDescriptor ()*PdfFontDescriptor {return _agaf ._fbbd };
|
||
|
||
|
||
// NewPdfAnnotationMovie returns a new movie annotation.
|
||
func NewPdfAnnotationMovie ()*PdfAnnotationMovie {_cdcd :=NewPdfAnnotation ();_ffee :=&PdfAnnotationMovie {};_ffee .PdfAnnotation =_cdcd ;_cdcd .SetContext (_ffee );return _ffee ;};func (_bbgg *PdfReader )newPdfAnnotationProjectionFromDict (_ebbe *_ebb .PdfObjectDictionary )(*PdfAnnotationProjection ,error ){_cbgb :=&PdfAnnotationProjection {};
|
||
_gcfe ,_aafc :=_bbgg .newPdfAnnotationMarkupFromDict (_ebbe );if _aafc !=nil {return nil ,_aafc ;};_cbgb .PdfAnnotationMarkup =_gcfe ;return _cbgb ,nil ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_bae *PdfActionGoToE )ToPdfObject ()_ebb .PdfObject {_bae .PdfAction .ToPdfObject ();_gg :=_bae ._abe ;_ea :=_gg .PdfObject .(*_ebb .PdfObjectDictionary );_ea .SetIfNotNil ("\u0053",_ebb .MakeName (string (ActionTypeGoToE )));if _bae .F !=nil {_ea .Set ("\u0046",_bae .F .ToPdfObject ());
|
||
};_ea .SetIfNotNil ("\u0044",_bae .D );_ea .SetIfNotNil ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw",_bae .NewWindow );_ea .SetIfNotNil ("\u0054",_bae .T );return _gg ;};func _abba (_ddfbd _ebb .PdfObject )(*PdfColorspaceSpecialPattern ,error ){_eg .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",_ddfbd .String (),_ddfbd );
|
||
_cdag :=NewPdfColorspaceSpecialPattern ();if _gggfc ,_eceb :=_ddfbd .(*_ebb .PdfIndirectObject );_eceb {_cdag ._adegb =_gggfc ;};_ddfbd =_ebb .TraceToDirectObject (_ddfbd );if _bfgf ,_gfaf :=_ddfbd .(*_ebb .PdfObjectName );_gfaf {if *_bfgf !="\u0050a\u0074\u0074\u0065\u0072\u006e"{return nil ,_bg .Errorf ("\u0069\u006e\u0076a\u006c\u0069\u0064\u0020\u006e\u0061\u006d\u0065");
|
||
};return _cdag ,nil ;};_dced ,_cddc :=_ddfbd .(*_ebb .PdfObjectArray );if !_cddc {_eg .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",_ddfbd );
|
||
return nil ,_bg .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0050\u0061\u0074\u0074e\u0072n\u0020C\u0053\u0020\u006f\u0062\u006a\u0065\u0063t");};if _dced .Len ()!=1&&_dced .Len ()!=2{_eg .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",_dced );
|
||
return nil ,_bg .Errorf ("\u0069n\u0076\u0061\u006c\u0069\u0064\u0020\u0050\u0061\u0074\u0074\u0065r\u006e\u0020\u0043\u0053\u0020\u0061\u0072\u0072\u0061\u0079");};_ddfbd =_dced .Get (0);if _egfcf ,_cfdd :=_ddfbd .(*_ebb .PdfObjectName );_cfdd {if *_egfcf !="\u0050a\u0074\u0074\u0065\u0072\u006e"{_eg .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",_egfcf );
|
||
return nil ,_bg .Errorf ("\u0069\u006e\u0076a\u006c\u0069\u0064\u0020\u006e\u0061\u006d\u0065");};};if _dced .Len ()> 1{_ddfbd =_dced .Get (1);_ddfbd =_ebb .TraceToDirectObject (_ddfbd );_bece ,_cdec :=NewPdfColorspaceFromPdfObject (_ddfbd );if _cdec !=nil {return nil ,_cdec ;
|
||
};_cdag .UnderlyingCS =_bece ;};_eg .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",_cdag .UnderlyingCS );
|
||
return _cdag ,nil ;};func _eacbd ()_f .Time {_daddc .Lock ();defer _daddc .Unlock ();return _ccdff };
|
||
|
||
// NewPdfFilespecFromObj creates and returns a new PdfFilespec object.
|
||
func NewPdfFilespecFromObj (obj _ebb .PdfObject )(*PdfFilespec ,error ){_edge :=&PdfFilespec {};var _fada *_ebb .PdfObjectDictionary ;if _bfdgg ,_gfdd :=_ebb .GetIndirect (obj );_gfdd {_edge ._gcge =_bfdgg ;_cdcc ,_ffff :=_ebb .GetDict (_bfdgg .PdfObject );
|
||
if !_ffff {_eg .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 ,_ebb .ErrTypeError ;};_fada =_cdcc ;}else if _ggefg ,_dbdcd :=_ebb .GetDict (obj );
|
||
_dbdcd {_edge ._gcge =_ggefg ;_fada =_ggefg ;}else {_eg .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 ,_ebb .ErrTypeError ;};if _fada ==nil {_eg .Log .Debug ("\u0044i\u0063t\u0069\u006f\u006e\u0061\u0072y\u0020\u006di\u0073\u0073\u0069\u006e\u0067");
|
||
return nil ,_gf .New ("\u0064\u0069\u0063t\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};if _cfcf :=_fada .Get ("\u0054\u0079\u0070\u0065");_cfcf !=nil {_fgadf ,_dcccf :=_cfcf .(*_ebb .PdfObjectName );if !_dcccf {_eg .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",_cfcf );
|
||
}else {if *_fgadf !="\u0046\u0069\u006c\u0065\u0073\u0070\u0065\u0063"{_eg .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",*_fgadf );
|
||
};};};if _eedda :=_fada .Get ("\u0046\u0053");_eedda !=nil {_edge .FS =_eedda ;};if _gebaa :=_fada .Get ("\u0046");_gebaa !=nil {_edge .F =_gebaa ;};if _dbga :=_fada .Get ("\u0055\u0046");_dbga !=nil {_edge .UF =_dbga ;};if _bgdag :=_fada .Get ("\u0044\u004f\u0053");
|
||
_bgdag !=nil {_edge .DOS =_bgdag ;};if _agcea :=_fada .Get ("\u004d\u0061\u0063");_agcea !=nil {_edge .Mac =_agcea ;};if _deed :=_fada .Get ("\u0055\u006e\u0069\u0078");_deed !=nil {_edge .Unix =_deed ;};if _bbba :=_fada .Get ("\u0049\u0044");_bbba !=nil {_edge .ID =_bbba ;
|
||
};if _gdcf :=_fada .Get ("\u0056");_gdcf !=nil {_edge .V =_gdcf ;};if _egfe :=_fada .Get ("\u0045\u0046");_egfe !=nil {_edge .EF =_egfe ;};if _eadc :=_fada .Get ("\u0052\u0046");_eadc !=nil {_edge .RF =_eadc ;};if _gcgbb :=_fada .Get ("\u0044\u0065\u0073\u0063");
|
||
_gcgbb !=nil {_edge .Desc =_gcgbb ;};if _bbae :=_fada .Get ("\u0043\u0049");_bbae !=nil {_edge .CI =_bbae ;};return _edge ,nil ;};
|
||
|
||
// NewPdfAnnotationSquiggly returns a new text squiggly annotation.
|
||
func NewPdfAnnotationSquiggly ()*PdfAnnotationSquiggly {_bef :=NewPdfAnnotation ();_bcg :=&PdfAnnotationSquiggly {};_bcg .PdfAnnotation =_bef ;_bcg .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_bef .SetContext (_bcg );return _bcg ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_fgd *PdfActionGoToR )ToPdfObject ()_ebb .PdfObject {_fgd .PdfAction .ToPdfObject ();_gbeb :=_fgd ._abe ;_ebdd :=_gbeb .PdfObject .(*_ebb .PdfObjectDictionary );_ebdd .SetIfNotNil ("\u0053",_ebb .MakeName (string (ActionTypeGoToR )));if _fgd .F !=nil {_ebdd .Set ("\u0046",_fgd .F .ToPdfObject ());
|
||
};_ebdd .SetIfNotNil ("\u0044",_fgd .D );_ebdd .SetIfNotNil ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw",_fgd .NewWindow );return _gbeb ;};
|
||
|
||
// FieldImageProvider provides fields images for specified fields.
|
||
type FieldImageProvider interface{FieldImageValues ()(map[string ]*Image ,error );};
|
||
|
||
// SetOptimizer sets the optimizer to optimize PDF before writing.
|
||
func (_dcfeg *PdfWriter )SetOptimizer (optimizer Optimizer ){_dcfeg ._aadcd =optimizer };
|
||
|
||
// PdfActionThread represents a thread action.
|
||
type PdfActionThread struct{*PdfAction ;F *PdfFilespec ;D _ebb .PdfObject ;B _ebb .PdfObject ;};func _feaae ()string {_daddc .Lock ();defer _daddc .Unlock ();if len (_afedf )> 0{return _afedf ;};return "\u0055n\u0069\u0044\u006f\u0063 \u002d\u0020\u0068\u0074\u0074p\u003a/\u002fu\u006e\u0069\u0064\u006f\u0063\u002e\u0069o";
|
||
};func (_dadec *PdfReader )newPdfOutlineItemFromIndirectObject (_ccgee *_ebb .PdfIndirectObject )(*PdfOutlineItem ,error ){_agffa ,_ebed :=_ccgee .PdfObject .(*_ebb .PdfObjectDictionary );if !_ebed {return nil ,_bg .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");
|
||
};_gcdc :=NewPdfOutlineItem ();_fbdc :=_agffa .Get ("\u0054\u0069\u0074l\u0065");if _fbdc ==nil {return nil ,_bg .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");
|
||
};_ffebg ,_ddbb :=_ebb .GetString (_fbdc );if !_ddbb {return nil ,_bg .Errorf ("\u0074\u0069\u0074le\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0073\u0074\u0072\u0069\u006e\u0067\u0020\u0028\u0025\u0054\u0029",_fbdc );};_gcdc .Title =_ffebg ;if _cfeec :=_agffa .Get ("\u0043\u006f\u0075n\u0074");
|
||
_cfeec !=nil {_cbcfb ,_febb :=_cfeec .(*_ebb .PdfObjectInteger );if !_febb {return nil ,_bg .Errorf ("\u0063o\u0075\u006e\u0074\u0020n\u006f\u0074\u0020\u0061\u006e \u0069n\u0074e\u0067\u0065\u0072\u0020\u0028\u0025\u0054)",_cfeec );};_ccacf :=int64 (*_cbcfb );
|
||
_gcdc .Count =&_ccacf ;};if _dcebd :=_agffa .Get ("\u0044\u0065\u0073\u0074");_dcebd !=nil {_gcdc .Dest =_ebb .ResolveReference (_dcebd );if !_dadec ._ceefa {_bcegf :=_dadec .traverseObjectData (_gcdc .Dest );if _bcegf !=nil {return nil ,_bcegf ;};};};
|
||
if _dfegb :=_agffa .Get ("\u0041");_dfegb !=nil {_gcdc .A =_ebb .ResolveReference (_dfegb );if !_dadec ._ceefa {_gdgeg :=_dadec .traverseObjectData (_gcdc .A );if _gdgeg !=nil {return nil ,_gdgeg ;};};};if _ddbcc :=_agffa .Get ("\u0053\u0045");_ddbcc !=nil {_gcdc .SE =nil ;
|
||
};if _dafga :=_agffa .Get ("\u0043");_dafga !=nil {_gcdc .C =_ebb .ResolveReference (_dafga );};if _bggc :=_agffa .Get ("\u0046");_bggc !=nil {_gcdc .F =_ebb .ResolveReference (_bggc );};return _gcdc ,nil ;};
|
||
|
||
// PdfFunctionType3 defines stitching of the subdomains of several 1-input functions to produce
|
||
// a single new 1-input function.
|
||
type PdfFunctionType3 struct{Domain []float64 ;Range []float64 ;Functions []PdfFunction ;Bounds []float64 ;Encode []float64 ;_acac *_ebb .PdfIndirectObject ;};func (_eacaf *LTV )generateVRIKey (_eceff *PdfSignature )(string ,error ){_ffaed ,_fefgg :=_eaef (_eceff .Contents .Bytes ());
|
||
if _fefgg !=nil {return "",_fefgg ;};return _ee .ToUpper (_d .EncodeToString (_ffaed )),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{_cada PdfModel ;_cdfd *_ebb .PdfIndirectObject ;Parent *PdfField ;Annotations []*PdfAnnotationWidget ;Kids []*PdfField ;FT *_ebb .PdfObjectName ;T *_ebb .PdfObjectString ;TU *_ebb .PdfObjectString ;TM *_ebb .PdfObjectString ;Ff *_ebb .PdfObjectInteger ;
|
||
V _ebb .PdfObject ;DV _ebb .PdfObject ;AA _ebb .PdfObject ;VariableText *VariableText ;};func (_baae *PdfReader )newPdfActionJavaScriptFromDict (_edefc *_ebb .PdfObjectDictionary )(*PdfActionJavaScript ,error ){return &PdfActionJavaScript {JS :_edefc .Get ("\u004a\u0053")},nil ;
|
||
};func _afdc (_ggafa *fontCommon )*pdfCIDFontType0 {return &pdfCIDFontType0 {fontCommon :*_ggafa }};
|
||
|
||
// IsEncrypted returns true if the PDF file is encrypted.
|
||
func (_badbc *PdfReader )IsEncrypted ()(bool ,error ){return _badbc ._cafdf .IsEncrypted ()};
|
||
|
||
// GetContentStreams returns the content stream as an array of strings.
|
||
func (_eaac *PdfPage )GetContentStreams ()([]string ,error ){_cadgf :=_eaac .GetContentStreamObjs ();var _aacf []string ;for _ ,_debg :=range _cadgf {_eeafa ,_ggcbg :=_bfebg (_debg );if _ggcbg !=nil {return nil ,_ggcbg ;};_aacf =append (_aacf ,_eeafa );
|
||
};return _aacf ,nil ;};
|
||
|
||
// GetContainingPdfObject implements interface PdfModel.
|
||
func (_fea *PdfAction )GetContainingPdfObject ()_ebb .PdfObject {return _fea ._abe };func (_dcga *PdfWriter )writeXRefStreams (_bfabe int ,_bcfe int64 )error {_bdcea :=_bfabe +1;_dcga ._bedfc [_bdcea ]=crossReference {Type :1,ObjectNumber :_bdcea ,Offset :_bcfe };
|
||
_gccdc :=_ca .NewBuffer (nil );_daege :=_ebb .MakeArray ();for _aggfc :=0;_aggfc <=_bfabe ;{for ;_aggfc <=_bfabe ;_aggfc ++{_efcea ,_egda :=_dcga ._bedfc [_aggfc ];if _egda &&(!_dcga ._abffb ||_dcga ._abffb &&(_efcea .Type ==1&&_efcea .Offset >=_dcga ._ggbfg ||_efcea .Type ==0)){break ;
|
||
};};var _aggbde int ;for _aggbde =_aggfc +1;_aggbde <=_bfabe ;_aggbde ++{_gaaed ,_eccag :=_dcga ._bedfc [_aggbde ];if _eccag &&(!_dcga ._abffb ||_dcga ._abffb &&(_gaaed .Type ==1&&_gaaed .Offset > _dcga ._ggbfg )){continue ;};break ;};_daege .Append (_ebb .MakeInteger (int64 (_aggfc )),_ebb .MakeInteger (int64 (_aggbde -_aggfc )));
|
||
for _geeaf :=_aggfc ;_geeaf < _aggbde ;_geeaf ++{_cbcea :=_dcga ._bedfc [_geeaf ];switch _cbcea .Type {case 0:_cb .Write (_gccdc ,_cb .BigEndian ,byte (0));_cb .Write (_gccdc ,_cb .BigEndian ,uint32 (0));_cb .Write (_gccdc ,_cb .BigEndian ,uint16 (0xFFFF));
|
||
case 1:_cb .Write (_gccdc ,_cb .BigEndian ,byte (1));_cb .Write (_gccdc ,_cb .BigEndian ,uint32 (_cbcea .Offset ));_cb .Write (_gccdc ,_cb .BigEndian ,uint16 (_cbcea .Generation ));case 2:_cb .Write (_gccdc ,_cb .BigEndian ,byte (2));_cb .Write (_gccdc ,_cb .BigEndian ,uint32 (_cbcea .ObjectNumber ));
|
||
_cb .Write (_gccdc ,_cb .BigEndian ,uint16 (_cbcea .Index ));};};_aggfc =_aggbde +1;};_bdgee ,_abgec :=_ebb .MakeStream (_gccdc .Bytes (),_ebb .NewFlateEncoder ());if _abgec !=nil {return _abgec ;};_bdgee .ObjectNumber =int64 (_bdcea );_bdgee .PdfObjectDictionary .Set ("\u0054\u0079\u0070\u0065",_ebb .MakeName ("\u0058\u0052\u0065\u0066"));
|
||
_bdgee .PdfObjectDictionary .Set ("\u0057",_ebb .MakeArray (_ebb .MakeInteger (1),_ebb .MakeInteger (4),_ebb .MakeInteger (2)));_bdgee .PdfObjectDictionary .Set ("\u0049\u006e\u0064e\u0078",_daege );_bdgee .PdfObjectDictionary .Set ("\u0053\u0069\u007a\u0065",_ebb .MakeInteger (int64 (_bdcea +1)));
|
||
_bdgee .PdfObjectDictionary .Set ("\u0049\u006e\u0066\u006f",_dcga ._eadfd );_bdgee .PdfObjectDictionary .Set ("\u0052\u006f\u006f\u0074",_dcga ._gegba );if _dcga ._abffb &&_dcga ._bcage > 0{_bdgee .PdfObjectDictionary .Set ("\u0050\u0072\u0065\u0076",_ebb .MakeInteger (_dcga ._bcage ));
|
||
};if _dcga ._cgfde !=nil {_bdgee .Set ("\u0045n\u0063\u0072\u0079\u0070\u0074",_dcga ._cbcaa );};if _dcga ._eecfe ==nil &&_dcga ._gfdea !=""&&_dcga ._gffb !=""{_dcga ._eecfe =_ebb .MakeArray (_ebb .MakeHexString (_dcga ._gfdea ),_ebb .MakeHexString (_dcga ._gffb ));
|
||
};if _dcga ._eecfe !=nil {_eg .Log .Trace ("\u0049d\u0073\u003a\u0020\u0025\u0073",_dcga ._eecfe );_bdgee .Set ("\u0049\u0044",_dcga ._eecfe );};_dcga .writeObject (int (_bdgee .ObjectNumber ),_bdgee );return nil ;};
|
||
|
||
// NewPdfActionGoTo3DView returns a new "goTo3DView" action.
|
||
func NewPdfActionGoTo3DView ()*PdfActionGoTo3DView {_fbb :=NewPdfAction ();_ebd :=&PdfActionGoTo3DView {};_ebd .PdfAction =_fbb ;_fbb .SetContext (_ebd );return _ebd ;};
|
||
|
||
// SetDocInfo sets the document /Info metadata.
|
||
// This will overwrite any globally declared document info.
|
||
func (_ebdf *PdfAppender )SetDocInfo (info *PdfInfo ){_ebdf ._eeee =info };
|
||
|
||
// SetDate sets the `M` field of the signature.
|
||
func (_fbagd *PdfSignature )SetDate (date _f .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";};_fbagd .M =_ebb .MakeString (date .Format (format ));
|
||
};
|
||
|
||
// 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 _ebb .PdfObject )(_ebb .PdfObjectName ,error ){var _cdbg *_ebb .PdfObjectName ;var _ggeb *_ebb .PdfObjectArray ;if _cfccf ,_bcbbf :=obj .(*_ebb .PdfIndirectObject );_bcbbf {if _ddfc ,_dabe :=_cfccf .PdfObject .(*_ebb .PdfObjectArray );
|
||
_dabe {_ggeb =_ddfc ;}else if _bfbgf ,_faba :=_cfccf .PdfObject .(*_ebb .PdfObjectName );_faba {_cdbg =_bfbgf ;};}else if _gdcdg ,_eeca :=obj .(*_ebb .PdfObjectArray );_eeca {_ggeb =_gdcdg ;}else if _fabe ,_fdde :=obj .(*_ebb .PdfObjectName );_fdde {_cdbg =_fabe ;
|
||
};if _cdbg !=nil {switch *_cdbg {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 *_cdbg ,nil ;case "\u0050a\u0074\u0074\u0065\u0072\u006e":return *_cdbg ,nil ;
|
||
};};if _ggeb !=nil &&_ggeb .Len ()> 0{if _gbacc ,_edcec :=_ggeb .Get (0).(*_ebb .PdfObjectName );_edcec {switch *_gbacc {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 _ggeb .Len ()==1{return *_gbacc ,nil ;
|
||
};case "\u0043a\u006c\u0047\u0072\u0061\u0079","\u0043\u0061\u006c\u0052\u0047\u0042","\u004c\u0061\u0062":return *_gbacc ,nil ;case "\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064","\u0050a\u0074\u0074\u0065\u0072\u006e","\u0049n\u0064\u0065\u0078\u0065\u0064":return *_gbacc ,nil ;
|
||
case "\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e","\u0044e\u0076\u0069\u0063\u0065\u004e":return *_gbacc ,nil ;};};};return "",nil ;};
|
||
|
||
// ToOutlineTree returns a low level PdfOutlineTreeNode object, based on
|
||
// the current instance.
|
||
func (_cgaea *Outline )ToOutlineTree ()*PdfOutlineTreeNode {return &_cgaea .ToPdfOutline ().PdfOutlineTreeNode ;};func _afag (_aebfb *_ebb .PdfIndirectObject ,_ggdddb *_ebb .PdfObjectDictionary )(*DSS ,error ){if _aebfb ==nil {_aebfb =_ebb .MakeIndirectObject (nil );
|
||
};_aebfb .PdfObject =_ebb .MakeDict ();_bbdfe :=map[string ]*VRI {};if _ebfgg ,_dace :=_ebb .GetDict (_ggdddb .Get ("\u0056\u0052\u0049"));_dace {for _ ,_dacg :=range _ebfgg .Keys (){if _adege ,_ageec :=_ebb .GetDict (_ebfgg .Get (_dacg ));_ageec {_bbdfe [_ee .ToUpper (_dacg .String ())]=_bcbe (_adege );
|
||
};};};return &DSS {Certs :_ffaa (_ggdddb .Get ("\u0043\u0065\u0072t\u0073")),OCSPs :_ffaa (_ggdddb .Get ("\u004f\u0043\u0053P\u0073")),CRLs :_ffaa (_ggdddb .Get ("\u0043\u0052\u004c\u0073")),VRI :_bbdfe ,_fcgb :_aebfb },nil ;};
|
||
|
||
// Set applies flag fl to the flag's bitmask and returns the combined flag.
|
||
func (_gbcf FieldFlag )Set (fl FieldFlag )FieldFlag {return FieldFlag (_gbcf .Mask ()|fl .Mask ())};
|
||
|
||
// NewPdfColorspaceDeviceGray returns a new grayscale colorspace.
|
||
func NewPdfColorspaceDeviceGray ()*PdfColorspaceDeviceGray {return &PdfColorspaceDeviceGray {}};func (_dbfee *PdfWriter )optimize ()error {if _dbfee ._aadcd ==nil {return nil ;};var _fgdf error ;_dbfee ._ebdgg ,_fgdf =_dbfee ._aadcd .Optimize (_dbfee ._ebdgg );
|
||
if _fgdf !=nil {return _fgdf ;};_accgc :=make (map[_ebb .PdfObject ]struct{},len (_dbfee ._ebdgg ));for _ ,_gaeff :=range _dbfee ._ebdgg {_accgc [_gaeff ]=struct{}{};};_dbfee ._ffffd =_accgc ;return nil ;};
|
||
|
||
// PdfActionSetOCGState represents a SetOCGState action.
|
||
type PdfActionSetOCGState struct{*PdfAction ;State _ebb .PdfObject ;PreserveRB _ebb .PdfObject ;};
|
||
|
||
// NewPdfAnnotationSound returns a new sound annotation.
|
||
func NewPdfAnnotationSound ()*PdfAnnotationSound {_eac :=NewPdfAnnotation ();_feae :=&PdfAnnotationSound {};_feae .PdfAnnotation =_eac ;_feae .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_eac .SetContext (_feae );return _feae ;};
|
||
|
||
// PdfActionMovie represents a movie action.
|
||
type PdfActionMovie struct{*PdfAction ;Annotation _ebb .PdfObject ;T _ebb .PdfObject ;Operation _ebb .PdfObject ;};
|
||
|
||
// GetShadingByName gets the shading specified by keyName. Returns nil if not existing.
|
||
// The bool flag indicated whether it was found or not.
|
||
func (_dcgb *PdfPageResources )GetShadingByName (keyName _ebb .PdfObjectName )(*PdfShading ,bool ){if _dcgb .Shading ==nil {return nil ,false ;};_egfcg ,_cbbb :=_ebb .TraceToDirectObject (_dcgb .Shading ).(*_ebb .PdfObjectDictionary );if !_cbbb {_eg .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",_dcgb .Shading );
|
||
return nil ,false ;};if _gccd :=_egfcg .Get (keyName );_gccd !=nil {_fgcgf ,_fdceb :=_ggdfc (_gccd );if _fdceb !=nil {_eg .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",_fdceb );
|
||
return nil ,false ;};return _fgcgf ,true ;};return nil ,false ;};
|
||
|
||
// NewPdfColorspaceICCBased returns a new ICCBased colorspace object.
|
||
func NewPdfColorspaceICCBased (N int )(*PdfColorspaceICCBased ,error ){_bebbf :=&PdfColorspaceICCBased {};if N !=1&&N !=3&&N !=4{return nil ,_bg .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u004e\u0020\u0028\u0031/\u0033\u002f\u0034\u0029");
|
||
};_bebbf .N =N ;return _bebbf ,nil ;};
|
||
|
||
// GetContainingPdfObject returns the XObject Form's containing object (indirect object).
|
||
func (_cgadf *XObjectForm )GetContainingPdfObject ()_ebb .PdfObject {return _cgadf ._gebcd };func _ccef (_agdbd _ebb .PdfObject )(*PdfPattern ,error ){_gafde :=&PdfPattern {};var _ceaa *_ebb .PdfObjectDictionary ;if _eaaec ,_decb :=_ebb .GetIndirect (_agdbd );
|
||
_decb {_gafde ._dcddc =_eaaec ;_afgge ,_fbag :=_eaaec .PdfObject .(*_ebb .PdfObjectDictionary );if !_fbag {_eg .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",_eaaec .PdfObject );
|
||
return nil ,_ebb .ErrTypeError ;};_ceaa =_afgge ;}else if _cegcb ,_gfcae :=_ebb .GetStream (_agdbd );_gfcae {_gafde ._dcddc =_cegcb ;_ceaa =_cegcb .PdfObjectDictionary ;}else {_eg .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",_agdbd );
|
||
return nil ,_ebb .ErrTypeError ;};_adcaa :=_ceaa .Get ("P\u0061\u0074\u0074\u0065\u0072\u006e\u0054\u0079\u0070\u0065");if _adcaa ==nil {_eg .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 ;};_eefed ,_ecaac :=_adcaa .(*_ebb .PdfObjectInteger );if !_ecaac {_eg .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",_adcaa );
|
||
return nil ,_ebb .ErrTypeError ;};if *_eefed !=1&&*_eefed !=2{_eg .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",*_eefed );return nil ,_ebb .ErrRangeError ;
|
||
};_gafde .PatternType =int64 (*_eefed );switch *_eefed {case 1:_gfcgf ,_gdeec :=_ggbd (_ceaa );if _gdeec !=nil {return nil ,_gdeec ;};_gfcgf .PdfPattern =_gafde ;_gafde ._ffagg =_gfcgf ;return _gafde ,nil ;case 2:_abeg ,_bdcf :=_cdbaf (_ceaa );if _bdcf !=nil {return nil ,_bdcf ;
|
||
};_abeg .PdfPattern =_gafde ;_gafde ._ffagg =_abeg ;return _gafde ,nil ;};return nil ,_gf .New ("\u0075n\u006bn\u006f\u0077\u006e\u0020\u0070\u0061\u0074\u0074\u0065\u0072\u006e");};
|
||
|
||
// GetNumComponents returns the number of color components of the colorspace device.
|
||
// Returns 3 for a Lab device.
|
||
func (_bebe *PdfColorspaceLab )GetNumComponents ()int {return 3};
|
||
|
||
// GetDocMDPPermission returns the DocMDP level of the restrictions
|
||
func (_cdbcc *PdfSignature )GetDocMDPPermission ()(_ac .DocMDPPermission ,bool ){for _ ,_egaba :=range _cdbcc .Reference .Elements (){if _baebf ,_gdcag :=_ebb .GetDict (_egaba );_gdcag {if _edcdd ,_dcgc :=_ebb .GetNameVal (_baebf .Get ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u004d\u0065\u0074\u0068\u006f\u0064"));
|
||
_dcgc &&_edcdd =="\u0044\u006f\u0063\u004d\u0044\u0050"{if _bfegg ,_dfbgbd :=_ebb .GetDict (_baebf .Get ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u0050\u0061\u0072\u0061\u006d\u0073"));_dfbgbd {if P ,_dbdgf :=_ebb .GetIntVal (_bfegg .Get ("\u0050"));
|
||
_dbdgf {return _ac .DocMDPPermission (P ),true ;};};};};};return 0,false ;};func _ccgda (_adaea *_ebb .PdfObjectDictionary )(*PdfShadingType4 ,error ){_eggcb :=PdfShadingType4 {};_bffcd :=_adaea .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065");
|
||
if _bffcd ==nil {_eg .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 ;};_aegff ,_ceed :=_bffcd .(*_ebb .PdfObjectInteger );if !_ceed {_eg .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",_bffcd );
|
||
return nil ,_ebb .ErrTypeError ;};_eggcb .BitsPerCoordinate =_aegff ;_bffcd =_adaea .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074");if _bffcd ==nil {_eg .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 ;};_aegff ,_ceed =_bffcd .(*_ebb .PdfObjectInteger );if !_ceed {_eg .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",_bffcd );
|
||
return nil ,_ebb .ErrTypeError ;};_eggcb .BitsPerComponent =_aegff ;_bffcd =_adaea .Get ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067");if _bffcd ==nil {_eg .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 ;};_aegff ,_ceed =_bffcd .(*_ebb .PdfObjectInteger );if !_ceed {_eg .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",_bffcd );
|
||
return nil ,_ebb .ErrTypeError ;};_eggcb .BitsPerComponent =_aegff ;_bffcd =_adaea .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");if _bffcd ==nil {_eg .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 ;};_ddefb ,_ceed :=_bffcd .(*_ebb .PdfObjectArray );if !_ceed {_eg .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",_bffcd );
|
||
return nil ,_ebb .ErrTypeError ;};_eggcb .Decode =_ddefb ;_bffcd =_adaea .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");if _bffcd ==nil {_eg .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 ;};_eggcb .Function =[]PdfFunction {};if _aeaee ,_ebbga :=_bffcd .(*_ebb .PdfObjectArray );_ebbga {for _ ,_gceg :=range _aeaee .Elements (){_adef ,_cdbgb :=_aagg (_gceg );if _cdbgb !=nil {_eg .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",_cdbgb );
|
||
return nil ,_cdbgb ;};_eggcb .Function =append (_eggcb .Function ,_adef );};}else {_gdda ,_bfeed :=_aagg (_bffcd );if _bfeed !=nil {_eg .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",_bfeed );
|
||
return nil ,_bfeed ;};_eggcb .Function =append (_eggcb .Function ,_gdda );};return &_eggcb ,nil ;};
|
||
|
||
// VRI represents a Validation-Related Information dictionary.
|
||
// The VRI dictionary contains validation data in the form of
|
||
// certificates, OCSP and CRL information, for a single signature.
|
||
// See ETSI TS 102 778-4 V1.1.1 for more information.
|
||
type VRI struct{Cert []*_ebb .PdfObjectStream ;OCSP []*_ebb .PdfObjectStream ;CRL []*_ebb .PdfObjectStream ;TU *_ebb .PdfObjectString ;TS *_ebb .PdfObjectString ;};var _cbcfg =map[string ]string {"\u0053\u0079\u006d\u0062\u006f\u006c":"\u0053\u0079\u006d\u0062\u006f\u006c\u0045\u006e\u0063o\u0064\u0069\u006e\u0067","\u005a\u0061\u0070f\u0044\u0069\u006e\u0067\u0062\u0061\u0074\u0073":"Z\u0061p\u0066\u0044\u0069\u006e\u0067\u0062\u0061\u0074s\u0045\u006e\u0063\u006fdi\u006e\u0067"};
|
||
func _gfed (_cfdc ,_ceccd string )string {if _ee .Contains (_cfdc ,"\u002b"){_ccfag :=_ee .Split (_cfdc ,"\u002b");if len (_ccfag )==2{_cfdc =_ccfag [1];};};return _ceccd +"\u002b"+_cfdc ;};
|
||
|
||
// NewPdfActionResetForm returns a new "reset form" action.
|
||
func NewPdfActionResetForm ()*PdfActionResetForm {_dac :=NewPdfAction ();_abb :=&PdfActionResetForm {};_abb .PdfAction =_dac ;_dac .SetContext (_abb );return _abb ;};func (_egeg *DSS )addOCSPs (_bdbaa [][]byte )([]*_ebb .PdfObjectStream ,error ){return _egeg .add (&_egeg .OCSPs ,_egeg ._cadd ,_bdbaa );
|
||
};
|
||
|
||
// SetXObjectFormByName adds the provided XObjectForm to the page resources.
|
||
// The added XObjectForm is identified by the specified name.
|
||
func (_dffa *PdfPageResources )SetXObjectFormByName (keyName _ebb .PdfObjectName ,xform *XObjectForm )error {_fegb :=xform .ToPdfObject ().(*_ebb .PdfObjectStream );_fbdb :=_dffa .SetXObjectByName (keyName ,_fegb );return _fbdb ;};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<<25);FieldFlagDoNotSpellCheck FieldFlag =(1<<22);
|
||
FieldFlagCombo FieldFlag =(1<<17);FieldFlagEdit FieldFlag =(1<<18);FieldFlagSort FieldFlag =(1<<19);FieldFlagMultiSelect FieldFlag =(1<<21);FieldFlagCommitOnSelChange FieldFlag =(1<<26););
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_agee *PdfAnnotationRichMedia )ToPdfObject ()_ebb .PdfObject {_agee .PdfAnnotation .ToPdfObject ();_dbadg :=_agee ._bdcd ;_cag :=_dbadg .PdfObject .(*_ebb .PdfObjectDictionary );_cag .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ebb .MakeName ("\u0052i\u0063\u0068\u004d\u0065\u0064\u0069a"));
|
||
_cag .SetIfNotNil ("\u0052\u0069\u0063\u0068\u004d\u0065\u0064\u0069\u0061\u0053\u0065\u0074t\u0069\u006e\u0067\u0073",_agee .RichMediaSettings );_cag .SetIfNotNil ("\u0052\u0069c\u0068\u004d\u0065d\u0069\u0061\u0043\u006f\u006e\u0074\u0065\u006e\u0074",_agee .RichMediaContent );
|
||
return _dbadg ;};func (_dafe *DSS )generateHashMap (_fbed []*_ebb .PdfObjectStream )(map[string ]*_ebb .PdfObjectStream ,error ){_cbdd :=map[string ]*_ebb .PdfObjectStream {};for _ ,_bdab :=range _fbed {_acaf ,_gfga :=_ebb .DecodeStream (_bdab );if _gfga !=nil {return nil ,_gfga ;
|
||
};_geddd ,_gfga :=_eaef (_acaf );if _gfga !=nil {return nil ,_gfga ;};_cbdd [string (_geddd )]=_bdab ;};return _cbdd ,nil ;};func (_faed *PdfReader )newPdfAnnotation3DFromDict (_efcc *_ebb .PdfObjectDictionary )(*PdfAnnotation3D ,error ){_fdfc :=PdfAnnotation3D {};
|
||
_fdfc .T3DD =_efcc .Get ("\u0033\u0044\u0044");_fdfc .T3DV =_efcc .Get ("\u0033\u0044\u0056");_fdfc .T3DA =_efcc .Get ("\u0033\u0044\u0041");_fdfc .T3DI =_efcc .Get ("\u0033\u0044\u0049");_fdfc .T3DB =_efcc .Get ("\u0033\u0044\u0042");return &_fdfc ,nil ;
|
||
};
|
||
|
||
// PdfAppender appends new PDF content to an existing PDF document via incremental updates.
|
||
type PdfAppender struct{_ecce _ab .ReadSeeker ;_gege *_ebb .PdfParser ;_acfe *PdfReader ;Reader *PdfReader ;_dfbg []*PdfPage ;_bfef *PdfAcroForm ;_eged *DSS ;_eaaa *Permissions ;_acfd _ebb .XrefTable ;_cfag int64 ;_gbddb int ;_bfeg []_ebb .PdfObject ;_ddfg map[_ebb .PdfObject ]struct{};
|
||
_gbfa map[_ebb .PdfObject ]int64 ;_eebc map[_ebb .PdfObject ]struct{};_agb map[_ebb .PdfObject ]struct{};_bee int64 ;_adca bool ;_accg string ;_gfba *EncryptOptions ;_eeee *PdfInfo ;};
|
||
|
||
// PdfAnnotationUnderline represents Underline annotations.
|
||
// (Section 12.5.6.10).
|
||
type PdfAnnotationUnderline struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _ebb .PdfObject ;};
|
||
|
||
// GetStandardApplier gets currently used StandardApplier..
|
||
func (_aaaac *PdfWriter )GetStandardApplier ()StandardApplier {return _aaaac ._cafac };
|
||
|
||
// Duplicate creates a duplicate page based on the current one and returns it.
|
||
func (_cced *PdfPage )Duplicate ()*PdfPage {_fcggf :=*_cced ;_fcggf ._cdbfde =_ebb .MakeDict ();_fcggf ._defbb =_ebb .MakeIndirectObject (_fcggf ._cdbfde );return &_fcggf ;};func (_fgagc *PdfWriter )writeTrailer (_dcfae int ){_fgagc .writeString ("\u0078\u0072\u0065\u0066\u000d\u000a");
|
||
for _cbcaaa :=0;_cbcaaa <=_dcfae ;{for ;_cbcaaa <=_dcfae ;_cbcaaa ++{_abadab ,_baedg :=_fgagc ._bedfc [_cbcaaa ];if _baedg &&(!_fgagc ._abffb ||_fgagc ._abffb &&(_abadab .Type ==1&&_abadab .Offset >=_fgagc ._ggbfg ||_abadab .Type ==0)){break ;};};var _edefdg int ;
|
||
for _edefdg =_cbcaaa +1;_edefdg <=_dcfae ;_edefdg ++{_geabd ,_gdfa :=_fgagc ._bedfc [_edefdg ];if _gdfa &&(!_fgagc ._abffb ||_fgagc ._abffb &&(_geabd .Type ==1&&_geabd .Offset > _fgagc ._ggbfg )){continue ;};break ;};_bbda :=_bg .Sprintf ("\u0025d\u0020\u0025\u0064\u000d\u000a",_cbcaaa ,_edefdg -_cbcaaa );
|
||
_fgagc .writeString (_bbda );for _egege :=_cbcaaa ;_egege < _edefdg ;_egege ++{_fcgec :=_fgagc ._bedfc [_egege ];switch _fcgec .Type {case 0:_bbda =_bg .Sprintf ("\u0025\u002e\u0031\u0030\u0064\u0020\u0025\u002e\u0035d\u0020\u0066\u000d\u000a",0,65535);
|
||
_fgagc .writeString (_bbda );case 1:_bbda =_bg .Sprintf ("\u0025\u002e\u0031\u0030\u0064\u0020\u0025\u002e\u0035d\u0020\u006e\u000d\u000a",_fcgec .Offset ,0);_fgagc .writeString (_bbda );};};_cbcaaa =_edefdg +1;};_bgcce :=_ebb .MakeDict ();_bgcce .Set ("\u0049\u006e\u0066\u006f",_fgagc ._eadfd );
|
||
_bgcce .Set ("\u0052\u006f\u006f\u0074",_fgagc ._gegba );_bgcce .Set ("\u0053\u0069\u007a\u0065",_ebb .MakeInteger (int64 (_dcfae +1)));if _fgagc ._abffb &&_fgagc ._bcage > 0{_bgcce .Set ("\u0050\u0072\u0065\u0076",_ebb .MakeInteger (_fgagc ._bcage ));
|
||
};if _fgagc ._cgfde !=nil {_bgcce .Set ("\u0045n\u0063\u0072\u0079\u0070\u0074",_fgagc ._cbcaa );};if _fgagc ._eecfe ==nil &&_fgagc ._gfdea !=""&&_fgagc ._gffb !=""{_fgagc ._eecfe =_ebb .MakeArray (_ebb .MakeHexString (_fgagc ._gfdea ),_ebb .MakeHexString (_fgagc ._gffb ));
|
||
};if _fgagc ._eecfe !=nil {_bgcce .Set ("\u0049\u0044",_fgagc ._eecfe );_eg .Log .Trace ("\u0049d\u0073\u003a\u0020\u0025\u0073",_fgagc ._eecfe );};_fgagc .writeString ("\u0074\u0072\u0061\u0069\u006c\u0065\u0072\u000a");_fgagc .writeString (_bgcce .WriteString ());
|
||
_fgagc .writeString ("\u000a");};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_ddgcc *PdfAnnotationTrapNet )ToPdfObject ()_ebb .PdfObject {_ddgcc .PdfAnnotation .ToPdfObject ();_abee :=_ddgcc ._bdcd ;_cfgc :=_abee .PdfObject .(*_ebb .PdfObjectDictionary );_cfgc .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ebb .MakeName ("\u0054r\u0061\u0070\u004e\u0065\u0074"));
|
||
return _abee ;};
|
||
|
||
// BytesToCharcodes converts the bytes in a PDF string to character codes.
|
||
func (_deaaf *PdfFont )BytesToCharcodes (data []byte )[]_da .CharCode {_eg .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 _fcffa ,_dfe :=_deaaf ._ebcad .(*pdfFontType0 );_dfe &&_fcffa ._efeb !=nil {if _bacg ,_egcfd :=_fcffa .bytesToCharcodes (data );_egcfd {return _bacg ;};};var (_cfaad =make ([]_da .CharCode ,0,len (data )+len (data )%2);_cadg =_deaaf .baseFields (););
|
||
if _cadg ._dcdd !=nil {if _fgcce ,_bfgc :=_cadg ._dcdd .BytesToCharcodes (data );_bfgc {for _ ,_fafda :=range _fgcce {_cfaad =append (_cfaad ,_da .CharCode (_fafda ));};return _cfaad ;};};if _cadg .isCIDFont (){if len (data )==1{data =[]byte {0,data [0]};
|
||
};if len (data )%2!=0{_eg .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 _cefgd :=0;_cefgd < len (data );_cefgd +=2{_ffde :=uint16 (data [_cefgd ])<<8|uint16 (data [_cefgd +1]);_cfaad =append (_cfaad ,_da .CharCode (_ffde ));};}else {for _ ,_dgaag :=range data {_cfaad =append (_cfaad ,_da .CharCode (_dgaag ));
|
||
};};return _cfaad ;};func (_badda *PdfReader )newPdfAnnotationLineFromDict (_gdf *_ebb .PdfObjectDictionary )(*PdfAnnotationLine ,error ){_dfc :=PdfAnnotationLine {};_age ,_bbaa :=_badda .newPdfAnnotationMarkupFromDict (_gdf );if _bbaa !=nil {return nil ,_bbaa ;
|
||
};_dfc .PdfAnnotationMarkup =_age ;_dfc .L =_gdf .Get ("\u004c");_dfc .BS =_gdf .Get ("\u0042\u0053");_dfc .LE =_gdf .Get ("\u004c\u0045");_dfc .IC =_gdf .Get ("\u0049\u0043");_dfc .LL =_gdf .Get ("\u004c\u004c");_dfc .LLE =_gdf .Get ("\u004c\u004c\u0045");
|
||
_dfc .Cap =_gdf .Get ("\u0043\u0061\u0070");_dfc .IT =_gdf .Get ("\u0049\u0054");_dfc .LLO =_gdf .Get ("\u004c\u004c\u004f");_dfc .CP =_gdf .Get ("\u0043\u0050");_dfc .Measure =_gdf .Get ("\u004de\u0061\u0073\u0075\u0072\u0065");_dfc .CO =_gdf .Get ("\u0043\u004f");
|
||
return &_dfc ,nil ;};
|
||
|
||
// K returns the value of the key component of the color.
|
||
func (_abdgd *PdfColorDeviceCMYK )K ()float64 {return _abdgd [3]};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_ebge *PdfAnnotationInk )ToPdfObject ()_ebb .PdfObject {_ebge .PdfAnnotation .ToPdfObject ();_aebf :=_ebge ._bdcd ;_bbbg :=_aebf .PdfObject .(*_ebb .PdfObjectDictionary );_ebge .PdfAnnotationMarkup .appendToPdfDictionary (_bbbg );_bbbg .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ebb .MakeName ("\u0049\u006e\u006b"));
|
||
_bbbg .SetIfNotNil ("\u0049n\u006b\u004c\u0069\u0073\u0074",_ebge .InkList );_bbbg .SetIfNotNil ("\u0042\u0053",_ebge .BS );return _aebf ;};
|
||
|
||
// 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 (_ggc PdfColor )(PdfColor ,error );
|
||
|
||
// GetNumComponents returns the number of components in the PdfColorspace.
|
||
GetNumComponents ()int ;
|
||
|
||
// ToPdfObject returns a PdfObject representation of the PdfColorspace.
|
||
ToPdfObject ()_ebb .PdfObject ;
|
||
|
||
// ColorFromPdfObjects returns a PdfColor in the given PdfColorspace from an array of PdfObject where each
|
||
// PdfObject represents a numeric value.
|
||
ColorFromPdfObjects (_deeb []_ebb .PdfObject )(PdfColor ,error );
|
||
|
||
// ColorFromFloats returns a new PdfColor based on input color components for a given PdfColorspace.
|
||
ColorFromFloats (_ecee []float64 )(PdfColor ,error );
|
||
|
||
// DecodeArray returns the Decode array for the PdfColorSpace, i.e. the range of each component.
|
||
DecodeArray ()[]float64 ;};
|
||
|
||
// NewPdfColorspaceDeviceN returns an initialized PdfColorspaceDeviceN.
|
||
func NewPdfColorspaceDeviceN ()*PdfColorspaceDeviceN {_bagc :=&PdfColorspaceDeviceN {};return _bagc };func _agcbd (_eefg _ebb .PdfObject )(*PdfColorspaceSpecialSeparation ,error ){_bcda :=NewPdfColorspaceSpecialSeparation ();if _cggg ,_gedd :=_eefg .(*_ebb .PdfIndirectObject );
|
||
_gedd {_bcda ._cded =_cggg ;};_eefg =_ebb .TraceToDirectObject (_eefg );_cfccb ,_eecef :=_eefg .(*_ebb .PdfObjectArray );if !_eecef {return nil ,_bg .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 _cfccb .Len ()!=4{return nil ,_bg .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");};_eefg =_cfccb .Get (0);
|
||
_agfc ,_eecef :=_eefg .(*_ebb .PdfObjectName );if !_eecef {return nil ,_bg .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 *_agfc !="\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e"{return nil ,_bg .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");
|
||
};_eefg =_cfccb .Get (1);_agfc ,_eecef =_eefg .(*_ebb .PdfObjectName );if !_eecef {return nil ,_bg .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");
|
||
};_bcda .ColorantName =_agfc ;_eefg =_cfccb .Get (2);_gfbg ,_aedga :=NewPdfColorspaceFromPdfObject (_eefg );if _aedga !=nil {return nil ,_aedga ;};_bcda .AlternateSpace =_gfbg ;_gcfc ,_aedga :=_aagg (_cfccb .Get (3));if _aedga !=nil {return nil ,_aedga ;
|
||
};_bcda .TintTransform =_gcfc ;return _bcda ,nil ;};func _abeb (_fegc *PdfField ,_ggff _ebb .PdfObject )error {switch _fegc .GetContext ().(type ){case *PdfFieldText :switch _cbbf :=_ggff .(type ){case *_ebb .PdfObjectName :_afcc :=_cbbf ;_eg .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",_afcc .String ());
|
||
_fegc .V =_ebb .MakeEncodedString (_cbbf .String (),true );case *_ebb .PdfObjectString :_fegc .V =_ebb .MakeEncodedString (_cbbf .String (),true );default:_eg .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",_cbbf ,_cbbf );
|
||
};case *PdfFieldButton :switch _ggff .(type ){case *_ebb .PdfObjectName :if len (_ggff .String ())> 0{_fegc .V =_ggff ;_bgfag (_fegc ,_ggff );};case *_ebb .PdfObjectString :if len (_ggff .String ())> 0{_fegc .V =_ebb .MakeName (_ggff .String ());_bgfag (_fegc ,_fegc .V );
|
||
};default:_eg .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",_fegc .PartialName (),_ggff );_fegc .V =_ggff ;};case *PdfFieldChoice :switch _ggff .(type ){case *_ebb .PdfObjectName :if len (_ggff .String ())> 0{_fegc .V =_ebb .MakeString (_ggff .String ());
|
||
_bgfag (_fegc ,_ggff );};case *_ebb .PdfObjectString :if len (_ggff .String ())> 0{_fegc .V =_ggff ;_bgfag (_fegc ,_ebb .MakeName (_ggff .String ()));};default:_eg .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",_fegc .PartialName (),_ggff );
|
||
_fegc .V =_ggff ;};case *PdfFieldSignature :_eg .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",_fegc .PartialName (),_ggff );
|
||
};return nil ;};
|
||
|
||
// NewCustomPdfOutputIntent creates a new custom PdfOutputIntent.
|
||
func NewCustomPdfOutputIntent (outputCondition ,outputConditionIdentifier ,info string ,destOutputProfile []byte ,colorComponents int )*PdfOutputIntent {return &PdfOutputIntent {Type :"\u004f\u0075\u0074p\u0075\u0074\u0049\u006e\u0074\u0065\u006e\u0074",OutputCondition :outputCondition ,OutputConditionIdentifier :outputConditionIdentifier ,Info :info ,DestOutputProfile :destOutputProfile ,_faeb :_ebb .MakeDict (),ColorComponents :colorComponents };
|
||
};
|
||
|
||
// GetIndirectObjectByNumber retrieves and returns a specific PdfObject by object number.
|
||
func (_bfeeb *PdfReader )GetIndirectObjectByNumber (number int )(_ebb .PdfObject ,error ){_bbcfe ,_aefbg :=_bfeeb ._cafdf .LookupByNumber (number );return _bbcfe ,_aefbg ;};type pdfCIDFontType2 struct{fontCommon ;_ddea *_ebb .PdfIndirectObject ;_aacb _da .TextEncoder ;
|
||
|
||
|
||
// Table 117 – Entries in a CIDFont dictionary (page 269)
|
||
// Dictionary that defines the character collection of the CIDFont (required).
|
||
// See Table 116.
|
||
CIDSystemInfo *_ebb .PdfObjectDictionary ;
|
||
|
||
// Glyph metrics fields (optional).
|
||
DW _ebb .PdfObject ;W _ebb .PdfObject ;DW2 _ebb .PdfObject ;W2 _ebb .PdfObject ;
|
||
|
||
// CIDs to glyph indices mapping (optional).
|
||
CIDToGIDMap _ebb .PdfObject ;_dgbc map[_da .CharCode ]float64 ;_bagcb float64 ;_dceb map[rune ]int ;};
|
||
|
||
// Normalize swaps (Llx,Urx) if Urx < Llx, and (Lly,Ury) if Ury < Lly.
|
||
func (_fabab *PdfRectangle )Normalize (){if _fabab .Llx > _fabab .Urx {_fabab .Llx ,_fabab .Urx =_fabab .Urx ,_fabab .Llx ;};if _fabab .Lly > _fabab .Ury {_fabab .Lly ,_fabab .Ury =_fabab .Ury ,_fabab .Lly ;};};
|
||
|
||
// NewPdfActionNamed returns a new "named" action.
|
||
func NewPdfActionNamed ()*PdfActionNamed {_edb :=NewPdfAction ();_eea :=&PdfActionNamed {};_eea .PdfAction =_edb ;_edb .SetContext (_eea );return _eea ;};
|
||
|
||
// GetPdfInfo returns the PDF info dictionary.
|
||
func (_bgaec *PdfReader )GetPdfInfo ()(*PdfInfo ,error ){_fbaee ,_bcad :=_bgaec .GetTrailer ();if _bcad !=nil {return nil ,_bcad ;};var _eecgb *_ebb .PdfObjectDictionary ;_fdeab :=_fbaee .Get ("\u0049\u006e\u0066\u006f");switch _adaf :=_fdeab .(type ){case *_ebb .PdfObjectReference :_ffgac :=_adaf ;
|
||
_fdeab ,_bcad =_bgaec .GetIndirectObjectByNumber (int (_ffgac .ObjectNumber ));_fdeab =_ebb .TraceToDirectObject (_fdeab );if _bcad !=nil {return nil ,_bcad ;};_eecgb ,_ =_fdeab .(*_ebb .PdfObjectDictionary );case *_ebb .PdfObjectDictionary :_eecgb =_adaf ;
|
||
};if _eecgb ==nil {return nil ,_gf .New ("I\u006e\u0066\u006f\u0020\u0064\u0069c\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u0020\u006eo\u0074\u0020\u0070r\u0065s\u0065\u006e\u0074");};_afgec ,_bcad :=NewPdfInfoFromObject (_eecgb );if _bcad !=nil {return nil ,_bcad ;
|
||
};return _afgec ,nil ;};type pdfFontSimple struct{fontCommon ;_fafaf *_ebb .PdfIndirectObject ;_cdff map[_da .CharCode ]float64 ;_ebcb _da .TextEncoder ;_dacee _da .TextEncoder ;_adbd *PdfFontDescriptor ;
|
||
|
||
// Encoding is subject to limitations that are described in 9.6.6, "Character Encoding".
|
||
// BaseFont is derived differently.
|
||
FirstChar _ebb .PdfObject ;LastChar _ebb .PdfObject ;Widths _ebb .PdfObject ;Encoding _ebb .PdfObject ;_ddgd *_bad .RuneCharSafeMap ;};var (_aabec =_a .MustCompile ("\u005cd\u002b\u0020\u0064\u0069c\u0074\u005c\u0073\u002b\u0028d\u0075p\u005cs\u002b\u0029\u003f\u0062\u0065\u0067\u0069n");
|
||
_afgea =_a .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");_bdddd =_a .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");
|
||
_aeecf ="\u002f\u0045\u006e\u0063od\u0069\u006e\u0067\u0020\u0032\u0035\u0036\u0020\u0061\u0072\u0072\u0061\u0079";_ccdgc ="\u0072\u0065\u0061d\u006f\u006e\u006c\u0079\u0020\u0064\u0065\u0066";_cfgg ="\u0063\u0075\u0072\u0072\u0065\u006e\u0074\u0066\u0069\u006c\u0065\u0020e\u0065\u0078\u0065\u0063";
|
||
);
|
||
|
||
// GetBorderWidth returns the border style's width.
|
||
func (_fbbg *PdfBorderStyle )GetBorderWidth ()float64 {if _fbbg .W ==nil {return 1;};return *_fbbg .W ;};func (_eca *PdfReader )newPdfAnnotationScreenFromDict (_aace *_ebb .PdfObjectDictionary )(*PdfAnnotationScreen ,error ){_eded :=PdfAnnotationScreen {};
|
||
_eded .T =_aace .Get ("\u0054");_eded .MK =_aace .Get ("\u004d\u004b");_eded .A =_aace .Get ("\u0041");_eded .AA =_aace .Get ("\u0041\u0041");return &_eded ,nil ;};func (_cdd *PdfReader )newPdfAnnotationStampFromDict (_bca *_ebb .PdfObjectDictionary )(*PdfAnnotationStamp ,error ){_eacc :=PdfAnnotationStamp {};
|
||
_ccd ,_geg :=_cdd .newPdfAnnotationMarkupFromDict (_bca );if _geg !=nil {return nil ,_geg ;};_eacc .PdfAnnotationMarkup =_ccd ;_eacc .Name =_bca .Get ("\u004e\u0061\u006d\u0065");return &_eacc ,nil ;};func (_afec *PdfReader )loadPerms ()(*Permissions ,error ){if _bcggb :=_afec ._fdgda .Get ("\u0050\u0065\u0072m\u0073");
|
||
_bcggb !=nil {if _ddcbf ,_eggfd :=_ebb .GetDict (_bcggb );_eggfd {_cbgaa :=_ddcbf .Get ("\u0044\u006f\u0063\u004d\u0044\u0050");if _cbgaa ==nil {return nil ,nil ;};if _edfdd ,_geecf :=_ebb .GetIndirect (_cbgaa );_geecf {_gcbeb ,_cecee :=_afec .newPdfSignatureFromIndirect (_edfdd );
|
||
if _cecee !=nil {return nil ,_cecee ;};return NewPermissions (_gcbeb ),nil ;};return nil ,_bg .Errorf ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0044\u006f\u0063M\u0044\u0050\u0020\u0065nt\u0072\u0079");};return nil ,_bg .Errorf ("\u0069\u006e\u0076\u0061li\u0064\u0020\u0050\u0065\u0072\u006d\u0073\u0020\u0065\u006e\u0074\u0072\u0079");
|
||
};return nil ,nil ;};
|
||
|
||
// GetCatalogMarkInfo gets catalog MarkInfo object.
|
||
func (_cdcgb *PdfReader )GetCatalogMarkInfo ()(_ebb .PdfObject ,bool ){if _cdcgb ._fdgda ==nil {return nil ,false ;};_fdgb :=_cdcgb ._fdgda .Get ("\u004d\u0061\u0072\u006b\u0049\u006e\u0066\u006f");return _fdgb ,_fdgb !=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 (_dcbgd DefaultImageHandler )Compress (input *Image ,quality int64 )(*Image ,error ){return input ,nil ;};func _ggddd (_bbea _ebb .PdfObject )(*PdfBorderStyle ,error ){_bfaa :=&PdfBorderStyle {};_bfaa ._dgaa =_bbea ;var _egbb *_ebb .PdfObjectDictionary ;
|
||
_bbea =_ebb .TraceToDirectObject (_bbea );_egbb ,_ecdf :=_bbea .(*_ebb .PdfObjectDictionary );if !_ecdf {return nil ,_gf .New ("\u0074\u0079\u0070\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};if _efccb :=_egbb .Get ("\u0054\u0079\u0070\u0065");_efccb !=nil {_accc ,_bdgc :=_efccb .(*_ebb .PdfObjectName );
|
||
if !_bdgc {_eg .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",_efccb );
|
||
}else {if *_accc !="\u0042\u006f\u0072\u0064\u0065\u0072"{_eg .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",*_accc );};};};if _fee :=_egbb .Get ("\u0057");
|
||
_fee !=nil {_gfg ,_dfbe :=_ebb .GetNumberAsFloat (_fee );if _dfbe !=nil {_eg .Log .Debug ("\u0045\u0072\u0072\u006fr \u0072\u0065\u0074\u0072\u0069\u0065\u0076\u0069\u006e\u0067\u0020\u0057\u003a\u0020%\u0076",_dfbe );return nil ,_dfbe ;};_bfaa .W =&_gfg ;
|
||
};if _fab :=_egbb .Get ("\u0053");_fab !=nil {_egcc ,_dbae :=_fab .(*_ebb .PdfObjectName );if !_dbae {return nil ,_gf .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 _gcgb BorderStyle ;switch *_egcc {case "\u0053":_gcgb =BorderStyleSolid ;case "\u0044":_gcgb =BorderStyleDashed ;case "\u0042":_gcgb =BorderStyleBeveled ;case "\u0049":_gcgb =BorderStyleInset ;case "\u0055":_gcgb =BorderStyleUnderline ;default:_eg .Log .Debug ("I\u006e\u0076\u0061\u006cid\u0020s\u0074\u0079\u006c\u0065\u0020n\u0061\u006d\u0065\u0020\u0025\u0073",*_egcc );
|
||
return nil ,_gf .New ("\u0073\u0074\u0079\u006ce \u0074\u0079\u0070\u0065\u0020\u0072\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065c\u006b");};_bfaa .S =&_gcgb ;};if _ccfd :=_egbb .Get ("\u0044");_ccfd !=nil {_agcd ,_eaeb :=_ccfd .(*_ebb .PdfObjectArray );
|
||
if !_eaeb {_eg .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",_ccfd );return nil ,_gf .New ("\u0062o\u0072\u0064\u0065\u0072 \u0044\u0020\u0074\u0079\u0070e\u0020c\u0068e\u0063\u006b\u0020\u0065\u0072\u0072\u006fr");
|
||
};_dcbe ,_deec :=_agcd .ToIntegerArray ();if _deec !=nil {_eg .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",_deec );
|
||
return nil ,_deec ;};_bfaa .D =&_dcbe ;};return _bfaa ,nil ;};func (_ccafe *PdfWriter )setDocumentIDs (_geaeb ,_dbgdd string ){_ccafe ._eecfe =_ebb .MakeArray (_ebb .MakeHexString (_geaeb ),_ebb .MakeHexString (_dbgdd ));};
|
||
|
||
// GetCharMetrics returns the char metrics for character code `code`.
|
||
func (_efdf pdfCIDFontType0 )GetCharMetrics (code _da .CharCode )(_bad .CharMetrics ,bool ){_defe :=_efdf ._gbdb ;if _gbfe ,_bbce :=_efdf ._afcac [code ];_bbce {_defe =_gbfe ;};return _bad .CharMetrics {Wx :_defe },true ;};
|
||
|
||
// NewPdfActionGoToE returns a new "go to embedded" action.
|
||
func NewPdfActionGoToE ()*PdfActionGoToE {_cf :=NewPdfAction ();_dga :=&PdfActionGoToE {};_dga .PdfAction =_cf ;_cf .SetContext (_dga );return _dga ;};
|
||
|
||
// ImageToRGB converts an Image in a given PdfColorspace to an RGB image.
|
||
func (_gabcf *PdfColorspaceDeviceN )ImageToRGB (img Image )(Image ,error ){_fagf :=_abg .NewReader (img .getBase ());_cfebf :=_dg .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),img .ColorComponents ,nil ,img ._dagcb ,img ._dgcea );
|
||
_eeefc :=_abg .NewWriter (_cfebf );_gebdg :=_cbg .Pow (2,float64 (img .BitsPerComponent ))-1;_feg :=_gabcf .GetNumComponents ();_ceaca :=make ([]uint32 ,_feg );_aege :=make ([]float64 ,_feg );for {_cgcea :=_fagf .ReadSamples (_ceaca );if _cgcea ==_ab .EOF {break ;
|
||
}else if _cgcea !=nil {return img ,_cgcea ;};for _bgdf :=0;_bgdf < _feg ;_bgdf ++{_agdc :=float64 (_ceaca [_bgdf ])/_gebdg ;_aege [_bgdf ]=_agdc ;};_ebgee ,_cgcea :=_gabcf .TintTransform .Evaluate (_aege );if _cgcea !=nil {return img ,_cgcea ;};for _ ,_fbfda :=range _ebgee {_fbfda =_cbg .Min (_cbg .Max (0,_fbfda ),1.0);
|
||
if _cgcea =_eeefc .WriteSample (uint32 (_fbfda *_gebdg ));_cgcea !=nil {return img ,_cgcea ;};};};return _gabcf .AlternateSpace .ImageToRGB (_afacb (&_cfebf ));};
|
||
|
||
// NewReaderForText makes a new PdfReader for an input PDF content string. For use in testing.
|
||
func NewReaderForText (txt string )*PdfReader {return &PdfReader {_dfadc :map[_ebb .PdfObject ]struct{}{},_abbaca :_fadcd (),_cafdf :_ebb .NewParserFromString (txt )};};
|
||
|
||
// GetContainingPdfObject implements interface PdfModel.
|
||
func (_gdgag *PdfAnnotation )GetContainingPdfObject ()_ebb .PdfObject {return _gdgag ._bdcd };func _bafec (_gegdg string )(string ,error ){var _gacbg _ca .Buffer ;_gacbg .WriteString (_gegdg );_cabeb :=make ([]byte ,8+16);_cfdced :=_f .Now ().UTC ().UnixNano ();
|
||
_cb .BigEndian .PutUint64 (_cabeb ,uint64 (_cfdced ));_ ,_efbgg :=_gd .Read (_cabeb [8:]);if _efbgg !=nil {return "",_efbgg ;};_gacbg .WriteString (_d .EncodeToString (_cabeb ));return _gacbg .String (),nil ;};
|
||
|
||
// Val returns the color value.
|
||
func (_ecef *PdfColorDeviceGray )Val ()float64 {return float64 (*_ecef )};
|
||
|
||
// BaseFont returns the font's "BaseFont" field.
|
||
func (_ecbad *PdfFont )BaseFont ()string {return _ecbad .baseFields ()._fdacg };
|
||
|
||
// ToPdfObject converts PdfAcroForm to a PdfObject, i.e. an indirect object containing the
|
||
// AcroForm dictionary.
|
||
func (_bbbed *PdfAcroForm )ToPdfObject ()_ebb .PdfObject {_agdgc :=_bbbed ._adcg ;_cacfb :=_agdgc .PdfObject .(*_ebb .PdfObjectDictionary );if _bbbed .Fields !=nil {_egge :=_ebb .PdfObjectArray {};for _ ,_bcacbc :=range *_bbbed .Fields {_fefg :=_bcacbc .GetContext ();
|
||
if _fefg !=nil {_egge .Append (_fefg .ToPdfObject ());}else {_egge .Append (_bcacbc .ToPdfObject ());};};_cacfb .Set ("\u0046\u0069\u0065\u006c\u0064\u0073",&_egge );};if _bbbed .NeedAppearances !=nil {_cacfb .Set ("\u004ee\u0065d\u0041\u0070\u0070\u0065\u0061\u0072\u0061\u006e\u0063\u0065\u0073",_bbbed .NeedAppearances );
|
||
};if _bbbed .SigFlags !=nil {_cacfb .Set ("\u0053\u0069\u0067\u0046\u006c\u0061\u0067\u0073",_bbbed .SigFlags );};if _bbbed .CO !=nil {_cacfb .Set ("\u0043\u004f",_bbbed .CO );};if _bbbed .DR !=nil {_cacfb .Set ("\u0044\u0052",_bbbed .DR .ToPdfObject ());
|
||
};if _bbbed .DA !=nil {_cacfb .Set ("\u0044\u0041",_bbbed .DA );};if _bbbed .Q !=nil {_cacfb .Set ("\u0051",_bbbed .Q );};if _bbbed .XFA !=nil {_cacfb .Set ("\u0058\u0046\u0041",_bbbed .XFA );};return _agdgc ;};
|
||
|
||
// NewPdfActionImportData returns a new "import data" action.
|
||
func NewPdfActionImportData ()*PdfActionImportData {_adc :=NewPdfAction ();_eeaa :=&PdfActionImportData {};_eeaa .PdfAction =_adc ;_adc .SetContext (_eeaa );return _eeaa ;};
|
||
|
||
// GetTrailer returns the PDF's trailer dictionary.
|
||
func (_dcgg *PdfReader )GetTrailer ()(*_ebb .PdfObjectDictionary ,error ){_dagbe :=_dcgg ._cafdf .GetTrailer ();if _dagbe ==nil {return nil ,_gf .New ("\u0074r\u0061i\u006c\u0065\u0072\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};return _dagbe ,nil ;
|
||
};
|
||
|
||
// 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 ;_ffbgc *_ebb .PdfIndirectObject ;
|
||
|
||
// Type: Sig/DocTimeStamp
|
||
Type *_ebb .PdfObjectName ;Filter *_ebb .PdfObjectName ;SubFilter *_ebb .PdfObjectName ;Contents *_ebb .PdfObjectString ;Cert _ebb .PdfObject ;ByteRange *_ebb .PdfObjectArray ;Reference *_ebb .PdfObjectArray ;Changes *_ebb .PdfObjectArray ;Name *_ebb .PdfObjectString ;
|
||
M *_ebb .PdfObjectString ;Location *_ebb .PdfObjectString ;Reason *_ebb .PdfObjectString ;ContactInfo *_ebb .PdfObjectString ;R *_ebb .PdfObjectInteger ;V *_ebb .PdfObjectInteger ;PropBuild *_ebb .PdfObjectDictionary ;PropAuthTime *_ebb .PdfObjectInteger ;
|
||
PropAuthType *_ebb .PdfObjectName ;};
|
||
|
||
// SetForms sets the Acroform for a PDF file.
|
||
func (_efbd *PdfWriter )SetForms (form *PdfAcroForm )error {_efbd ._dbea =form ;return nil };
|
||
|
||
// A returns the value of the A component of the color.
|
||
func (_gad *PdfColorLab )A ()float64 {return _gad [1]};
|
||
|
||
// ImageToRGB converts ICCBased colorspace image to RGB and returns the result.
|
||
func (_fbdd *PdfColorspaceICCBased )ImageToRGB (img Image )(Image ,error ){if _fbdd .Alternate ==nil {_eg .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 _fbdd .N ==1{_eg .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");
|
||
_dbffc :=NewPdfColorspaceDeviceGray ();return _dbffc .ImageToRGB (img );}else if _fbdd .N ==3{_eg .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 _fbdd .N ==4{_eg .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");
|
||
_dfdf :=NewPdfColorspaceDeviceCMYK ();return _dfdf .ImageToRGB (img );}else {return img ,_gf .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");
|
||
};};_eg .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",_fbdd );
|
||
_eggd ,_bdfb :=_fbdd .Alternate .ImageToRGB (img );_eg .Log .Trace ("I\u0043C\u0020\u0049\u006e\u0070\u0075\u0074\u0020\u0069m\u0061\u0067\u0065\u003a %\u002b\u0076",img );_eg .Log .Trace ("I\u0043\u0043\u0020\u004fut\u0070u\u0074\u0020\u0069\u006d\u0061g\u0065\u003a\u0020\u0025\u002b\u0076",_eggd );
|
||
return _eggd ,_bdfb ;};
|
||
|
||
// GetAlphabet returns a map of the runes in `text` and their frequencies.
|
||
func GetAlphabet (text string )map[rune ]int {_aegef :=map[rune ]int {};for _ ,_aafa :=range text {_aegef [_aafa ]++;};return _aegef ;};
|
||
|
||
// PdfColorspaceLab is a L*, a*, b* 3 component colorspace.
|
||
type PdfColorspaceLab struct{WhitePoint []float64 ;BlackPoint []float64 ;Range []float64 ;_bdga *_ebb .PdfIndirectObject ;};
|
||
|
||
// PdfInfo holds document information that will overwrite
|
||
// document information global variables defined above.
|
||
type PdfInfo struct{Title *_ebb .PdfObjectString ;Author *_ebb .PdfObjectString ;Subject *_ebb .PdfObjectString ;Keywords *_ebb .PdfObjectString ;Creator *_ebb .PdfObjectString ;Producer *_ebb .PdfObjectString ;CreationDate *PdfDate ;ModifiedDate *PdfDate ;
|
||
Trapped *_ebb .PdfObjectName ;_gcgf *_ebb .PdfObjectDictionary ;};
|
||
|
||
// PdfColorspaceDeviceCMYK represents a CMYK32 colorspace.
|
||
type PdfColorspaceDeviceCMYK struct{};
|
||
|
||
// PdfAnnotationTrapNet represents TrapNet annotations.
|
||
// (Section 12.5.6.21).
|
||
type PdfAnnotationTrapNet struct{*PdfAnnotation };
|
||
|
||
// NewXObjectImage returns a new XObjectImage.
|
||
func NewXObjectImage ()*XObjectImage {_daag :=&XObjectImage {};_cdagc :=&_ebb .PdfObjectStream {};_cdagc .PdfObjectDictionary =_ebb .MakeDict ();_daag ._fbeec =_cdagc ;return _daag ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the shading dictionary.
|
||
func (_aaea *PdfShadingType3 )ToPdfObject ()_ebb .PdfObject {_aaea .PdfShading .ToPdfObject ();_caebg ,_fbbfe :=_aaea .getShadingDict ();if _fbbfe !=nil {_eg .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 _aaea .Coords !=nil {_caebg .Set ("\u0043\u006f\u006f\u0072\u0064\u0073",_aaea .Coords );};if _aaea .Domain !=nil {_caebg .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_aaea .Domain );};if _aaea .Function !=nil {if len (_aaea .Function )==1{_caebg .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_aaea .Function [0].ToPdfObject ());
|
||
}else {_egfcb :=_ebb .MakeArray ();for _ ,_eaaag :=range _aaea .Function {_egfcb .Append (_eaaag .ToPdfObject ());};_caebg .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_egfcb );};};if _aaea .Extend !=nil {_caebg .Set ("\u0045\u0078\u0074\u0065\u006e\u0064",_aaea .Extend );
|
||
};return _aaea ._fbfae ;};
|
||
|
||
// GetPageAsIndirectObject returns the page as a dictionary within an PdfIndirectObject.
|
||
func (_aeffa *PdfPage )GetPageAsIndirectObject ()*_ebb .PdfIndirectObject {return _aeffa ._defbb };
|
||
|
||
// AddExtension adds the specified extension to the Extensions dictionary.
|
||
// See section 7.1.2 "Extensions Dictionary" (pp. 108-109 PDF32000_2008).
|
||
func (_ececd *PdfWriter )AddExtension (extName ,baseVersion string ,extLevel int ){_babed ,_fbeff :=_ebb .GetDict (_ececd ._dffegd .Get ("\u0045\u0078\u0074\u0065\u006e\u0073\u0069\u006f\u006e\u0073"));if !_fbeff {_babed =_ebb .MakeDict ();_ececd ._dffegd .Set ("\u0045\u0078\u0074\u0065\u006e\u0073\u0069\u006f\u006e\u0073",_babed );
|
||
};_dgdbb ,_fbeff :=_ebb .GetDict (_babed .Get (_ebb .PdfObjectName (extName )));if !_fbeff {_dgdbb =_ebb .MakeDict ();_babed .Set (_ebb .PdfObjectName (extName ),_dgdbb );};if _gebaf ,_ :=_ebb .GetNameVal (_dgdbb .Get ("B\u0061\u0073\u0065\u0056\u0065\u0072\u0073\u0069\u006f\u006e"));
|
||
_gebaf !=baseVersion {_dgdbb .Set ("B\u0061\u0073\u0065\u0056\u0065\u0072\u0073\u0069\u006f\u006e",_ebb .MakeName (baseVersion ));};if _dgage ,_ :=_ebb .GetIntVal (_dgdbb .Get ("\u0045\u0078\u0074\u0065\u006e\u0073\u0069\u006f\u006eL\u0065\u0076\u0065\u006c"));
|
||
_dgage !=extLevel {_dgdbb .Set ("\u0045\u0078\u0074\u0065\u006e\u0073\u0069\u006f\u006eL\u0065\u0076\u0065\u006c",_ebb .MakeInteger (int64 (extLevel )));};};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_cgacb *PdfAnnotationSquare )ToPdfObject ()_ebb .PdfObject {_cgacb .PdfAnnotation .ToPdfObject ();_ebaa :=_cgacb ._bdcd ;_bdca :=_ebaa .PdfObject .(*_ebb .PdfObjectDictionary );if _cgacb .PdfAnnotationMarkup !=nil {_cgacb .PdfAnnotationMarkup .appendToPdfDictionary (_bdca );
|
||
};_bdca .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ebb .MakeName ("\u0053\u0071\u0075\u0061\u0072\u0065"));_bdca .SetIfNotNil ("\u0042\u0053",_cgacb .BS );_bdca .SetIfNotNil ("\u0049\u0043",_cgacb .IC );_bdca .SetIfNotNil ("\u0042\u0045",_cgacb .BE );
|
||
_bdca .SetIfNotNil ("\u0052\u0044",_cgacb .RD );return _ebaa ;};
|
||
|
||
// PdfAnnotationPopup represents Popup annotations.
|
||
// (Section 12.5.6.14).
|
||
type PdfAnnotationPopup struct{*PdfAnnotation ;Parent _ebb .PdfObject ;Open _ebb .PdfObject ;};
|
||
|
||
// PdfColorDeviceRGB represents a color in DeviceRGB colorspace with R, G, B components, where component is
|
||
// defined in the range 0.0 - 1.0 where 1.0 is the primary intensity.
|
||
type PdfColorDeviceRGB [3]float64 ;func (_bcbfg *Image )samplesAddPadding (_gcga []uint32 )[]uint32 {_bcead :=_dg .BytesPerLine (int (_bcbfg .Width ),int (_bcbfg .BitsPerComponent ),_bcbfg .ColorComponents )*(8/int (_bcbfg .BitsPerComponent ));_geda :=_bcead *int (_bcbfg .Height );
|
||
if len (_gcga )==_geda {return _gcga ;};_bcgae :=make ([]uint32 ,_geda );_adabg :=int (_bcbfg .Width )*_bcbfg .ColorComponents ;for _cfegc :=0;_cfegc < int (_bcbfg .Height );_cfegc ++{_efbga :=_cfegc *int (_bcbfg .Width );_edff :=_cfegc *_bcead ;for _affb :=0;
|
||
_affb < _adabg ;_affb ++{_bcgae [_edff +_affb ]=_gcga [_efbga +_affb ];};};return _bcgae ;};func (_addg *PdfReader )newPdfAnnotationStrikeOut (_feb *_ebb .PdfObjectDictionary )(*PdfAnnotationStrikeOut ,error ){_eda :=PdfAnnotationStrikeOut {};_bcea ,_daga :=_addg .newPdfAnnotationMarkupFromDict (_feb );
|
||
if _daga !=nil {return nil ,_daga ;};_eda .PdfAnnotationMarkup =_bcea ;_eda .QuadPoints =_feb .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");return &_eda ,nil ;};func _egaaa (_gggfe _ebb .PdfObject )(*PdfColorspaceDeviceN ,error ){_aae :=NewPdfColorspaceDeviceN ();
|
||
if _acdb ,_cacc :=_gggfe .(*_ebb .PdfIndirectObject );_cacc {_aae ._gebb =_acdb ;};_gggfe =_ebb .TraceToDirectObject (_gggfe );_eeagg ,_caeeg :=_gggfe .(*_ebb .PdfObjectArray );if !_caeeg {return nil ,_bg .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 _eeagg .Len ()!=4&&_eeagg .Len ()!=5{return nil ,_bg .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");};_gggfe =_eeagg .Get (0);
|
||
_efce ,_caeeg :=_gggfe .(*_ebb .PdfObjectName );if !_caeeg {return nil ,_bg .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 *_efce !="\u0044e\u0076\u0069\u0063\u0065\u004e"{return nil ,_bg .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");};_gggfe =_eeagg .Get (1);
|
||
_gggfe =_ebb .TraceToDirectObject (_gggfe );_faeg ,_caeeg :=_gggfe .(*_ebb .PdfObjectArray );if !_caeeg {return nil ,_bg .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");
|
||
};_aae .ColorantNames =_faeg ;_gggfe =_eeagg .Get (2);_bcged ,_becc :=NewPdfColorspaceFromPdfObject (_gggfe );if _becc !=nil {return nil ,_becc ;};_aae .AlternateSpace =_bcged ;_cgdaa ,_becc :=_aagg (_eeagg .Get (3));if _becc !=nil {return nil ,_becc ;
|
||
};_aae .TintTransform =_cgdaa ;if _eeagg .Len ()==5{_aeabg ,_fdfcg :=_gbgb (_eeagg .Get (4));if _fdfcg !=nil {return nil ,_fdfcg ;};_aae .Attributes =_aeabg ;};return _aae ,nil ;};func _fcgc (_gaea _ebb .PdfObject )(*PdfColorspaceCalRGB ,error ){_ccae :=NewPdfColorspaceCalRGB ();
|
||
if _fabc ,_gbb :=_gaea .(*_ebb .PdfIndirectObject );_gbb {_ccae ._aeac =_fabc ;};_gaea =_ebb .TraceToDirectObject (_gaea );_cedg ,_gbacgg :=_gaea .(*_ebb .PdfObjectArray );if !_gbacgg {return nil ,_bg .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");
|
||
};if _cedg .Len ()!=2{return nil ,_bg .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0043\u0061\u006c\u0052G\u0042 \u0063o\u006c\u006f\u0072\u0073\u0070\u0061\u0063e");};_gaea =_ebb .TraceToDirectObject (_cedg .Get (0));_eaced ,_gbacgg :=_gaea .(*_ebb .PdfObjectName );
|
||
if !_gbacgg {return nil ,_bg .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 *_eaced !="\u0043\u0061\u006c\u0052\u0047\u0042"{return nil ,_bg .Errorf ("\u006e\u006f\u0074 a\u0020\u0043\u0061\u006c\u0052\u0047\u0042\u0020\u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063\u0065");
|
||
};_gaea =_ebb .TraceToDirectObject (_cedg .Get (1));_egbe ,_gbacgg :=_gaea .(*_ebb .PdfObjectDictionary );if !_gbacgg {return nil ,_bg .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");
|
||
};_gaea =_egbe .Get ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074");_gaea =_ebb .TraceToDirectObject (_gaea );_fgbe ,_gbacgg :=_gaea .(*_ebb .PdfObjectArray );if !_gbacgg {return nil ,_bg .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 _fgbe .Len ()!=3{return nil ,_bg .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");};_ebbf ,_cgba :=_fgbe .GetAsFloat64Slice ();
|
||
if _cgba !=nil {return nil ,_cgba ;};_ccae .WhitePoint =_ebbf ;_gaea =_egbe .Get ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074");if _gaea !=nil {_gaea =_ebb .TraceToDirectObject (_gaea );_ccaee ,_gaad :=_gaea .(*_ebb .PdfObjectArray );
|
||
if !_gaad {return nil ,_bg .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 _ccaee .Len ()!=3{return nil ,_bg .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");
|
||
};_fccgf ,_gafg :=_ccaee .GetAsFloat64Slice ();if _gafg !=nil {return nil ,_gafg ;};_ccae .BlackPoint =_fccgf ;};_gaea =_egbe .Get ("\u0047\u0061\u006dm\u0061");if _gaea !=nil {_gaea =_ebb .TraceToDirectObject (_gaea );_gaag ,_fcfc :=_gaea .(*_ebb .PdfObjectArray );
|
||
if !_fcfc {return nil ,_bg .Errorf ("C\u0061\u006c\u0052\u0047B:\u0020I\u006e\u0076\u0061\u006c\u0069d\u0020\u0047\u0061\u006d\u006d\u0061");};if _gaag .Len ()!=3{return nil ,_bg .Errorf ("C\u0061\u006c\u0052\u0047\u0042\u003a \u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0047a\u006d\u006d\u0061 \u0061r\u0072\u0061\u0079");
|
||
};_bgfd ,_acgd :=_gaag .GetAsFloat64Slice ();if _acgd !=nil {return nil ,_acgd ;};_ccae .Gamma =_bgfd ;};_gaea =_egbe .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");if _gaea !=nil {_gaea =_ebb .TraceToDirectObject (_gaea );_gag ,_dbdf :=_gaea .(*_ebb .PdfObjectArray );
|
||
if !_dbdf {return nil ,_bg .Errorf ("\u0043\u0061\u006c\u0052GB\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u004d\u0061\u0074\u0072i\u0078");};if _gag .Len ()!=9{_eg .Log .Error ("\u004d\u0061t\u0072\u0069\u0078 \u0061\u0072\u0072\u0061\u0079\u003a\u0020\u0025\u0073",_gag .String ());
|
||
return nil ,_bg .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");};_ebba ,_fcfbg :=_gag .GetAsFloat64Slice ();if _fcfbg !=nil {return nil ,_fcfbg ;
|
||
};_ccae .Matrix =_ebba ;};return _ccae ,nil ;};
|
||
|
||
// GetPdfName returns the PDF name used to indicate the border style.
|
||
// (Table 166 p. 395).
|
||
func (_acfcc *BorderStyle )GetPdfName ()string {switch *_acfcc {case BorderStyleSolid :return "\u0053";case BorderStyleDashed :return "\u0044";case BorderStyleBeveled :return "\u0042";case BorderStyleInset :return "\u0049";case BorderStyleUnderline :return "\u0055";
|
||
};return "";};
|
||
|
||
// GetFontDescriptor returns the font descriptor for `font`.
|
||
func (_ffdff PdfFont )GetFontDescriptor ()(*PdfFontDescriptor ,error ){return _ffdff ._ebcad .getFontDescriptor (),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 (_aeeg *PdfReader )FlattenFields (allannots bool ,appgen FieldAppearanceGenerator )error {return _aeeg .flattenFieldsWithOpts (allannots ,appgen ,nil );};func (_dbac *PdfReader )newPdfAnnotationRedactFromDict (_dfb *_ebb .PdfObjectDictionary )(*PdfAnnotationRedact ,error ){_gecd :=PdfAnnotationRedact {};
|
||
_bdag ,_fagg :=_dbac .newPdfAnnotationMarkupFromDict (_dfb );if _fagg !=nil {return nil ,_fagg ;};_gecd .PdfAnnotationMarkup =_bdag ;_gecd .QuadPoints =_dfb .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");_gecd .IC =_dfb .Get ("\u0049\u0043");
|
||
_gecd .RO =_dfb .Get ("\u0052\u004f");_gecd .OverlayText =_dfb .Get ("O\u0076\u0065\u0072\u006c\u0061\u0079\u0054\u0065\u0078\u0074");_gecd .Repeat =_dfb .Get ("\u0052\u0065\u0070\u0065\u0061\u0074");_gecd .DA =_dfb .Get ("\u0044\u0041");_gecd .Q =_dfb .Get ("\u0051");
|
||
return &_gecd ,nil ;};
|
||
|
||
// IsShading specifies if the pattern is a shading pattern.
|
||
func (_fbcgc *PdfPattern )IsShading ()bool {return _fbcgc .PatternType ==2};
|
||
|
||
// HasXObjectByName checks if an XObject with a specified keyName is defined.
|
||
func (_deaaa *PdfPageResources )HasXObjectByName (keyName _ebb .PdfObjectName )bool {_bbgge ,_ :=_deaaa .GetXObjectByName (keyName );return _bbgge !=nil ;};
|
||
|
||
// PdfActionJavaScript represents a javaScript action.
|
||
type PdfActionJavaScript struct{*PdfAction ;JS _ebb .PdfObject ;};func _ggbd (_cgggf *_ebb .PdfObjectDictionary )(*PdfTilingPattern ,error ){_aefdc :=&PdfTilingPattern {};_afdag :=_cgggf .Get ("\u0050a\u0069\u006e\u0074\u0054\u0079\u0070e");if _afdag ==nil {_eg .Log .Debug ("\u0050\u0061\u0069\u006e\u0074\u0054\u0079\u0070\u0065\u0020\u006d\u0069s\u0073\u0069\u006e\u0067");
|
||
return nil ,ErrRequiredAttributeMissing ;};_bfed ,_ffgcf :=_afdag .(*_ebb .PdfObjectInteger );if !_ffgcf {_eg .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",_afdag );
|
||
return nil ,_ebb .ErrTypeError ;};_aefdc .PaintType =_bfed ;_afdag =_cgggf .Get ("\u0054\u0069\u006c\u0069\u006e\u0067\u0054\u0079\u0070\u0065");if _afdag ==nil {_eg .Log .Debug ("\u0054i\u006ci\u006e\u0067\u0054\u0079\u0070e\u0020\u006di\u0073\u0073\u0069\u006e\u0067");
|
||
return nil ,ErrRequiredAttributeMissing ;};_eadcc ,_ffgcf :=_afdag .(*_ebb .PdfObjectInteger );if !_ffgcf {_eg .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",_afdag );
|
||
return nil ,_ebb .ErrTypeError ;};_aefdc .TilingType =_eadcc ;_afdag =_cgggf .Get ("\u0042\u0042\u006f\u0078");if _afdag ==nil {_eg .Log .Debug ("\u0042\u0042\u006fx\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ;
|
||
};_afdag =_ebb .TraceToDirectObject (_afdag );_cgcd ,_ffgcf :=_afdag .(*_ebb .PdfObjectArray );if !_ffgcf {_eg .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",_afdag );
|
||
return nil ,_ebb .ErrTypeError ;};_fggbf ,_dfcae :=NewPdfRectangle (*_cgcd );if _dfcae !=nil {_eg .Log .Debug ("\u0042\u0042\u006f\u0078\u0020\u0065\u0072\u0072\u006fr\u003a\u0020\u0025\u0076",_dfcae );return nil ,_dfcae ;};_aefdc .BBox =_fggbf ;_afdag =_cgggf .Get ("\u0058\u0053\u0074e\u0070");
|
||
if _afdag ==nil {_eg .Log .Debug ("\u0058\u0053\u0074\u0065\u0070\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ;};_fcce ,_dfcae :=_ebb .GetNumberAsFloat (_afdag );if _dfcae !=nil {_eg .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",_fcce );
|
||
return nil ,_dfcae ;};_aefdc .XStep =_ebb .MakeFloat (_fcce );_afdag =_cgggf .Get ("\u0059\u0053\u0074e\u0070");if _afdag ==nil {_eg .Log .Debug ("\u0059\u0053\u0074\u0065\u0070\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ;
|
||
};_aeagd ,_dfcae :=_ebb .GetNumberAsFloat (_afdag );if _dfcae !=nil {_eg .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",_aeagd );
|
||
return nil ,_dfcae ;};_aefdc .YStep =_ebb .MakeFloat (_aeagd );_afdag =_cgggf .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");if _afdag ==nil {_eg .Log .Debug ("\u0052\u0065\u0073\u006f\u0075\u0072\u0063\u0065\u0073\u0020\u006d\u0069s\u0073\u0069\u006e\u0067");
|
||
return nil ,ErrRequiredAttributeMissing ;};_cgggf ,_ffgcf =_ebb .TraceToDirectObject (_afdag ).(*_ebb .PdfObjectDictionary );if !_ffgcf {return nil ,_bg .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",_afdag );
|
||
};_abegb ,_dfcae :=NewPdfPageResourcesFromDict (_cgggf );if _dfcae !=nil {return nil ,_dfcae ;};_aefdc .Resources =_abegb ;if _cgdef :=_cgggf .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");_cgdef !=nil {_gdefg ,_bdacc :=_cgdef .(*_ebb .PdfObjectArray );
|
||
if !_bdacc {_eg .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",_cgdef );return nil ,_ebb .ErrTypeError ;};_aefdc .Matrix =_gdefg ;};return _aefdc ,nil ;
|
||
};
|
||
|
||
// 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 ;const (TrappedUnknown PdfInfoTrapped ="\u0055n\u006b\u006e\u006f\u0077\u006e";TrappedTrue PdfInfoTrapped ="\u0054\u0072\u0075\u0065";TrappedFalse PdfInfoTrapped ="\u0046\u0061\u006cs\u0065";);
|
||
|
||
// 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 (_fcga *PdfColorspaceDeviceCMYK )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=4{return nil ,_gf .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_agcf :=vals [0];if _agcf < 0.0||_agcf > 1.0{_eg .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_agcf );
|
||
return nil ,ErrColorOutOfRange ;};_cgaf :=vals [1];if _cgaf < 0.0||_cgaf > 1.0{_eg .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_cgaf );return nil ,ErrColorOutOfRange ;
|
||
};_fbdab :=vals [2];if _fbdab < 0.0||_fbdab > 1.0{_eg .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_fbdab );return nil ,ErrColorOutOfRange ;};_cbda :=vals [3];
|
||
if _cbda < 0.0||_cbda > 1.0{_eg .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_cbda );return nil ,ErrColorOutOfRange ;};_ddec :=NewPdfColorDeviceCMYK (_agcf ,_cgaf ,_fbdab ,_cbda );
|
||
return _ddec ,nil ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the pattern.
|
||
func (_fdbg *PdfPattern )ToPdfObject ()_ebb .PdfObject {_aeef :=_fdbg .getDict ();_aeef .Set ("\u0054\u0079\u0070\u0065",_ebb .MakeName ("\u0050a\u0074\u0074\u0065\u0072\u006e"));_aeef .Set ("P\u0061\u0074\u0074\u0065\u0072\u006e\u0054\u0079\u0070\u0065",_ebb .MakeInteger (_fdbg .PatternType ));
|
||
return _fdbg ._dcddc ;};const (XObjectTypeUndefined XObjectType =iota ;XObjectTypeImage ;XObjectTypeForm ;XObjectTypePS ;XObjectTypeUnknown ;);func (_dade *PdfReader )newPdfAnnotationCircleFromDict (_aef *_ebb .PdfObjectDictionary )(*PdfAnnotationCircle ,error ){_bfde :=PdfAnnotationCircle {};
|
||
_bbac ,_bed :=_dade .newPdfAnnotationMarkupFromDict (_aef );if _bed !=nil {return nil ,_bed ;};_bfde .PdfAnnotationMarkup =_bbac ;_bfde .BS =_aef .Get ("\u0042\u0053");_bfde .IC =_aef .Get ("\u0049\u0043");_bfde .BE =_aef .Get ("\u0042\u0045");_bfde .RD =_aef .Get ("\u0052\u0044");
|
||
return &_bfde ,nil ;};
|
||
|
||
// FieldFlag represents form field flags. Some of the flags can apply to all types of fields whereas other
|
||
// flags are specific.
|
||
type FieldFlag uint32 ;func (_ggcgg *PdfWriter )writeObjects (){_eg .Log .Trace ("\u0057\u0072\u0069\u0074\u0069\u006e\u0067\u0020\u0025d\u0020\u006f\u0062\u006a",len (_ggcgg ._ebdgg ));_ggcgg ._bedfc =make (map[int ]crossReference );_ggcgg ._bedfc [0]=crossReference {Type :0,ObjectNumber :0,Generation :0xFFFF};
|
||
if _ggcgg ._efdega .ObjectMap !=nil {for _acdgg ,_bcee :=range _ggcgg ._efdega .ObjectMap {if _acdgg ==0{continue ;};if _bcee .XType ==_ebb .XrefTypeObjectStream {_cddb :=crossReference {Type :2,ObjectNumber :_bcee .OsObjNumber ,Index :_bcee .OsObjIndex };
|
||
_ggcgg ._bedfc [_acdgg ]=_cddb ;};if _bcee .XType ==_ebb .XrefTypeTableEntry {_bcfef :=crossReference {Type :1,ObjectNumber :_bcee .ObjectNumber ,Offset :_bcee .Offset };_ggcgg ._bedfc [_acdgg ]=_bcfef ;};};};};
|
||
|
||
// NewPdfAnnotationProjection returns a new projection annotation.
|
||
func NewPdfAnnotationProjection ()*PdfAnnotationProjection {_acgg :=NewPdfAnnotation ();_gcc :=&PdfAnnotationProjection {};_gcc .PdfAnnotation =_acgg ;_gcc .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_acgg .SetContext (_gcc );return _gcc ;};
|
||
|
||
// GetContainingPdfObject returns the container of the outline (indirect object).
|
||
func (_eaadg *PdfOutline )GetContainingPdfObject ()_ebb .PdfObject {return _eaadg ._egee };
|
||
|
||
// A returns the value of the A component of the color.
|
||
func (_dccf *PdfColorCalRGB )A ()float64 {return _dccf [0]};
|
||
|
||
// PdfFunction interface represents the common methods of a function in PDF.
|
||
type PdfFunction interface{Evaluate ([]float64 )([]float64 ,error );ToPdfObject ()_ebb .PdfObject ;};func (_fgdb *pdfFontSimple )getFontEncoding ()(_agece string ,_afbd map[_da .CharCode ]_da .GlyphName ,_dcfa error ){_agece ="\u0053\u0074a\u006e\u0064\u0061r\u0064\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067";
|
||
if _gffdc ,_gbec :=_cbcfg [_fgdb ._fdacg ];_gbec {_agece =_gffdc ;}else if _fgdb .fontFlags ()&_dffee !=0{for _cegf ,_fefeb :=range _cbcfg {if _ee .Contains (_fgdb ._fdacg ,_cegf ){_agece =_fefeb ;break ;};};};if _fgdb .Encoding ==nil {return _agece ,nil ,nil ;
|
||
};switch _egedae :=_fgdb .Encoding .(type ){case *_ebb .PdfObjectName :return string (*_egedae ),nil ,nil ;case *_ebb .PdfObjectDictionary :_cdaee ,_acfeg :=_ebb .GetName (_egedae .Get ("\u0042\u0061\u0073e\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067"));
|
||
if _acfeg {_agece =_cdaee .String ();};if _gebea :=_egedae .Get ("D\u0069\u0066\u0066\u0065\u0072\u0065\u006e\u0063\u0065\u0073");_gebea !=nil {_eeefg ,_bebg :=_ebb .GetArray (_gebea );if !_bebg {_eg .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",_egedae ,_egedae .Get ("D\u0069\u0066\u0066\u0065\u0072\u0065\u006e\u0063\u0065\u0073"));
|
||
return "",nil ,_ebb .ErrTypeError ;};_afbd ,_dcfa =_da .FromFontDifferences (_eeefg );};return _agece ,_afbd ,_dcfa ;default:_eg .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",_fgdb .Encoding ,_fgdb .Encoding );
|
||
return "",nil ,_ebb .ErrTypeError ;};};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_bgcb *PdfFilespec )ToPdfObject ()_ebb .PdfObject {_edfd :=_bgcb .getDict ();_edfd .Clear ();_edfd .Set ("\u0054\u0079\u0070\u0065",_ebb .MakeName ("\u0046\u0069\u006c\u0065\u0073\u0070\u0065\u0063"));_edfd .SetIfNotNil ("\u0046\u0053",_bgcb .FS );
|
||
_edfd .SetIfNotNil ("\u0046",_bgcb .F );_edfd .SetIfNotNil ("\u0055\u0046",_bgcb .UF );_edfd .SetIfNotNil ("\u0044\u004f\u0053",_bgcb .DOS );_edfd .SetIfNotNil ("\u004d\u0061\u0063",_bgcb .Mac );_edfd .SetIfNotNil ("\u0055\u006e\u0069\u0078",_bgcb .Unix );
|
||
_edfd .SetIfNotNil ("\u0049\u0044",_bgcb .ID );_edfd .SetIfNotNil ("\u0056",_bgcb .V );_edfd .SetIfNotNil ("\u0045\u0046",_bgcb .EF );_edfd .SetIfNotNil ("\u0052\u0046",_bgcb .RF );_edfd .SetIfNotNil ("\u0044\u0065\u0073\u0063",_bgcb .Desc );_edfd .SetIfNotNil ("\u0043\u0049",_bgcb .CI );
|
||
return _bgcb ._gcge ;};
|
||
|
||
// ColorToRGB converts a ICCBased color to an RGB color.
|
||
func (_agf *PdfColorspaceICCBased )ColorToRGB (color PdfColor )(PdfColor ,error ){if _agf .Alternate ==nil {_eg .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 _agf .N ==1{_eg .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");
|
||
_aca :=NewPdfColorspaceDeviceGray ();return _aca .ColorToRGB (color );}else if _agf .N ==3{_eg .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 _agf .N ==4{_eg .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");
|
||
_bedd :=NewPdfColorspaceDeviceCMYK ();return _bedd .ColorToRGB (color );}else {return nil ,_gf .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");
|
||
};};_eg .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",_agf );
|
||
return _agf .Alternate .ColorToRGB (color );};const (ButtonTypeCheckbox ButtonType =iota ;ButtonTypePush ButtonType =iota ;ButtonTypeRadio ButtonType =iota ;);func (_cgec *PdfColorspaceCalRGB )String ()string {return "\u0043\u0061\u006c\u0052\u0047\u0042"};
|
||
|
||
|
||
// GetRotate gets the inheritable rotate value, either from the page
|
||
// or a higher up page/pages struct.
|
||
func (_eagc *PdfPage )GetRotate ()(int64 ,error ){if _eagc .Rotate !=nil {return *_eagc .Rotate ,nil ;};_cgbg :=_eagc .Parent ;for _cgbg !=nil {_dfded ,_aefg :=_ebb .GetDict (_cgbg );if !_aefg {return 0,_gf .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 _abagc :=_dfded .Get ("\u0052\u006f\u0074\u0061\u0074\u0065");_abagc !=nil {_cdbed ,_dgec :=_ebb .GetInt (_abagc );if !_dgec {return 0,_gf .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0072\u006f\u0074a\u0074\u0065\u0020\u0076al\u0075\u0065");};if _cdbed !=nil {return int64 (*_cdbed ),nil ;
|
||
};return 0,_gf .New ("\u0072\u006f\u0074\u0061te\u0020\u0076\u0061\u006c\u0075\u0065\u0020\u0069\u0073\u0020\u006e\u0069\u006c");};_cgbg =_dfded .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");};return 0,_gf .New ("\u0072o\u0074a\u0074\u0065\u0020\u006e\u006ft\u0020\u0064e\u0066\u0069\u006e\u0065\u0064");
|
||
};
|
||
|
||
// ColorFromFloats returns a new PdfColor based on the input slice of color
|
||
// components.
|
||
func (_bfac *PdfColorspaceSpecialPattern )ColorFromFloats (vals []float64 )(PdfColor ,error ){if _bfac .UnderlyingCS ==nil {return nil ,_gf .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 _bfac .UnderlyingCS .ColorFromFloats (vals );};
|
||
|
||
// Add appends a top level outline item to the outline.
|
||
func (_aaafc *Outline )Add (item *OutlineItem ){_aaafc .Entries =append (_aaafc .Entries ,item )};
|
||
|
||
// DecodeArray returns an empty slice as there are no components associated with pattern colorspace.
|
||
func (_gbefd *PdfColorspaceSpecialPattern )DecodeArray ()[]float64 {return []float64 {}};
|
||
|
||
// 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 _ebb .PdfObject ;FontFamily _ebb .PdfObject ;FontStretch _ebb .PdfObject ;FontWeight _ebb .PdfObject ;Flags _ebb .PdfObject ;FontBBox _ebb .PdfObject ;ItalicAngle _ebb .PdfObject ;Ascent _ebb .PdfObject ;Descent _ebb .PdfObject ;
|
||
Leading _ebb .PdfObject ;CapHeight _ebb .PdfObject ;XHeight _ebb .PdfObject ;StemV _ebb .PdfObject ;StemH _ebb .PdfObject ;AvgWidth _ebb .PdfObject ;MaxWidth _ebb .PdfObject ;MissingWidth _ebb .PdfObject ;FontFile _ebb .PdfObject ;FontFile2 _ebb .PdfObject ;
|
||
FontFile3 _ebb .PdfObject ;CharSet _ebb .PdfObject ;_gfbge int ;_gbfgb float64 ;*fontFile ;_aeeb *_bad .TtfType ;
|
||
|
||
// Additional entries for CIDFonts
|
||
Style _ebb .PdfObject ;Lang _ebb .PdfObject ;FD _ebb .PdfObject ;CIDSet _ebb .PdfObject ;_ccfcg *_ebb .PdfIndirectObject ;};
|
||
|
||
// ColorFromFloats returns a new PdfColor based on the input slice of color
|
||
// components.
|
||
func (_ddcb *PdfColorspaceICCBased )ColorFromFloats (vals []float64 )(PdfColor ,error ){if _ddcb .Alternate ==nil {if _ddcb .N ==1{_fgeb :=NewPdfColorspaceDeviceGray ();return _fgeb .ColorFromFloats (vals );}else if _ddcb .N ==3{_gged :=NewPdfColorspaceDeviceRGB ();
|
||
return _gged .ColorFromFloats (vals );}else if _ddcb .N ==4{_cbed :=NewPdfColorspaceDeviceCMYK ();return _cbed .ColorFromFloats (vals );}else {return nil ,_gf .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 _ddcb .Alternate .ColorFromFloats (vals );};
|
||
|
||
// CustomKeys returns all custom info keys as list.
|
||
func (_badba *PdfInfo )CustomKeys ()[]string {if _badba ._gcgf ==nil {return nil ;};_agfcc :=make ([]string ,len (_badba ._gcgf .Keys ()));for _ ,_dfaf :=range _badba ._gcgf .Keys (){_agfcc =append (_agfcc ,_dfaf .String ());};return _agfcc ;};
|
||
|
||
// PdfAnnotationStrikeOut represents StrikeOut annotations.
|
||
// (Section 12.5.6.10).
|
||
type PdfAnnotationStrikeOut struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _ebb .PdfObject ;};
|
||
|
||
// B returns the value of the B component of the color.
|
||
func (_bbd *PdfColorCalRGB )B ()float64 {return _bbd [1]};
|
||
|
||
// ToPdfObject returns the PDF representation of the colorspace.
|
||
func (_cdfge *PdfPageResourcesColorspaces )ToPdfObject ()_ebb .PdfObject {_dcebg :=_ebb .MakeDict ();for _ ,_eeac :=range _cdfge .Names {_dcebg .Set (_ebb .PdfObjectName (_eeac ),_cdfge .Colorspaces [_eeac ].ToPdfObject ());};if _cdfge ._ddffd !=nil {_cdfge ._ddffd .PdfObject =_dcebg ;
|
||
return _cdfge ._ddffd ;};return _dcebg ;};
|
||
|
||
// 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 ;_faeb *_ebb .PdfObjectDictionary ;};
|
||
|
||
// GetNumComponents returns the number of color components of the underlying
|
||
// colorspace device.
|
||
func (_daac *PdfColorspaceSpecialPattern )GetNumComponents ()int {return _daac .UnderlyingCS .GetNumComponents ();};
|
||
|
||
// PdfActionRendition represents a Rendition action.
|
||
type PdfActionRendition struct{*PdfAction ;R _ebb .PdfObject ;AN _ebb .PdfObject ;OP _ebb .PdfObject ;JS _ebb .PdfObject ;};
|
||
|
||
// G returns the value of the green component of the color.
|
||
func (_eabd *PdfColorDeviceRGB )G ()float64 {return _eabd [1]};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_egd *PdfActionRendition )ToPdfObject ()_ebb .PdfObject {_egd .PdfAction .ToPdfObject ();_cgdf :=_egd ._abe ;_ddef :=_cgdf .PdfObject .(*_ebb .PdfObjectDictionary );_ddef .SetIfNotNil ("\u0053",_ebb .MakeName (string (ActionTypeRendition )));_ddef .SetIfNotNil ("\u0052",_egd .R );
|
||
_ddef .SetIfNotNil ("\u0041\u004e",_egd .AN );_ddef .SetIfNotNil ("\u004f\u0050",_egd .OP );_ddef .SetIfNotNil ("\u004a\u0053",_egd .JS );return _cgdf ;};
|
||
|
||
// NewPdfAnnotationPolygon returns a new polygon annotation.
|
||
func NewPdfAnnotationPolygon ()*PdfAnnotationPolygon {_cegg :=NewPdfAnnotation ();_dfg :=&PdfAnnotationPolygon {};_dfg .PdfAnnotation =_cegg ;_dfg .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_cegg .SetContext (_dfg );return _dfg ;};const (_gfega =0x00001;
|
||
_adfbd =0x00002;_dffee =0x00004;_dgfgd =0x00008;_cbfd =0x00020;_ccgbe =0x00040;_fece =0x10000;_ddge =0x20000;_decd =0x40000;);
|
||
|
||
// ColorFromPdfObjects returns a new PdfColor based on the input slice of color
|
||
// component PDF objects.
|
||
func (_dgae *PdfColorspaceICCBased )ColorFromPdfObjects (objects []_ebb .PdfObject )(PdfColor ,error ){if _dgae .Alternate ==nil {if _dgae .N ==1{_dfag :=NewPdfColorspaceDeviceGray ();return _dfag .ColorFromPdfObjects (objects );}else if _dgae .N ==3{_bbbe :=NewPdfColorspaceDeviceRGB ();
|
||
return _bbbe .ColorFromPdfObjects (objects );}else if _dgae .N ==4{_fbae :=NewPdfColorspaceDeviceCMYK ();return _fbae .ColorFromPdfObjects (objects );}else {return nil ,_gf .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 _dgae .Alternate .ColorFromPdfObjects (objects );};func (_gccfa Image )getBase ()_dg .ImageBase {return _dg .NewImageBase (int (_gccfa .Width ),int (_gccfa .Height ),int (_gccfa .BitsPerComponent ),_gccfa .ColorComponents ,_gccfa .Data ,_gccfa ._dagcb ,_gccfa ._dgcea );
|
||
};
|
||
|
||
// GetCustomInfo returns a custom info value for the specified name.
|
||
func (_deff *PdfInfo )GetCustomInfo (name string )*_ebb .PdfObjectString {var _cfaac *_ebb .PdfObjectString ;if _deff ._gcgf ==nil {return _cfaac ;};if _dfffg ,_gafc :=_deff ._gcgf .Get (*_ebb .MakeName (name )).(*_ebb .PdfObjectString );_gafc {_cfaac =_dfffg ;
|
||
};return _cfaac ;};
|
||
|
||
// PdfActionType represents an action type in PDF (section 12.6.4 p. 417).
|
||
type PdfActionType string ;func _fadcd ()*modelManager {_gbed :=modelManager {};_gbed ._bgfdb =map[PdfModel ]_ebb .PdfObject {};_gbed ._aabcbdd =map[_ebb .PdfObject ]PdfModel {};return &_gbed ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_eec *PdfActionLaunch )ToPdfObject ()_ebb .PdfObject {_eec .PdfAction .ToPdfObject ();_eeag :=_eec ._abe ;_fbd :=_eeag .PdfObject .(*_ebb .PdfObjectDictionary );_fbd .SetIfNotNil ("\u0053",_ebb .MakeName (string (ActionTypeLaunch )));if _eec .F !=nil {_fbd .Set ("\u0046",_eec .F .ToPdfObject ());
|
||
};_fbd .SetIfNotNil ("\u0057\u0069\u006e",_eec .Win );_fbd .SetIfNotNil ("\u004d\u0061\u0063",_eec .Mac );_fbd .SetIfNotNil ("\u0055\u006e\u0069\u0078",_eec .Unix );_fbd .SetIfNotNil ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw",_eec .NewWindow );return _eeag ;
|
||
};func (_eefd *PdfWriter )getPdfVersion ()string {return _bg .Sprintf ("\u0025\u0064\u002e%\u0064",_eefd ._efcge .Major ,_eefd ._efcge .Minor );};func _adcga (_bbegd *_ebb .PdfObjectDictionary )(*PdfShadingType2 ,error ){_fffe :=PdfShadingType2 {};_feeca :=_bbegd .Get ("\u0043\u006f\u006f\u0072\u0064\u0073");
|
||
if _feeca ==nil {_eg .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 ;
|
||
};_daaca ,_ecbcg :=_feeca .(*_ebb .PdfObjectArray );if !_ecbcg {_eg .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",_feeca );return nil ,_gf .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");
|
||
};if _daaca .Len ()!=4{_eg .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",_daaca .Len ());return nil ,_gf .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0061\u0074\u0074\u0072i\u0062\u0075\u0074\u0065");
|
||
};_fffe .Coords =_daaca ;if _dbaefe :=_bbegd .Get ("\u0044\u006f\u006d\u0061\u0069\u006e");_dbaefe !=nil {_dbaefe =_ebb .TraceToDirectObject (_dbaefe );_ecdge ,_bffed :=_dbaefe .(*_ebb .PdfObjectArray );if !_bffed {_eg .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",_dbaefe );
|
||
return nil ,_gf .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_fffe .Domain =_ecdge ;};_feeca =_bbegd .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");if _feeca ==nil {_eg .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 ;};_fffe .Function =[]PdfFunction {};if _afagg ,_eebcbf :=_feeca .(*_ebb .PdfObjectArray );_eebcbf {for _ ,_bgcbg :=range _afagg .Elements (){_bddce ,_ceaee :=_aagg (_bgcbg );if _ceaee !=nil {_eg .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",_ceaee );
|
||
return nil ,_ceaee ;};_fffe .Function =append (_fffe .Function ,_bddce );};}else {_ebdfb ,_ffbd :=_aagg (_feeca );if _ffbd !=nil {_eg .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",_ffbd );
|
||
return nil ,_ffbd ;};_fffe .Function =append (_fffe .Function ,_ebdfb );};if _gceef :=_bbegd .Get ("\u0045\u0078\u0074\u0065\u006e\u0064");_gceef !=nil {_gceef =_ebb .TraceToDirectObject (_gceef );_adafb ,_egddg :=_gceef .(*_ebb .PdfObjectArray );if !_egddg {_eg .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",_gceef );
|
||
return nil ,_ebb .ErrTypeError ;};if _adafb .Len ()!=2{_eg .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",_adafb .Len ());return nil ,ErrInvalidAttribute ;
|
||
};_fffe .Extend =_adafb ;};return &_fffe ,nil ;};
|
||
|
||
// ToPdfObject implements model.PdfModel interface.
|
||
func (_bfcfe *PdfOutputIntent )ToPdfObject ()_ebb .PdfObject {if _bfcfe ._faeb ==nil {_bfcfe ._faeb =_ebb .MakeDict ();};_fgfb :=_bfcfe ._faeb ;if _bfcfe .Type !=""{_fgfb .Set ("\u0054\u0079\u0070\u0065",_ebb .MakeName (_bfcfe .Type ));};_fgfb .Set ("\u0053",_ebb .MakeName (_bfcfe .S .String ()));
|
||
if _bfcfe .OutputCondition !=""{_fgfb .Set ("\u004fu\u0074p\u0075\u0074\u0043\u006f\u006e\u0064\u0069\u0074\u0069\u006f\u006e",_ebb .MakeString (_bfcfe .OutputCondition ));};_fgfb .Set ("\u004fu\u0074\u0070\u0075\u0074C\u006f\u006e\u0064\u0069\u0074i\u006fn\u0049d\u0065\u006e\u0074\u0069\u0066\u0069\u0065r",_ebb .MakeString (_bfcfe .OutputConditionIdentifier ));
|
||
_fgfb .Set ("\u0052\u0065\u0067i\u0073\u0074\u0072\u0079\u004e\u0061\u006d\u0065",_ebb .MakeString (_bfcfe .RegistryName ));if _bfcfe .Info !=""{_fgfb .Set ("\u0049\u006e\u0066\u006f",_ebb .MakeString (_bfcfe .Info ));};if len (_bfcfe .DestOutputProfile )!=0{_bacag ,_fdcdc :=_ebb .MakeStream (_bfcfe .DestOutputProfile ,_ebb .NewFlateEncoder ());
|
||
if _fdcdc !=nil {_eg .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",_fdcdc );
|
||
};_bacag .PdfObjectDictionary .Set ("\u004e",_ebb .MakeInteger (int64 (_bfcfe .ColorComponents )));_eabdg :=make ([]float64 ,_bfcfe .ColorComponents *2);for _bgdaa :=0;_bgdaa < _bfcfe .ColorComponents *2;_bgdaa ++{_ggfcb :=0.0;if _bgdaa %2!=0{_ggfcb =1.0;
|
||
};_eabdg [_bgdaa ]=_ggfcb ;};_bacag .PdfObjectDictionary .Set ("\u0052\u0061\u006eg\u0065",_ebb .MakeArrayFromFloats (_eabdg ));_fgfb .Set ("\u0044\u0065\u0073\u0074\u004f\u0075\u0074\u0070\u0075\u0074\u0050\u0072o\u0066\u0069\u006c\u0065",_bacag );};return _fgfb ;
|
||
};
|
||
|
||
// HasFontByName checks if has font resource by name.
|
||
func (_cdgf *PdfPage )HasFontByName (name _ebb .PdfObjectName )bool {_dgge ,_daecb :=_cdgf .Resources .Font .(*_ebb .PdfObjectDictionary );if !_daecb {return false ;};if _eeeec :=_dgge .Get (name );_eeeec !=nil {return true ;};return false ;};
|
||
|
||
// PdfAnnotation represents an annotation in PDF (section 12.5 p. 389).
|
||
type PdfAnnotation struct{_efd PdfModel ;Rect _ebb .PdfObject ;Contents _ebb .PdfObject ;P _ebb .PdfObject ;NM _ebb .PdfObject ;M _ebb .PdfObject ;F _ebb .PdfObject ;AP _ebb .PdfObject ;AS _ebb .PdfObject ;Border _ebb .PdfObject ;C _ebb .PdfObject ;StructParent _ebb .PdfObject ;
|
||
OC _ebb .PdfObject ;_bdcd *_ebb .PdfIndirectObject ;};func (_cggf *PdfAppender )updateObjectsDeep (_ged _ebb .PdfObject ,_badbe map[_ebb .PdfObject ]struct{}){if _badbe ==nil {_badbe =map[_ebb .PdfObject ]struct{}{};};if _ ,_gfdb :=_badbe [_ged ];_gfdb ||_ged ==nil {return ;
|
||
};_badbe [_ged ]=struct{}{};_adcag :=_ebb .ResolveReferencesDeep (_ged ,_cggf ._agb );if _adcag !=nil {_eg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_adcag );};switch _dfcf :=_ged .(type ){case *_ebb .PdfIndirectObject :switch {case _dfcf .GetParser ()==_cggf ._acfe ._cafdf :return ;
|
||
case _dfcf .GetParser ()==_cggf .Reader ._cafdf :_gbgg ,_ :=_cggf ._acfe .GetIndirectObjectByNumber (int (_dfcf .ObjectNumber ));_adfc ,_feec :=_gbgg .(*_ebb .PdfIndirectObject );if _feec &&_adfc !=nil {if _adfc .PdfObject !=_dfcf .PdfObject &&_adfc .PdfObject .WriteString ()!=_dfcf .PdfObject .WriteString (){_cggf .addNewObject (_ged );
|
||
_cggf ._gbfa [_ged ]=_dfcf .ObjectNumber ;};};default:_cggf .addNewObject (_ged );};_cggf .updateObjectsDeep (_dfcf .PdfObject ,_badbe );case *_ebb .PdfObjectArray :for _ ,_eedb :=range _dfcf .Elements (){_cggf .updateObjectsDeep (_eedb ,_badbe );};case *_ebb .PdfObjectDictionary :for _ ,_gffe :=range _dfcf .Keys (){_cggf .updateObjectsDeep (_dfcf .Get (_gffe ),_badbe );
|
||
};case *_ebb .PdfObjectStreams :if _dfcf .GetParser ()!=_cggf ._acfe ._cafdf {for _ ,_cdcf :=range _dfcf .Elements (){_cggf .updateObjectsDeep (_cdcf ,_badbe );};};case *_ebb .PdfObjectStream :switch {case _dfcf .GetParser ()==_cggf ._acfe ._cafdf :return ;
|
||
case _dfcf .GetParser ()==_cggf .Reader ._cafdf :if _cfagc ,_cbd :=_cggf ._acfe ._cafdf .LookupByReference (_dfcf .PdfObjectReference );_cbd ==nil {var _gef bool ;if _geged ,_gac :=_ebb .GetStream (_cfagc );_gac &&_ca .Equal (_geged .Stream ,_dfcf .Stream ){_gef =true ;
|
||
};if _bbbgg ,_feag :=_ebb .GetDict (_cfagc );_gef &&_feag {_gef =_bbbgg .WriteString ()==_dfcf .PdfObjectDictionary .WriteString ();};if _gef {return ;};};if _dfcf .ObjectNumber !=0{_cggf ._gbfa [_ged ]=_dfcf .ObjectNumber ;};default:if _ ,_fbgg :=_cggf ._ddfg [_ged ];
|
||
!_fbgg {_cggf .addNewObject (_ged );};};_cggf .updateObjectsDeep (_dfcf .PdfObjectDictionary ,_badbe );};};
|
||
|
||
// GetOptimizer returns current PDF optimizer.
|
||
func (_dccaa *PdfWriter )GetOptimizer ()Optimizer {return _dccaa ._aadcd };
|
||
|
||
// SetVersion sets the PDF version of the output file.
|
||
func (_febac *PdfWriter )SetVersion (majorVersion ,minorVersion int ){_febac ._efcge .Major =majorVersion ;_febac ._efcge .Minor =minorVersion ;};
|
||
|
||
// 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 (_fbfc *PdfFont )FontDescriptor ()*PdfFontDescriptor {if _fbfc .baseFields ()._fbbd !=nil {return _fbfc .baseFields ()._fbbd ;};if _dfggb :=_fbfc ._ebcad .getFontDescriptor ();_dfggb !=nil {return _dfggb ;};_eg .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",_fbfc );
|
||
return nil ;};func (_baef *PdfColorspaceDeviceRGB )String ()string {return "\u0044e\u0076\u0069\u0063\u0065\u0052\u0047B";};
|
||
|
||
// 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 (_bbgeb *PdfOutlineTreeNode )GetContext ()PdfModel {if _adebf ,_ebgba :=_bbgeb ._geeee .(*PdfOutline );_ebgba {return _adebf ;};if _dfgcb ,_gdbe :=_bbgeb ._geeee .(*PdfOutlineItem );_gdbe {return _dfgcb ;};_eg .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 _afacb (_eaad *_dg .ImageBase )(_edacc Image ){_edacc .Width =int64 (_eaad .Width );_edacc .Height =int64 (_eaad .Height );_edacc .BitsPerComponent =int64 (_eaad .BitsPerComponent );_edacc .ColorComponents =_eaad .ColorComponents ;_edacc .Data =_eaad .Data ;
|
||
_edacc ._dgcea =_eaad .Decode ;_edacc ._dagcb =_eaad .Alpha ;return _edacc ;};
|
||
|
||
// DecodeArray returns the component range values for the DeviceN colorspace.
|
||
// [0 1.0 0 1.0 ...] for each color component.
|
||
func (_affe *PdfColorspaceDeviceN )DecodeArray ()[]float64 {var _bgfad []float64 ;for _gdbc :=0;_gdbc < _affe .GetNumComponents ();_gdbc ++{_bgfad =append (_bgfad ,0.0,1.0);};return _bgfad ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_edab *PdfAnnotationCaret )ToPdfObject ()_ebb .PdfObject {_edab .PdfAnnotation .ToPdfObject ();_befg :=_edab ._bdcd ;_gbee :=_befg .PdfObject .(*_ebb .PdfObjectDictionary );_edab .PdfAnnotationMarkup .appendToPdfDictionary (_gbee );_gbee .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ebb .MakeName ("\u0043\u0061\u0072e\u0074"));
|
||
_gbee .SetIfNotNil ("\u0052\u0044",_edab .RD );_gbee .SetIfNotNil ("\u0053\u0079",_edab .Sy );return _befg ;};
|
||
|
||
// PageFromIndirectObject returns the PdfPage and page number for a given indirect object.
|
||
func (_eacbb *PdfReader )PageFromIndirectObject (ind *_ebb .PdfIndirectObject )(*PdfPage ,int ,error ){if len (_eacbb .PageList )!=len (_eacbb ._faebb ){return nil ,0,_gf .New ("\u0070\u0061\u0067\u0065\u0020\u006c\u0069\u0073\u0074\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");
|
||
};for _bged ,_fbaef :=range _eacbb ._faebb {if _fbaef ==ind {return _eacbb .PageList [_bged ],_bged +1,nil ;};};return nil ,0,_gf .New ("\u0070\u0061\u0067\u0065\u0020\u006e\u006f\u0074\u0020f\u006f\u0075\u006e\u0064");};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_fff *PdfAnnotationCircle )ToPdfObject ()_ebb .PdfObject {_fff .PdfAnnotation .ToPdfObject ();_bdcb :=_fff ._bdcd ;_bcec :=_bdcb .PdfObject .(*_ebb .PdfObjectDictionary );_fff .PdfAnnotationMarkup .appendToPdfDictionary (_bcec );_bcec .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ebb .MakeName ("\u0043\u0069\u0072\u0063\u006c\u0065"));
|
||
_bcec .SetIfNotNil ("\u0042\u0053",_fff .BS );_bcec .SetIfNotNil ("\u0049\u0043",_fff .IC );_bcec .SetIfNotNil ("\u0042\u0045",_fff .BE );_bcec .SetIfNotNil ("\u0052\u0044",_fff .RD );return _bdcb ;};
|
||
|
||
// AddExtGState add External Graphics State (GState). The gsDict can be specified
|
||
// either directly as a dictionary or an indirect object containing a dictionary.
|
||
func (_beca *PdfPageResources )AddExtGState (gsName _ebb .PdfObjectName ,gsDict _ebb .PdfObject )error {if _beca .ExtGState ==nil {_beca .ExtGState =_ebb .MakeDict ();};_egfad :=_beca .ExtGState ;_abbce ,_baabb :=_ebb .TraceToDirectObject (_egfad ).(*_ebb .PdfObjectDictionary );
|
||
if !_baabb {_eg .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",_egfad ,_ebb .TraceToDirectObject (_egfad ));
|
||
return _ebb .ErrTypeError ;};_abbce .Set (gsName ,gsDict );return nil ;};
|
||
|
||
// ColorToRGB converts a color in Separation colorspace to RGB colorspace.
|
||
func (_eegce *PdfColorspaceSpecialSeparation )ColorToRGB (color PdfColor )(PdfColor ,error ){if _eegce .AlternateSpace ==nil {return nil ,_gf .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 _eegce .AlternateSpace .ColorToRGB (color );};func _cgcga (_ggcdf *[]*PdfField ,_ggebg FieldFilterFunc ,_cacca bool )[]*PdfField {if _ggcdf ==nil {return nil ;};_dbdff :=*_ggcdf ;if len (*_ggcdf )==0{return nil ;};_ffdfb :=_dbdff [:0];if _ggebg ==nil {_ggebg =func (*PdfField )bool {return true };
|
||
};var _eedfc []*PdfField ;for _ ,_bagg :=range _dbdff {_ggedc :=_ggebg (_bagg );if _ggedc {_eedfc =append (_eedfc ,_bagg );if len (_bagg .Kids )> 0{_eedfc =append (_eedfc ,_cgcga (&_bagg .Kids ,_ggebg ,_cacca )...);};};if !_cacca ||!_ggedc ||len (_bagg .Kids )> 0{_ffdfb =append (_ffdfb ,_bagg );
|
||
};};*_ggcdf =_ffdfb ;return _eedfc ;};
|
||
|
||
// XObjectType represents the type of an XObject.
|
||
type XObjectType int ;
|
||
|
||
// NewPdfFontFromPdfObject loads a PdfFont from the dictionary `fontObj`. If there is a problem an
|
||
// error is returned.
|
||
func NewPdfFontFromPdfObject (fontObj _ebb .PdfObject )(*PdfFont ,error ){return _ddacd (fontObj ,true )};
|
||
|
||
// 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 (_bdafb *PdfFont )GetRuneMetrics (r rune )(CharMetrics ,bool ){_acdab :=_bdafb .actualFont ();if _acdab ==nil {_eg .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",_bdafb ._ebcad );
|
||
return _bad .CharMetrics {},false ;};if _ccfcc ,_eaca :=_acdab .GetRuneMetrics (r );_eaca {return _ccfcc ,true ;};if _dbacdg ,_bccc :=_bdafb .GetFontDescriptor ();_bccc ==nil &&_dbacdg !=nil {return _bad .CharMetrics {Wx :_dbacdg ._gbfgb },true ;};_eg .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",_bdafb );
|
||
return _bad .CharMetrics {},false ;};
|
||
|
||
// PdfOutputIntentType is the subtype of the given PdfOutputIntent.
|
||
type PdfOutputIntentType int ;func (_dfdg *PdfReader )newPdfAnnotationPrinterMarkFromDict (_dbcd *_ebb .PdfObjectDictionary )(*PdfAnnotationPrinterMark ,error ){_bbag :=PdfAnnotationPrinterMark {};_bbag .MN =_dbcd .Get ("\u004d\u004e");return &_bbag ,nil ;
|
||
};
|
||
|
||
// FullName returns the full name of the field as in rootname.parentname.partialname.
|
||
func (_bfdfg *PdfField )FullName ()(string ,error ){var _dceg _ca .Buffer ;_cafga :=[]string {};if _bfdfg .T !=nil {_cafga =append (_cafga ,_bfdfg .T .Decoded ());};_dbacd :=map[*PdfField ]bool {};_dbacd [_bfdfg ]=true ;_gefg :=_bfdfg .Parent ;for _gefg !=nil {if _ ,_ccfbg :=_dbacd [_gefg ];
|
||
_ccfbg {return _dceg .String (),_gf .New ("\u0072\u0065\u0063\u0075rs\u0069\u0076\u0065\u0020\u0074\u0072\u0061\u0076\u0065\u0072\u0073\u0061\u006c");};if _gefg .T ==nil {return _dceg .String (),_gf .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");
|
||
};_cafga =append (_cafga ,_gefg .T .Decoded ());_dbacd [_gefg ]=true ;_gefg =_gefg .Parent ;};for _abdb :=len (_cafga )-1;_abdb >=0;_abdb --{_dceg .WriteString (_cafga [_abdb ]);if _abdb > 0{_dceg .WriteString ("\u002e");};};return _dceg .String (),nil ;
|
||
};
|
||
|
||
// Register registers (caches) a model to primitive object relationship.
|
||
func (_ecbd *modelManager )Register (primitive _ebb .PdfObject ,model PdfModel ){_ecbd ._bgfdb [model ]=primitive ;_ecbd ._aabcbdd [primitive ]=model ;};
|
||
|
||
// GetVersion gets the document version.
|
||
func (_efcaaa *PdfWriter )GetVersion ()_ebb .Version {return _efcaaa ._efcge };func (_afbcd *PdfReader )lookupPageByObject (_ecac _ebb .PdfObject )(*PdfPage ,error ){return nil ,_gf .New ("\u0070\u0061\u0067\u0065\u0020\u006e\u006f\u0074\u0020f\u006f\u0075\u006e\u0064");
|
||
};func _gbab (_dgfeg *_ebb .PdfObjectStream )(*PdfFunctionType4 ,error ){_bacf :=&PdfFunctionType4 {};_bacf ._gbgd =_dgfeg ;_cdef :=_dgfeg .PdfObjectDictionary ;_bcaf ,_adaa :=_ebb .TraceToDirectObject (_cdef .Get ("\u0044\u006f\u006d\u0061\u0069\u006e")).(*_ebb .PdfObjectArray );
|
||
if !_adaa {_eg .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_gf .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 _bcaf .Len ()%2!=0{_eg .Log .Error ("\u0044\u006f\u006d\u0061\u0069\u006e\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");return nil ,_gf .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0064\u006f\u006da\u0069\u006e\u0020\u0072an\u0067\u0065");};_gefc ,_cbce :=_bcaf .ToFloat64Array ();
|
||
if _cbce !=nil {return nil ,_cbce ;};_bacf .Domain =_gefc ;_bcaf ,_adaa =_ebb .TraceToDirectObject (_cdef .Get ("\u0052\u0061\u006eg\u0065")).(*_ebb .PdfObjectArray );if _adaa {if _bcaf .Len ()< 0||_bcaf .Len ()%2!=0{return nil ,_gf .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0061\u006e\u0067\u0065");
|
||
};_dabd ,_ggaeb :=_bcaf .ToFloat64Array ();if _ggaeb !=nil {return nil ,_ggaeb ;};_bacf .Range =_dabd ;};_ddgde ,_cbce :=_ebb .DecodeStream (_dgfeg );if _cbce !=nil {return nil ,_cbce ;};_bacf ._abbbb =_ddgde ;_dbgaa :=_bc .NewPSParser (_ddgde );_adcef ,_cbce :=_dbgaa .Parse ();
|
||
if _cbce !=nil {return nil ,_cbce ;};_bacf .Program =_adcef ;return _bacf ,nil ;};
|
||
|
||
// RepairAcroForm attempts to rebuild the AcroForm fields using the widget
|
||
// annotations present in the document pages. Pass nil for the opts parameter
|
||
// in order to use the default options.
|
||
// NOTE: Currently, the opts parameter is declared in order to enable adding
|
||
// future options, but passing nil will always result in the default options
|
||
// being used.
|
||
func (_bfgfb *PdfReader )RepairAcroForm (opts *AcroFormRepairOptions )error {var _cefgf []*PdfField ;_gadd :=map[*_ebb .PdfIndirectObject ]struct{}{};for _ ,_cbcfc :=range _bfgfb .PageList {_efgfd ,_ceebd :=_cbcfc .GetAnnotations ();if _ceebd !=nil {return _ceebd ;
|
||
};for _ ,_gdbbf :=range _efgfd {var _gacfbf *PdfField ;switch _gaccd :=_gdbbf .GetContext ().(type ){case *PdfAnnotationWidget :if _gaccd ._gce !=nil {_gacfbf =_gaccd ._gce ;break ;};if _cedf ,_cbebe :=_ebb .GetIndirect (_gaccd .Parent );_cbebe {_gacfbf ,_ceebd =_bfgfb .newPdfFieldFromIndirectObject (_cedf ,nil );
|
||
if _ceebd ==nil {break ;};_eg .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",_cedf ,_ceebd );
|
||
};if _gaccd ._bdcd !=nil {_gacfbf ,_ceebd =_bfgfb .newPdfFieldFromIndirectObject (_gaccd ._bdcd ,nil );if _ceebd ==nil {break ;};_eg .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",_gaccd ._bdcd ,_ceebd );
|
||
};};if _gacfbf ==nil {continue ;};if _ ,_efdeg :=_gadd [_gacfbf ._cdfd ];_efdeg {continue ;};_gadd [_gacfbf ._cdfd ]=struct{}{};_cefgf =append (_cefgf ,_gacfbf );};};if len (_cefgf )==0{return nil ;};if _bfgfb .AcroForm ==nil {_bfgfb .AcroForm =NewPdfAcroForm ();
|
||
};_bfgfb .AcroForm .Fields =&_cefgf ;return nil ;};
|
||
|
||
// SetPdfCreator sets the Creator attribute of the output PDF.
|
||
func SetPdfCreator (creator string ){_daddc .Lock ();defer _daddc .Unlock ();_afedf =creator };
|
||
|
||
// 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 ;_bdgdgf *_ebb .PdfObjectDictionary ;};
|
||
|
||
// PdfActionGoTo3DView represents a GoTo3DView action.
|
||
type PdfActionGoTo3DView struct{*PdfAction ;TA _ebb .PdfObject ;V _ebb .PdfObject ;};func (_dcaac *LTV )enable (_acfb ,_ecfcf []*_g .Certificate ,_beegg string )error {_edfg ,_adbag ,_facbfe :=_dcaac .buildCertChain (_acfb ,_ecfcf );if _facbfe !=nil {return _facbfe ;
|
||
};_efgd ,_facbfe :=_dcaac .getCerts (_edfg );if _facbfe !=nil {return _facbfe ;};_fefeg ,_facbfe :=_dcaac .getOCSPs (_edfg ,_adbag );if _facbfe !=nil {return _facbfe ;};_cdbc ,_facbfe :=_dcaac .getCRLs (_edfg );if _facbfe !=nil {return _facbfe ;};_dagdg :=_dcaac ._dfdgf ;
|
||
_acggb ,_facbfe :=_dagdg .addCerts (_efgd );if _facbfe !=nil {return _facbfe ;};_fafac ,_facbfe :=_dagdg .addOCSPs (_fefeg );if _facbfe !=nil {return _facbfe ;};_eaddg ,_facbfe :=_dagdg .addCRLs (_cdbc );if _facbfe !=nil {return _facbfe ;};if _beegg !=""{_dagdg .VRI [_beegg ]=&VRI {Cert :_acggb ,OCSP :_fafac ,CRL :_eaddg };
|
||
};_dcaac ._ggdbg .SetDSS (_dagdg );return nil ;};
|
||
|
||
// NewPdfOutlineTree returns an initialized PdfOutline tree.
|
||
func NewPdfOutlineTree ()*PdfOutline {_ddgg :=NewPdfOutline ();_ddgg ._geeee =&_ddgg ;return _ddgg };func _fggcd ()string {_daddc .Lock ();defer _daddc .Unlock ();return _fceef };
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_ccgc *PdfBorderStyle )ToPdfObject ()_ebb .PdfObject {_aaad :=_ebb .MakeDict ();if _ccgc ._dgaa !=nil {if _fbcg ,_afed :=_ccgc ._dgaa .(*_ebb .PdfIndirectObject );_afed {_fbcg .PdfObject =_aaad ;};};_aaad .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ebb .MakeName ("\u0042\u006f\u0072\u0064\u0065\u0072"));
|
||
if _ccgc .W !=nil {_aaad .Set ("\u0057",_ebb .MakeFloat (*_ccgc .W ));};if _ccgc .S !=nil {_aaad .Set ("\u0053",_ebb .MakeName (_ccgc .S .GetPdfName ()));};if _ccgc .D !=nil {_aaad .Set ("\u0044",_ebb .MakeArrayFromIntegers (*_ccgc .D ));};if _ccgc ._dgaa !=nil {return _ccgc ._dgaa ;
|
||
};return _aaad ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_aabc *PdfActionSubmitForm )ToPdfObject ()_ebb .PdfObject {_aabc .PdfAction .ToPdfObject ();_deg :=_aabc ._abe ;_dbe :=_deg .PdfObject .(*_ebb .PdfObjectDictionary );_dbe .SetIfNotNil ("\u0053",_ebb .MakeName (string (ActionTypeSubmitForm )));if _aabc .F !=nil {_dbe .Set ("\u0046",_aabc .F .ToPdfObject ());
|
||
};_dbe .SetIfNotNil ("\u0046\u0069\u0065\u006c\u0064\u0073",_aabc .Fields );_dbe .SetIfNotNil ("\u0046\u006c\u0061g\u0073",_aabc .Flags );return _deg ;};
|
||
|
||
// PdfPageResources is a Page resources model.
|
||
// Implements PdfModel.
|
||
type PdfPageResources struct{ExtGState _ebb .PdfObject ;ColorSpace _ebb .PdfObject ;Pattern _ebb .PdfObject ;Shading _ebb .PdfObject ;XObject _ebb .PdfObject ;Font _ebb .PdfObject ;ProcSet _ebb .PdfObject ;Properties _ebb .PdfObject ;_efbed *_ebb .PdfObjectDictionary ;
|
||
_aaee *PdfPageResourcesColorspaces ;};
|
||
|
||
// 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 (_cfgae *PdfSignature )bool ;
|
||
|
||
// Validate validates a PDF signature against a given digest (hash) such as that determined
|
||
// for an input file. Returns validation results.
|
||
Validate (_eeed *PdfSignature ,_gdaba 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 (_adfcf *PdfSignature )error ;
|
||
|
||
// NewDigest creates a new digest/hasher based on the signature dictionary and handler.
|
||
NewDigest (_abdae *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 (_caafc *PdfSignature ,_cabe Hasher )error ;};
|
||
|
||
// SetPdfSubject sets the Subject attribute of the output PDF.
|
||
func SetPdfSubject (subject string ){_daddc .Lock ();defer _daddc .Unlock ();_feaca =subject };
|
||
|
||
// SetFlag sets the flag for the field.
|
||
func (_bggb *PdfField )SetFlag (flag FieldFlag ){_bggb .Ff =_ebb .MakeInteger (int64 (flag ))};
|
||
|
||
// NewPdfField returns an initialized PdfField.
|
||
func NewPdfField ()*PdfField {return &PdfField {_cdfd :_ebb .MakeIndirectObject (_ebb .MakeDict ())}};
|
||
|
||
// GetNumComponents returns the number of color components (1 for grayscale).
|
||
func (_ddbg *PdfColorDeviceGray )GetNumComponents ()int {return 1};
|
||
|
||
// SetFilter sets compression filter. Decodes with current filter sets and
|
||
// encodes the data with the new filter.
|
||
func (_gddag *XObjectImage )SetFilter (encoder _ebb .StreamEncoder )error {_dcfdb :=_gddag .Stream ;_cefb ,_geebd :=_gddag .Filter .DecodeBytes (_dcfdb );if _geebd !=nil {return _geebd ;};_gddag .Filter =encoder ;encoder .UpdateParams (_gddag .getParamsDict ());
|
||
_dcfdb ,_geebd =encoder .EncodeBytes (_cefb );if _geebd !=nil {return _geebd ;};_gddag .Stream =_dcfdb ;return nil ;};
|
||
|
||
// DecodeArray returns the range of color component values in CalRGB colorspace.
|
||
func (_feeg *PdfColorspaceCalRGB )DecodeArray ()[]float64 {return []float64 {0.0,1.0,0.0,1.0,0.0,1.0};};
|
||
|
||
// ToPdfObject returns a PDF object representation of the outline destination.
|
||
func (_fbef OutlineDest )ToPdfObject ()_ebb .PdfObject {if (_fbef .PageObj ==nil &&_fbef .Page < 0)||_fbef .Mode ==""{return _ebb .MakeNull ();};_caedb :=_ebb .MakeArray ();if _fbef .PageObj !=nil {_caedb .Append (_fbef .PageObj );}else {_caedb .Append (_ebb .MakeInteger (_fbef .Page ));
|
||
};_caedb .Append (_ebb .MakeName (_fbef .Mode ));switch _fbef .Mode {case "\u0046\u0069\u0074","\u0046\u0069\u0074\u0042":case "\u0046\u0069\u0074\u0048","\u0046\u0069\u0074B\u0048":_caedb .Append (_ebb .MakeFloat (_fbef .Y ));case "\u0046\u0069\u0074\u0056","\u0046\u0069\u0074B\u0056":_caedb .Append (_ebb .MakeFloat (_fbef .X ));
|
||
case "\u0058\u0059\u005a":_caedb .Append (_ebb .MakeFloat (_fbef .X ));_caedb .Append (_ebb .MakeFloat (_fbef .Y ));_caedb .Append (_ebb .MakeFloat (_fbef .Zoom ));default:_caedb .Set (1,_ebb .MakeName ("\u0046\u0069\u0074"));};return _caedb ;};
|
||
|
||
// MergePageWith appends page content to source Pdf file page content.
|
||
func (_dcaf *PdfAppender )MergePageWith (pageNum int ,page *PdfPage )error {_dcea :=pageNum -1;var _ggge *PdfPage ;for _bfbe ,_gcea :=range _dcaf ._dfbg {if _bfbe ==_dcea {_ggge =_gcea ;};};if _ggge ==nil {return _bg .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 _ggge ._defbb !=nil &&_ggge ._defbb .GetParser ()==_dcaf ._acfe ._cafdf {_ggge =_ggge .Duplicate ();_dcaf ._dfbg [_dcea ]=_ggge ;};page =page .Duplicate ();_bfegc (page );_caec :=_adg (_ggge );_abccac :=_adg (page );_aegd :=make (map[_ebb .PdfObjectName ]_ebb .PdfObjectName );
|
||
for _dcc :=range _abccac {if _ ,_cfbfb :=_caec [_dcc ];_cfbfb {for _ebfc :=1;true ;_ebfc ++{_gedc :=_ebb .PdfObjectName (string (_dcc )+_aa .Itoa (_ebfc ));if _ ,_edc :=_caec [_gedc ];!_edc {_aegd [_dcc ]=_gedc ;break ;};};};};_fdge ,_edgfb :=page .GetContentStreams ();
|
||
if _edgfb !=nil {return _edgfb ;};_fbfe ,_edgfb :=_ggge .GetContentStreams ();if _edgfb !=nil {return _edgfb ;};for _bac ,_aeba :=range _fdge {for _cfadc ,_agdfd :=range _aegd {_aeba =_ee .Replace (_aeba ,"\u002f"+string (_cfadc ),"\u002f"+string (_agdfd ),-1);
|
||
};_fdge [_bac ]=_aeba ;};_fbfe =append (_fbfe ,_fdge ...);if _fcfe :=_ggge .SetContentStreams (_fbfe ,_ebb .NewFlateEncoder ());_fcfe !=nil {return _fcfe ;};_ggge ._bbfed =append (_ggge ._bbfed ,page ._bbfed ...);if _ggge .Resources ==nil {_ggge .Resources =NewPdfPageResources ();
|
||
};if page .Resources !=nil {_ggge .Resources .Font =_dcaf .mergeResources (_ggge .Resources .Font ,page .Resources .Font ,_aegd );_ggge .Resources .XObject =_dcaf .mergeResources (_ggge .Resources .XObject ,page .Resources .XObject ,_aegd );_ggge .Resources .Properties =_dcaf .mergeResources (_ggge .Resources .Properties ,page .Resources .Properties ,_aegd );
|
||
if _ggge .Resources .ProcSet ==nil {_ggge .Resources .ProcSet =page .Resources .ProcSet ;};_ggge .Resources .Shading =_dcaf .mergeResources (_ggge .Resources .Shading ,page .Resources .Shading ,_aegd );_ggge .Resources .ExtGState =_dcaf .mergeResources (_ggge .Resources .ExtGState ,page .Resources .ExtGState ,_aegd );
|
||
};_cgdfe ,_edgfb :=_ggge .GetMediaBox ();if _edgfb !=nil {return _edgfb ;};_fggg ,_edgfb :=page .GetMediaBox ();if _edgfb !=nil {return _edgfb ;};var _egfc bool ;if _cgdfe .Llx > _fggg .Llx {_cgdfe .Llx =_fggg .Llx ;_egfc =true ;};if _cgdfe .Lly > _fggg .Lly {_cgdfe .Lly =_fggg .Lly ;
|
||
_egfc =true ;};if _cgdfe .Urx < _fggg .Urx {_cgdfe .Urx =_fggg .Urx ;_egfc =true ;};if _cgdfe .Ury < _fggg .Ury {_cgdfe .Ury =_fggg .Ury ;_egfc =true ;};if _egfc {_ggge .MediaBox =_cgdfe ;};return nil ;};func _febaee (_aaaa *_ebb .PdfObjectDictionary ,_gacdg *fontCommon )(*pdfFontType3 ,error ){_fcba :=_eega (_gacdg );
|
||
_ffdd :=_aaaa .Get ("\u0046i\u0072\u0073\u0074\u0043\u0068\u0061r");if _ffdd ==nil {_ffdd =_ebb .MakeInteger (0);};_fcba .FirstChar =_ffdd ;_fdcfb ,_cbef :=_ebb .GetIntVal (_ffdd );if !_cbef {_eg .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",_ffdd );
|
||
return nil ,_ebb .ErrTypeError ;};_aegf :=_da .CharCode (_fdcfb );_ffdd =_aaaa .Get ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072");if _ffdd ==nil {_ffdd =_ebb .MakeInteger (255);};_fcba .LastChar =_ffdd ;_fdcfb ,_cbef =_ebb .GetIntVal (_ffdd );if !_cbef {_eg .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",_ffdd );
|
||
return nil ,_ebb .ErrTypeError ;};_dacbd :=_da .CharCode (_fdcfb );_ffdd =_aaaa .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");if _ffdd !=nil {_fcba .Resources =_ffdd ;};_ffdd =_aaaa .Get ("\u0043h\u0061\u0072\u0050\u0072\u006f\u0063s");if _ffdd ==nil {_eg .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",_ffdd );
|
||
return nil ,_ebb .ErrNotSupported ;};_fcba .CharProcs =_ffdd ;_ffdd =_aaaa .Get ("\u0046\u006f\u006e\u0074\u004d\u0061\u0074\u0072\u0069\u0078");if _ffdd ==nil {_eg .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",_ffdd );
|
||
return nil ,_ebb .ErrNotSupported ;};_fcba .FontMatrix =_ffdd ;_fcba ._aggbb =make (map[_da .CharCode ]float64 );_ffdd =_aaaa .Get ("\u0057\u0069\u0064\u0074\u0068\u0073");if _ffdd !=nil {_fcba .Widths =_ffdd ;_agad ,_cgfgc :=_ebb .GetArray (_ffdd );if !_cgfgc {_eg .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",_ffdd );
|
||
return nil ,_ebb .ErrTypeError ;};_badae ,_cgfce :=_agad .ToFloat64Array ();if _cgfce !=nil {_eg .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 ,_cgfce ;};if len (_badae )!=int (_dacbd -_aegf +1){_eg .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",_dacbd -_aegf +1,len (_badae ));
|
||
return nil ,_ebb .ErrRangeError ;};_ccac ,_cgfgc :=_ebb .GetArray (_fcba .FontMatrix );if !_cgfgc {_eg .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",_ccac );
|
||
return nil ,_cgfce ;};_feegb ,_cgfce :=_ccac .ToFloat64Array ();if _cgfce !=nil {_eg .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 ,_cgfce ;};_ebdbgg :=_fef .NewMatrix (_feegb [0],_feegb [1],_feegb [2],_feegb [3],_feegb [4],_feegb [5]);for _efdg ,_gfcec :=range _badae {_egccd ,_ :=_ebdbgg .Transform (_gfcec ,_gfcec );_fcba ._aggbb [_aegf +_da .CharCode (_efdg )]=_egccd ;
|
||
};};_fcba .Encoding =_ebb .TraceToDirectObject (_aaaa .Get ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067"));_cbcdg :=_aaaa .Get ("\u0054o\u0055\u006e\u0069\u0063\u006f\u0064e");if _cbcdg !=nil {_fcba ._baag =_ebb .TraceToDirectObject (_cbcdg );_ccdd ,_gbfeb :=_feef (_fcba ._baag ,&_fcba .fontCommon );
|
||
if _gbfeb !=nil {return nil ,_gbfeb ;};_fcba ._dcdd =_ccdd ;};if _gacg :=_fcba ._dcdd ;_gacg !=nil {_fcba ._abcba =_da .NewCMapEncoder ("",nil ,_gacg );}else {_fcba ._abcba =_da .NewPdfDocEncoder ();};return _fcba ,nil ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the outline tree node.
|
||
func (_ddfea *PdfOutlineTreeNode )ToPdfObject ()_ebb .PdfObject {return _ddfea .GetContext ().ToPdfObject ();};func _dddgd (_ffbb string )(map[_da .CharCode ]_da .GlyphName ,error ){_ccacb :=_ee .Split (_ffbb ,"\u000a");_agfa :=make (map[_da .CharCode ]_da .GlyphName );
|
||
for _ ,_ddfcd :=range _ccacb {_bedgg :=_bdddd .FindStringSubmatch (_ddfcd );if _bedgg ==nil {continue ;};_abace ,_eaegc :=_bedgg [1],_bedgg [2];_cgffce ,_ggede :=_aa .Atoi (_abace );if _ggede !=nil {_eg .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",_ddfcd );
|
||
return nil ,_ebb .ErrTypeError ;};_agfa [_da .CharCode (_cgffce )]=_da .GlyphName (_eaegc );};_eg .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",_agfa );
|
||
return _agfa ,nil ;};
|
||
|
||
// GetPreviousRevision returns the previous revision of PdfReader for the Pdf document
|
||
func (_dgga *PdfReader )GetPreviousRevision ()(*PdfReader ,error ){if _dgga ._cafdf .GetRevisionNumber ()==0{return nil ,_gf .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 _befbd ,_gdgfd :=_dgga ._cacfc [_dgga ];_gdgfd {return _befbd ,nil ;};_eggdb ,_bdaga :=_dgga ._cafdf .GetPreviousRevisionReadSeeker ();if _bdaga !=nil {return nil ,_bdaga ;};_bgfg ,_bdaga :=_dcbd (_eggdb ,_dgga ._edcbc ,_dgga ._abadec ,"\u006do\u0064\u0065\u006c\u003aG\u0065\u0074\u0050\u0072\u0065v\u0069o\u0075s\u0052\u0065\u0076\u0069\u0073\u0069\u006fn");
|
||
if _bdaga !=nil {return nil ,_bdaga ;};_dgga ._face [_dgga ._cafdf .GetRevisionNumber ()-1]=_bgfg ;_dgga ._cacfc [_dgga ]=_bgfg ;_bgfg ._cacfc =_dgga ._cacfc ;return _bgfg ,nil ;};func _bdec ()string {_ggfd :="\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 _abdaa _ca .Buffer ;for _dgdg :=0;_dgdg < 6;_dgdg ++{_abdaa .WriteRune (rune (_ggfd [_ff .Intn (len (_ggfd ))]));};return _abdaa .String ();};
|
||
|
||
// String returns a string that describes `base`.
|
||
func (_afcga fontCommon )String ()string {return _bg .Sprintf ("\u0046\u004f\u004e\u0054\u007b\u0025\u0073\u007d",_afcga .coreString ());};
|
||
|
||
// ToPdfObject converts the pdfCIDFontType0 to a PDF representation.
|
||
func (_gacfbd *pdfCIDFontType0 )ToPdfObject ()_ebb .PdfObject {return _ebb .MakeNull ()};func (_dgad *PdfReader )newPdfAnnotationMarkupFromDict (_edgf *_ebb .PdfObjectDictionary )(*PdfAnnotationMarkup ,error ){_cdae :=&PdfAnnotationMarkup {};if _ecg :=_edgf .Get ("\u0054");
|
||
_ecg !=nil {_cdae .T =_ecg ;};if _ggd :=_edgf .Get ("\u0050\u006f\u0070u\u0070");_ggd !=nil {_ccaa ,_bddd :=_ggd .(*_ebb .PdfIndirectObject );if !_bddd {if _ ,_ebag :=_ggd .(*_ebb .PdfObjectNull );!_ebag {return nil ,_gf .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 {_bde ,_ddga :=_dgad .newPdfAnnotationFromIndirectObject (_ccaa );if _ddga !=nil {return nil ,_ddga ;};if _bde !=nil {_dcb ,_gfca :=_bde ._efd .(*PdfAnnotationPopup );if !_gfca {return nil ,_gf .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");
|
||
};_cdae .Popup =_dcb ;};};};if _eede :=_edgf .Get ("\u0043\u0041");_eede !=nil {_cdae .CA =_eede ;};if _cga :=_edgf .Get ("\u0052\u0043");_cga !=nil {_cdae .RC =_cga ;};if _dbc :=_edgf .Get ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065");
|
||
_dbc !=nil {_cdae .CreationDate =_dbc ;};if _fec :=_edgf .Get ("\u0049\u0052\u0054");_fec !=nil {_cdae .IRT =_fec ;};if _dbagd :=_edgf .Get ("\u0053\u0075\u0062\u006a");_dbagd !=nil {_cdae .Subj =_dbagd ;};if _fccbf :=_edgf .Get ("\u0052\u0054");_fccbf !=nil {_cdae .RT =_fccbf ;
|
||
};if _cffa :=_edgf .Get ("\u0049\u0054");_cffa !=nil {_cdae .IT =_cffa ;};if _dcbg :=_edgf .Get ("\u0045\u0078\u0044\u0061\u0074\u0061");_dcbg !=nil {_cdae .ExData =_dcbg ;};return _cdae ,nil ;};func (_ffdge SignatureValidationResult )String ()string {var _cecdb _ca .Buffer ;
|
||
_cecdb .WriteString (_bg .Sprintf ("\u004ea\u006d\u0065\u003a\u0020\u0025\u0073\n",_ffdge .Name ));if _ffdge .Date ._dacdd > 0{_cecdb .WriteString (_bg .Sprintf ("\u0044a\u0074\u0065\u003a\u0020\u0025\u0073\n",_ffdge .Date .ToGoTime ().String ()));}else {_cecdb .WriteString ("\u0044\u0061\u0074\u0065 n\u006f\u0074\u0020\u0073\u0070\u0065\u0063\u0069\u0066\u0069\u0065\u0064\u000a");
|
||
};if len (_ffdge .Reason )> 0{_cecdb .WriteString (_bg .Sprintf ("R\u0065\u0061\u0073\u006f\u006e\u003a\u0020\u0025\u0073\u000a",_ffdge .Reason ));}else {_cecdb .WriteString ("N\u006f \u0072\u0065\u0061\u0073\u006f\u006e\u0020\u0073p\u0065\u0063\u0069\u0066ie\u0064\u000a");
|
||
};if len (_ffdge .Location )> 0{_cecdb .WriteString (_bg .Sprintf ("\u004c\u006f\u0063\u0061\u0074\u0069\u006f\u006e\u003a\u0020\u0025\u0073\u000a",_ffdge .Location ));}else {_cecdb .WriteString ("\u004c\u006f\u0063at\u0069\u006f\u006e\u0020\u006e\u006f\u0074\u0020\u0073\u0070\u0065\u0063\u0069\u0066\u0069\u0065\u0064\u000a");
|
||
};if len (_ffdge .ContactInfo )> 0{_cecdb .WriteString (_bg .Sprintf ("\u0043\u006f\u006e\u0074\u0061\u0063\u0074\u0020\u0049\u006e\u0066\u006f:\u0020\u0025\u0073\u000a",_ffdge .ContactInfo ));}else {_cecdb .WriteString ("C\u006f\u006e\u0074\u0061\u0063\u0074 \u0069\u006e\u0066\u006f\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063i\u0066i\u0065\u0064\u000a");
|
||
};_cecdb .WriteString (_bg .Sprintf ("F\u0069\u0065\u006c\u0064\u0073\u003a\u0020\u0025\u0064\u000a",len (_ffdge .Fields )));if _ffdge .IsSigned {_cecdb .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 {_cecdb .WriteString ("\u0053\u0069\u0067\u006eed\u003a\u0020\u004e\u006f\u0074\u0020\u0073\u0069\u0067\u006e\u0065\u0064\u000a");};if _ffdge .IsVerified {_cecdb .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 {_cecdb .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 _ffdge .IsTrusted {_cecdb .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 {_cecdb .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 !_ffdge .GeneralizedTime .IsZero (){_cecdb .WriteString (_bg .Sprintf ("G\u0065n\u0065\u0072\u0061\u006c\u0069\u007a\u0065\u0064T\u0069\u006d\u0065\u003a %\u0073\u000a",_ffdge .GeneralizedTime .String ()));
|
||
};if _ffdge .DiffResults !=nil {_cecdb .WriteString (_bg .Sprintf ("\u0064\u0069\u0066\u0066 i\u0073\u0020\u0070\u0065\u0072\u006d\u0069\u0074\u0074\u0065\u0064\u003a\u0020\u0025v\u000a",_ffdge .DiffResults .IsPermitted ()));if len (_ffdge .DiffResults .Warnings )> 0{_cecdb .WriteString ("\u004d\u0044\u0050\u0020\u0077\u0061\u0072\u006e\u0069n\u0067\u0073\u003a\u000a");
|
||
for _ ,_dgbfeb :=range _ffdge .DiffResults .Warnings {_cecdb .WriteString (_bg .Sprintf ("\u0009\u0025\u0073\u000a",_dgbfeb ));};};if len (_ffdge .DiffResults .Errors )> 0{_cecdb .WriteString ("\u004d\u0044\u0050 \u0065\u0072\u0072\u006f\u0072\u0073\u003a\u000a");
|
||
for _ ,_eeaac :=range _ffdge .DiffResults .Errors {_cecdb .WriteString (_bg .Sprintf ("\u0009\u0025\u0073\u000a",_eeaac ));};};};return _cecdb .String ();};
|
||
|
||
// ToPdfObject returns a stream object.
|
||
func (_bdbcd *XObjectForm )ToPdfObject ()_ebb .PdfObject {_bgecb :=_bdbcd ._gebcd ;_bcbcf :=_bgecb .PdfObjectDictionary ;if _bdbcd .Filter !=nil {_bcbcf =_bdbcd .Filter .MakeStreamDict ();_bgecb .PdfObjectDictionary =_bcbcf ;};_bcbcf .Set ("\u0054\u0079\u0070\u0065",_ebb .MakeName ("\u0058O\u0062\u006a\u0065\u0063\u0074"));
|
||
_bcbcf .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ebb .MakeName ("\u0046\u006f\u0072\u006d"));_bcbcf .SetIfNotNil ("\u0046\u006f\u0072\u006d\u0054\u0079\u0070\u0065",_bdbcd .FormType );_bcbcf .SetIfNotNil ("\u0042\u0042\u006f\u0078",_bdbcd .BBox );
|
||
_bcbcf .SetIfNotNil ("\u004d\u0061\u0074\u0072\u0069\u0078",_bdbcd .Matrix );if _bdbcd .Resources !=nil {_bcbcf .SetIfNotNil ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s",_bdbcd .Resources .ToPdfObject ());};_bcbcf .SetIfNotNil ("\u0047\u0072\u006fu\u0070",_bdbcd .Group );
|
||
_bcbcf .SetIfNotNil ("\u0052\u0065\u0066",_bdbcd .Ref );_bcbcf .SetIfNotNil ("\u004d\u0065\u0074\u0061\u0044\u0061\u0074\u0061",_bdbcd .MetaData );_bcbcf .SetIfNotNil ("\u0050i\u0065\u0063\u0065\u0049\u006e\u0066o",_bdbcd .PieceInfo );_bcbcf .SetIfNotNil ("\u004c\u0061\u0073t\u004d\u006f\u0064\u0069\u0066\u0069\u0065\u0064",_bdbcd .LastModified );
|
||
_bcbcf .SetIfNotNil ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074",_bdbcd .StructParent );_bcbcf .SetIfNotNil ("\u0053\u0074\u0072\u0075\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074\u0073",_bdbcd .StructParents );_bcbcf .SetIfNotNil ("\u004f\u0050\u0049",_bdbcd .OPI );
|
||
_bcbcf .SetIfNotNil ("\u004f\u0043",_bdbcd .OC );_bcbcf .SetIfNotNil ("\u004e\u0061\u006d\u0065",_bdbcd .Name );_bcbcf .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_ebb .MakeInteger (int64 (len (_bdbcd .Stream ))));_bgecb .Stream =_bdbcd .Stream ;return _bgecb ;
|
||
};func (_bdddf *LTV )getCerts (_eecfbg []*_g .Certificate )([][]byte ,error ){_debf :=make ([][]byte ,0,len (_eecfbg ));for _ ,_bcbg :=range _eecfbg {_debf =append (_debf ,_bcbg .Raw );};return _debf ,nil ;};
|
||
|
||
// PdfColor interface represents a generic color in PDF.
|
||
type PdfColor interface{};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_cadc *PdfActionNamed )ToPdfObject ()_ebb .PdfObject {_cadc .PdfAction .ToPdfObject ();_dbdc :=_cadc ._abe ;_fcg :=_dbdc .PdfObject .(*_ebb .PdfObjectDictionary );_fcg .SetIfNotNil ("\u0053",_ebb .MakeName (string (ActionTypeNamed )));_fcg .SetIfNotNil ("\u004e",_cadc .N );
|
||
return _dbdc ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the colorspace.
|
||
func (_affd *PdfColorspaceDeviceRGB )ToPdfObject ()_ebb .PdfObject {return _ebb .MakeName ("\u0044e\u0076\u0069\u0063\u0065\u0052\u0047B");};
|
||
|
||
// 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 (_gaegd byte )byte ;
|
||
|
||
// ToPdfObject returns the PDF representation of the function.
|
||
func (_afbcg *PdfFunctionType0 )ToPdfObject ()_ebb .PdfObject {if _afbcg ._afgcc ==nil {_afbcg ._afgcc =&_ebb .PdfObjectStream {};};_fcae :=_ebb .MakeDict ();_fcae .Set ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065",_ebb .MakeInteger (0));
|
||
_ebafa :=&_ebb .PdfObjectArray {};for _ ,_eedab :=range _afbcg .Domain {_ebafa .Append (_ebb .MakeFloat (_eedab ));};_fcae .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_ebafa );_fdfcb :=&_ebb .PdfObjectArray {};for _ ,_fdfab :=range _afbcg .Range {_fdfcb .Append (_ebb .MakeFloat (_fdfab ));
|
||
};_fcae .Set ("\u0052\u0061\u006eg\u0065",_fdfcb );_agde :=&_ebb .PdfObjectArray {};for _ ,_gegde :=range _afbcg .Size {_agde .Append (_ebb .MakeInteger (int64 (_gegde )));};_fcae .Set ("\u0053\u0069\u007a\u0065",_agde );_fcae .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0053\u0061\u006d\u0070\u006c\u0065",_ebb .MakeInteger (int64 (_afbcg .BitsPerSample )));
|
||
if _afbcg .Order !=1{_fcae .Set ("\u004f\u0072\u0064e\u0072",_ebb .MakeInteger (int64 (_afbcg .Order )));};_fcae .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_ebb .MakeInteger (int64 (len (_afbcg ._aeecg ))));_afbcg ._afgcc .Stream =_afbcg ._aeecg ;_afbcg ._afgcc .PdfObjectDictionary =_fcae ;
|
||
return _afbcg ._afgcc ;};
|
||
|
||
// SetImageHandler sets the image handler used by the package.
|
||
func SetImageHandler (imgHandling ImageHandler ){ImageHandling =imgHandling };
|
||
|
||
// B returns the value of the blue component of the color.
|
||
func (_eecge *PdfColorDeviceRGB )B ()float64 {return _eecge [2]};
|
||
|
||
// ImageToGray returns a new grayscale image based on the passed in RGB image.
|
||
func (_ddeb *PdfColorspaceDeviceRGB )ImageToGray (img Image )(Image ,error ){if img .ColorComponents !=3{return img ,_gf .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");
|
||
};_beeg ,_cdad :=_dg .NewImage (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),img .ColorComponents ,img .Data ,img ._dagcb ,img ._dgcea );if _cdad !=nil {return img ,_cdad ;};_bdaf ,_cdad :=_dg .GrayConverter .Convert (_beeg );if _cdad !=nil {return img ,_cdad ;
|
||
};return _afacb (_bdaf .Base ()),nil ;};
|
||
|
||
// SetLocation sets the `Location` field of the signature.
|
||
func (_ebbgadb *PdfSignature )SetLocation (location string ){_ebbgadb .Location =_ebb .MakeString (location );};
|
||
|
||
// GetNumComponents returns the number of color components (3 for CalRGB).
|
||
func (_cabd *PdfColorCalRGB )GetNumComponents ()int {return 3};
|
||
|
||
// 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{_afacea *_ebb .PdfObjectDictionary ;Type *_ebb .PdfObjectName ;TransformMethod *_ebb .PdfObjectName ;TransformParams _ebb .PdfObject ;Data _ebb .PdfObject ;DigestMethod *_ebb .PdfObjectName ;};const (RC4_128bit =EncryptionAlgorithm (iota );
|
||
AES_128bit ;AES_256bit ;);
|
||
|
||
// 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 ;};
|
||
|
||
// SetContext sets the sub annotation (context).
|
||
func (_cfcc *PdfAnnotation )SetContext (ctx PdfModel ){_cfcc ._efd =ctx };
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_abbd *PdfAnnotation3D )ToPdfObject ()_ebb .PdfObject {_abbd .PdfAnnotation .ToPdfObject ();_gfeb :=_abbd ._bdcd ;_afaa :=_gfeb .PdfObject .(*_ebb .PdfObjectDictionary );_afaa .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ebb .MakeName ("\u0033\u0044"));
|
||
_afaa .SetIfNotNil ("\u0033\u0044\u0044",_abbd .T3DD );_afaa .SetIfNotNil ("\u0033\u0044\u0056",_abbd .T3DV );_afaa .SetIfNotNil ("\u0033\u0044\u0041",_abbd .T3DA );_afaa .SetIfNotNil ("\u0033\u0044\u0049",_abbd .T3DI );_afaa .SetIfNotNil ("\u0033\u0044\u0042",_abbd .T3DB );
|
||
return _gfeb ;};
|
||
|
||
// SetContext sets the sub action (context).
|
||
func (_acc *PdfAction )SetContext (ctx PdfModel ){_acc ._ad =ctx };
|
||
|
||
// SetPdfCreationDate sets the CreationDate attribute of the output PDF.
|
||
func SetPdfCreationDate (creationDate _f .Time ){_daddc .Lock ();defer _daddc .Unlock ();_gecg =creationDate ;};
|
||
|
||
// AddFont adds a font dictionary to the Font resources.
|
||
func (_acbb *PdfPage )AddFont (name _ebb .PdfObjectName ,font _ebb .PdfObject )error {if _acbb .Resources ==nil {_acbb .Resources =NewPdfPageResources ();};if _acbb .Resources .Font ==nil {_acbb .Resources .Font =_ebb .MakeDict ();};_beef ,_deab :=_ebb .TraceToDirectObject (_acbb .Resources .Font ).(*_ebb .PdfObjectDictionary );
|
||
if !_deab {_eg .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",_ebb .TraceToDirectObject (_acbb .Resources .Font ));
|
||
return _gf .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_beef .Set (name ,font );return nil ;};
|
||
|
||
// ColorFromFloats returns a new PdfColor based on the input slice of color
|
||
// components. The slice should contain a single element.
|
||
func (_aefd *PdfColorspaceSpecialIndexed )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=1{return nil ,_gf .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};N :=_aefd .Base .GetNumComponents ();_ffbg :=int (vals [0])*N ;
|
||
if _ffbg < 0||(_ffbg +N -1)>=len (_aefd ._eabg ){_eg .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_ffbg );return nil ,ErrColorOutOfRange ;};_caeff :=_aefd ._eabg [_ffbg :_ffbg +N ];
|
||
var _aeab []float64 ;for _ ,_fede :=range _caeff {_aeab =append (_aeab ,float64 (_fede )/255.0);};_gbff ,_dfgf :=_aefd .Base .ColorFromFloats (_aeab );if _dfgf !=nil {return nil ,_dfgf ;};return _gbff ,nil ;};
|
||
|
||
// ColorFromFloats returns a new PdfColor based on the input slice of color
|
||
// components. The slice should contain three elements representing the
|
||
// L (range 0-100), A (range -100-100) and B (range -100-100) components of
|
||
// the color.
|
||
func (_cgffg *PdfColorspaceLab )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=3{return nil ,_gf .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_afae :=vals [0];if _afae < 0.0||_afae > 100.0{_eg .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",_afae );
|
||
return nil ,ErrColorOutOfRange ;};_cagea :=vals [1];_cfeb :=float64 (-100);_eafa :=float64 (100);if len (_cgffg .Range )> 1{_cfeb =_cgffg .Range [0];_eafa =_cgffg .Range [1];};if _cagea < _cfeb ||_cagea > _eafa {_eg .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",_cagea ,_cfeb ,_eafa );
|
||
return nil ,ErrColorOutOfRange ;};_edgd :=vals [2];_egbed :=float64 (-100);_ebgag :=float64 (100);if len (_cgffg .Range )> 3{_egbed =_cgffg .Range [2];_ebgag =_cgffg .Range [3];};if _edgd < _egbed ||_edgd > _ebgag {_eg .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",_edgd ,_egbed ,_ebgag );
|
||
return nil ,ErrColorOutOfRange ;};_cgfe :=NewPdfColorLab (_afae ,_cagea ,_edgd );return _cgfe ,nil ;};
|
||
|
||
// ColorToRGB converts gray -> rgb for a single color component.
|
||
func (_fgcd *PdfColorspaceDeviceGray )ColorToRGB (color PdfColor )(PdfColor ,error ){_bbga ,_acbe :=color .(*PdfColorDeviceGray );if !_acbe {_eg .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 ,_gf .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};return NewPdfColorDeviceRGB (float64 (*_bbga ),float64 (*_bbga ),float64 (*_bbga )),nil ;};
|
||
|
||
// ColorAt returns the color of the image pixel specified by the x and y coordinates.
|
||
func (_aaaff *Image )ColorAt (x ,y int )(_e .Color ,error ){_dbdce :=_dg .BytesPerLine (int (_aaaff .Width ),int (_aaaff .BitsPerComponent ),_aaaff .ColorComponents );switch _aaaff .ColorComponents {case 1:return _dg .ColorAtGrayscale (x ,y ,int (_aaaff .BitsPerComponent ),_dbdce ,_aaaff .Data ,_aaaff ._dgcea );
|
||
case 3:return _dg .ColorAtNRGBA (x ,y ,int (_aaaff .Width ),_dbdce ,int (_aaaff .BitsPerComponent ),_aaaff .Data ,_aaaff ._dagcb ,_aaaff ._dgcea );case 4:return _dg .ColorAtCMYK (x ,y ,int (_aaaff .Width ),_aaaff .Data ,_aaaff ._dgcea );};_eg .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",_aaaff .ColorComponents ,_aaaff .BitsPerComponent );
|
||
return nil ,_gf .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");};
|
||
|
||
// 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 *_ebb .PdfObjectInteger ;ColorSpace PdfColorspace ;Background *_ebb .PdfObjectArray ;BBox *PdfRectangle ;AntiAlias *_ebb .PdfObjectBool ;_edgag PdfModel ;_fbfae _ebb .PdfObject ;};
|
||
|
||
// 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 (_bdcc *Image )GetSamples ()[]uint32 {_bgcc :=_abg .ResampleBytes (_bdcc .Data ,int (_bdcc .BitsPerComponent ));if _bdcc .BitsPerComponent < 8{_bgcc =_bdcc .samplesTrimPadding (_bgcc );};_gdgaga :=int (_bdcc .Width )*int (_bdcc .Height )*_bdcc .ColorComponents ;
|
||
if len (_bgcc )< _gdgaga {_eg .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 (_bgcc ),_gdgaga );
|
||
return _bgcc ;}else if len (_bgcc )> _gdgaga {_eg .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 (_bgcc ),_gdgaga );
|
||
_bgcc =_bgcc [:_gdgaga ];};return _bgcc ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_aed *PdfActionGoTo )ToPdfObject ()_ebb .PdfObject {_aed .PdfAction .ToPdfObject ();_be :=_aed ._abe ;_faa :=_be .PdfObject .(*_ebb .PdfObjectDictionary );_faa .SetIfNotNil ("\u0053",_ebb .MakeName (string (ActionTypeGoTo )));_faa .SetIfNotNil ("\u0044",_aed .D );
|
||
return _be ;};
|
||
|
||
// SetAlpha sets the alpha layer for the image.
|
||
func (_ddfde *Image )SetAlpha (alpha []byte ){_ddfde ._dagcb =alpha };
|
||
|
||
// B returns the value of the B component of the color.
|
||
func (_ffead *PdfColorLab )B ()float64 {return _ffead [2]};
|
||
|
||
// NewPdfColorspaceDeviceCMYK returns a new CMYK32 colorspace object.
|
||
func NewPdfColorspaceDeviceCMYK ()*PdfColorspaceDeviceCMYK {return &PdfColorspaceDeviceCMYK {}};func (_fdcd *PdfColorspaceSpecialPattern )String ()string {return "\u0050a\u0074\u0074\u0065\u0072\u006e";};
|
||
|
||
// GetCapHeight returns the CapHeight of the font `descriptor`.
|
||
func (_fgggd *PdfFontDescriptor )GetCapHeight ()(float64 ,error ){return _ebb .GetNumberAsFloat (_fgggd .CapHeight );};
|
||
|
||
// GetNumComponents returns the number of color components.
|
||
func (_cecf *PdfColorspaceICCBased )GetNumComponents ()int {return _cecf .N };func (_ge *PdfReader )newPdfActionGotoFromDict (_cef *_ebb .PdfObjectDictionary )(*PdfActionGoTo ,error ){return &PdfActionGoTo {D :_cef .Get ("\u0044")},nil ;};
|
||
|
||
// PdfWriter handles outputing PDF content.
|
||
type PdfWriter struct{_gegba *_ebb .PdfIndirectObject ;_dggbf *_ebb .PdfIndirectObject ;_afbdd map[_ebb .PdfObject ]struct{};_ebdgg []_ebb .PdfObject ;_ffffd map[_ebb .PdfObject ]struct{};_addge []*_ebb .PdfIndirectObject ;_bcbee *PdfOutlineTreeNode ;_dffegd *_ebb .PdfObjectDictionary ;
|
||
_cgced []_ebb .PdfObject ;_eadfd *_ebb .PdfIndirectObject ;_cbabb *_ba .Writer ;_afedd int64 ;_bgef error ;_cgfde *_ebb .PdfCrypt ;_gaccf *_ebb .PdfObjectDictionary ;_cbcaa *_ebb .PdfIndirectObject ;_eecfe *_ebb .PdfObjectArray ;_efcge _ebb .Version ;_adeff *bool ;
|
||
_eefeb map[_ebb .PdfObject ][]*_ebb .PdfObjectDictionary ;_dbea *PdfAcroForm ;_aadcd Optimizer ;_cafac StandardApplier ;_bedfc map[int ]crossReference ;_fgdce int64 ;ObjNumOffset int ;_abffb bool ;_efdega _ebb .XrefTable ;_bcage int64 ;_ggbfg int64 ;_cdgd map[_ebb .PdfObject ]int64 ;
|
||
_dcfg map[_ebb .PdfObject ]struct{};_cfecg string ;_geced []*PdfOutputIntent ;_abgcg bool ;_gfdea ,_gffb string ;};var _ pdfFont =(*pdfFontType3 )(nil );func (_gegbc *PdfWriter )adjustXRefAffectedVersion (_dfcad bool ){if _dfcad &&_gegbc ._efcge .Major ==1&&_gegbc ._efcge .Minor < 5{_gegbc ._efcge .Minor =5;
|
||
};};func (_gaf *PdfAnnotationMarkup )appendToPdfDictionary (_bbed *_ebb .PdfObjectDictionary ){_bbed .SetIfNotNil ("\u0054",_gaf .T );if _gaf .Popup !=nil {_bbed .Set ("\u0050\u006f\u0070u\u0070",_gaf .Popup .ToPdfObject ());};_bbed .SetIfNotNil ("\u0043\u0041",_gaf .CA );
|
||
_bbed .SetIfNotNil ("\u0052\u0043",_gaf .RC );_bbed .SetIfNotNil ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065",_gaf .CreationDate );_bbed .SetIfNotNil ("\u0049\u0052\u0054",_gaf .IRT );_bbed .SetIfNotNil ("\u0053\u0075\u0062\u006a",_gaf .Subj );
|
||
_bbed .SetIfNotNil ("\u0052\u0054",_gaf .RT );_bbed .SetIfNotNil ("\u0049\u0054",_gaf .IT );_bbed .SetIfNotNil ("\u0045\u0078\u0044\u0061\u0074\u0061",_gaf .ExData );};
|
||
|
||
// 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 ;_dagcb []byte ;_dgcea []float64 ;};
|
||
|
||
// NewPdfColorspaceSpecialSeparation returns a new separation color.
|
||
func NewPdfColorspaceSpecialSeparation ()*PdfColorspaceSpecialSeparation {_bcfa :=&PdfColorspaceSpecialSeparation {};return _bcfa ;};
|
||
|
||
// PdfAnnotationSquare represents Square annotations.
|
||
// (Section 12.5.6.8).
|
||
type PdfAnnotationSquare struct{*PdfAnnotation ;*PdfAnnotationMarkup ;BS _ebb .PdfObject ;IC _ebb .PdfObject ;BE _ebb .PdfObject ;RD _ebb .PdfObject ;};
|
||
|
||
// 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 *_cg .CertClient ;
|
||
|
||
// OCSPClient is the client used to retrieve OCSP validation information.
|
||
OCSPClient *_cg .OCSPClient ;
|
||
|
||
// CRLClient is the client used to retrieve CRL validation information.
|
||
CRLClient *_cg .CRLClient ;
|
||
|
||
// SkipExisting specifies whether existing signature validations
|
||
// should be skipped.
|
||
SkipExisting bool ;_ggdbg *PdfAppender ;_dfdgf *DSS ;};const (_ PdfOutputIntentType =iota ;PdfOutputIntentTypeA1 ;PdfOutputIntentTypeA2 ;PdfOutputIntentTypeA3 ;PdfOutputIntentTypeA4 ;PdfOutputIntentTypeX ;);
|
||
|
||
// IsRadio returns true if the button field represents a radio button, false otherwise.
|
||
func (_eedg *PdfFieldButton )IsRadio ()bool {return _eedg .GetType ()==ButtonTypeRadio };
|
||
|
||
// 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 (_dabaf *PdfSignature ,_gaaef Hasher ,_fgcfd SignatureHandlerDocMDPParams )(SignatureValidationResult ,error );};
|
||
|
||
// Add appends an outline item as a child of the current outline item.
|
||
func (_cacg *OutlineItem )Add (item *OutlineItem ){_cacg .Entries =append (_cacg .Entries ,item )};
|
||
|
||
// L returns the value of the L component of the color.
|
||
func (_fgggb *PdfColorLab )L ()float64 {return _fgggb [0]};func (_bcgc *PdfReader )newPdfPageFromDict (_fbdca *_ebb .PdfObjectDictionary )(*PdfPage ,error ){_ggbac :=NewPdfPage ();_ggbac ._cdbfde =_fbdca ;_dbbf :=*_fbdca ;_gdeg ,_beaba :=_dbbf .Get ("\u0054\u0079\u0070\u0065").(*_ebb .PdfObjectName );
|
||
if !_beaba {return nil ,_gf .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 *_gdeg !="\u0050\u0061\u0067\u0065"{return nil ,_gf .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 _cfea :=_dbbf .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");_cfea !=nil {_ggbac .Parent =_cfea ;};if _ceae :=_dbbf .Get ("\u004c\u0061\u0073t\u004d\u006f\u0064\u0069\u0066\u0069\u0065\u0064");_ceae !=nil {_cbeg ,_gadff :=_ebb .GetString (_ceae );if !_gadff {return nil ,_gf .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");
|
||
};_fgbee ,_fgcg :=NewPdfDate (_cbeg .Str ());if _fgcg !=nil {return nil ,_fgcg ;};_ggbac .LastModified =&_fgbee ;};if _gdabd :=_dbbf .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");_gdabd !=nil &&!_ebb .IsNullObject (_gdabd ){_bgbec ,_fdcgg :=_ebb .GetDict (_gdabd );
|
||
if !_fdcgg {return nil ,_bg .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",_gdabd );};var _bfcab error ;_ggbac .Resources ,_bfcab =NewPdfPageResourcesFromDict (_bgbec );
|
||
if _bfcab !=nil {return nil ,_bfcab ;};}else {_agcbb ,_aaafe :=_ggbac .getParentResources ();if _aaafe !=nil {return nil ,_aaafe ;};if _agcbb ==nil {_agcbb =NewPdfPageResources ();};_ggbac .Resources =_agcbb ;};if _ebbc :=_dbbf .Get ("\u004d\u0065\u0064\u0069\u0061\u0042\u006f\u0078");
|
||
_ebbc !=nil {_gdbbe ,_bgccb :=_ebb .GetArray (_ebbc );if !_bgccb {return nil ,_gf .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 _edfge error ;
|
||
_ggbac .MediaBox ,_edfge =NewPdfRectangle (*_gdbbe );if _edfge !=nil {return nil ,_edfge ;};};if _fcfeac :=_dbbf .Get ("\u0043r\u006f\u0070\u0042\u006f\u0078");_fcfeac !=nil {_fbadb ,_gced :=_ebb .GetArray (_fcfeac );if !_gced {return nil ,_gf .New ("\u0070a\u0067\u0065\u0020\u0043r\u006f\u0070\u0042\u006f\u0078 \u006eo\u0074 \u0061\u006e\u0020\u0061\u0072\u0072\u0061y");
|
||
};var _gcgaf error ;_ggbac .CropBox ,_gcgaf =NewPdfRectangle (*_fbadb );if _gcgaf !=nil {return nil ,_gcgaf ;};};if _dddbb :=_dbbf .Get ("\u0042\u006c\u0065\u0065\u0064\u0042\u006f\u0078");_dddbb !=nil {_fedefa ,_dadee :=_ebb .GetArray (_dddbb );if !_dadee {return nil ,_gf .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 _ecadc error ;_ggbac .BleedBox ,_ecadc =NewPdfRectangle (*_fedefa );if _ecadc !=nil {return nil ,_ecadc ;};};if _cebb :=_dbbf .Get ("\u0054r\u0069\u006d\u0042\u006f\u0078");_cebb !=nil {_dgdea ,_dgbb :=_ebb .GetArray (_cebb );if !_dgbb {return nil ,_gf .New ("\u0070a\u0067\u0065\u0020\u0054r\u0069\u006d\u0042\u006f\u0078 \u006eo\u0074 \u0061\u006e\u0020\u0061\u0072\u0072\u0061y");
|
||
};var _fabb error ;_ggbac .TrimBox ,_fabb =NewPdfRectangle (*_dgdea );if _fabb !=nil {return nil ,_fabb ;};};if _aaagg :=_dbbf .Get ("\u0041\u0072\u0074\u0042\u006f\u0078");_aaagg !=nil {_afdfe ,_cgabb :=_ebb .GetArray (_aaagg );if !_cgabb {return nil ,_gf .New ("\u0070a\u0067\u0065\u0020\u0041\u0072\u0074\u0042\u006f\u0078\u0020\u006eo\u0074\u0020\u0061\u006e\u0020\u0061\u0072\u0072\u0061\u0079");
|
||
};var _fbgef error ;_ggbac .ArtBox ,_fbgef =NewPdfRectangle (*_afdfe );if _fbgef !=nil {return nil ,_fbgef ;};};if _dggcd :=_dbbf .Get ("\u0042\u006f\u0078C\u006f\u006c\u006f\u0072\u0049\u006e\u0066\u006f");_dggcd !=nil {_ggbac .BoxColorInfo =_dggcd ;};
|
||
if _edaf :=_dbbf .Get ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073");_edaf !=nil {_ggbac .Contents =_edaf ;};if _dbffag :=_dbbf .Get ("\u0052\u006f\u0074\u0061\u0074\u0065");_dbffag !=nil {_cgace ,_bggfd :=_ebb .GetNumberAsInt64 (_dbffag );if _bggfd !=nil {return nil ,_gf .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");
|
||
};_ggbac .Rotate =&_cgace ;};if _gfdfb :=_dbbf .Get ("\u0047\u0072\u006fu\u0070");_gfdfb !=nil {_ggbac .Group =_gfdfb ;};if _baafd :=_dbbf .Get ("\u0054\u0068\u0075m\u0062");_baafd !=nil {_ggbac .Thumb =_baafd ;};if _afbf :=_dbbf .Get ("\u0042");_afbf !=nil {_ggbac .B =_afbf ;
|
||
};if _befeg :=_dbbf .Get ("\u0044\u0075\u0072");_befeg !=nil {_ggbac .Dur =_befeg ;};if _dfgcbb :=_dbbf .Get ("\u0054\u0072\u0061n\u0073");_dfgcbb !=nil {_ggbac .Trans =_dfgcbb ;};if _cceee :=_dbbf .Get ("\u0041\u0041");_cceee !=nil {_ggbac .AA =_cceee ;
|
||
};if _cgabd :=_dbbf .Get ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");_cgabd !=nil {_ggbac .Metadata =_cgabd ;};if _ddgaa :=_dbbf .Get ("\u0050i\u0065\u0063\u0065\u0049\u006e\u0066o");_ddgaa !=nil {_ggbac .PieceInfo =_ddgaa ;};if _fgcgg :=_dbbf .Get ("\u0053\u0074\u0072\u0075\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074\u0073");
|
||
_fgcgg !=nil {_ggbac .StructParents =_fgcgg ;};if _bfebc :=_dbbf .Get ("\u0049\u0044");_bfebc !=nil {_ggbac .ID =_bfebc ;};if _ddaba :=_dbbf .Get ("\u0050\u005a");_ddaba !=nil {_ggbac .PZ =_ddaba ;};if _eecag :=_dbbf .Get ("\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006fn\u0049\u006e\u0066\u006f");
|
||
_eecag !=nil {_ggbac .SeparationInfo =_eecag ;};if _acab :=_dbbf .Get ("\u0054\u0061\u0062\u0073");_acab !=nil {_ggbac .Tabs =_acab ;};if _bcbbfa :=_dbbf .Get ("T\u0065m\u0070\u006c\u0061\u0074\u0065\u0049\u006e\u0073t\u0061\u006e\u0074\u0069at\u0065\u0064");
|
||
_bcbbfa !=nil {_ggbac .TemplateInstantiated =_bcbbfa ;};if _aeagf :=_dbbf .Get ("\u0050r\u0065\u0073\u0053\u0074\u0065\u0070s");_aeagf !=nil {_ggbac .PresSteps =_aeagf ;};if _fbdf :=_dbbf .Get ("\u0055\u0073\u0065\u0072\u0055\u006e\u0069\u0074");_fbdf !=nil {_ggbac .UserUnit =_fbdf ;
|
||
};if _gbbac :=_dbbf .Get ("\u0056\u0050");_gbbac !=nil {_ggbac .VP =_gbbac ;};if _bfcaa :=_dbbf .Get ("\u0041\u006e\u006e\u006f\u0074\u0073");_bfcaa !=nil {_ggbac .Annots =_bfcaa ;};_ggbac ._ddab =_bcgc ;return _ggbac ,nil ;};
|
||
|
||
// String returns a human readable description of `fontfile`.
|
||
func (_bfgbe *fontFile )String ()string {_dafgc :="\u005b\u004e\u006f\u006e\u0065\u005d";if _bfgbe ._gega !=nil {_dafgc =_bfgbe ._gega .String ();};return _bg .Sprintf ("\u0046O\u004e\u0054\u0046\u0049\u004c\u0045\u007b\u0025\u0023\u0071\u0020e\u006e\u0063\u006f\u0064\u0065\u0072\u003d\u0025\u0073\u007d",_bfgbe ._bgbcg ,_dafgc );
|
||
};
|
||
|
||
// GetRuneMetrics returns the character metrics for the specified rune.
|
||
// A bool flag is returned to indicate whether or not the entry was found.
|
||
func (_bgce pdfCIDFontType0 )GetRuneMetrics (r rune )(_bad .CharMetrics ,bool ){return _bad .CharMetrics {Wx :_bgce ._gbdb },true ;};func _gebgc (_dacfb string )map[string ]string {_ebbeg :=_dbagf .Split (_dacfb ,-1);_ffge :=map[string ]string {};for _ ,_gadf :=range _ebbeg {_bfbee :=_afgea .FindStringSubmatch (_gadf );
|
||
if _bfbee ==nil {continue ;};_eaagc ,_geggg :=_bfbee [1],_bfbee [2];_ffge [_eaagc ]=_geggg ;};return _ffge ;};
|
||
|
||
// ImageToRGB convert an indexed image to RGB.
|
||
func (_acddf *PdfColorspaceSpecialIndexed )ImageToRGB (img Image )(Image ,error ){N :=_acddf .Base .GetNumComponents ();if N < 1{return Image {},_bg .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 );
|
||
};_caab :=_dg .NewImageBase (int (img .Width ),int (img .Height ),8,N ,nil ,img ._dagcb ,img ._dgcea );_dggb :=_abg .NewReader (img .getBase ());_efee :=_abg .NewWriter (_caab );var (_ceac uint32 ;_caedd int ;_fabae error ;);for {_ceac ,_fabae =_dggb .ReadSample ();
|
||
if _fabae ==_ab .EOF {break ;}else if _fabae !=nil {return img ,_fabae ;};_caedd =int (_ceac );_eg .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",_caedd ,N ,len (_acddf ._eabg ));
|
||
if (_caedd +1)*N > len (_acddf ._eabg ){_caedd =len (_acddf ._eabg )/N -1;_eg .Log .Trace ("C\u006c\u0069\u0070\u0070in\u0067 \u0074\u006f\u0020\u0069\u006ed\u0065\u0078\u003a\u0020\u0025\u0064",_caedd );if _caedd < 0{_eg .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 _ffdb :=_caedd *N ;_ffdb < (_caedd +1)*N ;_ffdb ++{if _fabae =_efee .WriteSample (uint32 (_acddf ._eabg [_ffdb ]));_fabae !=nil {return img ,_fabae ;};};};return _acddf .Base .ImageToRGB (_afacb (&_caab ));};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_fdfd *PdfAnnotationPopup )ToPdfObject ()_ebb .PdfObject {_fdfd .PdfAnnotation .ToPdfObject ();_adagb :=_fdfd ._bdcd ;_aedf :=_adagb .PdfObject .(*_ebb .PdfObjectDictionary );_aedf .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ebb .MakeName ("\u0050\u006f\u0070u\u0070"));
|
||
_aedf .SetIfNotNil ("\u0050\u0061\u0072\u0065\u006e\u0074",_fdfd .Parent );_aedf .SetIfNotNil ("\u004f\u0070\u0065\u006e",_fdfd .Open );return _adagb ;};
|
||
|
||
// GetContentStream returns the pattern cell's content stream
|
||
func (_dcccb *PdfTilingPattern )GetContentStream ()([]byte ,error ){_bbfcg ,_ ,_fbfgd :=_dcccb .GetContentStreamWithEncoder ();return _bbfcg ,_fbfgd ;};
|
||
|
||
// 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 (_afff *PdfReader )FlattenFieldsWithOpts (appgen FieldAppearanceGenerator ,opts *FieldFlattenOpts )error {return _afff .flattenFieldsWithOpts (false ,appgen ,opts );};
|
||
|
||
// StdFontName represents name of a standard font.
|
||
type StdFontName =_bad .StdFontName ;
|
||
|
||
// PdfAnnotationMovie represents Movie annotations.
|
||
// (Section 12.5.6.17).
|
||
type PdfAnnotationMovie struct{*PdfAnnotation ;T _ebb .PdfObject ;Movie _ebb .PdfObject ;A _ebb .PdfObject ;};func (_fgea *PdfColorspaceDeviceGray )String ()string {return "\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079";};
|
||
|
||
// NewGrayImageFromGoImage creates a new grayscale unidoc Image from a golang Image.
|
||
func (_fdbaa DefaultImageHandler )NewGrayImageFromGoImage (goimg _gdc .Image )(*Image ,error ){_agfcb :=goimg .Bounds ();_eacag :=&Image {Width :int64 (_agfcb .Dx ()),Height :int64 (_agfcb .Dy ()),ColorComponents :1,BitsPerComponent :8};switch _ffddc :=goimg .(type ){case *_gdc .Gray :if len (_ffddc .Pix )!=_agfcb .Dx ()*_agfcb .Dy (){_cgdcb ,_ecec :=_dg .GrayConverter .Convert (goimg );
|
||
if _ecec !=nil {return nil ,_ecec ;};_eacag .Data =_cgdcb .Pix ();}else {_eacag .Data =_ffddc .Pix ;};case *_gdc .Gray16 :_eacag .BitsPerComponent =16;if len (_ffddc .Pix )!=_agfcb .Dx ()*_agfcb .Dy ()*2{_faea ,_eadg :=_dg .Gray16Converter .Convert (goimg );
|
||
if _eadg !=nil {return nil ,_eadg ;};_eacag .Data =_faea .Pix ();}else {_eacag .Data =_ffddc .Pix ;};case _dg .Image :_dggbb :=_ffddc .Base ();if _dggbb .ColorComponents ==1{_eacag .BitsPerComponent =int64 (_dggbb .BitsPerComponent );_eacag .Data =_dggbb .Data ;
|
||
return _eacag ,nil ;};_fdaba ,_facg :=_dg .GrayConverter .Convert (goimg );if _facg !=nil {return nil ,_facg ;};_eacag .Data =_fdaba .Pix ();default:_adbg ,_cdbeg :=_dg .GrayConverter .Convert (goimg );if _cdbeg !=nil {return nil ,_cdbeg ;};_eacag .Data =_adbg .Pix ();
|
||
};return _eacag ,nil ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_bdad *PdfActionHide )ToPdfObject ()_ebb .PdfObject {_bdad .PdfAction .ToPdfObject ();_dde :=_bdad ._abe ;_fge :=_dde .PdfObject .(*_ebb .PdfObjectDictionary );_fge .SetIfNotNil ("\u0053",_ebb .MakeName (string (ActionTypeHide )));_fge .SetIfNotNil ("\u0054",_bdad .T );
|
||
_fge .SetIfNotNil ("\u0048",_bdad .H );return _dde ;};
|
||
|
||
// GetRevision returns the specific version of the PdfReader for the current Pdf document
|
||
func (_fdgeg *PdfReader )GetRevision (revisionNumber int )(*PdfReader ,error ){_gfdcb :=_fdgeg ._cafdf .GetRevisionNumber ();if revisionNumber < 0||revisionNumber > _gfdcb {return nil ,_gf .New ("w\u0072\u006f\u006e\u0067 r\u0065v\u0069\u0073\u0069\u006f\u006e \u006e\u0075\u006d\u0062\u0065\u0072");
|
||
};if revisionNumber ==_gfdcb {return _fdgeg ,nil ;};if _fdgeg ._face [revisionNumber ]!=nil {return _fdgeg ._face [revisionNumber ],nil ;};_bfeee :=_fdgeg ;for _beccd :=_gfdcb -1;_beccd >=revisionNumber ;_beccd --{_eddae ,_ceba :=_bfeee .GetPreviousRevision ();
|
||
if _ceba !=nil {return nil ,_ceba ;};_fdgeg ._face [_beccd ]=_eddae ;_bfeee =_eddae ;};return _bfeee ,nil ;};
|
||
|
||
// DecodeArray returns the range of color component values in CalGray colorspace.
|
||
func (_gdd *PdfColorspaceCalGray )DecodeArray ()[]float64 {return []float64 {0.0,1.0}};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_fbbe *PdfAnnotationFileAttachment )ToPdfObject ()_ebb .PdfObject {_fbbe .PdfAnnotation .ToPdfObject ();_bbfg :=_fbbe ._bdcd ;_cdda :=_bbfg .PdfObject .(*_ebb .PdfObjectDictionary );_fbbe .PdfAnnotationMarkup .appendToPdfDictionary (_cdda );_cdda .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ebb .MakeName ("\u0046\u0069\u006c\u0065\u0041\u0074\u0074\u0061\u0063h\u006d\u0065\u006e\u0074"));
|
||
_cdda .SetIfNotNil ("\u0046\u0053",_fbbe .FS );_cdda .SetIfNotNil ("\u004e\u0061\u006d\u0065",_fbbe .Name );return _bbfg ;};
|
||
|
||
// SetColorSpace sets `r` colorspace object to `colorspace`.
|
||
func (_dbgf *PdfPageResources )SetColorSpace (colorspace *PdfPageResourcesColorspaces ){_dbgf ._aaee =colorspace ;};func (_gabc *PdfReader )newPdfAnnotationMovieFromDict (_ffgb *_ebb .PdfObjectDictionary )(*PdfAnnotationMovie ,error ){_fdab :=PdfAnnotationMovie {};
|
||
_fdab .T =_ffgb .Get ("\u0054");_fdab .Movie =_ffgb .Get ("\u004d\u006f\u0076i\u0065");_fdab .A =_ffgb .Get ("\u0041");return &_fdab ,nil ;};
|
||
|
||
// NewPdfReaderFromFile creates a new PdfReader from the speficied PDF file.
|
||
// If ReaderOpts is nil it will be set to default value from NewReaderOpts.
|
||
func NewPdfReaderFromFile (pdfFile string ,opts *ReaderOpts )(*PdfReader ,*_ed .File ,error ){const _acffb ="\u006d\u006f\u0064\u0065\u006c\u003a\u004e\u0065\u0077\u0050\u0064f\u0052\u0065\u0061\u0064\u0065\u0072\u0046\u0072\u006f\u006dF\u0069\u006c\u0065";
|
||
_gggba ,_cdead :=_ed .Open (pdfFile );if _cdead !=nil {return nil ,nil ,_cdead ;};_gffff ,_cdead :=_dcbd (_gggba ,opts ,true ,_acffb );if _cdead !=nil {_gggba .Close ();return nil ,nil ,_cdead ;};return _gffff ,_gggba ,nil ;};func (_dfeg *fontFile )parseASCIIPart (_febd []byte )error {if len (_febd )< 2||string (_febd [:2])!="\u0025\u0021"{return _gf .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");
|
||
};_ffcef ,_daeeb ,_addbbd :=_gefgb (_febd );if _addbbd !=nil {return _addbbd ;};_abag :=_gebgc (_ffcef );_dfeg ._bgbcg =_abag ["\u0046\u006f\u006e\u0074\u004e\u0061\u006d\u0065"];if _dfeg ._bgbcg ==""{_eg .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 _daeeb !=""{_edaef ,_fddbe :=_dddgd (_daeeb );if _fddbe !=nil {return _fddbe ;};_egfef ,_fddbe :=_da .NewCustomSimpleTextEncoder (_edaef ,nil );if _fddbe !=nil {_eg .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",_fddbe );
|
||
return nil ;};_dfeg ._gega =_egfef ;};return nil ;};
|
||
|
||
// 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 ;_aeecg []byte ;_egdg []uint32 ;_afgcc *_ebb .PdfObjectStream ;};
|
||
|
||
// SetPdfKeywords sets the Keywords attribute of the output PDF.
|
||
func SetPdfKeywords (keywords string ){_daddc .Lock ();defer _daddc .Unlock ();_fceef =keywords };type pdfFontType0 struct{fontCommon ;_dfffc *_ebb .PdfIndirectObject ;_bfdgc _da .TextEncoder ;Encoding _ebb .PdfObject ;DescendantFont *PdfFont ;_efeb *_ebe .CMap ;
|
||
};func (_bcfdg *PdfAppender )addNewObject (_eaba _ebb .PdfObject ){if _ ,_ebgeb :=_bcfdg ._ddfg [_eaba ];!_ebgeb {_bcfdg ._bfeg =append (_bcfdg ._bfeg ,_eaba );_bcfdg ._ddfg [_eaba ]=struct{}{};};};
|
||
|
||
// GetContainingPdfObject returns the container of the DSS (indirect object).
|
||
func (_egfd *DSS )GetContainingPdfObject ()_ebb .PdfObject {return _egfd ._fcgb };
|
||
|
||
// ColorToRGB converts an Indexed color to an RGB color.
|
||
func (_dgfe *PdfColorspaceSpecialIndexed )ColorToRGB (color PdfColor )(PdfColor ,error ){if _dgfe .Base ==nil {return nil ,_gf .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 _dgfe .Base .ColorToRGB (color );};func (_addcb *PdfReader )loadStructure ()error {if _addcb ._cafdf .GetCrypter ()!=nil &&!_addcb ._cafdf .IsAuthenticated (){return _bg .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");
|
||
};_dcafa :=_addcb ._cafdf .GetTrailer ();if _dcafa ==nil {return _bg .Errorf ("\u006di\u0073s\u0069\u006e\u0067\u0020\u0074\u0072\u0061\u0069\u006c\u0065\u0072");};_ggacb ,_aede :=_dcafa .Get ("\u0052\u006f\u006f\u0074").(*_ebb .PdfObjectReference );if !_aede {return _bg .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",_dcafa );
|
||
};_bebeb ,_fdbgb :=_addcb ._cafdf .LookupByReference (*_ggacb );if _fdbgb !=nil {_eg .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",_fdbgb );
|
||
return _fdbgb ;};_eddde ,_aede :=_bebeb .(*_ebb .PdfIndirectObject );if !_aede {_eg .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",_bebeb ,*_dcafa );
|
||
return _gf .New ("\u006di\u0073s\u0069\u006e\u0067\u0020\u0063\u0061\u0074\u0061\u006c\u006f\u0067");};_edcbb ,_aede :=(*_eddde ).PdfObject .(*_ebb .PdfObjectDictionary );if !_aede {_eg .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",_eddde .PdfObject );
|
||
return _gf .New ("\u0069n\u0076a\u006c\u0069\u0064\u0020\u0063\u0061\u0074\u0061\u006c\u006f\u0067");};_eg .Log .Trace ("C\u0061\u0074\u0061\u006c\u006f\u0067\u003a\u0020\u0025\u0073",_edcbb );_dgged ,_aede :=_edcbb .Get ("\u0050\u0061\u0067e\u0073").(*_ebb .PdfObjectReference );
|
||
if !_aede {return _gf .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");};_gcbce ,_fdbgb :=_addcb ._cafdf .LookupByReference (*_dgged );
|
||
if _fdbgb !=nil {_eg .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 _fdbgb ;};_cadaf ,_aede :=_gcbce .(*_ebb .PdfIndirectObject );if !_aede {_eg .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");
|
||
_eg .Log .Debug ("\u006f\u0070\u003a\u0020\u0025\u0070",_cadaf );return _gf .New ("p\u0061g\u0065\u0073\u0020\u006f\u0062\u006a\u0065\u0063t\u0020\u0069\u006e\u0076al\u0069\u0064");};_bgcfb ,_aede :=_cadaf .PdfObject .(*_ebb .PdfObjectDictionary );if !_aede {_eg .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",_cadaf );
|
||
return _gf .New ("p\u0061g\u0065\u0073\u0020\u006f\u0062\u006a\u0065\u0063t\u0020\u0069\u006e\u0076al\u0069\u0064");};_agcef ,_aede :=_ebb .GetInt (_bgcfb .Get ("\u0043\u006f\u0075n\u0074"));if !_aede {_eg .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 _gf .New ("\u0070\u0061\u0067\u0065s \u0063\u006f\u0075\u006e\u0074\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064");};if _ ,_aede =_ebb .GetName (_bgcfb .Get ("\u0054\u0079\u0070\u0065"));!_aede {_eg .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");
|
||
_bgcfb .Set ("\u0054\u0079\u0070\u0065",_ebb .MakeName ("\u0050\u0061\u0067e\u0073"));};if _afgac ,_ebaega :=_ebb .GetInt (_bgcfb .Get ("\u0052\u006f\u0074\u0061\u0074\u0065"));_ebaega {_fcdage :=int64 (*_afgac );_addcb .Rotate =&_fcdage ;};_addcb ._agbbe =_ggacb ;
|
||
_addcb ._fdgda =_edcbb ;_addcb ._egea =_bgcfb ;_addcb ._eedbb =_cadaf ;_addcb ._aadcb =int (*_agcef );_addcb ._faebb =[]*_ebb .PdfIndirectObject {};_ccabe :=map[_ebb .PdfObject ]struct{}{};_fdbgb =_addcb .buildPageList (_cadaf ,nil ,_ccabe );if _fdbgb !=nil {return _fdbgb ;
|
||
};_eg .Log .Trace ("\u002d\u002d\u002d");_eg .Log .Trace ("\u0054\u004f\u0043");_eg .Log .Trace ("\u0050\u0061\u0067e\u0073");_eg .Log .Trace ("\u0025\u0064\u003a\u0020\u0025\u0073",len (_addcb ._faebb ),_addcb ._faebb );_addcb ._fgbcg ,_fdbgb =_addcb .loadOutlines ();
|
||
if _fdbgb !=nil {_eg .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",_fdbgb );
|
||
return _fdbgb ;};_addcb .AcroForm ,_fdbgb =_addcb .loadForms ();if _fdbgb !=nil {return _fdbgb ;};_addcb .DSS ,_fdbgb =_addcb .loadDSS ();if _fdbgb !=nil {return _fdbgb ;};_addcb ._fdca ,_fdbgb =_addcb .loadPerms ();if _fdbgb !=nil {return _fdbgb ;};return nil ;
|
||
};func (_ffcb *PdfWriter )updateObjectNumbers (){_eeegdb :=_ffcb .ObjNumOffset ;_gddfd :=0;for _ ,_abdde :=range _ffcb ._ebdgg {_gcgbf :=int64 (_gddfd +1+_eeegdb );_dedff :=true ;if _ffcb ._abffb {if _bbcdb ,_cafdc :=_ffcb ._cdgd [_abdde ];_cafdc {_gcgbf =_bbcdb ;
|
||
_dedff =false ;};};switch _geeda :=_abdde .(type ){case *_ebb .PdfIndirectObject :_geeda .ObjectNumber =_gcgbf ;_geeda .GenerationNumber =0;case *_ebb .PdfObjectStream :_geeda .ObjectNumber =_gcgbf ;_geeda .GenerationNumber =0;case *_ebb .PdfObjectStreams :_geeda .ObjectNumber =_gcgbf ;
|
||
_geeda .GenerationNumber =0;default:_eg .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",_geeda );continue ;
|
||
};if _dedff {_gddfd ++;};};_bbffb :=func (_efccdb _ebb .PdfObject )int64 {switch _gdaae :=_efccdb .(type ){case *_ebb .PdfIndirectObject :return _gdaae .ObjectNumber ;case *_ebb .PdfObjectStream :return _gdaae .ObjectNumber ;case *_ebb .PdfObjectStreams :return _gdaae .ObjectNumber ;
|
||
};return 0;};_ae .SliceStable (_ffcb ._ebdgg ,func (_cebbg ,_ddfab int )bool {return _bbffb (_ffcb ._ebdgg [_cebbg ])< _bbffb (_ffcb ._ebdgg [_ddfab ])});};
|
||
|
||
// NewPdfOutline returns an initialized PdfOutline.
|
||
func NewPdfOutline ()*PdfOutline {_dbefg :=&PdfOutline {_egee :_ebb .MakeIndirectObject (_ebb .MakeDict ())};_dbefg ._geeee =_dbefg ;return _dbefg ;};
|
||
|
||
// SetPdfProducer sets the Producer attribute of the output PDF.
|
||
func SetPdfProducer (producer string ){_daddc .Lock ();defer _daddc .Unlock ();_aaaae =producer };
|
||
|
||
// ParserMetadata gets the parser metadata.
|
||
func (_aadg *CompliancePdfReader )ParserMetadata ()_ebb .ParserMetadata {if _aadg ._ecbbg ==(_ebb .ParserMetadata {}){_aadg ._ecbbg ,_ =_aadg ._cafdf .ParserMetadata ();};return _aadg ._ecbbg ;};func (_bgfdf *pdfFontType0 )bytesToCharcodes (_bgfde []byte )([]_da .CharCode ,bool ){if _bgfdf ._efeb ==nil {return nil ,false ;
|
||
};_cgcca ,_fcdf :=_bgfdf ._efeb .BytesToCharcodes (_bgfde );if !_fcdf {return nil ,false ;};_cbfb :=make ([]_da .CharCode ,len (_cgcca ));for _cadaa ,_daea :=range _cgcca {_cbfb [_cadaa ]=_da .CharCode (_daea );};return _cbfb ,true ;};
|
||
|
||
// GetNumComponents returns the number of color components (4 for CMYK32).
|
||
func (_bdgg *PdfColorDeviceCMYK )GetNumComponents ()int {return 4};
|
||
|
||
// PdfShadingType2 is an Axial shading.
|
||
type PdfShadingType2 struct{*PdfShading ;Coords *_ebb .PdfObjectArray ;Domain *_ebb .PdfObjectArray ;Function []PdfFunction ;Extend *_ebb .PdfObjectArray ;};
|
||
|
||
// ColorToRGB converts a CalGray color to an RGB color.
|
||
func (_ddff *PdfColorspaceCalGray )ColorToRGB (color PdfColor )(PdfColor ,error ){_cdea ,_afab :=color .(*PdfColorCalGray );if !_afab {_eg .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 ,_gf .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};ANorm :=_cdea .Val ();X :=_ddff .WhitePoint [0]*_cbg .Pow (ANorm ,_ddff .Gamma );Y :=_ddff .WhitePoint [1]*_cbg .Pow (ANorm ,_ddff .Gamma );
|
||
Z :=_ddff .WhitePoint [2]*_cbg .Pow (ANorm ,_ddff .Gamma );_fdce :=3.240479*X +-1.537150*Y +-0.498535*Z ;_bfff :=-0.969256*X +1.875992*Y +0.041556*Z ;_abggf :=0.055648*X +-0.204043*Y +1.057311*Z ;_fdce =_cbg .Min (_cbg .Max (_fdce ,0),1.0);_bfff =_cbg .Min (_cbg .Max (_bfff ,0),1.0);
|
||
_abggf =_cbg .Min (_cbg .Max (_abggf ,0),1.0);return NewPdfColorDeviceRGB (_fdce ,_bfff ,_abggf ),nil ;};func (_dfbgb *PdfReader )buildNameNodes (_aegbb *_ebb .PdfIndirectObject ,_cgfcd map[_ebb .PdfObject ]struct{})error {if _aegbb ==nil {return nil ;
|
||
};if _ ,_ddfbb :=_cgfcd [_aegbb ];_ddfbb {_eg .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",_aegbb .ObjectNumber );
|
||
return nil ;};_cgfcd [_aegbb ]=struct{}{};_dbbe ,_dafae :=_aegbb .PdfObject .(*_ebb .PdfObjectDictionary );if !_dafae {return _gf .New ("n\u006f\u0064\u0065\u0020no\u0074 \u0061\u0020\u0064\u0069\u0063t\u0069\u006f\u006e\u0061\u0072\u0079");};if _cecg ,_gbfb :=_ebb .GetDict (_dbbe .Get ("\u0044\u0065\u0073t\u0073"));
|
||
_gbfb {_beff ,_deadg :=_ebb .GetArray (_cecg .Get ("\u004b\u0069\u0064\u0073"));if !_deadg {return _gf .New ("\u0049n\u0076\u0061\u006c\u0069d\u0020\u004b\u0069\u0064\u0073 \u0061r\u0072a\u0079\u0020\u006f\u0062\u006a\u0065\u0063t");};_eg .Log .Trace ("\u004b\u0069\u0064\u0073\u003a\u0020\u0025\u0073",_beff );
|
||
for _bedaf ,_bacff :=range _beff .Elements (){_adadg ,_bfgda :=_ebb .GetIndirect (_bacff );if !_bfgda {_eg .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",_adadg );
|
||
return _gf .New ("\u0063h\u0069\u006c\u0064\u0020n\u006f\u0074\u0020\u0069\u006ed\u0069r\u0065c\u0074\u0020\u006f\u0062\u006a\u0065\u0063t");};_beff .Set (_bedaf ,_adadg );_cfed :=_dfbgb .buildNameNodes (_adadg ,_cgfcd );if _cfed !=nil {return _cfed ;};
|
||
};};if _fcab ,_eacae :=_ebb .GetDict (_dbbe );_eacae {if !_ebb .IsNullObject (_fcab .Get ("\u004b\u0069\u0064\u0073")){if _ebedb ,_cdgfd :=_ebb .GetArray (_fcab .Get ("\u004b\u0069\u0064\u0073"));_cdgfd {for _fbgb ,_bgbf :=range _ebedb .Elements (){if _dfbdc ,_abca :=_ebb .GetIndirect (_bgbf );
|
||
_abca {_ebedb .Set (_fbgb ,_dfbdc );_gfedgg :=_dfbgb .buildNameNodes (_dfbdc ,_cgfcd );if _gfedgg !=nil {return _gfedgg ;};};};};};};return nil ;};
|
||
|
||
// SetOCProperties sets the optional content properties.
|
||
func (_afbae *PdfWriter )SetOCProperties (ocProperties _ebb .PdfObject )error {_gbag :=_afbae ._dffegd ;if ocProperties !=nil {_eg .Log .Trace ("\u0053e\u0074\u0074\u0069\u006e\u0067\u0020\u004f\u0043\u0020\u0050\u0072o\u0070\u0065\u0072\u0074\u0069\u0065\u0073\u002e\u002e\u002e");
|
||
_gbag .Set ("\u004f\u0043\u0050r\u006f\u0070\u0065\u0072\u0074\u0069\u0065\u0073",ocProperties );return _afbae .addObjects (ocProperties );};return nil ;};func _dffb (_agcda _ebb .PdfObject )(*PdfColorspaceSpecialIndexed ,error ){_gaecb :=NewPdfColorspaceSpecialIndexed ();
|
||
if _gade ,_ecge :=_agcda .(*_ebb .PdfIndirectObject );_ecge {_gaecb ._gdaef =_gade ;};_agcda =_ebb .TraceToDirectObject (_agcda );_facbf ,_eeeb :=_agcda .(*_ebb .PdfObjectArray );if !_eeeb {return nil ,_bg .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");
|
||
};if _facbf .Len ()!=4{return nil ,_bg .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");};_agcda =_facbf .Get (0);
|
||
_geaa ,_eeeb :=_agcda .(*_ebb .PdfObjectName );if !_eeeb {return nil ,_bg .Errorf ("\u0069n\u0064\u0065\u0078\u0065\u0064\u0020\u0043\u0053\u003a\u0020\u0069n\u0076\u0061\u006c\u0069\u0064\u0020\u006e\u0061\u006d\u0065");};if *_geaa !="\u0049n\u0064\u0065\u0078\u0065\u0064"{return nil ,_bg .Errorf ("\u0069\u006e\u0064\u0065xe\u0064\u0020\u0043\u0053\u003a\u0020\u0077\u0072\u006f\u006e\u0067\u0020\u006e\u0061m\u0065");
|
||
};_agcda =_facbf .Get (1);_fggge ,_bbeg :=DetermineColorspaceNameFromPdfObject (_agcda );if _bbeg !=nil {return nil ,_bbeg ;};if _fggge =="\u0049n\u0064\u0065\u0078\u0065\u0064"||_fggge =="\u0050a\u0074\u0074\u0065\u0072\u006e"{_eg .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",_fggge );
|
||
return nil ,_fddb ;};_cdfc ,_bbeg :=NewPdfColorspaceFromPdfObject (_agcda );if _bbeg !=nil {return nil ,_bbeg ;};_gaecb .Base =_cdfc ;_agcda =_facbf .Get (2);_ggcc ,_bbeg :=_ebb .GetNumberAsInt64 (_agcda );if _bbeg !=nil {return nil ,_bbeg ;};if _ggcc > 255{return nil ,_bg .Errorf ("\u0069n\u0064\u0065\u0078\u0065d\u0020\u0043\u0053\u003a\u0020I\u006ev\u0061l\u0069\u0064\u0020\u0068\u0069\u0076\u0061l");
|
||
};_gaecb .HiVal =int (_ggcc );_agcda =_facbf .Get (3);_gaecb .Lookup =_agcda ;_agcda =_ebb .TraceToDirectObject (_agcda );var _ebca []byte ;if _cafa ,_cggb :=_agcda .(*_ebb .PdfObjectString );_cggb {_ebca =_cafa .Bytes ();_eg .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",_ebca );
|
||
}else if _eaae ,_gfbda :=_agcda .(*_ebb .PdfObjectStream );_gfbda {_eg .Log .Trace ("\u0049n\u0064e\u0078\u0065\u0064\u0020\u0073t\u0072\u0065a\u006d\u003a\u0020\u0025\u0073",_agcda .String ());_eg .Log .Trace ("\u0045\u006e\u0063\u006fde\u0064\u0020\u0028\u0025\u0064\u0029\u0020\u003a\u0020\u0025\u0023\u0020\u0078",len (_eaae .Stream ),_eaae .Stream );
|
||
_dcfb ,_fggd :=_ebb .DecodeStream (_eaae );if _fggd !=nil {return nil ,_fggd ;};_eg .Log .Trace ("\u0044e\u0063o\u0064\u0065\u0064\u0020\u0028%\u0064\u0029 \u003a\u0020\u0025\u0020\u0058",len (_dcfb ),_dcfb );_ebca =_dcfb ;}else {_eg .Log .Debug ("\u0054\u0079\u0070\u0065\u003a\u0020\u0025\u0054",_agcda );
|
||
return nil ,_bg .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 (_ebca )< _gaecb .Base .GetNumComponents ()*(_gaecb .HiVal +1){_eg .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");
|
||
_eg .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 (_ebca ),_gaecb .Base .GetNumComponents (),_gaecb .HiVal );
|
||
}else {_ebca =_ebca [:_gaecb .Base .GetNumComponents ()*(_gaecb .HiVal +1)];};_gaecb ._eabg =_ebca ;return _gaecb ,nil ;};
|
||
|
||
// NewPdfColorspaceLab returns a new Lab colorspace object.
|
||
func NewPdfColorspaceLab ()*PdfColorspaceLab {_agcb :=&PdfColorspaceLab {};_agcb .BlackPoint =[]float64 {0.0,0.0,0.0};_agcb .Range =[]float64 {-100,100,-100,100};return _agcb ;};func (_fdcee *PdfReader )loadDSS ()(*DSS ,error ){if _fdcee ._cafdf .GetCrypter ()!=nil &&!_fdcee ._cafdf .IsAuthenticated (){return nil ,_bg .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");
|
||
};_egcgb :=_fdcee ._fdgda .Get ("\u0044\u0053\u0053");if _egcgb ==nil {return nil ,nil ;};_cbecc ,_ :=_ebb .GetIndirect (_egcgb );_egcgb =_ebb .TraceToDirectObject (_egcgb );switch _ebffg :=_egcgb .(type ){case *_ebb .PdfObjectNull :return nil ,nil ;case *_ebb .PdfObjectDictionary :return _afag (_cbecc ,_ebffg );
|
||
};return nil ,_bg .Errorf ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0044\u0053\u0053 \u0065\u006e\u0074\u0072y \u0025\u0054",_egcgb );};
|
||
|
||
// DecodeArray returns the range of color component values in the ICCBased colorspace.
|
||
func (_cfcce *PdfColorspaceICCBased )DecodeArray ()[]float64 {return _cfcce .Range };
|
||
|
||
// ImageToRGB converts an image in CMYK32 colorspace to an RGB image.
|
||
func (_edea *PdfColorspaceDeviceCMYK )ImageToRGB (img Image )(Image ,error ){_eg .Log .Trace ("\u0043\u004d\u0059\u004b\u0033\u0032\u0020\u002d\u003e\u0020\u0052\u0047\u0042");_eg .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 );
|
||
_eg .Log .Trace ("\u004c\u0065\u006e \u0064\u0061\u0074\u0061\u003a\u0020\u0025\u0064",len (img .Data ));_eg .Log .Trace ("H\u0065\u0069\u0067\u0068t:\u0020%\u0064\u002c\u0020\u0057\u0069d\u0074\u0068\u003a\u0020\u0025\u0064",img .Height ,img .Width );
|
||
_feee ,_abbgg :=_dg .NewImage (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),img .ColorComponents ,img .Data ,img ._dagcb ,img ._dgcea );if _abbgg !=nil {return Image {},_abbgg ;};_bbagg ,_abbgg :=_dg .NRGBAConverter .Convert (_feee );
|
||
if _abbgg !=nil {return Image {},_abbgg ;};return _afacb (_bbagg .Base ()),nil ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_eee *PdfAnnotationSquiggly )ToPdfObject ()_ebb .PdfObject {_eee .PdfAnnotation .ToPdfObject ();_bbcd :=_eee ._bdcd ;_ecgc :=_bbcd .PdfObject .(*_ebb .PdfObjectDictionary );_eee .PdfAnnotationMarkup .appendToPdfDictionary (_ecgc );_ecgc .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ebb .MakeName ("\u0053\u0071\u0075\u0069\u0067\u0067\u006c\u0079"));
|
||
_ecgc .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_eee .QuadPoints );return _bbcd ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the shading dictionary.
|
||
func (_gddbg *PdfShadingType6 )ToPdfObject ()_ebb .PdfObject {_gddbg .PdfShading .ToPdfObject ();_egged ,_dfdaba :=_gddbg .getShadingDict ();if _dfdaba !=nil {_eg .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 _gddbg .BitsPerCoordinate !=nil {_egged .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065",_gddbg .BitsPerCoordinate );};if _gddbg .BitsPerComponent !=nil {_egged .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_gddbg .BitsPerComponent );
|
||
};if _gddbg .BitsPerFlag !=nil {_egged .Set ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067",_gddbg .BitsPerFlag );};if _gddbg .Decode !=nil {_egged .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_gddbg .Decode );};if _gddbg .Function !=nil {if len (_gddbg .Function )==1{_egged .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_gddbg .Function [0].ToPdfObject ());
|
||
}else {_ggecg :=_ebb .MakeArray ();for _ ,_ebbgad :=range _gddbg .Function {_ggecg .Append (_ebbgad .ToPdfObject ());};_egged .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_ggecg );};};return _gddbg ._fbfae ;};
|
||
|
||
// GetNumComponents returns the number of color components of the colorspace device.
|
||
// Returns 1 for a CalGray device.
|
||
func (_dgaaf *PdfColorspaceCalGray )GetNumComponents ()int {return 1};
|
||
|
||
// HasExtGState checks whether a font is defined by the specified keyName.
|
||
func (_gebbd *PdfPageResources )HasExtGState (keyName _ebb .PdfObjectName )bool {_ ,_gdcge :=_gebbd .GetFontByName (keyName );return _gdcge ;};
|
||
|
||
// NewPdfColorDeviceGray returns a new grayscale color based on an input grayscale float value in range [0-1].
|
||
func NewPdfColorDeviceGray (grayVal float64 )*PdfColorDeviceGray {_eaeef :=PdfColorDeviceGray (grayVal );return &_eaeef ;};
|
||
|
||
// ColorFromFloats returns a new PdfColor based on the input slice of color
|
||
// components. The slice should contain a single element.
|
||
func (_beeb *PdfColorspaceSpecialSeparation )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=1{return nil ,_gf .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_bafdd :=vals [0];_eecfbd :=[]float64 {_bafdd };
|
||
_gcfgb ,_egced :=_beeb .TintTransform .Evaluate (_eecfbd );if _egced !=nil {_eg .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",_egced );
|
||
_eg .Log .Trace ("\u0054\u0069\u006e\u0074 t\u0072\u0061\u006e\u0073\u0066\u006f\u0072\u006d\u003a\u0020\u0025\u002b\u0076",_beeb .TintTransform );return nil ,_egced ;};_eg .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",_gcfgb ,_beeb .AlternateSpace );
|
||
_gddb ,_egced :=_beeb .AlternateSpace .ColorFromFloats (_gcfgb );if _egced !=nil {_eg .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",_egced );
|
||
return nil ,_egced ;};return _gddb ,nil ;};
|
||
|
||
// SetCatalogMetadata sets the catalog metadata (XMP) stream object.
|
||
func (_feegg *PdfWriter )SetCatalogMetadata (meta _ebb .PdfObject )error {if meta ==nil {_feegg ._dffegd .Remove ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");return nil ;};_abbee ,_aegfe :=_ebb .GetStream (meta );if !_aegfe {return _gf .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");
|
||
};_feegg .addObject (_abbee );_feegg ._dffegd .Set ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061",_abbee );return nil ;};func (_cafeg *PdfPattern )getDict ()*_ebb .PdfObjectDictionary {if _fdfaeb ,_gfbbdd :=_cafeg ._dcddc .(*_ebb .PdfIndirectObject );
|
||
_gfbbdd {_ccdc ,_acebd :=_fdfaeb .PdfObject .(*_ebb .PdfObjectDictionary );if !_acebd {return nil ;};return _ccdc ;}else if _dbbbd ,_fbcfe :=_cafeg ._dcddc .(*_ebb .PdfObjectStream );_fbcfe {return _dbbbd .PdfObjectDictionary ;}else {_eg .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",_cafeg ._dcddc );
|
||
return nil ;};};
|
||
|
||
// GetAsShadingPattern returns a shading pattern. Check with IsShading() prior to using this.
|
||
func (_dede *PdfPattern )GetAsShadingPattern ()*PdfShadingPattern {return _dede ._ffagg .(*PdfShadingPattern );};
|
||
|
||
// NewPdfAnnotation3D returns a new 3d annotation.
|
||
func NewPdfAnnotation3D ()*PdfAnnotation3D {_bec :=NewPdfAnnotation ();_fgad :=&PdfAnnotation3D {};_fgad .PdfAnnotation =_bec ;_bec .SetContext (_fgad );return _fgad ;};
|
||
|
||
// ToInteger convert to an integer format.
|
||
func (_eadf *PdfColorDeviceGray )ToInteger (bits int )uint32 {_eeeff :=_cbg .Pow (2,float64 (bits ))-1;return uint32 (_eeeff *_eadf .Val ());};
|
||
|
||
// 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 ;_ddffd *_ebb .PdfIndirectObject ;};
|
||
|
||
// PdfAnnotationMarkup represents additional fields for mark-up annotations.
|
||
// (Section 12.5.6.2 p. 399).
|
||
type PdfAnnotationMarkup struct{T _ebb .PdfObject ;Popup *PdfAnnotationPopup ;CA _ebb .PdfObject ;RC _ebb .PdfObject ;CreationDate _ebb .PdfObject ;IRT _ebb .PdfObject ;Subj _ebb .PdfObject ;RT _ebb .PdfObject ;IT _ebb .PdfObject ;ExData _ebb .PdfObject ;
|
||
};
|
||
|
||
// UpdatePage updates the `page` in the new revision if it has changed.
|
||
func (_cecb *PdfAppender )UpdatePage (page *PdfPage ){_cecb .updateObjectsDeep (page .ToPdfObject (),nil )};func _edfcb ()_f .Time {_daddc .Lock ();defer _daddc .Unlock ();return _gecg };func _abgfe (_gagf *_ebb .PdfObjectDictionary )bool {for _ ,_eefc :=range _gagf .Keys (){if _ ,_ccee :=_gdcdfg [_eefc .String ()];
|
||
_ccee {return true ;};};return false ;};func (_eafg *PdfAcroForm )filteredFields (_dfgb FieldFilterFunc ,_fbbeg bool )[]*PdfField {if _eafg ==nil {return nil ;};return _cgcga (_eafg .Fields ,_dfgb ,_fbbeg );};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_ebfg *PdfAnnotationLink )ToPdfObject ()_ebb .PdfObject {_ebfg .PdfAnnotation .ToPdfObject ();_ebad :=_ebfg ._bdcd ;_bedc :=_ebad .PdfObject .(*_ebb .PdfObjectDictionary );_bedc .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ebb .MakeName ("\u004c\u0069\u006e\u006b"));
|
||
if _ebfg ._ffea !=nil &&_ebfg ._ffea ._ad !=nil {_bedc .Set ("\u0041",_ebfg ._ffea ._ad .ToPdfObject ());}else if _ebfg .A !=nil {_bedc .Set ("\u0041",_ebfg .A );};_bedc .SetIfNotNil ("\u0044\u0065\u0073\u0074",_ebfg .Dest );_bedc .SetIfNotNil ("\u0048",_ebfg .H );
|
||
_bedc .SetIfNotNil ("\u0050\u0041",_ebfg .PA );_bedc .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_ebfg .QuadPoints );_bedc .SetIfNotNil ("\u0042\u0053",_ebfg .BS );return _ebad ;};
|
||
|
||
// GetAllContentStreams gets all the content streams for a page as one string.
|
||
func (_feefa *PdfPage )GetAllContentStreams ()(string ,error ){_aedcf ,_eaaea :=_feefa .GetContentStreams ();if _eaaea !=nil {return "",_eaaea ;};return _ee .Join (_aedcf ,"\u0020"),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 *_ebb .PdfObjectName ;Colorants _ebb .PdfObject ;Process _ebb .PdfObject ;MixingHints _ebb .PdfObject ;_afca *_ebb .PdfIndirectObject ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
// Note: Call the sub-annotation's ToPdfObject to set both the generic and non-generic information.
|
||
func (_gggd *PdfAnnotation )ToPdfObject ()_ebb .PdfObject {_bdcda :=_gggd ._bdcd ;_eegcd :=_bdcda .PdfObject .(*_ebb .PdfObjectDictionary );_eegcd .Clear ();_eegcd .Set ("\u0054\u0079\u0070\u0065",_ebb .MakeName ("\u0041\u006e\u006eo\u0074"));_eegcd .SetIfNotNil ("\u0052\u0065\u0063\u0074",_gggd .Rect );
|
||
_eegcd .SetIfNotNil ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073",_gggd .Contents );_eegcd .SetIfNotNil ("\u0050",_gggd .P );_eegcd .SetIfNotNil ("\u004e\u004d",_gggd .NM );_eegcd .SetIfNotNil ("\u004d",_gggd .M );_eegcd .SetIfNotNil ("\u0046",_gggd .F );
|
||
_eegcd .SetIfNotNil ("\u0041\u0050",_gggd .AP );_eegcd .SetIfNotNil ("\u0041\u0053",_gggd .AS );_eegcd .SetIfNotNil ("\u0042\u006f\u0072\u0064\u0065\u0072",_gggd .Border );_eegcd .SetIfNotNil ("\u0043",_gggd .C );_eegcd .SetIfNotNil ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074",_gggd .StructParent );
|
||
_eegcd .SetIfNotNil ("\u004f\u0043",_gggd .OC );return _bdcda ;};func _gggf (_bba _ebb .PdfObject )(*PdfFilespec ,error ){if _bba ==nil {return nil ,nil ;};return NewPdfFilespecFromObj (_bba );};
|
||
|
||
// PdfActionImportData represents a importData action.
|
||
type PdfActionImportData struct{*PdfAction ;F *PdfFilespec ;};func (_ebff *PdfReader )newPdfAnnotationRichMediaFromDict (_bbcf *_ebb .PdfObjectDictionary )(*PdfAnnotationRichMedia ,error ){_cgda :=&PdfAnnotationRichMedia {};_cgda .RichMediaSettings =_bbcf .Get ("\u0052\u0069\u0063\u0068\u004d\u0065\u0064\u0069\u0061\u0053\u0065\u0074t\u0069\u006e\u0067\u0073");
|
||
_cgda .RichMediaContent =_bbcf .Get ("\u0052\u0069c\u0068\u004d\u0065d\u0069\u0061\u0043\u006f\u006e\u0074\u0065\u006e\u0074");return _cgda ,nil ;};
|
||
|
||
// Evaluate runs the function. Input is [x1 x2 x3].
|
||
func (_cegd *PdfFunctionType4 )Evaluate (xVec []float64 )([]float64 ,error ){if _cegd ._bdbae ==nil {_cegd ._bdbae =_bc .NewPSExecutor (_cegd .Program );};var _bcce []_bc .PSObject ;for _ ,_fageaf :=range xVec {_bcce =append (_bcce ,_bc .MakeReal (_fageaf ));
|
||
};_dfced ,_bgcge :=_cegd ._bdbae .Execute (_bcce );if _bgcge !=nil {return nil ,_bgcge ;};_bccbg ,_bgcge :=_bc .PSObjectArrayToFloat64Array (_dfced );if _bgcge !=nil {return nil ,_bgcge ;};return _bccbg ,nil ;};
|
||
|
||
// GetNumComponents returns the number of input color components, i.e. that are input to the tint transform.
|
||
func (_addf *PdfColorspaceDeviceN )GetNumComponents ()int {return _addf .ColorantNames .Len ()};
|
||
|
||
// 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 (_efgdb *PdfReader )AcroFormNeedsRepair ()(bool ,error ){var _cabb []*PdfField ;if _efgdb .AcroForm !=nil {_cabb =_efgdb .AcroForm .AllFields ();};_bgag :=make (map[*PdfField ]struct{},len (_cabb ));for _ ,_aggfa :=range _cabb {_bgag [_aggfa ]=struct{}{};
|
||
};for _ ,_deagg :=range _efgdb .PageList {_abgdc ,_bccf :=_deagg .GetAnnotations ();if _bccf !=nil {return false ,_bccf ;};for _ ,_dcabe :=range _abgdc {_egeb ,_gedac :=_dcabe .GetContext ().(*PdfAnnotationWidget );if !_gedac {continue ;};_bgdgg :=_egeb .Field ();
|
||
if _bgdgg ==nil {return true ,nil ;};if _ ,_fbgc :=_bgag [_bgdgg ];!_fbgc {return true ,nil ;};};};return false ,nil ;};
|
||
|
||
// 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 ;
|
||
|
||
// NewPdfWriter initializes a new PdfWriter.
|
||
func NewPdfWriter ()PdfWriter {_deaafa :=PdfWriter {};_deaafa ._ffffd =map[_ebb .PdfObject ]struct{}{};_deaafa ._ebdgg =[]_ebb .PdfObject {};_deaafa ._eefeb =map[_ebb .PdfObject ][]*_ebb .PdfObjectDictionary {};_deaafa ._dcfg =map[_ebb .PdfObject ]struct{}{};
|
||
_deaafa ._efcge .Major =1;_deaafa ._efcge .Minor =3;_afebb :=_ebb .MakeDict ();_gdec :=[]struct{_ddffa _ebb .PdfObjectName ;_ecedfa string ;}{{"\u0050\u0072\u006f\u0064\u0075\u0063\u0065\u0072",_gagfgf ()},{"\u0043r\u0065\u0061\u0074\u006f\u0072",_feaae ()},{"\u0041\u0075\u0074\u0068\u006f\u0072",_dccgg ()},{"\u0053u\u0062\u006a\u0065\u0063\u0074",_bdfea ()},{"\u0054\u0069\u0074l\u0065",_bggeg ()},{"\u004b\u0065\u0079\u0077\u006f\u0072\u0064\u0073",_fggcd ()}};
|
||
for _ ,_dggbbf :=range _gdec {if _dggbbf ._ecedfa !=""{_afebb .Set (_dggbbf ._ddffa ,_ebb .MakeString (_dggbbf ._ecedfa ));};};if _afccd :=_edfcb ();!_afccd .IsZero (){if _cbgab ,_eafac :=NewPdfDateFromTime (_afccd );_eafac ==nil {_afebb .Set ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065",_cbgab .ToPdfObject ());
|
||
};};if _abeeg :=_eacbd ();!_abeeg .IsZero (){if _gdbed ,_abagg :=NewPdfDateFromTime (_abeeg );_abagg ==nil {_afebb .Set ("\u004do\u0064\u0044\u0061\u0074\u0065",_gdbed .ToPdfObject ());};};_abde :=_ebb .PdfIndirectObject {};_abde .PdfObject =_afebb ;_deaafa ._eadfd =&_abde ;
|
||
_deaafa .addObject (&_abde );_bdecc :=_ebb .PdfIndirectObject {};_eafgf :=_ebb .MakeDict ();_eafgf .Set ("\u0054\u0079\u0070\u0065",_ebb .MakeName ("\u0043a\u0074\u0061\u006c\u006f\u0067"));_bdecc .PdfObject =_eafgf ;_deaafa ._gegba =&_bdecc ;_deaafa .addObject (_deaafa ._gegba );
|
||
_edcbca ,_cbcb :=_bafec ("\u0077");if _cbcb !=nil {_eg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_cbcb );};_deaafa ._cfecg =_edcbca ;_bcgaeb :=_ebb .PdfIndirectObject {};_bcbcbb :=_ebb .MakeDict ();_bcbcbb .Set ("\u0054\u0079\u0070\u0065",_ebb .MakeName ("\u0050\u0061\u0067e\u0073"));
|
||
_fbfac :=_ebb .PdfObjectArray {};_bcbcbb .Set ("\u004b\u0069\u0064\u0073",&_fbfac );_bcbcbb .Set ("\u0043\u006f\u0075n\u0074",_ebb .MakeInteger (0));_bcgaeb .PdfObject =_bcbcbb ;_deaafa ._dggbf =&_bcgaeb ;_deaafa ._afbdd =map[_ebb .PdfObject ]struct{}{};
|
||
_deaafa .addObject (_deaafa ._dggbf );_eafgf .Set ("\u0050\u0061\u0067e\u0073",&_bcgaeb );_deaafa ._dffegd =_eafgf ;_eg .Log .Trace ("\u0043\u0061\u0074\u0061\u006c\u006f\u0067\u0020\u0025\u0073",_bdecc );return _deaafa ;};func (_efg *PdfReader )newPdfActionFromIndirectObject (_fga *_ebb .PdfIndirectObject )(*PdfAction ,error ){_bbe ,_bccb :=_fga .PdfObject .(*_ebb .PdfObjectDictionary );
|
||
if !_bccb {return nil ,_bg .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 :=_efg ._abbaca .GetModelFromPrimitive (_bbe );model !=nil {_feac ,_fbc :=model .(*PdfAction );if !_fbc {return nil ,_bg .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 _feac ,nil ;};_dgf :=&PdfAction {};_dgf ._abe =_fga ;_efg ._abbaca .Register (_bbe ,_dgf );if _cfd :=_bbe .Get ("\u0054\u0079\u0070\u0065");_cfd !=nil {_gbd ,_bade :=_cfd .(*_ebb .PdfObjectName );if !_bade {_eg .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",_cfd );
|
||
}else {if *_gbd !="\u0041\u0063\u0074\u0069\u006f\u006e"{_eg .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",*_gbd );
|
||
};_dgf .Type =_gbd ;};};if _fgbd :=_bbe .Get ("\u004e\u0065\u0078\u0074");_fgbd !=nil {_dgf .Next =_fgbd ;};if _faad :=_bbe .Get ("\u0053");_faad !=nil {_dgf .S =_faad ;};_edef ,_gfb :=_dgf .S .(*_ebb .PdfObjectName );if !_gfb {_eg .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",_dgf .S );
|
||
return nil ,_bg .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",_dgf .S );};_fbda :=PdfActionType (_edef .String ());
|
||
switch _fbda {case ActionTypeGoTo :_gba ,_fde :=_efg .newPdfActionGotoFromDict (_bbe );if _fde !=nil {return nil ,_fde ;};_gba .PdfAction =_dgf ;_dgf ._ad =_gba ;return _dgf ,nil ;case ActionTypeGoToR :_dbg ,_gga :=_efg .newPdfActionGotoRFromDict (_bbe );
|
||
if _gga !=nil {return nil ,_gga ;};_dbg .PdfAction =_dgf ;_dgf ._ad =_dbg ;return _dgf ,nil ;case ActionTypeGoToE :_gdcd ,_eed :=_efg .newPdfActionGotoEFromDict (_bbe );if _eed !=nil {return nil ,_eed ;};_gdcd .PdfAction =_dgf ;_dgf ._ad =_gdcd ;return _dgf ,nil ;
|
||
case ActionTypeLaunch :_dgg ,_bce :=_efg .newPdfActionLaunchFromDict (_bbe );if _bce !=nil {return nil ,_bce ;};_dgg .PdfAction =_dgf ;_dgf ._ad =_dgg ;return _dgf ,nil ;case ActionTypeThread :_bag ,_fdf :=_efg .newPdfActionThreadFromDict (_bbe );if _fdf !=nil {return nil ,_fdf ;
|
||
};_bag .PdfAction =_dgf ;_dgf ._ad =_bag ;return _dgf ,nil ;case ActionTypeURI :_dbed ,_eecf :=_efg .newPdfActionURIFromDict (_bbe );if _eecf !=nil {return nil ,_eecf ;};_dbed .PdfAction =_dgf ;_dgf ._ad =_dbed ;return _dgf ,nil ;case ActionTypeSound :_fgbg ,_bgb :=_efg .newPdfActionSoundFromDict (_bbe );
|
||
if _bgb !=nil {return nil ,_bgb ;};_fgbg .PdfAction =_dgf ;_dgf ._ad =_fgbg ;return _dgf ,nil ;case ActionTypeMovie :_ggg ,_gfcf :=_efg .newPdfActionMovieFromDict (_bbe );if _gfcf !=nil {return nil ,_gfcf ;};_ggg .PdfAction =_dgf ;_dgf ._ad =_ggg ;return _dgf ,nil ;
|
||
case ActionTypeHide :_eba ,_ggac :=_efg .newPdfActionHideFromDict (_bbe );if _ggac !=nil {return nil ,_ggac ;};_eba .PdfAction =_dgf ;_dgf ._ad =_eba ;return _dgf ,nil ;case ActionTypeNamed :_cdc ,_gbea :=_efg .newPdfActionNamedFromDict (_bbe );if _gbea !=nil {return nil ,_gbea ;
|
||
};_cdc .PdfAction =_dgf ;_dgf ._ad =_cdc ;return _dgf ,nil ;case ActionTypeSubmitForm :_bbg ,_cccb :=_efg .newPdfActionSubmitFormFromDict (_bbe );if _cccb !=nil {return nil ,_cccb ;};_bbg .PdfAction =_dgf ;_dgf ._ad =_bbg ;return _dgf ,nil ;case ActionTypeResetForm :_caf ,_ggb :=_efg .newPdfActionResetFormFromDict (_bbe );
|
||
if _ggb !=nil {return nil ,_ggb ;};_caf .PdfAction =_dgf ;_dgf ._ad =_caf ;return _dgf ,nil ;case ActionTypeImportData :_efa ,_bdd :=_efg .newPdfActionImportDataFromDict (_bbe );if _bdd !=nil {return nil ,_bdd ;};_efa .PdfAction =_dgf ;_dgf ._ad =_efa ;
|
||
return _dgf ,nil ;case ActionTypeSetOCGState :_dedg ,_edg :=_efg .newPdfActionSetOCGStateFromDict (_bbe );if _edg !=nil {return nil ,_edg ;};_dedg .PdfAction =_dgf ;_dgf ._ad =_dedg ;return _dgf ,nil ;case ActionTypeRendition :_fgde ,_ag :=_efg .newPdfActionRenditionFromDict (_bbe );
|
||
if _ag !=nil {return nil ,_ag ;};_fgde .PdfAction =_dgf ;_dgf ._ad =_fgde ;return _dgf ,nil ;case ActionTypeTrans :_egb ,_ebg :=_efg .newPdfActionTransFromDict (_bbe );if _ebg !=nil {return nil ,_ebg ;};_egb .PdfAction =_dgf ;_dgf ._ad =_egb ;return _dgf ,nil ;
|
||
case ActionTypeGoTo3DView :_ddd ,_cde :=_efg .newPdfActionGoTo3DViewFromDict (_bbe );if _cde !=nil {return nil ,_cde ;};_ddd .PdfAction =_dgf ;_dgf ._ad =_ddd ;return _dgf ,nil ;case ActionTypeJavaScript :_cec ,_fac :=_efg .newPdfActionJavaScriptFromDict (_bbe );
|
||
if _fac !=nil {return nil ,_fac ;};_cec .PdfAction =_dgf ;_dgf ._ad =_cec ;return _dgf ,nil ;};_eg .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",_fbda );
|
||
return nil ,nil ;};
|
||
|
||
// SetType sets the field button's type. Can be one of:
|
||
// - PdfFieldButtonPush for push button fields
|
||
// - PdfFieldButtonCheckbox for checkbox fields
|
||
// - PdfFieldButtonRadio for radio button fields
|
||
// This sets the field's flag appropriately.
|
||
func (_bafdbb *PdfFieldButton )SetType (btype ButtonType ){_gdbf :=uint32 (0);if _bafdbb .Ff !=nil {_gdbf =uint32 (*_bafdbb .Ff );};switch btype {case ButtonTypePush :_gdbf |=FieldFlagPushbutton .Mask ();case ButtonTypeRadio :_gdbf |=FieldFlagRadio .Mask ();
|
||
};_bafdbb .Ff =_ebb .MakeInteger (int64 (_gdbf ));};func (_cgcab *fontFile )loadFromSegments (_ffac ,_edbga []byte )error {_eg .Log .Trace ("\u006c\u006f\u0061dF\u0072\u006f\u006d\u0053\u0065\u0067\u006d\u0065\u006e\u0074\u0073\u003a\u0020\u0025\u0064\u0020\u0025\u0064",len (_ffac ),len (_edbga ));
|
||
_bgba :=_cgcab .parseASCIIPart (_ffac );if _bgba !=nil {return _bgba ;};_eg .Log .Trace ("f\u006f\u006e\u0074\u0066\u0069\u006c\u0065\u003d\u0025\u0073",_cgcab );if len (_edbga )==0{return nil ;};_eg .Log .Trace ("f\u006f\u006e\u0074\u0066\u0069\u006c\u0065\u003d\u0025\u0073",_cgcab );
|
||
return nil ;};func (_gfff *PdfColorspaceICCBased )String ()string {return "\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064";};
|
||
|
||
// ToPdfObject returns the PDF representation of the shading dictionary.
|
||
func (_beggf *PdfShadingType2 )ToPdfObject ()_ebb .PdfObject {_beggf .PdfShading .ToPdfObject ();_dabg ,_aface :=_beggf .getShadingDict ();if _aface !=nil {_eg .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 _dabg ==nil {_eg .Log .Error ("\u0053\u0068\u0061\u0064in\u0067\u0020\u0064\u0069\u0063\u0074\u0020\u0069\u0073\u0020\u006e\u0069\u006c");return nil ;};if _beggf .Coords !=nil {_dabg .Set ("\u0043\u006f\u006f\u0072\u0064\u0073",_beggf .Coords );
|
||
};if _beggf .Domain !=nil {_dabg .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_beggf .Domain );};if _beggf .Function !=nil {if len (_beggf .Function )==1{_dabg .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_beggf .Function [0].ToPdfObject ());
|
||
}else {_cdcab :=_ebb .MakeArray ();for _ ,_gdgb :=range _beggf .Function {_cdcab .Append (_gdgb .ToPdfObject ());};_dabg .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_cdcab );};};if _beggf .Extend !=nil {_dabg .Set ("\u0045\u0078\u0074\u0065\u006e\u0064",_beggf .Extend );
|
||
};return _beggf ._fbfae ;};func (_edbd *PdfAnnotation )String ()string {_aac :="";_ggbg ,_fdg :=_edbd .ToPdfObject ().(*_ebb .PdfIndirectObject );if _fdg {_aac =_bg .Sprintf ("\u0025\u0054\u003a\u0020\u0025\u0073",_edbd ._efd ,_ggbg .PdfObject .String ());
|
||
};return _aac ;};
|
||
|
||
// StandardImplementer is an interface that defines specified PDF standards like PDF/A-1A (pdfa.Profile1A)
|
||
// NOTE: This implementation is in experimental development state.
|
||
// Keep in mind that it might change in the subsequent minor versions.
|
||
type StandardImplementer interface{StandardValidator ;StandardApplier ;
|
||
|
||
// StandardName gets the human-readable name of the standard.
|
||
StandardName ()string ;};
|
||
|
||
// ToPdfObject returns the choice field dictionary within an indirect object (container).
|
||
func (_cdbdg *PdfFieldChoice )ToPdfObject ()_ebb .PdfObject {_cdbdg .PdfField .ToPdfObject ();_ffeg :=_cdbdg ._cdfd ;_gbacb :=_ffeg .PdfObject .(*_ebb .PdfObjectDictionary );_gbacb .Set ("\u0046\u0054",_ebb .MakeName ("\u0043\u0068"));if _cdbdg .Opt !=nil {_gbacb .Set ("\u004f\u0070\u0074",_cdbdg .Opt );
|
||
};if _cdbdg .TI !=nil {_gbacb .Set ("\u0054\u0049",_cdbdg .TI );};if _cdbdg .I !=nil {_gbacb .Set ("\u0049",_cdbdg .I );};return _ffeg ;};
|
||
|
||
// Has checks if flag fl is set in flag and returns true if so, false otherwise.
|
||
func (_cagg FieldFlag )Has (fl FieldFlag )bool {return (_cagg .Mask ()&fl .Mask ())> 0};
|
||
|
||
// PdfAnnotationRichMedia represents Rich Media annotations.
|
||
type PdfAnnotationRichMedia struct{*PdfAnnotation ;RichMediaSettings _ebb .PdfObject ;RichMediaContent _ebb .PdfObject ;};
|
||
|
||
// GetNumComponents returns the number of color components of the colorspace device.
|
||
// Returns 3 for an RGB device.
|
||
func (_gea *PdfColorspaceDeviceRGB )GetNumComponents ()int {return 3};
|
||
|
||
// 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 (_gegab *_bda .Document )error ;};
|
||
|
||
// ImageToRGB returns an error since an image cannot be defined in a pattern colorspace.
|
||
func (_ddbc *PdfColorspaceSpecialPattern )ImageToRGB (img Image )(Image ,error ){_eg .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 ,_gf .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");};
|
||
|
||
// Evaluate runs the function on the passed in slice and returns the results.
|
||
func (_ecbf *PdfFunctionType0 )Evaluate (x []float64 )([]float64 ,error ){if len (x )!=_ecbf .NumInputs {_eg .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 ,_gf .New ("\u0072\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b\u0020e\u0072\u0072\u006f\u0072");};if _ecbf ._egdg ==nil {_gcda :=_ecbf .processSamples ();if _gcda !=nil {return nil ,_gcda ;};};_edaa :=_ecbf .Encode ;if _edaa ==nil {_edaa =[]float64 {};
|
||
for _eadbf :=0;_eadbf < len (_ecbf .Size );_eadbf ++{_edaa =append (_edaa ,0);_edaa =append (_edaa ,float64 (_ecbf .Size [_eadbf ]-1));};};_gafe :=_ecbf .Decode ;if _gafe ==nil {_gafe =_ecbf .Range ;};_bcbec :=make ([]int ,len (x ));for _dcde :=0;_dcde < len (x );
|
||
_dcde ++{_dccd :=x [_dcde ];_ffgec :=_cbg .Min (_cbg .Max (_dccd ,_ecbf .Domain [2*_dcde ]),_ecbf .Domain [2*_dcde +1]);_bgegd :=_dg .LinearInterpolate (_ffgec ,_ecbf .Domain [2*_dcde ],_ecbf .Domain [2*_dcde +1],_edaa [2*_dcde ],_edaa [2*_dcde +1]);_gbdcd :=_cbg .Min (_cbg .Max (_bgegd ,0),float64 (_ecbf .Size [_dcde ]-1));
|
||
_dcec :=int (_cbg .Floor (_gbdcd +0.5));if _dcec < 0{_dcec =0;}else if _dcec > _ecbf .Size [_dcde ]{_dcec =_ecbf .Size [_dcde ]-1;};_bcbec [_dcde ]=_dcec ;};_gccad :=_bcbec [0];for _dbef :=1;_dbef < _ecbf .NumInputs ;_dbef ++{_eeddc :=_bcbec [_dbef ];for _bbefe :=0;
|
||
_bbefe < _dbef ;_bbefe ++{_eeddc *=_ecbf .Size [_bbefe ];};_gccad +=_eeddc ;};_gccad *=_ecbf .NumOutputs ;var _cfeg []float64 ;for _ggdde :=0;_ggdde < _ecbf .NumOutputs ;_ggdde ++{_fbgfe :=_gccad +_ggdde ;if _fbgfe >=len (_ecbf ._egdg ){_eg .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 ;};_gaaga :=_ecbf ._egdg [_fbgfe ];_baed :=_dg .LinearInterpolate (float64 (_gaaga ),0,_cbg .Pow (2,float64 (_ecbf .BitsPerSample )),_gafe [2*_ggdde ],_gafe [2*_ggdde +1]);_ebadg :=_cbg .Min (_cbg .Max (_baed ,_ecbf .Range [2*_ggdde ]),_ecbf .Range [2*_ggdde +1]);
|
||
_cfeg =append (_cfeg ,_ebadg );};return _cfeg ,nil ;};
|
||
|
||
// String implements interface PdfObject.
|
||
func (_bdg *PdfAction )String ()string {_cd ,_badd :=_bdg .ToPdfObject ().(*_ebb .PdfIndirectObject );if _badd {return _bg .Sprintf ("\u0025\u0054\u003a\u0020\u0025\u0073",_bdg ._ad ,_cd .PdfObject .String ());};return "";};
|
||
|
||
// 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 (_gdac *LTV )EnableAll (extraCerts []*_g .Certificate )error {_aeff :=_gdac ._ggdbg ._acfe .AcroForm ;for _ ,_gebc :=range _aeff .AllFields (){_fgbcea ,_ :=_gebc .GetContext ().(*PdfFieldSignature );if _fgbcea ==nil {continue ;};_gcdgb :=_fgbcea .V ;
|
||
if _bgbcc :=_gdac .validateSig (_gcdgb );_bgbcc !=nil {_eg .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",_bgbcc );
|
||
};if _eecb :=_gdac .Enable (_gcdgb ,extraCerts );_eecb !=nil {return _eecb ;};};return nil ;};func (_acf *PdfReader )newPdfActionSubmitFormFromDict (_fad *_ebb .PdfObjectDictionary )(*PdfActionSubmitForm ,error ){_aba ,_ebc :=_gggf (_fad .Get ("\u0046"));
|
||
if _ebc !=nil {return nil ,_ebc ;};return &PdfActionSubmitForm {F :_aba ,Fields :_fad .Get ("\u0046\u0069\u0065\u006c\u0064\u0073"),Flags :_fad .Get ("\u0046\u006c\u0061g\u0073")},nil ;};
|
||
|
||
// DSS represents a Document Security Store dictionary.
|
||
// The DSS dictionary contains both global and signature specific validation
|
||
// information. The certificates and revocation data in the `Certs`, `OCSPs`,
|
||
// and `CRLs` fields can be used to validate any signature in the document.
|
||
// Additionally, the VRI entry contains validation data per signature.
|
||
// The keys in the VRI entry are calculated as upper(hex(sha1(sig.Contents))).
|
||
// The values are VRI dictionaries containing certificates and revocation
|
||
// information used for validating a single signature.
|
||
// See ETSI TS 102 778-4 V1.1.1 for more information.
|
||
type DSS struct{_fcgb *_ebb .PdfIndirectObject ;Certs []*_ebb .PdfObjectStream ;OCSPs []*_ebb .PdfObjectStream ;CRLs []*_ebb .PdfObjectStream ;VRI map[string ]*VRI ;_aeag map[string ]*_ebb .PdfObjectStream ;_cadd map[string ]*_ebb .PdfObjectStream ;_fafgb map[string ]*_ebb .PdfObjectStream ;
|
||
};
|
||
|
||
// 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 (_aaefe int ,_babd *PdfPage )error ;
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_ddb *PdfAnnotationFreeText )ToPdfObject ()_ebb .PdfObject {_ddb .PdfAnnotation .ToPdfObject ();_ccf :=_ddb ._bdcd ;_gbacg :=_ccf .PdfObject .(*_ebb .PdfObjectDictionary );_ddb .PdfAnnotationMarkup .appendToPdfDictionary (_gbacg );_gbacg .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ebb .MakeName ("\u0046\u0072\u0065\u0065\u0054\u0065\u0078\u0074"));
|
||
_gbacg .SetIfNotNil ("\u0044\u0041",_ddb .DA );_gbacg .SetIfNotNil ("\u0051",_ddb .Q );_gbacg .SetIfNotNil ("\u0052\u0043",_ddb .RC );_gbacg .SetIfNotNil ("\u0044\u0053",_ddb .DS );_gbacg .SetIfNotNil ("\u0043\u004c",_ddb .CL );_gbacg .SetIfNotNil ("\u0049\u0054",_ddb .IT );
|
||
_gbacg .SetIfNotNil ("\u0042\u0045",_ddb .BE );_gbacg .SetIfNotNil ("\u0052\u0044",_ddb .RD );_gbacg .SetIfNotNil ("\u0042\u0053",_ddb .BS );_gbacg .SetIfNotNil ("\u004c\u0045",_ddb .LE );return _ccf ;};
|
||
|
||
// ToPdfObject returns the button field dictionary within an indirect object.
|
||
func (_ccgcc *PdfFieldButton )ToPdfObject ()_ebb .PdfObject {_ccgcc .PdfField .ToPdfObject ();_bdfcc :=_ccgcc ._cdfd ;_ccceg :=_bdfcc .PdfObject .(*_ebb .PdfObjectDictionary );_ccceg .Set ("\u0046\u0054",_ebb .MakeName ("\u0042\u0074\u006e"));if _ccgcc .Opt !=nil {_ccceg .Set ("\u004f\u0070\u0074",_ccgcc .Opt );
|
||
};return _bdfcc ;};
|
||
|
||
// Decrypt decrypts the PDF file with a specified password. Also tries to
|
||
// decrypt with an empty password. Returns true if successful,
|
||
// false otherwise.
|
||
func (_bbbf *PdfReader )Decrypt (password []byte )(bool ,error ){_ccggb ,_aeee :=_bbbf ._cafdf .Decrypt (password );if _aeee !=nil {return false ,_aeee ;};if !_ccggb {return false ,nil ;};_aeee =_bbbf .loadStructure ();if _aeee !=nil {_eg .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",_aeee );
|
||
return false ,_aeee ;};return true ,nil ;};
|
||
|
||
// Insert adds an outline item as a child of the current outline item,
|
||
// at the specified index.
|
||
func (_cggfb *OutlineItem )Insert (index uint ,item *OutlineItem ){_dfgcc :=uint (len (_cggfb .Entries ));if index > _dfgcc {index =_dfgcc ;};_cggfb .Entries =append (_cggfb .Entries [:index ],append ([]*OutlineItem {item },_cggfb .Entries [index :]...)...);
|
||
};
|
||
|
||
// GetPageDict converts the Page to a PDF object dictionary.
|
||
func (_ddbbd *PdfPage )GetPageDict ()*_ebb .PdfObjectDictionary {_fabgc :=_ddbbd ._cdbfde ;_fabgc .Clear ();_fabgc .Set ("\u0054\u0079\u0070\u0065",_ebb .MakeName ("\u0050\u0061\u0067\u0065"));_fabgc .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_ddbbd .Parent );
|
||
if _ddbbd .LastModified !=nil {_fabgc .Set ("\u004c\u0061\u0073t\u004d\u006f\u0064\u0069\u0066\u0069\u0065\u0064",_ddbbd .LastModified .ToPdfObject ());};if _ddbbd .Resources !=nil {_fabgc .Set ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s",_ddbbd .Resources .ToPdfObject ());
|
||
};if _ddbbd .CropBox !=nil {_fabgc .Set ("\u0043r\u006f\u0070\u0042\u006f\u0078",_ddbbd .CropBox .ToPdfObject ());};if _ddbbd .MediaBox !=nil {_fabgc .Set ("\u004d\u0065\u0064\u0069\u0061\u0042\u006f\u0078",_ddbbd .MediaBox .ToPdfObject ());};if _ddbbd .BleedBox !=nil {_fabgc .Set ("\u0042\u006c\u0065\u0065\u0064\u0042\u006f\u0078",_ddbbd .BleedBox .ToPdfObject ());
|
||
};if _ddbbd .TrimBox !=nil {_fabgc .Set ("\u0054r\u0069\u006d\u0042\u006f\u0078",_ddbbd .TrimBox .ToPdfObject ());};if _ddbbd .ArtBox !=nil {_fabgc .Set ("\u0041\u0072\u0074\u0042\u006f\u0078",_ddbbd .ArtBox .ToPdfObject ());};_fabgc .SetIfNotNil ("\u0042\u006f\u0078C\u006f\u006c\u006f\u0072\u0049\u006e\u0066\u006f",_ddbbd .BoxColorInfo );
|
||
_fabgc .SetIfNotNil ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073",_ddbbd .Contents );if _ddbbd .Rotate !=nil {_fabgc .Set ("\u0052\u006f\u0074\u0061\u0074\u0065",_ebb .MakeInteger (*_ddbbd .Rotate ));};_fabgc .SetIfNotNil ("\u0047\u0072\u006fu\u0070",_ddbbd .Group );
|
||
_fabgc .SetIfNotNil ("\u0054\u0068\u0075m\u0062",_ddbbd .Thumb );_fabgc .SetIfNotNil ("\u0042",_ddbbd .B );_fabgc .SetIfNotNil ("\u0044\u0075\u0072",_ddbbd .Dur );_fabgc .SetIfNotNil ("\u0054\u0072\u0061n\u0073",_ddbbd .Trans );_fabgc .SetIfNotNil ("\u0041\u0041",_ddbbd .AA );
|
||
_fabgc .SetIfNotNil ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061",_ddbbd .Metadata );_fabgc .SetIfNotNil ("\u0050i\u0065\u0063\u0065\u0049\u006e\u0066o",_ddbbd .PieceInfo );_fabgc .SetIfNotNil ("\u0053\u0074\u0072\u0075\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074\u0073",_ddbbd .StructParents );
|
||
_fabgc .SetIfNotNil ("\u0049\u0044",_ddbbd .ID );_fabgc .SetIfNotNil ("\u0050\u005a",_ddbbd .PZ );_fabgc .SetIfNotNil ("\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006fn\u0049\u006e\u0066\u006f",_ddbbd .SeparationInfo );_fabgc .SetIfNotNil ("\u0054\u0061\u0062\u0073",_ddbbd .Tabs );
|
||
_fabgc .SetIfNotNil ("T\u0065m\u0070\u006c\u0061\u0074\u0065\u0049\u006e\u0073t\u0061\u006e\u0074\u0069at\u0065\u0064",_ddbbd .TemplateInstantiated );_fabgc .SetIfNotNil ("\u0050r\u0065\u0073\u0053\u0074\u0065\u0070s",_ddbbd .PresSteps );_fabgc .SetIfNotNil ("\u0055\u0073\u0065\u0072\u0055\u006e\u0069\u0074",_ddbbd .UserUnit );
|
||
_fabgc .SetIfNotNil ("\u0056\u0050",_ddbbd .VP );if _ddbbd ._bbfed !=nil {_deecf :=_ebb .MakeArray ();for _ ,_cfcfg :=range _ddbbd ._bbfed {if _dcfdca :=_cfcfg .GetContext ();_dcfdca !=nil {_deecf .Append (_dcfdca .ToPdfObject ());}else {_deecf .Append (_cfcfg .ToPdfObject ());
|
||
};};if _deecf .Len ()> 0{_fabgc .Set ("\u0041\u006e\u006e\u006f\u0074\u0073",_deecf );};}else if _ddbbd .Annots !=nil {_fabgc .SetIfNotNil ("\u0041\u006e\u006e\u006f\u0074\u0073",_ddbbd .Annots );};return _fabgc ;};func _gbgb (_gffdd _ebb .PdfObject )(*PdfColorspaceDeviceNAttributes ,error ){_dgcca :=&PdfColorspaceDeviceNAttributes {};
|
||
var _gece *_ebb .PdfObjectDictionary ;switch _ccgb :=_gffdd .(type ){case *_ebb .PdfIndirectObject :_dgcca ._afca =_ccgb ;var _dcbca bool ;_gece ,_dcbca =_ccgb .PdfObject .(*_ebb .PdfObjectDictionary );if !_dcbca {_eg .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 ,_gf .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};case *_ebb .PdfObjectDictionary :_gece =_ccgb ;case *_ebb .PdfObjectReference :_accgb :=_ccgb .Resolve ();return _gbgb (_accgb );default:_eg .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 ,_gf .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _gfcb :=_gece .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065");_gfcb !=nil {_fcee ,_bage :=_ebb .TraceToDirectObject (_gfcb ).(*_ebb .PdfObjectName );if !_bage {_eg .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 ,_gf .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};_dgcca .Subtype =_fcee ;};if _abfb :=_gece .Get ("\u0043o\u006c\u006f\u0072\u0061\u006e\u0074s");_abfb !=nil {_dgcca .Colorants =_abfb ;};if _cedgb :=_gece .Get ("\u0050r\u006f\u0063\u0065\u0073\u0073");
|
||
_cedgb !=nil {_dgcca .Process =_cedgb ;};if _afeb :=_gece .Get ("M\u0069\u0078\u0069\u006e\u0067\u0048\u0069\u006e\u0074\u0073");_afeb !=nil {_dgcca .MixingHints =_afeb ;};return _dgcca ,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 ){_aabcf ,_ccgg :=_ed .Open (filePath );if _ccgg !=nil {_eg .Log .Debug ("\u0045\u0052\u0052OR\u003a\u0020\u006f\u0070\u0065\u006e\u0069\u006e\u0067\u0020\u0066\u0069\u006c\u0065\u003a\u0020\u0025\u0076",_ccgg );
|
||
return nil ,_ccgg ;};defer _aabcf .Close ();return NewCompositePdfFontFromTTF (_aabcf );};
|
||
|
||
// NewDSS returns a new DSS dictionary.
|
||
func NewDSS ()*DSS {return &DSS {_fcgb :_ebb .MakeIndirectObject (_ebb .MakeDict ()),VRI :map[string ]*VRI {}};};
|
||
|
||
// String returns a string representation of what flags are set.
|
||
func (_cafgf FieldFlag )String ()string {_edda :="";if _cafgf ==FieldFlagClear {_edda ="\u0043\u006c\u0065a\u0072";return _edda ;};if _cafgf &FieldFlagReadOnly > 0{_edda +="\u007cR\u0065\u0061\u0064\u004f\u006e\u006cy";};if _cafgf &FieldFlagRequired > 0{_edda +="\u007cR\u0065\u0061\u0064\u004f\u006e\u006cy";
|
||
};if _cafgf &FieldFlagNoExport > 0{_edda +="\u007cN\u006f\u0045\u0078\u0070\u006f\u0072t";};if _cafgf &FieldFlagNoToggleToOff > 0{_edda +="\u007c\u004e\u006f\u0054\u006f\u0067\u0067\u006c\u0065T\u006f\u004f\u0066\u0066";};if _cafgf &FieldFlagRadio > 0{_edda +="\u007c\u0052\u0061\u0064\u0069\u006f";
|
||
};if _cafgf &FieldFlagPushbutton > 0{_edda +="|\u0050\u0075\u0073\u0068\u0062\u0075\u0074\u0074\u006f\u006e";};if _cafgf &FieldFlagRadiosInUnision > 0{_edda +="\u007c\u0052a\u0064\u0069\u006fs\u0049\u006e\u0055\u006e\u0069\u0073\u0069\u006f\u006e";};if _cafgf &FieldFlagMultiline > 0{_edda +="\u007c\u004d\u0075\u006c\u0074\u0069\u006c\u0069\u006e\u0065";
|
||
};if _cafgf &FieldFlagPassword > 0{_edda +="\u007cP\u0061\u0073\u0073\u0077\u006f\u0072d";};if _cafgf &FieldFlagFileSelect > 0{_edda +="|\u0046\u0069\u006c\u0065\u0053\u0065\u006c\u0065\u0063\u0074";};if _cafgf &FieldFlagDoNotScroll > 0{_edda +="\u007c\u0044\u006fN\u006f\u0074\u0053\u0063\u0072\u006f\u006c\u006c";
|
||
};if _cafgf &FieldFlagComb > 0{_edda +="\u007c\u0043\u006fm\u0062";};if _cafgf &FieldFlagRichText > 0{_edda +="\u007cR\u0069\u0063\u0068\u0054\u0065\u0078t";};if _cafgf &FieldFlagDoNotSpellCheck > 0{_edda +="\u007c\u0044o\u004e\u006f\u0074S\u0070\u0065\u006c\u006c\u0043\u0068\u0065\u0063\u006b";
|
||
};if _cafgf &FieldFlagCombo > 0{_edda +="\u007c\u0043\u006f\u006d\u0062\u006f";};if _cafgf &FieldFlagEdit > 0{_edda +="\u007c\u0045\u0064i\u0074";};if _cafgf &FieldFlagSort > 0{_edda +="\u007c\u0053\u006fr\u0074";};if _cafgf &FieldFlagMultiSelect > 0{_edda +="\u007c\u004d\u0075l\u0074\u0069\u0053\u0065\u006c\u0065\u0063\u0074";
|
||
};if _cafgf &FieldFlagCommitOnSelChange > 0{_edda +="\u007cC\u006fm\u006d\u0069\u0074\u004f\u006eS\u0065\u006cC\u0068\u0061\u006e\u0067\u0065";};return _ee .Trim (_edda ,"\u007c");};func (_gbada *pdfFontType0 )baseFields ()*fontCommon {return &_gbada .fontCommon };
|
||
type modelManager struct{_bgfdb map[PdfModel ]_ebb .PdfObject ;_aabcbdd map[_ebb .PdfObject ]PdfModel ;};var _ pdfFont =(*pdfFontType0 )(nil );
|
||
|
||
// AppendContentBytes creates a PDF stream from `cs` and appends it to the
|
||
// array of streams specified by the pages's Contents entry.
|
||
// If `wrapContents` is true, the content stream of the page is wrapped using
|
||
// a `q/Q` operator pair, so that its state does not affect the appended
|
||
// content stream.
|
||
func (_cccfg *PdfPage )AppendContentBytes (cs []byte ,wrapContents bool )error {_cdfff :=_cccfg .GetContentStreamObjs ();wrapContents =wrapContents &&len (_cdfff )> 0;_aecde :=_ebb .NewFlateEncoder ();_cdfcd :=_ebb .MakeArray ();if wrapContents {_dagae ,_fdegd :=_ebb .MakeStream ([]byte ("\u0071\u000a"),_aecde );
|
||
if _fdegd !=nil {return _fdegd ;};_cdfcd .Append (_dagae );};_cdfcd .Append (_cdfff ...);if wrapContents {_afdca ,_cccgf :=_ebb .MakeStream ([]byte ("\u000a\u0051\u000a"),_aecde );if _cccgf !=nil {return _cccgf ;};_cdfcd .Append (_afdca );};_cfge ,_dfdcd :=_ebb .MakeStream (cs ,_aecde );
|
||
if _dfdcd !=nil {return _dfdcd ;};_cdfcd .Append (_cfge );_cccfg .Contents =_cdfcd ;return nil ;};
|
||
|
||
// GetRuneMetrics returns the character metrics for the rune.
|
||
// A bool flag is returned to indicate whether or not the entry was found.
|
||
func (_babc pdfFontSimple )GetRuneMetrics (r rune )(_bad .CharMetrics ,bool ){if _babc ._ddgd !=nil {_edbc ,_edgee :=_babc ._ddgd .Read (r );if _edgee {return _edbc ,true ;};};_fdbe :=_babc .Encoder ();if _fdbe ==nil {_eg .Log .Debug ("\u004e\u006f\u0020en\u0063\u006f\u0064\u0065\u0072\u0020\u0066\u006f\u0072\u0020\u0066\u006f\u006e\u0074\u0073\u003d\u0025\u0073",_babc );
|
||
return _bad .CharMetrics {},false ;};_dcac ,_cdfga :=_fdbe .RuneToCharcode (r );if !_cdfga {if r !=' '{_eg .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 ,_babc );
|
||
};return _bad .CharMetrics {},false ;};_ffaga ,_eacb :=_babc .GetCharMetrics (_dcac );return _ffaga ,_eacb ;};
|
||
|
||
// NewOutlineBookmark returns an initialized PdfOutlineItem for a given bookmark title and page.
|
||
func NewOutlineBookmark (title string ,page *_ebb .PdfIndirectObject )*PdfOutlineItem {_ddcg :=PdfOutlineItem {};_ddcg ._geeee =&_ddcg ;_ddcg .Title =_ebb .MakeString (title );_cfbgg :=_ebb .MakeArray ();_cfbgg .Append (page );_cfbgg .Append (_ebb .MakeName ("\u0046\u0069\u0074"));
|
||
_ddcg .Dest =_cfbgg ;return &_ddcg ;};
|
||
|
||
// ToPdfOutlineItem returns a low level PdfOutlineItem object,
|
||
// based on the current instance.
|
||
func (_bcbfa *OutlineItem )ToPdfOutlineItem ()(*PdfOutlineItem ,int64 ){_cbec :=NewPdfOutlineItem ();_cbec .Title =_ebb .MakeEncodedString (_bcbfa .Title ,true );_cbec .Dest =_bcbfa .Dest .ToPdfObject ();var _ffcf []*PdfOutlineItem ;var _gbcgg int64 ;var _ecceb *PdfOutlineItem ;
|
||
for _ ,_bcbcd :=range _bcbfa .Entries {_bbcef ,_dggcb :=_bcbcd .ToPdfOutlineItem ();_bbcef .Parent =&_cbec .PdfOutlineTreeNode ;if _ecceb !=nil {_ecceb .Next =&_bbcef .PdfOutlineTreeNode ;_bbcef .Prev =&_ecceb .PdfOutlineTreeNode ;};_ffcf =append (_ffcf ,_bbcef );
|
||
_gbcgg +=_dggcb ;_ecceb =_bbcef ;};_agbd :=len (_ffcf );_gbcgg +=int64 (_agbd );if _agbd > 0{_cbec .First =&_ffcf [0].PdfOutlineTreeNode ;_cbec .Last =&_ffcf [_agbd -1].PdfOutlineTreeNode ;_cbec .Count =&_gbcgg ;};return _cbec ,_gbcgg ;};type pdfFont interface{_bad .Font ;
|
||
|
||
|
||
// ToPdfObject returns a PDF representation of the font and implements interface Model.
|
||
ToPdfObject ()_ebb .PdfObject ;getFontDescriptor ()*PdfFontDescriptor ;baseFields ()*fontCommon ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_bgc *PdfAnnotationScreen )ToPdfObject ()_ebb .PdfObject {_bgc .PdfAnnotation .ToPdfObject ();_ceee :=_bgc ._bdcd ;_fdgg :=_ceee .PdfObject .(*_ebb .PdfObjectDictionary );_fdgg .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ebb .MakeName ("\u0053\u0063\u0072\u0065\u0065\u006e"));
|
||
_fdgg .SetIfNotNil ("\u0054",_bgc .T );_fdgg .SetIfNotNil ("\u004d\u004b",_bgc .MK );_fdgg .SetIfNotNil ("\u0041",_bgc .A );_fdgg .SetIfNotNil ("\u0041\u0041",_bgc .AA );return _ceee ;};func (_fgadb *DSS )add (_gbaca *[]*_ebb .PdfObjectStream ,_cgbe map[string ]*_ebb .PdfObjectStream ,_edad [][]byte )([]*_ebb .PdfObjectStream ,error ){_gaaec :=make ([]*_ebb .PdfObjectStream ,0,len (_edad ));
|
||
for _ ,_gfeba :=range _edad {_ggec ,_bbbb :=_eaef (_gfeba );if _bbbb !=nil {return nil ,_bbbb ;};_cgbb ,_dacc :=_cgbe [string (_ggec )];if !_dacc {_cgbb ,_bbbb =_ebb .MakeStream (_gfeba ,_ebb .NewRawEncoder ());if _bbbb !=nil {return nil ,_bbbb ;};_cgbe [string (_ggec )]=_cgbb ;
|
||
*_gbaca =append (*_gbaca ,_cgbb );};_gaaec =append (_gaaec ,_cgbb );};return _gaaec ,nil ;};
|
||
|
||
// String returns a string representation of the field.
|
||
func (_fgcfa *PdfField )String ()string {if _aaag ,_ffdf :=_fgcfa .ToPdfObject ().(*_ebb .PdfIndirectObject );_ffdf {return _bg .Sprintf ("\u0025\u0054\u003a\u0020\u0025\u0073",_fgcfa ._cada ,_aaag .PdfObject .String ());};return "";};
|
||
|
||
// Subtype returns the font's "Subtype" field.
|
||
func (_dacdcd *PdfFont )Subtype ()string {_cdeg :=_dacdcd .baseFields ()._dfbf ;if _bddc ,_cdgc :=_dacdcd ._ebcad .(*pdfFontType0 );_cdgc {_cdeg =_cdeg +"\u003a"+_bddc .DescendantFont .Subtype ();};return _cdeg ;};func (_bceaf *pdfCIDFontType0 )baseFields ()*fontCommon {return &_bceaf .fontCommon };
|
||
func (_fddg *PdfWriter )flushWriter ()error {if _fddg ._bgef ==nil {_fddg ._bgef =_fddg ._cbabb .Flush ();};return _fddg ._bgef ;};
|
||
|
||
// GetNumComponents returns the number of color components (3 for RGB).
|
||
func (_ddbe *PdfColorDeviceRGB )GetNumComponents ()int {return 3};
|
||
|
||
// NewPdfAnnotationLink returns a new link annotation.
|
||
func NewPdfAnnotationLink ()*PdfAnnotationLink {_cadf :=NewPdfAnnotation ();_daf :=&PdfAnnotationLink {};_daf .PdfAnnotation =_cadf ;_cadf .SetContext (_daf );return _daf ;};
|
||
|
||
// GetContainingPdfObject implements interface PdfModel.
|
||
func (_dbdfg *PdfFilespec )GetContainingPdfObject ()_ebb .PdfObject {return _dbdfg ._gcge };
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_dadg *PdfAnnotationPolygon )ToPdfObject ()_ebb .PdfObject {_dadg .PdfAnnotation .ToPdfObject ();_cdeb :=_dadg ._bdcd ;_aadc :=_cdeb .PdfObject .(*_ebb .PdfObjectDictionary );_dadg .PdfAnnotationMarkup .appendToPdfDictionary (_aadc );_aadc .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ebb .MakeName ("\u0050o\u006c\u0079\u0067\u006f\u006e"));
|
||
_aadc .SetIfNotNil ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073",_dadg .Vertices );_aadc .SetIfNotNil ("\u004c\u0045",_dadg .LE );_aadc .SetIfNotNil ("\u0042\u0053",_dadg .BS );_aadc .SetIfNotNil ("\u0049\u0043",_dadg .IC );_aadc .SetIfNotNil ("\u0042\u0045",_dadg .BE );
|
||
_aadc .SetIfNotNil ("\u0049\u0054",_dadg .IT );_aadc .SetIfNotNil ("\u004de\u0061\u0073\u0075\u0072\u0065",_dadg .Measure );return _cdeb ;};func _feef (_efdd _ebb .PdfObject ,_ebef *fontCommon )(*_ebe .CMap ,error ){_gefb ,_ggfc :=_ebb .GetStream (_efdd );
|
||
if !_ggfc {_eg .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",_efdd );
|
||
return nil ,_ebb .ErrTypeError ;};_aeaga ,_cdfeb :=_ebb .DecodeStream (_gefb );if _cdfeb !=nil {return nil ,_cdfeb ;};_deeda ,_cdfeb :=_ebe .LoadCmapFromData (_aeaga ,!_ebef .isCIDFont ());if _cdfeb !=nil {_eg .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",_gefb .ObjectNumber ,_cdfeb );
|
||
};return _deeda ,_cdfeb ;};const (BorderStyleSolid BorderStyle =iota ;BorderStyleDashed BorderStyle =iota ;BorderStyleBeveled BorderStyle =iota ;BorderStyleInset BorderStyle =iota ;BorderStyleUnderline BorderStyle =iota ;);func (_dfd *PdfReader )newPdfActionLaunchFromDict (_bfg *_ebb .PdfObjectDictionary )(*PdfActionLaunch ,error ){_egaa ,_bgf :=_gggf (_bfg .Get ("\u0046"));
|
||
if _bgf !=nil {return nil ,_bgf ;};return &PdfActionLaunch {Win :_bfg .Get ("\u0057\u0069\u006e"),Mac :_bfg .Get ("\u004d\u0061\u0063"),Unix :_bfg .Get ("\u0055\u006e\u0069\u0078"),NewWindow :_bfg .Get ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw"),F :_egaa },nil ;
|
||
};
|
||
|
||
// NewPdfColorCalRGB returns a new CalRBG color.
|
||
func NewPdfColorCalRGB (a ,b ,c float64 )*PdfColorCalRGB {_dadc :=PdfColorCalRGB {a ,b ,c };return &_dadc ;};func (_dcaead *PdfWriter )checkLicense ()error {_eaaae :=_ce .GetLicenseKey ();if (_eaaae ==nil ||!_eaaae .IsLicensed ())&&!_eacf {_bg .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");
|
||
_bg .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 _gf .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 ;};
|
||
|
||
// 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 (_egeed int ,_cgggc *PdfPage );
|
||
|
||
// ColorToRGB converts a CalRGB color to an RGB color.
|
||
func (_dcge *PdfColorspaceCalRGB )ColorToRGB (color PdfColor )(PdfColor ,error ){_gded ,_fecb :=color .(*PdfColorCalRGB );if !_fecb {_eg .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 ,_gf .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_cfcg :=_gded .A ();_gdea :=_gded .B ();_fffga :=_gded .C ();X :=_dcge .Matrix [0]*_cbg .Pow (_cfcg ,_dcge .Gamma [0])+_dcge .Matrix [3]*_cbg .Pow (_gdea ,_dcge .Gamma [1])+_dcge .Matrix [6]*_cbg .Pow (_fffga ,_dcge .Gamma [2]);
|
||
Y :=_dcge .Matrix [1]*_cbg .Pow (_cfcg ,_dcge .Gamma [0])+_dcge .Matrix [4]*_cbg .Pow (_gdea ,_dcge .Gamma [1])+_dcge .Matrix [7]*_cbg .Pow (_fffga ,_dcge .Gamma [2]);Z :=_dcge .Matrix [2]*_cbg .Pow (_cfcg ,_dcge .Gamma [0])+_dcge .Matrix [5]*_cbg .Pow (_gdea ,_dcge .Gamma [1])+_dcge .Matrix [8]*_cbg .Pow (_fffga ,_dcge .Gamma [2]);
|
||
_ddfba :=3.240479*X +-1.537150*Y +-0.498535*Z ;_edba :=-0.969256*X +1.875992*Y +0.041556*Z ;_adbc :=0.055648*X +-0.204043*Y +1.057311*Z ;_ddfba =_cbg .Min (_cbg .Max (_ddfba ,0),1.0);_edba =_cbg .Min (_cbg .Max (_edba ,0),1.0);_adbc =_cbg .Min (_cbg .Max (_adbc ,0),1.0);
|
||
return NewPdfColorDeviceRGB (_ddfba ,_edba ,_adbc ),nil ;};
|
||
|
||
// SetShadingByName sets a shading resource specified by keyName.
|
||
func (_agfeb *PdfPageResources )SetShadingByName (keyName _ebb .PdfObjectName ,shadingObj _ebb .PdfObject )error {if _agfeb .Shading ==nil {_agfeb .Shading =_ebb .MakeDict ();};_gbdff ,_ebedbf :=_agfeb .Shading .(*_ebb .PdfObjectDictionary );if !_ebedbf {return _ebb .ErrTypeError ;
|
||
};_gbdff .Set (keyName ,shadingObj );return nil ;};
|
||
|
||
// PdfShadingType4 is a Free-form Gouraud-shaded triangle mesh.
|
||
type PdfShadingType4 struct{*PdfShading ;BitsPerCoordinate *_ebb .PdfObjectInteger ;BitsPerComponent *_ebb .PdfObjectInteger ;BitsPerFlag *_ebb .PdfObjectInteger ;Decode *_ebb .PdfObjectArray ;Function []PdfFunction ;};
|
||
|
||
// WatermarkImageOptions contains options for configuring the watermark process.
|
||
type WatermarkImageOptions struct{Alpha float64 ;FitToWidth bool ;PreserveAspectRatio bool ;};
|
||
|
||
// NewPdfAnnotation returns an initialized generic PDF annotation model.
|
||
func NewPdfAnnotation ()*PdfAnnotation {_gbdd :=&PdfAnnotation {};_gbdd ._bdcd =_ebb .MakeIndirectObject (_ebb .MakeDict ());return _gbdd ;};
|
||
|
||
// C returns the value of the cyan component of the color.
|
||
func (_bbacg *PdfColorDeviceCMYK )C ()float64 {return _bbacg [0]};
|
||
|
||
// NewPdfAnnotationScreen returns a new screen annotation.
|
||
func NewPdfAnnotationScreen ()*PdfAnnotationScreen {_bab :=NewPdfAnnotation ();_cffb :=&PdfAnnotationScreen {};_cffb .PdfAnnotation =_bab ;_bab .SetContext (_cffb );return _cffb ;};
|
||
|
||
// GetCharMetrics returns the char metrics for character code `code`.
|
||
func (_ggedf pdfCIDFontType2 )GetCharMetrics (code _da .CharCode )(_bad .CharMetrics ,bool ){if _afea ,_gcdf :=_ggedf ._dgbc [code ];_gcdf {return _bad .CharMetrics {Wx :_afea },true ;};_adbbe :=rune (code );_cdfcc ,_fcfg :=_ggedf ._dceb [_adbbe ];if !_fcfg {_cdfcc =int (_ggedf ._bagcb );
|
||
};return _bad .CharMetrics {Wx :float64 (_cdfcc )},true ;};
|
||
|
||
// ColorToRGB verifies that the input color is an RGB color. Method exists in
|
||
// order to satisfy the PdfColorspace interface.
|
||
func (_efaab *PdfColorspaceDeviceRGB )ColorToRGB (color PdfColor )(PdfColor ,error ){_gcffa ,_ebfe :=color .(*PdfColorDeviceRGB );if !_ebfe {_eg .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 ,_gf .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};return _gcffa ,nil ;};
|
||
|
||
// ParsePdfObject parses input pdf object into given output intent.
|
||
func (_eefce *PdfOutputIntent )ParsePdfObject (object _ebb .PdfObject )error {_fgfda ,_afccb :=_ebb .GetDict (object );if !_afccb {_eg .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 _gf .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");
|
||
};_eefce ._faeb =_fgfda ;_eefce .Type ,_ =_fgfda .GetString ("\u0054\u0079\u0070\u0065");_agefe ,_afccb :=_fgfda .GetString ("\u0053");if _afccb {switch _agefe {case "\u0047T\u0053\u005f\u0050\u0044\u0046\u00411":_eefce .S =PdfOutputIntentTypeA1 ;case "\u0047T\u0053\u005f\u0050\u0044\u0046\u00412":_eefce .S =PdfOutputIntentTypeA2 ;
|
||
case "\u0047T\u0053\u005f\u0050\u0044\u0046\u00413":_eefce .S =PdfOutputIntentTypeA3 ;case "\u0047T\u0053\u005f\u0050\u0044\u0046\u00414":_eefce .S =PdfOutputIntentTypeA4 ;case "\u0047\u0054\u0053\u005f\u0050\u0044\u0046\u0058":_eefce .S =PdfOutputIntentTypeX ;
|
||
};};_eefce .OutputCondition ,_ =_fgfda .GetString ("\u004fu\u0074p\u0075\u0074\u0043\u006f\u006e\u0064\u0069\u0074\u0069\u006f\u006e");_eefce .OutputConditionIdentifier ,_ =_fgfda .GetString ("\u004fu\u0074\u0070\u0075\u0074C\u006f\u006e\u0064\u0069\u0074i\u006fn\u0049d\u0065\u006e\u0074\u0069\u0066\u0069\u0065r");
|
||
_eefce .RegistryName ,_ =_fgfda .GetString ("\u0052\u0065\u0067i\u0073\u0074\u0072\u0079\u004e\u0061\u006d\u0065");_eefce .Info ,_ =_fgfda .GetString ("\u0049\u006e\u0066\u006f");if _gabgbb ,_edeg :=_ebb .GetStream (_fgfda .Get ("\u0044\u0065\u0073\u0074\u004f\u0075\u0074\u0070\u0075\u0074\u0050\u0072o\u0066\u0069\u006c\u0065"));
|
||
_edeg {_eefce .ColorComponents ,_ =_ebb .GetIntVal (_gabgbb .Get ("\u004e"));_aefbf ,_fgadd :=_ebb .DecodeStream (_gabgbb );if _fgadd !=nil {return _fgadd ;};_eefce .DestOutputProfile =_aefbf ;};return nil ;};
|
||
|
||
// EncryptionAlgorithm is used in EncryptOptions to change the default algorithm used to encrypt the document.
|
||
type EncryptionAlgorithm int ;func _egbeb (_aaaec _ebb .PdfObject )(map[_da .CharCode ]float64 ,error ){if _aaaec ==nil {return nil ,nil ;};_gbbg ,_cgeef :=_ebb .GetArray (_aaaec );if !_cgeef {return nil ,nil ;};_egceg :=map[_da .CharCode ]float64 {};_eccg :=_gbbg .Len ();
|
||
for _cggc :=0;_cggc < _eccg -1;_cggc ++{_abead :=_ebb .TraceToDirectObject (_gbbg .Get (_cggc ));_ggce ,_dafd :=_ebb .GetIntVal (_abead );if !_dafd {return nil ,_bg .Errorf ("\u0042a\u0064\u0020\u0066\u006fn\u0074\u0020\u0057\u0020\u006fb\u006a0\u003a \u0069\u003d\u0025\u0064\u0020\u0025\u0023v",_cggc ,_abead );
|
||
};_cggc ++;if _cggc > _eccg -1{return nil ,_bg .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",_gbbg );};_cccg :=_ebb .TraceToDirectObject (_gbbg .Get (_cggc ));
|
||
switch _cccg .(type ){case *_ebb .PdfObjectArray :_gdca ,_ :=_ebb .GetArray (_cccg );if _fecfc ,_edfde :=_gdca .ToFloat64Array ();_edfde ==nil {for _ceea :=0;_ceea < len (_fecfc );_ceea ++{_egceg [_da .CharCode (_ggce +_ceea )]=_fecfc [_ceea ];};}else {return nil ,_bg .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",_cggc ,_cccg );
|
||
};case *_ebb .PdfObjectInteger :_ecgg ,_bdge :=_ebb .GetIntVal (_cccg );if !_bdge {return nil ,_bg .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",_cggc ,_cccg );
|
||
};_cggc ++;if _cggc > _eccg -1{return nil ,_bg .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",_gbbg );};_eeage :=_gbbg .Get (_cggc );_dcabf ,_fafcd :=_ebb .GetNumberAsFloat (_eeage );
|
||
if _fafcd !=nil {return nil ,_bg .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",_cggc ,_eeage );};for _efbaa :=_ggce ;_efbaa <=_ecgg ;
|
||
_efbaa ++{_egceg [_da .CharCode (_efbaa )]=_dcabf ;};default:return nil ,_bg .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",_cggc ,_cccg );
|
||
};};return _egceg ,nil ;};type fontFile struct{_bgbcg string ;_badbf string ;_gega _da .SimpleEncoder ;};
|
||
|
||
// SetNameDictionary sets the Names entry in the PDF catalog.
|
||
// See section 7.7.4 "Name Dictionary" (p. 80 PDF32000_2008).
|
||
func (_dbebf *PdfWriter )SetNameDictionary (names _ebb .PdfObject )error {if names ==nil {return nil ;};_eg .Log .Trace ("\u0053e\u0074\u0074\u0069\u006e\u0067\u0020\u0063\u0061\u0074\u0061\u006co\u0067\u0020\u004e\u0061\u006d\u0065\u0073\u002e\u002e\u002e");
|
||
_dbebf ._dffegd .Set ("\u004e\u0061\u006de\u0073",names );return _dbebf .addObjects (names );};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_ceg *PdfActionThread )ToPdfObject ()_ebb .PdfObject {_ceg .PdfAction .ToPdfObject ();_cfab :=_ceg ._abe ;_fc :=_cfab .PdfObject .(*_ebb .PdfObjectDictionary );_fc .SetIfNotNil ("\u0053",_ebb .MakeName (string (ActionTypeThread )));if _ceg .F !=nil {_fc .Set ("\u0046",_ceg .F .ToPdfObject ());
|
||
};_fc .SetIfNotNil ("\u0044",_ceg .D );_fc .SetIfNotNil ("\u0042",_ceg .B );return _cfab ;};func _aedce (_fbee _ebb .PdfObject )(*PdfColorspaceICCBased ,error ){_ccfc :=&PdfColorspaceICCBased {};if _bga ,_cbccb :=_fbee .(*_ebb .PdfIndirectObject );_cbccb {_ccfc ._dagdd =_bga ;
|
||
};_fbee =_ebb .TraceToDirectObject (_fbee );_dadb ,_gcdb :=_fbee .(*_ebb .PdfObjectArray );if !_gcdb {return nil ,_bg .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _dadb .Len ()!=2{return nil ,_bg .Errorf ("i\u006e\u0076\u0061\u006c\u0069\u0064 \u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064\u0020c\u006f\u006c\u006fr\u0073p\u0061\u0063\u0065");
|
||
};_fbee =_ebb .TraceToDirectObject (_dadb .Get (0));_eeec ,_gcdb :=_fbee .(*_ebb .PdfObjectName );if !_gcdb {return nil ,_bg .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 *_eeec !="\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064"{return nil ,_bg .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");};_fbee =_dadb .Get (1);
|
||
_dcd ,_gcdb :=_ebb .GetStream (_fbee );if !_gcdb {_eg .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",_fbee );
|
||
return nil ,_bg .Errorf ("\u0049\u0043\u0043Ba\u0073\u0065\u0064\u0020\u0073\u0074\u0072\u0065\u0061\u006d\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064");};_fcbg :=_dcd .PdfObjectDictionary ;_ecaec ,_gcdb :=_fcbg .Get ("\u004e").(*_ebb .PdfObjectInteger );
|
||
if !_gcdb {return nil ,_bg .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 *_ecaec !=1&&*_ecaec !=3&&*_ecaec !=4{return nil ,_bg .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");
|
||
};_ccfc .N =int (*_ecaec );if _gbbb :=_fcbg .Get ("\u0041l\u0074\u0065\u0072\u006e\u0061\u0074e");_gbbb !=nil {_aaae ,_gebec :=NewPdfColorspaceFromPdfObject (_gbbb );if _gebec !=nil {return nil ,_gebec ;};_ccfc .Alternate =_aaae ;};if _adbcc :=_fcbg .Get ("\u0052\u0061\u006eg\u0065");
|
||
_adbcc !=nil {_adbcc =_ebb .TraceToDirectObject (_adbcc );_edgg ,_bbgc :=_adbcc .(*_ebb .PdfObjectArray );if !_bbgc {return nil ,_bg .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 _edgg .Len ()!=2*_ccfc .N {return nil ,_bg .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");
|
||
};_fdeaf ,_bdbfc :=_edgg .GetAsFloat64Slice ();if _bdbfc !=nil {return nil ,_bdbfc ;};_ccfc .Range =_fdeaf ;}else {_ccfc .Range =make ([]float64 ,2*_ccfc .N );for _faggf :=0;_faggf < _ccfc .N ;_faggf ++{_ccfc .Range [2*_faggf ]=0.0;_ccfc .Range [2*_faggf +1]=1.0;
|
||
};};if _agce :=_fcbg .Get ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");_agce !=nil {_fbcgb ,_eacea :=_agce .(*_ebb .PdfObjectStream );if !_eacea {return nil ,_bg .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");
|
||
};_ccfc .Metadata =_fbcgb ;};_fgda ,_ggga :=_ebb .DecodeStream (_dcd );if _ggga !=nil {return nil ,_ggga ;};_ccfc .Data =_fgda ;_ccfc ._dfff =_dcd ;return _ccfc ,nil ;};func (_eeea *PdfFilespec )getDict ()*_ebb .PdfObjectDictionary {if _fgbc ,_bedf :=_eeea ._gcge .(*_ebb .PdfIndirectObject );
|
||
_bedf {_dbffa ,_ddaa :=_fgbc .PdfObject .(*_ebb .PdfObjectDictionary );if !_ddaa {return nil ;};return _dbffa ;}else if _fabec ,_faae :=_eeea ._gcge .(*_ebb .PdfObjectDictionary );_faae {return _fabec ;}else {_eg .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",_eeea ._gcge );
|
||
return nil ;};};
|
||
|
||
// PdfAnnotationScreen represents Screen annotations.
|
||
// (Section 12.5.6.18).
|
||
type PdfAnnotationScreen struct{*PdfAnnotation ;T _ebb .PdfObject ;MK _ebb .PdfObject ;A _ebb .PdfObject ;AA _ebb .PdfObject ;};
|
||
|
||
// PdfAnnotationFileAttachment represents FileAttachment annotations.
|
||
// (Section 12.5.6.15).
|
||
type PdfAnnotationFileAttachment struct{*PdfAnnotation ;*PdfAnnotationMarkup ;FS _ebb .PdfObject ;Name _ebb .PdfObject ;};func (_cgag *PdfReader )newPdfAnnotationTrapNetFromDict (_cfgd *_ebb .PdfObjectDictionary )(*PdfAnnotationTrapNet ,error ){_fefe :=PdfAnnotationTrapNet {};
|
||
return &_fefe ,nil ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_bebgd *PdfSignatureReference )ToPdfObject ()_ebb .PdfObject {_gbdg :=_ebb .MakeDict ();_gbdg .SetIfNotNil ("\u0054\u0079\u0070\u0065",_bebgd .Type );_gbdg .SetIfNotNil ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u004d\u0065\u0074\u0068\u006f\u0064",_bebgd .TransformMethod );
|
||
_gbdg .SetIfNotNil ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u0050\u0061\u0072\u0061\u006d\u0073",_bebgd .TransformParams );_gbdg .SetIfNotNil ("\u0044\u0061\u0074\u0061",_bebgd .Data );_gbdg .SetIfNotNil ("\u0044\u0069\u0067e\u0073\u0074\u004d\u0065\u0074\u0068\u006f\u0064",_bebgd .DigestMethod );
|
||
return _gbdg ;};
|
||
|
||
// C returns the value of the C component of the color.
|
||
func (_cffc *PdfColorCalRGB )C ()float64 {return _cffc [2]};
|
||
|
||
// GetPerms returns the Permissions dictionary
|
||
func (_dcfcc *PdfReader )GetPerms ()*Permissions {return _dcfcc ._fdca };
|
||
|
||
// 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 *_ebb .PdfObjectStream ;Data []byte ;_dagdd *_ebb .PdfIndirectObject ;_dfff *_ebb .PdfObjectStream ;};func (_cegga *PdfReader )newPdfAnnotationPolygonFromDict (_bdfc *_ebb .PdfObjectDictionary )(*PdfAnnotationPolygon ,error ){_cbeb :=PdfAnnotationPolygon {};
|
||
_fgf ,_fafg :=_cegga .newPdfAnnotationMarkupFromDict (_bdfc );if _fafg !=nil {return nil ,_fafg ;};_cbeb .PdfAnnotationMarkup =_fgf ;_cbeb .Vertices =_bdfc .Get ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073");_cbeb .LE =_bdfc .Get ("\u004c\u0045");
|
||
_cbeb .BS =_bdfc .Get ("\u0042\u0053");_cbeb .IC =_bdfc .Get ("\u0049\u0043");_cbeb .BE =_bdfc .Get ("\u0042\u0045");_cbeb .IT =_bdfc .Get ("\u0049\u0054");_cbeb .Measure =_bdfc .Get ("\u004de\u0061\u0073\u0075\u0072\u0065");return &_cbeb ,nil ;};func _dccgg ()string {_daddc .Lock ();
|
||
defer _daddc .Unlock ();return _ecgdd };func (_eedd *PdfReader )newPdfActionHideFromDict (_cda *_ebb .PdfObjectDictionary )(*PdfActionHide ,error ){return &PdfActionHide {T :_cda .Get ("\u0054"),H :_cda .Get ("\u0048")},nil ;};
|
||
|
||
// PdfOutline represents a PDF outline dictionary (Table 152 - p. 376).
|
||
type PdfOutline struct{PdfOutlineTreeNode ;Parent *PdfOutlineTreeNode ;Count *int64 ;_egee *_ebb .PdfIndirectObject ;};
|
||
|
||
// HasExtGState checks if ExtGState name is available.
|
||
func (_beeebc *PdfPage )HasExtGState (name _ebb .PdfObjectName )bool {if _beeebc .Resources ==nil {return false ;};if _beeebc .Resources .ExtGState ==nil {return false ;};_gbaef ,_ccfcf :=_ebb .TraceToDirectObject (_beeebc .Resources .ExtGState ).(*_ebb .PdfObjectDictionary );
|
||
if !_ccfcf {_eg .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",_ebb .TraceToDirectObject (_beeebc .Resources .ExtGState ));
|
||
return false ;};_fabbb :=_gbaef .Get (name );_bbgab :=_fabbb !=nil ;return _bbgab ;};
|
||
|
||
// 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 (_ace *PdfColorspaceSpecialPattern )ColorFromPdfObjects (objects []_ebb .PdfObject )(PdfColor ,error ){if len (objects )< 1{return nil ,_gf .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");
|
||
};_gbeec :=&PdfColorPattern {};_ccbd ,_bdbb :=objects [len (objects )-1].(*_ebb .PdfObjectName );if !_bdbb {_eg .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 ;};_gbeec .PatternName =*_ccbd ;if len (objects )> 1{_ecbc :=objects [0:len (objects )-1];if _ace .UnderlyingCS ==nil {_eg .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 ,_gf .New ("\u0075n\u0064\u0065\u0072\u006cy\u0069\u006e\u0067\u0020\u0043S\u0020n\u006ft\u0020\u0064\u0065\u0066\u0069\u006e\u0065d");};_abbdf ,_cgecd :=_ace .UnderlyingCS .ColorFromPdfObjects (_ecbc );if _cgecd !=nil {_eg .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",_cgecd );
|
||
return nil ,_cgecd ;};_gbeec .Color =_abbdf ;};return _gbeec ,nil ;};func (_geeb *PdfWriter )setWriter (_aaadc _ab .Writer ){_geeb ._afedd =_geeb ._fgdce ;_geeb ._cbabb =_ba .NewWriter (_aaadc );};func (_ecaa *pdfFontType3 )baseFields ()*fontCommon {return &_ecaa .fontCommon };
|
||
|
||
|
||
// 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 (_fdda *PdfColorspaceCalRGB )ColorFromPdfObjects (objects []_ebb .PdfObject )(PdfColor ,error ){if len (objects )!=3{return nil ,_gf .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_dbff ,_fecg :=_ebb .GetNumbersAsFloat (objects );
|
||
if _fecg !=nil {return nil ,_fecg ;};return _fdda .ColorFromFloats (_dbff );};
|
||
|
||
// GetOCProperties returns the optional content properties PdfObject.
|
||
func (_bbadf *PdfReader )GetOCProperties ()(_ebb .PdfObject ,error ){_fcagb :=_bbadf ._fdgda ;_ebfba :=_fcagb .Get ("\u004f\u0043\u0050r\u006f\u0070\u0065\u0072\u0074\u0069\u0065\u0073");_ebfba =_ebb .ResolveReference (_ebfba );if !_bbadf ._ceefa {_acbd :=_bbadf .traverseObjectData (_ebfba );
|
||
if _acbd !=nil {return nil ,_acbd ;};};return _ebfba ,nil ;};func (_abdgag *PdfWriter )checkCrossReferenceStream ()bool {_ffcgc :=_abdgag ._efcge .Major > 1||(_abdgag ._efcge .Major ==1&&_abdgag ._efcge .Minor > 4);if _abdgag ._adeff !=nil {_ffcgc =*_abdgag ._adeff ;
|
||
};return _ffcgc ;};
|
||
|
||
// GetXObjectByName returns the XObject with the specified keyName and the object type.
|
||
func (_efgg *PdfPageResources )GetXObjectByName (keyName _ebb .PdfObjectName )(*_ebb .PdfObjectStream ,XObjectType ){if _efgg .XObject ==nil {return nil ,XObjectTypeUndefined ;};_cdaaf ,_eccef :=_ebb .TraceToDirectObject (_efgg .XObject ).(*_ebb .PdfObjectDictionary );
|
||
if !_eccef {_eg .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",_ebb .TraceToDirectObject (_efgg .XObject ));
|
||
return nil ,XObjectTypeUndefined ;};if _beegc :=_cdaaf .Get (keyName );_beegc !=nil {_bdgdg ,_ddegc :=_ebb .GetStream (_beegc );if !_ddegc {_eg .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",_beegc );
|
||
return nil ,XObjectTypeUndefined ;};_aeabd :=_bdgdg .PdfObjectDictionary ;_dgaeg ,_ddegc :=_ebb .TraceToDirectObject (_aeabd .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065")).(*_ebb .PdfObjectName );if !_ddegc {_eg .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",_aeabd .String ());
|
||
return nil ,XObjectTypeUndefined ;};if *_dgaeg =="\u0049\u006d\u0061g\u0065"{return _bdgdg ,XObjectTypeImage ;}else if *_dgaeg =="\u0046\u006f\u0072\u006d"{return _bdgdg ,XObjectTypeForm ;}else if *_dgaeg =="\u0050\u0053"{return _bdgdg ,XObjectTypePS ;
|
||
}else {_eg .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",*_dgaeg );return nil ,XObjectTypeUndefined ;};}else {return nil ,XObjectTypeUndefined ;
|
||
};};
|
||
|
||
// SetName sets the `Name` field of the signature.
|
||
func (_egbga *PdfSignature )SetName (name string ){_egbga .Name =_ebb .MakeString (name )};
|
||
|
||
// 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 (_fafb *pdfFontType3 )getFontDescriptor ()*PdfFontDescriptor {return _fafb ._fbbd };func (_cgbbg fontCommon )fontFlags ()int {if _cgbbg ._fbbd ==nil {return 0;};return _cgbbg ._fbbd ._gfbge ;};
|
||
|
||
// 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 };};
|
||
|
||
// GetMediaBox gets the inheritable media box value, either from the page
|
||
// or a higher up page/pages struct.
|
||
func (_bdafbc *PdfPage )GetMediaBox ()(*PdfRectangle ,error ){if _bdafbc .MediaBox !=nil {return _bdafbc .MediaBox ,nil ;};_eeddca :=_bdafbc .Parent ;for _eeddca !=nil {_fabgb ,_edde :=_ebb .GetDict (_eeddca );if !_edde {return nil ,_gf .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 _dfcfg :=_fabgb .Get ("\u004d\u0065\u0064\u0069\u0061\u0042\u006f\u0078");_dfcfg !=nil {_feffe ,_cgfgcg :=_ebb .GetArray (_dfcfg );if !_cgfgcg {return nil ,_gf .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006d\u0065\u0064\u0069a\u0020\u0062\u006f\u0078");
|
||
};_cgade ,_dfafe :=NewPdfRectangle (*_feffe );if _dfafe !=nil {return nil ,_dfafe ;};return _cgade ,nil ;};_eeddca =_fabgb .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");};return nil ,_gf .New ("m\u0065\u0064\u0069\u0061 b\u006fx\u0020\u006e\u006f\u0074\u0020d\u0065\u0066\u0069\u006e\u0065\u0064");
|
||
};func (_dgaafe *XObjectImage )getParamsDict ()*_ebb .PdfObjectDictionary {_gffed :=_ebb .MakeDict ();_gffed .Set ("\u0057\u0069\u0064t\u0068",_ebb .MakeInteger (*_dgaafe .Width ));_gffed .Set ("\u0048\u0065\u0069\u0067\u0068\u0074",_ebb .MakeInteger (*_dgaafe .Height ));
|
||
_gffed .Set ("\u0043o\u006co\u0072\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074\u0073",_ebb .MakeInteger (int64 (_dgaafe .ColorSpace .GetNumComponents ())));_gffed .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_ebb .MakeInteger (*_dgaafe .BitsPerComponent ));
|
||
return _gffed ;};
|
||
|
||
// SetFontByName sets the font specified by keyName to the given object.
|
||
func (_fcfff *PdfPageResources )SetFontByName (keyName _ebb .PdfObjectName ,obj _ebb .PdfObject )error {if _fcfff .Font ==nil {_fcfff .Font =_ebb .MakeDict ();};_ffaeg ,_ddcbff :=_ebb .TraceToDirectObject (_fcfff .Font ).(*_ebb .PdfObjectDictionary );if !_ddcbff {_eg .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",_ebb .TraceToDirectObject (_fcfff .Font ));
|
||
return _ebb .ErrTypeError ;};_ffaeg .Set (keyName ,obj );return nil ;};type crossReference struct{Type int ;
|
||
|
||
// Type 1
|
||
Offset int64 ;Generation int64 ;
|
||
|
||
// Type 2
|
||
ObjectNumber int ;Index int ;};type pdfCIDFontType0 struct{fontCommon ;_cgebd *_ebb .PdfIndirectObject ;_gefge _da .TextEncoder ;
|
||
|
||
// Table 117 – Entries in a CIDFont dictionary (page 269)
|
||
// (Required) Dictionary that defines the character collection of the CIDFont.
|
||
// See Table 116.
|
||
CIDSystemInfo *_ebb .PdfObjectDictionary ;
|
||
|
||
// Glyph metrics fields (optional).
|
||
DW _ebb .PdfObject ;W _ebb .PdfObject ;DW2 _ebb .PdfObject ;W2 _ebb .PdfObject ;_afcac map[_da .CharCode ]float64 ;_gbdb float64 ;};
|
||
|
||
// GetExtGState gets the ExtGState specified by keyName. Returns a bool
|
||
// indicating whether it was found or not.
|
||
func (_bagga *PdfPageResources )GetExtGState (keyName _ebb .PdfObjectName )(_ebb .PdfObject ,bool ){if _bagga .ExtGState ==nil {return nil ,false ;};_eegbc ,_edged :=_ebb .TraceToDirectObject (_bagga .ExtGState ).(*_ebb .PdfObjectDictionary );if !_edged {_eg .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",_bagga .ExtGState );
|
||
return nil ,false ;};if _bgbcab :=_eegbc .Get (keyName );_bgbcab !=nil {return _bgbcab ,true ;};return nil ,false ;};func _fgdad (_fddcb *_ebb .PdfObjectDictionary ,_cdbe *fontCommon )(*pdfCIDFontType2 ,error ){if _cdbe ._dfbf !="\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032"{_eg .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",_cdbe );
|
||
return nil ,_ebb .ErrRangeError ;};_aggcd :=_gfdbb (_cdbe );_acba ,_gaeae :=_ebb .GetDict (_fddcb .Get ("\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f"));if !_gaeae {_eg .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",_cdbe );
|
||
return nil ,ErrRequiredAttributeMissing ;};_aggcd .CIDSystemInfo =_acba ;_aggcd .DW =_fddcb .Get ("\u0044\u0057");_aggcd .W =_fddcb .Get ("\u0057");_aggcd .DW2 =_fddcb .Get ("\u0044\u0057\u0032");_aggcd .W2 =_fddcb .Get ("\u0057\u0032");_aggcd .CIDToGIDMap =_fddcb .Get ("C\u0049\u0044\u0054\u006f\u0047\u0049\u0044\u004d\u0061\u0070");
|
||
_aggcd ._bagcb =1000.0;if _fbeba ,_fedad :=_ebb .GetNumberAsFloat (_aggcd .DW );_fedad ==nil {_aggcd ._bagcb =_fbeba ;};_ccaf ,_fcfbb :=_egbeb (_aggcd .W );if _fcfbb !=nil {return nil ,_fcfbb ;};if _ccaf ==nil {_ccaf =map[_da .CharCode ]float64 {};};_aggcd ._dgbc =_ccaf ;
|
||
return _aggcd ,nil ;};func (_eebda *PdfWriter )addObjects (_fgaebc _ebb .PdfObject )error {_eg .Log .Trace ("\u0041d\u0064i\u006e\u0067\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0073\u0021");if _fedfg ,_aadb :=_fgaebc .(*_ebb .PdfIndirectObject );_aadb {_eg .Log .Trace ("\u0049\u006e\u0064\u0069\u0072\u0065\u0063\u0074");
|
||
_eg .Log .Trace ("\u002d \u0025\u0073\u0020\u0028\u0025\u0070)",_fgaebc ,_fedfg );_eg .Log .Trace ("\u002d\u0020\u0025\u0073",_fedfg .PdfObject );if _eebda .addObject (_fedfg ){_bcede :=_eebda .addObjects (_fedfg .PdfObject );if _bcede !=nil {return _bcede ;
|
||
};};return nil ;};if _fdgad ,_ccdb :=_fgaebc .(*_ebb .PdfObjectStream );_ccdb {_eg .Log .Trace ("\u0053\u0074\u0072\u0065\u0061\u006d");_eg .Log .Trace ("\u002d \u0025\u0073\u0020\u0025\u0070",_fgaebc ,_fgaebc );if _eebda .addObject (_fdgad ){_edcg :=_eebda .addObjects (_fdgad .PdfObjectDictionary );
|
||
if _edcg !=nil {return _edcg ;};};return nil ;};if _bffg ,_aecfc :=_fgaebc .(*_ebb .PdfObjectDictionary );_aecfc {_eg .Log .Trace ("\u0044\u0069\u0063\u0074");_eg .Log .Trace ("\u002d\u0020\u0025\u0073",_fgaebc );for _ ,_dfgfc :=range _bffg .Keys (){_dggde :=_bffg .Get (_dfgfc );
|
||
if _ggaag ,_ddbce :=_dggde .(*_ebb .PdfObjectReference );_ddbce {_dggde =_ggaag .Resolve ();_bffg .Set (_dfgfc ,_dggde );};if _dfgfc !="\u0050\u0061\u0072\u0065\u006e\u0074"{if _befgeg :=_eebda .addObjects (_dggde );_befgeg !=nil {return _befgeg ;};}else {if _ ,_adgdf :=_dggde .(*_ebb .PdfObjectNull );
|
||
_adgdf {continue ;};if _ebdbgf :=_eebda .hasObject (_dggde );!_ebdbgf {_eg .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",_dggde ,_dggde ,_dggde );
|
||
_eebda ._eefeb [_dggde ]=append (_eebda ._eefeb [_dggde ],_bffg );};};};return nil ;};if _agcg ,_fccff :=_fgaebc .(*_ebb .PdfObjectArray );_fccff {_eg .Log .Trace ("\u0041\u0072\u0072a\u0079");_eg .Log .Trace ("\u002d\u0020\u0025\u0073",_fgaebc );if _agcg ==nil {return _gf .New ("\u0061\u0072\u0072a\u0079\u0020\u0069\u0073\u0020\u006e\u0069\u006c");
|
||
};for _bedag ,_aefdb :=range _agcg .Elements (){if _caadd ,_bfcfb :=_aefdb .(*_ebb .PdfObjectReference );_bfcfb {_aefdb =_caadd .Resolve ();_agcg .Set (_bedag ,_aefdb );};if _bfdfb :=_eebda .addObjects (_aefdb );_bfdfb !=nil {return _bfdfb ;};};return nil ;
|
||
};if _ ,_feagb :=_fgaebc .(*_ebb .PdfObjectReference );_feagb {_eg .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",_fgaebc );
|
||
return _gf .New ("r\u0065\u0066\u0065\u0072en\u0063e\u0020\u006e\u006f\u0074\u0020a\u006c\u006c\u006f\u0077\u0065\u0064");};return nil ;};func (_gebd *PdfReader )newPdfAnnotationLinkFromDict (_fgce *_ebb .PdfObjectDictionary )(*PdfAnnotationLink ,error ){_abf :=PdfAnnotationLink {};
|
||
_abf .A =_fgce .Get ("\u0041");_abf .Dest =_fgce .Get ("\u0044\u0065\u0073\u0074");_abf .H =_fgce .Get ("\u0048");_abf .PA =_fgce .Get ("\u0050\u0041");_abf .QuadPoints =_fgce .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");_abf .BS =_fgce .Get ("\u0042\u0053");
|
||
return &_abf ,nil ;};
|
||
|
||
// NewPdfAnnotationPolyLine returns a new polyline annotation.
|
||
func NewPdfAnnotationPolyLine ()*PdfAnnotationPolyLine {_ccg :=NewPdfAnnotation ();_aabe :=&PdfAnnotationPolyLine {};_aabe .PdfAnnotation =_ccg ;_aabe .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_ccg .SetContext (_aabe );return _aabe ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_df *PdfActionImportData )ToPdfObject ()_ebb .PdfObject {_df .PdfAction .ToPdfObject ();_ffe :=_df ._abe ;_gbef :=_ffe .PdfObject .(*_ebb .PdfObjectDictionary );_gbef .SetIfNotNil ("\u0053",_ebb .MakeName (string (ActionTypeImportData )));if _df .F !=nil {_gbef .Set ("\u0046",_df .F .ToPdfObject ());
|
||
};return _ffe ;};
|
||
|
||
// PdfAcroForm represents the AcroForm dictionary used for representation of form data in PDF.
|
||
type PdfAcroForm struct{Fields *[]*PdfField ;NeedAppearances *_ebb .PdfObjectBool ;SigFlags *_ebb .PdfObjectInteger ;CO *_ebb .PdfObjectArray ;DR *PdfPageResources ;DA *_ebb .PdfObjectString ;Q *_ebb .PdfObjectInteger ;XFA _ebb .PdfObject ;_adcg *_ebb .PdfIndirectObject ;
|
||
};
|
||
|
||
// NewPdfSignature creates a new PdfSignature object.
|
||
func NewPdfSignature (handler SignatureHandler )*PdfSignature {_faefg :=&PdfSignature {Type :_ebb .MakeName ("\u0053\u0069\u0067"),Handler :handler };_agacb :=&pdfSignDictionary {PdfObjectDictionary :_ebb .MakeDict (),_dcfab :&handler ,_bead :_faefg };
|
||
_faefg ._ffbgc =_ebb .MakeIndirectObject (_agacb );return _faefg ;};func _adg (_bcgg *PdfPage )map[_ebb .PdfObjectName ]_ebb .PdfObject {_abfc :=make (map[_ebb .PdfObjectName ]_ebb .PdfObject );if _bcgg .Resources ==nil {return _abfc ;};if _bcgg .Resources .Font !=nil {if _ddc ,_bada :=_ebb .GetDict (_bcgg .Resources .Font );
|
||
_bada {for _ ,_cgad :=range _ddc .Keys (){_abfc [_cgad ]=_ddc .Get (_cgad );};};};if _bcgg .Resources .ExtGState !=nil {if _abbg ,_bfb :=_ebb .GetDict (_bcgg .Resources .ExtGState );_bfb {for _ ,_fffg :=range _abbg .Keys (){_abfc [_fffg ]=_abbg .Get (_fffg );
|
||
};};};if _bcgg .Resources .XObject !=nil {if _dedd ,_dec :=_ebb .GetDict (_bcgg .Resources .XObject );_dec {for _ ,_eeaf :=range _dedd .Keys (){_abfc [_eeaf ]=_dedd .Get (_eeaf );};};};if _bcgg .Resources .Pattern !=nil {if _cfaa ,_geba :=_ebb .GetDict (_bcgg .Resources .Pattern );
|
||
_geba {for _ ,_ecgb :=range _cfaa .Keys (){_abfc [_ecgb ]=_cfaa .Get (_ecgb );};};};if _bcgg .Resources .Shading !=nil {if _ddee ,_bcac :=_ebb .GetDict (_bcgg .Resources .Shading );_bcac {for _ ,_dfa :=range _ddee .Keys (){_abfc [_dfa ]=_ddee .Get (_dfa );
|
||
};};};if _bcgg .Resources .ProcSet !=nil {if _dbba ,_fccg :=_ebb .GetDict (_bcgg .Resources .ProcSet );_fccg {for _ ,_gdae :=range _dbba .Keys (){_abfc [_gdae ]=_dbba .Get (_gdae );};};};if _bcgg .Resources .Properties !=nil {if _badb ,_agdf :=_ebb .GetDict (_bcgg .Resources .Properties );
|
||
_agdf {for _ ,_dgdc :=range _badb .Keys (){_abfc [_dgdc ]=_badb .Get (_dgdc );};};};return _abfc ;};
|
||
|
||
// ImageToRGB convert 1-component grayscale data to 3-component RGB.
|
||
func (_bfda *PdfColorspaceDeviceGray )ImageToRGB (img Image )(Image ,error ){if img .ColorComponents !=1{return img ,_gf .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");
|
||
};_dbgc ,_beed :=_dg .NewImage (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),img .ColorComponents ,img .Data ,img ._dagcb ,img ._dgcea );if _beed !=nil {return img ,_beed ;};_ccead ,_beed :=_dg .NRGBAConverter .Convert (_dbgc );if _beed !=nil {return img ,_beed ;
|
||
};_adgd :=_afacb (_ccead .Base ());_eg .Log .Trace ("\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079\u0020\u002d>\u0020\u0052\u0047\u0042");_eg .Log .Trace ("s\u0061\u006d\u0070\u006c\u0065\u0073\u003a\u0020\u0025\u0076",img .Data );_eg .Log .Trace ("\u0052G\u0042 \u0073\u0061\u006d\u0070\u006c\u0065\u0073\u003a\u0020\u0025\u0076",_adgd .Data );
|
||
_eg .Log .Trace ("\u0025\u0076\u0020\u002d\u003e\u0020\u0025\u0076",img ,_adgd );return _adgd ,nil ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_adce *PdfAnnotationMovie )ToPdfObject ()_ebb .PdfObject {_adce .PdfAnnotation .ToPdfObject ();_ffeaf :=_adce ._bdcd ;_gaae :=_ffeaf .PdfObject .(*_ebb .PdfObjectDictionary );_gaae .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ebb .MakeName ("\u004d\u006f\u0076i\u0065"));
|
||
_gaae .SetIfNotNil ("\u0054",_adce .T );_gaae .SetIfNotNil ("\u004d\u006f\u0076i\u0065",_adce .Movie );_gaae .SetIfNotNil ("\u0041",_adce .A );return _ffeaf ;};
|
||
|
||
// GetRuneMetrics returns the character metrics for the specified rune.
|
||
// A bool flag is returned to indicate whether or not the entry was found.
|
||
func (_dded pdfFontType3 )GetRuneMetrics (r rune )(_bad .CharMetrics ,bool ){_fgbea :=_dded .Encoder ();if _fgbea ==nil {_eg .Log .Debug ("\u004e\u006f\u0020en\u0063\u006f\u0064\u0065\u0072\u0020\u0066\u006f\u0072\u0020\u0066\u006f\u006e\u0074\u0073\u003d\u0025\u0073",_dded );
|
||
return _bad .CharMetrics {},false ;};_cgbegf ,_aecfg :=_fgbea .RuneToCharcode (r );if !_aecfg {if r !=' '{_eg .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 ,_dded );
|
||
};return _bad .CharMetrics {},false ;};_dcege ,_gffa :=_dded .GetCharMetrics (_cgbegf );return _dcege ,_gffa ;};
|
||
|
||
// ToPdfObject converts the font to a PDF representation.
|
||
func (_begb *pdfFontType0 )ToPdfObject ()_ebb .PdfObject {if _begb ._dfffc ==nil {_begb ._dfffc =&_ebb .PdfIndirectObject {};};_acdgf :=_begb .baseFields ().asPdfObjectDictionary ("\u0054\u0079\u0070e\u0030");_begb ._dfffc .PdfObject =_acdgf ;if _begb .Encoding !=nil {_acdgf .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_begb .Encoding );
|
||
}else if _begb ._bfdgc !=nil {_acdgf .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_begb ._bfdgc .ToPdfObject ());};if _begb .DescendantFont !=nil {_acdgf .Set ("\u0044e\u0073c\u0065\u006e\u0064\u0061\u006e\u0074\u0046\u006f\u006e\u0074\u0073",_ebb .MakeArray (_begb .DescendantFont .ToPdfObject ()));
|
||
};return _begb ._dfffc ;};
|
||
|
||
// PdfActionSubmitForm represents a submitForm action.
|
||
type PdfActionSubmitForm struct{*PdfAction ;F *PdfFilespec ;Fields _ebb .PdfObject ;Flags _ebb .PdfObject ;};
|
||
|
||
// PdfAnnotationPolyLine represents PolyLine annotations.
|
||
// (Section 12.5.6.9).
|
||
type PdfAnnotationPolyLine struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Vertices _ebb .PdfObject ;LE _ebb .PdfObject ;BS _ebb .PdfObject ;IC _ebb .PdfObject ;BE _ebb .PdfObject ;IT _ebb .PdfObject ;Measure _ebb .PdfObject ;};
|
||
|
||
// ColorFromPdfObjects returns a new PdfColor based on the input slice of color
|
||
// components. The slice should contain a single PdfObjectFloat element.
|
||
func (_dggdfb *PdfColorspaceSpecialIndexed )ColorFromPdfObjects (objects []_ebb .PdfObject )(PdfColor ,error ){if len (objects )!=1{return nil ,_gf .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_adcff ,_decc :=_ebb .GetNumbersAsFloat (objects );
|
||
if _decc !=nil {return nil ,_decc ;};return _dggdfb .ColorFromFloats (_adcff );};func _ecaeg (_aaac []byte )[]byte {const _ebbfd =52845;const _acga =22719;_ecbba :=55665;for _ ,_acbad :=range _aaac [:4]{_ecbba =(int (_acbad )+_ecbba )*_ebbfd +_acga ;};
|
||
_acde :=make ([]byte ,len (_aaac )-4);for _badbfd ,_cgbcb :=range _aaac [4:]{_acde [_badbfd ]=byte (int (_cgbcb )^_ecbba >>8);_ecbba =(int (_cgbcb )+_ecbba )*_ebbfd +_acga ;};return _acde ;};
|
||
|
||
// NewPdfAnnotationFileAttachment returns a new file attachment annotation.
|
||
func NewPdfAnnotationFileAttachment ()*PdfAnnotationFileAttachment {_cegc :=NewPdfAnnotation ();_ced :=&PdfAnnotationFileAttachment {};_ced .PdfAnnotation =_cegc ;_ced .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_cegc .SetContext (_ced );return _ced ;
|
||
};
|
||
|
||
// IsColored specifies if the pattern is colored.
|
||
func (_faacc *PdfTilingPattern )IsColored ()bool {if _faacc .PaintType !=nil &&*_faacc .PaintType ==1{return true ;};return false ;};
|
||
|
||
// PdfAnnotationPolygon represents Polygon annotations.
|
||
// (Section 12.5.6.9).
|
||
type PdfAnnotationPolygon struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Vertices _ebb .PdfObject ;LE _ebb .PdfObject ;BS _ebb .PdfObject ;IC _ebb .PdfObject ;BE _ebb .PdfObject ;IT _ebb .PdfObject ;Measure _ebb .PdfObject ;};
|
||
|
||
// NewPdfAnnotationHighlight returns a new text highlight annotation.
|
||
func NewPdfAnnotationHighlight ()*PdfAnnotationHighlight {_cae :=NewPdfAnnotation ();_fbcf :=&PdfAnnotationHighlight {};_fbcf .PdfAnnotation =_cae ;_fbcf .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_cae .SetContext (_fbcf );return _fbcf ;};
|
||
|
||
// Encoder returns the font's text encoder.
|
||
func (_dcfe *pdfFontSimple )Encoder ()_da .TextEncoder {if _dcfe ._ebcb !=nil {return _dcfe ._ebcb ;};if _dcfe ._dacee !=nil {return _dcfe ._dacee ;};_efae ,_ :=_da .NewSimpleTextEncoder ("\u0053\u0074a\u006e\u0064\u0061r\u0064\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",nil );
|
||
return _efae ;};
|
||
|
||
// AlphaMap performs mapping of alpha data for transformations. Allows custom filtering of alpha data etc.
|
||
func (_afgf *Image )AlphaMap (mapFunc AlphaMapFunc ){for _fabg ,_ebaeg :=range _afgf ._dagcb {_afgf ._dagcb [_fabg ]=mapFunc (_ebaeg );};};
|
||
|
||
// NewPdfAnnotationCaret returns a new caret annotation.
|
||
func NewPdfAnnotationCaret ()*PdfAnnotationCaret {_cce :=NewPdfAnnotation ();_ffad :=&PdfAnnotationCaret {};_ffad .PdfAnnotation =_cce ;_ffad .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_cce .SetContext (_ffad );return _ffad ;};func (_dacfe *pdfFontSimple )updateStandard14Font (){_gabe ,_aceb :=_dacfe .Encoder ().(_da .SimpleEncoder );
|
||
if !_aceb {_eg .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",_dacfe .Encoder (),_dacfe );return ;};_cdgg :=_gabe .Charcodes ();
|
||
_dacfe ._cdff =make (map[_da .CharCode ]float64 ,len (_cdgg ));for _ ,_eaeg :=range _cdgg {_bgeafe ,_ :=_gabe .CharcodeToRune (_eaeg );_affg ,_ :=_dacfe ._ddgd .Read (_bgeafe );_dacfe ._cdff [_eaeg ]=_affg .Wx ;};};
|
||
|
||
// ValidateSignatures validates digital signatures in the document.
|
||
func (_egaag *PdfReader )ValidateSignatures (handlers []SignatureHandler )([]SignatureValidationResult ,error ){if _egaag .AcroForm ==nil {return nil ,nil ;};if _egaag .AcroForm .Fields ==nil {return nil ,nil ;};type sigFieldPair struct{_daecec *PdfSignature ;
|
||
_aaada *PdfField ;_gccc SignatureHandler ;};var _adcfda []*sigFieldPair ;for _ ,_aegc :=range _egaag .AcroForm .AllFields (){if _aegc .V ==nil {continue ;};if _dadbg ,_ffege :=_ebb .GetDict (_aegc .V );_ffege {if _daecbg ,_bfddc :=_ebb .GetNameVal (_dadbg .Get ("\u0054\u0079\u0070\u0065"));
|
||
_bfddc &&_daecbg =="\u0053\u0069\u0067"{_edcecc ,_ffgg :=_ebb .GetIndirect (_aegc .V );if !_ffgg {_eg .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 ;};_cacb ,_bega :=_egaag .newPdfSignatureFromIndirect (_edcecc );if _bega !=nil {return nil ,_bega ;};var _cfdg SignatureHandler ;for _ ,_fgbeec :=range handlers {if _fgbeec .IsApplicable (_cacb ){_cfdg =_fgbeec ;break ;};};_adcfda =append (_adcfda ,&sigFieldPair {_daecec :_cacb ,_aaada :_aegc ,_gccc :_cfdg });
|
||
};};};var _bffedb []SignatureValidationResult ;for _ ,_bcbeb :=range _adcfda {_ccdfe :=SignatureValidationResult {IsSigned :true ,Fields :[]*PdfField {_bcbeb ._aaada }};if _bcbeb ._gccc ==nil {_ccdfe .Errors =append (_ccdfe .Errors ,"\u0068a\u006ed\u006c\u0065\u0072\u0020\u006e\u006f\u0074\u0020\u0073\u0065\u0074");
|
||
_bffedb =append (_bffedb ,_ccdfe );continue ;};_fcfaf ,_bfcfd :=_bcbeb ._gccc .NewDigest (_bcbeb ._daecec );if _bfcfd !=nil {_ccdfe .Errors =append (_ccdfe .Errors ,"\u0064\u0069\u0067e\u0073\u0074\u0020\u0065\u0072\u0072\u006f\u0072",_bfcfd .Error ());
|
||
_bffedb =append (_bffedb ,_ccdfe );continue ;};_caabf :=_bcbeb ._daecec .ByteRange ;if _caabf ==nil {_ccdfe .Errors =append (_ccdfe .Errors ,"\u0042\u0079\u0074\u0065\u0052\u0061\u006e\u0067\u0065\u0020\u006e\u006ft\u0020\u0073\u0065\u0074");_bffedb =append (_bffedb ,_ccdfe );
|
||
continue ;};for _bbcb :=0;_bbcb < _caabf .Len ();_bbcb =_bbcb +2{_fcgeb ,_ :=_ebb .GetNumberAsInt64 (_caabf .Get (_bbcb ));_dfcag ,_ :=_ebb .GetIntVal (_caabf .Get (_bbcb +1));if _ ,_aabge :=_egaag ._ggdg .Seek (_fcgeb ,_ab .SeekStart );_aabge !=nil {return nil ,_aabge ;
|
||
};_begeg :=make ([]byte ,_dfcag );if _ ,_ggcdb :=_egaag ._ggdg .Read (_begeg );_ggcdb !=nil {return nil ,_ggcdb ;};_fcfaf .Write (_begeg );};var _bcceg SignatureValidationResult ;if _fegec ,_cdagd :=_bcbeb ._gccc .(SignatureHandlerDocMDP );_cdagd {_bcceg ,_bfcfd =_fegec .ValidateWithOpts (_bcbeb ._daecec ,_fcfaf ,SignatureHandlerDocMDPParams {Parser :_egaag ._cafdf });
|
||
}else {_bcceg ,_bfcfd =_bcbeb ._gccc .Validate (_bcbeb ._daecec ,_fcfaf );};if _bfcfd !=nil {_eg .Log .Debug ("E\u0052\u0052\u004f\u0052: \u0025v\u0020\u0028\u0025\u0054\u0029 \u002d\u0020\u0073\u006b\u0069\u0070",_bfcfd ,_bcbeb ._gccc );_bcceg .Errors =append (_bcceg .Errors ,_bfcfd .Error ());
|
||
};_bcceg .Name =_bcbeb ._daecec .Name .Decoded ();_bcceg .Reason =_bcbeb ._daecec .Reason .Decoded ();if _bcbeb ._daecec .M !=nil {_efbgb ,_beaag :=NewPdfDate (_bcbeb ._daecec .M .String ());if _beaag !=nil {_eg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_beaag );
|
||
_bcceg .Errors =append (_bcceg .Errors ,_beaag .Error ());continue ;};_bcceg .Date =_efbgb ;};_bcceg .ContactInfo =_bcbeb ._daecec .ContactInfo .Decoded ();_bcceg .Location =_bcbeb ._daecec .Location .Decoded ();_bcceg .Fields =_ccdfe .Fields ;_bffedb =append (_bffedb ,_bcceg );
|
||
};return _bffedb ,nil ;};
|
||
|
||
// GetOutlines returns a high-level Outline object, based on the outline tree
|
||
// of the reader.
|
||
func (_gcfbc *PdfReader )GetOutlines ()(*Outline ,error ){if _gcfbc ==nil {return nil ,_gf .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");
|
||
};_afcb :=_gcfbc .GetOutlineTree ();if _afcb ==nil {return nil ,_gf .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 _ebega func (_efeeb *PdfOutlineTreeNode ,_bgadd *[]*OutlineItem );_ebega =func (_gabbb *PdfOutlineTreeNode ,_cbgbg *[]*OutlineItem ){if _gabbb ==nil {return ;};if _gabbb ._geeee ==nil {_eg .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 _afbea *OutlineItem ;if _ccba ,_cacecb :=_gabbb ._geeee .(*PdfOutlineItem );_cacecb {_aefc :=_ccba .Dest ;if (_aefc ==nil ||_ebb .IsNullObject (_aefc ))&&_ccba .A !=nil {if _gcab ,_degf :=_ebb .GetDict (_ccba .A );_degf {if _cgggb ,_facaa :=_ebb .GetArray (_gcab .Get ("\u0044"));
|
||
_facaa {_aefc =_cgggb ;}else {_aecfe ,_abacg :=_ebb .GetString (_gcab .Get ("\u0044"));if !_abacg {return ;};_eaeca ,_abacg :=_gcfbc ._fdgda .Get ("\u004e\u0061\u006de\u0073").(*_ebb .PdfObjectReference );if !_abacg {return ;};_egfdd ,_cbgg :=_gcfbc ._cafdf .LookupByReference (*_eaeca );
|
||
if _cbgg !=nil {_eg .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",_cbgg .Error ());
|
||
return ;};_dccab ,_abacg :=_egfdd .(*_ebb .PdfIndirectObject );if !_abacg {return ;};_fgfc :=map[_ebb .PdfObject ]struct{}{};_cbgg =_gcfbc .buildNameNodes (_dccab ,_fgfc );if _cbgg !=nil {_eg .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",_cbgg .Error ());
|
||
return ;};for _gcbed :=range _fgfc {_geaf ,_agbe :=_ebb .GetDict (_gcbed );if !_agbe {continue ;};_bebbd ,_agbe :=_ebb .GetArray (_geaf .Get ("\u004e\u0061\u006de\u0073"));if !_agbe {continue ;};for _dead ,_eacagc :=range _bebbd .Elements (){switch _eacagc .(type ){case *_ebb .PdfObjectString :if _eacagc .String ()==_aecfe .String (){if _gcbeg :=_bebbd .Get (_dead +1);
|
||
_gcbeg !=nil {if _bdefe ,_gdfg :=_ebb .GetDict (_gcbeg );_gdfg {_aefc =_bdefe .Get ("\u0044");break ;};};};};};};};};};var _dcdfgg OutlineDest ;if _aefc !=nil &&!_ebb .IsNullObject (_aefc ){if _fdee ,_ffdee :=_fbga (_aefc ,_gcfbc );_ffdee ==nil {_dcdfgg =*_fdee ;
|
||
}else {_eg .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",_aefc ,_ffdee );
|
||
};};_afbea =NewOutlineItem (_ccba .Title .Decoded (),_dcdfgg );*_cbgbg =append (*_cbgbg ,_afbea );if _ccba .Next !=nil {_ebega (_ccba .Next ,_cbgbg );};};if _gabbb .First !=nil {if _afbea !=nil {_cbgbg =&_afbea .Entries ;};_ebega (_gabbb .First ,_cbgbg );
|
||
};};_fdfac :=NewOutline ();_ebega (_afcb ,&_fdfac .Entries );return _fdfac ,nil ;};
|
||
|
||
// SetSubtype sets the Subtype S for given PdfOutputIntent.
|
||
func (_gdbeg *PdfOutputIntent )SetSubtype (subtype PdfOutputIntentType )error {if !subtype .IsValid (){return _gf .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");
|
||
};_gdbeg .S =subtype ;return nil ;};
|
||
|
||
// SetFillImage attach a model.Image to push button.
|
||
func (_ddgba *PdfFieldButton )SetFillImage (image *Image ){if _ddgba .IsPush (){_ddgba ._cdbf =image ;};};
|
||
|
||
// GetFillImage get attached model.Image in push button.
|
||
func (_gbfg *PdfFieldButton )GetFillImage ()*Image {if _gbfg .IsPush (){return _gbfg ._cdbf ;};return nil ;};
|
||
|
||
// NewPdfFilespec returns an initialized generic PDF filespec model.
|
||
func NewPdfFilespec ()*PdfFilespec {_ffdg :=&PdfFilespec {};_ffdg ._gcge =_ebb .MakeIndirectObject (_ebb .MakeDict ());return _ffdg ;};
|
||
|
||
// 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 _ab .ReadSeeker )(*CompliancePdfReader ,error ){const _ggaf ="\u006d\u006f\u0064\u0065l\u003a\u004e\u0065\u0077\u0043\u006f\u006d\u0070\u006c\u0069a\u006ec\u0065\u0050\u0064\u0066\u0052\u0065\u0061d\u0065\u0072";_ffcg ,_gabg :=_dcbd (rs ,&ReaderOpts {ComplianceMode :true },false ,_ggaf );
|
||
if _gabg !=nil {return nil ,_gabg ;};return &CompliancePdfReader {PdfReader :_ffcg },nil ;};func (_gdde *pdfFontType0 )getFontDescriptor ()*PdfFontDescriptor {if _gdde ._fbbd ==nil &&_gdde .DescendantFont !=nil {return _gdde .DescendantFont .FontDescriptor ();
|
||
};return _gdde ._fbbd ;};func (_gecf fontCommon )asPdfObjectDictionary (_aecf string )*_ebb .PdfObjectDictionary {if _aecf !=""&&_gecf ._dfbf !=""&&_aecf !=_gecf ._dfbf {_eg .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",_aecf ,_gecf );
|
||
}else if _aecf ==""&&_gecf ._dfbf ==""{_eg .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",_gecf );
|
||
}else if _gecf ._dfbf ==""{_gecf ._dfbf =_aecf ;};_dcbad :=_ebb .MakeDict ();_dcbad .Set ("\u0054\u0079\u0070\u0065",_ebb .MakeName ("\u0046\u006f\u006e\u0074"));_dcbad .Set ("\u0042\u0061\u0073\u0065\u0046\u006f\u006e\u0074",_ebb .MakeName (_gecf ._fdacg ));
|
||
_dcbad .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ebb .MakeName (_gecf ._dfbf ));if _gecf ._fbbd !=nil {_dcbad .Set ("\u0046\u006f\u006e\u0074\u0044\u0065\u0073\u0063\u0072i\u0070\u0074\u006f\u0072",_gecf ._fbbd .ToPdfObject ());};if _gecf ._baag !=nil {_dcbad .Set ("\u0054o\u0055\u006e\u0069\u0063\u006f\u0064e",_gecf ._baag );
|
||
}else if _gecf ._dcdd !=nil {_cgfda ,_ggadd :=_gecf ._dcdd .Stream ();if _ggadd !=nil {_eg .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",_ggadd );
|
||
}else {_dcbad .Set ("\u0054o\u0055\u006e\u0069\u0063\u006f\u0064e",_cgfda );};};return _dcbad ;};func (_cfc *PdfReader )newPdfActionImportDataFromDict (_agg *_ebb .PdfObjectDictionary )(*PdfActionImportData ,error ){_eef ,_gfe :=_gggf (_agg .Get ("\u0046"));
|
||
if _gfe !=nil {return nil ,_gfe ;};return &PdfActionImportData {F :_eef },nil ;};var _dbagf =_a .MustCompile ("\u005b\\\u006e\u005c\u0072\u005d\u002b");
|
||
|
||
// NewPdfOutlineItem returns an initialized PdfOutlineItem.
|
||
func NewPdfOutlineItem ()*PdfOutlineItem {_efaf :=&PdfOutlineItem {_cacdf :_ebb .MakeIndirectObject (_ebb .MakeDict ())};_efaf ._geeee =_efaf ;return _efaf ;};
|
||
|
||
// PdfActionHide represents a hide action.
|
||
type PdfActionHide struct{*PdfAction ;T _ebb .PdfObject ;H _ebb .PdfObject ;};
|
||
|
||
// NewPdfColorspaceFromPdfObject loads a PdfColorspace from a PdfObject. Returns an error if there is
|
||
// a failure in loading.
|
||
func NewPdfColorspaceFromPdfObject (obj _ebb .PdfObject )(PdfColorspace ,error ){if obj ==nil {return nil ,nil ;};var _bcag *_ebb .PdfIndirectObject ;var _daec *_ebb .PdfObjectName ;var _fecd *_ebb .PdfObjectArray ;if _eedf ,_ebgd :=obj .(*_ebb .PdfIndirectObject );
|
||
_ebgd {_bcag =_eedf ;};obj =_ebb .TraceToDirectObject (obj );switch _fcbf :=obj .(type ){case *_ebb .PdfObjectArray :_fecd =_fcbf ;case *_ebb .PdfObjectName :_daec =_fcbf ;};if _daec !=nil {switch *_daec {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:_eg .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",*_daec );return nil ,_fddb ;};};if _fecd !=nil &&_fecd .Len ()> 0{var _eaag _ebb .PdfObject =_bcag ;
|
||
if _bcag ==nil {_eaag =_fecd ;};if _ebga ,_cacd :=_ebb .GetName (_fecd .Get (0));_cacd {switch _ebga .String (){case "\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079":if _fecd .Len ()==1{return NewPdfColorspaceDeviceGray (),nil ;};case "\u0044e\u0076\u0069\u0063\u0065\u0052\u0047B":if _fecd .Len ()==1{return NewPdfColorspaceDeviceRGB (),nil ;
|
||
};case "\u0044\u0065\u0076\u0069\u0063\u0065\u0043\u004d\u0059\u004b":if _fecd .Len ()==1{return NewPdfColorspaceDeviceCMYK (),nil ;};case "\u0043a\u006c\u0047\u0072\u0061\u0079":return _ageed (_eaag );case "\u0043\u0061\u006c\u0052\u0047\u0042":return _fcgc (_eaag );
|
||
case "\u004c\u0061\u0062":return _efad (_eaag );case "\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064":return _aedce (_eaag );case "\u0050a\u0074\u0074\u0065\u0072\u006e":return _abba (_eaag );case "\u0049n\u0064\u0065\u0078\u0065\u0064":return _dffb (_eaag );
|
||
case "\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e":return _agcbd (_eaag );case "\u0044e\u0076\u0069\u0063\u0065\u004e":return _egaaa (_eaag );default:_eg .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",*_ebga );
|
||
};};};_eg .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 ;};
|
||
|
||
// NewPdfActionSound returns a new "sound" action.
|
||
func NewPdfActionSound ()*PdfActionSound {_ec :=NewPdfAction ();_gc :=&PdfActionSound {};_gc .PdfAction =_ec ;_ec .SetContext (_gc );return _gc ;};func (_dge *PdfReader )newPdfAnnotationHighlightFromDict (_bbbd *_ebb .PdfObjectDictionary )(*PdfAnnotationHighlight ,error ){_bebf :=PdfAnnotationHighlight {};
|
||
_begf ,_bbf :=_dge .newPdfAnnotationMarkupFromDict (_bbbd );if _bbf !=nil {return nil ,_bbf ;};_bebf .PdfAnnotationMarkup =_begf ;_bebf .QuadPoints =_bbbd .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");return &_bebf ,nil ;};
|
||
|
||
// SubsetRegistered subsets the font to only the glyphs that have been registered by the encoder.
|
||
// NOTE: This only works on fonts that support subsetting. For unsupported fonts this is a no-op, although a debug
|
||
// message is emitted. Currently supported fonts are embedded Truetype CID fonts (type 0).
|
||
// NOTE: Make sure to call this soon before writing (once all needed runes have been registered).
|
||
// If using package creator, use its EnableFontSubsetting method instead.
|
||
func (_gddbb *PdfFont )SubsetRegistered ()error {switch _fabag :=_gddbb ._ebcad .(type ){case *pdfFontType0 :_ebfec :=_fabag .subsetRegistered ();if _ebfec !=nil {_eg .Log .Debug ("\u0053\u0075b\u0073\u0065\u0074 \u0065\u0072\u0072\u006f\u0072\u003a\u0020\u0025\u0076",_ebfec );
|
||
return _ebfec ;};if _fabag ._dfffc !=nil {if _fabag ._bfdgc !=nil {_fabag ._bfdgc .ToPdfObject ();};_fabag .ToPdfObject ();};default:_eg .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",_fabag );
|
||
};return nil ;};
|
||
|
||
// Encoder returns the font's text encoder.
|
||
func (_fbgff pdfCIDFontType0 )Encoder ()_da .TextEncoder {return _fbgff ._gefge };var _ pdfFont =(*pdfFontSimple )(nil );
|
||
|
||
// Encoder returns the font's text encoder.
|
||
func (_dffc pdfFontType0 )Encoder ()_da .TextEncoder {return _dffc ._bfdgc };
|
||
|
||
// R returns the value of the red component of the color.
|
||
func (_aade *PdfColorDeviceRGB )R ()float64 {return _aade [0]};func _gfdbb (_aacab *fontCommon )*pdfCIDFontType2 {return &pdfCIDFontType2 {fontCommon :*_aacab }};
|
||
|
||
// 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 ;
|
||
|
||
// 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"`;};func (_cccbf *PdfFunctionType0 )processSamples ()error {_eddb :=_abg .ResampleBytes (_cccbf ._aeecg ,_cccbf .BitsPerSample );
|
||
_cccbf ._egdg =_eddb ;return nil ;};
|
||
|
||
// PdfFilespec represents a file specification which can either refer to an external or embedded file.
|
||
type PdfFilespec struct{Type _ebb .PdfObject ;FS _ebb .PdfObject ;F _ebb .PdfObject ;UF _ebb .PdfObject ;DOS _ebb .PdfObject ;Mac _ebb .PdfObject ;Unix _ebb .PdfObject ;ID _ebb .PdfObject ;V _ebb .PdfObject ;EF _ebb .PdfObject ;RF _ebb .PdfObject ;Desc _ebb .PdfObject ;
|
||
CI _ebb .PdfObject ;_gcge _ebb .PdfObject ;};func (_bcgga *PdfWriter )setHashIDs (_bcdcc _c .Hash )error {_dfgbe :=_bcdcc .Sum (nil );if _bcgga ._gfdea ==""{_bcgga ._gfdea =_d .EncodeToString (_dfgbe [:8]);};_bcgga .setDocumentIDs (_bcgga ._gfdea ,_d .EncodeToString (_dfgbe [8:]));
|
||
return nil ;};
|
||
|
||
// String returns a string that describes `font`.
|
||
func (_eeda *PdfFont )String ()string {_ggf :="";if _eeda ._ebcad .Encoder ()!=nil {_ggf =_eeda ._ebcad .Encoder ().String ();};return _bg .Sprintf ("\u0046\u004f\u004e\u0054\u007b\u0025\u0054\u0020\u0025s\u0020\u0025\u0073\u007d",_eeda ._ebcad ,_eeda .baseFields ().coreString (),_ggf );
|
||
};func (_gdgf *PdfReader )newPdfFieldFromIndirectObject (_ddfd *_ebb .PdfIndirectObject ,_cege *PdfField )(*PdfField ,error ){if _aaed ,_cfga :=_gdgf ._abbaca .GetModelFromPrimitive (_ddfd ).(*PdfField );_cfga {return _aaed ,nil ;};_bgbb ,_fefec :=_ebb .GetDict (_ddfd );
|
||
if !_fefec {return nil ,_bg .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");
|
||
};_acgf :=NewPdfField ();_acgf ._cdfd =_ddfd ;_acgf ._cdfd .PdfObject =_bgbb ;if _dcgd ,_ecdd :=_ebb .GetName (_bgbb .Get ("\u0046\u0054"));_ecdd {_acgf .FT =_dcgd ;};if _cege !=nil {_acgf .Parent =_cege ;};_acgf .T ,_ =_bgbb .Get ("\u0054").(*_ebb .PdfObjectString );
|
||
_acgf .TU ,_ =_bgbb .Get ("\u0054\u0055").(*_ebb .PdfObjectString );_acgf .TM ,_ =_bgbb .Get ("\u0054\u004d").(*_ebb .PdfObjectString );_acgf .Ff ,_ =_bgbb .Get ("\u0046\u0066").(*_ebb .PdfObjectInteger );_acgf .V =_bgbb .Get ("\u0056");_acgf .DV =_bgbb .Get ("\u0044\u0056");
|
||
_acgf .AA =_bgbb .Get ("\u0041\u0041");if DA :=_bgbb .Get ("\u0044\u0041");DA !=nil {DA ,_ :=_ebb .GetString (DA );_acgf .VariableText =&VariableText {DA :DA };Q ,_ :=_bgbb .Get ("\u0051").(*_ebb .PdfObjectInteger );DS ,_ :=_bgbb .Get ("\u0044\u0053").(*_ebb .PdfObjectString );
|
||
RV :=_bgbb .Get ("\u0052\u0056");_acgf .VariableText .Q =Q ;_acgf .VariableText .DS =DS ;_acgf .VariableText .RV =RV ;};_gbgbc :=_acgf .FT ;if _gbgbc ==nil &&_cege !=nil {_gbgbc =_cege .FT ;};if _gbgbc !=nil {switch *_gbgbc {case "\u0054\u0078":_gace ,_aadd :=_cfgdf (_bgbb );
|
||
if _aadd !=nil {return nil ,_aadd ;};_gace .PdfField =_acgf ;_acgf ._cada =_gace ;case "\u0043\u0068":_caae ,_bcecc :=_egcdd (_bgbb );if _bcecc !=nil {return nil ,_bcecc ;};_caae .PdfField =_acgf ;_acgf ._cada =_caae ;case "\u0042\u0074\u006e":_gggff ,_edeae :=_gccbf (_bgbb );
|
||
if _edeae !=nil {return nil ,_edeae ;};_gggff .PdfField =_acgf ;_acgf ._cada =_gggff ;case "\u0053\u0069\u0067":_cgcc ,_fgccc :=_gdgf .newPdfFieldSignatureFromDict (_bgbb );if _fgccc !=nil {return nil ,_fgccc ;};_cgcc .PdfField =_acgf ;_acgf ._cada =_cgcc ;
|
||
default:_eg .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",*_acgf .FT );return nil ,_gf .New ("\u0075\u006e\u0073\u0075pp\u006f\u0072\u0074\u0065\u0064\u0020\u0066\u0069\u0065\u006c\u0064\u0020\u0074\u0079p\u0065");
|
||
};};if _fadc ,_deef :=_ebb .GetName (_bgbb .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065"));_deef {if *_fadc =="\u0057\u0069\u0064\u0067\u0065\u0074"{_abbe ,_egabg :=_gdgf .newPdfAnnotationFromIndirectObject (_ddfd );if _egabg !=nil {return nil ,_egabg ;
|
||
};_adda ,_bdfd :=_abbe .GetContext ().(*PdfAnnotationWidget );if !_bdfd {return nil ,_gf .New ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0077\u0069\u0064\u0067e\u0074 \u0061n\u006e\u006f\u0074\u0061\u0074\u0069\u006fn");};_adda ._gce =_acgf ;_adda .Parent =_acgf ._cdfd ;
|
||
_acgf .Annotations =append (_acgf .Annotations ,_adda );return _acgf ,nil ;};};_aebg :=true ;if _dcee ,_dfagfg :=_ebb .GetArray (_bgbb .Get ("\u004b\u0069\u0064\u0073"));_dfagfg {_fcfea :=make ([]*_ebb .PdfIndirectObject ,0,_dcee .Len ());for _ ,_gaaf :=range _dcee .Elements (){_fgeg ,_afba :=_ebb .GetIndirect (_gaaf );
|
||
if !_afba {_cffbc ,_cgdfg :=_ebb .GetStream (_gaaf );if _cgdfg &&_cffbc .PdfObjectDictionary !=nil {_efeee ,_feda :=_ebb .GetNameVal (_cffbc .Get ("\u0054\u0079\u0070\u0065"));if _feda &&_efeee =="\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061"{_eg .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 ,_gf .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");};_dgdee ,_agdca :=_ebb .GetDict (_fgeg );
|
||
if !_agdca {return nil ,ErrTypeCheck ;};if _aebg {_aebg =!_abgfe (_dgdee );};_fcfea =append (_fcfea ,_fgeg );};for _ ,_ceab :=range _fcfea {if _aebg {_begd ,_eedfa :=_gdgf .newPdfAnnotationFromIndirectObject (_ceab );if _eedfa !=nil {_eg .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",_eedfa );
|
||
return nil ,_eedfa ;};_bbfc ,_gaeca :=_begd ._efd .(*PdfAnnotationWidget );if !_gaeca {return nil ,ErrTypeCheck ;};_bbfc ._gce =_acgf ;_acgf .Annotations =append (_acgf .Annotations ,_bbfc );}else {_eedff ,_adfgg :=_gdgf .newPdfFieldFromIndirectObject (_ceab ,_acgf );
|
||
if _adfgg !=nil {_eg .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",_adfgg );return nil ,_adfgg ;};_acgf .Kids =append (_acgf .Kids ,_eedff );
|
||
};};};return _acgf ,nil ;};func _bcbe (_dbca *_ebb .PdfObjectDictionary )*VRI {_fbde ,_ :=_ebb .GetString (_dbca .Get ("\u0054\u0055"));_cccba ,_ :=_ebb .GetString (_dbca .Get ("\u0054\u0053"));return &VRI {Cert :_ffaa (_dbca .Get ("\u0043\u0065\u0072\u0074")),OCSP :_ffaa (_dbca .Get ("\u004f\u0043\u0053\u0050")),CRL :_ffaa (_dbca .Get ("\u0043\u0052\u004c")),TU :_fbde ,TS :_cccba };
|
||
};
|
||
|
||
// 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 _ebb .PdfObjectArray )(*PdfRectangle ,error ){_efabe :=PdfRectangle {};if arr .Len ()!=4{return nil ,_gf .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 _bacc error ;_efabe .Llx ,_bacc =_ebb .GetNumberAsFloat (arr .Get (0));if _bacc !=nil {return nil ,_bacc ;};_efabe .Lly ,_bacc =_ebb .GetNumberAsFloat (arr .Get (1));if _bacc !=nil {return nil ,_bacc ;};_efabe .Urx ,_bacc =_ebb .GetNumberAsFloat (arr .Get (2));
|
||
if _bacc !=nil {return nil ,_bacc ;};_efabe .Ury ,_bacc =_ebb .GetNumberAsFloat (arr .Get (3));if _bacc !=nil {return nil ,_bacc ;};return &_efabe ,nil ;};
|
||
|
||
// PdfAnnotationFreeText represents FreeText annotations.
|
||
// (Section 12.5.6.6).
|
||
type PdfAnnotationFreeText struct{*PdfAnnotation ;*PdfAnnotationMarkup ;DA _ebb .PdfObject ;Q _ebb .PdfObject ;RC _ebb .PdfObject ;DS _ebb .PdfObject ;CL _ebb .PdfObject ;IT _ebb .PdfObject ;BE _ebb .PdfObject ;RD _ebb .PdfObject ;BS _ebb .PdfObject ;LE _ebb .PdfObject ;
|
||
};
|
||
|
||
// ToPdfObject returns the PDF representation of the shading dictionary.
|
||
func (_aacag *PdfShadingType4 )ToPdfObject ()_ebb .PdfObject {_aacag .PdfShading .ToPdfObject ();_gbacbc ,_fcbe :=_aacag .getShadingDict ();if _fcbe !=nil {_eg .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 _aacag .BitsPerCoordinate !=nil {_gbacbc .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065",_aacag .BitsPerCoordinate );};if _aacag .BitsPerComponent !=nil {_gbacbc .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_aacag .BitsPerComponent );
|
||
};if _aacag .BitsPerFlag !=nil {_gbacbc .Set ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067",_aacag .BitsPerFlag );};if _aacag .Decode !=nil {_gbacbc .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_aacag .Decode );};if _aacag .Function !=nil {if len (_aacag .Function )==1{_gbacbc .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_aacag .Function [0].ToPdfObject ());
|
||
}else {_fedec :=_ebb .MakeArray ();for _ ,_ebac :=range _aacag .Function {_fedec .Append (_ebac .ToPdfObject ());};_gbacbc .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_fedec );};};return _aacag ._fbfae ;};
|
||
|
||
// 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 _ebb .StreamEncoder ;Intent _ebb .PdfObject ;ImageMask _ebb .PdfObject ;Mask _ebb .PdfObject ;Matte _ebb .PdfObject ;Decode _ebb .PdfObject ;Interpolate _ebb .PdfObject ;
|
||
Alternatives _ebb .PdfObject ;SMask _ebb .PdfObject ;SMaskInData _ebb .PdfObject ;Name _ebb .PdfObject ;StructParent _ebb .PdfObject ;ID _ebb .PdfObject ;OPI _ebb .PdfObject ;Metadata _ebb .PdfObject ;OC _ebb .PdfObject ;Stream []byte ;_fbeec *_ebb .PdfObjectStream ;
|
||
};
|
||
|
||
// NewPdfAnnotationRedact returns a new redact annotation.
|
||
func NewPdfAnnotationRedact ()*PdfAnnotationRedact {_fcb :=NewPdfAnnotation ();_egc :=&PdfAnnotationRedact {};_egc .PdfAnnotation =_fcb ;_egc .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_fcb .SetContext (_egc );return _egc ;};
|
||
|
||
// PdfShadingType5 is a Lattice-form Gouraud-shaded triangle mesh.
|
||
type PdfShadingType5 struct{*PdfShading ;BitsPerCoordinate *_ebb .PdfObjectInteger ;BitsPerComponent *_ebb .PdfObjectInteger ;VerticesPerRow *_ebb .PdfObjectInteger ;Decode *_ebb .PdfObjectArray ;Function []PdfFunction ;};
|
||
|
||
// Insert adds a top level outline item in the outline,
|
||
// at the specified index.
|
||
func (_ebdcg *Outline )Insert (index uint ,item *OutlineItem ){_bffc :=uint (len (_ebdcg .Entries ));if index > _bffc {index =_bffc ;};_ebdcg .Entries =append (_ebdcg .Entries [:index ],append ([]*OutlineItem {item },_ebdcg .Entries [index :]...)...);};
|
||
|
||
|
||
// NewPdfAnnotationUnderline returns a new text underline annotation.
|
||
func NewPdfAnnotationUnderline ()*PdfAnnotationUnderline {_gec :=NewPdfAnnotation ();_fdea :=&PdfAnnotationUnderline {};_fdea .PdfAnnotation =_gec ;_fdea .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_gec .SetContext (_fdea );return _fdea ;};
|
||
|
||
// SetPdfTitle sets the Title attribute of the output PDF.
|
||
func SetPdfTitle (title string ){_daddc .Lock ();defer _daddc .Unlock ();_fead =title };
|
||
|
||
// 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 (_edead []_ebb .PdfObject )([]_ebb .PdfObject ,error );};
|
||
|
||
// ToInteger convert to an integer format.
|
||
func (_gdcdc *PdfColorCalRGB )ToInteger (bits int )[3]uint32 {_fgfea :=_cbg .Pow (2,float64 (bits ))-1;return [3]uint32 {uint32 (_fgfea *_gdcdc .A ()),uint32 (_fgfea *_gdcdc .B ()),uint32 (_fgfea *_gdcdc .C ())};};func (_gabgb *LTV )buildCertChain (_egdf ,_bceafa []*_g .Certificate )([]*_g .Certificate ,map[string ]*_g .Certificate ,error ){_gdbcg :=map[string ]*_g .Certificate {};
|
||
for _ ,_faege :=range _egdf {_gdbcg [_faege .Subject .CommonName ]=_faege ;};_bbbee :=_egdf ;for _ ,_gfbgee :=range _bceafa {_ggbf :=_gfbgee .Subject .CommonName ;if _ ,_fbec :=_gdbcg [_ggbf ];_fbec {continue ;};_gdbcg [_ggbf ]=_gfbgee ;_bbbee =append (_bbbee ,_gfbgee );
|
||
};if len (_bbbee )==0{return nil ,nil ,ErrSignNoCertificates ;};var _afga error ;for _gbafd :=_bbbee [0];_gbafd !=nil &&!_gabgb .CertClient .IsCA (_gbafd );{_cggbe ,_ccacd :=_gdbcg [_gbafd .Issuer .CommonName ];if !_ccacd {if _cggbe ,_afga =_gabgb .CertClient .GetIssuer (_gbafd );
|
||
_afga !=nil {_eg .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",_afga );
|
||
break ;};_gdbcg [_gbafd .Issuer .CommonName ]=_cggbe ;_bbbee =append (_bbbee ,_cggbe );};_gbafd =_cggbe ;};return _bbbee ,_gdbcg ,nil ;};
|
||
|
||
// 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 (_feebc *CompliancePdfReader )error ;};func (_bbfce *PdfPage )getParentResources ()(*PdfPageResources ,error ){_dafef :=_bbfce .Parent ;for _dafef !=nil {_dgff ,_fggdd :=_ebb .GetDict (_dafef );if !_fggdd {_eg .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 ,_gf .New ("i\u006e\u0076\u0061\u006cid\u0020p\u0061\u0072\u0065\u006e\u0074 \u006f\u0062\u006a\u0065\u0063\u0074");};if _cagbg :=_dgff .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");_cagbg !=nil {_bafdbbg ,_gbebe :=_ebb .GetDict (_cagbg );
|
||
if !_gbebe {return nil ,_gf .New ("i\u006e\u0076\u0061\u006cid\u0020r\u0065\u0073\u006f\u0075\u0072c\u0065\u0020\u0064\u0069\u0063\u0074");};_addba ,_eecgd :=NewPdfPageResourcesFromDict (_bafdbbg );if _eecgd !=nil {return nil ,_eecgd ;};return _addba ,nil ;
|
||
};_dafef =_dgff .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");};return nil ,nil ;};func _aagg (_ddafe _ebb .PdfObject )(PdfFunction ,error ){_ddafe =_ebb .ResolveReference (_ddafe );if _caeb ,_gaca :=_ddafe .(*_ebb .PdfObjectStream );_gaca {_gcfaf :=_caeb .PdfObjectDictionary ;
|
||
_fgbdbe ,_dceaf :=_gcfaf .Get ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065").(*_ebb .PdfObjectInteger );if !_dceaf {_eg .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 ,_gf .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 *_fgbdbe ==0{return _gfcg (_caeb );}else if *_fgbdbe ==4{return _gbab (_caeb );
|
||
}else {return nil ,_gf .New ("i\u006e\u0076\u0061\u006cid\u0020f\u0075\u006e\u0063\u0074\u0069o\u006e\u0020\u0074\u0079\u0070\u0065");};}else if _eaeea ,_cfecb :=_ddafe .(*_ebb .PdfIndirectObject );_cfecb {_geea ,_acag :=_eaeea .PdfObject .(*_ebb .PdfObjectDictionary );
|
||
if !_acag {_eg .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 ,_gf .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");};_efff ,_acag :=_geea .Get ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065").(*_ebb .PdfObjectInteger );
|
||
if !_acag {_eg .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 ,_gf .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 *_efff ==2{return _fafaa (_eaeea );}else if *_efff ==3{return _ggbgd (_eaeea );}else {return nil ,_gf .New ("i\u006e\u0076\u0061\u006cid\u0020f\u0075\u006e\u0063\u0074\u0069o\u006e\u0020\u0074\u0079\u0070\u0065");};}else if _baeb ,_eccb :=_ddafe .(*_ebb .PdfObjectDictionary );
|
||
_eccb {_fgbce ,_cdbef :=_baeb .Get ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065").(*_ebb .PdfObjectInteger );if !_cdbef {_eg .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 ,_gf .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 *_fgbce ==2{return _fafaa (_baeb );}else if *_fgbce ==3{return _ggbgd (_baeb );
|
||
}else {return nil ,_gf .New ("i\u006e\u0076\u0061\u006cid\u0020f\u0075\u006e\u0063\u0074\u0069o\u006e\u0020\u0074\u0079\u0070\u0065");};}else {_eg .Log .Debug ("\u0046u\u006e\u0063\u0074\u0069\u006f\u006e\u0020\u0054\u0079\u0070\u0065 \u0065\u0072\u0072\u006f\u0072\u003a\u0020\u0025\u0023\u0076",_ddafe );
|
||
return nil ,_gf .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};};
|
||
|
||
// 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 (_fdefe *LTV )EnableByName (name string ,extraCerts []*_g .Certificate )error {_dbcbf :=_fdefe ._ggdbg ._acfe .AcroForm ;for _ ,_adeb :=range _dbcbf .AllFields (){_ffca ,_ :=_adeb .GetContext ().(*PdfFieldSignature );if _ffca ==nil {continue ;};if _aaedg :=_ffca .PartialName ();
|
||
_aaedg !=name {continue ;};return _fdefe .Enable (_ffca .V ,extraCerts );};return nil ;};func _gegg (_effe *fontCommon )*pdfFontType0 {return &pdfFontType0 {fontCommon :*_effe }};
|
||
|
||
// PdfShadingType1 is a Function-based shading.
|
||
type PdfShadingType1 struct{*PdfShading ;Domain *_ebb .PdfObjectArray ;Matrix *_ebb .PdfObjectArray ;Function []PdfFunction ;};func (_ggba *PdfReader )loadAction (_eeb _ebb .PdfObject )(*PdfAction ,error ){if _geed ,_eegg :=_ebb .GetIndirect (_eeb );_eegg {_bff ,_efe :=_ggba .newPdfActionFromIndirectObject (_geed );
|
||
if _efe !=nil {return nil ,_efe ;};return _bff ,nil ;}else if !_ebb .IsNullObject (_eeb ){return nil ,_gf .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 ;};
|
||
|
||
// IsSimple returns true if `font` is a simple font.
|
||
func (_abdd *PdfFont )IsSimple ()bool {_ ,_gbba :=_abdd ._ebcad .(*pdfFontSimple );return _gbba };var _gdcdfg =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":{}};
|
||
|
||
|
||
// GetAction returns the PDF action for the annotation link.
|
||
func (_fdd *PdfAnnotationLink )GetAction ()(*PdfAction ,error ){if _fdd ._ffea !=nil {return _fdd ._ffea ,nil ;};if _fdd .A ==nil {return nil ,nil ;};if _fdd ._cfbg ==nil {return nil ,nil ;};_beb ,_dagf :=_fdd ._cfbg .loadAction (_fdd .A );if _dagf !=nil {return nil ,_dagf ;
|
||
};_fdd ._ffea =_beb ;return _fdd ._ffea ,nil ;};
|
||
|
||
// NewPdfActionSubmitForm returns a new "submit form" action.
|
||
func NewPdfActionSubmitForm ()*PdfActionSubmitForm {_bdc :=NewPdfAction ();_ccb :=&PdfActionSubmitForm {};_ccb .PdfAction =_bdc ;_bdc .SetContext (_ccb );return _ccb ;};
|
||
|
||
// IsCID returns true if the underlying font is CID.
|
||
func (_egeda *PdfFont )IsCID ()bool {return _egeda .baseFields ().isCIDFont ()};
|
||
|
||
// 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 (_fgfd *Image )Resample (targetBitsPerComponent int64 ){if _fgfd .BitsPerComponent ==targetBitsPerComponent {return ;};_dfbdb :=_fgfd .GetSamples ();if targetBitsPerComponent < _fgfd .BitsPerComponent {_faec :=_fgfd .BitsPerComponent -targetBitsPerComponent ;
|
||
for _bcccb :=range _dfbdb {_dfbdb [_bcccb ]>>=uint (_faec );};}else if targetBitsPerComponent > _fgfd .BitsPerComponent {_efdcg :=targetBitsPerComponent -_fgfd .BitsPerComponent ;for _cbebb :=range _dfbdb {_dfbdb [_cbebb ]<<=uint (_efdcg );};};_fgfd .BitsPerComponent =targetBitsPerComponent ;
|
||
if _fgfd .BitsPerComponent < 8{_fgfd .resampleLowBits (_dfbdb );return ;};_cedcc :=_dg .BytesPerLine (int (_fgfd .Width ),int (_fgfd .BitsPerComponent ),_fgfd .ColorComponents );_eecac :=make ([]byte ,_cedcc *int (_fgfd .Height ));var (_eeeag ,_gcee ,_deecg ,_cafebf int ;
|
||
_cfbce uint32 ;);for _deecg =0;_deecg < int (_fgfd .Height );_deecg ++{_eeeag =_deecg *_cedcc ;_gcee =(_deecg +1)*_cedcc -1;_dbcad :=_abg .ResampleUint32 (_dfbdb [_eeeag :_gcee ],int (targetBitsPerComponent ),8);for _cafebf ,_cfbce =range _dbcad {_eecac [_cafebf +_eeeag ]=byte (_cfbce );
|
||
};};_fgfd .Data =_eecac ;};
|
||
|
||
// 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 (_eagdc *XObjectForm )SetContentStream (content []byte ,encoder _ebb .StreamEncoder )error {_adefa :=content ;if encoder ==nil {if _eagdc .Filter !=nil {encoder =_eagdc .Filter ;}else {encoder =_ebb .NewRawEncoder ();};};_affbcb ,_degcfg :=encoder .EncodeBytes (_adefa );
|
||
if _degcfg !=nil {return _degcfg ;};_adefa =_affbcb ;_eagdc .Stream =_adefa ;_eagdc .Filter =encoder ;return nil ;};
|
||
|
||
// XObjectForm (Table 95 in 8.10.2).
|
||
type XObjectForm struct{Filter _ebb .StreamEncoder ;FormType _ebb .PdfObject ;BBox _ebb .PdfObject ;Matrix _ebb .PdfObject ;Resources *PdfPageResources ;Group _ebb .PdfObject ;Ref _ebb .PdfObject ;MetaData _ebb .PdfObject ;PieceInfo _ebb .PdfObject ;LastModified _ebb .PdfObject ;
|
||
StructParent _ebb .PdfObject ;StructParents _ebb .PdfObject ;OPI _ebb .PdfObject ;OC _ebb .PdfObject ;Name _ebb .PdfObject ;
|
||
|
||
// Stream data.
|
||
Stream []byte ;_gebcd *_ebb .PdfObjectStream ;};
|
||
|
||
// PdfDate represents a date, which is a PDF string of the form:
|
||
// (D:YYYYMMDDHHmmSSOHH'mm)
|
||
type PdfDate struct{_dacdd int64 ;_agaba int64 ;_edcfe int64 ;_aedbe int64 ;_cfaba int64 ;_cgbcd int64 ;_degeb byte ;_gcccb int64 ;_fddcbg int64 ;};
|
||
|
||
// Encrypt encrypts the output file with a specified user/owner password.
|
||
func (_aagad *PdfWriter )Encrypt (userPass ,ownerPass []byte ,options *EncryptOptions )error {_fcbaf :=RC4_128bit ;if options !=nil {_fcbaf =options .Algorithm ;};_aaebb :=_fe .PermOwner ;if options !=nil {_aaebb =options .Permissions ;};var _egad _fa .Filter ;
|
||
switch _fcbaf {case RC4_128bit :_egad =_fa .NewFilterV2 (16);case AES_128bit :_egad =_fa .NewFilterAESV2 ();case AES_256bit :_egad =_fa .NewFilterAESV3 ();default:return _bg .Errorf ("\u0075n\u0073\u0075\u0070\u0070o\u0072\u0074\u0065\u0064\u0020a\u006cg\u006fr\u0069\u0074\u0068\u006d\u003a\u0020\u0025v",options .Algorithm );
|
||
};_gbgba ,_cfffd ,_dbfba :=_ebb .PdfCryptNewEncrypt (_egad ,userPass ,ownerPass ,_aaebb );if _dbfba !=nil {return _dbfba ;};_aagad ._cgfde =_gbgba ;if _cfffd .Major !=0{_aagad .SetVersion (_cfffd .Major ,_cfffd .Minor );};_aagad ._gaccf =_cfffd .Encrypt ;
|
||
_aagad ._gfdea ,_aagad ._gffb =_cfffd .ID0 ,_cfffd .ID1 ;_bbecb :=_ebb .MakeIndirectObject (_cfffd .Encrypt );_aagad ._cbcaa =_bbecb ;_aagad .addObject (_bbecb );return nil ;};
|
||
|
||
// HasXObjectByName checks if has XObject resource by name.
|
||
func (_eafd *PdfPage )HasXObjectByName (name _ebb .PdfObjectName )bool {_ebece ,_dffcb :=_eafd .Resources .XObject .(*_ebb .PdfObjectDictionary );if !_dffcb {return false ;};if _eegb :=_ebece .Get (name );_eegb !=nil {return true ;};return false ;};func (_dbdg *PdfReader )newPdfActionNamedFromDict (_fdef *_ebb .PdfObjectDictionary )(*PdfActionNamed ,error ){return &PdfActionNamed {N :_fdef .Get ("\u004e")},nil ;
|
||
};func _eega (_ebeg *fontCommon )*pdfFontType3 {return &pdfFontType3 {fontCommon :*_ebeg }};
|
||
|
||
// Fill populates `form` with values provided by `provider`.
|
||
func (_dfgge *PdfAcroForm )Fill (provider FieldValueProvider )error {return _dfgge .fill (provider ,nil )};func _ggdfc (_agcdd _ebb .PdfObject )(*PdfShading ,error ){_cfgad :=&PdfShading {};var _caaad *_ebb .PdfObjectDictionary ;if _aced ,_dbddf :=_ebb .GetIndirect (_agcdd );
|
||
_dbddf {_cfgad ._fbfae =_aced ;_eabfb ,_gbdfe :=_aced .PdfObject .(*_ebb .PdfObjectDictionary );if !_gbdfe {_eg .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 ,_ebb .ErrTypeError ;};_caaad =_eabfb ;}else if _cffdc ,_ebeaf :=_ebb .GetStream (_agcdd );_ebeaf {_cfgad ._fbfae =_cffdc ;_caaad =_cffdc .PdfObjectDictionary ;}else if _befef ,_cfabb :=_ebb .GetDict (_agcdd );_cfabb {_cfgad ._fbfae =_befef ;
|
||
_caaad =_befef ;}else {_eg .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",_agcdd );return nil ,_ebb .ErrTypeError ;};if _caaad ==nil {_eg .Log .Debug ("\u0044i\u0063t\u0069\u006f\u006e\u0061\u0072y\u0020\u006di\u0073\u0073\u0069\u006e\u0067");
|
||
return nil ,_gf .New ("\u0064\u0069\u0063t\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};_agcdd =_caaad .Get ("S\u0068\u0061\u0064\u0069\u006e\u0067\u0054\u0079\u0070\u0065");if _agcdd ==nil {_eg .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 ;};_agcdd =_ebb .TraceToDirectObject (_agcdd );_dafea ,_efcf :=_agcdd .(*_ebb .PdfObjectInteger );if !_efcf {_eg .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",_agcdd );
|
||
return nil ,_ebb .ErrTypeError ;};if *_dafea < 1||*_dafea > 7{_eg .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",*_dafea );
|
||
return nil ,_ebb .ErrTypeError ;};_cfgad .ShadingType =_dafea ;_agcdd =_caaad .Get ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065");if _agcdd ==nil {_eg .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 ;};_abeef ,_ecdcf :=NewPdfColorspaceFromPdfObject (_agcdd );if _ecdcf !=nil {_eg .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",_ecdcf );
|
||
return nil ,_ecdcf ;};_cfgad .ColorSpace =_abeef ;_agcdd =_caaad .Get ("\u0042\u0061\u0063\u006b\u0067\u0072\u006f\u0075\u006e\u0064");if _agcdd !=nil {_agcdd =_ebb .TraceToDirectObject (_agcdd );_decab ,_gegeea :=_agcdd .(*_ebb .PdfObjectArray );if !_gegeea {_eg .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)",_agcdd );
|
||
return nil ,_ebb .ErrTypeError ;};_cfgad .Background =_decab ;};_agcdd =_caaad .Get ("\u0042\u0042\u006f\u0078");if _agcdd !=nil {_agcdd =_ebb .TraceToDirectObject (_agcdd );_fggc ,_abffc :=_agcdd .(*_ebb .PdfObjectArray );if !_abffc {_eg .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)",_agcdd );
|
||
return nil ,_ebb .ErrTypeError ;};_bgbad ,_agacf :=NewPdfRectangle (*_fggc );if _agacf !=nil {_eg .Log .Debug ("\u0042\u0042\u006f\u0078\u0020\u0065\u0072\u0072\u006fr\u003a\u0020\u0025\u0076",_agacf );return nil ,_agacf ;};_cfgad .BBox =_bgbad ;};_agcdd =_caaad .Get ("\u0041n\u0074\u0069\u0041\u006c\u0069\u0061s");
|
||
if _agcdd !=nil {_agcdd =_ebb .TraceToDirectObject (_agcdd );_baada ,_ddggg :=_agcdd .(*_ebb .PdfObjectBool );if !_ddggg {_eg .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",_agcdd );
|
||
return nil ,_ebb .ErrTypeError ;};_cfgad .AntiAlias =_baada ;};switch *_dafea {case 1:_ddgcf ,_cdcb :=_adaaf (_caaad );if _cdcb !=nil {return nil ,_cdcb ;};_ddgcf .PdfShading =_cfgad ;_cfgad ._edgag =_ddgcf ;return _cfgad ,nil ;case 2:_fdcbg ,_bbdda :=_adcga (_caaad );
|
||
if _bbdda !=nil {return nil ,_bbdda ;};_fdcbg .PdfShading =_cfgad ;_cfgad ._edgag =_fdcbg ;return _cfgad ,nil ;case 3:_eadbac ,_cgabg :=_bcafa (_caaad );if _cgabg !=nil {return nil ,_cgabg ;};_eadbac .PdfShading =_cfgad ;_cfgad ._edgag =_eadbac ;return _cfgad ,nil ;
|
||
case 4:_fcbc ,_befag :=_ccgda (_caaad );if _befag !=nil {return nil ,_befag ;};_fcbc .PdfShading =_cfgad ;_cfgad ._edgag =_fcbc ;return _cfgad ,nil ;case 5:_fdabbf ,_gggdd :=_ebcfc (_caaad );if _gggdd !=nil {return nil ,_gggdd ;};_fdabbf .PdfShading =_cfgad ;
|
||
_cfgad ._edgag =_fdabbf ;return _cfgad ,nil ;case 6:_afbed ,_gaga :=_gcabc (_caaad );if _gaga !=nil {return nil ,_gaga ;};_afbed .PdfShading =_cfgad ;_cfgad ._edgag =_afbed ;return _cfgad ,nil ;case 7:_ddagg ,_bbccc :=_gaab (_caaad );if _bbccc !=nil {return nil ,_bbccc ;
|
||
};_ddagg .PdfShading =_cfgad ;_cfgad ._edgag =_ddagg ;return _cfgad ,nil ;};return nil ,_gf .New ("u\u006ek\u006e\u006f\u0077\u006e\u0020\u0073\u0068\u0061d\u0069\u006e\u0067\u0020ty\u0070\u0065");};
|
||
|
||
// GetContainingPdfObject implements interface PdfModel.
|
||
func (_ddegcb *PdfSignatureReference )GetContainingPdfObject ()_ebb .PdfObject {return _ddegcb ._afacea };
|
||
|
||
// WriteString outputs the object as it is to be written to file.
|
||
func (_ebcde *PdfTransformParamsDocMDP )WriteString ()string {return _ebcde .ToPdfObject ().WriteString ();};func (_facce *PdfReader )newPdfAcroFormFromDict (_aaddd *_ebb .PdfIndirectObject ,_fddd *_ebb .PdfObjectDictionary )(*PdfAcroForm ,error ){_dddd :=NewPdfAcroForm ();
|
||
if _aaddd !=nil {_dddd ._adcg =_aaddd ;_aaddd .PdfObject =_ebb .MakeDict ();};if _bfcc :=_fddd .Get ("\u0046\u0069\u0065\u006c\u0064\u0073");_bfcc !=nil &&!_ebb .IsNullObject (_bfcc ){_gcca ,_cdaa :=_ebb .GetArray (_bfcc );if !_cdaa {return nil ,_bg .Errorf ("\u0066i\u0065\u006c\u0064\u0073\u0020\u006e\u006f\u0074\u0020\u0061\u006e \u0061\u0072\u0072\u0061\u0079\u0020\u0028\u0025\u0054\u0029",_bfcc );
|
||
};var _ebdca []*PdfField ;for _ ,_aefaa :=range _gcca .Elements (){_aagcc ,_ffaf :=_ebb .GetIndirect (_aefaa );if !_ffaf {if _ ,_bffd :=_aefaa .(*_ebb .PdfObjectNull );_bffd {_eg .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 ;};_eg .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",_aefaa );
|
||
return nil ,_bg .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");};_aeagg ,_bdabd :=_facce .newPdfFieldFromIndirectObject (_aagcc ,nil );
|
||
if _bdabd !=nil {return nil ,_bdabd ;};_eg .Log .Trace ("\u0041\u0063\u0072\u006fFo\u0072\u006d\u0020\u0046\u0069\u0065\u006c\u0064\u003a\u0020\u0025\u002b\u0076",*_aeagg );_ebdca =append (_ebdca ,_aeagg );};_dddd .Fields =&_ebdca ;};if _abggd :=_fddd .Get ("\u004ee\u0065d\u0041\u0070\u0070\u0065\u0061\u0072\u0061\u006e\u0063\u0065\u0073");
|
||
_abggd !=nil {_bgegg ,_gaebc :=_ebb .GetBool (_abggd );if _gaebc {_dddd .NeedAppearances =_bgegg ;}else {_eg .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",_abggd );
|
||
};};if _eggdf :=_fddd .Get ("\u0053\u0069\u0067\u0046\u006c\u0061\u0067\u0073");_eggdf !=nil {_ffgea ,_bfca :=_ebb .GetInt (_eggdf );if _bfca {_dddd .SigFlags =_ffgea ;}else {_eg .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",_eggdf );
|
||
};};if _dfdag :=_fddd .Get ("\u0043\u004f");_dfdag !=nil {_feaa ,_beaaf :=_ebb .GetArray (_dfdag );if _beaaf {_dddd .CO =_feaa ;}else {_eg .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",_dfdag );
|
||
};};if _fccgg :=_fddd .Get ("\u0044\u0052");_fccgg !=nil {if _cdffc ,_gccgb :=_ebb .GetDict (_fccgg );_gccgb {_caedda ,_cgcgb :=NewPdfPageResourcesFromDict (_cdffc );if _cgcgb !=nil {_eg .Log .Error ("\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0044R\u003a\u0020\u0025\u0076",_cgcgb );
|
||
return nil ,_cgcgb ;};_dddd .DR =_caedda ;}else {_eg .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",_fccgg );};};if _egfec :=_fddd .Get ("\u0044\u0041");
|
||
_egfec !=nil {_cacf ,_ggcg :=_ebb .GetString (_egfec );if _ggcg {_dddd .DA =_cacf ;}else {_eg .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",_egfec );
|
||
};};if _afdbd :=_fddd .Get ("\u0051");_afdbd !=nil {_dafda ,_gcffc :=_ebb .GetInt (_afdbd );if _gcffc {_dddd .Q =_dafda ;}else {_eg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a \u0051\u0020\u0069\u006e\u0076a\u006ci\u0064 \u0028\u0067\u006f\u0074\u0020\u0025\u0054)",_afdbd );
|
||
};};if _dcdfg :=_fddd .Get ("\u0058\u0046\u0041");_dcdfg !=nil {_dddd .XFA =_dcdfg ;};_dddd .ToPdfObject ();return _dddd ,nil ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the function.
|
||
func (_fcfee *PdfFunctionType2 )ToPdfObject ()_ebb .PdfObject {_bdgb :=_ebb .MakeDict ();_bdgb .Set ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065",_ebb .MakeInteger (2));_bgadf :=&_ebb .PdfObjectArray {};for _ ,_aggbd :=range _fcfee .Domain {_bgadf .Append (_ebb .MakeFloat (_aggbd ));
|
||
};_bdgb .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_bgadf );if _fcfee .Range !=nil {_befge :=&_ebb .PdfObjectArray {};for _ ,_egcgc :=range _fcfee .Range {_befge .Append (_ebb .MakeFloat (_egcgc ));};_bdgb .Set ("\u0052\u0061\u006eg\u0065",_befge );};
|
||
if _fcfee .C0 !=nil {_gcbb :=&_ebb .PdfObjectArray {};for _ ,_ebab :=range _fcfee .C0 {_gcbb .Append (_ebb .MakeFloat (_ebab ));};_bdgb .Set ("\u0043\u0030",_gcbb );};if _fcfee .C1 !=nil {_bfdge :=&_ebb .PdfObjectArray {};for _ ,_gfebc :=range _fcfee .C1 {_bfdge .Append (_ebb .MakeFloat (_gfebc ));
|
||
};_bdgb .Set ("\u0043\u0031",_bfdge );};_bdgb .Set ("\u004e",_ebb .MakeFloat (_fcfee .N ));if _fcfee ._bcbfd !=nil {_fcfee ._bcbfd .PdfObject =_bdgb ;return _fcfee ._bcbfd ;};return _bdgb ;};func _fgag (_cafgd map[_bad .GID ]int ,_ggfb uint16 )*_ebb .PdfObjectArray {_ddbd :=&_ebb .PdfObjectArray {};
|
||
_aeae :=_bad .GID (_ggfb );for _gbdc :=_bad .GID (0);_gbdc < _aeae ;{_cceg ,_gdcb :=_cafgd [_gbdc ];if !_gdcb {_gbdc ++;continue ;};_afbb :=_gbdc ;for _cbdda :=_afbb +1;_cbdda < _aeae ;_cbdda ++{if _aefe ,_begfa :=_cafgd [_cbdda ];!_begfa ||_cceg !=_aefe {break ;
|
||
};_afbb =_cbdda ;};_ddbd .Append (_ebb .MakeInteger (int64 (_gbdc )));_ddbd .Append (_ebb .MakeInteger (int64 (_afbb )));_ddbd .Append (_ebb .MakeInteger (int64 (_cceg )));_gbdc =_afbb +1;};return _ddbd ;};
|
||
|
||
// 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 *_ebb .PdfObjectArray ;ExtGState _ebb .PdfObject ;};
|
||
|
||
// RemovePage removes a page by number.
|
||
func (_faca *PdfAppender )RemovePage (pageNum int ){_bcdg :=pageNum -1;_faca ._dfbg =append (_faca ._dfbg [0:_bcdg ],_faca ._dfbg [pageNum :]...);};func (_ggbfd *PdfWriter )writeObject (_abegg int ,_abbf _ebb .PdfObject ){_eg .Log .Trace ("\u0057\u0072\u0069\u0074\u0065\u0020\u006f\u0062\u006a \u0023\u0025\u0064\u000a",_abegg );
|
||
if _ebacf ,_gabad :=_abbf .(*_ebb .PdfIndirectObject );_gabad {_ggbfd ._bedfc [_abegg ]=crossReference {Type :1,Offset :_ggbfd ._afedd ,Generation :_ebacf .GenerationNumber };_ggbdb :=_bg .Sprintf ("\u0025d\u0020\u0030\u0020\u006f\u0062\u006a\n",_abegg );
|
||
if _eaaagg ,_dffga :=_ebacf .PdfObject .(*pdfSignDictionary );_dffga {_eaaagg ._cbfg =_ggbfd ._afedd +int64 (len (_ggbdb ));};if _ebacf .PdfObject ==nil {_eg .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");
|
||
_ebacf .PdfObject =_ebb .MakeNull ();};_ggbdb +=_ebacf .PdfObject .WriteString ();_ggbdb +="\u000a\u0065\u006e\u0064\u006f\u0062\u006a\u000a";_ggbfd .writeString (_ggbdb );return ;};if _fbegb ,_ageead :=_abbf .(*_ebb .PdfObjectStream );_ageead {_ggbfd ._bedfc [_abegg ]=crossReference {Type :1,Offset :_ggbfd ._afedd ,Generation :_fbegb .GenerationNumber };
|
||
_afagc :=_bg .Sprintf ("\u0025d\u0020\u0030\u0020\u006f\u0062\u006a\n",_abegg );_afagc +=_fbegb .PdfObjectDictionary .WriteString ();_afagc +="\u000a\u0073\u0074\u0072\u0065\u0061\u006d\u000a";_ggbfd .writeString (_afagc );_ggbfd .writeBytes (_fbegb .Stream );
|
||
_ggbfd .writeString ("\u000ae\u006ed\u0073\u0074\u0072\u0065\u0061m\u000a\u0065n\u0064\u006f\u0062\u006a\u000a");return ;};if _feaef ,_caeac :=_abbf .(*_ebb .PdfObjectStreams );_caeac {_ggbfd ._bedfc [_abegg ]=crossReference {Type :1,Offset :_ggbfd ._afedd ,Generation :_feaef .GenerationNumber };
|
||
_fcdfg :=_bg .Sprintf ("\u0025d\u0020\u0030\u0020\u006f\u0062\u006a\n",_abegg );var _fgcge []string ;var _gbbgf string ;var _fgddda int64 ;for _fcaee ,_dadcc :=range _feaef .Elements (){_fbfb ,_deebe :=_dadcc .(*_ebb .PdfIndirectObject );if !_deebe {_eg .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",_abegg ,_dadcc );
|
||
continue ;};_bcgdb :=_fbfb .PdfObject .WriteString ()+"\u0020";_gbbgf =_gbbgf +_bcgdb ;_fgcge =append (_fgcge ,_bg .Sprintf ("\u0025\u0064\u0020%\u0064",_fbfb .ObjectNumber ,_fgddda ));_ggbfd ._bedfc [int (_fbfb .ObjectNumber )]=crossReference {Type :2,ObjectNumber :_abegg ,Index :_fcaee };
|
||
_fgddda =_fgddda +int64 (len ([]byte (_bcgdb )));};_eccf :=_ee .Join (_fgcge ,"\u0020")+"\u0020";_dbaab :=_ebb .NewFlateEncoder ();_bdbac :=_dbaab .MakeStreamDict ();_bdbac .Set (_ebb .PdfObjectName ("\u0054\u0079\u0070\u0065"),_ebb .MakeName ("\u004f\u0062\u006a\u0053\u0074\u006d"));
|
||
_bgeae :=int64 (_feaef .Len ());_bdbac .Set (_ebb .PdfObjectName ("\u004e"),_ebb .MakeInteger (_bgeae ));_bfgece :=int64 (len (_eccf ));_bdbac .Set (_ebb .PdfObjectName ("\u0046\u0069\u0072s\u0074"),_ebb .MakeInteger (_bfgece ));_gcafe ,_ :=_dbaab .EncodeBytes ([]byte (_eccf +_gbbgf ));
|
||
_adcd :=int64 (len (_gcafe ));_bdbac .Set (_ebb .PdfObjectName ("\u004c\u0065\u006e\u0067\u0074\u0068"),_ebb .MakeInteger (_adcd ));_fcdfg +=_bdbac .WriteString ();_fcdfg +="\u000a\u0073\u0074\u0072\u0065\u0061\u006d\u000a";_ggbfd .writeString (_fcdfg );
|
||
_ggbfd .writeBytes (_gcafe );_ggbfd .writeString ("\u000ae\u006ed\u0073\u0074\u0072\u0065\u0061m\u000a\u0065n\u0064\u006f\u0062\u006a\u000a");return ;};_ggbfd .writeString (_abbf .WriteString ());};func (_dafc fontCommon )coreString ()string {_bfgb :="";
|
||
if _dafc ._fbbd !=nil {_bfgb =_dafc ._fbbd .String ();};return _bg .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",_dafc ._dfbf ,_dafc ._fdacg ,_dafc ._efge ,_dafc ._efbg ,_dafc ._baag !=nil ,_dafc .fontFlags (),_bfgb );
|
||
};
|
||
|
||
// NewPdfAnnotationStrikeOut returns a new text strikeout annotation.
|
||
func NewPdfAnnotationStrikeOut ()*PdfAnnotationStrikeOut {_acg :=NewPdfAnnotation ();_cgb :=&PdfAnnotationStrikeOut {};_cgb .PdfAnnotation =_acg ;_cgb .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_acg .SetContext (_cgb );return _cgb ;};var _ pdfFont =(*pdfCIDFontType0 )(nil );
|
||
|
||
|
||
// PdfShadingType3 is a Radial shading.
|
||
type PdfShadingType3 struct{*PdfShading ;Coords *_ebb .PdfObjectArray ;Domain *_ebb .PdfObjectArray ;Function []PdfFunction ;Extend *_ebb .PdfObjectArray ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_gda *PdfAction )ToPdfObject ()_ebb .PdfObject {_fb :=_gda ._abe ;_baa :=_fb .PdfObject .(*_ebb .PdfObjectDictionary );_baa .Clear ();_baa .Set ("\u0054\u0079\u0070\u0065",_ebb .MakeName ("\u0041\u0063\u0074\u0069\u006f\u006e"));_baa .SetIfNotNil ("\u0053",_gda .S );
|
||
_baa .SetIfNotNil ("\u004e\u0065\u0078\u0074",_gda .Next );return _fb ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the colorspace.
|
||
func (_defd *PdfColorspaceDeviceCMYK )ToPdfObject ()_ebb .PdfObject {return _ebb .MakeName ("\u0044\u0065\u0076\u0069\u0063\u0065\u0043\u004d\u0059\u004b");};
|
||
|
||
// GetNumComponents returns the number of color components (1 for Indexed).
|
||
func (_ccag *PdfColorspaceSpecialIndexed )GetNumComponents ()int {return 1};
|
||
|
||
// ToPdfObject converts the PdfFont object to its PDF representation.
|
||
func (_addb *PdfFont )ToPdfObject ()_ebb .PdfObject {if _addb ._ebcad ==nil {_eg .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 _ebb .MakeNull ();
|
||
};return _addb ._ebcad .ToPdfObject ();};
|
||
|
||
// 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 ;_ecbbg _ebb .ParserMetadata ;};func (_fggde *PdfField )inherit (_gfcac func (*PdfField )bool )(bool ,error ){_eaeba :=map[*PdfField ]bool {};_affea :=false ;_becf :=_fggde ;for _becf !=nil {if _ ,_acfcd :=_eaeba [_becf ];
|
||
_acfcd {return false ,_gf .New ("\u0072\u0065\u0063\u0075rs\u0069\u0076\u0065\u0020\u0074\u0072\u0061\u0076\u0065\u0072\u0073\u0061\u006c");};_eebcb :=_gfcac (_becf );if _eebcb {_affea =true ;break ;};_eaeba [_becf ]=true ;_becf =_becf .Parent ;};return _affea ,nil ;
|
||
};
|
||
|
||
// GetAnnotations returns the list of page annotations for `page`. If not loaded attempts to load the
|
||
// annotations, otherwise returns the loaded list.
|
||
func (_eefa *PdfPage )GetAnnotations ()([]*PdfAnnotation ,error ){if _eefa ._bbfed !=nil {return _eefa ._bbfed ,nil ;};if _eefa .Annots ==nil {_eefa ._bbfed =[]*PdfAnnotation {};return nil ,nil ;};if _eefa ._ddab ==nil {_eefa ._bbfed =[]*PdfAnnotation {};
|
||
return nil ,nil ;};_bdee ,_agbgb :=_eefa ._ddab .loadAnnotations (_eefa .Annots );if _agbgb !=nil {return nil ,_agbgb ;};if _bdee ==nil {_eefa ._bbfed =[]*PdfAnnotation {};};_eefa ._bbfed =_bdee ;return _eefa ._bbfed ,nil ;};func _eeafg (_adgga _ebb .PdfObject )(*PdfPageResourcesColorspaces ,error ){_dgffa :=&PdfPageResourcesColorspaces {};
|
||
if _fbeed ,_fdffd :=_adgga .(*_ebb .PdfIndirectObject );_fdffd {_dgffa ._ddffd =_fbeed ;_adgga =_fbeed .PdfObject ;};_cccgg ,_degb :=_ebb .GetDict (_adgga );if !_degb {return nil ,_gf .New ("\u0043\u0053\u0020at\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");
|
||
};_dgffa .Names =[]string {};_dgffa .Colorspaces =map[string ]PdfColorspace {};for _ ,_bgdg :=range _cccgg .Keys (){_efgf :=_cccgg .Get (_bgdg );_dgffa .Names =append (_dgffa .Names ,string (_bgdg ));_aabd ,_fcgda :=NewPdfColorspaceFromPdfObject (_efgf );
|
||
if _fcgda !=nil {return nil ,_fcgda ;};_dgffa .Colorspaces [string (_bgdg )]=_aabd ;};return _dgffa ,nil ;};
|
||
|
||
// GetXObjectByName gets XObject by name.
|
||
func (_eeggg *PdfPage )GetXObjectByName (name _ebb .PdfObjectName )(_ebb .PdfObject ,bool ){_gfgcd ,_ffcfe :=_eeggg .Resources .XObject .(*_ebb .PdfObjectDictionary );if !_ffcfe {return nil ,false ;};if _gbacbb :=_gfgcd .Get (name );_gbacbb !=nil {return _gbacbb ,true ;
|
||
};return nil ,false ;};
|
||
|
||
// GetNumComponents returns the number of color components (3 for Lab).
|
||
func (_abfac *PdfColorLab )GetNumComponents ()int {return 3};func (_egcedc *pdfFontSimple )addEncoding ()error {var (_abaf string ;_aadef map[_da .CharCode ]_da .GlyphName ;_cfgab _da .SimpleEncoder ;);if _egcedc .Encoder ()!=nil {_bcgfcc ,_gfaec :=_egcedc .Encoder ().(_da .SimpleEncoder );
|
||
if _gfaec &&_bcgfcc !=nil {_abaf =_bcgfcc .BaseName ();};};if _egcedc .Encoding !=nil {_bafff ,_affa ,_aefa :=_egcedc .getFontEncoding ();if _aefa !=nil {_eg .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",_egcedc ._fdacg ,_egcedc ._dfbf ,_egcedc .Encoding ,_egcedc .Encoding ,_aefa );
|
||
return _aefa ;};if _bafff !=""{_abaf =_bafff ;};_aadef =_affa ;_cfgab ,_aefa =_da .NewSimpleTextEncoder (_abaf ,_aadef );if _aefa !=nil {return _aefa ;};};if _cfgab ==nil {_ecdbf :=_egcedc ._fbbd ;if _ecdbf !=nil {switch _egcedc ._dfbf {case "\u0054\u0079\u0070e\u0031":if _ecdbf .fontFile !=nil &&_ecdbf .fontFile ._gega !=nil {_eg .Log .Debug ("\u0055\u0073\u0069\u006e\u0067\u0020\u0066\u006f\u006et\u0046\u0069\u006c\u0065");
|
||
_cfgab =_ecdbf .fontFile ._gega ;};case "\u0054\u0072\u0075\u0065\u0054\u0079\u0070\u0065":if _ecdbf ._aeeb !=nil {_eg .Log .Debug ("\u0055s\u0069n\u0067\u0020\u0046\u006f\u006e\u0074\u0046\u0069\u006c\u0065\u0032");_fffgb ,_cfgag :=_ecdbf ._aeeb .MakeEncoder ();
|
||
if _cfgag ==nil {_cfgab =_fffgb ;};};};};};if _cfgab !=nil {if _aadef !=nil {_eg .Log .Trace ("\u0064\u0069\u0066fe\u0072\u0065\u006e\u0063\u0065\u0073\u003d\u0025\u002b\u0076\u0020\u0066\u006f\u006e\u0074\u003d\u0025\u0073",_aadef ,_egcedc .baseFields ());
|
||
_cfgab =_da .ApplyDifferences (_cfgab ,_aadef );};_egcedc .SetEncoder (_cfgab );};return nil ;};
|
||
|
||
// ToPdfObject converts date to a PDF string object.
|
||
func (_agag *PdfDate )ToPdfObject ()_ebb .PdfObject {_gafdf :=_bg .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",_agag ._dacdd ,_agag ._agaba ,_agag ._edcfe ,_agag ._aedbe ,_agag ._cfaba ,_agag ._cgbcd ,_agag ._degeb ,_agag ._gcccb ,_agag ._fddcbg );
|
||
return _ebb .MakeString (_gafdf );};
|
||
|
||
// BorderStyle defines border type, typically used for annotations.
|
||
type BorderStyle int ;
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_baeeb *PdfAnnotationPrinterMark )ToPdfObject ()_ebb .PdfObject {_baeeb .PdfAnnotation .ToPdfObject ();_ecga :=_baeeb ._bdcd ;_ecd :=_ecga .PdfObject .(*_ebb .PdfObjectDictionary );_ecd .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ebb .MakeName ("P\u0072\u0069\u006e\u0074\u0065\u0072\u004d\u0061\u0072\u006b"));
|
||
_ecd .SetIfNotNil ("\u004d\u004e",_baeeb .MN );return _ecga ;};func (_aaga *PdfReader )loadAnnotations (_abade _ebb .PdfObject )([]*PdfAnnotation ,error ){_eddd ,_bgcf :=_ebb .GetArray (_abade );if !_bgcf {return nil ,_bg .Errorf ("\u0041\u006e\u006e\u006fts\u0020\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0061\u0072\u0072\u0061\u0079");
|
||
};var _efffg []*PdfAnnotation ;for _ ,_dbagdc :=range _eddd .Elements (){_dbagdc =_ebb .ResolveReference (_dbagdc );if _ ,_dfeb :=_dbagdc .(*_ebb .PdfObjectNull );_dfeb {continue ;};_befbc ,_beebg :=_dbagdc .(*_ebb .PdfObjectDictionary );_aabca ,_aacaa :=_dbagdc .(*_ebb .PdfIndirectObject );
|
||
if _beebg {_aabca =&_ebb .PdfIndirectObject {};_aabca .PdfObject =_befbc ;}else {if !_aacaa {return nil ,_bg .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");
|
||
};};_cbedb ,_gdeff :=_aaga .newPdfAnnotationFromIndirectObject (_aabca );if _gdeff !=nil {return nil ,_gdeff ;};switch _bfefa :=_cbedb .GetContext ().(type ){case *PdfAnnotationWidget :for _ ,_dffca :=range _aaga .AcroForm .AllFields (){if _dffca ._cdfd ==_bfefa .Parent {_bfefa ._gce =_dffca ;
|
||
break ;};};};if _cbedb !=nil {_efffg =append (_efffg ,_cbedb );};};return _efffg ,nil ;};func (_caef *PdfReader )newPdfAnnotationTextFromDict (_gcg *_ebb .PdfObjectDictionary )(*PdfAnnotationText ,error ){_acd :=PdfAnnotationText {};_aebd ,_dcf :=_caef .newPdfAnnotationMarkupFromDict (_gcg );
|
||
if _dcf !=nil {return nil ,_dcf ;};_acd .PdfAnnotationMarkup =_aebd ;_acd .Open =_gcg .Get ("\u004f\u0070\u0065\u006e");_acd .Name =_gcg .Get ("\u004e\u0061\u006d\u0065");_acd .State =_gcg .Get ("\u0053\u0074\u0061t\u0065");_acd .StateModel =_gcg .Get ("\u0053\u0074\u0061\u0074\u0065\u004d\u006f\u0064\u0065\u006c");
|
||
return &_acd ,nil ;};
|
||
|
||
// AddExtGState adds a graphics state to the XObject resources.
|
||
func (_baedc *PdfPage )AddExtGState (name _ebb .PdfObjectName ,egs *_ebb .PdfObjectDictionary )error {if _baedc .Resources ==nil {_baedc .Resources =NewPdfPageResources ();};if _baedc .Resources .ExtGState ==nil {_baedc .Resources .ExtGState =_ebb .MakeDict ();
|
||
};_aaeb ,_beaef :=_ebb .TraceToDirectObject (_baedc .Resources .ExtGState ).(*_ebb .PdfObjectDictionary );if !_beaef {_eg .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",_ebb .TraceToDirectObject (_baedc .Resources .ExtGState ));
|
||
return _gf .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_aaeb .Set (name ,egs );return nil ;};func (_fggdb *PdfWriter )setDocInfo (_bddaa _ebb .PdfObject ){if _fggdb .hasObject (_fggdb ._eadfd ){delete (_fggdb ._ffffd ,_fggdb ._eadfd );
|
||
delete (_fggdb ._dcfg ,_fggdb ._eadfd );for _aafgb ,_fcfcb :=range _fggdb ._ebdgg {if _fcfcb ==_fggdb ._eadfd {copy (_fggdb ._ebdgg [_aafgb :],_fggdb ._ebdgg [_aafgb +1:]);_fggdb ._ebdgg [len (_fggdb ._ebdgg )-1]=nil ;_fggdb ._ebdgg =_fggdb ._ebdgg [:len (_fggdb ._ebdgg )-1];
|
||
break ;};};};_aafb :=_ebb .PdfIndirectObject {};_aafb .PdfObject =_bddaa ;_fggdb ._eadfd =&_aafb ;_fggdb .addObject (&_aafb );};
|
||
|
||
// ImageToRGB returns the passed in image. Method exists in order to satisfy
|
||
// the PdfColorspace interface.
|
||
func (_ebcd *PdfColorspaceDeviceRGB )ImageToRGB (img Image )(Image ,error ){return img ,nil };
|
||
|
||
// PdfAnnotationProjection represents Projection annotations.
|
||
type PdfAnnotationProjection struct{*PdfAnnotation ;*PdfAnnotationMarkup ;};
|
||
|
||
// 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 (_adcbb *PdfReader )GetObjectNums ()[]int {return _adcbb ._cafdf .GetObjectNums ()};
|
||
|
||
// GetColorspaceByName returns the colorspace with the specified name from the page resources.
|
||
func (_cdfgd *PdfPageResources )GetColorspaceByName (keyName _ebb .PdfObjectName )(PdfColorspace ,bool ){_aeccb ,_deedg :=_cdfgd .GetColorspaces ();if _deedg !=nil {_eg .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",_deedg );
|
||
return nil ,false ;};if _aeccb ==nil {return nil ,false ;};_efgfa ,_dgedd :=_aeccb .Colorspaces [string (keyName )];if !_dgedd {return nil ,false ;};return _efgfa ,true ;};
|
||
|
||
// 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 ()_ebb .PdfObject ;GetContainingPdfObject ()_ebb .PdfObject ;};func (_aega *PdfWriter )seekByName (_fabbc _ebb .PdfObject ,_defad []string ,_cddcd string )([]_ebb .PdfObject ,error ){_eg .Log .Trace ("\u0053\u0065\u0065\u006b\u0020\u0062\u0079\u0020\u006e\u0061\u006d\u0065.\u002e\u0020\u0025\u0054",_fabbc );
|
||
var _cgfcdd []_ebb .PdfObject ;if _ddde ,_fdcggc :=_fabbc .(*_ebb .PdfIndirectObject );_fdcggc {return _aega .seekByName (_ddde .PdfObject ,_defad ,_cddcd );};if _abfcc ,_dgcbe :=_fabbc .(*_ebb .PdfObjectStream );_dgcbe {return _aega .seekByName (_abfcc .PdfObjectDictionary ,_defad ,_cddcd );
|
||
};if _gfgef ,_fdgbf :=_fabbc .(*_ebb .PdfObjectDictionary );_fdgbf {_eg .Log .Trace ("\u0044\u0069\u0063\u0074");for _ ,_eegcef :=range _gfgef .Keys (){_bccff :=_gfgef .Get (_eegcef );if string (_eegcef )==_cddcd {_cgfcdd =append (_cgfcdd ,_bccff );};for _ ,_adff :=range _defad {if string (_eegcef )==_adff {_eg .Log .Trace ("\u0046\u006f\u006c\u006c\u006f\u0077\u0020\u006b\u0065\u0079\u0020\u0025\u0073",_adff );
|
||
_bbedg ,_cgbd :=_aega .seekByName (_bccff ,_defad ,_cddcd );if _cgbd !=nil {return _cgfcdd ,_cgbd ;};_cgfcdd =append (_cgfcdd ,_bbedg ...);break ;};};};return _cgfcdd ,nil ;};return _cgfcdd ,nil ;};
|
||
|
||
// ToPdfObject converts rectangle to a PDF object.
|
||
func (_bedcc *PdfRectangle )ToPdfObject ()_ebb .PdfObject {return _ebb .MakeArray (_ebb .MakeFloat (_bedcc .Llx ),_ebb .MakeFloat (_bedcc .Lly ),_ebb .MakeFloat (_bedcc .Urx ),_ebb .MakeFloat (_bedcc .Ury ));};
|
||
|
||
// GetCatalogMetadata gets the catalog defined XMP Metadata.
|
||
func (_gbcc *PdfReader )GetCatalogMetadata ()(_ebb .PdfObject ,bool ){if _gbcc ._fdgda ==nil {return nil ,false ;};_aafce :=_gbcc ._fdgda .Get ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");return _aafce ,_aafce !=nil ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the function.
|
||
func (_ggafb *PdfFunctionType3 )ToPdfObject ()_ebb .PdfObject {_bbadc :=_ebb .MakeDict ();_bbadc .Set ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065",_ebb .MakeInteger (3));_fddba :=&_ebb .PdfObjectArray {};for _ ,_gcgfa :=range _ggafb .Domain {_fddba .Append (_ebb .MakeFloat (_gcgfa ));
|
||
};_bbadc .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_fddba );if _ggafb .Range !=nil {_ccgd :=&_ebb .PdfObjectArray {};for _ ,_fbab :=range _ggafb .Range {_ccgd .Append (_ebb .MakeFloat (_fbab ));};_bbadc .Set ("\u0052\u0061\u006eg\u0065",_ccgd );};if _ggafb .Functions !=nil {_ggecc :=&_ebb .PdfObjectArray {};
|
||
for _ ,_gffc :=range _ggafb .Functions {_ggecc .Append (_gffc .ToPdfObject ());};_bbadc .Set ("\u0046u\u006e\u0063\u0074\u0069\u006f\u006es",_ggecc );};if _ggafb .Bounds !=nil {_ebcc :=&_ebb .PdfObjectArray {};for _ ,_abeaf :=range _ggafb .Bounds {_ebcc .Append (_ebb .MakeFloat (_abeaf ));
|
||
};_bbadc .Set ("\u0042\u006f\u0075\u006e\u0064\u0073",_ebcc );};if _ggafb .Encode !=nil {_ddeda :=&_ebb .PdfObjectArray {};for _ ,_gebga :=range _ggafb .Encode {_ddeda .Append (_ebb .MakeFloat (_gebga ));};_bbadc .Set ("\u0045\u006e\u0063\u006f\u0064\u0065",_ddeda );
|
||
};if _ggafb ._acac !=nil {_ggafb ._acac .PdfObject =_bbadc ;return _ggafb ._acac ;};return _bbadc ;};var ImageHandling ImageHandler =DefaultImageHandler {};
|
||
|
||
// GetPatternByName gets the pattern specified by keyName. Returns nil if not existing.
|
||
// The bool flag indicated whether it was found or not.
|
||
func (_cdgb *PdfPageResources )GetPatternByName (keyName _ebb .PdfObjectName )(*PdfPattern ,bool ){if _cdgb .Pattern ==nil {return nil ,false ;};_cbgcg ,_bacgg :=_ebb .TraceToDirectObject (_cdgb .Pattern ).(*_ebb .PdfObjectDictionary );if !_bacgg {_eg .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",_cdgb .Pattern );
|
||
return nil ,false ;};if _cdde :=_cbgcg .Get (keyName );_cdde !=nil {_ddcd ,_gbce :=_ccef (_cdde );if _gbce !=nil {_eg .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",_gbce );
|
||
return nil ,false ;};return _ddcd ,true ;};return nil ,false ;};func (_dfbca *PdfWriter )hasObject (_adcad _ebb .PdfObject )bool {_ ,_ecdgeg :=_dfbca ._ffffd [_adcad ];return _ecdgeg ;};func (_cccfb *PdfReader )loadForms ()(*PdfAcroForm ,error ){if _cccfb ._cafdf .GetCrypter ()!=nil &&!_cccfb ._cafdf .IsAuthenticated (){return nil ,_bg .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");
|
||
};_fegfd :=_cccfb ._fdgda ;_ggfdg :=_fegfd .Get ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d");if _ggfdg ==nil {return nil ,nil ;};_dccdd ,_ :=_ebb .GetIndirect (_ggfdg );_ggfdg =_ebb .TraceToDirectObject (_ggfdg );if _ebb .IsNullObject (_ggfdg ){_eg .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 ;};_gfcd ,_bceb :=_ebb .GetDict (_ggfdg );if !_bceb {_eg .Log .Debug ("\u0049n\u0076\u0061\u006c\u0069d\u0020\u0041\u0063\u0072\u006fF\u006fr\u006d \u0065\u006e\u0074\u0072\u0079\u0020\u0025T",_ggfdg );_eg .Log .Debug ("\u0044\u006f\u0065\u0073 n\u006f\u0074\u0020\u0068\u0061\u0076\u0065\u0020\u0066\u006f\u0072\u006d\u0073");
|
||
return nil ,_bg .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0061\u0063\u0072\u006ff\u006fr\u006d \u0065\u006e\u0074\u0072\u0079\u0020\u0025T",_ggfdg );};_eg .Log .Trace ("\u0048\u0061\u0073\u0020\u0041\u0063\u0072\u006f\u0020f\u006f\u0072\u006d\u0073");
|
||
_eg .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 !_cccfb ._ceefa {_beedb :=_cccfb .traverseObjectData (_gfcd );
|
||
if _beedb !=nil {_eg .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",_beedb );
|
||
return nil ,_beedb ;};};_cbfbfb ,_cdagg :=_cccfb .newPdfAcroFormFromDict (_dccdd ,_gfcd );if _cdagg !=nil {return nil ,_cdagg ;};return _cbfbfb ,nil ;};
|
||
|
||
// SetImage updates XObject Image with new image data.
|
||
func (_aagdg *XObjectImage )SetImage (img *Image ,cs PdfColorspace )error {_aagdg .Filter .UpdateParams (img .GetParamsDict ());_dbeg ,_gbdce :=_aagdg .Filter .EncodeBytes (img .Data );if _gbdce !=nil {return _gbdce ;};_aagdg .Stream =_dbeg ;_egddcd :=img .Width ;
|
||
_aagdg .Width =&_egddcd ;_bcbafa :=img .Height ;_aagdg .Height =&_bcbafa ;_dbdgff :=img .BitsPerComponent ;_aagdg .BitsPerComponent =&_dbdgff ;if cs ==nil {if img .ColorComponents ==1{_aagdg .ColorSpace =NewPdfColorspaceDeviceGray ();}else if img .ColorComponents ==3{_aagdg .ColorSpace =NewPdfColorspaceDeviceRGB ();
|
||
}else if img .ColorComponents ==4{_aagdg .ColorSpace =NewPdfColorspaceDeviceCMYK ();}else {return _gf .New ("c\u006fl\u006f\u0072\u0073\u0070\u0061\u0063\u0065\u0020u\u006e\u0064\u0065\u0066in\u0065\u0064");};}else {_aagdg .ColorSpace =cs ;};return nil ;
|
||
};func (_defbf *PdfColorspaceSpecialIndexed )String ()string {return "\u0049n\u0064\u0065\u0078\u0065\u0064";};var (ErrRequiredAttributeMissing =_gf .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 =_gf .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0061\u0074\u0074\u0072i\u0062\u0075\u0074\u0065");ErrTypeCheck =_gf .New ("\u0074\u0079\u0070\u0065\u0020\u0063\u0068\u0065\u0063\u006b");_fddb =_gf .New ("\u0072\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b\u0020e\u0072\u0072\u006f\u0072");
|
||
ErrEncrypted =_gf .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 =_gf .New ("\u0066\u006fn\u0074\u0020\u006eo\u0074\u0020\u0064\u0065\u0066\u0069\u006e\u0065\u0064");
|
||
ErrFontNotSupported =_bfc .Errorf ("u\u006e\u0073\u0075\u0070po\u0072t\u0065\u0064\u0020\u0066\u006fn\u0074\u0020\u0028\u0025\u0077\u0029",_ebb .ErrNotSupported );ErrType1CFontNotSupported =_bfc .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",_ebb .ErrNotSupported );
|
||
ErrType3FontNotSupported =_bfc .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",_ebb .ErrNotSupported );
|
||
ErrTTCmapNotSupported =_bfc .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",_ebb .ErrNotSupported );
|
||
ErrSignNotEnoughSpace =_bfc .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 =_bfc .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"););
|
||
|
||
// PdfAnnotationSound represents Sound annotations.
|
||
// (Section 12.5.6.16).
|
||
type PdfAnnotationSound struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Sound _ebb .PdfObject ;Name _ebb .PdfObject ;};func _bdgae (_cbac *_ebb .PdfObjectDictionary ){_fadfb ,_ccfdc :=_ebb .GetArray (_cbac .Get ("\u0057\u0069\u0064\u0074\u0068\u0073"));_caea ,_fecf :=_ebb .GetIntVal (_cbac .Get ("\u0046i\u0072\u0073\u0074\u0043\u0068\u0061r"));
|
||
_gebbg ,_gacbe :=_ebb .GetIntVal (_cbac .Get ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072"));if _ccfdc &&_fecf &&_gacbe {_daee :=_fadfb .Len ();if _daee !=_gebbg -_caea +1{_eg .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",_daee ,_gebbg );
|
||
_dgdd :=_ebb .PdfObjectInteger (_caea +_daee -1);_cbac .Set ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072",&_dgdd );};};};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_afg *PdfAnnotationRedact )ToPdfObject ()_ebb .PdfObject {_afg .PdfAnnotation .ToPdfObject ();_cfbd :=_afg ._bdcd ;_fcfb :=_cfbd .PdfObject .(*_ebb .PdfObjectDictionary );_afg .PdfAnnotationMarkup .appendToPdfDictionary (_fcfb );_fcfb .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ebb .MakeName ("\u0052\u0065\u0064\u0061\u0063\u0074"));
|
||
_fcfb .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_afg .QuadPoints );_fcfb .SetIfNotNil ("\u0049\u0043",_afg .IC );_fcfb .SetIfNotNil ("\u0052\u004f",_afg .RO );_fcfb .SetIfNotNil ("O\u0076\u0065\u0072\u006c\u0061\u0079\u0054\u0065\u0078\u0074",_afg .OverlayText );
|
||
_fcfb .SetIfNotNil ("\u0052\u0065\u0070\u0065\u0061\u0074",_afg .Repeat );_fcfb .SetIfNotNil ("\u0044\u0041",_afg .DA );_fcfb .SetIfNotNil ("\u0051",_afg .Q );return _cfbd ;};var _eacf =false ;
|
||
|
||
// NewPdfAction returns an initialized generic PDF action model.
|
||
func NewPdfAction ()*PdfAction {_af :=&PdfAction {};_af ._abe =_ebb .MakeIndirectObject (_ebb .MakeDict ());return _af ;};
|
||
|
||
// PdfAnnotationHighlight represents Highlight annotations.
|
||
// (Section 12.5.6.10).
|
||
type PdfAnnotationHighlight struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _ebb .PdfObject ;};
|
||
|
||
// 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 ,_faeb :_ebb .MakeDict ()};
|
||
};func (_debd *pdfFontType0 )subsetRegistered ()error {_bcccg ,_fecbc :=_debd .DescendantFont ._ebcad .(*pdfCIDFontType2 );if !_fecbc {_eg .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",_debd .DescendantFont );
|
||
return nil ;};if _bcccg ==nil {return nil ;};if _bcccg ._fbbd ==nil {_eg .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 _debd ._bfdgc ==nil {_eg .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 ;};_gddfb ,_fecbc :=_ebb .GetStream (_bcccg ._fbbd .FontFile2 );if !_fecbc {_eg .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 _gf .New ("\u0066\u006f\u006e\u0074fi\u006c\u0065\u0032\u0020\u006e\u006f\u0074\u0020\u0066\u006f\u0075\u006e\u0064");};_bcbaf ,_gcffb :=_ebb .DecodeStream (_gddfb );if _gcffb !=nil {_eg .Log .Debug ("\u0044\u0065c\u006f\u0064\u0065 \u0065\u0072\u0072\u006f\u0072\u003a\u0020\u0025\u0076",_gcffb );
|
||
return _gcffb ;};_adge ,_gcffb :=_gbg .Parse (_ca .NewReader (_bcbaf ));if _gcffb !=nil {_eg .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 (_gddfb .Stream ));
|
||
return _gcffb ;};var _cccbd []rune ;var _begg *_gbg .Font ;switch _fcgbb :=_debd ._bfdgc .(type ){case *_da .TrueTypeFontEncoder :_cccbd =_fcgbb .RegisteredRunes ();_begg ,_gcffb =_adge .SubsetKeepRunes (_cccbd );if _gcffb !=nil {_eg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_gcffb );
|
||
return _gcffb ;};_fcgbb .SubsetRegistered ();case *_da .IdentityEncoder :_cccbd =_fcgbb .RegisteredRunes ();_baff :=make ([]_gbg .GlyphIndex ,len (_cccbd ));for _dfffcf ,_cafeb :=range _cccbd {_baff [_dfffcf ]=_gbg .GlyphIndex (_cafeb );};_begg ,_gcffb =_adge .SubsetKeepIndices (_baff );
|
||
if _gcffb !=nil {_eg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_gcffb );return _gcffb ;};case _da .SimpleEncoder :_dcab :=_fcgbb .Charcodes ();for _ ,_caeffc :=range _dcab {_cdadd ,_bgbe :=_fcgbb .CharcodeToRune (_caeffc );if !_bgbe {_eg .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",_caeffc );
|
||
continue ;};_cccbd =append (_cccbd ,_cdadd );};default:return _bg .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",_debd ._bfdgc );
|
||
};var _efedd _ca .Buffer ;_gcffb =_begg .Write (&_efedd );if _gcffb !=nil {_eg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_gcffb );return _gcffb ;};if _debd ._dcdd !=nil {_gegd :=make (map[_ebe .CharCode ]rune ,len (_cccbd ));for _ ,_edefd :=range _cccbd {_dgeab ,_gbae :=_debd ._bfdgc .RuneToCharcode (_edefd );
|
||
if !_gbae {continue ;};_gegd [_ebe .CharCode (_dgeab )]=_edefd ;};_debd ._dcdd =_ebe .NewToUnicodeCMap (_gegd );};_gddfb ,_gcffb =_ebb .MakeStream (_efedd .Bytes (),_ebb .NewFlateEncoder ());if _gcffb !=nil {_eg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_gcffb );
|
||
return _gcffb ;};_gddfb .Set ("\u004ce\u006e\u0067\u0074\u0068\u0031",_ebb .MakeInteger (int64 (_efedd .Len ())));if _aage ,_ffce :=_ebb .GetStream (_bcccg ._fbbd .FontFile2 );_ffce {*_aage =*_gddfb ;}else {_bcccg ._fbbd .FontFile2 =_gddfb ;};_adgg :=_bdec ();
|
||
if len (_debd ._fdacg )> 0{_debd ._fdacg =_gfed (_debd ._fdacg ,_adgg );};if len (_bcccg ._fdacg )> 0{_bcccg ._fdacg =_gfed (_bcccg ._fdacg ,_adgg );};if len (_debd ._efge )> 0{_debd ._efge =_gfed (_debd ._efge ,_adgg );};if _bcccg ._fbbd !=nil {_dggba ,_aaaed :=_ebb .GetName (_bcccg ._fbbd .FontName );
|
||
if _aaaed &&len (_dggba .String ())> 0{_edced :=_gfed (_dggba .String (),_adgg );_bcccg ._fbbd .FontName =_ebb .MakeName (_edced );};};return nil ;};
|
||
|
||
// GetContainingPdfObject returns the page as a dictionary within an PdfIndirectObject.
|
||
func (_ecaf *PdfPage )GetContainingPdfObject ()_ebb .PdfObject {return _ecaf ._defbb };
|
||
|
||
// PdfActionSound represents a sound action.
|
||
type PdfActionSound struct{*PdfAction ;Sound _ebb .PdfObject ;Volume _ebb .PdfObject ;Synchronous _ebb .PdfObject ;Repeat _ebb .PdfObject ;Mix _ebb .PdfObject ;};func (_gfge *PdfPage )setContainer (_gcbef *_ebb .PdfIndirectObject ){_gcbef .PdfObject =_gfge ._cdbfde ;
|
||
_gfge ._defbb =_gcbef ;};
|
||
|
||
// NewPdfAnnotationTrapNet returns a new trapnet annotation.
|
||
func NewPdfAnnotationTrapNet ()*PdfAnnotationTrapNet {_gae :=NewPdfAnnotation ();_aaf :=&PdfAnnotationTrapNet {};_aaf .PdfAnnotation =_gae ;_gae .SetContext (_aaf );return _aaf ;};
|
||
|
||
// ContentStreamWrapper wraps the Page's contentstream into q ... Q blocks.
|
||
type ContentStreamWrapper interface{WrapContentStream (_dgdba *PdfPage )error ;};
|
||
|
||
// 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 (_dffef *PdfFont )CharcodesToUnicodeWithStats (charcodes []_da .CharCode )(_bdef []rune ,_cgggg ,_gfda int ){_cgdb ,_cgggg ,_gfda :=_dffef .CharcodesToStrings (charcodes );return []rune (_ee .Join (_cgdb ,"")),_cgggg ,_gfda ;};
|
||
|
||
// NewPdfAnnotationLine returns a new line annotation.
|
||
func NewPdfAnnotationLine ()*PdfAnnotationLine {_ddg :=NewPdfAnnotation ();_fgbf :=&PdfAnnotationLine {};_fgbf .PdfAnnotation =_ddg ;_fgbf .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_ddg .SetContext (_fgbf );return _fgbf ;};
|
||
|
||
// NewOutline returns a new outline instance.
|
||
func NewOutline ()*Outline {return &Outline {}};
|
||
|
||
// Encoder returns the font's text encoder.
|
||
func (_bbdc pdfCIDFontType2 )Encoder ()_da .TextEncoder {return _bbdc ._aacb };
|
||
|
||
// GetContainingPdfObject returns the container of the image object (indirect object).
|
||
func (_egba *XObjectImage )GetContainingPdfObject ()_ebb .PdfObject {return _egba ._fbeec };
|
||
|
||
// NewPdfActionTrans returns a new "trans" action.
|
||
func NewPdfActionTrans ()*PdfActionTrans {_fg :=NewPdfAction ();_cad :=&PdfActionTrans {};_cad .PdfAction =_fg ;_fg .SetContext (_cad );return _cad ;};
|
||
|
||
// DecodeArray returns the range of color component values in DeviceCMYK colorspace.
|
||
func (_bcca *PdfColorspaceDeviceCMYK )DecodeArray ()[]float64 {return []float64 {0.0,1.0,0.0,1.0,0.0,1.0,0.0,1.0};};func _adaaf (_gfcdd *_ebb .PdfObjectDictionary )(*PdfShadingType1 ,error ){_bbddf :=PdfShadingType1 {};if _cffaf :=_gfcdd .Get ("\u0044\u006f\u006d\u0061\u0069\u006e");
|
||
_cffaf !=nil {_cffaf =_ebb .TraceToDirectObject (_cffaf );_cecff ,_gfgfd :=_cffaf .(*_ebb .PdfObjectArray );if !_gfgfd {_eg .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",_cffaf );
|
||
return nil ,_gf .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_bbddf .Domain =_cecff ;};if _gceea :=_gfcdd .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");_gceea !=nil {_gceea =_ebb .TraceToDirectObject (_gceea );
|
||
_gecb ,_ggfca :=_gceea .(*_ebb .PdfObjectArray );if !_ggfca {_eg .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",_gceea );return nil ,_gf .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");
|
||
};_bbddf .Matrix =_gecb ;};_gfad :=_gfcdd .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");if _gfad ==nil {_eg .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 ;};_bbddf .Function =[]PdfFunction {};if _cebfa ,_decf :=_gfad .(*_ebb .PdfObjectArray );_decf {for _ ,_bafgc :=range _cebfa .Elements (){_bagf ,_afbfg :=_aagg (_bafgc );if _afbfg !=nil {_eg .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",_afbfg );
|
||
return nil ,_afbfg ;};_bbddf .Function =append (_bbddf .Function ,_bagf );};}else {_ecgge ,_affeaf :=_aagg (_gfad );if _affeaf !=nil {_eg .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",_affeaf );
|
||
return nil ,_affeaf ;};_bbddf .Function =append (_bbddf .Function ,_ecgge );};return &_bbddf ,nil ;};func _bfegc (_bbccg *PdfPage ){_bgggg :=_ce .GetLicenseKey ();if _bgggg !=nil &&_bgggg .IsLicensed (){return ;};_abcag :=_ebb .PdfObjectName ("\u0055\u0046\u0031");
|
||
if !_bbccg .Resources .HasFontByName (_abcag ){_bbccg .Resources .SetFontByName (_abcag ,DefaultFont ().ToPdfObject ());};var _bgcfg []string ;_bgcfg =append (_bgcfg ,"\u0071");_bgcfg =append (_bgcfg ,"\u0042\u0054");_bgcfg =append (_bgcfg ,_bg .Sprintf ("\u002f%\u0073\u0020\u0031\u0034\u0020\u0054f",_abcag .String ()));
|
||
_bgcfg =append (_bgcfg ,"\u0031\u0020\u0030\u0020\u0030\u0020\u0072\u0067");_bgcfg =append (_bgcfg ,"\u0031\u0030\u0020\u0031\u0030\u0020\u0054\u0064");_agae :="\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";
|
||
_bgcfg =append (_bgcfg ,_bg .Sprintf ("\u0028%\u0073\u0029\u0020\u0054\u006a",_agae ));_bgcfg =append (_bgcfg ,"\u0045\u0054");_bgcfg =append (_bgcfg ,"\u0051");_bedbe :=_ee .Join (_bgcfg ,"\u000a");_bbccg .AddContentStreamByString (_bedbe );_bbccg .ToPdfObject ();
|
||
};func _efad (_cdfg _ebb .PdfObject )(*PdfColorspaceLab ,error ){_aabga :=NewPdfColorspaceLab ();if _acdcc ,_afgd :=_cdfg .(*_ebb .PdfIndirectObject );_afgd {_aabga ._bdga =_acdcc ;};_cdfg =_ebb .TraceToDirectObject (_cdfg );_fcdb ,_acff :=_cdfg .(*_ebb .PdfObjectArray );
|
||
if !_acff {return nil ,_bg .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _fcdb .Len ()!=2{return nil ,_bg .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0043\u0061\u006c\u0052G\u0042 \u0063o\u006c\u006f\u0072\u0073\u0070\u0061\u0063e");
|
||
};_cdfg =_ebb .TraceToDirectObject (_fcdb .Get (0));_badab ,_acff :=_cdfg .(*_ebb .PdfObjectName );if !_acff {return nil ,_bg .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 *_badab !="\u004c\u0061\u0062"{return nil ,_bg .Errorf ("n\u006ft\u0020\u0061\u0020\u004c\u0061\u0062\u0020\u0063o\u006c\u006f\u0072\u0073pa\u0063\u0065");};_cdfg =_ebb .TraceToDirectObject (_fcdb .Get (1));_gacfb ,_acff :=_cdfg .(*_ebb .PdfObjectDictionary );
|
||
if !_acff {return nil ,_bg .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");};
|
||
_cdfg =_gacfb .Get ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074");_cdfg =_ebb .TraceToDirectObject (_cdfg );_gcef ,_acff :=_cdfg .(*_ebb .PdfObjectArray );if !_acff {return nil ,_bg .Errorf ("\u004c\u0061\u0062\u0020In\u0076\u0061\u006c\u0069\u0064\u0020\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069n\u0074");
|
||
};if _gcef .Len ()!=3{return nil ,_bg .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");};_edbg ,_agbg :=_gcef .GetAsFloat64Slice ();
|
||
if _agbg !=nil {return nil ,_agbg ;};_aabga .WhitePoint =_edbg ;_cdfg =_gacfb .Get ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074");if _cdfg !=nil {_cdfg =_ebb .TraceToDirectObject (_cdfg );_dfcd ,_ggcd :=_cdfg .(*_ebb .PdfObjectArray );
|
||
if !_ggcd {return nil ,_bg .Errorf ("\u004c\u0061\u0062: \u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074");};if _dfcd .Len ()!=3{return nil ,_bg .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");
|
||
};_bfga ,_gdag :=_dfcd .GetAsFloat64Slice ();if _gdag !=nil {return nil ,_gdag ;};_aabga .BlackPoint =_bfga ;};_cdfg =_gacfb .Get ("\u0052\u0061\u006eg\u0065");if _cdfg !=nil {_cdfg =_ebb .TraceToDirectObject (_cdfg );_agaa ,_bgeb :=_cdfg .(*_ebb .PdfObjectArray );
|
||
if !_bgeb {_eg .Log .Error ("\u0052\u0061n\u0067\u0065\u0020t\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");return nil ,_bg .Errorf ("\u004ca\u0062:\u0020\u0054\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _agaa .Len ()!=4{_eg .Log .Error ("\u0052\u0061\u006e\u0067\u0065\u0020\u0072\u0061\u006e\u0067\u0065\u0020e\u0072\u0072\u006f\u0072");
|
||
return nil ,_bg .Errorf ("\u004c\u0061b\u003a\u0020\u0052a\u006e\u0067\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};_ggcf ,_faadc :=_agaa .GetAsFloat64Slice ();if _faadc !=nil {return nil ,_faadc ;};_aabga .Range =_ggcf ;};return _aabga ,nil ;};
|
||
|
||
// NewXObjectFormFromStream builds the Form XObject from a stream object.
|
||
// TODO: Should this be exposed? Consider different access points.
|
||
func NewXObjectFormFromStream (stream *_ebb .PdfObjectStream )(*XObjectForm ,error ){_ceggb :=&XObjectForm {};_ceggb ._gebcd =stream ;_cdbcb :=*(stream .PdfObjectDictionary );_bfcgc ,_acggg :=_ebb .NewEncoderFromStream (stream );if _acggg !=nil {return nil ,_acggg ;
|
||
};_ceggb .Filter =_bfcgc ;if _eeeaad :=_cdbcb .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065");_eeeaad !=nil {_dagcd ,_daddd :=_eeeaad .(*_ebb .PdfObjectName );if !_daddd {return nil ,_gf .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");
|
||
};if *_dagcd !="\u0046\u006f\u0072\u006d"{_eg .Log .Debug ("I\u006ev\u0061\u006c\u0069\u0064\u0020\u0066\u006f\u0072m\u0020\u0073\u0075\u0062ty\u0070\u0065");return nil ,_gf .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0066\u006f\u0072m\u0020\u0073\u0075\u0062ty\u0070\u0065");
|
||
};};if _dddf :=_cdbcb .Get ("\u0046\u006f\u0072\u006d\u0054\u0079\u0070\u0065");_dddf !=nil {_ceggb .FormType =_dddf ;};if _fgecg :=_cdbcb .Get ("\u0042\u0042\u006f\u0078");_fgecg !=nil {_ceggb .BBox =_fgecg ;};if _ccfcff :=_cdbcb .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");
|
||
_ccfcff !=nil {_ceggb .Matrix =_ccfcff ;};if _fdcff :=_cdbcb .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");_fdcff !=nil {_fdcff =_ebb .TraceToDirectObject (_fdcff );_cafee ,_gbbfb :=_fdcff .(*_ebb .PdfObjectDictionary );if !_gbbfb {_eg .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 ,_ebb .ErrTypeError ;};_babec ,_fbdff :=NewPdfPageResourcesFromDict (_cafee );if _fbdff !=nil {_eg .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 ,_fbdff ;};_ceggb .Resources =_babec ;_eg .Log .Trace ("\u0046\u006f\u0072\u006d r\u0065\u0073\u006f\u0075\u0072\u0063\u0065\u0073\u003a\u0020\u0025\u0023\u0076",_ceggb .Resources );};_ceggb .Group =_cdbcb .Get ("\u0047\u0072\u006fu\u0070");
|
||
_ceggb .Ref =_cdbcb .Get ("\u0052\u0065\u0066");_ceggb .MetaData =_cdbcb .Get ("\u004d\u0065\u0074\u0061\u0044\u0061\u0074\u0061");_ceggb .PieceInfo =_cdbcb .Get ("\u0050i\u0065\u0063\u0065\u0049\u006e\u0066o");_ceggb .LastModified =_cdbcb .Get ("\u004c\u0061\u0073t\u004d\u006f\u0064\u0069\u0066\u0069\u0065\u0064");
|
||
_ceggb .StructParent =_cdbcb .Get ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074");_ceggb .StructParents =_cdbcb .Get ("\u0053\u0074\u0072\u0075\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074\u0073");_ceggb .OPI =_cdbcb .Get ("\u004f\u0050\u0049");
|
||
_ceggb .OC =_cdbcb .Get ("\u004f\u0043");_ceggb .Name =_cdbcb .Get ("\u004e\u0061\u006d\u0065");_ceggb .Stream =stream .Stream ;return _ceggb ,nil ;};
|
||
|
||
// EnableChain adds the specified certificate chain and validation data (OCSP
|
||
// and CRL information) for it to the global scope of the document DSS. The
|
||
// added data is used for validating any of the signatures present in the
|
||
// document. The LTV client attempts to build the certificate chain up to a
|
||
// trusted root by downloading any missing certificates.
|
||
func (_eadbg *LTV )EnableChain (chain []*_g .Certificate )error {return _eadbg .enable (nil ,chain ,"")};
|
||
|
||
// ToPdfObject returns colorspace in a PDF object format [name stream]
|
||
func (_cdg *PdfColorspaceICCBased )ToPdfObject ()_ebb .PdfObject {_eabf :=&_ebb .PdfObjectArray {};_eabf .Append (_ebb .MakeName ("\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064"));var _dacdc *_ebb .PdfObjectStream ;if _cdg ._dfff !=nil {_dacdc =_cdg ._dfff ;
|
||
}else {_dacdc =&_ebb .PdfObjectStream {};};_fbfeb :=_ebb .MakeDict ();_fbfeb .Set ("\u004e",_ebb .MakeInteger (int64 (_cdg .N )));if _cdg .Alternate !=nil {_fbfeb .Set ("\u0041l\u0074\u0065\u0072\u006e\u0061\u0074e",_cdg .Alternate .ToPdfObject ());};if _cdg .Metadata !=nil {_fbfeb .Set ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061",_cdg .Metadata );
|
||
};if _cdg .Range !=nil {var _fbfa []_ebb .PdfObject ;for _ ,_efadc :=range _cdg .Range {_fbfa =append (_fbfa ,_ebb .MakeFloat (_efadc ));};_fbfeb .Set ("\u0052\u0061\u006eg\u0065",_ebb .MakeArray (_fbfa ...));};_fbfeb .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_ebb .MakeInteger (int64 (len (_cdg .Data ))));
|
||
_dacdc .Stream =_cdg .Data ;_dacdc .PdfObjectDictionary =_fbfeb ;_eabf .Append (_dacdc );if _cdg ._dagdd !=nil {_cdg ._dagdd .PdfObject =_eabf ;return _cdg ._dagdd ;};return _eabf ;};
|
||
|
||
// ToPdfObject returns a PDF object representation of the outline.
|
||
func (_acccd *Outline )ToPdfObject ()_ebb .PdfObject {return _acccd .ToPdfOutline ().ToPdfObject ()};
|
||
|
||
// ImageToRGB converts image in CalGray color space to RGB (A, B, C -> X, Y, Z).
|
||
func (_cdfb *PdfColorspaceCalGray )ImageToRGB (img Image )(Image ,error ){_febae :=_abg .NewReader (img .getBase ());_gaegf :=_dg .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),3,nil ,nil ,nil );_caecf :=_abg .NewWriter (_gaegf );
|
||
_faag :=_cbg .Pow (2,float64 (img .BitsPerComponent ))-1;_aea :=make ([]uint32 ,3);var (_dagd uint32 ;ANorm ,X ,Y ,Z ,_faga ,_aedb ,_gdgd float64 ;_dggdf error ;);for {_dagd ,_dggdf =_febae .ReadSample ();if _dggdf ==_ab .EOF {break ;}else if _dggdf !=nil {return img ,_dggdf ;
|
||
};ANorm =float64 (_dagd )/_faag ;X =_cdfb .WhitePoint [0]*_cbg .Pow (ANorm ,_cdfb .Gamma );Y =_cdfb .WhitePoint [1]*_cbg .Pow (ANorm ,_cdfb .Gamma );Z =_cdfb .WhitePoint [2]*_cbg .Pow (ANorm ,_cdfb .Gamma );_faga =3.240479*X +-1.537150*Y +-0.498535*Z ;
|
||
_aedb =-0.969256*X +1.875992*Y +0.041556*Z ;_gdgd =0.055648*X +-0.204043*Y +1.057311*Z ;_faga =_cbg .Min (_cbg .Max (_faga ,0),1.0);_aedb =_cbg .Min (_cbg .Max (_aedb ,0),1.0);_gdgd =_cbg .Min (_cbg .Max (_gdgd ,0),1.0);_aea [0]=uint32 (_faga *_faag );
|
||
_aea [1]=uint32 (_aedb *_faag );_aea [2]=uint32 (_gdgd *_faag );if _dggdf =_caecf .WriteSamples (_aea );_dggdf !=nil {return img ,_dggdf ;};};return _afacb (&_gaegf ),nil ;};
|
||
|
||
// FieldAppearanceGenerator generates appearance stream for a given field.
|
||
type FieldAppearanceGenerator interface{ContentStreamWrapper ;GenerateAppearanceDict (_dagg *PdfAcroForm ,_accde *PdfField ,_cbga *PdfAnnotationWidget )(*_ebb .PdfObjectDictionary ,error );};
|
||
|
||
// PdfColorspaceCalGray represents CalGray color space.
|
||
type PdfColorspaceCalGray struct{WhitePoint []float64 ;BlackPoint []float64 ;Gamma float64 ;_bebfd *_ebb .PdfIndirectObject ;};
|
||
|
||
// 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 (_bggg *PdfFont )CharcodesToUnicode (charcodes []_da .CharCode )[]rune {_cbff ,_ ,_ :=_bggg .CharcodesToUnicodeWithStats (charcodes );return _cbff ;};
|
||
|
||
// SetContentStream sets the pattern cell's content stream.
|
||
func (_ecabf *PdfTilingPattern )SetContentStream (content []byte ,encoder _ebb .StreamEncoder )error {_abfe ,_bffa :=_ecabf ._dcddc .(*_ebb .PdfObjectStream );if !_bffa {_eg .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",_ecabf ._dcddc );
|
||
return _ebb .ErrTypeError ;};if encoder ==nil {encoder =_ebb .NewRawEncoder ();};_bgegc :=_abfe .PdfObjectDictionary ;_gcfbd :=encoder .MakeStreamDict ();_bgegc .Merge (_gcfbd );_cddcf ,_agggg :=encoder .EncodeBytes (content );if _agggg !=nil {return _agggg ;
|
||
};_bgegc .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_ebb .MakeInteger (int64 (len (_cddcf ))));_abfe .Stream =_cddcf ;return nil ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_cfb *PdfActionMovie )ToPdfObject ()_ebb .PdfObject {_cfb .PdfAction .ToPdfObject ();_fgc :=_cfb ._abe ;_gfc :=_fgc .PdfObject .(*_ebb .PdfObjectDictionary );_gfc .SetIfNotNil ("\u0053",_ebb .MakeName (string (ActionTypeMovie )));_gfc .SetIfNotNil ("\u0041\u006e\u006e\u006f\u0074\u0061\u0074\u0069\u006f\u006e",_cfb .Annotation );
|
||
_gfc .SetIfNotNil ("\u0054",_cfb .T );_gfc .SetIfNotNil ("\u004fp\u0065\u0072\u0061\u0074\u0069\u006fn",_cfb .Operation );return _fgc ;};
|
||
|
||
// GetNumPages returns the number of pages in the document.
|
||
func (_cggdf *PdfReader )GetNumPages ()(int ,error ){if _cggdf ._cafdf .GetCrypter ()!=nil &&!_cggdf ._cafdf .IsAuthenticated (){return 0,_bg .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 (_cggdf ._faebb ),nil ;};
|
||
|
||
// IsTerminal returns true for terminal fields, false otherwise.
|
||
// Terminal fields are fields whose descendants are only widget annotations.
|
||
func (_bccac *PdfField )IsTerminal ()bool {return len (_bccac .Kids )==0};
|
||
|
||
// ToGray returns a PdfColorDeviceGray color based on the current RGB color.
|
||
func (_daeg *PdfColorDeviceRGB )ToGray ()*PdfColorDeviceGray {_efca :=0.3*_daeg .R ()+0.59*_daeg .G ()+0.11*_daeg .B ();_efca =_cbg .Min (_cbg .Max (_efca ,0.0),1.0);return NewPdfColorDeviceGray (_efca );};
|
||
|
||
// NewReaderOpts generates a default `ReaderOpts` instance.
|
||
func NewReaderOpts ()*ReaderOpts {return &ReaderOpts {Password :"",LazyLoad :true }};
|
||
|
||
// ColorFromPdfObjects returns a new PdfColor based on the input slice of color
|
||
// components. The slice should contain a single PdfObjectFloat element in
|
||
// range 0-1.
|
||
func (_dfba *PdfColorspaceDeviceGray )ColorFromPdfObjects (objects []_ebb .PdfObject )(PdfColor ,error ){if len (objects )!=1{return nil ,_gf .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_adcfg ,_dcca :=_ebb .GetNumbersAsFloat (objects );
|
||
if _dcca !=nil {return nil ,_dcca ;};return _dfba .ColorFromFloats (_adcfg );};func (_agea *PdfWriter )mapObjectStreams (_eagf bool )(map[_ebb .PdfObject ]bool ,bool ){_cfgec :=make (map[_ebb .PdfObject ]bool );for _ ,_fbcgg :=range _agea ._ebdgg {if _ebfacf ,_efece :=_fbcgg .(*_ebb .PdfObjectStreams );
|
||
_efece {_eagf =true ;for _ ,_eeab :=range _ebfacf .Elements (){_cfgec [_eeab ]=true ;if _adgaf ,_geeed :=_eeab .(*_ebb .PdfIndirectObject );_geeed {_cfgec [_adgaf .PdfObject ]=true ;};};};};return _cfgec ,_eagf ;};
|
||
|
||
// NewPdfActionGoTo returns a new "go to" action.
|
||
func NewPdfActionGoTo ()*PdfActionGoTo {_bb :=NewPdfAction ();_acb :=&PdfActionGoTo {};_acb .PdfAction =_bb ;_bb .SetContext (_acb );return _acb ;};
|
||
|
||
// 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 _ab .ReadSeeker )(*PdfFont ,error ){const _fdbc =_da .CharCode (32);const _dcad =_da .CharCode (255);_gcfb ,_fcfed :=_ef .ReadAll (r );if _fcfed !=nil {_eg .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",_fcfed );
|
||
return nil ,_fcfed ;};_cfbdd ,_fcfed :=_bad .TtfParse (_ca .NewReader (_gcfb ));if _fcfed !=nil {_eg .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",_fcfed );
|
||
return nil ,_fcfed ;};_fcfgg :=&pdfFontSimple {_cdff :make (map[_da .CharCode ]float64 ),fontCommon :fontCommon {_dfbf :"\u0054\u0072\u0075\u0065\u0054\u0079\u0070\u0065"}};_fcfgg ._ebcb =_da .NewWinAnsiEncoder ();_fcfgg ._fdacg =_cfbdd .PostScriptName ;
|
||
_fcfgg .FirstChar =_ebb .MakeInteger (int64 (_fdbc ));_fcfgg .LastChar =_ebb .MakeInteger (int64 (_dcad ));_daaad :=1000.0/float64 (_cfbdd .UnitsPerEm );if len (_cfbdd .Widths )<=0{return nil ,_gf .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");
|
||
};_aaef :=_daaad *float64 (_cfbdd .Widths [0]);_dgfb :=make ([]float64 ,0,_dcad -_fdbc +1);for _gcbc :=_fdbc ;_gcbc <=_dcad ;_gcbc ++{_dcfed ,_gacea :=_fcfgg .Encoder ().CharcodeToRune (_gcbc );if !_gacea {_eg .Log .Debug ("\u0052u\u006e\u0065\u0020\u006eo\u0074\u0020\u0066\u006f\u0075n\u0064 \u0028c\u006f\u0064\u0065\u003a\u0020\u0025\u0064)",_gcbc );
|
||
_dgfb =append (_dgfb ,_aaef );continue ;};_cfbc ,_ggcfc :=_cfbdd .Chars [_dcfed ];if !_ggcfc {_eg .Log .Debug ("R\u0075\u006e\u0065\u0020no\u0074 \u0069\u006e\u0020\u0054\u0054F\u0020\u0043\u0068\u0061\u0072\u0073");_dgfb =append (_dgfb ,_aaef );continue ;
|
||
};_adaed :=_daaad *float64 (_cfbdd .Widths [_cfbc ]);_dgfb =append (_dgfb ,_adaed );};_fcfgg .Widths =_ebb .MakeIndirectObject (_ebb .MakeArrayFromFloats (_dgfb ));if len (_dgfb )< int (_dcad -_fdbc +1){_eg .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 (_dgfb ),255-32+1);
|
||
return nil ,_ebb .ErrRangeError ;};for _ffef :=_fdbc ;_ffef <=_dcad ;_ffef ++{_fcfgg ._cdff [_ffef ]=_dgfb [_ffef -_fdbc ];};_fcfgg .Encoding =_ebb .MakeName ("\u0057i\u006eA\u006e\u0073\u0069\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067");_efcdg :=&PdfFontDescriptor {};
|
||
_efcdg .FontName =_ebb .MakeName (_cfbdd .PostScriptName );_efcdg .Ascent =_ebb .MakeFloat (_daaad *float64 (_cfbdd .TypoAscender ));_efcdg .Descent =_ebb .MakeFloat (_daaad *float64 (_cfbdd .TypoDescender ));_efcdg .CapHeight =_ebb .MakeFloat (_daaad *float64 (_cfbdd .CapHeight ));
|
||
_efcdg .FontBBox =_ebb .MakeArrayFromFloats ([]float64 {_daaad *float64 (_cfbdd .Xmin ),_daaad *float64 (_cfbdd .Ymin ),_daaad *float64 (_cfbdd .Xmax ),_daaad *float64 (_cfbdd .Ymax )});_efcdg .ItalicAngle =_ebb .MakeFloat (_cfbdd .ItalicAngle );_efcdg .MissingWidth =_ebb .MakeFloat (_daaad *float64 (_cfbdd .Widths [0]));
|
||
_egbg ,_fcfed :=_ebb .MakeStream (_gcfb ,_ebb .NewFlateEncoder ());if _fcfed !=nil {_eg .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",_fcfed );
|
||
return nil ,_fcfed ;};_egbg .PdfObjectDictionary .Set ("\u004ce\u006e\u0067\u0074\u0068\u0031",_ebb .MakeInteger (int64 (len (_gcfb ))));_efcdg .FontFile2 =_egbg ;if _cfbdd .Bold {_efcdg .StemV =_ebb .MakeInteger (120);}else {_efcdg .StemV =_ebb .MakeInteger (70);
|
||
};_bdde :=_cbfd ;if _cfbdd .IsFixedPitch {_bdde |=_gfega ;};if _cfbdd .ItalicAngle !=0{_bdde |=_ccgbe ;};_efcdg .Flags =_ebb .MakeInteger (int64 (_bdde ));_fcfgg ._fbbd =_efcdg ;_gfde :=&PdfFont {_ebcad :_fcfgg };return _gfde ,nil ;};
|
||
|
||
// NewOutlineItem returns a new outline item instance.
|
||
func NewOutlineItem (title string ,dest OutlineDest )*OutlineItem {return &OutlineItem {Title :title ,Dest :dest };};
|
||
|
||
// SetContext sets the sub pattern (context). Either PdfTilingPattern or PdfShadingPattern.
|
||
func (_eabe *PdfPattern )SetContext (ctx PdfModel ){_eabe ._ffagg =ctx };
|
||
|
||
// ToPdfObject returns the PDF representation of the colorspace.
|
||
func (_beac *PdfColorspaceSpecialSeparation )ToPdfObject ()_ebb .PdfObject {_fcda :=_ebb .MakeArray (_ebb .MakeName ("\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e"));_fcda .Append (_beac .ColorantName );_fcda .Append (_beac .AlternateSpace .ToPdfObject ());
|
||
_fcda .Append (_beac .TintTransform .ToPdfObject ());if _beac ._cded !=nil {_beac ._cded .PdfObject =_fcda ;return _beac ._cded ;};return _fcda ;};
|
||
|
||
// GetEncryptionMethod returns a descriptive information string about the encryption method used.
|
||
func (_ccgdc *PdfReader )GetEncryptionMethod ()string {_cgcac :=_ccgdc ._cafdf .GetCrypter ();return _cgcac .String ();};func (_cfebb *PdfSignature )extractChainFromPKCS7 ()([]*_g .Certificate ,error ){_ggebd ,_cfca :=_gb .Parse (_cfebb .Contents .Bytes ());
|
||
if _cfca !=nil {return nil ,_cfca ;};return _ggebd .Certificates ,nil ;};
|
||
|
||
// GetCharMetrics returns the char metrics for character code `code`.
|
||
// How it works:
|
||
// 1) It calls the GetCharMetrics function for the underlying font, either a simple font or
|
||
// a Type0 font. The underlying font GetCharMetrics() functions do direct charcode ➞ metrics
|
||
// mappings.
|
||
// 2) If the underlying font's GetCharMetrics() doesn't have a CharMetrics for `code` then a
|
||
// a CharMetrics with the FontDescriptor's /MissingWidth is returned.
|
||
// 3) If there is no /MissingWidth then a failure is returned.
|
||
// TODO(peterwilliams97) There is nothing callers can do if no CharMetrics are found so we might as
|
||
// well give them 0 width. There is no need for the bool return.
|
||
// TODO(gunnsth): Reconsider whether needed or if can map via GlyphName.
|
||
func (_aabcbd *PdfFont )GetCharMetrics (code _da .CharCode )(CharMetrics ,bool ){var _baaedf _bad .CharMetrics ;switch _egcca :=_aabcbd ._ebcad .(type ){case *pdfFontSimple :if _cgaca ,_eafc :=_egcca .GetCharMetrics (code );_eafc {return _cgaca ,_eafc ;
|
||
};case *pdfFontType0 :if _gbfc ,_edcb :=_egcca .GetCharMetrics (code );_edcb {return _gbfc ,_edcb ;};case *pdfCIDFontType0 :if _abgda ,_dafa :=_egcca .GetCharMetrics (code );_dafa {return _abgda ,_dafa ;};case *pdfCIDFontType2 :if _addbb ,_ebdg :=_egcca .GetCharMetrics (code );
|
||
_ebdg {return _addbb ,_ebdg ;};case *pdfFontType3 :if _agceaf ,_aaeg :=_egcca .GetCharMetrics (code );_aaeg {return _agceaf ,_aaeg ;};default:_eg .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",_aabcbd ._ebcad );
|
||
return _baaedf ,false ;};if _cedc ,_ccda :=_aabcbd .GetFontDescriptor ();_ccda ==nil &&_cedc !=nil {return _bad .CharMetrics {Wx :_cedc ._gbfgb },true ;};_eg .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",_aabcbd );
|
||
return _baaedf ,false ;};func (_dgc *PdfReader )newPdfActionRenditionFromDict (_dgb *_ebb .PdfObjectDictionary )(*PdfActionRendition ,error ){return &PdfActionRendition {R :_dgb .Get ("\u0052"),AN :_dgb .Get ("\u0041\u004e"),OP :_dgb .Get ("\u004f\u0050"),JS :_dgb .Get ("\u004a\u0053")},nil ;
|
||
};
|
||
|
||
// GetContainingPdfObject implements interface PdfModel.
|
||
func (_deefa *PdfSignature )GetContainingPdfObject ()_ebb .PdfObject {return _deefa ._ffbgc };
|
||
|
||
// SetContext sets the specific fielddata type, e.g. would be PdfFieldButton for a button field.
|
||
func (_bfdfa *PdfField )SetContext (ctx PdfModel ){_bfdfa ._cada =ctx };
|
||
|
||
// ToPdfObject returns the PDF representation of the shading dictionary.
|
||
func (_cbca *PdfShading )ToPdfObject ()_ebb .PdfObject {_gegb :=_cbca ._fbfae ;_afgba ,_baded :=_cbca .getShadingDict ();if _baded !=nil {_eg .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 _cbca .ShadingType !=nil {_afgba .Set ("S\u0068\u0061\u0064\u0069\u006e\u0067\u0054\u0079\u0070\u0065",_cbca .ShadingType );};if _cbca .ColorSpace !=nil {_afgba .Set ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065",_cbca .ColorSpace .ToPdfObject ());
|
||
};if _cbca .Background !=nil {_afgba .Set ("\u0042\u0061\u0063\u006b\u0067\u0072\u006f\u0075\u006e\u0064",_cbca .Background );};if _cbca .BBox !=nil {_afgba .Set ("\u0042\u0042\u006f\u0078",_cbca .BBox .ToPdfObject ());};if _cbca .AntiAlias !=nil {_afgba .Set ("\u0041n\u0074\u0069\u0041\u006c\u0069\u0061s",_cbca .AntiAlias );
|
||
};return _gegb ;};func _ddacd (_cefgb _ebb .PdfObject ,_bddde bool )(*PdfFont ,error ){_gbcb ,_bdabe ,_dbdb :=_efec (_cefgb );if _gbcb !=nil {_bdgae (_gbcb );};if _dbdb !=nil {if _dbdb ==ErrType1CFontNotSupported {_eefe ,_fbeg :=_bcdgc (_gbcb ,_bdabe ,nil );
|
||
if _fbeg !=nil {_eg .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",_bdabe ,_fbeg );
|
||
return nil ,_dbdb ;};return &PdfFont {_ebcad :_eefe },_dbdb ;};return nil ,_dbdb ;};_gccg :=&PdfFont {};switch _bdabe ._dfbf {case "\u0054\u0079\u0070e\u0030":if !_bddde {_eg .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",_bdabe );
|
||
return nil ,_gf .New ("\u0063\u0079\u0063\u006cic\u0061\u006c\u0020\u0074\u0079\u0070\u0065\u0030\u0020\u006c\u006f\u0061\u0064\u0069n\u0067");};_eage ,_dbfc :=_aggb (_gbcb ,_bdabe );if _dbfc !=nil {_eg .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",_bdabe ,_dbfc );
|
||
return nil ,_dbfc ;};_gccg ._ebcad =_eage ;case "\u0054\u0079\u0070e\u0031","\u004dM\u0054\u0079\u0070\u0065\u0031","\u0054\u0072\u0075\u0065\u0054\u0079\u0070\u0065":var _ceffc *pdfFontSimple ;_cgaeb ,_cgeb :=_bad .NewStdFontByName (_bad .StdFontName (_bdabe ._fdacg ));
|
||
if _cgeb {_bbdd :=_fcgbc (_cgaeb );_gccg ._ebcad =&_bbdd ;_bebee :=_ebb .TraceToDirectObject (_bbdd .ToPdfObject ());_faaf ,_defag ,_bbdg :=_efec (_bebee );if _bbdg !=nil {_eg .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",_bdabe ,_bbdd );
|
||
return nil ,_bbdg ;};for _ ,_dfca :=range _gbcb .Keys (){_faaf .Set (_dfca ,_gbcb .Get (_dfca ));};_ceffc ,_bbdg =_bcdgc (_faaf ,_defag ,_bbdd ._dacee );if _bbdg !=nil {_eg .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",_bdabe ,_bbdd );
|
||
return nil ,_bbdg ;};_ceffc ._cdff =_bbdd ._cdff ;_ceffc ._ddgd =_bbdd ._ddgd ;if _ceffc ._adbd ==nil {_ceffc ._adbd =_bbdd ._adbd ;};}else {_ceffc ,_dbdb =_bcdgc (_gbcb ,_bdabe ,nil );if _dbdb !=nil {_eg .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",_bdabe ,_dbdb );
|
||
return nil ,_dbdb ;};};_dbdb =_ceffc .addEncoding ();if _dbdb !=nil {return nil ,_dbdb ;};if _cgeb {_ceffc .updateStandard14Font ();};if _cgeb &&_ceffc ._ebcb ==nil &&_ceffc ._dacee ==nil {_eg .Log .Error ("\u0073\u0069\u006d\u0070\u006c\u0065\u0066\u006f\u006e\u0074\u003d\u0025\u0073",_ceffc );
|
||
_eg .Log .Error ("\u0066n\u0074\u003d\u0025\u002b\u0076",_cgaeb );};if len (_ceffc ._cdff )==0{_eg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a \u004e\u006f\u0020\u0077\u0069d\u0074h\u0073.\u0020\u0066\u006f\u006e\u0074\u003d\u0025s",_ceffc );};_gccg ._ebcad =_ceffc ;
|
||
case "\u0054\u0079\u0070e\u0033":_bgfb ,_dbdba :=_febaee (_gbcb ,_bdabe );if _dbdba !=nil {_eg .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",_dbdba );
|
||
return nil ,_dbdba ;};_gccg ._ebcad =_bgfb ;case "\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0030":_agcbe ,_afgg :=_fagea (_gbcb ,_bdabe );if _afgg !=nil {_eg .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",_afgg );
|
||
return nil ,_afgg ;};_gccg ._ebcad =_agcbe ;case "\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032":_eabc ,_bbeag :=_fgdad (_gbcb ,_bdabe );if _bbeag !=nil {_eg .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",_bdabe ,_bbeag );
|
||
return nil ,_bbeag ;};_gccg ._ebcad =_eabc ;default:_eg .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",_bdabe );
|
||
return nil ,_bg .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",_bdabe );};return _gccg ,nil ;};
|
||
|
||
// PdfShadingType6 is a Coons patch mesh.
|
||
type PdfShadingType6 struct{*PdfShading ;BitsPerCoordinate *_ebb .PdfObjectInteger ;BitsPerComponent *_ebb .PdfObjectInteger ;BitsPerFlag *_ebb .PdfObjectInteger ;Decode *_ebb .PdfObjectArray ;Function []PdfFunction ;};func (_feeae *PdfWriter )writeAcroFormFields ()error {if _feeae ._dbea ==nil {return nil ;
|
||
};_eg .Log .Trace ("\u0057r\u0069t\u0069\u006e\u0067\u0020\u0061c\u0072\u006f \u0066\u006f\u0072\u006d\u0073");_cbece :=_feeae ._dbea .ToPdfObject ();_eg .Log .Trace ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d\u003a\u0020\u0025\u002b\u0076",_cbece );
|
||
_feeae ._dffegd .Set ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d",_cbece );_bbgeg :=_feeae .addObjects (_cbece );if _bbgeg !=nil {return _bbgeg ;};return nil ;};func _bfebg (_dgba _ebb .PdfObject )(string ,error ){_dgba =_ebb .TraceToDirectObject (_dgba );
|
||
switch _gdeab :=_dgba .(type ){case *_ebb .PdfObjectString :return _gdeab .Str (),nil ;case *_ebb .PdfObjectStream :_cbegf ,_eggde :=_ebb .DecodeStream (_gdeab );if _eggde !=nil {return "",_eggde ;};return string (_cbegf ),nil ;};return "",_bg .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",_dgba );
|
||
};
|
||
|
||
// AddImageResource adds an image to the XObject resources.
|
||
func (_dbgb *PdfPage )AddImageResource (name _ebb .PdfObjectName ,ximg *XObjectImage )error {var _fdfae *_ebb .PdfObjectDictionary ;if _dbgb .Resources .XObject ==nil {_fdfae =_ebb .MakeDict ();_dbgb .Resources .XObject =_fdfae ;}else {var _dcdffe bool ;
|
||
_fdfae ,_dcdffe =(_dbgb .Resources .XObject ).(*_ebb .PdfObjectDictionary );if !_dcdffe {return _gf .New ("\u0069\u006e\u0076\u0061li\u0064\u0020\u0078\u0072\u0065\u0073\u0020\u0064\u0069\u0063\u0074\u0020\u0074\u0079p\u0065");};};_fdfae .Set (name ,ximg .ToPdfObject ());
|
||
return nil ;};
|
||
|
||
// PdfFieldChoice represents a choice field which includes scrollable list boxes and combo boxes.
|
||
type PdfFieldChoice struct{*PdfField ;Opt *_ebb .PdfObjectArray ;TI *_ebb .PdfObjectInteger ;I *_ebb .PdfObjectArray ;};func _aafe (_ebafg _ebb .PdfObject )(*fontFile ,error ){_eg .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",_ebafg );
|
||
_cged :=&fontFile {};_ebafg =_ebb .TraceToDirectObject (_ebafg );_bdaaa ,_aeabc :=_ebafg .(*_ebb .PdfObjectStream );if !_aeabc {_eg .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",_ebafg );
|
||
return nil ,_ebb .ErrTypeError ;};_edcfg :=_bdaaa .PdfObjectDictionary ;_gcded ,_fcdfb :=_ebb .DecodeStream (_bdaaa );if _fcdfb !=nil {return nil ,_fcdfb ;};_bfcf ,_aeabc :=_ebb .GetNameVal (_edcfg .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065"));if !_aeabc {_cged ._badbf =_bfcf ;
|
||
if _bfcf =="\u0054\u0079\u0070\u0065\u0031\u0043"{_eg .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 ;};};_acgfc ,_ :=_ebb .GetIntVal (_edcfg .Get ("\u004ce\u006e\u0067\u0074\u0068\u0031"));_accf ,_ :=_ebb .GetIntVal (_edcfg .Get ("\u004ce\u006e\u0067\u0074\u0068\u0032"));if _acgfc > len (_gcded ){_acgfc =len (_gcded );
|
||
};if _acgfc +_accf > len (_gcded ){_accf =len (_gcded )-_acgfc ;};_aggcb :=_gcded [:_acgfc ];var _bebff []byte ;if _accf > 0{_bebff =_gcded [_acgfc :_acgfc +_accf ];};if _acgfc > 0&&_accf > 0{_efgac :=_cged .loadFromSegments (_aggcb ,_bebff );if _efgac !=nil {return nil ,_efgac ;
|
||
};};return _cged ,nil ;};func (_fcgbf PdfFont )actualFont ()pdfFont {if _fcgbf ._ebcad ==nil {_eg .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",_fcgbf );
|
||
};return _fcgbf ._ebcad ;};
|
||
|
||
// PdfAnnotationWidget represents Widget annotations.
|
||
// Note: Widget annotations are used to display form fields.
|
||
// (Section 12.5.6.19).
|
||
type PdfAnnotationWidget struct{*PdfAnnotation ;H _ebb .PdfObject ;MK _ebb .PdfObject ;A _ebb .PdfObject ;AA _ebb .PdfObject ;BS _ebb .PdfObject ;Parent _ebb .PdfObject ;_gce *PdfField ;_gdga bool ;};
|
||
|
||
// GetXObjectFormByName returns the XObjectForm with the specified name from the
|
||
// page resources, if it exists.
|
||
func (_eefb *PdfPageResources )GetXObjectFormByName (keyName _ebb .PdfObjectName )(*XObjectForm ,error ){_egfae ,_fcbbe :=_eefb .GetXObjectByName (keyName );if _egfae ==nil {return nil ,nil ;};if _fcbbe !=XObjectTypeForm {return nil ,_gf .New ("\u006e\u006f\u0074\u0020\u0061\u0020\u0066\u006f\u0072\u006d");
|
||
};_bdbab ,_cadaag :=NewXObjectFormFromStream (_egfae );if _cadaag !=nil {return nil ,_cadaag ;};return _bdbab ,nil ;};func _egcdd (_ccfa *_ebb .PdfObjectDictionary )(*PdfFieldChoice ,error ){_defae :=&PdfFieldChoice {};_defae .Opt ,_ =_ebb .GetArray (_ccfa .Get ("\u004f\u0070\u0074"));
|
||
_defae .TI ,_ =_ebb .GetInt (_ccfa .Get ("\u0054\u0049"));_defae .I ,_ =_ebb .GetArray (_ccfa .Get ("\u0049"));return _defae ,nil ;};
|
||
|
||
// ToPdfObject returns colorspace in a PDF object format [name dictionary]
|
||
func (_cagf *PdfColorspaceCalRGB )ToPdfObject ()_ebb .PdfObject {_ecabb :=&_ebb .PdfObjectArray {};_ecabb .Append (_ebb .MakeName ("\u0043\u0061\u006c\u0052\u0047\u0042"));_cgce :=_ebb .MakeDict ();if _cagf .WhitePoint !=nil {_ebfd :=_ebb .MakeArray (_ebb .MakeFloat (_cagf .WhitePoint [0]),_ebb .MakeFloat (_cagf .WhitePoint [1]),_ebb .MakeFloat (_cagf .WhitePoint [2]));
|
||
_cgce .Set ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074",_ebfd );}else {_eg .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 _cagf .BlackPoint !=nil {_ggadf :=_ebb .MakeArray (_ebb .MakeFloat (_cagf .BlackPoint [0]),_ebb .MakeFloat (_cagf .BlackPoint [1]),_ebb .MakeFloat (_cagf .BlackPoint [2]));_cgce .Set ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074",_ggadf );
|
||
};if _cagf .Gamma !=nil {_fafd :=_ebb .MakeArray (_ebb .MakeFloat (_cagf .Gamma [0]),_ebb .MakeFloat (_cagf .Gamma [1]),_ebb .MakeFloat (_cagf .Gamma [2]));_cgce .Set ("\u0047\u0061\u006dm\u0061",_fafd );};if _cagf .Matrix !=nil {_bedgb :=_ebb .MakeArray (_ebb .MakeFloat (_cagf .Matrix [0]),_ebb .MakeFloat (_cagf .Matrix [1]),_ebb .MakeFloat (_cagf .Matrix [2]),_ebb .MakeFloat (_cagf .Matrix [3]),_ebb .MakeFloat (_cagf .Matrix [4]),_ebb .MakeFloat (_cagf .Matrix [5]),_ebb .MakeFloat (_cagf .Matrix [6]),_ebb .MakeFloat (_cagf .Matrix [7]),_ebb .MakeFloat (_cagf .Matrix [8]));
|
||
_cgce .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_bedgb );};_ecabb .Append (_cgce );if _cagf ._aeac !=nil {_cagf ._aeac .PdfObject =_ecabb ;return _cagf ._aeac ;};return _ecabb ;};
|
||
|
||
// ToPdfObject returns a stream object.
|
||
func (_fafdfe *XObjectImage )ToPdfObject ()_ebb .PdfObject {_ggca :=_fafdfe ._fbeec ;_agbed :=_ggca .PdfObjectDictionary ;if _fafdfe .Filter !=nil {_agbed =_fafdfe .Filter .MakeStreamDict ();_ggca .PdfObjectDictionary =_agbed ;};_agbed .Set ("\u0054\u0079\u0070\u0065",_ebb .MakeName ("\u0058O\u0062\u006a\u0065\u0063\u0074"));
|
||
_agbed .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ebb .MakeName ("\u0049\u006d\u0061g\u0065"));_agbed .Set ("\u0057\u0069\u0064t\u0068",_ebb .MakeInteger (*(_fafdfe .Width )));_agbed .Set ("\u0048\u0065\u0069\u0067\u0068\u0074",_ebb .MakeInteger (*(_fafdfe .Height )));
|
||
if _fafdfe .BitsPerComponent !=nil {_agbed .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_ebb .MakeInteger (*(_fafdfe .BitsPerComponent )));};if _fafdfe .ColorSpace !=nil {_agbed .SetIfNotNil ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065",_fafdfe .ColorSpace .ToPdfObject ());
|
||
};_agbed .SetIfNotNil ("\u0049\u006e\u0074\u0065\u006e\u0074",_fafdfe .Intent );_agbed .SetIfNotNil ("\u0049m\u0061\u0067\u0065\u004d\u0061\u0073k",_fafdfe .ImageMask );_agbed .SetIfNotNil ("\u004d\u0061\u0073\u006b",_fafdfe .Mask );_adcge :=_agbed .Get ("\u0044\u0065\u0063\u006f\u0064\u0065")!=nil ;
|
||
if _fafdfe .Decode ==nil &&_adcge {_agbed .Remove ("\u0044\u0065\u0063\u006f\u0064\u0065");}else if _fafdfe .Decode !=nil {_agbed .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_fafdfe .Decode );};_agbed .SetIfNotNil ("I\u006e\u0074\u0065\u0072\u0070\u006f\u006c\u0061\u0074\u0065",_fafdfe .Interpolate );
|
||
_agbed .SetIfNotNil ("\u0041\u006c\u0074e\u0072\u006e\u0061\u0074\u0069\u0076\u0065\u0073",_fafdfe .Alternatives );_agbed .SetIfNotNil ("\u0053\u004d\u0061s\u006b",_fafdfe .SMask );_agbed .SetIfNotNil ("S\u004d\u0061\u0073\u006b\u0049\u006e\u0044\u0061\u0074\u0061",_fafdfe .SMaskInData );
|
||
_agbed .SetIfNotNil ("\u004d\u0061\u0074t\u0065",_fafdfe .Matte );_agbed .SetIfNotNil ("\u004e\u0061\u006d\u0065",_fafdfe .Name );_agbed .SetIfNotNil ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074",_fafdfe .StructParent );_agbed .SetIfNotNil ("\u0049\u0044",_fafdfe .ID );
|
||
_agbed .SetIfNotNil ("\u004f\u0050\u0049",_fafdfe .OPI );_agbed .SetIfNotNil ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061",_fafdfe .Metadata );_agbed .SetIfNotNil ("\u004f\u0043",_fafdfe .OC );_agbed .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_ebb .MakeInteger (int64 (len (_fafdfe .Stream ))));
|
||
_ggca .Stream =_fafdfe .Stream ;return _ggca ;};
|
||
|
||
// ToPdfObject returns a *PdfIndirectObject containing a *PdfObjectArray representation of the DeviceN colorspace.
|
||
// Format: [/DeviceN names alternateSpace tintTransform]
|
||
// or: [/DeviceN names alternateSpace tintTransform attributes]
|
||
func (_ffga *PdfColorspaceDeviceN )ToPdfObject ()_ebb .PdfObject {_adbb :=_ebb .MakeArray (_ebb .MakeName ("\u0044e\u0076\u0069\u0063\u0065\u004e"));_adbb .Append (_ffga .ColorantNames );_adbb .Append (_ffga .AlternateSpace .ToPdfObject ());_adbb .Append (_ffga .TintTransform .ToPdfObject ());
|
||
if _ffga .Attributes !=nil {_adbb .Append (_ffga .Attributes .ToPdfObject ());};if _ffga ._gebb !=nil {_ffga ._gebb .PdfObject =_adbb ;return _ffga ._gebb ;};return _adbb ;};
|
||
|
||
// 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 (_egccc *PdfReader )ToWriter (opts *ReaderToWriterOpts )(*PdfWriter ,error ){_fccbcc :=NewPdfWriter ();if opts ==nil {opts =&ReaderToWriterOpts {};};_eccee ,_dccgb :=_egccc .GetNumPages ();if _dccgb !=nil {_eg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_dccgb );
|
||
return nil ,_dccgb ;};for _efdaf :=1;_efdaf <=_eccee ;_efdaf ++{_ffab ,_abff :=_egccc .GetPage (_efdaf );if _abff !=nil {_eg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_abff );return nil ,_abff ;};if opts .PageProcessCallback !=nil {_abff =opts .PageProcessCallback (_efdaf ,_ffab );
|
||
if _abff !=nil {_eg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_abff );return nil ,_abff ;};}else if opts .PageCallback !=nil {opts .PageCallback (_efdaf ,_ffab );};_abff =_fccbcc .AddPage (_ffab );if _abff !=nil {_eg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_abff );
|
||
return nil ,_abff ;};};_fccbcc ._efcge =_egccc .PdfVersion ();if !opts .SkipInfo {_agafg ,_bebcg :=_egccc .GetPdfInfo ();if _bebcg !=nil {_eg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_bebcg );}else {_fccbcc ._eadfd .PdfObject =_agafg .ToPdfObject ();
|
||
};};if !opts .SkipMetadata {if _bbec :=_egccc ._fdgda .Get ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");_bbec !=nil {if _bebd :=_fccbcc .SetCatalogMetadata (_bbec );_bebd !=nil {return nil ,_bebd ;};};};if !opts .SkipAcroForm {_ceagd :=_fccbcc .SetForms (_egccc .AcroForm );
|
||
if _ceagd !=nil {_eg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_ceagd );return nil ,_ceagd ;};};if !opts .SkipOutlines {_fccbcc .AddOutlineTree (_egccc .GetOutlineTree ());};if !opts .SkipOCProperties {_gafgd ,_fdaac :=_egccc .GetOCProperties ();
|
||
if _fdaac !=nil {_eg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_fdaac );}else {_fdaac =_fccbcc .SetOCProperties (_gafgd );if _fdaac !=nil {_eg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_fdaac );};};};if !opts .SkipPageLabels {_fgdc ,_cdaeeg :=_egccc .GetPageLabels ();
|
||
if _cdaeeg !=nil {_eg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_cdaeeg );}else {_cdaeeg =_fccbcc .SetPageLabels (_fgdc );if _cdaeeg !=nil {_eg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_cdaeeg );};};};if !opts .SkipNamedDests {_dafed ,_eadba :=_egccc .GetNamedDestinations ();
|
||
if _eadba !=nil {_eg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_eadba );}else {_eadba =_fccbcc .SetNamedDestinations (_dafed );if _eadba !=nil {_eg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_eadba );};};};if !opts .SkipNameDictionary {_fbdaa ,_cccc :=_egccc .GetNameDictionary ();
|
||
if _cccc !=nil {_eg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_cccc );}else {_cccc =_fccbcc .SetNameDictionary (_fbdaa );if _cccc !=nil {_eg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_cccc );};};};if !opts .SkipRotation &&_egccc .Rotate !=nil {if _beeea :=_fccbcc .SetRotation (*_egccc .Rotate );
|
||
_beeea !=nil {_eg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_beeea );};};return &_fccbcc ,nil ;};
|
||
|
||
// ButtonType represents the subtype of a button field, can be one of:
|
||
// - Checkbox (ButtonTypeCheckbox)
|
||
// - PushButton (ButtonTypePushButton)
|
||
// - RadioButton (ButtonTypeRadioButton)
|
||
type ButtonType int ;var _eefgb =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":{}};
|
||
var (_daddc _bf .Mutex ;_ecgdd ="";_gecg _f .Time ;_afedf ="";_fceef ="";_ccdff _f .Time ;_aaaae ="";_feaca ="";_fead ="";);
|
||
|
||
// ColorFromPdfObjects returns a new PdfColor based on input color components. The input PdfObjects should
|
||
// be numeric.
|
||
func (_bgeaa *PdfColorspaceDeviceN )ColorFromPdfObjects (objects []_ebb .PdfObject )(PdfColor ,error ){if len (objects )!=_bgeaa .GetNumComponents (){return nil ,_gf .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_eaff ,_gca :=_ebb .GetNumbersAsFloat (objects );
|
||
if _gca !=nil {return nil ,_gca ;};return _bgeaa .ColorFromFloats (_eaff );};
|
||
|
||
// IsTiling specifies if the pattern is a tiling pattern.
|
||
func (_cgdcg *PdfPattern )IsTiling ()bool {return _cgdcg .PatternType ==1};
|
||
|
||
// PdfBorderStyle represents a border style dictionary (12.5.4 Border Styles p. 394).
|
||
type PdfBorderStyle struct{W *float64 ;S *BorderStyle ;D *[]int ;_dgaa _ebb .PdfObject ;};
|
||
|
||
// AddPage adds a page to the PDF file. The new page should be an indirect object.
|
||
func (_acabe *PdfWriter )AddPage (page *PdfPage )error {const _efbcf ="\u006d\u006f\u0064el\u003a\u0050\u0064\u0066\u0057\u0072\u0069\u0074\u0065\u0072\u002e\u0041\u0064\u0064\u0050\u0061\u0067\u0065";_bfegc (page );_bebdg :=page .ToPdfObject ();_eg .Log .Trace ("\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d");
|
||
_eg .Log .Trace ("\u0041p\u0070\u0065\u006e\u0064i\u006e\u0067\u0020\u0074\u006f \u0070a\u0067e\u0020\u006c\u0069\u0073\u0074\u0020\u0025T",_bebdg );_eafbf ,_eddcf :=_ebb .GetIndirect (_bebdg );if !_eddcf {return _gf .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");
|
||
};_eg .Log .Trace ("\u0025\u0073",_eafbf );_eg .Log .Trace ("\u0025\u0073",_eafbf .PdfObject );_fbefd ,_eddcf :=_ebb .GetDict (_eafbf .PdfObject );if !_eddcf {return _gf .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");
|
||
};_cgdd ,_eddcf :=_ebb .GetName (_fbefd .Get ("\u0054\u0079\u0070\u0065"));if !_eddcf {return _bg .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",_fbefd .Get ("\u0054\u0079\u0070\u0065"));
|
||
};if _cgdd .String ()!="\u0050\u0061\u0067\u0065"{return _gf .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");};_degfe :=[]_ebb .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"};
|
||
_gebca ,_afffg :=_ebb .GetIndirect (_fbefd .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"));_eg .Log .Trace ("P\u0061g\u0065\u0020\u0050\u0061\u0072\u0065\u006e\u0074:\u0020\u0025\u0054\u0020(%\u0076\u0029",_fbefd .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"),_afffg );
|
||
for _afffg {_eg .Log .Trace ("\u0050a\u0067e\u0020\u0050\u0061\u0072\u0065\u006e\u0074\u003a\u0020\u0025\u0054",_gebca );_fcdfe ,_deea :=_ebb .GetDict (_gebca .PdfObject );if !_deea {return _gf .New ("i\u006e\u0076\u0061\u006cid\u0020P\u0061\u0072\u0065\u006e\u0074 \u006f\u0062\u006a\u0065\u0063\u0074");
|
||
};for _ ,_accdb :=range _degfe {_eg .Log .Trace ("\u0046\u0069\u0065\u006c\u0064\u0020\u0025\u0073",_accdb );if _fbefd .Get (_accdb )!=nil {_eg .Log .Trace ("\u002d \u0070a\u0067\u0065\u0020\u0068\u0061s\u0020\u0061l\u0072\u0065\u0061\u0064\u0079");continue ;
|
||
};if _acccf :=_fcdfe .Get (_accdb );_acccf !=nil {_eg .Log .Trace ("\u0049\u006e\u0068\u0065ri\u0074\u0069\u006e\u0067\u0020\u0066\u0069\u0065\u006c\u0064\u0020\u0025\u0073",_accdb );_fbefd .Set (_accdb ,_acccf );};};_gebca ,_afffg =_ebb .GetIndirect (_fcdfe .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"));
|
||
_eg .Log .Trace ("\u004ee\u0078t\u0020\u0070\u0061\u0072\u0065\u006e\u0074\u003a\u0020\u0025\u0054",_fcdfe .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"));};_eg .Log .Trace ("\u0054\u0072\u0061\u0076\u0065\u0072\u0073\u0061\u006c \u0064\u006f\u006e\u0065");
|
||
_fbefd .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_acabe ._dggbf );_eafbf .PdfObject =_fbefd ;_dgbbd ,_eddcf :=_ebb .GetDict (_acabe ._dggbf .PdfObject );if !_eddcf {return _gf .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");
|
||
};_cgdgd ,_eddcf :=_ebb .GetArray (_dgbbd .Get ("\u004b\u0069\u0064\u0073"));if !_eddcf {return _gf .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");
|
||
};_cgdgd .Append (_eafbf );_acabe ._afbdd [_fbefd ]=struct{}{};_cgaee ,_eddcf :=_ebb .GetInt (_dgbbd .Get ("\u0043\u006f\u0075n\u0074"));if !_eddcf {return _gf .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");
|
||
};*_cgaee =*_cgaee +1;if page ._ddab ==nil {_gadc :=_ce .Track (_acabe ._cfecg ,_efbcf );if _gadc !=nil {return _gadc ;};}else {_aadacd :=_ce .Track (page ._ddab ._decdd ,_efbcf );if _aadacd !=nil {return _aadacd ;};};_acabe .addObject (_eafbf );_bddab :=_acabe .addObjects (_fbefd );
|
||
if _bddab !=nil {return _bddab ;};return nil ;};
|
||
|
||
// ToPdfObject returns the PdfFontDescriptor as a PDF dictionary inside an indirect object.
|
||
func (_gadad *PdfFontDescriptor )ToPdfObject ()_ebb .PdfObject {_ddbeg :=_ebb .MakeDict ();if _gadad ._ccfcg ==nil {_gadad ._ccfcg =&_ebb .PdfIndirectObject {};};_gadad ._ccfcg .PdfObject =_ddbeg ;_ddbeg .Set ("\u0054\u0079\u0070\u0065",_ebb .MakeName ("\u0046\u006f\u006e\u0074\u0044\u0065\u0073\u0063\u0072i\u0070\u0074\u006f\u0072"));
|
||
if _gadad .FontName !=nil {_ddbeg .Set ("\u0046\u006f\u006e\u0074\u004e\u0061\u006d\u0065",_gadad .FontName );};if _gadad .FontFamily !=nil {_ddbeg .Set ("\u0046\u006f\u006e\u0074\u0046\u0061\u006d\u0069\u006c\u0079",_gadad .FontFamily );};if _gadad .FontStretch !=nil {_ddbeg .Set ("F\u006f\u006e\u0074\u0053\u0074\u0072\u0065\u0074\u0063\u0068",_gadad .FontStretch );
|
||
};if _gadad .FontWeight !=nil {_ddbeg .Set ("\u0046\u006f\u006e\u0074\u0057\u0065\u0069\u0067\u0068\u0074",_gadad .FontWeight );};if _gadad .Flags !=nil {_ddbeg .Set ("\u0046\u006c\u0061g\u0073",_gadad .Flags );};if _gadad .FontBBox !=nil {_ddbeg .Set ("\u0046\u006f\u006e\u0074\u0042\u0042\u006f\u0078",_gadad .FontBBox );
|
||
};if _gadad .ItalicAngle !=nil {_ddbeg .Set ("I\u0074\u0061\u006c\u0069\u0063\u0041\u006e\u0067\u006c\u0065",_gadad .ItalicAngle );};if _gadad .Ascent !=nil {_ddbeg .Set ("\u0041\u0073\u0063\u0065\u006e\u0074",_gadad .Ascent );};if _gadad .Descent !=nil {_ddbeg .Set ("\u0044e\u0073\u0063\u0065\u006e\u0074",_gadad .Descent );
|
||
};if _gadad .Leading !=nil {_ddbeg .Set ("\u004ce\u0061\u0064\u0069\u006e\u0067",_gadad .Leading );};if _gadad .CapHeight !=nil {_ddbeg .Set ("\u0043a\u0070\u0048\u0065\u0069\u0067\u0068t",_gadad .CapHeight );};if _gadad .XHeight !=nil {_ddbeg .Set ("\u0058H\u0065\u0069\u0067\u0068\u0074",_gadad .XHeight );
|
||
};if _gadad .StemV !=nil {_ddbeg .Set ("\u0053\u0074\u0065m\u0056",_gadad .StemV );};if _gadad .StemH !=nil {_ddbeg .Set ("\u0053\u0074\u0065m\u0048",_gadad .StemH );};if _gadad .AvgWidth !=nil {_ddbeg .Set ("\u0041\u0076\u0067\u0057\u0069\u0064\u0074\u0068",_gadad .AvgWidth );
|
||
};if _gadad .MaxWidth !=nil {_ddbeg .Set ("\u004d\u0061\u0078\u0057\u0069\u0064\u0074\u0068",_gadad .MaxWidth );};if _gadad .MissingWidth !=nil {_ddbeg .Set ("\u004d\u0069\u0073s\u0069\u006e\u0067\u0057\u0069\u0064\u0074\u0068",_gadad .MissingWidth );};
|
||
if _gadad .FontFile !=nil {_ddbeg .Set ("\u0046\u006f\u006e\u0074\u0046\u0069\u006c\u0065",_gadad .FontFile );};if _gadad .FontFile2 !=nil {_ddbeg .Set ("\u0046o\u006e\u0074\u0046\u0069\u006c\u00652",_gadad .FontFile2 );};if _gadad .FontFile3 !=nil {_ddbeg .Set ("\u0046o\u006e\u0074\u0046\u0069\u006c\u00653",_gadad .FontFile3 );
|
||
};if _gadad .CharSet !=nil {_ddbeg .Set ("\u0043h\u0061\u0072\u0053\u0065\u0074",_gadad .CharSet );};if _gadad .Style !=nil {_ddbeg .Set ("\u0046\u006f\u006e\u0074\u004e\u0061\u006d\u0065",_gadad .FontName );};if _gadad .Lang !=nil {_ddbeg .Set ("\u004c\u0061\u006e\u0067",_gadad .Lang );
|
||
};if _gadad .FD !=nil {_ddbeg .Set ("\u0046\u0044",_gadad .FD );};if _gadad .CIDSet !=nil {_ddbeg .Set ("\u0043\u0049\u0044\u0053\u0065\u0074",_gadad .CIDSet );};return _gadad ._ccfcg ;};
|
||
|
||
// PdfAnnotationText represents Text annotations.
|
||
// (Section 12.5.6.4 p. 402).
|
||
type PdfAnnotationText struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Open _ebb .PdfObject ;Name _ebb .PdfObject ;State _ebb .PdfObject ;StateModel _ebb .PdfObject ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_ccaaf *PdfAnnotationText )ToPdfObject ()_ebb .PdfObject {_ccaaf .PdfAnnotation .ToPdfObject ();_afe :=_ccaaf ._bdcd ;_adba :=_afe .PdfObject .(*_ebb .PdfObjectDictionary );if _ccaaf .PdfAnnotationMarkup !=nil {_ccaaf .PdfAnnotationMarkup .appendToPdfDictionary (_adba );
|
||
};_adba .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ebb .MakeName ("\u0054\u0065\u0078\u0074"));_adba .SetIfNotNil ("\u004f\u0070\u0065\u006e",_ccaaf .Open );_adba .SetIfNotNil ("\u004e\u0061\u006d\u0065",_ccaaf .Name );_adba .SetIfNotNil ("\u0053\u0074\u0061t\u0065",_ccaaf .State );
|
||
_adba .SetIfNotNil ("\u0053\u0074\u0061\u0074\u0065\u004d\u006f\u0064\u0065\u006c",_ccaaf .StateModel );return _afe ;};
|
||
|
||
// PdfFieldText represents a text field where user can enter text.
|
||
type PdfFieldText struct{*PdfField ;DA *_ebb .PdfObjectString ;Q *_ebb .PdfObjectInteger ;DS *_ebb .PdfObjectString ;RV _ebb .PdfObject ;MaxLen *_ebb .PdfObjectInteger ;};func (_faadd *PdfColorspaceDeviceCMYK )String ()string {return "\u0044\u0065\u0076\u0069\u0063\u0065\u0043\u004d\u0059\u004b";
|
||
};
|
||
|
||
// 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 *_ebb .PdfParser ;DiffPolicy _ac .DiffPolicy ;};
|
||
|
||
// GetContentStreamWithEncoder returns the pattern cell's content stream and its encoder
|
||
func (_ceeff *PdfTilingPattern )GetContentStreamWithEncoder ()([]byte ,_ebb .StreamEncoder ,error ){_befa ,_fdfe :=_ceeff ._dcddc .(*_ebb .PdfObjectStream );if !_fdfe {_eg .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",_ceeff ._dcddc );
|
||
return nil ,nil ,_ebb .ErrTypeError ;};_abcf ,_gdeed :=_ebb .DecodeStream (_befa );if _gdeed !=nil {_eg .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",_gdeed );
|
||
return nil ,nil ,_gdeed ;};_cgcgd ,_gdeed :=_ebb .NewEncoderFromStream (_befa );if _gdeed !=nil {_eg .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",_gdeed );
|
||
return nil ,nil ,_gdeed ;};return _abcf ,_cgcgd ,nil ;};
|
||
|
||
// Items returns all children outline items.
|
||
func (_dbbb *OutlineItem )Items ()[]*OutlineItem {return _dbbb .Entries };
|
||
|
||
// ToPdfObject returns the PDF representation of the tiling pattern.
|
||
func (_ccefa *PdfTilingPattern )ToPdfObject ()_ebb .PdfObject {_ccefa .PdfPattern .ToPdfObject ();_abbac :=_ccefa .getDict ();if _ccefa .PaintType !=nil {_abbac .Set ("\u0050a\u0069\u006e\u0074\u0054\u0079\u0070e",_ccefa .PaintType );};if _ccefa .TilingType !=nil {_abbac .Set ("\u0054\u0069\u006c\u0069\u006e\u0067\u0054\u0079\u0070\u0065",_ccefa .TilingType );
|
||
};if _ccefa .BBox !=nil {_abbac .Set ("\u0042\u0042\u006f\u0078",_ccefa .BBox .ToPdfObject ());};if _ccefa .XStep !=nil {_abbac .Set ("\u0058\u0053\u0074e\u0070",_ccefa .XStep );};if _ccefa .YStep !=nil {_abbac .Set ("\u0059\u0053\u0074e\u0070",_ccefa .YStep );
|
||
};if _ccefa .Resources !=nil {_abbac .Set ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s",_ccefa .Resources .ToPdfObject ());};if _ccefa .Matrix !=nil {_abbac .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_ccefa .Matrix );};return _ccefa ._dcddc ;};
|
||
|
||
// ReaderToWriterOpts options used to generate a PdfWriter.
|
||
type ReaderToWriterOpts struct{SkipAcroForm bool ;SkipInfo bool ;SkipNameDictionary bool ;SkipNamedDests bool ;SkipOCProperties bool ;SkipOutlines bool ;SkipPageLabels bool ;SkipRotation bool ;SkipMetadata bool ;PageProcessCallback PageProcessCallback ;
|
||
|
||
|
||
// Deprecated: will be removed in v4. Use PageProcessCallback instead.
|
||
PageCallback PageCallback ;};func (_cbee *PdfReader )newPdfAnnotationFromIndirectObject (_cca *_ebb .PdfIndirectObject )(*PdfAnnotation ,error ){_fcc ,_dad :=_cca .PdfObject .(*_ebb .PdfObjectDictionary );if !_dad {return nil ,_bg .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 :=_cbee ._abbaca .GetModelFromPrimitive (_fcc );model !=nil {_gdbd ,_bebb :=model .(*PdfAnnotation );if !_bebb {return nil ,_bg .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 _gdbd ,nil ;};_bgea :=&PdfAnnotation {};_bgea ._bdcd =_cca ;_cbee ._abbaca .Register (_fcc ,_bgea );if _cgf :=_fcc .Get ("\u0054\u0079\u0070\u0065");_cgf !=nil {_abc ,_dba :=_cgf .(*_ebb .PdfObjectName );if !_dba {_eg .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",_cgf );
|
||
}else {if *_abc !="\u0041\u006e\u006eo\u0074"{_eg .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",*_abc );};};};if _dgd :=_fcc .Get ("\u0052\u0065\u0063\u0074");
|
||
_dgd !=nil {_bgea .Rect =_dgd ;};if _fefa :=_fcc .Get ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073");_fefa !=nil {_bgea .Contents =_fefa ;};if _dgbf :=_fcc .Get ("\u0050");_dgbf !=nil {_bgea .P =_dgbf ;};if _ddac :=_fcc .Get ("\u004e\u004d");_ddac !=nil {_bgea .NM =_ddac ;
|
||
};if _gaa :=_fcc .Get ("\u004d");_gaa !=nil {_bgea .M =_gaa ;};if _beg :=_fcc .Get ("\u0046");_beg !=nil {_bgea .F =_beg ;};if _fgae :=_fcc .Get ("\u0041\u0050");_fgae !=nil {_bgea .AP =_fgae ;};if _fcf :=_fcc .Get ("\u0041\u0053");_fcf !=nil {_bgea .AS =_fcf ;
|
||
};if _daa :=_fcc .Get ("\u0042\u006f\u0072\u0064\u0065\u0072");_daa !=nil {_bgea .Border =_daa ;};if _fcfd :=_fcc .Get ("\u0043");_fcfd !=nil {_bgea .C =_fcfd ;};if _agd :=_fcc .Get ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074");
|
||
_agd !=nil {_bgea .StructParent =_agd ;};if _dea :=_fcc .Get ("\u004f\u0043");_dea !=nil {_bgea .OC =_dea ;};_fccb :=_fcc .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065");if _fccb ==nil {_eg .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");
|
||
_bgea ._efd =nil ;return _bgea ,nil ;};_gbeg ,_aedg :=_fccb .(*_ebb .PdfObjectName );if !_aedg {_eg .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",_fccb );
|
||
return nil ,_bg .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",_fccb );};switch *_gbeg {case "\u0054\u0065\u0078\u0074":_ddgb ,_dgcc :=_cbee .newPdfAnnotationTextFromDict (_fcc );
|
||
if _dgcc !=nil {return nil ,_dgcc ;};_ddgb .PdfAnnotation =_bgea ;_bgea ._efd =_ddgb ;return _bgea ,nil ;case "\u004c\u0069\u006e\u006b":_adf ,_bdf :=_cbee .newPdfAnnotationLinkFromDict (_fcc );if _bdf !=nil {return nil ,_bdf ;};_adf .PdfAnnotation =_bgea ;
|
||
_bgea ._efd =_adf ;return _bgea ,nil ;case "\u0046\u0072\u0065\u0065\u0054\u0065\u0078\u0074":_abcc ,_dggd :=_cbee .newPdfAnnotationFreeTextFromDict (_fcc );if _dggd !=nil {return nil ,_dggd ;};_abcc .PdfAnnotation =_bgea ;_bgea ._efd =_abcc ;return _bgea ,nil ;
|
||
case "\u004c\u0069\u006e\u0065":_fdefc ,_edf :=_cbee .newPdfAnnotationLineFromDict (_fcc );if _edf !=nil {return nil ,_edf ;};_fdefc .PdfAnnotation =_bgea ;_bgea ._efd =_fdefc ;_eg .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",_bgea ,_bgea );
|
||
_eg .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",_fdefc ,_fdefc );_eg .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",_fdefc .PdfAnnotationMarkup ,_fdefc .PdfAnnotationMarkup );
|
||
return _bgea ,nil ;case "\u0053\u0071\u0075\u0061\u0072\u0065":_dbb ,_cbaa :=_cbee .newPdfAnnotationSquareFromDict (_fcc );if _cbaa !=nil {return nil ,_cbaa ;};_dbb .PdfAnnotation =_bgea ;_bgea ._efd =_dbb ;return _bgea ,nil ;case "\u0043\u0069\u0072\u0063\u006c\u0065":_dadd ,_ccea :=_cbee .newPdfAnnotationCircleFromDict (_fcc );
|
||
if _ccea !=nil {return nil ,_ccea ;};_dadd .PdfAnnotation =_bgea ;_bgea ._efd =_dadd ;return _bgea ,nil ;case "\u0050o\u006c\u0079\u0067\u006f\u006e":_gdcdf ,_dff :=_cbee .newPdfAnnotationPolygonFromDict (_fcc );if _dff !=nil {return nil ,_dff ;};_gdcdf .PdfAnnotation =_bgea ;
|
||
_bgea ._efd =_gdcdf ;return _bgea ,nil ;case "\u0050\u006f\u006c\u0079\u004c\u0069\u006e\u0065":_gab ,_bcd :=_cbee .newPdfAnnotationPolyLineFromDict (_fcc );if _bcd !=nil {return nil ,_bcd ;};_gab .PdfAnnotation =_bgea ;_bgea ._efd =_gab ;return _bgea ,nil ;
|
||
case "\u0048i\u0067\u0068\u006c\u0069\u0067\u0068t":_bgd ,_fae :=_cbee .newPdfAnnotationHighlightFromDict (_fcc );if _fae !=nil {return nil ,_fae ;};_bgd .PdfAnnotation =_bgea ;_bgea ._efd =_bgd ;return _bgea ,nil ;case "\u0055n\u0064\u0065\u0072\u006c\u0069\u006ee":_ddfa ,_abea :=_cbee .newPdfAnnotationUnderlineFromDict (_fcc );
|
||
if _abea !=nil {return nil ,_abea ;};_ddfa .PdfAnnotation =_bgea ;_bgea ._efd =_ddfa ;return _bgea ,nil ;case "\u0053\u0071\u0075\u0069\u0067\u0067\u006c\u0079":_bdb ,_cfad :=_cbee .newPdfAnnotationSquigglyFromDict (_fcc );if _cfad !=nil {return nil ,_cfad ;
|
||
};_bdb .PdfAnnotation =_bgea ;_bgea ._efd =_bdb ;return _bgea ,nil ;case "\u0053t\u0072\u0069\u006b\u0065\u004f\u0075t":_afb ,_cfe :=_cbee .newPdfAnnotationStrikeOut (_fcc );if _cfe !=nil {return nil ,_cfe ;};_afb .PdfAnnotation =_bgea ;_bgea ._efd =_afb ;
|
||
return _bgea ,nil ;case "\u0043\u0061\u0072e\u0074":_abgf ,_ceff :=_cbee .newPdfAnnotationCaretFromDict (_fcc );if _ceff !=nil {return nil ,_ceff ;};_abgf .PdfAnnotation =_bgea ;_bgea ._efd =_abgf ;return _bgea ,nil ;case "\u0053\u0074\u0061m\u0070":_dbad ,_ada :=_cbee .newPdfAnnotationStampFromDict (_fcc );
|
||
if _ada !=nil {return nil ,_ada ;};_dbad .PdfAnnotation =_bgea ;_bgea ._efd =_dbad ;return _bgea ,nil ;case "\u0049\u006e\u006b":_fba ,_gcf :=_cbee .newPdfAnnotationInkFromDict (_fcc );if _gcf !=nil {return nil ,_gcf ;};_fba .PdfAnnotation =_bgea ;_bgea ._efd =_fba ;
|
||
return _bgea ,nil ;case "\u0050\u006f\u0070u\u0070":_aga ,_cbcc :=_cbee .newPdfAnnotationPopupFromDict (_fcc );if _cbcc !=nil {return nil ,_cbcc ;};_aga .PdfAnnotation =_bgea ;_bgea ._efd =_aga ;return _bgea ,nil ;case "\u0046\u0069\u006c\u0065\u0041\u0074\u0074\u0061\u0063h\u006d\u0065\u006e\u0074":_fag ,_abcg :=_cbee .newPdfAnnotationFileAttachmentFromDict (_fcc );
|
||
if _abcg !=nil {return nil ,_abcg ;};_fag .PdfAnnotation =_bgea ;_bgea ._efd =_fag ;return _bgea ,nil ;case "\u0053\u006f\u0075n\u0064":_ddgc ,_dbag :=_cbee .newPdfAnnotationSoundFromDict (_fcc );if _dbag !=nil {return nil ,_dbag ;};_ddgc .PdfAnnotation =_bgea ;
|
||
_bgea ._efd =_ddgc ;return _bgea ,nil ;case "\u0052i\u0063\u0068\u004d\u0065\u0064\u0069a":_ffg ,_dabc :=_cbee .newPdfAnnotationRichMediaFromDict (_fcc );if _dabc !=nil {return nil ,_dabc ;};_ffg .PdfAnnotation =_bgea ;_bgea ._efd =_ffg ;return _bgea ,nil ;
|
||
case "\u004d\u006f\u0076i\u0065":_adb ,_afbe :=_cbee .newPdfAnnotationMovieFromDict (_fcc );if _afbe !=nil {return nil ,_afbe ;};_adb .PdfAnnotation =_bgea ;_bgea ._efd =_adb ;return _bgea ,nil ;case "\u0053\u0063\u0072\u0065\u0065\u006e":_cece ,_cab :=_cbee .newPdfAnnotationScreenFromDict (_fcc );
|
||
if _cab !=nil {return nil ,_cab ;};_cece .PdfAnnotation =_bgea ;_bgea ._efd =_cece ;return _bgea ,nil ;case "\u0057\u0069\u0064\u0067\u0065\u0074":_cafg ,_dbeb :=_cbee .newPdfAnnotationWidgetFromDict (_fcc );if _dbeb !=nil {return nil ,_dbeb ;};_cafg .PdfAnnotation =_bgea ;
|
||
_bgea ._efd =_cafg ;return _bgea ,nil ;case "P\u0072\u0069\u006e\u0074\u0065\u0072\u004d\u0061\u0072\u006b":_eaee ,_faee :=_cbee .newPdfAnnotationPrinterMarkFromDict (_fcc );if _faee !=nil {return nil ,_faee ;};_eaee .PdfAnnotation =_bgea ;_bgea ._efd =_eaee ;
|
||
return _bgea ,nil ;case "\u0054r\u0061\u0070\u004e\u0065\u0074":_gfac ,_bgg :=_cbee .newPdfAnnotationTrapNetFromDict (_fcc );if _bgg !=nil {return nil ,_bgg ;};_gfac .PdfAnnotation =_bgea ;_bgea ._efd =_gfac ;return _bgea ,nil ;case "\u0057a\u0074\u0065\u0072\u006d\u0061\u0072k":_fdb ,_ccce :=_cbee .newPdfAnnotationWatermarkFromDict (_fcc );
|
||
if _ccce !=nil {return nil ,_ccce ;};_fdb .PdfAnnotation =_bgea ;_bgea ._efd =_fdb ;return _bgea ,nil ;case "\u0033\u0044":_fbfd ,_eaa :=_cbee .newPdfAnnotation3DFromDict (_fcc );if _eaa !=nil {return nil ,_eaa ;};_fbfd .PdfAnnotation =_bgea ;_bgea ._efd =_fbfd ;
|
||
return _bgea ,nil ;case "\u0050\u0072\u006f\u006a\u0065\u0063\u0074\u0069\u006f\u006e":_adag ,_gbaf :=_cbee .newPdfAnnotationProjectionFromDict (_fcc );if _gbaf !=nil {return nil ,_gbaf ;};_adag .PdfAnnotation =_bgea ;_bgea ._efd =_adag ;return _bgea ,nil ;
|
||
case "\u0052\u0065\u0064\u0061\u0063\u0074":_abeac ,_cdbd :=_cbee .newPdfAnnotationRedactFromDict (_fcc );if _cdbd !=nil {return nil ,_cdbd ;};_abeac .PdfAnnotation =_bgea ;_bgea ._efd =_abeac ;return _bgea ,nil ;};_eg .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",*_gbeg );
|
||
return nil ,nil ;};
|
||
|
||
// DecodeArray returns the component range values for the Separation colorspace.
|
||
func (_aeaf *PdfColorspaceSpecialSeparation )DecodeArray ()[]float64 {return []float64 {0,1.0}};
|
||
|
||
// ToPdfObject returns the PDF representation of the VRI dictionary.
|
||
func (_edcf *VRI )ToPdfObject ()*_ebb .PdfObjectDictionary {_dbcg :=_ebb .MakeDict ();_dbcg .SetIfNotNil (_ebb .PdfObjectName ("\u0043\u0065\u0072\u0074"),_agdbf (_edcf .Cert ));_dbcg .SetIfNotNil (_ebb .PdfObjectName ("\u004f\u0043\u0053\u0050"),_agdbf (_edcf .OCSP ));
|
||
_dbcg .SetIfNotNil (_ebb .PdfObjectName ("\u0043\u0052\u004c"),_agdbf (_edcf .CRL ));_dbcg .SetIfNotNil ("\u0054\u0055",_edcf .TU );_dbcg .SetIfNotNil ("\u0054\u0053",_edcf .TS );return _dbcg ;};func (_bcef *PdfReader )newPdfAnnotationWidgetFromDict (_bgfc *_ebb .PdfObjectDictionary )(*PdfAnnotationWidget ,error ){_deac :=PdfAnnotationWidget {};
|
||
_deac .H =_bgfc .Get ("\u0048");_deac .MK =_bgfc .Get ("\u004d\u004b");_deac .A =_bgfc .Get ("\u0041");_deac .AA =_bgfc .Get ("\u0041\u0041");_deac .BS =_bgfc .Get ("\u0042\u0053");_deac .Parent =_bgfc .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");return &_deac ,nil ;
|
||
};
|
||
|
||
// PdfAnnotationCaret represents Caret annotations.
|
||
// (Section 12.5.6.11).
|
||
type PdfAnnotationCaret struct{*PdfAnnotation ;*PdfAnnotationMarkup ;RD _ebb .PdfObject ;Sy _ebb .PdfObject ;};func (_ggbef *PdfShading )getShadingDict ()(*_ebb .PdfObjectDictionary ,error ){_dddcg :=_ggbef ._fbfae ;if _cegfc ,_bedb :=_dddcg .(*_ebb .PdfIndirectObject );
|
||
_bedb {_gfdcf ,_cecd :=_cegfc .PdfObject .(*_ebb .PdfObjectDictionary );if !_cecd {return nil ,_ebb .ErrTypeError ;};return _gfdcf ,nil ;}else if _ggee ,_defee :=_dddcg .(*_ebb .PdfObjectStream );_defee {return _ggee .PdfObjectDictionary ,nil ;}else if _dcbcad ,_fefd :=_dddcg .(*_ebb .PdfObjectDictionary );
|
||
_fefd {return _dcbcad ,nil ;}else {_eg .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 ,_ebb .ErrTypeError ;
|
||
};};
|
||
|
||
// String returns a string representation of PdfTransformParamsDocMDP.
|
||
func (_egecf *PdfTransformParamsDocMDP )String ()string {return _bg .Sprintf ("\u0025\u0073\u0020\u0050\u003a\u0020\u0025\u0073\u0020V\u003a\u0020\u0025\u0073",_egecf .Type ,_egecf .P ,_egecf .V );};
|
||
|
||
// 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 _gfcg (_abafc *_ebb .PdfObjectStream )(*PdfFunctionType0 ,error ){_cbebf :=&PdfFunctionType0 {};_cbebf ._afgcc =_abafc ;_gdaga :=_abafc .PdfObjectDictionary ;_geca ,_fdbbb :=_ebb .TraceToDirectObject (_gdaga .Get ("\u0044\u006f\u006d\u0061\u0069\u006e")).(*_ebb .PdfObjectArray );
|
||
if !_fdbbb {_eg .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_gf .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 _geca .Len ()< 0||_geca .Len ()%2!=0{_eg .Log .Error ("\u0044\u006f\u006d\u0061\u0069\u006e\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");return nil ,_gf .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0064\u006f\u006da\u0069\u006e\u0020\u0072an\u0067\u0065");
|
||
};_cbebf .NumInputs =_geca .Len ()/2;_bfacf ,_cgcbc :=_geca .ToFloat64Array ();if _cgcbc !=nil {return nil ,_cgcbc ;};_cbebf .Domain =_bfacf ;_geca ,_fdbbb =_ebb .TraceToDirectObject (_gdaga .Get ("\u0052\u0061\u006eg\u0065")).(*_ebb .PdfObjectArray );
|
||
if !_fdbbb {_eg .Log .Error ("\u0052\u0061\u006e\u0067e \u006e\u006f\u0074\u0020\u0073\u0070\u0065\u0063\u0069\u0066\u0069\u0065\u0064");return nil ,_gf .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 _geca .Len ()< 0||_geca .Len ()%2!=0{return nil ,_gf .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0061\u006e\u0067\u0065");};_cbebf .NumOutputs =_geca .Len ()/2;_abada ,_cgcbc :=_geca .ToFloat64Array ();if _cgcbc !=nil {return nil ,_cgcbc ;
|
||
};_cbebf .Range =_abada ;_geca ,_fdbbb =_ebb .TraceToDirectObject (_gdaga .Get ("\u0053\u0069\u007a\u0065")).(*_ebb .PdfObjectArray );if !_fdbbb {_eg .Log .Error ("\u0053i\u007ae\u0020\u006e\u006f\u0074\u0020s\u0070\u0065c\u0069\u0066\u0069\u0065\u0064");
|
||
return nil ,_gf .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");};_dcae ,_cgcbc :=_geca .ToIntegerArray ();
|
||
if _cgcbc !=nil {return nil ,_cgcbc ;};if len (_dcae )!=_cbebf .NumInputs {_eg .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 ,_gf .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_cbebf .Size =_dcae ;_efdbe ,_fdbbb :=_ebb .TraceToDirectObject (_gdaga .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0053\u0061\u006d\u0070\u006c\u0065")).(*_ebb .PdfObjectInteger );
|
||
if !_fdbbb {_eg .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 ,_gf .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 *_efdbe !=1&&*_efdbe !=2&&*_efdbe !=4&&*_efdbe !=8&&*_efdbe !=12&&*_efdbe !=16&&*_efdbe !=24&&*_efdbe !=32{_eg .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",*_efdbe );
|
||
return nil ,_gf .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_cbebf .BitsPerSample =int (*_efdbe );_cbebf .Order =1;_bcgb ,_fdbbb :=_ebb .TraceToDirectObject (_gdaga .Get ("\u004f\u0072\u0064e\u0072")).(*_ebb .PdfObjectInteger );
|
||
if _fdbbb {if *_bcgb !=1&&*_bcgb !=3{_eg .Log .Error ("\u0049n\u0076a\u006c\u0069\u0064\u0020\u006fr\u0064\u0065r\u0020\u0028\u0025\u0064\u0029",*_bcgb );return nil ,_gf .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_cbebf .Order =int (*_bcgb );
|
||
};_geca ,_fdbbb =_ebb .TraceToDirectObject (_gdaga .Get ("\u0045\u006e\u0063\u006f\u0064\u0065")).(*_ebb .PdfObjectArray );if _fdbbb {_aebb ,_bdac :=_geca .ToFloat64Array ();if _bdac !=nil {return nil ,_bdac ;};_cbebf .Encode =_aebb ;};_geca ,_fdbbb =_ebb .TraceToDirectObject (_gdaga .Get ("\u0044\u0065\u0063\u006f\u0064\u0065")).(*_ebb .PdfObjectArray );
|
||
if _fdbbb {_cfcgaf ,_aaegc :=_geca .ToFloat64Array ();if _aaegc !=nil {return nil ,_aaegc ;};_cbebf .Decode =_cfcgaf ;};_fegad ,_cgcbc :=_ebb .DecodeStream (_abafc );if _cgcbc !=nil {return nil ,_cgcbc ;};_cbebf ._aeecg =_fegad ;return _cbebf ,nil ;};
|
||
|
||
// PdfColorCalGray represents a CalGray colorspace.
|
||
type PdfColorCalGray float64 ;func (_gcfcd *PdfReader )newPdfSignatureFromIndirect (_bddba *_ebb .PdfIndirectObject )(*PdfSignature ,error ){_ecacg ,_cbgce :=_bddba .PdfObject .(*_ebb .PdfObjectDictionary );if !_cbgce {_eg .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 _acdgb ,_debff :=_gcfcd ._abbaca .GetModelFromPrimitive (_bddba ).(*PdfSignature );_debff {return _acdgb ,nil ;};_eggcbg :=&PdfSignature {};_eggcbg ._ffbgc =_bddba ;_eggcbg .Type ,_ =_ebb .GetName (_ecacg .Get ("\u0054\u0079\u0070\u0065"));
|
||
_eggcbg .Filter ,_cbgce =_ebb .GetName (_ecacg .Get ("\u0046\u0069\u006c\u0074\u0065\u0072"));if !_cbgce {_eg .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 ;};_eggcbg .SubFilter ,_ =_ebb .GetName (_ecacg .Get ("\u0053u\u0062\u0046\u0069\u006c\u0074\u0065r"));_eggcbg .Contents ,_cbgce =_ebb .GetString (_ecacg .Get ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073"));if !_cbgce {_eg .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 _cbdbb ,_cadgd :=_ebb .GetArray (_ecacg .Get ("\u0052e\u0066\u0065\u0072\u0065\u006e\u0063e"));_cadgd {_eggcbg .Reference =_ebb .MakeArray ();for _ ,_egacg :=range _cbdbb .Elements (){_geead ,_eddc :=_ebb .GetDict (_egacg );
|
||
if !_eddc {_eg .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 ;
|
||
};_ffgd ,_bcfb :=_gcfcd .newPdfSignatureReferenceFromDict (_geead );if _bcfb !=nil {return nil ,_bcfb ;};_eggcbg .Reference .Append (_ffgd .ToPdfObject ());};};_eggcbg .Cert =_ecacg .Get ("\u0043\u0065\u0072\u0074");_eggcbg .ByteRange ,_ =_ebb .GetArray (_ecacg .Get ("\u0042y\u0074\u0065\u0052\u0061\u006e\u0067e"));
|
||
_eggcbg .Changes ,_ =_ebb .GetArray (_ecacg .Get ("\u0043h\u0061\u006e\u0067\u0065\u0073"));_eggcbg .Name ,_ =_ebb .GetString (_ecacg .Get ("\u004e\u0061\u006d\u0065"));_eggcbg .M ,_ =_ebb .GetString (_ecacg .Get ("\u004d"));_eggcbg .Location ,_ =_ebb .GetString (_ecacg .Get ("\u004c\u006f\u0063\u0061\u0074\u0069\u006f\u006e"));
|
||
_eggcbg .Reason ,_ =_ebb .GetString (_ecacg .Get ("\u0052\u0065\u0061\u0073\u006f\u006e"));_eggcbg .ContactInfo ,_ =_ebb .GetString (_ecacg .Get ("C\u006f\u006e\u0074\u0061\u0063\u0074\u0049\u006e\u0066\u006f"));_eggcbg .R ,_ =_ebb .GetInt (_ecacg .Get ("\u0052"));
|
||
_eggcbg .V ,_ =_ebb .GetInt (_ecacg .Get ("\u0056"));_eggcbg .PropBuild ,_ =_ebb .GetDict (_ecacg .Get ("\u0050\u0072\u006f\u0070\u005f\u0042\u0075\u0069\u006c\u0064"));_eggcbg .PropAuthTime ,_ =_ebb .GetInt (_ecacg .Get ("\u0050\u0072\u006f\u0070\u005f\u0041\u0075\u0074\u0068\u0054\u0069\u006d\u0065"));
|
||
_eggcbg .PropAuthType ,_ =_ebb .GetName (_ecacg .Get ("\u0050\u0072\u006f\u0070\u005f\u0041\u0075\u0074\u0068\u0054\u0079\u0070\u0065"));_gcfcd ._abbaca .Register (_bddba ,_eggcbg );return _eggcbg ,nil ;};func (_gfaeb *DSS )addCerts (_aafcg [][]byte )([]*_ebb .PdfObjectStream ,error ){return _gfaeb .add (&_gfaeb .Certs ,_gfaeb ._aeag ,_aafcg );
|
||
};
|
||
|
||
// 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 (_ddgcd *PdfPageResources )GetFontByName (keyName _ebb .PdfObjectName )(_ebb .PdfObject ,bool ){if _ddgcd .Font ==nil {return nil ,false ;};_aebge ,_gefca :=_ebb .TraceToDirectObject (_ddgcd .Font ).(*_ebb .PdfObjectDictionary );if !_gefca {_eg .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",_ebb .TraceToDirectObject (_ddgcd .Font ));
|
||
return nil ,false ;};if _gdgcb :=_aebge .Get (keyName );_gdgcb !=nil {return _gdgcb ,true ;};return nil ,false ;};
|
||
|
||
// NewPdfAnnotationPrinterMark returns a new printermark annotation.
|
||
func NewPdfAnnotationPrinterMark ()*PdfAnnotationPrinterMark {_dda :=NewPdfAnnotation ();_edd :=&PdfAnnotationPrinterMark {};_edd .PdfAnnotation =_dda ;_dda .SetContext (_edd );return _edd ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the shading dictionary.
|
||
func (_daabe *PdfShadingType1 )ToPdfObject ()_ebb .PdfObject {_daabe .PdfShading .ToPdfObject ();_dgfbd ,_dcdea :=_daabe .getShadingDict ();if _dcdea !=nil {_eg .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 _daabe .Domain !=nil {_dgfbd .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_daabe .Domain );};if _daabe .Matrix !=nil {_dgfbd .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_daabe .Matrix );};if _daabe .Function !=nil {if len (_daabe .Function )==1{_dgfbd .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_daabe .Function [0].ToPdfObject ());
|
||
}else {_acfa :=_ebb .MakeArray ();for _ ,_agffe :=range _daabe .Function {_acfa .Append (_agffe .ToPdfObject ());};_dgfbd .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_acfa );};};return _daabe ._fbfae ;};
|
||
|
||
// NewBorderStyle returns an initialized PdfBorderStyle.
|
||
func NewBorderStyle ()*PdfBorderStyle {_ccbe :=&PdfBorderStyle {};return _ccbe };
|
||
|
||
// 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 *_ebb .PdfObjectArray ;AlternateSpace PdfColorspace ;TintTransform PdfFunction ;Attributes *PdfColorspaceDeviceNAttributes ;_gebb *_ebb .PdfIndirectObject ;};
|
||
|
||
// AddWatermarkImage adds a watermark to the page.
|
||
func (_dffcag *PdfPage )AddWatermarkImage (ximg *XObjectImage ,opt WatermarkImageOptions )error {_ddag ,_bfebe :=_dffcag .GetMediaBox ();if _bfebe !=nil {return _bfebe ;};_ebdcaa :=_ddag .Urx -_ddag .Llx ;_gbggg :=_ddag .Ury -_ddag .Lly ;_bbeaeb :=float64 (*ximg .Width );
|
||
_ebaef :=(_ebdcaa -_bbeaeb )/2;if opt .FitToWidth {_bbeaeb =_ebdcaa ;_ebaef =0;};_cagbc :=_gbggg ;_gddbaa :=float64 (0);if opt .PreserveAspectRatio {_cagbc =_bbeaeb *float64 (*ximg .Height )/float64 (*ximg .Width );_gddbaa =(_gbggg -_cagbc )/2;};if _dffcag .Resources ==nil {_dffcag .Resources =NewPdfPageResources ();
|
||
};_bcab :=0;_aadce :=_ebb .PdfObjectName (_bg .Sprintf ("\u0049\u006d\u0077%\u0064",_bcab ));for _dffcag .Resources .HasXObjectByName (_aadce ){_bcab ++;_aadce =_ebb .PdfObjectName (_bg .Sprintf ("\u0049\u006d\u0077%\u0064",_bcab ));};_bfebe =_dffcag .AddImageResource (_aadce ,ximg );
|
||
if _bfebe !=nil {return _bfebe ;};_bcab =0;_gfbde :=_ebb .PdfObjectName (_bg .Sprintf ("\u0047\u0053\u0025\u0064",_bcab ));for _dffcag .HasExtGState (_gfbde ){_bcab ++;_gfbde =_ebb .PdfObjectName (_bg .Sprintf ("\u0047\u0053\u0025\u0064",_bcab ));};_bbcg :=_ebb .MakeDict ();
|
||
_bbcg .Set ("\u0042\u004d",_ebb .MakeName ("\u004e\u006f\u0072\u006d\u0061\u006c"));_bbcg .Set ("\u0043\u0041",_ebb .MakeFloat (opt .Alpha ));_bbcg .Set ("\u0063\u0061",_ebb .MakeFloat (opt .Alpha ));_bfebe =_dffcag .AddExtGState (_gfbde ,_bbcg );if _bfebe !=nil {return _bfebe ;
|
||
};_baggg :=_bg .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",_gfbde ,_bbeaeb ,_cagbc ,_ebaef ,_gddbaa ,_aadce );
|
||
_dffcag .AddContentStreamByString (_baggg );return nil ;};
|
||
|
||
// PdfAnnotationPrinterMark represents PrinterMark annotations.
|
||
// (Section 12.5.6.20).
|
||
type PdfAnnotationPrinterMark struct{*PdfAnnotation ;MN _ebb .PdfObject ;};func (_agba *PdfColorspaceCalGray )String ()string {return "\u0043a\u006c\u0047\u0072\u0061\u0079"};
|
||
|
||
// ToPdfObject converts the PdfPage to a dictionary within an indirect object container.
|
||
func (_bgbd *PdfPage )ToPdfObject ()_ebb .PdfObject {_adgfa :=_bgbd ._defbb ;_bgbd .GetPageDict ();return _adgfa ;};
|
||
|
||
// GetContext returns the annotation context which contains the specific type-dependent context.
|
||
// The context represents the subannotation.
|
||
func (_bfdb *PdfAnnotation )GetContext ()PdfModel {if _bfdb ==nil {return nil ;};return _bfdb ._efd ;};func _efec (_ggdb _ebb .PdfObject )(*_ebb .PdfObjectDictionary ,*fontCommon ,error ){_dcdf :=&fontCommon {};if _ebeef ,_cgfb :=_ggdb .(*_ebb .PdfIndirectObject );
|
||
_cgfb {_dcdf ._efbg =_ebeef .ObjectNumber ;};_ccdg ,_gebgf :=_ebb .GetDict (_ggdb );if !_gebgf {_eg .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",_ggdb );
|
||
return nil ,nil ,ErrFontNotSupported ;};_cacec ,_gebgf :=_ebb .GetNameVal (_ccdg .Get ("\u0054\u0079\u0070\u0065"));if !_gebgf {_eg .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 _cacec !="\u0046\u006f\u006e\u0074"{_eg .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.",_cacec ,"\u0046\u006f\u006e\u0074");
|
||
return nil ,nil ,_ebb .ErrTypeError ;};_dbbg ,_gebgf :=_ebb .GetNameVal (_ccdg .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065"));if !_gebgf {_eg .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 ;};_dcdf ._dfbf =_dbbg ;_cfbe ,_gebgf :=_ebb .GetNameVal (_ccdg .Get ("\u004e\u0061\u006d\u0065"));if _gebgf {_dcdf ._efge =_cfbe ;};_fgbdb :=_ccdg .Get ("\u0054o\u0055\u006e\u0069\u0063\u006f\u0064e");if _fgbdb !=nil {_dcdf ._baag =_ebb .TraceToDirectObject (_fgbdb );
|
||
_bgdc ,_dbgg :=_feef (_dcdf ._baag ,_dcdf );if _dbgg !=nil {return _ccdg ,_dcdf ,_dbgg ;};_dcdf ._dcdd =_bgdc ;}else if _dbbg =="\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0030"||_dbbg =="\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032"{_bbgac ,_ffed :=_ebe .NewCIDSystemInfo (_ccdg .Get ("\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f"));
|
||
if _ffed !=nil {return _ccdg ,_dcdf ,_ffed ;};_acfcad :=_bg .Sprintf ("\u0025\u0073\u002d\u0025\u0073\u002d\u0055\u0043\u0053\u0032",_bbgac .Registry ,_bbgac .Ordering );if _ebe .IsPredefinedCMap (_acfcad ){_dcdf ._dcdd ,_ffed =_ebe .LoadPredefinedCMap (_acfcad );
|
||
if _ffed !=nil {_eg .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",_acfcad ,_ffed );
|
||
};};};_beaed :=_ccdg .Get ("\u0046\u006f\u006e\u0074\u0044\u0065\u0073\u0063\u0072i\u0070\u0074\u006f\u0072");if _beaed !=nil {_feacg ,_caaf :=_acdf (_beaed );if _caaf !=nil {_eg .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",_caaf );
|
||
return _ccdg ,_dcdf ,_caaf ;};_dcdf ._fbbd =_feacg ;};if _dbbg !="\u0054\u0079\u0070e\u0033"{_dbdbf ,_acccb :=_ebb .GetNameVal (_ccdg .Get ("\u0042\u0061\u0073\u0065\u0046\u006f\u006e\u0074"));if !_acccb {_eg .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 _ccdg ,_dcdf ,ErrRequiredAttributeMissing ;};_dcdf ._fdacg =_dbdbf ;};return _ccdg ,_dcdf ,nil ;};
|
||
|
||
// PdfAnnotationInk represents Ink annotations.
|
||
// (Section 12.5.6.13).
|
||
type PdfAnnotationInk struct{*PdfAnnotation ;*PdfAnnotationMarkup ;InkList _ebb .PdfObject ;BS _ebb .PdfObject ;};
|
||
|
||
// ToPdfObject converts the pdfFontSimple to its PDF representation for outputting.
|
||
func (_gdcbd *pdfFontSimple )ToPdfObject ()_ebb .PdfObject {if _gdcbd ._fafaf ==nil {_gdcbd ._fafaf =&_ebb .PdfIndirectObject {};};_fbbb :=_gdcbd .baseFields ().asPdfObjectDictionary ("");_gdcbd ._fafaf .PdfObject =_fbbb ;if _gdcbd .FirstChar !=nil {_fbbb .Set ("\u0046i\u0072\u0073\u0074\u0043\u0068\u0061r",_gdcbd .FirstChar );
|
||
};if _gdcbd .LastChar !=nil {_fbbb .Set ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072",_gdcbd .LastChar );};if _gdcbd .Widths !=nil {_fbbb .Set ("\u0057\u0069\u0064\u0074\u0068\u0073",_gdcbd .Widths );};if _gdcbd .Encoding !=nil {_fbbb .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_gdcbd .Encoding );
|
||
}else if _gdcbd ._ebcb !=nil {_dbced :=_gdcbd ._ebcb .ToPdfObject ();if _dbced !=nil {_fbbb .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_dbced );};};return _gdcbd ._fafaf ;};
|
||
|
||
// ToJBIG2Image converts current image to the core.JBIG2Image.
|
||
func (_bagb *Image )ToJBIG2Image ()(*_ebb .JBIG2Image ,error ){_fafdf ,_cffg :=_bagb .ToGoImage ();if _cffg !=nil {return nil ,_cffg ;};return _ebb .GoImageToJBIG2 (_fafdf ,_ebb .JB2ImageAutoThreshold );};
|
||
|
||
// GetNumComponents returns the number of color components (1 for Separation).
|
||
func (_dagfb *PdfColorspaceSpecialSeparation )GetNumComponents ()int {return 1};
|
||
|
||
// ToPdfObject returns the PDF representation of the page resources.
|
||
func (_aaedd *PdfPageResources )ToPdfObject ()_ebb .PdfObject {_ggcea :=_aaedd ._efbed ;_ggcea .SetIfNotNil ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e",_aaedd .ExtGState );if _aaedd ._aaee !=nil {_aaedd .ColorSpace =_aaedd ._aaee .ToPdfObject ();};
|
||
_ggcea .SetIfNotNil ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065",_aaedd .ColorSpace );_ggcea .SetIfNotNil ("\u0050a\u0074\u0074\u0065\u0072\u006e",_aaedd .Pattern );_ggcea .SetIfNotNil ("\u0053h\u0061\u0064\u0069\u006e\u0067",_aaedd .Shading );
|
||
_ggcea .SetIfNotNil ("\u0058O\u0062\u006a\u0065\u0063\u0074",_aaedd .XObject );_ggcea .SetIfNotNil ("\u0046\u006f\u006e\u0074",_aaedd .Font );_ggcea .SetIfNotNil ("\u0050r\u006f\u0063\u0053\u0065\u0074",_aaedd .ProcSet );_ggcea .SetIfNotNil ("\u0050\u0072\u006f\u0070\u0065\u0072\u0074\u0069\u0065\u0073",_aaedd .Properties );
|
||
return _ggcea ;};
|
||
|
||
// NewPdfColorspaceDeviceRGB returns a new RGB colorspace object.
|
||
func NewPdfColorspaceDeviceRGB ()*PdfColorspaceDeviceRGB {return &PdfColorspaceDeviceRGB {}};
|
||
|
||
// NewPdfActionJavaScript returns a new "javaScript" action.
|
||
func NewPdfActionJavaScript ()*PdfActionJavaScript {_aab :=NewPdfAction ();_efc :=&PdfActionJavaScript {};_efc .PdfAction =_aab ;_aab .SetContext (_efc );return _efc ;};
|
||
|
||
// SetNamedDestinations sets the Dests entry in the PDF catalog.
|
||
// See section 12.3.2.3 "Named Destinations" (p. 367 PDF32000_2008).
|
||
func (_dbaac *PdfWriter )SetNamedDestinations (dests _ebb .PdfObject )error {if dests ==nil {return nil ;};_eg .Log .Trace ("\u0053e\u0074\u0074\u0069\u006e\u0067\u0020\u0063\u0061\u0074\u0061\u006co\u0067\u0020\u0044\u0065\u0073\u0074\u0073\u002e\u002e\u002e");
|
||
_dbaac ._dffegd .Set ("\u0044\u0065\u0073t\u0073",dests );return _dbaac .addObjects (dests );};
|
||
|
||
// ReplacePage replaces the original page to a new page.
|
||
func (_aegbg *PdfAppender )ReplacePage (pageNum int ,page *PdfPage ){_ecca :=pageNum -1;for _fefag :=range _aegbg ._dfbg {if _fefag ==_ecca {_bacd :=page .Duplicate ();_bfegc (_bacd );_aegbg ._dfbg [_fefag ]=_bacd ;};};};
|
||
|
||
// GetContext returns the action context which contains the specific type-dependent context.
|
||
// The context represents the subaction.
|
||
func (_ega *PdfAction )GetContext ()PdfModel {if _ega ==nil {return nil ;};return _ega ._ad ;};
|
||
|
||
// 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 *_ebb .PdfObjectName ;AlternateSpace PdfColorspace ;TintTransform PdfFunction ;_cded *_ebb .PdfIndirectObject ;};func (_gedcb *pdfCIDFontType2 )baseFields ()*fontCommon {return &_gedcb .fontCommon };
|
||
|
||
|
||
// ToPdfObject convert PdfInfo to pdf object.
|
||
func (_geab *PdfInfo )ToPdfObject ()_ebb .PdfObject {_dfgc :=_ebb .MakeDict ();_dfgc .SetIfNotNil ("\u0054\u0069\u0074l\u0065",_geab .Title );_dfgc .SetIfNotNil ("\u0041\u0075\u0074\u0068\u006f\u0072",_geab .Author );_dfgc .SetIfNotNil ("\u0053u\u0062\u006a\u0065\u0063\u0074",_geab .Subject );
|
||
_dfgc .SetIfNotNil ("\u004b\u0065\u0079\u0077\u006f\u0072\u0064\u0073",_geab .Keywords );_dfgc .SetIfNotNil ("\u0043r\u0065\u0061\u0074\u006f\u0072",_geab .Creator );_dfgc .SetIfNotNil ("\u0050\u0072\u006f\u0064\u0075\u0063\u0065\u0072",_geab .Producer );
|
||
_dfgc .SetIfNotNil ("\u0054r\u0061\u0070\u0070\u0065\u0064",_geab .Trapped );if _geab .CreationDate !=nil {_dfgc .SetIfNotNil ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065",_geab .CreationDate .ToPdfObject ());};if _geab .ModifiedDate !=nil {_dfgc .SetIfNotNil ("\u004do\u0064\u0044\u0061\u0074\u0065",_geab .ModifiedDate .ToPdfObject ());
|
||
};for _ ,_abef :=range _geab ._gcgf .Keys (){_dfgc .SetIfNotNil (_abef ,_geab ._gcgf .Get (_abef ));};return _dfgc ;};
|
||
|
||
// 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 ;
|
||
|
||
// 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 (_cffcf *Image )ConvertToBinary ()error {if _cffcf .ColorComponents ==1&&_cffcf .BitsPerComponent ==1{return nil ;};_gdfc ,_cfgabd :=_cffcf .ToGoImage ();if _cfgabd !=nil {return _cfgabd ;};_edbcd ,_cfgabd :=_dg .MonochromeConverter .Convert (_gdfc );
|
||
if _cfgabd !=nil {return _cfgabd ;};_cffcf .Data =_edbcd .Base ().Data ;_cffcf ._dagcb ,_cfgabd =_dg .ScaleAlphaToMonochrome (_cffcf ._dagcb ,int (_cffcf .Width ),int (_cffcf .Height ));if _cfgabd !=nil {return _cfgabd ;};_cffcf .BitsPerComponent =1;_cffcf .ColorComponents =1;
|
||
_cffcf ._dgcea =nil ;return nil ;};
|
||
|
||
// ColorFromFloats returns a new PdfColor based on the input slice of color
|
||
// components. The slice should contain three elements representing the
|
||
// A, B and C components of the color. The values of the elements should be
|
||
// between 0 and 1.
|
||
func (_efde *PdfColorspaceCalRGB )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=3{return nil ,_gf .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_bddg :=vals [0];if _bddg < 0.0||_bddg > 1.0{_eg .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_bddg );
|
||
return nil ,ErrColorOutOfRange ;};_fgadaf :=vals [1];if _fgadaf < 0.0||_fgadaf > 1.0{_eg .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_fgadaf );return nil ,ErrColorOutOfRange ;
|
||
};_eebb :=vals [2];if _eebb < 0.0||_eebb > 1.0{_eg .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_eebb );return nil ,ErrColorOutOfRange ;};_edaec :=NewPdfColorCalRGB (_bddg ,_fgadaf ,_eebb );
|
||
return _edaec ,nil ;};func _ebcfc (_bdce *_ebb .PdfObjectDictionary )(*PdfShadingType5 ,error ){_bgeea :=PdfShadingType5 {};_ecfe :=_bdce .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065");if _ecfe ==nil {_eg .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 ;};_afdad ,_dbcc :=_ecfe .(*_ebb .PdfObjectInteger );if !_dbcc {_eg .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",_ecfe );
|
||
return nil ,_ebb .ErrTypeError ;};_bgeea .BitsPerCoordinate =_afdad ;_ecfe =_bdce .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074");if _ecfe ==nil {_eg .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 ;};_afdad ,_dbcc =_ecfe .(*_ebb .PdfObjectInteger );if !_dbcc {_eg .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",_ecfe );
|
||
return nil ,_ebb .ErrTypeError ;};_bgeea .BitsPerComponent =_afdad ;_ecfe =_bdce .Get ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073\u0050e\u0072\u0052\u006f\u0077");if _ecfe ==nil {_eg .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 ;};_afdad ,_dbcc =_ecfe .(*_ebb .PdfObjectInteger );if !_dbcc {_eg .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",_ecfe );
|
||
return nil ,_ebb .ErrTypeError ;};_bgeea .VerticesPerRow =_afdad ;_ecfe =_bdce .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");if _ecfe ==nil {_eg .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 ;};_bgdagc ,_dbcc :=_ecfe .(*_ebb .PdfObjectArray );if !_dbcc {_eg .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",_ecfe );
|
||
return nil ,_ebb .ErrTypeError ;};_bgeea .Decode =_bgdagc ;if _bebgg :=_bdce .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");_bebgg !=nil {_bgeea .Function =[]PdfFunction {};if _aecg ,_eccbg :=_bebgg .(*_ebb .PdfObjectArray );_eccbg {for _ ,_fgcda :=range _aecg .Elements (){_gcce ,_bdgaf :=_aagg (_fgcda );
|
||
if _bdgaf !=nil {_eg .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",_bdgaf );return nil ,_bdgaf ;};_bgeea .Function =append (_bgeea .Function ,_gcce );
|
||
};}else {_bfbgfd ,_agefg :=_aagg (_bebgg );if _agefg !=nil {_eg .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",_agefg );return nil ,_agefg ;
|
||
};_bgeea .Function =append (_bgeea .Function ,_bfbgfd );};};return &_bgeea ,nil ;};
|
||
|
||
// ColorFromFloats returns a new PdfColor based on the input slice of color
|
||
// components. The slice should contain a single element between 0 and 1.
|
||
func (_ecfc *PdfColorspaceDeviceGray )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=1{return nil ,_gf .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_gdaa :=vals [0];if _gdaa < 0.0||_gdaa > 1.0{_eg .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 _gdaa < 0.0{_gdaa =0.0;}else if _gdaa > 1.0{_gdaa =1.0;};return NewPdfColorDeviceGray (_gdaa ),nil ;};
|
||
|
||
// NewPdfActionURI returns a new "Uri" action.
|
||
func NewPdfActionURI ()*PdfActionURI {_ccc :=NewPdfAction ();_cac :=&PdfActionURI {};_cac .PdfAction =_ccc ;_ccc .SetContext (_cac );return _cac ;};
|
||
|
||
// Items returns all children outline items.
|
||
func (_agfd *Outline )Items ()[]*OutlineItem {return _agfd .Entries };
|
||
|
||
// NewLTV returns a new LTV client.
|
||
func NewLTV (appender *PdfAppender )(*LTV ,error ){_dfcda :=appender .Reader .DSS ;if _dfcda ==nil {_dfcda =NewDSS ();};if _bdage :=_dfcda .generateHashMaps ();_bdage !=nil {return nil ,_bdage ;};return <V {CertClient :_cg .NewCertClient (),OCSPClient :_cg .NewOCSPClient (),CRLClient :_cg .NewCRLClient (),SkipExisting :true ,_ggdbg :appender ,_dfdgf :_dfcda },nil ;
|
||
};
|
||
|
||
// NewPdfColorDeviceCMYK returns a new CMYK32 color.
|
||
func NewPdfColorDeviceCMYK (c ,m ,y ,k float64 )*PdfColorDeviceCMYK {_gacf :=PdfColorDeviceCMYK {c ,m ,y ,k };return &_gacf ;};
|
||
|
||
// GetRevisionNumber returns the version of the current Pdf document
|
||
func (_gafgdc *PdfReader )GetRevisionNumber ()int {return _gafgdc ._cafdf .GetRevisionNumber ()};
|
||
|
||
// PdfActionGoToE represents a GoToE action.
|
||
type PdfActionGoToE struct{*PdfAction ;F *PdfFilespec ;D _ebb .PdfObject ;NewWindow _ebb .PdfObject ;T _ebb .PdfObject ;};
|
||
|
||
// GetNumComponents returns the number of color components of the colorspace device.
|
||
// Returns 1 for a grayscale device.
|
||
func (_ffb *PdfColorspaceDeviceGray )GetNumComponents ()int {return 1};
|
||
|
||
// SetAnnotations sets the annotations list.
|
||
func (_bbcff *PdfPage )SetAnnotations (annotations []*PdfAnnotation ){_bbcff ._bbfed =annotations };func _ebafc ()string {return _eg .Version };
|
||
|
||
// EncryptOptions represents encryption options for an output PDF.
|
||
type EncryptOptions struct{Permissions _fe .Permissions ;Algorithm EncryptionAlgorithm ;};
|
||
|
||
// NewPdfColorspaceCalGray returns a new CalGray colorspace object.
|
||
func NewPdfColorspaceCalGray ()*PdfColorspaceCalGray {_ecdg :=&PdfColorspaceCalGray {};_ecdg .BlackPoint =[]float64 {0.0,0.0,0.0};_ecdg .Gamma =1;return _ecdg ;};func (_gbace *LTV )getCRLs (_gfbbd []*_g .Certificate )([][]byte ,error ){_dbcgb :=make ([][]byte ,0,len (_gfbbd ));
|
||
for _ ,_fbaag :=range _gfbbd {for _ ,_gggffg :=range _fbaag .CRLDistributionPoints {if _gbace .CertClient .IsCA (_fbaag ){continue ;};_gfgf ,_fgab :=_gbace .CRLClient .MakeRequest (_gggffg ,_fbaag );if _fgab !=nil {_eg .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",_fgab );
|
||
continue ;};_dbcgb =append (_dbcgb ,_gfgf );};};return _dbcgb ,nil ;};
|
||
|
||
// NewPdfReader returns a new PdfReader for an input io.ReadSeeker interface. Can be used to read PDF from
|
||
// memory or file. Immediately loads and traverses the PDF structure including pages and page contents (if
|
||
// not encrypted). Loads entire document structure into memory.
|
||
// Alternatively a lazy-loading reader can be created with NewPdfReaderLazy which loads only references,
|
||
// and references are loaded from disk into memory on an as-needed basis.
|
||
func NewPdfReader (rs _ab .ReadSeeker )(*PdfReader ,error ){const _baaedfc ="\u006do\u0064e\u006c\u003a\u004e\u0065\u0077P\u0064\u0066R\u0065\u0061\u0064\u0065\u0072";return _dcbd (rs ,&ReaderOpts {},false ,_baaedfc );};
|
||
|
||
// SetDocInfo set document info.
|
||
// This will overwrite any globally declared document info.
|
||
func (_deggb *PdfWriter )SetDocInfo (info *PdfInfo ){_deggb .setDocInfo (info .ToPdfObject ())};
|
||
|
||
// ToPdfObject return the CalGray colorspace as a PDF object (name dictionary).
|
||
func (_agec *PdfColorspaceCalGray )ToPdfObject ()_ebb .PdfObject {_adfca :=&_ebb .PdfObjectArray {};_adfca .Append (_ebb .MakeName ("\u0043a\u006c\u0047\u0072\u0061\u0079"));_fgcc :=_ebb .MakeDict ();if _agec .WhitePoint !=nil {_fgcc .Set ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074",_ebb .MakeArray (_ebb .MakeFloat (_agec .WhitePoint [0]),_ebb .MakeFloat (_agec .WhitePoint [1]),_ebb .MakeFloat (_agec .WhitePoint [2])));
|
||
}else {_eg .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 _agec .BlackPoint !=nil {_fgcc .Set ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074",_ebb .MakeArray (_ebb .MakeFloat (_agec .BlackPoint [0]),_ebb .MakeFloat (_agec .BlackPoint [1]),_ebb .MakeFloat (_agec .BlackPoint [2])));
|
||
};_fgcc .Set ("\u0047\u0061\u006dm\u0061",_ebb .MakeFloat (_agec .Gamma ));_adfca .Append (_fgcc );if _agec ._bebfd !=nil {_agec ._bebfd .PdfObject =_adfca ;return _agec ._bebfd ;};return _adfca ;};func (_fadge *PdfWriter )writeObjectsInStreams (_gfaa map[_ebb .PdfObject ]bool )error {for _ ,_ebegab :=range _fadge ._ebdgg {if _ggfcc :=_gfaa [_ebegab ];
|
||
_ggfcc {continue ;};_faaea :=int64 (0);switch _fgddb :=_ebegab .(type ){case *_ebb .PdfIndirectObject :_faaea =_fgddb .ObjectNumber ;case *_ebb .PdfObjectStream :_faaea =_fgddb .ObjectNumber ;case *_ebb .PdfObjectStreams :_faaea =_fgddb .ObjectNumber ;
|
||
default:_eg .Log .Debug ("\u0045R\u0052\u004fR\u003a\u0020\u0055n\u0073\u0075\u0070\u0070\u006f\u0072\u0074e\u0064\u0020\u0074\u0079\u0070\u0065 \u0069\u006e\u0020\u0077\u0072\u0069\u0074\u0065\u0072\u0020\u006fb\u006a\u0065\u0063\u0074\u0073\u003a\u0020\u0025\u0054",_ebegab );
|
||
return ErrTypeCheck ;};if _fadge ._cgfde !=nil &&_ebegab !=_fadge ._cbcaa {_fegab :=_fadge ._cgfde .Encrypt (_ebegab ,_faaea ,0);if _fegab !=nil {_eg .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",_fegab );
|
||
return _fegab ;};};_fadge .writeObject (int (_faaea ),_ebegab );};return 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{_cafdf *_ebb .PdfParser ;_agbbe _ebb .PdfObject ;_eedbb *_ebb .PdfIndirectObject ;_egea *_ebb .PdfObjectDictionary ;_faebb []*_ebb .PdfIndirectObject ;PageList []*PdfPage ;_aadcb int ;_fdgda *_ebb .PdfObjectDictionary ;_fgbcg *PdfOutlineTreeNode ;
|
||
AcroForm *PdfAcroForm ;DSS *DSS ;Rotate *int64 ;_fdca *Permissions ;_cacfc map[*PdfReader ]*PdfReader ;_face []*PdfReader ;_abbaca *modelManager ;_ceefa bool ;_dfadc map[_ebb .PdfObject ]struct{};_ggdg _ab .ReadSeeker ;_decdd string ;_cfbgga bool ;_edcbc *ReaderOpts ;
|
||
_abadec bool ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_bgbg *PdfAnnotationStamp )ToPdfObject ()_ebb .PdfObject {_bgbg .PdfAnnotation .ToPdfObject ();_fbad :=_bgbg ._bdcd ;_adcf :=_fbad .PdfObject .(*_ebb .PdfObjectDictionary );_bgbg .PdfAnnotationMarkup .appendToPdfDictionary (_adcf );_adcf .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ebb .MakeName ("\u0053\u0074\u0061m\u0070"));
|
||
_adcf .SetIfNotNil ("\u004e\u0061\u006d\u0065",_bgbg .Name );return _fbad ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the DSS dictionary.
|
||
func (_acdae *DSS )ToPdfObject ()_ebb .PdfObject {_ffgaf :=_acdae ._fcgb .PdfObject .(*_ebb .PdfObjectDictionary );_ffgaf .Clear ();_adae :=_ebb .MakeDict ();for _cdee ,_ecfb :=range _acdae .VRI {_adae .Set (*_ebb .MakeName (_cdee ),_ecfb .ToPdfObject ());
|
||
};_ffgaf .SetIfNotNil ("\u0043\u0065\u0072t\u0073",_agdbf (_acdae .Certs ));_ffgaf .SetIfNotNil ("\u004f\u0043\u0053P\u0073",_agdbf (_acdae .OCSPs ));_ffgaf .SetIfNotNil ("\u0043\u0052\u004c\u0073",_agdbf (_acdae .CRLs ));_ffgaf .Set ("\u0056\u0052\u0049",_adae );
|
||
return _acdae ._fcgb ;};func (_fcgfe *pdfFontSimple )getFontDescriptor ()*PdfFontDescriptor {if _bggba :=_fcgfe ._fbbd ;_bggba !=nil {return _bggba ;};return _fcgfe ._adbd ;};
|
||
|
||
// NewPdfActionThread returns a new "thread" action.
|
||
func NewPdfActionThread ()*PdfActionThread {_bcc :=NewPdfAction ();_cgd :=&PdfActionThread {};_cgd .PdfAction =_bcc ;_bcc .SetContext (_cgd );return _cgd ;};func _bgfag (_agdb *PdfField ,_ddfe _ebb .PdfObject ){for _ ,_bafdf :=range _agdb .Annotations {_bafdf .AS =_ddfe ;
|
||
_bafdf .ToPdfObject ();};};
|
||
|
||
// String returns a string describing the font descriptor.
|
||
func (_dagc *PdfFontDescriptor )String ()string {var _bfffd []string ;if _dagc .FontName !=nil {_bfffd =append (_bfffd ,_dagc .FontName .String ());};if _dagc .FontFamily !=nil {_bfffd =append (_bfffd ,_dagc .FontFamily .String ());};if _dagc .fontFile !=nil {_bfffd =append (_bfffd ,_dagc .fontFile .String ());
|
||
};if _dagc ._aeeb !=nil {_bfffd =append (_bfffd ,_dagc ._aeeb .String ());};_bfffd =append (_bfffd ,_bg .Sprintf ("\u0046\u006f\u006et\u0046\u0069\u006c\u0065\u0033\u003d\u0025\u0074",_dagc .FontFile3 !=nil ));return _bg .Sprintf ("\u0046\u004f\u004e\u0054_D\u0045\u0053\u0043\u0052\u0049\u0050\u0054\u004f\u0052\u007b\u0025\u0073\u007d",_ee .Join (_bfffd ,"\u002c\u0020"));
|
||
};
|
||
|
||
// GetContainingPdfObject returns the container of the pattern object (indirect object).
|
||
func (_bdafbb *PdfPattern )GetContainingPdfObject ()_ebb .PdfObject {return _bdafbb ._dcddc };
|
||
|
||
// ToImage converts an object to an Image which can be transformed or saved out.
|
||
// The image data is decoded and the Image returned.
|
||
func (_befed *XObjectImage )ToImage ()(*Image ,error ){_defagc :=&Image {};if _befed .Height ==nil {return nil ,_gf .New ("\u0068e\u0069\u0067\u0068\u0074\u0020\u0061\u0074\u0074\u0072\u0069\u0062u\u0074\u0065\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");
|
||
};_defagc .Height =*_befed .Height ;if _befed .Width ==nil {return nil ,_gf .New ("\u0077\u0069\u0064th\u0020\u0061\u0074\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};_defagc .Width =*_befed .Width ;if _befed .BitsPerComponent ==nil {switch _befed .Filter .(type ){case *_ebb .CCITTFaxEncoder ,*_ebb .JBIG2Encoder :_defagc .BitsPerComponent =1;
|
||
case *_ebb .LZWEncoder ,*_ebb .RunLengthEncoder :_defagc .BitsPerComponent =8;default:return nil ,_gf .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 {_defagc .BitsPerComponent =*_befed .BitsPerComponent ;};_defagc .ColorComponents =_befed .ColorSpace .GetNumComponents ();_befed ._fbeec .Set ("\u0043o\u006co\u0072\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074\u0073",_ebb .MakeInteger (int64 (_defagc .ColorComponents )));
|
||
_fdedc ,_badffe :=_ebb .DecodeStream (_befed ._fbeec );if _badffe !=nil {return nil ,_badffe ;};_defagc .Data =_fdedc ;if _befed .Decode !=nil {_agbf ,_egbf :=_befed .Decode .(*_ebb .PdfObjectArray );if !_egbf {_eg .Log .Debug ("I\u006e\u0076\u0061\u006cid\u0020D\u0065\u0063\u006f\u0064\u0065 \u006f\u0062\u006a\u0065\u0063\u0074");
|
||
return nil ,_gf .New ("\u0069\u006e\u0076a\u006c\u0069\u0064\u0020\u0074\u0079\u0070\u0065");};_cbedc ,_fdfdc :=_agbf .ToFloat64Array ();if _fdfdc !=nil {return nil ,_fdfdc ;};_defagc ._dgcea =_cbedc ;};return _defagc ,nil ;};func (_cabfg *PdfReader )resolveReference (_fdabb *_ebb .PdfObjectReference )(_ebb .PdfObject ,bool ,error ){_dged ,_bdda :=_cabfg ._cafdf .ObjCache [int (_fdabb .ObjectNumber )];
|
||
if !_bdda {_eg .Log .Trace ("R\u0065\u0061\u0064\u0065r \u004co\u006f\u006b\u0075\u0070\u0020r\u0065\u0066\u003a\u0020\u0025\u0073",_fdabb );_aaafcb ,_ceceb :=_cabfg ._cafdf .LookupByReference (*_fdabb );if _ceceb !=nil {return nil ,false ,_ceceb ;};_cabfg ._cafdf .ObjCache [int (_fdabb .ObjectNumber )]=_aaafcb ;
|
||
return _aaafcb ,false ,nil ;};return _dged ,true ,nil ;};
|
||
|
||
// Val returns the value of the color.
|
||
func (_dcfdg *PdfColorCalGray )Val ()float64 {return float64 (*_dcfdg )};func _fagea (_ceeb *_ebb .PdfObjectDictionary ,_gggc *fontCommon )(*pdfCIDFontType0 ,error ){if _gggc ._dfbf !="\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0030"{_eg .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",_gggc );
|
||
return nil ,_ebb .ErrRangeError ;};_gebdb :=_afdc (_gggc );_afcgf ,_gaccg :=_ebb .GetDict (_ceeb .Get ("\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f"));if !_gaccg {_eg .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",_gggc );
|
||
return nil ,ErrRequiredAttributeMissing ;};_gebdb .CIDSystemInfo =_afcgf ;_gebdb .DW =_ceeb .Get ("\u0044\u0057");_gebdb .W =_ceeb .Get ("\u0057");_gebdb .DW2 =_ceeb .Get ("\u0044\u0057\u0032");_gebdb .W2 =_ceeb .Get ("\u0057\u0032");_gebdb ._gbdb =1000.0;
|
||
if _ccecb ,_fedc :=_ebb .GetNumberAsFloat (_gebdb .DW );_fedc ==nil {_gebdb ._gbdb =_ccecb ;};_dffeg ,_fbdg :=_egbeb (_gebdb .W );if _fbdg !=nil {return nil ,_fbdg ;};if _dffeg ==nil {_dffeg =map[_da .CharCode ]float64 {};};_gebdb ._afcac =_dffeg ;return _gebdb ,nil ;
|
||
};func (_fceg *PdfReader )loadOutlines ()(*PdfOutlineTreeNode ,error ){if _fceg ._cafdf .GetCrypter ()!=nil &&!_fceg ._cafdf .IsAuthenticated (){return nil ,_bg .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");
|
||
};_daece :=_fceg ._fdgda ;_febec :=_daece .Get ("\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0073");if _febec ==nil {return nil ,nil ;};_eg .Log .Trace ("\u002d\u0048\u0061\u0073\u0020\u006f\u0075\u0074\u006c\u0069\u006e\u0065\u0073");_edfc :=_ebb .ResolveReference (_febec );
|
||
_eg .Log .Trace ("\u004f\u0075t\u006c\u0069\u006ee\u0020\u0072\u006f\u006f\u0074\u003a\u0020\u0025\u0076",_edfc );if _dadf :=_ebb .IsNullObject (_edfc );_dadf {_eg .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 ;};_fedb ,_ecff :=_edfc .(*_ebb .PdfIndirectObject );if !_ecff {if _ ,_fadcb :=_ebb .GetDict (_edfc );!_fadcb {_eg .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 ;};_eg .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");
|
||
_fedb =_ebb .MakeIndirectObject (_edfc );};_eedc ,_ecff :=_fedb .PdfObject .(*_ebb .PdfObjectDictionary );if !_ecff {return nil ,_gf .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");
|
||
};_eg .Log .Trace ("O\u0075\u0074\u006c\u0069ne\u0020r\u006f\u006f\u0074\u0020\u0064i\u0063\u0074\u003a\u0020\u0025\u0076",_eedc );_febc ,_ ,_gcfd :=_fceg .buildOutlineTree (_fedb ,nil ,nil ,nil );if _gcfd !=nil {return nil ,_gcfd ;};_eg .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",_febc );
|
||
return _febc ,nil ;};
|
||
|
||
// NewPdfAnnotationWidget returns an initialized annotation widget.
|
||
func NewPdfAnnotationWidget ()*PdfAnnotationWidget {_badg :=NewPdfAnnotation ();_ccec :=&PdfAnnotationWidget {};_ccec .PdfAnnotation =_badg ;_badg .SetContext (_ccec );return _ccec ;};
|
||
|
||
// PdfColorspaceSpecialPattern is a Pattern colorspace.
|
||
// Can be defined either as /Pattern or with an underlying colorspace [/Pattern cs].
|
||
type PdfColorspaceSpecialPattern struct{UnderlyingCS PdfColorspace ;_adegb *_ebb .PdfIndirectObject ;};
|
||
|
||
// AcroFormRepairOptions contains options for rebuilding the AcroForm.
|
||
type AcroFormRepairOptions struct{};
|
||
|
||
// GetNamedDestinations returns the Dests entry in the PDF catalog.
|
||
// See section 12.3.2.3 "Named Destinations" (p. 367 PDF32000_2008).
|
||
func (_begda *PdfReader )GetNamedDestinations ()(_ebb .PdfObject ,error ){_fgaa :=_ebb .ResolveReference (_begda ._fdgda .Get ("\u0044\u0065\u0073t\u0073"));if _fgaa ==nil {return nil ,nil ;};if !_begda ._ceefa {_bbgdb :=_begda .traverseObjectData (_fgaa );
|
||
if _bbgdb !=nil {return nil ,_bbgdb ;};};return _fgaa ,nil ;};
|
||
|
||
// NewPdfAnnotationStamp returns a new stamp annotation.
|
||
func NewPdfAnnotationStamp ()*PdfAnnotationStamp {_ga :=NewPdfAnnotation ();_efaa :=&PdfAnnotationStamp {};_efaa .PdfAnnotation =_ga ;_efaa .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_ga .SetContext (_efaa );return _efaa ;};
|
||
|
||
// NewPdfAnnotationFreeText returns a new free text annotation.
|
||
func NewPdfAnnotationFreeText ()*PdfAnnotationFreeText {_fgec :=NewPdfAnnotation ();_caag :=&PdfAnnotationFreeText {};_caag .PdfAnnotation =_fgec ;_caag .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_fgec .SetContext (_caag );return _caag ;};
|
||
|
||
// NewPdfPageResources returns a new PdfPageResources object.
|
||
func NewPdfPageResources ()*PdfPageResources {_fdeea :=&PdfPageResources {};_fdeea ._efbed =_ebb .MakeDict ();return _fdeea ;};func (_deaf *PdfReader )newPdfFieldSignatureFromDict (_cgffc *_ebb .PdfObjectDictionary )(*PdfFieldSignature ,error ){_abda :=&PdfFieldSignature {};
|
||
_eefge ,_cafgg :=_ebb .GetIndirect (_cgffc .Get ("\u0056"));if _cafgg {var _egcddb error ;_abda .V ,_egcddb =_deaf .newPdfSignatureFromIndirect (_eefge );if _egcddb !=nil {return nil ,_egcddb ;};};_abda .Lock ,_ =_ebb .GetIndirect (_cgffc .Get ("\u004c\u006f\u0063\u006b"));
|
||
_abda .SV ,_ =_ebb .GetIndirect (_cgffc .Get ("\u0053\u0056"));return _abda ,nil ;};
|
||
|
||
// Clear clears flag fl from the flag and returns the resulting flag.
|
||
func (_efdb FieldFlag )Clear (fl FieldFlag )FieldFlag {return FieldFlag (_efdb .Mask ()&^fl .Mask ())};
|
||
|
||
// GetContainingPdfObject returns the container of the outline tree node (indirect object).
|
||
func (_ageg *PdfOutlineTreeNode )GetContainingPdfObject ()_ebb .PdfObject {return _ageg .GetContext ().GetContainingPdfObject ();};
|
||
|
||
// GetNumComponents returns the number of color components (1 for CalGray).
|
||
func (_acda *PdfColorCalGray )GetNumComponents ()int {return 1};
|
||
|
||
// Encoder returns the font's text encoder.
|
||
func (_ecgd pdfFontType3 )Encoder ()_da .TextEncoder {return _ecgd ._abcba };
|
||
|
||
// SetXObjectImageByName adds the provided XObjectImage to the page resources.
|
||
// The added XObjectImage is identified by the specified name.
|
||
func (_fgcff *PdfPageResources )SetXObjectImageByName (keyName _ebb .PdfObjectName ,ximg *XObjectImage )error {_eafef :=ximg .ToPdfObject ().(*_ebb .PdfObjectStream );_baefe :=_fgcff .SetXObjectByName (keyName ,_eafef );return _baefe ;};
|
||
|
||
// NewPdfColorCalGray returns a new CalGray color.
|
||
func NewPdfColorCalGray (grayVal float64 )*PdfColorCalGray {_cffee :=PdfColorCalGray (grayVal );return &_cffee ;};func (_bbef *PdfReader )newPdfActionMovieFromDict (_cee *_ebb .PdfObjectDictionary )(*PdfActionMovie ,error ){return &PdfActionMovie {Annotation :_cee .Get ("\u0041\u006e\u006e\u006f\u0074\u0061\u0074\u0069\u006f\u006e"),T :_cee .Get ("\u0054"),Operation :_cee .Get ("\u004fp\u0065\u0072\u0061\u0074\u0069\u006fn")},nil ;
|
||
};
|
||
|
||
// SetContext set the sub annotation (context).
|
||
func (_bcbcb *PdfShading )SetContext (ctx PdfModel ){_bcbcb ._edgag =ctx };
|
||
|
||
// 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 (_eeeef PdfOutputIntentType )String ()string {switch _eeeef {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";};};func (_dcdb *DSS )addCRLs (_feffc [][]byte )([]*_ebb .PdfObjectStream ,error ){return _dcdb .add (&_dcdb .CRLs ,_dcdb ._fafgb ,_feffc );
|
||
};
|
||
|
||
// HasColorspaceByName checks if the colorspace with the specified name exists in the page resources.
|
||
func (_gaffg *PdfPageResources )HasColorspaceByName (keyName _ebb .PdfObjectName )bool {_dfffb ,_ebgaf :=_gaffg .GetColorspaces ();if _ebgaf !=nil {_eg .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",_ebgaf );
|
||
return false ;};if _dfffb ==nil {return false ;};_ ,_ebfag :=_dfffb .Colorspaces [string (keyName )];return _ebfag ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_ddfb *PdfAnnotationPolyLine )ToPdfObject ()_ebb .PdfObject {_ddfb .PdfAnnotation .ToPdfObject ();_bbeb :=_ddfb ._bdcd ;_aff :=_bbeb .PdfObject .(*_ebb .PdfObjectDictionary );_ddfb .PdfAnnotationMarkup .appendToPdfDictionary (_aff );_aff .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ebb .MakeName ("\u0050\u006f\u006c\u0079\u004c\u0069\u006e\u0065"));
|
||
_aff .SetIfNotNil ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073",_ddfb .Vertices );_aff .SetIfNotNil ("\u004c\u0045",_ddfb .LE );_aff .SetIfNotNil ("\u0042\u0053",_ddfb .BS );_aff .SetIfNotNil ("\u0049\u0043",_ddfb .IC );_aff .SetIfNotNil ("\u0042\u0045",_ddfb .BE );
|
||
_aff .SetIfNotNil ("\u0049\u0054",_ddfb .IT );_aff .SetIfNotNil ("\u004de\u0061\u0073\u0075\u0072\u0065",_ddfb .Measure );return _bbeb ;};
|
||
|
||
// 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 (_gcbca *LTV )Enable (sig *PdfSignature ,extraCerts []*_g .Certificate )error {if _cdedg :=_gcbca .validateSig (sig );_cdedg !=nil {return _cdedg ;};_cabc ,_defg :=_gcbca .generateVRIKey (sig );if _defg !=nil {return _defg ;};if _ ,_cadec :=_gcbca ._dfdgf .VRI [_cabc ];
|
||
_cadec &&_gcbca .SkipExisting {return nil ;};_cdab ,_defg :=sig .GetCerts ();if _defg !=nil {return _defg ;};return _gcbca .enable (_cdab ,extraCerts ,_cabc );};
|
||
|
||
// NewImageFromGoImage creates a new NRGBA32 unidoc Image from a golang Image.
|
||
// If `goimg` is grayscale (*goimage.Gray8) then calls NewGrayImageFromGoImage instead.
|
||
func (_eadd DefaultImageHandler )NewImageFromGoImage (goimg _gdc .Image )(*Image ,error ){_ebdcf ,_cgbf :=_dg .FromGoImage (goimg );if _cgbf !=nil {return nil ,_cgbf ;};_gdaf :=_afacb (_ebdcf .Base ());return &_gdaf ,nil ;};
|
||
|
||
// ToUnicode returns the name of the font's "ToUnicode" field if there is one, or "" if there isn't.
|
||
func (_eafag *PdfFont )ToUnicode ()string {if _eafag .baseFields ()._dcdd ==nil {return "";};return _eafag .baseFields ()._dcdd .Name ();};
|
||
|
||
// PdfFieldButton represents a button field which includes push buttons, checkboxes, and radio buttons.
|
||
type PdfFieldButton struct{*PdfField ;Opt *_ebb .PdfObjectArray ;_cdbf *Image ;};
|
||
|
||
// ToPdfOutline returns a low level PdfOutline object, based on the current
|
||
// instance.
|
||
func (_dcdfe *Outline )ToPdfOutline ()*PdfOutline {_ecgf :=NewPdfOutline ();var _dagga []*PdfOutlineItem ;var _eggge int64 ;var _dbdbc *PdfOutlineItem ;for _ ,_dbfed :=range _dcdfe .Entries {_gbfaf ,_baab :=_dbfed .ToPdfOutlineItem ();_gbfaf .Parent =&_ecgf .PdfOutlineTreeNode ;
|
||
if _dbdbc !=nil {_dbdbc .Next =&_gbfaf .PdfOutlineTreeNode ;_gbfaf .Prev =&_dbdbc .PdfOutlineTreeNode ;};_dagga =append (_dagga ,_gbfaf );_eggge +=_baab ;_dbdbc =_gbfaf ;};_caff :=int64 (len (_dagga ));_eggge +=_caff ;if _caff > 0{_ecgf .First =&_dagga [0].PdfOutlineTreeNode ;
|
||
_ecgf .Last =&_dagga [_caff -1].PdfOutlineTreeNode ;_ecgf .Count =&_eggge ;};return _ecgf ;};
|
||
|
||
// ColorToRGB converts a DeviceN color to an RGB color.
|
||
func (_afdb *PdfColorspaceDeviceN )ColorToRGB (color PdfColor )(PdfColor ,error ){if _afdb .AlternateSpace ==nil {return nil ,_gf .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 _afdb .AlternateSpace .ColorToRGB (color );};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_ded *PdfActionJavaScript )ToPdfObject ()_ebb .PdfObject {_ded .PdfAction .ToPdfObject ();_accd :=_ded ._abe ;_fgb :=_accd .PdfObject .(*_ebb .PdfObjectDictionary );_fgb .SetIfNotNil ("\u0053",_ebb .MakeName (string (ActionTypeJavaScript )));_fgb .SetIfNotNil ("\u004a\u0053",_ded .JS );
|
||
return _accd ;};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";);
|
||
|
||
// Write writes out the PDF.
|
||
func (_bdcab *PdfWriter )Write (writer _ab .Writer )error {_eg .Log .Trace ("\u0057r\u0069\u0074\u0065\u0028\u0029");_fbcc :=_bdcab .checkLicense ();if _fbcc !=nil {return _fbcc ;};if _fbcc =_bdcab .writeOutlines ();_fbcc !=nil {return _fbcc ;};if _fbcc =_bdcab .writeAcroFormFields ();
|
||
_fbcc !=nil {return _fbcc ;};_bdcab .checkPendingObjects ();if _fbcc =_bdcab .writeOutputIntents ();_fbcc !=nil {return _fbcc ;};_bdcab .setCatalogVersion ();_bdcab .copyObjects ();if _fbcc =_bdcab .optimize ();_fbcc !=nil {return _fbcc ;};if _fbcc =_bdcab .optimizeDocument ();
|
||
_fbcc !=nil {return _fbcc ;};var _bbddfd _c .Hash ;if _bdcab ._abgcg {_bbddfd =_dd .New ();writer =_ab .MultiWriter (_bbddfd ,writer );};_bdcab .setWriter (writer );_edfb :=_bdcab .checkCrossReferenceStream ();_bcfdb ,_edfb :=_bdcab .mapObjectStreams (_edfb );
|
||
_bdcab .adjustXRefAffectedVersion (_edfb );_bdcab .writeDocumentVersion ();_bdcab .updateObjectNumbers ();_bdcab .writeObjects ();if _fbcc =_bdcab .writeObjectsInStreams (_bcfdb );_fbcc !=nil {return _fbcc ;};_fbdcg :=_bdcab ._afedd ;var _gabcd int ;for _dfaga :=range _bdcab ._bedfc {if _dfaga > _gabcd {_gabcd =_dfaga ;
|
||
};};if _bdcab ._abgcg {if _fbcc =_bdcab .setHashIDs (_bbddfd );_fbcc !=nil {return _fbcc ;};};if _edfb {if _fbcc =_bdcab .writeXRefStreams (_gabcd ,_fbdcg );_fbcc !=nil {return _fbcc ;};}else {_bdcab .writeTrailer (_gabcd );};_bdcab .makeOffSetReference (_fbdcg );
|
||
if _fbcc =_bdcab .flushWriter ();_fbcc !=nil {return _fbcc ;};return nil ;};
|
||
|
||
// PdfOutlineItem represents an outline item dictionary (Table 153 - pp. 376 - 377).
|
||
type PdfOutlineItem struct{PdfOutlineTreeNode ;Title *_ebb .PdfObjectString ;Parent *PdfOutlineTreeNode ;Prev *PdfOutlineTreeNode ;Next *PdfOutlineTreeNode ;Count *int64 ;Dest _ebb .PdfObject ;A _ebb .PdfObject ;SE _ebb .PdfObject ;C _ebb .PdfObject ;F _ebb .PdfObject ;
|
||
_cacdf *_ebb .PdfIndirectObject ;};
|
||
|
||
// GetPrimitiveFromModel returns the primitive object corresponding to the input `model`.
|
||
func (_bfgeg *modelManager )GetPrimitiveFromModel (model PdfModel )_ebb .PdfObject {_cbaaf ,_cgcfb :=_bfgeg ._bgfdb [model ];if !_cgcfb {return nil ;};return _cbaaf ;};
|
||
|
||
// PdfColorspaceCalRGB stores A, B, C components
|
||
type PdfColorspaceCalRGB struct{WhitePoint []float64 ;BlackPoint []float64 ;Gamma []float64 ;Matrix []float64 ;_cbcd *_ebb .PdfObjectDictionary ;_aeac *_ebb .PdfIndirectObject ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the shading pattern.
|
||
func (_abbbg *PdfShadingPattern )ToPdfObject ()_ebb .PdfObject {_abbbg .PdfPattern .ToPdfObject ();_gadg :=_abbbg .getDict ();if _abbbg .Shading !=nil {_gadg .Set ("\u0053h\u0061\u0064\u0069\u006e\u0067",_abbbg .Shading .ToPdfObject ());};if _abbbg .Matrix !=nil {_gadg .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_abbbg .Matrix );
|
||
};if _abbbg .ExtGState !=nil {_gadg .Set ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e",_abbbg .ExtGState );};return _abbbg ._dcddc ;};
|
||
|
||
// DecodeArray returns the range of color component values in DeviceRGB colorspace.
|
||
func (_badc *PdfColorspaceDeviceRGB )DecodeArray ()[]float64 {return []float64 {0.0,1.0,0.0,1.0,0.0,1.0};};
|
||
|
||
// PdfInfoTrapped specifies pdf trapped information.
|
||
type PdfInfoTrapped string ;
|
||
|
||
// NewPdfColorspaceSpecialPattern returns a new pattern color.
|
||
func NewPdfColorspaceSpecialPattern ()*PdfColorspaceSpecialPattern {return &PdfColorspaceSpecialPattern {};};
|
||
|
||
// GetContext returns a reference to the subshading entry as represented by PdfShadingType1-7.
|
||
func (_ccfe *PdfShading )GetContext ()PdfModel {return _ccfe ._edgag };
|
||
|
||
// AddAnnotation appends `annot` to the list of page annotations.
|
||
func (_fegf *PdfPage )AddAnnotation (annot *PdfAnnotation ){if _fegf ._bbfed ==nil {_fegf .GetAnnotations ();};_fegf ._bbfed =append (_fegf ._bbfed ,annot );};func _fafaa (_ecdce _ebb .PdfObject )(*PdfFunctionType2 ,error ){_bfge :=&PdfFunctionType2 {};
|
||
var _cfee *_ebb .PdfObjectDictionary ;if _dcdg ,_gbaec :=_ecdce .(*_ebb .PdfIndirectObject );_gbaec {_fbff ,_dcede :=_dcdg .PdfObject .(*_ebb .PdfObjectDictionary );if !_dcede {return nil ,_gf .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");
|
||
};_bfge ._bcbfd =_dcdg ;_cfee =_fbff ;}else if _fbeac ,_dcaa :=_ecdce .(*_ebb .PdfObjectDictionary );_dcaa {_cfee =_fbeac ;}else {return nil ,_gf .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_eg .Log .Trace ("\u0046U\u004e\u0043\u0032\u003a\u0020\u0025s",_cfee .String ());
|
||
_dafbd ,_gdfdb :=_ebb .TraceToDirectObject (_cfee .Get ("\u0044\u006f\u006d\u0061\u0069\u006e")).(*_ebb .PdfObjectArray );if !_gdfdb {_eg .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_gf .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 _dafbd .Len ()< 0||_dafbd .Len ()%2!=0{_eg .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u0072\u0061\u006e\u0067e\u0020\u0069\u006e\u0076al\u0069\u0064");return nil ,_gf .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0064\u006f\u006da\u0069\u006e\u0020\u0072an\u0067\u0065");
|
||
};_fecgg ,_aagccg :=_dafbd .ToFloat64Array ();if _aagccg !=nil {return nil ,_aagccg ;};_bfge .Domain =_fecgg ;_dafbd ,_gdfdb =_ebb .TraceToDirectObject (_cfee .Get ("\u0052\u0061\u006eg\u0065")).(*_ebb .PdfObjectArray );if _gdfdb {if _dafbd .Len ()< 0||_dafbd .Len ()%2!=0{return nil ,_gf .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0061\u006e\u0067\u0065");
|
||
};_cgfeb ,_dffd :=_dafbd .ToFloat64Array ();if _dffd !=nil {return nil ,_dffd ;};_bfge .Range =_cgfeb ;};_dafbd ,_gdfdb =_ebb .TraceToDirectObject (_cfee .Get ("\u0043\u0030")).(*_ebb .PdfObjectArray );if _gdfdb {_daddb ,_cgcbcc :=_dafbd .ToFloat64Array ();
|
||
if _cgcbcc !=nil {return nil ,_cgcbcc ;};_bfge .C0 =_daddb ;};_dafbd ,_gdfdb =_ebb .TraceToDirectObject (_cfee .Get ("\u0043\u0031")).(*_ebb .PdfObjectArray );if _gdfdb {_ccdf ,_eafcc :=_dafbd .ToFloat64Array ();if _eafcc !=nil {return nil ,_eafcc ;};_bfge .C1 =_ccdf ;
|
||
};if len (_bfge .C0 )!=len (_bfge .C1 ){_eg .Log .Error ("\u0043\u0030\u0020\u0061nd\u0020\u0043\u0031\u0020\u006e\u006f\u0074\u0020\u006d\u0061\u0074\u0063\u0068\u0069n\u0067");return nil ,_ebb .ErrRangeError ;};N ,_aagccg :=_ebb .GetNumberAsFloat (_ebb .TraceToDirectObject (_cfee .Get ("\u004e")));
|
||
if _aagccg !=nil {_eg .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",_cfee .String ());return nil ,_aagccg ;};_bfge .N =N ;
|
||
return _bfge ,nil ;};
|
||
|
||
// GetPage returns the PdfPage model for the specified page number.
|
||
func (_ddfdcd *PdfReader )GetPage (pageNumber int )(*PdfPage ,error ){if _ddfdcd ._cafdf .GetCrypter ()!=nil &&!_ddfdcd ._cafdf .IsAuthenticated (){return nil ,_bg .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 (_ddfdcd ._faebb )< pageNumber {return nil ,_gf .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");
|
||
};_bfacfb :=pageNumber -1;if _bfacfb < 0{return nil ,_bg .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");};_aebfc :=_ddfdcd .PageList [_bfacfb ];
|
||
return _aebfc ,nil ;};
|
||
|
||
// GenerateXObjectName generates an unused XObject name that can be used for
|
||
// adding new XObjects. Uses format XObj1, XObj2, ...
|
||
func (_aabgc *PdfPageResources )GenerateXObjectName ()_ebb .PdfObjectName {_dfbge :=1;for {_aeabb :=_ebb .MakeName (_bg .Sprintf ("\u0058\u004f\u0062\u006a\u0025\u0064",_dfbge ));if !_aabgc .HasXObjectByName (*_aeabb ){return *_aeabb ;};_dfbge ++;};};
|
||
|
||
// GetCharMetrics returns the char metrics for character code `code`.
|
||
func (_afad pdfFontType3 )GetCharMetrics (code _da .CharCode )(_bad .CharMetrics ,bool ){if _beda ,_bbege :=_afad ._aggbb [code ];_bbege {return _bad .CharMetrics {Wx :_beda },true ;};if _bad .IsStdFont (_bad .StdFontName (_afad ._fdacg )){return _bad .CharMetrics {Wx :250},true ;
|
||
};return _bad .CharMetrics {},false ;};func (_eddfc *PdfAcroForm )fillImageWithAppearance (_bdfcg FieldImageProvider ,_fbaab FieldAppearanceGenerator )error {if _eddfc ==nil {return nil ;};_eebdf ,_gbeea :=_bdfcg .FieldImageValues ();if _gbeea !=nil {return _gbeea ;
|
||
};for _ ,_fcfgd :=range _eddfc .AllFields (){_cbbcc :=_fcfgd .PartialName ();_bdfbc ,_dfdab :=_eebdf [_cbbcc ];if !_dfdab {if _gbcg ,_gacead :=_fcfgd .FullName ();_gacead ==nil {_bdfbc ,_dfdab =_eebdf [_gbcg ];};};if !_dfdab {_eg .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",_cbbcc );
|
||
continue ;};switch _gfdf :=_fcfgd .GetContext ().(type ){case *PdfFieldButton :if _gfdf .IsPush (){_gfdf .SetFillImage (_bdfbc );};};if _fbaab ==nil {continue ;};for _ ,_abdgae :=range _fcfgd .Annotations {_defc ,_dfee :=_fbaab .GenerateAppearanceDict (_eddfc ,_fcfgd ,_abdgae );
|
||
if _dfee !=nil {return _dfee ;};_abdgae .AP =_defc ;_abdgae .ToPdfObject ();};};return 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 (_dcag *PdfFont )RunesToCharcodeBytes (data []rune )([]byte ,int ){var _gcad []_da .TextEncoder ;var _degd _da .CMapEncoder ;if _cebf :=_dcag .baseFields ()._dcdd ;_cebf !=nil {_degd =_da .NewCMapEncoder ("",nil ,_cebf );};_cgfg :=_dcag .Encoder ();
|
||
if _cgfg !=nil {switch _bfcg :=_cgfg .(type ){case _da .SimpleEncoder :_adgfe :=_bfcg .BaseName ();if _ ,_ecdc :=_efdc [_adgfe ];_ecdc {_gcad =append (_gcad ,_cgfg );};};};if len (_gcad )==0{if _dcag .baseFields ()._dcdd !=nil {_gcad =append (_gcad ,_degd );
|
||
};if _cgfg !=nil {_gcad =append (_gcad ,_cgfg );};};var _fddc _ca .Buffer ;var _bdcdg int ;for _ ,_dffg :=range data {var _ceabf bool ;for _ ,_edgfe :=range _gcad {if _fade :=_edgfe .Encode (string (_dffg ));len (_fade )> 0{_fddc .Write (_fade );_ceabf =true ;
|
||
break ;};};if !_ceabf {_eg .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",_dffg );
|
||
_bdcdg ++;};};if _bdcdg !=0{_eg .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 ),_bdcdg ,_dcag ,_gcad );
|
||
};return _fddc .Bytes (),_bdcdg ;};
|
||
|
||
// 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 *_ebb .PdfObjectStream )(*XObjectImage ,error ){_dccdb :=&XObjectImage {};_dccdb ._fbeec =stream ;_fedeb :=*(stream .PdfObjectDictionary );_fcdd ,_cfdf :=_ebb .NewEncoderFromStream (stream );if _cfdf !=nil {return nil ,_cfdf ;
|
||
};_dccdb .Filter =_fcdd ;if _fadfa :=_ebb .TraceToDirectObject (_fedeb .Get ("\u0057\u0069\u0064t\u0068"));_fadfa !=nil {_bdadd ,_adcgf :=_fadfa .(*_ebb .PdfObjectInteger );if !_adcgf {return nil ,_gf .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");
|
||
};_acffc :=int64 (*_bdadd );_dccdb .Width =&_acffc ;}else {return nil ,_gf .New ("\u0077\u0069\u0064\u0074\u0068\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};if _fdfgef :=_ebb .TraceToDirectObject (_fedeb .Get ("\u0048\u0065\u0069\u0067\u0068\u0074"));
|
||
_fdfgef !=nil {_aedd ,_feegf :=_fdfgef .(*_ebb .PdfObjectInteger );if !_feegf {return nil ,_gf .New ("i\u006e\u0076\u0061\u006c\u0069\u0064 \u0069\u006d\u0061\u0067\u0065\u0020\u0068\u0065\u0069g\u0068\u0074\u0020o\u0062j\u0065\u0063\u0074");};_dedaf :=int64 (*_aedd );
|
||
_dccdb .Height =&_dedaf ;}else {return nil ,_gf .New ("\u0068\u0065\u0069\u0067\u0068\u0074\u0020\u006d\u0069s\u0073\u0069\u006e\u0067");};if _effge :=_ebb .TraceToDirectObject (_fedeb .Get ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065"));
|
||
_effge !=nil {_ggfe ,_dggdd :=NewPdfColorspaceFromPdfObject (_effge );if _dggdd !=nil {return nil ,_dggdd ;};_dccdb .ColorSpace =_ggfe ;}else {_eg .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");
|
||
_dccdb .ColorSpace =NewPdfColorspaceDeviceGray ();};if _agecg :=_ebb .TraceToDirectObject (_fedeb .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074"));_agecg !=nil {_aebag ,_afffb :=_agecg .(*_ebb .PdfObjectInteger );
|
||
if !_afffb {return nil ,_gf .New ("i\u006e\u0076\u0061\u006c\u0069\u0064 \u0069\u006d\u0061\u0067\u0065\u0020\u0068\u0065\u0069g\u0068\u0074\u0020o\u0062j\u0065\u0063\u0074");};_agdd :=int64 (*_aebag );_dccdb .BitsPerComponent =&_agdd ;};_dccdb .Intent =_fedeb .Get ("\u0049\u006e\u0074\u0065\u006e\u0074");
|
||
_dccdb .ImageMask =_fedeb .Get ("\u0049m\u0061\u0067\u0065\u004d\u0061\u0073k");_dccdb .Mask =_fedeb .Get ("\u004d\u0061\u0073\u006b");_dccdb .Decode =_fedeb .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");_dccdb .Interpolate =_fedeb .Get ("I\u006e\u0074\u0065\u0072\u0070\u006f\u006c\u0061\u0074\u0065");
|
||
_dccdb .Alternatives =_fedeb .Get ("\u0041\u006c\u0074e\u0072\u006e\u0061\u0074\u0069\u0076\u0065\u0073");_dccdb .SMask =_fedeb .Get ("\u0053\u004d\u0061s\u006b");_dccdb .SMaskInData =_fedeb .Get ("S\u004d\u0061\u0073\u006b\u0049\u006e\u0044\u0061\u0074\u0061");
|
||
_dccdb .Matte =_fedeb .Get ("\u004d\u0061\u0074t\u0065");_dccdb .Name =_fedeb .Get ("\u004e\u0061\u006d\u0065");_dccdb .StructParent =_fedeb .Get ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074");_dccdb .ID =_fedeb .Get ("\u0049\u0044");
|
||
_dccdb .OPI =_fedeb .Get ("\u004f\u0050\u0049");_dccdb .Metadata =_fedeb .Get ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");_dccdb .OC =_fedeb .Get ("\u004f\u0043");_dccdb .Stream =stream .Stream ;return _dccdb ,nil ;};
|
||
|
||
// AddPages adds pages to be appended to the end of the source PDF.
|
||
func (_faddb *PdfAppender )AddPages (pages ...*PdfPage ){for _ ,_fdba :=range pages {_fdba =_fdba .Duplicate ();_bfegc (_fdba );_faddb ._dfbg =append (_faddb ._dfbg ,_fdba );};};
|
||
|
||
// Write writes the Appender output to io.Writer.
|
||
// It can only be called once and further invocations will result in an error.
|
||
func (_bcga *PdfAppender )Write (w _ab .Writer )error {if _bcga ._adca {return _gf .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");
|
||
};_edbe :=NewPdfWriter ();_dgag ,_fdbd :=_ebb .GetDict (_edbe ._dggbf );if !_fdbd {return _gf .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");
|
||
};_ecad ,_fdbd :=_dgag .Get ("\u004b\u0069\u0064\u0073").(*_ebb .PdfObjectArray );if !_fdbd {return _gf .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");
|
||
};_eace ,_fdbd :=_dgag .Get ("\u0043\u006f\u0075n\u0074").(*_ebb .PdfObjectInteger );if !_fdbd {return _gf .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");
|
||
};_eddff :=_bcga ._acfe ._cafdf ;_agga :=_eddff .GetTrailer ();if _agga ==nil {return _gf .New ("\u006di\u0073s\u0069\u006e\u0067\u0020\u0074\u0072\u0061\u0069\u006c\u0065\u0072");};_dafg ,_fdbd :=_ebb .GetIndirect (_agga .Get ("\u0052\u006f\u006f\u0074"));
|
||
if !_fdbd {return _gf .New ("c\u0061\u0074\u0061\u006c\u006f\u0067 \u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0065\u0072 \u006e\u006f\u0074 \u0066o\u0075\u006e\u0064");};_dfbc ,_fdbd :=_ebb .GetDict (_dafg );if !_fdbd {_eg .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",_dafg ,*_agga );
|
||
return _gf .New ("\u006di\u0073s\u0069\u006e\u0067\u0020\u0063\u0061\u0074\u0061\u006c\u006f\u0067");};for _ ,_bbaf :=range _dfbc .Keys (){if _edbe ._dffegd .Get (_bbaf )==nil {_dbacb :=_dfbc .Get (_bbaf );_edbe ._dffegd .Set (_bbaf ,_dbacb );};};if _bcga ._bfef !=nil {_edbe ._dffegd .Set ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d",_bcga ._bfef .ToPdfObject ());
|
||
_bcga .updateObjectsDeep (_bcga ._bfef .ToPdfObject (),nil );};if _bcga ._eged !=nil {_bcga .updateObjectsDeep (_bcga ._eged .ToPdfObject (),nil );_edbe ._dffegd .Set ("\u0044\u0053\u0053",_bcga ._eged .GetContainingPdfObject ());};if _bcga ._eaaa !=nil {_edbe ._dffegd .Set ("\u0050\u0065\u0072m\u0073",_bcga ._eaaa .ToPdfObject ());
|
||
_bcga .updateObjectsDeep (_bcga ._eaaa .ToPdfObject (),nil );};if _edbe ._efcge .Major < 2{_edbe .AddExtension ("\u0045\u0053\u0049\u0043","\u0031\u002e\u0037",5);_edbe .AddExtension ("\u0041\u0044\u0042\u0045","\u0031\u002e\u0037",8);};if _cefa ,_caga :=_ebb .GetDict (_agga .Get ("\u0049\u006e\u0066\u006f"));
|
||
_caga {if _gdfe ,_fgcf :=_ebb .GetDict (_edbe ._eadfd );_fgcf {for _ ,_cdfe :=range _cefa .Keys (){if _gdfe .Get (_cdfe )==nil {_gdfe .Set (_cdfe ,_cefa .Get (_cdfe ));};};};};if _bcga ._eeee !=nil {_edbe ._eadfd =_ebb .MakeIndirectObject (_bcga ._eeee .ToPdfObject ());
|
||
};_bcga .addNewObject (_edbe ._eadfd );_bcga .addNewObject (_edbe ._gegba );_dggdg :=false ;if len (_bcga ._acfe .PageList )!=len (_bcga ._dfbg ){_dggdg =true ;}else {for _fdaa :=range _bcga ._acfe .PageList {switch {case _bcga ._dfbg [_fdaa ]==_bcga ._acfe .PageList [_fdaa ]:case _bcga ._dfbg [_fdaa ]==_bcga .Reader .PageList [_fdaa ]:default:_dggdg =true ;
|
||
};if _dggdg {break ;};};};if _dggdg {_bcga .updateObjectsDeep (_edbe ._dggbf ,nil );}else {_bcga ._eebc [_edbe ._dggbf ]=struct{}{};};_edbe ._dggbf .ObjectNumber =_bcga .Reader ._eedbb .ObjectNumber ;_bcga ._gbfa [_edbe ._dggbf ]=_bcga .Reader ._eedbb .ObjectNumber ;
|
||
_bcgfc :=[]_ebb .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 _ ,_cefg :=range _bcga ._dfbg {_efga :=_cefg .ToPdfObject ();
|
||
*_eace =*_eace +1;if _aacc ,_fgfe :=_efga .(*_ebb .PdfIndirectObject );_fgfe &&_aacc .GetParser ()==_bcga ._acfe ._cafdf {_ecad .Append (&_aacc .PdfObjectReference );continue ;};if _afac ,_fafa :=_ebb .GetDict (_efga );_fafa {_fdfa ,_cegbd :=_afac .Get ("\u0050\u0061\u0072\u0065\u006e\u0074").(*_ebb .PdfIndirectObject );
|
||
for _cegbd {_eg .Log .Trace ("\u0050a\u0067e\u0020\u0050\u0061\u0072\u0065\u006e\u0074\u003a\u0020\u0025\u0054",_fdfa );_ebaf ,_bcbc :=_fdfa .PdfObject .(*_ebb .PdfObjectDictionary );if !_bcbc {return _gf .New ("i\u006e\u0076\u0061\u006cid\u0020P\u0061\u0072\u0065\u006e\u0074 \u006f\u0062\u006a\u0065\u0063\u0074");
|
||
};for _ ,_adfg :=range _bcgfc {_eg .Log .Trace ("\u0046\u0069\u0065\u006c\u0064\u0020\u0025\u0073",_adfg );if _afac .Get (_adfg )!=nil {_eg .Log .Trace ("\u002d \u0070a\u0067\u0065\u0020\u0068\u0061s\u0020\u0061l\u0072\u0065\u0061\u0064\u0079");continue ;
|
||
};if _ebee :=_ebaf .Get (_adfg );_ebee !=nil {_eg .Log .Trace ("\u0049\u006e\u0068\u0065ri\u0074\u0069\u006e\u0067\u0020\u0066\u0069\u0065\u006c\u0064\u0020\u0025\u0073",_adfg );_afac .Set (_adfg ,_ebee );};};_fdfa ,_cegbd =_ebaf .Get ("\u0050\u0061\u0072\u0065\u006e\u0074").(*_ebb .PdfIndirectObject );
|
||
_eg .Log .Trace ("\u004ee\u0078t\u0020\u0070\u0061\u0072\u0065\u006e\u0074\u003a\u0020\u0025\u0054",_ebaf .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"));};_afac .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_edbe ._dggbf );};_bcga .updateObjectsDeep (_efga ,nil );
|
||
_ecad .Append (_efga );};if _ ,_gdcg :=_bcga ._ecce .Seek (0,_ab .SeekStart );_gdcg !=nil {return _gdcg ;};_dbf :=make (map[SignatureHandler ]_ab .Writer );_bcde :=_ebb .MakeArray ();for _ ,_daaa :=range _bcga ._bfeg {if _cecec ,_feea :=_ebb .GetIndirect (_daaa );
|
||
_feea {if _gfce ,_bfaf :=_cecec .PdfObject .(*pdfSignDictionary );_bfaf {_deaa :=*_gfce ._dcfab ;var _adcfd error ;_dbf [_deaa ],_adcfd =_deaa .NewDigest (_gfce ._bead );if _adcfd !=nil {return _adcfd ;};_bcde .Append (_ebb .MakeInteger (0xfffff),_ebb .MakeInteger (0xfffff));
|
||
};};};if _bcde .Len ()> 0{_bcde .Append (_ebb .MakeInteger (0xfffff),_ebb .MakeInteger (0xfffff));};for _ ,_ecb :=range _bcga ._bfeg {if _bgda ,_cgdg :=_ebb .GetIndirect (_ecb );_cgdg {if _gfae ,_acccc :=_bgda .PdfObject .(*pdfSignDictionary );_acccc {_gfae .Set ("\u0042y\u0074\u0065\u0052\u0061\u006e\u0067e",_bcde );
|
||
};};};_gdfd :=len (_dbf )> 0;var _aec _ab .Reader =_bcga ._ecce ;if _gdfd {_dggf :=make ([]_ab .Writer ,0,len (_dbf ));for _ ,_cade :=range _dbf {_dggf =append (_dggf ,_cade );};_aec =_ab .TeeReader (_bcga ._ecce ,_ab .MultiWriter (_dggf ...));};_defa ,_aebe :=_ab .Copy (w ,_aec );
|
||
if _aebe !=nil {return _aebe ;};if len (_bcga ._bfeg )==0{return nil ;};_edbe ._fgdce =_defa ;_edbe .ObjNumOffset =_bcga ._gbddb ;_edbe ._abffb =true ;_edbe ._efdega =_bcga ._acfd ;_edbe ._bcage =_bcga ._cfag ;_edbe ._ggbfg =_bcga ._bee ;_edbe ._efcge =_bcga ._acfe .PdfVersion ();
|
||
_edbe ._cdgd =_bcga ._gbfa ;_edbe ._cgfde =_bcga ._gege .GetCrypter ();_edbe ._cbcaa =_bcga ._gege .GetEncryptObj ();_eade :=_bcga ._gege .GetXrefType ();if _eade !=nil {_gaeg :=*_eade ==_ebb .XrefTypeObjectStream ;_edbe ._adeff =&_gaeg ;};_edbe ._ffffd =map[_ebb .PdfObject ]struct{}{};
|
||
_edbe ._ebdgg =[]_ebb .PdfObject {};for _ ,_bgbc :=range _bcga ._bfeg {if _ ,_bafd :=_bcga ._eebc [_bgbc ];_bafd {continue ;};_edbe .addObject (_bgbc );};_fgada :=w ;if _gdfd {_fgada =_ca .NewBuffer (nil );};if _bcga ._accg !=""&&_edbe ._cgfde ==nil {_edbe .Encrypt ([]byte (_bcga ._accg ),[]byte (_bcga ._accg ),_bcga ._gfba );
|
||
};if _eecd :=_agga .Get ("\u0049\u0044");_eecd !=nil {if _fadf ,_egab :=_ebb .GetArray (_eecd );_egab {_edbe ._eecfe =_fadf ;};};if _daab :=_edbe .Write (_fgada );_daab !=nil {return _daab ;};if _gdfd {_gfag :=_fgada .(*_ca .Buffer ).Bytes ();_agbb :=_ebb .MakeArray ();
|
||
var _fdfca []*pdfSignDictionary ;var _adad int64 ;for _ ,_facb :=range _edbe ._ebdgg {if _gaecc ,_bfae :=_ebb .GetIndirect (_facb );_bfae {if _bdbf ,_bcfc :=_gaecc .PdfObject .(*pdfSignDictionary );_bcfc {_fdfca =append (_fdfca ,_bdbf );_aeca :=_bdbf ._cbfg +int64 (_bdbf ._eefbe );
|
||
_agbb .Append (_ebb .MakeInteger (_adad ),_ebb .MakeInteger (_aeca -_adad ));_adad =_bdbf ._cbfg +int64 (_bdbf ._adggf );};};};_agbb .Append (_ebb .MakeInteger (_adad ),_ebb .MakeInteger (_defa +int64 (len (_gfag ))-_adad ));_aeda :=[]byte (_agbb .WriteString ());
|
||
for _ ,_gde :=range _fdfca {_dgea :=int (_gde ._cbfg -_defa );for _eeef :=_gde ._decgd ;_eeef < _gde ._ddceg ;_eeef ++{_gfag [_dgea +_eeef ]=' ';};_ecab :=_gfag [_dgea +_gde ._decgd :_dgea +_gde ._ddceg ];copy (_ecab ,_aeda );};var _bafdb int ;for _ ,_abdc :=range _fdfca {_dbce :=int (_abdc ._cbfg -_defa );
|
||
_dacd :=_gfag [_bafdb :_dbce +_abdc ._eefbe ];_cdfef :=*_abdc ._dcfab ;_dbf [_cdfef ].Write (_dacd );_bafdb =_dbce +_abdc ._adggf ;};for _ ,_caed :=range _fdfca {_bfba :=_gfag [_bafdb :];_adga :=*_caed ._dcfab ;_dbf [_adga ].Write (_bfba );};for _ ,_gggea :=range _fdfca {_cggd :=int (_gggea ._cbfg -_defa );
|
||
_egef :=*_gggea ._dcfab ;_gcff :=_dbf [_egef ];if _dfda :=_egef .Sign (_gggea ._bead ,_gcff );_dfda !=nil {return _dfda ;};_gggea ._bead .ByteRange =_agbb ;_cfce :=[]byte (_gggea ._bead .Contents .WriteString ());for _dgfg :=_gggea ._decgd ;_dgfg < _gggea ._ddceg ;
|
||
_dgfg ++{_gfag [_cggd +_dgfg ]=' ';};for _defb :=_gggea ._eefbe ;_defb < _gggea ._adggf ;_defb ++{_gfag [_cggd +_defb ]=' ';};_ffc :=_gfag [_cggd +_gggea ._decgd :_cggd +_gggea ._ddceg ];copy (_ffc ,_aeda );_ffc =_gfag [_cggd +_gggea ._eefbe :_cggd +_gggea ._adggf ];
|
||
copy (_ffc ,_cfce );};_gebg :=_ca .NewBuffer (_gfag );_ ,_aebe =_ab .Copy (w ,_gebg );if _aebe !=nil {return _aebe ;};};_bcga ._adca =true ;return nil ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the shading dictionary.
|
||
func (_decaf *PdfShadingType7 )ToPdfObject ()_ebb .PdfObject {_decaf .PdfShading .ToPdfObject ();_dadgc ,_aaff :=_decaf .getShadingDict ();if _aaff !=nil {_eg .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 _decaf .BitsPerCoordinate !=nil {_dadgc .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065",_decaf .BitsPerCoordinate );};if _decaf .BitsPerComponent !=nil {_dadgc .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_decaf .BitsPerComponent );
|
||
};if _decaf .BitsPerFlag !=nil {_dadgc .Set ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067",_decaf .BitsPerFlag );};if _decaf .Decode !=nil {_dadgc .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_decaf .Decode );};if _decaf .Function !=nil {if len (_decaf .Function )==1{_dadgc .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_decaf .Function [0].ToPdfObject ());
|
||
}else {_gbacge :=_ebb .MakeArray ();for _ ,_gcbg :=range _decaf .Function {_gbacge .Append (_gcbg .ToPdfObject ());};_dadgc .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_gbacge );};};return _decaf ._fbfae ;};
|
||
|
||
// NewPdfAnnotationSquare returns a new square annotation.
|
||
func NewPdfAnnotationSquare ()*PdfAnnotationSquare {_aaca :=NewPdfAnnotation ();_bge :=&PdfAnnotationSquare {};_bge .PdfAnnotation =_aaca ;_bge .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_aaca .SetContext (_bge );return _bge ;};
|
||
|
||
// 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 (_eaebe *PdfPageResources )GetColorspaces ()(*PdfPageResourcesColorspaces ,error ){if _eaebe ._aaee !=nil {return _eaebe ._aaee ,nil ;};if _eaebe .ColorSpace ==nil {return nil ,nil ;};_gfcda ,_dgaac :=_eeafg (_eaebe .ColorSpace );if _dgaac !=nil {return nil ,_dgaac ;
|
||
};_eaebe ._aaee =_gfcda ;return _eaebe ._aaee ,nil ;};
|
||
|
||
// PdfFont represents an underlying font structure which can be of type:
|
||
// - Type0
|
||
// - Type1
|
||
// - TrueType
|
||
// etc.
|
||
type PdfFont struct{_ebcad pdfFont };type pdfSignDictionary struct{*_ebb .PdfObjectDictionary ;_dcfab *SignatureHandler ;_bead *PdfSignature ;_cbfg int64 ;_eefbe int ;_adggf int ;_decgd int ;_ddceg int ;};
|
||
|
||
// 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 (_abgb *pdfFontSimple )SetEncoder (encoder _da .TextEncoder ){_abgb ._ebcb =encoder };
|
||
|
||
// Width returns the width of `rect`.
|
||
func (_cfdb *PdfRectangle )Width ()float64 {return _cbg .Abs (_cfdb .Urx -_cfdb .Llx )};func _acdf (_feeb _ebb .PdfObject )(*PdfFontDescriptor ,error ){_efbab :=&PdfFontDescriptor {};_feeb =_ebb .ResolveReference (_feeb );if _fbac ,_agef :=_feeb .(*_ebb .PdfIndirectObject );
|
||
_agef {_efbab ._ccfcg =_fbac ;_feeb =_fbac .PdfObject ;};_addaa ,_dgfgf :=_ebb .GetDict (_feeb );if !_dgfgf {_eg .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",_feeb );
|
||
return nil ,_ebb .ErrTypeError ;};if _ffadg :=_addaa .Get ("\u0046\u006f\u006e\u0074\u004e\u0061\u006d\u0065");_ffadg !=nil {_efbab .FontName =_ffadg ;}else {_eg .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");
|
||
};_gbcfc ,_ :=_ebb .GetName (_efbab .FontName );if _dcdff :=_addaa .Get ("\u0054\u0079\u0070\u0065");_dcdff !=nil {_badff ,_gagfg :=_dcdff .(*_ebb .PdfObjectName );if !_gagfg ||string (*_badff )!="\u0046\u006f\u006e\u0074\u0044\u0065\u0073\u0063\u0072i\u0070\u0074\u006f\u0072"{_eg .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",_dcdff ,_gbcfc ,_efbab .FontName );
|
||
};}else {_eg .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",_gbcfc ,_efbab .FontName );
|
||
};_efbab .FontFamily =_addaa .Get ("\u0046\u006f\u006e\u0074\u0046\u0061\u006d\u0069\u006c\u0079");_efbab .FontStretch =_addaa .Get ("F\u006f\u006e\u0074\u0053\u0074\u0072\u0065\u0074\u0063\u0068");_efbab .FontWeight =_addaa .Get ("\u0046\u006f\u006e\u0074\u0057\u0065\u0069\u0067\u0068\u0074");
|
||
_efbab .Flags =_addaa .Get ("\u0046\u006c\u0061g\u0073");_efbab .FontBBox =_addaa .Get ("\u0046\u006f\u006e\u0074\u0042\u0042\u006f\u0078");_efbab .ItalicAngle =_addaa .Get ("I\u0074\u0061\u006c\u0069\u0063\u0041\u006e\u0067\u006c\u0065");_efbab .Ascent =_addaa .Get ("\u0041\u0073\u0063\u0065\u006e\u0074");
|
||
_efbab .Descent =_addaa .Get ("\u0044e\u0073\u0063\u0065\u006e\u0074");_efbab .Leading =_addaa .Get ("\u004ce\u0061\u0064\u0069\u006e\u0067");_efbab .CapHeight =_addaa .Get ("\u0043a\u0070\u0048\u0065\u0069\u0067\u0068t");_efbab .XHeight =_addaa .Get ("\u0058H\u0065\u0069\u0067\u0068\u0074");
|
||
_efbab .StemV =_addaa .Get ("\u0053\u0074\u0065m\u0056");_efbab .StemH =_addaa .Get ("\u0053\u0074\u0065m\u0048");_efbab .AvgWidth =_addaa .Get ("\u0041\u0076\u0067\u0057\u0069\u0064\u0074\u0068");_efbab .MaxWidth =_addaa .Get ("\u004d\u0061\u0078\u0057\u0069\u0064\u0074\u0068");
|
||
_efbab .MissingWidth =_addaa .Get ("\u004d\u0069\u0073s\u0069\u006e\u0067\u0057\u0069\u0064\u0074\u0068");_efbab .FontFile =_addaa .Get ("\u0046\u006f\u006e\u0074\u0046\u0069\u006c\u0065");_efbab .FontFile2 =_addaa .Get ("\u0046o\u006e\u0074\u0046\u0069\u006c\u00652");
|
||
_efbab .FontFile3 =_addaa .Get ("\u0046o\u006e\u0074\u0046\u0069\u006c\u00653");_efbab .CharSet =_addaa .Get ("\u0043h\u0061\u0072\u0053\u0065\u0074");_efbab .Style =_addaa .Get ("\u0053\u0074\u0079l\u0065");_efbab .Lang =_addaa .Get ("\u004c\u0061\u006e\u0067");
|
||
_efbab .FD =_addaa .Get ("\u0046\u0044");_efbab .CIDSet =_addaa .Get ("\u0043\u0049\u0044\u0053\u0065\u0074");if _efbab .Flags !=nil {if _efbb ,_fbgf :=_ebb .GetIntVal (_efbab .Flags );_fbgf {_efbab ._gfbge =_efbb ;};};if _efbab .MissingWidth !=nil {if _egcg ,_gfage :=_ebb .GetNumberAsFloat (_efbab .MissingWidth );
|
||
_gfage ==nil {_efbab ._gbfgb =_egcg ;};};if _efbab .FontFile !=nil {_dcbga ,_bdaa :=_aafe (_efbab .FontFile );if _bdaa !=nil {return _efbab ,_bdaa ;};_eg .Log .Trace ("f\u006f\u006e\u0074\u0046\u0069\u006c\u0065\u003d\u0025\u0073",_dcbga );_efbab .fontFile =_dcbga ;
|
||
};if _efbab .FontFile2 !=nil {_cgegf ,_edbb :=_bad .NewFontFile2FromPdfObject (_efbab .FontFile2 );if _edbb !=nil {return _efbab ,_edbb ;};_eg .Log .Trace ("\u0066\u006f\u006et\u0046\u0069\u006c\u0065\u0032\u003d\u0025\u0073",_cgegf .String ());_efbab ._aeeb =&_cgegf ;
|
||
};return _efbab ,nil ;};func (_ecegg *PdfWriter )optimizeDocument ()error {if _ecegg ._cafac ==nil {return nil ;};_ebbac ,_faebg :=_ebb .GetDict (_ecegg ._eadfd );if !_faebg {return _gf .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");
|
||
};_beeab :=_bda .Document {ID :[2]string {_ecegg ._gfdea ,_ecegg ._gffb },Version :_ecegg ._efcge ,Objects :_ecegg ._ebdgg ,Info :_ebbac ,Crypt :_ecegg ._cgfde ,UseHashBasedID :_ecegg ._abgcg };if _fefeca :=_ecegg ._cafac .ApplyStandard (&_beeab );_fefeca !=nil {return _fefeca ;
|
||
};_ecegg ._gfdea ,_ecegg ._gffb =_beeab .ID [0],_beeab .ID [1];_ecegg ._efcge =_beeab .Version ;_ecegg ._ebdgg =_beeab .Objects ;_ecegg ._eadfd .PdfObject =_beeab .Info ;_ecegg ._abgcg =_beeab .UseHashBasedID ;_ecegg ._cgfde =_beeab .Crypt ;_cggfc :=make (map[_ebb .PdfObject ]struct{},len (_ecegg ._ebdgg ));
|
||
for _ ,_eegd :=range _ecegg ._ebdgg {_cggfc [_eegd ]=struct{}{};};_ecegg ._ffffd =_cggfc ;return nil ;};
|
||
|
||
// Flags returns the field flags for the field accounting for any inherited flags.
|
||
func (_ageea *PdfField )Flags ()FieldFlag {var _dddb FieldFlag ;_bfdd ,_bcba :=_ageea .inherit (func (_fdac *PdfField )bool {if _fdac .Ff !=nil {_dddb =FieldFlag (*_fdac .Ff );return true ;};return false ;});if _bcba !=nil {_eg .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",_bcba );
|
||
};if !_bfdd {_eg .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 _dddb ;};
|
||
|
||
// PdfColorspaceDeviceRGB represents an RGB colorspace.
|
||
type PdfColorspaceDeviceRGB struct{};
|
||
|
||
// AddContentStreamByString adds content stream by string. Puts the content
|
||
// string into a stream object and points the content stream towards it.
|
||
func (_bfgec *PdfPage )AddContentStreamByString (contentStr string )error {_ebabe ,_acad :=_ebb .MakeStream ([]byte (contentStr ),_ebb .NewFlateEncoder ());if _acad !=nil {return _acad ;};if _bfgec .Contents ==nil {_bfgec .Contents =_ebabe ;}else {_bgdfc :=_ebb .TraceToDirectObject (_bfgec .Contents );
|
||
_fbfg ,_agfcbf :=_bgdfc .(*_ebb .PdfObjectArray );if !_agfcbf {_fbfg =_ebb .MakeArray (_bgdfc );};_fbfg .Append (_ebabe );_bfgec .Contents =_fbfg ;};return nil ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_afa *PdfActionGoTo3DView )ToPdfObject ()_ebb .PdfObject {_afa .PdfAction .ToPdfObject ();_cge :=_afa ._abe ;_cba :=_cge .PdfObject .(*_ebb .PdfObjectDictionary );_cba .SetIfNotNil ("\u0053",_ebb .MakeName (string (ActionTypeGoTo3DView )));_cba .SetIfNotNil ("\u0054\u0041",_afa .TA );
|
||
_cba .SetIfNotNil ("\u0056",_afa .V );return _cge ;};
|
||
|
||
// 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 (_gacc *PdfColorspaceCalGray )ColorFromPdfObjects (objects []_ebb .PdfObject )(PdfColor ,error ){if len (objects )!=1{return nil ,_gf .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_aaadd ,_cbab :=_ebb .GetNumbersAsFloat (objects );
|
||
if _cbab !=nil {return nil ,_cbab ;};return _gacc .ColorFromFloats (_aaadd );};
|
||
|
||
// 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 ;_bcbfd *_ebb .PdfIndirectObject ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_agc *PdfAnnotationProjection )ToPdfObject ()_ebb .PdfObject {_agc .PdfAnnotation .ToPdfObject ();_abga :=_agc ._bdcd ;_dafb :=_abga .PdfObject .(*_ebb .PdfObjectDictionary );_agc .PdfAnnotationMarkup .appendToPdfDictionary (_dafb );return _abga ;
|
||
};
|
||
|
||
// GetCharMetrics returns the char metrics for character code `code`.
|
||
func (_dggdc pdfFontType0 )GetCharMetrics (code _da .CharCode )(_bad .CharMetrics ,bool ){if _dggdc .DescendantFont ==nil {_eg .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",_dggdc );
|
||
return _bad .CharMetrics {},false ;};return _dggdc .DescendantFont .GetCharMetrics (code );};func _ffaba (_bbffd *_ebb .PdfObjectArray )(float64 ,error ){_dgffb ,_ddcdd :=_bbffd .ToFloat64Array ();if _ddcdd !=nil {_eg .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",_bbffd ,_ddcdd );
|
||
};switch len (_dgffb ){case 1:return _dgffb [0],nil ;case 3:_fbbgc :=PdfColorspaceDeviceRGB {};_cfcaf ,_bfgff :=_fbbgc .ColorFromFloats (_dgffb );if _bfgff !=nil {return 0.0,_bfgff ;};return _cfcaf .(*PdfColorDeviceRGB ).ToGray ().Val (),nil ;case 4:_faddeb :=PdfColorspaceDeviceCMYK {};
|
||
_dcebf ,_dcacg :=_faddeb .ColorFromFloats (_dgffb );if _dcacg !=nil {return 0.0,_dcacg ;};_ebcdf ,_dcacg :=_faddeb .ColorToRGB (_dcebf .(*PdfColorDeviceCMYK ));if _dcacg !=nil {return 0.0,_dcacg ;};return _ebcdf .(*PdfColorDeviceRGB ).ToGray ().Val (),nil ;
|
||
};_ddcdd =_gf .New ("\u0062a\u0064 \u004d\u0061\u0074\u0074\u0065\u0020\u0063\u006f\u006c\u006f\u0072");_eg .Log .Error ("\u0074\u006f\u0047ra\u0079\u003a\u0020\u006d\u0061\u0074\u0074\u0065\u003d\u0025\u0073\u0020\u0065\u0072\u0072\u003d\u0025\u0076",_bbffd ,_ddcdd );
|
||
return 0.0,_ddcdd ;};
|
||
|
||
// GetPageLabels returns the PageLabels entry in the PDF catalog.
|
||
// See section 12.4.2 "Page Labels" (p. 382 PDF32000_2008).
|
||
func (_degcf *PdfReader )GetPageLabels ()(_ebb .PdfObject ,error ){_cfebd :=_ebb .ResolveReference (_degcf ._fdgda .Get ("\u0050\u0061\u0067\u0065\u004c\u0061\u0062\u0065\u006c\u0073"));if _cfebd ==nil {return nil ,nil ;};if !_degcf ._ceefa {_afabg :=_degcf .traverseObjectData (_cfebd );
|
||
if _afabg !=nil {return nil ,_afabg ;};};return _cfebd ,nil ;};
|
||
|
||
// PdfActionURI represents an URI action.
|
||
type PdfActionURI struct{*PdfAction ;URI _ebb .PdfObject ;IsMap _ebb .PdfObject ;};func (_ddgbg *PdfReader )buildOutlineTree (_eead _ebb .PdfObject ,_fabf *PdfOutlineTreeNode ,_cfgdbg *PdfOutlineTreeNode ,_cdbcf map[_ebb .PdfObject ]struct{})(*PdfOutlineTreeNode ,*PdfOutlineTreeNode ,error ){if _cdbcf ==nil {_cdbcf =map[_ebb .PdfObject ]struct{}{};
|
||
};_cdbcf [_eead ]=struct{}{};_dfeeg ,_bdbaef :=_eead .(*_ebb .PdfIndirectObject );if !_bdbaef {return nil ,nil ,_bg .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",_eead );
|
||
};_fdggb ,_aeabca :=_dfeeg .PdfObject .(*_ebb .PdfObjectDictionary );if !_aeabca {return nil ,nil ,_gf .New ("\u006e\u006f\u0074 a\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u0020\u006f\u0062\u006a\u0065\u0063\u0074");};_eg .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",_fdggb ,_dfeeg ,_dfeeg );
|
||
if _cgeea :=_fdggb .Get ("\u0054\u0069\u0074l\u0065");_cgeea !=nil {_fgfdb ,_bdggg :=_ddgbg .newPdfOutlineItemFromIndirectObject (_dfeeg );if _bdggg !=nil {return nil ,nil ,_bdggg ;};_fgfdb .Parent =_fabf ;_fgfdb .Prev =_cfgdbg ;_febde :=_ebb .ResolveReference (_fdggb .Get ("\u0046\u0069\u0072s\u0074"));
|
||
if _ ,_fcgbbg :=_cdbcf [_febde ];_febde !=nil &&_febde !=_dfeeg &&!_fcgbbg {if !_ebb .IsNullObject (_febde ){_gcdga ,_ggdc ,_cfdce :=_ddgbg .buildOutlineTree (_febde ,&_fgfdb .PdfOutlineTreeNode ,nil ,_cdbcf );if _cfdce !=nil {_eg .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",_cfdce );
|
||
}else {_fgfdb .First =_gcdga ;_fgfdb .Last =_ggdc ;};};};_ggab :=_ebb .ResolveReference (_fdggb .Get ("\u004e\u0065\u0078\u0074"));if _ ,_fabd :=_cdbcf [_ggab ];_ggab !=nil &&_ggab !=_dfeeg &&!_fabd {if !_ebb .IsNullObject (_ggab ){_bfaef ,_daed ,_dcef :=_ddgbg .buildOutlineTree (_ggab ,_fabf ,&_fgfdb .PdfOutlineTreeNode ,_cdbcf );
|
||
if _dcef !=nil {_eg .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",_dcef );
|
||
}else {_fgfdb .Next =_bfaef ;return &_fgfdb .PdfOutlineTreeNode ,_daed ,nil ;};};};return &_fgfdb .PdfOutlineTreeNode ,&_fgfdb .PdfOutlineTreeNode ,nil ;};_cdbda ,_edfga :=_fgff (_dfeeg );if _edfga !=nil {return nil ,nil ,_edfga ;};_cdbda .Parent =_fabf ;
|
||
if _cdfgea :=_fdggb .Get ("\u0046\u0069\u0072s\u0074");_cdfgea !=nil {_cdfgea =_ebb .ResolveReference (_cdfgea );if _ ,_gbegd :=_cdbcf [_cdfgea ];_cdfgea !=nil &&_cdfgea !=_dfeeg &&!_gbegd {_cbbfe :=_ebb .TraceToDirectObject (_cdfgea );if _ ,_gfcef :=_cbbfe .(*_ebb .PdfObjectNull );
|
||
!_gfcef &&_cbbfe !=nil {_eaddd ,_bcaga ,_bgae :=_ddgbg .buildOutlineTree (_cdfgea ,&_cdbda .PdfOutlineTreeNode ,nil ,_cdbcf );if _bgae !=nil {_eg .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",_bgae );
|
||
}else {_cdbda .First =_eaddd ;_cdbda .Last =_bcaga ;};};};};return &_cdbda .PdfOutlineTreeNode ,&_cdbda .PdfOutlineTreeNode ,nil ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_abgg *PdfAnnotationUnderline )ToPdfObject ()_ebb .PdfObject {_abgg .PdfAnnotation .ToPdfObject ();_afd :=_abgg ._bdcd ;_ebada :=_afd .PdfObject .(*_ebb .PdfObjectDictionary );_abgg .PdfAnnotationMarkup .appendToPdfDictionary (_ebada );_ebada .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ebb .MakeName ("\u0055n\u0064\u0065\u0072\u006c\u0069\u006ee"));
|
||
_ebada .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_abgg .QuadPoints );return _afd ;};func _ffaa (_eafcb _ebb .PdfObject )[]*_ebb .PdfObjectStream {if _eafcb ==nil {return nil ;};_acefg ,_dgbcc :=_ebb .GetArray (_eafcb );
|
||
if !_dgbcc ||_acefg .Len ()==0{return nil ;};_fddae :=make ([]*_ebb .PdfObjectStream ,0,_acefg .Len ());for _ ,_cgbge :=range _acefg .Elements (){if _bggd ,_fdgc :=_ebb .GetStream (_cgbge );_fdgc {_fddae =append (_fddae ,_bggd );};};return _fddae ;};
|
||
|
||
// 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 (_cfaag *PdfColorspaceCalGray )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=1{return nil ,_gf .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_afbc :=vals [0];if _afbc < 0.0||_afbc > 1.0{_eg .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_afbc );
|
||
return nil ,ErrColorOutOfRange ;};_effd :=NewPdfColorCalGray (_afbc );return _effd ,nil ;};func (_gfbd *PdfColorspaceLab )String ()string {return "\u004c\u0061\u0062"};
|
||
|
||
// BorderEffect represents a border effect (Table 167 p. 395).
|
||
type BorderEffect int ;func (_aggg *PdfAcroForm )signatureFields ()[]*PdfFieldSignature {var _ecedb []*PdfFieldSignature ;for _ ,_gafd :=range _aggg .AllFields (){switch _eeegd :=_gafd .GetContext ().(type ){case *PdfFieldSignature :_cafgdg :=_eeegd ;_ecedb =append (_ecedb ,_cafgdg );
|
||
};};return _ecedb ;};
|
||
|
||
// ToInteger convert to an integer format.
|
||
func (_ccfb *PdfColorLab )ToInteger (bits int )[3]uint32 {_eaf :=_cbg .Pow (2,float64 (bits ))-1;return [3]uint32 {uint32 (_eaf *_ccfb .L ()),uint32 (_eaf *_ccfb .A ()),uint32 (_eaf *_ccfb .B ())};};func _cfacd (_bceda StdFontName )(pdfFontSimple ,error ){_bebc ,_bafa :=_bad .NewStdFontByName (_bceda );
|
||
if !_bafa {return pdfFontSimple {},ErrFontNotSupported ;};_begc :=_fcgbc (_bebc );return _begc ,nil ;};
|
||
|
||
// PartialName returns the partial name of the field.
|
||
func (_adfed *PdfField )PartialName ()string {_fbbgb :="";if _adfed .T !=nil {_fbbgb =_adfed .T .Decoded ();}else {_eg .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 _fbbgb ;};
|
||
|
||
// GetAscent returns the Ascent of the font `descriptor`.
|
||
func (_dddc *PdfFontDescriptor )GetAscent ()(float64 ,error ){return _ebb .GetNumberAsFloat (_dddc .Ascent );};func _bfbb (_gfab []byte )bool {if len (_gfab )< 4{return true ;};for _afgc :=range _gfab [:4]{_gaaa :=rune (_afgc );if !_cc .Is (_cc .ASCII_Hex_Digit ,_gaaa )&&!_cc .IsSpace (_gaaa ){return true ;
|
||
};};return false ;};
|
||
|
||
// ToGoTime returns the date in time.Time format.
|
||
func (_ceecg PdfDate )ToGoTime ()_f .Time {_babde :=int (_ceecg ._gcccb *60*60+_ceecg ._fddcbg *60);switch _ceecg ._degeb {case '-':_babde =-_babde ;case 'Z':_babde =0;};_aagf :=_bg .Sprintf ("\u0055\u0054\u0043\u0025\u0063\u0025\u002e\u0032\u0064\u0025\u002e\u0032\u0064",_ceecg ._degeb ,_ceecg ._gcccb ,_ceecg ._fddcbg );
|
||
_dgcg :=_f .FixedZone (_aagf ,_babde );return _f .Date (int (_ceecg ._dacdd ),_f .Month (_ceecg ._agaba ),int (_ceecg ._edcfe ),int (_ceecg ._aedbe ),int (_ceecg ._cfaba ),int (_ceecg ._cgbcd ),0,_dgcg );};
|
||
|
||
// PdfShadingType7 is a Tensor-product patch mesh.
|
||
type PdfShadingType7 struct{*PdfShading ;BitsPerCoordinate *_ebb .PdfObjectInteger ;BitsPerComponent *_ebb .PdfObjectInteger ;BitsPerFlag *_ebb .PdfObjectInteger ;Decode *_ebb .PdfObjectArray ;Function []PdfFunction ;};func _bdfea ()string {_daddc .Lock ();
|
||
defer _daddc .Unlock ();return _feaca };
|
||
|
||
// Hasher is the interface that wraps the basic Write method.
|
||
type Hasher interface{Write (_cfeba []byte )(_debdd int ,_abeadc error );};
|
||
|
||
// SetAction sets the PDF action for the annotation link.
|
||
func (_add *PdfAnnotationLink )SetAction (action *PdfAction ){_add ._ffea =action ;if action ==nil {_add .A =nil ;};};
|
||
|
||
// NewPdfReaderLazy creates a new PdfReader for `rs` in lazy-loading mode. The difference
|
||
// from NewPdfReader is that in lazy-loading mode, objects are only loaded into memory when needed
|
||
// rather than entire structure being loaded into memory on reader creation.
|
||
// Note that it may make sense to use the lazy-load reader when processing only parts of files,
|
||
// rather than loading entire file into memory. Example: splitting a few pages from a large PDF file.
|
||
func NewPdfReaderLazy (rs _ab .ReadSeeker )(*PdfReader ,error ){const _acbg ="\u006d\u006f\u0064\u0065l:\u004e\u0065\u0077\u0050\u0064\u0066\u0052\u0065\u0061\u0064\u0065\u0072\u004c\u0061z\u0079";return _dcbd (rs ,&ReaderOpts {LazyLoad :true },false ,_acbg );
|
||
};
|
||
|
||
// PdfActionLaunch represents a launch action.
|
||
type PdfActionLaunch struct{*PdfAction ;F *PdfFilespec ;Win _ebb .PdfObject ;Mac _ebb .PdfObject ;Unix _ebb .PdfObject ;NewWindow _ebb .PdfObject ;};
|
||
|
||
// SetPdfAuthor sets the Author attribute of the output PDF.
|
||
func SetPdfAuthor (author string ){_daddc .Lock ();defer _daddc .Unlock ();_ecgdd =author };
|
||
|
||
// 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 (_bgge *Image )SetSamples (samples []uint32 ){if _bgge .BitsPerComponent < 8{samples =_bgge .samplesAddPadding (samples );};_beea :=_abg .ResampleUint32 (samples ,int (_bgge .BitsPerComponent ),8);_acgbf :=make ([]byte ,len (_beea ));for _ccbg ,_fcgbg :=range _beea {_acgbf [_ccbg ]=byte (_fcgbg );
|
||
};_bgge .Data =_acgbf ;};
|
||
|
||
// PdfPage represents a page in a PDF document. (7.7.3.3 - Table 30).
|
||
type PdfPage struct{Parent _ebb .PdfObject ;LastModified *PdfDate ;Resources *PdfPageResources ;CropBox *PdfRectangle ;MediaBox *PdfRectangle ;BleedBox *PdfRectangle ;TrimBox *PdfRectangle ;ArtBox *PdfRectangle ;BoxColorInfo _ebb .PdfObject ;Contents _ebb .PdfObject ;
|
||
Rotate *int64 ;Group _ebb .PdfObject ;Thumb _ebb .PdfObject ;B _ebb .PdfObject ;Dur _ebb .PdfObject ;Trans _ebb .PdfObject ;AA _ebb .PdfObject ;Metadata _ebb .PdfObject ;PieceInfo _ebb .PdfObject ;StructParents _ebb .PdfObject ;ID _ebb .PdfObject ;PZ _ebb .PdfObject ;
|
||
SeparationInfo _ebb .PdfObject ;Tabs _ebb .PdfObject ;TemplateInstantiated _ebb .PdfObject ;PresSteps _ebb .PdfObject ;UserUnit _ebb .PdfObject ;VP _ebb .PdfObject ;Annots _ebb .PdfObject ;_bbfed []*PdfAnnotation ;_cdbfde *_ebb .PdfObjectDictionary ;_defbb *_ebb .PdfIndirectObject ;
|
||
_ddab *PdfReader ;};
|
||
|
||
// 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 (_edbdg *PdfReader )Inspect ()(map[string ]int ,error ){return _edbdg ._cafdf .Inspect ()};func (_aabcbe *LTV )getOCSPs (_ccab []*_g .Certificate ,_cgecc map[string ]*_g .Certificate )([][]byte ,error ){_aecd :=make ([][]byte ,0,len (_ccab ));for _ ,_acgc :=range _ccab {for _ ,_cbad :=range _acgc .OCSPServer {if _aabcbe .CertClient .IsCA (_acgc ){continue ;
|
||
};_ggfg ,_degg :=_cgecc [_acgc .Issuer .CommonName ];if !_degg {_eg .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 ;};_ ,_bacae ,_bbcc :=_aabcbe .OCSPClient .MakeRequest (_cbad ,_acgc ,_ggfg );if _bbcc !=nil {_eg .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",_bbcc );
|
||
continue ;};_aecd =append (_aecd ,_bacae );};};return _aecd ,nil ;};
|
||
|
||
// SetColorspaceByName adds the provided colorspace to the page resources.
|
||
func (_eegea *PdfPageResources )SetColorspaceByName (keyName _ebb .PdfObjectName ,cs PdfColorspace )error {_bbbc ,_fcffb :=_eegea .GetColorspaces ();if _fcffb !=nil {_eg .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",_fcffb );
|
||
return _fcffb ;};if _bbbc ==nil {_bbbc =NewPdfPageResourcesColorspaces ();_eegea .SetColorSpace (_bbbc );};_bbbc .Set (keyName ,cs );return nil ;};
|
||
|
||
// ToGoImage converts the unidoc Image to a golang Image structure.
|
||
func (_adab *Image )ToGoImage ()(_gdc .Image ,error ){_eg .Log .Trace ("\u0043\u006f\u006e\u0076er\u0074\u0069\u006e\u0067\u0020\u0074\u006f\u0020\u0067\u006f\u0020\u0069\u006d\u0061g\u0065");_agebf ,_ffbgb :=_dg .NewImage (int (_adab .Width ),int (_adab .Height ),int (_adab .BitsPerComponent ),_adab .ColorComponents ,_adab .Data ,_adab ._dagcb ,_adab ._dgcea );
|
||
if _ffbgb !=nil {return nil ,_ffbgb ;};return _agebf ,nil ;};
|
||
|
||
// NewPdfAnnotationPopup returns a new popup annotation.
|
||
func NewPdfAnnotationPopup ()*PdfAnnotationPopup {_dgcf :=NewPdfAnnotation ();_ebf :=&PdfAnnotationPopup {};_ebf .PdfAnnotation =_dgcf ;_dgcf .SetContext (_ebf );return _ebf ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_abgc *Permissions )ToPdfObject ()_ebb .PdfObject {return _abgc ._bdgdgf };func (_bdfe *pdfFontSimple )baseFields ()*fontCommon {return &_bdfe .fontCommon };
|
||
|
||
// PdfAnnotationLink represents Link annotations.
|
||
// (Section 12.5.6.5 p. 403).
|
||
type PdfAnnotationLink struct{*PdfAnnotation ;A _ebb .PdfObject ;Dest _ebb .PdfObject ;H _ebb .PdfObject ;PA _ebb .PdfObject ;QuadPoints _ebb .PdfObject ;BS _ebb .PdfObject ;_ffea *PdfAction ;_cfbg *PdfReader ;};
|
||
|
||
// GetContainingPdfObject implements interface PdfModel.
|
||
func (_edabf *Permissions )GetContainingPdfObject ()_ebb .PdfObject {return _edabf ._bdgdgf };
|
||
|
||
// GetContext returns a reference to the subpattern entry: either PdfTilingPattern or PdfShadingPattern.
|
||
func (_abec *PdfPattern )GetContext ()PdfModel {return _abec ._ffagg };func _fcgbc (_adgfb _bad .StdFont )pdfFontSimple {_eaabd :=_adgfb .Descriptor ();return pdfFontSimple {fontCommon :fontCommon {_dfbf :"\u0054\u0079\u0070e\u0031",_fdacg :_adgfb .Name ()},_ddgd :_adgfb .GetMetricsTable (),_adbd :&PdfFontDescriptor {FontName :_ebb .MakeName (string (_eaabd .Name )),FontFamily :_ebb .MakeName (_eaabd .Family ),FontWeight :_ebb .MakeFloat (float64 (_eaabd .Weight )),Flags :_ebb .MakeInteger (int64 (_eaabd .Flags )),FontBBox :_ebb .MakeArrayFromFloats (_eaabd .BBox [:]),ItalicAngle :_ebb .MakeFloat (_eaabd .ItalicAngle ),Ascent :_ebb .MakeFloat (_eaabd .Ascent ),Descent :_ebb .MakeFloat (_eaabd .Descent ),CapHeight :_ebb .MakeFloat (_eaabd .CapHeight ),XHeight :_ebb .MakeFloat (_eaabd .XHeight ),StemV :_ebb .MakeFloat (_eaabd .StemV ),StemH :_ebb .MakeFloat (_eaabd .StemH )},_dacee :_adgfb .Encoder ()};
|
||
};
|
||
|
||
// NewXObjectForm creates a brand new XObject Form. Creates a new underlying PDF object stream primitive.
|
||
func NewXObjectForm ()*XObjectForm {_abfcg :=&XObjectForm {};_acggfa :=&_ebb .PdfObjectStream {};_acggfa .PdfObjectDictionary =_ebb .MakeDict ();_abfcg ._gebcd =_acggfa ;return _abfcg ;};var (CourierName =_bad .CourierName ;CourierBoldName =_bad .CourierBoldName ;
|
||
CourierObliqueName =_bad .CourierObliqueName ;CourierBoldObliqueName =_bad .CourierBoldObliqueName ;HelveticaName =_bad .HelveticaName ;HelveticaBoldName =_bad .HelveticaBoldName ;HelveticaObliqueName =_bad .HelveticaObliqueName ;HelveticaBoldObliqueName =_bad .HelveticaBoldObliqueName ;
|
||
SymbolName =_bad .SymbolName ;ZapfDingbatsName =_bad .ZapfDingbatsName ;TimesRomanName =_bad .TimesRomanName ;TimesBoldName =_bad .TimesBoldName ;TimesItalicName =_bad .TimesItalicName ;TimesBoldItalicName =_bad .TimesBoldItalicName ;);
|
||
|
||
// Set sets the colorspace corresponding to key. Add to Names if not set.
|
||
func (_ggbae *PdfPageResourcesColorspaces )Set (key _ebb .PdfObjectName ,val PdfColorspace ){if _ ,_gefgf :=_ggbae .Colorspaces [string (key )];!_gefgf {_ggbae .Names =append (_ggbae .Names ,string (key ));};_ggbae .Colorspaces [string (key )]=val ;};
|
||
|
||
// GetContext returns the PdfField context which is the more specific field data type, e.g. PdfFieldButton
|
||
// for a button field.
|
||
func (_bbgd *PdfField )GetContext ()PdfModel {return _bbgd ._cada };
|
||
|
||
// NewPdfTransformParamsDocMDP create a PdfTransformParamsDocMDP with the specific permissions.
|
||
func NewPdfTransformParamsDocMDP (permission _ac .DocMDPPermission )*PdfTransformParamsDocMDP {return &PdfTransformParamsDocMDP {Type :_ebb .MakeName ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u0050\u0061\u0072\u0061\u006d\u0073"),P :_ebb .MakeInteger (int64 (permission )),V :_ebb .MakeName ("\u0031\u002e\u0032")};
|
||
};
|
||
|
||
// NewPdfInfoFromObject creates a new PdfInfo from the input core.PdfObject.
|
||
func NewPdfInfoFromObject (obj _ebb .PdfObject )(*PdfInfo ,error ){var _dfbgf PdfInfo ;_dddg ,_abaa :=obj .(*_ebb .PdfObjectDictionary );if !_abaa {return nil ,_bg .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 _ ,_ggea :=range _dddg .Keys (){switch _ggea {case "\u0054\u0069\u0074l\u0065":_dfbgf .Title ,_ =_ebb .GetString (_dddg .Get ("\u0054\u0069\u0074l\u0065"));case "\u0041\u0075\u0074\u0068\u006f\u0072":_dfbgf .Author ,_ =_ebb .GetString (_dddg .Get ("\u0041\u0075\u0074\u0068\u006f\u0072"));
|
||
case "\u0053u\u0062\u006a\u0065\u0063\u0074":_dfbgf .Subject ,_ =_ebb .GetString (_dddg .Get ("\u0053u\u0062\u006a\u0065\u0063\u0074"));case "\u004b\u0065\u0079\u0077\u006f\u0072\u0064\u0073":_dfbgf .Keywords ,_ =_ebb .GetString (_dddg .Get ("\u004b\u0065\u0079\u0077\u006f\u0072\u0064\u0073"));
|
||
case "\u0043r\u0065\u0061\u0074\u006f\u0072":_dfbgf .Creator ,_ =_ebb .GetString (_dddg .Get ("\u0043r\u0065\u0061\u0074\u006f\u0072"));case "\u0050\u0072\u006f\u0064\u0075\u0063\u0065\u0072":_dfbgf .Producer ,_ =_ebb .GetString (_dddg .Get ("\u0050\u0072\u006f\u0064\u0075\u0063\u0065\u0072"));
|
||
case "\u0054r\u0061\u0070\u0070\u0065\u0064":_dfbgf .Trapped ,_ =_ebb .GetName (_dddg .Get ("\u0054r\u0061\u0070\u0070\u0065\u0064"));case "\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065":if _gddf ,_gddba :=_ebb .GetString (_dddg .Get ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065"));
|
||
_gddba &&_gddf .String ()!=""{_agbge ,_dedc :=NewPdfDate (_gddf .String ());if _dedc !=nil {return nil ,_bg .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",_dedc );
|
||
};_dfbgf .CreationDate =&_agbge ;};case "\u004do\u0064\u0044\u0061\u0074\u0065":if _afee ,_fdbf :=_ebb .GetString (_dddg .Get ("\u004do\u0064\u0044\u0061\u0074\u0065"));_fdbf &&_afee .String ()!=""{_gcec ,_cgaed :=NewPdfDate (_afee .String ());if _cgaed !=nil {return nil ,_bg .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u004d\u006f\u0064\u0044a\u0074e\u0020f\u0069\u0065\u006c\u0064\u003a\u0020\u0025w",_cgaed );
|
||
};_dfbgf .ModifiedDate =&_gcec ;};default:_egdb ,_ :=_ebb .GetString (_dddg .Get (_ggea ));if _dfbgf ._gcgf ==nil {_dfbgf ._gcgf =_ebb .MakeDict ();};_dfbgf ._gcgf .Set (_ggea ,_egdb );};};return &_dfbgf ,nil ;};
|
||
|
||
// Evaluate runs the function on the passed in slice and returns the results.
|
||
func (_cegee *PdfFunctionType3 )Evaluate (x []float64 )([]float64 ,error ){if len (x )!=1{_eg .Log .Error ("\u004f\u006e\u006c\u0079 o\u006e\u0065\u0020\u0069\u006e\u0070\u0075\u0074\u0020\u0061\u006c\u006c\u006f\u0077e\u0064");return nil ,_gf .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");
|
||
};return nil ,_gf .New ("\u006e\u006f\u0074\u0020im\u0070\u006c\u0065\u006d\u0065\u006e\u0074\u0065\u0064\u0020\u0079\u0065\u0074");};func (_dcg *PdfReader )newPdfActionSetOCGStateFromDict (_dag *_ebb .PdfObjectDictionary )(*PdfActionSetOCGState ,error ){return &PdfActionSetOCGState {State :_dag .Get ("\u0053\u0074\u0061t\u0065"),PreserveRB :_dag .Get ("\u0050\u0072\u0065\u0073\u0065\u0072\u0076\u0065\u0052\u0042")},nil ;
|
||
};
|
||
|
||
// NewPdfPage returns a new PDF page.
|
||
func NewPdfPage ()*PdfPage {_cbfdf :=PdfPage {};_cbfdf ._cdbfde =_ebb .MakeDict ();_cbfdf .Resources =NewPdfPageResources ();_ccgf :=_ebb .PdfIndirectObject {};_ccgf .PdfObject =_cbfdf ._cdbfde ;_cbfdf ._defbb =&_ccgf ;return &_cbfdf ;};
|
||
|
||
// Y returns the value of the yellow component of the color.
|
||
func (_caeea *PdfColorDeviceCMYK )Y ()float64 {return _caeea [2]};
|
||
|
||
// GetContainingPdfObject gets the primitive used to parse the color space.
|
||
func (_bccd *PdfColorspaceICCBased )GetContainingPdfObject ()_ebb .PdfObject {return _bccd ._dfff };
|
||
|
||
// DecodeArray returns the component range values for the Indexed colorspace.
|
||
func (_gaegg *PdfColorspaceSpecialIndexed )DecodeArray ()[]float64 {return []float64 {0,float64 (_gaegg .HiVal )};};func _gccbf (_cbcdc *_ebb .PdfObjectDictionary )(*PdfFieldButton ,error ){_effg :=&PdfFieldButton {};_effg .PdfField =NewPdfField ();_effg .PdfField .SetContext (_effg );
|
||
_effg .Opt ,_ =_ebb .GetArray (_cbcdc .Get ("\u004f\u0070\u0074"));_gbefa :=NewPdfAnnotationWidget ();_gbefa .A ,_ =_ebb .GetDict (_cbcdc .Get ("\u0041"));_gbefa .AP ,_ =_ebb .GetDict (_cbcdc .Get ("\u0041\u0050"));_gbefa .SetContext (_effg );_effg .PdfField .Annotations =append (_effg .PdfField .Annotations ,_gbefa );
|
||
return _effg ,nil ;};
|
||
|
||
// GetCatalogStructTreeRoot gets the catalog StructTreeRoot object.
|
||
func (_dgcdg *PdfReader )GetCatalogStructTreeRoot ()(_ebb .PdfObject ,bool ){if _dgcdg ._fdgda ==nil {return nil ,false ;};_cggcf :=_dgcdg ._fdgda .Get ("\u0053\u0074\u0072\u0075\u0063\u0074\u0054\u0072\u0065e\u0052\u006f\u006f\u0074");return _cggcf ,_cggcf !=nil ;
|
||
};
|
||
|
||
// AddCustomInfo adds a custom info into document info dictionary.
|
||
func (_gead *PdfInfo )AddCustomInfo (name string ,value string )error {if _gead ._gcgf ==nil {_gead ._gcgf =_ebb .MakeDict ();};if _ ,_afcg :=_eefgb [name ];_afcg {return _bg .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 );
|
||
};_gead ._gcgf .SetIfNotNil (*_ebb .MakeName (name ),_ebb .MakeString (value ));return nil ;};
|
||
|
||
// DecodeArray returns the range of color component values in DeviceGray colorspace.
|
||
func (_aggf *PdfColorspaceDeviceGray )DecodeArray ()[]float64 {return []float64 {0,1.0}};
|
||
|
||
// 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 *_ebb .PdfIndirectObject `json:"-"`;Page int64 `json:"page"`;Mode string `json:"mode"`;X float64 `json:"x"`;Y float64 `json:"y"`;Zoom float64 `json:"zoom"`;};
|
||
|
||
// 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 (_ebddf *PdfFont )CharcodeBytesToUnicode (data []byte )(string ,int ,int ){_gfeg ,_ ,_ggae :=_ebddf .CharcodesToUnicodeWithStats (_ebddf .BytesToCharcodes (data ));_agff :=_da .ExpandLigatures (_gfeg );return _agff ,_de .RuneCountInString (_agff ),_ggae ;
|
||
};func (_fed *PdfReader )newPdfAnnotationSquareFromDict (_bbab *_ebb .PdfObjectDictionary )(*PdfAnnotationSquare ,error ){_gbad :=PdfAnnotationSquare {};_gfbc ,_egf :=_fed .newPdfAnnotationMarkupFromDict (_bbab );if _egf !=nil {return nil ,_egf ;};_gbad .PdfAnnotationMarkup =_gfbc ;
|
||
_gbad .BS =_bbab .Get ("\u0042\u0053");_gbad .IC =_bbab .Get ("\u0049\u0043");_gbad .BE =_bbab .Get ("\u0042\u0045");_gbad .RD =_bbab .Get ("\u0052\u0044");return &_gbad ,nil ;};
|
||
|
||
// PdfTransformParamsDocMDP represents a transform parameters dictionary for the DocMDP method and is used to detect
|
||
// modifications relative to a signature field that is signed by the author of a document.
|
||
// (Section 12.8.2.2, Table 254 - Entries in the DocMDP transform parameters dictionary p. 471 in PDF32000_2008).
|
||
type PdfTransformParamsDocMDP struct{Type *_ebb .PdfObjectName ;P *_ebb .PdfObjectInteger ;V *_ebb .PdfObjectName ;};func (_bdabeb *PdfWriter )writeDocumentVersion (){if _bdabeb ._abffb {_bdabeb .writeString ("\u000a");}else {_bdabeb .writeString (_bg .Sprintf ("\u0025\u0025\u0050D\u0046\u002d\u0025\u0064\u002e\u0025\u0064\u000a",_bdabeb ._efcge .Major ,_bdabeb ._efcge .Minor ));
|
||
_bdabeb .writeString ("\u0025\u00e2\u00e3\u00cf\u00d3\u000a");};};
|
||
|
||
// ToPdfObject returns the text field dictionary within an indirect object (container).
|
||
func (_cgab *PdfFieldText )ToPdfObject ()_ebb .PdfObject {_cgab .PdfField .ToPdfObject ();_ffcc :=_cgab ._cdfd ;_fdcf :=_ffcc .PdfObject .(*_ebb .PdfObjectDictionary );_fdcf .Set ("\u0046\u0054",_ebb .MakeName ("\u0054\u0078"));if _cgab .DA !=nil {_fdcf .Set ("\u0044\u0041",_cgab .DA );
|
||
};if _cgab .Q !=nil {_fdcf .Set ("\u0051",_cgab .Q );};if _cgab .DS !=nil {_fdcf .Set ("\u0044\u0053",_cgab .DS );};if _cgab .RV !=nil {_fdcf .Set ("\u0052\u0056",_cgab .RV );};if _cgab .MaxLen !=nil {_fdcf .Set ("\u004d\u0061\u0078\u004c\u0065\u006e",_cgab .MaxLen );
|
||
};return _ffcc ;};
|
||
|
||
// SetPatternByName sets a pattern resource specified by keyName.
|
||
func (_geae *PdfPageResources )SetPatternByName (keyName _ebb .PdfObjectName ,pattern _ebb .PdfObject )error {if _geae .Pattern ==nil {_geae .Pattern =_ebb .MakeDict ();};_geedg ,_cfgcd :=_geae .Pattern .(*_ebb .PdfObjectDictionary );if !_cfgcd {return _ebb .ErrTypeError ;
|
||
};_geedg .Set (keyName ,pattern );return nil ;};
|
||
|
||
// PdfAction represents an action in PDF (section 12.6 p. 412).
|
||
type PdfAction struct{_ad PdfModel ;Type _ebb .PdfObject ;S _ebb .PdfObject ;Next _ebb .PdfObject ;_abe *_ebb .PdfIndirectObject ;};
|
||
|
||
// ToPdfObject converts the pdfCIDFontType2 to a PDF representation.
|
||
func (_cfcga *pdfCIDFontType2 )ToPdfObject ()_ebb .PdfObject {if _cfcga ._ddea ==nil {_cfcga ._ddea =&_ebb .PdfIndirectObject {};};_dggc :=_cfcga .baseFields ().asPdfObjectDictionary ("\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032");
|
||
_cfcga ._ddea .PdfObject =_dggc ;if _cfcga .CIDSystemInfo !=nil {_dggc .Set ("\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f",_cfcga .CIDSystemInfo );};if _cfcga .DW !=nil {_dggc .Set ("\u0044\u0057",_cfcga .DW );};if _cfcga .DW2 !=nil {_dggc .Set ("\u0044\u0057\u0032",_cfcga .DW2 );
|
||
};if _cfcga .W !=nil {_dggc .Set ("\u0057",_cfcga .W );};if _cfcga .W2 !=nil {_dggc .Set ("\u0057\u0032",_cfcga .W2 );};if _cfcga .CIDToGIDMap !=nil {_dggc .Set ("C\u0049\u0044\u0054\u006f\u0047\u0049\u0044\u004d\u0061\u0070",_cfcga .CIDToGIDMap );};return _cfcga ._ddea ;
|
||
};
|
||
|
||
// GetContainingPdfObject returns the container of the resources object (indirect object).
|
||
func (_agfg *PdfPageResources )GetContainingPdfObject ()_ebb .PdfObject {return _agfg ._efbed };func _ggbgd (_faac _ebb .PdfObject )(*PdfFunctionType3 ,error ){_aegfb :=&PdfFunctionType3 {};var _cffec *_ebb .PdfObjectDictionary ;if _fcffd ,_fcea :=_faac .(*_ebb .PdfIndirectObject );
|
||
_fcea {_ebfecc ,_egac :=_fcffd .PdfObject .(*_ebb .PdfObjectDictionary );if !_egac {return nil ,_gf .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_aegfb ._acac =_fcffd ;_cffec =_ebfecc ;}else if _gcaf ,_fcaa :=_faac .(*_ebb .PdfObjectDictionary );
|
||
_fcaa {_cffec =_gcaf ;}else {return nil ,_gf .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_gfdba ,_gagb :=_ebb .TraceToDirectObject (_cffec .Get ("\u0044\u006f\u006d\u0061\u0069\u006e")).(*_ebb .PdfObjectArray );
|
||
if !_gagb {_eg .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_gf .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 _gfdba .Len ()!=2{_eg .Log .Error ("\u0044\u006f\u006d\u0061\u0069\u006e\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");return nil ,_gf .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0064\u006f\u006da\u0069\u006e\u0020\u0072an\u0067\u0065");};_gdaeg ,_dfdb :=_gfdba .ToFloat64Array ();
|
||
if _dfdb !=nil {return nil ,_dfdb ;};_aegfb .Domain =_gdaeg ;_gfdba ,_gagb =_ebb .TraceToDirectObject (_cffec .Get ("\u0052\u0061\u006eg\u0065")).(*_ebb .PdfObjectArray );if _gagb {if _gfdba .Len ()< 0||_gfdba .Len ()%2!=0{return nil ,_gf .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0061\u006e\u0067\u0065");
|
||
};_dfbee ,_afcfc :=_gfdba .ToFloat64Array ();if _afcfc !=nil {return nil ,_afcfc ;};_aegfb .Range =_dfbee ;};_gfdba ,_gagb =_ebb .TraceToDirectObject (_cffec .Get ("\u0046u\u006e\u0063\u0074\u0069\u006f\u006es")).(*_ebb .PdfObjectArray );if !_gagb {_eg .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 ,_gf .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");};_aegfb .Functions =[]PdfFunction {};
|
||
for _ ,_fffc :=range _gfdba .Elements (){_gbdf ,_edcef :=_aagg (_fffc );if _edcef !=nil {return nil ,_edcef ;};_aegfb .Functions =append (_aegfb .Functions ,_gbdf );};_gfdba ,_gagb =_ebb .TraceToDirectObject (_cffec .Get ("\u0042\u006f\u0075\u006e\u0064\u0073")).(*_ebb .PdfObjectArray );
|
||
if !_gagb {_eg .Log .Error ("B\u006fu\u006e\u0064\u0073\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_gf .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");
|
||
};_ebfbg ,_dfdb :=_gfdba .ToFloat64Array ();if _dfdb !=nil {return nil ,_dfdb ;};_aegfb .Bounds =_ebfbg ;if len (_aegfb .Bounds )!=len (_aegfb .Functions )-1{_eg .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 (_aegfb .Bounds ),len (_aegfb .Functions ));
|
||
return nil ,_gf .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_gfdba ,_gagb =_ebb .TraceToDirectObject (_cffec .Get ("\u0045\u006e\u0063\u006f\u0064\u0065")).(*_ebb .PdfObjectArray );if !_gagb {_eg .Log .Error ("E\u006ec\u006f\u0064\u0065\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");
|
||
return nil ,_gf .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");};_dffgg ,_dfdb :=_gfdba .ToFloat64Array ();
|
||
if _dfdb !=nil {return nil ,_dfdb ;};_aegfb .Encode =_dffgg ;if len (_aegfb .Encode )!=2*len (_aegfb .Functions ){_eg .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 (_aegfb .Encode ),len (_aegfb .Functions ));
|
||
return nil ,_gf .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};return _aegfb ,nil ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_eab *PdfAnnotationSound )ToPdfObject ()_ebb .PdfObject {_eab .PdfAnnotation .ToPdfObject ();_eddf :=_eab ._bdcd ;_bfe :=_eddf .PdfObject .(*_ebb .PdfObjectDictionary );_eab .PdfAnnotationMarkup .appendToPdfDictionary (_bfe );_bfe .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ebb .MakeName ("\u0053\u006f\u0075n\u0064"));
|
||
_bfe .SetIfNotNil ("\u0053\u006f\u0075n\u0064",_eab .Sound );_bfe .SetIfNotNil ("\u004e\u0061\u006d\u0065",_eab .Name );return _eddf ;};
|
||
|
||
// 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 {_dgggc ,_gagd :=NewStandard14Font (basefont );if _gagd !=nil {panic (_bg .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 _dgggc ;};
|
||
|
||
// PdfOutlineTreeNode contains common fields used by the outline and outline
|
||
// item objects.
|
||
type PdfOutlineTreeNode struct{_geeee interface{};First *PdfOutlineTreeNode ;Last *PdfOutlineTreeNode ;};func _fbgbf (_dcabfc _ebb .PdfObject ){_eg .Log .Debug ("\u006f\u0062\u006a\u003a\u0020\u0025\u0054\u0020\u0025\u0073",_dcabfc ,_dcabfc .String ());
|
||
if _dgccf ,_dffce :=_dcabfc .(*_ebb .PdfObjectStream );_dffce {_adafc ,_addfe :=_ebb .DecodeStream (_dgccf );if _addfe !=nil {_eg .Log .Debug ("\u0045r\u0072\u006f\u0072\u003a\u0020\u0025v",_addfe );return ;};_eg .Log .Debug ("D\u0065\u0063\u006f\u0064\u0065\u0064\u003a\u0020\u0025\u0073",_adafc );
|
||
}else if _gcbf ,_eegee :=_dcabfc .(*_ebb .PdfIndirectObject );_eegee {_eg .Log .Debug ("\u0025\u0054\u0020%\u0076",_gcbf .PdfObject ,_gcbf .PdfObject );_eg .Log .Debug ("\u0025\u0073",_gcbf .PdfObject .String ());};};
|
||
|
||
// GetNameDictionary returns the Names entry in the PDF catalog.
|
||
// See section 7.7.4 "Name Dictionary" (p. 80 PDF32000_2008).
|
||
func (_afegb *PdfReader )GetNameDictionary ()(_ebb .PdfObject ,error ){_ebefa :=_ebb .ResolveReference (_afegb ._fdgda .Get ("\u004e\u0061\u006de\u0073"));if _ebefa ==nil {return nil ,nil ;};if !_afegb ._ceefa {_accdd :=_afegb .traverseObjectData (_ebefa );
|
||
if _accdd !=nil {return nil ,_accdd ;};};return _ebefa ,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 (_abbc *PdfFont )StringToCharcodeBytes (str string )([]byte ,int ){return _abbc .RunesToCharcodeBytes ([]rune (str ));};
|
||
|
||
// 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"`;};
|
||
|
||
// 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 (_fdgd _ab .Reader )(*Image ,error );
|
||
|
||
// NewImageFromGoImage loads a NRGBA32 unidoc Image from a standard Go image structure.
|
||
NewImageFromGoImage (_cccf _gdc .Image )(*Image ,error );
|
||
|
||
// NewGrayImageFromGoImage loads a grayscale unidoc Image from a standard Go image structure.
|
||
NewGrayImageFromGoImage (_dedde _gdc .Image )(*Image ,error );
|
||
|
||
// Compress an image.
|
||
Compress (_dbcb *Image ,_cdfae int64 )(*Image ,error );};
|
||
|
||
// ToPdfObject returns a PDF object representation of the outline item.
|
||
func (_cgagd *OutlineItem )ToPdfObject ()_ebb .PdfObject {_edaaf ,_ :=_cgagd .ToPdfOutlineItem ();return _edaaf .ToPdfObject ();};
|
||
|
||
// ToPdfObject converts the font to a PDF representation.
|
||
func (_abbgd *pdfFontType3 )ToPdfObject ()_ebb .PdfObject {if _abbgd ._adec ==nil {_abbgd ._adec =&_ebb .PdfIndirectObject {};};_beebd :=_abbgd .baseFields ().asPdfObjectDictionary ("\u0054\u0079\u0070e\u0033");_abbgd ._adec .PdfObject =_beebd ;if _abbgd .FirstChar !=nil {_beebd .Set ("\u0046i\u0072\u0073\u0074\u0043\u0068\u0061r",_abbgd .FirstChar );
|
||
};if _abbgd .LastChar !=nil {_beebd .Set ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072",_abbgd .LastChar );};if _abbgd .Widths !=nil {_beebd .Set ("\u0057\u0069\u0064\u0074\u0068\u0073",_abbgd .Widths );};if _abbgd .Encoding !=nil {_beebd .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_abbgd .Encoding );
|
||
}else if _abbgd ._abcba !=nil {_efag :=_abbgd ._abcba .ToPdfObject ();if _efag !=nil {_beebd .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_efag );};};if _abbgd .FontBBox !=nil {_beebd .Set ("\u0046\u006f\u006e\u0074\u0042\u0042\u006f\u0078",_abbgd .FontBBox );
|
||
};if _abbgd .FontMatrix !=nil {_beebd .Set ("\u0046\u006f\u006e\u0074\u004d\u0061\u0074\u0069\u0072\u0078",_abbgd .FontMatrix );};if _abbgd .CharProcs !=nil {_beebd .Set ("\u0043h\u0061\u0072\u0050\u0072\u006f\u0063s",_abbgd .CharProcs );};if _abbgd .Resources !=nil {_beebd .Set ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s",_abbgd .Resources );
|
||
};return _abbgd ._adec ;};func (_afcf *PdfReader )flattenFieldsWithOpts (_gada bool ,_gfbb FieldAppearanceGenerator ,_dbfe *FieldFlattenOpts )error {if _dbfe ==nil {_dbfe =&FieldFlattenOpts {};};var _badf bool ;_affeb :=map[*PdfAnnotation ]bool {};{var _febed []*PdfField ;
|
||
_cagb :=_afcf .AcroForm ;if _cagb !=nil {if _dbfe .FilterFunc !=nil {_febed =_cagb .filteredFields (_dbfe .FilterFunc ,true );_badf =_cagb .Fields !=nil &&len (*_cagb .Fields )> 0;}else {_febed =_cagb .AllFields ();};};for _ ,_eggbe :=range _febed {for _ ,_ceabg :=range _eggbe .Annotations {_affeb [_ceabg .PdfAnnotation ]=_eggbe .V !=nil ;
|
||
if _gfbb !=nil {_gfbcg ,_aedab :=_gfbb .GenerateAppearanceDict (_cagb ,_eggbe ,_ceabg );if _aedab !=nil {return _aedab ;};_ceabg .AP =_gfbcg ;};};};};if _gada {for _ ,_fcbb :=range _afcf .PageList {_gdagg ,_ebec :=_fcbb .GetAnnotations ();if _ebec !=nil {return _ebec ;
|
||
};for _ ,_dcfc :=range _gdagg {_affeb [_dcfc ]=true ;};};};for _ ,_egag :=range _afcf .PageList {var _dcfbb []*PdfAnnotation ;if _gfbb !=nil {if _fage :=_gfbb .WrapContentStream (_egag );_fage !=nil {return _fage ;};};_ecfd ,_adfedf :=_egag .GetAnnotations ();
|
||
if _adfedf !=nil {return _adfedf ;};for _ ,_cbgf :=range _ecfd {_ceb ,_dfbd :=_affeb [_cbgf ];if !_dfbd &&_dbfe .AnnotFilterFunc !=nil {if _ ,_fadg :=_cbgf .GetContext ().(*PdfAnnotationWidget );!_fadg {_dfbd =_dbfe .AnnotFilterFunc (_cbgf );};};if !_dfbd {_dcfbb =append (_dcfbb ,_cbgf );
|
||
continue ;};switch _cbgf .GetContext ().(type ){case *PdfAnnotationPopup :continue ;case *PdfAnnotationLink :continue ;case *PdfAnnotationProjection :continue ;};_deebg ,_gdbg ,_eccaa :=_bdgcb (_cbgf );if _eccaa !=nil {if !_ceb {_eg .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 ;};_eg .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",_eccaa );
|
||
continue ;};if _deebg ==nil {continue ;};_dfce :=_egag .Resources .GenerateXObjectName ();_egag .Resources .SetXObjectFormByName (_dfce ,_deebg );_gfgc :=_cbg .Min (_gdbg .Llx ,_gdbg .Urx );_ecfbb :=_cbg .Min (_gdbg .Lly ,_gdbg .Ury );var _bdgab []string ;
|
||
_bdgab =append (_bdgab ,"\u0071");_bdgab =append (_bdgab ,_bg .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,_gfgc ,_ecfbb ));
|
||
_bdgab =append (_bdgab ,_bg .Sprintf ("\u002f\u0025\u0073\u0020\u0044\u006f",_dfce .String ()));_bdgab =append (_bdgab ,"\u0051");_fdefd :=_ee .Join (_bdgab ,"\u000a");_eccaa =_egag .AppendContentStream (_fdefd );if _eccaa !=nil {return _eccaa ;};if _deebg .Resources !=nil {_ffecg ,_addc :=_ebb .GetDict (_deebg .Resources .Font );
|
||
if _addc {for _ ,_daegg :=range _ffecg .Keys (){if !_egag .Resources .HasFontByName (_daegg ){_egag .Resources .SetFontByName (_daegg ,_ffecg .Get (_daegg ));};};};};};if len (_dcfbb )> 0{_egag ._bbfed =_dcfbb ;}else {_egag ._bbfed =[]*PdfAnnotation {};
|
||
};};if !_badf {_afcf .AcroForm =nil ;};return nil ;};
|
||
|
||
// ColorFromPdfObjects returns a new PdfColor based on the input slice of color
|
||
// components. The slice should contain a single PdfObjectFloat element.
|
||
func (_fadb *PdfColorspaceSpecialSeparation )ColorFromPdfObjects (objects []_ebb .PdfObject )(PdfColor ,error ){if len (objects )!=1{return nil ,_gf .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_ecbb ,_fdcb :=_ebb .GetNumbersAsFloat (objects );
|
||
if _fdcb !=nil {return nil ,_fdcb ;};return _fadb .ColorFromFloats (_ecbb );};
|
||
|
||
// ToInteger convert to an integer format.
|
||
func (_aefb *PdfColorDeviceRGB )ToInteger (bits int )[3]uint32 {_efccd :=_cbg .Pow (2,float64 (bits ))-1;return [3]uint32 {uint32 (_efccd *_aefb .R ()),uint32 (_efccd *_aefb .G ()),uint32 (_efccd *_aefb .B ())};};
|
||
|
||
// NewPdfFieldSignature returns an initialized signature field.
|
||
func NewPdfFieldSignature (signature *PdfSignature )*PdfFieldSignature {_cgcf :=&PdfFieldSignature {};_cgcf .PdfField =NewPdfField ();_cgcf .PdfField .SetContext (_cgcf );_cgcf .PdfAnnotationWidget =NewPdfAnnotationWidget ();_cgcf .PdfAnnotationWidget .SetContext (_cgcf );
|
||
_cgcf .PdfAnnotationWidget ._bdcd =_cgcf .PdfField ._cdfd ;_cgcf .T =_ebb .MakeString ("");_cgcf .F =_ebb .MakeInteger (132);_cgcf .V =signature ;return _cgcf ;};func (_gdg *PdfReader )newPdfActionSoundFromDict (_fbg *_ebb .PdfObjectDictionary )(*PdfActionSound ,error ){return &PdfActionSound {Sound :_fbg .Get ("\u0053\u006f\u0075n\u0064"),Volume :_fbg .Get ("\u0056\u006f\u006c\u0075\u006d\u0065"),Synchronous :_fbg .Get ("S\u0079\u006e\u0063\u0068\u0072\u006f\u006e\u006f\u0075\u0073"),Repeat :_fbg .Get ("\u0052\u0065\u0070\u0065\u0061\u0074"),Mix :_fbg .Get ("\u004d\u0069\u0078")},nil ;
|
||
};
|
||
|
||
// GetContainingPdfObject returns the container of the shading object (indirect object).
|
||
func (_ebead *PdfShading )GetContainingPdfObject ()_ebb .PdfObject {return _ebead ._fbfae };
|
||
|
||
// Mask returns the uin32 bitmask for the specific flag.
|
||
func (_dfagf FieldFlag )Mask ()uint32 {return uint32 (_dfagf )};
|
||
|
||
// NewPdfSignatureReferenceDocMDP returns PdfSignatureReference for the transformParams.
|
||
func NewPdfSignatureReferenceDocMDP (transformParams *PdfTransformParamsDocMDP )*PdfSignatureReference {return &PdfSignatureReference {Type :_ebb .MakeName ("\u0053\u0069\u0067\u0052\u0065\u0066"),TransformMethod :_ebb .MakeName ("\u0044\u006f\u0063\u004d\u0044\u0050"),TransformParams :transformParams .ToPdfObject ()};
|
||
};
|
||
|
||
// GetXObjectImageByName returns the XObjectImage with the specified name from the
|
||
// page resources, if it exists.
|
||
func (_bdbe *PdfPageResources )GetXObjectImageByName (keyName _ebb .PdfObjectName )(*XObjectImage ,error ){_bcfca ,_dbdd :=_bdbe .GetXObjectByName (keyName );if _bcfca ==nil {return nil ,nil ;};if _dbdd !=XObjectTypeImage {return nil ,_gf .New ("\u006e\u006f\u0074 \u0061\u006e\u0020\u0069\u006d\u0061\u0067\u0065");
|
||
};_baea ,_bbece :=NewXObjectImageFromStream (_bcfca );if _bbece !=nil {return nil ,_bbece ;};return _baea ,nil ;};
|
||
|
||
// GetContainingPdfObject implements model.PdfModel interface.
|
||
func (_bbebf *PdfOutputIntent )GetContainingPdfObject ()_ebb .PdfObject {return _bbebf ._faeb };
|
||
|
||
// 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 ;_ffagg PdfModel ;_dcddc _ebb .PdfObject ;};
|
||
|
||
// HasFontByName checks whether a font is defined by the specified keyName.
|
||
func (_egccf *PdfPageResources )HasFontByName (keyName _ebb .PdfObjectName )bool {_ ,_cfeee :=_egccf .GetFontByName (keyName );return _cfeee ;};
|
||
|
||
// 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 (_agdg *PdfFieldButton )GetType ()ButtonType {_ebea :=ButtonTypeCheckbox ;if _agdg .Ff !=nil {if (uint32 (*_agdg .Ff )&FieldFlagPushbutton .Mask ())> 0{_ebea =ButtonTypePush ;}else if (uint32 (*_agdg .Ff )&FieldFlagRadio .Mask ())> 0{_ebea =ButtonTypeRadio ;
|
||
};};return _ebea ;};func _aggb (_gbga *_ebb .PdfObjectDictionary ,_eaec *fontCommon )(*pdfFontType0 ,error ){_bebfdb ,_gbddg :=_ebb .GetArray (_gbga .Get ("\u0044e\u0073c\u0065\u006e\u0064\u0061\u006e\u0074\u0046\u006f\u006e\u0074\u0073"));if !_gbddg {_eg .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",_eaec );
|
||
return nil ,_ebb .ErrRangeError ;};if _bebfdb .Len ()!=1{_eg .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",_bebfdb .Len ());
|
||
return nil ,_ebb .ErrRangeError ;};_baeg ,_bbgaa :=_ddacd (_bebfdb .Get (0),false );if _bbgaa !=nil {_eg .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",_bbgaa ,_eaec );
|
||
return nil ,_bbgaa ;};_cbbc :=_gegg (_eaec );_cbbc .DescendantFont =_baeg ;_ebbee ,_gbddg :=_ebb .GetNameVal (_gbga .Get ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067"));if _gbddg {if _ebbee =="\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079\u002d\u0048"||_ebbee =="\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079\u002d\u0056"{_cbbc ._bfdgc =_da .NewIdentityTextEncoder (_ebbee );
|
||
}else if _ebe .IsPredefinedCMap (_ebbee ){_cbbc ._efeb ,_bbgaa =_ebe .LoadPredefinedCMap (_ebbee );if _bbgaa !=nil {_eg .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",_ebbee ,_bbgaa );
|
||
};}else {_eg .Log .Debug ("\u0055\u006e\u0068\u0061\u006e\u0064\u006c\u0065\u0064\u0020\u0063\u006da\u0070\u0020\u0025\u0071",_ebbee );};};if _gaef :=_baeg .baseFields ()._dcdd ;_gaef !=nil {if _bcbaa :=_gaef .Name ();_bcbaa =="\u0041d\u006fb\u0065\u002d\u0043\u004e\u0053\u0031\u002d\u0055\u0043\u0053\u0032"||_bcbaa =="\u0041\u0064\u006f\u0062\u0065\u002d\u0047\u0042\u0031-\u0055\u0043\u0053\u0032"||_bcbaa =="\u0041\u0064\u006f\u0062\u0065\u002d\u004a\u0061\u0070\u0061\u006e\u0031-\u0055\u0043\u0053\u0032"||_bcbaa =="\u0041\u0064\u006f\u0062\u0065\u002d\u004b\u006f\u0072\u0065\u0061\u0031-\u0055\u0043\u0053\u0032"{_cbbc ._bfdgc =_da .NewCMapEncoder (_ebbee ,_cbbc ._efeb ,_gaef );
|
||
};};return _cbbc ,nil ;};
|
||
|
||
// Read reads an image and loads into a new Image object with an RGB
|
||
// colormap and 8 bits per component.
|
||
func (_affac DefaultImageHandler )Read (reader _ab .Reader )(*Image ,error ){_daef ,_ ,_bdfg :=_gdc .Decode (reader );if _bdfg !=nil {_eg .Log .Debug ("\u0045\u0072\u0072or\u0020\u0064\u0065\u0063\u006f\u0064\u0069\u006e\u0067\u0020\u0066\u0069\u006c\u0065\u003a\u0020\u0025\u0073",_bdfg );
|
||
return nil ,_bdfg ;};return _affac .NewImageFromGoImage (_daef );};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_abfa *PdfAnnotationWatermark )ToPdfObject ()_ebb .PdfObject {_abfa .PdfAnnotation .ToPdfObject ();_ebdc :=_abfa ._bdcd ;_gaec :=_ebdc .PdfObject .(*_ebb .PdfObjectDictionary );_gaec .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ebb .MakeName ("\u0057a\u0074\u0065\u0072\u006d\u0061\u0072k"));
|
||
_gaec .SetIfNotNil ("\u0046\u0069\u0078\u0065\u0064\u0050\u0072\u0069\u006e\u0074",_abfa .FixedPrint );return _ebdc ;};func (_degdc fontCommon )isCIDFont ()bool {if _degdc ._dfbf ==""{_eg .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",_degdc );
|
||
};_gbbd :=false ;switch _degdc ._dfbf {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":_gbbd =true ;};_eg .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",_gbbd ,_degdc );
|
||
return _gbbd ;};
|
||
|
||
// 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 ;
|
||
|
||
// ToInteger convert to an integer format.
|
||
func (_ggbb *PdfColorCalGray )ToInteger (bits int )uint32 {_cddg :=_cbg .Pow (2,float64 (bits ))-1;return uint32 (_cddg *_ggbb .Val ());};
|
||
|
||
// SetXObjectByName adds the XObject from the passed in stream to the page resources.
|
||
// The added XObject is identified by the specified name.
|
||
func (_bafg *PdfPageResources )SetXObjectByName (keyName _ebb .PdfObjectName ,stream *_ebb .PdfObjectStream )error {if _bafg .XObject ==nil {_bafg .XObject =_ebb .MakeDict ();};_eedge :=_ebb .TraceToDirectObject (_bafg .XObject );_abgge ,_bfaefg :=_eedge .(*_ebb .PdfObjectDictionary );
|
||
if !_bfaefg {_eg .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",_bafg .XObject ,_eedge );return _gf .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");
|
||
};_abgge .Set (keyName ,stream );return nil ;};func (_dege *PdfAppender )replaceObject (_efcg ,_fdad _ebb .PdfObject ){switch _fgeee :=_efcg .(type ){case *_ebb .PdfIndirectObject :_dege ._gbfa [_fdad ]=_fgeee .ObjectNumber ;case *_ebb .PdfObjectStream :_dege ._gbfa [_fdad ]=_fgeee .ObjectNumber ;
|
||
};};
|
||
|
||
// NewPdfAnnotationRichMedia returns a new rich media annotation.
|
||
func NewPdfAnnotationRichMedia ()*PdfAnnotationRichMedia {_dab :=NewPdfAnnotation ();_afc :=&PdfAnnotationRichMedia {};_afc .PdfAnnotation =_dab ;_dab .SetContext (_afc );return _afc ;};func (_fgg *PdfReader )newPdfActionGotoRFromDict (_eae *_ebb .PdfObjectDictionary )(*PdfActionGoToR ,error ){_cfbf ,_gdab :=_gggf (_eae .Get ("\u0046"));
|
||
if _gdab !=nil {return nil ,_gdab ;};return &PdfActionGoToR {D :_eae .Get ("\u0044"),NewWindow :_eae .Get ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw"),F :_cfbf },nil ;};func (_fgggde *PdfWriter )writeBytes (_abdbb []byte ){if _fgggde ._bgef !=nil {return ;
|
||
};_acdbg ,_fegg :=_fgggde ._cbabb .Write (_abdbb );_fgggde ._afedd +=int64 (_acdbg );_fgggde ._bgef =_fegg ;};func (_cgcg *PdfAppender )mergeResources (_cegb ,_cage _ebb .PdfObject ,_gge map[_ebb .PdfObjectName ]_ebb .PdfObjectName )_ebb .PdfObject {if _cage ==nil &&_cegb ==nil {return nil ;
|
||
};if _cage ==nil {return _cegb ;};_geff ,_acdd :=_ebb .GetDict (_cage );if !_acdd {return _cegb ;};if _cegb ==nil {_dgde :=_ebb .MakeDict ();_dgde .Merge (_geff );return _cage ;};_dgdb ,_acdd :=_ebb .GetDict (_cegb );if !_acdd {_eg .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");
|
||
_dgdb =_ebb .MakeDict ();};for _ ,_fbeb :=range _geff .Keys (){if _deb ,_dgcb :=_gge [_fbeb ];_dgcb {_dgdb .Set (_deb ,_geff .Get (_fbeb ));}else {_dgdb .Set (_fbeb ,_geff .Get (_fbeb ));};};return _dgdb ;};
|
||
|
||
// NewPdfPageResourcesColorspaces returns a new PdfPageResourcesColorspaces object.
|
||
func NewPdfPageResourcesColorspaces ()*PdfPageResourcesColorspaces {_acbc :=&PdfPageResourcesColorspaces {};_acbc .Names =[]string {};_acbc .Colorspaces =map[string ]PdfColorspace {};_acbc ._ddffd =&_ebb .PdfIndirectObject {};return _acbc ;};
|
||
|
||
// GetCerts returns the signature certificate chain.
|
||
func (_fadac *PdfSignature )GetCerts ()([]*_g .Certificate ,error ){var _dabcd []func ()([]*_g .Certificate ,error );switch _cbfc ,_ :=_ebb .GetNameVal (_fadac .SubFilter );_cbfc {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":_dabcd =append (_dabcd ,_fadac .extractChainFromPKCS7 ,_fadac .extractChainFromCert );
|
||
case "\u0061d\u0062e\u002e\u0078\u0035\u0030\u0039.\u0072\u0073a\u005f\u0073\u0068\u0061\u0031":_dabcd =append (_dabcd ,_fadac .extractChainFromCert );case "\u0045\u0054\u0053I\u002e\u0052\u0046\u0043\u0033\u0031\u0036\u0031":_dabcd =append (_dabcd ,_fadac .extractChainFromPKCS7 );
|
||
default:return nil ,_bg .Errorf ("\u0075n\u0073\u0075\u0070\u0070o\u0072\u0074\u0065\u0064\u0020S\u0075b\u0046i\u006c\u0074\u0065\u0072\u003a\u0020\u0025s",_cbfc );};for _ ,_eadcd :=range _dabcd {_dbaad ,_aadf :=_eadcd ();if _aadf !=nil {return nil ,_aadf ;
|
||
};if len (_dbaad )> 0{return _dbaad ,nil ;};};return nil ,ErrSignNoCertificates ;};func (_bedg *PdfReader )newPdfAnnotationInkFromDict (_abac *_ebb .PdfObjectDictionary )(*PdfAnnotationInk ,error ){_eece :=PdfAnnotationInk {};_aedc ,_aad :=_bedg .newPdfAnnotationMarkupFromDict (_abac );
|
||
if _aad !=nil {return nil ,_aad ;};_eece .PdfAnnotationMarkup =_aedc ;_eece .InkList =_abac .Get ("\u0049n\u006b\u004c\u0069\u0073\u0074");_eece .BS =_abac .Get ("\u0042\u0053");return &_eece ,nil ;};
|
||
|
||
// SetPdfModifiedDate sets the ModDate attribute of the output PDF.
|
||
func SetPdfModifiedDate (modifiedDate _f .Time ){_daddc .Lock ();defer _daddc .Unlock ();_ccdff =modifiedDate ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_fgee *PdfAnnotationLine )ToPdfObject ()_ebb .PdfObject {_fgee .PdfAnnotation .ToPdfObject ();_cabf :=_fgee ._bdcd ;_cea :=_cabf .PdfObject .(*_ebb .PdfObjectDictionary );_fgee .PdfAnnotationMarkup .appendToPdfDictionary (_cea );_cea .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ebb .MakeName ("\u004c\u0069\u006e\u0065"));
|
||
_cea .SetIfNotNil ("\u004c",_fgee .L );_cea .SetIfNotNil ("\u0042\u0053",_fgee .BS );_cea .SetIfNotNil ("\u004c\u0045",_fgee .LE );_cea .SetIfNotNil ("\u0049\u0043",_fgee .IC );_cea .SetIfNotNil ("\u004c\u004c",_fgee .LL );_cea .SetIfNotNil ("\u004c\u004c\u0045",_fgee .LLE );
|
||
_cea .SetIfNotNil ("\u0043\u0061\u0070",_fgee .Cap );_cea .SetIfNotNil ("\u0049\u0054",_fgee .IT );_cea .SetIfNotNil ("\u004c\u004c\u004f",_fgee .LLO );_cea .SetIfNotNil ("\u0043\u0050",_fgee .CP );_cea .SetIfNotNil ("\u004de\u0061\u0073\u0075\u0072\u0065",_fgee .Measure );
|
||
_cea .SetIfNotNil ("\u0043\u004f",_fgee .CO );return _cabf ;};var _ pdfFont =(*pdfCIDFontType2 )(nil );
|
||
|
||
// ApplyStandard is used to apply changes required on the document to match the rules required by the input standard.
|
||
// The writer's content would be changed after all the document parts are already established during the Write method.
|
||
// A good example of the StandardApplier could be a PDF/A Profile (i.e.: pdfa.Profile1A). In such a case PdfWriter would
|
||
// set up all rules required by that Profile.
|
||
func (_bgdaae *PdfWriter )ApplyStandard (optimizer StandardApplier ){_bgdaae ._cafac =optimizer };
|
||
|
||
// ReplaceAcroForm replaces the acrobat form. It appends a new form to the Pdf which
|
||
// replaces the original AcroForm.
|
||
func (_afcd *PdfAppender )ReplaceAcroForm (acroForm *PdfAcroForm ){if acroForm !=nil {_afcd .updateObjectsDeep (acroForm .ToPdfObject (),nil );};_afcd ._bfef =acroForm ;};
|
||
|
||
// 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 (_dbcf *PdfColorspaceDeviceRGB )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=3{return nil ,_gf .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_fcgf :=vals [0];if _fcgf < 0.0||_fcgf > 1.0{_eg .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_fcgf );
|
||
return nil ,ErrColorOutOfRange ;};_dfgg :=vals [1];if _dfgg < 0.0||_dfgg > 1.0{_eg .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_fcgf );return nil ,ErrColorOutOfRange ;
|
||
};_bfad :=vals [2];if _bfad < 0.0||_bfad > 1.0{_eg .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_fcgf );return nil ,ErrColorOutOfRange ;};_aecb :=NewPdfColorDeviceRGB (_fcgf ,_dfgg ,_bfad );
|
||
return _aecb ,nil ;};
|
||
|
||
// ColorFromFloats returns a new PdfColor based on input color components.
|
||
func (_afef *PdfColorspaceDeviceN )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=_afef .GetNumComponents (){return nil ,_gf .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_becea ,_efcaa :=_afef .TintTransform .Evaluate (vals );
|
||
if _efcaa !=nil {return nil ,_efcaa ;};_dfad ,_efcaa :=_afef .AlternateSpace .ColorFromFloats (_becea );if _efcaa !=nil {return nil ,_efcaa ;};return _dfad ,nil ;};
|
||
|
||
// PdfFunctionType4 is a Postscript calculator functions.
|
||
type PdfFunctionType4 struct{Domain []float64 ;Range []float64 ;Program *_bc .PSProgram ;_bdbae *_bc .PSExecutor ;_abbbb []byte ;_gbgd *_ebb .PdfObjectStream ;};
|
||
|
||
// PdfActionGoToR represents a GoToR action.
|
||
type PdfActionGoToR struct{*PdfAction ;F *PdfFilespec ;D _ebb .PdfObject ;NewWindow _ebb .PdfObject ;};func (_gdgc *PdfReader )newPdfAnnotationSquigglyFromDict (_eegc *_ebb .PdfObjectDictionary )(*PdfAnnotationSquiggly ,error ){_fcfdd :=PdfAnnotationSquiggly {};
|
||
_abdg ,_eecg :=_gdgc .newPdfAnnotationMarkupFromDict (_eegc );if _eecg !=nil {return nil ,_eecg ;};_fcfdd .PdfAnnotationMarkup =_abdg ;_fcfdd .QuadPoints =_eegc .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");return &_fcfdd ,nil ;
|
||
};
|
||
|
||
// Evaluate runs the function on the passed in slice and returns the results.
|
||
func (_fgef *PdfFunctionType2 )Evaluate (x []float64 )([]float64 ,error ){if len (x )!=1{_eg .Log .Error ("\u004f\u006e\u006c\u0079 o\u006e\u0065\u0020\u0069\u006e\u0070\u0075\u0074\u0020\u0061\u006c\u006c\u006f\u0077e\u0064");return nil ,_gf .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");
|
||
};_dfffa :=[]float64 {0.0};if _fgef .C0 !=nil {_dfffa =_fgef .C0 ;};_gbeef :=[]float64 {1.0};if _fgef .C1 !=nil {_gbeef =_fgef .C1 ;};var _abfab []float64 ;for _ffgce :=0;_ffgce < len (_dfffa );_ffgce ++{_fcgg :=_dfffa [_ffgce ]+_cbg .Pow (x [0],_fgef .N )*(_gbeef [_ffgce ]-_dfffa [_ffgce ]);
|
||
_abfab =append (_abfab ,_fcgg );};return _abfab ,nil ;};func (_cagfb *PdfAcroForm )fill (_ccbfd FieldValueProvider ,_bdddeb FieldAppearanceGenerator )error {if _cagfb ==nil {return nil ;};_ecgbe ,_fbaad :=_ccbfd .FieldValues ();if _fbaad !=nil {return _fbaad ;
|
||
};for _ ,_bbfe :=range _cagfb .AllFields (){_gfabe :=_bbfe .PartialName ();_dfada ,_ggdbb :=_ecgbe [_gfabe ];if !_ggdbb {if _dfde ,_aafee :=_bbfe .FullName ();_aafee ==nil {_dfada ,_ggdbb =_ecgbe [_dfde ];};};if !_ggdbb {_eg .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",_gfabe );
|
||
continue ;};if _agbbd :=_abeb (_bbfe ,_dfada );_agbbd !=nil {return _agbbd ;};if _bdddeb ==nil {continue ;};for _ ,_bbaba :=range _bbfe .Annotations {_cbdf ,_fggb :=_bdddeb .GenerateAppearanceDict (_cagfb ,_bbfe ,_bbaba );if _fggb !=nil {return _fggb ;
|
||
};_bbaba .AP =_cbdf ;_bbaba .ToPdfObject ();};};return nil ;};
|
||
|
||
// NewPdfActionLaunch returns a new "launch" action.
|
||
func NewPdfActionLaunch ()*PdfActionLaunch {_gbe :=NewPdfAction ();_cbf :=&PdfActionLaunch {};_cbf .PdfAction =_gbe ;_gbe .SetContext (_cbf );return _cbf ;};func (_febaa *PdfWriter )writeOutlines ()error {if _febaa ._bcbee ==nil {return nil ;};_eg .Log .Trace ("\u004f\u0075t\u006c\u0069\u006ee\u0054\u0072\u0065\u0065\u003a\u0020\u0025\u002b\u0076",_febaa ._bcbee );
|
||
_efbgd :=_febaa ._bcbee .ToPdfObject ();_eg .Log .Trace ("\u004fu\u0074\u006c\u0069\u006e\u0065\u0073\u003a\u0020\u0025\u002b\u0076 \u0028\u0025\u0054\u002c\u0020\u0070\u003a\u0025\u0070\u0029",_efbgd ,_efbgd ,_efbgd );_febaa ._dffegd .Set ("\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0073",_efbgd );
|
||
_dcfbf :=_febaa .addObjects (_efbgd );if _dcfbf !=nil {return _dcfbf ;};return nil ;};func (_afebc *PdfReader )newPdfSignatureReferenceFromDict (_bebed *_ebb .PdfObjectDictionary )(*PdfSignatureReference ,error ){if _acfae ,_gdce :=_afebc ._abbaca .GetModelFromPrimitive (_bebed ).(*PdfSignatureReference );
|
||
_gdce {return _acfae ,nil ;};_faff :=&PdfSignatureReference {_afacea :_bebed ,Data :_bebed .Get ("\u0044\u0061\u0074\u0061")};var _adbf bool ;_faff .Type ,_ =_ebb .GetName (_bebed .Get ("\u0054\u0079\u0070\u0065"));_faff .TransformMethod ,_adbf =_ebb .GetName (_bebed .Get ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u004d\u0065\u0074\u0068\u006f\u0064"));
|
||
if !_adbf {_eg .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 ;};_faff .TransformParams ,_ =_ebb .GetDict (_bebed .Get ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u0050\u0061\u0072\u0061\u006d\u0073"));_faff .DigestMethod ,_ =_ebb .GetName (_bebed .Get ("\u0044\u0069\u0067e\u0073\u0074\u004d\u0065\u0074\u0068\u006f\u0064"));
|
||
return _faff ,nil ;};func (_gdfb *PdfWriter )setCatalogVersion (){_gdfb ._dffegd .Set ("\u0056e\u0072\u0073\u0069\u006f\u006e",_ebb .MakeName (_bg .Sprintf ("\u0025\u0064\u002e%\u0064",_gdfb ._efcge .Major ,_gdfb ._efcge .Minor )));};
|
||
|
||
// 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 (_cfebe pdfFontSimple )GetCharMetrics (code _da .CharCode )(_bad .CharMetrics ,bool ){if _ggdf ,_ebddc :=_cfebe ._cdff [code ];_ebddc {return _bad .CharMetrics {Wx :_ggdf },true ;};if _bad .IsStdFont (_bad .StdFontName (_cfebe ._fdacg )){return _bad .CharMetrics {Wx :250},true ;
|
||
};return _bad .CharMetrics {},false ;};func (_dage *PdfReader )newPdfAnnotationPopupFromDict (_ege *_ebb .PdfObjectDictionary )(*PdfAnnotationPopup ,error ){_def :=PdfAnnotationPopup {};_def .Parent =_ege .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");_def .Open =_ege .Get ("\u004f\u0070\u0065\u006e");
|
||
return &_def ,nil ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_faab *PdfActionSound )ToPdfObject ()_ebb .PdfObject {_faab .PdfAction .ToPdfObject ();_ffa :=_faab ._abe ;_eeg :=_ffa .PdfObject .(*_ebb .PdfObjectDictionary );_eeg .SetIfNotNil ("\u0053",_ebb .MakeName (string (ActionTypeSound )));_eeg .SetIfNotNil ("\u0053\u006f\u0075n\u0064",_faab .Sound );
|
||
_eeg .SetIfNotNil ("\u0056\u006f\u006c\u0075\u006d\u0065",_faab .Volume );_eeg .SetIfNotNil ("S\u0079\u006e\u0063\u0068\u0072\u006f\u006e\u006f\u0075\u0073",_faab .Synchronous );_eeg .SetIfNotNil ("\u0052\u0065\u0070\u0065\u0061\u0074",_faab .Repeat );
|
||
_eeg .SetIfNotNil ("\u004d\u0069\u0078",_faab .Mix );return _ffa ;};
|
||
|
||
// SetPageLabels sets the PageLabels entry in the PDF catalog.
|
||
// See section 12.4.2 "Page Labels" (p. 382 PDF32000_2008).
|
||
func (_acbfd *PdfWriter )SetPageLabels (pageLabels _ebb .PdfObject )error {if pageLabels ==nil {return nil ;};_eg .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");
|
||
_acbfd ._dffegd .Set ("\u0050\u0061\u0067\u0065\u004c\u0061\u0062\u0065\u006c\u0073",pageLabels );return _acbfd .addObjects (pageLabels );};func _cdbaf (_ccaea *_ebb .PdfObjectDictionary )(*PdfShadingPattern ,error ){_cabac :=&PdfShadingPattern {};_cfaf :=_ccaea .Get ("\u0053h\u0061\u0064\u0069\u006e\u0067");
|
||
if _cfaf ==nil {_eg .Log .Debug ("\u0053h\u0061d\u0069\u006e\u0067\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ;};_beabd ,_cffgf :=_ggdfc (_cfaf );if _cffgf !=nil {_eg .Log .Debug ("\u0045r\u0072\u006f\u0072\u0020l\u006f\u0061\u0064\u0069\u006eg\u0020s\u0068a\u0064\u0069\u006e\u0067\u003a\u0020\u0025v",_cffgf );
|
||
return nil ,_cffgf ;};_cabac .Shading =_beabd ;if _egdfe :=_ccaea .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");_egdfe !=nil {_geadb ,_acafe :=_egdfe .(*_ebb .PdfObjectArray );if !_acafe {_eg .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",_egdfe );
|
||
return nil ,_ebb .ErrTypeError ;};_cabac .Matrix =_geadb ;};if _cgfca :=_ccaea .Get ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e");_cgfca !=nil {_cabac .ExtGState =_cgfca ;};return _cabac ,nil ;};func (_fbf *PdfReader )newPdfActionResetFormFromDict (_dee *_ebb .PdfObjectDictionary )(*PdfActionResetForm ,error ){return &PdfActionResetForm {Fields :_dee .Get ("\u0046\u0069\u0065\u006c\u0064\u0073"),Flags :_dee .Get ("\u0046\u006c\u0061g\u0073")},nil ;
|
||
};func (_cdbfd *pdfCIDFontType2 )getFontDescriptor ()*PdfFontDescriptor {return _cdbfd ._fbbd };
|
||
|
||
// ToPdfObject returns the PDF representation of the colorspace.
|
||
func (_egce *PdfColorspaceSpecialPattern )ToPdfObject ()_ebb .PdfObject {if _egce .UnderlyingCS ==nil {return _ebb .MakeName ("\u0050a\u0074\u0074\u0065\u0072\u006e");};_gafb :=_ebb .MakeArray (_ebb .MakeName ("\u0050a\u0074\u0074\u0065\u0072\u006e"));
|
||
_gafb .Append (_egce .UnderlyingCS .ToPdfObject ());if _egce ._adegb !=nil {_egce ._adegb .PdfObject =_gafb ;return _egce ._adegb ;};return _gafb ;};
|
||
|
||
// NewPdfActionHide returns a new "hide" action.
|
||
func NewPdfActionHide ()*PdfActionHide {_bfd :=NewPdfAction ();_db :=&PdfActionHide {};_db .PdfAction =_bfd ;_bfd .SetContext (_db );return _db ;};func (_acea *PdfWriter )copyObjects (){_abgga :=make (map[_ebb .PdfObject ]_ebb .PdfObject );_fbacc :=make ([]_ebb .PdfObject ,0,len (_acea ._ebdgg ));
|
||
_efedf :=make (map[_ebb .PdfObject ]struct{},len (_acea ._ebdgg ));_badbff :=make (map[_ebb .PdfObject ]struct{});for _ ,_cfaae :=range _acea ._ebdgg {_cefecg :=_acea .copyObject (_cfaae ,_abgga ,_badbff ,false );if _ ,_efdba :=_badbff [_cfaae ];_efdba {continue ;
|
||
};_fbacc =append (_fbacc ,_cefecg );_efedf [_cefecg ]=struct{}{};};_acea ._ebdgg =_fbacc ;_acea ._ffffd =_efedf ;_acea ._eadfd =_acea .copyObject (_acea ._eadfd ,_abgga ,nil ,false ).(*_ebb .PdfIndirectObject );_acea ._gegba =_acea .copyObject (_acea ._gegba ,_abgga ,nil ,false ).(*_ebb .PdfIndirectObject );
|
||
if _acea ._cbcaa !=nil {_acea ._cbcaa =_acea .copyObject (_acea ._cbcaa ,_abgga ,nil ,false ).(*_ebb .PdfIndirectObject );};if _acea ._abffb {_bdddc :=make (map[_ebb .PdfObject ]int64 );for _gdcbe ,_cbdba :=range _acea ._cdgd {if _gggg ,_fadbed :=_abgga [_gdcbe ];
|
||
_fadbed {_bdddc [_gggg ]=_cbdba ;}else {_eg .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");
|
||
};};_acea ._cdgd =_bdddc ;};};
|
||
|
||
// WriteToFile writes the output PDF to file.
|
||
func (_efdcb *PdfWriter )WriteToFile (outputFilePath string )error {_effc ,_cbcaf :=_ed .Create (outputFilePath );if _cbcaf !=nil {return _cbcaf ;};defer _effc .Close ();return _efdcb .Write (_effc );};func _bggeg ()string {_daddc .Lock ();defer _daddc .Unlock ();
|
||
return _fead };
|
||
|
||
// ToPdfObject sets the common field elements.
|
||
// Note: Call the more field context's ToPdfObject to set both the generic and
|
||
// non-generic information.
|
||
func (_cgca *PdfField )ToPdfObject ()_ebb .PdfObject {_cgee :=_cgca ._cdfd ;_badcb :=_cgee .PdfObject .(*_ebb .PdfObjectDictionary );_fgdd :=_ebb .MakeArray ();for _ ,_dacf :=range _cgca .Kids {_fgdd .Append (_dacf .ToPdfObject ());};for _ ,_abgd :=range _cgca .Annotations {if _abgd ._bdcd !=_cgca ._cdfd {_fgdd .Append (_abgd .GetContext ().ToPdfObject ());
|
||
};};if _cgca .Parent !=nil {_badcb .SetIfNotNil ("\u0050\u0061\u0072\u0065\u006e\u0074",_cgca .Parent .GetContainingPdfObject ());};if _fgdd .Len ()> 0{_badcb .Set ("\u004b\u0069\u0064\u0073",_fgdd );};_badcb .SetIfNotNil ("\u0046\u0054",_cgca .FT );_badcb .SetIfNotNil ("\u0054",_cgca .T );
|
||
_badcb .SetIfNotNil ("\u0054\u0055",_cgca .TU );_badcb .SetIfNotNil ("\u0054\u004d",_cgca .TM );_badcb .SetIfNotNil ("\u0046\u0066",_cgca .Ff );_badcb .SetIfNotNil ("\u0056",_cgca .V );_badcb .SetIfNotNil ("\u0044\u0056",_cgca .DV );_badcb .SetIfNotNil ("\u0041\u0041",_cgca .AA );
|
||
if _cgca .VariableText !=nil {_badcb .SetIfNotNil ("\u0044\u0041",_cgca .VariableText .DA );_badcb .SetIfNotNil ("\u0051",_cgca .VariableText .Q );_badcb .SetIfNotNil ("\u0044\u0053",_cgca .VariableText .DS );_badcb .SetIfNotNil ("\u0052\u0056",_cgca .VariableText .RV );
|
||
};return _cgee ;};
|
||
|
||
// SetBorderWidth sets the style's border width.
|
||
func (_daba *PdfBorderStyle )SetBorderWidth (width float64 ){_daba .W =&width };
|
||
|
||
// 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 (_aebac *PdfAcroForm )FillWithAppearance (provider FieldValueProvider ,appGen FieldAppearanceGenerator )error {_bggab :=_aebac .fill (provider ,appGen );if _bggab !=nil {return _bggab ;};if _ ,_bdafc :=provider .(FieldImageProvider );_bdafc {_bggab =_aebac .fillImageWithAppearance (provider .(FieldImageProvider ),appGen );
|
||
};return _bggab ;};
|
||
|
||
// PdfActionTrans represents a trans action.
|
||
type PdfActionTrans struct{*PdfAction ;Trans _ebb .PdfObject ;};
|
||
|
||
// ToPdfObject recursively builds the Outline tree PDF object.
|
||
func (_afgdb *PdfOutline )ToPdfObject ()_ebb .PdfObject {_ceeac :=_afgdb ._egee ;_beede :=_ceeac .PdfObject .(*_ebb .PdfObjectDictionary );_beede .Set ("\u0054\u0079\u0070\u0065",_ebb .MakeName ("\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0073"));if _afgdb .First !=nil {_beede .Set ("\u0046\u0069\u0072s\u0074",_afgdb .First .ToPdfObject ());
|
||
};if _afgdb .Last !=nil {_beede .Set ("\u004c\u0061\u0073\u0074",_afgdb .Last .GetContext ().GetContainingPdfObject ());};if _afgdb .Parent !=nil {_beede .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_afgdb .Parent .GetContext ().GetContainingPdfObject ());
|
||
};if _afgdb .Count !=nil {_beede .Set ("\u0043\u006f\u0075n\u0074",_ebb .MakeInteger (*_afgdb .Count ));};return _ceeac ;};
|
||
|
||
// NewPdfOutputIntentFromPdfObject creates a new PdfOutputIntent from the input core.PdfObject.
|
||
func NewPdfOutputIntentFromPdfObject (object _ebb .PdfObject )(*PdfOutputIntent ,error ){_befc :=&PdfOutputIntent {};if _beeeb :=_befc .ParsePdfObject (object );_beeeb !=nil {return nil ,_beeeb ;};return _befc ,nil ;};
|
||
|
||
// GetSubFilter returns SubFilter value or empty string.
|
||
func (_fgaeg *pdfSignDictionary )GetSubFilter ()string {_eebbf :=_fgaeg .Get ("\u0053u\u0062\u0046\u0069\u006c\u0074\u0065r");if _eebbf ==nil {return "";};if _fcgcg ,_adgfc :=_ebb .GetNameVal (_eebbf );_adgfc {return _fcgcg ;};return "";};
|
||
|
||
// FieldValueProvider provides field values from a data source such as FDF, JSON or any other.
|
||
type FieldValueProvider interface{FieldValues ()(map[string ]_ebb .PdfObject ,error );};func (_cff *PdfReader )newPdfActionGotoEFromDict (_fce *_ebb .PdfObjectDictionary )(*PdfActionGoToE ,error ){_gee ,_fda :=_gggf (_fce .Get ("\u0046"));if _fda !=nil {return nil ,_fda ;
|
||
};return &PdfActionGoToE {D :_fce .Get ("\u0044"),NewWindow :_fce .Get ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw"),T :_fce .Get ("\u0054"),F :_gee },nil ;};func (_dega *PdfReader )newPdfAnnotationCaretFromDict (_cgc *_ebb .PdfObjectDictionary )(*PdfAnnotationCaret ,error ){_cffe :=PdfAnnotationCaret {};
|
||
_aabg ,_bcfd :=_dega .newPdfAnnotationMarkupFromDict (_cgc );if _bcfd !=nil {return nil ,_bcfd ;};_cffe .PdfAnnotationMarkup =_aabg ;_cffe .RD =_cgc .Get ("\u0052\u0044");_cffe .Sy =_cgc .Get ("\u0053\u0079");return &_cffe ,nil ;};
|
||
|
||
// NewPdfActionGoToR returns a new "go to remote" action.
|
||
func NewPdfActionGoToR ()*PdfActionGoToR {_gfd :=NewPdfAction ();_cgg :=&PdfActionGoToR {};_cgg .PdfAction =_gfd ;_gfd .SetContext (_cgg );return _cgg ;};func (_bgfa *PdfReader )newPdfActionURIFromDict (_fbe *_ebb .PdfObjectDictionary )(*PdfActionURI ,error ){return &PdfActionURI {URI :_fbe .Get ("\u0055\u0052\u0049"),IsMap :_fbe .Get ("\u0049\u0073\u004da\u0070")},nil ;
|
||
};func (_ecc *PdfReader )newPdfActionGoTo3DViewFromDict (_dacb *_ebb .PdfObjectDictionary )(*PdfActionGoTo3DView ,error ){return &PdfActionGoTo3DView {TA :_dacb .Get ("\u0054\u0041"),V :_dacb .Get ("\u0056")},nil ;};
|
||
|
||
// ToPdfObject returns a PdfObject representation of PdfColorspaceDeviceNAttributes as a PdfObjectDictionary directly
|
||
// or indirectly within an indirect object container.
|
||
func (_gccb *PdfColorspaceDeviceNAttributes )ToPdfObject ()_ebb .PdfObject {_afgbb :=_ebb .MakeDict ();if _gccb .Subtype !=nil {_afgbb .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_gccb .Subtype );};_afgbb .SetIfNotNil ("\u0043o\u006c\u006f\u0072\u0061\u006e\u0074s",_gccb .Colorants );
|
||
_afgbb .SetIfNotNil ("\u0050r\u006f\u0063\u0065\u0073\u0073",_gccb .Process );_afgbb .SetIfNotNil ("M\u0069\u0078\u0069\u006e\u0067\u0048\u0069\u006e\u0074\u0073",_gccb .MixingHints );if _gccb ._afca !=nil {_gccb ._afca .PdfObject =_afgbb ;return _gccb ._afca ;
|
||
};return _afgbb ;};
|
||
|
||
// GetContainingPdfObject returns the container of the outline item (indirect object).
|
||
func (_dedce *PdfOutlineItem )GetContainingPdfObject ()_ebb .PdfObject {return _dedce ._cacdf };
|
||
|
||
// 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 _ebb .StreamEncoder )(*XObjectImage ,error ){_gebce :=NewXObjectImage ();return UpdateXObjectImageFromImage (_gebce ,img ,cs ,encoder );};
|
||
|
||
// Initialize initializes the PdfSignature.
|
||
func (_ebefb *PdfSignature )Initialize ()error {if _ebefb .Handler ==nil {return _gf .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 _ebefb .Handler .InitSignature (_ebefb );};func _fbga (_eeeee _ebb .PdfObject ,_ggfbb *PdfReader )(*OutlineDest ,error ){_ffagd ,_beceab :=_ebb .GetArray (_eeeee );if !_beceab {return nil ,_gf .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");
|
||
};_aagd :=_ffagd .Len ();if _aagd < 2{return nil ,_bg .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",_aagd );
|
||
};_daaf :=&OutlineDest {Mode :"\u0046\u0069\u0074"};_dccg :=_ffagd .Get (0);if _dfac ,_baaf :=_ebb .GetIndirect (_dccg );_baaf {if _ ,_dcce ,_cbdfg :=_ggfbb .PageFromIndirectObject (_dfac );_cbdfg ==nil {_daaf .Page =int64 (_dcce -1);}else {_eg .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",_dfac );
|
||
};_daaf .PageObj =_dfac ;}else if _eeebb ,_gggca :=_ebb .GetIntVal (_dccg );_gggca {if _eeebb >=0&&_eeebb < len (_ggfbb .PageList ){_daaf .PageObj =_ggfbb .PageList [_eeebb ].GetPageAsIndirectObject ();}else {_eg .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",_eeebb );
|
||
};_daaf .Page =int64 (_eeebb );}else {return nil ,_bg .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",_dccg );};_afeg ,_beceab :=_ebb .GetNameVal (_ffagd .Get (1));
|
||
if !_beceab {_eg .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",_ffagd .Get (1));
|
||
return _daaf ,nil ;};switch _afeg {case "\u0046\u0069\u0074","\u0046\u0069\u0074\u0042":case "\u0046\u0069\u0074\u0048","\u0046\u0069\u0074B\u0048":if _aagd > 2{_daaf .Y ,_ =_ebb .GetNumberAsFloat (_ebb .TraceToDirectObject (_ffagd .Get (2)));};case "\u0046\u0069\u0074\u0056","\u0046\u0069\u0074B\u0056":if _aagd > 2{_daaf .X ,_ =_ebb .GetNumberAsFloat (_ebb .TraceToDirectObject (_ffagd .Get (2)));
|
||
};case "\u0058\u0059\u005a":if _aagd > 4{_daaf .X ,_ =_ebb .GetNumberAsFloat (_ebb .TraceToDirectObject (_ffagd .Get (2)));_daaf .Y ,_ =_ebb .GetNumberAsFloat (_ebb .TraceToDirectObject (_ffagd .Get (3)));_daaf .Zoom ,_ =_ebb .GetNumberAsFloat (_ebb .TraceToDirectObject (_ffagd .Get (4)));
|
||
};default:_afeg ="\u0046\u0069\u0074";};_daaf .Mode =_afeg ;return _daaf ,nil ;};
|
||
|
||
// SetReason sets the `Reason` field of the signature.
|
||
func (_cbfga *PdfSignature )SetReason (reason string ){_cbfga .Reason =_ebb .MakeString (reason )};
|
||
|
||
// 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 ,_da .SimpleEncoder ,error ){_ceag ,_ageb :=_cfacd (basefont );if _ageb !=nil {return nil ,nil ,_ageb ;};_aebaa ,_cefd :=_ceag .Encoder ().(_da .SimpleEncoder );
|
||
if !_cefd {return nil ,nil ,_bg .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",_ceag .Encoder ());
|
||
};_abfbg :=make (map[rune ]_da .GlyphName );for _fgcccc :=range alphabet {if _ ,_ggged :=_aebaa .RuneToCharcode (_fgcccc );!_ggged {_ ,_aaec :=_ceag ._ddgd .Read (_fgcccc );if !_aaec {_eg .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",_fgcccc ,_fgcccc );
|
||
continue ;};_dgca ,_aaec :=_da .RuneToGlyph (_fgcccc );if !_aaec {_eg .Log .Debug ("\u006eo\u0020\u0067\u006c\u0079\u0070\u0068\u0020\u0066\u006f\u0072\u0020r\u0075\u006e\u0065\u0020\u0025\u0023\u0078\u003d\u0025\u0071",_fgcccc ,_fgcccc );continue ;};if len (_abfbg )>=255{return nil ,nil ,_gf .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");
|
||
};_abfbg [_fgcccc ]=_dgca ;};};var (_fgaeb []_da .CharCode ;_cbgc []_da .CharCode ;);for _bfee :=_da .CharCode (1);_bfee <=0xff;_bfee ++{_cgcaa ,_fcag :=_aebaa .CharcodeToRune (_bfee );if !_fcag {_fgaeb =append (_fgaeb ,_bfee );continue ;};if _ ,_fcag =alphabet [_cgcaa ];
|
||
!_fcag {_cbgc =append (_cbgc ,_bfee );};};_bcbf :=append (_fgaeb ,_cbgc ...);if len (_bcbf )< len (_abfbg ){return nil ,nil ,_bg .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 (_abfbg ),len (_bcbf ));
|
||
};_edga :=make ([]rune ,0,len (_abfbg ));for _aaccd :=range _abfbg {_edga =append (_edga ,_aaccd );};_ae .Slice (_edga ,func (_gcb ,_fega int )bool {return _edga [_gcb ]< _edga [_fega ]});_eadb :=make (map[_da .CharCode ]_da .GlyphName ,len (_edga ));for _ ,_gdbbd :=range _edga {_gbefg :=_bcbf [0];
|
||
_bcbf =_bcbf [1:];_eadb [_gbefg ]=_abfbg [_gdbbd ];};_aebaa =_da .ApplyDifferences (_aebaa ,_eadb );_ceag .SetEncoder (_aebaa );return &PdfFont {_ebcad :&_ceag },_aebaa ,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 *_ac .DiffResults ;
|
||
|
||
// GeneralizedTime is the time at which the time-stamp token has been created by the TSA (RFC 3161).
|
||
GeneralizedTime _f .Time ;};
|
||
|
||
// 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 (_beceb *PdfWriter )SetOpenAction (dest _ebb .PdfObject )error {if dest ==nil ||_ebb .IsNullObject (dest ){return nil ;};_beceb ._dffegd .Set ("\u004f\u0070\u0065\u006e\u0041\u0063\u0074\u0069\u006f\u006e",dest );return _beceb .addObjects (dest );
|
||
};func _gagfgf ()string {_daddc .Lock ();defer _daddc .Unlock ();_fcca :=_ce .GetLicenseKey ();if len (_aaaae )> 0&&(_fcca .IsLicensed ()||_eacf ){return _aaaae ;};return _bg .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",_ebafc (),_fcca .TypeToString ());
|
||
};func _bede (_agfe *fontCommon )*pdfFontSimple {return &pdfFontSimple {fontCommon :*_agfe }};
|
||
|
||
// 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 ){_ceef ,_fdbdf :=_cfacd (basefont );if _fdbdf !=nil {return nil ,_fdbdf ;};if basefont !=SymbolName &&basefont !=ZapfDingbatsName {_ceef ._ebcb =_da .NewWinAnsiEncoder ();};return &PdfFont {_ebcad :&_ceef },nil ;
|
||
};
|
||
|
||
// PdfActionResetForm represents a resetForm action.
|
||
type PdfActionResetForm struct{*PdfAction ;Fields _ebb .PdfObject ;Flags _ebb .PdfObject ;};
|
||
|
||
// 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 (_cbdfgg *PdfPage )Size ()(float64 ,float64 ,error ){_ffeff ,_afdff :=_cbdfgg .GetMediaBox ();if _afdff !=nil {return 0,0,_afdff ;};_fcgfd ,_cgbbc :=_ffeff .Width (),_ffeff .Height ();_fdga ,_afdff :=_cbdfgg .GetRotate ();if _afdff !=nil {_eg .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",_afdff .Error ());
|
||
};if _cdba :=_fdga ;_cdba %360!=0&&_cdba %90==0{if _ebeab :=(360+_cdba %360)%360;_ebeab ==90||_ebeab ==270{_fcgfd ,_cgbbc =_cgbbc ,_fcgfd ;};};return _fcgfd ,_cgbbc ,nil ;};
|
||
|
||
// Sign signs a specific page with a digital signature.
|
||
// The signature field parameter must have a valid signature dictionary
|
||
// specified by its V field.
|
||
func (_bceg *PdfAppender )Sign (pageNum int ,field *PdfFieldSignature )error {if field ==nil {return _gf .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");
|
||
};_fcd :=field .V ;if _fcd ==nil {return _gf .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");};_ggbec :=pageNum -1;if _ggbec < 0||_ggbec > len (_bceg ._dfbg )-1{return _bg .Errorf ("\u0070\u0061\u0067\u0065\u0020\u0025\u0064\u0020\u006e\u006f\u0074\u0020f\u006f\u0075\u006e\u0064",pageNum );
|
||
};_fded :=_bceg .Reader .PageList [_ggbec ];field .P =_fded .ToPdfObject ();if field .T ==nil ||field .T .String ()==""{field .T =_ebb .MakeString (_bg .Sprintf ("\u0053\u0069\u0067n\u0061\u0074\u0075\u0072\u0065\u0020\u0025\u0064",pageNum ));};_fded .AddAnnotation (field .PdfAnnotationWidget .PdfAnnotation );
|
||
if _bceg ._bfef ==_bceg ._acfe .AcroForm {_bceg ._bfef =_bceg .Reader .AcroForm ;};_eeddb :=_bceg ._bfef ;if _eeddb ==nil {_eeddb =NewPdfAcroForm ();};_eeddb .SigFlags =_ebb .MakeInteger (3);_dgadf :=append (_eeddb .AllFields (),field .PdfField );_eeddb .Fields =&_dgadf ;
|
||
_bceg .ReplaceAcroForm (_eeddb );_bceg .UpdatePage (_fded );_bceg ._dfbg [_ggbec ]=_fded ;if _ ,_afgb :=field .V .GetDocMDPPermission ();_afgb {_bceg ._eaaa =NewPermissions (field .V );};return nil ;};
|
||
|
||
// NewPdfAnnotationWatermark returns a new watermark annotation.
|
||
func NewPdfAnnotationWatermark ()*PdfAnnotationWatermark {_abab :=NewPdfAnnotation ();_ebfa :=&PdfAnnotationWatermark {};_ebfa .PdfAnnotation =_abab ;_abab .SetContext (_ebfa );return _ebfa ;};
|
||
|
||
// PdfAnnotation3D represents 3D annotations.
|
||
// (Section 13.6.2).
|
||
type PdfAnnotation3D struct{*PdfAnnotation ;T3DD _ebb .PdfObject ;T3DV _ebb .PdfObject ;T3DA _ebb .PdfObject ;T3DI _ebb .PdfObject ;T3DB _ebb .PdfObject ;};
|
||
|
||
// NewPdfAnnotationInk returns a new ink annotation.
|
||
func NewPdfAnnotationInk ()*PdfAnnotationInk {_dggg :=NewPdfAnnotation ();_efba :=&PdfAnnotationInk {};_efba .PdfAnnotation =_dggg ;_efba .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_dggg .SetContext (_efba );return _efba ;};
|
||
|
||
// GetOutlineTree returns the outline tree.
|
||
func (_faef *PdfReader )GetOutlineTree ()*PdfOutlineTreeNode {return _faef ._fgbcg };
|
||
|
||
// NewPdfActionSetOCGState returns a new "named" action.
|
||
func NewPdfActionSetOCGState ()*PdfActionSetOCGState {_cfa :=NewPdfAction ();_gdb :=&PdfActionSetOCGState {};_gdb .PdfAction =_cfa ;_cfa .SetContext (_gdb );return _gdb ;};
|
||
|
||
// 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 (_eddfb *PdfReader )GetOutlinesFlattened ()([]*PdfOutlineTreeNode ,[]string ,error ){var _caagc []*PdfOutlineTreeNode ;var _bffbb []string ;var _bbfgd func (*PdfOutlineTreeNode ,*[]*PdfOutlineTreeNode ,*[]string ,int );_bbfgd =func (_dcda *PdfOutlineTreeNode ,_afce *[]*PdfOutlineTreeNode ,_dgfc *[]string ,_gecdba int ){if _dcda ==nil {return ;
|
||
};if _dcda ._geeee ==nil {_eg .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 ;};_gfagf ,_ddfdc :=_dcda ._geeee .(*PdfOutlineItem );if _ddfdc {*_afce =append (*_afce ,&_gfagf .PdfOutlineTreeNode );
|
||
_eggf :=_ee .Repeat ("\u0020",_gecdba *2)+_gfagf .Title .Decoded ();*_dgfc =append (*_dgfc ,_eggf );};if _dcda .First !=nil {_eegceb :=_ee .Repeat ("\u0020",_gecdba *2)+"\u002b";*_dgfc =append (*_dgfc ,_eegceb );_bbfgd (_dcda .First ,_afce ,_dgfc ,_gecdba +1);
|
||
};if _ddfdc &&_gfagf .Next !=nil {_bbfgd (_gfagf .Next ,_afce ,_dgfc ,_gecdba );};};_bbfgd (_eddfb ._fgbcg ,&_caagc ,&_bffbb ,0);return _caagc ,_bffbb ,nil ;};
|
||
|
||
// IsValid checks if the given pdf output intent type is valid.
|
||
func (_dffge PdfOutputIntentType )IsValid ()bool {return _dffge >=PdfOutputIntentTypeA1 &&_dffge <=PdfOutputIntentTypeX ;};
|
||
|
||
// GetRuneMetrics returns the character metrics for the specified rune.
|
||
// A bool flag is returned to indicate whether or not the entry was found.
|
||
func (_cgde pdfCIDFontType2 )GetRuneMetrics (r rune )(_bad .CharMetrics ,bool ){_ebbd ,_baeed :=_cgde ._dceb [r ];if !_baeed {_caaa ,_acaa :=_ebb .GetInt (_cgde .DW );if !_acaa {return _bad .CharMetrics {},false ;};_ebbd =int (*_caaa );};return _bad .CharMetrics {Wx :float64 (_ebbd )},true ;
|
||
};
|
||
|
||
// PdfRectangle is a definition of a rectangle.
|
||
type PdfRectangle struct{Llx float64 ;Lly float64 ;Urx float64 ;Ury float64 ;};const (BorderEffectNoEffect BorderEffect =iota ;BorderEffectCloudy BorderEffect =iota ;);var _efdc =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":{}};
|
||
|
||
|
||
// GetContainingPdfObject returns the containing object for the PdfField, i.e. an indirect object
|
||
// containing the field dictionary.
|
||
func (_ceaf *PdfField )GetContainingPdfObject ()_ebb .PdfObject {return _ceaf ._cdfd };
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_dedb *PdfAnnotationHighlight )ToPdfObject ()_ebb .PdfObject {_dedb .PdfAnnotation .ToPdfObject ();_ggaa :=_dedb ._bdcd ;_fbbf :=_ggaa .PdfObject .(*_ebb .PdfObjectDictionary );_dedb .PdfAnnotationMarkup .appendToPdfDictionary (_fbbf );_fbbf .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ebb .MakeName ("\u0048i\u0067\u0068\u006c\u0069\u0067\u0068t"));
|
||
_fbbf .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_dedb .QuadPoints );return _ggaa ;};func (_fccf *PdfReader )newPdfAnnotationWatermarkFromDict (_cgff *_ebb .PdfObjectDictionary )(*PdfAnnotationWatermark ,error ){_gdbb :=PdfAnnotationWatermark {};
|
||
_gdbb .FixedPrint =_cgff .Get ("\u0046\u0069\u0078\u0065\u0064\u0050\u0072\u0069\u006e\u0074");return &_gdbb ,nil ;};func (_cgac *PdfReader )newPdfAnnotationSoundFromDict (_bbee *_ebb .PdfObjectDictionary )(*PdfAnnotationSound ,error ){_cdcg :=PdfAnnotationSound {};
|
||
_gbc ,_efed :=_cgac .newPdfAnnotationMarkupFromDict (_bbee );if _efed !=nil {return nil ,_efed ;};_cdcg .PdfAnnotationMarkup =_gbc ;_cdcg .Name =_bbee .Get ("\u004e\u0061\u006d\u0065");_cdcg .Sound =_bbee .Get ("\u0053\u006f\u0075n\u0064");return &_cdcg ,nil ;
|
||
};func _bdgcb (_ecged *PdfAnnotation )(*XObjectForm ,*PdfRectangle ,error ){_dafbf ,_gebaag :=_ebb .GetDict (_ecged .AP );if !_gebaag {return nil ,nil ,_gf .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 _dafbf ==nil {return nil ,nil ,nil ;};_gccf ,_gebaag :=_ebb .GetArray (_ecged .Rect );if !_gebaag ||_gccf .Len ()!=4{return nil ,nil ,_gf .New ("\u0072\u0065\u0063t\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064");};_bgbgc ,_cgfd :=NewPdfRectangle (*_gccf );
|
||
if _cgfd !=nil {return nil ,nil ,_cgfd ;};_decg :=_ebb .TraceToDirectObject (_dafbf .Get ("\u004e"));switch _dbcgd :=_decg .(type ){case *_ebb .PdfObjectStream :_gfagd :=_dbcgd ;_egbc ,_beee :=NewXObjectFormFromStream (_gfagd );return _egbc ,_bgbgc ,_beee ;
|
||
case *_ebb .PdfObjectDictionary :_gbcfe :=_dbcgd ;_gecea ,_abge :=_ebb .GetName (_ecged .AS );if !_abge {return nil ,nil ,nil ;};if _gbcfe .Get (*_gecea )==nil {_eg .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 ;};_cace ,_abge :=_ebb .GetStream (_gbcfe .Get (*_gecea ));if !_abge {_eg .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",_gecea );
|
||
return nil ,nil ,_gf .New ("\u0073\u0074\u0072\u0065\u0061\u006d\u0020\u006d\u0069s\u0073\u0069\u006e\u0067");};_ggefc ,_bcaa :=NewXObjectFormFromStream (_cace );return _ggefc ,_bgbgc ,_bcaa ;};_eg .Log .Debug ("\u0049\u006e\u0076\u0061li\u0064\u0020\u0074\u0079\u0070\u0065\u0020\u0066\u006f\u0072\u0020\u004e\u003a\u0020%\u0054",_decg );
|
||
return nil ,nil ,_gf .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};
|
||
|
||
// ColorToRGB converts a CMYK32 color to an RGB color.
|
||
func (_efcaf *PdfColorspaceDeviceCMYK )ColorToRGB (color PdfColor )(PdfColor ,error ){_gdee ,_bdba :=color .(*PdfColorDeviceCMYK );if !_bdba {_eg .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 ,_gf .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_fgbfc :=_gdee .C ();_afda :=_gdee .M ();_egbbc :=_gdee .Y ();_gffd :=_gdee .K ();_fgbfc =_fgbfc *(1-_gffd )+_gffd ;_afda =_afda *(1-_gffd )+_gffd ;
|
||
_egbbc =_egbbc *(1-_gffd )+_gffd ;_cbaad :=1-_fgbfc ;_afde :=1-_afda ;_dfbb :=1-_egbbc ;return NewPdfColorDeviceRGB (_cbaad ,_afde ,_dfbb ),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 _ebb .PdfObject ;_eabg []byte ;_gdaef *_ebb .PdfIndirectObject ;};func _eaef (_bcdb []byte )([]byte ,error ){_befae :=_bd .New ();if _ ,_cgbed :=_ab .Copy (_befae ,_ca .NewReader (_bcdb ));
|
||
_cgbed !=nil {return nil ,_cgbed ;};return _befae .Sum (nil ),nil ;};func _gaab (_aadcg *_ebb .PdfObjectDictionary )(*PdfShadingType7 ,error ){_ebdcad :=PdfShadingType7 {};_gaeee :=_aadcg .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065");
|
||
if _gaeee ==nil {_eg .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 ;};_deefb ,_efdbf :=_gaeee .(*_ebb .PdfObjectInteger );if !_efdbf {_eg .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",_gaeee );
|
||
return nil ,_ebb .ErrTypeError ;};_ebdcad .BitsPerCoordinate =_deefb ;_gaeee =_aadcg .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074");if _gaeee ==nil {_eg .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 ;};_deefb ,_efdbf =_gaeee .(*_ebb .PdfObjectInteger );if !_efdbf {_eg .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",_gaeee );
|
||
return nil ,_ebb .ErrTypeError ;};_ebdcad .BitsPerComponent =_deefb ;_gaeee =_aadcg .Get ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067");if _gaeee ==nil {_eg .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 ;};_deefb ,_efdbf =_gaeee .(*_ebb .PdfObjectInteger );if !_efdbf {_eg .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",_gaeee );
|
||
return nil ,_ebb .ErrTypeError ;};_ebdcad .BitsPerComponent =_deefb ;_gaeee =_aadcg .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");if _gaeee ==nil {_eg .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 ;};_bfffg ,_efdbf :=_gaeee .(*_ebb .PdfObjectArray );if !_efdbf {_eg .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",_gaeee );
|
||
return nil ,_ebb .ErrTypeError ;};_ebdcad .Decode =_bfffg ;if _fdgbg :=_aadcg .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");_fdgbg !=nil {_ebdcad .Function =[]PdfFunction {};if _geac ,_adcbc :=_fdgbg .(*_ebb .PdfObjectArray );_adcbc {for _ ,_dgbd :=range _geac .Elements (){_dgbfe ,_gecec :=_aagg (_dgbd );
|
||
if _gecec !=nil {_eg .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",_gecec );return nil ,_gecec ;};_ebdcad .Function =append (_ebdcad .Function ,_dgbfe );
|
||
};}else {_bedfd ,_affbc :=_aagg (_fdgbg );if _affbc !=nil {_eg .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",_affbc );return nil ,_affbc ;
|
||
};_ebdcad .Function =append (_ebdcad .Function ,_bedfd );};};return &_ebdcad ,nil ;};
|
||
|
||
// NewPdfColorspaceSpecialIndexed returns a new Indexed color.
|
||
func NewPdfColorspaceSpecialIndexed ()*PdfColorspaceSpecialIndexed {return &PdfColorspaceSpecialIndexed {HiVal :255};};
|
||
|
||
// ToPdfObject returns colorspace in a PDF object format [name dictionary]
|
||
func (_gcfa *PdfColorspaceLab )ToPdfObject ()_ebb .PdfObject {_gdge :=_ebb .MakeArray ();_gdge .Append (_ebb .MakeName ("\u004c\u0061\u0062"));_gbge :=_ebb .MakeDict ();if _gcfa .WhitePoint !=nil {_daaba :=_ebb .MakeArray (_ebb .MakeFloat (_gcfa .WhitePoint [0]),_ebb .MakeFloat (_gcfa .WhitePoint [1]),_ebb .MakeFloat (_gcfa .WhitePoint [2]));
|
||
_gbge .Set ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074",_daaba );}else {_eg .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 _gcfa .BlackPoint !=nil {_egg :=_ebb .MakeArray (_ebb .MakeFloat (_gcfa .BlackPoint [0]),_ebb .MakeFloat (_gcfa .BlackPoint [1]),_ebb .MakeFloat (_gcfa .BlackPoint [2]));_gbge .Set ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074",_egg );
|
||
};if _gcfa .Range !=nil {_cfac :=_ebb .MakeArray (_ebb .MakeFloat (_gcfa .Range [0]),_ebb .MakeFloat (_gcfa .Range [1]),_ebb .MakeFloat (_gcfa .Range [2]),_ebb .MakeFloat (_gcfa .Range [3]));_gbge .Set ("\u0052\u0061\u006eg\u0065",_cfac );};_gdge .Append (_gbge );
|
||
if _gcfa ._bdga !=nil {_gcfa ._bdga .PdfObject =_gdge ;return _gcfa ._bdga ;};return _gdge ;};
|
||
|
||
// M returns the value of the magenta component of the color.
|
||
func (_cafe *PdfColorDeviceCMYK )M ()float64 {return _cafe [1]};
|
||
|
||
// DefaultFont returns the default font, which is currently the built in Helvetica.
|
||
func DefaultFont ()*PdfFont {_baeee ,_ggccg :=_bad .NewStdFontByName (HelveticaName );if !_ggccg {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");
|
||
};_ebbg :=_fcgbc (_baeee );return &PdfFont {_ebcad :&_ebbg };};
|
||
|
||
// PdfAnnotationLine represents Line annotations.
|
||
// (Section 12.5.6.7).
|
||
type PdfAnnotationLine struct{*PdfAnnotation ;*PdfAnnotationMarkup ;L _ebb .PdfObject ;BS _ebb .PdfObject ;LE _ebb .PdfObject ;IC _ebb .PdfObject ;LL _ebb .PdfObject ;LLE _ebb .PdfObject ;Cap _ebb .PdfObject ;IT _ebb .PdfObject ;LLO _ebb .PdfObject ;CP _ebb .PdfObject ;
|
||
Measure _ebb .PdfObject ;CO _ebb .PdfObject ;};
|
||
|
||
// 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 (_aedfb *PdfFont )CharcodesToStrings (charcodes []_da .CharCode )([]string ,int ,int ){_bfab :=_aedfb .baseFields ();_gaba :=make ([]string ,0,len (charcodes ));_daad :=0;_cfaadg :=_aedfb .Encoder ();_abefa :=_bfab ._dcdd !=nil &&_aedfb .IsSimple ()&&_aedfb .Subtype ()=="\u0054\u0072\u0075\u0065\u0054\u0079\u0070\u0065"&&!_ee .Contains (_bfab ._dcdd .Name (),"\u0049d\u0065\u006e\u0074\u0069\u0074\u0079-");
|
||
if !_abefa &&_cfaadg !=nil {switch _cfaadc :=_cfaadg .(type ){case _da .SimpleEncoder :_abcb :=_cfaadc .BaseName ();if _ ,_ccgbb :=_efdc [_abcb ];_ccgbb {for _ ,_aada :=range charcodes {if _bfeec ,_ffecb :=_cfaadg .CharcodeToRune (_aada );_ffecb {_gaba =append (_gaba ,string (_bfeec ));
|
||
}else {_eg .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",_aada ,charcodes ,_bfab .isCIDFont (),_aedfb ,_cfaadg );
|
||
_daad ++;_gaba =append (_gaba ,_ebe .MissingCodeString );};};return _gaba ,len (_gaba ),_daad ;};};};for _ ,_dgdeg :=range charcodes {if _bfab ._dcdd !=nil {if _gfebg ,_dfdga :=_bfab ._dcdd .CharcodeToUnicode (_ebe .CharCode (_dgdeg ));_dfdga {_gaba =append (_gaba ,_gfebg );
|
||
continue ;};};if _cfaadg !=nil {if _gdef ,_eced :=_cfaadg .CharcodeToRune (_dgdeg );_eced {_gaba =append (_gaba ,string (_gdef ));continue ;};};_eg .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",_dgdeg ,charcodes ,_bfab .isCIDFont (),_aedfb ,_cfaadg );
|
||
_daad ++;_gaba =append (_gaba ,_ebe .MissingCodeString );};if _daad !=0{_eg .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 ),_daad ,_aedfb );
|
||
};return _gaba ,len (_gaba ),_daad ;};
|
||
|
||
// 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 (_gaceg *PdfPage )SetContentStreams (cStreams []string ,encoder _ebb .StreamEncoder )error {if len (cStreams )==0{_gaceg .Contents =nil ;return nil ;};if encoder ==nil {encoder =_ebb .NewRawEncoder ();};var _daae []*_ebb .PdfObjectStream ;for _ ,_fdff :=range cStreams {_fgdde :=&_ebb .PdfObjectStream {};
|
||
_cfgb :=encoder .MakeStreamDict ();_feebg ,_ceffg :=encoder .EncodeBytes ([]byte (_fdff ));if _ceffg !=nil {return _ceffg ;};_cfgb .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_ebb .MakeInteger (int64 (len (_feebg ))));_fgdde .PdfObjectDictionary =_cfgb ;
|
||
_fgdde .Stream =_feebg ;_daae =append (_daae ,_fgdde );};if len (_daae )==1{_gaceg .Contents =_daae [0];}else {_dedf :=_ebb .MakeArray ();for _ ,_acaaa :=range _daae {_dedf .Append (_acaaa );};_gaceg .Contents =_dedf ;};return nil ;};
|
||
|
||
// GetNumComponents returns the number of color components of the colorspace device.
|
||
// Returns 3 for a CalRGB device.
|
||
func (_acca *PdfColorspaceCalRGB )GetNumComponents ()int {return 3};
|
||
|
||
// 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 *_ebb .PdfIndirectObject ;SV *_ebb .PdfIndirectObject ;};func (_bddb *PdfReader )newPdfAnnotationUnderlineFromDict (_bggf *_ebb .PdfObjectDictionary )(*PdfAnnotationUnderline ,error ){_eecfb :=PdfAnnotationUnderline {};
|
||
_abbb ,_gaee :=_bddb .newPdfAnnotationMarkupFromDict (_bggf );if _gaee !=nil {return nil ,_gaee ;};_eecfb .PdfAnnotationMarkup =_abbb ;_eecfb .QuadPoints =_bggf .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");return &_eecfb ,nil ;
|
||
};func _bcdgc (_fgaf *_ebb .PdfObjectDictionary ,_baca *fontCommon ,_bffb _da .TextEncoder )(*pdfFontSimple ,error ){_dggce :=_bede (_baca );_dggce ._dacee =_bffb ;if _bffb ==nil {_dgdbdf :=_fgaf .Get ("\u0046i\u0072\u0073\u0074\u0043\u0068\u0061r");if _dgdbdf ==nil {_dgdbdf =_ebb .MakeInteger (0);
|
||
};_dggce .FirstChar =_dgdbdf ;_cefec ,_geee :=_ebb .GetIntVal (_dgdbdf );if !_geee {_eg .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",_dgdbdf );
|
||
return nil ,_ebb .ErrTypeError ;};_ggbbb :=_da .CharCode (_cefec );_dgdbdf =_fgaf .Get ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072");if _dgdbdf ==nil {_dgdbdf =_ebb .MakeInteger (255);};_dggce .LastChar =_dgdbdf ;_cefec ,_geee =_ebb .GetIntVal (_dgdbdf );
|
||
if !_geee {_eg .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",_dgdbdf );return nil ,_ebb .ErrTypeError ;
|
||
};_acgb :=_da .CharCode (_cefec );_dggce ._cdff =make (map[_da .CharCode ]float64 );_dgdbdf =_fgaf .Get ("\u0057\u0069\u0064\u0074\u0068\u0073");if _dgdbdf !=nil {_dggce .Widths =_dgdbdf ;_acdfd ,_ebae :=_ebb .GetArray (_dgdbdf );if !_ebae {_eg .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",_dgdbdf );
|
||
return nil ,_ebb .ErrTypeError ;};_cbgea ,_aaaf :=_acdfd .ToFloat64Array ();if _aaaf !=nil {_eg .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 ,_aaaf ;};if len (_cbgea )!=int (_acgb -_ggbbb +1){_eg .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",_acgb -_ggbbb +1,len (_cbgea ));
|
||
return nil ,_ebb .ErrRangeError ;};for _adcb ,_acfdb :=range _cbgea {_dggce ._cdff [_ggbbb +_da .CharCode (_adcb )]=_acfdb ;};};};_dggce .Encoding =_ebb .TraceToDirectObject (_fgaf .Get ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067"));return _dggce ,nil ;
|
||
};
|
||
|
||
// 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 _ab .ReadSeeker ,opts *ReaderOpts )(*PdfReader ,error ){const _ccca ="\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 _dcbd (rs ,opts ,true ,_ccca );
|
||
};
|
||
|
||
// ColorToRGB converts a Lab color to an RGB color.
|
||
func (_dgead *PdfColorspaceLab )ColorToRGB (color PdfColor )(PdfColor ,error ){_ddeg :=func (_ffdc float64 )float64 {if _ffdc >=6.0/29{return _ffdc *_ffdc *_ffdc ;};return 108.0/841*(_ffdc -4/29);};_egff ,_afdf :=color .(*PdfColorLab );if !_afdf {_eg .Log .Debug ("\u0069\u006e\u0070\u0075t \u0063\u006f\u006c\u006f\u0072\u0020\u006e\u006f\u0074\u0020\u006c\u0061\u0062");
|
||
return nil ,_gf .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};LStar :=_egff .L ();AStar :=_egff .A ();BStar :=_egff .B ();L :=(LStar +16)/116+AStar /500;M :=(LStar +16)/116;N :=(LStar +16)/116-BStar /200;
|
||
X :=_dgead .WhitePoint [0]*_ddeg (L );Y :=_dgead .WhitePoint [1]*_ddeg (M );Z :=_dgead .WhitePoint [2]*_ddeg (N );_aag :=3.240479*X +-1.537150*Y +-0.498535*Z ;_ddba :=-0.969256*X +1.875992*Y +0.041556*Z ;_fccc :=0.055648*X +-0.204043*Y +1.057311*Z ;_aag =_cbg .Min (_cbg .Max (_aag ,0),1.0);
|
||
_ddba =_cbg .Min (_cbg .Max (_ddba ,0),1.0);_fccc =_cbg .Min (_cbg .Max (_fccc ,0),1.0);return NewPdfColorDeviceRGB (_aag ,_ddba ,_fccc ),nil ;};
|
||
|
||
// ToPdfObject returns an indirect object containing the signature field dictionary.
|
||
func (_egec *PdfFieldSignature )ToPdfObject ()_ebb .PdfObject {if _egec .PdfAnnotationWidget !=nil {_egec .PdfAnnotationWidget .ToPdfObject ();};_egec .PdfField .ToPdfObject ();_dfbcc :=_egec ._cdfd ;_deda :=_dfbcc .PdfObject .(*_ebb .PdfObjectDictionary );
|
||
_deda .SetIfNotNil ("\u0046\u0054",_ebb .MakeName ("\u0053\u0069\u0067"));_deda .SetIfNotNil ("\u004c\u006f\u0063\u006b",_egec .Lock );_deda .SetIfNotNil ("\u0053\u0056",_egec .SV );if _egec .V !=nil {_deda .SetIfNotNil ("\u0056",_egec .V .ToPdfObject ());
|
||
};return _dfbcc ;};
|
||
|
||
// NewPdfActionMovie returns a new "movie" action.
|
||
func NewPdfActionMovie ()*PdfActionMovie {_dgab :=NewPdfAction ();_ede :=&PdfActionMovie {};_ede .PdfAction =_dgab ;_dgab .SetContext (_ede );return _ede ;};func (_edec *PdfReader )newPdfActionThreadFromDict (_faf *_ebb .PdfObjectDictionary )(*PdfActionThread ,error ){_caa ,_abd :=_gggf (_faf .Get ("\u0046"));
|
||
if _abd !=nil {return nil ,_abd ;};return &PdfActionThread {D :_faf .Get ("\u0044"),B :_faf .Get ("\u0042"),F :_caa },nil ;};
|
||
|
||
// NewPdfDateFromTime will create a PdfDate based on the given time
|
||
func NewPdfDateFromTime (timeObj _f .Time )(PdfDate ,error ){_fadff :=timeObj .Format ("\u002d\u0030\u0037\u003a\u0030\u0030");_faddf ,_ :=_aa .ParseInt (_fadff [1:3],10,32);_aaadg ,_ :=_aa .ParseInt (_fadff [4:6],10,32);return PdfDate {_dacdd :int64 (timeObj .Year ()),_agaba :int64 (timeObj .Month ()),_edcfe :int64 (timeObj .Day ()),_aedbe :int64 (timeObj .Hour ()),_cfaba :int64 (timeObj .Minute ()),_cgbcd :int64 (timeObj .Second ()),_degeb :_fadff [0],_gcccb :_faddf ,_fddcbg :_aaadg },nil ;
|
||
};func _gefgb (_eaccf []byte )(_fcad ,_gcbd string ,_bgad error ){_eg .Log .Trace ("g\u0065\u0074\u0041\u0053CI\u0049S\u0065\u0063\u0074\u0069\u006fn\u0073\u003a\u0020\u0025\u0064\u0020",len (_eaccf ));_cfff :=_aabec .FindIndex (_eaccf );if _cfff ==nil {_eg .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 "","",_ebb .ErrTypeError ;};_ebfb :=_cfff [1];_dgabg :=_ee .Index (string (_eaccf [_ebfb :]),_aeecf );if _dgabg < 0{_fcad =string (_eaccf [_ebfb :]);return _fcad ,"",nil ;};_gfege :=_ebfb +_dgabg ;_fcad =string (_eaccf [_ebfb :_gfege ]);_egdd :=_gfege ;
|
||
_dgabg =_ee .Index (string (_eaccf [_egdd :]),_ccdgc );if _dgabg < 0{_eg .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",_bgad );
|
||
return "","",_ebb .ErrTypeError ;};_cfef :=_egdd +_dgabg ;_gcbd =string (_eaccf [_egdd :_cfef ]);return _fcad ,_gcbd ,nil ;};func _ageed (_cgbc _ebb .PdfObject )(*PdfColorspaceCalGray ,error ){_agab :=NewPdfColorspaceCalGray ();if _ffbf ,_bagd :=_cgbc .(*_ebb .PdfIndirectObject );
|
||
_bagd {_agab ._bebfd =_ffbf ;};_cgbc =_ebb .TraceToDirectObject (_cgbc );_ddaf ,_ecae :=_cgbc .(*_ebb .PdfObjectArray );if !_ecae {return nil ,_bg .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _ddaf .Len ()!=2{return nil ,_bg .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");
|
||
};_cgbc =_ebb .TraceToDirectObject (_ddaf .Get (0));_aggc ,_ecae :=_cgbc .(*_ebb .PdfObjectName );if !_ecae {return nil ,_bg .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 *_aggc !="\u0043a\u006c\u0047\u0072\u0061\u0079"{return nil ,_bg .Errorf ("\u006eo\u0074\u0020\u0061\u0020\u0043\u0061\u006c\u0047\u0072\u0061\u0079 \u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063\u0065");};_cgbc =_ebb .TraceToDirectObject (_ddaf .Get (1));
|
||
_eeaab ,_ecae :=_cgbc .(*_ebb .PdfObjectDictionary );if !_ecae {return nil ,_bg .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");
|
||
};_cgbc =_eeaab .Get ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074");_cgbc =_ebb .TraceToDirectObject (_cgbc );_eecc ,_ecae :=_cgbc .(*_ebb .PdfObjectArray );if !_ecae {return nil ,_bg .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 _eecc .Len ()!=3{return nil ,_bg .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");};_fceb ,_ffag :=_eecc .GetAsFloat64Slice ();
|
||
if _ffag !=nil {return nil ,_ffag ;};_agab .WhitePoint =_fceb ;_cgbc =_eeaab .Get ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074");if _cgbc !=nil {_cgbc =_ebb .TraceToDirectObject (_cgbc );_beab ,_dbfb :=_cgbc .(*_ebb .PdfObjectArray );
|
||
if !_dbfb {return nil ,_bg .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 _beab .Len ()!=3{return nil ,_bg .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");
|
||
};_ebfac ,_eege :=_beab .GetAsFloat64Slice ();if _eege !=nil {return nil ,_eege ;};_agab .BlackPoint =_ebfac ;};_cgbc =_eeaab .Get ("\u0047\u0061\u006dm\u0061");if _cgbc !=nil {_cgbc =_ebb .TraceToDirectObject (_cgbc );_edcd ,_bafe :=_ebb .GetNumberAsFloat (_cgbc );
|
||
if _bafe !=nil {return nil ,_bg .Errorf ("C\u0061\u006c\u0047\u0072\u0061\u0079:\u0020\u0067\u0061\u006d\u006d\u0061\u0020\u006e\u006ft\u0020\u0061\u0020n\u0075m\u0062\u0065\u0072");};_agab .Gamma =_edcd ;};return _agab ,nil ;};
|
||
|
||
// DecodeArray returns the range of color component values in the Lab colorspace.
|
||
func (_dfdc *PdfColorspaceLab )DecodeArray ()[]float64 {_cagfc :=[]float64 {0,100};if _dfdc .Range !=nil &&len (_dfdc .Range )==4{_cagfc =append (_cagfc ,_dfdc .Range ...);}else {_cagfc =append (_cagfc ,-100,100,-100,100);};return _cagfc ;};
|
||
|
||
// PdfColorPattern represents a pattern color.
|
||
type PdfColorPattern struct{Color PdfColor ;PatternName _ebb .PdfObjectName ;};
|
||
|
||
// GetNumComponents returns the number of color components of the colorspace device.
|
||
// Returns 4 for a CMYK32 device.
|
||
func (_dgfga *PdfColorspaceDeviceCMYK )GetNumComponents ()int {return 4};func (_debba *PdfWriter )makeOffSetReference (_gabff int64 ){_cbcg :=_bg .Sprintf ("\u0073\u0074\u0061\u0072\u0074\u0078\u0072\u0065\u0066\u000a\u0025\u0064\u000a",_gabff );_debba .writeString (_cbcg );
|
||
_debba .writeString ("\u0025\u0025\u0045\u004f\u0046\u000a");};
|
||
|
||
// 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 (_cebe *PdfWriter )SetRotation (rotate int64 )error {_gdgda ,_eaccc :=_ebb .GetDict (_cebe ._dggbf );if !_eaccc {return ErrTypeCheck ;};_gdgda .Set ("\u0052\u006f\u0074\u0061\u0074\u0065",_ebb .MakeInteger (rotate ));return nil ;};func _fbea (_dbadc *PdfField )[]*PdfField {_badac :=[]*PdfField {_dbadc };
|
||
for _ ,_dfbbg :=range _dbadc .Kids {_badac =append (_badac ,_fbea (_dfbbg )...);};return _badac ;};
|
||
|
||
// IsCheckbox returns true if the button field represents a checkbox, false otherwise.
|
||
func (_gcdg *PdfFieldButton )IsCheckbox ()bool {return _gcdg .GetType ()==ButtonTypeCheckbox };
|
||
|
||
// ToPdfObject returns the PDF representation of the shading dictionary.
|
||
func (_acef *PdfShadingType5 )ToPdfObject ()_ebb .PdfObject {_acef .PdfShading .ToPdfObject ();_cebfc ,_cacgg :=_acef .getShadingDict ();if _cacgg !=nil {_eg .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 _acef .BitsPerCoordinate !=nil {_cebfc .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065",_acef .BitsPerCoordinate );};if _acef .BitsPerComponent !=nil {_cebfc .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_acef .BitsPerComponent );
|
||
};if _acef .VerticesPerRow !=nil {_cebfc .Set ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073\u0050e\u0072\u0052\u006f\u0077",_acef .VerticesPerRow );};if _acef .Decode !=nil {_cebfc .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_acef .Decode );};if _acef .Function !=nil {if len (_acef .Function )==1{_cebfc .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_acef .Function [0].ToPdfObject ());
|
||
}else {_eafb :=_ebb .MakeArray ();for _ ,_agbac :=range _acef .Function {_eafb .Append (_agbac .ToPdfObject ());};_cebfc .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_eafb );};};return _acef ._fbfae ;};type pdfFontType3 struct{fontCommon ;_adec *_ebb .PdfIndirectObject ;
|
||
|
||
|
||
// These fields are specific to Type 3 fonts.
|
||
CharProcs _ebb .PdfObject ;Encoding _ebb .PdfObject ;FontBBox _ebb .PdfObject ;FontMatrix _ebb .PdfObject ;FirstChar _ebb .PdfObject ;LastChar _ebb .PdfObject ;Widths _ebb .PdfObject ;Resources _ebb .PdfObject ;_aggbb map[_da .CharCode ]float64 ;_abcba _da .TextEncoder ;
|
||
};
|
||
|
||
// ImageToRGB converts an image with samples in Separation CS to an image with samples specified in
|
||
// DeviceRGB CS.
|
||
func (_cgeg *PdfColorspaceSpecialSeparation )ImageToRGB (img Image )(Image ,error ){_eaab :=_abg .NewReader (img .getBase ());_cfec :=_dg .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),_cgeg .AlternateSpace .GetNumComponents (),nil ,img ._dagcb ,nil );
|
||
_debb :=_abg .NewWriter (_cfec );_eaaf :=_cbg .Pow (2,float64 (img .BitsPerComponent ))-1;_eg .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");
|
||
_eg .Log .Trace ("\u0054i\u006et\u0054\u0072\u0061\u006e\u0073f\u006f\u0072m\u003a\u0020\u0025\u002b\u0076",_cgeg .TintTransform );_bdff :=_cgeg .AlternateSpace .DecodeArray ();var (_eebd uint32 ;_babe error ;);for {_eebd ,_babe =_eaab .ReadSample ();if _babe ==_ab .EOF {break ;
|
||
};if _babe !=nil {return img ,_babe ;};_ebaad :=float64 (_eebd )/_eaaf ;_gebee ,_eeega :=_cgeg .TintTransform .Evaluate ([]float64 {_ebaad });if _eeega !=nil {return img ,_eeega ;};for _cbb ,_acddd :=range _gebee {_dgdbd :=_dg .LinearInterpolate (_acddd ,_bdff [_cbb *2],_bdff [_cbb *2+1],0,1);
|
||
if _eeega =_debb .WriteSample (uint32 (_dgdbd *_eaaf ));_eeega !=nil {return img ,_eeega ;};};};return _cgeg .AlternateSpace .ImageToRGB (_afacb (&_cfec ));};
|
||
|
||
// GetParamsDict returns *core.PdfObjectDictionary with a set of basic image parameters.
|
||
func (_dgfega *Image )GetParamsDict ()*_ebb .PdfObjectDictionary {_bbggd :=_ebb .MakeDict ();_bbggd .Set ("\u0057\u0069\u0064t\u0068",_ebb .MakeInteger (_dgfega .Width ));_bbggd .Set ("\u0048\u0065\u0069\u0067\u0068\u0074",_ebb .MakeInteger (_dgfega .Height ));
|
||
_bbggd .Set ("\u0043o\u006co\u0072\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074\u0073",_ebb .MakeInteger (int64 (_dgfega .ColorComponents )));_bbggd .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_ebb .MakeInteger (_dgfega .BitsPerComponent ));
|
||
return _bbggd ;};
|
||
|
||
// NewPdfActionRendition returns a new "rendition" action.
|
||
func NewPdfActionRendition ()*PdfActionRendition {_dbd :=NewPdfAction ();_bbc :=&PdfActionRendition {};_bbc .PdfAction =_dbd ;_dbd .SetContext (_bbc );return _bbc ;};func (_dfge *PdfWriter )writeOutputIntents ()error {if len (_dfge ._geced )==0{return nil ;
|
||
};_acgfg :=make ([]_ebb .PdfObject ,len (_dfge ._geced ));for _dfafbf ,_bgbfd :=range _dfge ._geced {_cadb :=_bgbfd .ToPdfObject ();_acgfg [_dfafbf ]=_ebb .MakeIndirectObject (_cadb );};_dbee :=_ebb .MakeIndirectObject (_ebb .MakeArray (_acgfg ...));_dfge ._dffegd .Set ("\u004f\u0075\u0074\u0070\u0075\u0074\u0049\u006e\u0074\u0065\u006e\u0074\u0073",_dbee );
|
||
if _abgag :=_dfge .addObjects (_dbee );_abgag !=nil {return _abgag ;};return nil ;};
|
||
|
||
// NewPdfColorLab returns a new Lab color.
|
||
func NewPdfColorLab (l ,a ,b float64 )*PdfColorLab {_abeag :=PdfColorLab {l ,a ,b };return &_abeag };
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_bgbfe *PdfSignature )ToPdfObject ()_ebb .PdfObject {_gbgc :=_bgbfe ._ffbgc ;var _dfcfd *_ebb .PdfObjectDictionary ;if _aagee ,_fbdcb :=_gbgc .PdfObject .(*pdfSignDictionary );_fbdcb {_dfcfd =_aagee .PdfObjectDictionary ;}else {_dfcfd =_gbgc .PdfObject .(*_ebb .PdfObjectDictionary );
|
||
};_dfcfd .SetIfNotNil ("\u0054\u0079\u0070\u0065",_bgbfe .Type );_dfcfd .SetIfNotNil ("\u0046\u0069\u006c\u0074\u0065\u0072",_bgbfe .Filter );_dfcfd .SetIfNotNil ("\u0053u\u0062\u0046\u0069\u006c\u0074\u0065r",_bgbfe .SubFilter );_dfcfd .SetIfNotNil ("\u0042y\u0074\u0065\u0052\u0061\u006e\u0067e",_bgbfe .ByteRange );
|
||
_dfcfd .SetIfNotNil ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073",_bgbfe .Contents );_dfcfd .SetIfNotNil ("\u0043\u0065\u0072\u0074",_bgbfe .Cert );_dfcfd .SetIfNotNil ("\u004e\u0061\u006d\u0065",_bgbfe .Name );_dfcfd .SetIfNotNil ("\u0052\u0065\u0061\u0073\u006f\u006e",_bgbfe .Reason );
|
||
_dfcfd .SetIfNotNil ("\u004d",_bgbfe .M );_dfcfd .SetIfNotNil ("\u0052e\u0066\u0065\u0072\u0065\u006e\u0063e",_bgbfe .Reference );_dfcfd .SetIfNotNil ("\u0043h\u0061\u006e\u0067\u0065\u0073",_bgbfe .Changes );_dfcfd .SetIfNotNil ("C\u006f\u006e\u0074\u0061\u0063\u0074\u0049\u006e\u0066\u006f",_bgbfe .ContactInfo );
|
||
return _gbgc ;};
|
||
|
||
// 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 ){_cffed ,_dfdgfe :=_fd .ParsePdfTime (dateStr );if _dfdgfe !=nil {return PdfDate {},_dfdgfe ;};return NewPdfDateFromTime (_cffed );};
|
||
|
||
// NewPdfAppender creates a new Pdf appender from a Pdf reader.
|
||
func NewPdfAppender (reader *PdfReader )(*PdfAppender ,error ){_fgbb :=&PdfAppender {_ecce :reader ._ggdg ,Reader :reader ,_gege :reader ._cafdf ,_agb :reader ._dfadc };_acfca ,_bbge :=_fgbb ._ecce .Seek (0,_ab .SeekEnd );if _bbge !=nil {return nil ,_bbge ;
|
||
};_fgbb ._bee =_acfca ;if _ ,_bbge =_fgbb ._ecce .Seek (0,_ab .SeekStart );_bbge !=nil {return nil ,_bbge ;};_fgbb ._acfe ,_bbge =NewPdfReader (_fgbb ._ecce );if _bbge !=nil {return nil ,_bbge ;};for _ ,_gcde :=range _fgbb .Reader .GetObjectNums (){if _fgbb ._gbddb < _gcde {_fgbb ._gbddb =_gcde ;
|
||
};};_fgbb ._acfd =_fgbb ._gege .GetXrefTable ();_fgbb ._cfag =_fgbb ._gege .GetXrefOffset ();_fgbb ._dfbg =append (_fgbb ._dfbg ,_fgbb ._acfe .PageList ...);_fgbb ._ddfg =make (map[_ebb .PdfObject ]struct{});_fgbb ._gbfa =make (map[_ebb .PdfObject ]int64 );
|
||
_fgbb ._eebc =make (map[_ebb .PdfObject ]struct{});_fgbb ._bfef =_fgbb ._acfe .AcroForm ;_fgbb ._eged =_fgbb ._acfe .DSS ;return _fgbb ,nil ;};
|
||
|
||
// PdfAnnotationWatermark represents Watermark annotations.
|
||
// (Section 12.5.6.22).
|
||
type PdfAnnotationWatermark struct{*PdfAnnotation ;FixedPrint _ebb .PdfObject ;};
|
||
|
||
// GetAsTilingPattern returns a tiling pattern. Check with IsTiling() prior to using this.
|
||
func (_eggc *PdfPattern )GetAsTilingPattern ()*PdfTilingPattern {return _eggc ._ffagg .(*PdfTilingPattern );};
|
||
|
||
// GetRuneMetrics returns the character metrics for the specified rune.
|
||
// A bool flag is returned to indicate whether or not the entry was found.
|
||
func (_beccf pdfFontType0 )GetRuneMetrics (r rune )(_bad .CharMetrics ,bool ){if _beccf .DescendantFont ==nil {_eg .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",_beccf );
|
||
return _bad .CharMetrics {},false ;};return _beccf .DescendantFont .GetRuneMetrics (r );};
|
||
|
||
// GetContainingPdfObject returns the container of the PdfAcroForm (indirect object).
|
||
func (_ccfac *PdfAcroForm )GetContainingPdfObject ()_ebb .PdfObject {return _ccfac ._adcg };
|
||
|
||
// PdfAnnotationRedact represents Redact annotations.
|
||
// (Section 12.5.6.23).
|
||
type PdfAnnotationRedact struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _ebb .PdfObject ;IC _ebb .PdfObject ;RO _ebb .PdfObject ;OverlayText _ebb .PdfObject ;Repeat _ebb .PdfObject ;DA _ebb .PdfObject ;Q _ebb .PdfObject ;};
|
||
|
||
// Encoder returns the font's text encoder.
|
||
func (_febedc *PdfFont )Encoder ()_da .TextEncoder {_edac :=_febedc .actualFont ();if _edac ==nil {_eg .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",_febedc ._ebcad );
|
||
return nil ;};return _edac .Encoder ();};
|
||
|
||
// GetDescent returns the Descent of the font `descriptor`.
|
||
func (_eegcf *PdfFontDescriptor )GetDescent ()(float64 ,error ){return _ebb .GetNumberAsFloat (_eegcf .Descent );};func (_gccaa *PdfReader )traverseObjectData (_cfabd _ebb .PdfObject )error {return _ebb .ResolveReferencesDeep (_cfabd ,_gccaa ._dfadc );
|
||
};
|
||
|
||
// WriteString outputs the object as it is to be written to file.
|
||
func (_ddeaf *pdfSignDictionary )WriteString ()string {_ddeaf ._eefbe =0;_ddeaf ._adggf =0;_ddeaf ._decgd =0;_ddeaf ._ddceg =0;_eaagd :=_ca .NewBuffer (nil );_eaagd .WriteString ("\u003c\u003c");for _ ,_eaaeac :=range _ddeaf .Keys (){_fgccf :=_ddeaf .Get (_eaaeac );
|
||
switch _eaaeac {case "\u0042y\u0074\u0065\u0052\u0061\u006e\u0067e":_eaagd .WriteString (_eaaeac .WriteString ());_eaagd .WriteString ("\u0020");_ddeaf ._decgd =_eaagd .Len ();_eaagd .WriteString (_fgccf .WriteString ());_eaagd .WriteString ("\u0020");
|
||
_ddeaf ._ddceg =_eaagd .Len ()-1;case "\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073":_eaagd .WriteString (_eaaeac .WriteString ());_eaagd .WriteString ("\u0020");_ddeaf ._eefbe =_eaagd .Len ();_eaagd .WriteString (_fgccf .WriteString ());_eaagd .WriteString ("\u0020");
|
||
_ddeaf ._adggf =_eaagd .Len ()-1;default:_eaagd .WriteString (_eaaeac .WriteString ());_eaagd .WriteString ("\u0020");_eaagd .WriteString (_fgccf .WriteString ());};};_eaagd .WriteString ("\u003e\u003e");return _eaagd .String ();};
|
||
|
||
// 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 (_efcd *PdfColorspaceLab )ColorFromPdfObjects (objects []_ebb .PdfObject )(PdfColor ,error ){if len (objects )!=3{return nil ,_gf .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_geec ,_bccba :=_ebb .GetNumbersAsFloat (objects );
|
||
if _bccba !=nil {return nil ,_bccba ;};return _efcd .ColorFromFloats (_geec );};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_bfdg *PdfAnnotationWidget )ToPdfObject ()_ebb .PdfObject {_bfdg .PdfAnnotation .ToPdfObject ();_bfa :=_bfdg ._bdcd ;_beaa :=_bfa .PdfObject .(*_ebb .PdfObjectDictionary );if _bfdg ._gdga {return _bfa ;};_bfdg ._gdga =true ;_beaa .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ebb .MakeName ("\u0057\u0069\u0064\u0067\u0065\u0074"));
|
||
_beaa .SetIfNotNil ("\u0048",_bfdg .H );_beaa .SetIfNotNil ("\u004d\u004b",_bfdg .MK );_beaa .SetIfNotNil ("\u0041",_bfdg .A );_beaa .SetIfNotNil ("\u0041\u0041",_bfdg .AA );_beaa .SetIfNotNil ("\u0042\u0053",_bfdg .BS );_gcd :=_bfdg .Parent ;if _bfdg ._gce !=nil {if _bfdg ._gce ._cdfd ==_bfdg ._bdcd {_bfdg ._gce .ToPdfObject ();
|
||
};_gcd =_bfdg ._gce .GetContainingPdfObject ();};if _gcd !=_bfa {_beaa .SetIfNotNil ("\u0050\u0061\u0072\u0065\u006e\u0074",_gcd );};_bfdg ._gdga =false ;return _bfa ;};
|
||
|
||
// ColorFromPdfObjects gets the color from a series of pdf objects (4 for cmyk).
|
||
func (_ffeb *PdfColorspaceDeviceCMYK )ColorFromPdfObjects (objects []_ebb .PdfObject )(PdfColor ,error ){if len (objects )!=4{return nil ,_gf .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_feba ,_bded :=_ebb .GetNumbersAsFloat (objects );
|
||
if _bded !=nil {return nil ,_bded ;};return _ffeb .ColorFromFloats (_feba );};func (_ffgc *PdfColorspaceSpecialSeparation )String ()string {return "\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e";};func (_cbe *PdfReader )newPdfActionTransFromDict (_efbe *_ebb .PdfObjectDictionary )(*PdfActionTrans ,error ){return &PdfActionTrans {Trans :_efbe .Get ("\u0054\u0072\u0061n\u0073")},nil ;
|
||
};
|
||
|
||
// 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 _ab .ReadSeeker )(*PdfFont ,error ){_efaaa ,_gfedg :=_ef .ReadAll (r );if _gfedg !=nil {_eg .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",_gfedg );
|
||
return nil ,_gfedg ;};_afcabd ,_gfedg :=_bad .TtfParse (_ca .NewReader (_efaaa ));if _gfedg !=nil {_eg .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",_gfedg );
|
||
return nil ,_gfedg ;};_aafcc :=&pdfCIDFontType2 {fontCommon :fontCommon {_dfbf :"\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032"},CIDToGIDMap :_ebb .MakeName ("\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079")};if len (_afcabd .Widths )<=0{return nil ,_gf .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");
|
||
};_dafee :=1000.0/float64 (_afcabd .UnitsPerEm );_bfeb :=_dafee *float64 (_afcabd .Widths [0]);_ddecg :=make (map[rune ]int );_aedfbc :=make (map[_bad .GID ]int );_fdggd :=_bad .GID (len (_afcabd .Widths ));for _fadbe ,_befd :=range _afcabd .Chars {if _befd > _fdggd -1{continue ;
|
||
};_dgcd :=int (_dafee *float64 (_afcabd .Widths [_befd ]));_ddecg [_fadbe ]=_dgcd ;_aedfbc [_befd ]=_dgcd ;};_aafcc ._dceb =_ddecg ;_aafcc .DW =_ebb .MakeInteger (int64 (_bfeb ));_acgge :=_fgag (_aedfbc ,uint16 (_fdggd ));_aafcc .W =_ebb .MakeIndirectObject (_acgge );
|
||
_fadaa :=_ebb .MakeDict ();_fadaa .Set ("\u004f\u0072\u0064\u0065\u0072\u0069\u006e\u0067",_ebb .MakeString ("\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079"));_fadaa .Set ("\u0052\u0065\u0067\u0069\u0073\u0074\u0072\u0079",_ebb .MakeString ("\u0041\u0064\u006fb\u0065"));
|
||
_fadaa .Set ("\u0053\u0075\u0070\u0070\u006c\u0065\u006d\u0065\u006e\u0074",_ebb .MakeInteger (0));_aafcc .CIDSystemInfo =_fadaa ;_ffbe :=&PdfFontDescriptor {FontName :_ebb .MakeName (_afcabd .PostScriptName ),Ascent :_ebb .MakeFloat (_dafee *float64 (_afcabd .TypoAscender )),Descent :_ebb .MakeFloat (_dafee *float64 (_afcabd .TypoDescender )),CapHeight :_ebb .MakeFloat (_dafee *float64 (_afcabd .CapHeight )),FontBBox :_ebb .MakeArrayFromFloats ([]float64 {_dafee *float64 (_afcabd .Xmin ),_dafee *float64 (_afcabd .Ymin ),_dafee *float64 (_afcabd .Xmax ),_dafee *float64 (_afcabd .Ymax )}),ItalicAngle :_ebb .MakeFloat (_afcabd .ItalicAngle ),MissingWidth :_ebb .MakeFloat (_bfeb )};
|
||
_cbge ,_gfedg :=_ebb .MakeStream (_efaaa ,_ebb .NewFlateEncoder ());if _gfedg !=nil {_eg .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",_gfedg );
|
||
return nil ,_gfedg ;};_cbge .PdfObjectDictionary .Set ("\u004ce\u006e\u0067\u0074\u0068\u0031",_ebb .MakeInteger (int64 (len (_efaaa ))));_ffbe .FontFile2 =_cbge ;if _afcabd .Bold {_ffbe .StemV =_ebb .MakeInteger (120);}else {_ffbe .StemV =_ebb .MakeInteger (70);
|
||
};_fdfgd :=_dffee ;if _afcabd .IsFixedPitch {_fdfgd |=_gfega ;};if _afcabd .ItalicAngle !=0{_fdfgd |=_ccgbe ;};_ffbe .Flags =_ebb .MakeInteger (int64 (_fdfgd ));_aafcc ._fdacg =_afcabd .PostScriptName ;_aafcc ._fbbd =_ffbe ;_cbged :=pdfFontType0 {fontCommon :fontCommon {_dfbf :"\u0054\u0079\u0070e\u0030",_fdacg :_afcabd .PostScriptName },DescendantFont :&PdfFont {_ebcad :_aafcc },Encoding :_ebb .MakeName ("\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079\u002d\u0048"),_bfdgc :_afcabd .NewEncoder ()};
|
||
if len (_afcabd .Chars )> 0{_bgeg :=make (map[_ebe .CharCode ]rune ,len (_afcabd .Chars ));for _aecc ,_caagd :=range _afcabd .Chars {_fcgfg :=_ebe .CharCode (_caagd );if _eebde ,_aadac :=_bgeg [_fcgfg ];!_aadac ||(_aadac &&_eebde > _aecc ){_bgeg [_fcgfg ]=_aecc ;
|
||
};};_cbged ._dcdd =_ebe .NewToUnicodeCMap (_bgeg );};_bdgd :=PdfFont {_ebcad :&_cbged };return &_bdgd ,nil ;};func _fgff (_bgcd *_ebb .PdfIndirectObject )(*PdfOutline ,error ){_bfgbc ,_cedb :=_bgcd .PdfObject .(*_ebb .PdfObjectDictionary );if !_cedb {return nil ,_bg .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");
|
||
};_dgda :=NewPdfOutline ();if _aedfgd :=_bfgbc .Get ("\u0054\u0079\u0070\u0065");_aedfgd !=nil {_cbgd ,_ddad :=_aedfgd .(*_ebb .PdfObjectName );if _ddad {if *_cbgd !="\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0073"{_eg .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",*_cbgd );
|
||
};};};if _bdecd :=_bfgbc .Get ("\u0043\u006f\u0075n\u0074");_bdecd !=nil {_dcddf ,_cddf :=_ebb .GetNumberAsInt64 (_bdecd );if _cddf !=nil {return nil ,_cddf ;};_dgda .Count =&_dcddf ;};return _dgda ,nil ;};
|
||
|
||
// UpdateXObjectImageFromImage creates a new XObject Image from an
|
||
// Image object `img` and default masks from xobjIn.
|
||
// The default masks are overridden if img.hasAlpha
|
||
// If `encoder` is nil, uses raw encoding (none).
|
||
func UpdateXObjectImageFromImage (xobjIn *XObjectImage ,img *Image ,cs PdfColorspace ,encoder _ebb .StreamEncoder )(*XObjectImage ,error ){if encoder ==nil {encoder =_ebb .NewRawEncoder ();};encoder .UpdateParams (img .GetParamsDict ());_dgbg ,_edgdc :=encoder .EncodeBytes (img .Data );
|
||
if _edgdc !=nil {_eg .Log .Debug ("\u0045\u0072\u0072or\u0020\u0077\u0069\u0074\u0068\u0020\u0065\u006e\u0063\u006f\u0064\u0069\u006e\u0067\u003a\u0020\u0025\u0076",_edgdc );return nil ,_edgdc ;};_abfbgf :=NewXObjectImage ();_agdgb :=img .Width ;_geedc :=img .Height ;
|
||
_abfbgf .Width =&_agdgb ;_abfbgf .Height =&_geedc ;_bcbba :=img .BitsPerComponent ;_abfbgf .BitsPerComponent =&_bcbba ;_abfbgf .Filter =encoder ;_abfbgf .Stream =_dgbg ;if cs ==nil {if img .ColorComponents ==1{_abfbgf .ColorSpace =NewPdfColorspaceDeviceGray ();
|
||
}else if img .ColorComponents ==3{_abfbgf .ColorSpace =NewPdfColorspaceDeviceRGB ();}else if img .ColorComponents ==4{_abfbgf .ColorSpace =NewPdfColorspaceDeviceCMYK ();}else {return nil ,_gf .New ("c\u006fl\u006f\u0072\u0073\u0070\u0061\u0063\u0065\u0020u\u006e\u0064\u0065\u0066in\u0065\u0064");
|
||
};}else {_abfbgf .ColorSpace =cs ;};if len (img ._dagcb )!=0{_ddgbdc :=NewXObjectImage ();_ddgbdc .Filter =encoder ;_aafga ,_bfdaa :=encoder .EncodeBytes (img ._dagcb );if _bfdaa !=nil {_eg .Log .Debug ("\u0045\u0072\u0072or\u0020\u0077\u0069\u0074\u0068\u0020\u0065\u006e\u0063\u006f\u0064\u0069\u006e\u0067\u003a\u0020\u0025\u0076",_bfdaa );
|
||
return nil ,_bfdaa ;};_ddgbdc .Stream =_aafga ;_ddgbdc .BitsPerComponent =_abfbgf .BitsPerComponent ;_ddgbdc .Width =&img .Width ;_ddgbdc .Height =&img .Height ;_ddgbdc .ColorSpace =NewPdfColorspaceDeviceGray ();_abfbgf .SMask =_ddgbdc .ToPdfObject ();
|
||
}else {_abfbgf .SMask =xobjIn .SMask ;_abfbgf .ImageMask =xobjIn .ImageMask ;if _abfbgf .ColorSpace .GetNumComponents ()==1{_dddfe (_abfbgf );};};return _abfbgf ,nil ;};
|
||
|
||
// GetModelFromPrimitive returns the model corresponding to the `primitive` PdfObject.
|
||
func (_ffdgf *modelManager )GetModelFromPrimitive (primitive _ebb .PdfObject )PdfModel {model ,_fagb :=_ffdgf ._aabcbdd [primitive ];if !_fagb {return nil ;};return model ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_baee *PdfActionTrans )ToPdfObject ()_ebb .PdfObject {_baee .PdfAction .ToPdfObject ();_gfa :=_baee ._abe ;_bfdf :=_gfa .PdfObject .(*_ebb .PdfObjectDictionary );_bfdf .SetIfNotNil ("\u0053",_ebb .MakeName (string (ActionTypeTrans )));_bfdf .SetIfNotNil ("\u0054\u0072\u0061n\u0073",_baee .Trans );
|
||
return _gfa ;};
|
||
|
||
// PdfActionNamed represents a named action.
|
||
type PdfActionNamed struct{*PdfAction ;N _ebb .PdfObject ;};
|
||
|
||
// SetDecode sets the decode image float slice.
|
||
func (_deag *Image )SetDecode (decode []float64 ){_deag ._dgcea =decode };
|
||
|
||
// PdfAnnotationCircle represents Circle annotations.
|
||
// (Section 12.5.6.8).
|
||
type PdfAnnotationCircle struct{*PdfAnnotation ;*PdfAnnotationMarkup ;BS _ebb .PdfObject ;IC _ebb .PdfObject ;BE _ebb .PdfObject ;RD _ebb .PdfObject ;};
|
||
|
||
// 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 (_bbb *PdfAnnotationWidget )Field ()*PdfField {return _bbb ._gce };
|
||
|
||
// AddOutlineTree adds outlines to a PDF file.
|
||
func (_eggeb *PdfWriter )AddOutlineTree (outlineTree *PdfOutlineTreeNode ){_eggeb ._bcbee =outlineTree };func (_gefe *DSS )generateHashMaps ()error {_fcdcf ,_befe :=_gefe .generateHashMap (_gefe .Certs );if _befe !=nil {return _befe ;};_facc ,_befe :=_gefe .generateHashMap (_gefe .OCSPs );
|
||
if _befe !=nil {return _befe ;};_caad ,_befe :=_gefe .generateHashMap (_gefe .CRLs );if _befe !=nil {return _befe ;};_gefe ._aeag =_fcdcf ;_gefe ._cadd =_facc ;_gefe ._fafgb =_caad ;return nil ;};
|
||
|
||
// ImageToRGB converts Lab colorspace image to RGB and returns the result.
|
||
func (_dcbc *PdfColorspaceLab )ImageToRGB (img Image )(Image ,error ){_febe :=func (_bbdf float64 )float64 {if _bbdf >=6.0/29{return _bbdf *_bbdf *_bbdf ;};return 108.0/841*(_bbdf -4/29);};_fbge :=img ._dgcea ;if len (_fbge )!=6{_eg .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");
|
||
_fbge =_dcbc .DecodeArray ();};_aggfe :=_abg .NewReader (img .getBase ());_edeag :=_dg .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),3,nil ,img ._dagcb ,img ._dgcea );_fca :=_abg .NewWriter (_edeag );_adeg :=_cbg .Pow (2,float64 (img .BitsPerComponent ))-1;
|
||
_ggadb :=make ([]uint32 ,3);var (_bfdc error ;Ls ,As ,Bs ,L ,M ,N ,X ,Y ,Z ,_bbeae ,_gegee ,_dece float64 ;);for {_bfdc =_aggfe .ReadSamples (_ggadb );if _bfdc ==_ab .EOF {break ;}else if _bfdc !=nil {return img ,_bfdc ;};Ls =float64 (_ggadb [0])/_adeg ;
|
||
As =float64 (_ggadb [1])/_adeg ;Bs =float64 (_ggadb [2])/_adeg ;Ls =_dg .LinearInterpolate (Ls ,0.0,1.0,_fbge [0],_fbge [1]);As =_dg .LinearInterpolate (As ,0.0,1.0,_fbge [2],_fbge [3]);Bs =_dg .LinearInterpolate (Bs ,0.0,1.0,_fbge [4],_fbge [5]);L =(Ls +16)/116+As /500;
|
||
M =(Ls +16)/116;N =(Ls +16)/116-Bs /200;X =_dcbc .WhitePoint [0]*_febe (L );Y =_dcbc .WhitePoint [1]*_febe (M );Z =_dcbc .WhitePoint [2]*_febe (N );_bbeae =3.240479*X +-1.537150*Y +-0.498535*Z ;_gegee =-0.969256*X +1.875992*Y +0.041556*Z ;_dece =0.055648*X +-0.204043*Y +1.057311*Z ;
|
||
_bbeae =_cbg .Min (_cbg .Max (_bbeae ,0),1.0);_gegee =_cbg .Min (_cbg .Max (_gegee ,0),1.0);_dece =_cbg .Min (_cbg .Max (_dece ,0),1.0);_ggadb [0]=uint32 (_bbeae *_adeg );_ggadb [1]=uint32 (_gegee *_adeg );_ggadb [2]=uint32 (_dece *_adeg );if _bfdc =_fca .WriteSamples (_ggadb );
|
||
_bfdc !=nil {return img ,_bfdc ;};};return _afacb (&_edeag ),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 (_dbaef *PdfColorspaceSpecialPattern )ColorToRGB (color PdfColor )(PdfColor ,error ){_fabce ,_gfdc :=color .(*PdfColorPattern );if !_gfdc {_eg .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 _fabce .Color ==nil {return color ,nil ;};if _dbaef .UnderlyingCS ==nil {return nil ,_gf .New ("\u0075n\u0064\u0065\u0072\u006cy\u0069\u006e\u0067\u0020\u0043S\u0020n\u006ft\u0020\u0064\u0065\u0066\u0069\u006e\u0065d");};
|
||
return _dbaef .UnderlyingCS .ColorToRGB (_fabce .Color );};
|
||
|
||
// ToPdfObject returns the PDF representation of the function.
|
||
func (_gbebc *PdfFunctionType4 )ToPdfObject ()_ebb .PdfObject {_fdfaa :=_gbebc ._gbgd ;if _fdfaa ==nil {_gbebc ._gbgd =&_ebb .PdfObjectStream {};_fdfaa =_gbebc ._gbgd ;};_fffb :=_ebb .MakeDict ();_fffb .Set ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065",_ebb .MakeInteger (4));
|
||
_agaag :=&_ebb .PdfObjectArray {};for _ ,_bcggc :=range _gbebc .Domain {_agaag .Append (_ebb .MakeFloat (_bcggc ));};_fffb .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_agaag );_dbaa :=&_ebb .PdfObjectArray {};for _ ,_bcgd :=range _gbebc .Range {_dbaa .Append (_ebb .MakeFloat (_bcgd ));
|
||
};_fffb .Set ("\u0052\u0061\u006eg\u0065",_dbaa );if _gbebc ._abbbb ==nil &&_gbebc .Program !=nil {_gbebc ._abbbb =[]byte (_gbebc .Program .String ());};_fffb .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_ebb .MakeInteger (int64 (len (_gbebc ._abbbb ))));
|
||
_fdfaa .Stream =_gbebc ._abbbb ;_fdfaa .PdfObjectDictionary =_fffb ;return _fdfaa ;};func (_acfc *PdfReader )newPdfAnnotationFileAttachmentFromDict (_ggbc *_ebb .PdfObjectDictionary )(*PdfAnnotationFileAttachment ,error ){_aaa :=PdfAnnotationFileAttachment {};
|
||
_ggde ,_ggdd :=_acfc .newPdfAnnotationMarkupFromDict (_ggbc );if _ggdd !=nil {return nil ,_ggdd ;};_aaa .PdfAnnotationMarkup =_ggde ;_aaa .FS =_ggbc .Get ("\u0046\u0053");_aaa .Name =_ggbc .Get ("\u004e\u0061\u006d\u0065");return &_aaa ,nil ;};
|
||
|
||
// NewPdfAppenderWithOpts creates a new Pdf appender from a Pdf reader with options.
|
||
func NewPdfAppenderWithOpts (reader *PdfReader ,opts *ReaderOpts ,encryptOptions *EncryptOptions )(*PdfAppender ,error ){_eff :=&PdfAppender {_ecce :reader ._ggdg ,Reader :reader ,_gege :reader ._cafdf ,_agb :reader ._dfadc };_bcgf ,_babb :=_eff ._ecce .Seek (0,_ab .SeekEnd );
|
||
if _babb !=nil {return nil ,_babb ;};_eff ._bee =_bcgf ;if _ ,_babb =_eff ._ecce .Seek (0,_ab .SeekStart );_babb !=nil {return nil ,_babb ;};_eff ._acfe ,_babb =NewPdfReaderWithOpts (_eff ._ecce ,opts );if _babb !=nil {return nil ,_babb ;};for _ ,_dce :=range _eff .Reader .GetObjectNums (){if _eff ._gbddb < _dce {_eff ._gbddb =_dce ;
|
||
};};_eff ._acfd =_eff ._gege .GetXrefTable ();_eff ._cfag =_eff ._gege .GetXrefOffset ();_eff ._dfbg =append (_eff ._dfbg ,_eff ._acfe .PageList ...);_eff ._ddfg =make (map[_ebb .PdfObject ]struct{});_eff ._gbfa =make (map[_ebb .PdfObject ]int64 );_eff ._eebc =make (map[_ebb .PdfObject ]struct{});
|
||
_eff ._bfef =_eff ._acfe .AcroForm ;_eff ._eged =_eff ._acfe .DSS ;if opts !=nil {_eff ._accg =opts .Password ;};if encryptOptions !=nil {_eff ._gfba =encryptOptions ;};return _eff ,nil ;};func (_ebfae *Image )resampleLowBits (_ccbdd []uint32 ){_egddc :=_dg .BytesPerLine (int (_ebfae .Width ),int (_ebfae .BitsPerComponent ),_ebfae .ColorComponents );
|
||
_gfec :=make ([]byte ,_ebfae .ColorComponents *_egddc *int (_ebfae .Height ));_eaffg :=int (_ebfae .BitsPerComponent )*_ebfae .ColorComponents *int (_ebfae .Width );_aeccf :=uint8 (8);var (_dagb ,_ffeac int ;_agdgf uint32 ;);for _afcgd :=0;_afcgd < int (_ebfae .Height );
|
||
_afcgd ++{_ffeac =_afcgd *_egddc ;for _fcfa :=0;_fcfa < _eaffg ;_fcfa ++{_agdgf =_ccbdd [_dagb ];_aeccf -=uint8 (_ebfae .BitsPerComponent );_gfec [_ffeac ]|=byte (_agdgf )<<_aeccf ;if _aeccf ==0{_aeccf =8;_ffeac ++;};_dagb ++;};};_ebfae .Data =_gfec ;};
|
||
|
||
|
||
// NewPdfColorDeviceRGB returns a new PdfColorDeviceRGB based on the r,g,b component values.
|
||
func NewPdfColorDeviceRGB (r ,g ,b float64 )*PdfColorDeviceRGB {_aggd :=PdfColorDeviceRGB {r ,g ,b };return &_aggd ;};
|
||
|
||
// GetPdfVersion gets the version of the PDF used within this document.
|
||
func (_ffgcfe *PdfWriter )GetPdfVersion ()string {return _ffgcfe .getPdfVersion ()};
|
||
|
||
// GetContentStreamObjs returns a slice of PDF objects containing the content
|
||
// streams of the page.
|
||
func (_aafg *PdfPage )GetContentStreamObjs ()[]_ebb .PdfObject {if _aafg .Contents ==nil {return nil ;};_bfgd :=_ebb .TraceToDirectObject (_aafg .Contents );if _aeaba ,_eeba :=_bfgd .(*_ebb .PdfObjectArray );_eeba {return _aeaba .Elements ();};return []_ebb .PdfObject {_bfgd };
|
||
};func _agdbf (_cbffe []*_ebb .PdfObjectStream )*_ebb .PdfObjectArray {if len (_cbffe )==0{return nil ;};_gdcfa :=make ([]_ebb .PdfObject ,0,len (_cbffe ));for _ ,_gdcae :=range _cbffe {_gdcfa =append (_gdcfa ,_gdcae );};return _ebb .MakeArray (_gdcfa ...);
|
||
};
|
||
|
||
// NewPdfPageResourcesFromDict creates and returns a new PdfPageResources object
|
||
// from the input dictionary.
|
||
func NewPdfPageResourcesFromDict (dict *_ebb .PdfObjectDictionary )(*PdfPageResources ,error ){_afecd :=NewPdfPageResources ();if _fbfdd :=dict .Get ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e");_fbfdd !=nil {_afecd .ExtGState =_fbfdd ;};if _bbdde :=dict .Get ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065");
|
||
_bbdde !=nil &&!_ebb .IsNullObject (_bbdde ){_afecd .ColorSpace =_bbdde ;};if _cfgea :=dict .Get ("\u0050a\u0074\u0074\u0065\u0072\u006e");_cfgea !=nil {_afecd .Pattern =_cfgea ;};if _cbeef :=dict .Get ("\u0053h\u0061\u0064\u0069\u006e\u0067");_cbeef !=nil {_afecd .Shading =_cbeef ;
|
||
};if _ecedf :=dict .Get ("\u0058O\u0062\u006a\u0065\u0063\u0074");_ecedf !=nil {_afecd .XObject =_ecedf ;};if _efffc :=_ebb .ResolveReference (dict .Get ("\u0046\u006f\u006e\u0074"));_efffc !=nil {_afecd .Font =_efffc ;};if _acdgfc :=dict .Get ("\u0050r\u006f\u0063\u0053\u0065\u0074");
|
||
_acdgfc !=nil {_afecd .ProcSet =_acdgfc ;};if _acdfa :=dict .Get ("\u0050\u0072\u006f\u0070\u0065\u0072\u0074\u0069\u0065\u0073");_acdfa !=nil {_afecd .Properties =_acdfa ;};return _afecd ,nil ;};
|
||
|
||
// NewPdfColorspaceCalRGB returns a new CalRGB colorspace object.
|
||
func NewPdfColorspaceCalRGB ()*PdfColorspaceCalRGB {_adfe :=&PdfColorspaceCalRGB {};_adfe .BlackPoint =[]float64 {0.0,0.0,0.0};_adfe .Gamma =[]float64 {1.0,1.0,1.0};_adfe .Matrix =[]float64 {1,0,0,0,1,0,0,0,1};return _adfe ;};
|
||
|
||
// NewPdfAnnotationText returns a new text annotation.
|
||
func NewPdfAnnotationText ()*PdfAnnotationText {_dca :=NewPdfAnnotation ();_ddf :=&PdfAnnotationText {};_ddf .PdfAnnotation =_dca ;_ddf .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_dca .SetContext (_ddf );return _ddf ;};
|
||
|
||
// GetContentStream returns the XObject Form's content stream.
|
||
func (_facd *XObjectForm )GetContentStream ()([]byte ,error ){_gbgbd ,_eaea :=_ebb .DecodeStream (_facd ._gebcd );if _eaea !=nil {return nil ,_eaea ;};return _gbgbd ,nil ;};
|
||
|
||
// SetDSS sets the DSS dictionary (ETSI TS 102 778-4 V1.1.1) of the current
|
||
// document revision.
|
||
func (_dgce *PdfAppender )SetDSS (dss *DSS ){if dss !=nil {_dgce .updateObjectsDeep (dss .ToPdfObject (),nil );};_dgce ._eged =dss ;};
|
||
|
||
// PdfAnnotationStamp represents Stamp annotations.
|
||
// (Section 12.5.6.12).
|
||
type PdfAnnotationStamp struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Name _ebb .PdfObject ;};
|
||
|
||
// ToPdfObject converts colorspace to a PDF object. [/Indexed base hival lookup]
|
||
func (_bcge *PdfColorspaceSpecialIndexed )ToPdfObject ()_ebb .PdfObject {_bgee :=_ebb .MakeArray (_ebb .MakeName ("\u0049n\u0064\u0065\u0078\u0065\u0064"));_bgee .Append (_bcge .Base .ToPdfObject ());_bgee .Append (_ebb .MakeInteger (int64 (_bcge .HiVal )));
|
||
_bgee .Append (_bcge .Lookup );if _bcge ._gdaef !=nil {_bcge ._gdaef .PdfObject =_bgee ;return _bcge ._gdaef ;};return _bgee ;};func (_cdede *PdfWriter )copyObject (_ffcfb _ebb .PdfObject ,_fdfb map[_ebb .PdfObject ]_ebb .PdfObject ,_gaecbf map[_ebb .PdfObject ]struct{},_fgcaf bool )_ebb .PdfObject {_ggedd :=!_cdede ._abffb &&_gaecbf !=nil ;
|
||
if _bcdge ,_dabdc :=_fdfb [_ffcfb ];_dabdc {if _ggedd &&!_fgcaf {delete (_gaecbf ,_ffcfb );};return _bcdge ;};_efbcd :=_ffcfb ;switch _addcg :=_ffcfb .(type ){case *_ebb .PdfObjectArray :_fadde :=_ebb .MakeArray ();_efbcd =_fadde ;_fdfb [_ffcfb ]=_efbcd ;
|
||
for _ ,_gdcbdg :=range _addcg .Elements (){_fadde .Append (_cdede .copyObject (_gdcbdg ,_fdfb ,_gaecbf ,_fgcaf ));};case *_ebb .PdfObjectStreams :_agdcf :=&_ebb .PdfObjectStreams {PdfObjectReference :_addcg .PdfObjectReference };_efbcd =_agdcf ;_fdfb [_ffcfb ]=_efbcd ;
|
||
for _ ,_bdacb :=range _addcg .Elements (){_agdcf .Append (_cdede .copyObject (_bdacb ,_fdfb ,_gaecbf ,_fgcaf ));};case *_ebb .PdfObjectStream :_fgfde :=&_ebb .PdfObjectStream {Stream :_addcg .Stream ,PdfObjectReference :_addcg .PdfObjectReference };_efbcd =_fgfde ;
|
||
_fdfb [_ffcfb ]=_efbcd ;_fgfde .PdfObjectDictionary =_cdede .copyObject (_addcg .PdfObjectDictionary ,_fdfb ,_gaecbf ,_fgcaf ).(*_ebb .PdfObjectDictionary );case *_ebb .PdfObjectDictionary :var _aefec bool ;if _ggedd &&!_fgcaf {if _ggeccg ,_ :=_ebb .GetNameVal (_addcg .Get ("\u0054\u0079\u0070\u0065"));
|
||
_ggeccg =="\u0050\u0061\u0067\u0065"{_ ,_fffde :=_cdede ._afbdd [_addcg ];_fgcaf =!_fffde ;_aefec =_fgcaf ;};};_eeeaa :=_ebb .MakeDict ();_efbcd =_eeeaa ;_fdfb [_ffcfb ]=_efbcd ;for _ ,_fbbc :=range _addcg .Keys (){_eeeaa .Set (_fbbc ,_cdede .copyObject (_addcg .Get (_fbbc ),_fdfb ,_gaecbf ,_fgcaf ));
|
||
};if _aefec {_efbcd =_ebb .MakeNull ();_fgcaf =false ;};case *_ebb .PdfIndirectObject :_gggbb :=&_ebb .PdfIndirectObject {PdfObjectReference :_addcg .PdfObjectReference };_efbcd =_gggbb ;_fdfb [_ffcfb ]=_efbcd ;_gggbb .PdfObject =_cdede .copyObject (_addcg .PdfObject ,_fdfb ,_gaecbf ,_fgcaf );
|
||
case *_ebb .PdfObjectString :_dcaec :=*_addcg ;_efbcd =&_dcaec ;_fdfb [_ffcfb ]=_efbcd ;case *_ebb .PdfObjectName :_adfd :=*_addcg ;_efbcd =&_adfd ;_fdfb [_ffcfb ]=_efbcd ;case *_ebb .PdfObjectNull :_efbcd =_ebb .MakeNull ();_fdfb [_ffcfb ]=_efbcd ;case *_ebb .PdfObjectInteger :_ggfgc :=*_addcg ;
|
||
_efbcd =&_ggfgc ;_fdfb [_ffcfb ]=_efbcd ;case *_ebb .PdfObjectReference :_cgbeb :=*_addcg ;_efbcd =&_cgbeb ;_fdfb [_ffcfb ]=_efbcd ;case *_ebb .PdfObjectFloat :_gabd :=*_addcg ;_efbcd =&_gabd ;_fdfb [_ffcfb ]=_efbcd ;case *_ebb .PdfObjectBool :_eaadd :=*_addcg ;
|
||
_efbcd =&_eaadd ;_fdfb [_ffcfb ]=_efbcd ;case *pdfSignDictionary :_gacbgf :=&pdfSignDictionary {PdfObjectDictionary :_ebb .MakeDict (),_dcfab :_addcg ._dcfab ,_bead :_addcg ._bead };_efbcd =_gacbgf ;_fdfb [_ffcfb ]=_efbcd ;for _ ,_gabac :=range _addcg .Keys (){_gacbgf .Set (_gabac ,_cdede .copyObject (_addcg .Get (_gabac ),_fdfb ,_gaecbf ,_fgcaf ));
|
||
};default:_eg .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",_ffcfb );
|
||
};if _ggedd &&_fgcaf {_gaecbf [_ffcfb ]=struct{}{};};return _efbcd ;};
|
||
|
||
// NewPdfAcroForm returns a new PdfAcroForm with an intialized container (indirect object).
|
||
func NewPdfAcroForm ()*PdfAcroForm {return &PdfAcroForm {Fields :&[]*PdfField {},_adcg :_ebb .MakeIndirectObject (_ebb .MakeDict ())};};
|
||
|
||
// UpdateObject marks `obj` as updated and to be included in the following revision.
|
||
func (_fdfg *PdfAppender )UpdateObject (obj _ebb .PdfObject ){_fdfg .replaceObject (obj ,obj );if _ ,_caee :=_fdfg ._ddfg [obj ];!_caee {_fdfg ._bfeg =append (_fdfg ._bfeg ,obj );_fdfg ._ddfg [obj ]=struct{}{};};};func _cfgdf (_acdg *_ebb .PdfObjectDictionary )(*PdfFieldText ,error ){_babeb :=&PdfFieldText {};
|
||
_babeb .DA ,_ =_ebb .GetString (_acdg .Get ("\u0044\u0041"));_babeb .Q ,_ =_ebb .GetInt (_acdg .Get ("\u0051"));_babeb .DS ,_ =_ebb .GetString (_acdg .Get ("\u0044\u0053"));_babeb .RV =_acdg .Get ("\u0052\u0056");_babeb .MaxLen ,_ =_ebb .GetInt (_acdg .Get ("\u004d\u0061\u0078\u004c\u0065\u006e"));
|
||
return _babeb ,nil ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_dgfa *PdfTransformParamsDocMDP )ToPdfObject ()_ebb .PdfObject {_aefdg :=_ebb .MakeDict ();_aefdg .SetIfNotNil ("\u0054\u0079\u0070\u0065",_dgfa .Type );_aefdg .SetIfNotNil ("\u0056",_dgfa .V );_aefdg .SetIfNotNil ("\u0050",_dgfa .P );return _aefdg ;
|
||
};func (_bbadg *PdfWriter )checkPendingObjects (){for _gbfff ,_gcedb :=range _bbadg ._eefeb {if !_bbadg .hasObject (_gbfff ){_eg .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",_gbfff ,_gbfff ,_gbfff );
|
||
for _ ,_dggdfbc :=range _gcedb {for _ ,_efcfc :=range _dggdfbc .Keys (){_babdf :=_dggdfbc .Get (_efcfc );if _babdf ==_gbfff {_eg .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");
|
||
_dggdfbc .Set (_efcfc ,_ebb .MakeNull ());break ;};};};};};};
|
||
|
||
// CharMetrics represents width and height metrics of a glyph.
|
||
type CharMetrics =_bad .CharMetrics ;func (_fgca *PdfSignature )extractChainFromCert ()([]*_g .Certificate ,error ){var _cafgga *_ebb .PdfObjectArray ;switch _fffad :=_fgca .Cert .(type ){case *_ebb .PdfObjectString :_cafgga =_ebb .MakeArray (_fffad );
|
||
case *_ebb .PdfObjectArray :_cafgga =_fffad ;default:return nil ,_bg .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",_fffad );
|
||
};var _bedcd _ca .Buffer ;for _ ,_ccdga :=range _cafgga .Elements (){_fgcac ,_beba :=_ebb .GetString (_ccdga );if !_beba {return nil ,_bg .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",_ccdga );
|
||
};if _ ,_bcfae :=_bedcd .Write (_fgcac .Bytes ());_bcfae !=nil {return nil ,_bcfae ;};};return _g .ParseCertificates (_bedcd .Bytes ());};func (_ggbe *PdfReader )newPdfAnnotationPolyLineFromDict (_gbac *_ebb .PdfObjectDictionary )(*PdfAnnotationPolyLine ,error ){_acggf :=PdfAnnotationPolyLine {};
|
||
_dgfd ,_bcb :=_ggbe .newPdfAnnotationMarkupFromDict (_gbac );if _bcb !=nil {return nil ,_bcb ;};_acggf .PdfAnnotationMarkup =_dgfd ;_acggf .Vertices =_gbac .Get ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073");_acggf .LE =_gbac .Get ("\u004c\u0045");
|
||
_acggf .BS =_gbac .Get ("\u0042\u0053");_acggf .IC =_gbac .Get ("\u0049\u0043");_acggf .BE =_gbac .Get ("\u0042\u0045");_acggf .IT =_gbac .Get ("\u0049\u0054");_acggf .Measure =_gbac .Get ("\u004de\u0061\u0073\u0075\u0072\u0065");return &_acggf ,nil ;};
|
||
func (_gceb *PdfReader )buildPageList (_gdafg *_ebb .PdfIndirectObject ,_cbaadb *_ebb .PdfIndirectObject ,_gbggf map[_ebb .PdfObject ]struct{})error {if _gdafg ==nil {return nil ;};if _ ,_dceef :=_gbggf [_gdafg ];_dceef {_eg .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",_gdafg .ObjectNumber );
|
||
return nil ;};_gbggf [_gdafg ]=struct{}{};_bcaaa ,_cbegc :=_gdafg .PdfObject .(*_ebb .PdfObjectDictionary );if !_cbegc {return _gf .New ("n\u006f\u0064\u0065\u0020no\u0074 \u0061\u0020\u0064\u0069\u0063t\u0069\u006f\u006e\u0061\u0072\u0079");};_afcabe ,_cbegc :=(*_bcaaa ).Get ("\u0054\u0079\u0070\u0065").(*_ebb .PdfObjectName );
|
||
if !_cbegc {if _bcaaa .Get ("\u004b\u0069\u0064\u0073")==nil {return _gf .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");};_eg .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.");
|
||
_afcabe =_ebb .MakeName ("\u0050\u0061\u0067e\u0073");_bcaaa .Set ("\u0054\u0079\u0070\u0065",_afcabe );};_eg .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",*_afcabe ,_gdafg );
|
||
if *_afcabe =="\u0050\u0061\u0067\u0065"{_bgfade ,_efbc :=_gceb .newPdfPageFromDict (_bcaaa );if _efbc !=nil {return _efbc ;};_bgfade .setContainer (_gdafg );if _cbaadb !=nil {_bcaaa .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_cbaadb );};_gceb ._faebb =append (_gceb ._faebb ,_gdafg );
|
||
_gceb .PageList =append (_gceb .PageList ,_bgfade );return nil ;};if *_afcabe !="\u0050\u0061\u0067e\u0073"{_eg .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",_afcabe );
|
||
return _gf .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 _cbaadb !=nil {_bcaaa .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_cbaadb );};if !_gceb ._ceefa {_fgcca :=_gceb .traverseObjectData (_gdafg );if _fgcca !=nil {return _fgcca ;};};_gfede ,_dddce :=_gceb ._cafdf .Resolve (_bcaaa .Get ("\u004b\u0069\u0064\u0073"));
|
||
if _dddce !=nil {_eg .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 _dddce ;};var _fadfc *_ebb .PdfObjectArray ;
|
||
_fadfc ,_cbegc =_gfede .(*_ebb .PdfObjectArray );if !_cbegc {_cbgge ,_efab :=_gfede .(*_ebb .PdfIndirectObject );if !_efab {return _gf .New ("\u0069\u006e\u0076\u0061li\u0064\u0020\u004b\u0069\u0064\u0073\u0020\u006f\u0062\u006a\u0065\u0063\u0074");};_fadfc ,_cbegc =_cbgge .PdfObject .(*_ebb .PdfObjectArray );
|
||
if !_cbegc {return _gf .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");};};_eg .Log .Trace ("\u004b\u0069\u0064\u0073\u003a\u0020\u0025\u0073",_fadfc );
|
||
for _affge ,_edcbbc :=range _fadfc .Elements (){_edefe ,_fdfaf :=_ebb .GetIndirect (_edcbbc );if !_fdfaf {_eg .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",_edefe );
|
||
return _gf .New ("\u0070a\u0067\u0065\u0020\u006e\u006f\u0074\u0020\u0069\u006e\u0064\u0069r\u0065\u0063\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074");};_fadfc .Set (_affge ,_edefe );_dddce =_gceb .buildPageList (_edefe ,_gdafg ,_gbggf );if _dddce !=nil {return _dddce ;
|
||
};};return nil ;};
|
||
|
||
// ImageToRGB converts CalRGB colorspace image to RGB and returns the result.
|
||
func (_eaed *PdfColorspaceCalRGB )ImageToRGB (img Image )(Image ,error ){_dcba :=_abg .NewReader (img .getBase ());_acdc :=_dg .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),3,nil ,nil ,nil );_ffd :=_abg .NewWriter (_acdc );
|
||
_gebe :=_cbg .Pow (2,float64 (img .BitsPerComponent ))-1;_gbca :=make ([]uint32 ,3);var (_fbaa error ;_eeeg ,_aee ,_bgeaf ,_eeddbe ,_gcfg ,_feff float64 ;);for {_fbaa =_dcba .ReadSamples (_gbca );if _fbaa ==_ab .EOF {break ;}else if _fbaa !=nil {return img ,_fbaa ;
|
||
};_eeeg =float64 (_gbca [0])/_gebe ;_aee =float64 (_gbca [1])/_gebe ;_bgeaf =float64 (_gbca [2])/_gebe ;_eeddbe =_eaed .Matrix [0]*_cbg .Pow (_eeeg ,_eaed .Gamma [0])+_eaed .Matrix [3]*_cbg .Pow (_aee ,_eaed .Gamma [1])+_eaed .Matrix [6]*_cbg .Pow (_bgeaf ,_eaed .Gamma [2]);
|
||
_gcfg =_eaed .Matrix [1]*_cbg .Pow (_eeeg ,_eaed .Gamma [0])+_eaed .Matrix [4]*_cbg .Pow (_aee ,_eaed .Gamma [1])+_eaed .Matrix [7]*_cbg .Pow (_bgeaf ,_eaed .Gamma [2]);_feff =_eaed .Matrix [2]*_cbg .Pow (_eeeg ,_eaed .Gamma [0])+_eaed .Matrix [5]*_cbg .Pow (_aee ,_eaed .Gamma [1])+_eaed .Matrix [8]*_cbg .Pow (_bgeaf ,_eaed .Gamma [2]);
|
||
_eeeg =3.240479*_eeddbe +-1.537150*_gcfg +-0.498535*_feff ;_aee =-0.969256*_eeddbe +1.875992*_gcfg +0.041556*_feff ;_bgeaf =0.055648*_eeddbe +-0.204043*_gcfg +1.057311*_feff ;_eeeg =_cbg .Min (_cbg .Max (_eeeg ,0),1.0);_aee =_cbg .Min (_cbg .Max (_aee ,0),1.0);
|
||
_bgeaf =_cbg .Min (_cbg .Max (_bgeaf ,0),1.0);_gbca [0]=uint32 (_eeeg *_gebe );_gbca [1]=uint32 (_aee *_gebe );_gbca [2]=uint32 (_bgeaf *_gebe );if _fbaa =_ffd .WriteSamples (_gbca );_fbaa !=nil {return img ,_fbaa ;};};return _afacb (&_acdc ),nil ;};
|
||
|
||
// AppendContentStream adds content stream by string. Appends to the last
|
||
// contentstream instance if many.
|
||
func (_bgec *PdfPage )AppendContentStream (contentStr string )error {_cfae ,_cdadf :=_bgec .GetContentStreams ();if _cdadf !=nil {return _cdadf ;};if len (_cfae )==0{_cfae =[]string {contentStr };return _bgec .SetContentStreams (_cfae ,_ebb .NewFlateEncoder ());
|
||
};var _fdec _ca .Buffer ;_fdec .WriteString (_cfae [len (_cfae )-1]);_fdec .WriteString ("\u000a");_fdec .WriteString (contentStr );_cfae [len (_cfae )-1]=_fdec .String ();return _bgec .SetContentStreams (_cfae ,_ebb .NewFlateEncoder ());};func (_gdedc *PdfWriter )addObject (_cdcgd _ebb .PdfObject )bool {_bdfga :=_gdedc .hasObject (_cdcgd );
|
||
if !_bdfga {_aeaa :=_ebb .ResolveReferencesDeep (_cdcgd ,_gdedc ._dcfg );if _aeaa !=nil {_eg .Log .Debug ("E\u0052R\u004f\u0052\u003a\u0020\u0025\u0076\u0020\u002d \u0073\u006b\u0069\u0070pi\u006e\u0067",_aeaa );};_gdedc ._ebdgg =append (_gdedc ._ebdgg ,_cdcgd );
|
||
_gdedc ._ffffd [_cdcgd ]=struct{}{};return true ;};return false ;};
|
||
|
||
// AllFields returns a flattened list of all fields in the form.
|
||
func (_cgbbga *PdfAcroForm )AllFields ()[]*PdfField {if _cgbbga ==nil {return nil ;};var _baad []*PdfField ;if _cgbbga .Fields !=nil {for _ ,_ebgb :=range *_cgbbga .Fields {_baad =append (_baad ,_fbea (_ebgb )...);};};return _baad ;};
|
||
|
||
// PdfColorspaceDeviceGray represents a grayscale colorspace.
|
||
type PdfColorspaceDeviceGray struct{};
|
||
|
||
// 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 *_ebb .PdfObjectInteger ;TilingType *_ebb .PdfObjectInteger ;BBox *PdfRectangle ;XStep *_ebb .PdfObjectFloat ;YStep *_ebb .PdfObjectFloat ;Resources *PdfPageResources ;Matrix *_ebb .PdfObjectArray ;};
|
||
func (_bdbc *PdfReader )newPdfAnnotationFreeTextFromDict (_ababc *_ebb .PdfObjectDictionary )(*PdfAnnotationFreeText ,error ){_ccbf :=PdfAnnotationFreeText {};_adfb ,_fdc :=_bdbc .newPdfAnnotationMarkupFromDict (_ababc );if _fdc !=nil {return nil ,_fdc ;
|
||
};_ccbf .PdfAnnotationMarkup =_adfb ;_ccbf .DA =_ababc .Get ("\u0044\u0041");_ccbf .Q =_ababc .Get ("\u0051");_ccbf .RC =_ababc .Get ("\u0052\u0043");_ccbf .DS =_ababc .Get ("\u0044\u0053");_ccbf .CL =_ababc .Get ("\u0043\u004c");_ccbf .IT =_ababc .Get ("\u0049\u0054");
|
||
_ccbf .BE =_ababc .Get ("\u0042\u0045");_ccbf .RD =_ababc .Get ("\u0052\u0044");_ccbf .BS =_ababc .Get ("\u0042\u0053");_ccbf .LE =_ababc .Get ("\u004c\u0045");return &_ccbf ,nil ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_efb *PdfActionResetForm )ToPdfObject ()_ebb .PdfObject {_efb .PdfAction .ToPdfObject ();_aeb :=_efb ._abe ;_bcf :=_aeb .PdfObject .(*_ebb .PdfObjectDictionary );_bcf .SetIfNotNil ("\u0053",_ebb .MakeName (string (ActionTypeResetForm )));_bcf .SetIfNotNil ("\u0046\u0069\u0065\u006c\u0064\u0073",_efb .Fields );
|
||
_bcf .SetIfNotNil ("\u0046\u006c\u0061g\u0073",_efb .Flags );return _aeb ;};var ErrColorOutOfRange =_gf .New ("\u0063o\u006co\u0072\u0020\u006f\u0075\u0074 \u006f\u0066 \u0072\u0061\u006e\u0067\u0065");
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_edae *PdfAnnotationStrikeOut )ToPdfObject ()_ebb .PdfObject {_edae .PdfAnnotation .ToPdfObject ();_ffeag :=_edae ._bdcd ;_abad :=_ffeag .PdfObject .(*_ebb .PdfObjectDictionary );_edae .PdfAnnotationMarkup .appendToPdfDictionary (_abad );_abad .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ebb .MakeName ("\u0053t\u0072\u0069\u006b\u0065\u004f\u0075t"));
|
||
_abad .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_edae .QuadPoints );return _ffeag ;};
|
||
|
||
// 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 (_eceg *PdfReader )CheckAccessRights (password []byte )(bool ,_fe .Permissions ,error ){return _eceg ._cafdf .CheckAccessRights (password );};func _dddfe (_gbecb *XObjectImage )error {if _gbecb .SMask ==nil {return nil ;};_gfdag ,_gddeb :=_gbecb .SMask .(*_ebb .PdfObjectStream );
|
||
if !_gddeb {_eg .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 _ebb .ErrTypeError ;};_acgce :=_gfdag .PdfObjectDictionary ;
|
||
_bbbga :=_acgce .Get ("\u004d\u0061\u0074t\u0065");if _bbbga ==nil {return nil ;};_agaad ,_eeddd :=_ffaba (_bbbga .(*_ebb .PdfObjectArray ));if _eeddd !=nil {return _eeddd ;};_dbgcbc :=_ebb .MakeArrayFromFloats ([]float64 {_agaad });_acgce .SetIfNotNil ("\u004d\u0061\u0074t\u0065",_dbgcbc );
|
||
return nil ;};func _gcabc (_aacea *_ebb .PdfObjectDictionary )(*PdfShadingType6 ,error ){_bgac :=PdfShadingType6 {};_dfef :=_aacea .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065");if _dfef ==nil {_eg .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 ;};_ebgaa ,_fcffdb :=_dfef .(*_ebb .PdfObjectInteger );if !_fcffdb {_eg .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",_dfef );
|
||
return nil ,_ebb .ErrTypeError ;};_bgac .BitsPerCoordinate =_ebgaa ;_dfef =_aacea .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074");if _dfef ==nil {_eg .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 ;};_ebgaa ,_fcffdb =_dfef .(*_ebb .PdfObjectInteger );if !_fcffdb {_eg .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",_dfef );
|
||
return nil ,_ebb .ErrTypeError ;};_bgac .BitsPerComponent =_ebgaa ;_dfef =_aacea .Get ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067");if _dfef ==nil {_eg .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 ;};_ebgaa ,_fcffdb =_dfef .(*_ebb .PdfObjectInteger );if !_fcffdb {_eg .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",_dfef );
|
||
return nil ,_ebb .ErrTypeError ;};_bgac .BitsPerComponent =_ebgaa ;_dfef =_aacea .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");if _dfef ==nil {_eg .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 ;};_dcaea ,_fcffdb :=_dfef .(*_ebb .PdfObjectArray );if !_fcffdb {_eg .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",_dfef );
|
||
return nil ,_ebb .ErrTypeError ;};_bgac .Decode =_dcaea ;if _gabf :=_aacea .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");_gabf !=nil {_bgac .Function =[]PdfFunction {};if _gabgc ,_feebd :=_gabf .(*_ebb .PdfObjectArray );_feebd {for _ ,_cgaded :=range _gabgc .Elements (){_abebg ,_ffefg :=_aagg (_cgaded );
|
||
if _ffefg !=nil {_eg .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",_ffefg );return nil ,_ffefg ;};_bgac .Function =append (_bgac .Function ,_abebg );
|
||
};}else {_ggbgb ,_gfee :=_aagg (_gabf );if _gfee !=nil {_eg .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",_gfee );return nil ,_gfee ;};_bgac .Function =append (_bgac .Function ,_ggbgb );
|
||
};};return &_bgac ,nil ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the colorspace.
|
||
func (_bbggb *PdfColorspaceDeviceGray )ToPdfObject ()_ebb .PdfObject {return _ebb .MakeName ("\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079");};func (_eedbf *LTV )validateSig (_cgfga *PdfSignature )error {if _cgfga ==nil ||_cgfga .Contents ==nil ||len (_cgfga .Contents .Bytes ())==0{return _bg .Errorf ("i\u006e\u0076\u0061\u006c\u0069\u0064 \u0073\u0069\u0067\u006e\u0061\u0074\u0075\u0072\u0065 \u0066\u0069\u0065l\u0064:\u0020\u0025\u0076",_cgfga );
|
||
};return nil ;};
|
||
|
||
// PdfBorderEffect represents a PDF border effect.
|
||
type PdfBorderEffect struct{S *BorderEffect ;I *float64 ;};
|
||
|
||
// WriteToFile writes the Appender output to file specified by path.
|
||
func (_caba *PdfAppender )WriteToFile (outputPath string )error {_gggdb ,_edca :=_ed .Create (outputPath );if _edca !=nil {return _edca ;};defer _gggdb .Close ();return _caba .Write (_gggdb );};func _dcbd (_ffcfea _ab .ReadSeeker ,_abaee *ReaderOpts ,_dfdac bool ,_dgabf string )(*PdfReader ,error ){if _abaee ==nil {_abaee =NewReaderOpts ();
|
||
};_aeebf :=*_abaee ;_edeaec :=&PdfReader {_ggdg :_ffcfea ,_dfadc :map[_ebb .PdfObject ]struct{}{},_abbaca :_fadcd (),_ceefa :_abaee .LazyLoad ,_cfbgga :_abaee .ComplianceMode ,_abadec :_dfdac ,_edcbc :&_aeebf };_ffcge ,_aacce :=_bafec ("\u0072");if _aacce !=nil {return nil ,_aacce ;
|
||
};_aacce =_ce .Track (_ffcge ,_dgabf );if _aacce !=nil {return nil ,_aacce ;};_edeaec ._decdd =_ffcge ;var _bgbeb *_ebb .PdfParser ;if !_edeaec ._cfbgga {_bgbeb ,_aacce =_ebb .NewParser (_ffcfea );}else {_bgbeb ,_aacce =_ebb .NewCompliancePdfParser (_ffcfea );
|
||
};if _aacce !=nil {return nil ,_aacce ;};_edeaec ._cafdf =_bgbeb ;_agafc ,_aacce :=_edeaec .IsEncrypted ();if _aacce !=nil {return nil ,_aacce ;};if !_agafc {_aacce =_edeaec .loadStructure ();if _aacce !=nil {return nil ,_aacce ;};}else if _dfdac {_efddf ,_cfafd :=_edeaec .Decrypt ([]byte (_abaee .Password ));
|
||
if _cfafd !=nil {return nil ,_cfafd ;};if !_efddf {return nil ,_gf .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");
|
||
};};_edeaec ._cacfc =make (map[*PdfReader ]*PdfReader );_edeaec ._face =make ([]*PdfReader ,_bgbeb .GetRevisionNumber ());return _edeaec ,nil ;};
|
||
|
||
// IsPush returns true if the button field represents a push button, false otherwise.
|
||
func (_abdga *PdfFieldButton )IsPush ()bool {return _abdga .GetType ()==ButtonTypePush };
|
||
|
||
// 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 ){_egbd ,_cbfbf :=_ed .Open (filePath );if _cbfbf !=nil {_eg .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",_cbfbf );
|
||
return nil ,_cbfbf ;};defer _egbd .Close ();return NewPdfFontFromTTF (_egbd );};
|
||
|
||
// 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 *_ebb .PdfObjectString ;Q *_ebb .PdfObjectInteger ;DS *_ebb .PdfObjectString ;RV _ebb .PdfObject ;};func (_cedgbg *PdfFont )baseFields ()*fontCommon {if _cedgbg ._ebcad ==nil {_eg .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 _cedgbg ._ebcad .baseFields ();};
|
||
|
||
// PdfActionGoTo represents a GoTo action.
|
||
type PdfActionGoTo struct{*PdfAction ;D _ebb .PdfObject ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_ead *PdfActionSetOCGState )ToPdfObject ()_ebb .PdfObject {_ead .PdfAction .ToPdfObject ();_bea :=_ead ._abe ;_gff :=_bea .PdfObject .(*_ebb .PdfObjectDictionary );_gff .SetIfNotNil ("\u0053",_ebb .MakeName (string (ActionTypeSetOCGState )));_gff .SetIfNotNil ("\u0053\u0074\u0061t\u0065",_ead .State );
|
||
_gff .SetIfNotNil ("\u0050\u0072\u0065\u0073\u0065\u0072\u0076\u0065\u0052\u0042",_ead .PreserveRB );return _bea ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_dae *PdfActionURI )ToPdfObject ()_ebb .PdfObject {_dae .PdfAction .ToPdfObject ();_cbc :=_dae ._abe ;_aeg :=_cbc .PdfObject .(*_ebb .PdfObjectDictionary );_aeg .SetIfNotNil ("\u0053",_ebb .MakeName (string (ActionTypeURI )));_aeg .SetIfNotNil ("\u0055\u0052\u0049",_dae .URI );
|
||
_aeg .SetIfNotNil ("\u0049\u0073\u004da\u0070",_dae .IsMap );return _cbc ;};
|
||
|
||
// ToPdfObject recursively builds the Outline tree PDF object.
|
||
func (_dfea *PdfOutlineItem )ToPdfObject ()_ebb .PdfObject {_cbacc :=_dfea ._cacdf ;_fbddd :=_cbacc .PdfObject .(*_ebb .PdfObjectDictionary );_fbddd .Set ("\u0054\u0069\u0074l\u0065",_dfea .Title );if _dfea .A !=nil {_fbddd .Set ("\u0041",_dfea .A );};
|
||
if _gdgac :=_fbddd .Get ("\u0053\u0045");_gdgac !=nil {_fbddd .Remove ("\u0053\u0045");};if _dfea .C !=nil {_fbddd .Set ("\u0043",_dfea .C );};if _dfea .Dest !=nil {_fbddd .Set ("\u0044\u0065\u0073\u0074",_dfea .Dest );};if _dfea .F !=nil {_fbddd .Set ("\u0046",_dfea .F );
|
||
};if _dfea .Count !=nil {_fbddd .Set ("\u0043\u006f\u0075n\u0074",_ebb .MakeInteger (*_dfea .Count ));};if _dfea .Next !=nil {_fbddd .Set ("\u004e\u0065\u0078\u0074",_dfea .Next .ToPdfObject ());};if _dfea .First !=nil {_fbddd .Set ("\u0046\u0069\u0072s\u0074",_dfea .First .ToPdfObject ());
|
||
};if _dfea .Prev !=nil {_fbddd .Set ("\u0050\u0072\u0065\u0076",_dfea .Prev .GetContext ().GetContainingPdfObject ());};if _dfea .Last !=nil {_fbddd .Set ("\u004c\u0061\u0073\u0074",_dfea .Last .GetContext ().GetContainingPdfObject ());};if _dfea .Parent !=nil {_fbddd .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_dfea .Parent .GetContext ().GetContainingPdfObject ());
|
||
};return _cbacc ;};func _bcafa (_cfgda *_ebb .PdfObjectDictionary )(*PdfShadingType3 ,error ){_fcbbg :=PdfShadingType3 {};_eaaecg :=_cfgda .Get ("\u0043\u006f\u006f\u0072\u0064\u0073");if _eaaecg ==nil {_eg .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 ;};_eagb ,_gdfeg :=_eaaecg .(*_ebb .PdfObjectArray );if !_gdfeg {_eg .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",_eaaecg );
|
||
return nil ,_ebb .ErrTypeError ;};if _eagb .Len ()!=6{_eg .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",_eagb .Len ());return nil ,ErrInvalidAttribute ;
|
||
};_fcbbg .Coords =_eagb ;if _faagf :=_cfgda .Get ("\u0044\u006f\u006d\u0061\u0069\u006e");_faagf !=nil {_faagf =_ebb .TraceToDirectObject (_faagf );_acffd ,_cgfbe :=_faagf .(*_ebb .PdfObjectArray );if !_cgfbe {_eg .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",_faagf );
|
||
return nil ,_ebb .ErrTypeError ;};_fcbbg .Domain =_acffd ;};_eaaecg =_cfgda .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");if _eaaecg ==nil {_eg .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 ;};_fcbbg .Function =[]PdfFunction {};if _gdbdc ,_afegbb :=_eaaecg .(*_ebb .PdfObjectArray );_afegbb {for _ ,_dbgd :=range _gdbdc .Elements (){_agfb ,_dcdcd :=_aagg (_dbgd );if _dcdcd !=nil {_eg .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",_dcdcd );
|
||
return nil ,_dcdcd ;};_fcbbg .Function =append (_fcbbg .Function ,_agfb );};}else {_fabbd ,_dfafbe :=_aagg (_eaaecg );if _dfafbe !=nil {_eg .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",_dfafbe );
|
||
return nil ,_dfafbe ;};_fcbbg .Function =append (_fcbbg .Function ,_fabbd );};if _facbe :=_cfgda .Get ("\u0045\u0078\u0074\u0065\u006e\u0064");_facbe !=nil {_facbe =_ebb .TraceToDirectObject (_facbe );_bffad ,_ceda :=_facbe .(*_ebb .PdfObjectArray );if !_ceda {_eg .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",_facbe );
|
||
return nil ,_ebb .ErrTypeError ;};if _bffad .Len ()!=2{_eg .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",_bffad .Len ());return nil ,ErrInvalidAttribute ;
|
||
};_fcbbg .Extend =_bffad ;};return &_fcbbg ,nil ;};type fontCommon struct{_fdacg string ;_dfbf string ;_efge string ;_baag _ebb .PdfObject ;_dcdd *_ebe .CMap ;_fbbd *PdfFontDescriptor ;_efbg int64 ;};
|
||
|
||
// PdfAnnotationSquiggly represents Squiggly annotations.
|
||
// (Section 12.5.6.10).
|
||
type PdfAnnotationSquiggly struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _ebb .PdfObject ;};
|
||
|
||
// PdfVersion returns version of the PDF file.
|
||
func (_fedf *PdfReader )PdfVersion ()_ebb .Version {return _fedf ._cafdf .PdfVersion ()};
|
||
|
||
// ColorFromPdfObjects gets the color from a series of pdf objects (3 for rgb).
|
||
func (_aebde *PdfColorspaceDeviceRGB )ColorFromPdfObjects (objects []_ebb .PdfObject )(PdfColor ,error ){if len (objects )!=3{return nil ,_gf .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_gggb ,_abeed :=_ebb .GetNumbersAsFloat (objects );
|
||
if _abeed !=nil {return nil ,_abeed ;};return _aebde .ColorFromFloats (_gggb );};
|
||
|
||
// NewPermissions returns a new permissions object.
|
||
func NewPermissions (docMdp *PdfSignature )*Permissions {_cbdg :=Permissions {};_cbdg .DocMDP =docMdp ;_gbbf :=_ebb .MakeDict ();_gbbf .Set ("\u0044\u006f\u0063\u004d\u0044\u0050",docMdp .ToPdfObject ());_cbdg ._bdgdgf =_gbbf ;return &_cbdg ;};
|
||
|
||
// ToInteger convert to an integer format.
|
||
func (_ggdee *PdfColorDeviceCMYK )ToInteger (bits int )[4]uint32 {_fced :=_cbg .Pow (2,float64 (bits ))-1;return [4]uint32 {uint32 (_fced *_ggdee .C ()),uint32 (_fced *_ggdee .M ()),uint32 (_fced *_ggdee .Y ()),uint32 (_fced *_ggdee .K ())};};
|
||
|
||
// String returns the name of the colorspace (DeviceN).
|
||
func (_cbdb *PdfColorspaceDeviceN )String ()string {return "\u0044e\u0076\u0069\u0063\u0065\u004e"};
|
||
|
||
// Height returns the height of `rect`.
|
||
func (_bcdeb *PdfRectangle )Height ()float64 {return _cbg .Abs (_bcdeb .Ury -_bcdeb .Lly )}; |